diff options
902 files changed, 22556 insertions, 5881 deletions
diff --git a/src/3rdparty/webkit/ChangeLog b/src/3rdparty/webkit/ChangeLog index f2cc9a2..fa8e3ff 100644 --- a/src/3rdparty/webkit/ChangeLog +++ b/src/3rdparty/webkit/ChangeLog @@ -1,3 +1,72 @@ +2009-07-13 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by Tor Arne Vestbø. + + [Qt] Build fix for QtWebKit on Win + https://bugs.webkit.org/show_bug.cgi?id=27205 + + * WebKit.pri: Include the major version number in the QtWebKit + library file for Win. + +2009-07-13 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Ariya Hidayat. + + Add the test netscape plugin for the Qt DRT to the build. + + * WebKit.pro: + +2009-07-13 Drew Wilson <atwilson@google.com> + + Reviewed by David Levin. + + Add ENABLE(SHARED_WORKERS) flag and define SharedWorker APIs + https://bugs.webkit.org/show_bug.cgi?id=26932 + + Added ENABLE(SHARED_WORKERS) flag. + + * configure.ac: + +2009-07-12 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + Bump version in preparation for 1.1.11 release. + + * configure.ac: + +2009-07-07 Norbert Leser <norbert.leser@nokia.com> + + Reviewed by Simon Hausmann. + + Exclude DumpRenderTree.pro from symbian build + + * WebKit.pro: + +2009-07-09 Drew Wilson <atwilson@google.com> + + Reviewed by Alexey Proskuryakov. + + https://bugs.webkit.org/show_bug.cgi?id=26903 + + Turned on CHANNEL_MESSAGING by default because the MessageChannel API + can now be implemented for Web Workers and is reasonably stable. + + * configure.ac: enable CHANNEL_MESSAGING. + +2009-07-03 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Xan Lopez and Gustavo Noronha. + + Set user-agent from application + https://bugs.webkit.org/show_bug.cgi?id=17375 + + Define UA version macros to be used by the UA string. + Add new WebSettings unit test for the User-Agent string API. + + * GNUmakefile.am: + * configure.ac: + 2009-06-20 Gustavo Noronha Silva <gns@gnome.org> Reviewed by Jan Alonzo. diff --git a/src/3rdparty/webkit/JavaScriptCore/ChangeLog b/src/3rdparty/webkit/JavaScriptCore/ChangeLog index c8bba0f..cd46bf5 100644 --- a/src/3rdparty/webkit/JavaScriptCore/ChangeLog +++ b/src/3rdparty/webkit/JavaScriptCore/ChangeLog @@ -1,3 +1,464 @@ +2009-07-13 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Unreviewed make dist build fix. + + * GNUmakefile.am: + +2009-07-13 Drew Wilson <atwilson@google.com> + + Reviewed by David Levin. + + Add ENABLE(SHARED_WORKERS) flag and define SharedWorker APIs + https://bugs.webkit.org/show_bug.cgi?id=26932 + + Added ENABLE(SHARED_WORKERS) flag (off by default). + + * Configurations/FeatureDefines.xcconfig: + +2009-07-07 Norbert Leser <norbert.leser@nokia.com> + + Reviewed by Maciej Stachoviak. + + https://bugs.webkit.org/show_bug.cgi?id=27058 + + Removed superfluous parenthesis around single expression. + Compilers on Symbian platform fail to properly parse and compile. + + * JavaScriptCore/wtf/Platform.h: + +2009-07-13 Norbert Leser <norbert.leser@nokia.com> + + Reviewed by Maciej Stachoviak. + + https://bugs.webkit.org/show_bug.cgi?id=27054 + + Renamed Translator to HashTranslator + + Codewarrior compiler (WINSCW) latest b482 cannot resolve typename + mismatch between template declaration and definition + (HashTranslator / Translator) + + * wtf/HashSet.h: + +2009-07-13 Norbert Leser <norbert.leser@nokia.com> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=27053 + + Ambiguity in LabelScope initialization + + Codewarrior compiler (WINSCW) latest b482 on Symbian cannot resolve + type of "0" unambiguously. Set expression explicitly to + PassRefPtr<Label>::PassRefPtr() + + * bytecompiler/BytecodeGenerator.cpp + +2009-07-11 Simon Fraser <simon.fraser@apple.com> + + Enable support for accelerated compositing and 3d transforms on Leopard. + <https://bugs.webkit.org/show_bug.cgi?id=20166> + <rdar://problem/6120614> + + Reviewed by Oliver Hunt. + + * Configurations/FeatureDefines.xcconfig: + * wtf/Platform.h: + +2009-07-10 Mark Rowe <mrowe@apple.com> + + Second part of the "make Windows happier" dance. + + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: + +2009-07-10 Mark Rowe <mrowe@apple.com> + + Try and make the Windows build happy. + + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: + +2009-07-10 Kevin McCullough <kmccullough@apple.com> + + Reviewed by Geoffrey Garen. + + * debugger/Debugger.h: Made this function virtual for use in WebCore's + WebInspector. + +2009-07-10 Kwang Yul Seo <skyul@company100.net> + + Reviewed by Darin Adler. + + ParserArenaDeletable should override delete + https://bugs.webkit.org/show_bug.cgi?id=26790 + + ParserArenaDeletable overrides new, but it does not override delete. + ParserArenaDeletable must be freed by fastFree + because it is allocated by fastMalloc. + + * parser/NodeConstructors.h: + (JSC::ParserArenaDeletable::operator delete): + * parser/Nodes.h: + +2009-07-10 Adam Roben <aroben@apple.com> + + Sort all our Xcode projects + + Accomplished using sort-Xcode-project-file. + + Requested by Dave Kilzer. + + * JavaScriptCore.xcodeproj/project.pbxproj: + +2009-07-09 Maciej Stachowiak <mjs@apple.com> + + Not reviewed, build fix. + + Windows build fix for the last change. + + * wtf/dtoa.cpp: Forgot to include Vector.h + +2009-07-09 Maciej Stachowiak <mjs@apple.com> + + Reviewed by Darin Adler. + + REGRESSION: crash in edge cases of floating point parsing. + https://bugs.webkit.org/show_bug.cgi?id=27110 + <rdar://problem/7044458> + + Tests: fast/css/number-parsing-crash.html + fast/css/number-parsing-crash.html + fast/js/number-parsing-crash.html + + * wtf/dtoa.cpp: + (WTF::BigInt::BigInt): Converted this to more a proper class, using a Vector + with inline capacity + + (WTF::lshift): Rearranged logic somewhat nontrivially to deal with the new way of sizing BigInts. + Added an assertion to verify that invariants are maintained. + + All other functions are adapted fairly mechanically to the above changes. + (WTF::BigInt::clear): + (WTF::BigInt::size): + (WTF::BigInt::resize): + (WTF::BigInt::words): + (WTF::BigInt::append): + (WTF::multadd): + (WTF::s2b): + (WTF::i2b): + (WTF::mult): + (WTF::cmp): + (WTF::diff): + (WTF::b2d): + (WTF::d2b): + (WTF::ratio): + (WTF::strtod): + (WTF::quorem): + (WTF::dtoa): + +2009-07-09 Drew Wilson <atwilson@google.com> + + Reviewed by Alexey Proskuryakov. + + Turned on CHANNEL_MESSAGING by default because the MessageChannel API + can now be implemented for Web Workers and is reasonably stable. + + * Configurations/FeatureDefines.xcconfig: + +2009-07-09 Oliver Hunt <oliver@apple.com> + + Reviewed by NOBODY (Build fix). + + * interpreter/Interpreter.cpp: + (JSC::Interpreter::privateExecute): + +2009-07-09 Oliver Hunt <oliver@apple.com> + + Reviewed by Darin Adler. + + Bug 27016 - Interpreter crashes due to invalid array indexes + <https://bugs.webkit.org/show_bug.cgi?id=27016> + + Unsigned vs signed conversions results in incorrect behaviour in + 64bit interpreter builds. + + * interpreter/Interpreter.cpp: + (JSC::Interpreter::privateExecute): + +2009-07-09 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Darin Fisher. + + [Chromium] Upstream JavaScriptCore.gypi, the project file for Chromium build. + https://bugs.webkit.org/show_bug.cgi?id=27135 + + * JavaScriptCore.gypi: Added. + +2009-07-09 Joe Mason <joe.mason@torchmobile.com> + + Reviewed by George Staikos. + + Authors: Yong Li <yong.li@torchmobile.com>, Joe Mason <joe.mason@torchmobile.com> + + https://bugs.webkit.org/show_bug.cgi?id=27031 + Add an override for deleteOwnedPtr(HDC) on Windows + + * wtf/OwnPtrCommon.h: + * wtf/OwnPtrWin.cpp: + (WTF::deleteOwnedPtr): + +2009-07-09 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by Darin Adler. + + Guard singal.h dependency with HAVE(SIGNAL_H) to enable building jsc + on SYMBIAN. + + https://bugs.webkit.org/show_bug.cgi?id=27026 + + Based on Norbert Leser's work. + + * jsc.cpp: + (printUsageStatement): + (parseArguments): + * wtf/Platform.h: + +2009-07-07 Gavin Barraclough <barraclough@apple.com> + + Reviewed by Sam Weinig. + + Stop loading constants into the register file. + + Instead, use high register values (highest bit bar the sign bit set) to indicate + constants in the instruction stream, and when we encounter such a value load it + directly from the CodeBlock. + + Since constants are no longer copied into the register file, this patch renders + the 'unexpected constant' mechanism redundant, and removes it. + + 2% improvement, thanks to Sam Weinig. + + * bytecode/CodeBlock.cpp: + (JSC::CodeBlock::dump): + (JSC::CodeBlock::CodeBlock): + (JSC::CodeBlock::mark): + (JSC::CodeBlock::shrinkToFit): + * bytecode/CodeBlock.h: + (JSC::CodeBlock::isTemporaryRegisterIndex): + (JSC::CodeBlock::constantRegister): + (JSC::CodeBlock::isConstantRegisterIndex): + (JSC::CodeBlock::getConstant): + (JSC::ExecState::r): + * bytecode/Opcode.h: + * bytecompiler/BytecodeGenerator.cpp: + (JSC::BytecodeGenerator::preserveLastVar): + (JSC::BytecodeGenerator::BytecodeGenerator): + (JSC::BytecodeGenerator::addConstantValue): + (JSC::BytecodeGenerator::emitEqualityOp): + (JSC::BytecodeGenerator::emitLoad): + (JSC::BytecodeGenerator::emitResolveBase): + (JSC::BytecodeGenerator::emitResolveWithBase): + (JSC::BytecodeGenerator::emitNewError): + * bytecompiler/BytecodeGenerator.h: + (JSC::BytecodeGenerator::emitNode): + * interpreter/CallFrame.h: + (JSC::ExecState::noCaller): + (JSC::ExecState::hasHostCallFrameFlag): + (JSC::ExecState::addHostCallFrameFlag): + (JSC::ExecState::removeHostCallFrameFlag): + * interpreter/Interpreter.cpp: + (JSC::Interpreter::resolve): + (JSC::Interpreter::resolveSkip): + (JSC::Interpreter::resolveGlobal): + (JSC::Interpreter::resolveBase): + (JSC::Interpreter::resolveBaseAndProperty): + (JSC::Interpreter::resolveBaseAndFunc): + (JSC::Interpreter::dumpRegisters): + (JSC::Interpreter::throwException): + (JSC::Interpreter::createExceptionScope): + (JSC::Interpreter::privateExecute): + (JSC::Interpreter::retrieveArguments): + * jit/JIT.cpp: + (JSC::JIT::privateCompileMainPass): + * jit/JITInlineMethods.h: + (JSC::JIT::emitLoadDouble): + (JSC::JIT::emitLoadInt32ToDouble): + * jit/JITOpcodes.cpp: + (JSC::JIT::emit_op_new_error): + (JSC::JIT::emit_op_enter): + (JSC::JIT::emit_op_enter_with_activation): + * parser/Nodes.cpp: + (JSC::DeleteResolveNode::emitBytecode): + (JSC::DeleteValueNode::emitBytecode): + (JSC::PrefixResolveNode::emitBytecode): + * runtime/JSActivation.cpp: + (JSC::JSActivation::JSActivation): + * wtf/Platform.h: + +2009-07-07 Mark Rowe <mrowe@apple.com> + + Reviewed by Darin Adler. + + Fix <https://bugs.webkit.org/show_bug.cgi?id=27025> / <rdar://problem/7033448>. + Bug 27025: Crashes and regression test failures related to regexps in 64-bit + + For x86_64 RegexGenerator uses rbx, a callee-save register, as a scratch register but + neglects to save and restore it. The change in handling of the output vector in r45545 + altered code generation so that the RegExp::match was now storing important data in rbx, + which caused crashes and bogus results when it was clobbered. + + * yarr/RegexJIT.cpp: + (JSC::Yarr::RegexGenerator::generateEnter): Save rbx. + (JSC::Yarr::RegexGenerator::generateReturn): Restore rbx. + +2009-07-06 Ada Chan <adachan@apple.com> + + Reviewed by Darin Adler and Mark Rowe. + + Decommitted spans are added to the list of normal spans rather than + the returned spans in TCMalloc_PageHeap::Delete(). + https://bugs.webkit.org/show_bug.cgi?id=26998 + + In TCMalloc_PageHeap::Delete(), the deleted span can be decommitted in + the process of merging with neighboring spans that are also decommitted. + The merged span needs to be placed in the list of returned spans (spans + whose memory has been returned to the system). Right now it's always added + to the list of the normal spans which can theoretically cause thrashing. + + * wtf/FastMalloc.cpp: + (WTF::TCMalloc_PageHeap::Delete): + +2009-07-05 Lars Knoll <lars.knoll@nokia.com> + + Reviewed by Maciej Stachowiak. + + https://bugs.webkit.org/show_bug.cgi?id=26843 + + Fix run-time crashes in JavaScriptCore with the Metrowerks compiler on Symbian. + + The Metrowerks compiler on the Symbian platform moves the globally + defined Hashtables into read-only memory, despite one of the members + being mutable. This causes crashes at run-time due to write access to + read-only memory. + + Avoid the use of const with this compiler by introducing the + JSC_CONST_HASHTABLE macro. + + Based on idea by Norbert Leser. + + * runtime/Lookup.h: Define JSC_CONST_HASHTABLE as const for !WINSCW. + * create_hash_table: Use JSC_CONST_HASHTABLE for hashtables. + * runtime/JSGlobalData.cpp: Import various global hashtables via the macro. + +2009-07-04 Dan Bernstein <mitz@apple.com> + + - debug build fix + + * runtime/RegExpConstructor.cpp: + (JSC::RegExpConstructor::getLastParen): + +2009-07-03 Yong Li <yong.li@torchmobile.com> + + Reviewed by Maciej Stachowiak (and revised slightly) + + RegExp::match to be optimized + https://bugs.webkit.org/show_bug.cgi?id=26957 + + Allow regexp matching to use Vectors with inline capacity instead of + allocating a new ovector buffer every time. + + ~5% speedup on SunSpider string-unpack-code test, 0.3% on SunSpider overall. + + * runtime/RegExp.cpp: + (JSC::RegExp::match): + * runtime/RegExp.h: + * runtime/RegExpConstructor.cpp: + (JSC::RegExpConstructorPrivate::RegExpConstructorPrivate): + (JSC::RegExpConstructorPrivate::lastOvector): + (JSC::RegExpConstructorPrivate::tempOvector): + (JSC::RegExpConstructorPrivate::changeLastOvector): + (JSC::RegExpConstructor::performMatch): + (JSC::RegExpMatchesArray::RegExpMatchesArray): + (JSC::RegExpMatchesArray::fillArrayInstance): + (JSC::RegExpConstructor::getBackref): + (JSC::RegExpConstructor::getLastParen): + (JSC::RegExpConstructor::getLeftContext): + (JSC::RegExpConstructor::getRightContext): + * runtime/StringPrototype.cpp: + (JSC::stringProtoFuncSplit): + +2009-06-30 Kwang Yul Seo <skyul@company100.net> + + Reviewed by Eric Seidel. + + Override operator new/delete with const std::nothrow_t& as the second + argument. + https://bugs.webkit.org/show_bug.cgi?id=26792 + + On Windows CE, operator new/delete, new[]/delete[] with const + std::nothrow_t& must be overrided because some standard template + libraries use these operators. + + The problem occurs when memory allocated by new(size_t s, const + std::nothrow_t&) is freed by delete(void* p). This causes the umatched + malloc/free problem. + + The patch overrides all new, delete, new[] and delete[] to use + fastMaloc and fastFree consistently. + + * wtf/FastMalloc.h: + (throw): + +2009-06-30 Gabor Loki <loki@inf.u-szeged.hu> + + Reviewed by Sam Weinig. + + <https://bugs.webkit.org/show_bug.cgi?id=24986> + + Remove unnecessary references to AssemblerBuffer. + + * interpreter/Interpreter.cpp: + * interpreter/Interpreter.h: + +2009-06-29 David Levin <levin@chromium.org> + + Reviewed by Oliver Hunt. + + Still seeing occasional leaks from UString::sharedBuffer code + https://bugs.webkit.org/show_bug.cgi?id=26420 + + The problem is that the pointer to the memory allocation isn't visible + by "leaks" due to the lower bits being used as flags. The fix is to + make the pointer visible in memory (in debug only). The downside of + this fix that the memory allocated by sharedBuffer will still look like + a leak in non-debug builds when any flags are set. + + * wtf/PtrAndFlags.h: + (WTF::PtrAndFlags::set): + +2009-06-29 Sam Weinig <sam@webkit.org> + + Reviewed by Mark Rowe. + + Remove more unused scons support. + + * SConstruct: Removed. + +2009-06-29 Oliver Hunt <oliver@apple.com> + + Reviewed by Gavin Barraclough. + + <rdar://problem/7016214> JSON.parse fails to parse valid JSON with most Unicode characters + <https://bugs.webkit.org/show_bug.cgi?id=26802> + + In the original JSON.parse patch unicode was handled correctly, however in some last + minute "clean up" I oversimplified isSafeStringCharacter. This patch corrects this bug. + + * runtime/LiteralParser.cpp: + (JSC::isSafeStringCharacter): + (JSC::LiteralParser::Lexer::lexString): + 2009-06-26 Oliver Hunt <oliver@apple.com> Reviewed by Dan Bernstein. diff --git a/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.gypi b/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.gypi new file mode 100644 index 0000000..2d69c7d --- /dev/null +++ b/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.gypi @@ -0,0 +1,452 @@ +{ + 'variables': { + 'javascriptcore_files': [ + 'AllInOneFile.cpp', + 'API/APICast.h', + 'API/JavaScript.h', + 'API/JavaScriptCore.h', + 'API/JSBase.cpp', + 'API/JSBase.h', + 'API/JSBasePrivate.h', + 'API/JSCallbackConstructor.cpp', + 'API/JSCallbackConstructor.h', + 'API/JSCallbackFunction.cpp', + 'API/JSCallbackFunction.h', + 'API/JSCallbackObject.cpp', + 'API/JSCallbackObject.h', + 'API/JSCallbackObjectFunctions.h', + 'API/JSClassRef.cpp', + 'API/JSClassRef.h', + 'API/JSContextRef.cpp', + 'API/JSContextRef.h', + 'API/JSObjectRef.cpp', + 'API/JSObjectRef.h', + 'API/JSProfilerPrivate.cpp', + 'API/JSProfilerPrivate.h', + 'API/JSRetainPtr.h', + 'API/JSStringRef.cpp', + 'API/JSStringRef.h', + 'API/JSStringRefBSTR.cpp', + 'API/JSStringRefBSTR.h', + 'API/JSStringRefCF.cpp', + 'API/JSStringRefCF.h', + 'API/JSValueRef.cpp', + 'API/JSValueRef.h', + 'API/OpaqueJSString.cpp', + 'API/OpaqueJSString.h', + 'API/tests/JSNode.h', + 'API/tests/JSNodeList.h', + 'API/tests/Node.h', + 'API/tests/NodeList.h', + 'API/WebKitAvailability.h', + 'assembler/AbstractMacroAssembler.h', + 'assembler/ARMv7Assembler.h', + 'assembler/AssemblerBuffer.h', + 'assembler/CodeLocation.h', + 'assembler/MacroAssembler.h', + 'assembler/MacroAssemblerARMv7.h', + 'assembler/MacroAssemblerCodeRef.h', + 'assembler/MacroAssemblerX86.h', + 'assembler/MacroAssemblerX86_64.h', + 'assembler/MacroAssemblerX86Common.h', + 'assembler/X86Assembler.h', + 'bytecode/CodeBlock.cpp', + 'bytecode/CodeBlock.h', + 'bytecode/EvalCodeCache.h', + 'bytecode/Instruction.h', + 'bytecode/JumpTable.cpp', + 'bytecode/JumpTable.h', + 'bytecode/Opcode.cpp', + 'bytecode/Opcode.h', + 'bytecode/SamplingTool.cpp', + 'bytecode/SamplingTool.h', + 'bytecode/StructureStubInfo.cpp', + 'bytecode/StructureStubInfo.h', + 'bytecompiler/BytecodeGenerator.cpp', + 'bytecompiler/BytecodeGenerator.h', + 'bytecompiler/Label.h', + 'bytecompiler/LabelScope.h', + 'bytecompiler/RegisterID.h', + 'config.h', + 'debugger/Debugger.cpp', + 'debugger/Debugger.h', + 'debugger/DebuggerActivation.cpp', + 'debugger/DebuggerActivation.h', + 'debugger/DebuggerCallFrame.cpp', + 'debugger/DebuggerCallFrame.h', + 'icu/unicode/parseerr.h', + 'icu/unicode/platform.h', + 'icu/unicode/putil.h', + 'icu/unicode/uchar.h', + 'icu/unicode/ucnv.h', + 'icu/unicode/ucnv_err.h', + 'icu/unicode/ucol.h', + 'icu/unicode/uconfig.h', + 'icu/unicode/uenum.h', + 'icu/unicode/uiter.h', + 'icu/unicode/uloc.h', + 'icu/unicode/umachine.h', + 'icu/unicode/unorm.h', + 'icu/unicode/urename.h', + 'icu/unicode/uset.h', + 'icu/unicode/ustring.h', + 'icu/unicode/utf.h', + 'icu/unicode/utf16.h', + 'icu/unicode/utf8.h', + 'icu/unicode/utf_old.h', + 'icu/unicode/utypes.h', + 'icu/unicode/uversion.h', + 'interpreter/CachedCall.h', + 'interpreter/CallFrame.cpp', + 'interpreter/CallFrame.h', + 'interpreter/CallFrameClosure.h', + 'interpreter/Interpreter.cpp', + 'interpreter/Interpreter.h', + 'interpreter/Register.h', + 'interpreter/RegisterFile.cpp', + 'interpreter/RegisterFile.h', + 'JavaScriptCorePrefix.h', + 'jit/ExecutableAllocator.cpp', + 'jit/ExecutableAllocator.h', + 'jit/ExecutableAllocatorFixedVMPool.cpp', + 'jit/ExecutableAllocatorPosix.cpp', + 'jit/ExecutableAllocatorWin.cpp', + 'jit/JIT.cpp', + 'jit/JIT.h', + 'jit/JITArithmetic.cpp', + 'jit/JITCall.cpp', + 'jit/JITCode.h', + 'jit/JITInlineMethods.h', + 'jit/JITOpcodes.cpp', + 'jit/JITPropertyAccess.cpp', + 'jit/JITStubCall.h', + 'jit/JITStubs.cpp', + 'jit/JITStubs.h', + 'jsc.cpp', + 'os-win32/stdbool.h', + 'os-win32/stdint.h', + 'parser/Lexer.cpp', + 'parser/Lexer.h', + 'parser/NodeConstructors.h', + 'parser/NodeInfo.h', + 'parser/Nodes.cpp', + 'parser/Nodes.h', + 'parser/Parser.cpp', + 'parser/Parser.h', + 'parser/ParserArena.cpp', + 'parser/ParserArena.h', + 'parser/ResultType.h', + 'parser/SourceCode.h', + 'parser/SourceProvider.h', + 'pcre/pcre.h', + 'pcre/pcre_compile.cpp', + 'pcre/pcre_exec.cpp', + 'pcre/pcre_internal.h', + 'pcre/pcre_tables.cpp', + 'pcre/pcre_ucp_searchfuncs.cpp', + 'pcre/pcre_xclass.cpp', + 'pcre/ucpinternal.h', + 'pcre/ucptable.cpp', + 'profiler/CallIdentifier.h', + 'profiler/HeavyProfile.cpp', + 'profiler/HeavyProfile.h', + 'profiler/Profile.cpp', + 'profiler/Profile.h', + 'profiler/ProfileGenerator.cpp', + 'profiler/ProfileGenerator.h', + 'profiler/ProfileNode.cpp', + 'profiler/ProfileNode.h', + 'profiler/Profiler.cpp', + 'profiler/Profiler.h', + 'profiler/ProfilerServer.h', + 'profiler/TreeProfile.cpp', + 'profiler/TreeProfile.h', + 'runtime/ArgList.cpp', + 'runtime/ArgList.h', + 'runtime/Arguments.cpp', + 'runtime/Arguments.h', + 'runtime/ArrayConstructor.cpp', + 'runtime/ArrayConstructor.h', + 'runtime/ArrayPrototype.cpp', + 'runtime/ArrayPrototype.h', + 'runtime/BatchedTransitionOptimizer.h', + 'runtime/BooleanConstructor.cpp', + 'runtime/BooleanConstructor.h', + 'runtime/BooleanObject.cpp', + 'runtime/BooleanObject.h', + 'runtime/BooleanPrototype.cpp', + 'runtime/BooleanPrototype.h', + 'runtime/CallData.cpp', + 'runtime/CallData.h', + 'runtime/ClassInfo.h', + 'runtime/Collector.cpp', + 'runtime/Collector.h', + 'runtime/CollectorHeapIterator.h', + 'runtime/CommonIdentifiers.cpp', + 'runtime/CommonIdentifiers.h', + 'runtime/Completion.cpp', + 'runtime/Completion.h', + 'runtime/ConstructData.cpp', + 'runtime/ConstructData.h', + 'runtime/DateConstructor.cpp', + 'runtime/DateConstructor.h', + 'runtime/DateConversion.cpp', + 'runtime/DateConversion.h', + 'runtime/DateInstance.cpp', + 'runtime/DateInstance.h', + 'runtime/DatePrototype.cpp', + 'runtime/DatePrototype.h', + 'runtime/Error.cpp', + 'runtime/Error.h', + 'runtime/ErrorConstructor.cpp', + 'runtime/ErrorConstructor.h', + 'runtime/ErrorInstance.cpp', + 'runtime/ErrorInstance.h', + 'runtime/ErrorPrototype.cpp', + 'runtime/ErrorPrototype.h', + 'runtime/ExceptionHelpers.cpp', + 'runtime/ExceptionHelpers.h', + 'runtime/FunctionConstructor.cpp', + 'runtime/FunctionConstructor.h', + 'runtime/FunctionPrototype.cpp', + 'runtime/FunctionPrototype.h', + 'runtime/GetterSetter.cpp', + 'runtime/GetterSetter.h', + 'runtime/GlobalEvalFunction.cpp', + 'runtime/GlobalEvalFunction.h', + 'runtime/Identifier.cpp', + 'runtime/Identifier.h', + 'runtime/InitializeThreading.cpp', + 'runtime/InitializeThreading.h', + 'runtime/InternalFunction.cpp', + 'runtime/InternalFunction.h', + 'runtime/JSActivation.cpp', + 'runtime/JSActivation.h', + 'runtime/JSArray.cpp', + 'runtime/JSArray.h', + 'runtime/JSByteArray.cpp', + 'runtime/JSByteArray.h', + 'runtime/JSCell.cpp', + 'runtime/JSCell.h', + 'runtime/JSFunction.cpp', + 'runtime/JSFunction.h', + 'runtime/JSGlobalData.cpp', + 'runtime/JSGlobalData.h', + 'runtime/JSGlobalObject.cpp', + 'runtime/JSGlobalObject.h', + 'runtime/JSGlobalObjectFunctions.cpp', + 'runtime/JSGlobalObjectFunctions.h', + 'runtime/JSImmediate.cpp', + 'runtime/JSImmediate.h', + 'runtime/JSLock.cpp', + 'runtime/JSLock.h', + 'runtime/JSNotAnObject.cpp', + 'runtime/JSNotAnObject.h', + 'runtime/JSNumberCell.cpp', + 'runtime/JSNumberCell.h', + 'runtime/JSObject.cpp', + 'runtime/JSObject.h', + 'runtime/JSONObject.cpp', + 'runtime/JSONObject.h', + 'runtime/JSPropertyNameIterator.cpp', + 'runtime/JSPropertyNameIterator.h', + 'runtime/JSStaticScopeObject.cpp', + 'runtime/JSStaticScopeObject.h', + 'runtime/JSString.cpp', + 'runtime/JSString.h', + 'runtime/JSType.h', + 'runtime/JSValue.cpp', + 'runtime/JSValue.h', + 'runtime/JSVariableObject.cpp', + 'runtime/JSVariableObject.h', + 'runtime/JSWrapperObject.cpp', + 'runtime/JSWrapperObject.h', + 'runtime/LiteralParser.cpp', + 'runtime/LiteralParser.h', + 'runtime/Lookup.cpp', + 'runtime/Lookup.h', + 'runtime/MathObject.cpp', + 'runtime/MathObject.h', + 'runtime/NativeErrorConstructor.cpp', + 'runtime/NativeErrorConstructor.h', + 'runtime/NativeErrorPrototype.cpp', + 'runtime/NativeErrorPrototype.h', + 'runtime/NativeFunctionWrapper.h', + 'runtime/NumberConstructor.cpp', + 'runtime/NumberConstructor.h', + 'runtime/NumberObject.cpp', + 'runtime/NumberObject.h', + 'runtime/NumberPrototype.cpp', + 'runtime/NumberPrototype.h', + 'runtime/ObjectConstructor.cpp', + 'runtime/ObjectConstructor.h', + 'runtime/ObjectPrototype.cpp', + 'runtime/ObjectPrototype.h', + 'runtime/Operations.cpp', + 'runtime/Operations.h', + 'runtime/PropertyMapHashTable.h', + 'runtime/PropertyNameArray.cpp', + 'runtime/PropertyNameArray.h', + 'runtime/PropertySlot.cpp', + 'runtime/PropertySlot.h', + 'runtime/Protect.h', + 'runtime/PrototypeFunction.cpp', + 'runtime/PrototypeFunction.h', + 'runtime/PutPropertySlot.h', + 'runtime/RegExp.cpp', + 'runtime/RegExp.h', + 'runtime/RegExpConstructor.cpp', + 'runtime/RegExpConstructor.h', + 'runtime/RegExpMatchesArray.h', + 'runtime/RegExpObject.cpp', + 'runtime/RegExpObject.h', + 'runtime/RegExpPrototype.cpp', + 'runtime/RegExpPrototype.h', + 'runtime/ScopeChain.cpp', + 'runtime/ScopeChain.h', + 'runtime/ScopeChainMark.h', + 'runtime/SmallStrings.cpp', + 'runtime/SmallStrings.h', + 'runtime/StringConstructor.cpp', + 'runtime/StringConstructor.h', + 'runtime/StringObject.cpp', + 'runtime/StringObject.h', + 'runtime/StringObjectThatMasqueradesAsUndefined.h', + 'runtime/StringPrototype.cpp', + 'runtime/StringPrototype.h', + 'runtime/Structure.cpp', + 'runtime/Structure.h', + 'runtime/StructureChain.cpp', + 'runtime/StructureChain.h', + 'runtime/StructureTransitionTable.h', + 'runtime/SymbolTable.h', + 'runtime/TimeoutChecker.cpp', + 'runtime/TimeoutChecker.h', + 'runtime/Tracing.h', + 'runtime/TypeInfo.h', + 'runtime/UString.cpp', + 'runtime/UString.h', + 'wrec/CharacterClass.cpp', + 'wrec/CharacterClass.h', + 'wrec/CharacterClassConstructor.cpp', + 'wrec/CharacterClassConstructor.h', + 'wrec/Escapes.h', + 'wrec/Quantifier.h', + 'wrec/WREC.cpp', + 'wrec/WREC.h', + 'wrec/WRECFunctors.cpp', + 'wrec/WRECFunctors.h', + 'wrec/WRECGenerator.cpp', + 'wrec/WRECGenerator.h', + 'wrec/WRECParser.cpp', + 'wrec/WRECParser.h', + 'wtf/AlwaysInline.h', + 'wtf/ASCIICType.h', + 'wtf/Assertions.cpp', + 'wtf/Assertions.h', + 'wtf/AVLTree.h', + 'wtf/ByteArray.cpp', + 'wtf/ByteArray.h', + 'wtf/chromium/ChromiumThreading.h', + 'wtf/chromium/MainThreadChromium.cpp', + 'wtf/CrossThreadRefCounted.h', + 'wtf/CurrentTime.cpp', + 'wtf/CurrentTime.h', + 'wtf/DateMath.cpp', + 'wtf/DateMath.h', + 'wtf/Deque.h', + 'wtf/DisallowCType.h', + 'wtf/dtoa.cpp', + 'wtf/dtoa.h', + 'wtf/FastAllocBase.h', + 'wtf/FastMalloc.cpp', + 'wtf/FastMalloc.h', + 'wtf/Forward.h', + 'wtf/GetPtr.h', + 'wtf/GOwnPtr.cpp', + 'wtf/GOwnPtr.h', + 'wtf/gtk/MainThreadGtk.cpp', + 'wtf/gtk/ThreadingGtk.cpp', + 'wtf/HashCountedSet.h', + 'wtf/HashFunctions.h', + 'wtf/HashIterators.h', + 'wtf/HashMap.h', + 'wtf/HashSet.h', + 'wtf/HashTable.cpp', + 'wtf/HashTable.h', + 'wtf/HashTraits.h', + 'wtf/ListHashSet.h', + 'wtf/ListRefPtr.h', + 'wtf/Locker.h', + 'wtf/MainThread.cpp', + 'wtf/MainThread.h', + 'wtf/MallocZoneSupport.h', + 'wtf/MathExtras.h', + 'wtf/MessageQueue.h', + 'wtf/Noncopyable.h', + 'wtf/NotFound.h', + 'wtf/OwnArrayPtr.h', + 'wtf/OwnFastMallocPtr.h', + 'wtf/OwnPtr.h', + 'wtf/OwnPtrCommon.h', + 'wtf/OwnPtrWin.cpp', + 'wtf/PassOwnPtr.h', + 'wtf/PassRefPtr.h', + 'wtf/Platform.h', + 'wtf/PtrAndFlags.h', + 'wtf/qt/MainThreadQt.cpp', + 'wtf/qt/ThreadingQt.cpp', + 'wtf/RandomNumber.cpp', + 'wtf/RandomNumber.h', + 'wtf/RandomNumberSeed.h', + 'wtf/RefCounted.h', + 'wtf/RefCountedLeakCounter.cpp', + 'wtf/RefCountedLeakCounter.h', + 'wtf/RefPtr.h', + 'wtf/RefPtrHashMap.h', + 'wtf/RetainPtr.h', + 'wtf/SegmentedVector.h', + 'wtf/StdLibExtras.h', + 'wtf/StringExtras.h', + 'wtf/TCPackedCache.h', + 'wtf/TCPageMap.h', + 'wtf/TCSpinLock.h', + 'wtf/TCSystemAlloc.cpp', + 'wtf/TCSystemAlloc.h', + 'wtf/Threading.cpp', + 'wtf/Threading.h', + 'wtf/ThreadingNone.cpp', + 'wtf/ThreadingPthreads.cpp', + 'wtf/ThreadingWin.cpp', + 'wtf/ThreadSpecific.h', + 'wtf/ThreadSpecificWin.cpp', + 'wtf/TypeTraits.cpp', + 'wtf/TypeTraits.h', + 'wtf/unicode/Collator.h', + 'wtf/unicode/CollatorDefault.cpp', + 'wtf/unicode/glib/UnicodeGLib.cpp', + 'wtf/unicode/glib/UnicodeGLib.h', + 'wtf/unicode/glib/UnicodeMacrosFromICU.h', + 'wtf/unicode/icu/CollatorICU.cpp', + 'wtf/unicode/icu/UnicodeIcu.h', + 'wtf/unicode/qt4/UnicodeQt4.h', + 'wtf/unicode/Unicode.h', + 'wtf/unicode/UTF8.cpp', + 'wtf/unicode/UTF8.h', + 'wtf/UnusedParam.h', + 'wtf/Vector.h', + 'wtf/VectorTraits.h', + 'wtf/VMTags.h', + 'wtf/win/MainThreadWin.cpp', + 'wtf/wx/MainThreadWx.cpp', + 'yarr/RegexCompiler.cpp', + 'yarr/RegexCompiler.h', + 'yarr/RegexInterpreter.cpp', + 'yarr/RegexInterpreter.h', + 'yarr/RegexJIT.cpp', + 'yarr/RegexJIT.h', + 'yarr/RegexParser.h', + 'yarr/RegexPattern.h', + ] + } +} diff --git a/src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.cpp b/src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.cpp index d777f73..5dae952 100644 --- a/src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.cpp @@ -363,15 +363,6 @@ void CodeBlock::dump(ExecState* exec) const } while (i < m_constantRegisters.size()); } - if (m_rareData && !m_rareData->m_unexpectedConstants.isEmpty()) { - printf("\nUnexpected Constants:\n"); - size_t i = 0; - do { - printf(" k%u = %s\n", static_cast<unsigned>(i), valueToSourceString(exec, m_rareData->m_unexpectedConstants[i]).ascii()); - ++i; - } while (i < m_rareData->m_unexpectedConstants.size()); - } - if (m_rareData && !m_rareData->m_regexps.isEmpty()) { printf("\nm_regexps:\n"); size_t i = 0; @@ -506,12 +497,6 @@ void CodeBlock::dump(ExecState* exec, const Vector<Instruction>::const_iterator& printf("[%4d] convert_this %s\n", location, registerName(r0).c_str()); break; } - case op_unexpected_load: { - int r0 = (++it)->u.operand; - int k0 = (++it)->u.operand; - printf("[%4d] unexpected_load\t %s, %s\n", location, registerName(r0).c_str(), constantName(exec, k0, unexpectedConstant(k0)).c_str()); - break; - } case op_new_object: { int r0 = (++it)->u.operand; printf("[%4d] new_object\t %s\n", location, registerName(r0).c_str()); @@ -1084,7 +1069,7 @@ void CodeBlock::dump(ExecState* exec, const Vector<Instruction>::const_iterator& int r0 = (++it)->u.operand; int errorType = (++it)->u.operand; int k0 = (++it)->u.operand; - printf("[%4d] new_error\t %s, %d, %s\n", location, registerName(r0).c_str(), errorType, constantName(exec, k0, unexpectedConstant(k0)).c_str()); + printf("[%4d] new_error\t %s, %d, %s\n", location, registerName(r0).c_str(), errorType, constantName(exec, k0, getConstant(k0)).c_str()); break; } case op_jsr: { @@ -1142,7 +1127,6 @@ static HashSet<CodeBlock*> liveCodeBlockSet; #define FOR_EACH_MEMBER_VECTOR_RARE_DATA(macro) \ macro(regexps) \ macro(functions) \ - macro(unexpectedConstants) \ macro(exceptionHandlers) \ macro(immediateSwitchJumpTables) \ macro(characterSwitchJumpTables) \ @@ -1267,7 +1251,6 @@ void CodeBlock::dumpStatistics() CodeBlock::CodeBlock(ScopeNode* ownerNode) : m_numCalleeRegisters(0) - , m_numConstants(0) , m_numVars(0) , m_numParameters(0) , m_ownerNode(ownerNode) @@ -1290,7 +1273,6 @@ CodeBlock::CodeBlock(ScopeNode* ownerNode) CodeBlock::CodeBlock(ScopeNode* ownerNode, CodeType codeType, PassRefPtr<SourceProvider> sourceProvider, unsigned sourceOffset) : m_numCalleeRegisters(0) - , m_numConstants(0) , m_numVars(0) , m_numParameters(0) , m_ownerNode(ownerNode) @@ -1455,10 +1437,6 @@ void CodeBlock::mark() for (size_t i = 0; i < m_rareData->m_functions.size(); ++i) m_rareData->m_functions[i]->body()->mark(); - for (size_t i = 0; i < m_rareData->m_unexpectedConstants.size(); ++i) { - if (!m_rareData->m_unexpectedConstants[i].marked()) - m_rareData->m_unexpectedConstants[i].mark(); - } m_rareData->m_evalCodeCache.mark(); } } @@ -1757,7 +1735,6 @@ void CodeBlock::shrinkToFit() if (m_rareData) { m_rareData->m_exceptionHandlers.shrinkToFit(); m_rareData->m_functions.shrinkToFit(); - m_rareData->m_unexpectedConstants.shrinkToFit(); m_rareData->m_regexps.shrinkToFit(); m_rareData->m_immediateSwitchJumpTables.shrinkToFit(); m_rareData->m_characterSwitchJumpTables.shrinkToFit(); diff --git a/src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.h b/src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.h index afd32f0..64b6c98 100644 --- a/src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.h +++ b/src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.h @@ -46,6 +46,12 @@ #include "StructureStubInfo.h" #endif +// Register numbers used in bytecode operations have different meaning accoring to their ranges: +// 0x80000000-0xFFFFFFFF Negative indicies from the CallFrame pointer are entries in the call frame, see RegisterFile.h. +// 0x00000000-0x3FFFFFFF Forwards indices from the CallFrame pointer are local vars and temporaries with the function's callframe. +// 0x40000000-0x7FFFFFFF Positive indices from 0x40000000 specify entries in the constant pool on the CodeBlock. +static const int FirstConstantRegisterIndex = 0x40000000; + namespace JSC { class ExecState; @@ -248,19 +254,9 @@ namespace JSC { return false; } - ALWAYS_INLINE bool isConstantRegisterIndex(int index) - { - return index >= m_numVars && index < m_numVars + m_numConstants; - } - - ALWAYS_INLINE JSValue getConstant(int index) - { - return m_constantRegisters[index - m_numVars].jsValue(); - } - ALWAYS_INLINE bool isTemporaryRegisterIndex(int index) { - return index >= m_numVars + m_numConstants; + return index >= m_numVars; } HandlerInfo* handlerForBytecodeOffset(unsigned bytecodeOffset); @@ -400,7 +396,9 @@ namespace JSC { size_t numberOfConstantRegisters() const { return m_constantRegisters.size(); } void addConstantRegister(const Register& r) { return m_constantRegisters.append(r); } - Register& constantRegister(int index) { return m_constantRegisters[index]; } + Register& constantRegister(int index) { return m_constantRegisters[index - FirstConstantRegisterIndex]; } + ALWAYS_INLINE bool isConstantRegisterIndex(int index) { return index >= FirstConstantRegisterIndex; } + ALWAYS_INLINE JSValue getConstant(int index) const { return m_constantRegisters[index - FirstConstantRegisterIndex].jsValue(); } unsigned addFunctionExpression(FuncExprNode* n) { unsigned size = m_functionExpressions.size(); m_functionExpressions.append(n); return size; } FuncExprNode* functionExpression(int index) const { return m_functionExpressions[index].get(); } @@ -410,9 +408,6 @@ namespace JSC { bool hasFunctions() const { return m_functionExpressions.size() || (m_rareData && m_rareData->m_functions.size()); } - unsigned addUnexpectedConstant(JSValue v) { createRareDataIfNecessary(); unsigned size = m_rareData->m_unexpectedConstants.size(); m_rareData->m_unexpectedConstants.append(v); return size; } - JSValue unexpectedConstant(int index) const { ASSERT(m_rareData); return m_rareData->m_unexpectedConstants[index]; } - unsigned addRegExp(RegExp* r) { createRareDataIfNecessary(); unsigned size = m_rareData->m_regexps.size(); m_rareData->m_regexps.append(r); return size; } RegExp* regexp(int index) const { ASSERT(m_rareData); return m_rareData->m_regexps[index].get(); } @@ -441,11 +436,6 @@ namespace JSC { // FIXME: Make these remaining members private. int m_numCalleeRegisters; - // NOTE: numConstants holds the number of constant registers allocated - // by the code generator, not the number of constant registers used. - // (Duplicate constants are uniqued during code generation, and spare - // constant registers may be allocated.) - int m_numConstants; int m_numVars; int m_numParameters; @@ -519,7 +509,6 @@ namespace JSC { // Rare Constants Vector<RefPtr<FuncDeclNode> > m_functions; - Vector<JSValue> m_unexpectedConstants; Vector<RefPtr<RegExp> > m_regexps; // Jump Tables @@ -574,6 +563,14 @@ namespace JSC { int m_baseScopeDepth; }; + inline Register& ExecState::r(int index) + { + CodeBlock* codeBlock = this->codeBlock(); + if (codeBlock->isConstantRegisterIndex(index)) + return codeBlock->constantRegister(index); + return this[index]; + } + } // namespace JSC #endif // CodeBlock_h diff --git a/src/3rdparty/webkit/JavaScriptCore/bytecode/Opcode.h b/src/3rdparty/webkit/JavaScriptCore/bytecode/Opcode.h index f4421df..27b016e 100644 --- a/src/3rdparty/webkit/JavaScriptCore/bytecode/Opcode.h +++ b/src/3rdparty/webkit/JavaScriptCore/bytecode/Opcode.h @@ -44,7 +44,6 @@ namespace JSC { macro(op_create_arguments, 1) \ macro(op_convert_this, 2) \ \ - macro(op_unexpected_load, 3) \ macro(op_new_object, 2) \ macro(op_new_array, 4) \ macro(op_new_regexp, 3) \ diff --git a/src/3rdparty/webkit/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp b/src/3rdparty/webkit/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp index 7feb3c8..15261ee 100644 --- a/src/3rdparty/webkit/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp @@ -196,17 +196,10 @@ bool BytecodeGenerator::addGlobalVar(const Identifier& ident, bool isConstant, R return result.second; } -void BytecodeGenerator::allocateConstants(size_t count) +void BytecodeGenerator::preserveLastVar() { - m_codeBlock->m_numConstants = count; - if (!count) - return; - - m_nextConstantIndex = m_calleeRegisters.size(); - - for (size_t i = 0; i < count; ++i) - newRegister(); - m_lastConstant = &m_calleeRegisters.last(); + if ((m_firstConstantIndex = m_calleeRegisters.size()) != 0) + m_lastVar = &m_calleeRegisters.last(); } BytecodeGenerator::BytecodeGenerator(ProgramNode* programNode, const Debugger* debugger, const ScopeChain& scopeChain, SymbolTable* symbolTable, ProgramCodeBlock* codeBlock) @@ -222,6 +215,7 @@ BytecodeGenerator::BytecodeGenerator(ProgramNode* programNode, const Debugger* d , m_baseScopeDepth(0) , m_codeType(GlobalCode) , m_nextGlobalIndex(-1) + , m_nextConstantOffset(0) , m_globalConstantIndex(0) , m_globalData(&scopeChain.globalObject()->globalExec()->globalData()) , m_lastOpcodeID(op_end) @@ -272,7 +266,7 @@ BytecodeGenerator::BytecodeGenerator(ProgramNode* programNode, const Debugger* d if (!globalObject->hasProperty(exec, varStack[i].first)) newVars.append(addGlobalVar(varStack[i].first, varStack[i].second & DeclarationStacks::IsConstant)); - allocateConstants(programNode->neededConstants()); + preserveLastVar(); for (size_t i = 0; i < newVars.size(); ++i) emitLoad(newVars[i], jsUndefined()); @@ -290,7 +284,7 @@ BytecodeGenerator::BytecodeGenerator(ProgramNode* programNode, const Debugger* d globalObject->putWithAttributes(exec, varStack[i].first, jsUndefined(), attributes); } - allocateConstants(programNode->neededConstants()); + preserveLastVar(); } } @@ -305,6 +299,7 @@ BytecodeGenerator::BytecodeGenerator(FunctionBodyNode* functionBody, const Debug , m_dynamicScopeDepth(0) , m_baseScopeDepth(0) , m_codeType(FunctionCode) + , m_nextConstantOffset(0) , m_globalConstantIndex(0) , m_globalData(&scopeChain.globalObject()->globalExec()->globalData()) , m_lastOpcodeID(op_end) @@ -372,7 +367,7 @@ BytecodeGenerator::BytecodeGenerator(FunctionBodyNode* functionBody, const Debug for (size_t i = 0; i < parameterCount; ++i) addParameter(parameters[i]); - allocateConstants(functionBody->neededConstants()); + preserveLastVar(); } BytecodeGenerator::BytecodeGenerator(EvalNode* evalNode, const Debugger* debugger, const ScopeChain& scopeChain, SymbolTable* symbolTable, EvalCodeBlock* codeBlock) @@ -387,6 +382,7 @@ BytecodeGenerator::BytecodeGenerator(EvalNode* evalNode, const Debugger* debugge , m_dynamicScopeDepth(0) , m_baseScopeDepth(codeBlock->baseScopeDepth()) , m_codeType(EvalCode) + , m_nextConstantOffset(0) , m_globalConstantIndex(0) , m_globalData(&scopeChain.globalObject()->globalExec()->globalData()) , m_lastOpcodeID(op_end) @@ -401,7 +397,7 @@ BytecodeGenerator::BytecodeGenerator(EvalNode* evalNode, const Debugger* debugge codeBlock->setGlobalData(m_globalData); m_codeBlock->m_numParameters = 1; // Allocate space for "this" - allocateConstants(evalNode->neededConstants()); + preserveLastVar(); } RegisterID* BytecodeGenerator::addParameter(const Identifier& ident) @@ -525,7 +521,7 @@ PassRefPtr<LabelScope> BytecodeGenerator::newLabelScope(LabelScope::Type type, c m_labelScopes.removeLast(); // Allocate new label scope. - LabelScope scope(type, name, scopeDepth(), newLabel(), type == LabelScope::Loop ? newLabel() : 0); // Only loops have continue targets. + LabelScope scope(type, name, scopeDepth(), newLabel(), type == LabelScope::Loop ? newLabel() : PassRefPtr<Label>()); // Only loops have continue targets. m_labelScopes.append(scope); return &m_labelScopes.last(); } @@ -791,34 +787,19 @@ unsigned BytecodeGenerator::addConstant(const Identifier& ident) return result.first->second; } -RegisterID* BytecodeGenerator::addConstant(JSValue v) +RegisterID* BytecodeGenerator::addConstantValue(JSValue v) { - pair<JSValueMap::iterator, bool> result = m_jsValueMap.add(JSValue::encode(v), m_nextConstantIndex); - if (result.second) { - RegisterID& constant = m_calleeRegisters[m_nextConstantIndex]; - - ++m_nextConstantIndex; + int index = m_nextConstantOffset; + pair<JSValueMap::iterator, bool> result = m_jsValueMap.add(JSValue::encode(v), m_nextConstantOffset); + if (result.second) { + m_constantPoolRegisters.append(FirstConstantRegisterIndex + m_nextConstantOffset); + ++m_nextConstantOffset; m_codeBlock->addConstantRegister(JSValue(v)); - return &constant; - } + } else + index = result.first->second; - return ®isterFor(result.first->second); -} - -unsigned BytecodeGenerator::addUnexpectedConstant(JSValue v) -{ - return m_codeBlock->addUnexpectedConstant(v); -} - -RegisterID* BytecodeGenerator::emitLoadGlobalObject(RegisterID* dst, JSObject* globalObject) -{ - if (!m_globalConstantIndex) - m_globalConstantIndex = m_codeBlock->addUnexpectedConstant(globalObject); - emitOpcode(op_unexpected_load); - instructions().append(dst->index()); - instructions().append(m_globalConstantIndex); - return dst; + return &m_constantPoolRegisters[index]; } unsigned BytecodeGenerator::addRegExp(RegExp* r) @@ -898,8 +879,8 @@ RegisterID* BytecodeGenerator::emitEqualityOp(OpcodeID opcodeID, RegisterID* dst if (src1->index() == dstIndex && src1->isTemporary() && m_codeBlock->isConstantRegisterIndex(src2->index()) - && m_codeBlock->constantRegister(src2->index() - m_codeBlock->m_numVars).jsValue().isString()) { - const UString& value = asString(m_codeBlock->constantRegister(src2->index() - m_codeBlock->m_numVars).jsValue())->value(); + && m_codeBlock->constantRegister(src2->index()).jsValue().isString()) { + const UString& value = asString(m_codeBlock->constantRegister(src2->index()).jsValue())->value(); if (value == "undefined") { rewindUnaryOp(); emitOpcode(op_is_undefined); @@ -979,28 +960,12 @@ RegisterID* BytecodeGenerator::emitLoad(RegisterID* dst, const Identifier& ident RegisterID* BytecodeGenerator::emitLoad(RegisterID* dst, JSValue v) { - RegisterID* constantID = addConstant(v); + RegisterID* constantID = addConstantValue(v); if (dst) return emitMove(dst, constantID); return constantID; } -RegisterID* BytecodeGenerator::emitUnexpectedLoad(RegisterID* dst, bool b) -{ - emitOpcode(op_unexpected_load); - instructions().append(dst->index()); - instructions().append(addUnexpectedConstant(jsBoolean(b))); - return dst; -} - -RegisterID* BytecodeGenerator::emitUnexpectedLoad(RegisterID* dst, double d) -{ - emitOpcode(op_unexpected_load); - instructions().append(dst->index()); - instructions().append(addUnexpectedConstant(jsNumber(globalData(), d))); - return dst; -} - bool BytecodeGenerator::findScopedProperty(const Identifier& property, int& index, size_t& stackDepth, bool forWriting, JSObject*& globalObject) { // Cases where we cannot statically optimize the lookup. @@ -1169,7 +1134,7 @@ RegisterID* BytecodeGenerator::emitResolveBase(RegisterID* dst, const Identifier } // Global object is the base - return emitLoadGlobalObject(dst, globalObject); + return emitLoad(dst, JSValue(globalObject)); } RegisterID* BytecodeGenerator::emitResolveWithBase(RegisterID* baseDst, RegisterID* propDst, const Identifier& property) @@ -1196,7 +1161,7 @@ RegisterID* BytecodeGenerator::emitResolveWithBase(RegisterID* baseDst, Register } // Global object is the base - emitLoadGlobalObject(baseDst, globalObject); + emitLoad(baseDst, JSValue(globalObject)); if (index != missingSymbolMarker() && !forceGlobalResolve) { // Directly index the property lookup across multiple scopes. @@ -1831,7 +1796,7 @@ RegisterID* BytecodeGenerator::emitNewError(RegisterID* dst, ErrorType type, JSV emitOpcode(op_new_error); instructions().append(dst->index()); instructions().append(static_cast<int>(type)); - instructions().append(addUnexpectedConstant(message)); + instructions().append(addConstantValue(message)->index()); return dst; } diff --git a/src/3rdparty/webkit/JavaScriptCore/bytecompiler/BytecodeGenerator.h b/src/3rdparty/webkit/JavaScriptCore/bytecompiler/BytecodeGenerator.h index d29a24d..54d0289 100644 --- a/src/3rdparty/webkit/JavaScriptCore/bytecompiler/BytecodeGenerator.h +++ b/src/3rdparty/webkit/JavaScriptCore/bytecompiler/BytecodeGenerator.h @@ -245,9 +245,6 @@ namespace JSC { RegisterID* emitLoad(RegisterID* dst, double); RegisterID* emitLoad(RegisterID* dst, const Identifier&); RegisterID* emitLoad(RegisterID* dst, JSValue); - RegisterID* emitUnexpectedLoad(RegisterID* dst, bool); - RegisterID* emitUnexpectedLoad(RegisterID* dst, double); - RegisterID* emitLoadGlobalObject(RegisterID* dst, JSObject* globalObject); RegisterID* emitUnaryOp(OpcodeID, RegisterID* dst, RegisterID* src); RegisterID* emitBinaryOp(OpcodeID, RegisterID* dst, RegisterID* src1, RegisterID* src2, OperandTypes); @@ -399,7 +396,7 @@ namespace JSC { RegisterID* addParameter(const Identifier&); - void allocateConstants(size_t); + void preserveLastVar(); RegisterID& registerFor(int index) { @@ -420,8 +417,7 @@ namespace JSC { unsigned addConstant(FuncDeclNode*); unsigned addConstant(FuncExprNode*); unsigned addConstant(const Identifier&); - RegisterID* addConstant(JSValue); - unsigned addUnexpectedConstant(JSValue); + RegisterID* addConstantValue(JSValue); unsigned addRegExp(RegExp*); Vector<Instruction>& instructions() { return m_codeBlock->instructions(); } @@ -450,12 +446,13 @@ namespace JSC { RegisterID m_thisRegister; RegisterID m_argumentsRegister; int m_activationRegisterIndex; + WTF::SegmentedVector<RegisterID, 32> m_constantPoolRegisters; WTF::SegmentedVector<RegisterID, 32> m_calleeRegisters; WTF::SegmentedVector<RegisterID, 32> m_parameters; WTF::SegmentedVector<RegisterID, 32> m_globals; WTF::SegmentedVector<Label, 32> m_labels; WTF::SegmentedVector<LabelScope, 8> m_labelScopes; - RefPtr<RegisterID> m_lastConstant; + RefPtr<RegisterID> m_lastVar; int m_finallyDepth; int m_dynamicScopeDepth; int m_baseScopeDepth; @@ -466,7 +463,8 @@ namespace JSC { int m_nextGlobalIndex; int m_nextParameterIndex; - int m_nextConstantIndex; + int m_firstConstantIndex; + int m_nextConstantOffset; unsigned m_globalConstantIndex; int m_globalVarStorageOffset; diff --git a/src/3rdparty/webkit/JavaScriptCore/create_hash_table b/src/3rdparty/webkit/JavaScriptCore/create_hash_table index 25d0b02..4184500 100755 --- a/src/3rdparty/webkit/JavaScriptCore/create_hash_table +++ b/src/3rdparty/webkit/JavaScriptCore/create_hash_table @@ -268,7 +268,7 @@ sub output() { } print " { 0, 0, 0, 0 }\n"; print "};\n\n"; - print "extern const struct HashTable $name =\n"; + print "extern JSC_CONST_HASHTABLE HashTable $name =\n"; print " \{ $compactSize, $compactHashSizeMask, $nameEntries, 0 \};\n"; print "} // namespace\n"; } diff --git a/src/3rdparty/webkit/JavaScriptCore/debugger/Debugger.h b/src/3rdparty/webkit/JavaScriptCore/debugger/Debugger.h index 868ea71..98d0935 100644 --- a/src/3rdparty/webkit/JavaScriptCore/debugger/Debugger.h +++ b/src/3rdparty/webkit/JavaScriptCore/debugger/Debugger.h @@ -38,7 +38,7 @@ namespace JSC { virtual ~Debugger(); void attach(JSGlobalObject*); - void detach(JSGlobalObject*); + virtual void detach(JSGlobalObject*); virtual void sourceParsed(ExecState*, const SourceCode&, int errorLine, const UString& errorMsg) = 0; virtual void exception(const DebuggerCallFrame&, intptr_t sourceID, int lineno) = 0; diff --git a/src/3rdparty/webkit/JavaScriptCore/generated/ArrayPrototype.lut.h b/src/3rdparty/webkit/JavaScriptCore/generated/ArrayPrototype.lut.h index 2a7c98f..5732add 100644 --- a/src/3rdparty/webkit/JavaScriptCore/generated/ArrayPrototype.lut.h +++ b/src/3rdparty/webkit/JavaScriptCore/generated/ArrayPrototype.lut.h @@ -29,6 +29,6 @@ static const struct HashTableValue arrayTableValues[22] = { { 0, 0, 0, 0 } }; -extern const struct HashTable arrayTable = +extern JSC_CONST_HASHTABLE HashTable arrayTable = { 65, 63, arrayTableValues, 0 }; } // namespace diff --git a/src/3rdparty/webkit/JavaScriptCore/generated/DatePrototype.lut.h b/src/3rdparty/webkit/JavaScriptCore/generated/DatePrototype.lut.h index 1f43d4d..8b1c735 100644 --- a/src/3rdparty/webkit/JavaScriptCore/generated/DatePrototype.lut.h +++ b/src/3rdparty/webkit/JavaScriptCore/generated/DatePrototype.lut.h @@ -54,6 +54,6 @@ static const struct HashTableValue dateTableValues[47] = { { 0, 0, 0, 0 } }; -extern const struct HashTable dateTable = +extern JSC_CONST_HASHTABLE HashTable dateTable = { 134, 127, dateTableValues, 0 }; } // namespace diff --git a/src/3rdparty/webkit/JavaScriptCore/generated/Grammar.cpp b/src/3rdparty/webkit/JavaScriptCore/generated/Grammar.cpp index 8e80eca..4e16e25 100644 --- a/src/3rdparty/webkit/JavaScriptCore/generated/Grammar.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/generated/Grammar.cpp @@ -1,24 +1,23 @@ -/* A Bison parser, made by GNU Bison 2.3. */ -/* Skeleton implementation for Bison's Yacc-like parsers in C +/* A Bison parser, made by GNU Bison 2.4.1. */ - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +/* Skeleton implementation for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -29,7 +28,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -47,7 +46,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.3" +#define YYBISON_VERSION "2.4.1" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -55,159 +54,28 @@ /* Pure parsers. */ #define YYPURE 1 +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + /* Using locations. */ #define YYLSP_NEEDED 1 /* Substitute the variable and function names. */ -#define yyparse jscyyparse -#define yylex jscyylex -#define yyerror jscyyerror -#define yylval jscyylval -#define yychar jscyychar -#define yydebug jscyydebug -#define yynerrs jscyynerrs -#define yylloc jscyylloc - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - NULLTOKEN = 258, - TRUETOKEN = 259, - FALSETOKEN = 260, - BREAK = 261, - CASE = 262, - DEFAULT = 263, - FOR = 264, - NEW = 265, - VAR = 266, - CONSTTOKEN = 267, - CONTINUE = 268, - FUNCTION = 269, - RETURN = 270, - VOIDTOKEN = 271, - DELETETOKEN = 272, - IF = 273, - THISTOKEN = 274, - DO = 275, - WHILE = 276, - INTOKEN = 277, - INSTANCEOF = 278, - TYPEOF = 279, - SWITCH = 280, - WITH = 281, - RESERVED = 282, - THROW = 283, - TRY = 284, - CATCH = 285, - FINALLY = 286, - DEBUGGER = 287, - IF_WITHOUT_ELSE = 288, - ELSE = 289, - EQEQ = 290, - NE = 291, - STREQ = 292, - STRNEQ = 293, - LE = 294, - GE = 295, - OR = 296, - AND = 297, - PLUSPLUS = 298, - MINUSMINUS = 299, - LSHIFT = 300, - RSHIFT = 301, - URSHIFT = 302, - PLUSEQUAL = 303, - MINUSEQUAL = 304, - MULTEQUAL = 305, - DIVEQUAL = 306, - LSHIFTEQUAL = 307, - RSHIFTEQUAL = 308, - URSHIFTEQUAL = 309, - ANDEQUAL = 310, - MODEQUAL = 311, - XOREQUAL = 312, - OREQUAL = 313, - OPENBRACE = 314, - CLOSEBRACE = 315, - NUMBER = 316, - IDENT = 317, - STRING = 318, - AUTOPLUSPLUS = 319, - AUTOMINUSMINUS = 320 - }; -#endif -/* Tokens. */ -#define NULLTOKEN 258 -#define TRUETOKEN 259 -#define FALSETOKEN 260 -#define BREAK 261 -#define CASE 262 -#define DEFAULT 263 -#define FOR 264 -#define NEW 265 -#define VAR 266 -#define CONSTTOKEN 267 -#define CONTINUE 268 -#define FUNCTION 269 -#define RETURN 270 -#define VOIDTOKEN 271 -#define DELETETOKEN 272 -#define IF 273 -#define THISTOKEN 274 -#define DO 275 -#define WHILE 276 -#define INTOKEN 277 -#define INSTANCEOF 278 -#define TYPEOF 279 -#define SWITCH 280 -#define WITH 281 -#define RESERVED 282 -#define THROW 283 -#define TRY 284 -#define CATCH 285 -#define FINALLY 286 -#define DEBUGGER 287 -#define IF_WITHOUT_ELSE 288 -#define ELSE 289 -#define EQEQ 290 -#define NE 291 -#define STREQ 292 -#define STRNEQ 293 -#define LE 294 -#define GE 295 -#define OR 296 -#define AND 297 -#define PLUSPLUS 298 -#define MINUSMINUS 299 -#define LSHIFT 300 -#define RSHIFT 301 -#define URSHIFT 302 -#define PLUSEQUAL 303 -#define MINUSEQUAL 304 -#define MULTEQUAL 305 -#define DIVEQUAL 306 -#define LSHIFTEQUAL 307 -#define RSHIFTEQUAL 308 -#define URSHIFTEQUAL 309 -#define ANDEQUAL 310 -#define MODEQUAL 311 -#define XOREQUAL 312 -#define OREQUAL 313 -#define OPENBRACE 314 -#define CLOSEBRACE 315 -#define NUMBER 316 -#define IDENT 317 -#define STRING 318 -#define AUTOPLUSPLUS 319 -#define AUTOMINUSMINUS 320 - - - +#define yyparse jscyyparse +#define yylex jscyylex +#define yyerror jscyyerror +#define yylval jscyylval +#define yychar jscyychar +#define yydebug jscyydebug +#define yynerrs jscyynerrs +#define yylloc jscyylloc /* Copy the first part of user declarations. */ + +/* Line 189 of yacc.c */ #line 3 "../parser/Grammar.y" @@ -363,6 +231,9 @@ static inline void appendToVarDeclarationList(void* globalPtr, ParserArenaData<D +/* Line 189 of yacc.c */ +#line 236 "JavaScriptCore/tmp/../generated/Grammar.tab.c" + /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 @@ -381,10 +252,88 @@ static inline void appendToVarDeclarationList(void* globalPtr, ParserArenaData<D # define YYTOKEN_TABLE 0 #endif + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + NULLTOKEN = 258, + TRUETOKEN = 259, + FALSETOKEN = 260, + BREAK = 261, + CASE = 262, + DEFAULT = 263, + FOR = 264, + NEW = 265, + VAR = 266, + CONSTTOKEN = 267, + CONTINUE = 268, + FUNCTION = 269, + RETURN = 270, + VOIDTOKEN = 271, + DELETETOKEN = 272, + IF = 273, + THISTOKEN = 274, + DO = 275, + WHILE = 276, + INTOKEN = 277, + INSTANCEOF = 278, + TYPEOF = 279, + SWITCH = 280, + WITH = 281, + RESERVED = 282, + THROW = 283, + TRY = 284, + CATCH = 285, + FINALLY = 286, + DEBUGGER = 287, + IF_WITHOUT_ELSE = 288, + ELSE = 289, + EQEQ = 290, + NE = 291, + STREQ = 292, + STRNEQ = 293, + LE = 294, + GE = 295, + OR = 296, + AND = 297, + PLUSPLUS = 298, + MINUSMINUS = 299, + LSHIFT = 300, + RSHIFT = 301, + URSHIFT = 302, + PLUSEQUAL = 303, + MINUSEQUAL = 304, + MULTEQUAL = 305, + DIVEQUAL = 306, + LSHIFTEQUAL = 307, + RSHIFTEQUAL = 308, + URSHIFTEQUAL = 309, + ANDEQUAL = 310, + MODEQUAL = 311, + XOREQUAL = 312, + OREQUAL = 313, + OPENBRACE = 314, + CLOSEBRACE = 315, + NUMBER = 316, + IDENT = 317, + STRING = 318, + AUTOPLUSPLUS = 319, + AUTOMINUSMINUS = 320 + }; +#endif + + + #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 157 "../parser/Grammar.y" { + +/* Line 214 of yacc.c */ +#line 157 "../parser/Grammar.y" + int intValue; double doubleValue; Identifier* ident; @@ -414,13 +363,15 @@ typedef union YYSTYPE ParameterListInfo parameterList; Operator op; -} -/* Line 187 of yacc.c. */ -#line 420 "JavaScriptCore/tmp/../generated/Grammar.tab.c" - YYSTYPE; + + + +/* Line 214 of yacc.c */ +#line 371 "JavaScriptCore/tmp/../generated/Grammar.tab.c" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED @@ -440,8 +391,8 @@ typedef struct YYLTYPE /* Copy the second part of user declarations. */ -/* Line 216 of yacc.c. */ -#line 445 "JavaScriptCore/tmp/../generated/Grammar.tab.c" +/* Line 264 of yacc.c */ +#line 396 "JavaScriptCore/tmp/../generated/Grammar.tab.c" #ifdef short # undef short @@ -516,14 +467,14 @@ typedef short int yytype_int16; #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static int -YYID (int i) +YYID (int yyi) #else static int -YYID (i) - int i; +YYID (yyi) + int yyi; #endif { - return i; + return yyi; } #endif @@ -605,9 +556,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss; - YYSTYPE yyvs; - YYLTYPE yyls; + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; + YYLTYPE yyls_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ @@ -642,12 +593,12 @@ union yyalloc elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack) \ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ @@ -2361,17 +2312,20 @@ yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp) #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) #else static void -yy_stack_print (bottom, top) - yytype_int16 *bottom; - yytype_int16 *top; +yy_stack_print (yybottom, yytop) + yytype_int16 *yybottom; + yytype_int16 *yytop; #endif { YYFPRINTF (stderr, "Stack now"); - for (; bottom <= top; ++bottom) - YYFPRINTF (stderr, " %d", *bottom); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } YYFPRINTF (stderr, "\n"); } @@ -2406,11 +2360,11 @@ yy_reduce_print (yyvsp, yylsp, yyrule) /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { - fprintf (stderr, " $%d = ", yyi + 1); + YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]) , &(yylsp[(yyi + 1) - (yynrhs)]) ); - fprintf (stderr, "\n"); + YYFPRINTF (stderr, "\n"); } } @@ -2692,10 +2646,8 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) break; } } - /* Prevent warnings from -Wmissing-prototypes. */ - #ifdef YYPARSE_PARAM #if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); @@ -2714,10 +2666,9 @@ int yyparse (); - -/*----------. -| yyparse. | -`----------*/ +/*-------------------------. +| yyparse or yypush_parse. | +`-------------------------*/ #ifdef YYPARSE_PARAM #if (defined __STDC__ || defined __C99__FUNC__ \ @@ -2741,88 +2692,97 @@ yyparse () #endif #endif { - /* The look-ahead symbol. */ +/* The lookahead symbol. */ int yychar; -/* The semantic value of the look-ahead symbol. */ +/* The semantic value of the lookahead symbol. */ YYSTYPE yylval; -/* Number of syntax errors so far. */ -int yynerrs; -/* Location data for the look-ahead symbol. */ +/* Location data for the lookahead symbol. */ YYLTYPE yylloc; - int yystate; - int yyn; - int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Look-ahead token as an internal (translated) token number. */ - int yytoken = 0; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif + /* Number of syntax errors so far. */ + int yynerrs; - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ + /* The stacks and their tools: + `yyss': related to states. + `yyvs': related to semantic values. + `yyls': related to locations. - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss = yyssa; - yytype_int16 *yyssp; + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; - /* The location stack. */ - YYLTYPE yylsa[YYINITDEPTH]; - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; - /* The locations where the error started and ended. */ - YYLTYPE yyerror_range[2]; + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) + /* The location stack. */ + YYLTYPE yylsa[YYINITDEPTH]; + YYLTYPE *yyls; + YYLTYPE *yylsp; + + /* The locations where the error started and ended. */ + YYLTYPE yyerror_range[2]; - YYSIZE_T yystacksize = YYINITDEPTH; + YYSIZE_T yystacksize; + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; YYLTYPE yyloc; +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) + /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; + yytoken = 0; + yyss = yyssa; + yyvs = yyvsa; + yyls = yylsa; + yystacksize = YYINITDEPTH; + YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ + yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ - yyssp = yyss; yyvsp = yyvs; yylsp = yyls; + #if YYLTYPE_IS_TRIVIAL /* Initialize the default location before parsing starts. */ yylloc.first_line = yylloc.last_line = 1; - yylloc.first_column = yylloc.last_column = 0; + yylloc.first_column = yylloc.last_column = 1; #endif goto yysetstate; @@ -2861,6 +2821,7 @@ YYLTYPE yylloc; &yyvs1, yysize * sizeof (*yyvsp), &yyls1, yysize * sizeof (*yylsp), &yystacksize); + yyls = yyls1; yyss = yyss1; yyvs = yyvs1; @@ -2882,9 +2843,9 @@ YYLTYPE yylloc; (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); - YYSTACK_RELOCATE (yyls); + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); + YYSTACK_RELOCATE (yyls_alloc, yyls); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); @@ -2905,6 +2866,9 @@ YYLTYPE yylloc; YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + if (yystate == YYFINAL) + YYACCEPT; + goto yybackup; /*-----------. @@ -2913,16 +2877,16 @@ YYLTYPE yylloc; yybackup: /* Do appropriate processing given the current state. Read a - look-ahead token if we need one and don't already have one. */ + lookahead token if we need one and don't already have one. */ - /* First try to decide what to do without reference to look-ahead token. */ + /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; - /* Not known => get a look-ahead token if don't already have one. */ + /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); @@ -2954,20 +2918,16 @@ yybackup: goto yyreduce; } - if (yyn == YYFINAL) - YYACCEPT; - /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; - /* Shift the look-ahead token. */ + /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - /* Discard the shifted token unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; + /* Discard the shifted token. */ + yychar = YYEMPTY; yystate = yyn; *++yyvsp = yylval; @@ -3008,31 +2968,43 @@ yyreduce: switch (yyn) { case 2: + +/* Line 1455 of yacc.c */ #line 290 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NullNode(GLOBAL_DATA), 0, 1); ;} break; case 3: + +/* Line 1455 of yacc.c */ #line 291 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BooleanNode(GLOBAL_DATA, true), 0, 1); ;} break; case 4: + +/* Line 1455 of yacc.c */ #line 292 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BooleanNode(GLOBAL_DATA, false), 0, 1); ;} break; case 5: + +/* Line 1455 of yacc.c */ #line 293 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeNumberNode(GLOBAL_DATA, (yyvsp[(1) - (1)].doubleValue)), 0, 1); ;} break; case 6: + +/* Line 1455 of yacc.c */ #line 294 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) StringNode(GLOBAL_DATA, *(yyvsp[(1) - (1)].ident)), 0, 1); ;} break; case 7: + +/* Line 1455 of yacc.c */ #line 295 "../parser/Grammar.y" { Lexer& l = *LEXER; @@ -3046,6 +3018,8 @@ yyreduce: break; case 8: + +/* Line 1455 of yacc.c */ #line 304 "../parser/Grammar.y" { Lexer& l = *LEXER; @@ -3059,26 +3033,36 @@ yyreduce: break; case 9: + +/* Line 1455 of yacc.c */ #line 316 "../parser/Grammar.y" { (yyval.propertyNode) = createNodeInfo<PropertyNode*>(new (GLOBAL_DATA) PropertyNode(GLOBAL_DATA, *(yyvsp[(1) - (3)].ident), (yyvsp[(3) - (3)].expressionNode).m_node, PropertyNode::Constant), (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 10: + +/* Line 1455 of yacc.c */ #line 317 "../parser/Grammar.y" { (yyval.propertyNode) = createNodeInfo<PropertyNode*>(new (GLOBAL_DATA) PropertyNode(GLOBAL_DATA, *(yyvsp[(1) - (3)].ident), (yyvsp[(3) - (3)].expressionNode).m_node, PropertyNode::Constant), (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 11: + +/* Line 1455 of yacc.c */ #line 318 "../parser/Grammar.y" { (yyval.propertyNode) = createNodeInfo<PropertyNode*>(new (GLOBAL_DATA) PropertyNode(GLOBAL_DATA, Identifier(GLOBAL_DATA, UString::from((yyvsp[(1) - (3)].doubleValue))), (yyvsp[(3) - (3)].expressionNode).m_node, PropertyNode::Constant), (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 12: + +/* Line 1455 of yacc.c */ #line 319 "../parser/Grammar.y" { (yyval.propertyNode) = createNodeInfo<PropertyNode*>(makeGetterOrSetterPropertyNode(globalPtr, *(yyvsp[(1) - (7)].ident), *(yyvsp[(2) - (7)].ident), 0, (yyvsp[(6) - (7)].functionBodyNode), LEXER->sourceCode((yyvsp[(5) - (7)].intValue), (yyvsp[(7) - (7)].intValue), (yylsp[(5) - (7)]).first_line)), ClosureFeature, 0); DBG((yyvsp[(6) - (7)].functionBodyNode), (yylsp[(5) - (7)]), (yylsp[(7) - (7)])); if (!(yyval.propertyNode).m_node) YYABORT; ;} break; case 13: + +/* Line 1455 of yacc.c */ #line 321 "../parser/Grammar.y" { (yyval.propertyNode) = createNodeInfo<PropertyNode*>(makeGetterOrSetterPropertyNode(globalPtr, *(yyvsp[(1) - (8)].ident), *(yyvsp[(2) - (8)].ident), (yyvsp[(4) - (8)].parameterList).m_node.head, (yyvsp[(7) - (8)].functionBodyNode), LEXER->sourceCode((yyvsp[(6) - (8)].intValue), (yyvsp[(8) - (8)].intValue), (yylsp[(6) - (8)]).first_line)), (yyvsp[(4) - (8)].parameterList).m_features | ClosureFeature, 0); @@ -3091,6 +3075,8 @@ yyreduce: break; case 14: + +/* Line 1455 of yacc.c */ #line 332 "../parser/Grammar.y" { (yyval.propertyList).m_node.head = new (GLOBAL_DATA) PropertyListNode(GLOBAL_DATA, (yyvsp[(1) - (1)].propertyNode).m_node); (yyval.propertyList).m_node.tail = (yyval.propertyList).m_node.head; @@ -3099,6 +3085,8 @@ yyreduce: break; case 15: + +/* Line 1455 of yacc.c */ #line 336 "../parser/Grammar.y" { (yyval.propertyList).m_node.head = (yyvsp[(1) - (3)].propertyList).m_node.head; (yyval.propertyList).m_node.tail = new (GLOBAL_DATA) PropertyListNode(GLOBAL_DATA, (yyvsp[(3) - (3)].propertyNode).m_node, (yyvsp[(1) - (3)].propertyList).m_node.tail); @@ -3107,51 +3095,71 @@ yyreduce: break; case 17: + +/* Line 1455 of yacc.c */ #line 344 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ObjectLiteralNode(GLOBAL_DATA), 0, 0); ;} break; case 18: + +/* Line 1455 of yacc.c */ #line 345 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ObjectLiteralNode(GLOBAL_DATA, (yyvsp[(2) - (3)].propertyList).m_node.head), (yyvsp[(2) - (3)].propertyList).m_features, (yyvsp[(2) - (3)].propertyList).m_numConstants); ;} break; case 19: + +/* Line 1455 of yacc.c */ #line 347 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ObjectLiteralNode(GLOBAL_DATA, (yyvsp[(2) - (4)].propertyList).m_node.head), (yyvsp[(2) - (4)].propertyList).m_features, (yyvsp[(2) - (4)].propertyList).m_numConstants); ;} break; case 20: + +/* Line 1455 of yacc.c */ #line 351 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ThisNode(GLOBAL_DATA), ThisFeature, 0); ;} break; case 23: + +/* Line 1455 of yacc.c */ #line 354 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ResolveNode(GLOBAL_DATA, *(yyvsp[(1) - (1)].ident), (yylsp[(1) - (1)]).first_column), (*(yyvsp[(1) - (1)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0, 0); ;} break; case 24: + +/* Line 1455 of yacc.c */ #line 355 "../parser/Grammar.y" { (yyval.expressionNode) = (yyvsp[(2) - (3)].expressionNode); ;} break; case 25: + +/* Line 1455 of yacc.c */ #line 359 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ArrayNode(GLOBAL_DATA, (yyvsp[(2) - (3)].intValue)), 0, (yyvsp[(2) - (3)].intValue) ? 1 : 0); ;} break; case 26: + +/* Line 1455 of yacc.c */ #line 360 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ArrayNode(GLOBAL_DATA, (yyvsp[(2) - (3)].elementList).m_node.head), (yyvsp[(2) - (3)].elementList).m_features, (yyvsp[(2) - (3)].elementList).m_numConstants); ;} break; case 27: + +/* Line 1455 of yacc.c */ #line 361 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ArrayNode(GLOBAL_DATA, (yyvsp[(4) - (5)].intValue), (yyvsp[(2) - (5)].elementList).m_node.head), (yyvsp[(2) - (5)].elementList).m_features, (yyvsp[(4) - (5)].intValue) ? (yyvsp[(2) - (5)].elementList).m_numConstants + 1 : (yyvsp[(2) - (5)].elementList).m_numConstants); ;} break; case 28: + +/* Line 1455 of yacc.c */ #line 365 "../parser/Grammar.y" { (yyval.elementList).m_node.head = new (GLOBAL_DATA) ElementNode(GLOBAL_DATA, (yyvsp[(1) - (2)].intValue), (yyvsp[(2) - (2)].expressionNode).m_node); (yyval.elementList).m_node.tail = (yyval.elementList).m_node.head; @@ -3160,6 +3168,8 @@ yyreduce: break; case 29: + +/* Line 1455 of yacc.c */ #line 370 "../parser/Grammar.y" { (yyval.elementList).m_node.head = (yyvsp[(1) - (4)].elementList).m_node.head; (yyval.elementList).m_node.tail = new (GLOBAL_DATA) ElementNode(GLOBAL_DATA, (yyvsp[(1) - (4)].elementList).m_node.tail, (yyvsp[(3) - (4)].intValue), (yyvsp[(4) - (4)].expressionNode).m_node); @@ -3168,26 +3178,36 @@ yyreduce: break; case 30: + +/* Line 1455 of yacc.c */ #line 377 "../parser/Grammar.y" { (yyval.intValue) = 0; ;} break; case 32: + +/* Line 1455 of yacc.c */ #line 382 "../parser/Grammar.y" { (yyval.intValue) = 1; ;} break; case 33: + +/* Line 1455 of yacc.c */ #line 383 "../parser/Grammar.y" { (yyval.intValue) = (yyvsp[(1) - (2)].intValue) + 1; ;} break; case 35: + +/* Line 1455 of yacc.c */ #line 388 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>((yyvsp[(1) - (1)].funcExprNode).m_node, (yyvsp[(1) - (1)].funcExprNode).m_features, (yyvsp[(1) - (1)].funcExprNode).m_numConstants); ;} break; case 36: + +/* Line 1455 of yacc.c */ #line 389 "../parser/Grammar.y" { BracketAccessorNode* node = new (GLOBAL_DATA) BracketAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (4)]).first_column, (yylsp[(1) - (4)]).last_column, (yylsp[(4) - (4)]).last_column); @@ -3196,6 +3216,8 @@ yyreduce: break; case 37: + +/* Line 1455 of yacc.c */ #line 393 "../parser/Grammar.y" { DotAccessorNode* node = new (GLOBAL_DATA) DotAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, *(yyvsp[(3) - (3)].ident)); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(1) - (3)]).last_column, (yylsp[(3) - (3)]).last_column); @@ -3204,6 +3226,8 @@ yyreduce: break; case 38: + +/* Line 1455 of yacc.c */ #line 397 "../parser/Grammar.y" { NewExprNode* node = new (GLOBAL_DATA) NewExprNode(GLOBAL_DATA, (yyvsp[(2) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].argumentsNode).m_node); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(3) - (3)]).last_column); @@ -3212,6 +3236,8 @@ yyreduce: break; case 40: + +/* Line 1455 of yacc.c */ #line 405 "../parser/Grammar.y" { BracketAccessorNode* node = new (GLOBAL_DATA) BracketAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (4)]).first_column, (yylsp[(1) - (4)]).last_column, (yylsp[(4) - (4)]).last_column); @@ -3220,6 +3246,8 @@ yyreduce: break; case 41: + +/* Line 1455 of yacc.c */ #line 409 "../parser/Grammar.y" { DotAccessorNode* node = new (GLOBAL_DATA) DotAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, *(yyvsp[(3) - (3)].ident)); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(1) - (3)]).last_column, (yylsp[(3) - (3)]).last_column); @@ -3228,6 +3256,8 @@ yyreduce: break; case 42: + +/* Line 1455 of yacc.c */ #line 413 "../parser/Grammar.y" { NewExprNode* node = new (GLOBAL_DATA) NewExprNode(GLOBAL_DATA, (yyvsp[(2) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].argumentsNode).m_node); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(3) - (3)]).last_column); @@ -3236,6 +3266,8 @@ yyreduce: break; case 44: + +/* Line 1455 of yacc.c */ #line 421 "../parser/Grammar.y" { NewExprNode* node = new (GLOBAL_DATA) NewExprNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).last_column, (yylsp[(2) - (2)]).last_column); @@ -3244,6 +3276,8 @@ yyreduce: break; case 46: + +/* Line 1455 of yacc.c */ #line 429 "../parser/Grammar.y" { NewExprNode* node = new (GLOBAL_DATA) NewExprNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).last_column, (yylsp[(2) - (2)]).last_column); @@ -3252,16 +3286,22 @@ yyreduce: break; case 47: + +/* Line 1455 of yacc.c */ #line 436 "../parser/Grammar.y" { (yyval.expressionNode) = makeFunctionCallNode(globalPtr, (yyvsp[(1) - (2)].expressionNode), (yyvsp[(2) - (2)].argumentsNode), (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column); ;} break; case 48: + +/* Line 1455 of yacc.c */ #line 437 "../parser/Grammar.y" { (yyval.expressionNode) = makeFunctionCallNode(globalPtr, (yyvsp[(1) - (2)].expressionNode), (yyvsp[(2) - (2)].argumentsNode), (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column); ;} break; case 49: + +/* Line 1455 of yacc.c */ #line 438 "../parser/Grammar.y" { BracketAccessorNode* node = new (GLOBAL_DATA) BracketAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (4)]).first_column, (yylsp[(1) - (4)]).last_column, (yylsp[(4) - (4)]).last_column); @@ -3270,6 +3310,8 @@ yyreduce: break; case 50: + +/* Line 1455 of yacc.c */ #line 442 "../parser/Grammar.y" { DotAccessorNode* node = new (GLOBAL_DATA) DotAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, *(yyvsp[(3) - (3)].ident)); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(1) - (3)]).last_column, (yylsp[(3) - (3)]).last_column); @@ -3277,16 +3319,22 @@ yyreduce: break; case 51: + +/* Line 1455 of yacc.c */ #line 448 "../parser/Grammar.y" { (yyval.expressionNode) = makeFunctionCallNode(globalPtr, (yyvsp[(1) - (2)].expressionNode), (yyvsp[(2) - (2)].argumentsNode), (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column); ;} break; case 52: + +/* Line 1455 of yacc.c */ #line 449 "../parser/Grammar.y" { (yyval.expressionNode) = makeFunctionCallNode(globalPtr, (yyvsp[(1) - (2)].expressionNode), (yyvsp[(2) - (2)].argumentsNode), (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column); ;} break; case 53: + +/* Line 1455 of yacc.c */ #line 450 "../parser/Grammar.y" { BracketAccessorNode* node = new (GLOBAL_DATA) BracketAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (4)]).first_column, (yylsp[(1) - (4)]).last_column, (yylsp[(4) - (4)]).last_column); @@ -3295,6 +3343,8 @@ yyreduce: break; case 54: + +/* Line 1455 of yacc.c */ #line 454 "../parser/Grammar.y" { DotAccessorNode* node = new (GLOBAL_DATA) DotAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, *(yyvsp[(3) - (3)].ident)); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(1) - (3)]).last_column, (yylsp[(3) - (3)]).last_column); @@ -3303,16 +3353,22 @@ yyreduce: break; case 55: + +/* Line 1455 of yacc.c */ #line 461 "../parser/Grammar.y" { (yyval.argumentsNode) = createNodeInfo<ArgumentsNode*>(new (GLOBAL_DATA) ArgumentsNode(GLOBAL_DATA), 0, 0); ;} break; case 56: + +/* Line 1455 of yacc.c */ #line 462 "../parser/Grammar.y" { (yyval.argumentsNode) = createNodeInfo<ArgumentsNode*>(new (GLOBAL_DATA) ArgumentsNode(GLOBAL_DATA, (yyvsp[(2) - (3)].argumentList).m_node.head), (yyvsp[(2) - (3)].argumentList).m_features, (yyvsp[(2) - (3)].argumentList).m_numConstants); ;} break; case 57: + +/* Line 1455 of yacc.c */ #line 466 "../parser/Grammar.y" { (yyval.argumentList).m_node.head = new (GLOBAL_DATA) ArgumentListNode(GLOBAL_DATA, (yyvsp[(1) - (1)].expressionNode).m_node); (yyval.argumentList).m_node.tail = (yyval.argumentList).m_node.head; @@ -3321,6 +3377,8 @@ yyreduce: break; case 58: + +/* Line 1455 of yacc.c */ #line 470 "../parser/Grammar.y" { (yyval.argumentList).m_node.head = (yyvsp[(1) - (3)].argumentList).m_node.head; (yyval.argumentList).m_node.tail = new (GLOBAL_DATA) ArgumentListNode(GLOBAL_DATA, (yyvsp[(1) - (3)].argumentList).m_node.tail, (yyvsp[(3) - (3)].expressionNode).m_node); @@ -3329,181 +3387,253 @@ yyreduce: break; case 64: + +/* Line 1455 of yacc.c */ #line 488 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePostfixNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode).m_node, OpPlusPlus, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column), (yyvsp[(1) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(1) - (2)].expressionNode).m_numConstants); ;} break; case 65: + +/* Line 1455 of yacc.c */ #line 489 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePostfixNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode).m_node, OpMinusMinus, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column), (yyvsp[(1) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(1) - (2)].expressionNode).m_numConstants); ;} break; case 67: + +/* Line 1455 of yacc.c */ #line 494 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePostfixNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode).m_node, OpPlusPlus, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column), (yyvsp[(1) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(1) - (2)].expressionNode).m_numConstants); ;} break; case 68: + +/* Line 1455 of yacc.c */ #line 495 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePostfixNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode).m_node, OpMinusMinus, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column), (yyvsp[(1) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(1) - (2)].expressionNode).m_numConstants); ;} break; case 69: + +/* Line 1455 of yacc.c */ #line 499 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeDeleteNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).last_column, (yylsp[(2) - (2)]).last_column), (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 70: + +/* Line 1455 of yacc.c */ #line 500 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) VoidNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node), (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants + 1); ;} break; case 71: + +/* Line 1455 of yacc.c */ #line 501 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeTypeOfNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node), (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 72: + +/* Line 1455 of yacc.c */ #line 502 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePrefixNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node, OpPlusPlus, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).first_column + 1, (yylsp[(2) - (2)]).last_column), (yyvsp[(2) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 73: + +/* Line 1455 of yacc.c */ #line 503 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePrefixNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node, OpPlusPlus, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).first_column + 1, (yylsp[(2) - (2)]).last_column), (yyvsp[(2) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 74: + +/* Line 1455 of yacc.c */ #line 504 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePrefixNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node, OpMinusMinus, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).first_column + 1, (yylsp[(2) - (2)]).last_column), (yyvsp[(2) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 75: + +/* Line 1455 of yacc.c */ #line 505 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePrefixNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node, OpMinusMinus, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).first_column + 1, (yylsp[(2) - (2)]).last_column), (yyvsp[(2) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 76: + +/* Line 1455 of yacc.c */ #line 506 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) UnaryPlusNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node), (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 77: + +/* Line 1455 of yacc.c */ #line 507 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeNegateNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node), (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 78: + +/* Line 1455 of yacc.c */ #line 508 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeBitwiseNotNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node), (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 79: + +/* Line 1455 of yacc.c */ #line 509 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LogicalNotNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node), (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 85: + +/* Line 1455 of yacc.c */ #line 523 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeMultNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 86: + +/* Line 1455 of yacc.c */ #line 524 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeDivNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 87: + +/* Line 1455 of yacc.c */ #line 525 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ModNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 89: + +/* Line 1455 of yacc.c */ #line 531 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeMultNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 90: + +/* Line 1455 of yacc.c */ #line 533 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeDivNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 91: + +/* Line 1455 of yacc.c */ #line 535 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ModNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 93: + +/* Line 1455 of yacc.c */ #line 540 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeAddNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 94: + +/* Line 1455 of yacc.c */ #line 541 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeSubNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 96: + +/* Line 1455 of yacc.c */ #line 547 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeAddNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 97: + +/* Line 1455 of yacc.c */ #line 549 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeSubNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 99: + +/* Line 1455 of yacc.c */ #line 554 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeLeftShiftNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 100: + +/* Line 1455 of yacc.c */ #line 555 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeRightShiftNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 101: + +/* Line 1455 of yacc.c */ #line 556 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) UnsignedRightShiftNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 103: + +/* Line 1455 of yacc.c */ #line 561 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeLeftShiftNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 104: + +/* Line 1455 of yacc.c */ #line 562 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeRightShiftNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 105: + +/* Line 1455 of yacc.c */ #line 563 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) UnsignedRightShiftNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 107: + +/* Line 1455 of yacc.c */ #line 568 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LessNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 108: + +/* Line 1455 of yacc.c */ #line 569 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) GreaterNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 109: + +/* Line 1455 of yacc.c */ #line 570 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LessEqNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 110: + +/* Line 1455 of yacc.c */ #line 571 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) GreaterEqNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 111: + +/* Line 1455 of yacc.c */ #line 572 "../parser/Grammar.y" { InstanceOfNode* node = new (GLOBAL_DATA) InstanceOfNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(3) - (3)]).first_column, (yylsp[(3) - (3)]).last_column); @@ -3511,6 +3641,8 @@ yyreduce: break; case 112: + +/* Line 1455 of yacc.c */ #line 575 "../parser/Grammar.y" { InNode* node = new (GLOBAL_DATA) InNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(3) - (3)]).first_column, (yylsp[(3) - (3)]).last_column); @@ -3518,26 +3650,36 @@ yyreduce: break; case 114: + +/* Line 1455 of yacc.c */ #line 582 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LessNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 115: + +/* Line 1455 of yacc.c */ #line 583 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) GreaterNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 116: + +/* Line 1455 of yacc.c */ #line 584 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LessEqNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 117: + +/* Line 1455 of yacc.c */ #line 585 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) GreaterEqNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 118: + +/* Line 1455 of yacc.c */ #line 587 "../parser/Grammar.y" { InstanceOfNode* node = new (GLOBAL_DATA) InstanceOfNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(3) - (3)]).first_column, (yylsp[(3) - (3)]).last_column); @@ -3545,26 +3687,36 @@ yyreduce: break; case 120: + +/* Line 1455 of yacc.c */ #line 594 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LessNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 121: + +/* Line 1455 of yacc.c */ #line 595 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) GreaterNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 122: + +/* Line 1455 of yacc.c */ #line 596 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LessEqNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 123: + +/* Line 1455 of yacc.c */ #line 597 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) GreaterEqNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 124: + +/* Line 1455 of yacc.c */ #line 599 "../parser/Grammar.y" { InstanceOfNode* node = new (GLOBAL_DATA) InstanceOfNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(3) - (3)]).first_column, (yylsp[(3) - (3)]).last_column); @@ -3572,6 +3724,8 @@ yyreduce: break; case 125: + +/* Line 1455 of yacc.c */ #line 603 "../parser/Grammar.y" { InNode* node = new (GLOBAL_DATA) InNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(3) - (3)]).first_column, (yylsp[(3) - (3)]).last_column); @@ -3579,156 +3733,218 @@ yyreduce: break; case 127: + +/* Line 1455 of yacc.c */ #line 610 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) EqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 128: + +/* Line 1455 of yacc.c */ #line 611 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NotEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 129: + +/* Line 1455 of yacc.c */ #line 612 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) StrictEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 130: + +/* Line 1455 of yacc.c */ #line 613 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NotStrictEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 132: + +/* Line 1455 of yacc.c */ #line 619 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) EqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 133: + +/* Line 1455 of yacc.c */ #line 621 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NotEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 134: + +/* Line 1455 of yacc.c */ #line 623 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) StrictEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 135: + +/* Line 1455 of yacc.c */ #line 625 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NotStrictEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 137: + +/* Line 1455 of yacc.c */ #line 631 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) EqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 138: + +/* Line 1455 of yacc.c */ #line 632 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NotEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 139: + +/* Line 1455 of yacc.c */ #line 634 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) StrictEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 140: + +/* Line 1455 of yacc.c */ #line 636 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NotStrictEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 142: + +/* Line 1455 of yacc.c */ #line 641 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitAndNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 144: + +/* Line 1455 of yacc.c */ #line 647 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitAndNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 146: + +/* Line 1455 of yacc.c */ #line 652 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitAndNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 148: + +/* Line 1455 of yacc.c */ #line 657 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitXOrNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 150: + +/* Line 1455 of yacc.c */ #line 663 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitXOrNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 152: + +/* Line 1455 of yacc.c */ #line 669 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitXOrNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 154: + +/* Line 1455 of yacc.c */ #line 674 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitOrNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 156: + +/* Line 1455 of yacc.c */ #line 680 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitOrNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 158: + +/* Line 1455 of yacc.c */ #line 686 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitOrNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 160: + +/* Line 1455 of yacc.c */ #line 691 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LogicalOpNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, OpLogicalAnd), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 162: + +/* Line 1455 of yacc.c */ #line 697 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LogicalOpNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, OpLogicalAnd), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 164: + +/* Line 1455 of yacc.c */ #line 703 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LogicalOpNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, OpLogicalAnd), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 166: + +/* Line 1455 of yacc.c */ #line 708 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LogicalOpNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, OpLogicalOr), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 168: + +/* Line 1455 of yacc.c */ #line 714 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LogicalOpNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, OpLogicalOr), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 170: + +/* Line 1455 of yacc.c */ #line 719 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LogicalOpNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, OpLogicalOr), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 172: + +/* Line 1455 of yacc.c */ #line 725 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ConditionalNode(GLOBAL_DATA, (yyvsp[(1) - (5)].expressionNode).m_node, (yyvsp[(3) - (5)].expressionNode).m_node, (yyvsp[(5) - (5)].expressionNode).m_node), (yyvsp[(1) - (5)].expressionNode).m_features | (yyvsp[(3) - (5)].expressionNode).m_features | (yyvsp[(5) - (5)].expressionNode).m_features, (yyvsp[(1) - (5)].expressionNode).m_numConstants + (yyvsp[(3) - (5)].expressionNode).m_numConstants + (yyvsp[(5) - (5)].expressionNode).m_numConstants); ;} break; case 174: + +/* Line 1455 of yacc.c */ #line 731 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ConditionalNode(GLOBAL_DATA, (yyvsp[(1) - (5)].expressionNode).m_node, (yyvsp[(3) - (5)].expressionNode).m_node, (yyvsp[(5) - (5)].expressionNode).m_node), (yyvsp[(1) - (5)].expressionNode).m_features | (yyvsp[(3) - (5)].expressionNode).m_features | (yyvsp[(5) - (5)].expressionNode).m_features, (yyvsp[(1) - (5)].expressionNode).m_numConstants + (yyvsp[(3) - (5)].expressionNode).m_numConstants + (yyvsp[(5) - (5)].expressionNode).m_numConstants); ;} break; case 176: + +/* Line 1455 of yacc.c */ #line 737 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ConditionalNode(GLOBAL_DATA, (yyvsp[(1) - (5)].expressionNode).m_node, (yyvsp[(3) - (5)].expressionNode).m_node, (yyvsp[(5) - (5)].expressionNode).m_node), (yyvsp[(1) - (5)].expressionNode).m_features | (yyvsp[(3) - (5)].expressionNode).m_features | (yyvsp[(5) - (5)].expressionNode).m_features, (yyvsp[(1) - (5)].expressionNode).m_numConstants + (yyvsp[(3) - (5)].expressionNode).m_numConstants + (yyvsp[(5) - (5)].expressionNode).m_numConstants); ;} break; case 178: + +/* Line 1455 of yacc.c */ #line 743 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeAssignNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(2) - (3)].op), (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(1) - (3)].expressionNode).m_features & AssignFeature, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).first_column + 1, (yylsp[(3) - (3)]).last_column), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features | AssignFeature, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); @@ -3736,6 +3952,8 @@ yyreduce: break; case 180: + +/* Line 1455 of yacc.c */ #line 751 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeAssignNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(2) - (3)].op), (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(1) - (3)].expressionNode).m_features & AssignFeature, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).first_column + 1, (yylsp[(3) - (3)]).last_column), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features | AssignFeature, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); @@ -3743,6 +3961,8 @@ yyreduce: break; case 182: + +/* Line 1455 of yacc.c */ #line 759 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeAssignNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(2) - (3)].op), (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(1) - (3)].expressionNode).m_features & AssignFeature, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).first_column + 1, (yylsp[(3) - (3)]).last_column), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features | AssignFeature, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); @@ -3750,99 +3970,137 @@ yyreduce: break; case 183: + +/* Line 1455 of yacc.c */ #line 765 "../parser/Grammar.y" { (yyval.op) = OpEqual; ;} break; case 184: + +/* Line 1455 of yacc.c */ #line 766 "../parser/Grammar.y" { (yyval.op) = OpPlusEq; ;} break; case 185: + +/* Line 1455 of yacc.c */ #line 767 "../parser/Grammar.y" { (yyval.op) = OpMinusEq; ;} break; case 186: + +/* Line 1455 of yacc.c */ #line 768 "../parser/Grammar.y" { (yyval.op) = OpMultEq; ;} break; case 187: + +/* Line 1455 of yacc.c */ #line 769 "../parser/Grammar.y" { (yyval.op) = OpDivEq; ;} break; case 188: + +/* Line 1455 of yacc.c */ #line 770 "../parser/Grammar.y" { (yyval.op) = OpLShift; ;} break; case 189: + +/* Line 1455 of yacc.c */ #line 771 "../parser/Grammar.y" { (yyval.op) = OpRShift; ;} break; case 190: + +/* Line 1455 of yacc.c */ #line 772 "../parser/Grammar.y" { (yyval.op) = OpURShift; ;} break; case 191: + +/* Line 1455 of yacc.c */ #line 773 "../parser/Grammar.y" { (yyval.op) = OpAndEq; ;} break; case 192: + +/* Line 1455 of yacc.c */ #line 774 "../parser/Grammar.y" { (yyval.op) = OpXOrEq; ;} break; case 193: + +/* Line 1455 of yacc.c */ #line 775 "../parser/Grammar.y" { (yyval.op) = OpOrEq; ;} break; case 194: + +/* Line 1455 of yacc.c */ #line 776 "../parser/Grammar.y" { (yyval.op) = OpModEq; ;} break; case 196: + +/* Line 1455 of yacc.c */ #line 781 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(combineCommaNodes(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 198: + +/* Line 1455 of yacc.c */ #line 786 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(combineCommaNodes(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 200: + +/* Line 1455 of yacc.c */ #line 791 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(combineCommaNodes(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 218: + +/* Line 1455 of yacc.c */ #line 815 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) BlockNode(GLOBAL_DATA, 0), 0, 0, 0, 0); DBG((yyval.statementNode).m_node, (yylsp[(1) - (2)]), (yylsp[(2) - (2)])); ;} break; case 219: + +/* Line 1455 of yacc.c */ #line 817 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) BlockNode(GLOBAL_DATA, (yyvsp[(2) - (3)].sourceElements).m_node), (yyvsp[(2) - (3)].sourceElements).m_varDeclarations, (yyvsp[(2) - (3)].sourceElements).m_funcDeclarations, (yyvsp[(2) - (3)].sourceElements).m_features, (yyvsp[(2) - (3)].sourceElements).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(3) - (3)])); ;} break; case 220: + +/* Line 1455 of yacc.c */ #line 822 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(makeVarStatementNode(GLOBAL_DATA, (yyvsp[(2) - (3)].varDeclList).m_node), (yyvsp[(2) - (3)].varDeclList).m_varDeclarations, (yyvsp[(2) - (3)].varDeclList).m_funcDeclarations, (yyvsp[(2) - (3)].varDeclList).m_features, (yyvsp[(2) - (3)].varDeclList).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(3) - (3)])); ;} break; case 221: + +/* Line 1455 of yacc.c */ #line 824 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(makeVarStatementNode(GLOBAL_DATA, (yyvsp[(2) - (3)].varDeclList).m_node), (yyvsp[(2) - (3)].varDeclList).m_varDeclarations, (yyvsp[(2) - (3)].varDeclList).m_funcDeclarations, (yyvsp[(2) - (3)].varDeclList).m_features, (yyvsp[(2) - (3)].varDeclList).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(2) - (3)])); @@ -3850,6 +4108,8 @@ yyreduce: break; case 222: + +/* Line 1455 of yacc.c */ #line 830 "../parser/Grammar.y" { (yyval.varDeclList).m_node = 0; (yyval.varDeclList).m_varDeclarations = new (GLOBAL_DATA) ParserArenaData<DeclarationStacks::VarStack>; @@ -3861,6 +4121,8 @@ yyreduce: break; case 223: + +/* Line 1455 of yacc.c */ #line 837 "../parser/Grammar.y" { AssignResolveNode* node = new (GLOBAL_DATA) AssignResolveNode(GLOBAL_DATA, *(yyvsp[(1) - (2)].ident), (yyvsp[(2) - (2)].expressionNode).m_node, (yyvsp[(2) - (2)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).first_column + 1, (yylsp[(2) - (2)]).last_column); @@ -3874,6 +4136,8 @@ yyreduce: break; case 224: + +/* Line 1455 of yacc.c */ #line 847 "../parser/Grammar.y" { (yyval.varDeclList).m_node = (yyvsp[(1) - (3)].varDeclList).m_node; (yyval.varDeclList).m_varDeclarations = (yyvsp[(1) - (3)].varDeclList).m_varDeclarations; @@ -3885,6 +4149,8 @@ yyreduce: break; case 225: + +/* Line 1455 of yacc.c */ #line 855 "../parser/Grammar.y" { AssignResolveNode* node = new (GLOBAL_DATA) AssignResolveNode(GLOBAL_DATA, *(yyvsp[(3) - (4)].ident), (yyvsp[(4) - (4)].expressionNode).m_node, (yyvsp[(4) - (4)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(3) - (4)]).first_column, (yylsp[(4) - (4)]).first_column + 1, (yylsp[(4) - (4)]).last_column); @@ -3898,6 +4164,8 @@ yyreduce: break; case 226: + +/* Line 1455 of yacc.c */ #line 867 "../parser/Grammar.y" { (yyval.varDeclList).m_node = 0; (yyval.varDeclList).m_varDeclarations = new (GLOBAL_DATA) ParserArenaData<DeclarationStacks::VarStack>; @@ -3909,6 +4177,8 @@ yyreduce: break; case 227: + +/* Line 1455 of yacc.c */ #line 874 "../parser/Grammar.y" { AssignResolveNode* node = new (GLOBAL_DATA) AssignResolveNode(GLOBAL_DATA, *(yyvsp[(1) - (2)].ident), (yyvsp[(2) - (2)].expressionNode).m_node, (yyvsp[(2) - (2)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).first_column + 1, (yylsp[(2) - (2)]).last_column); @@ -3922,6 +4192,8 @@ yyreduce: break; case 228: + +/* Line 1455 of yacc.c */ #line 884 "../parser/Grammar.y" { (yyval.varDeclList).m_node = (yyvsp[(1) - (3)].varDeclList).m_node; (yyval.varDeclList).m_varDeclarations = (yyvsp[(1) - (3)].varDeclList).m_varDeclarations; @@ -3933,6 +4205,8 @@ yyreduce: break; case 229: + +/* Line 1455 of yacc.c */ #line 892 "../parser/Grammar.y" { AssignResolveNode* node = new (GLOBAL_DATA) AssignResolveNode(GLOBAL_DATA, *(yyvsp[(3) - (4)].ident), (yyvsp[(4) - (4)].expressionNode).m_node, (yyvsp[(4) - (4)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(3) - (4)]).first_column, (yylsp[(4) - (4)]).first_column + 1, (yylsp[(4) - (4)]).last_column); @@ -3946,18 +4220,24 @@ yyreduce: break; case 230: + +/* Line 1455 of yacc.c */ #line 904 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) ConstStatementNode(GLOBAL_DATA, (yyvsp[(2) - (3)].constDeclList).m_node.head), (yyvsp[(2) - (3)].constDeclList).m_varDeclarations, (yyvsp[(2) - (3)].constDeclList).m_funcDeclarations, (yyvsp[(2) - (3)].constDeclList).m_features, (yyvsp[(2) - (3)].constDeclList).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(3) - (3)])); ;} break; case 231: + +/* Line 1455 of yacc.c */ #line 907 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) ConstStatementNode(GLOBAL_DATA, (yyvsp[(2) - (3)].constDeclList).m_node.head), (yyvsp[(2) - (3)].constDeclList).m_varDeclarations, (yyvsp[(2) - (3)].constDeclList).m_funcDeclarations, (yyvsp[(2) - (3)].constDeclList).m_features, (yyvsp[(2) - (3)].constDeclList).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(2) - (3)])); AUTO_SEMICOLON; ;} break; case 232: + +/* Line 1455 of yacc.c */ #line 912 "../parser/Grammar.y" { (yyval.constDeclList).m_node.head = (yyvsp[(1) - (1)].constDeclNode).m_node; (yyval.constDeclList).m_node.tail = (yyval.constDeclList).m_node.head; @@ -3970,6 +4250,8 @@ yyreduce: break; case 233: + +/* Line 1455 of yacc.c */ #line 921 "../parser/Grammar.y" { (yyval.constDeclList).m_node.head = (yyvsp[(1) - (3)].constDeclList).m_node.head; (yyvsp[(1) - (3)].constDeclList).m_node.tail->m_next = (yyvsp[(3) - (3)].constDeclNode).m_node; @@ -3982,49 +4264,67 @@ yyreduce: break; case 234: + +/* Line 1455 of yacc.c */ #line 932 "../parser/Grammar.y" { (yyval.constDeclNode) = createNodeInfo<ConstDeclNode*>(new (GLOBAL_DATA) ConstDeclNode(GLOBAL_DATA, *(yyvsp[(1) - (1)].ident), 0), (*(yyvsp[(1) - (1)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0, 0); ;} break; case 235: + +/* Line 1455 of yacc.c */ #line 933 "../parser/Grammar.y" { (yyval.constDeclNode) = createNodeInfo<ConstDeclNode*>(new (GLOBAL_DATA) ConstDeclNode(GLOBAL_DATA, *(yyvsp[(1) - (2)].ident), (yyvsp[(2) - (2)].expressionNode).m_node), ((*(yyvsp[(1) - (2)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0) | (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 236: + +/* Line 1455 of yacc.c */ #line 937 "../parser/Grammar.y" { (yyval.expressionNode) = (yyvsp[(2) - (2)].expressionNode); ;} break; case 237: + +/* Line 1455 of yacc.c */ #line 941 "../parser/Grammar.y" { (yyval.expressionNode) = (yyvsp[(2) - (2)].expressionNode); ;} break; case 238: + +/* Line 1455 of yacc.c */ #line 945 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) EmptyStatementNode(GLOBAL_DATA), 0, 0, 0, 0); ;} break; case 239: + +/* Line 1455 of yacc.c */ #line 949 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) ExprStatementNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode).m_node), 0, 0, (yyvsp[(1) - (2)].expressionNode).m_features, (yyvsp[(1) - (2)].expressionNode).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (2)]), (yylsp[(2) - (2)])); ;} break; case 240: + +/* Line 1455 of yacc.c */ #line 951 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) ExprStatementNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode).m_node), 0, 0, (yyvsp[(1) - (2)].expressionNode).m_features, (yyvsp[(1) - (2)].expressionNode).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (2)]), (yylsp[(1) - (2)])); AUTO_SEMICOLON; ;} break; case 241: + +/* Line 1455 of yacc.c */ #line 957 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) IfNode(GLOBAL_DATA, (yyvsp[(3) - (5)].expressionNode).m_node, (yyvsp[(5) - (5)].statementNode).m_node), (yyvsp[(5) - (5)].statementNode).m_varDeclarations, (yyvsp[(5) - (5)].statementNode).m_funcDeclarations, (yyvsp[(3) - (5)].expressionNode).m_features | (yyvsp[(5) - (5)].statementNode).m_features, (yyvsp[(3) - (5)].expressionNode).m_numConstants + (yyvsp[(5) - (5)].statementNode).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (5)]), (yylsp[(4) - (5)])); ;} break; case 242: + +/* Line 1455 of yacc.c */ #line 960 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) IfElseNode(GLOBAL_DATA, (yyvsp[(3) - (7)].expressionNode).m_node, (yyvsp[(5) - (7)].statementNode).m_node, (yyvsp[(7) - (7)].statementNode).m_node), mergeDeclarationLists((yyvsp[(5) - (7)].statementNode).m_varDeclarations, (yyvsp[(7) - (7)].statementNode).m_varDeclarations), @@ -4035,24 +4335,32 @@ yyreduce: break; case 243: + +/* Line 1455 of yacc.c */ #line 969 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) DoWhileNode(GLOBAL_DATA, (yyvsp[(2) - (7)].statementNode).m_node, (yyvsp[(5) - (7)].expressionNode).m_node), (yyvsp[(2) - (7)].statementNode).m_varDeclarations, (yyvsp[(2) - (7)].statementNode).m_funcDeclarations, (yyvsp[(2) - (7)].statementNode).m_features | (yyvsp[(5) - (7)].expressionNode).m_features, (yyvsp[(2) - (7)].statementNode).m_numConstants + (yyvsp[(5) - (7)].expressionNode).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (7)]), (yylsp[(3) - (7)])); ;} break; case 244: + +/* Line 1455 of yacc.c */ #line 971 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) DoWhileNode(GLOBAL_DATA, (yyvsp[(2) - (7)].statementNode).m_node, (yyvsp[(5) - (7)].expressionNode).m_node), (yyvsp[(2) - (7)].statementNode).m_varDeclarations, (yyvsp[(2) - (7)].statementNode).m_funcDeclarations, (yyvsp[(2) - (7)].statementNode).m_features | (yyvsp[(5) - (7)].expressionNode).m_features, (yyvsp[(2) - (7)].statementNode).m_numConstants + (yyvsp[(5) - (7)].expressionNode).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (7)]), (yylsp[(3) - (7)])); ;} break; case 245: + +/* Line 1455 of yacc.c */ #line 973 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) WhileNode(GLOBAL_DATA, (yyvsp[(3) - (5)].expressionNode).m_node, (yyvsp[(5) - (5)].statementNode).m_node), (yyvsp[(5) - (5)].statementNode).m_varDeclarations, (yyvsp[(5) - (5)].statementNode).m_funcDeclarations, (yyvsp[(3) - (5)].expressionNode).m_features | (yyvsp[(5) - (5)].statementNode).m_features, (yyvsp[(3) - (5)].expressionNode).m_numConstants + (yyvsp[(5) - (5)].statementNode).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (5)]), (yylsp[(4) - (5)])); ;} break; case 246: + +/* Line 1455 of yacc.c */ #line 976 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) ForNode(GLOBAL_DATA, (yyvsp[(3) - (9)].expressionNode).m_node, (yyvsp[(5) - (9)].expressionNode).m_node, (yyvsp[(7) - (9)].expressionNode).m_node, (yyvsp[(9) - (9)].statementNode).m_node, false), (yyvsp[(9) - (9)].statementNode).m_varDeclarations, (yyvsp[(9) - (9)].statementNode).m_funcDeclarations, (yyvsp[(3) - (9)].expressionNode).m_features | (yyvsp[(5) - (9)].expressionNode).m_features | (yyvsp[(7) - (9)].expressionNode).m_features | (yyvsp[(9) - (9)].statementNode).m_features, @@ -4062,6 +4370,8 @@ yyreduce: break; case 247: + +/* Line 1455 of yacc.c */ #line 982 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) ForNode(GLOBAL_DATA, (yyvsp[(4) - (10)].varDeclList).m_node, (yyvsp[(6) - (10)].expressionNode).m_node, (yyvsp[(8) - (10)].expressionNode).m_node, (yyvsp[(10) - (10)].statementNode).m_node, true), mergeDeclarationLists((yyvsp[(4) - (10)].varDeclList).m_varDeclarations, (yyvsp[(10) - (10)].statementNode).m_varDeclarations), @@ -4072,6 +4382,8 @@ yyreduce: break; case 248: + +/* Line 1455 of yacc.c */ #line 989 "../parser/Grammar.y" { ForInNode* node = new (GLOBAL_DATA) ForInNode(GLOBAL_DATA, (yyvsp[(3) - (7)].expressionNode).m_node, (yyvsp[(5) - (7)].expressionNode).m_node, (yyvsp[(7) - (7)].statementNode).m_node); @@ -4084,6 +4396,8 @@ yyreduce: break; case 249: + +/* Line 1455 of yacc.c */ #line 998 "../parser/Grammar.y" { ForInNode *forIn = new (GLOBAL_DATA) ForInNode(GLOBAL_DATA, *(yyvsp[(4) - (8)].ident), 0, (yyvsp[(6) - (8)].expressionNode).m_node, (yyvsp[(8) - (8)].statementNode).m_node, (yylsp[(5) - (8)]).first_column, (yylsp[(5) - (8)]).first_column - (yylsp[(4) - (8)]).first_column, (yylsp[(6) - (8)]).last_column - (yylsp[(5) - (8)]).first_column); SET_EXCEPTION_LOCATION(forIn, (yylsp[(4) - (8)]).first_column, (yylsp[(5) - (8)]).first_column + 1, (yylsp[(6) - (8)]).last_column); @@ -4093,6 +4407,8 @@ yyreduce: break; case 250: + +/* Line 1455 of yacc.c */ #line 1004 "../parser/Grammar.y" { ForInNode *forIn = new (GLOBAL_DATA) ForInNode(GLOBAL_DATA, *(yyvsp[(4) - (9)].ident), (yyvsp[(5) - (9)].expressionNode).m_node, (yyvsp[(7) - (9)].expressionNode).m_node, (yyvsp[(9) - (9)].statementNode).m_node, (yylsp[(5) - (9)]).first_column, (yylsp[(5) - (9)]).first_column - (yylsp[(4) - (9)]).first_column, (yylsp[(5) - (9)]).last_column - (yylsp[(5) - (9)]).first_column); SET_EXCEPTION_LOCATION(forIn, (yylsp[(4) - (9)]).first_column, (yylsp[(6) - (9)]).first_column + 1, (yylsp[(7) - (9)]).last_column); @@ -4104,16 +4420,22 @@ yyreduce: break; case 251: + +/* Line 1455 of yacc.c */ #line 1014 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(0, 0, 0); ;} break; case 253: + +/* Line 1455 of yacc.c */ #line 1019 "../parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(0, 0, 0); ;} break; case 255: + +/* Line 1455 of yacc.c */ #line 1024 "../parser/Grammar.y" { ContinueNode* node = new (GLOBAL_DATA) ContinueNode(GLOBAL_DATA); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(1) - (2)]).last_column); @@ -4122,6 +4444,8 @@ yyreduce: break; case 256: + +/* Line 1455 of yacc.c */ #line 1028 "../parser/Grammar.y" { ContinueNode* node = new (GLOBAL_DATA) ContinueNode(GLOBAL_DATA); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(1) - (2)]).last_column); @@ -4130,6 +4454,8 @@ yyreduce: break; case 257: + +/* Line 1455 of yacc.c */ #line 1032 "../parser/Grammar.y" { ContinueNode* node = new (GLOBAL_DATA) ContinueNode(GLOBAL_DATA, *(yyvsp[(2) - (3)].ident)); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column); @@ -4138,6 +4464,8 @@ yyreduce: break; case 258: + +/* Line 1455 of yacc.c */ #line 1036 "../parser/Grammar.y" { ContinueNode* node = new (GLOBAL_DATA) ContinueNode(GLOBAL_DATA, *(yyvsp[(2) - (3)].ident)); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column); @@ -4146,6 +4474,8 @@ yyreduce: break; case 259: + +/* Line 1455 of yacc.c */ #line 1043 "../parser/Grammar.y" { BreakNode* node = new (GLOBAL_DATA) BreakNode(GLOBAL_DATA); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(1) - (2)]).last_column); @@ -4153,6 +4483,8 @@ yyreduce: break; case 260: + +/* Line 1455 of yacc.c */ #line 1046 "../parser/Grammar.y" { BreakNode* node = new (GLOBAL_DATA) BreakNode(GLOBAL_DATA); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(1) - (2)]).last_column); @@ -4160,6 +4492,8 @@ yyreduce: break; case 261: + +/* Line 1455 of yacc.c */ #line 1049 "../parser/Grammar.y" { BreakNode* node = new (GLOBAL_DATA) BreakNode(GLOBAL_DATA, *(yyvsp[(2) - (3)].ident)); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column); @@ -4167,6 +4501,8 @@ yyreduce: break; case 262: + +/* Line 1455 of yacc.c */ #line 1052 "../parser/Grammar.y" { BreakNode* node = new (GLOBAL_DATA) BreakNode(GLOBAL_DATA, *(yyvsp[(2) - (3)].ident)); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column); @@ -4174,6 +4510,8 @@ yyreduce: break; case 263: + +/* Line 1455 of yacc.c */ #line 1058 "../parser/Grammar.y" { ReturnNode* node = new (GLOBAL_DATA) ReturnNode(GLOBAL_DATA, 0); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(1) - (2)]).last_column); @@ -4181,6 +4519,8 @@ yyreduce: break; case 264: + +/* Line 1455 of yacc.c */ #line 1061 "../parser/Grammar.y" { ReturnNode* node = new (GLOBAL_DATA) ReturnNode(GLOBAL_DATA, 0); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(1) - (2)]).last_column); @@ -4188,6 +4528,8 @@ yyreduce: break; case 265: + +/* Line 1455 of yacc.c */ #line 1064 "../parser/Grammar.y" { ReturnNode* node = new (GLOBAL_DATA) ReturnNode(GLOBAL_DATA, (yyvsp[(2) - (3)].expressionNode).m_node); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column); @@ -4195,6 +4537,8 @@ yyreduce: break; case 266: + +/* Line 1455 of yacc.c */ #line 1067 "../parser/Grammar.y" { ReturnNode* node = new (GLOBAL_DATA) ReturnNode(GLOBAL_DATA, (yyvsp[(2) - (3)].expressionNode).m_node); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column); @@ -4202,6 +4546,8 @@ yyreduce: break; case 267: + +/* Line 1455 of yacc.c */ #line 1073 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) WithNode(GLOBAL_DATA, (yyvsp[(3) - (5)].expressionNode).m_node, (yyvsp[(5) - (5)].statementNode).m_node, (yylsp[(3) - (5)]).last_column, (yylsp[(3) - (5)]).last_column - (yylsp[(3) - (5)]).first_column), (yyvsp[(5) - (5)].statementNode).m_varDeclarations, (yyvsp[(5) - (5)].statementNode).m_funcDeclarations, (yyvsp[(3) - (5)].expressionNode).m_features | (yyvsp[(5) - (5)].statementNode).m_features | WithFeature, (yyvsp[(3) - (5)].expressionNode).m_numConstants + (yyvsp[(5) - (5)].statementNode).m_numConstants); @@ -4209,6 +4555,8 @@ yyreduce: break; case 268: + +/* Line 1455 of yacc.c */ #line 1079 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) SwitchNode(GLOBAL_DATA, (yyvsp[(3) - (5)].expressionNode).m_node, (yyvsp[(5) - (5)].caseBlockNode).m_node), (yyvsp[(5) - (5)].caseBlockNode).m_varDeclarations, (yyvsp[(5) - (5)].caseBlockNode).m_funcDeclarations, (yyvsp[(3) - (5)].expressionNode).m_features | (yyvsp[(5) - (5)].caseBlockNode).m_features, (yyvsp[(3) - (5)].expressionNode).m_numConstants + (yyvsp[(5) - (5)].caseBlockNode).m_numConstants); @@ -4216,11 +4564,15 @@ yyreduce: break; case 269: + +/* Line 1455 of yacc.c */ #line 1085 "../parser/Grammar.y" { (yyval.caseBlockNode) = createNodeDeclarationInfo<CaseBlockNode*>(new (GLOBAL_DATA) CaseBlockNode(GLOBAL_DATA, (yyvsp[(2) - (3)].clauseList).m_node.head, 0, 0), (yyvsp[(2) - (3)].clauseList).m_varDeclarations, (yyvsp[(2) - (3)].clauseList).m_funcDeclarations, (yyvsp[(2) - (3)].clauseList).m_features, (yyvsp[(2) - (3)].clauseList).m_numConstants); ;} break; case 270: + +/* Line 1455 of yacc.c */ #line 1087 "../parser/Grammar.y" { (yyval.caseBlockNode) = createNodeDeclarationInfo<CaseBlockNode*>(new (GLOBAL_DATA) CaseBlockNode(GLOBAL_DATA, (yyvsp[(2) - (5)].clauseList).m_node.head, (yyvsp[(3) - (5)].caseClauseNode).m_node, (yyvsp[(4) - (5)].clauseList).m_node.head), mergeDeclarationLists(mergeDeclarationLists((yyvsp[(2) - (5)].clauseList).m_varDeclarations, (yyvsp[(3) - (5)].caseClauseNode).m_varDeclarations), (yyvsp[(4) - (5)].clauseList).m_varDeclarations), @@ -4230,11 +4582,15 @@ yyreduce: break; case 271: + +/* Line 1455 of yacc.c */ #line 1095 "../parser/Grammar.y" { (yyval.clauseList).m_node.head = 0; (yyval.clauseList).m_node.tail = 0; (yyval.clauseList).m_varDeclarations = 0; (yyval.clauseList).m_funcDeclarations = 0; (yyval.clauseList).m_features = 0; (yyval.clauseList).m_numConstants = 0; ;} break; case 273: + +/* Line 1455 of yacc.c */ #line 1100 "../parser/Grammar.y" { (yyval.clauseList).m_node.head = new (GLOBAL_DATA) ClauseListNode(GLOBAL_DATA, (yyvsp[(1) - (1)].caseClauseNode).m_node); (yyval.clauseList).m_node.tail = (yyval.clauseList).m_node.head; @@ -4245,6 +4601,8 @@ yyreduce: break; case 274: + +/* Line 1455 of yacc.c */ #line 1106 "../parser/Grammar.y" { (yyval.clauseList).m_node.head = (yyvsp[(1) - (2)].clauseList).m_node.head; (yyval.clauseList).m_node.tail = new (GLOBAL_DATA) ClauseListNode(GLOBAL_DATA, (yyvsp[(1) - (2)].clauseList).m_node.tail, (yyvsp[(2) - (2)].caseClauseNode).m_node); @@ -4256,26 +4614,36 @@ yyreduce: break; case 275: + +/* Line 1455 of yacc.c */ #line 1116 "../parser/Grammar.y" { (yyval.caseClauseNode) = createNodeDeclarationInfo<CaseClauseNode*>(new (GLOBAL_DATA) CaseClauseNode(GLOBAL_DATA, (yyvsp[(2) - (3)].expressionNode).m_node), 0, 0, (yyvsp[(2) - (3)].expressionNode).m_features, (yyvsp[(2) - (3)].expressionNode).m_numConstants); ;} break; case 276: + +/* Line 1455 of yacc.c */ #line 1117 "../parser/Grammar.y" { (yyval.caseClauseNode) = createNodeDeclarationInfo<CaseClauseNode*>(new (GLOBAL_DATA) CaseClauseNode(GLOBAL_DATA, (yyvsp[(2) - (4)].expressionNode).m_node, (yyvsp[(4) - (4)].sourceElements).m_node), (yyvsp[(4) - (4)].sourceElements).m_varDeclarations, (yyvsp[(4) - (4)].sourceElements).m_funcDeclarations, (yyvsp[(2) - (4)].expressionNode).m_features | (yyvsp[(4) - (4)].sourceElements).m_features, (yyvsp[(2) - (4)].expressionNode).m_numConstants + (yyvsp[(4) - (4)].sourceElements).m_numConstants); ;} break; case 277: + +/* Line 1455 of yacc.c */ #line 1121 "../parser/Grammar.y" { (yyval.caseClauseNode) = createNodeDeclarationInfo<CaseClauseNode*>(new (GLOBAL_DATA) CaseClauseNode(GLOBAL_DATA, 0), 0, 0, 0, 0); ;} break; case 278: + +/* Line 1455 of yacc.c */ #line 1122 "../parser/Grammar.y" { (yyval.caseClauseNode) = createNodeDeclarationInfo<CaseClauseNode*>(new (GLOBAL_DATA) CaseClauseNode(GLOBAL_DATA, 0, (yyvsp[(3) - (3)].sourceElements).m_node), (yyvsp[(3) - (3)].sourceElements).m_varDeclarations, (yyvsp[(3) - (3)].sourceElements).m_funcDeclarations, (yyvsp[(3) - (3)].sourceElements).m_features, (yyvsp[(3) - (3)].sourceElements).m_numConstants); ;} break; case 279: + +/* Line 1455 of yacc.c */ #line 1126 "../parser/Grammar.y" { LabelNode* node = new (GLOBAL_DATA) LabelNode(GLOBAL_DATA, *(yyvsp[(1) - (3)].ident), (yyvsp[(3) - (3)].statementNode).m_node); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column); @@ -4283,6 +4651,8 @@ yyreduce: break; case 280: + +/* Line 1455 of yacc.c */ #line 1132 "../parser/Grammar.y" { ThrowNode* node = new (GLOBAL_DATA) ThrowNode(GLOBAL_DATA, (yyvsp[(2) - (3)].expressionNode).m_node); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column); @@ -4291,6 +4661,8 @@ yyreduce: break; case 281: + +/* Line 1455 of yacc.c */ #line 1136 "../parser/Grammar.y" { ThrowNode* node = new (GLOBAL_DATA) ThrowNode(GLOBAL_DATA, (yyvsp[(2) - (3)].expressionNode).m_node); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column); @@ -4299,6 +4671,8 @@ yyreduce: break; case 282: + +/* Line 1455 of yacc.c */ #line 1143 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) TryNode(GLOBAL_DATA, (yyvsp[(2) - (4)].statementNode).m_node, GLOBAL_DATA->propertyNames->nullIdentifier, false, 0, (yyvsp[(4) - (4)].statementNode).m_node), mergeDeclarationLists((yyvsp[(2) - (4)].statementNode).m_varDeclarations, (yyvsp[(4) - (4)].statementNode).m_varDeclarations), @@ -4309,6 +4683,8 @@ yyreduce: break; case 283: + +/* Line 1455 of yacc.c */ #line 1149 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) TryNode(GLOBAL_DATA, (yyvsp[(2) - (7)].statementNode).m_node, *(yyvsp[(5) - (7)].ident), ((yyvsp[(7) - (7)].statementNode).m_features & EvalFeature) != 0, (yyvsp[(7) - (7)].statementNode).m_node, 0), mergeDeclarationLists((yyvsp[(2) - (7)].statementNode).m_varDeclarations, (yyvsp[(7) - (7)].statementNode).m_varDeclarations), @@ -4319,6 +4695,8 @@ yyreduce: break; case 284: + +/* Line 1455 of yacc.c */ #line 1156 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) TryNode(GLOBAL_DATA, (yyvsp[(2) - (9)].statementNode).m_node, *(yyvsp[(5) - (9)].ident), ((yyvsp[(7) - (9)].statementNode).m_features & EvalFeature) != 0, (yyvsp[(7) - (9)].statementNode).m_node, (yyvsp[(9) - (9)].statementNode).m_node), mergeDeclarationLists(mergeDeclarationLists((yyvsp[(2) - (9)].statementNode).m_varDeclarations, (yyvsp[(7) - (9)].statementNode).m_varDeclarations), (yyvsp[(9) - (9)].statementNode).m_varDeclarations), @@ -4329,23 +4707,31 @@ yyreduce: break; case 285: + +/* Line 1455 of yacc.c */ #line 1165 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) DebuggerStatementNode(GLOBAL_DATA), 0, 0, 0, 0); DBG((yyval.statementNode).m_node, (yylsp[(1) - (2)]), (yylsp[(2) - (2)])); ;} break; case 286: + +/* Line 1455 of yacc.c */ #line 1167 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) DebuggerStatementNode(GLOBAL_DATA), 0, 0, 0, 0); DBG((yyval.statementNode).m_node, (yylsp[(1) - (2)]), (yylsp[(1) - (2)])); AUTO_SEMICOLON; ;} break; case 287: + +/* Line 1455 of yacc.c */ #line 1172 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new FuncDeclNode(GLOBAL_DATA, *(yyvsp[(2) - (7)].ident), (yyvsp[(6) - (7)].functionBodyNode), LEXER->sourceCode((yyvsp[(5) - (7)].intValue), (yyvsp[(7) - (7)].intValue), (yylsp[(5) - (7)]).first_line)), 0, new (GLOBAL_DATA) ParserArenaData<DeclarationStacks::FunctionStack>, ((*(yyvsp[(2) - (7)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0) | ClosureFeature, 0); DBG((yyvsp[(6) - (7)].functionBodyNode), (yylsp[(5) - (7)]), (yylsp[(7) - (7)])); (yyval.statementNode).m_funcDeclarations->data.append(static_cast<FuncDeclNode*>((yyval.statementNode).m_node)); ;} break; case 288: + +/* Line 1455 of yacc.c */ #line 1174 "../parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new FuncDeclNode(GLOBAL_DATA, *(yyvsp[(2) - (8)].ident), (yyvsp[(7) - (8)].functionBodyNode), LEXER->sourceCode((yyvsp[(6) - (8)].intValue), (yyvsp[(8) - (8)].intValue), (yylsp[(6) - (8)]).first_line), (yyvsp[(4) - (8)].parameterList).m_node.head), 0, new (GLOBAL_DATA) ParserArenaData<DeclarationStacks::FunctionStack>, ((*(yyvsp[(2) - (8)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0) | (yyvsp[(4) - (8)].parameterList).m_features | ClosureFeature, 0); @@ -4357,11 +4743,15 @@ yyreduce: break; case 289: + +/* Line 1455 of yacc.c */ #line 1184 "../parser/Grammar.y" { (yyval.funcExprNode) = createNodeInfo(new FuncExprNode(GLOBAL_DATA, GLOBAL_DATA->propertyNames->nullIdentifier, (yyvsp[(5) - (6)].functionBodyNode), LEXER->sourceCode((yyvsp[(4) - (6)].intValue), (yyvsp[(6) - (6)].intValue), (yylsp[(4) - (6)]).first_line)), ClosureFeature, 0); DBG((yyvsp[(5) - (6)].functionBodyNode), (yylsp[(4) - (6)]), (yylsp[(6) - (6)])); ;} break; case 290: + +/* Line 1455 of yacc.c */ #line 1186 "../parser/Grammar.y" { (yyval.funcExprNode) = createNodeInfo(new FuncExprNode(GLOBAL_DATA, GLOBAL_DATA->propertyNames->nullIdentifier, (yyvsp[(6) - (7)].functionBodyNode), LEXER->sourceCode((yyvsp[(5) - (7)].intValue), (yyvsp[(7) - (7)].intValue), (yylsp[(5) - (7)]).first_line), (yyvsp[(3) - (7)].parameterList).m_node.head), (yyvsp[(3) - (7)].parameterList).m_features | ClosureFeature, 0); @@ -4372,11 +4762,15 @@ yyreduce: break; case 291: + +/* Line 1455 of yacc.c */ #line 1192 "../parser/Grammar.y" { (yyval.funcExprNode) = createNodeInfo(new FuncExprNode(GLOBAL_DATA, *(yyvsp[(2) - (7)].ident), (yyvsp[(6) - (7)].functionBodyNode), LEXER->sourceCode((yyvsp[(5) - (7)].intValue), (yyvsp[(7) - (7)].intValue), (yylsp[(5) - (7)]).first_line)), ClosureFeature, 0); DBG((yyvsp[(6) - (7)].functionBodyNode), (yylsp[(5) - (7)]), (yylsp[(7) - (7)])); ;} break; case 292: + +/* Line 1455 of yacc.c */ #line 1194 "../parser/Grammar.y" { (yyval.funcExprNode) = createNodeInfo(new FuncExprNode(GLOBAL_DATA, *(yyvsp[(2) - (8)].ident), (yyvsp[(7) - (8)].functionBodyNode), LEXER->sourceCode((yyvsp[(6) - (8)].intValue), (yyvsp[(8) - (8)].intValue), (yylsp[(6) - (8)]).first_line), (yyvsp[(4) - (8)].parameterList).m_node.head), (yyvsp[(4) - (8)].parameterList).m_features | ClosureFeature, 0); @@ -4387,6 +4781,8 @@ yyreduce: break; case 293: + +/* Line 1455 of yacc.c */ #line 1203 "../parser/Grammar.y" { (yyval.parameterList).m_node.head = new (GLOBAL_DATA) ParameterNode(GLOBAL_DATA, *(yyvsp[(1) - (1)].ident)); (yyval.parameterList).m_features = (*(yyvsp[(1) - (1)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0; @@ -4394,6 +4790,8 @@ yyreduce: break; case 294: + +/* Line 1455 of yacc.c */ #line 1206 "../parser/Grammar.y" { (yyval.parameterList).m_node.head = (yyvsp[(1) - (3)].parameterList).m_node.head; (yyval.parameterList).m_features = (yyvsp[(1) - (3)].parameterList).m_features | ((*(yyvsp[(3) - (3)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0); @@ -4401,27 +4799,37 @@ yyreduce: break; case 295: + +/* Line 1455 of yacc.c */ #line 1212 "../parser/Grammar.y" { (yyval.functionBodyNode) = FunctionBodyNode::create(GLOBAL_DATA); ;} break; case 296: + +/* Line 1455 of yacc.c */ #line 1213 "../parser/Grammar.y" { (yyval.functionBodyNode) = FunctionBodyNode::create(GLOBAL_DATA); ;} break; case 297: + +/* Line 1455 of yacc.c */ #line 1217 "../parser/Grammar.y" { GLOBAL_DATA->parser->didFinishParsing(new (GLOBAL_DATA) SourceElements(GLOBAL_DATA), 0, 0, NoFeatures, (yylsp[(0) - (0)]).last_line, 0); ;} break; case 298: + +/* Line 1455 of yacc.c */ #line 1218 "../parser/Grammar.y" { GLOBAL_DATA->parser->didFinishParsing((yyvsp[(1) - (1)].sourceElements).m_node, (yyvsp[(1) - (1)].sourceElements).m_varDeclarations, (yyvsp[(1) - (1)].sourceElements).m_funcDeclarations, (yyvsp[(1) - (1)].sourceElements).m_features, (yylsp[(1) - (1)]).last_line, (yyvsp[(1) - (1)].sourceElements).m_numConstants); ;} break; case 299: + +/* Line 1455 of yacc.c */ #line 1223 "../parser/Grammar.y" { (yyval.sourceElements).m_node = new (GLOBAL_DATA) SourceElements(GLOBAL_DATA); (yyval.sourceElements).m_node->append((yyvsp[(1) - (1)].statementNode).m_node); @@ -4433,6 +4841,8 @@ yyreduce: break; case 300: + +/* Line 1455 of yacc.c */ #line 1230 "../parser/Grammar.y" { (yyval.sourceElements).m_node->append((yyvsp[(2) - (2)].statementNode).m_node); (yyval.sourceElements).m_varDeclarations = mergeDeclarationLists((yyvsp[(1) - (2)].sourceElements).m_varDeclarations, (yyvsp[(2) - (2)].statementNode).m_varDeclarations); @@ -4443,188 +4853,261 @@ yyreduce: break; case 304: + +/* Line 1455 of yacc.c */ #line 1244 "../parser/Grammar.y" { ;} break; case 305: + +/* Line 1455 of yacc.c */ #line 1245 "../parser/Grammar.y" { ;} break; case 306: + +/* Line 1455 of yacc.c */ #line 1246 "../parser/Grammar.y" { Lexer& l = *LEXER; if (!l.scanRegExp()) YYABORT; ;} break; case 307: + +/* Line 1455 of yacc.c */ #line 1247 "../parser/Grammar.y" { Lexer& l = *LEXER; if (!l.scanRegExp()) YYABORT; ;} break; case 308: + +/* Line 1455 of yacc.c */ #line 1251 "../parser/Grammar.y" { ;} break; case 309: + +/* Line 1455 of yacc.c */ #line 1252 "../parser/Grammar.y" { ;} break; case 310: + +/* Line 1455 of yacc.c */ #line 1253 "../parser/Grammar.y" { ;} break; case 311: + +/* Line 1455 of yacc.c */ #line 1254 "../parser/Grammar.y" { if (*(yyvsp[(1) - (7)].ident) != "get" && *(yyvsp[(1) - (7)].ident) != "set") YYABORT; ;} break; case 312: + +/* Line 1455 of yacc.c */ #line 1255 "../parser/Grammar.y" { if (*(yyvsp[(1) - (8)].ident) != "get" && *(yyvsp[(1) - (8)].ident) != "set") YYABORT; ;} break; case 316: + +/* Line 1455 of yacc.c */ #line 1265 "../parser/Grammar.y" { ;} break; case 317: + +/* Line 1455 of yacc.c */ #line 1266 "../parser/Grammar.y" { ;} break; case 318: + +/* Line 1455 of yacc.c */ #line 1268 "../parser/Grammar.y" { ;} break; case 322: + +/* Line 1455 of yacc.c */ #line 1275 "../parser/Grammar.y" { ;} break; case 517: + +/* Line 1455 of yacc.c */ #line 1643 "../parser/Grammar.y" { ;} break; case 518: + +/* Line 1455 of yacc.c */ #line 1644 "../parser/Grammar.y" { ;} break; case 520: + +/* Line 1455 of yacc.c */ #line 1649 "../parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 521: + +/* Line 1455 of yacc.c */ #line 1653 "../parser/Grammar.y" { ;} break; case 522: + +/* Line 1455 of yacc.c */ #line 1654 "../parser/Grammar.y" { ;} break; case 525: + +/* Line 1455 of yacc.c */ #line 1660 "../parser/Grammar.y" { ;} break; case 526: + +/* Line 1455 of yacc.c */ #line 1661 "../parser/Grammar.y" { ;} break; case 530: + +/* Line 1455 of yacc.c */ #line 1668 "../parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 533: + +/* Line 1455 of yacc.c */ #line 1677 "../parser/Grammar.y" { ;} break; case 534: + +/* Line 1455 of yacc.c */ #line 1678 "../parser/Grammar.y" { ;} break; case 539: + +/* Line 1455 of yacc.c */ #line 1695 "../parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 555: + +/* Line 1455 of yacc.c */ #line 1726 "../parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 557: + +/* Line 1455 of yacc.c */ #line 1728 "../parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 559: + +/* Line 1455 of yacc.c */ #line 1733 "../parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 561: + +/* Line 1455 of yacc.c */ #line 1735 "../parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 563: + +/* Line 1455 of yacc.c */ #line 1740 "../parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 565: + +/* Line 1455 of yacc.c */ #line 1742 "../parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 568: + +/* Line 1455 of yacc.c */ #line 1754 "../parser/Grammar.y" { ;} break; case 569: + +/* Line 1455 of yacc.c */ #line 1755 "../parser/Grammar.y" { ;} break; case 578: + +/* Line 1455 of yacc.c */ #line 1779 "../parser/Grammar.y" { ;} break; case 580: + +/* Line 1455 of yacc.c */ #line 1784 "../parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 585: + +/* Line 1455 of yacc.c */ #line 1795 "../parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 592: + +/* Line 1455 of yacc.c */ #line 1811 "../parser/Grammar.y" { ;} break; -/* Line 1267 of yacc.c. */ -#line 4628 "JavaScriptCore/tmp/../generated/Grammar.tab.c" + +/* Line 1455 of yacc.c */ +#line 5111 "JavaScriptCore/tmp/../generated/Grammar.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -4700,7 +5183,7 @@ yyerrlab: if (yyerrstatus == 3) { - /* If just tried and failed to reuse look-ahead token after an + /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) @@ -4717,7 +5200,7 @@ yyerrlab: } } - /* Else will try to reuse look-ahead token after shifting the error + /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; @@ -4775,14 +5258,11 @@ yyerrlab1: YY_STACK_PRINT (yyss, yyssp); } - if (yyn == YYFINAL) - YYACCEPT; - *++yyvsp = yylval; yyerror_range[1] = yylloc; /* Using YYLLOC is tempting, but would change the location of - the look-ahead. YYLOC is available though. */ + the lookahead. YYLOC is available though. */ YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2); *++yylsp = yyloc; @@ -4807,7 +5287,7 @@ yyabortlab: yyresult = 1; goto yyreturn; -#ifndef yyoverflow +#if !defined(yyoverflow) || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ @@ -4818,7 +5298,7 @@ yyexhaustedlab: #endif yyreturn: - if (yychar != YYEOF && yychar != YYEMPTY) + if (yychar != YYEMPTY) yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc); /* Do not reclaim the symbols of the rule which action triggered @@ -4844,6 +5324,8 @@ yyreturn: } + +/* Line 1675 of yacc.c */ #line 1827 "../parser/Grammar.y" diff --git a/src/3rdparty/webkit/JavaScriptCore/generated/Grammar.h b/src/3rdparty/webkit/JavaScriptCore/generated/Grammar.h index ebd30c8..c7d3837 100644 --- a/src/3rdparty/webkit/JavaScriptCore/generated/Grammar.h +++ b/src/3rdparty/webkit/JavaScriptCore/generated/Grammar.h @@ -1,24 +1,23 @@ -/* A Bison parser, made by GNU Bison 2.3. */ -/* Skeleton interface for Bison's Yacc-like parsers in C +/* A Bison parser, made by GNU Bison 2.4.1. */ - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +/* Skeleton interface for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -29,10 +28,11 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ + /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE @@ -104,78 +104,16 @@ AUTOMINUSMINUS = 320 }; #endif -/* Tokens. */ -#define NULLTOKEN 258 -#define TRUETOKEN 259 -#define FALSETOKEN 260 -#define BREAK 261 -#define CASE 262 -#define DEFAULT 263 -#define FOR 264 -#define NEW 265 -#define VAR 266 -#define CONSTTOKEN 267 -#define CONTINUE 268 -#define FUNCTION 269 -#define RETURN 270 -#define VOIDTOKEN 271 -#define DELETETOKEN 272 -#define IF 273 -#define THISTOKEN 274 -#define DO 275 -#define WHILE 276 -#define INTOKEN 277 -#define INSTANCEOF 278 -#define TYPEOF 279 -#define SWITCH 280 -#define WITH 281 -#define RESERVED 282 -#define THROW 283 -#define TRY 284 -#define CATCH 285 -#define FINALLY 286 -#define DEBUGGER 287 -#define IF_WITHOUT_ELSE 288 -#define ELSE 289 -#define EQEQ 290 -#define NE 291 -#define STREQ 292 -#define STRNEQ 293 -#define LE 294 -#define GE 295 -#define OR 296 -#define AND 297 -#define PLUSPLUS 298 -#define MINUSMINUS 299 -#define LSHIFT 300 -#define RSHIFT 301 -#define URSHIFT 302 -#define PLUSEQUAL 303 -#define MINUSEQUAL 304 -#define MULTEQUAL 305 -#define DIVEQUAL 306 -#define LSHIFTEQUAL 307 -#define RSHIFTEQUAL 308 -#define URSHIFTEQUAL 309 -#define ANDEQUAL 310 -#define MODEQUAL 311 -#define XOREQUAL 312 -#define OREQUAL 313 -#define OPENBRACE 314 -#define CLOSEBRACE 315 -#define NUMBER 316 -#define IDENT 317 -#define STRING 318 -#define AUTOPLUSPLUS 319 -#define AUTOMINUSMINUS 320 - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 157 "../parser/Grammar.y" { + +/* Line 1676 of yacc.c */ +#line 157 "../parser/Grammar.y" + int intValue; double doubleValue; Identifier* ident; @@ -205,13 +143,15 @@ typedef union YYSTYPE ParameterListInfo parameterList; Operator op; -} -/* Line 1489 of yacc.c. */ -#line 211 "JavaScriptCore/tmp/../generated/Grammar.tab.h" - YYSTYPE; + + + +/* Line 1676 of yacc.c */ +#line 151 "JavaScriptCore/tmp/../generated/Grammar.tab.h" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif @@ -230,3 +170,4 @@ typedef struct YYLTYPE #endif + diff --git a/src/3rdparty/webkit/JavaScriptCore/generated/JSONObject.lut.h b/src/3rdparty/webkit/JavaScriptCore/generated/JSONObject.lut.h index 2b7e836..a9b1631 100644 --- a/src/3rdparty/webkit/JavaScriptCore/generated/JSONObject.lut.h +++ b/src/3rdparty/webkit/JavaScriptCore/generated/JSONObject.lut.h @@ -10,6 +10,6 @@ static const struct HashTableValue jsonTableValues[3] = { { 0, 0, 0, 0 } }; -extern const struct HashTable jsonTable = +extern JSC_CONST_HASHTABLE HashTable jsonTable = { 4, 3, jsonTableValues, 0 }; } // namespace diff --git a/src/3rdparty/webkit/JavaScriptCore/generated/Lexer.lut.h b/src/3rdparty/webkit/JavaScriptCore/generated/Lexer.lut.h index fb1ae29..95c33b6 100644 --- a/src/3rdparty/webkit/JavaScriptCore/generated/Lexer.lut.h +++ b/src/3rdparty/webkit/JavaScriptCore/generated/Lexer.lut.h @@ -44,6 +44,6 @@ static const struct HashTableValue mainTableValues[37] = { { 0, 0, 0, 0 } }; -extern const struct HashTable mainTable = +extern JSC_CONST_HASHTABLE HashTable mainTable = { 133, 127, mainTableValues, 0 }; } // namespace diff --git a/src/3rdparty/webkit/JavaScriptCore/generated/MathObject.lut.h b/src/3rdparty/webkit/JavaScriptCore/generated/MathObject.lut.h index 7d9b43e..9cb0ee2 100644 --- a/src/3rdparty/webkit/JavaScriptCore/generated/MathObject.lut.h +++ b/src/3rdparty/webkit/JavaScriptCore/generated/MathObject.lut.h @@ -26,6 +26,6 @@ static const struct HashTableValue mathTableValues[19] = { { 0, 0, 0, 0 } }; -extern const struct HashTable mathTable = +extern JSC_CONST_HASHTABLE HashTable mathTable = { 67, 63, mathTableValues, 0 }; } // namespace diff --git a/src/3rdparty/webkit/JavaScriptCore/generated/NumberConstructor.lut.h b/src/3rdparty/webkit/JavaScriptCore/generated/NumberConstructor.lut.h index e963e1a..6285d62 100644 --- a/src/3rdparty/webkit/JavaScriptCore/generated/NumberConstructor.lut.h +++ b/src/3rdparty/webkit/JavaScriptCore/generated/NumberConstructor.lut.h @@ -13,6 +13,6 @@ static const struct HashTableValue numberTableValues[6] = { { 0, 0, 0, 0 } }; -extern const struct HashTable numberTable = +extern JSC_CONST_HASHTABLE HashTable numberTable = { 16, 15, numberTableValues, 0 }; } // namespace diff --git a/src/3rdparty/webkit/JavaScriptCore/generated/RegExpConstructor.lut.h b/src/3rdparty/webkit/JavaScriptCore/generated/RegExpConstructor.lut.h index fd822c6..a3f15b3 100644 --- a/src/3rdparty/webkit/JavaScriptCore/generated/RegExpConstructor.lut.h +++ b/src/3rdparty/webkit/JavaScriptCore/generated/RegExpConstructor.lut.h @@ -29,6 +29,6 @@ static const struct HashTableValue regExpConstructorTableValues[22] = { { 0, 0, 0, 0 } }; -extern const struct HashTable regExpConstructorTable = +extern JSC_CONST_HASHTABLE HashTable regExpConstructorTable = { 65, 63, regExpConstructorTableValues, 0 }; } // namespace diff --git a/src/3rdparty/webkit/JavaScriptCore/generated/RegExpObject.lut.h b/src/3rdparty/webkit/JavaScriptCore/generated/RegExpObject.lut.h index 81d5b60..8c87f16 100644 --- a/src/3rdparty/webkit/JavaScriptCore/generated/RegExpObject.lut.h +++ b/src/3rdparty/webkit/JavaScriptCore/generated/RegExpObject.lut.h @@ -13,6 +13,6 @@ static const struct HashTableValue regExpTableValues[6] = { { 0, 0, 0, 0 } }; -extern const struct HashTable regExpTable = +extern JSC_CONST_HASHTABLE HashTable regExpTable = { 17, 15, regExpTableValues, 0 }; } // namespace diff --git a/src/3rdparty/webkit/JavaScriptCore/generated/StringPrototype.lut.h b/src/3rdparty/webkit/JavaScriptCore/generated/StringPrototype.lut.h index dfb9c20..f912298 100644 --- a/src/3rdparty/webkit/JavaScriptCore/generated/StringPrototype.lut.h +++ b/src/3rdparty/webkit/JavaScriptCore/generated/StringPrototype.lut.h @@ -40,6 +40,6 @@ static const struct HashTableValue stringTableValues[33] = { { 0, 0, 0, 0 } }; -extern const struct HashTable stringTable = +extern JSC_CONST_HASHTABLE HashTable stringTable = { 71, 63, stringTableValues, 0 }; } // namespace diff --git a/src/3rdparty/webkit/JavaScriptCore/interpreter/CallFrame.h b/src/3rdparty/webkit/JavaScriptCore/interpreter/CallFrame.h index 0b0e5fe..2d677ce 100644 --- a/src/3rdparty/webkit/JavaScriptCore/interpreter/CallFrame.h +++ b/src/3rdparty/webkit/JavaScriptCore/interpreter/CallFrame.h @@ -124,26 +124,23 @@ namespace JSC { setCalleeArguments(0); } - private: - friend class Arguments; - friend class JSActivation; - friend class JSGlobalObject; - friend class Interpreter; - friend struct CallFrameClosure; + // Read a register from the codeframe (or constant from the CodeBlock). + inline Register& r(int); + static CallFrame* noCaller() { return reinterpret_cast<CallFrame*>(HostCallFrameFlag); } int returnValueRegister() const { return this[RegisterFile::ReturnValueRegister].i(); } + bool hasHostCallFrameFlag() const { return reinterpret_cast<intptr_t>(this) & HostCallFrameFlag; } + CallFrame* addHostCallFrameFlag() const { return reinterpret_cast<CallFrame*>(reinterpret_cast<intptr_t>(this) | HostCallFrameFlag); } + CallFrame* removeHostCallFrameFlag() { return reinterpret_cast<CallFrame*>(reinterpret_cast<intptr_t>(this) & ~HostCallFrameFlag); } + + private: void setArgumentCount(int count) { this[RegisterFile::ArgumentCount] = count; } void setCallee(JSFunction* callee) { this[RegisterFile::Callee] = callee; } void setCodeBlock(CodeBlock* codeBlock) { this[RegisterFile::CodeBlock] = codeBlock; } static const intptr_t HostCallFrameFlag = 1; - static CallFrame* noCaller() { return reinterpret_cast<CallFrame*>(HostCallFrameFlag); } - bool hasHostCallFrameFlag() const { return reinterpret_cast<intptr_t>(this) & HostCallFrameFlag; } - CallFrame* addHostCallFrameFlag() const { return reinterpret_cast<CallFrame*>(reinterpret_cast<intptr_t>(this) | HostCallFrameFlag); } - CallFrame* removeHostCallFrameFlag() { return reinterpret_cast<CallFrame*>(reinterpret_cast<intptr_t>(this) & ~HostCallFrameFlag); } - ExecState(); ~ExecState(); }; diff --git a/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp b/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp index 7b1e547..ed7e1ee 100644 --- a/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp @@ -65,10 +65,6 @@ #include "JIT.h" #endif -#if ENABLE(ASSEMBLER) -#include "AssemblerBuffer.h" -#endif - using namespace std; namespace JSC { @@ -112,7 +108,7 @@ NEVER_INLINE bool Interpreter::resolve(CallFrame* callFrame, Instruction* vPC, J exceptionValue = callFrame->globalData().exception; if (exceptionValue) return false; - callFrame[dst] = JSValue(result); + callFrame->r(dst) = JSValue(result); return true; } } while (++iter != end); @@ -145,7 +141,7 @@ NEVER_INLINE bool Interpreter::resolveSkip(CallFrame* callFrame, Instruction* vP exceptionValue = callFrame->globalData().exception; if (exceptionValue) return false; - callFrame[dst] = JSValue(result); + callFrame->r(dst) = JSValue(result); return true; } } while (++iter != end); @@ -163,7 +159,7 @@ NEVER_INLINE bool Interpreter::resolveGlobal(CallFrame* callFrame, Instruction* int offset = (vPC + 5)->u.operand; if (structure == globalObject->structure()) { - callFrame[dst] = JSValue(globalObject->getDirectOffset(offset)); + callFrame->r(dst) = JSValue(globalObject->getDirectOffset(offset)); return true; } @@ -178,14 +174,14 @@ NEVER_INLINE bool Interpreter::resolveGlobal(CallFrame* callFrame, Instruction* globalObject->structure()->ref(); vPC[4] = globalObject->structure(); vPC[5] = slot.cachedOffset(); - callFrame[dst] = JSValue(result); + callFrame->r(dst) = JSValue(result); return true; } exceptionValue = callFrame->globalData().exception; if (exceptionValue) return false; - callFrame[dst] = JSValue(result); + callFrame->r(dst) = JSValue(result); return true; } @@ -197,7 +193,7 @@ NEVER_INLINE void Interpreter::resolveBase(CallFrame* callFrame, Instruction* vP { int dst = (vPC + 1)->u.operand; int property = (vPC + 2)->u.operand; - callFrame[dst] = JSValue(JSC::resolveBase(callFrame, callFrame->codeBlock()->identifier(property), callFrame->scopeChain())); + callFrame->r(dst) = JSValue(JSC::resolveBase(callFrame, callFrame->codeBlock()->identifier(property), callFrame->scopeChain())); } NEVER_INLINE bool Interpreter::resolveBaseAndProperty(CallFrame* callFrame, Instruction* vPC, JSValue& exceptionValue) @@ -225,8 +221,8 @@ NEVER_INLINE bool Interpreter::resolveBaseAndProperty(CallFrame* callFrame, Inst exceptionValue = callFrame->globalData().exception; if (exceptionValue) return false; - callFrame[propDst] = JSValue(result); - callFrame[baseDst] = JSValue(base); + callFrame->r(propDst) = JSValue(result); + callFrame->r(baseDst) = JSValue(base); return true; } ++iter; @@ -270,8 +266,8 @@ NEVER_INLINE bool Interpreter::resolveBaseAndFunc(CallFrame* callFrame, Instruct if (exceptionValue) return false; - callFrame[baseDst] = JSValue(thisObj); - callFrame[funcDst] = JSValue(result); + callFrame->r(baseDst) = JSValue(thisObj); + callFrame->r(funcDst) = JSValue(result); return true; } ++iter; @@ -436,17 +432,7 @@ void Interpreter::dumpRegisters(CallFrame* callFrame) } printf("----------------------------------------------------\n"); - end = it + codeBlock->m_numConstants; - if (it != end) { - do { - printf("[r%2d] | %10p | %10p \n", registerCount, it, (*it).v()); - ++it; - ++registerCount; - } while (it != end); - } - printf("----------------------------------------------------\n"); - - end = it + codeBlock->m_numCalleeRegisters - codeBlock->m_numConstants - codeBlock->m_numVars; + end = it + codeBlock->m_numCalleeRegisters - codeBlock->m_numVars; if (it != end) { do { printf("[r%2d] | %10p | %10p \n", registerCount, it, (*it).v()); @@ -567,13 +553,13 @@ NEVER_INLINE HandlerInfo* Interpreter::throwException(CallFrame*& callFrame, JSV if (Profiler* profiler = *Profiler::enabledProfilerReference()) { #if !ENABLE(JIT) if (isCallBytecode(codeBlock->instructions()[bytecodeOffset].u.opcode)) - profiler->didExecute(callFrame, callFrame[codeBlock->instructions()[bytecodeOffset + 2].u.operand].jsValue()); + profiler->didExecute(callFrame, callFrame->r(codeBlock->instructions()[bytecodeOffset + 2].u.operand).jsValue()); else if (codeBlock->instructions()[bytecodeOffset + 8].u.opcode == getOpcode(op_construct)) - profiler->didExecute(callFrame, callFrame[codeBlock->instructions()[bytecodeOffset + 10].u.operand].jsValue()); + profiler->didExecute(callFrame, callFrame->r(codeBlock->instructions()[bytecodeOffset + 10].u.operand).jsValue()); #else int functionRegisterIndex; if (codeBlock->functionRegisterForBytecodeOffset(bytecodeOffset, functionRegisterIndex)) - profiler->didExecute(callFrame, callFrame[functionRegisterIndex].jsValue()); + profiler->didExecute(callFrame, callFrame->r(functionRegisterIndex).jsValue()); #endif } @@ -625,7 +611,7 @@ JSValue Interpreter::execute(ProgramNode* programNode, CallFrame* callFrame, Sco globalObject->copyGlobalsTo(m_registerFile); CallFrame* newCallFrame = CallFrame::create(oldEnd + codeBlock->m_numParameters + RegisterFile::CallFrameHeaderSize); - newCallFrame[codeBlock->thisRegister()] = JSValue(thisObj); + newCallFrame->r(codeBlock->thisRegister()) = JSValue(thisObj); newCallFrame->init(codeBlock, 0, scopeChain, CallFrame::noCaller(), 0, 0, 0); if (codeBlock->needsFullScopeChain()) @@ -682,10 +668,10 @@ JSValue Interpreter::execute(FunctionBodyNode* functionBodyNode, CallFrame* call CallFrame* newCallFrame = CallFrame::create(oldEnd); size_t dst = 0; - newCallFrame[0] = JSValue(thisObj); + newCallFrame->r(0) = JSValue(thisObj); ArgList::const_iterator end = args.end(); for (ArgList::const_iterator it = args.begin(); it != end; ++it) - newCallFrame[++dst] = *it; + newCallFrame->r(++dst) = *it; CodeBlock* codeBlock = &functionBodyNode->bytecode(scopeChain); newCallFrame = slideRegisterWindowForCall(codeBlock, &m_registerFile, newCallFrame, argc + RegisterFile::CallFrameHeaderSize, argc); @@ -743,7 +729,7 @@ CallFrameClosure Interpreter::prepareForRepeatCall(FunctionBodyNode* functionBod CallFrame* newCallFrame = CallFrame::create(oldEnd); size_t dst = 0; for (int i = 0; i < argc; ++i) - newCallFrame[++dst] = jsUndefined(); + newCallFrame->r(++dst) = jsUndefined(); CodeBlock* codeBlock = &functionBodyNode->bytecode(scopeChain); newCallFrame = slideRegisterWindowForCall(codeBlock, &m_registerFile, newCallFrame, argc + RegisterFile::CallFrameHeaderSize, argc); @@ -854,7 +840,7 @@ JSValue Interpreter::execute(EvalNode* evalNode, CallFrame* callFrame, JSObject* CallFrame* newCallFrame = CallFrame::create(m_registerFile.start() + globalRegisterOffset); // a 0 codeBlock indicates a built-in caller - newCallFrame[codeBlock->thisRegister()] = JSValue(thisObj); + newCallFrame->r(codeBlock->thisRegister()) = JSValue(thisObj); newCallFrame->init(codeBlock, 0, scopeChain, callFrame->addHostCallFrameFlag(), 0, 0, 0); if (codeBlock->needsFullScopeChain()) @@ -918,9 +904,9 @@ NEVER_INLINE ScopeChainNode* Interpreter::createExceptionScope(CallFrame* callFr int dst = (++vPC)->u.operand; CodeBlock* codeBlock = callFrame->codeBlock(); Identifier& property = codeBlock->identifier((++vPC)->u.operand); - JSValue value = callFrame[(++vPC)->u.operand].jsValue(); + JSValue value = callFrame->r((++vPC)->u.operand).jsValue(); JSObject* scope = new (callFrame) JSStaticScopeObject(callFrame, property, value, DontDelete); - callFrame[dst] = JSValue(scope); + callFrame->r(dst) = JSValue(scope); return callFrame->scopeChain()->push(scope); } @@ -1197,7 +1183,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi constructor, and puts the result in register dst. */ int dst = (++vPC)->u.operand; - callFrame[dst] = JSValue(constructEmptyObject(callFrame)); + callFrame->r(dst) = JSValue(constructEmptyObject(callFrame)); ++vPC; NEXT_INSTRUCTION(); @@ -1214,7 +1200,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int firstArg = (++vPC)->u.operand; int argCount = (++vPC)->u.operand; ArgList args(callFrame->registers() + firstArg, argCount); - callFrame[dst] = JSValue(constructArray(callFrame, args)); + callFrame->r(dst) = JSValue(constructArray(callFrame, args)); ++vPC; NEXT_INSTRUCTION(); @@ -1228,7 +1214,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int dst = (++vPC)->u.operand; int regExp = (++vPC)->u.operand; - callFrame[dst] = JSValue(new (globalData) RegExpObject(callFrame->scopeChain()->globalObject()->regExpStructure(), callFrame->codeBlock()->regexp(regExp))); + callFrame->r(dst) = JSValue(new (globalData) RegExpObject(callFrame->scopeChain()->globalObject()->regExpStructure(), callFrame->codeBlock()->regexp(regExp))); ++vPC; NEXT_INSTRUCTION(); @@ -1240,7 +1226,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int dst = (++vPC)->u.operand; int src = (++vPC)->u.operand; - callFrame[dst] = callFrame[src]; + callFrame->r(dst) = callFrame->r(src); ++vPC; NEXT_INSTRUCTION(); @@ -1253,14 +1239,14 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi as a boolean in register dst. */ int dst = (++vPC)->u.operand; - JSValue src1 = callFrame[(++vPC)->u.operand].jsValue(); - JSValue src2 = callFrame[(++vPC)->u.operand].jsValue(); + JSValue src1 = callFrame->r((++vPC)->u.operand).jsValue(); + JSValue src2 = callFrame->r((++vPC)->u.operand).jsValue(); if (JSFastMath::canDoFastBitwiseOperations(src1, src2)) - callFrame[dst] = JSFastMath::equal(src1, src2); + callFrame->r(dst) = JSFastMath::equal(src1, src2); else { JSValue result = jsBoolean(JSValue::equalSlowCase(callFrame, src1, src2)); CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; } ++vPC; @@ -1273,15 +1259,15 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi operator, and puts the result as a boolean in register dst. */ int dst = (++vPC)->u.operand; - JSValue src = callFrame[(++vPC)->u.operand].jsValue(); + JSValue src = callFrame->r((++vPC)->u.operand).jsValue(); if (src.isUndefinedOrNull()) { - callFrame[dst] = jsBoolean(true); + callFrame->r(dst) = jsBoolean(true); ++vPC; NEXT_INSTRUCTION(); } - callFrame[dst] = jsBoolean(src.isCell() && src.asCell()->structure()->typeInfo().masqueradesAsUndefined()); + callFrame->r(dst) = jsBoolean(src.isCell() && src.asCell()->structure()->typeInfo().masqueradesAsUndefined()); ++vPC; NEXT_INSTRUCTION(); } @@ -1293,14 +1279,14 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi result as a boolean in register dst. */ int dst = (++vPC)->u.operand; - JSValue src1 = callFrame[(++vPC)->u.operand].jsValue(); - JSValue src2 = callFrame[(++vPC)->u.operand].jsValue(); + JSValue src1 = callFrame->r((++vPC)->u.operand).jsValue(); + JSValue src2 = callFrame->r((++vPC)->u.operand).jsValue(); if (JSFastMath::canDoFastBitwiseOperations(src1, src2)) - callFrame[dst] = JSFastMath::notEqual(src1, src2); + callFrame->r(dst) = JSFastMath::notEqual(src1, src2); else { JSValue result = jsBoolean(!JSValue::equalSlowCase(callFrame, src1, src2)); CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; } ++vPC; @@ -1313,15 +1299,15 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi operator, and puts the result as a boolean in register dst. */ int dst = (++vPC)->u.operand; - JSValue src = callFrame[(++vPC)->u.operand].jsValue(); + JSValue src = callFrame->r((++vPC)->u.operand).jsValue(); if (src.isUndefinedOrNull()) { - callFrame[dst] = jsBoolean(false); + callFrame->r(dst) = jsBoolean(false); ++vPC; NEXT_INSTRUCTION(); } - callFrame[dst] = jsBoolean(!src.isCell() || !asCell(src)->structure()->typeInfo().masqueradesAsUndefined()); + callFrame->r(dst) = jsBoolean(!src.isCell() || !asCell(src)->structure()->typeInfo().masqueradesAsUndefined()); ++vPC; NEXT_INSTRUCTION(); } @@ -1333,9 +1319,9 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi result as a boolean in register dst. */ int dst = (++vPC)->u.operand; - JSValue src1 = callFrame[(++vPC)->u.operand].jsValue(); - JSValue src2 = callFrame[(++vPC)->u.operand].jsValue(); - callFrame[dst] = jsBoolean(JSValue::strictEqual(src1, src2)); + JSValue src1 = callFrame->r((++vPC)->u.operand).jsValue(); + JSValue src2 = callFrame->r((++vPC)->u.operand).jsValue(); + callFrame->r(dst) = jsBoolean(JSValue::strictEqual(src1, src2)); ++vPC; NEXT_INSTRUCTION(); @@ -1348,9 +1334,9 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi puts the result as a boolean in register dst. */ int dst = (++vPC)->u.operand; - JSValue src1 = callFrame[(++vPC)->u.operand].jsValue(); - JSValue src2 = callFrame[(++vPC)->u.operand].jsValue(); - callFrame[dst] = jsBoolean(!JSValue::strictEqual(src1, src2)); + JSValue src1 = callFrame->r((++vPC)->u.operand).jsValue(); + JSValue src2 = callFrame->r((++vPC)->u.operand).jsValue(); + callFrame->r(dst) = jsBoolean(!JSValue::strictEqual(src1, src2)); ++vPC; NEXT_INSTRUCTION(); @@ -1363,11 +1349,11 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi a boolean in register dst. */ int dst = (++vPC)->u.operand; - JSValue src1 = callFrame[(++vPC)->u.operand].jsValue(); - JSValue src2 = callFrame[(++vPC)->u.operand].jsValue(); + JSValue src1 = callFrame->r((++vPC)->u.operand).jsValue(); + JSValue src2 = callFrame->r((++vPC)->u.operand).jsValue(); JSValue result = jsBoolean(jsLess(callFrame, src1, src2)); CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; ++vPC; NEXT_INSTRUCTION(); @@ -1380,11 +1366,11 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi puts the result as a boolean in register dst. */ int dst = (++vPC)->u.operand; - JSValue src1 = callFrame[(++vPC)->u.operand].jsValue(); - JSValue src2 = callFrame[(++vPC)->u.operand].jsValue(); + JSValue src1 = callFrame->r((++vPC)->u.operand).jsValue(); + JSValue src2 = callFrame->r((++vPC)->u.operand).jsValue(); JSValue result = jsBoolean(jsLessEq(callFrame, src1, src2)); CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; ++vPC; NEXT_INSTRUCTION(); @@ -1396,13 +1382,13 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi back in register srcDst. */ int srcDst = (++vPC)->u.operand; - JSValue v = callFrame[srcDst].jsValue(); + JSValue v = callFrame->r(srcDst).jsValue(); if (JSFastMath::canDoFastAdditiveOperations(v)) - callFrame[srcDst] = JSValue(JSFastMath::incImmediateNumber(v)); + callFrame->r(srcDst) = JSValue(JSFastMath::incImmediateNumber(v)); else { JSValue result = jsNumber(callFrame, v.toNumber(callFrame) + 1); CHECK_FOR_EXCEPTION(); - callFrame[srcDst] = result; + callFrame->r(srcDst) = result; } ++vPC; @@ -1415,13 +1401,13 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi back in register srcDst. */ int srcDst = (++vPC)->u.operand; - JSValue v = callFrame[srcDst].jsValue(); + JSValue v = callFrame->r(srcDst).jsValue(); if (JSFastMath::canDoFastAdditiveOperations(v)) - callFrame[srcDst] = JSValue(JSFastMath::decImmediateNumber(v)); + callFrame->r(srcDst) = JSValue(JSFastMath::decImmediateNumber(v)); else { JSValue result = jsNumber(callFrame, v.toNumber(callFrame) - 1); CHECK_FOR_EXCEPTION(); - callFrame[srcDst] = result; + callFrame->r(srcDst) = result; } ++vPC; @@ -1436,15 +1422,15 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int dst = (++vPC)->u.operand; int srcDst = (++vPC)->u.operand; - JSValue v = callFrame[srcDst].jsValue(); + JSValue v = callFrame->r(srcDst).jsValue(); if (JSFastMath::canDoFastAdditiveOperations(v)) { - callFrame[dst] = v; - callFrame[srcDst] = JSValue(JSFastMath::incImmediateNumber(v)); + callFrame->r(dst) = v; + callFrame->r(srcDst) = JSValue(JSFastMath::incImmediateNumber(v)); } else { - JSValue number = callFrame[srcDst].jsValue().toJSNumber(callFrame); + JSValue number = callFrame->r(srcDst).jsValue().toJSNumber(callFrame); CHECK_FOR_EXCEPTION(); - callFrame[dst] = number; - callFrame[srcDst] = JSValue(jsNumber(callFrame, number.uncheckedGetNumber() + 1)); + callFrame->r(dst) = number; + callFrame->r(srcDst) = JSValue(jsNumber(callFrame, number.uncheckedGetNumber() + 1)); } ++vPC; @@ -1459,15 +1445,15 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int dst = (++vPC)->u.operand; int srcDst = (++vPC)->u.operand; - JSValue v = callFrame[srcDst].jsValue(); + JSValue v = callFrame->r(srcDst).jsValue(); if (JSFastMath::canDoFastAdditiveOperations(v)) { - callFrame[dst] = v; - callFrame[srcDst] = JSValue(JSFastMath::decImmediateNumber(v)); + callFrame->r(dst) = v; + callFrame->r(srcDst) = JSValue(JSFastMath::decImmediateNumber(v)); } else { - JSValue number = callFrame[srcDst].jsValue().toJSNumber(callFrame); + JSValue number = callFrame->r(srcDst).jsValue().toJSNumber(callFrame); CHECK_FOR_EXCEPTION(); - callFrame[dst] = number; - callFrame[srcDst] = JSValue(jsNumber(callFrame, number.uncheckedGetNumber() - 1)); + callFrame->r(dst) = number; + callFrame->r(srcDst) = JSValue(jsNumber(callFrame, number.uncheckedGetNumber() - 1)); } ++vPC; @@ -1482,14 +1468,14 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int dst = (++vPC)->u.operand; int src = (++vPC)->u.operand; - JSValue srcVal = callFrame[src].jsValue(); + JSValue srcVal = callFrame->r(src).jsValue(); if (LIKELY(srcVal.isNumber())) - callFrame[dst] = callFrame[src]; + callFrame->r(dst) = callFrame->r(src); else { JSValue result = srcVal.toJSNumber(callFrame); CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; } ++vPC; @@ -1502,15 +1488,15 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi result in register dst. */ int dst = (++vPC)->u.operand; - JSValue src = callFrame[(++vPC)->u.operand].jsValue(); + JSValue src = callFrame->r((++vPC)->u.operand).jsValue(); ++vPC; double v; if (src.getNumber(v)) - callFrame[dst] = JSValue(jsNumber(callFrame, -v)); + callFrame->r(dst) = JSValue(jsNumber(callFrame, -v)); else { JSValue result = jsNumber(callFrame, -src.toNumber(callFrame)); CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; } NEXT_INSTRUCTION(); @@ -1523,14 +1509,14 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi numeric add, depending on the types of the operands.) */ int dst = (++vPC)->u.operand; - JSValue src1 = callFrame[(++vPC)->u.operand].jsValue(); - JSValue src2 = callFrame[(++vPC)->u.operand].jsValue(); + JSValue src1 = callFrame->r((++vPC)->u.operand).jsValue(); + JSValue src2 = callFrame->r((++vPC)->u.operand).jsValue(); if (JSFastMath::canDoFastAdditiveOperations(src1, src2)) - callFrame[dst] = JSValue(JSFastMath::addImmediateNumbers(src1, src2)); + callFrame->r(dst) = JSValue(JSFastMath::addImmediateNumbers(src1, src2)); else { JSValue result = jsAdd(callFrame, src1, src2); CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; } vPC += 2; NEXT_INSTRUCTION(); @@ -1542,23 +1528,23 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi numbers), and puts the product in register dst. */ int dst = (++vPC)->u.operand; - JSValue src1 = callFrame[(++vPC)->u.operand].jsValue(); - JSValue src2 = callFrame[(++vPC)->u.operand].jsValue(); + JSValue src1 = callFrame->r((++vPC)->u.operand).jsValue(); + JSValue src2 = callFrame->r((++vPC)->u.operand).jsValue(); double left; double right; if (JSValue::areBothInt32Fast(src1, src2)) { int32_t left = src1.getInt32Fast(); int32_t right = src2.getInt32Fast(); if ((left | right) >> 15 == 0) - callFrame[dst] = JSValue(jsNumber(callFrame, left * right)); + callFrame->r(dst) = JSValue(jsNumber(callFrame, left * right)); else - callFrame[dst] = JSValue(jsNumber(callFrame, static_cast<double>(left) * static_cast<double>(right))); + callFrame->r(dst) = JSValue(jsNumber(callFrame, static_cast<double>(left) * static_cast<double>(right))); } else if (src1.getNumber(left) && src2.getNumber(right)) - callFrame[dst] = JSValue(jsNumber(callFrame, left * right)); + callFrame->r(dst) = JSValue(jsNumber(callFrame, left * right)); else { JSValue result = jsNumber(callFrame, src1.toNumber(callFrame) * src2.toNumber(callFrame)); CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; } vPC += 2; @@ -1572,16 +1558,16 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi quotient in register dst. */ int dst = (++vPC)->u.operand; - JSValue dividend = callFrame[(++vPC)->u.operand].jsValue(); - JSValue divisor = callFrame[(++vPC)->u.operand].jsValue(); + JSValue dividend = callFrame->r((++vPC)->u.operand).jsValue(); + JSValue divisor = callFrame->r((++vPC)->u.operand).jsValue(); double left; double right; if (dividend.getNumber(left) && divisor.getNumber(right)) - callFrame[dst] = JSValue(jsNumber(callFrame, left / right)); + callFrame->r(dst) = JSValue(jsNumber(callFrame, left / right)); else { JSValue result = jsNumber(callFrame, dividend.toNumber(callFrame) / divisor.toNumber(callFrame)); CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; } ++vPC; NEXT_INSTRUCTION(); @@ -1597,15 +1583,15 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int dividend = (++vPC)->u.operand; int divisor = (++vPC)->u.operand; - JSValue dividendValue = callFrame[dividend].jsValue(); - JSValue divisorValue = callFrame[divisor].jsValue(); + JSValue dividendValue = callFrame->r(dividend).jsValue(); + JSValue divisorValue = callFrame->r(divisor).jsValue(); if (JSValue::areBothInt32Fast(dividendValue, divisorValue) && divisorValue != jsNumber(callFrame, 0)) { // We expect the result of the modulus of a number that was representable as an int32 to also be representable // as an int32. JSValue result = JSValue::makeInt32Fast(dividendValue.getInt32Fast() % divisorValue.getInt32Fast()); ASSERT(result); - callFrame[dst] = result; + callFrame->r(dst) = result; ++vPC; NEXT_INSTRUCTION(); } @@ -1613,7 +1599,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi double d = dividendValue.toNumber(callFrame); JSValue result = jsNumber(callFrame, fmod(d, divisorValue.toNumber(callFrame))); CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; ++vPC; NEXT_INSTRUCTION(); } @@ -1625,18 +1611,18 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi register dst. */ int dst = (++vPC)->u.operand; - JSValue src1 = callFrame[(++vPC)->u.operand].jsValue(); - JSValue src2 = callFrame[(++vPC)->u.operand].jsValue(); + JSValue src1 = callFrame->r((++vPC)->u.operand).jsValue(); + JSValue src2 = callFrame->r((++vPC)->u.operand).jsValue(); double left; double right; if (JSFastMath::canDoFastAdditiveOperations(src1, src2)) - callFrame[dst] = JSValue(JSFastMath::subImmediateNumbers(src1, src2)); + callFrame->r(dst) = JSValue(JSFastMath::subImmediateNumbers(src1, src2)); else if (src1.getNumber(left) && src2.getNumber(right)) - callFrame[dst] = JSValue(jsNumber(callFrame, left - right)); + callFrame->r(dst) = JSValue(jsNumber(callFrame, left - right)); else { JSValue result = jsNumber(callFrame, src1.toNumber(callFrame) - src2.toNumber(callFrame)); CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; } vPC += 2; NEXT_INSTRUCTION(); @@ -1649,18 +1635,18 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi in register dst. */ int dst = (++vPC)->u.operand; - JSValue val = callFrame[(++vPC)->u.operand].jsValue(); - JSValue shift = callFrame[(++vPC)->u.operand].jsValue(); + JSValue val = callFrame->r((++vPC)->u.operand).jsValue(); + JSValue shift = callFrame->r((++vPC)->u.operand).jsValue(); int32_t left; uint32_t right; if (JSValue::areBothInt32Fast(val, shift)) - callFrame[dst] = JSValue(jsNumber(callFrame, val.getInt32Fast() << (shift.getInt32Fast() & 0x1f))); + callFrame->r(dst) = JSValue(jsNumber(callFrame, val.getInt32Fast() << (shift.getInt32Fast() & 0x1f))); else if (val.numberToInt32(left) && shift.numberToUInt32(right)) - callFrame[dst] = JSValue(jsNumber(callFrame, left << (right & 0x1f))); + callFrame->r(dst) = JSValue(jsNumber(callFrame, left << (right & 0x1f))); else { JSValue result = jsNumber(callFrame, (val.toInt32(callFrame)) << (shift.toUInt32(callFrame) & 0x1f)); CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; } ++vPC; @@ -1674,18 +1660,18 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi uint32), and puts the result in register dst. */ int dst = (++vPC)->u.operand; - JSValue val = callFrame[(++vPC)->u.operand].jsValue(); - JSValue shift = callFrame[(++vPC)->u.operand].jsValue(); + JSValue val = callFrame->r((++vPC)->u.operand).jsValue(); + JSValue shift = callFrame->r((++vPC)->u.operand).jsValue(); int32_t left; uint32_t right; if (JSFastMath::canDoFastRshift(val, shift)) - callFrame[dst] = JSValue(JSFastMath::rightShiftImmediateNumbers(val, shift)); + callFrame->r(dst) = JSValue(JSFastMath::rightShiftImmediateNumbers(val, shift)); else if (val.numberToInt32(left) && shift.numberToUInt32(right)) - callFrame[dst] = JSValue(jsNumber(callFrame, left >> (right & 0x1f))); + callFrame->r(dst) = JSValue(jsNumber(callFrame, left >> (right & 0x1f))); else { JSValue result = jsNumber(callFrame, (val.toInt32(callFrame)) >> (shift.toUInt32(callFrame) & 0x1f)); CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; } ++vPC; @@ -1699,14 +1685,14 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi uint32), and puts the result in register dst. */ int dst = (++vPC)->u.operand; - JSValue val = callFrame[(++vPC)->u.operand].jsValue(); - JSValue shift = callFrame[(++vPC)->u.operand].jsValue(); + JSValue val = callFrame->r((++vPC)->u.operand).jsValue(); + JSValue shift = callFrame->r((++vPC)->u.operand).jsValue(); if (JSFastMath::canDoFastUrshift(val, shift)) - callFrame[dst] = JSValue(JSFastMath::rightShiftImmediateNumbers(val, shift)); + callFrame->r(dst) = JSValue(JSFastMath::rightShiftImmediateNumbers(val, shift)); else { JSValue result = jsNumber(callFrame, (val.toUInt32(callFrame)) >> (shift.toUInt32(callFrame) & 0x1f)); CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; } ++vPC; @@ -1720,18 +1706,18 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi in register dst. */ int dst = (++vPC)->u.operand; - JSValue src1 = callFrame[(++vPC)->u.operand].jsValue(); - JSValue src2 = callFrame[(++vPC)->u.operand].jsValue(); + JSValue src1 = callFrame->r((++vPC)->u.operand).jsValue(); + JSValue src2 = callFrame->r((++vPC)->u.operand).jsValue(); int32_t left; int32_t right; if (JSFastMath::canDoFastBitwiseOperations(src1, src2)) - callFrame[dst] = JSValue(JSFastMath::andImmediateNumbers(src1, src2)); + callFrame->r(dst) = JSValue(JSFastMath::andImmediateNumbers(src1, src2)); else if (src1.numberToInt32(left) && src2.numberToInt32(right)) - callFrame[dst] = JSValue(jsNumber(callFrame, left & right)); + callFrame->r(dst) = JSValue(jsNumber(callFrame, left & right)); else { JSValue result = jsNumber(callFrame, src1.toInt32(callFrame) & src2.toInt32(callFrame)); CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; } vPC += 2; @@ -1745,18 +1731,18 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi in register dst. */ int dst = (++vPC)->u.operand; - JSValue src1 = callFrame[(++vPC)->u.operand].jsValue(); - JSValue src2 = callFrame[(++vPC)->u.operand].jsValue(); + JSValue src1 = callFrame->r((++vPC)->u.operand).jsValue(); + JSValue src2 = callFrame->r((++vPC)->u.operand).jsValue(); int32_t left; int32_t right; if (JSFastMath::canDoFastBitwiseOperations(src1, src2)) - callFrame[dst] = JSValue(JSFastMath::xorImmediateNumbers(src1, src2)); + callFrame->r(dst) = JSValue(JSFastMath::xorImmediateNumbers(src1, src2)); else if (src1.numberToInt32(left) && src2.numberToInt32(right)) - callFrame[dst] = JSValue(jsNumber(callFrame, left ^ right)); + callFrame->r(dst) = JSValue(jsNumber(callFrame, left ^ right)); else { JSValue result = jsNumber(callFrame, src1.toInt32(callFrame) ^ src2.toInt32(callFrame)); CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; } vPC += 2; @@ -1770,18 +1756,18 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi result in register dst. */ int dst = (++vPC)->u.operand; - JSValue src1 = callFrame[(++vPC)->u.operand].jsValue(); - JSValue src2 = callFrame[(++vPC)->u.operand].jsValue(); + JSValue src1 = callFrame->r((++vPC)->u.operand).jsValue(); + JSValue src2 = callFrame->r((++vPC)->u.operand).jsValue(); int32_t left; int32_t right; if (JSFastMath::canDoFastBitwiseOperations(src1, src2)) - callFrame[dst] = JSValue(JSFastMath::orImmediateNumbers(src1, src2)); + callFrame->r(dst) = JSValue(JSFastMath::orImmediateNumbers(src1, src2)); else if (src1.numberToInt32(left) && src2.numberToInt32(right)) - callFrame[dst] = JSValue(jsNumber(callFrame, left | right)); + callFrame->r(dst) = JSValue(jsNumber(callFrame, left | right)); else { JSValue result = jsNumber(callFrame, src1.toInt32(callFrame) | src2.toInt32(callFrame)); CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; } vPC += 2; @@ -1794,14 +1780,14 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi and puts the result in register dst. */ int dst = (++vPC)->u.operand; - JSValue src = callFrame[(++vPC)->u.operand].jsValue(); + JSValue src = callFrame->r((++vPC)->u.operand).jsValue(); int32_t value; if (src.numberToInt32(value)) - callFrame[dst] = JSValue(jsNumber(callFrame, ~value)); + callFrame->r(dst) = JSValue(jsNumber(callFrame, ~value)); else { JSValue result = jsNumber(callFrame, ~src.toInt32(callFrame)); CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; } ++vPC; NEXT_INSTRUCTION(); @@ -1814,9 +1800,9 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int dst = (++vPC)->u.operand; int src = (++vPC)->u.operand; - JSValue result = jsBoolean(!callFrame[src].jsValue().toBoolean(callFrame)); + JSValue result = jsBoolean(!callFrame->r(src).jsValue().toBoolean(callFrame)); CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; ++vPC; NEXT_INSTRUCTION(); @@ -1839,14 +1825,14 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int base = vPC[3].u.operand; int baseProto = vPC[4].u.operand; - JSValue baseVal = callFrame[base].jsValue(); + JSValue baseVal = callFrame->r(base).jsValue(); if (isInvalidParamForInstanceOf(callFrame, callFrame->codeBlock(), vPC, baseVal, exceptionValue)) goto vm_throw; - bool result = asObject(baseVal)->hasInstance(callFrame, callFrame[value].jsValue(), callFrame[baseProto].jsValue()); + bool result = asObject(baseVal)->hasInstance(callFrame, callFrame->r(value).jsValue(), callFrame->r(baseProto).jsValue()); CHECK_FOR_EXCEPTION(); - callFrame[dst] = jsBoolean(result); + callFrame->r(dst) = jsBoolean(result); vPC += 5; NEXT_INSTRUCTION(); @@ -1859,7 +1845,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int dst = (++vPC)->u.operand; int src = (++vPC)->u.operand; - callFrame[dst] = JSValue(jsTypeStringForValue(callFrame, callFrame[src].jsValue())); + callFrame->r(dst) = JSValue(jsTypeStringForValue(callFrame, callFrame->r(src).jsValue())); ++vPC; NEXT_INSTRUCTION(); @@ -1873,8 +1859,8 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int dst = (++vPC)->u.operand; int src = (++vPC)->u.operand; - JSValue v = callFrame[src].jsValue(); - callFrame[dst] = jsBoolean(v.isCell() ? v.asCell()->structure()->typeInfo().masqueradesAsUndefined() : v.isUndefined()); + JSValue v = callFrame->r(src).jsValue(); + callFrame->r(dst) = jsBoolean(v.isCell() ? v.asCell()->structure()->typeInfo().masqueradesAsUndefined() : v.isUndefined()); ++vPC; NEXT_INSTRUCTION(); @@ -1888,7 +1874,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int dst = (++vPC)->u.operand; int src = (++vPC)->u.operand; - callFrame[dst] = jsBoolean(callFrame[src].jsValue().isBoolean()); + callFrame->r(dst) = jsBoolean(callFrame->r(src).jsValue().isBoolean()); ++vPC; NEXT_INSTRUCTION(); @@ -1902,7 +1888,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int dst = (++vPC)->u.operand; int src = (++vPC)->u.operand; - callFrame[dst] = jsBoolean(callFrame[src].jsValue().isNumber()); + callFrame->r(dst) = jsBoolean(callFrame->r(src).jsValue().isNumber()); ++vPC; NEXT_INSTRUCTION(); @@ -1916,7 +1902,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int dst = (++vPC)->u.operand; int src = (++vPC)->u.operand; - callFrame[dst] = jsBoolean(callFrame[src].jsValue().isString()); + callFrame->r(dst) = jsBoolean(callFrame->r(src).jsValue().isString()); ++vPC; NEXT_INSTRUCTION(); @@ -1930,7 +1916,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int dst = (++vPC)->u.operand; int src = (++vPC)->u.operand; - callFrame[dst] = jsBoolean(jsIsObjectType(callFrame[src].jsValue())); + callFrame->r(dst) = jsBoolean(jsIsObjectType(callFrame->r(src).jsValue())); ++vPC; NEXT_INSTRUCTION(); @@ -1944,7 +1930,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int dst = (++vPC)->u.operand; int src = (++vPC)->u.operand; - callFrame[dst] = jsBoolean(jsIsFunctionType(callFrame[src].jsValue())); + callFrame->r(dst) = jsBoolean(jsIsFunctionType(callFrame->r(src).jsValue())); ++vPC; NEXT_INSTRUCTION(); @@ -1962,21 +1948,21 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int property = (++vPC)->u.operand; int base = (++vPC)->u.operand; - JSValue baseVal = callFrame[base].jsValue(); + JSValue baseVal = callFrame->r(base).jsValue(); if (isInvalidParamForIn(callFrame, callFrame->codeBlock(), vPC, baseVal, exceptionValue)) goto vm_throw; JSObject* baseObj = asObject(baseVal); - JSValue propName = callFrame[property].jsValue(); + JSValue propName = callFrame->r(property).jsValue(); uint32_t i; if (propName.getUInt32(i)) - callFrame[dst] = jsBoolean(baseObj->hasProperty(callFrame, i)); + callFrame->r(dst) = jsBoolean(baseObj->hasProperty(callFrame, i)); else { Identifier property(callFrame, propName.toString(callFrame)); CHECK_FOR_EXCEPTION(); - callFrame[dst] = jsBoolean(baseObj->hasProperty(callFrame, property)); + callFrame->r(dst) = jsBoolean(baseObj->hasProperty(callFrame, property)); } ++vPC; @@ -2034,7 +2020,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi ASSERT(scope->isGlobalObject()); int index = (++vPC)->u.operand; - callFrame[dst] = scope->registerAt(index); + callFrame->r(dst) = scope->registerAt(index); ++vPC; NEXT_INSTRUCTION(); } @@ -2048,7 +2034,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int index = (++vPC)->u.operand; int value = (++vPC)->u.operand; - scope->registerAt(index) = JSValue(callFrame[value].jsValue()); + scope->registerAt(index) = JSValue(callFrame->r(value).jsValue()); ++vPC; NEXT_INSTRUCTION(); } @@ -2073,7 +2059,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi ASSERT((*iter)->isVariableObject()); JSVariableObject* scope = static_cast<JSVariableObject*>(*iter); - callFrame[dst] = scope->registerAt(index); + callFrame->r(dst) = scope->registerAt(index); ++vPC; NEXT_INSTRUCTION(); } @@ -2096,7 +2082,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi ASSERT((*iter)->isVariableObject()); JSVariableObject* scope = static_cast<JSVariableObject*>(*iter); - scope->registerAt(index) = JSValue(callFrame[value].jsValue()); + scope->registerAt(index) = JSValue(callFrame->r(value).jsValue()); ++vPC; NEXT_INSTRUCTION(); } @@ -2164,14 +2150,14 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi CodeBlock* codeBlock = callFrame->codeBlock(); Identifier& ident = codeBlock->identifier(property); - JSValue baseValue = callFrame[base].jsValue(); + JSValue baseValue = callFrame->r(base).jsValue(); PropertySlot slot(baseValue); JSValue result = baseValue.get(callFrame, ident, slot); CHECK_FOR_EXCEPTION(); tryCacheGetByID(callFrame, codeBlock, vPC, baseValue, ident, slot); - callFrame[dst] = result; + callFrame->r(dst) = result; vPC += 8; NEXT_INSTRUCTION(); } @@ -2183,7 +2169,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi op_get_by_id. */ int base = vPC[2].u.operand; - JSValue baseValue = callFrame[base].jsValue(); + JSValue baseValue = callFrame->r(base).jsValue(); if (LIKELY(baseValue.isCell())) { JSCell* baseCell = asCell(baseValue); @@ -2196,7 +2182,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int offset = vPC[5].u.operand; ASSERT(baseObject->get(callFrame, callFrame->codeBlock()->identifier(vPC[3].u.operand)) == baseObject->getDirectOffset(offset)); - callFrame[dst] = JSValue(baseObject->getDirectOffset(offset)); + callFrame->r(dst) = JSValue(baseObject->getDirectOffset(offset)); vPC += 8; NEXT_INSTRUCTION(); @@ -2214,7 +2200,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi reverts to op_get_by_id. */ int base = vPC[2].u.operand; - JSValue baseValue = callFrame[base].jsValue(); + JSValue baseValue = callFrame->r(base).jsValue(); if (LIKELY(baseValue.isCell())) { JSCell* baseCell = asCell(baseValue); @@ -2230,7 +2216,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int offset = vPC[6].u.operand; ASSERT(protoObject->get(callFrame, callFrame->codeBlock()->identifier(vPC[3].u.operand)) == protoObject->getDirectOffset(offset)); - callFrame[dst] = JSValue(protoObject->getDirectOffset(offset)); + callFrame->r(dst) = JSValue(protoObject->getDirectOffset(offset)); vPC += 8; NEXT_INSTRUCTION(); @@ -2263,7 +2249,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi reverts to op_get_by_id. */ int base = vPC[2].u.operand; - JSValue baseValue = callFrame[base].jsValue(); + JSValue baseValue = callFrame->r(base).jsValue(); if (LIKELY(baseValue.isCell())) { JSCell* baseCell = asCell(baseValue); @@ -2285,7 +2271,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int offset = vPC[7].u.operand; ASSERT(baseObject->get(callFrame, callFrame->codeBlock()->identifier(vPC[3].u.operand)) == baseObject->getDirectOffset(offset)); - callFrame[dst] = JSValue(baseObject->getDirectOffset(offset)); + callFrame->r(dst) = JSValue(baseObject->getDirectOffset(offset)); vPC += 8; NEXT_INSTRUCTION(); @@ -2311,12 +2297,12 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int property = vPC[3].u.operand; Identifier& ident = callFrame->codeBlock()->identifier(property); - JSValue baseValue = callFrame[base].jsValue(); + JSValue baseValue = callFrame->r(base).jsValue(); PropertySlot slot(baseValue); JSValue result = baseValue.get(callFrame, ident, slot); CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; vPC += 8; NEXT_INSTRUCTION(); } @@ -2329,10 +2315,10 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int base = vPC[2].u.operand; - JSValue baseValue = callFrame[base].jsValue(); + JSValue baseValue = callFrame->r(base).jsValue(); if (LIKELY(isJSArray(globalData, baseValue))) { int dst = vPC[1].u.operand; - callFrame[dst] = JSValue(jsNumber(callFrame, asArray(baseValue)->length())); + callFrame->r(dst) = JSValue(jsNumber(callFrame, asArray(baseValue)->length())); vPC += 8; NEXT_INSTRUCTION(); } @@ -2349,10 +2335,10 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int base = vPC[2].u.operand; - JSValue baseValue = callFrame[base].jsValue(); + JSValue baseValue = callFrame->r(base).jsValue(); if (LIKELY(isJSString(globalData, baseValue))) { int dst = vPC[1].u.operand; - callFrame[dst] = JSValue(jsNumber(callFrame, asString(baseValue)->value().size())); + callFrame->r(dst) = JSValue(jsNumber(callFrame, asString(baseValue)->value().size())); vPC += 8; NEXT_INSTRUCTION(); } @@ -2375,10 +2361,10 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int value = vPC[3].u.operand; CodeBlock* codeBlock = callFrame->codeBlock(); - JSValue baseValue = callFrame[base].jsValue(); + JSValue baseValue = callFrame->r(base).jsValue(); Identifier& ident = codeBlock->identifier(property); PutPropertySlot slot; - baseValue.put(callFrame, ident, callFrame[value].jsValue(), slot); + baseValue.put(callFrame, ident, callFrame->r(value).jsValue(), slot); CHECK_FOR_EXCEPTION(); tryCachePutByID(callFrame, codeBlock, vPC, baseValue, slot); @@ -2398,7 +2384,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi the register file. */ int base = vPC[1].u.operand; - JSValue baseValue = callFrame[base].jsValue(); + JSValue baseValue = callFrame->r(base).jsValue(); if (LIKELY(baseValue.isCell())) { JSCell* baseCell = asCell(baseValue); @@ -2426,7 +2412,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int value = vPC[3].u.operand; unsigned offset = vPC[7].u.operand; ASSERT(baseObject->offsetForLocation(baseObject->getDirectLocation(callFrame->codeBlock()->identifier(vPC[2].u.operand))) == offset); - baseObject->putDirectOffset(offset, callFrame[value].jsValue()); + baseObject->putDirectOffset(offset, callFrame->r(value).jsValue()); vPC += 8; NEXT_INSTRUCTION(); @@ -2448,7 +2434,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi the register file. */ int base = vPC[1].u.operand; - JSValue baseValue = callFrame[base].jsValue(); + JSValue baseValue = callFrame->r(base).jsValue(); if (LIKELY(baseValue.isCell())) { JSCell* baseCell = asCell(baseValue); @@ -2461,7 +2447,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi unsigned offset = vPC[5].u.operand; ASSERT(baseObject->offsetForLocation(baseObject->getDirectLocation(callFrame->codeBlock()->identifier(vPC[2].u.operand))) == offset); - baseObject->putDirectOffset(offset, callFrame[value].jsValue()); + baseObject->putDirectOffset(offset, callFrame->r(value).jsValue()); vPC += 8; NEXT_INSTRUCTION(); @@ -2484,10 +2470,10 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int property = vPC[2].u.operand; int value = vPC[3].u.operand; - JSValue baseValue = callFrame[base].jsValue(); + JSValue baseValue = callFrame->r(base).jsValue(); Identifier& ident = callFrame->codeBlock()->identifier(property); PutPropertySlot slot; - baseValue.put(callFrame, ident, callFrame[value].jsValue(), slot); + baseValue.put(callFrame, ident, callFrame->r(value).jsValue(), slot); CHECK_FOR_EXCEPTION(); vPC += 8; @@ -2505,11 +2491,11 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int base = (++vPC)->u.operand; int property = (++vPC)->u.operand; - JSObject* baseObj = callFrame[base].jsValue().toObject(callFrame); + JSObject* baseObj = callFrame->r(base).jsValue().toObject(callFrame); Identifier& ident = callFrame->codeBlock()->identifier(property); JSValue result = jsBoolean(baseObj->deleteProperty(callFrame, ident)); CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; ++vPC; NEXT_INSTRUCTION(); } @@ -2525,8 +2511,8 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int base = (++vPC)->u.operand; int property = (++vPC)->u.operand; - JSValue baseValue = callFrame[base].jsValue(); - JSValue subscript = callFrame[property].jsValue(); + JSValue baseValue = callFrame->r(base).jsValue(); + JSValue subscript = callFrame->r(property).jsValue(); JSValue result; @@ -2550,7 +2536,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi } CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; ++vPC; NEXT_INSTRUCTION(); } @@ -2569,21 +2555,21 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int property = (++vPC)->u.operand; int value = (++vPC)->u.operand; - JSValue baseValue = callFrame[base].jsValue(); - JSValue subscript = callFrame[property].jsValue(); + JSValue baseValue = callFrame->r(base).jsValue(); + JSValue subscript = callFrame->r(property).jsValue(); if (LIKELY(subscript.isUInt32Fast())) { uint32_t i = subscript.getUInt32Fast(); if (isJSArray(globalData, baseValue)) { JSArray* jsArray = asArray(baseValue); if (jsArray->canSetIndex(i)) - jsArray->setIndex(i, callFrame[value].jsValue()); + jsArray->setIndex(i, callFrame->r(value).jsValue()); else - jsArray->JSArray::put(callFrame, i, callFrame[value].jsValue()); + jsArray->JSArray::put(callFrame, i, callFrame->r(value).jsValue()); } else if (isJSByteArray(globalData, baseValue) && asByteArray(baseValue)->canAccessIndex(i)) { JSByteArray* jsByteArray = asByteArray(baseValue); double dValue = 0; - JSValue jsValue = callFrame[value].jsValue(); + JSValue jsValue = callFrame->r(value).jsValue(); if (jsValue.isInt32Fast()) jsByteArray->setIndex(i, jsValue.getInt32Fast()); else if (jsValue.getNumber(dValue)) @@ -2591,12 +2577,12 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi else baseValue.put(callFrame, i, jsValue); } else - baseValue.put(callFrame, i, callFrame[value].jsValue()); + baseValue.put(callFrame, i, callFrame->r(value).jsValue()); } else { Identifier property(callFrame, subscript.toString(callFrame)); if (!globalData->exception) { // Don't put to an object if toString threw an exception. PutPropertySlot slot; - baseValue.put(callFrame, property, callFrame[value].jsValue(), slot); + baseValue.put(callFrame, property, callFrame->r(value).jsValue(), slot); } } @@ -2616,9 +2602,9 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int base = (++vPC)->u.operand; int property = (++vPC)->u.operand; - JSObject* baseObj = callFrame[base].jsValue().toObject(callFrame); // may throw + JSObject* baseObj = callFrame->r(base).jsValue().toObject(callFrame); // may throw - JSValue subscript = callFrame[property].jsValue(); + JSValue subscript = callFrame->r(property).jsValue(); JSValue result; uint32_t i; if (subscript.getUInt32(i)) @@ -2631,7 +2617,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi } CHECK_FOR_EXCEPTION(); - callFrame[dst] = result; + callFrame->r(dst) = result; ++vPC; NEXT_INSTRUCTION(); } @@ -2651,7 +2637,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi unsigned property = (++vPC)->u.operand; int value = (++vPC)->u.operand; - callFrame[base].jsValue().put(callFrame, property, callFrame[value].jsValue()); + callFrame->r(base).jsValue().put(callFrame, property, callFrame->r(value).jsValue()); ++vPC; NEXT_INSTRUCTION(); @@ -2698,7 +2684,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int cond = (++vPC)->u.operand; int target = (++vPC)->u.operand; - if (callFrame[cond].jsValue().toBoolean(callFrame)) { + if (callFrame->r(cond).jsValue().toBoolean(callFrame)) { vPC += target; CHECK_FOR_TIMEOUT(); NEXT_INSTRUCTION(); @@ -2715,7 +2701,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int cond = (++vPC)->u.operand; int target = (++vPC)->u.operand; - if (callFrame[cond].jsValue().toBoolean(callFrame)) { + if (callFrame->r(cond).jsValue().toBoolean(callFrame)) { vPC += target; NEXT_INSTRUCTION(); } @@ -2731,7 +2717,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int cond = (++vPC)->u.operand; int target = (++vPC)->u.operand; - if (!callFrame[cond].jsValue().toBoolean(callFrame)) { + if (!callFrame->r(cond).jsValue().toBoolean(callFrame)) { vPC += target; NEXT_INSTRUCTION(); } @@ -2747,7 +2733,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int src = (++vPC)->u.operand; int target = (++vPC)->u.operand; - JSValue srcValue = callFrame[src].jsValue(); + JSValue srcValue = callFrame->r(src).jsValue(); if (srcValue.isUndefinedOrNull() || (srcValue.isCell() && srcValue.asCell()->structure()->typeInfo().masqueradesAsUndefined())) { vPC += target; @@ -2765,7 +2751,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int src = (++vPC)->u.operand; int target = (++vPC)->u.operand; - JSValue srcValue = callFrame[src].jsValue(); + JSValue srcValue = callFrame->r(src).jsValue(); if (!srcValue.isUndefinedOrNull() || (srcValue.isCell() && !srcValue.asCell()->structure()->typeInfo().masqueradesAsUndefined())) { vPC += target; @@ -2784,7 +2770,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int src = (++vPC)->u.operand; JSValue ptr = JSValue((++vPC)->u.jsCell); int target = (++vPC)->u.operand; - JSValue srcValue = callFrame[src].jsValue(); + JSValue srcValue = callFrame->r(src).jsValue(); if (srcValue != ptr) { vPC += target; NEXT_INSTRUCTION(); @@ -2804,8 +2790,8 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi Additionally this loop instruction may terminate JS execution is the JS timeout is reached. */ - JSValue src1 = callFrame[(++vPC)->u.operand].jsValue(); - JSValue src2 = callFrame[(++vPC)->u.operand].jsValue(); + JSValue src1 = callFrame->r((++vPC)->u.operand).jsValue(); + JSValue src2 = callFrame->r((++vPC)->u.operand).jsValue(); int target = (++vPC)->u.operand; bool result = jsLess(callFrame, src1, src2); @@ -2831,8 +2817,8 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi Additionally this loop instruction may terminate JS execution is the JS timeout is reached. */ - JSValue src1 = callFrame[(++vPC)->u.operand].jsValue(); - JSValue src2 = callFrame[(++vPC)->u.operand].jsValue(); + JSValue src1 = callFrame->r((++vPC)->u.operand).jsValue(); + JSValue src2 = callFrame->r((++vPC)->u.operand).jsValue(); int target = (++vPC)->u.operand; bool result = jsLessEq(callFrame, src1, src2); @@ -2855,8 +2841,8 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi target from the current instruction, if and only if the result of the comparison is false. */ - JSValue src1 = callFrame[(++vPC)->u.operand].jsValue(); - JSValue src2 = callFrame[(++vPC)->u.operand].jsValue(); + JSValue src1 = callFrame->r((++vPC)->u.operand).jsValue(); + JSValue src2 = callFrame->r((++vPC)->u.operand).jsValue(); int target = (++vPC)->u.operand; bool result = jsLess(callFrame, src1, src2); @@ -2878,8 +2864,8 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi and then jumps to offset target from the current instruction, if and only if theresult of the comparison is false. */ - JSValue src1 = callFrame[(++vPC)->u.operand].jsValue(); - JSValue src2 = callFrame[(++vPC)->u.operand].jsValue(); + JSValue src1 = callFrame->r((++vPC)->u.operand).jsValue(); + JSValue src2 = callFrame->r((++vPC)->u.operand).jsValue(); int target = (++vPC)->u.operand; bool result = jsLessEq(callFrame, src1, src2); @@ -2904,7 +2890,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int tableIndex = (++vPC)->u.operand; int defaultOffset = (++vPC)->u.operand; - JSValue scrutinee = callFrame[(++vPC)->u.operand].jsValue(); + JSValue scrutinee = callFrame->r((++vPC)->u.operand).jsValue(); if (scrutinee.isInt32Fast()) vPC += callFrame->codeBlock()->immediateSwitchJumpTable(tableIndex).offsetForValue(scrutinee.getInt32Fast(), defaultOffset); else { @@ -2928,7 +2914,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int tableIndex = (++vPC)->u.operand; int defaultOffset = (++vPC)->u.operand; - JSValue scrutinee = callFrame[(++vPC)->u.operand].jsValue(); + JSValue scrutinee = callFrame->r((++vPC)->u.operand).jsValue(); if (!scrutinee.isString()) vPC += defaultOffset; else { @@ -2951,7 +2937,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int tableIndex = (++vPC)->u.operand; int defaultOffset = (++vPC)->u.operand; - JSValue scrutinee = callFrame[(++vPC)->u.operand].jsValue(); + JSValue scrutinee = callFrame->r((++vPC)->u.operand).jsValue(); if (!scrutinee.isString()) vPC += defaultOffset; else @@ -2969,7 +2955,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int dst = (++vPC)->u.operand; int func = (++vPC)->u.operand; - callFrame[dst] = callFrame->codeBlock()->function(func)->makeFunction(callFrame, callFrame->scopeChain()); + callFrame->r(dst) = callFrame->codeBlock()->function(func)->makeFunction(callFrame, callFrame->scopeChain()); ++vPC; NEXT_INSTRUCTION(); @@ -2985,7 +2971,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int dst = (++vPC)->u.operand; int func = (++vPC)->u.operand; - callFrame[dst] = callFrame->codeBlock()->functionExpression(func)->makeFunction(callFrame, callFrame->scopeChain()); + callFrame->r(dst) = callFrame->codeBlock()->functionExpression(func)->makeFunction(callFrame, callFrame->scopeChain()); ++vPC; NEXT_INSTRUCTION(); @@ -3007,7 +2993,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int argCount = vPC[3].u.operand; int registerOffset = vPC[4].u.operand; - JSValue funcVal = callFrame[func].jsValue(); + JSValue funcVal = callFrame->r(func).jsValue(); Register* newCallFrame = callFrame->registers() + registerOffset; Register* argv = newCallFrame - RegisterFile::CallFrameHeaderSize - argCount; @@ -3018,7 +3004,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi JSValue result = callEval(callFrame, registerFile, argv, argCount, registerOffset, exceptionValue); if (exceptionValue) goto vm_throw; - callFrame[dst] = result; + callFrame->r(dst) = result; vPC += 5; NEXT_INSTRUCTION(); @@ -3044,7 +3030,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int argCount = vPC[3].u.operand; int registerOffset = vPC[4].u.operand; - JSValue v = callFrame[func].jsValue(); + JSValue v = callFrame->r(func).jsValue(); CallData callData; CallType callType = v.getCallData(callData); @@ -3093,7 +3079,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi } CHECK_FOR_EXCEPTION(); - callFrame[dst] = JSValue(returnValue); + callFrame->r(dst) = JSValue(returnValue); vPC += 5; NEXT_INSTRUCTION(); @@ -3108,19 +3094,19 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int argCountDst = (++vPC)->u.operand; int argsOffset = (++vPC)->u.operand; - JSValue arguments = callFrame[argsOffset].jsValue(); - uint32_t argCount = 0; + JSValue arguments = callFrame->r(argsOffset).jsValue(); + int32_t argCount = 0; if (!arguments) { - argCount = (uint32_t)(callFrame[RegisterFile::ArgumentCount].u.i) - 1; + argCount = (uint32_t)(callFrame->argumentCount()) - 1; int32_t sizeDelta = argsOffset + argCount + RegisterFile::CallFrameHeaderSize; Register* newEnd = callFrame->registers() + sizeDelta; if (!registerFile->grow(newEnd) || ((newEnd - callFrame->registers()) != sizeDelta)) { exceptionValue = createStackOverflowError(callFrame); goto vm_throw; } - uint32_t expectedParams = asFunction(callFrame[RegisterFile::Callee].jsValue())->body()->parameterCount(); - uint32_t inplaceArgs = min(argCount, expectedParams); - uint32_t i = 0; + int32_t expectedParams = callFrame->callee()->body()->parameterCount(); + int32_t inplaceArgs = min(argCount, expectedParams); + int32_t i = 0; Register* argStore = callFrame->registers() + argsOffset; // First step is to copy the "expected" parameters from their normal location relative to the callframe @@ -3164,7 +3150,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi goto vm_throw; } Register* argsBuffer = callFrame->registers() + argsOffset; - for (unsigned i = 0; i < argCount; ++i) { + for (int32_t i = 0; i < argCount; ++i) { argsBuffer[i] = asObject(arguments)->get(callFrame, i); CHECK_FOR_EXCEPTION(); } @@ -3176,7 +3162,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi } } CHECK_FOR_EXCEPTION(); - callFrame[argCountDst] = argCount + 1; + callFrame->r(argCountDst) = argCount + 1; ++vPC; NEXT_INSTRUCTION(); } @@ -3197,8 +3183,8 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int argCountReg = vPC[3].u.operand; int registerOffset = vPC[4].u.operand; - JSValue v = callFrame[func].jsValue(); - int argCount = callFrame[argCountReg].i(); + JSValue v = callFrame->r(func).jsValue(); + int argCount = callFrame->r(argCountReg).i(); registerOffset += argCount; CallData callData; CallType callType = v.getCallData(callData); @@ -3247,7 +3233,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi } CHECK_FOR_EXCEPTION(); - callFrame[dst] = JSValue(returnValue); + callFrame->r(dst) = JSValue(returnValue); vPC += 5; NEXT_INSTRUCTION(); @@ -3274,7 +3260,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int src = (++vPC)->u.operand; ASSERT(callFrame->codeBlock()->needsFullScopeChain()); - asActivation(callFrame[src].jsValue())->copyRegisters(callFrame->optionalCalleeArguments()); + asActivation(callFrame->r(src).jsValue())->copyRegisters(callFrame->optionalCalleeArguments()); ++vPC; NEXT_INSTRUCTION(); @@ -3314,7 +3300,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi if (callFrame->codeBlock()->needsFullScopeChain()) callFrame->scopeChain()->deref(); - JSValue returnValue = callFrame[result].jsValue(); + JSValue returnValue = callFrame->r(result).jsValue(); vPC = callFrame->returnPC(); int dst = callFrame->returnValueRegister(); @@ -3323,7 +3309,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi if (callFrame->hasHostCallFrameFlag()) return returnValue; - callFrame[dst] = JSValue(returnValue); + callFrame->r(dst) = JSValue(returnValue); NEXT_INSTRUCTION(); } @@ -3342,10 +3328,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi CodeBlock* codeBlock = callFrame->codeBlock(); for (size_t count = codeBlock->m_numVars; i < count; ++i) - callFrame[i] = jsUndefined(); - - for (size_t count = codeBlock->numberOfConstantRegisters(), j = 0; j < count; ++i, ++j) - callFrame[i] = codeBlock->constantRegister(j); + callFrame->r(i) = jsUndefined(); ++vPC; NEXT_INSTRUCTION(); @@ -3367,14 +3350,11 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi CodeBlock* codeBlock = callFrame->codeBlock(); for (size_t count = codeBlock->m_numVars; i < count; ++i) - callFrame[i] = jsUndefined(); - - for (size_t count = codeBlock->numberOfConstantRegisters(), j = 0; j < count; ++i, ++j) - callFrame[i] = codeBlock->constantRegister(j); + callFrame->r(i) = jsUndefined(); int dst = (++vPC)->u.operand; JSActivation* activation = new (globalData) JSActivation(callFrame, static_cast<FunctionBodyNode*>(codeBlock->ownerNode())); - callFrame[dst] = activation; + callFrame->r(dst) = activation; callFrame->setScopeChain(callFrame->scopeChain()->copy()->push(activation)); ++vPC; @@ -3393,9 +3373,9 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int thisRegister = (++vPC)->u.operand; - JSValue thisVal = callFrame[thisRegister].jsValue(); + JSValue thisVal = callFrame->r(thisRegister).jsValue(); if (thisVal.needsThisConversion()) - callFrame[thisRegister] = JSValue(thisVal.toThisObject(callFrame)); + callFrame->r(thisRegister) = JSValue(thisVal.toThisObject(callFrame)); ++vPC; NEXT_INSTRUCTION(); @@ -3410,7 +3390,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi This opcode should only be used at the beginning of a code block. */ - callFrame[RegisterFile::ArgumentsRegister] = JSValue(); + callFrame->r(RegisterFile::ArgumentsRegister) = JSValue(); ++vPC; NEXT_INSTRUCTION(); } @@ -3425,7 +3405,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi if (!callFrame->optionalCalleeArguments()) { Arguments* arguments = new (globalData) Arguments(callFrame); callFrame->setCalleeArguments(arguments); - callFrame[RegisterFile::ArgumentsRegister] = arguments; + callFrame->r(RegisterFile::ArgumentsRegister) = arguments; } ++vPC; NEXT_INSTRUCTION(); @@ -3452,7 +3432,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int proto = vPC[5].u.operand; int thisRegister = vPC[6].u.operand; - JSValue v = callFrame[func].jsValue(); + JSValue v = callFrame->r(func).jsValue(); ConstructData constructData; ConstructType constructType = v.getConstructData(constructData); @@ -3463,14 +3443,14 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi CodeBlock* newCodeBlock = &functionBodyNode->bytecode(callDataScopeChain); Structure* structure; - JSValue prototype = callFrame[proto].jsValue(); + JSValue prototype = callFrame->r(proto).jsValue(); if (prototype.isObject()) structure = asObject(prototype)->inheritorID(); else structure = callDataScopeChain->globalObject()->emptyObjectStructure(); JSObject* newObject = new (globalData) JSObject(structure); - callFrame[thisRegister] = JSValue(newObject); // "this" value + callFrame->r(thisRegister) = JSValue(newObject); // "this" value CallFrame* previousCallFrame = callFrame; @@ -3504,7 +3484,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi returnValue = constructData.native.function(newCallFrame, asObject(v), args); } CHECK_FOR_EXCEPTION(); - callFrame[dst] = JSValue(returnValue); + callFrame->r(dst) = JSValue(returnValue); vPC += 7; NEXT_INSTRUCTION(); @@ -3523,13 +3503,13 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int dst = vPC[1].u.operand; - if (LIKELY(callFrame[dst].jsValue().isObject())) { + if (LIKELY(callFrame->r(dst).jsValue().isObject())) { vPC += 3; NEXT_INSTRUCTION(); } int override = vPC[2].u.operand; - callFrame[dst] = callFrame[override]; + callFrame->r(dst) = callFrame->r(override); vPC += 3; NEXT_INSTRUCTION(); @@ -3539,7 +3519,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int src = (++vPC)->u.operand; int count = (++vPC)->u.operand; - callFrame[dst] = concatenateStrings(callFrame, &callFrame->registers()[src], count); + callFrame->r(dst) = concatenateStrings(callFrame, &callFrame->registers()[src], count); ++vPC; NEXT_INSTRUCTION(); @@ -3548,7 +3528,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int dst = (++vPC)->u.operand; int src = (++vPC)->u.operand; - callFrame[dst] = callFrame[src].jsValue().toPrimitive(callFrame); + callFrame->r(dst) = callFrame->r(src).jsValue().toPrimitive(callFrame); ++vPC; NEXT_INSTRUCTION(); @@ -3561,11 +3541,11 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi are replaced by the result of toObject conversion of the scope. */ int scope = (++vPC)->u.operand; - JSValue v = callFrame[scope].jsValue(); + JSValue v = callFrame->r(scope).jsValue(); JSObject* o = v.toObject(callFrame); CHECK_FOR_EXCEPTION(); - callFrame[scope] = JSValue(o); + callFrame->r(scope) = JSValue(o); callFrame->setScopeChain(callFrame->scopeChain()->push(o)); ++vPC; @@ -3592,7 +3572,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int dst = (++vPC)->u.operand; int base = (++vPC)->u.operand; - callFrame[dst] = JSPropertyNameIterator::create(callFrame, callFrame[base].jsValue()); + callFrame->r(dst) = JSPropertyNameIterator::create(callFrame, callFrame->r(base).jsValue()); ++vPC; NEXT_INSTRUCTION(); } @@ -3609,10 +3589,10 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int iter = (++vPC)->u.operand; int target = (++vPC)->u.operand; - JSPropertyNameIterator* it = callFrame[iter].propertyNameIterator(); + JSPropertyNameIterator* it = callFrame->r(iter).propertyNameIterator(); if (JSValue temp = it->next(callFrame)) { CHECK_FOR_TIMEOUT(); - callFrame[dst] = JSValue(temp); + callFrame->r(dst) = JSValue(temp); vPC += target; NEXT_INSTRUCTION(); } @@ -3668,7 +3648,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi ASSERT(exceptionValue); ASSERT(!globalData->exception); int ex = (++vPC)->u.operand; - callFrame[ex] = exceptionValue; + callFrame->r(ex) = exceptionValue; exceptionValue = JSValue(); ++vPC; @@ -3686,7 +3666,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int ex = (++vPC)->u.operand; - exceptionValue = callFrame[ex].jsValue(); + exceptionValue = callFrame->r(ex).jsValue(); handler = throwException(callFrame, exceptionValue, vPC - callFrame->codeBlock()->instructions().begin(), true); if (!handler) { @@ -3697,18 +3677,6 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi vPC = callFrame->codeBlock()->instructions().begin() + handler->target; NEXT_INSTRUCTION(); } - DEFINE_OPCODE(op_unexpected_load) { - /* unexpected_load load dst(r) src(k) - - Copies constant src to register dst. - */ - int dst = (++vPC)->u.operand; - int src = (++vPC)->u.operand; - callFrame[dst] = JSValue(callFrame->codeBlock()->unexpectedConstant(src)); - - ++vPC; - NEXT_INSTRUCTION(); - } DEFINE_OPCODE(op_new_error) { /* new_error dst(r) type(n) message(k) @@ -3722,7 +3690,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int message = (++vPC)->u.operand; CodeBlock* codeBlock = callFrame->codeBlock(); - callFrame[dst] = JSValue(Error::create(callFrame, (ErrorType)type, codeBlock->unexpectedConstant(message).toString(callFrame), codeBlock->lineNumberForBytecodeOffset(callFrame, vPC - codeBlock->instructions().begin()), codeBlock->ownerNode()->sourceID(), codeBlock->ownerNode()->sourceURL())); + callFrame->r(dst) = JSValue(Error::create(callFrame, (ErrorType)type, callFrame->r(message).jsValue().toString(callFrame), codeBlock->lineNumberForBytecodeOffset(callFrame, vPC - codeBlock->instructions().begin()), codeBlock->ownerNode()->sourceID(), codeBlock->ownerNode()->sourceURL())); ++vPC; NEXT_INSTRUCTION(); @@ -3740,7 +3708,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi scopeChain->deref(); } int result = (++vPC)->u.operand; - return callFrame[result].jsValue(); + return callFrame->r(result).jsValue(); } DEFINE_OPCODE(op_put_getter) { /* put_getter base(r) property(id) function(r) @@ -3757,11 +3725,11 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int property = (++vPC)->u.operand; int function = (++vPC)->u.operand; - ASSERT(callFrame[base].jsValue().isObject()); - JSObject* baseObj = asObject(callFrame[base].jsValue()); + ASSERT(callFrame->r(base).jsValue().isObject()); + JSObject* baseObj = asObject(callFrame->r(base).jsValue()); Identifier& ident = callFrame->codeBlock()->identifier(property); - ASSERT(callFrame[function].jsValue().isObject()); - baseObj->defineGetter(callFrame, ident, asObject(callFrame[function].jsValue())); + ASSERT(callFrame->r(function).jsValue().isObject()); + baseObj->defineGetter(callFrame, ident, asObject(callFrame->r(function).jsValue())); ++vPC; NEXT_INSTRUCTION(); @@ -3781,11 +3749,11 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int property = (++vPC)->u.operand; int function = (++vPC)->u.operand; - ASSERT(callFrame[base].jsValue().isObject()); - JSObject* baseObj = asObject(callFrame[base].jsValue()); + ASSERT(callFrame->r(base).jsValue().isObject()); + JSObject* baseObj = asObject(callFrame->r(base).jsValue()); Identifier& ident = callFrame->codeBlock()->identifier(property); - ASSERT(callFrame[function].jsValue().isObject()); - baseObj->defineSetter(callFrame, ident, asObject(callFrame[function].jsValue())); + ASSERT(callFrame->r(function).jsValue().isObject()); + baseObj->defineSetter(callFrame, ident, asObject(callFrame->r(function).jsValue())); ++vPC; NEXT_INSTRUCTION(); @@ -3802,7 +3770,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi */ int retAddrDst = (++vPC)->u.operand; int target = (++vPC)->u.operand; - callFrame[retAddrDst] = vPC + 1; + callFrame->r(retAddrDst) = vPC + 1; vPC += target; NEXT_INSTRUCTION(); @@ -3815,7 +3783,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi register, not as an immediate. */ int retAddrSrc = (++vPC)->u.operand; - vPC = callFrame[retAddrSrc].vPC(); + vPC = callFrame->r(retAddrSrc).vPC(); NEXT_INSTRUCTION(); } DEFINE_OPCODE(op_debug) { @@ -3842,7 +3810,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int function = vPC[1].u.operand; if (*enabledProfilerReference) - (*enabledProfilerReference)->willExecute(callFrame, callFrame[function].jsValue()); + (*enabledProfilerReference)->willExecute(callFrame, callFrame->r(function).jsValue()); vPC += 2; NEXT_INSTRUCTION(); @@ -3856,7 +3824,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi int function = vPC[1].u.operand; if (*enabledProfilerReference) - (*enabledProfilerReference)->didExecute(callFrame, callFrame[function].jsValue()); + (*enabledProfilerReference)->didExecute(callFrame, callFrame->r(function).jsValue()); vPC += 2; NEXT_INSTRUCTION(); @@ -3899,12 +3867,12 @@ JSValue Interpreter::retrieveArguments(CallFrame* callFrame, JSFunction* functio ASSERT(codeBlock->codeType() == FunctionCode); SymbolTable& symbolTable = codeBlock->symbolTable(); int argumentsIndex = symbolTable.get(functionCallFrame->propertyNames().arguments.ustring().rep()).getIndex(); - if (!functionCallFrame[argumentsIndex].arguments()) { + if (!functionCallFrame->r(argumentsIndex).arguments()) { Arguments* arguments = new (callFrame) Arguments(functionCallFrame); functionCallFrame->setCalleeArguments(arguments); - functionCallFrame[RegisterFile::ArgumentsRegister] = arguments; + functionCallFrame->r(RegisterFile::ArgumentsRegister) = arguments; } - return functionCallFrame[argumentsIndex].jsValue(); + return functionCallFrame->r(argumentsIndex).jsValue(); } Arguments* arguments = functionCallFrame->optionalCalleeArguments(); diff --git a/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.h b/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.h index 702c89c..fa6f7db 100644 --- a/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.h +++ b/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.h @@ -45,7 +45,6 @@ namespace JSC { class FunctionBodyNode; class Instruction; class InternalFunction; - class AssemblerBuffer; class JSFunction; class JSGlobalObject; class ProgramNode; diff --git a/src/3rdparty/webkit/JavaScriptCore/jit/JIT.cpp b/src/3rdparty/webkit/JavaScriptCore/jit/JIT.cpp index 02cb09b..f1b22c0 100644 --- a/src/3rdparty/webkit/JavaScriptCore/jit/JIT.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/jit/JIT.cpp @@ -275,7 +275,6 @@ void JIT::privateCompileMainPass() DEFINE_OP(op_throw) DEFINE_OP(op_to_jsnumber) DEFINE_OP(op_to_primitive) - DEFINE_OP(op_unexpected_load) case op_get_array_length: case op_get_by_id_chain: diff --git a/src/3rdparty/webkit/JavaScriptCore/jit/JITOpcodes.cpp b/src/3rdparty/webkit/JavaScriptCore/jit/JITOpcodes.cpp index dbcb34d..b669dfa 100644 --- a/src/3rdparty/webkit/JavaScriptCore/jit/JITOpcodes.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/jit/JITOpcodes.cpp @@ -505,13 +505,6 @@ void JIT::emit_op_jneq_ptr(Instruction* currentInstruction) RECORD_JUMP_TARGET(target + 3); } -void JIT::emit_op_unexpected_load(Instruction* currentInstruction) -{ - JSValue v = m_codeBlock->unexpectedConstant(currentInstruction[2].u.operand); - move(ImmPtr(JSValue::encode(v)), regT0); - emitPutVirtualRegister(currentInstruction[1].u.operand); -} - void JIT::emit_op_jsr(Instruction* currentInstruction) { int retAddrDst = currentInstruction[1].u.operand; @@ -759,7 +752,7 @@ void JIT::emit_op_new_error(Instruction* currentInstruction) { JITStubCall stubCall(this, JITStubs::cti_op_new_error); stubCall.addArgument(Imm32(currentInstruction[2].u.operand)); - stubCall.addArgument(ImmPtr(JSValue::encode(m_codeBlock->unexpectedConstant(currentInstruction[3].u.operand)))); + stubCall.addArgument(ImmPtr(JSValue::encode(m_codeBlock->getConstant(currentInstruction[3].u.operand)))); stubCall.addArgument(Imm32(m_bytecodeIndex)); stubCall.call(currentInstruction[1].u.operand); } @@ -828,7 +821,7 @@ void JIT::emit_op_enter(Instruction*) // Even though CTI doesn't use them, we initialize our constant // registers to zap stale pointers, to avoid unnecessarily prolonging // object lifetime and increasing GC pressure. - size_t count = m_codeBlock->m_numVars + m_codeBlock->numberOfConstantRegisters(); + size_t count = m_codeBlock->m_numVars; for (size_t j = 0; j < count; ++j) emitInitRegister(j); @@ -839,7 +832,7 @@ void JIT::emit_op_enter_with_activation(Instruction* currentInstruction) // Even though CTI doesn't use them, we initialize our constant // registers to zap stale pointers, to avoid unnecessarily prolonging // object lifetime and increasing GC pressure. - size_t count = m_codeBlock->m_numVars + m_codeBlock->numberOfConstantRegisters(); + size_t count = m_codeBlock->m_numVars; for (size_t j = 0; j < count; ++j) emitInitRegister(j); diff --git a/src/3rdparty/webkit/JavaScriptCore/jsc.cpp b/src/3rdparty/webkit/JavaScriptCore/jsc.cpp index 20d6694..769169b 100644 --- a/src/3rdparty/webkit/JavaScriptCore/jsc.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/jsc.cpp @@ -48,7 +48,7 @@ #include <sys/time.h> #endif -#if PLATFORM(UNIX) +#if HAVE(SIGNAL_H) #include <signal.h> #endif @@ -489,7 +489,9 @@ static NO_RETURN void printUsageStatement(JSGlobalData* globalData, bool help = fprintf(stderr, " -f Specifies a source file (deprecated)\n"); fprintf(stderr, " -h|--help Prints this help message\n"); fprintf(stderr, " -i Enables interactive mode (default if no files are specified)\n"); +#if HAVE(SIGNAL_H) fprintf(stderr, " -s Installs signal handlers that exit on a crash (Unix platforms only)\n"); +#endif cleanupGlobalData(globalData); exit(help ? EXIT_SUCCESS : EXIT_FAILURE); @@ -524,7 +526,7 @@ static void parseArguments(int argc, char** argv, Options& options, JSGlobalData continue; } if (strcmp(arg, "-s") == 0) { -#if PLATFORM(UNIX) +#if HAVE(SIGNAL_H) signal(SIGILL, _exit); signal(SIGFPE, _exit); signal(SIGBUS, _exit); diff --git a/src/3rdparty/webkit/JavaScriptCore/parser/NodeConstructors.h b/src/3rdparty/webkit/JavaScriptCore/parser/NodeConstructors.h index d17da69..780a624 100644 --- a/src/3rdparty/webkit/JavaScriptCore/parser/NodeConstructors.h +++ b/src/3rdparty/webkit/JavaScriptCore/parser/NodeConstructors.h @@ -39,6 +39,11 @@ namespace JSC { return fastMalloc(size); } + inline void ParserArenaDeletable::operator delete(void* p) + { + fastFree(p); + } + inline ParserArenaRefCounted::ParserArenaRefCounted(JSGlobalData* globalData) { globalData->parser->arena().derefWithArena(adoptRef(this)); diff --git a/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp b/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp index ba6e1e0..105ceaf 100644 --- a/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp @@ -601,7 +601,7 @@ RegisterID* PostfixErrorNode::emitBytecode(BytecodeGenerator& generator, Registe RegisterID* DeleteResolveNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) { if (generator.registerFor(m_ident)) - return generator.emitUnexpectedLoad(generator.finalDestination(dst), false); + return generator.emitLoad(generator.finalDestination(dst), false); generator.emitExpressionInfo(divot(), startOffset(), endOffset()); RegisterID* base = generator.emitResolveBase(generator.tempDestination(dst), m_ident); @@ -636,7 +636,7 @@ RegisterID* DeleteValueNode::emitBytecode(BytecodeGenerator& generator, Register generator.emitNode(generator.ignoredResult(), m_expr); // delete on a non-location expression ignores the value and returns true - return generator.emitUnexpectedLoad(generator.finalDestination(dst), true); + return generator.emitLoad(generator.finalDestination(dst), true); } // ------------------------------ VoidNode ------------------------------------- @@ -688,7 +688,7 @@ RegisterID* PrefixResolveNode::emitBytecode(BytecodeGenerator& generator, Regist if (generator.isLocalConstant(m_ident)) { if (dst == generator.ignoredResult()) return 0; - RefPtr<RegisterID> r0 = generator.emitUnexpectedLoad(generator.finalDestination(dst), (m_operator == OpPlusPlus) ? 1.0 : -1.0); + RefPtr<RegisterID> r0 = generator.emitLoad(generator.finalDestination(dst), (m_operator == OpPlusPlus) ? 1.0 : -1.0); return generator.emitBinaryOp(op_add, r0.get(), local, r0.get(), OperandTypes()); } diff --git a/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.h b/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.h index a9f88b7..34b4497 100644 --- a/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.h +++ b/src/3rdparty/webkit/JavaScriptCore/parser/Nodes.h @@ -109,6 +109,8 @@ namespace JSC { // Objects created with this version of new are not deleted when the arena is deleted. // Other arrangements must be made. void* operator new(size_t); + + void operator delete(void*); }; class ParserArenaRefCounted : public RefCounted<ParserArenaRefCounted> { diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/JSActivation.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/JSActivation.cpp index 8996629..3bef263 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSActivation.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSActivation.cpp @@ -40,7 +40,7 @@ ASSERT_CLASS_FITS_IN_CELL(JSActivation); const ClassInfo JSActivation::info = { "JSActivation", 0, 0, 0 }; JSActivation::JSActivation(CallFrame* callFrame, PassRefPtr<FunctionBodyNode> functionBody) - : Base(callFrame->globalData().activationStructure, new JSActivationData(functionBody, callFrame)) + : Base(callFrame->globalData().activationStructure, new JSActivationData(functionBody, callFrame->registers())) { } diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalData.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalData.cpp index d5c4ee4..ff728e8 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalData.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalData.cpp @@ -59,14 +59,14 @@ using namespace WTF; namespace JSC { -extern const HashTable arrayTable; -extern const HashTable jsonTable; -extern const HashTable dateTable; -extern const HashTable mathTable; -extern const HashTable numberTable; -extern const HashTable regExpTable; -extern const HashTable regExpConstructorTable; -extern const HashTable stringTable; +extern JSC_CONST_HASHTABLE HashTable arrayTable; +extern JSC_CONST_HASHTABLE HashTable jsonTable; +extern JSC_CONST_HASHTABLE HashTable dateTable; +extern JSC_CONST_HASHTABLE HashTable mathTable; +extern JSC_CONST_HASHTABLE HashTable numberTable; +extern JSC_CONST_HASHTABLE HashTable regExpTable; +extern JSC_CONST_HASHTABLE HashTable regExpConstructorTable; +extern JSC_CONST_HASHTABLE HashTable stringTable; struct VPtrSet { VPtrSet(); diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/LiteralParser.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/LiteralParser.cpp index 3f3fab9..798013a 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/LiteralParser.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/LiteralParser.cpp @@ -124,9 +124,9 @@ LiteralParser::TokenType LiteralParser::Lexer::lex(LiteralParserToken& token) return TokError; } -static inline bool isSafeStringCharacter(UChar c) +template <LiteralParser::ParserMode mode> static inline bool isSafeStringCharacter(UChar c) { - return (c >= ' ' && c <= 0xff && c != '\\' && c != '"') || c == '\t'; + return (c >= ' ' && (mode == LiteralParser::StrictJSON || c <= 0xff) && c != '\\' && c != '"') || c == '\t'; } template <LiteralParser::ParserMode mode> LiteralParser::TokenType LiteralParser::Lexer::lexString(LiteralParserToken& token) @@ -136,7 +136,7 @@ template <LiteralParser::ParserMode mode> LiteralParser::TokenType LiteralParser token.stringToken = UString(); do { runStart = m_ptr; - while (m_ptr < m_end && isSafeStringCharacter(*m_ptr)) + while (m_ptr < m_end && isSafeStringCharacter<mode>(*m_ptr)) ++m_ptr; if (runStart < m_ptr) token.stringToken.append(runStart, m_ptr - runStart); diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/Lookup.h b/src/3rdparty/webkit/JavaScriptCore/runtime/Lookup.h index 3b7353d..167f2bc 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/Lookup.h +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/Lookup.h @@ -29,6 +29,13 @@ #include <stdio.h> #include <wtf/Assertions.h> +// Bug #26843: Work around Metrowerks compiler bug +#if COMPILER(WINSCW) +#define JSC_CONST_HASHTABLE +#else +#define JSC_CONST_HASHTABLE const +#endif + namespace JSC { // Hash table generated by the create_hash_table script. diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.cpp index 857a316..7dd4a8f 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.cpp @@ -1,6 +1,7 @@ /* * Copyright (C) 1999-2001, 2004 Harri Porten (porten@kde.org) * Copyright (c) 2007, 2008 Apple Inc. All rights reserved. + * Copyright (C) 2009 Torch Mobile, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -110,7 +111,7 @@ void RegExp::compile(JSGlobalData* globalData) #endif } -int RegExp::match(const UString& s, int startOffset, OwnArrayPtr<int>* ovector) +int RegExp::match(const UString& s, int startOffset, Vector<int, 32>* ovector) { if (startOffset < 0) startOffset = 0; @@ -126,16 +127,20 @@ int RegExp::match(const UString& s, int startOffset, OwnArrayPtr<int>* ovector) if (m_regExpBytecode) { #endif int offsetVectorSize = (m_numSubpatterns + 1) * 3; // FIXME: should be 2 - but adding temporary fallback to pcre. - int* offsetVector = new int [offsetVectorSize]; + int* offsetVector; + Vector<int, 32> nonReturnedOvector; + if (ovector) { + ovector->resize(offsetVectorSize); + offsetVector = ovector->data(); + } else { + nonReturnedOvector.resize(offsetVectorSize); + offsetVector = nonReturnedOvector.data(); + } + ASSERT(offsetVector); for (int j = 0; j < offsetVectorSize; ++j) offsetVector[j] = -1; - OwnArrayPtr<int> nonReturnedOvector; - if (!ovector) - nonReturnedOvector.set(offsetVector); - else - ovector->set(offsetVector); #if ENABLE(YARR_JIT) int result = Yarr::executeRegex(m_regExpJITCode, s.data(), startOffset, s.size(), offsetVector, offsetVectorSize); @@ -177,7 +182,7 @@ void RegExp::compile(JSGlobalData* globalData) m_regExp = jsRegExpCompile(reinterpret_cast<const UChar*>(m_pattern.data()), m_pattern.size(), ignoreCaseOption, multilineOption, &m_numSubpatterns, &m_constructionError); } -int RegExp::match(const UString& s, int startOffset, OwnArrayPtr<int>* ovector) +int RegExp::match(const UString& s, int startOffset, Vector<int, 32>* ovector) { if (startOffset < 0) startOffset = 0; @@ -190,17 +195,19 @@ int RegExp::match(const UString& s, int startOffset, OwnArrayPtr<int>* ovector) #if ENABLE(WREC) if (m_wrecFunction) { int offsetVectorSize = (m_numSubpatterns + 1) * 2; - int* offsetVector = new int [offsetVectorSize]; + int* offsetVector; + Vector<int, 32> nonReturnedOvector; + if (ovector) { + ovector->resize(offsetVectorSize); + offsetVector = ovector->data(); + } else { + nonReturnedOvector.resize(offsetVectorSize); + offsetVector = nonReturnedOvector.data(); + } ASSERT(offsetVector); for (int j = 0; j < offsetVectorSize; ++j) offsetVector[j] = -1; - OwnArrayPtr<int> nonReturnedOvector; - if (!ovector) - nonReturnedOvector.set(offsetVector); - else - ovector->set(offsetVector); - int result = m_wrecFunction(s.data(), startOffset, s.size(), offsetVector); if (result < 0) { @@ -226,8 +233,8 @@ int RegExp::match(const UString& s, int startOffset, OwnArrayPtr<int>* ovector) offsetVector = fixedSizeOffsetVector; } else { offsetVectorSize = (m_numSubpatterns + 1) * 3; - offsetVector = new int [offsetVectorSize]; - ovector->set(offsetVector); + ovector->resize(offsetVectorSize); + offsetVector = ovector->data(); } int numMatches = jsRegExpExecute(m_regExp, reinterpret_cast<const UChar*>(s.data()), s.size(), startOffset, offsetVector, offsetVectorSize); diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.h b/src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.h index f3be656..24d4199 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.h +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.h @@ -1,6 +1,7 @@ /* * Copyright (C) 1999-2000 Harri Porten (porten@kde.org) * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved. + * Copyright (C) 2009 Torch Mobile, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -53,7 +54,7 @@ namespace JSC { bool isValid() const { return !m_constructionError; } const char* errorMessage() const { return m_constructionError; } - int match(const UString&, int startOffset, OwnArrayPtr<int>* ovector = 0); + int match(const UString&, int startOffset, Vector<int, 32>* ovector = 0); unsigned numSubpatterns() const { return m_numSubpatterns; } private: diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/RegExpConstructor.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/RegExpConstructor.cpp index bcd0d07..e468521 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/RegExpConstructor.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/RegExpConstructor.cpp @@ -1,6 +1,7 @@ /* * Copyright (C) 1999-2000 Harri Porten (porten@kde.org) * Copyright (C) 2003, 2007, 2008 Apple Inc. All Rights Reserved. + * Copyright (C) 2009 Torch Mobile, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -93,14 +94,21 @@ struct RegExpConstructorPrivate { RegExpConstructorPrivate() : lastNumSubPatterns(0) , multiline(false) + , lastOvectorIndex(0) { } + const Vector<int, 32>& lastOvector() const { return ovector[lastOvectorIndex]; } + Vector<int, 32>& lastOvector() { return ovector[lastOvectorIndex]; } + Vector<int, 32>& tempOvector() { return ovector[lastOvectorIndex ? 0 : 1]; } + void changeLastOvector() { lastOvectorIndex = lastOvectorIndex ? 0 : 1; } + UString input; UString lastInput; - OwnArrayPtr<int> lastOvector; - unsigned lastNumSubPatterns : 31; + Vector<int, 32> ovector[2]; + unsigned lastNumSubPatterns : 30; bool multiline : 1; + unsigned lastOvectorIndex : 1; }; RegExpConstructor::RegExpConstructor(ExecState* exec, PassRefPtr<Structure> structure, RegExpPrototype* regExpPrototype) @@ -121,20 +129,19 @@ RegExpConstructor::RegExpConstructor(ExecState* exec, PassRefPtr<Structure> stru */ void RegExpConstructor::performMatch(RegExp* r, const UString& s, int startOffset, int& position, int& length, int** ovector) { - OwnArrayPtr<int> tmpOvector; - position = r->match(s, startOffset, &tmpOvector); + position = r->match(s, startOffset, &d->tempOvector()); if (ovector) - *ovector = tmpOvector.get(); + *ovector = d->tempOvector().data(); if (position != -1) { - ASSERT(tmpOvector); + ASSERT(!d->tempOvector().isEmpty()); - length = tmpOvector[1] - tmpOvector[0]; + length = d->tempOvector()[1] - d->tempOvector()[0]; d->input = s; d->lastInput = s; - d->lastOvector.set(tmpOvector.release()); + d->changeLastOvector(); d->lastNumSubPatterns = r->numSubpatterns(); } } @@ -147,8 +154,8 @@ RegExpMatchesArray::RegExpMatchesArray(ExecState* exec, RegExpConstructorPrivate d->lastInput = data->lastInput; d->lastNumSubPatterns = data->lastNumSubPatterns; unsigned offsetVectorSize = (data->lastNumSubPatterns + 1) * 2; // only copying the result part of the vector - d->lastOvector.set(new int[offsetVectorSize]); - memcpy(d->lastOvector.get(), data->lastOvector.get(), offsetVectorSize * sizeof(int)); + d->lastOvector().resize(offsetVectorSize); + memcpy(d->lastOvector().data(), data->lastOvector().data(), offsetVectorSize * sizeof(int)); // d->multiline is not needed, and remains uninitialized setLazyCreationData(d); @@ -167,13 +174,13 @@ void RegExpMatchesArray::fillArrayInstance(ExecState* exec) unsigned lastNumSubpatterns = d->lastNumSubPatterns; for (unsigned i = 0; i <= lastNumSubpatterns; ++i) { - int start = d->lastOvector[2 * i]; + int start = d->lastOvector()[2 * i]; if (start >= 0) - JSArray::put(exec, i, jsSubstring(exec, d->lastInput, start, d->lastOvector[2 * i + 1] - start)); + JSArray::put(exec, i, jsSubstring(exec, d->lastInput, start, d->lastOvector()[2 * i + 1] - start)); } PutPropertySlot slot; - JSArray::put(exec, exec->propertyNames().index, jsNumber(exec, d->lastOvector[0]), slot); + JSArray::put(exec, exec->propertyNames().index, jsNumber(exec, d->lastOvector()[0]), slot); JSArray::put(exec, exec->propertyNames().input, jsString(exec, d->input), slot); delete d; @@ -187,10 +194,10 @@ JSObject* RegExpConstructor::arrayOfMatches(ExecState* exec) const JSValue RegExpConstructor::getBackref(ExecState* exec, unsigned i) const { - if (d->lastOvector && i <= d->lastNumSubPatterns) { - int start = d->lastOvector[2 * i]; + if (!d->lastOvector().isEmpty() && i <= d->lastNumSubPatterns) { + int start = d->lastOvector()[2 * i]; if (start >= 0) - return jsSubstring(exec, d->lastInput, start, d->lastOvector[2 * i + 1] - start); + return jsSubstring(exec, d->lastInput, start, d->lastOvector()[2 * i + 1] - start); } return jsEmptyString(exec); } @@ -199,25 +206,25 @@ JSValue RegExpConstructor::getLastParen(ExecState* exec) const { unsigned i = d->lastNumSubPatterns; if (i > 0) { - ASSERT(d->lastOvector); - int start = d->lastOvector[2 * i]; + ASSERT(!d->lastOvector().isEmpty()); + int start = d->lastOvector()[2 * i]; if (start >= 0) - return jsSubstring(exec, d->lastInput, start, d->lastOvector[2 * i + 1] - start); + return jsSubstring(exec, d->lastInput, start, d->lastOvector()[2 * i + 1] - start); } return jsEmptyString(exec); } JSValue RegExpConstructor::getLeftContext(ExecState* exec) const { - if (d->lastOvector) - return jsSubstring(exec, d->lastInput, 0, d->lastOvector[0]); + if (!d->lastOvector().isEmpty()) + return jsSubstring(exec, d->lastInput, 0, d->lastOvector()[0]); return jsEmptyString(exec); } JSValue RegExpConstructor::getRightContext(ExecState* exec) const { - if (d->lastOvector) - return jsSubstring(exec, d->lastInput, d->lastOvector[1], d->lastInput.size() - d->lastOvector[1]); + if (!d->lastOvector().isEmpty()) + return jsSubstring(exec, d->lastInput, d->lastOvector()[1], d->lastInput.size() - d->lastOvector()[1]); return jsEmptyString(exec); } diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/StringPrototype.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/StringPrototype.cpp index d6939cb..ceb6b1e 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/StringPrototype.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/StringPrototype.cpp @@ -1,6 +1,7 @@ /* * Copyright (C) 1999-2001 Harri Porten (porten@kde.org) * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. + * Copyright (C) 2009 Torch Mobile, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -575,7 +576,7 @@ JSValue JSC_HOST_CALL stringProtoFuncSplit(ExecState* exec, JSObject*, JSValue t } int pos = 0; while (i != limit && pos < s.size()) { - OwnArrayPtr<int> ovector; + Vector<int, 32> ovector; int mpos = reg->match(s, pos, &ovector); if (mpos < 0) break; diff --git a/src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.cpp b/src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.cpp index c65ba85..d6850e6 100644 --- a/src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.cpp @@ -1526,10 +1526,6 @@ inline void TCMalloc_PageHeap::Delete(Span* span) { // necessary. We do not bother resetting the stale pagemap // entries for the pieces we are merging together because we only // care about the pagemap entries for the boundaries. - // - // Note that the spans we merge into "span" may come out of - // a "returned" list. For simplicity, we move these into the - // "normal" list of the appropriate size class. const PageID p = span->start; const Length n = span->length; Span* prev = GetDescriptor(p-1); @@ -1560,10 +1556,19 @@ inline void TCMalloc_PageHeap::Delete(Span* span) { Event(span, 'D', span->length); span->free = 1; - if (span->length < kMaxPages) { - DLL_Prepend(&free_[span->length].normal, span); - } else { - DLL_Prepend(&large_.normal, span); +#if TCMALLOC_TRACK_DECOMMITED_SPANS + if (span->decommitted) { + if (span->length < kMaxPages) + DLL_Prepend(&free_[span->length].returned, span); + else + DLL_Prepend(&large_.returned, span); + } else +#endif + { + if (span->length < kMaxPages) + DLL_Prepend(&free_[span->length].normal, span); + else + DLL_Prepend(&large_.normal, span); } free_pages_ += n; diff --git a/src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.h b/src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.h index 9e13cf9..61ebe32 100644 --- a/src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.h +++ b/src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.h @@ -179,6 +179,13 @@ WTF_PRIVATE_INLINE void* operator new(size_t s) { return fastMalloc(s); } WTF_PRIVATE_INLINE void operator delete(void* p) { fastFree(p); } WTF_PRIVATE_INLINE void* operator new[](size_t s) { return fastMalloc(s); } WTF_PRIVATE_INLINE void operator delete[](void* p) { fastFree(p); } + +#if PLATFORM(WINCE) +WTF_PRIVATE_INLINE void* operator new(size_t s, const std::nothrow_t&) throw() { return fastMalloc(s); } +WTF_PRIVATE_INLINE void operator delete(void* p, const std::nothrow_t&) throw() { fastFree(p); } +WTF_PRIVATE_INLINE void* operator new[](size_t s, const std::nothrow_t&) throw() { return fastMalloc(s); } +WTF_PRIVATE_INLINE void operator delete[](void* p, const std::nothrow_t&) throw() { fastFree(p); } +#endif #endif #endif // _CRTDBG_MAP_ALLOC diff --git a/src/3rdparty/webkit/JavaScriptCore/wtf/HashSet.h b/src/3rdparty/webkit/JavaScriptCore/wtf/HashSet.h index d664c67..990670d 100644 --- a/src/3rdparty/webkit/JavaScriptCore/wtf/HashSet.h +++ b/src/3rdparty/webkit/JavaScriptCore/wtf/HashSet.h @@ -176,28 +176,28 @@ namespace WTF { } template<typename Value, typename HashFunctions, typename Traits> - template<typename T, typename Translator> + template<typename T, typename HashTranslator> typename HashSet<Value, HashFunctions, Traits>::iterator inline HashSet<Value, HashFunctions, Traits>::find(const T& value) { - typedef HashSetTranslatorAdapter<ValueType, ValueTraits, T, Translator> Adapter; + typedef HashSetTranslatorAdapter<ValueType, ValueTraits, T, HashTranslator> Adapter; return m_impl.template find<T, Adapter>(value); } template<typename Value, typename HashFunctions, typename Traits> - template<typename T, typename Translator> + template<typename T, typename HashTranslator> typename HashSet<Value, HashFunctions, Traits>::const_iterator inline HashSet<Value, HashFunctions, Traits>::find(const T& value) const { - typedef HashSetTranslatorAdapter<ValueType, ValueTraits, T, Translator> Adapter; + typedef HashSetTranslatorAdapter<ValueType, ValueTraits, T, HashTranslator> Adapter; return m_impl.template find<T, Adapter>(value); } template<typename Value, typename HashFunctions, typename Traits> - template<typename T, typename Translator> + template<typename T, typename HashTranslator> inline bool HashSet<Value, HashFunctions, Traits>::contains(const T& value) const { - typedef HashSetTranslatorAdapter<ValueType, ValueTraits, T, Translator> Adapter; + typedef HashSetTranslatorAdapter<ValueType, ValueTraits, T, HashTranslator> Adapter; return m_impl.template contains<T, Adapter>(value); } @@ -208,11 +208,11 @@ namespace WTF { } template<typename Value, typename HashFunctions, typename Traits> - template<typename T, typename Translator> + template<typename T, typename HashTranslator> pair<typename HashSet<Value, HashFunctions, Traits>::iterator, bool> HashSet<Value, HashFunctions, Traits>::add(const T& value) { - typedef HashSetTranslatorAdapter<ValueType, ValueTraits, T, Translator> Adapter; + typedef HashSetTranslatorAdapter<ValueType, ValueTraits, T, HashTranslator> Adapter; return m_impl.template addPassingHashCode<T, T, Adapter>(value, value); } diff --git a/src/3rdparty/webkit/JavaScriptCore/wtf/OwnPtrCommon.h b/src/3rdparty/webkit/JavaScriptCore/wtf/OwnPtrCommon.h index 6cd8bdd..6d91a54 100644 --- a/src/3rdparty/webkit/JavaScriptCore/wtf/OwnPtrCommon.h +++ b/src/3rdparty/webkit/JavaScriptCore/wtf/OwnPtrCommon.h @@ -1,5 +1,6 @@ /* * Copyright (C) 2009 Apple Inc. All rights reserved. + * Copyright (C) 2009 Torch Mobile, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -29,6 +30,7 @@ #if PLATFORM(WIN) typedef struct HBITMAP__* HBITMAP; typedef struct HBRUSH__* HBRUSH; +typedef struct HDC__* HDC; typedef struct HFONT__* HFONT; typedef struct HPALETTE__* HPALETTE; typedef struct HPEN__* HPEN; @@ -47,6 +49,7 @@ namespace WTF { #if PLATFORM(WIN) void deleteOwnedPtr(HBITMAP); void deleteOwnedPtr(HBRUSH); + void deleteOwnedPtr(HDC); void deleteOwnedPtr(HFONT); void deleteOwnedPtr(HPALETTE); void deleteOwnedPtr(HPEN); diff --git a/src/3rdparty/webkit/JavaScriptCore/wtf/OwnPtrWin.cpp b/src/3rdparty/webkit/JavaScriptCore/wtf/OwnPtrWin.cpp index b08d7dc..67a32ff 100644 --- a/src/3rdparty/webkit/JavaScriptCore/wtf/OwnPtrWin.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/wtf/OwnPtrWin.cpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2007 Apple Inc. All rights reserved. + * Copyright (C) 2008, 2009 Torch Mobile, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -42,6 +43,12 @@ void deleteOwnedPtr(HBRUSH ptr) DeleteObject(ptr); } +void deleteOwnedPtr(HDC ptr) +{ + if (ptr) + DeleteDC(ptr); +} + void deleteOwnedPtr(HFONT ptr) { if (ptr) diff --git a/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h b/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h index c82d1f7..5e37e09 100644 --- a/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h +++ b/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h @@ -27,11 +27,11 @@ #define WTF_Platform_h /* PLATFORM handles OS, operating environment, graphics API, and CPU */ -#define PLATFORM(WTF_FEATURE) (defined( WTF_PLATFORM_##WTF_FEATURE ) && WTF_PLATFORM_##WTF_FEATURE) -#define COMPILER(WTF_FEATURE) (defined( WTF_COMPILER_##WTF_FEATURE ) && WTF_COMPILER_##WTF_FEATURE) -#define HAVE(WTF_FEATURE) (defined( HAVE_##WTF_FEATURE ) && HAVE_##WTF_FEATURE) -#define USE(WTF_FEATURE) (defined( WTF_USE_##WTF_FEATURE ) && WTF_USE_##WTF_FEATURE) -#define ENABLE(WTF_FEATURE) (defined( ENABLE_##WTF_FEATURE ) && ENABLE_##WTF_FEATURE) +#define PLATFORM(WTF_FEATURE) (defined WTF_PLATFORM_##WTF_FEATURE && WTF_PLATFORM_##WTF_FEATURE) +#define COMPILER(WTF_FEATURE) (defined WTF_COMPILER_##WTF_FEATURE && WTF_COMPILER_##WTF_FEATURE) +#define HAVE(WTF_FEATURE) (defined HAVE_##WTF_FEATURE && HAVE_##WTF_FEATURE) +#define USE(WTF_FEATURE) (defined WTF_USE_##WTF_FEATURE && WTF_USE_##WTF_FEATURE) +#define ENABLE(WTF_FEATURE) (defined ENABLE_##WTF_FEATURE && ENABLE_##WTF_FEATURE) /* Operating systems - low-level dependencies */ @@ -402,6 +402,10 @@ #endif #endif /* !defined(HAVE_ACCESSIBILITY) */ +#if PLATFORM(UNIX) && !PLATFORM(SYMBIAN) +#define HAVE_SIGNAL_H 1 +#endif + #if PLATFORM(DARWIN) #define HAVE_ERRNO_H 1 @@ -549,6 +553,7 @@ #endif #endif +#if ENABLE(JIT) #ifndef ENABLE_JIT_OPTIMIZE_CALL #define ENABLE_JIT_OPTIMIZE_CALL 1 #endif @@ -564,6 +569,7 @@ #ifndef ENABLE_JIT_OPTIMIZE_METHOD_CALLS #define ENABLE_JIT_OPTIMIZE_METHOD_CALLS 1 #endif +#endif #if PLATFORM(X86) && COMPILER(MSVC) #define JSC_HOST_CALL __fastcall @@ -630,7 +636,7 @@ /* Accelerated compositing */ #if PLATFORM(MAC) -#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) +#if !defined(BUILDING_ON_TIGER) #define WTF_USE_ACCELERATED_COMPOSITING 1 #endif #endif diff --git a/src/3rdparty/webkit/JavaScriptCore/wtf/PtrAndFlags.h b/src/3rdparty/webkit/JavaScriptCore/wtf/PtrAndFlags.h index 477e893..f4527df 100644 --- a/src/3rdparty/webkit/JavaScriptCore/wtf/PtrAndFlags.h +++ b/src/3rdparty/webkit/JavaScriptCore/wtf/PtrAndFlags.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, Google Inc. All rights reserved. + * Copyright (C) 2009 Google Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are @@ -42,9 +42,20 @@ namespace WTF { void setFlag(FlagEnum flagNumber) { ASSERT(flagNumber < 2); m_ptrAndFlags |= (1 << flagNumber);} void clearFlag(FlagEnum flagNumber) { ASSERT(flagNumber < 2); m_ptrAndFlags &= ~(1 << flagNumber);} T* get() const { return reinterpret_cast<T*>(m_ptrAndFlags & ~3); } - void set(T* ptr) { ASSERT(!(reinterpret_cast<intptr_t>(ptr) & 3)); m_ptrAndFlags = reinterpret_cast<intptr_t>(ptr) | (m_ptrAndFlags & 3);} + void set(T* ptr) + { + ASSERT(!(reinterpret_cast<intptr_t>(ptr) & 3)); + m_ptrAndFlags = reinterpret_cast<intptr_t>(ptr) | (m_ptrAndFlags & 3); +#ifndef NDEBUG + m_leaksPtr = ptr; +#endif + } + private: intptr_t m_ptrAndFlags; +#ifndef NDEBUG + void* m_leaksPtr; // Only used to allow tools like leaks on OSX to detect that the memory is referenced. +#endif }; } // namespace WTF diff --git a/src/3rdparty/webkit/JavaScriptCore/wtf/dtoa.cpp b/src/3rdparty/webkit/JavaScriptCore/wtf/dtoa.cpp index 9509388..d75c17a 100644 --- a/src/3rdparty/webkit/JavaScriptCore/wtf/dtoa.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/wtf/dtoa.cpp @@ -148,6 +148,7 @@ #include <wtf/AlwaysInline.h> #include <wtf/Assertions.h> #include <wtf/FastMalloc.h> +#include <wtf/Vector.h> #include <wtf/Threading.h> #include <stdio.h> @@ -255,6 +256,8 @@ typedef union { double d; uint32_t L[2]; } U; #define Big0 (Frac_mask1 | Exp_msk1 * (DBL_MAX_EXP + Bias - 1)) #define Big1 0xffffffff + +// FIXME: we should remove non-Pack_32 mode since it is unused and unmaintained #ifndef Pack_32 #define Pack_32 #endif @@ -278,25 +281,41 @@ typedef union { double d; uint32_t L[2]; } U; #define Kmax 15 struct BigInt { - BigInt() : sign(0), wds(0) { } - BigInt(const BigInt& other) : sign(other.sign), wds(other.wds) + BigInt() : sign(0) { } + int sign; + + void clear() + { + sign = 0; + m_words.clear(); + } + + size_t size() const + { + return m_words.size(); + } + + void resize(size_t s) { - for (int i = 0; i < 64; ++i) - x[i] = other.x[i]; + m_words.resize(s); + } + + uint32_t* words() + { + return m_words.data(); } - BigInt& operator=(const BigInt& other) + const uint32_t* words() const { - sign = other.sign; - wds = other.wds; - for (int i = 0; i < 64; ++i) - x[i] = other.x[i]; - return *this; + return m_words.data(); } - int sign; - int wds; - uint32_t x[64]; + void append(uint32_t w) + { + m_words.append(w); + } + + Vector<uint32_t, 16> m_words; }; static void multadd(BigInt& b, int m, int a) /* multiply by m and add a */ @@ -307,8 +326,8 @@ static void multadd(BigInt& b, int m, int a) /* multiply by m and add a */ uint32_t carry; #endif - int wds = b.wds; - uint32_t* x = b.x; + int wds = b.size(); + uint32_t* x = b.words(); int i = 0; carry = a; do { @@ -331,10 +350,8 @@ static void multadd(BigInt& b, int m, int a) /* multiply by m and add a */ #endif } while (++i < wds); - if (carry) { - b.x[wds++] = (uint32_t)carry; - b.wds = wds; - } + if (carry) + b.append((uint32_t)carry); } static void s2b(BigInt& b, const char* s, int nd0, int nd, uint32_t y9) @@ -346,12 +363,12 @@ static void s2b(BigInt& b, const char* s, int nd0, int nd, uint32_t y9) for (k = 0, y = 1; x > y; y <<= 1, k++) { } #ifdef Pack_32 b.sign = 0; - b.x[0] = y9; - b.wds = 1; + b.resize(1); + b.words()[0] = y9; #else b.sign = 0; - b.x[0] = y9 & 0xffff; - b.wds = (b->x[1] = y9 >> 16) ? 2 : 1; + b.resize((b->x[1] = y9 >> 16) ? 2 : 1); + b.words()[0] = y9 & 0xffff; #endif int i = 9; @@ -440,8 +457,8 @@ static int lo0bits (uint32_t* y) static void i2b(BigInt& b, int i) { b.sign = 0; - b.x[0] = i; - b.wds = 1; + b.resize(1); + b.words()[0] = i; } static void mult(BigInt& aRef, const BigInt& bRef) @@ -459,23 +476,24 @@ static void mult(BigInt& aRef, const BigInt& bRef) uint32_t carry, z; #endif - if (a->wds < b->wds) { + if (a->size() < b->size()) { const BigInt* tmp = a; a = b; b = tmp; } - wa = a->wds; - wb = b->wds; + wa = a->size(); + wb = b->size(); wc = wa + wb; + c.resize(wc); - for (xc = c.x, xa = xc + wc; xc < xa; xc++) + for (xc = c.words(), xa = xc + wc; xc < xa; xc++) *xc = 0; - xa = a->x; + xa = a->words(); xae = xa + wa; - xb = b->x; + xb = b->words(); xbe = xb + wb; - xc0 = c.x; + xc0 = c.words(); #ifdef USE_LONG_LONG for (; xb < xbe; xc0++) { if ((y = *xb++)) { @@ -537,8 +555,8 @@ static void mult(BigInt& aRef, const BigInt& bRef) } #endif #endif - for (xc0 = c.x, xc = xc0 + wc; wc > 0 && !*--xc; --wc) { } - c.wds = wc; + for (xc0 = c.words(), xc = xc0 + wc; wc > 0 && !*--xc; --wc) { } + c.resize(wc); aRef = c; } @@ -617,14 +635,20 @@ static ALWAYS_INLINE void lshift(BigInt& b, int k) int n = k >> 4; #endif - int n1 = n + b.wds + 1; + int origSize = b.size(); + int n1 = n + origSize + 1; + + if (k &= 0x1f) + b.resize(b.size() + n + 1); + else + b.resize(b.size() + n); - const uint32_t* srcStart = b.x; - uint32_t* dstStart = b.x; - const uint32_t* src = srcStart + b.wds - 1; + const uint32_t* srcStart = b.words(); + uint32_t* dstStart = b.words(); + const uint32_t* src = srcStart + origSize - 1; uint32_t* dst = dstStart + n1 - 1; #ifdef Pack_32 - if (k &= 0x1f) { + if (k) { uint32_t hiSubword = 0; int s = 32 - k; for (; src >= srcStart; --src) { @@ -633,7 +657,8 @@ static ALWAYS_INLINE void lshift(BigInt& b, int k) } *dst = hiSubword; ASSERT(dst == dstStart + n); - b.wds = b.wds + n + (b.x[n1 - 1] != 0); + + b.resize(origSize + n + (b.words()[n1 - 1] != 0)); } #else if (k &= 0xf) { @@ -652,10 +677,11 @@ static ALWAYS_INLINE void lshift(BigInt& b, int k) do { *--dst = *src--; } while (src >= srcStart); - b.wds = b.wds + n; } for (dst = dstStart + n; dst != dstStart; ) *--dst = 0; + + ASSERT(b.size() <= 1 || b.words()[b.size() - 1]); } static int cmp(const BigInt& a, const BigInt& b) @@ -663,15 +689,15 @@ static int cmp(const BigInt& a, const BigInt& b) const uint32_t *xa, *xa0, *xb, *xb0; int i, j; - i = a.wds; - j = b.wds; - ASSERT(i <= 1 || a.x[i - 1]); - ASSERT(j <= 1 || b.x[j - 1]); + i = a.size(); + j = b.size(); + ASSERT(i <= 1 || a.words()[i - 1]); + ASSERT(j <= 1 || b.words()[j - 1]); if (i -= j) return i; - xa0 = a.x; + xa0 = a.words(); xa = xa0 + j; - xb0 = b.x; + xb0 = b.words(); xb = xb0 + j; for (;;) { if (*--xa != *--xb) @@ -692,8 +718,8 @@ static ALWAYS_INLINE void diff(BigInt& c, const BigInt& aRef, const BigInt& bRef i = cmp(*a, *b); if (!i) { c.sign = 0; - c.wds = 1; - c.x[0] = 0; + c.resize(1); + c.words()[0] = 0; return; } if (i < 0) { @@ -704,15 +730,16 @@ static ALWAYS_INLINE void diff(BigInt& c, const BigInt& aRef, const BigInt& bRef } else i = 0; - c.wds = 0; - c.sign = i; - wa = a->wds; - const uint32_t* xa = a->x; + wa = a->size(); + const uint32_t* xa = a->words(); const uint32_t* xae = xa + wa; - wb = b->wds; - const uint32_t* xb = b->x; + wb = b->size(); + const uint32_t* xb = b->words(); const uint32_t* xbe = xb + wb; - xc = c.x; + + c.resize(wa); + c.sign = i; + xc = c.words(); #ifdef USE_LONG_LONG unsigned long long borrow = 0; do { @@ -757,7 +784,7 @@ static ALWAYS_INLINE void diff(BigInt& c, const BigInt& aRef, const BigInt& bRef #endif while (!*--xc) wa--; - c.wds = wa; + c.resize(wa); } static double ulp(U *x) @@ -804,8 +831,8 @@ static double b2d(const BigInt& a, int* e) #define d0 word0(&d) #define d1 word1(&d) - xa0 = a.x; - xa = xa0 + a.wds; + xa0 = a.words(); + xa = xa0 + a.size(); y = *--xa; ASSERT(y); k = hi0bits(y); @@ -860,11 +887,11 @@ static ALWAYS_INLINE void d2b(BigInt& b, U* d, int* e, int* bits) b.sign = 0; #ifdef Pack_32 - b.wds = 1; + b.resize(1); #else - b.wds = 2; + b.resize(2); #endif - x = b.x; + x = b.words(); z = d0 & Frac_mask; d0 &= 0x7fffffff; /* clear sign bit, which we ignore */ @@ -881,17 +908,21 @@ static ALWAYS_INLINE void d2b(BigInt& b, U* d, int* e, int* bits) z >>= k; } else x[0] = y; + if (z) { + b.resize(2); + x[1] = z; + } + #ifndef Sudden_Underflow - i = + i = b.size(); #endif - b.wds = (x[1] = z) ? 2 : 1; } else { k = lo0bits(&z); x[0] = z; #ifndef Sudden_Underflow - i = + i = 1; #endif - b.wds = 1; + b.resize(1); k += 32; } #else @@ -929,7 +960,7 @@ static ALWAYS_INLINE void d2b(BigInt& b, U* d, int* e, int* bits) k += 32; } while (!x[i]) --i; - b->wds = i + 1; + b->resize(i + 1); #endif #ifndef Sudden_Underflow if (de) { @@ -958,9 +989,9 @@ static double ratio(const BigInt& a, const BigInt& b) dval(&da) = b2d(a, &ka); dval(&db) = b2d(b, &kb); #ifdef Pack_32 - k = ka - kb + 32 * (a.wds - b.wds); + k = ka - kb + 32 * (a.size() - b.size()); #else - k = ka - kb + 16 * (a.wds - b.wds); + k = ka - kb + 16 * (a.size() - b.size()); #endif if (k > 0) word0(&da) += k * Exp_msk1; @@ -1452,12 +1483,12 @@ undfl: #endif ) { #ifdef SET_INEXACT - if (!delta->x[0] && delta->wds <= 1) + if (!delta->words()[0] && delta->size() <= 1) inexact = 0; #endif break; } - if (!delta.x[0] && delta.wds <= 1) { + if (!delta.words()[0] && delta.size() <= 1) { /* exact result */ #ifdef SET_INEXACT inexact = 0; @@ -1700,7 +1731,7 @@ ret: static ALWAYS_INLINE int quorem(BigInt& b, BigInt& S) { - int n; + size_t n; uint32_t *bx, *bxe, q, *sx, *sxe; #ifdef USE_LONG_LONG unsigned long long borrow, carry, y, ys; @@ -1710,14 +1741,16 @@ static ALWAYS_INLINE int quorem(BigInt& b, BigInt& S) uint32_t si, z, zs; #endif #endif + ASSERT(b.size() <= 1 || b.words()[b.size() - 1]); + ASSERT(S.size() <= 1 || S.words()[S.size() - 1]); - n = S.wds; - ASSERT_WITH_MESSAGE(b.wds <= n, "oversize b in quorem"); - if (b.wds < n) + n = S.size(); + ASSERT_WITH_MESSAGE(b.size() <= n, "oversize b in quorem"); + if (b.size() < n) return 0; - sx = S.x; + sx = S.words(); sxe = sx + --n; - bx = b.x; + bx = b.words(); bxe = bx + n; q = *bxe / (*sxe + 1); /* ensure q <= true quotient */ ASSERT_WITH_MESSAGE(q <= 9, "oversized quotient in quorem"); @@ -1752,18 +1785,18 @@ static ALWAYS_INLINE int quorem(BigInt& b, BigInt& S) #endif } while (sx <= sxe); if (!*bxe) { - bx = b.x; + bx = b.words(); while (--bxe > bx && !*bxe) --n; - b.wds = n; + b.resize(n); } } if (cmp(b, S) >= 0) { q++; borrow = 0; carry = 0; - bx = b.x; - sx = S.x; + bx = b.words(); + sx = S.words(); do { #ifdef USE_LONG_LONG ys = *sx++ + carry; @@ -1791,12 +1824,12 @@ static ALWAYS_INLINE int quorem(BigInt& b, BigInt& S) #endif #endif } while (sx <= sxe); - bx = b.x; + bx = b.words(); bxe = bx + n; if (!*bxe) { while (--bxe > bx && !*bxe) --n; - b.wds = n; + b.resize(n); } } return q; @@ -2027,7 +2060,8 @@ void dtoa(char* result, double dd, int ndigits, int* decpt, int* sign, char** rv dval(&eps) = (ieps * dval(&u)) + 7.; word0(&eps) -= (P - 1) * Exp_msk1; if (ilim == 0) { - S = mhi = BigInt(); + S.clear(); + mhi.clear(); dval(&u) -= 5.; if (dval(&u) > dval(&eps)) goto one_digit; @@ -2090,7 +2124,8 @@ fast_failed: /* Yes. */ ds = tens[k]; if (ndigits < 0 && ilim <= 0) { - S = mhi = BigInt(); + S.clear(); + mhi.clear(); if (ilim < 0 || dval(&u) <= 5 * ds) goto no_digits; goto one_digit; @@ -2132,7 +2167,8 @@ bump_up: m2 = b2; m5 = b5; - mhi = mlo = BigInt(); + mhi.clear(); + mlo.clear(); if (leftright) { i = #ifndef Sudden_Underflow @@ -2186,10 +2222,10 @@ bump_up: * can do shifts and ors to compute the numerator for q. */ #ifdef Pack_32 - if ((i = ((s5 ? 32 - hi0bits(S.x[S.wds - 1]) : 1) + s2) & 0x1f)) + if ((i = ((s5 ? 32 - hi0bits(S.words()[S.size() - 1]) : 1) + s2) & 0x1f)) i = 32 - i; #else - if ((i = ((s5 ? 32 - hi0bits(S.x[S.wds - 1]) : 1) + s2) & 0xf)) + if ((i = ((s5 ? 32 - hi0bits(S.words()[S.size() - 1]) : 1) + s2) & 0xf)) i = 16 - i; #endif if (i > 4) { @@ -2252,7 +2288,7 @@ bump_up: goto ret; } if (j < 0 || (j == 0 && !(word1(&u) & 1))) { - if (!b.x[0] && b.wds <= 1) { + if (!b.words()[0] && b.size() <= 1) { #ifdef SET_INEXACT inexact = 0; #endif @@ -2287,7 +2323,7 @@ round_9_up: } else for (i = 1;; i++) { *s++ = dig = quorem(b,S) + '0'; - if (!b.x[0] && b.wds <= 1) { + if (!b.words()[0] && b.size() <= 1) { #ifdef SET_INEXACT inexact = 0; #endif diff --git a/src/3rdparty/webkit/JavaScriptCore/yarr/RegexJIT.cpp b/src/3rdparty/webkit/JavaScriptCore/yarr/RegexJIT.cpp index 29a9d18..65c53cf 100644 --- a/src/3rdparty/webkit/JavaScriptCore/yarr/RegexJIT.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/yarr/RegexJIT.cpp @@ -1292,6 +1292,7 @@ class RegexGenerator : private MacroAssembler { #if PLATFORM(X86_64) push(X86::ebp); move(stackPointerRegister, X86::ebp); + push(X86::ebx); #elif PLATFORM(X86) push(X86::ebp); move(stackPointerRegister, X86::ebp); @@ -1319,6 +1320,7 @@ class RegexGenerator : private MacroAssembler { void generateReturn() { #if PLATFORM(X86_64) + pop(X86::ebx); pop(X86::ebp); #elif PLATFORM(X86) pop(X86::esi); diff --git a/src/3rdparty/webkit/VERSION b/src/3rdparty/webkit/VERSION index 730c023..fc32632 100644 --- a/src/3rdparty/webkit/VERSION +++ b/src/3rdparty/webkit/VERSION @@ -1,11 +1,11 @@ This is a snapshot of the Qt port of WebKit from - git://code.staikos.net/webkit + git://gitorious.org/qtwebkit/qtwebkit.git The commit imported was from the - qtwebkit-4.6-snapshot-29062009 branch/tag + qtwebkit-4.6-snapshot-13072009 branch/tag and has the sha1 checksum - 22aadba1b4356ad7d8e9446b95baccb6b2c037b0 + b2abc0c271880b8135507861056af497f895adf5 diff --git a/src/3rdparty/webkit/WebCore/ChangeLog b/src/3rdparty/webkit/WebCore/ChangeLog index 8991528..35640c5 100644 --- a/src/3rdparty/webkit/WebCore/ChangeLog +++ b/src/3rdparty/webkit/WebCore/ChangeLog @@ -1,3 +1,5488 @@ +2009-07-13 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Unreviewed make dist build fix. + + * GNUmakefile.am: + +2009-07-13 CĂ©dric Luthi <cedric.luthi@gmail.com> + + Reviewed by Tor Arne Vestbø. + + Fix NPWindow clip rect in PluginViewMac + + The rect should be in window-coordinates. This bug can be observed + with Flash 10 here: http://www.permadi.com/tutorial/cursorTracker/ + + * plugins/mac/PluginViewMac.cpp: + +2009-07-13 Simon Hausmann <hausmann@webkit.org> + + Reviewed by Ariya Hidayat. + + Fix Qt implementation of WebCore::directoryName to return the absolute + directory name instead of the base file name. + + * platform/qt/FileSystemQt.cpp: + (WebCore::directoryName): + +2009-07-13 Simon Hausmann <hausmann@webkit.org> + + Reviewed by Ariya Hidayat. + + Fix WebCore::Path::isEmpty() for the Qt port to return true + if there is no element in the path. + + QPainterPath::isEmpty() returns also true if there is one single + MoveTo element inside, which makes sense but doesn't patch Webcore's + is-empty definition. + + * platform/graphics/qt/PathQt.cpp: + (WebCore::Path::isEmpty): Use elementCount() == 0. + +2009-07-13 Albert J. Wong <ajwong@chromium.org> + + Reviewed by Dimitri Glazkov. + + Upstream fixes to NPV8Object.cpp that make ~30 layout tests pass. + https://bugs.webkit.org/show_bug.cgi?id=27127 + + There were a number of bugs introduced during the last upstreaming + effort that broke around 30 layout tests. This fixes those bugs. + It also has compile fixes to match the recent cutting apart of + V8Proxy. + + * bindings/v8/NPV8Object.cpp: + (freeV8NPObject): + (npCreateV8ScriptObject): + (NPN_Invoke): + (NPN_InvokeDefault): + (NPN_EvaluateHelper): + (NPN_SetException): + (NPN_Construct): + +2009-07-13 Mads Ager <ager@chromium.org> + + Reviewed by Adam Barth. + + Fix memory leak in the V8 binding layer. + https://bugs.webkit.org/show_bug.cgi?id=27163 + + Reinitializing the context is not necessary when clearing the proxy for navigation + and it will lead us to hold on to an empty context for each frame. + + Test for empty context instead of empty global object handle when + updating the document for a context. + + * bindings/v8/V8Proxy.cpp: + (WebCore::V8Proxy::clearForNavigation): + (WebCore::V8Proxy::updateDocument): + +2009-07-13 John Gregg <johnnyg@google.com> + + Reviewed by David Levin. + + Correct the logic to determine if a V8 callback returns a value. + https://bugs.webkit.org/show_bug.cgi?id=27155 + + * bindings/v8/custom/V8CustomVoidCallback.cpp: + (WebCore::invokeCallback): + - Don't crash if result.IsEmpty(). + +2009-07-13 Drew Wilson <atwilson@google.com> + + Reviewed by David Levin. + + Add ENABLE(SHARED_WORKERS) flag and define SharedWorker APIs + https://bugs.webkit.org/show_bug.cgi?id=26932 + + Initial IDL definition and bindings for SharedWorkers. + + * Configurations/FeatureDefines.xcconfig: + Added new files for SharedWorker support. + * DerivedSources.make: + Added new files for SharedWorker support. + * GNUmakefile.am: + Added new files for SharedWorker support. + * WebCore.gypi: + Added new files for SharedWorker support. + * WebCore.pro: + Added new files for SharedWorker support. + * WebCore.xcodeproj/project.pbxproj: + Added new files for SharedWorker support. + * bindings/js/JSAbstractWorkerCustom.cpp: Added. + (WebCore::JSAbstractWorker::mark): + Custom mark handler that marks the event listeners. + (WebCore::JSAbstractWorker::addEventListener): + (WebCore::JSAbstractWorker::removeEventListener): + (WebCore::JSAbstractWorker::toJS): + Custom toJS handler which differentiates between various subclasses. + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::sharedWorker): + SharedWorker constructor (only enabled when SHARED_WORKERS is + enabled). + * bindings/js/JSEventTarget.cpp: + (WebCore::toJS): + (WebCore::toEventTarget): + Added support for converting to/from SharedWorkers. + * bindings/js/JSSharedWorkerConstructor.cpp: Added. + (WebCore::JSSharedWorkerConstructor::JSSharedWorkerConstructor): + (WebCore::constructSharedWorker): + (WebCore::JSSharedWorkerConstructor::getConstructData): + * bindings/js/JSSharedWorkerConstructor.h: Added. + (WebCore::JSSharedWorkerConstructor::classInfo): + * bindings/js/JSSharedWorkerCustom.cpp: Added. + (WebCore::JSSharedWorker::mark): + Custom mark function that marks the internal MessagePort. + * bindings/v8/DOMObjectsInclude.h: + Updated to include new header files. + * bindings/v8/V8Index.cpp: + * bindings/v8/V8Index.h: + * bindings/v8/custom/V8AbstractWorkerCustom.cpp: Added. + (WebCore::getEventListener): + (WebCore::ACCESSOR_GETTER): + (WebCore::ACCESSOR_SETTER): + (WebCore::CALLBACK_FUNC_DECL): + V8 handlers for add/removeEventListener(). + * bindings/v8/custom/V8CustomBinding.h: + * bindings/v8/custom/V8SharedWorkerCustom.cpp: Added. + (WebCore::CALLBACK_FUNC_DECL): + Custom constructor for SharedWorker. + * dom/EventTarget.cpp: + (WebCore::EventTarget::toSharedWorker): + * dom/EventTarget.h: + * page/DOMWindow.idl: + * workers/AbstractWorker.cpp: Added. + (WebCore::AbstractWorker::AbstractWorker): + Common base class for SharedWorker and (soon) Worker. The functions below were copied from Worker.cpp. + This is the first step in refactoring Worker to derive from AbstractWorker to enable code sharing. + (WebCore::AbstractWorker::~AbstractWorker): + (WebCore::AbstractWorker::addEventListener): + (WebCore::AbstractWorker::removeEventListener): + (WebCore::AbstractWorker::dispatchEvent): + (WebCore::AbstractWorker::dispatchLoadErrorEvent): + (WebCore::AbstractWorker::dispatchScriptErrorEvent): + * workers/AbstractWorker.h: Added. + Definitions of functionality shared by Worker.h and SharedWorker.h. In a future patch, Worker will derive from AbstractWorker. + (WebCore::AbstractWorker::scriptExecutionContext): + (WebCore::AbstractWorker::setOnerror): + (WebCore::AbstractWorker::onerror): + (WebCore::AbstractWorker::eventListeners): + (WebCore::AbstractWorker::refEventTarget): + (WebCore::AbstractWorker::derefEventTarget): + * workers/AbstractWorker.idl: Added. + * workers/SharedWorker.cpp: Added. + (WebCore::SharedWorker::SharedWorker): + (WebCore::SharedWorker::~SharedWorker): + * workers/SharedWorker.h: Added. + (WebCore::SharedWorker::create): + (WebCore::SharedWorker::port): + (WebCore::SharedWorker::toSharedWorker): + * workers/SharedWorker.idl: Added. + +2009-07-13 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Cleanup - Remove prf install target + https://bugs.webkit.org/show_bug.cgi?id=27191 + + qtwebkit.prf has been removed; this cleans up the related + install target as well. + + * WebCore.pro: Remove prf install target + +2009-07-12 Adam Barth <abarth@webkit.org> + + Reviewed by Oliver Hunt. + + Facebook Chat is broken due to XSS auditor + https://bugs.webkit.org/show_bug.cgi?id=27179 + + Instead of just using the script's URL as to detect an XSS attack, we + now use a bit of context before the URL. In particular, we use the + bytes from the beginning of the attribute name to the end of the + attribute value. In virtually all injection attacks, the attacker + would need to supply the attribute name as well as the attribute value. + However, in the Facebook false positive, the attribute name is not + present in the URL. + + Tests: http/tests/security/xssAuditor/script-tag-src-redirect-safe.html + http/tests/security/xssAuditor/script-tag-with-source-double-quote.html + http/tests/security/xssAuditor/script-tag-with-source-no-quote.html + + * html/HTMLTokenizer.cpp: + (WebCore::HTMLTokenizer::parseTag): + * html/HTMLTokenizer.h: + * page/XSSAuditor.cpp: + (WebCore::XSSAuditor::canLoadExternalScriptFromSrc): + * page/XSSAuditor.h: + +2009-07-12 Keishi Hattori <casey.hattori@gmail.com> + + Reviewed by Timothy Hatcher. + + Refactor ConsoleMessage to add MessageType attribute. + https://bugs.webkit.org/show_bug.cgi?id=20625 + + * bindings/js/JSCustomXPathNSResolver.cpp: + (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI): + * bindings/js/JSDOMWindowBase.cpp: + (WebCore::JSDOMWindowBase::printErrorMessage): + * dom/Document.cpp: + (WebCore::Document::reportException): + (WebCore::Document::addMessage): + * dom/Document.h: + * dom/ScriptExecutionContext.h: + * html/HTMLParser.cpp: + (WebCore::HTMLParser::reportErrorToConsole): + * inspector/ConsoleMessage.cpp: + (WebCore::ConsoleMessage::ConsoleMessage): + (WebCore::ConsoleMessage::addToConsole): + (WebCore::ConsoleMessage::isEqual): + * inspector/ConsoleMessage.h: + * inspector/InspectorController.cpp: + (WebCore::InspectorController::addMessageToConsole): + (WebCore::InspectorController::startGroup): + (WebCore::InspectorController::endGroup): + (WebCore::InspectorController::addProfileFinishedMessageToConsole): + (WebCore::InspectorController::addStartProfilingMessageToConsole): + (WebCore::InspectorController::count): + * inspector/InspectorController.h: + * inspector/front-end/Console.js: + (WebInspector.Console.prototype.addMessage): + (WebInspector.ConsoleMessage): Added type property. + (WebInspector.ConsoleMessage.prototype.toMessageElement): + (WebInspector.ConsoleMessage.prototype.toString): + (WebInspector.ConsoleMessage.prototype.isEqual): + (WebInspector.ConsoleCommandResult): + (WebInspector.ConsoleGroup.prototype.addMessage): + (WebInspector.ConsoleGroup.prototype._titleClicked): + * inspector/front-end/Resource.js: + (WebInspector.Resource.prototype._addTip): + (WebInspector.Resource.prototype._checkWarning): + * inspector/front-end/inspector.css: Changed ".console-group-title-level" to ".console-group-title" + * inspector/front-end/inspector.js: + (WebInspector.addMessageToConsole): + * loader/DocLoader.cpp: + (WebCore::DocLoader::printAccessDeniedMessage): + * loader/EmptyClients.h: + (WebCore::EmptyChromeClient::addMessageToConsole): + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::reportLocalLoadFailed): + (WebCore::FrameLoader::shouldAllowNavigation): + * page/ChromeClient.h: + * page/Console.cpp: + (WebCore::printMessageSourceAndLevelPrefix): + (WebCore::Console::addMessage): + (WebCore::Console::error): + (WebCore::Console::log): + (WebCore::Console::dir): + (WebCore::Console::trace): + (WebCore::Console::assertCondition): + (WebCore::Console::timeEnd): + (WebCore::Console::warn): + * page/Console.h: Added MessageType enum. + (WebCore::): + * page/DOMWindow.cpp: + (WebCore::DOMWindow::postMessageTimerFired): + * page/XSSAuditor.cpp: + (WebCore::XSSAuditor::canEvaluate): + (WebCore::XSSAuditor::canLoadExternalScriptFromSrc): + (WebCore::XSSAuditor::canLoadObject): + * svg/SVGDocumentExtensions.cpp: + (WebCore::SVGDocumentExtensions::reportWarning): + (WebCore::SVGDocumentExtensions::reportError): + * wml/WMLErrorHandling.cpp: + (WebCore::reportWMLError): + * workers/GenericWorkerTask.h: Added GenericWorkerTask8 for the extra argument. + (WebCore::GenericWorkerTask8::create): + (WebCore::GenericWorkerTask8::GenericWorkerTask8): + (WebCore::GenericWorkerTask8::performTask): + (WebCore::createCallbackTask): + * workers/WorkerContext.cpp: + (WebCore::WorkerContext::addMessage): + (WebCore::WorkerContext::importScripts): + * workers/WorkerContext.h: + * workers/WorkerMessagingProxy.cpp: + (WebCore::postConsoleMessageTask): + (WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject): + * workers/WorkerMessagingProxy.h: + * workers/WorkerObjectProxy.h: + * xml/XMLHttpRequest.cpp: + (WebCore::reportUnsafeUsage): + (WebCore::XMLHttpRequest::didFinishLoading): + * xml/XSLTProcessor.cpp: + (WebCore::XSLTProcessor::parseErrorFunc): + +2009-07-12 Nate Chapin <japhet@chromium.org> + + Reviewed by Dimitri Glazkov. + + Upstream UndetectableHTMLCollection.idl as HTMLAllCollection.idl. + + https://bugs.webkit.org/show_bug.cgi?id=27132 + + * bindings/scripts/CodeGeneratorV8.pm: + * bindings/v8/DOMObjectsInclude.h: + * bindings/v8/DerivedSourcesAllInOne.cpp: + * bindings/v8/V8DOMWrapper.cpp: + (WebCore::V8DOMWrapper::getTemplate): + (WebCore::V8DOMWrapper::instantiateV8Object): + * bindings/v8/V8Index.cpp: + * bindings/v8/V8Index.h: + * dom/HTMLAllCollection.idl: Added. + +2009-07-12 Joseph Pecoraro <joepeck02@gmail.com> + + Reviewed by Maciej Stachowiak. + + Inspector: Duplicate Computation in Autocompletion + https://bugs.webkit.org/show_bug.cgi?id=26778 + + * inspector/front-end/TextPrompt.js: + (WebInspector.TextPrompt.prototype._completionsReady): + +2009-07-12 Dan Bernstein <mitz@apple.com> + + Reviewed by Maciej Stachowiak. + + https://bugs.webkit.org/show_bug.cgi?id=27196 + Rename bidi.cpp to RenderBlockLineLayout.cpp and remove bidi.h + + * GNUmakefile.am: Updated. + * WebCore.gypi: Updated. + * WebCore.pro: Updated. + * WebCore.vcproj/WebCore.vcproj: Updated. + * WebCore.xcodeproj/project.pbxproj: Updated. + * WebCoreSources.bkl: Updated. + * rendering/RenderBlock.h: Removed unnecessary forward declaration and + updated comments. + * rendering/RenderBlockLineLayout.cpp: Copied from WebCore/rendering/bidi.cpp. + Removed unnecessary #include statements. + (WebCore::BidiRun::BidiRun): Moved here from bidi.h. + (WebCore::RenderBlock::layoutInlineChildren): Removed outdated comment. + * rendering/bidi.cpp: Removed. + * rendering/bidi.h: Removed. + +2009-07-12 Dan Bernstein <mitz@apple.com> + + - Windows build fix + + * platform/graphics/cg/PDFDocumentImage.cpp: + (WebCore::PDFDocumentImage::dataChanged): + +2009-07-12 Dan Bernstein <mitz@apple.com> + + Reviewed by Sam Weinig. + + - Image cleanup + + * platform/graphics/BitmapImage.cpp: + (WebCore::BitmapImage::destroyDecodedData): Use the data() accessor + instead of the m_data member. + (WebCore::BitmapImage::dataChanged): Ditto. + * platform/graphics/Image.h: Re-ordered #includes and class + declarations. Removed the drawPatternCallback() declaration. Made member + variables private. + * platform/graphics/cg/ImageCG.cpp: + (WebCore::drawPatternCallback): Changed this from a member function to a + static function. + * platform/graphics/cg/PDFDocumentImage.cpp: + (WebCore::PDFDocumentImage::dataChanged): Use the data() accessor + instead of the m_data member. + * svg/graphics/SVGImage.cpp: + (WebCore::SVGImage::dataChanged): Ditto. + +2009-07-12 Daniel Bates <dbates@intudata.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=27189 + + Fixes insufficient check in XSSAuditor::canSetBaseElementURL that caused + XSSAuditor to incorrectly block HTML Base elements whose base path coincided + with the URL of the page. + + Test: http/tests/security/xssAuditor/base-href-safe3.html + + * page/XSSAuditor.cpp: + (WebCore::XSSAuditor::canSetBaseElementURL): Changed conditional to only call + XSSAuditor::findInRequest() if the host in the page URL disagrees with the host + in the base element URL. + +2009-07-12 Darin Adler <darin@apple.com> + + Reviewed by Dan Bernstein. + + Text searching with ICU should take the user's default locale into account + https://bugs.webkit.org/show_bug.cgi?id=27184 + rdar://problem/6812121 + + No simple way to test this since it's dependent on user locale. + After this, the user's default locale is used only on Mac. + + * editing/TextIterator.cpp: + (WebCore::createSearcher): Pass result of the currentSearchLocaleID + function as the locale. + + * platform/text/TextBreakIteratorInternalICU.h: Added declaration of + currentSearchLocaleID function. + + * platform/text/android/TextBreakIteratorInternalICU.cpp: + (WebCore::currentSearchLocaleID): Added. Returns the empty string. + * platform/text/chromium/TextBreakIteratorInternalICUChromium.cpp: + (WebCore::currentSearchLocaleID): Ditto. + * platform/text/gtk/TextBreakIteratorInternalICUGtk.cpp: + (WebCore::currentSearchLocaleID): Ditto. + + * platform/text/mac/TextBreakIteratorInternalICUMac.mm: + (WebCore::textBreakLocalePreference): Added. Returns the value of + the AppleTextBreakLocale preference. + (WebCore::topLanguagePreference): Added. Returns the value of the + first item in the AppleLanguages preference. + (WebCore::canonicalLanguageIdentifier): Added. Cover for the + CFLocaleCreateCanonicalLanguageIdentifierFromString function. + (WebCore::getLocale): Added. Transfers the locale from a CFStringRef + into a buffer. + (WebCore::getSearchLocale): Added. Calls topLanguagePreference, + canonicalLanguageIdentifier, and getLocale. + (WebCore::currentSearchLocaleID): Added. Calls getSearchLocale once. + (WebCore::getTextBreakLocale): Changed to call + textBreakLocalePreference, topLanguagePreference, + canonicalLanguageIdentifier, and getLocale. + + * platform/text/win/TextBreakIteratorInternalICUWin.cpp: + (WebCore::currentSearchLocaleID): Added. Returns the empty string. + * platform/wx/TemporaryLinkStubs.cpp: + (WebCore::currentSearchLocaleID): Ditto. + +2009-07-12 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=25415 + [GTK][ATK] Please implement support for get_text_at_offset + + Create a PangoLayout that properly represents the visual + appearance of the text in the web page so that the line boundary + modes of getText{At,Before,After}Offset work correctly. + + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: + (UTF16ToUTF8): + (g_substr): + (convertUniCharToUTF8): + (getPangoLayoutForAtk): + +2009-07-11 Oliver Hunt <oliver@apple.com> + + Reviewed by Simon Fraser. + + Bug 27187 - Match Gecko behaviour for canvas path mutation APIs on an empty path + <https://bugs.webkit.org/show_bug.cgi?id=27187> + + Simple API change, check for the empty path and add appropriate point if necessary. + + Test: fast/canvas/canvas-modify-emptyPath.html + + * Info.plist: + * WebCore.xcodeproj/project.pbxproj: + * html/CanvasRenderingContext2D.cpp: + (WebCore::CanvasRenderingContext2D::lineTo): + (WebCore::CanvasRenderingContext2D::quadraticCurveTo): + (WebCore::CanvasRenderingContext2D::bezierCurveTo): + +2009-07-11 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Antti Koivisto. + + HTMLMediaElement.canPlayType "maybe" and "probably" reversed + https://bugs.webkit.org/show_bug.cgi?id=27186 + + * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp: + (WebCore::MediaPlayerPrivate::supportsType): + Return "probably" if type has codecs parameter. + + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::supportsType): + Ditto. + + * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp: + (WebCore::MediaPlayerPrivate::supportsType): + Ditto. + +2009-07-11 Brady Eidson <beidson@apple.com> + + Reviewed by Mark Rowe. + + A worker-thread inspired follow-up for: + https://bugs.webkit.org/show_bug.cgi?id=26496 and <rdar://problem/7046520> + REGRESSION: XHR stream connection blocks iFrame loading and resource downloading + + * xml/XMLHttpRequest.cpp: + (WebCore::XMLHttpRequest::loadRequestAsynchronously): Don't perform the XHR compensation when the XHR + is running on a worker thread. Accessing the global Cache data structures from a non-main thread is + not currently supported. + +2009-07-11 Simon Fraser <simon.fraser@apple.com> + + Enable support for accelerated compositing and 3d transforms on Leopard. + <https://bugs.webkit.org/show_bug.cgi?id=20166> + <rdar://problem/6120614> + + Reviewed by Oliver Hunt. + + * Configurations/FeatureDefines.xcconfig: + +2009-07-11 Simon Hausmann <hausmann@webkit.org> + + Fix the Qt build after r45724. + + * bridge/qt/qt_instance.cpp: + (JSC::Bindings::QtRuntimeObjectImp::QtRuntimeObjectImp): + * bridge/qt/qt_runtime.cpp: + (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod): + +2009-07-10 Daniel Bates <dbates@intudata.com> + + Reviewed by Adam Barth. + + https://bugs.webkit.org/show_bug.cgi?id=26921 + + Implements support for HTML entities, so XSSAuditor can protect against attacks + encoded with HTML entities. + + Tests: http/tests/security/xssAuditor/inline-event-HTML-entities.html + http/tests/security/xssAuditor/javascript-link-HTML-entities-control-char.html + http/tests/security/xssAuditor/javascript-link-HTML-entities-named.html + http/tests/security/xssAuditor/javascript-link-HTML-entities-null-char.html + http/tests/security/xssAuditor/javascript-link-HTML-entities.html + http/tests/security/xssAuditor/link-onclick-entities.html + http/tests/security/xssAuditor/script-tag-entities.html + http/tests/security/xssAuditor/script-tag-with-source-entities.html + + * page/XSSAuditor.cpp: + (WebCore::XSSAuditor::canEvaluate): + (WebCore::XSSAuditor::canEvaluateJavaScriptURL): + (WebCore::XSSAuditor::decodeURL): Modified to call WebCore::XSSAuditor::decodeHTMLEntities + to decode HTML entities. + (WebCore::XSSAuditor::decodeHTMLEntities): Added method to decode HTML entities. + (WebCore::XSSAuditor::findInRequest): + * page/XSSAuditor.h: + +2009-07-10 David Kilzer <ddkilzer@apple.com> + + Bug 27007: Build fixes when ICONDATABASE is disabled + + <https://bugs.webkit.org/show_bug.cgi?id=27007> + + Reviewed by Sam Weinig. + + * WebCore.xcodeproj/project.pbxproj: Added IconDatabaseNone.cpp + to the project. + * loader/icon/IconDatabase.cpp: Added + #if ENABLE(ICONDATABASE)/#endif macro guard. + * loader/icon/IconDatabase.h: Removed three public methods from + #if ENABLE(ICONDATABASE)/#endif macro so that they may be + stubbed out in IconDatabaseNone.cpp. + * loader/icon/IconDatabaseNone.cpp: Added + #if !ENABLE(ICONDATABASE)/#endif macro guard. + (WebCore::IconDatabase::importIconURLForPageURL): Added. + (WebCore::IconDatabase::importIconDataForIconURL): Added. + (WebCore::IconDatabase::shouldStopThreadActivity): Added. + +2009-07-10 Daniel Bates <dbates@intudata.com> + + Reviewed by Adam Barth. + + https://bugs.webkit.org/show_bug.cgi?id=27151 + + Fixes issue where JavaScript URLs that contain null- and non-null control characters can + bypass XSSAuditor. + + Tests: http/tests/security/xssAuditor/javascript-link-control-char.html + http/tests/security/xssAuditor/javascript-link-null-char.html + http/tests/security/xssAuditor/javascript-link.html + + * bindings/js/ScriptController.cpp: + (WebCore::ScriptController::evaluate): Separated out logic for JavaScript URLs from + inline scripts. For JavaScript URLs, calls XSSAuditor::canEvaluateJavaScriptURL. + * bindings/v8/ScriptController.cpp: + (WebCore::ScriptController::evaluate): Made similar changes to evaluate() as in + bindings/js/ScriptController.cpp. + * page/XSSAuditor.cpp: + (WebCore::XSSAuditor::canEvaluateJavaScriptURL): Separated out logic for JavaScript URLs + into its own method. + * page/XSSAuditor.h: + +2009-07-10 Shinichiro Hamaji <hamaji@chromium.org> + + Reviewed by David Kilzer. + + WebKit needs a style linting tool + https://bugs.webkit.org/show_bug.cgi?id=25884 + + Fix bunch of style issues by autofix of cpplint. + This patch is created to demonstrate the autofix of cpplint.py. + + No new testcases because it's a style fix + + * css/CSSParser.cpp: + (WebCore::CSSParser::parseMediaQuery): + (WebCore::CSSParser::validUnit): + (WebCore::CSSParser::parseValue): + (WebCore::skipCommaInDashboardRegion): + (WebCore::CSSParser::parseDashboardRegions): + (WebCore::ShadowParseContext::commitValue): + (WebCore::ShadowParseContext::commitLength): + (WebCore::ShadowParseContext::commitColor): + (WebCore::BorderImageParseContext::commitNumber): + (WebCore::BorderImageParseContext::commitWidth): + (WebCore::BorderImageParseContext::commitRule): + (WebCore::BorderImageParseContext::commitBorderImage): + (WebCore::CSSParser::lex): + (WebCore::CSSParser::text): + * css/CSSStyleSelector.cpp: + (WebCore::CSSStyleSelector::applyProperty): + * css/MediaList.cpp: + (WebCore::MediaList::deleteMedium): + * css/MediaQuery.h: + * css/MediaQueryEvaluator.cpp: + (WebCore::parseAspectRatio): + * css/MediaQueryEvaluator.h: + * css/MediaQueryExp.h: + (WebCore::MediaQueryExp::operator==): + * css/WebKitCSSMatrix.h: + * dom/Comment.h: + * dom/Document.cpp: + (WebCore::Document::setFocusedNode): + * dom/Document.h: + (WebCore::Document::setHasDashboardRegions): + * dom/DocumentFragment.cpp: + (WebCore::DocumentFragment::nodeName): + * dom/DocumentFragment.h: + * dom/DynamicNodeList.h: + * dom/EditingText.h: + * dom/Element.cpp: + (WebCore::Element::dispatchAttrAdditionEvent): + * dom/NamedAttrMap.cpp: + (WebCore::NamedNodeMap::item): + * dom/Node.cpp: + (WebCore::Node::nodeValue): + (WebCore::Node::nodeIndex): + * dom/NodeRareData.h: + (WebCore::NodeListsNodeData::create): + * dom/Notation.h: + * dom/ProcessingInstruction.h: + * dom/Range.cpp: + (WebCore::Range::processContents): + * dom/StyledElement.cpp: + (WebCore::toHex): + * dom/XMLTokenizerLibxml2.cpp: + (WebCore::PendingCallbacks::PendingStartElementNSCallback::~PendingStartElementNSCallback): + (WebCore::PendingCallbacks::PendingStartElementNSCallback::call): + (WebCore::PendingCallbacks::): + (WebCore::OffsetBuffer::readOutBytes): + (WebCore::handleElementNamespaces): + (WebCore::handleElementAttributes): + (WebCore::attributesStartElementNsHandler): + * dom/XMLTokenizerQt.cpp: + (WebCore::attributesStartElementNsHandler): + (WebCore::XMLTokenizer::parseStartElement): + * editing/ApplyStyleCommand.cpp: + (WebCore::ApplyStyleCommand::applyInlineStyle): + * editing/DeleteSelectionCommand.cpp: + (WebCore::DeleteSelectionCommand::removeNode): + * editing/Editor.cpp: + (WebCore::Editor::pasteAsPlainText): + * editing/SelectionController.cpp: + (WebCore::SelectionController::directionOfEnclosingBlock): + * editing/SmartReplaceICU.cpp: + (WebCore::addAllCodePoints): + * history/HistoryItem.cpp: + (WebCore::HistoryItem::icon): + (WebCore::HistoryItem::adoptVisitCounts): + * html/CanvasStyle.cpp: + (WebCore::CanvasStyle::applyFillColor): + * html/HTMLAnchorElement.cpp: + (WebCore::HTMLAnchorElement::setActive): + (WebCore::HTMLAnchorElement::isLiveLink): + * html/HTMLAppletElement.h: + * html/HTMLAudioElement.h: + * html/HTMLBRElement.h: + * html/HTMLBaseElement.h: + * html/HTMLBaseFontElement.h: + * html/HTMLDListElement.h: + * html/HTMLDirectoryElement.h: + * html/HTMLFieldSetElement.cpp: + (WebCore::HTMLFieldSetElement::HTMLFieldSetElement): + * html/HTMLFormElement.cpp: + (WebCore::HTMLFormElement::reset): + * html/HTMLHRElement.cpp: + (WebCore::HTMLHRElement::parseMappedAttribute): + * html/HTMLHeadElement.h: + * html/HTMLHtmlElement.h: + * html/HTMLImageElement.h: + (WebCore::HTMLImageElement::setLoadManually): + * html/HTMLInputElement.cpp: + (WebCore::HTMLInputElement::selection): + * html/HTMLIsIndexElement.h: + * html/HTMLMarqueeElement.cpp: + * html/HTMLMediaElement.h: + (WebCore::HTMLMediaElement::): + * html/HTMLMenuElement.h: + * html/HTMLMetaElement.h: + * html/HTMLModElement.h: + * html/HTMLOListElement.h: + * html/HTMLOptionElement.cpp: + (WebCore::HTMLOptionElement::childrenChanged): + * html/HTMLParamElement.h: + * html/HTMLQuoteElement.h: + * html/HTMLStyleElement.h: + * html/HTMLTableCaptionElement.h: + * html/HTMLTableCellElement.h: + * html/HTMLTableColElement.h: + * html/HTMLTableSectionElement.cpp: + (WebCore::HTMLTableSectionElement::deleteRow): + * html/HTMLTitleElement.h: + * html/HTMLTokenizer.cpp: + (WebCore::HTMLTokenizer::parseNonHTMLText): + (WebCore::HTMLTokenizer::parseEntity): + (WebCore::HTMLTokenizer::parseTag): + (WebCore::HTMLTokenizer::write): + * html/HTMLUListElement.h: + * html/HTMLVideoElement.h: + * html/TimeRanges.h: + (WebCore::TimeRanges::Range::Range): + * inspector/InspectorController.cpp: + (WebCore::InspectorController::enableResourceTracking): + (WebCore::InspectorController::disableResourceTracking): + * inspector/InspectorFrontend.cpp: + (WebCore::InspectorFrontend::newInspectorJSONObject): + * page/Console.cpp: + (WebCore::Console::addMessage): + * page/EventHandler.cpp: + (WebCore::EventHandler::handleMousePressEvent): + (WebCore::EventHandler::selectCursor): + (WebCore::EventHandler::defaultKeyboardEventHandler): + * page/Frame.cpp: + (WebCore::Frame::jsDefaultStatusBarText): + * page/android/DragControllerAndroid.cpp: + (WebCore::DragController::dragOperation): + * page/android/EventHandlerAndroid.cpp: + (WebCore::EventHandler::tabsToAllControls): + (WebCore::EventHandler::eventActivatedView): + * page/animation/AnimationController.cpp: + (WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired): + * page/gtk/DragControllerGtk.cpp: + (WebCore::DragController::dragOperation): + * page/qt/DragControllerQt.cpp: + * page/win/DragControllerWin.cpp: + (WebCore::DragController::isCopyKeyDown): + * page/win/FrameWin.h: + * rendering/RenderSlider.cpp: + (WebCore::RenderSlider::mouseEventOffsetToThumb): + * rendering/style/RenderStyle.h: + (WebCore::InheritedFlags::setVerticalAlignLength): + (WebCore::InheritedFlags::setUnicodeBidi): + (WebCore::InheritedFlags::setCursor): + * rendering/style/RenderStyleConstants.h: + (WebCore::): + * rendering/style/SVGRenderStyleDefs.h: + * rendering/style/StyleInheritedData.h: + (WebCore::StyleInheritedData::operator!=): + * storage/DatabaseTask.h: + * svg/GradientAttributes.h: + * svg/LinearGradientAttributes.h: + * svg/PatternAttributes.h: + * svg/RadialGradientAttributes.h: + * svg/SVGAnimatedPathData.h: + * svg/SVGAnimatedPoints.h: + * svg/SVGAnimationElement.h: + * svg/SVGClipPathElement.h: + * svg/SVGElementInstance.h: + * svg/SVGFEBlendElement.cpp: + (WebCore::SVGFEBlendElement::build): + * svg/SVGFEBlendElement.h: + * svg/SVGFEColorMatrixElement.cpp: + (WebCore::SVGFEColorMatrixElement::build): + * svg/SVGFEComponentTransferElement.cpp: + (WebCore::SVGFEComponentTransferElement::build): + * svg/SVGFECompositeElement.cpp: + (WebCore::SVGFECompositeElement::build): + * svg/SVGFEDiffuseLightingElement.cpp: + (WebCore::SVGFEDiffuseLightingElement::build): + * svg/SVGFEDisplacementMapElement.cpp: + (WebCore::SVGFEDisplacementMapElement::build): + * svg/SVGFEDistantLightElement.h: + * svg/SVGFEFloodElement.cpp: + (WebCore::SVGFEFloodElement::build): + * svg/SVGFEFloodElement.h: + * svg/SVGFEFuncAElement.h: + * svg/SVGFEFuncBElement.h: + * svg/SVGFEFuncGElement.h: + * svg/SVGFEFuncRElement.h: + * svg/SVGFEGaussianBlurElement.cpp: + (WebCore::SVGFEGaussianBlurElement::build): + * svg/SVGFEImageElement.cpp: + (WebCore::SVGFEImageElement::build): + * svg/SVGFEMergeElement.cpp: + (WebCore::SVGFEMergeElement::build): + * svg/SVGFEOffsetElement.cpp: + (WebCore::SVGFEOffsetElement::build): + * svg/SVGFEPointLightElement.h: + * svg/SVGFESpecularLightingElement.cpp: + (WebCore::SVGFESpecularLightingElement::build): + * svg/SVGFESpotLightElement.h: + * svg/SVGFETileElement.cpp: + (WebCore::SVGFETileElement::build): + * svg/SVGLineElement.cpp: + (WebCore::SVGLineElement::parseMappedAttribute): + * svg/SVGList.h: + * svg/SVGListTraits.h: + (WebCore::): + * svg/SVGMPathElement.h: + * svg/SVGMetadataElement.h: + * svg/SVGParserUtilities.cpp: + (WebCore::SVGPathParser::parseSVG): + (WebCore::SVGPathParser::calculateArc): + * svg/SVGPathElement.h: + * svg/SVGPathSegClosePath.h: + * svg/SVGSVGElement.h: + * svg/SVGSetElement.h: + * svg/SVGSwitchElement.h: + * svg/SVGTextPathElement.cpp: + (WebCore::SVGTextPathElement::parseMappedAttribute): + * svg/SVGTextPathElement.h: + * svg/SVGTitleElement.h: + * svg/SVGTransformable.cpp: + (WebCore::): + * svg/SVGViewSpec.cpp: + (WebCore::): + * svg/animation/SMILTime.cpp: + (WebCore::operator+): + (WebCore::operator-): + (WebCore::operator*): + * svg/animation/SVGSMILElement.h: + * svg/graphics/SVGResource.cpp: + (WebCore::clientMap): + * wml/WMLPostfieldElement.cpp: + (WebCore::WMLPostfieldElement::value): + * wml/WMLSetvarElement.cpp: + (WebCore::WMLSetvarElement::value): + * workers/WorkerRunLoop.cpp: + * xml/XMLHttpRequest.cpp: + (WebCore::XMLHttpRequest::dropProtection): + * xml/XPathPath.h: + +2009-07-10 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Simon Fraser. + + <rdar://problem/7049066>. + Update SnowLeopard media controller layout. + + * css/mediaControlsQT.css: + Update for new layout. + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::movieLoadType): + Added to replace isStreaming. + * html/HTMLMediaElement.h: + Declare movieLoadType, remove isStreaming. + + * rendering/MediaControlElements.cpp: + (WebCore::MediaControlStatusDisplayElement::update): + Use movieLoadType instead of isStreaming. + (WebCore::MediaControlTimelineContainerElement::rendererIsNeeded): + MediaControlElement is the base class, not HTMLInputElement. + (WebCore::MediaControlStatusDisplayElement::rendererIsNeeded): + Ditto. + (WebCore::MediaControlRewindButtonElement::rendererIsNeeded): + Don't display rewind button for live streams. + (WebCore::MediaControlReturnToRealtimeButtonElement::rendererIsNeeded): + MediaControlInputElement is the base class, not HTMLInputElement. + * rendering/MediaControlElements.h: + + * rendering/RenderThemeMac.h: + * rendering/RenderThemeMac.mm: + (WebCore::getMediaUIPartStateFlags): + New, return wkDrawMediaUIPart flags. + (WebCore::RenderThemeMac::paintMediaFullscreenButton): + (WebCore::RenderThemeMac::paintMediaMuteButton): + (WebCore::RenderThemeMac::paintMediaPlayButton): + (WebCore::RenderThemeMac::paintMediaSeekBackButton): + (WebCore::RenderThemeMac::paintMediaSeekForwardButton): + (WebCore::RenderThemeMac::paintMediaSliderTrack): + (WebCore::RenderThemeMac::paintMediaSliderThumb): + (WebCore::RenderThemeMac::paintMediaRewindButton): + (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton): + (WebCore::RenderThemeMac::paintMediaControlsBackground): + (WebCore::RenderThemeMac::paintMediaCurrentTime): + (WebCore::RenderThemeMac::paintMediaTimeRemaining): + Use getMediaUIPartStateFlags. + +2009-07-10 Michelangelo De Simone <micdesim@gmail.com> + + Reviewed by Adele Peterson. + + https://bugs.webkit.org/show_bug.cgi?id=19562 + Added build stuff and stub for the ValidityState class, part of HTML5 + section Forms: + http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#validitystate + + Test: fast/forms/ValidityState-001.html + + * DerivedSources.cpp: Fix aimed to include ValidityState files + * DerivedSources.make: ditto + * GNUmakefile.am: ditto + * WebCore.gypi: ditto + * WebCore.pro: ditto + * WebCore.vcproj/WebCore.vcproj: ditto + * WebCore.xcodeproj/project.pbxproj: ditto + * WebCoreSources.bkl: ditto + * html/HTMLButtonElement.idl: "validity" attribute + * html/HTMLFieldSetElement.idl: ditto + * html/HTMLFormControlElement.cpp: object getter + (WebCore::HTMLFormControlElement::validity): + * html/HTMLFormControlElement.h: ditto + * html/HTMLInputElement.idl: "validity" attribute + * html/HTMLSelectElement.idl: ditto + * html/HTMLTextAreaElement.idl: ditto + * html/ValidityState.cpp: Added. + (WebCore::ValidityState::ValidityState): + (WebCore::ValidityState::valid): validation flag + * html/ValidityState.h: Added. + (WebCore::ValidityState::create): creation routine + (WebCore::ValidityState::control): ValidityState's parent getter + (WebCore::ValidityState::valueMissing): validation flag + (WebCore::ValidityState::typeMismatch): ditto + (WebCore::ValidityState::patternMismatch): ditto + (WebCore::ValidityState::tooLong): ditto + (WebCore::ValidityState::rangeUnderflow): ditto + (WebCore::ValidityState::rangeOverflow): ditto + (WebCore::ValidityState::stepMismatch): ditto + (WebCore::ValidityState::customError): ditto + * html/ValidityState.idl: Added. + +2009-07-10 Brady Eidson <beidson@apple.com> + + Style cleanup over my last patch. + + * xml/XMLHttpRequest.cpp: + (WebCore::XMLHttpRequest::~XMLHttpRequest): + +2009-07-10 Kevin McCullough <kmccullough@apple.com> + + Reviewed by Geoffrey Garen. + + * inspector/JavaScriptCallFrame.cpp: + (WebCore::JavaScriptCallFrame::dynamicGlobalObject): + * inspector/JavaScriptCallFrame.h: New helper method, used below. + + * inspector/JavaScriptDebugServer.cpp: + (WebCore::JavaScriptDebugServer::detach): In the special case + where we detach from a window currently executing JavaScript, + manually tear down our representation of the JavaScript + call stack, since we won't get any more callbacks from JavaScriptCore + to automatically tear it down. It's too bad that WebCore is + responsible for this kind of tracking -- in the future, it would + be nice if more of the breakpoint handling was inside of JavaScriptCore. + +2009-07-10 Brady Eidson <beidson@apple.com> + + Reviewed by Antti Koivisto. + + https://bugs.webkit.org/show_bug.cgi?id=26496 and <rdar://problem/7046520> + REGRESSION: XHR stream connection blocks iFrame loading and resource downloading + + With this test we ended up going over the maximum-connections-per-host limit that CFNetwork expected. + When that happened, the first request that was over the limit ended up in a bizarre state where it + wasn't fully serviced until after the long running XHR was complete. + + Loader and Loader::Host work together to try to not exceed the max-connection limit but non-cache + resources - such as XHR - could still end up causing this limit to be exceeded. + + This fix adds a workaround specifically for XHR while we hash out a more thorough solution that will + handle this at the resource handle level. + + * loader/loader.cpp: + (WebCore::Loader::nonCacheRequestInFlight): + (WebCore::Loader::nonCacheRequestComplete): + (WebCore::Loader::Host::Host): + (WebCore::Loader::Host::nonCacheRequestInFlight): + (WebCore::Loader::Host::nonCacheRequestComplete): + (WebCore::Loader::Host::servePendingRequests): Take nonCacheRequestsInFlight into account. + * loader/loader.h: + (WebCore::Loader::Host::processingResource): Take nonCacheRequestsInFlight into account. + + * xml/XMLHttpRequest.cpp: + (WebCore::XMLHttpRequest::XMLHttpRequest): + (WebCore::XMLHttpRequest::~XMLHttpRequest): + (WebCore::XMLHttpRequest::loadRequestAsynchronously): Bump the nonCacheRequestInFlight count. + (WebCore::XMLHttpRequest::didFail): Decrement that count if the Loader was notified. + (WebCore::XMLHttpRequest::didFinishLoading): Ditto. + +2009-07-10 Antti Koivisto <antti@apple.com> + + Try to unbreak non-Mac build. + + * page/ChromeClient.h: + (WebCore::ChromeClient::formDidFocus): + (WebCore::ChromeClient::formDidBlur): + +2009-07-10 Beth Dakin <bdakin@apple.com> + + Reviewed by Anders Carlsson. + + The rest of the fix for <rdar://problem/7038831> REGRESSION (TOT): + In Mail, a crash occurs at WebCore::Widget::afterMouseDown() after + clicking To Do's close box + + Make the Widget* in passMouseDownEventToWidget() a RefPtr. + + * page/mac/EventHandlerMac.mm: + (WebCore::EventHandler::passMouseDownEventToWidget): + +2009-07-10 Eric Seidel <eric@webkit.org> + + Reviewed by Adam Barth. + + rename getDOMStructure calls w/o JSGlobalObject* to deprecatedGetDOMStructure + https://bugs.webkit.org/show_bug.cgi?id=27157 + + This is the first step to fixing + https://bugs.webkit.org/show_bug.cgi?id=27088 + + * WebCore.xcodeproj/project.pbxproj: + * bindings/js/JSDOMBinding.h: + (WebCore::deprecatedGetDOMStructure): + (WebCore::createDOMObjectWrapper): + (WebCore::createDOMNodeWrapper): + * bindings/js/JSNamedNodesCollection.cpp: + (WebCore::JSNamedNodesCollection::JSNamedNodesCollection): + * bindings/js/JSRGBColor.cpp: + (WebCore::JSRGBColor::JSRGBColor): + * bridge/objc/objc_runtime.mm: + (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp): + * bridge/runtime_array.cpp: + (JSC::RuntimeArray::RuntimeArray): + * bridge/runtime_method.cpp: + (JSC::RuntimeMethod::RuntimeMethod): + * bridge/runtime_object.cpp: + (JSC::RuntimeObjectImp::RuntimeObjectImp): + +2009-07-10 Greg Bolsinga <bolsinga@apple.com> + + Reviewed by Antti Koivisto. + + Add delegate methods about focus and blur and state change + https://bugs.webkit.org/show_bug.cgi?id=27153 + + Call the appropriate new ChromeClient methods for focus and blur. + + * html/HTMLFormControlElement.cpp: + (WebCore::HTMLFormControlElement::dispatchFocusEvent): + (WebCore::HTMLFormControlElement::dispatchBlurEvent): + * html/HTMLFormControlElement.h: + * loader/EmptyClients.h: + (WebCore::EmptyChromeClient::formDidFocus): + (WebCore::EmptyChromeClient::formDidBlur): + * page/ChromeClient.h: + +2009-07-10 Steve Falkenburg <sfalken@apple.com> + + <rdar://problem/7048741> REGRESSION: Error about missing SwMenuX.dll opening pages with Shockwave + + Use altered search path while loading plug-ins. This modifies the DLL search order + to look in the directory containing the plug-in even if a call to SetDllDirectory + was previously made. Use of SetDllDirectory removes the current directory from the search path, + breaking the previous strategy for locating any dependent DLLs of the plug-in. + + Reviewed by Jon Honeycutt. + + * plugins/win/PluginPackageWin.cpp: + (WebCore::PluginPackage::load): Use LoadLibraryEx with LOAD_WITH_ALTERED_SEARCH_PATH + +2009-07-10 Adam Roben <aroben@apple.com> + + Sort all our Xcode projects + + Accomplished using sort-Xcode-project-file. + + Requested by Dave Kilzer. + + * WebCore.xcodeproj/project.pbxproj: + +2009-07-10 Adam Langley <agl@google.com> + + Reviewed by Darin Fisher. + + Chromium Linux: use disabled images for disabled widgets. + + https://bugs.webkit.org/show_bug.cgi?id=27106 + + Previously, checkboxes and radio controls rendered the same even if disabled. + The Chromium side of this change is r20224. + + * rendering/RenderThemeChromiumSkia.cpp: + (WebCore::RenderThemeChromiumSkia::paintCheckbox): + (WebCore::RenderThemeChromiumSkia::paintRadio): + +2009-07-10 Simon Fraser <simon.fraser@apple.com> + + Reviewed by John Sullivan. + + Fix crash when changing the zoom level in http://iphone.akamai.com/ + <rdar://problem/7029077> + + RenderLayerBacking's paintIntoLayer() method called updateLayerListsIfNeeded(), + which could potentially destroy that compositing layer, causing a crash. + Prevent this from happening by not doing a compositing update from paintIntoLayer(). + + The existing updateLayerListsIfNeeded() was renamed to updateCompositingAndLayerListsIfNeeded(), + and still does the compositing update. The new updateLayerListsIfNeeded() does not touch + compositing layers, and is still called from paintIntoLayer(). + + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::paintLayer): + (WebCore::RenderLayer::hitTestLayer): + (WebCore::RenderLayer::updateLayerListsIfNeeded): + (WebCore::RenderLayer::updateCompositingAndLayerListsIfNeeded): + * rendering/RenderLayer.h: + +2009-07-10 Drew Wilson <atwilson@google.com> + + Reviewed by Darin Adler. + + Need to remove UsesManualToJSImplementation() in favor of CustomToJS. + https://bugs.webkit.org/show_bug.cgi?id=27010 + + Added support for CustomToJS IDL attribute to replace the hard-coded class list in UsesManualToJSImplementation(). + + This is just a cleanup of existing functionality, so existing LayoutTests adequately cover this patch. + + * bindings/scripts/CodeGeneratorJS.pm: + Removed UsesManualToJSImplementation(), added support for CustomToJS attribute. + * css/CSSRule.idl: + * css/CSSValue.idl: + * css/StyleSheet.idl: + * dom/Document.idl: + * dom/Event.idl: + * dom/Node.idl: + * html/ImageData.idl: + * svg/SVGElementInstance.idl: + * svg/SVGPathSeg.idl: + Added CustomToJS attribute to all the above IDL files. + +2009-07-10 Dan Bernstein <mitz@apple.com> + + - fix the build by reverting the ill-advised r45711 + + * page/FrameView.cpp: + (WebCore::FrameView::scrollToAnchor): + +2009-07-09 Brian Weinstein <bweinstein@apple.com> + + Reviewed by Tim Hatcher. + + Updated WebCore.base.exp to add some needed functions. + + * WebCore.base.exp: + +2009-07-10 Dan Bernstein <mitz@apple.com> + + - address a review comment from Simon Fraser which I forgot to include + in the last check-in + + * page/FrameView.cpp: + (WebCore::FrameView::scrollToAnchor): Pass true to getRect() for + maximum transform friendliness! + +2009-07-10 Dan Bernstein <mitz@apple.com> + + Reviewed by Simon Fraser. + + - fix https://bugs.webkit.org/show_bug.cgi?id=27137 + <rdar://problem/7043124> REGRESSION (r44311): Reproducible crash due + to infinite recursion into FrameLoader::gotoAnchor() -> + FrameView::layout() + + Test: fast/loader/goto-anchor-infinite-layout.html + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::gotoAnchor): Moved the code to update layout, + find the renderer to scroll to, and scroll from here to methods on + FrameView, and replaced it with a call to + FrameView::maintainScrollPositionAtAnchor(). + (WebCore::FrameLoader::completed): Call maintainScrollPositionAtAnchor() + instead of setLockedToAnchor(). + + * page/FrameView.cpp: + (WebCore::FrameView::FrameView): Removed initialization of + m_lockedToAnchor. + (WebCore::FrameView::reset): Reset m_maintainScrollPositionAnchor instead + of m_lockedToAnchor. + (WebCore::FrameView::layout): Removed the code related to scrolling to + the anchor from here, because scrolling can trigger events which + invalidate the layout, and as such, belongs with the post-layout tasks. + (WebCore::FrameView::maintainScrollPositionAtAnchor): Added. When called + with a node scrolls the view to the top of that node and maintains it + scrolled to the top of the node during subsequent layouts, until + this function is called with 0 or other things trigger scrolling. + (WebCore::FrameView::scrollRectIntoViewRecursively): Reset + m_maintainScrollPositionAnchor. + (WebCore::FrameView::setScrollPosition): Ditto. + (WebCore::FrameView::scrollToAnchor): Added. Scrolls to the top of + m_maintainScrollPositionAnchor, if it is set. + (WebCore::FrameView::performPostLayoutTasks): Call scrollToAnchor(). + (WebCore::FrameView::setWasScrolledByUser): Reset + m_maintainScrollPositionAnchor. + + * page/FrameView.h: Removed lockedToAnchor(), setLockedToAnchor(), + and m_lockedToAnchor. Added maintainScrollPositionAtAnchor() and + m_maintainScrollPositionAnchor. + +2009-07-04 Sriram Yadavalli <sriram.yadavalli@nokia.com> + + Reviewed by Simon Hausmann. + + https://bugs.webkit.org/show_bug.cgi?id=26439 + + QtWebKit fails in loading www.nytimes.com in Windows/Linux + + QNetworkReplyHandler is ignoring content associated with 401 error. + This causes the XHR response handling to fail. + + Simon: Added also ProxyAuthenticationRequiredError, to handle the same + case when going through proxies, as suggested by Prasanth. + + * platform/network/qt/QNetworkReplyHandler.cpp: + (WebCore::QNetworkReplyHandler::finish): + +2009-07-10 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Holger Freyther. + + Enable HTML 5 Messaging to fix message channel Qt DRT failures in + fast/events. + + * WebCore.pro: + +2009-07-09 Roland Steiner <rolandsteiner@google.com> + + Reviewed by Maciej Stachowiak. + + added InlineBox::isLeaf() + firstLeafChild()/lastLeafChild() not virtual and not callable on InlineBox anymore. + firstLeafChild()/lastLeafChild() will no longer return a node outside of the given subtree. + Removed firstLeafChildAfterBox()/lastLeafChildBeforeBox() + Removed potentially quadratic behavior if all nodes before/after a given box are empty InlineFlowBoxes + + Currently, these methods are called on RootInlineBox objects only, so above changes should not have + any observable effect (only the removal of the square performance behavior could apply, + but the conditions for that are probably of a rather theoretical nature). + + * rendering/InlineBox.cpp: + (WebCore::InlineBox::nextLeafChild): + (WebCore::InlineBox::prevLeafChild): + * rendering/InlineBox.h: + (WebCore::InlineBox::isLeaf): + * rendering/InlineFlowBox.cpp: + (WebCore::InlineFlowBox::firstLeafChild): + (WebCore::InlineFlowBox::lastLeafChild): + * rendering/InlineFlowBox.h: + (WebCore::InlineFlowBox::firstChild): + (WebCore::InlineFlowBox::lastChild): + (WebCore::InlineFlowBox::isLeaf): + * rendering/RootInlineBox.cpp: + (WebCore::RootInlineBox::closestLeafChildForXPos): + +2009-07-09 Roland Steiner <rolandsteiner@google.com> + + Reviewed by Maciej Stachowiak. + + Added InlineBox::baselinePosition() and lineHeight() methods + (adapted remaining code accordingly to use those methods) + + No change in functionality. + + * rendering/InlineBox.h: + (WebCore::InlineBox::baselinePosition): + (WebCore::InlineBox::lineHeight): + * rendering/InlineFlowBox.cpp: + (WebCore::InlineFlowBox::adjustMaxAscentAndDescent): + (WebCore::InlineFlowBox::computeLogicalBoxHeights): + (WebCore::InlineFlowBox::placeBoxesVertically): + +2009-07-09 Oliver Hunt <oliver@apple.com> + + Reviewed by Maciej Stachowiak. + + Bug 27142 - canPlayType() should return empty string for unsupported content + <https://bugs.webkit.org/show_bug.cgi?id=27142> + + Return "" instead of "no" for unsupport media types. + + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::canPlayType): + +2009-07-09 Roland Steiner <rolandsteiner@google.com> + + Reviewed by Maciej Stachowiak. + + Implement the part of HTML5 spec that deals with parsing of <rp> and <rt> tags + in that their end tags are optional if followed by <rp>/<rt>. + + Also specify a new accessibility role "annotation" for <rp> and <rt>. + + Affected code parts are not enclosed in #IF ENABLE(RUBY), since the parsing + is not affected by whether ruby is rendered properly or not (in fact, it may + be more profound without ruby layouting, since the contents of <rp> are not hidden). + + Test: fast/ruby/parse-rp.html + + * accessibility/AccessibilityObject.h: + (WebCore::): + * accessibility/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::roleValue): + * html/HTMLElement.cpp: + (WebCore::HTMLElement::endTagRequirement): + (WebCore::HTMLElement::tagPriority): + (WebCore::inlineTagList): + * html/HTMLParser.cpp: + (WebCore::HTMLParser::rpCreateErrorCheck): + (WebCore::HTMLParser::rtCreateErrorCheck): + (WebCore::HTMLParser::getNode): + * html/HTMLParser.h: + * html/HTMLTagNames.in: + +2009-07-09 Dmitry Titov <dimich@chromium.org> + + Not reviewed, fix for previous commit. + + The change http://trac.webkit.org/changeset/45695 did not correctly + enabled GTL and QT build flags. This caused layout tests failure. + This is speculative fix for those failures. + + * GNUmakefile.am: added ENABLE_CHANNEL_MESSAGING flag. + * WebCore.pro: ditto. + * page/DOMWindow.idl: touched to cause recompile. + * workers/WorkerContext.idl: ditto. + +2009-07-09 Drew Wilson <atwilson@google.com> + + Reviewed by Alexey Proskuryakov. + + https://bugs.webkit.org/show_bug.cgi?id=26903 + + Turned on CHANNEL_MESSAGING by default because the MessageChannel API + is now implemented for Web Workers and is reasonably stable. + + Tests: fast/events/message-channel-gc-2.html + fast/events/message-channel-gc-3.html + fast/events/message-channel-gc-4.html + fast/events/message-channel-gc.html + fast/events/message-channel-listener-circular-ownership.html + fast/events/message-port-clone.html + fast/events/message-port-constructor-for-deleted-document.html + fast/events/message-port-deleted-document.html + fast/events/message-port-deleted-frame.html + fast/events/message-port-inactive-document.html + fast/events/message-port-no-wrapper.html + fast/events/message-port.html + fast/workers/worker-cloneport.html + fast/workers/worker-messageport-gc.html + fast/workers/worker-messageport.html + + * Configurations/FeatureDefines.xcconfig: Turned on ENABLE_CHANNEL_MESSAGING. + * WebCore/WebCore.vcproj/WebCoreCommon.vsprops: ditto. + * WebCore/WebCore.vcproj/build-generated-files.sh: ditto. + * WebCore/page/DOMWindow.idl: touch the file to cause re-generation of headers. + * WebCore/workers/WorkerContext.idl: ditto. + + +2009-07-09 Pierre d'Herbemont <pdherbemont@apple.com> + + Reviewed by Simon Fraser. + + Full page zoom breaks remaining and elapsed time display in the <video> controller. + https://bugs.webkit.org/show_bug.cgi?id=27123 + + We are changing the size of the time remaining and time elapsed field, to + automatically hide them, when the controller is too short. + + Because we toggle the size between 0 and the previous value of the + controller, we miss any width change that may occur during full page zoom, + and we fail to restore a correct width. + + This change fixes that problem by using a cloned style on which we + set the width to 0, and restoring the previous style when going back to + the normal width. + + We take care about properly using the cloned style or the pseudo style, + by overriding styleForElement(). + + * rendering/MediaControlElements.cpp: + (WebCore::MediaControlElement::styleForElement): + (WebCore::MediaControlElement::attach): + (WebCore::MediaControlElement::updateStyle): + (WebCore::MediaControlInputElement::styleForElement): + (WebCore::MediaControlInputElement::attach): + (WebCore::MediaControlInputElement::updateStyle): + (WebCore::MediaControlTimeDisplayElement::MediaControlTimeDisplayElement): + (WebCore::MediaControlTimeDisplayElement::styleForElement): + (WebCore::MediaControlTimeDisplayElement::setVisible): + * rendering/MediaControlElements.h: + * rendering/RenderMedia.cpp: + (WebCore::RenderMedia::shouldShowTimeDisplayControls): Make sure + we take in account the zoom level when deciding if we should hide the + ellapsed and remaining time. + +2009-07-09 Michael Nordman <michaeln@google.com> + + Reviewed by Darin Adler. + + Fix chromium build bustage due to Widget being a RefCounted class. + https://bugs.webkit.org/show_bug.cgi?id=27139 + + * platform/chromium/PopupMenuChromium.cpp: + * platform/chromium/PopupMenuChromium.h: + +2009-07-09 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Darin Adler. + + Bug 27130 - Need to implement ARIA role="toolbar" + https://bugs.webkit.org/show_bug.cgi?id=27130 + + Test: platform/mac/accessibility/aria-toolbar.html + + * accessibility/AccessibilityRenderObject.cpp: + (WebCore::RoleEntry::): + * accessibility/mac/AccessibilityObjectWrapper.mm: + (-[AccessibilityObjectWrapper roleDescription]): + +2009-07-09 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Darin Fisher. + + [Chromium] Upstream WebCore.gypi, the project file for Chromium build. + https://bugs.webkit.org/show_bug.cgi?id=27135 + + * WebCore.gypi: Added. + +2009-07-09 Jon Honeycutt <jhoneycutt@apple.com> + + A more robust fix for <rdar://problem/6930280> Reproducible crash at + USA Today photo gallery + + Reviewed by Steve Falkenburg. + + * plugins/win/PluginMessageThrottlerWin.cpp: + (WebCore::PluginMessageThrottlerWin::messageThrottleTimerFired): + Protect the PluginView from destruction before calling its window proc. + +2009-07-09 Jon Honeycutt <jhoneycutt@apple.com> + + <rdar://problem/6978804> WER #16: Repro Access Violation in + WebCore::PluginView::bindingInstance (1310178023) + + Reviewed by Darin Adler. + + * plugins/PluginView.cpp: + (WebCore::PluginView::bindingInstance): + Protect the PluginView from destruction before calling NPN_GetValue. If + the renderer for the PluginView was destroyed during the call, and the + PluginView's ref count is now 1, return null. + +2009-07-09 Jon Honeycutt <jhoneycutt@apple.com> + + Speculative fix for <rdar://problem/6991251> WER #13: Crash in + WebKit!WebCore::PluginView::performRequest+203 (1311461169) + + Reviewed by Darin Adler. + + * plugins/PluginView.cpp: + (WebCore::PluginView::performRequest): + Protect the PluginView from destruction before performing a load. + Removed some trailing whitespace. + +2009-07-09 Jon Honeycutt <jhoneycutt@apple.com> + + Build fix. + + * inspector/JavaScriptDebugServer.cpp: + (WebCore::JavaScriptDebugServer::setJavaScriptPaused): + +2009-07-09 Beth Dakin and Jon Honeycutt <bdakin@apple.com> + + Reviewed by Dave Hyatt. + + Make Widget RefCounted to fix or make fixable: + + <rdar://problem/7038831> REGRESSION (TOT): In Mail, a crash occurs + at WebCore::Widget::afterMouseDown() after clicking To Do's close + box + <rdar://problem/6978804> WER #16: Repro Access Violation in + WebCore::PluginView::bindingInstance (1310178023) + -and- + <rdar://problem/6991251> WER #13: Crash in WebKit! + WebCore::PluginView::performRequest+203 (1311461169) + + * loader/EmptyClients.h: + (WebCore::EmptyFrameLoaderClient::createPlugin): + Changed to return PassRefPtr + (WebCore::EmptyFrameLoaderClient::createJavaAppletWidget): + Ditto. + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::loadSubframe): + (WebCore::FrameLoader::loadPlugin): + Make the widget variable a RefPtr. Use .get() when passing it to + RenderPart::setWidget(). + (WebCore::FrameLoader::createJavaAppletWidget): + Make the widget variable a RefPtr. + + * loader/FrameLoader.h: + Changed the return type of createJavaAppletWidget(). + + * loader/FrameLoaderClient.h: + Change the return types of createPlugin() and + createJavaAppletWidget(). + + * page/Frame.cpp: + (WebCore::Frame::createView): + No need to call .get() since setWidget() takes a RefPtr. + + * page/FrameView.cpp: + (WebCore::FrameView::layoutIfNeededRecursive): + children() now returns a HashSet of RefPtrs. + + * page/FrameView.h: + Remove inheritance from RefCounted; we pick this up from ScrollView + through Widget. + + * platform/ScrollView.cpp: + (WebCore::ScrollView::addChild): + addChild() now takes a PassRefPtr and m_children now keeps a + HashSet of RefPtrs. + + * platform/ScrollView.h: + ScrollView constructor is now protected. + (WebCore::ScrollView::children): + m_children is now a HashSet of RefPtrs. + + * platform/Scrollbar.h: + Remove inheritance from RefCounted; we pick this up from ScrollView + through Widget. + + * platform/Widget.h: + Inherit from RefCounted. Cleaned up some whitespace. Make m_widget + a RefPtr. + + * plugins/PluginView.cpp: + (WebCore::PluginView::create): + Adopt the PluginView when returning it. + + * plugins/PluginView.h: + Changed create() to return a PassRefPtr. + + * rendering/RenderApplet.cpp: + Receive result in a RefPtr when calling createJavaAppletWidget(). + + * rendering/RenderPart.cpp: + (WebCore::RenderPart::setWidget): + setWidget() now takes a PassRefPtr. Also removed the manual ref of + FrameViews. This is handled by having m_widget be a RefPtr. Removed + deleteWidget(). + + * rendering/RenderPart.h: + Removed override of deleteWidget(). + + * rendering/RenderWidget.cpp: + (WebCore::RenderWidget::destroy): + (WebCore::RenderWidget::setWidget): + (WebCore::RenderWidget::paint): + (WebCore::RenderWidget::setOverlapTestResult): + (WebCore::RenderWidget::updateWidgetPosition): + Use .get(). + (WebCore::RenderWidget::clearWidget): + Don't call deleteWidget(). It was removed. + + * rendering/RenderWidget.h: + Removed deleteWidget(). Made m_widget a RefPtr. + (WebCore::RenderWidget::widget): + Use .get(). + +2009-07-09 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Darin Adler. + + Bug 27129 - AX: possible assertion for a non-native image in accessibility + https://bugs.webkit.org/show_bug.cgi?id=27129 + + It's possible for an image that is not really an image to assert, because its renderer + is turned into a RenderImage. + + Test: accessibility/non-native-image-crash.html + + * accessibility/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::accessibilityIsIgnored): + (WebCore::RoleEntry::): + * accessibility/mac/AccessibilityObjectWrapper.mm: + (-[AccessibilityObjectWrapper roleDescription]): + +2009-07-09 Simon Fraser <simon.fraser@apple.com> + + Build fix for SnowLeopard. + + Avoid using the contentsTransform methods if not on Leopard, because + we don't need to call them. + + * platform/graphics/mac/GraphicsLayerCA.mm: + (WebCore::GraphicsLayerCA::updateContentsTransform): + * platform/graphics/mac/WebLayer.mm: + (-[WebLayer setNeedsDisplayInRect:]): + * platform/graphics/mac/WebTiledLayer.mm: + (-[WebTiledLayer setNeedsDisplayInRect:]): + +2009-07-09 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dave Hyatt + + Improve the appearance of text in compositing layers when -[CALayer geometryFlipped] + is not available. + <rdar://problem/6120614> + + * platform/graphics/GraphicsLayer.h: + (WebCore::GraphicsLayer::setContentsOrientation): + (WebCore::GraphicsLayer::contentsOrientation): + * platform/graphics/GraphicsLayer.cpp: + (WebCore::GraphicsLayer::GraphicsLayer): + Add a m_contentsOrientation member and getter/setter to control whether + the contents of this layer have a transform applied to them before display. + + * platform/graphics/mac/GraphicsLayerCA.h: + New method to return the default contents orientation. + + * platform/graphics/mac/GraphicsLayerCA.mm: + (WebCore::flipTransform): + Convenience method to return a transform with a Y flip. + + (WebCore::GraphicsLayerCA::GraphicsLayerCA): + (WebCore::GraphicsLayerCA::setSize): + After the size changes we have to update the contentsTransform. + + (WebCore::GraphicsLayerCA::setGeometryOrientation): + (WebCore::GraphicsLayerCA::geometryOrientation): + If -setGeometryFlipped: is not available, use a children transform. + + (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): + Tiled layers have issues with flipped contentsTransform, so just use + top-down drawing for them. Call updateContentsTransform() to set the + new contents transform after swapping layers. + + (WebCore::GraphicsLayerCA::defaultContentsOrientation): + Use bottom-up when -geometryFlipped is not available, otherwise top-down. + + (WebCore::GraphicsLayerCA::updateContentsTransform): + Set the layer contents transform based on contentsOrientation(). + + (WebCore::GraphicsLayerCA::setContentsLayer): + We have to manually flip contents layers if we're not using -geometryFlipped. + + * platform/graphics/mac/WebLayer.h: + * platform/graphics/mac/WebLayer.mm: + Do early return if layerContents is nil. Flip the CTM if the layer has + bottom-up coordinates, so that CG sees a CTM with no flip. + Do the CGContextRestoreGState() after drawing the debug indicator. + + (-[WebLayer setNeedsDisplayInRect:]): + * platform/graphics/mac/WebTiledLayer.mm: + (-[WebTiledLayer setNeedsDisplayInRect:]): + Need to map the dirty rect through the contentsTransform. + +2009-07-09 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Geoff Garen. + + <rdar://problem/6921671> Visit counter shouldn't be incremented by redirects. + + Can't test this functionality with layout tests. + + * WebCore.base.exp: + * history/HistoryItem.cpp: + (WebCore::HistoryItem::recordVisitAtTime): + (WebCore::HistoryItem::visited): + * history/HistoryItem.h: + Only increase visit count if explicitly told to. Now, some visits change last access time, + but do not increase visit count. + +2009-07-09 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Simon Fraser. + + <rdar://problem/7046098> MediaControllerThemeQT requires QuickTime 7.6.3 + + Require QuickTime 7.6.3 or higher to enable the new media controller UI. + + * rendering/RenderThemeMac.mm: + (WebCore::mediaControllerTheme): + +2009-07-09 Sam Weinig <sam@webkit.org> + + Reviewed by Beth Dakin. + + Remove incorrect comment. + + * page/MouseEventWithHitTestResults.h: + +2009-07-09 Mads Ager <ager@chromium.org> + + Reviewed by Dimitri Glazkov. + + Update the V8 bindings codegenerator to use the RGBColor::create + method to handle refcounts for RGBColor objects correctly. + + * bindings/scripts/CodeGeneratorV8.pm: Use RGBColor::create to create RGBColor objects. + +2009-07-09 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Adele Peterson. + + Crash in RenderMedia::styleDidChange. + <rdar://problem/7044313> CrashTracer: quicklook crashed generating thumbnail for page with + media element (RenderMedia::styleDidChange + 115) + + Speculative fix for crash in styleDidChange. Null check controller elements before tell + them to update style. + + * rendering/RenderMedia.cpp: + (WebCore::RenderMedia::styleDidChange): + +2009-07-09 Adam Barth <abarth@webkit.org> + + Reviewed by Dimitri Glazkov. + + [V8] Move V8DOMWrapper to its own file + https://bugs.webkit.org/show_bug.cgi?id=27121 + + * bindings/v8/V8DOMWrapper.cpp: Added. + (WebCore::GetToStringName): + (WebCore::ConstructorToString): + (WebCore::V8DOMWrapper::convertSVGElementInstanceToV8Object): + (WebCore::V8DOMWrapper::convertSVGObjectWithContextToV8Object): + (WebCore::V8DOMWrapper::domObjectHasJSWrapper): + (WebCore::V8DOMWrapper::setJSWrapperForDOMObject): + (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject): + (WebCore::V8DOMWrapper::setJSWrapperForDOMNode): + (WebCore::V8DOMWrapper::getTemplate): + (WebCore::V8DOMWrapper::convertToV8Object): + (WebCore::V8DOMWrapper::setHiddenWindowReference): + (WebCore::V8DOMWrapper::domWrapperType): + (WebCore::V8DOMWrapper::convertToNativeObjectImpl): + (WebCore::V8DOMWrapper::convertToSVGPODTypeImpl): + (WebCore::V8DOMWrapper::lookupDOMWrapper): + (WebCore::V8DOMWrapper::convertDOMWrapperToNodeHelper): + (WebCore::V8DOMWrapper::wrapNativeNodeFilter): + (WebCore::V8DOMWrapper::instantiateV8Object): + (WebCore::V8DOMWrapper::setDOMWrapper): + (WebCore::V8DOMWrapper::maybeDOMWrapper): + (WebCore::V8DOMWrapper::isDOMEventWrapper): + (WebCore::V8DOMWrapper::isWrapperOfType): + (WebCore::V8DOMWrapper::htmlElementType): + (WebCore::V8DOMWrapper::svgElementType): + (WebCore::V8DOMWrapper::convertEventToV8Object): + (WebCore::): + (WebCore::V8DOMWrapper::convertNodeToV8Object): + (WebCore::V8DOMWrapper::convertEventTargetToV8Object): + (WebCore::V8DOMWrapper::convertEventListenerToV8Object): + (WebCore::V8DOMWrapper::convertDOMImplementationToV8Object): + (WebCore::V8DOMWrapper::convertStyleSheetToV8Object): + (WebCore::V8DOMWrapper::convertCSSValueToV8Object): + (WebCore::V8DOMWrapper::convertCSSRuleToV8Object): + (WebCore::V8DOMWrapper::convertWindowToV8Object): + * bindings/v8/V8DOMWrapper.h: Added. + (WebCore::V8DOMWrapper::convertDOMWrapperToNative): + (WebCore::V8DOMWrapper::wrapCPointer): + (WebCore::V8DOMWrapper::extractCPointer): + (WebCore::V8DOMWrapper::convertDOMWrapperToNode): + (WebCore::V8DOMWrapper::convertToV8Object): + (WebCore::V8DOMWrapper::convertToNativeObject): + (WebCore::V8DOMWrapper::convertToNativeEvent): + (WebCore::V8DOMWrapper::extractCPointerImpl): + (WebCore::V8DOMWrapper::instantiateV8Object): + * bindings/v8/V8Proxy.cpp: + * bindings/v8/V8Proxy.h: + +2009-07-09 David Hyatt <hyatt@apple.com> + + Reviewed by Adele Peterson. + + Crash in setFocusedFrame. + <rdar://7032869> Crashing in setFocusedFrame on blogger.com. + + Speculative fix for crasher in setFocusedFrame. Make sure to ref both frames and fire + the events only after the local member has been updated. + + * page/FocusController.cpp: + (WebCore::FocusController::setFocusedFrame): + +2009-07-09 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Adele Peterson. + + Possible crashes when mouse clicks not dispatched because range input destroyed while + thumb is being dragged (e.g. scrub to end of movie) + <rdar://problem/7037494> + https://bugs.webkit.org/show_bug.cgi?id=27101 + + Some shadow nodes "capture" all mouse events from mouseDown to mouseUp so they continue to + get mouse events even when the mouse is moved outside of the node. This is done by putting + EventHandler into a mode where it sends all mouse events to the node regardless of the + actual mouse position. The mode is set on mouseDown and cleared on mouseUp but if the + node is deleted while in this mode, the mouseUp is never sent and EventHandler continues + to try to send events to the deleted node. This sometimes results in a crash, and sometimes + in a page that doesn't respond to click events. + + Tests: fast/forms/search-delete-while-cancel-button-clicked.html + fast/forms/slider-delete-while-dragging-thumb.html + media/audio-delete-while-slider-thumb-clicked.html + media/audio-delete-while-step-button-clicked.html + + * rendering/MediaControlElements.cpp: + (WebCore::MediaControlSeekButtonElement::detach): + New, call setCapturingMouseEventsNode if capturing mouse events. + * rendering/MediaControlElements.h: + Declare detach(). + + * rendering/RenderSlider.cpp: + (WebCore::SliderThumbElement::detach): + New, call setCapturingMouseEventsNode if capturing mouse events. + + * rendering/TextControlInnerElements.cpp: + (WebCore::SearchFieldCancelButtonElement::detach): + New, call setCapturingMouseEventsNode if capturing mouse events. + * rendering/TextControlInnerElements.h: + Declare detach(). + +2009-07-09 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Dimitri Glazkov. + + Enter the Frame's context before creating new objects in setContextDebugId. + + https://bugs.webkit.org/show_bug.cgi?id=27112 + + * bindings/v8/V8Proxy.cpp: + (WebCore::V8Proxy::setContextDebugId): + +2009-07-09 Simon Hausmann <hausmann@webkit.org> + + Fix the Qt build. + + * WebCore.pro: Add new storage impl files to the build. + +2009-07-08 Adam Barth <abarth@webkit.org> + + Rubber stamped by Eric Seidel. + + [V8] Move DOM wrapper functions in V8Proxy to V8DOMWrapper + https://bugs.webkit.org/show_bug.cgi?id=27107 + + This patch is just renaming. Code motion will occur next. + + * bindings/scripts/CodeGeneratorV8.pm: + * bindings/v8/ScriptController.cpp: + (WebCore::ScriptController::processingUserGesture): + (WebCore::createScriptObject): + (WebCore::ScriptController::createScriptObjectForPluginElement): + * bindings/v8/ScriptObject.cpp: + (WebCore::ScriptGlobalObject::set): + * bindings/v8/ScriptObjectQuarantine.cpp: + (WebCore::getQuarantinedScriptObject): + * bindings/v8/V8AbstractEventListener.cpp: + (WebCore::V8AbstractEventListener::handleEvent): + (WebCore::V8AbstractEventListener::getReceiverObject): + * bindings/v8/V8Collection.cpp: + (WebCore::toOptionsCollectionSetter): + * bindings/v8/V8Collection.h: + (WebCore::getV8Object): + (WebCore::getNamedPropertyOfCollection): + (WebCore::nodeCollectionNamedPropertyGetter): + (WebCore::getIndexedPropertyOfCollection): + (WebCore::nodeCollectionIndexedPropertyGetter): + (WebCore::nodeCollectionIndexedPropertyEnumerator): + (WebCore::collectionIndexedPropertyEnumerator): + (WebCore::collectionStringOrNullIndexedPropertyGetter): + * bindings/v8/V8DOMMap.cpp: + (WebCore::DOMData::handleWeakObject): + (WebCore::DOMData::removeObjectsFromWrapperMap): + * bindings/v8/V8GCController.cpp: + (WebCore::enumerateDOMObjectMap): + (WebCore::DOMObjectVisitor::visitDOMWrapper): + (WebCore::GCPrologueVisitor::visitDOMWrapper): + (WebCore::GCEpilogueVisitor::visitDOMWrapper): + * bindings/v8/V8Helpers.cpp: + (WebCore::wrapNPObject): + * bindings/v8/V8NodeFilterCondition.cpp: + (WebCore::V8NodeFilterCondition::acceptNode): + * bindings/v8/V8Proxy.cpp: + (WebCore::V8DOMWrapper::convertSVGElementInstanceToV8Object): + (WebCore::V8DOMWrapper::convertSVGObjectWithContextToV8Object): + (WebCore::V8DOMWrapper::domObjectHasJSWrapper): + (WebCore::V8DOMWrapper::setJSWrapperForDOMObject): + (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject): + (WebCore::V8DOMWrapper::setJSWrapperForDOMNode): + (WebCore::V8Proxy::evaluateInNewContext): + (WebCore::V8Proxy::getConstructor): + (WebCore::V8DOMWrapper::getTemplate): + (WebCore::V8Proxy::retrieveWindow): + (WebCore::V8Proxy::updateDocumentWrapperCache): + (WebCore::V8Proxy::clearForNavigation): + (WebCore::V8Proxy::installDOMWindow): + (WebCore::setDOMExceptionHelper): + (WebCore::V8DOMWrapper::convertToV8Object): + (WebCore::V8DOMWrapper::setHiddenWindowReference): + (WebCore::V8DOMWrapper::domWrapperType): + (WebCore::V8DOMWrapper::convertToNativeObjectImpl): + (WebCore::V8DOMWrapper::convertToSVGPODTypeImpl): + (WebCore::V8DOMWrapper::lookupDOMWrapper): + (WebCore::V8DOMWrapper::convertDOMWrapperToNodeHelper): + (WebCore::V8DOMWrapper::wrapNativeNodeFilter): + (WebCore::V8DOMWrapper::instantiateV8Object): + (WebCore::V8DOMWrapper::setDOMWrapper): + (WebCore::V8DOMWrapper::maybeDOMWrapper): + (WebCore::V8DOMWrapper::isDOMEventWrapper): + (WebCore::V8DOMWrapper::isWrapperOfType): + (WebCore::V8DOMWrapper::htmlElementType): + (WebCore::V8DOMWrapper::svgElementType): + (WebCore::V8DOMWrapper::convertEventToV8Object): + (WebCore::V8DOMWrapper::convertNodeToV8Object): + (WebCore::V8DOMWrapper::convertEventTargetToV8Object): + (WebCore::V8DOMWrapper::convertEventListenerToV8Object): + (WebCore::V8DOMWrapper::convertDOMImplementationToV8Object): + (WebCore::V8DOMWrapper::convertStyleSheetToV8Object): + (WebCore::V8DOMWrapper::convertCSSValueToV8Object): + (WebCore::V8DOMWrapper::convertCSSRuleToV8Object): + (WebCore::V8DOMWrapper::convertWindowToV8Object): + (WebCore::V8Proxy::bindJsObjectToWindow): + * bindings/v8/V8Proxy.h: + (WebCore::V8DOMWrapper::convertDOMWrapperToNative): + (WebCore::V8DOMWrapper::wrapCPointer): + (WebCore::V8DOMWrapper::extractCPointer): + (WebCore::V8DOMWrapper::convertDOMWrapperToNode): + (WebCore::V8DOMWrapper::convertToV8Object): + (WebCore::V8DOMWrapper::convertToNativeObject): + (WebCore::V8DOMWrapper::convertToNativeEvent): + (WebCore::V8DOMWrapper::extractCPointerImpl): + (WebCore::V8DOMWrapper::instantiateV8Object): + (WebCore::V8Proxy::constructDOMObject): + (WebCore::toV8): + * bindings/v8/V8SVGPODTypeWrapper.h: + (WebCore::V8SVGPODTypeUtil::toSVGPODType): + * bindings/v8/WorkerContextExecutionProxy.cpp: + (WebCore::WorkerContextExecutionProxy::retrieve): + (WebCore::WorkerContextExecutionProxy::initContextIfNeeded): + (WebCore::WorkerContextExecutionProxy::GetConstructor): + (WebCore::WorkerContextExecutionProxy::ToV8Object): + (WebCore::WorkerContextExecutionProxy::EventToV8Object): + (WebCore::WorkerContextExecutionProxy::toV8): + * bindings/v8/custom/V8AttrCustom.cpp: + (WebCore::ACCESSOR_SETTER): + * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp: + (WebCore::NAMED_PROPERTY_GETTER): + (WebCore::NAMED_PROPERTY_SETTER): + * bindings/v8/custom/V8CanvasPixelArrayCustom.cpp: + (WebCore::INDEXED_PROPERTY_GETTER): + (WebCore::INDEXED_PROPERTY_SETTER): + * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp: + (WebCore::toV8): + (WebCore::toCanvasStyle): + (WebCore::ACCESSOR_GETTER): + (WebCore::ACCESSOR_SETTER): + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8ClientRectListCustom.cpp: + (WebCore::INDEXED_PROPERTY_GETTER): + * bindings/v8/custom/V8ClipboardCustom.cpp: + (WebCore::ACCESSOR_GETTER): + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8CustomBinding.cpp: + (WebCore::ACCESSOR_GETTER): + (WebCore::INDEXED_ACCESS_CHECK): + (WebCore::NAMED_ACCESS_CHECK): + (WebCore::V8Custom::GetTargetFrame): + * bindings/v8/custom/V8CustomSQLStatementCallback.cpp: + (WebCore::V8CustomSQLStatementCallback::handleEvent): + * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp: + (WebCore::V8CustomSQLStatementErrorCallback::handleEvent): + * bindings/v8/custom/V8CustomSQLTransactionCallback.cpp: + (WebCore::V8CustomSQLTransactionCallback::handleEvent): + * bindings/v8/custom/V8CustomSQLTransactionErrorCallback.cpp: + (WebCore::V8CustomSQLTransactionErrorCallback::handleEvent): + * bindings/v8/custom/V8DOMWindowCustom.cpp: + (WebCore::V8Custom::WindowSetTimeoutImpl): + (WebCore::ACCESSOR_SETTER): + (WebCore::CALLBACK_FUNC_DECL): + (WebCore::ACCESSOR_GETTER): + (WebCore::INDEXED_PROPERTY_GETTER): + (WebCore::NAMED_PROPERTY_GETTER): + (WebCore::V8Custom::ClearTimeoutImpl): + (WebCore::NAMED_ACCESS_CHECK): + (WebCore::INDEXED_ACCESS_CHECK): + * bindings/v8/custom/V8DatabaseCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8DocumentCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8DocumentLocationCustom.cpp: + (WebCore::ACCESSOR_GETTER): + (WebCore::ACCESSOR_SETTER): + * bindings/v8/custom/V8ElementCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + (WebCore::ACCESSOR_SETTER): + (WebCore::ACCESSOR_GETTER): + * bindings/v8/custom/V8EventCustom.cpp: + (WebCore::ACCESSOR_SETTER): + (WebCore::ACCESSOR_GETTER): + * bindings/v8/custom/V8HTMLAudioElementConstructor.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8HTMLCollectionCustom.cpp: + (WebCore::getNamedItems): + (WebCore::getItem): + (WebCore::NAMED_PROPERTY_GETTER): + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8HTMLDocumentCustom.cpp: + (WebCore::NAMED_PROPERTY_GETTER): + (WebCore::CALLBACK_FUNC_DECL): + (WebCore::ACCESSOR_GETTER): + * bindings/v8/custom/V8HTMLFormElementCustom.cpp: + (WebCore::INDEXED_PROPERTY_GETTER): + (WebCore::NAMED_PROPERTY_GETTER): + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8HTMLFrameElementCustom.cpp: + (WebCore::ACCESSOR_SETTER): + * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp: + (WebCore::NAMED_PROPERTY_GETTER): + * bindings/v8/custom/V8HTMLIFrameElementCustom.cpp: + (WebCore::ACCESSOR_SETTER): + * bindings/v8/custom/V8HTMLImageElementConstructor.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8HTMLInputElementCustom.cpp: + (WebCore::ACCESSOR_GETTER): + (WebCore::ACCESSOR_SETTER): + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8HTMLOptionElementConstructor.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + (WebCore::ACCESSOR_GETTER): + (WebCore::ACCESSOR_SETTER): + (WebCore::INDEXED_PROPERTY_GETTER): + (WebCore::INDEXED_PROPERTY_SETTER): + * bindings/v8/custom/V8HTMLPlugInElementCustom.cpp: + (WebCore::NAMED_PROPERTY_GETTER): + (WebCore::NAMED_PROPERTY_SETTER): + (WebCore::INDEXED_PROPERTY_GETTER): + (WebCore::INDEXED_PROPERTY_SETTER): + * bindings/v8/custom/V8HTMLSelectElementCollectionCustom.cpp: + (WebCore::NAMED_PROPERTY_GETTER): + (WebCore::INDEXED_PROPERTY_SETTER): + * bindings/v8/custom/V8HTMLSelectElementCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + (WebCore::removeElement): + * bindings/v8/custom/V8InspectorControllerCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8LocationCustom.cpp: + (WebCore::ACCESSOR_SETTER): + (WebCore::ACCESSOR_GETTER): + (WebCore::CALLBACK_FUNC_DECL): + (WebCore::INDEXED_ACCESS_CHECK): + (WebCore::NAMED_ACCESS_CHECK): + * bindings/v8/custom/V8MessageChannelConstructor.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8MessagePortCustom.cpp: + (WebCore::ACCESSOR_GETTER): + (WebCore::ACCESSOR_SETTER): + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8NamedNodeMapCustom.cpp: + (WebCore::INDEXED_PROPERTY_GETTER): + (WebCore::NAMED_PROPERTY_GETTER): + * bindings/v8/custom/V8NavigatorCustom.cpp: + (WebCore::ACCESSOR_GETTER): + * bindings/v8/custom/V8NodeCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8NodeIteratorCustom.cpp: + (WebCore::toV8): + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8NodeListCustom.cpp: + (WebCore::NAMED_PROPERTY_GETTER): + * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8SQLTransactionCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8SVGElementInstanceCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8SVGLengthCustom.cpp: + (WebCore::ACCESSOR_GETTER): + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8SVGMatrixCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8StorageCustom.cpp: + (WebCore::V8Custom::v8StorageNamedPropertyEnumerator): + (WebCore::storageGetter): + (WebCore::storageSetter): + (WebCore::storageDeleter): + * bindings/v8/custom/V8StyleSheetListCustom.cpp: + (WebCore::NAMED_PROPERTY_GETTER): + * bindings/v8/custom/V8TreeWalkerCustom.cpp: + (WebCore::toV8): + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8WebKitCSSMatrixConstructor.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8WorkerContextCustom.cpp: + (WebCore::ACCESSOR_GETTER): + (WebCore::ACCESSOR_SETTER): + (WebCore::SetTimeoutOrInterval): + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8WorkerCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + (WebCore::ACCESSOR_GETTER): + (WebCore::ACCESSOR_SETTER): + * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8XMLHttpRequestCustom.cpp: + (WebCore::ACCESSOR_GETTER): + (WebCore::ACCESSOR_SETTER): + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp: + (WebCore::ACCESSOR_GETTER): + (WebCore::ACCESSOR_SETTER): + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8XSLTProcessorCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + +2009-07-08 Pierre d'Herbemont <pdherbemont@apple.com> + + Reviewed by Simon Fraser. + + Make sure we can click outside the slider thumb and start dragging. + https://bugs.webkit.org/show_bug.cgi?id=26229 + + Previously we were assuming that if the thumb hasn't been clicked, we + wouldn't issue any value change upon dragging. + + We need to handle the two different cases: + - Clicked in the thumb, we need to make sure the cursor is always pointing + the same slider thumb point. + - Clicked outside, the cursor should always be pointing to the center of + the thumb. + + For simplicity, we don't remember the original point of the mouse down, + but a vector between that point and the thumb. + + * rendering/RenderSlider.cpp: + (WebCore::SliderThumbElement::SliderThumbElement): + (WebCore::SliderThumbElement::defaultEventHandler): + (WebCore::RenderSlider::mouseEventVectorToThumb): Utility function. + * rendering/RenderSlider.h: + +2009-07-08 Pierre d'Herbemont <pdherbemont@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=27100 + <rdar://problem/7042621> + + Don't display "loading" in the <video> controller when + there is no src specified. + + * rendering/MediaControlElements.cpp: + (WebCore::MediaControlStatusDisplayElement::update): The only + way to find out if we have an element is currentSrc(). networkState() + will always report LOADING according to the spec. + +2009-07-08 Adam Barth <abarth@webkit.org> + + Reviewed by Eric Seidel. + + [V8] Move V8GCController functions to their own file + https://bugs.webkit.org/show_bug.cgi?id=27102 + + * bindings/v8/V8GCController.cpp: Added. + * bindings/v8/V8GCController.h: Added. + * bindings/v8/V8Proxy.cpp: + * bindings/v8/V8Proxy.h: + +2009-07-08 Jeremy Orlow <jorlow@chromium.org> + + Reviewed by Darin Fisher. + + Split StorageArea and StorageNamespace into an interface and implementation. + https://bugs.webkit.org/show_bug.cgi?id=27072 + + I need to split StorageNamespace and StorageArea into an interface and + implementation. In a later patch, I'll implement a proxy interface + that'll run inside the Chromium renderer process. + + Additionally, fix the alphabetical ordering of files I recently added + in the project files. + + This is a continuation of other refactoring work: + https://bugs.webkit.org/show_bug.cgi?id=25376 + + * GNUmakefile.am: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * WebCoreSources.bkl: + * storage/StorageArea.cpp: + (WebCore::StorageArea::create): + * storage/StorageArea.h: + (WebCore::StorageArea::~StorageArea): + * storage/StorageAreaImpl.cpp: Copied from WebCore/storage/StorageArea.cpp. + (WebCore::StorageAreaImpl::create): + (WebCore::StorageAreaImpl::~StorageAreaImpl): + (WebCore::StorageAreaImpl::StorageAreaImpl): + (WebCore::StorageAreaImpl::copy): + (WebCore::StorageAreaImpl::length): + (WebCore::StorageAreaImpl::key): + (WebCore::StorageAreaImpl::getItem): + (WebCore::StorageAreaImpl::setItem): + (WebCore::StorageAreaImpl::removeItem): + (WebCore::StorageAreaImpl::clear): + (WebCore::StorageAreaImpl::contains): + (WebCore::StorageAreaImpl::importItem): + (WebCore::StorageAreaImpl::securityOrigin): + (WebCore::StorageAreaImpl::close): + (WebCore::StorageAreaImpl::blockUntilImportComplete): + (WebCore::StorageAreaImpl::dispatchStorageEvent): + * storage/StorageAreaImpl.h: Copied from WebCore/storage/StorageArea.h. + * storage/StorageAreaSync.h: + * storage/StorageNamespace.cpp: + (WebCore::StorageNamespace::localStorageNamespace): + (WebCore::StorageNamespace::sessionStorageNamespace): + * storage/StorageNamespace.h: + (WebCore::StorageNamespace::~StorageNamespace): + * storage/StorageNamespaceImpl.cpp: Copied from WebCore/storage/StorageNamespace.cpp. + (WebCore::StorageNamespaceImpl::localStorageNamespace): + (WebCore::StorageNamespaceImpl::sessionStorageNamespace): + (WebCore::StorageNamespaceImpl::StorageNamespaceImpl): + (WebCore::StorageNamespaceImpl::~StorageNamespaceImpl): + (WebCore::StorageNamespaceImpl::copy): + (WebCore::StorageNamespaceImpl::storageArea): + (WebCore::StorageNamespaceImpl::close): + * storage/StorageNamespaceImpl.h: Copied from WebCore/storage/StorageNamespace.h. + +2009-07-08 Adam Barth <abarth@webkit.org> + + Reviewed by Eric Seidel. + + [V8] Move garbage collector related functions from V8Proxy to V8GCController + https://bugs.webkit.org/show_bug.cgi?id=26967 + + This patch just moves the functions around in V8Proxy. We'll actually + move them to a separate file in another patch. + + * bindings/v8/NPV8Object.cpp: + (freeV8NPObject): + * bindings/v8/ScheduledAction.cpp: + (WebCore::ScheduledAction::ScheduledAction): + (WebCore::ScheduledAction::~ScheduledAction): + * bindings/v8/ScriptController.cpp: + (WebCore::ScriptController::gcProtectJSWrapper): + (WebCore::ScriptController::gcUnprotectJSWrapper): + * bindings/v8/ScriptInstance.cpp: + (WebCore::V8ScriptInstance::clear): + (WebCore::V8ScriptInstance::set): + * bindings/v8/ScriptValue.h: + (WebCore::ScriptValue::ScriptValue): + (WebCore::ScriptValue::operator=): + (WebCore::ScriptValue::clear): + * bindings/v8/V8AbstractEventListener.cpp: + (WebCore::V8AbstractEventListener::disposeListenerObject): + * bindings/v8/V8LazyEventListener.cpp: + (WebCore::V8LazyEventListener::~V8LazyEventListener): + (WebCore::V8LazyEventListener::getListenerFunction): + (WebCore::V8LazyEventListener::getWrappedListenerFunction): + * bindings/v8/V8NodeFilterCondition.cpp: + (WebCore::V8NodeFilterCondition::V8NodeFilterCondition): + (WebCore::V8NodeFilterCondition::~V8NodeFilterCondition): + * bindings/v8/V8Proxy.cpp: + (WebCore::V8GCController::registerGlobalHandle): + (WebCore::V8GCController::unregisterGlobalHandle): + (WebCore::V8GCController::gcProtect): + (WebCore::V8GCController::gcUnprotect): + (WebCore::V8Proxy::destroyGlobal): + (WebCore::V8Proxy::updateDocumentWrapper): + (WebCore::V8Proxy::clearDocumentWrapper): + (WebCore::V8Proxy::disposeContextHandles): + (WebCore::V8Proxy::initContextIfNeeded): + * bindings/v8/V8Proxy.h: + (WebCore::): + (WebCore::GlobalHandleInfo::GlobalHandleInfo): + * bindings/v8/custom/V8CustomEventListener.cpp: + (WebCore::V8EventListener::V8EventListener): + +2009-07-08 Daniel Bates <dbates@intudata.com> + + Reviewed by Adam Barth. + + https://bugs.webkit.org/show_bug.cgi?id=26918 + + Prevents injection of HTML Base tag. + + Tests: http/tests/security/xssAuditor/base-href-control-char.html + http/tests/security/xssAuditor/base-href-null-char.html + http/tests/security/xssAuditor/base-href-safe.html + http/tests/security/xssAuditor/base-href-safe2.html + http/tests/security/xssAuditor/base-href-scheme-relative.html + http/tests/security/xssAuditor/base-href.html + + * html/HTMLBaseElement.cpp: + (WebCore::HTMLBaseElement::parseMappedAttribute): + (WebCore::HTMLBaseElement::process): Modified to call XSSAuditor::canSetBaseElementURL + to determine if it is safe to use base element URL. + * html/HTMLBaseElement.h: Added field m_hrefAttrValue to store unparsed base element URL. + * page/XSSAuditor.cpp: + (WebCore::XSSAuditor::canSetBaseElementURL): + * page/XSSAuditor.h: + +2009-07-08 Nate Chapin <japhet@chromium.org> + + Reviewed by Dimitri Glazkov. + + Upstream V8 npruntime bindings. + + https://bugs.webkit.org/show_bug.cgi?id=27094 + + * bindings/v8/npruntime.cpp: Upstreamed from src.chromium.org. + (StringKey::operator==): + (StringKey::StringKeyHash::hash): + (StringKey::StringKeyHash::equal): + (StringKeyHashTraits::constructDeletedValue): + (StringKeyHashTraits::isDeletedValue): + (getStringIdentifierMap): + (getIntIdentifierMap): + * bindings/v8/npruntime_impl.h: Upstreamed from src.chromium.org. + * bindings/v8/npruntime_internal.h: Upstreamed from src.chromium.org. + * bindings/v8/npruntime_priv.h: Upstreamed from src.chromium.org. + +2009-07-08 Dumitru Daniliuc <dumi@chromium.org> + + Reviewed by Darin Fisher. + + Extending the PlatformFileHandle definition from PLATFORM(WIN) to + PLATFORM(WIN_OS) + + https://bugs.webkit.org/show_bug.cgi?id=27013 + + * platform/FileSystem.h: + +2009-07-08 Daniel Bates <dbates@intudata.com> + + Reviewed by Adam Barth. + + https://bugs.webkit.org/show_bug.cgi?id=27071 + + Resolves issue when HTTP parameters contain null- and non-null-control- characters. + + Tests: http/tests/security/xssAuditor/anchor-url-dom-write-location-inline-event-null-char.html + http/tests/security/xssAuditor/embed-tag-control-char.html + http/tests/security/xssAuditor/embed-tag-null-char.html + http/tests/security/xssAuditor/embed-tag.html + http/tests/security/xssAuditor/link-onclick-control-char.html + http/tests/security/xssAuditor/link-onclick-null-char.html + http/tests/security/xssAuditor/object-embed-tag-control-char.html + http/tests/security/xssAuditor/object-embed-tag-null-char.html + http/tests/security/xssAuditor/object-embed-tag.html + http/tests/security/xssAuditor/object-tag.html + http/tests/security/xssAuditor/script-tag-post-control-char.html + http/tests/security/xssAuditor/script-tag-post-null-char.html + http/tests/security/xssAuditor/script-tag-with-source-control-char.html + http/tests/security/xssAuditor/script-tag-with-source-null-char.html + + * page/XSSAuditor.cpp: + (WebCore::isNonNullControlCharacter): Called by XSSAuditor::decodeURL. + (WebCore::XSSAuditor::canEvaluate): + (WebCore::XSSAuditor::canCreateInlineEventListener): + (WebCore::XSSAuditor::canLoadObject): + (WebCore::XSSAuditor::decodeURL): Added parameters matchNullCharacters, + and matchNonNullControlCharacters. + (WebCore::XSSAuditor::findInRequest): Added parameters matchNullCharacters, + and matchNonNullControlCharacters. + * page/XSSAuditor.h: + +2009-07-08 Marc-Antoine Ruel <maruel@chromium.org> + + Reviewed by Dimitri Glazkov. + + Add DerivesSourcesAllInOne.cpp to help with release windows compilation. + https://bugs.webkit.org/show_bug.cgi?id=27093 + + This is specific for v8, no change in behavior. + + * bindings/v8/DerivedSourcesAllInOne.cpp: Added. + +2009-07-08 Pierre d'Herbemont <pdherbemont@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=27086 + + Make sure the Media controller doesn't fade in for no reason. + This is happening because a update() call to the controller + panel may reset the opacity to 1.0, given that it reloads the + style. + + We also add a different fade in and fade out time to soften + the fade out effect. + + No test case because this depends on how the movie is loaded. + + * rendering/RenderMedia.cpp: + (WebCore::RenderMedia::RenderMedia): + (WebCore::RenderMedia::updateControls): + (WebCore::RenderMedia::updateControlVisibility): Simplify + , and make sure we stop the timer if there is no animation + to do. + (WebCore::RenderMedia::opacityAnimationTimerFired): + * rendering/RenderMedia.h: + +2009-07-08 David Kilzer <ddkilzer@apple.com> + + Bug 27081: Wrap RunLoopTimerCF.cpp in PLATFORM(MAC) && HAVE(RUNLOOP_TIMER) + + <https://bugs.webkit.org/show_bug.cgi?id=27081> + + Reviewed by Timothy Hatcher. + + * platform/cf/RunLoopTimerCF.cpp: This code is only used on + Mac OS X when HAVE(RUNLOOP_TIMER) is enabled, so wrap the code + in that macro as well. + +2009-07-08 Greg Bolsinga <bolsinga@apple.com> + + Reviewed by Darin Adler. + + Add -[WebView _isProcessingUserGesture] + https://bugs.webkit.org/show_bug.cgi?id=27084 + + Rename FrameLoader::userGestureHint() to FrameLoader::isProcessingUserGesture() + for clarity. + + * WebCore.base.exp: Add WebCore::FrameLoader::isProcessingUserGesture() + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::processingUserGesture): + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::requestFrame): + (WebCore::FrameLoader::isProcessingUserGesture): + * loader/FrameLoader.h: + +2009-07-08 Alexey Proskuryakov <ap@webkit.org> + + Reviewed (an earlier version) by Geoff Garen. + + https://bugs.webkit.org/show_bug.cgi?id=27090 + Remove lockBackForwardList argument from HTMLFormElement::submit() + + No change in behavior, so no tests. + + * bindings/js/JSHTMLFormElementCustom.cpp: + (WebCore::JSHTMLFormElement::submit): + * html/HTMLFormElement.cpp: + (WebCore::HTMLFormElement::submit): + * html/HTMLFormElement.h: + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::submitForm): + (WebCore::FrameLoader::scheduleFormSubmission): + * loader/FrameLoader.h: + Don't pass lockBackForwardList around when it's known to be false. + +2009-07-08 Marc-Antoine Ruel <maruel@chromium.org> + + Reviewed by Adam Barth. + + Fix V8 idl codegen to use unique constant names + <https://bugs.webkit.org/show_bug.cgi?id=27089> + + Embed the interface name in the global constant names so coagulating all + the .cc files into one compile unit works with V8 bindings. + + Nothing added; Still compiles and pass tests. + + * bindings/scripts/CodeGeneratorV8.pm: + +2009-07-08 Brent Fulgham <bfulgham@webkit.org> + + Build fix: Add missing #includes for Windows (cURL) build. + The <winsock2.h> and <windows.h> headers were not being + included in Windows cURL builds. + + * platform/network/ResourceHandleInternal.h: + * platform/network/curl/ResourceHandleManager.h: + +2009-07-08 Shinichiro Hamaji <hamaji@chromium.org> + + Reviewed by David Kilzer. + + WebKit needs a style linting tool + https://bugs.webkit.org/show_bug.cgi?id=25884 + + Fix bunch of style issues in WebCore/rendering. + This patch is created to demonstrate cpplint.py. + + No testcase because it's just a style fixes. + + * rendering/AutoTableLayout.cpp: + (WebCore::AutoTableLayout::recalcColumn): + (WebCore::AutoTableLayout::layout): + * rendering/InlineFlowBox.cpp: + (WebCore::InlineFlowBox::placeEllipsisBox): + * rendering/InlineTextBox.cpp: + (WebCore::InlineTextBox::paintTextMatchMarker): + * rendering/MediaControlElements.cpp: + (WebCore::MediaControlTimelineElement::defaultEventHandler): + * rendering/MediaControlElements.h: + * rendering/RenderArena.cpp: + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::startDelayUpdateScrollInfo): + (WebCore::RenderBlock::finishDelayUpdateScrollInfo): + (WebCore::RenderBlock::updateScrollInfoAfterLayout): + (WebCore::RenderBlock::positionNewFloats): + (WebCore::RenderBlock::newLine): + (WebCore::RenderBlock::floatBottom): + (WebCore::RenderBlock::leftBottom): + (WebCore::RenderBlock::rightBottom): + * rendering/RenderBox.cpp: + (WebCore::RenderBox::calcReplacedWidthUsing): + * rendering/RenderFieldset.cpp: + (WebCore::RenderFieldset::layoutLegend): + * rendering/RenderFlexibleBox.cpp: + (WebCore::FlexBoxIterator::FlexBoxIterator): + (WebCore::FlexBoxIterator::reset): + (WebCore::FlexBoxIterator::first): + (WebCore::FlexBoxIterator::next): + (WebCore::RenderFlexibleBox::layoutVerticalBox): + * rendering/RenderFrameSet.cpp: + (WebCore::borderStartEdgeColor): + * rendering/RenderFrameSet.h: + * rendering/RenderImage.cpp: + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::updateVisibilityStatus): + (WebCore::RenderLayer::calculateClipRects): + (WebCore::RenderLayer::calculateRects): + * rendering/RenderListBox.cpp: + (WebCore::RenderListBox::panScroll): + * rendering/RenderMarquee.cpp: + (WebCore::RenderMarquee::updateMarqueeStyle): + * rendering/RenderMedia.cpp: + (WebCore::RenderMedia::updateControls): + * rendering/RenderObject.cpp: + (WebCore::RenderObject::drawLineForBoxSide): + (WebCore::RenderObject::localCaretRect): + * rendering/RenderSVGImage.cpp: + (WebCore::RenderSVGImage::adjustRectsForAspectRatio): + * rendering/RenderSlider.h: + * rendering/RenderTable.cpp: + (WebCore::RenderTable::outerBorderBottom): + * rendering/RenderTableCol.h: + * rendering/RenderTextControlSingleLine.cpp: + (WebCore::RenderTextControlSingleLine::itemIsSeparator): + * rendering/RenderThemeChromiumSkia.cpp: + (WebCore::RenderThemeChromiumSkia::supportsHover): + * rendering/RenderThemeChromiumWin.cpp: + (WebCore::RenderThemeChromiumWin::supportsFocusRing): + * rendering/SVGCharacterLayoutInfo.cpp: + (WebCore::SVGCharacterLayoutInfo::addStackContent): + * rendering/SVGCharacterLayoutInfo.h: + * rendering/TextControlInnerElements.h: + * rendering/bidi.cpp: + (WebCore::RenderBlock::computeHorizontalPositionsForLine): + +2009-07-07 Oliver Hunt <oliver@apple.com> + + Reviewed by Maciej Stachowiak. + + Reduce complexity of lifetime management in DynamicNodeList caches + <https://bugs.webkit.org/show_bug.cgi?id=27068> + + Switch the Cache object used by DynamicNodeList into a normal + refcounted object rather than having a weird flag controlled + refcounting system, where positive refcount did not automatically + imply the cache object would actually still be live. + + * dom/DynamicNodeList.cpp: + (WebCore::DynamicNodeList::DynamicNodeList): + (WebCore::DynamicNodeList::~DynamicNodeList): + (WebCore::DynamicNodeList::Caches::Caches): + (WebCore::DynamicNodeList::Caches::create): + * dom/DynamicNodeList.h: + * dom/Node.cpp: + (WebCore::Node::childNodes): + (WebCore::Node::getElementsByTagNameNS): + (WebCore::Node::getElementsByName): + (WebCore::Node::getElementsByClassName): + (WebCore::NodeListsNodeData::invalidateCaches): + (WebCore::NodeListsNodeData::isEmpty): + * dom/NodeRareData.h: + (WebCore::NodeListsNodeData::NodeListsNodeData): + +2009-07-07 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein. + + -webkit-perspective should be a Length + https://bugs.webkit.org/show_bug.cgi?id=27066 + + -webkit-perspective should not take a magic valueless number, but should + be a normal Length value which responds to zooming. Treat valueless numbers + as pixels for backward compatibility. + + Test: transforms/3d/general/perspective-units.html + + * css/CSSParser.cpp: + (WebCore::CSSParser::parseValue): + * css/CSSStyleSelector.cpp: + (WebCore::CSSStyleSelector::applyProperty): + +2009-07-07 Pierre d'Herbemont <pdherbemont@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=27047 + + We need to make sure that when we reattach, we also reattach + the children in every MediaControlElement. Else we may end up + having no remaining or elapsed time. + + We have to handle that, because we are using a special shadow + tree in the DOM, and that we are ourselves handling + attaching/detaching the renderer. + + The strategy here is to try to implement ::attach(), and try + to reuse as much code as we can from the super class, including + children attachement. + + Test: media/controls-after-reload.html + + * rendering/MediaControlElements.cpp: + (WebCore::MediaControlElement::styleForElement): Code factoring. + (WebCore::MediaControlElement::rendererIsNeeded): Code factoring. + (WebCore::MediaControlElement::attach): Implement attach + and call super class so that children are also attached. + (WebCore::MediaControlElement::updateStyle): Use attach() + (WebCore::MediaControlInputElement::styleForElement): Code factoring. + (WebCore::MediaControlInputElement::rendererIsNeeded): Code factoring. + (WebCore::MediaControlInputElement::attach): See above. + (WebCore::MediaControlInputElement::updateStyle): Use attach() + * rendering/MediaControlElements.h: + * rendering/RenderMedia.cpp: + (WebCore::RenderMedia::updateControls): Directly run attach() on + the m_panel, which is a root node for our shadow tree. + +2009-07-07 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein. + + Repaint issue after layer drops out of composited mode. + <https://bugs.webkit.org/show_bug.cgi?id=27022> + + RenderLayers cache repaint rects in the form of m_repaintRect and m_outlineBox, + and expect these to stay valid from one style change to the next. These rects + are relative to the repaint container, so if a layer stops being composited, + we need to recompute them. + + Test: compositing/repaint/layer-repaint-rects.html + + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::computeRepaintRects): + * rendering/RenderLayer.h: + * rendering/RenderLayerCompositor.cpp: + (WebCore::RenderLayerCompositor::updateBacking): + +2009-07-07 Dan Bernstein <mitz@apple.com> + + Reviewed by Dave Hyatt and Darin Adler. + + - fix https://bugs.webkit.org/show_bug.cgi?id=26963 + <rdar://problem/7030998> Reproducible crash at + FontCache::getFontData() when a custom font is used in a pseudo-style + + Test: fast/css/pseudo-cache-stale.html + + * dom/Element.cpp: + (WebCore::Element::pseudoStyleCacheIsInvalid): Added. Given the old + style and the new style, goes over cached pseudo-styles in the old + style and re-resolves the same style types off the new style. If any of + the new pseudo-styles is different from the currently cached + corresponding style, returns true. Otherwise, returns false. + (WebCore::Element::recalcStyle): Validate the pseudo-style cache before + deciding to keep the existing style. + * dom/Element.h: + * rendering/RenderObject.cpp: + (WebCore::RenderObject::uncachedFirstLineStyle): Added this version that + returns an uncached first-line style based off the given style. + (WebCore::RenderObject::getUncachedPseudoStyle): Added the 'ownStyle' + parameter. + * rendering/RenderObject.h: + * rendering/style/RenderStyle.cpp: + (WebCore::RenderStyle::getPseudoStyleCache): Added. Returns the cached + pseudo-styles in the passed-in vector. + * rendering/style/RenderStyle.h: + +2009-07-07 Dan Bernstein <mitz@apple.com> + + Reviewed by Simon Fraser. + + - fix https://bugs.webkit.org/show_bug.cgi?id=27042 + <rdar://problem/7010981> Incomplete painting of newly created floats + + Tests: fast/repaint/float-in-new-block-with-layout-delta.html + fast/repaint/float-new-in-block.html + + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::layoutBlockChildren): If the child has never been + laid out before, paint its overhanging floats in addition to itself. + * rendering/RenderBlock.h: + (WebCore::RenderBlock::FloatWithRect::FloatWithRect): Added and + initialized a boolean everHadLayout member. + * rendering/bidi.cpp: + (WebCore::RenderBlock::layoutInlineChildren): Paint floats that have + never been laid out before and did not move from (0, 0). + +2009-07-07 Brady Eidson <beidson@apple.com> + + Contributions from both Darin Adler and Brady Eidson. + Reviewed by Darin Adler. + + <rdar://problem/7024039> REGRESSION (r42158): Back-forward navigation does not work correctly on nytimes.com + + In r42158 we lost some exclusions to making back/forward items for subframe navigations when a main frame + navigation was still in progress. + + This patch makes things even better than it used to be by: + - Locking back/forward history at the time the navigation is scheduled, not after the load has committed. + - Locking back/forward history if *any* ancestor frame is still loading instead of just the main frame. + + Test: fast/loader/subframe-navigate-during-main-frame-load.html + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::submitForm): Move out the history locking logic into a standalone function so it can be + used from multiple sites. + (WebCore::mustLockBackForwardList): Returns true if any ancestor frame is still loading. + (WebCore::FrameLoader::scheduleLocationChange): Respect mustLockBackForwardList() in addition to the passed in + lockBackForwardList flag. + (WebCore::FrameLoader::scheduleFormSubmission): Ditto. + +2009-07-07 Nate Chapin <japhet@chromium.org> + + Reviewed by Darin Fisher. + + Upstream DOMObjectsInclude.h from src.chromium.org. + + https://bugs.webkit.org/show_bug.cgi?id=27035 + + * bindings/v8/DOMObjectsInclude.h: Added. + +2009-07-07 Nate Chapin <japhet@chromium.org> + + Reviewed by David Levin. + + Relanding r45559, which was rolled back at r45574. + + https://bugs.webkit.org/show_bug.cgi?id=26857 + + * bindings/scripts/CodeGeneratorV8.pm: Updated a function name in auto-generated bindings. + * bindings/v8/V8Binding.cpp: Moved from src.chromium.org. + * bindings/v8/V8Binding.h: Contents moved from src.chromium.org. + * bindings/v8/V8LazyEventListener.cpp: + (WebCore::V8LazyEventListener::getListenerFunction): + * bindings/v8/V8Proxy.cpp: + (WebCore::handleConsoleMessage): + (WebCore::V8Proxy::compileScript): + (WebCore::V8Proxy::sourceName): + * bindings/v8/WorkerContextExecutionProxy.cpp: + (WebCore::handleConsoleMessage): + * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp: + (WebCore::NAMED_PROPERTY_SETTER): + * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8CustomXPathNSResolver.cpp: + (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI): + * bindings/v8/custom/V8DOMWindowCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8HTMLIFrameElementCustom.cpp: + (WebCore::ACCESSOR_SETTER): + * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8HTMLSelectElementCustom.cpp: + (WebCore::removeElement): + * bindings/v8/custom/V8SQLTransactionCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8WorkerContextCustom.cpp: + (WebCore::SetTimeoutOrInterval): + * bindings/v8/custom/V8XMLHttpRequestCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + +2009-07-07 Gregory Hughes <gfhughesVO+webkit@gmail.com> + + Reviewed by Darin Adler. + + AX: Some webpages do not send AXLoadComplete + https://bugs.webkit.org/show_bug.cgi?id=26995 + + When sending the AXLayoutComplete notification it is possible + that the AXObjectCache was cleared, resulting in no valid + object to send the notification to. This fix ensures that an + AX object is created and cached if one does not already exist. + + Not able to add a test because notifications get sent after the layout test is completed. + + * dom/Document.cpp: + (WebCore::Document::implicitClose): + +2009-07-06 Pierre d'Herbemont <pdherbemont@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=27015 + + Make sure that the CSS properties letter-spacing, word-spacing, + line-height, text-transform, text-indent, text-shadow, + text-decoration and color do not affect the media element controls, + that display text. + + Controls that display text are only present in when the theme + MediaControllerThemeQT is being used. + + Test: media/controls-styling.html + + * css/mediaControlsQT.css: + * rendering/MediaControlElements.cpp: + (WebCore::MediaControlElement::updateStyle): Special case for + text-decoration. text-decoration can't be overriden from CSS, because + text-decoration is additive for historical reasons. + +2009-07-07 Albert Wong <ajwong@chromium.org> + + Not reviewed, Chromium build fix. + + Add in missing header + fix syntax issue that crept into last patch. + https://bugs.webkit.org/show_bug.cgi?id=27027 + + * rendering/RenderThemeChromiumMac.mm: + (WebCore::RenderThemeChromiumMac::paintMediaFullscreenButton): + +2009-07-07 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dave Hyatt. + + Make use of geometry information to decide which layers become composited. + + <rdar://problem/7011947> + <https://bugs.webkit.org/show_bug.cgi?id=27021> + + In addition to looking at painting order, also, optionally, take layer + overlap into account when deciding which RenderLayers need to be composited. + + No testcase because DRT doesn't dump which layers are composited. + + * page/FrameView.h: + * page/FrameView.cpp: + (WebCore::FrameView::updateCompositingLayers): + Removed the unused CompositingUpdate parameter, and just do an early return + when there is no view. + + * rendering/RenderLayer.h: + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::rendererContentChanged): + (WebCore::RenderLayer::dirtyZOrderLists): + (WebCore::RenderLayer::dirtyNormalFlowList): + (WebCore::RenderLayer::styleChanged): + (WebCore::RenderLayer::mustOverlapCompositedLayers): + (WebCore::RenderLayer::setMustOverlapCompositedLayers): + Change "overlay" to "overlap" for consistency with the use of "overlap" + elsewhere. + + * rendering/RenderLayerBacking.cpp: + (WebCore::RenderLayerBacking::updateAfterLayout): + compositingLayersNeedUpdate() renamed to compositingLayersNeedRebuild(). + + (WebCore::RenderLayerBacking::startAnimation): + (WebCore::RenderLayerBacking::startTransition): + Tell the compositor that we started an accelerated animation or transition. + + * rendering/RenderLayerCompositor.h: + (WebCore::RenderLayerCompositor::compositingLayersNeedRebuild): + Renamed, since it's explicitly about changes in hierarchy now. + + (WebCore::RenderLayerCompositor::setCompositingConsultsOverlap): + (WebCore::RenderLayerCompositor::compositingConsultsOverlap): + New getter and setter for whether compositing should take overlap into account. + + * rendering/RenderLayerCompositor.cpp: + (WebCore::RenderLayerCompositor::RenderLayerCompositor): + Add m_compositingConsultsOverlap, re-order some member variables. + + (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingEnabledFlag): + Whitespace cleanup and method rename. + + (WebCore::RenderLayerCompositor::setCompositingLayersNeedRebuild): + Method and variable renaming. + + (WebCore::RenderLayerCompositor::updateCompositingLayers): + Now we have to run through the layer hierarchy every time if looking + at overlap, because changes in layout can now alter compositing behavior. + We minimize work by tracking whether we actually need to change the layer + hierarchy via needLayerRebuild. + + (WebCore::RenderLayerCompositor::updateBacking): + 3D transforms turn off overlap mode. + + (WebCore::RenderLayerCompositor::layerWasAdded): + (WebCore::RenderLayerCompositor::layerWillBeRemoved): + Method rename. + + (WebCore::RenderLayerCompositor::addToOverlapMap): + (WebCore::RenderLayerCompositor::overlapsCompositedLayers): + Utility methods to add a layer to the overlapMap (computing the absolute + bounding box only if we haven't already done so), and testing the map + entries. + + (WebCore::RenderLayerCompositor::computeCompositingRequirements): + If a layer would composite only because it comes after other compositing + layers in the painting order, then consult the overlap map to determine whether + it overlaps, and thus actually needs to composite. + + Add layers to the map when they must be composited. + + (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): + Only do re-parenting work if the updateHierarchy flag is set. + + (WebCore::RenderLayerCompositor::didStartAcceleratedAnimation): + When we start an accelerated transition or animation, we stop looking at + overlap because we can no longer guarantee correct front-to-back ordering while the + accelerated animation is running. + + (WebCore::RenderLayerCompositor::needsToBeComposited): + Method renames. + + * rendering/RenderView.cpp: + (WebCore::RenderView::setMaximalOutlineSize): + Add comment indicating that this could be optimized. + +2009-07-07 Anton Muhin <antonm@chromium.org> + + Reviewed by Darin Fisher. + + Speed up creation of V8 wrappers for DOM nodes. + + https://bugs.webkit.org/show_bug.cgi?id=26882 + + This patch doesn't require new tests as it a set of refactorings + to speed up wrapper creation. + + * bindings/v8/V8Proxy.cpp: + * bindings/v8/V8Proxy.h: + +2009-07-07 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Gustavo Noronha. + + [GTK] textarea height property works only if other property are defined + https://bugs.webkit.org/show_bug.cgi?id=18984 + + Let WebCore handle textarea's metrics instead of readjusting it RenderthemeGtk. + + Test: fast/forms/textarea-metrics.html + + * platform/gtk/RenderThemeGtk.cpp: + * platform/gtk/RenderThemeGtk.h: + +2009-07-07 Ben Murdoch <benm@google.com> + + Reviewed by Antti Koivisto. + + HTML5 Database becomes locked if a transaction is in progress when the page is refreshed. + https://bugs.webkit.org/show_bug.cgi?id=25711 + + Fix for https://bugs.webkit.org/show_bug.cgi?id=25711 where web + storage databases could become locked until the browser is shut + down if the page is refreshed whilst a transaction is in progress. + + Test: storage/database-lock-after-reload.html + + * storage/Database.cpp: + (WebCore::Database::Database): + (WebCore::Database::close): add code to inform the database thread we've closed the database. + (WebCore::Database::performOpenAndVerify): add code to inform the database thread we've opened a database. + * storage/Database.h: + (WebCore::Database::opened): return true iff the underlying sqlite database has been opened but not closed. + * storage/DatabaseThread.cpp: + (WebCore::DatabaseThread::databaseThread): Before the database thread terminates, close any databases that ran transactions in this thread. + (WebCore::DatabaseThread::recordDatabaseOpen): Records a database that executed a transaction in this thread. + (WebCore::DatabaseThread::recordDatabaseClosed): Removes a database from the set of open databases. + * storage/DatabaseThread.h: + (WebCore::DatabaseThread::getThreadID): return the thread id for the database thread. + +2009-07-07 Jiahua Huang <jhuangjiahua@gmail.com> + + Reviewed by Jan Alonzo. + + [Gtk] Paste of rich text from firefox results garbled markup + https://bugs.webkit.org/show_bug.cgi?id=26791 + + Fix problem with UTF-16 clipboard pasted. + + * manual-tests/gtk/paste-richtext-from-firefox.html: Added. + * platform/gtk/PasteboardGtk.cpp: + (WebCore::Pasteboard::documentFragment): + +2009-07-07 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Timothy Hatcher. + + Change 'Continue debug' shortcut from F5 to F8 for consistency with Firebug. + + https://bugs.webkit.org/show_bug.cgi?id=23849 + + * inspector/front-end/ScriptsPanel.js: + (WebInspector.ScriptsPanel): + +2009-07-06 Albert J. Wong <ajwong@chromium.org> + + Reviewed by Maciej Stachowiak. + + Update RenderThemeChromiumMac for wkDrawMediaUIPart and wkDrawMediaSlider API + change. + + Fix compile RenderThemeChromiumMac.mm due to API changes from r45572 + https://bugs.webkit.org/show_bug.cgi?id=27018 + + This is mainly an API change update to fix the chromium compile. It + also has a small fix of a typo in RenderThemeMac.mm. + + Compilation against the head of chromium trunk passed. Since this is + a compile fix, that should be sufficient. + + * rendering/RenderThemeChromiumMac.mm: + (WebCore::): + (WebCore::RenderThemeChromiumMac::paintMediaFullscreenButton): + (WebCore::RenderThemeChromiumMac::paintMediaMuteButton): + (WebCore::RenderThemeChromiumMac::paintMediaPlayButton): + (WebCore::RenderThemeChromiumMac::paintMediaSeekBackButton): + (WebCore::RenderThemeChromiumMac::paintMediaSeekForwardButton): + (WebCore::RenderThemeChromiumMac::paintMediaSliderTrack): + (WebCore::RenderThemeChromiumMac::paintMediaSliderThumb): + * rendering/RenderThemeMac.mm: + (WebCore::): + +2009-07-06 David Kilzer <ddkilzer@apple.com> + + Bug 27002: Build fix when DASHBOARD_SUPPORT is disabled with -Wunused-parameter + + <https://bugs.webkit.org/show_bug.cgi?id=27002> + + Reviewed by Geoff Garen. + + * html/CanvasRenderingContext2D.cpp: + (WebCore::CanvasRenderingContext2D::prepareGradientForDashboard): + Mark gradient as an unused parameter when DASHBOARD_SUPPORT is + disabled. + +2009-07-06 David Kilzer <ddkilzer@apple.com> + + Bug 27001: Fix improper use of PassRefPtr<Node> to RefPtr<Node> + + <https://bugs.webkit.org/show_bug.cgi?id=27001> + + Reviewed by Geoff Garen. + + PassRefPtr<> should only be used for arguments to functions that + take ownership of the object, or as return values from functions + that relinquish ownership of the object. + + * editing/Editor.cpp: + (WebCore::Editor::increaseSelectionListLevelOrdered): Changed + stack-allocated PassRefPtr<Node> to RefPtr<Node> and call + release() on returned object. + (WebCore::Editor::increaseSelectionListLevelUnordered): Ditto. + +2009-07-06 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Simon Fraser. + + <rdar://problem/7035474> Make new media controller UI default on SnowLeopard + + * rendering/RenderThemeMac.mm: + (WebCore::mediaControllerTheme): + New media controller UI is enabled by default on SnowLeopard. + +2009-07-06 Nate Chapin <japhet@chromium.org> + + Unreviewed, build fix. + + Roll out r45559 to fix Chromium canary. + + https://bugs.webkit.org/show_bug.cgi?id=26857 + + * bindings/scripts/CodeGeneratorV8.pm: + * bindings/v8/V8Binding.cpp: Removed. + * bindings/v8/V8Binding.h: + (WebCore::toInt32): + (WebCore::toWebCoreString): + (WebCore::fromWebCoreString): + (WebCore::toWebCoreStringWithNullCheck): + (WebCore::isUndefinedOrNull): + (WebCore::v8Boolean): + * bindings/v8/V8LazyEventListener.cpp: + (WebCore::V8LazyEventListener::getListenerFunction): + * bindings/v8/V8Proxy.cpp: + (WebCore::handleConsoleMessage): + (WebCore::V8Proxy::compileScript): + (WebCore::V8Proxy::sourceName): + * bindings/v8/WorkerContextExecutionProxy.cpp: + (WebCore::handleConsoleMessage): + * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp: + (WebCore::NAMED_PROPERTY_SETTER): + * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8CustomXPathNSResolver.cpp: + (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI): + * bindings/v8/custom/V8DOMWindowCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8HTMLIFrameElementCustom.cpp: + (WebCore::ACCESSOR_SETTER): + * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8HTMLSelectElementCustom.cpp: + (WebCore::removeElement): + * bindings/v8/custom/V8SQLTransactionCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8WorkerContextCustom.cpp: + (WebCore::SetTimeoutOrInterval): + * bindings/v8/custom/V8XMLHttpRequestCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + +2009-07-06 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Darin Adler. + + <rdar://problem/7008093> Media controller can’t be used to scrub when movie is + narrow — track is too narrow + + Do not show media controller time display elements when the a movie is too narrow. + + * platform/mac/WebCoreSystemInterface.h: + * platform/mac/WebCoreSystemInterface.mm: + The 'state' parameter to wkDrawMediaUIPart is now an unsigned bitfield. + + * rendering/MediaControlElements.cpp: + (WebCore::MediaControlTimeDisplayElement::MediaControlTimeDisplayElement): + Give current time and time remaining controls a common base class. + (WebCore::MediaControlTimeDisplayElement::setVisible): + New method, hide and show the element. + * rendering/MediaControlElements.h: + + * rendering/RenderMedia.cpp: + (WebCore::RenderMedia::RenderMedia): + Initialize m_previousVisible. + (WebCore::RenderMedia::layout): + Show/hide the time display elements as the movie width changes. + (WebCore::RenderMedia::createCurrentTimeDisplay): + (WebCore::RenderMedia::createTimeRemainingDisplay): + Base class is now MediaControlTimeDisplayElement, not MediaControlElement. + (WebCore::RenderMedia::shouldShowTimeDisplayControls): + New, decide if time display elements should be visible or not. + * rendering/RenderMedia.h: + + * rendering/RenderThemeMac.mm: + (WebCore::): + (WebCore::RenderThemeMac::paintMediaFullscreenButton): + (WebCore::RenderThemeMac::paintMediaMuteButton): + (WebCore::RenderThemeMac::paintMediaPlayButton): + (WebCore::RenderThemeMac::paintMediaSeekBackButton): + (WebCore::RenderThemeMac::paintMediaSeekForwardButton): + (WebCore::RenderThemeMac::paintMediaSliderTrack): + (WebCore::RenderThemeMac::paintMediaSliderThumb): + (WebCore::RenderThemeMac::paintMediaRewindButton): + (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton): + (WebCore::RenderThemeMac::paintMediaControlsBackground): + (WebCore::RenderThemeMac::paintMediaCurrentTime): + (WebCore::RenderThemeMac::paintMediaTimeRemaining): + The 'state' parameter to wkDrawMediaUIPart is now an unsigned bitfield. + +2009-07-06 David Kilzer <ddkilzer@apple.com> + + Bug 27000: Minor clean up to runtime_root.{cpp|h} + + <https://bugs.webkit.org/show_bug.cgi?id=27000> + + Reviewed by Geoff Garen. + + * bridge/runtime_root.cpp: Added blank line between license and + the first #include statement. + * bridge/runtime_root.h: Added comment to #endif. + +2009-07-06 Roland Steiner <rolandsteiner@google.com> + + Reviewed by Maciej Stachowiak. + + generalize the special height treatment for SVG (to be re-used for ruby): + renamed InlineBox::m_isSVG to m_hasVirtualHeight + renamed InlineBox::isSVG() to hasVirtualHeight() + renamed InlineBox::setIsSVG() to setHasVirtualHeight() + + * rendering/InlineBox.cpp: + (WebCore::InlineBox::height): + * rendering/InlineBox.h: + (WebCore::InlineBox::InlineBox): + (WebCore::InlineBox::isText): + (WebCore::InlineBox::setIsText): + (WebCore::InlineBox::isSVGRootInlineBox): + (WebCore::InlineBox::hasVirtualHeight): + (WebCore::InlineBox::setHasVirtualHeight): + (WebCore::InlineBox::virtualHeight): + * rendering/RenderSVGInline.cpp: + (WebCore::RenderSVGInline::createFlowBox): + * rendering/RenderSVGInlineText.cpp: + (WebCore::RenderSVGInlineText::createTextBox): + * rendering/RenderSVGText.cpp: + (WebCore::RenderSVGText::createRootBox): + * rendering/SVGInlineFlowBox.h: + (WebCore::SVGInlineFlowBox::virtualHeight): + * rendering/SVGInlineTextBox.h: + (WebCore::SVGInlineTextBox::virtualHeight): + * rendering/SVGRootInlineBox.h: + (WebCore::SVGRootInlineBox::virtualHeight): + +2009-07-06 Alice Liu <alice.liu@apple.com> + + Reviewed by Darin Adler. + + REGRESSION(r45285): focus rings are black on windows safari + https://bugs.webkit.org/show_bug.cgi?id=26821 + <rdar://problem/7018252> + + Add a mechanism for setting a custom focus ring color, and relocate the + determination of focus ring color to base class RenderTheme. + + No new tests. Already-existing tests run in pixel mode would have caught this regression + + * css/CSSStyleSelector.cpp: + (WebCore::CSSStyleSelector::getColorFromPrimitiveValue): Move the responsibility + of determining focus color to base class RenderTheme. + * rendering/RenderTheme.cpp: + (WebCore::customFocusRingColor): Added static local. + (WebCore::RenderTheme::setCustomFocusRingColor): Added + (WebCore::RenderTheme::focusRingColor): Use custom color over platform color. + * rendering/RenderTheme.h: + (WebCore::RenderTheme::platformFocusRingColor): default implementation, black color + * rendering/RenderThemeSafari.cpp: + (WebCore::RenderTheme::themeForPage): Circumstances that lead to returning the RenderThemeWin + are the same under which we want to use the focus ring color from SafariTheme. + (WebCore::RenderThemeSafari::platformFocusRingColor): Renamed from focusRingColor + * rendering/RenderThemeSafari.h: + + Renaming focusRingColor to platformFocusRingColor in these files: + * rendering/RenderThemeChromiumMac.h: + * rendering/RenderThemeChromiumMac.mm: + (WebCore::RenderThemeChromiumMac::platformFocusRingColor): + * rendering/RenderThemeChromiumSkia.cpp: + (WebCore::RenderThemeChromiumSkia::platformFocusRingColor): + * rendering/RenderThemeChromiumSkia.h: + * rendering/RenderThemeMac.h: + * rendering/RenderThemeMac.mm: + (WebCore::RenderThemeMac::platformFocusRingColor): + + Cleanup leftover from removal of WebCore::Color in r45285 in these files: + * WebCore.order: + * platform/graphics/Color.h: + +2009-07-06 Shinichiro Hamaji <hamaji@chromium.org> + + Reviewed by David Hyatt. + + Bug 15135: REGRESSION (r19843-r19850): Changing a flexbox's + contents makes its container scroll to the top + https://bugs.webkit.org/show_bug.cgi?id=15135 + + Delay updateing scroll bar of descendants of flexbox until their + positions are determined. In this way we can prevent descendants + of flexible boxes from changing positions of their scrollbars + using tentative positions. + + Test: fast/flexbox/repaint-scrollbar.html + + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::startDelayUpdateScrollInfo): + (WebCore::RenderBlock::finishDelayUpdateScrollInfo): + (WebCore::RenderBlock::updateScrollInfoAfterLayout): + (WebCore::RenderBlock::layoutBlock): + (WebCore::RenderBlock::layoutOnlyPositionedObjects): + * rendering/RenderBlock.h: + * rendering/RenderFlexibleBox.cpp: + (WebCore::RenderFlexibleBox::layoutHorizontalBox): + (WebCore::RenderFlexibleBox::layoutVerticalBox): + +2009-07-06 Hironori Bono <hbono@chromium.org> + + Reviewed by Maciej Stachowiak. + + Make unconfirmed IME text affect textarea's value. + This matches input and contentEditable elements as well + IE and Firefox. + + This fixes https://bugs.webkit.org/show_bug.cgi?id=25061. + + Input elements would go down this code path because it + would always get a null compositionNode from frame->editor(). + Special casing compositionNodes is wrong because we explicitly + want unconfirmed IME input in the textarea's value (assuming we + want to match IE and Firefox here). + + This change is originally created by Ojan Vafai <ojan@chromium.org> and + I just changed its manual tests with an automated test on his behalf. + + Test: platform/mac/editing/input/text-control-ime-input.html + + * rendering/RenderTextControl.cpp: + (WebCore::RenderTextControl::text): + (WebCore::RenderTextControl::textWithHardLineBreaks): + +2009-07-06 Anders Carlsson <andersca@apple.com> + + Reviewed by Adele Peterson. + + Add the ability for wheel events to latch to a node. + + * WebCore.base.exp: + * page/EventHandler.cpp: + (WebCore::EventHandler::EventHandler): + (WebCore::EventHandler::clear): + (WebCore::EventHandler::handleWheelEvent): + * page/EventHandler.h: + * page/mac/EventHandlerMac.mm: + (WebCore::EventHandler::wheelEvent): + * platform/mac/WebCoreSystemInterface.h: + * platform/mac/WebCoreSystemInterface.mm: + +2009-07-06 Nate Chapin <japhet@chromium.org> + + Reviewed by Dimitri Glazkov. + + Fix a bunch of layout test crahses in Chromium caused by a bad usage of DEFINE_STATIC_LOCAL. + + https://bugs.webkit.org/show_bug.cgi?id=26997 + + * bindings/v8/V8Binding.cpp: + (WebCore::v8ValueToWebCoreString): Use a regular static declaration instead of DEFINE_STATIC_LOCAL. + +2009-07-06 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Timothy Hatcher. + + WebInspector: suggest global properties based on async evaluation. + + https://bugs.webkit.org/show_bug.cgi?id=26976 + + Before this change, empty string was evaluated to the global object + (or scope chain object) synchronously. This is now fixed and global + object is evaluated using the same control flow. + + * inspector/front-end/Console.js: + (WebInspector.Console.prototype.completions): + (WebInspector.Console.prototype._evalInInspectedWindow): + * inspector/front-end/ScriptsPanel.js: + (WebInspector.ScriptsPanel.prototype._variablesInScope): + +2009-07-06 Ojan Vafai <ojan@chromium.org> + + Reviewed by Eric Seidel. + + Fix crash when indenting in an empty table cell. + https://bugs.webkit.org/show_bug.cgi?id=26872 + + The crash is that we would call splitTreeToNode where the node + and the nodeToSplitTo were the same node. + + Test: editing/execCommand/indent-empty-table-cell.html + + * editing/CompositeEditCommand.cpp: + (WebCore::CompositeEditCommand::splitTreeToNode): + Added an assert in that node and nodeToSplitTo + are different nodes to make this assumption explicit. + + * editing/IndentOutdentCommand.cpp: + (WebCore::IndentOutdentCommand::isAtUnsplittableElement): + (WebCore::IndentOutdentCommand::indentRegion): + * editing/IndentOutdentCommand.h: + +2009-07-06 Nate Chapin <japhet@chromium.org> + + Reviewed by David Levin. + + Upstream V8Binding and update some function names. + + https://bugs.webkit.org/show_bug.cgi?id=26857 + + * bindings/scripts/CodeGeneratorV8.pm: Update function names in auto-generated files. + * bindings/v8/V8Binding.cpp: Upstreamed from src.chromium.org. + * bindings/v8/V8Binding.h: Upstreamed from src.chromium.org. + * bindings/v8/V8LazyEventListener.cpp: + (WebCore::V8LazyEventListener::getListenerFunction): + * bindings/v8/V8Proxy.cpp: + (WebCore::handleConsoleMessage): + (WebCore::V8Proxy::compileScript): + (WebCore::V8Proxy::sourceName): + * bindings/v8/WorkerContextExecutionProxy.cpp: + (WebCore::handleConsoleMessage): + * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp: + (WebCore::NAMED_PROPERTY_SETTER): + * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8CustomXPathNSResolver.cpp: + (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI): + * bindings/v8/custom/V8DOMWindowCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8HTMLIFrameElementCustom.cpp: + (WebCore::ACCESSOR_SETTER): + * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8HTMLSelectElementCustom.cpp: + (WebCore::removeElement): + * bindings/v8/custom/V8SQLTransactionCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8WorkerContextCustom.cpp: + (WebCore::SetTimeoutOrInterval): + * bindings/v8/custom/V8XMLHttpRequestCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + +2009-07-06 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Jan Alonzo. + + Use soup's content sniffing + https://bugs.webkit.org/show_bug.cgi?id=26982 + + Drop our hackish content sniffing code, and use the new libsoup + feature to do that job for us. + + Testing this is in a cross-platform way is not obvious or possible + while we are using platform-specific code for sniffing. + + * platform/network/ResourceHandleInternal.h: + (WebCore::ResourceHandleInternal::ResourceHandleInternal): + * platform/network/soup/ResourceHandleSoup.cpp: + (WebCore::gotHeadersCallback): + (WebCore::contentSniffedCallback): + (WebCore::gotChunkCallback): + (WebCore::ResourceHandle::startHttp): + +2009-07-05 Antonio Gomes <antonio.gomes@openbossa.org> + + Reviewed by Darin Adler. + + REGRESSION (r40499): fast/dom/cssTarget-crash.html fails + https://bugs.webkit.org/show_bug.cgi?id=20342 + + Re-added code removed by commit r40499. + Without this, both Qt and Mac were crashing while running the test. + + Note that this does not entirely fix the bug. It fixes the WebCore + crash, but the test no longer seems to work due to loader changes. + So this patch does not reenable the test. The test probably has to + be rewritten. + + * dom/ContainerNode.cpp: + (WebCore::ContainerNode::removedFromDocument): Re-added code to + set the CSS target of the document to 0. + +2009-07-05 Chris Marrin <cmarrin@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=26943 + + When one transition finishes slightly before another the longer + one will fire a second time. This is because the second + ImplicitAnmation object is culled too early, before its final + RenderStyle is in place. This is done by cleanupFinishedAnimations() + so I got rid of that method completely and now cleanup each + transition or animation at the point where I am setting the final + style, or when I detect that the transition or animation has been + terminated early (which happens when you remove it from the style). + + Test: transitions/extra-transition.html + + * page/animation/AnimationController.cpp: + (WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired): + * page/animation/CompositeAnimation.cpp: + (WebCore::CompositeAnimation::updateTransitions): + (WebCore::CompositeAnimation::updateKeyframeAnimations): + (WebCore::CompositeAnimation::animate): + * page/animation/CompositeAnimation.h: + + * page/animation/AnimationBase.cpp: + (WebCore::AnimationBase::getTimeToNextEvent): + Avoid a divide by zero if m_animation->duration() is zero, which can happen + if the duration is changed to zero while the animation is running. + +2009-07-05 Simon Fraser <simon.fraser@apple.com> + + Revert the previous commit because it broke the + animations/transition-and-animation-1.html + testcase. + + * page/animation/AnimationBase.cpp: + (WebCore::AnimationBase::getTimeToNextEvent): + * page/animation/AnimationController.cpp: + (WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired): + * page/animation/CompositeAnimation.cpp: + (WebCore::CompositeAnimation::updateTransitions): + (WebCore::CompositeAnimation::updateKeyframeAnimations): + (WebCore::CompositeAnimation::animate): + (WebCore::CompositeAnimation::cleanupFinishedAnimations): + * page/animation/CompositeAnimation.h: + +2009-07-05 Chris Marrin <cmarrin@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=26943 + + When one transition finishes slightly before another the longer + one will fire a second time. This is because the second + ImplicitAnmation object is culled too early, before its final + RenderStyle is in place. This is done by cleanupFinishedAnimations() + so I got rid of that method completely and now cleanup each + transition or animation at the point where I am setting the final + style, or when I detect that the transition or animation has been + terminated early (which happens when you remove it from the style). + + Test: transitions/extra-transition.html + + * page/animation/AnimationController.cpp: + (WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired): + * page/animation/CompositeAnimation.cpp: + (WebCore::CompositeAnimation::updateTransitions): + (WebCore::CompositeAnimation::updateKeyframeAnimations): + (WebCore::CompositeAnimation::animate): + * page/animation/CompositeAnimation.h: + + * page/animation/AnimationBase.cpp: + (WebCore::AnimationBase::getTimeToNextEvent): + Avoid a divide by zero if m_animation->duration() is zero, which can happen + if the duration is changed to zero while the animation is running. + +2009-07-05 Lars Knoll <lars.knoll@nokia.com> + + Reviewed by Maciej Stachowiak. + + https://bugs.webkit.org/show_bug.cgi?id=26843 + + Fix run-time crashes in JavaScriptCore with the Metrowerks compiler on Symbian. + + The Metrowerks compiler on the Symbian platform moves the globally + defined Hashtables into read-only memory, despite one of the members + being mutable. This causes crashes at run-time due to write access to + read-only memory. + + Avoid the use of const with this compiler by introducing the + JSC_CONST_HASHTABLE macro. + + Based on idea by Norbert Leser. + + * bindings/scripts/CodeGeneratorJS.pm: Use JSC_CONST_HASHTABLE for hash tables + define in the bindings. + +2009-07-05 Rob Buis <rwlbuis@gmail.com> + + Reviewed by Maciej Stachowiak. + + Bug 26897 - Dynamic SVG images do not display correctly + https://bugs.webkit.org/show_bug.cgi?id=26897 + + Use repaint() to fix a rendering problem with a SVG image embedded in xhtml. + + Test: svg/custom/createImageElement2.xhtml + + * rendering/RenderSVGImage.cpp: + (WebCore::RenderSVGImage::imageChanged): + +2009-07-05 Xan Lopez <xlopez@igalia.com> + + Reviewed by Jan Alonzo. + + https://bugs.webkit.org/show_bug.cgi?id=26960 + [Gtk] caret offset not updated when selecting text + + Report the caret offset from the end of the selection so it works + correctly for multi-char selections too (ie, anything that is not + the zero width caret). + + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: + (webkit_accessible_text_get_caret_offset): + +2009-07-05 Holger Hans Peter Freyther <zecke@selfish.org> + + Unreviewed link fix for Qt. + + Fix Qt link error by adding two new localized strings + + In r45474 two new strings got added to LocalizedStrings.h add + the definition of them to Qt. + + * platform/qt/Localizations.cpp: + (WebCore::mediaElementLoadingStateText): + (WebCore::mediaElementLiveBroadcastStateText): + +2009-07-03 Darin Adler <darin@apple.com> + + Reviewed by Adele Peterson. + + REGRESSION (r44670-r44680): Typing is suprisingly slow in password field on reddit.com + https://bugs.webkit.org/show_bug.cgi?id=26959 + rdar://problem/7029882 + + The code to handle iteration boundaries was malfunctioning when the boundary was + at the edge of a shadow tree. This happens all the time with <input> elements. + + It's not immediately obvious how to make a regression test for this since the + symptom was a performance problem, not incorrect behavior. I'll add a test if I + figure out a way to make one. + + * editing/TextIterator.cpp: + (WebCore::parentCrossingShadowBoundaries): Renamed from parentOrShadowParent. + (WebCore::depthCrossingShadowBoundaries): Updated for name change. + (WebCore::nextInPreOrderCrossingShadowBoundaries): Added. + (WebCore::previousInPostOrderCrossingShadowBoundaries): Added. + (WebCore::setUpFullyClippedStack): Updated for name change. + (WebCore::TextIterator::TextIterator): Updated for name change. Use + nextInPreOrderCrossingShadowBoundaries instead of Range::pastLastNode to fix the bug. + (WebCore::TextIterator::advance): Updated for name change. + (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): + Tweaked formatting. + (WebCore::SimplifiedBackwardsTextIterator::advance): Ditto. Changed code that + initializes m_pastStartNode to use previousInPostOrderCrossingShadowBoundaries. + (WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode): Tweaked formatting. + (WebCore::SimplifiedBackwardsTextIterator::exitNode): Ditto. + +2009-07-03 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Sam Weinig. + + Background audio stops playing when JS GC runs + https://bugs.webkit.org/show_bug.cgi?id=26956 + + Ensure we keep the Audio object around while it is playing, so that it + doesn't get collected. + + Not testable because there's no way to know whether the audio keeps + playing without holding a reference to it. + + * bindings/js/JSDOMBinding.cpp: + (WebCore::isObservableThroughDOM): + +2009-07-02 Xan Lopez <xlopez@igalia.com> + + Reviewed by Jan Alonzo. + + https://bugs.webkit.org/show_bug.cgi?id=26814 + [Gtk] Caret-moved events are not issued for the correct offset + when text is selected forward + + Report the caret offset from the end of the selection, otherwise + we'll report the same offset when moving the caret while + modififying the selection (eg, with Shift + Right). + + * editing/gtk/SelectionControllerGtk.cpp: + (WebCore::SelectionController::notifyAccessibilityForSelectionChange): + +2009-07-02 Xan Lopez <xlopez@igalia.com> + + Reviewed by Jan Alonzo. + + https://bugs.webkit.org/show_bug.cgi?id=26815 + [Gtk] text-selection-changed events are not issued for the correct + object when the selection spans multiple objects + + Get the focused node from the end of the selection, not the start, + so we can detect when we cross object boundaries. + + * editing/gtk/SelectionControllerGtk.cpp: + (WebCore::SelectionController::notifyAccessibilityForSelectionChange): + +2009-07-02 Pierre d'Herbemont <pdherbemont@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=26947 + + Fix the media controls hit tests. They may lose click events. + + Test cases already covered in the video-controls-zoomed tests. + + Don't trust wkHitTestMediaUIPart for the tests. We are accurate enough. + + * rendering/RenderThemeMac.h: Remove hitTestMediaControlPart. + * rendering/RenderThemeMac.mm: Remove hitTestMediaControlPart. + +2009-07-02 Roland Steiner <rolandsteiner@google.com> + + Reviewed by Eric Seidel. + + RenderBlock and RenderInline have confusingly named object creation methods: + RenderBlock::createRootBox/createRootInlineBox + RenderInline::createFlowBox/createInlineFlowBox + where the 2nd method in both cases just calls the first and then appends the created object. + I therefore renamed those methods to something IMHO more informative: + + createRootBox() -> createRootInlineBox() + createRootInlineBox() -> createAndAppendRootInlineBox(); + createFlowBox() -> createInlineFlowBox(); + createInlineFlowBox() -> createAndAppendInlineFlowBox(); + + https://bugs.webkit.org/show_bug.cgi?id=26828 + + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::createRootInlineBox): + (WebCore::RenderBlock::createAndAppendRootInlineBox): + * rendering/RenderBlock.h: + * rendering/RenderInline.cpp: + (WebCore::RenderInline::createInlineFlowBox): + (WebCore::RenderInline::createAndAppendInlineFlowBox): + * rendering/RenderInline.h: + * rendering/RenderSVGInline.cpp: + (WebCore::RenderSVGInline::createInlineFlowBox): + * rendering/RenderSVGInline.h: + * rendering/RenderSVGText.cpp: + (WebCore::RenderSVGText::createRootInlineBox): + * rendering/RenderSVGText.h: + * rendering/bidi.cpp: + (WebCore::createInlineBoxForRenderer): + +2009-07-02 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Timothy Hatcher. + + WebInspector: Fix typo in the resource panel enabler caption. + + https://bugs.webkit.org/show_bug.cgi?id=26753 + + * English.lproj/localizedStrings.js: + * inspector/front-end/ResourcesPanel.js: + (WebInspector.ResourcesPanel): + +2009-07-02 Erik Arvidsson <arv@chromium.org> + + Reviewed by Adam Roben. + + [Win] HTML5 Drag and drop, dragend is not fired when pressing Esc + https://bugs.webkit.org/show_bug.cgi?id=26699 + + * manual-tests/drag-escape.html: Added. + * page/EventHandler.cpp: + (WebCore::EventHandler::dragSourceEndedAt): + +2009-07-02 Pierre d'Herbemont <pdherbemont@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=26944 + + Make sure we support full page zoom in video controls. + + This is tracked by a the video-controls-zoom test case. + + * css/mediaControlsQT.css: Make sure we don't have any inherited margin. + * rendering/MediaControlElements.cpp: + (WebCore::MediaControlElement::updateStyle): Propagate the style to the innertext. + * rendering/RenderThemeMac.mm: Adjust the painting rect. + (WebCore::getUnzoomedRectAndAdjustCurrentContext): + (WebCore::RenderThemeMac::paintMediaSliderTrack): + (WebCore::RenderThemeMac::paintMediaCurrentTime): + (WebCore::RenderThemeMac::paintMediaTimeRemaining): + +2009-07-02 Pierre d'Herbemont <pdherbemont@apple.com> + + Fix the Gtk build after r45474. The localized strings should + have been added there. + + * platform/gtk/LocalizedStringsGtk.cpp: + (WebCore::mediaElementLoadingStateText): + (WebCore::mediaElementLiveBroadcastStateText): + +2009-07-02 Pierre d'Herbemont <pdherbemont@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=26939 + + Media controller is rendered badly at http://www.mozilla.com/en-US/firefox/video/firefox-3.5.html + + We fix two things: + - We use px instead of em, because px is used everywhere else + and because 0.09em hit the font size limit. + - We use -webkit-box instead of inline-block because in strict mode + inline-block has a different behavior. + + Test: media/controls-strict.html + + * css/mediaControlsQT.css: + +2009-07-02 David Hyatt <hyatt@apple.com> + + Reviewed by Dan Bernstein. + + TextIterator should use hasOverflowClip when checking for overflow instead of looking at the style. + https://bugs.webkit.org/show_bug.cgi?id=26942 + + * editing/TextIterator.cpp: + (WebCore::fullyClipsContents): + +2009-07-02 Sam Weinig <sam@webkit.org> + + Reviewed by Dave Hyatt. + + Fix for <rdar://problem/5230700> + Remove local .xhtml file workaround + + * platform/network/mac/ResourceResponseMac.mm: + (WebCore::ResourceResponse::platformLazyInit): Work around is no longer necessary. + +2009-07-02 Anders Carlsson <andersca@apple.com> + + Reviewed by Dan Bernstein. + + Sort, add functions used by WebKit. + + * WebCore.base.exp: + +2009-07-02 Brady Eidson <beidson@apple.com> + + Rubberstamped by Sam Weinig. + + More of <rdar://problem/6969425> Safari 4.0 doesn't recognize text/plain files if their extension is unknown. + + * platform/network/mac/WebCoreURLResponse.mm: + (webNSURLResponseMIMEType): Give Tiger a chance to query the UTI machinery. + +2009-07-02 Adam Langley <agl@google.com> + + Reviewed by Eric Seidel. + + Chromium Linux: fix complex text rendering with line break characters. + + https://bugs.webkit.org/show_bug.cgi?id=26935 + + If the CSS white-space property is inhibiting line breaking, we might + find end-of-line characters rendered via the complex text path. Fonts + don't provide glyphs for these code points so, if we find one, we + simulate the space glyph being interposed in this case. Because the + input is variable-length per code point, we walk the input in step + with the output. + + Covered by: + LayoutTests/fast/text/international/bidi-linebreak-002.html + LayoutTests/fast/text/international/bidi-linebreak-003.html + LayoutTests/fast/text/international/hindi-whitespace.html + + * platform/graphics/chromium/HarfbuzzSkia.cpp: + (WebCore::stringToGlyphs): + +2009-07-02 Victor Wang <victorw@chromium.org> + + Reviewed by Darin Fisher. + + https://bugs.webkit.org/show_bug.cgi?id=26521 + Expose file size to chromium. + + Implement getFileSize() for Chromium. + + * platform/chromium/ChromiumBridge.h: + * platform/chromium/FileSystemChromium.cpp: + (WebCore::getFileSize): + +2009-07-02 Nate Chapin <japhet@chromium.org> + + Unreviewed, build fix. + + * bindings/v8/V8SVGPODTypeWrapper.h: Lost a space in nested template argument list. + +2009-07-02 Simon Fraser <simon.fraser@apple.com> + + Build fix: add missing #include. + + * platform/mac/ThemeMac.mm: + +2009-07-02 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dave Hyatt. + + <rdar://problem/7028682> ThemeMac::paintRadio() throws Obj-C exceptions when zoomed + + Add BEGIN_BLOCK_OBJC_EXCEPTIONS/END_BLOCK_OBJC_EXCEPTIONS guards around code + that can possibly throw Objective-C exceptions when drawing Mac form controls. + + * platform/mac/ThemeMac.mm: + (WebCore::paintCheckbox): + (WebCore::paintRadio): + (WebCore::paintButton): + (WebCore::ThemeMac::inflateControlPaintRect): + +2009-07-02 Nate Chapin <japhet@chromium.org> + + Reviewed by David Levin. + + Upstream V8SVGPODTypeWrapper. + + https://bugs.webkit.org/show_bug.cgi?id=26907 + + * bindings/scripts/CodeGeneratorV8.pm: Update function being renamed in V8SVGPODTypeWrapper.h. + * bindings/v8/V8SVGPODTypeWrapper.h: Upstreamed from src.chromium.org. + +2009-07-02 Dumitru Daniliuc <dumi@chromium.org> + + Reviewed by Dimitri Glazkov. + + Adds an abstraction layer between the DB classes and the file + system, which allows us to add our own logic for storing, opening, + deleting, etc. databases. + + The patch was tested using the tests in WebCore/storage. + + https://bugs.webkit.org/show_bug.cgi?id=26054 + + * GNUmakefile.am: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * platform/sql/SQLiteDatabase.cpp: + (WebCore::SQLiteDatabase::open): Delegating the job of opening DB files to SQLiteFileSystem to allow use of custom VFSs. + * platform/sql/SQLiteFileSystem.cpp: Added. + * platform/sql/SQLiteFileSystem.h: Added. + * platform/win/FileSystemWin.cpp: + (WebCore::directoryName): Implemented. + * storage/Database.cpp: + (WebCore::Database::databaseSize): The code that returns the size of a DB file moved to SQLiteFileSystem. + * storage/DatabaseTracker.cpp: + (WebCore::DatabaseTracker::DatabaseTracker): Added the ability to register a custom SQLite VFS. + (WebCore::DatabaseTracker::trackerDatabasePath): DB file-related operations moved to SQLiteFileSystem. + (WebCore::DatabaseTracker::openTrackerDatabase): DB file-related operations moved to SQLiteFileSystem. + (WebCore::DatabaseTracker::originPath): DB file-related operations moved to SQLiteFileSystem. + (WebCore::DatabaseTracker::fullPathForDatabase): DB file-related operations moved to SQLiteFileSystem. + (WebCore::DatabaseTracker::usageForDatabase): DB file-related operations moved to SQLiteFileSystem. + (WebCore::DatabaseTracker::deleteOrigin): DB file-related operations moved to SQLiteFileSystem. + (WebCore::DatabaseTracker::deleteDatabaseFile): DB file-related operations moved to SQLiteFileSystem. + * storage/OriginUsageRecord.cpp: + (WebCore::OriginUsageRecord::diskUsage): DB file-related operations moved to SQLiteFileSystem. + +2009-07-02 David Hyatt <hyatt@apple.com> + + Reviewed by Simon Fraser. + + Always clip replaced elements to border radii. + https://bugs.webkit.org/show_bug.cgi?id=26933 + + Make sure to always clip replaced elements to border radii, even when overflow is visible. + Stop defaulting those elements to overflow:hidden in the UA sheet, since it is now no longer + necessary. + + Covered by existing tests (since the UA default changing keeps the behavior exactly the same). + + * css/html.css: + * rendering/RenderReplaced.cpp: + (WebCore::RenderReplaced::paint): + * rendering/RenderWidget.cpp: + (WebCore::RenderWidget::paint): + +2009-07-02 Jeremy Orlow <jorlow@chromium.org> + + Reviewed by Simon Fraser. + + convertFromScrollbarToContainingView and friends should be in ScrollView + https://bugs.webkit.org/show_bug.cgi?id=26929 + + This is breaking Chromium's build because PopupMenuChromium inherits + from ScrollView, but these functions are pure virtual in it. I could + put it directly in PopupMenuChromium, but that seems a bit silly since + the functions are fairly generic. + + Passes existing layout tests. + + * page/FrameView.cpp: Remove the 4 functions Hyatt just added + (IntRect WebCore::FrameView::convertFromScrollbarToContainingView): + (IntRect WebCore::FrameView::convertFromContainingViewToScrollBar): + (IntPoint WebCore::FrameView::convertFromScrollbarToContainingView): + (IntPoint WebCore::FrameView::convertFromContainingViewToScrollBar): + * page/FrameView.h: ditto + * platform/ScrollView.cpp: Move the 4 functions from FrameView here + (IntRect WebCore::ScrollView::convertFromScrollbarToContainingView): + (IntRect WebCore::ScrollView::convertFromContainingViewToScrollBar): + (IntPoint WebCore::ScrollView::convertFromScrollbarToContainingView): + (IntPoint WebCore::ScrollView::convertFromContainingViewToScrollBar): + * platform/ScrollView.h: ditto + +2009-07-02 Dirk Pranke <dpranke@chromium.org> + + Reviewed by Darin Fisher. + + Fix https://bugs.webkit.org/show_bug.cgi?id=26088 - TransparencyWin + doesn't handle errors well at all; revise it to fail silently + (drawing nothing), and bulletproof FontChromiumWin to handle the + failure accordingly. + + Tests: fast/text/text-large-negative-letter-spacing-with-opacity.html + fast/text/text-letter-spacing.html + + * platform/graphics/chromium/FontChromiumWin.cpp: + (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::initializeForGDI): + (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::~TransparencyAwareFontPainter): + (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::TransparencyAwareGlyphPainter): + (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::~TransparencyAwareGlyphPainter): + (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs): + (WebCore::Font::drawGlyphs): + (WebCore::Font::drawComplexText): + * platform/graphics/chromium/TransparencyWin.cpp: + (WebCore::TransparencyWin::TransparencyWin): + (WebCore::TransparencyWin::setupLayerForNoLayer): + (WebCore::TransparencyWin::setupLayerForOpaqueCompositeLayer): + (WebCore::TransparencyWin::setupLayerForWhiteLayer): + (WebCore::TransparencyWin::setupTransformForKeepTransform): + (WebCore::TransparencyWin::setupTransformForScaleTransform): + (WebCore::TransparencyWin::initializeNewContext): + (WebCore::TransparencyWin::compositeOpaqueComposite): + (WebCore::TransparencyWin::compositeTextComposite): + (WebCore::TransparencyWin::makeLayerOpaque): + * platform/graphics/chromium/TransparencyWin.h: + (WebCore::TransparencyWin::platformContext): + +2009-07-02 Eric Carlson <eric.carlson@apple.com> + + Change #import to #include to fix non-ObjC builds. + + * rendering/MediaControlElements.cpp: + +2009-07-02 Anders Carlsson <andersca@apple.com> + + Build fix. + + * platform/network/mac/WebCoreURLResponse.mm: + (mimeTypeFromUTITree): + +2009-07-02 David Hyatt <hyatt@apple.com> + + Reviewed by Simon Fraser. + + Fix for bug 22119, clicks in the scrollbars of transformed content don't work. Add new + conversion methods for going across parent/child widget boundaries that can be implemented + by the FrameView and ScrollbarClient to be transform-aware. + + Test cases added in platform/mac/fast/forms and platform/mac/fast/overflow. + + * WebCore.base.exp: + * page/EventHandler.cpp: + (WebCore::EventHandler::handleMouseMoveEvent): + * page/FrameView.cpp: + (WebCore::FrameView::convertFromScrollbarToContainingView): + (WebCore::FrameView::convertFromContainingViewToScrollbar): + (WebCore::FrameView::convertFromRenderer): + (WebCore::FrameView::convertToRenderer): + (WebCore::FrameView::convertToContainingView): + (WebCore::FrameView::convertFromContainingView): + * page/FrameView.h: + * platform/ScrollView.h: + * platform/Scrollbar.cpp: + (WebCore::Scrollbar::convertToContainingView): + (WebCore::Scrollbar::convertFromContainingView): + * platform/Scrollbar.h: + * platform/ScrollbarClient.h: + (WebCore::ScrollbarClient::convertFromScrollbarToContainingView): + (WebCore::ScrollbarClient::convertFromContainingViewToScrollbar): + * platform/Widget.cpp: + (WebCore::Widget::convertFromContainingWindow): + (WebCore::Widget::convertToContainingWindow): + (WebCore::Widget::convertFromRootToContainingWindow): + (WebCore::Widget::convertFromContainingWindowToRoot): + (WebCore::Widget::convertToContainingView): + (WebCore::Widget::convertFromContainingView): + * platform/Widget.h: + * platform/graphics/IntPoint.h: + (WebCore::IntPoint::move): + * platform/mac/WidgetMac.mm: + (WebCore::Widget::convertFromRootToContainingWindow): + (WebCore::Widget::convertFromContainingWindowToRoot): + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::isPointInOverflowControl): + * rendering/RenderDataGrid.cpp: + (WebCore::RenderDataGrid::convertFromScrollbarToContainingView): + (WebCore::RenderDataGrid::convertFromContainingViewToScrollbar): + * rendering/RenderDataGrid.h: + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::convertFromScrollbarToContainingView): + (WebCore::RenderLayer::convertFromContainingViewToScrollbar): + (WebCore::RenderLayer::scrollbarOffset): + (WebCore::RenderLayer::hitTestOverflowControls): + * rendering/RenderLayer.h: + * rendering/RenderListBox.cpp: + (WebCore::RenderListBox::isPointInOverflowControl): + (WebCore::RenderListBox::convertFromScrollbarToContainingView): + (WebCore::RenderListBox::convertFromContainingViewToScrollbar): + * rendering/RenderListBox.h: + +2009-07-02 Dan Bernstein <mitz@apple.com> + + Reviewed by Dave Hyatt and Simon Fraser. + + - fix <rdar://problem/6933052> SPOD playing video in a div with a box + shadow + + Test: fast/box-shadow/transform-fringing.html + + * rendering/RenderBoxModelObject.cpp: + (WebCore::RenderBoxModelObject::paintBoxShadow): Clip out the + box even if it has an opaque background, but in that case, inset the + clip path by 1 pixel, to avoid antialiasing artifacts. + Do not inset the clip rect by 1 pixel if the CTM is purely a + translation. + Move the shadow-casting path away in the non-rounded-rect case (it + was already being done in the rounded-rect case), to avoid a black + fringe when the CTM is not purely a translation. + +2009-07-02 Brady Eidson <beidson@apple.com> + + Reviewed by Sam Weinig. + + <rdar://problem/6969425> Safari 4.0 doesn't recognize text/plain files if their extension is unknown. + + Walk the CoreTypes UTI tree for extensions with unknown MIME types, using the first MIME type found. + + For many types of text files (such as source code files) this ends up being text/plain. + + * platform/network/mac/ResourceHandleMac.mm: + (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]): Tweak the logging output. + + * platform/network/mac/WebCoreURLResponse.h: + * platform/network/mac/WebCoreURLResponse.mm: + (mimeTypeFromUTITree): + (webNSURLResponseMIMEType): Use mimeTypeFromUTITree() to find a UTI-based MIME type for this file's extension. + (-[NSURLResponse _webcore_reportedMIMEType]): Return the actual MIME type that CFNetwork gave us. + +2009-07-02 Pierre d'Herbemont <pdherbemont@apple.com> + + Reviewed by Simon Fraser. + + <rdar://problem/6518119> + + Add a rewind button and hide the timeline for live broadcasts when + in MediaUI mode. + + * css/CSSPrimitiveValueMappings.h: + (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Add the new pseudo element. + + * css/CSSSelector.cpp: + (WebCore::CSSSelector::extractPseudoType): Ditto. + * css/CSSSelector.h: + + * css/CSSStyleSelector.cpp: + (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Ditto. + + * css/CSSValueKeywords.in: Ditto. + * css/mediaControls.css: Ditto. + * css/mediaControlsQT.css: Ditto. + + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::rewind): New. + (WebCore::HTMLMediaElement::returnToRealTime): New. + (WebCore::HTMLMediaElement::isStreaming): New. + * html/HTMLMediaElement.h: + + * page/mac/WebCoreViewFactory.h: Declare mediaElementLoadingStateText and mediaElementLiveBroadcastStateText. + + * platform/LocalizedStrings.h: Add localized media state messages. + + * platform/ThemeTypes.h: Add the new pseudo element. + + * platform/mac/LocalizedStringsMac.mm: + (WebCore::mediaElementLoadingStateText): Add localized media state. + (WebCore::mediaElementLiveBroadcastStateText): Ditto. + + * platform/mac/WebCoreSystemInterface.h: Change BOOL param wkDrawMediaUIPart to an int to support + multiple states. + * platform/mac/WebCoreSystemInterface.mm: Ditto. + + * rendering/MediaControlElements.cpp: + (WebCore::MediaControlElement::MediaControlElement): Deal with new elements. + (WebCore::MediaControlElement::attachToParent): Ditto. + (WebCore::MediaControlElement::update): Ditto. + (WebCore::MediaControlElement::updateStyle): Ditto. + (WebCore::MediaControlTimelineContainerElement::MediaControlTimelineContainerElement): Ditto. + (WebCore::MediaControlTimelineContainerElement::rendererIsNeeded): Ditto. + (WebCore::MediaControlStatusDisplayElement::MediaControlStatusDisplayElement): Ditto. + (WebCore::MediaControlStatusDisplayElement::update): Ditto. + (WebCore::MediaControlStatusDisplayElement::rendererIsNeeded): Ditto. + (WebCore::MediaControlInputElement::MediaControlInputElement): Ditto. + (WebCore::MediaControlInputElement::attachToParent): Ditto. + (WebCore::MediaControlInputElement::updateStyle): Ditto. + (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement): Ditto. + (WebCore::MediaControlRewindButtonElement::defaultEventHandler): Ditto. + (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement): Ditto. + (WebCore::MediaControlReturnToRealtimeButtonElement::defaultEventHandler): Ditto. + (WebCore::MediaControlReturnToRealtimeButtonElement::rendererIsNeeded): Ditto. + (WebCore::MediaControlTimelineElement::defaultEventHandler): Ditto. + (WebCore::MediaControlTimelineElement::update): Ditto. + (WebCore::MediaControlFullscreenButtonElement::rendererIsNeeded): Ditto. + * rendering/MediaControlElements.h: Ditto. + + * rendering/RenderMedia.cpp: + (WebCore::RenderMedia::styleDidChange): Deal with the new elements. + (WebCore::RenderMedia::createPanel): Ditto. + (WebCore::RenderMedia::createRewindButton): Ditto. + (WebCore::RenderMedia::createReturnToRealtimeButton): Ditto. + (WebCore::RenderMedia::createStatusDisplay): Ditto. + (WebCore::RenderMedia::createTimelineContainer): Ditto. + (WebCore::RenderMedia::createCurrentTimeDisplay): Ditto. + (WebCore::RenderMedia::createTimeRemainingDisplay): Ditto. + (WebCore::RenderMedia::updateControls): Ditto. + (WebCore::RenderMedia::forwardEvent): Ditto. + * rendering/RenderMedia.h: + + * rendering/RenderTheme.cpp: + (WebCore::RenderTheme::paint): Deal with the new elements. + + * rendering/RenderTheme.h: + (WebCore::RenderTheme::paintMediaRewindButton): Deal with the new elements. + (WebCore::RenderTheme::paintMediaReturnToRealtimeButton): Ditto. + (WebCore::RenderTheme::paintMediaControlsBackground): Ditto. + + * rendering/RenderThemeMac.h: + * rendering/RenderThemeMac.mm: + (WebCore::RenderThemeMac::paintMediaRewindButton): Deal with the new elements. + (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton): Ditto. + (WebCore::RenderThemeMac::paintMediaControlsBackground): Ditto. + + * rendering/style/RenderStyleConstants.h: Add constants for the new elements. + +2009-07-01 John Abd-El-Malek <jam@chromium.org> + + Reviewed by Darin Fisher. + + Small refactoring of MessagePortChannel so that PlatformMessagePortChannel + may be defined at the WebKit layer. + + https://bugs.webkit.org/show_bug.cgi?id=26905 + + * dom/MessageChannel.cpp: + (WebCore::MessageChannel::MessageChannel): + * dom/MessagePortChannel.cpp: + * dom/MessagePortChannel.h: + * dom/default/PlatformMessagePortChannel.cpp: + (WebCore::MessagePortChannel::createChannel): + (WebCore::MessagePortChannel::create): + (WebCore::MessagePortChannel::MessagePortChannel): + (WebCore::MessagePortChannel::~MessagePortChannel): + +2009-07-01 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein. + + <video> fails to show on http://camendesign.com/code/video_for_everybody + <rdar://problem/7026010> + https://bugs.webkit.org/show_bug.cgi?id=26919 + + Fix an issue introduced in r44961. In that revision we changed to only update + compositing layer geometry when all siblings had been laid out (i.e. we pushed + the updates one level down). However, that left out the root layer, so this + fix ensures that the root layer geometry gets updated at the end. + + Test: compositing/geometry/root-layer-update.html + + * rendering/RenderLayerBacking.cpp: + (WebCore::RenderLayerBacking::updateAfterLayout): + +2009-07-01 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein + + <rdar://problem/7026010> <video> fails to show on http://camendesign.com/code/video_for_everybody + + First part of fix: when outline width changes, don't to a synchronous + layer update right away, but just set the flag to say that compositing + layers need updating. The synchronous layer update left the layer geometries + out of whack when it happened in the middle of layout (e.g. when inside ::first-letter). + + Test: compositing/geometry/outline-change.html + + * rendering/RenderView.cpp: + (WebCore::RenderView::setMaximalOutlineSize): + +2009-07-01 Kwang Yul Seo <skyul@company100.net> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=26842 + Build fix when ENABLE_DATABASE is off + + Move Database.h into ENABLE(DATABASE) guard so toggling ENABLE_DATABASE + off does not break builds. + + * bindings/js/ScriptObjectQuarantine.cpp: + +2009-07-01 Daniel Bates <dbates@intudata.com> + + Reviewed by Adam Barth. + + https://bugs.webkit.org/show_bug.cgi?id=26899 + + Modified XSSAuditor::decodeURL to only remove null characters so that + it is consistent with the behavior of HTMLTokenizer and prevents + injected scripts that contain control characters. + + Tests: http/tests/security/xssAuditor/script-tag-control-char.html + http/tests/security/xssAuditor/script-tag-null-char.html + + * page/XSSAuditor.cpp: + (WebCore::XSSAuditor::decodeURL): Modified to only remove null characters. + * page/XSSAuditor.h: Reverted naming of third argument of method XSSAuditor::decodeURL + from allowControlCharacters back to allowNullCharacters. + * platform/network/ResourceResponseBase.cpp: Reverted back to rev #45003. + (WebCore::isControlCharacter): + * platform/network/ResourceResponseBase.h: Reverted back to rev #45003. + +2009-07-01 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Timothy Hatcher. + + - supported keyboard shortcuts compatible with Firebug in Scripts Debugger: + F5, Ctrl+/ (win,lin), Command+/ (mac) - continue + F10, Ctrl+' (win, lin), Command+' (mac) - step over + F11, Ctrl+; (win, lin), Command+; (mac) - step into + Shift+F11, Ctrl+Shift+; (win, lin), Command+Shift+; (mac) - step out + + - added call stack navigation shortcuts: + Ctrl+. - next call frame + Ctrl+, - previouse call frame + + https://bugs.webkit.org/show_bug.cgi?id=23849 + + * inspector/front-end/CallStackSidebarPane.js: + (WebInspector.CallStackSidebarPane): + (WebInspector.CallStackSidebarPane.prototype.handleKeyEvent): + (WebInspector.CallStackSidebarPane.prototype._selectNextCallFrameOnStack): + (WebInspector.CallStackSidebarPane.prototype._selectPreviousCallFrameOnStack): + (WebInspector.CallStackSidebarPane.prototype._selectedPlacardByIndex): + (WebInspector.CallStackSidebarPane.prototype._selectedCallFrameIndex): + * inspector/front-end/KeyboardShortcut.js: Added. + (WebInspector.KeyboardShortcut): + (WebInspector.KeyboardShortcut.makeKey): + (WebInspector.KeyboardShortcut.makeKeyFromEvent): + (WebInspector.KeyboardShortcut.makeKeyFromCodeAndModifiers_): + * inspector/front-end/ScriptsPanel.js: + (WebInspector.ScriptsPanel): + (WebInspector.ScriptsPanel.prototype.handleKeyEvent): + * inspector/front-end/WebKit.qrc: + * inspector/front-end/inspector.html: + +2009-07-01 Daniel Erat <derat@google.com> + + Reviewed by David Levin. + + Chromium Linux: Move the scrollbar thumb on middle-click. + + https://bugs.webkit.org/show_bug.cgi?id=26910 + http://code.google.com/p/chromium/issues/detail?id=11976 + + Tested by building Chrome and checking that the scrollbar moves as expected. + + * platform/chromium/ScrollbarThemeChromium.cpp: + * platform/chromium/ScrollbarThemeChromium.h: + * platform/chromium/ScrollbarThemeChromiumLinux.cpp: + * platform/chromium/ScrollbarThemeChromiumLinux.h: + * platform/chromium/ScrollbarThemeChromiumWin.cpp: + * platform/chromium/ScrollbarThemeChromiumWin.h: + +2009-07-01 Brady Eidson <beidson@apple.com> + + Reviewed by Sam Weinig. + + Add a preference/setting to toggle whether content sniffing is enabled for file URLs. + + * WebCore.base.exp: + + * page/Settings.cpp: + (WebCore::Settings::setLocalFileContentSniffingEnabled): + * page/Settings.h: + (WebCore::Settings::localFileContentSniffingEnabled): + + * platform/network/mac/ResourceHandleMac.mm: + (WebCore::ResourceHandle::start): + (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]): + +2009-07-01 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Oliver Hunt. + + Bug 26909: aria-label needs to be supported + https://bugs.webkit.org/show_bug.cgi?id=26909 + + Test: accessibility/aria-label.html + + * accessibility/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::accessibilityDescription): + * html/HTMLAttributeNames.in: + +2009-07-01 David Hyatt <hyatt@apple.com> + + Reviewed by Oliver Hunt. + + More datagrid columns work. Make sure columns cache both a style for the column header as well + as a style for the column background (behind the cells). + + Hook up to CSSStyleSelector methods for obtaining the pseudo styles for columns (stubbed out and + unimplemented). + + * css/CSSStyleSelector.cpp: + (WebCore::CSSStyleSelector::pseudoStyleForDataGridColumn): + (WebCore::CSSStyleSelector::pseudoStyleForDataGridColumnHeader): + * css/CSSStyleSelector.h: + * html/DataGridColumn.h: + (WebCore::DataGridColumn::setColumnList): + (WebCore::DataGridColumn::columnStyle): + (WebCore::DataGridColumn::setColumnStyle): + (WebCore::DataGridColumn::headerStyle): + (WebCore::DataGridColumn::setHeaderStyle): + * rendering/RenderDataGrid.cpp: + (WebCore::RenderDataGrid::recalcStyleForColumn): + (WebCore::RenderDataGrid::columnStyle): + (WebCore::RenderDataGrid::headerStyle): + (WebCore::RenderDataGrid::paintColumnHeaders): + * rendering/RenderDataGrid.h: + +2009-07-01 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Oliver Hunt. + + <rdar://problem/7009870> After <audio> movie finishes playing, Pause button fails to change + back to Play button + + Grab onto the current time when QTKit "ended" notification fires and use it as + duration from that point on as QuickTime sometimes refuses to play all the way to + the time it reports for duration and buffered. HTMLMediaElement assumes that there + more to play in this situation and tries to restart playback, endlessly. + + * platform/graphics/mac/MediaPlayerPrivateQTKit.h: + Rename m_duration to m_reportedDuration. Declare m_cachedDuration. + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): + Rename m_duration to m_reportedDuration. Initialize m_cachedDuration. + (WebCore::MediaPlayerPrivate::duration): + Return m_cachedDuration once it has been set. + (WebCore::MediaPlayerPrivate::updateStates): + Rename m_duration to m_reportedDuration. + (WebCore::MediaPlayerPrivate::didEnd): + Set m_cachedDuration to currentTime(). + +2009-07-01 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Beth Dakin. + + Bug 26900: AX: Manual spell check with Command-; does not bring up suggestions + https://bugs.webkit.org/show_bug.cgi?id=26900 + + Editable web areas should have a clickpoint that uses where the selection is. + + Test: accessibility/editable-webarea-context-menu-point.html + + * accessibility/AccessibilityObject.h: + * accessibility/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::clickPoint): + * accessibility/AccessibilityRenderObject.h: + * accessibility/mac/AccessibilityObjectWrapper.mm: + (-[AccessibilityObjectWrapper accessibilityAttributeValue:]): + +2009-07-01 David Levin <levin@chromium.org> + + Reviewed by Eric Seidel. + + Remove unused code in SVGTransformList and SVGTransformDistance + <https://bugs.webkit.org/show_bug.cgi?id=26891> + + * svg/SVGTransformDistance.cpp: + (WebCore::SVGTransformDistance::SVGTransformDistance): + * svg/SVGTransformList.cpp: + * svg/SVGTransformList.h: + +2009-07-01 David Hyatt <hyatt@apple.com> + + Reviewed by Anders Carlsson. + + Begin stubbing out functions for layout, painting and style/geometry caching on columns. Not enough + is implemented for this to do much of anything yet, but it should help keep patch sizes down. :) + + * html/DataGridColumn.cpp: + (WebCore::DataGridColumn::columnChanged): + * html/DataGridColumn.h: + (WebCore::DataGridColumn::setId): + (WebCore::DataGridColumn::setLabel): + (WebCore::DataGridColumn::setType): + (WebCore::DataGridColumn::setSortable): + (WebCore::DataGridColumn::setSortDirection): + (WebCore::DataGridColumn::setColumnList): + (WebCore::DataGridColumn::style): + (WebCore::DataGridColumn::setStyle): + (WebCore::DataGridColumn::rect): + (WebCore::DataGridColumn::setRect): + * html/DataGridColumnList.cpp: + (WebCore::DataGridColumnList::DataGridColumnList): + (WebCore::DataGridColumnList::setDataGridNeedsLayout): + (WebCore::DataGridColumnList::add): + (WebCore::DataGridColumnList::remove): + (WebCore::DataGridColumnList::move): + (WebCore::DataGridColumnList::clear): + (WebCore::DataGridColumnList::primaryColumnChanged): + * html/DataGridColumnList.h: + (WebCore::DataGridColumnList::create): + (WebCore::DataGridColumnList::dataGrid): + (WebCore::DataGridColumnList::clearDataGrid): + * html/HTMLDataGridColElement.cpp: + (WebCore::HTMLDataGridColElement::HTMLDataGridColElement): + (WebCore::HTMLDataGridColElement::findDataGridAncestor): + (WebCore::HTMLDataGridColElement::insertedIntoTree): + (WebCore::HTMLDataGridColElement::removedFromTree): + * html/HTMLDataGridColElement.h: + (WebCore::HTMLDataGridColElement::dataGrid): + * html/HTMLDataGridElement.cpp: + (WebCore::HTMLDataGridElement::HTMLDataGridElement): + (WebCore::HTMLDataGridElement::~HTMLDataGridElement): + * rendering/RenderDataGrid.cpp: + (WebCore::RenderDataGrid::styleDidChange): + (WebCore::RenderDataGrid::recalcStyleForColumns): + (WebCore::RenderDataGrid::recalcStyleForColumn): + (WebCore::RenderDataGrid::styleForColumn): + (WebCore::RenderDataGrid::layout): + (WebCore::RenderDataGrid::layoutColumns): + (WebCore::RenderDataGrid::paintColumnHeaders): + (WebCore::RenderDataGrid::paintColumnHeader): + * rendering/RenderDataGrid.h: + (WebCore::RenderDataGrid::renderName): + (WebCore::RenderDataGrid::canHaveChildren): + +2009-07-01 Daniel Bates <dbates@intudata.com> + + Reviewed by Adam Barth. + + https://bugs.webkit.org/show_bug.cgi?id=26807 + + Fixes this address by checking whether frame->document()->decoder() is null. + + * page/XSSAuditor.cpp: + (WebCore::XSSAuditor::findInRequest): + +2009-07-01 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com> + + Reviewed by George Staikos. + + Fixes: https://bugs.webkit.org/show_bug.cgi?id=26885 + + Correctly reset history length to '0', not '1'. Old relict from early WML days. + Add some new WML testcases covering the use of history length (by onenterforward event handling) + + Tests: wml/onenterforward-event.html + wml/onenterforward-inline-event.html + wml/ontimer-event.html + + * wml/WMLPageState.cpp: + (WebCore::WMLPageState::reset): + +2009-07-01 David Hyatt <hyatt@apple.com> + + Reviewed by Simon Fraser. + + Make sure setting attributes on dcol elements properly updates the corresponding DataGridColumn object. + + Added new test in fast/dom/HTMLDataGridElement. + + * html/HTMLDataGridColElement.cpp: + (WebCore::HTMLDataGridColElement::parseMappedAttribute): + * html/HTMLDataGridColElement.h: + +2009-07-01 David Hyatt <hyatt@apple.com> + + Reviewed by Tim Hatcher. + + <rdar://problem/6998524> REGRESSION (r44474): Form text field has focus ring, looks focused, + even though the field is not actually focused for keyboard input + + Add the concept of whether or not the Page is focused by adding a boolean to the focusController. This allows the + focused frame and focused node to both be cached and changed programmatically even when the Page itself doesn't + actually happen to have focus at that time. + + * WebCore.base.exp: + * page/FocusController.cpp: + (WebCore::FocusController::FocusController): + (WebCore::FocusController::setFocusedFrame): + (WebCore::FocusController::setFocused): + (WebCore::FocusController::setActive): + * page/FocusController.h: + (WebCore::FocusController::isFocused): + +2009-07-01 Jakub Wieczorek <faw217@gmail.com> + + Reviewed by Simon Hausmann. + + [Qt] Move some API headers from WebCore.pro to headers.pri so that they + get installed when running make install from the build directory. + + * WebCore.pro: + +2009-07-01 Simon Hausmann <simon.hausmann@nokia.com> + + Rubber-stamped by Ariya Hidayat. + + Ran WebKitTools/Scripts/generate-qt-inspector-resource to update the + qrc file with new png files from the web inspector. + + * inspector/front-end/WebKit.qrc: + +2009-06-30 Mark Rowe <mrowe@apple.com> + + Land some code that has a hope of compiling. + + * platform/graphics/cg/ImageSourceCG.cpp: + (WebCore::imageSourceOptions): + +2009-06-30 Stephanie Lewis <slewis@apple.com> + + Reviewed by Simon Fraser. + + Flip back on block caching. Throwing away block data, while + a perceived memory win, is a performance hit in cases where we + are repainting large images (i.e. backgrounds) frequently + (i.e. a flash video playing on top). + <rdar://problem/6933515> REGRESSION(L-SL): Large JPEG images are + decoded on drawing, slowing down painting of sites that frequently + repaint e.g. because of Flash (pandora.com, Starcraft 2) + + * platform/graphics/cg/ImageSourceCG.cpp: + (WebCore::imageSourceOptions): + +2009-06-30 Maciej Stachowiak <mjs@apple.com> + + Reviewed by Sam Weinig. + + - Rename html4.css to html.css, since we target HTML5 now + https://bugs.webkit.org/show_bug.cgi?id=26873 + + * DerivedSources.make: + * GNUmakefile.am: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * css/CSSStyleSelector.cpp: + (WebCore::loadFullDefaultStyle): + * css/html.css: Copied from css/html4.css. + * css/html4.css: Removed. + * css/themeWin.css: + * platform/Theme.h: + * platform/qt/RenderThemeQt.cpp: + (WebCore::RenderThemeQt::adjustMenuListButtonStyle): + * rendering/RenderTheme.h: + +2009-06-30 Zan Dobersek <zandobersek@gmail.com> + + Reviewed by Gustavo Noronha. + + [GTK] Drag and drop support + https://bugs.webkit.org/show_bug.cgi?id=23642 + + Define DragImageRef as GdkPixbuf and implement essential + functions which manipulate drag images. + + * platform/DragImage.h: + * platform/gtk/DragImageGtk.cpp: + (WebCore::dragImageSize): + (WebCore::deleteDragImage): + (WebCore::scaleDragImage): + (WebCore::createDragImageFromImage): + +2009-06-30 Maxime Simon <simon.maxime@gmail.com> + + Reviewed by Eric Seidel. + + StorageNamespace.cpp build issue + https://bugs.webkit.org/show_bug.cgi?id=26859 + + Moved #endif //ENABLE(DOM_STORAGE) position + so that the build doesn't fail. + The namespace WebCore was started after the #if ENABLE(DOM_STORAGE) + but closed after the #endif. + + * storage/StorageNamespace.cpp: + +2009-06-30 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Oliver Hunt. + + <rdar://problem/7020825> HTMLMediaElement should not assume seeking is only possible in + buffered time ranges + + * html/HTMLMediaElement.cpp: + Don't ASSERT if the network state goes to Idle when when the ready state is + HaveEnoughData or higher, it is perfectly legal. + (WebCore::HTMLMediaElement::setReadyState): + Don't clear m_seeking after posting a 'seeking' event. + + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::seek): + Do nothing when asked to seek to the same time we are already seeking to. Check requested + seek time against maxTimeSeekable, not maxTimeLoaded. + (WebCore::MediaPlayerPrivate::doSeek): + Don't bother stopping a movie that isn't playing. Minor cleanup to make the code more readable. + (WebCore::MediaPlayerPrivate::seekTimerFired): + Check requested seek time against maxTimeSeekable, not maxTimeLoaded. + (WebCore::MediaPlayerPrivate::updateStates): + A streaming movie has as much data as it needs once it reaches "playable", so + set the ready state to HaveFutureData. A movie with metadata doesn't drop back + to "have nothing" when seeking. A streaming movie doesn't use the network when paused. + (WebCore::MediaPlayerPrivate::timeChanged): + It may not be possible to seek to a specific time in a streamed movie but when seeking + in a streaming movie QuickTime sets the time to closest time possible and posts a + timechanged notification, so update m_seekTo so we can detect when the seek completes. + +2009-06-30 Steve Falkenburg <sfalken@apple.com> + + https://bugs.webkit.org/show_bug.cgi?id=26860 + + Reviewed by Sam Weinig. + + Blacklist Yahoo Application State plug-in for versions prior to 1.0.0.6. + Earlier versions cause corruption crashes. + + * plugins/win/PluginPackageWin.cpp: + (WebCore::PluginPackage::isPluginBlacklisted): + +2009-06-30 Dean Jackson <dino@apple.com> + + Reviewed by Simon Fraser. + + <rdar://problem/7005207> <video> in canvas broken with ACCEL_COMPOSITING + + Fix drawImage of video in CanvasRenderingContext2D when + accelerated compositing is enabled. This is done by + adding a new paint method to HTMLVideoElement that + is only called from canvas, which will create the software + renderer if necessary, but otherwise calls the regular + paint method. Meanwhile, add logic to the software video + renderer so that it can be created without calling repaint + every time it sees a new frame. + + * html/CanvasRenderingContext2D.cpp: + (WebCore::CanvasRenderingContext2D::drawImage): + * html/HTMLVideoElement.cpp: + (WebCore::HTMLVideoElement::paintCurrentFrameInContext): + * html/HTMLVideoElement.h: + * platform/graphics/MediaPlayer.cpp: + (WebCore::MediaPlayer::paintCurrentFrameInContext): + * platform/graphics/MediaPlayer.h: + * platform/graphics/MediaPlayerPrivate.h: + (WebCore::MediaPlayerPrivateInterface::paintCurrentFrameInContext): + * platform/graphics/mac/MediaPlayerPrivateQTKit.h: + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::createQTMovie): + (WebCore::MediaPlayerPrivate::createQTVideoRenderer): + (WebCore::MediaPlayerPrivate::currentRenderingMode): + (WebCore::MediaPlayerPrivate::setUpVideoRendering): + (WebCore::MediaPlayerPrivate::tearDownVideoRendering): + (WebCore::MediaPlayerPrivate::paintCurrentFrameInContext): + +2009-06-30 David Hyatt <hyatt@apple.com> + + Reviewed by Beth Dakin. + + https://bugs.webkit.org/show_bug.cgi?id=26858 + + Get <dcol> elements reflected into the datagrid's column list. Make sure columns get added/removed + properly. (Attribute changes are still not caught. That is coming in a separate patch.) + + Added fast/dom/HTMLDataGridElement/DataGridColumns-dom.html + + * html/DataGridColumn.h: + (WebCore::DataGridColumn::create): + (WebCore::DataGridColumn::setColumnList): + (WebCore::DataGridColumn::DataGridColumn): + * html/DataGridColumnList.cpp: + (WebCore::DataGridColumnList::add): + (WebCore::DataGridColumnList::remove): + (WebCore::DataGridColumnList::clear): + * html/DataGridColumnList.h: + * html/HTMLDataGridColElement.cpp: + (WebCore::HTMLDataGridColElement::HTMLDataGridColElement): + (WebCore::HTMLDataGridColElement::findDatagridAncestor): + (WebCore::HTMLDataGridColElement::ensureColumn): + (WebCore::HTMLDataGridColElement::insertedIntoTree): + (WebCore::HTMLDataGridColElement::removedFromTree): + (WebCore::HTMLDataGridColElement::sortable): + (WebCore::HTMLDataGridColElement::setSortable): + * html/HTMLDataGridColElement.h: + (WebCore::HTMLDataGridColElement::column): + (WebCore::HTMLDataGridColElement::setColumn): + (WebCore::HTMLDataGridColElement::datagrid): + * html/HTMLDataGridElement.cpp: + (WebCore::HTMLDataGridElement::setDataSource): + (WebCore::HTMLDataGridElement::dataSource): + +2009-06-30 Jeremy Orlow (jorlow@chromium.org) + + Reviewed by David Levin. + + https://bugs.webkit.org/show_bug.cgi?id=26852 + + Fix some minor build issues in the v8 bindings. + + * bindings/v8/custom/V8StorageCustom.cpp: + (WebCore::V8Custom::v8StorageNamedPropertyEnumerator): + (WebCore::storageGetter): + (WebCore::storageSetter): + (WebCore::storageDeleter): + * storage/StorageArea.cpp: + +2009-06-30 Adam Langley <agl@google.com> + + Reviewed by Eric Seidel. + + Chromium Linux: use different fonts for each script run. + + https://bugs.webkit.org/show_bug.cgi?id=26853 + + Previously, when rendering complex text, we picked a single font which + could render all the glyphs needed for the run. However, this meant + that sometimes lines were rendered with, for example, [LATIN, THAI, + LATIN] and we could end up with a different font for the Latin parts + than for lines without Thai in them. + + With this patch, we pick a font for each script run. + + This change is covered by existing layout tests. + + * platform/graphics/chromium/FontLinux.cpp: + (WebCore::Font::drawGlyphs): + (WebCore::TextRunWalker::TextRunWalker): + (WebCore::TextRunWalker::~TextRunWalker): + (WebCore::TextRunWalker::nextScriptRun): + (WebCore::TextRunWalker::fontPlatformDataForScriptRun): + (WebCore::TextRunWalker::setupFontForScriptRun): + (WebCore::TextRunWalker::allocHarfbuzzFont): + (WebCore::setupForTextPainting): + (WebCore::Font::drawComplexText): + (WebCore::Font::floatWidthForComplexText): + (WebCore::Font::offsetForPositionForComplexText): + (WebCore::Font::selectionRectForComplexText): + * platform/graphics/chromium/FontPlatformDataLinux.cpp: + (WebCore::FontPlatformData::setupPaint): + +2009-06-30 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dave Hyatt, Dan Bernstein. + + <rdar://problem/6191676> Redraw issues scrolling overflow:scroll div with compositing + + There are two parts to this fix. First, if a compositing layer has overflow clipping + or a mask, then the compositing layer does not need to be sized to encompass all + non-composited children. + + Second, when scrolling, we have to back up to the compositing ancestor and have + it reposition descendant compositing layers, because overflow doesn't follow + the z-order tree. + + Test: compositing/overflow/overflow-scroll.html + + * page/FrameView.cpp: + (WebCore::FrameView::layout): + Pass the UpdateCompositingLayers flag when updating layers after layout, so that + we can reposition compositing layers if we're not about to do a layer rebuild. + + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::updateLayerPositions): + Only update compositing layers if the flag is set. + + (WebCore::RenderLayer::scrollToOffset): + Do compositing layer updates from the compositing ancestor in one fell swoop. + + * rendering/RenderLayer.h: + Replace the unused FullUpdate flag with one that allows us to specify whether + compositing layers should be updated. + + * rendering/RenderLayerBacking.cpp: + (WebCore::RenderLayerBacking::updateAfterLayout): + * rendering/RenderLayerBacking.h: + New param that we can pass to updateCompositingDescendantGeometry to control + whether the update goes deep. + + * rendering/RenderLayerCompositor.cpp: + (WebCore::RenderLayerCompositor::calculateCompositedBounds): + We can return earlier if this is not a self-painting layer. + If the layer has overflow clip or a mask, then the composited bounds are just the + local bounds, excluding descendants. + + (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry): + * rendering/RenderLayerCompositor.h: + Renamed from updateCompositingChildrenGeometry, and added a flag that allows + us to do a deep update. + +2009-06-30 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Dan Bernstein. + + https://bugs.webkit.org/show_bug.cgi?id=26764 + Uncaught NOT_FOUND_ERR: DOMException 8 loading empty text file + + Test: fast/parser/empty-text-resource.html + + * loader/TextDocument.cpp: (WebCore::TextTokenizer::finish): Create document tree if it + hasn't been created yet. + +2009-06-30 Brian Weinstein <bweinstein@apple.com> + + Reviewed by Adam Roben. + + Renamed scrollbarUnderPoint to scrollbarAtPoint. + + * page/EventHandler.cpp: + (WebCore::EventHandler::hitTestResultAtPoint): + (WebCore::EventHandler::handleMousePressEvent): + (WebCore::EventHandler::handleMouseMoveEvent): + * platform/ScrollView.cpp: + (WebCore::ScrollView::scrollbarAtPoint): + * platform/ScrollView.h: + * platform/chromium/PopupMenuChromium.cpp: + (WebCore::PopupListBox::handleMouseDownEvent): + (WebCore::PopupListBox::handleMouseMoveEvent): + +2009-06-30 Oliver Hunt <oliver@apple.com> + + Reviewed by Geoff Garen. + + <rdar://problem/6960286> CrashTracer: [REGRESSION] 1120 crashes in Safari at com.apple.WebCore WebCore::JSLazyEventListener::parseCode const + 62 + + <select> elements and other elements the produce popups can keep their popups + live across a page load. If this occurs and the <select> element has an + onchange handler it is possible to get into a state where we try to execute + JS on a page that no longer has an execution context. + + * bindings/js/JSLazyEventListener.cpp: + (WebCore::JSLazyEventListener::parseCode): + Be paranoid and add a null check, but assert as well because we shouldn't + actually get to this point. + * rendering/RenderMenuList.cpp: + (WebCore::RenderMenuList::valueChanged): + +2009-06-30 Drew Wilson <atwilson@google.com> + + Reviewed by David Levin. + + <https://bugs.webkit.org/show_bug.cgi?id=25435> + + Added support for sending MessagePorts to/from Workers via postMessage(). + + * bindings/js/JSWorkerContextCustom.cpp: + (WebCore::JSWorkerContext::messageChannel): + Exposes MessageChannel constructor WorkerContext. + * bindings/js/JSWorkerCustom.cpp: + * bindings/v8/custom/V8MessageChannelConstructor.cpp: + (WebCore::CALLBACK_FUNC_DECL): + Now correctly handles being instantiated from within a Worker. + * platform/CrossThreadCopier.h: + (WebCore::GenericWorkerTaskTraits<PassOwnPtr>): + Added support for passing PassOwnPtr as argument to GenericWorkerTask + * workers/GenericWorkerTask.h: + (WebCore::): + * workers/Worker.cpp: + (WebCore::Worker::postMessage): + Now handles disentangling/entangling MessagePorts sent to/from via postMessage. + (WebCore::Worker::dispatchMessage): + * workers/Worker.h: + * workers/Worker.idl: + Added an optional MessagePort argument to postMessage() + * workers/WorkerContext.cpp: + (WebCore::WorkerContext::hasPendingActivity): + Workers now report pending activity whenever there are remotely entangled ports. + (WebCore::WorkerContext::postMessage): + Now handles disentangling/entangling MessagePorts sent to/from via postMessage. + (WebCore::WorkerContext::dispatchMessage): + * workers/WorkerContext.h: + * workers/WorkerContext.idl: + Added an optional MessagePort argument to postMessage() + * workers/WorkerContextProxy.h: + * workers/WorkerMessagingProxy.cpp: + Updated messaging infrastructure to transport an optional MessagePort/MessagePortChannel. + (WebCore::MessageWorkerContextTask::create): + (WebCore::MessageWorkerContextTask::MessageWorkerContextTask): + (WebCore::MessageWorkerContextTask::performTask): + (WebCore::MessageWorkerTask::create): + (WebCore::MessageWorkerTask::MessageWorkerTask): + (WebCore::MessageWorkerTask::performTask): + (WebCore::WorkerMessagingProxy::postMessageToWorkerObject): + (WebCore::WorkerMessagingProxy::postMessageToWorkerContext): + * workers/WorkerMessagingProxy.h: + Added additional postMessage() API that accepts a MessagePort + * workers/WorkerObjectProxy.h: + Added additional postMessage() API that accepts a MessagePort + +2009-06-30 Adam Langley <agl@google.com> + + Reviewed by Eric Seidel. + + Chromium: Add complex text support on Linux. + + https://bugs.webkit.org/show_bug.cgi?id=25068 + + This patch adds complex text support on Linux using Harfbuzz. It's not + the fastest code possible: some caching of font tables will certainly + be required. However, it's probably the simplest code that works. + + This will require checking in new baselines in the Chromium tree for + those layout tests which now pass. + + * platform/graphics/chromium/FontLinux.cpp: + (WebCore::Font::drawGlyphs): + (WebCore::truncateFixedPointToInteger): + (WebCore::TextRunWalker::TextRunWalker): + (WebCore::TextRunWalker::~TextRunWalker): + (WebCore::TextRunWalker::reset): + (WebCore::TextRunWalker::setXOffsetToZero): + (WebCore::TextRunWalker::rtl): + (WebCore::TextRunWalker::setBackwardsIteration): + (WebCore::TextRunWalker::nextScriptRun): + (WebCore::TextRunWalker::glyphs): + (WebCore::TextRunWalker::length): + (WebCore::TextRunWalker::xPositions): + (WebCore::TextRunWalker::advances): + (WebCore::TextRunWalker::width): + (WebCore::TextRunWalker::logClusters): + (WebCore::TextRunWalker::numCodePoints): + (WebCore::TextRunWalker::widthOfFullRun): + (WebCore::TextRunWalker::allocHarfbuzzFont): + (WebCore::TextRunWalker::deleteGlyphArrays): + (WebCore::TextRunWalker::createGlyphArrays): + (WebCore::TextRunWalker::expandGlyphArrays): + (WebCore::TextRunWalker::shapeGlyphs): + (WebCore::TextRunWalker::setGlyphXPositions): + (WebCore::setupForTextPainting): + (WebCore::fontPlatformDataForTextRun): + (WebCore::Font::drawComplexText): + (WebCore::Font::floatWidthForComplexText): + (WebCore::glyphIndexForXPositionInScriptRun): + (WebCore::Font::offsetForPositionForComplexText): + (WebCore::Font::selectionRectForComplexText): + * platform/graphics/chromium/HarfbuzzSkia.cpp: Added. + (WebCore::SkiaScalarToHarfbuzzFixed): + (WebCore::stringToGlyphs): + (WebCore::glyphsToAdvances): + (WebCore::canRender): + (WebCore::getOutlinePoint): + (WebCore::getGlyphMetrics): + (WebCore::getFontMetric): + (WebCore::harfbuzzSkiaGetTable): + +2009-06-30 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Simon Fraser. + + <rdar://problem/7019799> Slow loading MediaDocument can fall back to plug-in unnecessarily + + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::updateStates): + Always fall back to a plug-in if m_hasUnsupportedTracks is set. + (WebCore::MediaPlayerPrivate::disableUnsupportedTracks): + Set m_hasUnsupportedTracks if we disable a track. + +2009-06-30 Nate Chapin <japhet@chromium.org> + + Reviewed by Dimitri Glazkov. + + Fix inverted if/else that's causing a layout test in src.chromium.org to fail. + + https://bugs.webkit.org/show_bug.cgi?id=26820 + + * bindings/v8/V8Proxy.cpp: + (WebCore::GCPrologueVisitor::visitDOMWrapper): if (port2), not if (!port2). + +2009-06-30 Dan Bernstein <mitz@apple.com> + + Reviewed by Dave Hyatt. + + - fix <rdar://problem/6946611> REGRESSION (r30673): Shade10:" D_Snap + to Grid" window is clipping + + Added an app-specific quirk to revert the behavior of <link> elements + to the way it was before r30673, namely that if the rel attribute + is not "stylesheet" but the type attribute contains "text/css", the + link behaves as a stylesheet link. + + * WebCore.base.exp: Exported setTreatsAnyTextCSSLinkAsStylesheet(). + * html/HTMLLinkElement.cpp: + (WebCore::HTMLLinkElement::process): Check + Settings::treatsAnyTextCSSLinkAsStylesheet() and if true, allow a + style sheet link if the type contains "text/css". + * page/Settings.cpp: + (WebCore::Settings::Settings): + Initialize m_treatsAnyTextCSSLinkAsStylesheet. + (WebCore::Settings::setTreatsAnyTextCSSLinkAsStylesheet): Added. + * page/Settings.h: + (WebCore::Settings::treatsAnyTextCSSLinkAsStylesheet): Added. + +2009-06-30 Adrien Nader <camaradetux@gmail.com> + + Reviewed by Xan Lopez. + + Fix typo in GNUMakefile.am: it reads WebCOre instead of WebCore. + + * GNUmakefile.am: + +2009-06-30 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Xan Lopez. + + [Gtk] Turn on ENABLE_DATAGRID so we can run the layout tests. + + * GNUmakefile.am: + +2009-06-30 Raju Kunnath <raju.kunnath@nokia.com> + + Reviewed by Simon Hausmann. + + <https://bugs.webkit.org/show_bug.cgi?id=26752> + + [Qt] Windows release build issue with Qt4.5 due to -GL flag on msvc2005 and msvc2008. + + * WebCore.pro: Removed -GL compiler option for win32-msvc2005|win32-msvc2008. + +2009-06-30 Xan Lopez <xlopez@igalia.com> + + Reviewed by Jan Alonzo. + + Initialize member variables in the right order. Fixes compiler + warning. + + * platform/image-decoders/bmp/BMPImageReader.cpp: + (WebCore::BMPImageReader::BMPImageReader): + +2009-06-29 Xan Lopez <xlopez@igalia.com> + + Reviewed by David Levin. + + https://bugs.webkit.org/show_bug.cgi?id=26831 + Fix compiler warning in WorkerLoaderProxy.h + + Forward declaration of a class within a class is not allowed, + since the compiler can't know if the declaration is legal at that + point. This gives the following compiler warning: + + ../../WebCore/workers/WorkerLoaderProxy.h:40: warning: declaration + "class WebCore::ScriptExecutionContext::Task" does not declare + anything + + Include the full ScriptExecutionHeader header instead. + + * workers/WorkerLoaderProxy.h: + +2009-06-29 Xan Lopez <xlopez@igalia.com> + + Reviewed by Jan Alonzo. + + Remove unused function. + + * plugins/gtk/PluginPackageGtk.cpp: + +2009-06-29 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein. + + Change RenderLayer::updateLayerPositions() to use a bitmask instead of two + boolean arguments. FullUpdate is unused at present, but will be used soon. + + * page/FrameView.cpp: + (WebCore::FrameView::layout): + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::updateLayerPositions): + (WebCore::RenderLayer::scrollToOffset): + * rendering/RenderLayer.h: + (WebCore::RenderLayer::): + +2009-06-29 Nate Chapin <japhet@chromium.org> + + Reviewed by Dimitri Glazkov. + + Fix one more bad merge in V8Proxy. + + https://bugs.webkit.org/show_bug.cgi?id=26819 + + * bindings/v8/V8Proxy.cpp: + (WebCore::V8Proxy::setDOMException): setDOMExceptionHelper() instead of convertToV8Object(). + +2009-06-29 Sam Weinig <sam@webkit.org> + + Reviewed by Mark Rowe. + + Remove more unused scons support. + + * SConstruct: Removed. + +2009-06-29 Sam Weinig <sam@webkit.org> + + Reviewed by Dave Hyatt. + + Fix some incorrect create functions. + + * html/DataGridColumn.h: + (WebCore::DataGridColumn::create): + * html/DataGridColumnList.h: + (WebCore::DataGridColumnList::create): + +2009-06-29 Sam Weinig <sam@webkit.org> + + Reviewed by Dave Hyatt. + + Remove initialize method from DataGridDataSource and add + DOMDataGridDataSource. + + * GNUmakefile.am: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * WebCoreSources.bkl: + * bindings/js/JSDataGridDataSource.cpp: + * bindings/js/JSDataGridDataSource.h: + * bindings/js/JSHTMLDataGridElementCustom.cpp: + (WebCore::JSHTMLDataGridElement::setDataSource): + * html/DOMDataGridDataSource.cpp: Added. + (WebCore::DOMDataGridDataSource::DOMDataGridDataSource): + (WebCore::DOMDataGridDataSource::~DOMDataGridDataSource): + * html/DOMDataGridDataSource.h: Added. + (WebCore::DOMDataGridDataSource::create): + (WebCore::DOMDataGridDataSource::isDOMDataGridDataSource): + (WebCore::asDOMDataGridDataSource): + * html/DataGridDataSource.h: + (WebCore::DataGridDataSource::isDOMDataGridDataSource): + (WebCore::DataGridDataSource::isJSDataGridDataSource): + * html/HTMLDataGridElement.cpp: + (WebCore::HTMLDataGridElement::HTMLDataGridElement): + (WebCore::HTMLDataGridElement::setDataSource): + (WebCore::HTMLDataGridElement::dataSource): + * html/HTMLDataGridElement.h: + +2009-06-29 Nate Chapin <japhet@chromium.org> + + Reviewed by Dimitri Glazkov. + + Fix a couple of bad merge items from my previous V8Proxy patch. + + https://bugs.webkit.org/show_bug.cgi?id=26813 + + * bindings/v8/V8Collection.h: + (WebCore::nodeCollectionNamedPropertyGetter): Fix a bad function name that slipped through. + * bindings/v8/V8Proxy.cpp: + (WebCore::V8Proxy::setDOMException): Fix a bad merge that caused a couple of lines of extraneous, breaking code to get in. + +2009-06-29 Chris Marrin <cmarrin@apple.com> + + Reviewed by Simon Fraser <simon.fraser@apple.com>. + + https://bugs.webkit.org/show_bug.cgi?id=26706 + + Fixed crash due to dereference of m_toStyle + + * page/animation/ImplicitAnimation.cpp: + (WebCore::ImplicitAnimation::isTargetPropertyEqual): + +2009-06-29 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Simon Fraser. + + <rdar://problem/7014813> Ask media engine if a movie is streamed or downloaded. + + * WebCore.base.exp: + Export _wkQTMovieGetType + + * platform/graphics/MediaPlayer.cpp: + (WebCore::MediaPlayer::hasSingleSecurityOrigin): + Move to keep with other non-callback functions. + (WebCore::MediaPlayer::movieLoadType): + New, returns the movie type. + * platform/graphics/MediaPlayer.h: + Declare MovieLoadType enum and movieLoadType method. + + * platform/graphics/MediaPlayerPrivate.h: + (WebCore::MediaPlayerPrivateInterface::movieLoadType): + Default implementation of movieLoadType + + * platform/graphics/mac/MediaPlayerPrivateQTKit.h: + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::createQTMovie): + Don't base m_isStreaming on protocol, there are other types of streaming movies. + (WebCore::MediaPlayerPrivate::maxTimeBuffered): + Don't assume all streams are unbuffered. + (WebCore::MediaPlayerPrivate::updateStates): + Update m_isStreaming once we have metadata. + (WebCore::MediaPlayerPrivate::disableUnsupportedTracks): + Tracks that are disabled to begin with shouldn't be included in m_enabledTrackCount. + (WebCore::MediaPlayerPrivate::movieLoadType): + New, return movie type. + + * platform/mac/WebCoreSystemInterface.h: + * platform/mac/WebCoreSystemInterface.mm: + Add wkQTMovieGetType. + +2009-06-29 Alice Liu <alice.liu@apple.com> + + Fixed <rdar://problem/6930280> Reproducible crash at USA Today photo gallery + + Reviewed by Anders Carlsson. + + No test added because the crash requires a flash plugin + + * plugins/win/PluginMessageThrottlerWin.cpp: + Rely on the hWnd of the plugin to tell us whether the PluginView has + been deleted during execution of its wndProc. + (WebCore::PluginMessageThrottlerWin::messageThrottleTimerFired): + +2009-06-29 Dmitry Titov <dimich@chromium.org> + + Reviewed by David Levin. + + https://bugs.webkit.org/show_bug.cgi?id=26811 + [Chromium] Remove a flag and functions used to enable workers in runtime. + + * bindings/v8/WorkerContextExecutionProxy.cpp: + * bindings/v8/WorkerContextExecutionProxy.h: + +2009-06-29 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dave Hyatt. + + <rdar://problem/6976712> Text antialiasing problems when rendering into compositing layers. + + Improve the appearance of text in compositing layers by making use of + CA's layer geometry flipping, rather that doing it ourselves with a flip + transform. This allows CG to use font autohinting in the layer text. + + * platform/graphics/GraphicsLayer.h: + (WebCore::GraphicsLayer::setGeometryOrientation): + (WebCore::GraphicsLayer::geometryOrientation): + New methods to set whether this layer uses flipped geometry. + + * platform/graphics/mac/GraphicsLayerCA.h: + * platform/graphics/mac/GraphicsLayerCA.mm: + (WebCore::GraphicsLayerCA::setGeometryOrientation): + (WebCore::GraphicsLayerCA::geometryOrientation): + Subclass in order to call into CA + + (WebCore::GraphicsLayerCA::setContentsLayer): + Now that CA is doing the geometry flipping, we no longer need to flip the content + layers for image and video manually + + * rendering/RenderLayerCompositor.cpp: + (WebCore::RenderLayerCompositor::ensureRootPlatformLayer): + Turn on flipping on the root layer. + +2009-06-29 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com> + + Reviewed by Adam Treat. + + Fixes: https://bugs.webkit.org/show_bug.cgi?id=26246 + + Implement most WML specific <select> element features. + Add 'iname' / 'ivalue' support and support variable references. + + Add two tests covering most select/variable related functionality. + Needs more tests when adding full 'iname' / 'ivalue' support (used in conjuction with onpick). + + Tests: http/tests/wml/post-data-to-server.html + wml/select-element-variables.html + + * dom/SelectElement.cpp: + (WebCore::SelectElement::optionCount): Refactored from HTMLSelectElement::length() for use within HTML & WML. + * dom/SelectElement.h: + * html/HTMLSelectElement.cpp: + (WebCore::HTMLSelectElement::length): Use new SelectElement::optionCount() function. (no functional changes for HTML). + * wml/WMLCardElement.cpp: + (WebCore::WMLCardElement::handleIntrinsicEventIfNeeded): Activated commented code taking care of WMLSelectElement initialization. + * wml/WMLSelectElement.cpp: Add a bunch of new code handling WML specific feature processing. + (WebCore::WMLSelectElement::title): + (WebCore::WMLSelectElement::formControlName): + (WebCore::WMLSelectElement::defaultEventHandler): + (WebCore::WMLSelectElement::selectInitialOptions): + (WebCore::WMLSelectElement::calculateDefaultOptionIndices): + (WebCore::WMLSelectElement::selectDefaultOptions): + (WebCore::WMLSelectElement::initializeVariables): + (WebCore::WMLSelectElement::updateVariables): + (WebCore::WMLSelectElement::parseIndexValueString): + (WebCore::WMLSelectElement::valueStringToOptionIndices): + (WebCore::WMLSelectElement::optionIndicesToValueString): + (WebCore::WMLSelectElement::optionIndicesToString): + (WebCore::WMLSelectElement::name): + (WebCore::WMLSelectElement::value): + (WebCore::WMLSelectElement::iname): + (WebCore::WMLSelectElement::ivalue): + * wml/WMLSelectElement.h: + +2009-06-29 David Hyatt <hyatt@apple.com> + + Reviewed by Adam Roben. + + Put <datagrid> behind an ifdef. + + * Configurations/FeatureDefines.xcconfig: + * bindings/js/JSDataGridColumnListCustom.cpp: + * bindings/js/JSDataGridDataSource.cpp: + * bindings/js/JSDataGridDataSource.h: + * bindings/js/JSHTMLDataGridElementCustom.cpp: + * html/DataGridColumn.cpp: + * html/DataGridColumn.h: + * html/DataGridColumn.idl: + * html/DataGridColumnList.cpp: + * html/DataGridColumnList.h: + * html/DataGridColumnList.idl: + * html/DataGridDataSource.h: + * html/HTMLDataGridCellElement.cpp: + * html/HTMLDataGridCellElement.h: + * html/HTMLDataGridCellElement.idl: + * html/HTMLDataGridColElement.cpp: + * html/HTMLDataGridColElement.h: + * html/HTMLDataGridColElement.idl: + * html/HTMLDataGridElement.cpp: + * html/HTMLDataGridElement.h: + * html/HTMLDataGridElement.idl: + * html/HTMLDataGridRowElement.cpp: + * html/HTMLDataGridRowElement.h: + * html/HTMLDataGridRowElement.idl: + * html/HTMLTagNames.in: + * page/DOMWindow.idl: + * rendering/RenderDataGrid.cpp: + * rendering/RenderDataGrid.h: + +2009-06-29 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Ariya Hidayat and Adam Roben. + + Fix compilation with MINGW. Ported MSVC inline assembly to + GNU inline assembly. Also fixed casting errors where gcc + refused to cast a pointer-to-function to a pointer-to-object, + without an intermediate cast to a non-pointer type. + + * plugins/win/PluginViewWin.cpp: + (WebCore::PluginView::hookedBeginPaint): + (WebCore::PluginView::hookedEndPaint): + (WebCore::hook): + (WebCore::setUpOffscreenPaintingHooks): + 2009-06-26 John Sullivan <sullivan@apple.com> Added Speech submenu to context menu on Mac when there's a non-editable selection diff --git a/src/3rdparty/webkit/WebCore/DerivedSources.cpp b/src/3rdparty/webkit/WebCore/DerivedSources.cpp index 3075a4b..69cc3e3 100644 --- a/src/3rdparty/webkit/WebCore/DerivedSources.cpp +++ b/src/3rdparty/webkit/WebCore/DerivedSources.cpp @@ -317,6 +317,7 @@ #include "JSTimeRanges.cpp" #include "JSTreeWalker.cpp" #include "JSUIEvent.cpp" +#include "JSValidityState.cpp" #include "JSVoidCallback.cpp" #include "JSWebKitAnimationEvent.cpp" #include "JSWebKitCSSKeyframeRule.cpp" diff --git a/src/3rdparty/webkit/WebCore/WebCore.gypi b/src/3rdparty/webkit/WebCore/WebCore.gypi new file mode 100644 index 0000000..d96da86 --- /dev/null +++ b/src/3rdparty/webkit/WebCore/WebCore.gypi @@ -0,0 +1,3334 @@ +{ + 'variables': { + 'webcore_files': [ + + #IDL files + 'css/CSSCharsetRule.idl', + 'css/CSSFontFaceRule.idl', + 'css/CSSImportRule.idl', + 'css/CSSMediaRule.idl', + 'css/CSSPageRule.idl', + 'css/CSSPrimitiveValue.idl', + 'css/CSSRule.idl', + 'css/CSSRuleList.idl', + 'css/CSSStyleDeclaration.idl', + 'css/CSSStyleRule.idl', + 'css/CSSStyleSheet.idl', + 'css/CSSUnknownRule.idl', + 'css/CSSValue.idl', + 'css/CSSValueList.idl', + 'css/CSSVariablesDeclaration.idl', + 'css/CSSVariablesRule.idl', + 'css/Counter.idl', + 'css/MediaList.idl', + 'css/RGBColor.idl', + 'css/Rect.idl', + 'css/StyleSheet.idl', + 'css/StyleSheetList.idl', + 'css/WebKitCSSKeyframeRule.idl', + 'css/WebKitCSSKeyframesRule.idl', + 'css/WebKitCSSMatrix.idl', + 'css/WebKitCSSTransformValue.idl', + 'dom/Attr.idl', + 'dom/CDATASection.idl', + 'dom/CharacterData.idl', + 'dom/ClientRect.idl', + 'dom/ClientRectList.idl', + 'dom/Clipboard.idl', + 'dom/Comment.idl', + 'dom/DOMCoreException.idl', + 'dom/DOMImplementation.idl', + 'dom/Document.idl', + 'dom/DocumentFragment.idl', + 'dom/DocumentType.idl', + 'dom/Element.idl', + 'dom/Entity.idl', + 'dom/EntityReference.idl', + 'dom/Event.idl', + 'dom/EventException.idl', + 'dom/EventListener.idl', + 'dom/EventTarget.idl', + 'dom/KeyboardEvent.idl', + 'dom/MessageChannel.idl', + 'dom/MessageEvent.idl', + 'dom/MessagePort.idl', + 'dom/MouseEvent.idl', + 'dom/MutationEvent.idl', + 'dom/NamedNodeMap.idl', + 'dom/Node.idl', + 'dom/NodeFilter.idl', + 'dom/NodeIterator.idl', + 'dom/NodeList.idl', + 'dom/Notation.idl', + 'dom/OverflowEvent.idl', + 'dom/ProcessingInstruction.idl', + 'dom/ProgressEvent.idl', + 'dom/Range.idl', + 'dom/RangeException.idl', + 'dom/Text.idl', + 'dom/TextEvent.idl', + 'dom/TreeWalker.idl', + 'dom/UIEvent.idl', + 'dom/WebKitAnimationEvent.idl', + 'dom/WebKitTransitionEvent.idl', + 'dom/WheelEvent.idl', + 'html/CanvasGradient.idl', + 'html/CanvasPattern.idl', + 'html/CanvasPixelArray.idl', + 'html/CanvasRenderingContext2D.idl', + 'html/DataGridColumn.idl', + 'html/DataGridColumnList.idl', + 'html/File.idl', + 'html/FileList.idl', + 'html/HTMLAnchorElement.idl', + 'html/HTMLAppletElement.idl', + 'html/HTMLAreaElement.idl', + 'html/HTMLAudioElement.idl', + 'html/HTMLBRElement.idl', + 'html/HTMLBaseElement.idl', + 'html/HTMLBaseFontElement.idl', + 'html/HTMLBlockquoteElement.idl', + 'html/HTMLBodyElement.idl', + 'html/HTMLButtonElement.idl', + 'html/HTMLCanvasElement.idl', + 'html/HTMLCollection.idl', + 'html/HTMLDListElement.idl', + 'html/HTMLDataGridCellElement.idl', + 'html/HTMLDataGridColElement.idl', + 'html/HTMLDataGridElement.idl', + 'html/HTMLDataGridRowElement.idl', + 'html/HTMLDirectoryElement.idl', + 'html/HTMLDivElement.idl', + 'html/HTMLDocument.idl', + 'html/HTMLElement.idl', + 'html/HTMLEmbedElement.idl', + 'html/HTMLFieldSetElement.idl', + 'html/HTMLFontElement.idl', + 'html/HTMLFormElement.idl', + 'html/HTMLFrameElement.idl', + 'html/HTMLFrameSetElement.idl', + 'html/HTMLHRElement.idl', + 'html/HTMLHeadElement.idl', + 'html/HTMLHeadingElement.idl', + 'html/HTMLHtmlElement.idl', + 'html/HTMLIFrameElement.idl', + 'html/HTMLImageElement.idl', + 'html/HTMLInputElement.idl', + 'html/HTMLIsIndexElement.idl', + 'html/HTMLLIElement.idl', + 'html/HTMLLabelElement.idl', + 'html/HTMLLegendElement.idl', + 'html/HTMLLinkElement.idl', + 'html/HTMLMapElement.idl', + 'html/HTMLMarqueeElement.idl', + 'html/HTMLMediaElement.idl', + 'html/HTMLMenuElement.idl', + 'html/HTMLMetaElement.idl', + 'html/HTMLModElement.idl', + 'html/HTMLOListElement.idl', + 'html/HTMLObjectElement.idl', + 'html/HTMLOptGroupElement.idl', + 'html/HTMLOptionElement.idl', + 'html/HTMLOptionsCollection.idl', + 'html/HTMLParagraphElement.idl', + 'html/HTMLParamElement.idl', + 'html/HTMLPreElement.idl', + 'html/HTMLQuoteElement.idl', + 'html/HTMLScriptElement.idl', + 'html/HTMLSelectElement.idl', + 'html/HTMLSourceElement.idl', + 'html/HTMLStyleElement.idl', + 'html/HTMLTableCaptionElement.idl', + 'html/HTMLTableCellElement.idl', + 'html/HTMLTableColElement.idl', + 'html/HTMLTableElement.idl', + 'html/HTMLTableRowElement.idl', + 'html/HTMLTableSectionElement.idl', + 'html/HTMLTextAreaElement.idl', + 'html/HTMLTitleElement.idl', + 'html/HTMLUListElement.idl', + 'html/HTMLVideoElement.idl', + 'html/ImageData.idl', + 'html/MediaError.idl', + 'html/TextMetrics.idl', + 'html/TimeRanges.idl', + 'html/ValidityState.idl', + 'html/VoidCallback.idl', + 'inspector/InspectorController.idl', + 'inspector/JavaScriptCallFrame.idl', + 'loader/appcache/DOMApplicationCache.idl', + 'page/AbstractView.idl', + 'page/BarInfo.idl', + 'page/Console.idl', + 'page/DOMSelection.idl', + 'page/DOMWindow.idl', + 'page/Geolocation.idl', + 'page/Geoposition.idl', + 'page/History.idl', + 'page/Location.idl', + 'page/Navigator.idl', + 'page/PositionCallback.idl', + 'page/PositionError.idl', + 'page/PositionErrorCallback.idl', + 'page/Screen.idl', + 'page/WebKitPoint.idl', + 'page/WorkerNavigator.idl', + 'plugins/MimeType.idl', + 'plugins/MimeTypeArray.idl', + 'plugins/Plugin.idl', + 'plugins/PluginArray.idl', + 'storage/Database.idl', + 'storage/SQLError.idl', + 'storage/SQLResultSet.idl', + 'storage/SQLResultSetRowList.idl', + 'storage/SQLTransaction.idl', + 'storage/Storage.idl', + 'storage/StorageEvent.idl', + 'svg/ElementTimeControl.idl', + 'svg/SVGAElement.idl', + 'svg/SVGAltGlyphElement.idl', + 'svg/SVGAngle.idl', + 'svg/SVGAnimateColorElement.idl', + 'svg/SVGAnimateElement.idl', + 'svg/SVGAnimateTransformElement.idl', + 'svg/SVGAnimatedAngle.idl', + 'svg/SVGAnimatedBoolean.idl', + 'svg/SVGAnimatedEnumeration.idl', + 'svg/SVGAnimatedInteger.idl', + 'svg/SVGAnimatedLength.idl', + 'svg/SVGAnimatedLengthList.idl', + 'svg/SVGAnimatedNumber.idl', + 'svg/SVGAnimatedNumberList.idl', + 'svg/SVGAnimatedPathData.idl', + 'svg/SVGAnimatedPoints.idl', + 'svg/SVGAnimatedPreserveAspectRatio.idl', + 'svg/SVGAnimatedRect.idl', + 'svg/SVGAnimatedString.idl', + 'svg/SVGAnimatedTransformList.idl', + 'svg/SVGAnimationElement.idl', + 'svg/SVGCircleElement.idl', + 'svg/SVGClipPathElement.idl', + 'svg/SVGColor.idl', + 'svg/SVGComponentTransferFunctionElement.idl', + 'svg/SVGCursorElement.idl', + 'svg/SVGDefinitionSrcElement.idl', + 'svg/SVGDefsElement.idl', + 'svg/SVGDescElement.idl', + 'svg/SVGDocument.idl', + 'svg/SVGElement.idl', + 'svg/SVGElementInstance.idl', + 'svg/SVGElementInstanceList.idl', + 'svg/SVGEllipseElement.idl', + 'svg/SVGException.idl', + 'svg/SVGExternalResourcesRequired.idl', + 'svg/SVGFEBlendElement.idl', + 'svg/SVGFEColorMatrixElement.idl', + 'svg/SVGFEComponentTransferElement.idl', + 'svg/SVGFECompositeElement.idl', + 'svg/SVGFEDiffuseLightingElement.idl', + 'svg/SVGFEDisplacementMapElement.idl', + 'svg/SVGFEDistantLightElement.idl', + 'svg/SVGFEFloodElement.idl', + 'svg/SVGFEFuncAElement.idl', + 'svg/SVGFEFuncBElement.idl', + 'svg/SVGFEFuncGElement.idl', + 'svg/SVGFEFuncRElement.idl', + 'svg/SVGFEGaussianBlurElement.idl', + 'svg/SVGFEImageElement.idl', + 'svg/SVGFEMergeElement.idl', + 'svg/SVGFEMergeNodeElement.idl', + 'svg/SVGFEOffsetElement.idl', + 'svg/SVGFEPointLightElement.idl', + 'svg/SVGFESpecularLightingElement.idl', + 'svg/SVGFESpotLightElement.idl', + 'svg/SVGFETileElement.idl', + 'svg/SVGFETurbulenceElement.idl', + 'svg/SVGFilterElement.idl', + 'svg/SVGFilterPrimitiveStandardAttributes.idl', + 'svg/SVGFitToViewBox.idl', + 'svg/SVGFontElement.idl', + 'svg/SVGFontFaceElement.idl', + 'svg/SVGFontFaceFormatElement.idl', + 'svg/SVGFontFaceNameElement.idl', + 'svg/SVGFontFaceSrcElement.idl', + 'svg/SVGFontFaceUriElement.idl', + 'svg/SVGForeignObjectElement.idl', + 'svg/SVGGElement.idl', + 'svg/SVGGlyphElement.idl', + 'svg/SVGGradientElement.idl', + 'svg/SVGHKernElement.idl', + 'svg/SVGImageElement.idl', + 'svg/SVGLangSpace.idl', + 'svg/SVGLength.idl', + 'svg/SVGLengthList.idl', + 'svg/SVGLineElement.idl', + 'svg/SVGLinearGradientElement.idl', + 'svg/SVGLocatable.idl', + 'svg/SVGMarkerElement.idl', + 'svg/SVGMaskElement.idl', + 'svg/SVGMatrix.idl', + 'svg/SVGMetadataElement.idl', + 'svg/SVGMissingGlyphElement.idl', + 'svg/SVGNumber.idl', + 'svg/SVGNumberList.idl', + 'svg/SVGPaint.idl', + 'svg/SVGPathElement.idl', + 'svg/SVGPathSeg.idl', + 'svg/SVGPathSegArcAbs.idl', + 'svg/SVGPathSegArcRel.idl', + 'svg/SVGPathSegClosePath.idl', + 'svg/SVGPathSegCurvetoCubicAbs.idl', + 'svg/SVGPathSegCurvetoCubicRel.idl', + 'svg/SVGPathSegCurvetoCubicSmoothAbs.idl', + 'svg/SVGPathSegCurvetoCubicSmoothRel.idl', + 'svg/SVGPathSegCurvetoQuadraticAbs.idl', + 'svg/SVGPathSegCurvetoQuadraticRel.idl', + 'svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl', + 'svg/SVGPathSegCurvetoQuadraticSmoothRel.idl', + 'svg/SVGPathSegLinetoAbs.idl', + 'svg/SVGPathSegLinetoHorizontalAbs.idl', + 'svg/SVGPathSegLinetoHorizontalRel.idl', + 'svg/SVGPathSegLinetoRel.idl', + 'svg/SVGPathSegLinetoVerticalAbs.idl', + 'svg/SVGPathSegLinetoVerticalRel.idl', + 'svg/SVGPathSegList.idl', + 'svg/SVGPathSegMovetoAbs.idl', + 'svg/SVGPathSegMovetoRel.idl', + 'svg/SVGPatternElement.idl', + 'svg/SVGPoint.idl', + 'svg/SVGPointList.idl', + 'svg/SVGPolygonElement.idl', + 'svg/SVGPolylineElement.idl', + 'svg/SVGPreserveAspectRatio.idl', + 'svg/SVGRadialGradientElement.idl', + 'svg/SVGRect.idl', + 'svg/SVGRectElement.idl', + 'svg/SVGRenderingIntent.idl', + 'svg/SVGSVGElement.idl', + 'svg/SVGScriptElement.idl', + 'svg/SVGSetElement.idl', + 'svg/SVGStopElement.idl', + 'svg/SVGStringList.idl', + 'svg/SVGStylable.idl', + 'svg/SVGStyleElement.idl', + 'svg/SVGSwitchElement.idl', + 'svg/SVGSymbolElement.idl', + 'svg/SVGTRefElement.idl', + 'svg/SVGTSpanElement.idl', + 'svg/SVGTests.idl', + 'svg/SVGTextContentElement.idl', + 'svg/SVGTextElement.idl', + 'svg/SVGTextPathElement.idl', + 'svg/SVGTextPositioningElement.idl', + 'svg/SVGTitleElement.idl', + 'svg/SVGTransform.idl', + 'svg/SVGTransformList.idl', + 'svg/SVGTransformable.idl', + 'svg/SVGURIReference.idl', + 'svg/SVGUnitTypes.idl', + 'svg/SVGUseElement.idl', + 'svg/SVGViewElement.idl', + 'svg/SVGViewSpec.idl', + 'svg/SVGZoomAndPan.idl', + 'svg/SVGZoomEvent.idl', + 'workers/AbstractWorker.idl', + 'workers/SharedWorker.idl', + 'workers/Worker.idl', + 'workers/WorkerContext.idl', + 'workers/WorkerLocation.idl', + 'xml/DOMParser.idl', + 'xml/XMLHttpRequest.idl', + 'xml/XMLHttpRequestException.idl', + 'xml/XMLHttpRequestProgressEvent.idl', + 'xml/XMLHttpRequestUpload.idl', + 'xml/XMLSerializer.idl', + 'xml/XPathEvaluator.idl', + 'xml/XPathException.idl', + 'xml/XPathExpression.idl', + 'xml/XPathNSResolver.idl', + 'xml/XPathResult.idl', + 'xml/XSLTProcessor.idl', + + # Source/Header Files + 'accessibility/AXObjectCache.cpp', + 'accessibility/AXObjectCache.h', + 'accessibility/AccessibilityARIAGrid.cpp', + 'accessibility/AccessibilityARIAGrid.h', + 'accessibility/AccessibilityARIAGridCell.cpp', + 'accessibility/AccessibilityARIAGridCell.h', + 'accessibility/AccessibilityARIAGridRow.cpp', + 'accessibility/AccessibilityARIAGridRow.h', + 'accessibility/AccessibilityImageMapLink.cpp', + 'accessibility/AccessibilityImageMapLink.h', + 'accessibility/AccessibilityList.cpp', + 'accessibility/AccessibilityList.h', + 'accessibility/AccessibilityListBox.cpp', + 'accessibility/AccessibilityListBox.h', + 'accessibility/AccessibilityListBoxOption.cpp', + 'accessibility/AccessibilityListBoxOption.h', + 'accessibility/AccessibilityObject.cpp', + 'accessibility/AccessibilityObject.h', + 'accessibility/AccessibilityRenderObject.cpp', + 'accessibility/AccessibilityRenderObject.h', + 'accessibility/AccessibilityTable.cpp', + 'accessibility/AccessibilityTable.h', + 'accessibility/AccessibilityTableCell.cpp', + 'accessibility/AccessibilityTableCell.h', + 'accessibility/AccessibilityTableColumn.cpp', + 'accessibility/AccessibilityTableColumn.h', + 'accessibility/AccessibilityTableHeaderContainer.cpp', + 'accessibility/AccessibilityTableHeaderContainer.h', + 'accessibility/AccessibilityTableRow.cpp', + 'accessibility/AccessibilityTableRow.h', + 'accessibility/chromium/AXObjectCacheChromium.cpp', + 'accessibility/chromium/AccessibilityObjectChromium.cpp', + 'accessibility/chromium/AccessibilityObjectWrapper.h', + 'accessibility/gtk/AXObjectCacheAtk.cpp', + 'accessibility/gtk/AccessibilityObjectAtk.cpp', + 'accessibility/gtk/AccessibilityObjectWrapperAtk.cpp', + 'accessibility/gtk/AccessibilityObjectWrapperAtk.h', + 'accessibility/qt/AccessibilityObjectQt.cpp', + 'accessibility/mac/AXObjectCacheMac.mm', + 'accessibility/mac/AccessibilityObjectMac.mm', + 'accessibility/mac/AccessibilityObjectWrapper.h', + 'accessibility/mac/AccessibilityObjectWrapper.mm', + 'accessibility/win/AXObjectCacheWin.cpp', + 'accessibility/win/AccessibilityObjectWin.cpp', + 'accessibility/win/AccessibilityObjectWrapperWin.h', + 'accessibility/wx/AccessibilityObjectWx.cpp', + 'bindings/js/CachedScriptSourceProvider.h', + 'bindings/js/GCController.cpp', + 'bindings/js/GCController.h', + 'bindings/js/JSAttrCustom.cpp', + 'bindings/js/JSAudioConstructor.cpp', + 'bindings/js/JSAudioConstructor.h', + 'bindings/js/JSCanvasRenderingContext2DCustom.cpp', + 'bindings/js/JSCDATASectionCustom.cpp', + 'bindings/js/JSClipboardCustom.cpp', + 'bindings/js/JSConsoleCustom.cpp', + 'bindings/js/JSCoordinatesCustom.cpp', + 'bindings/js/JSCSSRuleCustom.cpp', + 'bindings/js/JSCSSStyleDeclarationCustom.cpp', + 'bindings/js/JSCSSStyleDeclarationCustom.h', + 'bindings/js/JSCSSValueCustom.cpp', + 'bindings/js/JSCustomPositionCallback.cpp', + 'bindings/js/JSCustomPositionCallback.h', + 'bindings/js/JSCustomPositionErrorCallback.cpp', + 'bindings/js/JSCustomPositionErrorCallback.h', + 'bindings/js/JSCustomSQLStatementCallback.cpp', + 'bindings/js/JSCustomSQLStatementCallback.h', + 'bindings/js/JSCustomSQLStatementErrorCallback.cpp', + 'bindings/js/JSCustomSQLStatementErrorCallback.h', + 'bindings/js/JSCustomSQLTransactionCallback.cpp', + 'bindings/js/JSCustomSQLTransactionCallback.h', + 'bindings/js/JSCustomSQLTransactionErrorCallback.cpp', + 'bindings/js/JSCustomSQLTransactionErrorCallback.h', + 'bindings/js/JSCustomVoidCallback.cpp', + 'bindings/js/JSCustomVoidCallback.h', + 'bindings/js/JSCustomXPathNSResolver.cpp', + 'bindings/js/JSCustomXPathNSResolver.h', + 'bindings/js/JSDatabaseCustom.cpp', + 'bindings/js/JSDataGridColumnListCustom.cpp', + 'bindings/js/JSDataGridDataSource.cpp', + 'bindings/js/JSDataGridDataSource.h', + 'bindings/js/JSDocumentCustom.cpp', + 'bindings/js/JSDocumentFragmentCustom.cpp', + 'bindings/js/JSDOMApplicationCacheCustom.cpp', + 'bindings/js/JSDOMBinding.cpp', + 'bindings/js/JSDOMBinding.h', + 'bindings/js/JSDOMGlobalObject.cpp', + 'bindings/js/JSDOMGlobalObject.h', + 'bindings/js/JSDOMWindowBase.cpp', + 'bindings/js/JSDOMWindowBase.h', + 'bindings/js/JSDOMWindowCustom.cpp', + 'bindings/js/JSDOMWindowCustom.h', + 'bindings/js/JSDOMWindowShell.cpp', + 'bindings/js/JSDOMWindowShell.h', + 'bindings/js/JSElementCustom.cpp', + 'bindings/js/JSEventCustom.cpp', + 'bindings/js/JSEventListener.cpp', + 'bindings/js/JSEventListener.h', + 'bindings/js/JSEventTarget.cpp', + 'bindings/js/JSEventTarget.h', + 'bindings/js/JSGeolocationCustom.cpp', + 'bindings/js/JSHistoryCustom.cpp', + 'bindings/js/JSHistoryCustom.h', + 'bindings/js/JSHTMLAllCollection.cpp', + 'bindings/js/JSHTMLAllCollection.h', + 'bindings/js/JSHTMLAppletElementCustom.cpp', + 'bindings/js/JSHTMLAppletElementCustom.h', + 'bindings/js/JSHTMLCollectionCustom.cpp', + 'bindings/js/JSHTMLDataGridElementCustom.cpp', + 'bindings/js/JSHTMLDocumentCustom.cpp', + 'bindings/js/JSHTMLElementCustom.cpp', + 'bindings/js/JSHTMLEmbedElementCustom.cpp', + 'bindings/js/JSHTMLEmbedElementCustom.h', + 'bindings/js/JSHTMLFormElementCustom.cpp', + 'bindings/js/JSHTMLFrameElementCustom.cpp', + 'bindings/js/JSHTMLFrameSetElementCustom.cpp', + 'bindings/js/JSHTMLIFrameElementCustom.cpp', + 'bindings/js/JSHTMLInputElementCustom.cpp', + 'bindings/js/JSHTMLInputElementCustom.h', + 'bindings/js/JSHTMLObjectElementCustom.cpp', + 'bindings/js/JSHTMLObjectElementCustom.h', + 'bindings/js/JSHTMLOptionsCollectionCustom.cpp', + 'bindings/js/JSHTMLSelectElementCustom.cpp', + 'bindings/js/JSHTMLSelectElementCustom.h', + 'bindings/js/JSImageConstructor.cpp', + 'bindings/js/JSImageConstructor.h', + 'bindings/js/JSImageDataCustom.cpp', + 'bindings/js/JSInspectedObjectWrapper.cpp', + 'bindings/js/JSInspectedObjectWrapper.h', + 'bindings/js/JSInspectorCallbackWrapper.cpp', + 'bindings/js/JSInspectorCallbackWrapper.h', + 'bindings/js/JSInspectorControllerCustom.cpp', + 'bindings/js/JSJavaScriptCallFrameCustom.cpp', + 'bindings/js/JSLazyEventListener.cpp', + 'bindings/js/JSLazyEventListener.h', + 'bindings/js/JSLocationCustom.cpp', + 'bindings/js/JSLocationCustom.h', + 'bindings/js/JSMessageChannelConstructor.cpp', + 'bindings/js/JSMessageChannelConstructor.h', + 'bindings/js/JSMessageChannelCustom.cpp', + 'bindings/js/JSMessagePortCustom.cpp', + 'bindings/js/JSMimeTypeArrayCustom.cpp', + 'bindings/js/JSNamedNodeMapCustom.cpp', + 'bindings/js/JSNamedNodesCollection.cpp', + 'bindings/js/JSNamedNodesCollection.h', + 'bindings/js/JSNavigatorCustom.cpp', + 'bindings/js/JSNodeCustom.cpp', + 'bindings/js/JSNodeFilterCondition.cpp', + 'bindings/js/JSNodeFilterCondition.h', + 'bindings/js/JSNodeFilterCustom.cpp', + 'bindings/js/JSNodeIteratorCustom.cpp', + 'bindings/js/JSNodeListCustom.cpp', + 'bindings/js/JSOptionConstructor.cpp', + 'bindings/js/JSOptionConstructor.h', + 'bindings/js/JSPluginArrayCustom.cpp', + 'bindings/js/JSPluginCustom.cpp', + 'bindings/js/JSPluginElementFunctions.cpp', + 'bindings/js/JSPluginElementFunctions.h', + 'bindings/js/JSQuarantinedObjectWrapper.cpp', + 'bindings/js/JSQuarantinedObjectWrapper.h', + 'bindings/js/JSRGBColor.cpp', + 'bindings/js/JSRGBColor.h', + 'bindings/js/JSSQLResultSetRowListCustom.cpp', + 'bindings/js/JSSQLTransactionCustom.cpp', + 'bindings/js/JSStorageCustom.cpp', + 'bindings/js/JSStorageCustom.h', + 'bindings/js/JSStyleSheetCustom.cpp', + 'bindings/js/JSStyleSheetListCustom.cpp', + 'bindings/js/JSSVGElementInstanceCustom.cpp', + 'bindings/js/JSSVGLengthCustom.cpp', + 'bindings/js/JSSVGMatrixCustom.cpp', + 'bindings/js/JSSVGPathSegCustom.cpp', + 'bindings/js/JSSVGPathSegListCustom.cpp', + 'bindings/js/JSSVGPODTypeWrapper.h', + 'bindings/js/JSSVGPointListCustom.cpp', + 'bindings/js/JSSVGTransformListCustom.cpp', + 'bindings/js/JSTextCustom.cpp', + 'bindings/js/JSTreeWalkerCustom.cpp', + 'bindings/js/JSWebKitCSSMatrixConstructor.cpp', + 'bindings/js/JSWebKitCSSMatrixConstructor.h', + 'bindings/js/JSWebKitPointConstructor.cpp', + 'bindings/js/JSWebKitPointConstructor.h', + 'bindings/js/JSWorkerConstructor.cpp', + 'bindings/js/JSWorkerConstructor.h', + 'bindings/js/JSWorkerContextBase.cpp', + 'bindings/js/JSWorkerContextBase.h', + 'bindings/js/JSWorkerContextCustom.cpp', + 'bindings/js/JSWorkerCustom.cpp', + 'bindings/js/JSXMLHttpRequestConstructor.cpp', + 'bindings/js/JSXMLHttpRequestConstructor.h', + 'bindings/js/JSXMLHttpRequestCustom.cpp', + 'bindings/js/JSXMLHttpRequestUploadCustom.cpp', + 'bindings/js/JSXSLTProcessorConstructor.cpp', + 'bindings/js/JSXSLTProcessorConstructor.h', + 'bindings/js/JSXSLTProcessorCustom.cpp', + 'bindings/js/ScheduledAction.cpp', + 'bindings/js/ScheduledAction.h', + 'bindings/js/ScriptCachedFrameData.cpp', + 'bindings/js/ScriptCachedFrameData.h', + 'bindings/js/ScriptCallFrame.cpp', + 'bindings/js/ScriptCallFrame.h', + 'bindings/js/ScriptCallStack.cpp', + 'bindings/js/ScriptCallStack.h', + 'bindings/js/ScriptController.cpp', + 'bindings/js/ScriptController.h', + 'bindings/js/ScriptControllerGtk.cpp', + 'bindings/js/ScriptControllerMac.mm', + 'bindings/js/ScriptControllerQt.cpp', + 'bindings/js/ScriptControllerWin.cpp', + 'bindings/js/ScriptControllerWx.cpp', + 'bindings/js/ScriptEventListener.cpp', + 'bindings/js/ScriptEventListener.h', + 'bindings/js/ScriptFunctionCall.cpp', + 'bindings/js/ScriptFunctionCall.h', + 'bindings/js/ScriptInstance.h', + 'bindings/js/ScriptObject.cpp', + 'bindings/js/ScriptObject.h', + 'bindings/js/ScriptObjectQuarantine.cpp', + 'bindings/js/ScriptObjectQuarantine.h', + 'bindings/js/ScriptSourceCode.h', + 'bindings/js/ScriptState.cpp', + 'bindings/js/ScriptState.h', + 'bindings/js/ScriptString.h', + 'bindings/js/ScriptValue.cpp', + 'bindings/js/ScriptValue.h', + 'bindings/js/StringSourceProvider.h', + 'bindings/js/WorkerScriptController.cpp', + 'bindings/js/WorkerScriptController.h', + 'bindings/v8/custom/V8AbstractWorkerCustom.cpp', + 'bindings/v8/custom/V8AttrCustom.cpp', + 'bindings/v8/custom/V8CanvasPixelArrayCustom.cpp', + 'bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp', + 'bindings/v8/custom/V8ClientRectListCustom.cpp', + 'bindings/v8/custom/V8ClipboardCustom.cpp', + 'bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp', + 'bindings/v8/custom/V8CustomBinding.cpp', + 'bindings/v8/custom/V8CustomBinding.h', + 'bindings/v8/custom/V8CustomEventListener.cpp', + 'bindings/v8/custom/V8CustomEventListener.h', + 'bindings/v8/custom/V8CustomSQLStatementCallback.cpp', + 'bindings/v8/custom/V8CustomSQLStatementCallback.h', + 'bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp', + 'bindings/v8/custom/V8CustomSQLStatementErrorCallback.h', + 'bindings/v8/custom/V8CustomSQLTransactionCallback.cpp', + 'bindings/v8/custom/V8CustomSQLTransactionCallback.h', + 'bindings/v8/custom/V8CustomSQLTransactionErrorCallback.cpp', + 'bindings/v8/custom/V8CustomSQLTransactionErrorCallback.h', + 'bindings/v8/custom/V8CustomVoidCallback.cpp', + 'bindings/v8/custom/V8CustomVoidCallback.h', + 'bindings/v8/custom/V8CustomXPathNSResolver.cpp', + 'bindings/v8/custom/V8CustomXPathNSResolver.h', + 'bindings/v8/custom/V8DatabaseCustom.cpp', + 'bindings/v8/custom/V8DocumentLocationCustom.cpp', + 'bindings/v8/custom/V8DOMParserConstructor.cpp', + 'bindings/v8/custom/V8DOMWindowCustom.cpp', + 'bindings/v8/custom/V8DocumentCustom.cpp', + 'bindings/v8/custom/V8ElementCustom.cpp', + 'bindings/v8/custom/V8EventCustom.cpp', + 'bindings/v8/custom/V8HTMLAudioElementConstructor.cpp', + 'bindings/v8/custom/V8HTMLCanvasElementCustom.cpp', + 'bindings/v8/custom/V8HTMLCollectionCustom.cpp', + 'bindings/v8/custom/V8HTMLDataGridElementCustom.cpp', + 'bindings/v8/custom/V8HTMLDocumentCustom.cpp', + 'bindings/v8/custom/V8HTMLFormElementCustom.cpp', + 'bindings/v8/custom/V8HTMLFrameElementCustom.cpp', + 'bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp', + 'bindings/v8/custom/V8HTMLIFrameElementCustom.cpp', + 'bindings/v8/custom/V8HTMLImageElementConstructor.cpp', + 'bindings/v8/custom/V8HTMLInputElementCustom.cpp', + 'bindings/v8/custom/V8HTMLOptionElementConstructor.cpp', + 'bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp', + 'bindings/v8/custom/V8HTMLPlugInElementCustom.cpp', + 'bindings/v8/custom/V8HTMLSelectElementCollectionCustom.cpp', + 'bindings/v8/custom/V8HTMLSelectElementCustom.cpp', + 'bindings/v8/custom/V8HTMLSelectElementCustom.h', + 'bindings/v8/custom/V8InspectorControllerCustom.cpp', + 'bindings/v8/custom/V8LocationCustom.cpp', + 'bindings/v8/custom/V8MessageChannelConstructor.cpp', + 'bindings/v8/custom/V8MessagePortCustom.cpp', + 'bindings/v8/custom/V8NamedNodeMapCustom.cpp', + 'bindings/v8/custom/V8NamedNodesCollection.cpp', + 'bindings/v8/custom/V8NamedNodesCollection.h', + 'bindings/v8/custom/V8NavigatorCustom.cpp', + 'bindings/v8/custom/V8NodeCustom.cpp', + 'bindings/v8/custom/V8NodeFilterCustom.cpp', + 'bindings/v8/custom/V8NodeIteratorCustom.cpp', + 'bindings/v8/custom/V8NodeListCustom.cpp', + 'bindings/v8/custom/V8SQLResultSetRowListCustom.cpp', + 'bindings/v8/custom/V8SQLTransactionCustom.cpp', + 'bindings/v8/custom/V8SVGElementInstanceCustom.cpp', + 'bindings/v8/custom/V8SVGLengthCustom.cpp', + 'bindings/v8/custom/V8SVGMatrixCustom.cpp', + 'bindings/v8/custom/V8SharedWorkerCustom.cpp', + 'bindings/v8/custom/V8StyleSheetListCustom.cpp', + 'bindings/v8/custom/V8TreeWalkerCustom.cpp', + 'bindings/v8/custom/V8WebKitCSSMatrixConstructor.cpp', + 'bindings/v8/custom/V8WebKitPointConstructor.cpp', + 'bindings/v8/custom/V8WorkerContextCustom.cpp', + 'bindings/v8/custom/V8WorkerCustom.cpp', + 'bindings/v8/custom/V8XMLHttpRequestConstructor.cpp', + 'bindings/v8/custom/V8XMLHttpRequestCustom.cpp', + 'bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp', + 'bindings/v8/custom/V8XMLSerializerConstructor.cpp', + 'bindings/v8/custom/V8XPathEvaluatorConstructor.cpp', + 'bindings/v8/custom/V8XSLTProcessorCustom.cpp', + 'bindings/v8/ScheduledAction.cpp', + 'bindings/v8/ScheduledAction.h', + 'bindings/v8/ScriptCachedFrameData.h', + 'bindings/v8/ScriptCallFrame.cpp', + 'bindings/v8/ScriptCallFrame.h', + 'bindings/v8/ScriptCallStack.cpp', + 'bindings/v8/ScriptCallStack.h', + 'bindings/v8/ScriptController.cpp', + 'bindings/v8/ScriptController.h', + 'bindings/v8/ScriptEventListener.cpp', + 'bindings/v8/ScriptEventListener.h', + 'bindings/v8/ScriptFunctionCall.cpp', + 'bindings/v8/ScriptFunctionCall.h', + 'bindings/v8/ScriptInstance.cpp', + 'bindings/v8/ScriptInstance.h', + 'bindings/v8/ScriptObject.cpp', + 'bindings/v8/ScriptObject.h', + 'bindings/v8/ScriptObjectQuarantine.cpp', + 'bindings/v8/ScriptObjectQuarantine.h', + 'bindings/v8/ScriptScope.cpp', + 'bindings/v8/ScriptScope.h', + 'bindings/v8/ScriptSourceCode.h', + 'bindings/v8/ScriptState.h', + 'bindings/v8/ScriptState.cpp', + 'bindings/v8/ScriptString.h', + 'bindings/v8/ScriptValue.cpp', + 'bindings/v8/ScriptValue.h', + 'bindings/v8/V8AbstractEventListener.cpp', + 'bindings/v8/V8AbstractEventListener.h', + 'bindings/v8/V8Binding.cpp', + 'bindings/v8/V8Binding.h', + 'bindings/v8/V8Collection.cpp', + 'bindings/v8/V8Collection.h', + 'bindings/v8/V8DOMMap.cpp', + 'bindings/v8/V8DOMMap.h', + 'bindings/v8/V8EventListenerList.cpp', + 'bindings/v8/V8EventListenerList.h', + 'bindings/v8/V8Helpers.cpp', + 'bindings/v8/V8Helpers.h', + 'bindings/v8/V8Index.cpp', + 'bindings/v8/V8Index.h', + 'bindings/v8/V8IsolatedWorld.cpp', + 'bindings/v8/V8IsolatedWorld.h', + 'bindings/v8/V8LazyEventListener.cpp', + 'bindings/v8/V8LazyEventListener.h', + 'bindings/v8/V8NodeFilterCondition.cpp', + 'bindings/v8/V8NodeFilterCondition.h', + 'bindings/v8/V8ObjectEventListener.cpp', + 'bindings/v8/V8ObjectEventListener.h', + 'bindings/v8/V8Proxy.cpp', + 'bindings/v8/V8Proxy.h', + 'bindings/v8/V8SVGPODTypeWrapper.h', + 'bindings/v8/V8Utilities.cpp', + 'bindings/v8/V8Utilities.h', + 'bindings/v8/V8WorkerContextEventListener.cpp', + 'bindings/v8/V8WorkerContextEventListener.h', + 'bindings/v8/V8WorkerContextObjectEventListener.cpp', + 'bindings/v8/V8WorkerContextObjectEventListener.h', + 'bindings/v8/WorkerContextExecutionProxy.h', + 'bindings/v8/WorkerContextExecutionProxy.cpp', + 'bindings/v8/WorkerScriptController.h', + 'bindings/v8/WorkerScriptController.cpp', + 'css/CSSBorderImageValue.cpp', + 'css/CSSBorderImageValue.h', + 'css/CSSCanvasValue.cpp', + 'css/CSSCanvasValue.h', + 'css/CSSCharsetRule.cpp', + 'css/CSSCharsetRule.h', + 'css/CSSComputedStyleDeclaration.cpp', + 'css/CSSComputedStyleDeclaration.h', + 'css/CSSCursorImageValue.cpp', + 'css/CSSCursorImageValue.h', + 'css/CSSFontFace.cpp', + 'css/CSSFontFace.h', + 'css/CSSFontFaceRule.cpp', + 'css/CSSFontFaceRule.h', + 'css/CSSFontFaceSource.cpp', + 'css/CSSFontFaceSource.h', + 'css/CSSFontFaceSrcValue.cpp', + 'css/CSSFontFaceSrcValue.h', + 'css/CSSFontSelector.cpp', + 'css/CSSFontSelector.h', + 'css/CSSFunctionValue.cpp', + 'css/CSSFunctionValue.h', + 'css/CSSGradientValue.cpp', + 'css/CSSGradientValue.h', + 'css/CSSHelper.cpp', + 'css/CSSHelper.h', + 'css/CSSImageGeneratorValue.cpp', + 'css/CSSImageGeneratorValue.h', + 'css/CSSImageValue.cpp', + 'css/CSSImageValue.h', + 'css/CSSImportRule.cpp', + 'css/CSSImportRule.h', + 'css/CSSInheritedValue.cpp', + 'css/CSSInheritedValue.h', + 'css/CSSInitialValue.cpp', + 'css/CSSInitialValue.h', + 'css/CSSMediaRule.cpp', + 'css/CSSMediaRule.h', + 'css/CSSMutableStyleDeclaration.cpp', + 'css/CSSMutableStyleDeclaration.h', + 'css/CSSNamespace.h', + 'css/CSSPageRule.cpp', + 'css/CSSPageRule.h', + 'css/CSSParser.cpp', + 'css/CSSParser.h', + 'css/CSSParserValues.cpp', + 'css/CSSParserValues.h', + 'css/CSSPrimitiveValue.cpp', + 'css/CSSPrimitiveValue.h', + 'css/CSSPrimitiveValueMappings.h', + 'css/CSSProperty.cpp', + 'css/CSSProperty.h', + 'css/CSSPropertyLonghand.cpp', + 'css/CSSPropertyLonghand.h', + 'css/CSSQuirkPrimitiveValue.h', + 'css/CSSReflectValue.cpp', + 'css/CSSReflectValue.h', + 'css/CSSReflectionDirection.h', + 'css/CSSRule.cpp', + 'css/CSSRule.h', + 'css/CSSRuleList.cpp', + 'css/CSSRuleList.h', + 'css/CSSSegmentedFontFace.cpp', + 'css/CSSSegmentedFontFace.h', + 'css/CSSSelector.cpp', + 'css/CSSSelector.h', + 'css/CSSSelectorList.cpp', + 'css/CSSSelectorList.h', + 'css/CSSStyleDeclaration.cpp', + 'css/CSSStyleDeclaration.h', + 'css/CSSStyleRule.cpp', + 'css/CSSStyleRule.h', + 'css/CSSStyleSelector.cpp', + 'css/CSSStyleSelector.h', + 'css/CSSStyleSheet.cpp', + 'css/CSSStyleSheet.h', + 'css/CSSTimingFunctionValue.cpp', + 'css/CSSTimingFunctionValue.h', + 'css/CSSUnicodeRangeValue.cpp', + 'css/CSSUnicodeRangeValue.h', + 'css/CSSUnknownRule.h', + 'css/CSSValue.h', + 'css/CSSValueList.cpp', + 'css/CSSValueList.h', + 'css/CSSVariableDependentValue.cpp', + 'css/CSSVariableDependentValue.h', + 'css/CSSVariablesDeclaration.cpp', + 'css/CSSVariablesDeclaration.h', + 'css/CSSVariablesRule.cpp', + 'css/CSSVariablesRule.h', + 'css/Counter.h', + 'css/DashboardRegion.h', + 'css/FontFamilyValue.cpp', + 'css/FontFamilyValue.h', + 'css/FontValue.cpp', + 'css/FontValue.h', + 'css/MediaFeatureNames.cpp', + 'css/MediaFeatureNames.h', + 'css/MediaList.cpp', + 'css/MediaList.h', + 'css/MediaQuery.cpp', + 'css/MediaQuery.h', + 'css/MediaQueryEvaluator.cpp', + 'css/MediaQueryEvaluator.h', + 'css/MediaQueryExp.cpp', + 'css/MediaQueryExp.h', + 'css/Pair.h', + 'css/Rect.h', + 'css/SVGCSSComputedStyleDeclaration.cpp', + 'css/SVGCSSParser.cpp', + 'css/SVGCSSStyleSelector.cpp', + 'css/ShadowValue.cpp', + 'css/ShadowValue.h', + 'css/StyleBase.cpp', + 'css/StyleBase.h', + 'css/StyleList.cpp', + 'css/StyleList.h', + 'css/StyleSheet.cpp', + 'css/StyleSheet.h', + 'css/StyleSheetList.cpp', + 'css/StyleSheetList.h', + 'css/WebKitCSSKeyframeRule.cpp', + 'css/WebKitCSSKeyframeRule.h', + 'css/WebKitCSSKeyframesRule.cpp', + 'css/WebKitCSSKeyframesRule.h', + 'css/WebKitCSSMatrix.cpp', + 'css/WebKitCSSMatrix.h', + 'css/WebKitCSSTransformValue.cpp', + 'css/WebKitCSSTransformValue.h', + 'dom/default/PlatformMessagePortChannel.cpp', + 'dom/default/PlatformMessagePortChannel.h', + 'dom/ActiveDOMObject.cpp', + 'dom/ActiveDOMObject.h', + 'dom/Attr.cpp', + 'dom/Attr.h', + 'dom/Attribute.cpp', + 'dom/Attribute.h', + 'dom/BeforeTextInsertedEvent.cpp', + 'dom/BeforeTextInsertedEvent.h', + 'dom/BeforeUnloadEvent.cpp', + 'dom/BeforeUnloadEvent.h', + 'dom/CDATASection.cpp', + 'dom/CDATASection.h', + 'dom/CSSMappedAttributeDeclaration.cpp', + 'dom/CSSMappedAttributeDeclaration.h', + 'dom/CharacterData.cpp', + 'dom/CharacterData.h', + 'dom/CheckedRadioButtons.cpp', + 'dom/CheckedRadioButtons.h', + 'dom/ChildNodeList.cpp', + 'dom/ChildNodeList.h', + 'dom/ClassNames.cpp', + 'dom/ClassNames.h', + 'dom/ClassNodeList.cpp', + 'dom/ClassNodeList.h', + 'dom/ClientRect.cpp', + 'dom/ClientRect.h', + 'dom/ClientRectList.cpp', + 'dom/ClientRectList.h', + 'dom/Clipboard.cpp', + 'dom/Clipboard.h', + 'dom/ClipboardAccessPolicy.h', + 'dom/ClipboardEvent.cpp', + 'dom/ClipboardEvent.h', + 'dom/Comment.cpp', + 'dom/Comment.h', + 'dom/ContainerNode.cpp', + 'dom/ContainerNode.h', + 'dom/ContainerNodeAlgorithms.h', + 'dom/DOMCoreException.h', + 'dom/DOMImplementation.cpp', + 'dom/DOMImplementation.h', + 'dom/DocPtr.h', + 'dom/Document.cpp', + 'dom/Document.h', + 'dom/DocumentFragment.cpp', + 'dom/DocumentFragment.h', + 'dom/DocumentMarker.h', + 'dom/DocumentType.cpp', + 'dom/DocumentType.h', + 'dom/DynamicNodeList.cpp', + 'dom/DynamicNodeList.h', + 'dom/EditingText.cpp', + 'dom/EditingText.h', + 'dom/Element.cpp', + 'dom/Element.h', + 'dom/ElementRareData.h', + 'dom/Entity.cpp', + 'dom/Entity.h', + 'dom/EntityReference.cpp', + 'dom/EntityReference.h', + 'dom/Event.cpp', + 'dom/Event.h', + 'dom/EventException.h', + 'dom/EventListener.h', + 'dom/EventNames.cpp', + 'dom/EventNames.h', + 'dom/EventTarget.cpp', + 'dom/EventTarget.h', + 'dom/ExceptionBase.cpp', + 'dom/ExceptionBase.h', + 'dom/ExceptionCode.cpp', + 'dom/ExceptionCode.h', + 'dom/InputElement.cpp', + 'dom/InputElement.h', + 'dom/KeyboardEvent.cpp', + 'dom/KeyboardEvent.h', + 'dom/MappedAttribute.cpp', + 'dom/MappedAttribute.h', + 'dom/MappedAttributeEntry.h', + 'dom/MessageChannel.cpp', + 'dom/MessageChannel.h', + 'dom/MessageEvent.cpp', + 'dom/MessageEvent.h', + 'dom/MessagePort.cpp', + 'dom/MessagePort.h', + 'dom/MessagePortChannel.cpp', + 'dom/MessagePortChannel.h', + 'dom/MouseEvent.cpp', + 'dom/MouseEvent.h', + 'dom/MouseRelatedEvent.cpp', + 'dom/MouseRelatedEvent.h', + 'dom/MutationEvent.cpp', + 'dom/MutationEvent.h', + 'dom/NameNodeList.cpp', + 'dom/NameNodeList.h', + 'dom/NamedAttrMap.cpp', + 'dom/NamedAttrMap.h', + 'dom/NamedMappedAttrMap.cpp', + 'dom/NamedMappedAttrMap.h', + 'dom/NamedNodeMap.h', + 'dom/Node.cpp', + 'dom/Node.h', + 'dom/NodeFilter.cpp', + 'dom/NodeFilter.h', + 'dom/NodeFilterCondition.cpp', + 'dom/NodeFilterCondition.h', + 'dom/NodeIterator.cpp', + 'dom/NodeIterator.h', + 'dom/NodeList.h', + 'dom/NodeRareData.h', + 'dom/NodeRenderStyle.h', + 'dom/NodeWithIndex.h', + 'dom/Notation.cpp', + 'dom/Notation.h', + 'dom/OptionElement.cpp', + 'dom/OptionElement.h', + 'dom/OptionGroupElement.cpp', + 'dom/OptionGroupElement.h', + 'dom/OverflowEvent.cpp', + 'dom/OverflowEvent.h', + 'dom/Position.cpp', + 'dom/Position.h', + 'dom/PositionIterator.cpp', + 'dom/PositionIterator.h', + 'dom/ProcessingInstruction.cpp', + 'dom/ProcessingInstruction.h', + 'dom/ProgressEvent.cpp', + 'dom/ProgressEvent.h', + 'dom/QualifiedName.cpp', + 'dom/QualifiedName.h', + 'dom/Range.cpp', + 'dom/Range.h', + 'dom/RangeBoundaryPoint.h', + 'dom/RangeException.h', + 'dom/RegisteredEventListener.cpp', + 'dom/RegisteredEventListener.h', + 'dom/ScriptElement.cpp', + 'dom/ScriptElement.h', + 'dom/ScriptExecutionContext.cpp', + 'dom/ScriptExecutionContext.h', + 'dom/SelectElement.cpp', + 'dom/SelectElement.h', + 'dom/SelectorNodeList.cpp', + 'dom/SelectorNodeList.h', + 'dom/StaticNodeList.cpp', + 'dom/StaticNodeList.h', + 'dom/StaticStringList.cpp', + 'dom/StaticStringList.h', + 'dom/StyleElement.cpp', + 'dom/StyleElement.h', + 'dom/StyledElement.cpp', + 'dom/StyledElement.h', + 'dom/TagNodeList.cpp', + 'dom/TagNodeList.h', + 'dom/Text.cpp', + 'dom/Text.h', + 'dom/TextEvent.cpp', + 'dom/TextEvent.h', + 'dom/Tokenizer.h', + 'dom/Traversal.cpp', + 'dom/Traversal.h', + 'dom/TreeWalker.cpp', + 'dom/TreeWalker.h', + 'dom/UIEvent.cpp', + 'dom/UIEvent.h', + 'dom/UIEventWithKeyState.cpp', + 'dom/UIEventWithKeyState.h', + 'dom/WebKitAnimationEvent.cpp', + 'dom/WebKitAnimationEvent.h', + 'dom/WebKitTransitionEvent.cpp', + 'dom/WebKitTransitionEvent.h', + 'dom/WheelEvent.cpp', + 'dom/WheelEvent.h', + 'dom/XMLTokenizer.cpp', + 'dom/XMLTokenizer.h', + 'dom/XMLTokenizerLibxml2.cpp', + 'dom/XMLTokenizerScope.cpp', + 'dom/XMLTokenizerScope.h', + 'dom/XMLTokenizerQt.cpp', + 'editing/android/EditorAndroid.cpp', + 'editing/chromium/EditorChromium.cpp', + 'editing/mac/EditorMac.mm', + 'editing/mac/SelectionControllerMac.mm', + 'editing/qt/EditorQt.cpp', + 'editing/wx/EditorWx.cpp', + 'editing/AppendNodeCommand.cpp', + 'editing/AppendNodeCommand.h', + 'editing/ApplyStyleCommand.cpp', + 'editing/ApplyStyleCommand.h', + 'editing/BreakBlockquoteCommand.cpp', + 'editing/BreakBlockquoteCommand.h', + 'editing/CompositeEditCommand.cpp', + 'editing/CompositeEditCommand.h', + 'editing/CreateLinkCommand.cpp', + 'editing/CreateLinkCommand.h', + 'editing/DeleteButton.cpp', + 'editing/DeleteButton.h', + 'editing/DeleteButtonController.cpp', + 'editing/DeleteButtonController.h', + 'editing/DeleteFromTextNodeCommand.cpp', + 'editing/DeleteFromTextNodeCommand.h', + 'editing/DeleteSelectionCommand.cpp', + 'editing/DeleteSelectionCommand.h', + 'editing/EditAction.h', + 'editing/EditCommand.cpp', + 'editing/EditCommand.h', + 'editing/Editor.cpp', + 'editing/Editor.h', + 'editing/EditorCommand.cpp', + 'editing/EditorDeleteAction.h', + 'editing/EditorInsertAction.h', + 'editing/FormatBlockCommand.cpp', + 'editing/FormatBlockCommand.h', + 'editing/HTMLInterchange.cpp', + 'editing/HTMLInterchange.h', + 'editing/IndentOutdentCommand.cpp', + 'editing/IndentOutdentCommand.h', + 'editing/InsertIntoTextNodeCommand.cpp', + 'editing/InsertIntoTextNodeCommand.h', + 'editing/InsertLineBreakCommand.cpp', + 'editing/InsertLineBreakCommand.h', + 'editing/InsertListCommand.cpp', + 'editing/InsertListCommand.h', + 'editing/InsertNodeBeforeCommand.cpp', + 'editing/InsertNodeBeforeCommand.h', + 'editing/InsertParagraphSeparatorCommand.cpp', + 'editing/InsertParagraphSeparatorCommand.h', + 'editing/InsertTextCommand.cpp', + 'editing/InsertTextCommand.h', + 'editing/JoinTextNodesCommand.cpp', + 'editing/JoinTextNodesCommand.h', + 'editing/MergeIdenticalElementsCommand.cpp', + 'editing/MergeIdenticalElementsCommand.h', + 'editing/ModifySelectionListLevel.cpp', + 'editing/ModifySelectionListLevel.h', + 'editing/MoveSelectionCommand.cpp', + 'editing/MoveSelectionCommand.h', + 'editing/RemoveCSSPropertyCommand.cpp', + 'editing/RemoveCSSPropertyCommand.h', + 'editing/RemoveFormatCommand.cpp', + 'editing/RemoveFormatCommand.h', + 'editing/RemoveNodeCommand.cpp', + 'editing/RemoveNodeCommand.h', + 'editing/RemoveNodePreservingChildrenCommand.cpp', + 'editing/RemoveNodePreservingChildrenCommand.h', + 'editing/ReplaceNodeWithSpanCommand.cpp', + 'editing/ReplaceNodeWithSpanCommand.h', + 'editing/ReplaceSelectionCommand.cpp', + 'editing/ReplaceSelectionCommand.h', + 'editing/SelectionController.cpp', + 'editing/SelectionController.h', + 'editing/SetNodeAttributeCommand.cpp', + 'editing/SetNodeAttributeCommand.h', + 'editing/SmartReplace.cpp', + 'editing/SmartReplace.h', + 'editing/SmartReplaceCF.cpp', + 'editing/SmartReplaceICU.cpp', + 'editing/SplitElementCommand.cpp', + 'editing/SplitElementCommand.h', + 'editing/SplitTextNodeCommand.cpp', + 'editing/SplitTextNodeCommand.h', + 'editing/SplitTextNodeContainingElementCommand.cpp', + 'editing/SplitTextNodeContainingElementCommand.h', + 'editing/TextAffinity.h', + 'editing/TextGranularity.h', + 'editing/TextIterator.cpp', + 'editing/TextIterator.h', + 'editing/TypingCommand.cpp', + 'editing/TypingCommand.h', + 'editing/UnlinkCommand.cpp', + 'editing/UnlinkCommand.h', + 'editing/VisiblePosition.cpp', + 'editing/VisiblePosition.h', + 'editing/VisibleSelection.cpp', + 'editing/VisibleSelection.h', + 'editing/WrapContentsInDummySpanCommand.cpp', + 'editing/WrapContentsInDummySpanCommand.h', + 'editing/htmlediting.cpp', + 'editing/htmlediting.h', + 'editing/markup.cpp', + 'editing/markup.h', + 'editing/visible_units.cpp', + 'editing/visible_units.h', + 'history/mac/HistoryItemMac.mm', + 'history/BackForwardList.cpp', + 'history/BackForwardList.h', + 'history/BackForwardListChromium.cpp', + 'history/CachedFrame.cpp', + 'history/CachedFrame.h', + 'history/CachedFramePlatformData.h', + 'history/CachedPage.cpp', + 'history/CachedPage.h', + 'history/HistoryItem.cpp', + 'history/HistoryItem.h', + 'history/PageCache.cpp', + 'history/PageCache.h', + 'html/CanvasGradient.cpp', + 'html/CanvasGradient.h', + 'html/CanvasPattern.cpp', + 'html/CanvasPattern.h', + 'html/CanvasPixelArray.cpp', + 'html/CanvasPixelArray.h', + 'html/CanvasRenderingContext2D.cpp', + 'html/CanvasRenderingContext2D.h', + 'html/CanvasStyle.cpp', + 'html/CanvasStyle.h', + 'html/CollectionCache.cpp', + 'html/CollectionCache.h', + 'html/CollectionType.h', + 'html/DataGridColumn.cpp', + 'html/DataGridColumn.h', + 'html/DOMDataGridDataSource.cpp', + 'html/DOMDataGridDataSource.h', + 'html/DataGridColumnList.cpp', + 'html/DataGridColumnList.h', + 'html/File.cpp', + 'html/File.h', + 'html/FileList.cpp', + 'html/FileList.h', + 'html/FormDataList.cpp', + 'html/FormDataList.h', + 'html/HTMLAnchorElement.cpp', + 'html/HTMLAnchorElement.h', + 'html/HTMLAppletElement.cpp', + 'html/HTMLAppletElement.h', + 'html/HTMLAreaElement.cpp', + 'html/HTMLAreaElement.h', + 'html/HTMLAudioElement.cpp', + 'html/HTMLAudioElement.h', + 'html/HTMLBRElement.cpp', + 'html/HTMLBRElement.h', + 'html/HTMLBaseElement.cpp', + 'html/HTMLBaseElement.h', + 'html/HTMLBaseFontElement.cpp', + 'html/HTMLBaseFontElement.h', + 'html/HTMLBlockquoteElement.cpp', + 'html/HTMLBlockquoteElement.h', + 'html/HTMLBodyElement.cpp', + 'html/HTMLBodyElement.h', + 'html/HTMLButtonElement.cpp', + 'html/HTMLButtonElement.h', + 'html/HTMLCanvasElement.cpp', + 'html/HTMLCanvasElement.h', + 'html/HTMLCollection.cpp', + 'html/HTMLCollection.h', + 'html/HTMLDListElement.cpp', + 'html/HTMLDListElement.h', + 'html/HTMLDataGridCellElement.cpp', + 'html/HTMLDataGridCellElement.h', + 'html/HTMLDataGridColElement.cpp', + 'html/HTMLDataGridColElement.h', + 'html/HTMLDataGridElement.cpp', + 'html/HTMLDataGridElement.h', + 'html/HTMLDataGridRowElement.cpp', + 'html/HTMLDataGridRowElement.h', + 'html/HTMLDirectoryElement.cpp', + 'html/HTMLDirectoryElement.h', + 'html/HTMLDivElement.cpp', + 'html/HTMLDivElement.h', + 'html/HTMLDocument.cpp', + 'html/HTMLDocument.h', + 'html/HTMLElement.cpp', + 'html/HTMLElement.h', + 'html/HTMLEmbedElement.cpp', + 'html/HTMLEmbedElement.h', + 'html/HTMLFieldSetElement.cpp', + 'html/HTMLFieldSetElement.h', + 'html/HTMLFontElement.cpp', + 'html/HTMLFontElement.h', + 'html/HTMLFormCollection.cpp', + 'html/HTMLFormCollection.h', + 'html/HTMLFormControlElement.cpp', + 'html/HTMLFormControlElement.h', + 'html/HTMLFormElement.cpp', + 'html/HTMLFormElement.h', + 'html/HTMLFrameElement.cpp', + 'html/HTMLFrameElement.h', + 'html/HTMLFrameElementBase.cpp', + 'html/HTMLFrameElementBase.h', + 'html/HTMLFrameOwnerElement.cpp', + 'html/HTMLFrameOwnerElement.h', + 'html/HTMLFrameSetElement.cpp', + 'html/HTMLFrameSetElement.h', + 'html/HTMLHRElement.cpp', + 'html/HTMLHRElement.h', + 'html/HTMLHeadElement.cpp', + 'html/HTMLHeadElement.h', + 'html/HTMLHeadingElement.cpp', + 'html/HTMLHeadingElement.h', + 'html/HTMLHtmlElement.cpp', + 'html/HTMLHtmlElement.h', + 'html/HTMLIFrameElement.cpp', + 'html/HTMLIFrameElement.h', + 'html/HTMLImageElement.cpp', + 'html/HTMLImageElement.h', + 'html/HTMLImageLoader.cpp', + 'html/HTMLImageLoader.h', + 'html/HTMLInputElement.cpp', + 'html/HTMLInputElement.h', + 'html/HTMLIsIndexElement.cpp', + 'html/HTMLIsIndexElement.h', + 'html/HTMLKeygenElement.cpp', + 'html/HTMLKeygenElement.h', + 'html/HTMLLIElement.cpp', + 'html/HTMLLIElement.h', + 'html/HTMLLabelElement.cpp', + 'html/HTMLLabelElement.h', + 'html/HTMLLegendElement.cpp', + 'html/HTMLLegendElement.h', + 'html/HTMLLinkElement.cpp', + 'html/HTMLLinkElement.h', + 'html/HTMLMapElement.cpp', + 'html/HTMLMapElement.h', + 'html/HTMLMarqueeElement.cpp', + 'html/HTMLMarqueeElement.h', + 'html/HTMLMediaElement.cpp', + 'html/HTMLMediaElement.h', + 'html/HTMLMenuElement.cpp', + 'html/HTMLMenuElement.h', + 'html/HTMLMetaElement.cpp', + 'html/HTMLMetaElement.h', + 'html/HTMLModElement.cpp', + 'html/HTMLModElement.h', + 'html/HTMLNameCollection.cpp', + 'html/HTMLNameCollection.h', + 'html/HTMLOListElement.cpp', + 'html/HTMLOListElement.h', + 'html/HTMLObjectElement.cpp', + 'html/HTMLObjectElement.h', + 'html/HTMLOptGroupElement.cpp', + 'html/HTMLOptGroupElement.h', + 'html/HTMLOptionElement.cpp', + 'html/HTMLOptionElement.h', + 'html/HTMLOptionsCollection.cpp', + 'html/HTMLOptionsCollection.h', + 'html/HTMLParagraphElement.cpp', + 'html/HTMLParagraphElement.h', + 'html/HTMLParamElement.cpp', + 'html/HTMLParamElement.h', + 'html/HTMLParser.cpp', + 'html/HTMLParser.h', + 'html/HTMLParserErrorCodes.cpp', + 'html/HTMLParserErrorCodes.h', + 'html/HTMLPlugInElement.cpp', + 'html/HTMLPlugInElement.h', + 'html/HTMLPlugInImageElement.cpp', + 'html/HTMLPlugInImageElement.h', + 'html/HTMLPreElement.cpp', + 'html/HTMLPreElement.h', + 'html/HTMLQuoteElement.cpp', + 'html/HTMLQuoteElement.h', + 'html/HTMLScriptElement.cpp', + 'html/HTMLScriptElement.h', + 'html/HTMLSelectElement.cpp', + 'html/HTMLSelectElement.h', + 'html/HTMLSourceElement.cpp', + 'html/HTMLSourceElement.h', + 'html/HTMLStyleElement.cpp', + 'html/HTMLStyleElement.h', + 'html/HTMLTableCaptionElement.cpp', + 'html/HTMLTableCaptionElement.h', + 'html/HTMLTableCellElement.cpp', + 'html/HTMLTableCellElement.h', + 'html/HTMLTableColElement.cpp', + 'html/HTMLTableColElement.h', + 'html/HTMLTableElement.cpp', + 'html/HTMLTableElement.h', + 'html/HTMLTablePartElement.cpp', + 'html/HTMLTablePartElement.h', + 'html/HTMLTableRowElement.cpp', + 'html/HTMLTableRowElement.h', + 'html/HTMLTableRowsCollection.cpp', + 'html/HTMLTableRowsCollection.h', + 'html/HTMLTableSectionElement.cpp', + 'html/HTMLTableSectionElement.h', + 'html/HTMLTextAreaElement.cpp', + 'html/HTMLTextAreaElement.h', + 'html/HTMLTitleElement.cpp', + 'html/HTMLTitleElement.h', + 'html/HTMLTokenizer.cpp', + 'html/HTMLTokenizer.h', + 'html/HTMLUListElement.cpp', + 'html/HTMLUListElement.h', + 'html/HTMLVideoElement.cpp', + 'html/HTMLVideoElement.h', + 'html/HTMLViewSourceDocument.cpp', + 'html/HTMLViewSourceDocument.h', + 'html/ImageData.cpp', + 'html/ImageData.h', + 'html/MediaError.h', + 'html/PreloadScanner.cpp', + 'html/PreloadScanner.h', + 'html/TextMetrics.h', + 'html/TimeRanges.cpp', + 'html/TimeRanges.h', + 'html/ValidityState.cpp', + 'html/ValidityState.h', + 'html/VoidCallback.h', + 'inspector/InspectorClient.h', + 'inspector/ConsoleMessage.cpp', + 'inspector/ConsoleMessage.h', + 'inspector/InspectorController.cpp', + 'inspector/InspectorController.h', + 'inspector/InspectorDatabaseResource.cpp', + 'inspector/InspectorDatabaseResource.h', + 'inspector/InspectorDOMStorageResource.cpp', + 'inspector/InspectorDOMStorageResource.h', + 'inspector/InspectorFrontend.cpp', + 'inspector/InspectorFrontend.h', + 'inspector/InspectorJSONObject.cpp', + 'inspector/InspectorJSONObject.h', + 'inspector/InspectorResource.cpp', + 'inspector/InspectorResource.h', + 'inspector/JavaScriptCallFrame.cpp', + 'inspector/JavaScriptCallFrame.h', + 'inspector/JavaScriptDebugListener.h', + 'inspector/JavaScriptDebugServer.cpp', + 'inspector/JavaScriptDebugServer.h', + 'inspector/JavaScriptProfile.cpp', + 'inspector/JavaScriptProfile.h', + 'inspector/JavaScriptProfileNode.cpp', + 'inspector/JavaScriptProfileNode.h', + 'loader/appcache/ApplicationCache.cpp', + 'loader/appcache/ApplicationCache.h', + 'loader/appcache/ApplicationCacheGroup.cpp', + 'loader/appcache/ApplicationCacheGroup.h', + 'loader/appcache/ApplicationCacheResource.cpp', + 'loader/appcache/ApplicationCacheResource.h', + 'loader/appcache/ApplicationCacheStorage.cpp', + 'loader/appcache/ApplicationCacheStorage.h', + 'loader/appcache/DOMApplicationCache.cpp', + 'loader/appcache/DOMApplicationCache.h', + 'loader/appcache/ManifestParser.cpp', + 'loader/appcache/ManifestParser.h', + 'loader/archive/cf/LegacyWebArchive.cpp', + 'loader/archive/cf/LegacyWebArchive.h', + 'loader/archive/cf/LegacyWebArchiveMac.mm', + 'loader/archive/Archive.h', + 'loader/archive/ArchiveFactory.cpp', + 'loader/archive/ArchiveFactory.h', + 'loader/archive/ArchiveResource.cpp', + 'loader/archive/ArchiveResource.h', + 'loader/archive/ArchiveResourceCollection.cpp', + 'loader/archive/ArchiveResourceCollection.h', + 'loader/icon/IconDatabase.cpp', + 'loader/icon/IconDatabase.h', + 'loader/icon/IconDatabaseClient.h', + 'loader/icon/IconDatabaseNone.cpp', + 'loader/icon/IconFetcher.cpp', + 'loader/icon/IconFetcher.h', + 'loader/icon/IconLoader.cpp', + 'loader/icon/IconLoader.h', + 'loader/icon/IconRecord.cpp', + 'loader/icon/IconRecord.h', + 'loader/icon/PageURLRecord.cpp', + 'loader/icon/PageURLRecord.h', + 'loader/mac/DocumentLoaderMac.cpp', + 'loader/mac/LoaderNSURLExtras.h', + 'loader/mac/LoaderNSURLExtras.mm', + 'loader/mac/ResourceLoaderMac.mm', + 'loader/win/DocumentLoaderWin.cpp', + 'loader/win/FrameLoaderWin.cpp', + 'loader/Cache.cpp', + 'loader/Cache.h', + 'loader/CachePolicy.h', + 'loader/CachedCSSStyleSheet.cpp', + 'loader/CachedCSSStyleSheet.h', + 'loader/CachedFont.cpp', + 'loader/CachedFont.h', + 'loader/CachedImage.cpp', + 'loader/CachedImage.h', + 'loader/CachedResource.cpp', + 'loader/CachedResource.h', + 'loader/CachedResourceClient.h', + 'loader/CachedResourceClientWalker.cpp', + 'loader/CachedResourceClientWalker.h', + 'loader/CachedResourceHandle.cpp', + 'loader/CachedResourceHandle.h', + 'loader/CachedScript.cpp', + 'loader/CachedScript.h', + 'loader/CachedXBLDocument.cpp', + 'loader/CachedXBLDocument.h', + 'loader/CachedXSLStyleSheet.cpp', + 'loader/CachedXSLStyleSheet.h', + 'loader/CrossOriginAccessControl.cpp', + 'loader/CrossOriginAccessControl.h', + 'loader/CrossOriginPreflightResultCache.cpp', + 'loader/CrossOriginPreflightResultCache.h', + 'loader/DocLoader.cpp', + 'loader/DocLoader.h', + 'loader/DocumentLoader.cpp', + 'loader/DocumentLoader.h', + 'loader/DocumentThreadableLoader.cpp', + 'loader/DocumentThreadableLoader.h', + 'loader/EmptyClients.h', + 'loader/FTPDirectoryDocument.cpp', + 'loader/FTPDirectoryDocument.h', + 'loader/FTPDirectoryParser.cpp', + 'loader/FTPDirectoryParser.h', + 'loader/FormState.cpp', + 'loader/FormState.h', + 'loader/FrameLoader.cpp', + 'loader/FrameLoader.h', + 'loader/FrameLoaderClient.h', + 'loader/FrameLoaderTypes.h', + 'loader/ImageDocument.cpp', + 'loader/ImageDocument.h', + 'loader/ImageLoader.cpp', + 'loader/ImageLoader.h', + 'loader/MainResourceLoader.cpp', + 'loader/MainResourceLoader.h', + 'loader/MediaDocument.cpp', + 'loader/MediaDocument.h', + 'loader/NavigationAction.cpp', + 'loader/NavigationAction.h', + 'loader/NetscapePlugInStreamLoader.cpp', + 'loader/NetscapePlugInStreamLoader.h', + 'loader/PluginDocument.cpp', + 'loader/PluginDocument.h', + 'loader/ProgressTracker.cpp', + 'loader/ProgressTracker.h', + 'loader/Request.cpp', + 'loader/Request.h', + 'loader/ResourceLoader.cpp', + 'loader/ResourceLoader.h', + 'loader/SubresourceLoader.cpp', + 'loader/SubresourceLoader.h', + 'loader/SubresourceLoaderClient.h', + 'loader/SubstituteData.h', + 'loader/SubstituteResource.h', + 'loader/TextDocument.cpp', + 'loader/TextDocument.h', + 'loader/TextResourceDecoder.cpp', + 'loader/TextResourceDecoder.h', + 'loader/ThreadableLoader.cpp', + 'loader/ThreadableLoader.h', + 'loader/ThreadableLoaderClient.h', + 'loader/ThreadableLoaderClientWrapper.h', + 'loader/UserStyleSheetLoader.cpp', + 'loader/UserStyleSheetLoader.h', + 'loader/WorkerThreadableLoader.cpp', + 'loader/WorkerThreadableLoader.h', + 'loader/loader.cpp', + 'loader/loader.h', + 'page/animation/AnimationBase.cpp', + 'page/animation/AnimationBase.h', + 'page/animation/AnimationController.cpp', + 'page/animation/AnimationController.h', + 'page/animation/AnimationControllerPrivate.h', + 'page/animation/CompositeAnimation.cpp', + 'page/animation/CompositeAnimation.h', + 'page/animation/ImplicitAnimation.cpp', + 'page/animation/ImplicitAnimation.h', + 'page/animation/KeyframeAnimation.cpp', + 'page/animation/KeyframeAnimation.h', + 'page/chromium/ChromeClientChromium.h', + 'page/chromium/DragControllerChromium.cpp', + 'page/chromium/EventHandlerChromium.cpp', + 'page/chromium/FrameChromium.cpp', + 'page/chromium/FrameChromium.h', + 'page/gtk/DragControllerGtk.cpp', + 'page/gtk/EventHandlerGtk.cpp', + 'page/gtk/FrameGtk.cpp', + 'page/mac/ChromeMac.mm', + 'page/mac/DragControllerMac.mm', + 'page/mac/EventHandlerMac.mm', + 'page/mac/FrameMac.mm', + 'page/mac/PageMac.cpp', + 'page/mac/WebCoreFrameView.h', + 'page/mac/WebCoreKeyboardUIMode.h', + 'page/mac/WebCoreViewFactory.h', + 'page/mac/WebCoreViewFactory.m', + 'page/mac/WebDashboardRegion.h', + 'page/mac/WebDashboardRegion.m', + 'page/qt/DragControllerQt.cpp', + 'page/qt/EventHandlerQt.cpp', + 'page/qt/FrameQt.cpp', + 'page/win/DragControllerWin.cpp', + 'page/win/EventHandlerWin.cpp', + 'page/win/FrameCGWin.cpp', + 'page/win/FrameCairoWin.cpp', + 'page/win/FrameWin.cpp', + 'page/win/FrameWin.h', + 'page/win/PageWin.cpp', + 'page/wx/DragControllerWx.cpp', + 'page/wx/EventHandlerWx.cpp', + 'page/BarInfo.cpp', + 'page/BarInfo.h', + 'page/Chrome.cpp', + 'page/Chrome.h', + 'page/ChromeClient.h', + 'page/Console.cpp', + 'page/Console.h', + 'page/ContextMenuClient.h', + 'page/ContextMenuController.cpp', + 'page/ContextMenuController.h', + 'page/Coordinates.cpp', + 'page/DOMSelection.cpp', + 'page/DOMSelection.h', + 'page/DOMTimer.cpp', + 'page/DOMTimer.h', + 'page/DOMWindow.cpp', + 'page/DOMWindow.h', + 'page/DragActions.h', + 'page/DragClient.h', + 'page/DragController.cpp', + 'page/DragController.h', + 'page/EditorClient.h', + 'page/EventHandler.cpp', + 'page/EventHandler.h', + 'page/FocusController.cpp', + 'page/FocusController.h', + 'page/FocusDirection.h', + 'page/Frame.cpp', + 'page/Frame.h', + 'page/FrameLoadRequest.h', + 'page/FrameTree.cpp', + 'page/FrameTree.h', + 'page/FrameView.cpp', + 'page/FrameView.h', + 'page/Geolocation.cpp', + 'page/Geolocation.h', + 'page/Geoposition.cpp', + 'page/Geoposition.h', + 'page/History.cpp', + 'page/History.h', + 'page/Location.cpp', + 'page/Location.h', + 'page/MouseEventWithHitTestResults.cpp', + 'page/MouseEventWithHitTestResults.h', + 'page/Navigator.cpp', + 'page/Navigator.h', + 'page/NavigatorBase.cpp', + 'page/NavigatorBase.h', + 'page/Page.cpp', + 'page/Page.h', + 'page/PageGroup.cpp', + 'page/PageGroup.h', + 'page/PageGroupLoadDeferrer.cpp', + 'page/PageGroupLoadDeferrer.h', + 'page/PositionCallback.h', + 'page/PositionError.h', + 'page/PositionErrorCallback.h', + 'page/PositionOptions.h', + 'page/PrintContext.cpp', + 'page/PrintContext.h', + 'page/Screen.cpp', + 'page/Screen.h', + 'page/SecurityOrigin.cpp', + 'page/SecurityOrigin.h', + 'page/SecurityOriginHash.h', + 'page/Settings.cpp', + 'page/Settings.h', + 'page/WebKitPoint.h', + 'page/WindowFeatures.cpp', + 'page/WindowFeatures.h', + 'page/WorkerNavigator.cpp', + 'page/WorkerNavigator.h', + 'page/XSSAuditor.cpp', + 'page/XSSAuditor.h', + 'platform/animation/Animation.cpp', + 'platform/animation/Animation.h', + 'platform/animation/AnimationList.cpp', + 'platform/animation/AnimationList.h', + 'platform/animation/TimingFunction.h', + 'platform/cf/FileSystemCF.cpp', + 'platform/cf/KURLCFNet.cpp', + 'platform/cf/SchedulePair.cpp', + 'platform/cf/SchedulePair.h', + 'platform/cf/SharedBufferCF.cpp', + 'platform/chromium/ChromiumBridge.h', + 'platform/chromium/ChromiumDataObject.cpp', + 'platform/chromium/ChromiumDataObject.h', + 'platform/chromium/ClipboardChromium.cpp', + 'platform/chromium/ClipboardChromium.h', + 'platform/chromium/ClipboardChromiumLinux.cpp', + 'platform/chromium/ClipboardChromiumMac.cpp', + 'platform/chromium/ClipboardChromiumWin.cpp', + 'platform/chromium/ClipboardUtilitiesChromium.cpp', + 'platform/chromium/ClipboardUtilitiesChromium.h', + 'platform/chromium/ContextMenuChromium.cpp', + 'platform/chromium/ContextMenuItemChromium.cpp', + 'platform/chromium/CursorChromium.cpp', + 'platform/chromium/DragDataChromium.cpp', + 'platform/chromium/DragDataRef.h', + 'platform/chromium/DragImageChromium.cpp', + 'platform/chromium/DragImageRef.h', + 'platform/chromium/FileChooserChromium.cpp', + 'platform/chromium/FileSystemChromium.cpp', + 'platform/chromium/FileSystemChromiumLinux.cpp', + 'platform/chromium/FileSystemChromiumMac.mm', + 'platform/chromium/FileSystemChromiumWin.cpp', + 'platform/chromium/FramelessScrollView.cpp', + 'platform/chromium/FramelessScrollView.h', + 'platform/chromium/FramelessScrollViewClient.h', + 'platform/chromium/KeyCodeConversion.h', + 'platform/chromium/KeyCodeConversionGtk.cpp', + 'platform/chromium/KeyboardCodesPosix.h', + 'platform/chromium/KeyboardCodesWin.h', + 'platform/chromium/Language.cpp', + 'platform/chromium/LinkHashChromium.cpp', + 'platform/chromium/MimeTypeRegistryChromium.cpp', + 'platform/chromium/PasteboardChromium.cpp', + 'platform/chromium/PasteboardPrivate.h', + 'platform/chromium/PlatformCursor.h', + 'platform/chromium/PlatformKeyboardEventChromium.cpp', + 'platform/chromium/PlatformScreenChromium.cpp', + 'platform/chromium/PlatformWidget.h', + 'platform/chromium/PopupMenuChromium.cpp', + 'platform/chromium/PopupMenuChromium.h', + 'platform/chromium/PopupMenuPrivate.h', + 'platform/chromium/SSLKeyGeneratorChromium.cpp', + 'platform/chromium/ScrollbarThemeChromium.cpp', + 'platform/chromium/ScrollbarThemeChromium.h', + 'platform/chromium/ScrollbarThemeChromiumLinux.cpp', + 'platform/chromium/ScrollbarThemeChromiumWin.cpp', + 'platform/chromium/SearchPopupMenuChromium.cpp', + 'platform/chromium/SharedTimerChromium.cpp', + 'platform/chromium/SoundChromiumPosix.cpp', + 'platform/chromium/SoundChromiumWin.cpp', + 'platform/chromium/SuddenTerminationChromium.cpp', + 'platform/chromium/SystemTimeChromium.cpp', + 'platform/chromium/TemporaryLinkStubs.cpp', + 'platform/chromium/WidgetChromium.cpp', + 'platform/chromium/WindowsVersion.cpp', + 'platform/chromium/WindowsVersion.h', + 'platform/graphics/cairo/CairoPath.h', + 'platform/graphics/cairo/FontCairo.cpp', + 'platform/graphics/cairo/GradientCairo.cpp', + 'platform/graphics/cairo/GraphicsContextCairo.cpp', + 'platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h', + 'platform/graphics/cairo/ImageBufferCairo.cpp', + 'platform/graphics/cairo/ImageBufferData.h', + 'platform/graphics/cairo/ImageCairo.cpp', + 'platform/graphics/cairo/ImageSourceCairo.cpp', + 'platform/graphics/cairo/PathCairo.cpp', + 'platform/graphics/cairo/PatternCairo.cpp', + 'platform/graphics/cairo/TransformationMatrixCairo.cpp', + 'platform/graphics/cg/ColorCG.cpp', + 'platform/graphics/cg/FloatPointCG.cpp', + 'platform/graphics/cg/FloatRectCG.cpp', + 'platform/graphics/cg/FloatSizeCG.cpp', + 'platform/graphics/cg/GradientCG.cpp', + 'platform/graphics/cg/GraphicsContextCG.cpp', + 'platform/graphics/cg/GraphicsContextPlatformPrivateCG.h', + 'platform/graphics/cg/ImageBufferCG.cpp', + 'platform/graphics/cg/ImageBufferData.h', + 'platform/graphics/cg/ImageCG.cpp', + 'platform/graphics/cg/ImageSourceCG.cpp', + 'platform/graphics/cg/ImageSourceCG.h', + 'platform/graphics/cg/ImageSourceCGMac.mm', + 'platform/graphics/cg/ImageSourceCGWin.cpp', + 'platform/graphics/cg/IntPointCG.cpp', + 'platform/graphics/cg/IntRectCG.cpp', + 'platform/graphics/cg/IntSizeCG.cpp', + 'platform/graphics/cg/PDFDocumentImage.cpp', + 'platform/graphics/cg/PDFDocumentImage.h', + 'platform/graphics/cg/PathCG.cpp', + 'platform/graphics/cg/PatternCG.cpp', + 'platform/graphics/cg/TransformationMatrixCG.cpp', + 'platform/graphics/chromium/FontCacheChromiumWin.cpp', + 'platform/graphics/chromium/FontCacheLinux.cpp', + 'platform/graphics/chromium/FontChromiumWin.cpp', + 'platform/graphics/chromium/FontCustomPlatformData.cpp', + 'platform/graphics/chromium/FontCustomPlatformData.h', + 'platform/graphics/chromium/FontLinux.cpp', + 'platform/graphics/chromium/FontPlatformData.h', + 'platform/graphics/chromium/FontPlatformDataChromiumWin.cpp', + 'platform/graphics/chromium/FontPlatformDataChromiumWin.h', + 'platform/graphics/chromium/FontPlatformDataLinux.cpp', + 'platform/graphics/chromium/FontPlatformDataLinux.h', + 'platform/graphics/chromium/FontUtilsChromiumWin.cpp', + 'platform/graphics/chromium/FontUtilsChromiumWin.h', + 'platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp', + 'platform/graphics/chromium/GlyphPageTreeNodeLinux.cpp', + 'platform/graphics/chromium/IconChromiumLinux.cpp', + 'platform/graphics/chromium/IconChromiumMac.cpp', + 'platform/graphics/chromium/IconChromiumWin.cpp', + 'platform/graphics/chromium/ImageBufferData.h', + 'platform/graphics/chromium/ImageChromiumMac.mm', + 'platform/graphics/chromium/MediaPlayerPrivateChromium.h', + 'platform/graphics/chromium/PlatformIcon.h', + 'platform/graphics/chromium/SimpleFontDataChromiumWin.cpp', + 'platform/graphics/chromium/SimpleFontDataLinux.cpp', + 'platform/graphics/chromium/TransparencyWin.cpp', + 'platform/graphics/chromium/TransparencyWin.h', + 'platform/graphics/chromium/UniscribeHelper.cpp', + 'platform/graphics/chromium/UniscribeHelper.h', + 'platform/graphics/chromium/UniscribeHelperTextRun.cpp', + 'platform/graphics/chromium/UniscribeHelperTextRun.h', + 'platform/graphics/filters/FEBlend.cpp', + 'platform/graphics/filters/FEBlend.h', + 'platform/graphics/filters/FEColorMatrix.cpp', + 'platform/graphics/filters/FEColorMatrix.h', + 'platform/graphics/filters/FEComponentTransfer.cpp', + 'platform/graphics/filters/FEComponentTransfer.h', + 'platform/graphics/filters/FEComposite.cpp', + 'platform/graphics/filters/FEComposite.h', + 'platform/graphics/filters/SourceAlpha.cpp', + 'platform/graphics/filters/SourceAlpha.h', + 'platform/graphics/filters/SourceGraphic.cpp', + 'platform/graphics/filters/SourceGraphic.h', + 'platform/graphics/gtk/ColorGtk.cpp', + 'platform/graphics/gtk/FontCacheGtk.cpp', + 'platform/graphics/gtk/FontCustomPlatformData.cpp', + 'platform/graphics/gtk/FontCustomPlatformData.h', + 'platform/graphics/gtk/FontCustomPlatformDataPango.cpp', + 'platform/graphics/gtk/FontGtk.cpp', + 'platform/graphics/gtk/FontPlatformData.h', + 'platform/graphics/gtk/FontPlatformDataGtk.cpp', + 'platform/graphics/gtk/FontPlatformDataPango.cpp', + 'platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp', + 'platform/graphics/gtk/GlyphPageTreeNodePango.cpp', + 'platform/graphics/gtk/IconGtk.cpp', + 'platform/graphics/gtk/ImageGtk.cpp', + 'platform/graphics/gtk/IntPointGtk.cpp', + 'platform/graphics/gtk/IntRectGtk.cpp', + 'platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp', + 'platform/graphics/gtk/MediaPlayerPrivateGStreamer.h', + 'platform/graphics/gtk/SimpleFontDataGtk.cpp', + 'platform/graphics/gtk/SimpleFontDataPango.cpp', + 'platform/graphics/gtk/VideoSinkGStreamer.cpp', + 'platform/graphics/gtk/VideoSinkGStreamer.h', + 'platform/graphics/mac/ColorMac.h', + 'platform/graphics/mac/ColorMac.mm', + 'platform/graphics/mac/CoreTextController.cpp', + 'platform/graphics/mac/CoreTextController.h', + 'platform/graphics/mac/FloatPointMac.mm', + 'platform/graphics/mac/FloatRectMac.mm', + 'platform/graphics/mac/FloatSizeMac.mm', + 'platform/graphics/mac/FontCacheMac.mm', + 'platform/graphics/mac/FontCustomPlatformData.cpp', + 'platform/graphics/mac/FontCustomPlatformData.h', + 'platform/graphics/mac/FontMac.mm', + 'platform/graphics/mac/FontMacATSUI.mm', + 'platform/graphics/mac/FontMacCoreText.cpp', + 'platform/graphics/mac/FontPlatformData.h', + 'platform/graphics/mac/FontPlatformDataMac.mm', + 'platform/graphics/mac/GlyphPageTreeNodeMac.cpp', + 'platform/graphics/mac/GraphicsContextMac.mm', + 'platform/graphics/mac/GraphicsLayerCA.h', + 'platform/graphics/mac/GraphicsLayerCA.mm', + 'platform/graphics/mac/IconMac.mm', + 'platform/graphics/mac/ImageMac.mm', + 'platform/graphics/mac/IntPointMac.mm', + 'platform/graphics/mac/IntRectMac.mm', + 'platform/graphics/mac/IntSizeMac.mm', + 'platform/graphics/mac/MediaPlayerPrivateQTKit.h', + 'platform/graphics/mac/MediaPlayerPrivateQTKit.mm', + 'platform/graphics/mac/MediaPlayerProxy.h', + 'platform/graphics/mac/SimpleFontDataMac.mm', + 'platform/graphics/mac/WebLayer.h', + 'platform/graphics/mac/WebLayer.mm', + 'platform/graphics/mac/WebTiledLayer.h', + 'platform/graphics/mac/WebTiledLayer.mm', + 'platform/graphics/MediaPlayer.cpp', + 'platform/graphics/opentype/OpenTypeUtilities.cpp', + 'platform/graphics/opentype/OpenTypeUtilities.h', + 'platform/graphics/qt/ColorQt.cpp', + 'platform/graphics/qt/FloatPointQt.cpp', + 'platform/graphics/qt/FloatRectQt.cpp', + 'platform/graphics/qt/FontCacheQt.cpp', + 'platform/graphics/qt/FontCustomPlatformData.cpp', + 'platform/graphics/qt/FontCustomPlatformData.h', + 'platform/graphics/qt/FontFallbackListQt.cpp', + 'platform/graphics/qt/FontPlatformData.h', + 'platform/graphics/qt/FontPlatformDataQt.cpp', + 'platform/graphics/qt/FontQt.cpp', + 'platform/graphics/qt/FontQt43.cpp', + 'platform/graphics/qt/GlyphPageTreeNodeQt.cpp', + 'platform/graphics/qt/GradientQt.cpp', + 'platform/graphics/qt/GraphicsContextQt.cpp', + 'platform/graphics/qt/IconQt.cpp', + 'platform/graphics/qt/ImageBufferData.h', + 'platform/graphics/qt/ImageBufferQt.cpp', + 'platform/graphics/qt/ImageDecoderQt.cpp', + 'platform/graphics/qt/ImageDecoderQt.h', + 'platform/graphics/qt/ImageQt.cpp', + 'platform/graphics/qt/ImageSourceQt.cpp', + 'platform/graphics/qt/IntPointQt.cpp', + 'platform/graphics/qt/IntRectQt.cpp', + 'platform/graphics/qt/IntSizeQt.cpp', + 'platform/graphics/qt/MediaPlayerPrivatePhonon.cpp', + 'platform/graphics/qt/MediaPlayerPrivatePhonon.h', + 'platform/graphics/qt/PathQt.cpp', + 'platform/graphics/qt/PatternQt.cpp', + 'platform/graphics/qt/SimpleFontDataQt.cpp', + 'platform/graphics/qt/StillImageQt.cpp', + 'platform/graphics/qt/StillImageQt.h', + 'platform/graphics/qt/TransformationMatrixQt.cpp', + 'platform/graphics/skia/BitmapImageSingleFrameSkia.h', + 'platform/graphics/skia/FloatPointSkia.cpp', + 'platform/graphics/skia/FloatRectSkia.cpp', + 'platform/graphics/skia/GradientSkia.cpp', + 'platform/graphics/skia/GraphicsContextPlatformPrivate.h', + 'platform/graphics/skia/GraphicsContextSkia.cpp', + 'platform/graphics/skia/ImageBufferSkia.cpp', + 'platform/graphics/skia/ImageSkia.cpp', + 'platform/graphics/skia/ImageSourceSkia.cpp', + 'platform/graphics/skia/ImageSourceSkia.h', + 'platform/graphics/skia/IntPointSkia.cpp', + 'platform/graphics/skia/IntRectSkia.cpp', + 'platform/graphics/skia/NativeImageSkia.cpp', + 'platform/graphics/skia/NativeImageSkia.h', + 'platform/graphics/skia/PathSkia.cpp', + 'platform/graphics/skia/PatternSkia.cpp', + 'platform/graphics/skia/PlatformContextSkia.cpp', + 'platform/graphics/skia/PlatformContextSkia.h', + 'platform/graphics/skia/PlatformGraphics.h', + 'platform/graphics/skia/SkiaFontWin.cpp', + 'platform/graphics/skia/SkiaFontWin.h', + 'platform/graphics/skia/SkiaUtils.cpp', + 'platform/graphics/skia/SkiaUtils.h', + 'platform/graphics/skia/TransformationMatrixSkia.cpp', + 'platform/graphics/transforms/IdentityTransformOperation.h', + 'platform/graphics/transforms/Matrix3DTransformOperation.cpp', + 'platform/graphics/transforms/Matrix3DTransformOperation.h', + 'platform/graphics/transforms/MatrixTransformOperation.cpp', + 'platform/graphics/transforms/MatrixTransformOperation.h', + 'platform/graphics/transforms/PerspectiveTransformOperation.cpp', + 'platform/graphics/transforms/PerspectiveTransformOperation.h', + 'platform/graphics/transforms/RotateTransformOperation.cpp', + 'platform/graphics/transforms/RotateTransformOperation.h', + 'platform/graphics/transforms/ScaleTransformOperation.cpp', + 'platform/graphics/transforms/ScaleTransformOperation.h', + 'platform/graphics/transforms/SkewTransformOperation.cpp', + 'platform/graphics/transforms/SkewTransformOperation.h', + 'platform/graphics/transforms/TransformOperation.h', + 'platform/graphics/transforms/TransformOperations.cpp', + 'platform/graphics/transforms/TransformOperations.h', + 'platform/graphics/transforms/TransformationMatrix.cpp', + 'platform/graphics/transforms/TransformationMatrix.h', + 'platform/graphics/transforms/TranslateTransformOperation.cpp', + 'platform/graphics/transforms/TranslateTransformOperation.h', + 'platform/graphics/win/ColorSafari.cpp', + 'platform/graphics/win/FontCGWin.cpp', + 'platform/graphics/win/FontCacheWin.cpp', + 'platform/graphics/win/FontCustomPlatformData.cpp', + 'platform/graphics/win/FontCustomPlatformData.h', + 'platform/graphics/win/FontCustomPlatformDataCairo.cpp', + 'platform/graphics/win/FontCustomPlatformDataCairo.h', + 'platform/graphics/win/FontDatabase.cpp', + 'platform/graphics/win/FontDatabase.h', + 'platform/graphics/win/FontPlatformData.h', + 'platform/graphics/win/FontPlatformDataCGWin.cpp', + 'platform/graphics/win/FontPlatformDataCairoWin.cpp', + 'platform/graphics/win/FontPlatformDataWin.cpp', + 'platform/graphics/win/FontWin.cpp', + 'platform/graphics/win/GlyphPageTreeNodeCGWin.cpp', + 'platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp', + 'platform/graphics/win/GraphicsContextCGWin.cpp', + 'platform/graphics/win/GraphicsContextCairoWin.cpp', + 'platform/graphics/win/GraphicsContextWin.cpp', + 'platform/graphics/win/IconWin.cpp', + 'platform/graphics/win/ImageCGWin.cpp', + 'platform/graphics/win/ImageCairoWin.cpp', + 'platform/graphics/win/ImageWin.cpp', + 'platform/graphics/win/IntPointWin.cpp', + 'platform/graphics/win/IntRectWin.cpp', + 'platform/graphics/win/IntSizeWin.cpp', + 'platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp', + 'platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h', + 'platform/graphics/win/QTMovieWin.cpp', + 'platform/graphics/win/QTMovieWin.h', + 'platform/graphics/win/QTMovieWinTimer.cpp', + 'platform/graphics/win/QTMovieWinTimer.h', + 'platform/graphics/win/SimpleFontDataCGWin.cpp', + 'platform/graphics/win/SimpleFontDataCairoWin.cpp', + 'platform/graphics/win/SimpleFontDataWin.cpp', + 'platform/graphics/win/UniscribeController.cpp', + 'platform/graphics/win/UniscribeController.h', + 'platform/graphics/wx/ColorWx.cpp', + 'platform/graphics/wx/FloatRectWx.cpp', + 'platform/graphics/wx/FontCacheWx.cpp', + 'platform/graphics/wx/FontPlatformData.h', + 'platform/graphics/wx/FontPlatformDataWx.cpp', + 'platform/graphics/wx/FontWx.cpp', + 'platform/graphics/wx/GlyphMapWx.cpp', + 'platform/graphics/wx/GradientWx.cpp', + 'platform/graphics/wx/GraphicsContextWx.cpp', + 'platform/graphics/wx/ImageBufferData.h', + 'platform/graphics/wx/ImageBufferWx.cpp', + 'platform/graphics/wx/ImageSourceWx.cpp', + 'platform/graphics/wx/ImageWx.cpp', + 'platform/graphics/wx/IntPointWx.cpp', + 'platform/graphics/wx/IntRectWx.cpp', + 'platform/graphics/wx/PathWx.cpp', + 'platform/graphics/wx/PenWx.cpp', + 'platform/graphics/wx/SimpleFontDataWx.cpp', + 'platform/graphics/wx/TransformationMatrixWx.cpp', + 'platform/graphics/BitmapImage.cpp', + 'platform/graphics/BitmapImage.h', + 'platform/graphics/Color.cpp', + 'platform/graphics/Color.h', + 'platform/graphics/DashArray.h', + 'platform/graphics/FloatPoint.cpp', + 'platform/graphics/FloatPoint.h', + 'platform/graphics/FloatPoint3D.cpp', + 'platform/graphics/FloatPoint3D.h', + 'platform/graphics/FloatQuad.cpp', + 'platform/graphics/FloatQuad.h', + 'platform/graphics/FloatRect.cpp', + 'platform/graphics/FloatRect.h', + 'platform/graphics/FloatSize.cpp', + 'platform/graphics/FloatSize.h', + 'platform/graphics/Font.cpp', + 'platform/graphics/Font.h', + 'platform/graphics/FontCache.cpp', + 'platform/graphics/FontCache.h', + 'platform/graphics/FontData.cpp', + 'platform/graphics/FontData.h', + 'platform/graphics/FontDescription.cpp', + 'platform/graphics/FontDescription.h', + 'platform/graphics/FontFallbackList.cpp', + 'platform/graphics/FontFallbackList.h', + 'platform/graphics/FontFamily.cpp', + 'platform/graphics/FontFamily.h', + 'platform/graphics/FontFastPath.cpp', + 'platform/graphics/FontRenderingMode.h', + 'platform/graphics/FontSelector.h', + 'platform/graphics/FontTraitsMask.h', + 'platform/graphics/GeneratedImage.cpp', + 'platform/graphics/GeneratedImage.h', + 'platform/graphics/Generator.h', + 'platform/graphics/GlyphBuffer.h', + 'platform/graphics/GlyphPageTreeNode.cpp', + 'platform/graphics/GlyphPageTreeNode.h', + 'platform/graphics/GlyphWidthMap.cpp', + 'platform/graphics/GlyphWidthMap.h', + 'platform/graphics/Gradient.cpp', + 'platform/graphics/Gradient.h', + 'platform/graphics/GraphicsContext.cpp', + 'platform/graphics/GraphicsContext.h', + 'platform/graphics/GraphicsContextPrivate.h', + 'platform/graphics/GraphicsLayer.cpp', + 'platform/graphics/GraphicsLayer.h', + 'platform/graphics/GraphicsLayerClient.h', + 'platform/graphics/GraphicsTypes.cpp', + 'platform/graphics/GraphicsTypes.h', + 'platform/graphics/Icon.h', + 'platform/graphics/Image.cpp', + 'platform/graphics/Image.h', + 'platform/graphics/ImageBuffer.h', + 'platform/graphics/ImageObserver.h', + 'platform/graphics/ImageSource.h', + 'platform/graphics/IntPoint.h', + 'platform/graphics/IntRect.cpp', + 'platform/graphics/IntRect.h', + 'platform/graphics/IntSize.h', + 'platform/graphics/IntSizeHash.h', + 'platform/graphics/MediaPlayer.cpp', + 'platform/graphics/MediaPlayer.h', + 'platform/graphics/MediaPlayerPrivate.h', + 'platform/graphics/Path.cpp', + 'platform/graphics/Path.h', + 'platform/graphics/PathTraversalState.cpp', + 'platform/graphics/PathTraversalState.h', + 'platform/graphics/Pattern.cpp', + 'platform/graphics/Pattern.h', + 'platform/graphics/Pen.cpp', + 'platform/graphics/Pen.h', + 'platform/graphics/SegmentedFontData.cpp', + 'platform/graphics/SegmentedFontData.h', + 'platform/graphics/SimpleFontData.cpp', + 'platform/graphics/SimpleFontData.h', + 'platform/graphics/StringTruncator.cpp', + 'platform/graphics/StringTruncator.h', + 'platform/graphics/StrokeStyleApplier.h', + 'platform/graphics/TextRun.h', + 'platform/graphics/UnitBezier.h', + 'platform/graphics/WidthIterator.cpp', + 'platform/graphics/WidthIterator.h', + 'platform/gtk/ClipboardGtk.cpp', + 'platform/gtk/ClipboardGtk.h', + 'platform/gtk/ContextMenuGtk.cpp', + 'platform/gtk/ContextMenuItemGtk.cpp', + 'platform/gtk/CursorGtk.cpp', + 'platform/gtk/CursorGtk.h', + 'platform/gtk/DragDataGtk.cpp', + 'platform/gtk/DragImageGtk.cpp', + 'platform/gtk/EventLoopGtk.cpp', + 'platform/gtk/FileChooserGtk.cpp', + 'platform/gtk/FileSystemGtk.cpp', + 'platform/gtk/GeolocationServiceGtk.cpp', + 'platform/gtk/GeolocationServiceGtk.h', + 'platform/gtk/KURLGtk.cpp', + 'platform/gtk/KeyEventGtk.cpp', + 'platform/gtk/KeyboardCodes.h', + 'platform/gtk/Language.cpp', + 'platform/gtk/LocalizedStringsGtk.cpp', + 'platform/gtk/LoggingGtk.cpp', + 'platform/gtk/MIMETypeRegistryGtk.cpp', + 'platform/gtk/MouseEventGtk.cpp', + 'platform/gtk/PasteboardGtk.cpp', + 'platform/gtk/PasteboardHelper.h', + 'platform/gtk/PlatformScreenGtk.cpp', + 'platform/gtk/PopupMenuGtk.cpp', + 'platform/gtk/RenderThemeGtk.cpp', + 'platform/gtk/RenderThemeGtk.h', + 'platform/gtk/ScrollViewGtk.cpp', + 'platform/gtk/ScrollbarGtk.cpp', + 'platform/gtk/ScrollbarGtk.h', + 'platform/gtk/ScrollbarThemeGtk.cpp', + 'platform/gtk/ScrollbarThemeGtk.h', + 'platform/gtk/SearchPopupMenuGtk.cpp', + 'platform/gtk/SharedBufferGtk.cpp', + 'platform/gtk/SharedTimerGtk.cpp', + 'platform/gtk/SoundGtk.cpp', + 'platform/gtk/TemporaryLinkStubs.cpp', + 'platform/gtk/WheelEventGtk.cpp', + 'platform/gtk/WidgetGtk.cpp', + 'platform/gtk/gtkdrawing.h', + 'platform/gtk/guriescape.h', + 'platform/image-decoders/ImageDecoder.h', + 'platform/image-decoders/bmp/BMPImageDecoder.cpp', + 'platform/image-decoders/bmp/BMPImageDecoder.h', + 'platform/image-decoders/bmp/BMPImageReader.cpp', + 'platform/image-decoders/bmp/BMPImageReader.h', + 'platform/image-decoders/gif/GIFImageDecoder.cpp', + 'platform/image-decoders/gif/GIFImageDecoder.h', + 'platform/image-decoders/gif/GIFImageReader.cpp', + 'platform/image-decoders/gif/GIFImageReader.h', + 'platform/image-decoders/ico/ICOImageDecoder.cpp', + 'platform/image-decoders/ico/ICOImageDecoder.h', + 'platform/image-decoders/jpeg/JPEGImageDecoder.cpp', + 'platform/image-decoders/jpeg/JPEGImageDecoder.h', + 'platform/image-decoders/png/PNGImageDecoder.cpp', + 'platform/image-decoders/png/PNGImageDecoder.h', + 'platform/image-decoders/xbm/XBMImageDecoder.cpp', + 'platform/image-decoders/xbm/XBMImageDecoder.h', + 'platform/image-decoders/zlib/crc32.h', + 'platform/image-decoders/zlib/deflate.h', + 'platform/image-decoders/zlib/inffast.h', + 'platform/image-decoders/zlib/inffixed.h', + 'platform/image-decoders/zlib/inflate.h', + 'platform/image-decoders/zlib/inftrees.h', + 'platform/image-decoders/zlib/mozzconf.h', + 'platform/image-decoders/zlib/trees.h', + 'platform/image-decoders/zlib/zconf.h', + 'platform/image-decoders/zlib/zlib.h', + 'platform/image-decoders/zlib/zutil.h', + 'platform/image-decoders/skia/ImageDecoderSkia.cpp', + 'platform/image-encoders/skia/PNGImageEncoder.cpp', + 'platform/image-encoders/skia/PNGImageEncoder.h', + 'platform/mac/AutodrainedPool.mm', + 'platform/mac/BlockExceptions.h', + 'platform/mac/BlockExceptions.mm', + 'platform/mac/ClipboardMac.h', + 'platform/mac/ClipboardMac.mm', + 'platform/mac/ContextMenuItemMac.mm', + 'platform/mac/ContextMenuMac.mm', + 'platform/mac/CookieJar.mm', + 'platform/mac/CursorMac.mm', + 'platform/mac/DragDataMac.mm', + 'platform/mac/DragImageMac.mm', + 'platform/mac/EventLoopMac.mm', + 'platform/mac/FileChooserMac.mm', + 'platform/mac/FileSystemMac.mm', + 'platform/mac/FoundationExtras.h', + 'platform/mac/KURLMac.mm', + 'platform/mac/KeyEventMac.mm', + 'platform/mac/Language.mm', + 'platform/mac/LocalCurrentGraphicsContext.h', + 'platform/mac/LocalCurrentGraphicsContext.mm', + 'platform/mac/LocalizedStringsMac.mm', + 'platform/mac/LoggingMac.mm', + 'platform/mac/MIMETypeRegistryMac.mm', + 'platform/mac/PasteboardHelper.h', + 'platform/mac/PasteboardMac.mm', + 'platform/mac/PlatformMouseEventMac.mm', + 'platform/mac/PlatformScreenMac.mm', + 'platform/mac/PopupMenuMac.mm', + 'platform/mac/PurgeableBufferMac.cpp', + 'platform/mac/SSLKeyGeneratorMac.mm', + 'platform/mac/SchedulePairMac.mm', + 'platform/mac/ScrollViewMac.mm', + 'platform/mac/ScrollbarThemeMac.h', + 'platform/mac/ScrollbarThemeMac.mm', + 'platform/mac/SearchPopupMenuMac.mm', + 'platform/mac/SharedBufferMac.mm', + 'platform/mac/SharedTimerMac.mm', + 'platform/mac/SoftLinking.h', + 'platform/mac/SoundMac.mm', + 'platform/mac/SystemTimeMac.cpp', + 'platform/mac/ThemeMac.h', + 'platform/mac/ThemeMac.mm', + 'platform/mac/ThreadCheck.mm', + 'platform/mac/WebCoreKeyGenerator.h', + 'platform/mac/WebCoreKeyGenerator.m', + 'platform/mac/WebCoreNSStringExtras.h', + 'platform/mac/WebCoreNSStringExtras.mm', + 'platform/mac/WebCoreObjCExtras.h', + 'platform/mac/WebCoreObjCExtras.mm', + 'platform/mac/WebCoreSystemInterface.h', + 'platform/mac/WebCoreSystemInterface.mm', + 'platform/mac/WebCoreView.h', + 'platform/mac/WebCoreView.m', + 'platform/mac/WebFontCache.h', + 'platform/mac/WebFontCache.mm', + 'platform/mac/WheelEventMac.mm', + 'platform/mac/WidgetMac.mm', + 'platform/network/cf/AuthenticationCF.cpp', + 'platform/network/cf/AuthenticationCF.h', + 'platform/network/cf/AuthenticationChallenge.h', + 'platform/network/cf/DNSCFNet.cpp', + 'platform/network/cf/FormDataStreamCFNet.cpp', + 'platform/network/cf/FormDataStreamCFNet.h', + 'platform/network/cf/ResourceError.h', + 'platform/network/cf/ResourceErrorCF.cpp', + 'platform/network/cf/ResourceHandleCFNet.cpp', + 'platform/network/cf/ResourceRequest.h', + 'platform/network/cf/ResourceRequestCFNet.cpp', + 'platform/network/cf/ResourceRequestCFNet.h', + 'platform/network/cf/ResourceResponse.h', + 'platform/network/cf/ResourceResponseCFNet.cpp', + 'platform/network/cf/ResourceResponseCFNet.h', + 'platform/network/chromium/AuthenticationChallenge.h', + 'platform/network/chromium/AuthenticationChallengeChromium.cpp', + 'platform/network/chromium/CookieJarChromium.cpp', + 'platform/network/chromium/DNSChromium.cpp', + 'platform/network/chromium/NetworkStateNotifierChromium.cpp', + 'platform/network/chromium/NetworkStateNotifierPrivate.h', + 'platform/network/chromium/ResourceError.h', + 'platform/network/chromium/ResourceRequest.h', + 'platform/network/chromium/ResourceResponse.h', + 'platform/network/curl/AuthenticationChallenge.h', + 'platform/network/curl/CookieJarCurl.cpp', + 'platform/network/curl/DNSCurl.cpp', + 'platform/network/curl/FormDataStreamCurl.cpp', + 'platform/network/curl/FormDataStreamCurl.h', + 'platform/network/curl/ResourceError.h', + 'platform/network/curl/ResourceHandleCurl.cpp', + 'platform/network/curl/ResourceHandleManager.cpp', + 'platform/network/curl/ResourceHandleManager.h', + 'platform/network/curl/ResourceRequest.h', + 'platform/network/curl/ResourceResponse.h', + 'platform/network/mac/AuthenticationChallenge.h', + 'platform/network/mac/AuthenticationMac.h', + 'platform/network/mac/AuthenticationMac.mm', + 'platform/network/mac/FormDataStreamMac.h', + 'platform/network/mac/FormDataStreamMac.mm', + 'platform/network/mac/NetworkStateNotifierMac.cpp', + 'platform/network/mac/ResourceError.h', + 'platform/network/mac/ResourceErrorMac.mm', + 'platform/network/mac/ResourceHandleMac.mm', + 'platform/network/mac/ResourceRequest.h', + 'platform/network/mac/ResourceRequestMac.mm', + 'platform/network/mac/ResourceResponse.h', + 'platform/network/mac/ResourceResponseMac.mm', + 'platform/network/mac/WebCoreURLResponse.h', + 'platform/network/mac/WebCoreURLResponse.mm', + 'platform/network/qt/AuthenticationChallenge.h', + 'platform/network/qt/QNetworkReplyHandler.cpp', + 'platform/network/qt/QNetworkReplyHandler.h', + 'platform/network/qt/ResourceError.h', + 'platform/network/qt/ResourceHandleQt.cpp', + 'platform/network/qt/ResourceRequest.h', + 'platform/network/qt/ResourceRequestQt.cpp', + 'platform/network/qt/ResourceResponse.h', + 'platform/network/soup/AuthenticationChallenge.h', + 'platform/network/soup/CookieJarSoup.cpp', + 'platform/network/soup/CookieJarSoup.h', + 'platform/network/soup/DNSSoup.cpp', + 'platform/network/soup/ResourceError.h', + 'platform/network/soup/ResourceHandleSoup.cpp', + 'platform/network/soup/ResourceRequest.h', + 'platform/network/soup/ResourceResponse.h', + 'platform/network/soup/webkit-soup-auth-dialog.c', + 'platform/network/soup/webkit-soup-auth-dialog.h', + 'platform/network/win/CookieJarCFNetWin.cpp', + 'platform/network/win/CookieJarWin.cpp', + 'platform/network/win/CookieStorageWin.cpp', + 'platform/network/win/CookieStorageWin.h', + 'platform/network/win/NetworkStateNotifierWin.cpp', + 'platform/network/win/ResourceHandleWin.cpp', + 'platform/network/win/ResourceHandleWin.h', + 'platform/network/AuthenticationChallengeBase.cpp', + 'platform/network/AuthenticationChallengeBase.h', + 'platform/network/Credential.cpp', + 'platform/network/Credential.h', + 'platform/network/DNS.h', + 'platform/network/FormData.cpp', + 'platform/network/FormData.h', + 'platform/network/FormDataBuilder.cpp', + 'platform/network/FormDataBuilder.h', + 'platform/network/HTTPHeaderMap.cpp', + 'platform/network/HTTPHeaderMap.h', + 'platform/network/HTTPParsers.cpp', + 'platform/network/HTTPParsers.h', + 'platform/network/NetworkStateNotifier.cpp', + 'platform/network/NetworkStateNotifier.h', + 'platform/network/ProtectionSpace.cpp', + 'platform/network/ProtectionSpace.h', + 'platform/network/ResourceErrorBase.cpp', + 'platform/network/ResourceErrorBase.h', + 'platform/network/ResourceHandleClient.h', + 'platform/network/ResourceHandleInternal.h', + 'platform/network/ResourceRequestBase.cpp', + 'platform/network/ResourceRequestBase.h', + 'platform/network/ResourceResponseBase.cpp', + 'platform/network/ResourceResponseBase.h', + 'platform/posix/FileSystemPOSIX.cpp', + 'platform/qt/ClipboardQt.cpp', + 'platform/qt/ClipboardQt.h', + 'platform/qt/ContextMenuItemQt.cpp', + 'platform/qt/ContextMenuQt.cpp', + 'platform/qt/CookieJarQt.cpp', + 'platform/qt/CursorQt.cpp', + 'platform/qt/DragDataQt.cpp', + 'platform/qt/DragImageQt.cpp', + 'platform/qt/EventLoopQt.cpp', + 'platform/qt/FileChooserQt.cpp', + 'platform/qt/FileSystemQt.cpp', + 'platform/qt/KURLQt.cpp', + 'platform/qt/KeyboardCodes.h', + 'platform/qt/Localizations.cpp', + 'platform/qt/LoggingQt.cpp', + 'platform/qt/MIMETypeRegistryQt.cpp', + 'platform/qt/MenuEventProxy.h', + 'platform/qt/PasteboardQt.cpp', + 'platform/qt/PlatformKeyboardEventQt.cpp', + 'platform/qt/PlatformMouseEventQt.cpp', + 'platform/qt/PlatformScreenQt.cpp', + 'platform/qt/PopupMenuQt.cpp', + 'platform/qt/QWebPopup.cpp', + 'platform/qt/QWebPopup.h', + 'platform/qt/RenderThemeQt.cpp', + 'platform/qt/RenderThemeQt.h', + 'platform/qt/ScreenQt.cpp', + 'platform/qt/ScrollViewQt.cpp', + 'platform/qt/ScrollbarQt.cpp', + 'platform/qt/ScrollbarThemeQt.cpp', + 'platform/qt/ScrollbarThemeQt.h', + 'platform/qt/SearchPopupMenuQt.cpp', + 'platform/qt/SharedBufferQt.cpp', + 'platform/qt/SharedTimerQt.cpp', + 'platform/qt/SoundQt.cpp', + 'platform/qt/TemporaryLinkStubs.cpp', + 'platform/qt/WheelEventQt.cpp', + 'platform/qt/WidgetQt.cpp', + 'platform/sql/SQLValue.cpp', + 'platform/sql/SQLValue.h', + 'platform/sql/SQLiteAuthorizer.cpp', + 'platform/sql/SQLiteDatabase.cpp', + 'platform/sql/SQLiteDatabase.h', + 'platform/sql/SQLiteFileSystem.h', + 'platform/sql/SQLiteFileSystem.cpp', + 'platform/sql/SQLiteStatement.cpp', + 'platform/sql/SQLiteStatement.h', + 'platform/sql/SQLiteTransaction.cpp', + 'platform/sql/SQLiteTransaction.h', + 'platform/symbian/FloatPointSymbian.cpp', + 'platform/symbian/FloatRectSymbian.cpp', + 'platform/symbian/IntPointSymbian.cpp', + 'platform/symbian/IntRectSymbian.cpp', + 'platform/symbian/IntSizeSymbian.cpp', + 'platform/text/cf/StringCF.cpp', + 'platform/text/cf/StringImplCF.cpp', + 'platform/text/chromium/TextBreakIteratorInternalICUChromium.cpp', + 'platform/text/gtk/TextBreakIteratorInternalICUGtk.cpp', + 'platform/text/mac/CharsetData.h', + 'platform/text/mac/ShapeArabic.c', + 'platform/text/mac/ShapeArabic.h', + 'platform/text/mac/StringImplMac.mm', + 'platform/text/mac/StringMac.mm', + 'platform/text/mac/TextBoundaries.mm', + 'platform/text/mac/TextBreakIteratorInternalICUMac.mm', + 'platform/text/mac/TextCodecMac.cpp', + 'platform/text/mac/TextCodecMac.h', + 'platform/text/qt/StringQt.cpp', + 'platform/text/qt/TextBoundaries.cpp', + 'platform/text/qt/TextBreakIteratorQt.cpp', + 'platform/text/qt/TextCodecQt.cpp', + 'platform/text/qt/TextCodecQt.h', + 'platform/text/symbian/StringImplSymbian.cpp', + 'platform/text/symbian/StringSymbian.cpp', + 'platform/text/win/TextBreakIteratorInternalICUWin.cpp', + 'platform/text/wx/StringWx.cpp', + 'platform/text/AtomicString.cpp', + 'platform/text/AtomicString.h', + 'platform/text/AtomicStringHash.h', + 'platform/text/AtomicStringImpl.h', + 'platform/text/Base64.cpp', + 'platform/text/Base64.h', + 'platform/text/BidiContext.cpp', + 'platform/text/BidiContext.h', + 'platform/text/BidiResolver.h', + 'platform/text/CString.cpp', + 'platform/text/CString.h', + 'platform/text/CharacterNames.h', + 'platform/text/ParserUtilities.h', + 'platform/text/PlatformString.h', + 'platform/text/RegularExpression.cpp', + 'platform/text/RegularExpression.h', + 'platform/text/SegmentedString.cpp', + 'platform/text/SegmentedString.h', + 'platform/text/String.cpp', + 'platform/text/StringBuffer.h', + 'platform/text/StringBuilder.cpp', + 'platform/text/StringBuilder.h', + 'platform/text/StringHash.h', + 'platform/text/StringImpl.cpp', + 'platform/text/StringImpl.h', + 'platform/text/TextBoundaries.h', + 'platform/text/TextBoundariesICU.cpp', + 'platform/text/TextBreakIterator.h', + 'platform/text/TextBreakIteratorICU.cpp', + 'platform/text/TextBreakIteratorInternalICU.h', + 'platform/text/TextCodec.cpp', + 'platform/text/TextCodec.h', + 'platform/text/TextCodecICU.cpp', + 'platform/text/TextCodecICU.h', + 'platform/text/TextCodecLatin1.cpp', + 'platform/text/TextCodecLatin1.h', + 'platform/text/TextCodecUTF16.cpp', + 'platform/text/TextCodecUTF16.h', + 'platform/text/TextCodecUserDefined.cpp', + 'platform/text/TextCodecUserDefined.h', + 'platform/text/TextDirection.h', + 'platform/text/TextEncoding.cpp', + 'platform/text/TextEncoding.h', + 'platform/text/TextEncodingDetector.h', + 'platform/text/TextEncodingDetectorICU.cpp', + 'platform/text/TextEncodingRegistry.cpp', + 'platform/text/TextEncodingRegistry.h', + 'platform/text/TextStream.cpp', + 'platform/text/TextStream.h', + 'platform/text/UnicodeRange.cpp', + 'platform/text/UnicodeRange.h', + 'platform/win/BString.cpp', + 'platform/win/BString.h', + 'platform/win/COMPtr.h', + 'platform/win/ClipboardUtilitiesWin.cpp', + 'platform/win/ClipboardUtilitiesWin.h', + 'platform/win/ClipboardWin.cpp', + 'platform/win/ClipboardWin.h', + 'platform/win/ContextMenuItemWin.cpp', + 'platform/win/ContextMenuWin.cpp', + 'platform/win/CursorWin.cpp', + 'platform/win/DragDataWin.cpp', + 'platform/win/DragImageCGWin.cpp', + 'platform/win/DragImageCairoWin.cpp', + 'platform/win/DragImageWin.cpp', + 'platform/win/EditorWin.cpp', + 'platform/win/EventLoopWin.cpp', + 'platform/win/FileChooserWin.cpp', + 'platform/win/FileSystemWin.cpp', + 'platform/win/GDIObjectCounter.cpp', + 'platform/win/GDIObjectCounter.h', + 'platform/win/KeyEventWin.cpp', + 'platform/win/Language.cpp', + 'platform/win/LoggingWin.cpp', + 'platform/win/MIMETypeRegistryWin.cpp', + 'platform/win/PasteboardWin.cpp', + 'platform/win/PlatformMouseEventWin.cpp', + 'platform/win/PlatformScreenWin.cpp', + 'platform/win/PlatformScrollBar.h', + 'platform/win/PlatformScrollBarWin.cpp', + 'platform/win/PopupMenuWin.cpp', + 'platform/win/ScrollbarThemeSafari.cpp', + 'platform/win/ScrollbarThemeSafari.h', + 'platform/win/ScrollbarThemeWin.cpp', + 'platform/win/ScrollbarThemeWin.h', + 'platform/win/SearchPopupMenuWin.cpp', + 'platform/win/SharedBufferWin.cpp', + 'platform/win/SharedTimerWin.cpp', + 'platform/win/SoftLinking.h', + 'platform/win/SoundWin.cpp', + 'platform/win/SystemTimeWin.cpp', + 'platform/win/TemporaryLinkStubs.cpp', + 'platform/win/WCDataObject.cpp', + 'platform/win/WCDataObject.h', + 'platform/win/WebCoreTextRenderer.cpp', + 'platform/win/WebCoreTextRenderer.h', + 'platform/win/WheelEventWin.cpp', + 'platform/win/WidgetWin.cpp', + 'platform/win/WindowMessageBroadcaster.cpp', + 'platform/win/WindowMessageBroadcaster.h', + 'platform/win/WindowMessageListener.h', + 'platform/wx/wxcode/gtk/fontprops.cpp', + 'platform/wx/wxcode/gtk/non-kerned-drawing.cpp', + 'platform/wx/wxcode/mac/carbon/fontprops.cpp', + 'platform/wx/wxcode/mac/carbon/non-kerned-drawing.cpp', + 'platform/wx/wxcode/win/fontprops.cpp', + 'platform/wx/wxcode/win/non-kerned-drawing.cpp', + 'platform/wx/wxcode/fontprops.cpp', + 'platform/wx/wxcode/fontprops.h', + 'platform/wx/wxcode/non-kerned-drawing.h', + 'platform/wx/ClipboardWx.cpp', + 'platform/wx/ClipboardWx.h', + 'platform/wx/ContextMenuItemWx.cpp', + 'platform/wx/ContextMenuWx.cpp', + 'platform/wx/CursorWx.cpp', + 'platform/wx/DragDataWx.cpp', + 'platform/wx/DragImageWx.cpp', + 'platform/wx/EventLoopWx.cpp', + 'platform/wx/FileSystemWx.cpp', + 'platform/wx/KeyEventWin.cpp', + 'platform/wx/KeyboardCodes.h', + 'platform/wx/KeyboardEventWx.cpp', + 'platform/wx/LocalizedStringsWx.cpp', + 'platform/wx/LoggingWx.cpp', + 'platform/wx/MimeTypeRegistryWx.cpp', + 'platform/wx/MouseEventWx.cpp', + 'platform/wx/MouseWheelEventWx.cpp', + 'platform/wx/PasteboardWx.cpp', + 'platform/wx/PopupMenuWx.cpp', + 'platform/wx/RenderThemeWx.cpp', + 'platform/wx/ScreenWx.cpp', + 'platform/wx/ScrollViewWx.cpp', + 'platform/wx/SharedTimerWx.cpp', + 'platform/wx/SoundWx.cpp', + 'platform/wx/TemporaryLinkStubs.cpp', + 'platform/wx/WidgetWx.cpp', + 'platform/Arena.cpp', + 'platform/Arena.h', + 'platform/AutodrainedPool.h', + 'platform/ContentType.cpp', + 'platform/ContentType.h', + 'platform/ContextMenu.cpp', + 'platform/ContextMenu.h', + 'platform/ContextMenuItem.h', + 'platform/CookieJar.h', + 'platform/CrossThreadCopier.h', + 'platform/CrossThreadCopier.cpp', + 'platform/Cursor.h', + 'platform/DeprecatedPtrList.h', + 'platform/DeprecatedPtrListImpl.cpp', + 'platform/DeprecatedPtrListImpl.h', + 'platform/DragData.cpp', + 'platform/DragData.h', + 'platform/DragImage.cpp', + 'platform/DragImage.h', + 'platform/EventLoop.h', + 'platform/FileChooser.cpp', + 'platform/FileChooser.h', + 'platform/FileSystem.h', + 'platform/FloatConversion.h', + 'platform/GeolocationService.cpp', + 'platform/GeolocationService.h', + 'platform/HostWindow.h', + 'platform/KeyboardCodes.h', + 'platform/KURL.cpp', + 'platform/KURL.h', + 'platform/KURLGoogle.cpp', + 'platform/KURLGooglePrivate.h', + 'platform/KURLHash.h', + 'platform/Language.h', + 'platform/Length.cpp', + 'platform/Length.h', + 'platform/LengthBox.h', + 'platform/LengthSize.h', + 'platform/LinkHash.cpp', + 'platform/LinkHash.h', + 'platform/LocalizedStrings.h', + 'platform/Logging.cpp', + 'platform/Logging.h', + 'platform/MIMETypeRegistry.cpp', + 'platform/MIMETypeRegistry.h', + 'platform/NotImplemented.h', + 'platform/Pasteboard.h', + 'platform/PlatformKeyboardEvent.h', + 'platform/PlatformMenuDescription.h', + 'platform/PlatformMouseEvent.h', + 'platform/PlatformScreen.h', + 'platform/PlatformWheelEvent.h', + 'platform/PopupMenu.h', + 'platform/PopupMenuClient.h', + 'platform/PopupMenuStyle.h', + 'platform/PurgeableBuffer.h', + 'platform/SSLKeyGenerator.h', + 'platform/ScrollTypes.h', + 'platform/ScrollView.cpp', + 'platform/ScrollView.h', + 'platform/Scrollbar.cpp', + 'platform/Scrollbar.h', + 'platform/ScrollbarClient.h', + 'platform/ScrollbarTheme.h', + 'platform/ScrollbarThemeComposite.cpp', + 'platform/ScrollbarThemeComposite.h', + 'platform/SearchPopupMenu.h', + 'platform/SharedBuffer.cpp', + 'platform/SharedBuffer.h', + 'platform/SharedTimer.h', + 'platform/Sound.h', + 'platform/StaticConstructors.h', + 'platform/SystemTime.h', + 'platform/Theme.cpp', + 'platform/Theme.h', + 'platform/ThemeTypes.h', + 'platform/ThreadCheck.h', + 'platform/ThreadGlobalData.cpp', + 'platform/ThreadGlobalData.h', + 'platform/ThreadTimers.cpp', + 'platform/ThreadTimers.h', + 'platform/Timer.cpp', + 'platform/Timer.h', + 'platform/TreeShared.h', + 'platform/Widget.cpp', + 'platform/Widget.h', + 'plugins/chromium/PluginDataChromium.cpp', + 'plugins/gtk/PluginDataGtk.cpp', + 'plugins/gtk/PluginPackageGtk.cpp', + 'plugins/gtk/PluginViewGtk.cpp', + 'plugins/gtk/gtk2xtbin.h', + 'plugins/gtk/xembed.h', + 'plugins/mac/PluginDataMac.mm', + 'plugins/mac/PluginPackageMac.cpp', + 'plugins/mac/PluginViewMac.cpp', + 'plugins/qt/PluginDataQt.cpp', + 'plugins/qt/PluginPackageQt.cpp', + 'plugins/qt/PluginViewQt.cpp', + 'plugins/win/PluginDataWin.cpp', + 'plugins/win/PluginDatabaseWin.cpp', + 'plugins/win/PluginMessageThrottlerWin.cpp', + 'plugins/win/PluginMessageThrottlerWin.h', + 'plugins/win/PluginPackageWin.cpp', + 'plugins/win/PluginViewWin.cpp', + 'plugins/wx/PluginDataWx.cpp', + 'plugins/wx/PluginPackageWx.cpp', + 'plugins/wx/PluginViewWx.cpp', + 'plugins/MimeType.cpp', + 'plugins/MimeType.h', + 'plugins/MimeTypeArray.cpp', + 'plugins/MimeTypeArray.h', + 'plugins/Plugin.cpp', + 'plugins/Plugin.h', + 'plugins/PluginArray.cpp', + 'plugins/PluginArray.h', + 'plugins/PluginData.cpp', + 'plugins/PluginData.h', + 'plugins/PluginDatabase.cpp', + 'plugins/PluginDatabase.h', + 'plugins/PluginDebug.h', + 'plugins/PluginInfoStore.cpp', + 'plugins/PluginInfoStore.h', + 'plugins/PluginMainThreadScheduler.cpp', + 'plugins/PluginMainThreadScheduler.h', + 'plugins/PluginPackage.cpp', + 'plugins/PluginPackage.h', + 'plugins/PluginQuirkSet.h', + 'plugins/PluginStream.cpp', + 'plugins/PluginStream.h', + 'plugins/PluginView.cpp', + 'plugins/PluginView.h', + 'plugins/npapi.cpp', + 'plugins/npfunctions.h', + 'rendering/style/BindingURI.cpp', + 'rendering/style/BindingURI.h', + 'rendering/style/BorderData.h', + 'rendering/style/BorderValue.h', + 'rendering/style/CollapsedBorderValue.h', + 'rendering/style/ContentData.cpp', + 'rendering/style/ContentData.h', + 'rendering/style/CounterContent.h', + 'rendering/style/CounterDirectives.cpp', + 'rendering/style/CounterDirectives.h', + 'rendering/style/CursorData.h', + 'rendering/style/CursorList.h', + 'rendering/style/DataRef.h', + 'rendering/style/FillLayer.cpp', + 'rendering/style/FillLayer.h', + 'rendering/style/KeyframeList.cpp', + 'rendering/style/KeyframeList.h', + 'rendering/style/NinePieceImage.cpp', + 'rendering/style/NinePieceImage.h', + 'rendering/style/OutlineValue.h', + 'rendering/style/RenderStyle.cpp', + 'rendering/style/RenderStyle.h', + 'rendering/style/RenderStyleConstants.h', + 'rendering/style/SVGRenderStyle.cpp', + 'rendering/style/SVGRenderStyle.h', + 'rendering/style/SVGRenderStyleDefs.cpp', + 'rendering/style/SVGRenderStyleDefs.h', + 'rendering/style/ShadowData.cpp', + 'rendering/style/ShadowData.h', + 'rendering/style/StyleBackgroundData.cpp', + 'rendering/style/StyleBackgroundData.h', + 'rendering/style/StyleBoxData.cpp', + 'rendering/style/StyleBoxData.h', + 'rendering/style/StyleCachedImage.cpp', + 'rendering/style/StyleCachedImage.h', + 'rendering/style/StyleDashboardRegion.h', + 'rendering/style/StyleFlexibleBoxData.cpp', + 'rendering/style/StyleFlexibleBoxData.h', + 'rendering/style/StyleGeneratedImage.cpp', + 'rendering/style/StyleGeneratedImage.h', + 'rendering/style/StyleImage.h', + 'rendering/style/StyleInheritedData.cpp', + 'rendering/style/StyleInheritedData.h', + 'rendering/style/StyleMarqueeData.cpp', + 'rendering/style/StyleMarqueeData.h', + 'rendering/style/StyleMultiColData.cpp', + 'rendering/style/StyleMultiColData.h', + 'rendering/style/StyleRareInheritedData.cpp', + 'rendering/style/StyleRareInheritedData.h', + 'rendering/style/StyleRareNonInheritedData.cpp', + 'rendering/style/StyleRareNonInheritedData.h', + 'rendering/style/StyleReflection.h', + 'rendering/style/StyleSurroundData.cpp', + 'rendering/style/StyleSurroundData.h', + 'rendering/style/StyleTransformData.cpp', + 'rendering/style/StyleTransformData.h', + 'rendering/style/StyleVisualData.cpp', + 'rendering/style/StyleVisualData.h', + 'rendering/AutoTableLayout.cpp', + 'rendering/AutoTableLayout.h', + 'rendering/CounterNode.cpp', + 'rendering/CounterNode.h', + 'rendering/EllipsisBox.cpp', + 'rendering/EllipsisBox.h', + 'rendering/FixedTableLayout.cpp', + 'rendering/FixedTableLayout.h', + 'rendering/GapRects.h', + 'rendering/HitTestRequest.h', + 'rendering/HitTestResult.cpp', + 'rendering/HitTestResult.h', + 'rendering/InlineBox.cpp', + 'rendering/InlineBox.h', + 'rendering/InlineFlowBox.cpp', + 'rendering/InlineFlowBox.h', + 'rendering/InlineRunBox.h', + 'rendering/InlineTextBox.cpp', + 'rendering/InlineTextBox.h', + 'rendering/LayoutState.cpp', + 'rendering/LayoutState.h', + 'rendering/MediaControlElements.cpp', + 'rendering/MediaControlElements.h', + 'rendering/PointerEventsHitRules.cpp', + 'rendering/PointerEventsHitRules.h', + 'rendering/RenderApplet.cpp', + 'rendering/RenderApplet.h', + 'rendering/RenderArena.cpp', + 'rendering/RenderArena.h', + 'rendering/RenderBR.cpp', + 'rendering/RenderBR.h', + 'rendering/RenderBlock.cpp', + 'rendering/RenderBlock.h', + 'rendering/RenderBlockLineLayout.cpp', + 'rendering/RenderBox.cpp', + 'rendering/RenderBox.h', + 'rendering/RenderBoxModelObject.cpp', + 'rendering/RenderBoxModelObject.h', + 'rendering/RenderButton.cpp', + 'rendering/RenderButton.h', + 'rendering/RenderCounter.cpp', + 'rendering/RenderCounter.h', + 'rendering/RenderDataGrid.cpp', + 'rendering/RenderDataGrid.h', + 'rendering/RenderFieldset.cpp', + 'rendering/RenderFieldset.h', + 'rendering/RenderFileUploadControl.cpp', + 'rendering/RenderFileUploadControl.h', + 'rendering/RenderFlexibleBox.cpp', + 'rendering/RenderFlexibleBox.h', + 'rendering/RenderForeignObject.cpp', + 'rendering/RenderForeignObject.h', + 'rendering/RenderFrame.cpp', + 'rendering/RenderFrame.h', + 'rendering/RenderFrameSet.cpp', + 'rendering/RenderFrameSet.h', + 'rendering/RenderHTMLCanvas.cpp', + 'rendering/RenderHTMLCanvas.h', + 'rendering/RenderImage.cpp', + 'rendering/RenderImage.h', + 'rendering/RenderImageGeneratedContent.cpp', + 'rendering/RenderImageGeneratedContent.h', + 'rendering/RenderInline.cpp', + 'rendering/RenderInline.h', + 'rendering/RenderLayer.cpp', + 'rendering/RenderLayer.h', + 'rendering/RenderLayerBacking.cpp', + 'rendering/RenderLayerBacking.h', + 'rendering/RenderLayerCompositor.cpp', + 'rendering/RenderLayerCompositor.h', + 'rendering/RenderLineBoxList.cpp', + 'rendering/RenderLineBoxList.h', + 'rendering/RenderListBox.cpp', + 'rendering/RenderListBox.h', + 'rendering/RenderListItem.cpp', + 'rendering/RenderListItem.h', + 'rendering/RenderListMarker.cpp', + 'rendering/RenderListMarker.h', + 'rendering/RenderMarquee.cpp', + 'rendering/RenderMarquee.h', + 'rendering/RenderMedia.cpp', + 'rendering/RenderMedia.h', + 'rendering/RenderMenuList.cpp', + 'rendering/RenderMenuList.h', + 'rendering/RenderObject.cpp', + 'rendering/RenderObject.h', + 'rendering/RenderObjectChildList.cpp', + 'rendering/RenderObjectChildList.h', + 'rendering/RenderPart.cpp', + 'rendering/RenderPart.h', + 'rendering/RenderPartObject.cpp', + 'rendering/RenderPartObject.h', + 'rendering/RenderPath.cpp', + 'rendering/RenderPath.h', + 'rendering/RenderReplaced.cpp', + 'rendering/RenderReplaced.h', + 'rendering/RenderReplica.cpp', + 'rendering/RenderReplica.h', + 'rendering/RenderSVGBlock.cpp', + 'rendering/RenderSVGBlock.h', + 'rendering/RenderSVGContainer.cpp', + 'rendering/RenderSVGContainer.h', + 'rendering/RenderSVGGradientStop.cpp', + 'rendering/RenderSVGGradientStop.h', + 'rendering/RenderSVGHiddenContainer.cpp', + 'rendering/RenderSVGHiddenContainer.h', + 'rendering/RenderSVGImage.cpp', + 'rendering/RenderSVGImage.h', + 'rendering/RenderSVGInline.cpp', + 'rendering/RenderSVGInline.h', + 'rendering/RenderSVGInlineText.cpp', + 'rendering/RenderSVGInlineText.h', + 'rendering/RenderSVGModelObject.cpp', + 'rendering/RenderSVGModelObject.h', + 'rendering/RenderSVGRoot.cpp', + 'rendering/RenderSVGRoot.h', + 'rendering/RenderSVGTSpan.cpp', + 'rendering/RenderSVGTSpan.h', + 'rendering/RenderSVGText.cpp', + 'rendering/RenderSVGText.h', + 'rendering/RenderSVGTextPath.cpp', + 'rendering/RenderSVGTextPath.h', + 'rendering/RenderSVGTransformableContainer.cpp', + 'rendering/RenderSVGTransformableContainer.h', + 'rendering/RenderSVGViewportContainer.cpp', + 'rendering/RenderSVGViewportContainer.h', + 'rendering/RenderScrollbar.cpp', + 'rendering/RenderScrollbar.h', + 'rendering/RenderScrollbarPart.cpp', + 'rendering/RenderScrollbarPart.h', + 'rendering/RenderScrollbarTheme.cpp', + 'rendering/RenderScrollbarTheme.h', + 'rendering/RenderSelectionInfo.h', + 'rendering/RenderSlider.cpp', + 'rendering/RenderSlider.h', + 'rendering/RenderTable.cpp', + 'rendering/RenderTable.h', + 'rendering/RenderTableCell.cpp', + 'rendering/RenderTableCell.h', + 'rendering/RenderTableCol.cpp', + 'rendering/RenderTableCol.h', + 'rendering/RenderTableRow.cpp', + 'rendering/RenderTableRow.h', + 'rendering/RenderTableSection.cpp', + 'rendering/RenderTableSection.h', + 'rendering/RenderText.cpp', + 'rendering/RenderText.h', + 'rendering/RenderTextControl.cpp', + 'rendering/RenderTextControl.h', + 'rendering/RenderTextControlMultiLine.cpp', + 'rendering/RenderTextControlMultiLine.h', + 'rendering/RenderTextControlSingleLine.cpp', + 'rendering/RenderTextControlSingleLine.h', + 'rendering/RenderTextFragment.cpp', + 'rendering/RenderTextFragment.h', + 'rendering/RenderTheme.cpp', + 'rendering/RenderTheme.h', + 'rendering/RenderThemeChromiumSkia.cpp', + 'rendering/RenderThemeChromiumSkia.h', + 'rendering/RenderThemeChromiumLinux.cpp', + 'rendering/RenderThemeChromiumLinux.h', + 'rendering/RenderThemeChromiumMac.h', + 'rendering/RenderThemeChromiumMac.mm', + 'rendering/RenderThemeChromiumWin.cpp', + 'rendering/RenderThemeChromiumWin.h', + 'rendering/RenderThemeMac.h', + 'rendering/RenderThemeMac.mm', + 'rendering/RenderThemeSafari.cpp', + 'rendering/RenderThemeSafari.h', + 'rendering/RenderThemeWin.cpp', + 'rendering/RenderThemeWin.h', + 'rendering/RenderTreeAsText.cpp', + 'rendering/RenderTreeAsText.h', + 'rendering/RenderVideo.cpp', + 'rendering/RenderVideo.h', + 'rendering/RenderView.cpp', + 'rendering/RenderView.h', + 'rendering/RenderWidget.cpp', + 'rendering/RenderWidget.h', + 'rendering/RenderWordBreak.cpp', + 'rendering/RenderWordBreak.h', + 'rendering/RootInlineBox.cpp', + 'rendering/RootInlineBox.h', + 'rendering/ScrollBehavior.cpp', + 'rendering/ScrollBehavior.h', + 'rendering/SVGCharacterLayoutInfo.cpp', + 'rendering/SVGCharacterLayoutInfo.h', + 'rendering/SVGInlineFlowBox.cpp', + 'rendering/SVGInlineFlowBox.h', + 'rendering/SVGInlineTextBox.cpp', + 'rendering/SVGInlineTextBox.h', + 'rendering/SVGRenderSupport.cpp', + 'rendering/SVGRenderSupport.h', + 'rendering/SVGRenderTreeAsText.cpp', + 'rendering/SVGRenderTreeAsText.h', + 'rendering/SVGRootInlineBox.cpp', + 'rendering/SVGRootInlineBox.h', + 'rendering/TableLayout.h', + 'rendering/TextControlInnerElements.cpp', + 'rendering/TextControlInnerElements.h', + 'rendering/TransformState.cpp', + 'rendering/TransformState.h', + 'rendering/break_lines.cpp', + 'rendering/break_lines.h', + 'storage/ChangeVersionWrapper.cpp', + 'storage/ChangeVersionWrapper.h', + 'storage/Database.cpp', + 'storage/Database.h', + 'storage/DatabaseAuthorizer.cpp', + 'storage/DatabaseAuthorizer.h', + 'storage/DatabaseDetails.h', + 'storage/DatabaseTask.cpp', + 'storage/DatabaseTask.h', + 'storage/DatabaseThread.cpp', + 'storage/DatabaseThread.h', + 'storage/DatabaseTracker.cpp', + 'storage/DatabaseTracker.h', + 'storage/DatabaseTrackerClient.h', + 'storage/LocalStorage.cpp', + 'storage/LocalStorage.h', + 'storage/LocalStorageArea.cpp', + 'storage/LocalStorageArea.h', + 'storage/LocalStorageTask.cpp', + 'storage/LocalStorageTask.h', + 'storage/LocalStorageThread.cpp', + 'storage/LocalStorageThread.h', + 'storage/OriginQuotaManager.cpp', + 'storage/OriginQuotaManager.h', + 'storage/OriginUsageRecord.cpp', + 'storage/OriginUsageRecord.h', + 'storage/SQLError.h', + 'storage/SQLResultSet.cpp', + 'storage/SQLResultSet.h', + 'storage/SQLResultSetRowList.cpp', + 'storage/SQLResultSetRowList.h', + 'storage/SQLStatement.cpp', + 'storage/SQLStatement.h', + 'storage/SQLStatementCallback.h', + 'storage/SQLStatementErrorCallback.h', + 'storage/SQLTransaction.cpp', + 'storage/SQLTransaction.h', + 'storage/SQLTransactionCallback.h', + 'storage/SQLTransactionErrorCallback.h', + 'storage/SessionStorage.cpp', + 'storage/SessionStorage.h', + 'storage/SessionStorageArea.cpp', + 'storage/SessionStorageArea.h', + 'storage/Storage.cpp', + 'storage/Storage.h', + 'storage/StorageArea.cpp', + 'storage/StorageArea.h', + 'storage/StorageEvent.cpp', + 'storage/StorageEvent.h', + 'storage/StorageMap.cpp', + 'storage/StorageMap.h', + 'svg/animation/SMILTime.cpp', + 'svg/animation/SMILTime.h', + 'svg/animation/SMILTimeContainer.cpp', + 'svg/animation/SMILTimeContainer.h', + 'svg/animation/SVGSMILElement.cpp', + 'svg/animation/SVGSMILElement.h', + 'svg/graphics/filters/SVGDistantLightSource.h', + 'svg/graphics/filters/SVGFEConvolveMatrix.cpp', + 'svg/graphics/filters/SVGFEConvolveMatrix.h', + 'svg/graphics/filters/SVGFEDiffuseLighting.cpp', + 'svg/graphics/filters/SVGFEDiffuseLighting.h', + 'svg/graphics/filters/SVGFEDisplacementMap.cpp', + 'svg/graphics/filters/SVGFEDisplacementMap.h', + 'svg/graphics/filters/SVGFEFlood.cpp', + 'svg/graphics/filters/SVGFEFlood.h', + 'svg/graphics/filters/SVGFEGaussianBlur.cpp', + 'svg/graphics/filters/SVGFEGaussianBlur.h', + 'svg/graphics/filters/SVGFEImage.cpp', + 'svg/graphics/filters/SVGFEImage.h', + 'svg/graphics/filters/SVGFEMerge.cpp', + 'svg/graphics/filters/SVGFEMerge.h', + 'svg/graphics/filters/SVGFEMorphology.cpp', + 'svg/graphics/filters/SVGFEMorphology.h', + 'svg/graphics/filters/SVGFEOffset.cpp', + 'svg/graphics/filters/SVGFEOffset.h', + 'svg/graphics/filters/SVGFESpecularLighting.cpp', + 'svg/graphics/filters/SVGFESpecularLighting.h', + 'svg/graphics/filters/SVGFETile.cpp', + 'svg/graphics/filters/SVGFETile.h', + 'svg/graphics/filters/SVGFETurbulence.cpp', + 'svg/graphics/filters/SVGFETurbulence.h', + 'svg/graphics/filters/SVGFilterEffect.cpp', + 'svg/graphics/filters/SVGFilterEffect.h', + 'svg/graphics/filters/SVGLightSource.cpp', + 'svg/graphics/filters/SVGLightSource.h', + 'svg/graphics/filters/SVGPointLightSource.h', + 'svg/graphics/filters/SVGSpotLightSource.h', + 'svg/graphics/SVGImage.cpp', + 'svg/graphics/SVGImage.h', + 'svg/graphics/SVGPaintServer.cpp', + 'svg/graphics/SVGPaintServer.h', + 'svg/graphics/SVGPaintServerGradient.cpp', + 'svg/graphics/SVGPaintServerGradient.h', + 'svg/graphics/SVGPaintServerLinearGradient.cpp', + 'svg/graphics/SVGPaintServerLinearGradient.h', + 'svg/graphics/SVGPaintServerPattern.cpp', + 'svg/graphics/SVGPaintServerPattern.h', + 'svg/graphics/SVGPaintServerRadialGradient.cpp', + 'svg/graphics/SVGPaintServerRadialGradient.h', + 'svg/graphics/SVGPaintServerSolid.cpp', + 'svg/graphics/SVGPaintServerSolid.h', + 'svg/graphics/SVGResource.cpp', + 'svg/graphics/SVGResource.h', + 'svg/graphics/SVGResourceClipper.cpp', + 'svg/graphics/SVGResourceClipper.h', + 'svg/graphics/SVGResourceFilter.cpp', + 'svg/graphics/SVGResourceFilter.h', + 'svg/graphics/SVGResourceListener.h', + 'svg/graphics/SVGResourceMarker.cpp', + 'svg/graphics/SVGResourceMarker.h', + 'svg/graphics/SVGResourceMasker.cpp', + 'svg/graphics/SVGResourceMasker.h', + 'svg/ColorDistance.cpp', + 'svg/ColorDistance.h', + 'svg/ElementTimeControl.h', + 'svg/Filter.cpp', + 'svg/Filter.h', + 'svg/FilterBuilder.h', + 'svg/FilterBuilder.cpp', + 'svg/FilterEffect.cpp', + 'svg/FilterEffect.h', + 'svg/GradientAttributes.h', + 'svg/LinearGradientAttributes.h', + 'svg/PatternAttributes.h', + 'svg/RadialGradientAttributes.h', + 'svg/SVGAElement.cpp', + 'svg/SVGAElement.h', + 'svg/SVGAllInOne.cpp', + 'svg/SVGAltGlyphElement.cpp', + 'svg/SVGAltGlyphElement.h', + 'svg/SVGAngle.cpp', + 'svg/SVGAngle.h', + 'svg/SVGAnimateColorElement.cpp', + 'svg/SVGAnimateColorElement.h', + 'svg/SVGAnimateElement.cpp', + 'svg/SVGAnimateElement.h', + 'svg/SVGAnimateMotionElement.cpp', + 'svg/SVGAnimateMotionElement.h', + 'svg/SVGAnimateTransformElement.cpp', + 'svg/SVGAnimateTransformElement.h', + 'svg/SVGAnimatedPathData.cpp', + 'svg/SVGAnimatedPathData.h', + 'svg/SVGAnimatedPoints.cpp', + 'svg/SVGAnimatedPoints.h', + 'svg/SVGAnimatedProperty.h', + 'svg/SVGAnimatedTemplate.h', + 'svg/SVGAnimationElement.cpp', + 'svg/SVGAnimationElement.h', + 'svg/SVGCircleElement.cpp', + 'svg/SVGCircleElement.h', + 'svg/SVGClipPathElement.cpp', + 'svg/SVGClipPathElement.h', + 'svg/SVGColor.cpp', + 'svg/SVGColor.h', + 'svg/SVGComponentTransferFunctionElement.cpp', + 'svg/SVGComponentTransferFunctionElement.h', + 'svg/SVGCursorElement.cpp', + 'svg/SVGCursorElement.h', + 'svg/SVGDefinitionSrcElement.cpp', + 'svg/SVGDefinitionSrcElement.h', + 'svg/SVGDefsElement.cpp', + 'svg/SVGDefsElement.h', + 'svg/SVGDescElement.cpp', + 'svg/SVGDescElement.h', + 'svg/SVGDocument.cpp', + 'svg/SVGDocument.h', + 'svg/SVGDocumentExtensions.cpp', + 'svg/SVGDocumentExtensions.h', + 'svg/SVGElement.cpp', + 'svg/SVGElement.h', + 'svg/SVGElementInstance.cpp', + 'svg/SVGElementInstance.h', + 'svg/SVGElementInstanceList.cpp', + 'svg/SVGElementInstanceList.h', + 'svg/SVGEllipseElement.cpp', + 'svg/SVGEllipseElement.h', + 'svg/SVGException.h', + 'svg/SVGExternalResourcesRequired.cpp', + 'svg/SVGExternalResourcesRequired.h', + 'svg/SVGFEBlendElement.cpp', + 'svg/SVGFEBlendElement.h', + 'svg/SVGFEColorMatrixElement.cpp', + 'svg/SVGFEColorMatrixElement.h', + 'svg/SVGFEComponentTransferElement.cpp', + 'svg/SVGFEComponentTransferElement.h', + 'svg/SVGFECompositeElement.cpp', + 'svg/SVGFECompositeElement.h', + 'svg/SVGFEDiffuseLightingElement.cpp', + 'svg/SVGFEDiffuseLightingElement.h', + 'svg/SVGFEDisplacementMapElement.cpp', + 'svg/SVGFEDisplacementMapElement.h', + 'svg/SVGFEDistantLightElement.cpp', + 'svg/SVGFEDistantLightElement.h', + 'svg/SVGFEFloodElement.cpp', + 'svg/SVGFEFloodElement.h', + 'svg/SVGFEFuncAElement.cpp', + 'svg/SVGFEFuncAElement.h', + 'svg/SVGFEFuncBElement.cpp', + 'svg/SVGFEFuncBElement.h', + 'svg/SVGFEFuncGElement.cpp', + 'svg/SVGFEFuncGElement.h', + 'svg/SVGFEFuncRElement.cpp', + 'svg/SVGFEFuncRElement.h', + 'svg/SVGFEGaussianBlurElement.cpp', + 'svg/SVGFEGaussianBlurElement.h', + 'svg/SVGFEImageElement.cpp', + 'svg/SVGFEImageElement.h', + 'svg/SVGFELightElement.cpp', + 'svg/SVGFELightElement.h', + 'svg/SVGFEMergeElement.cpp', + 'svg/SVGFEMergeElement.h', + 'svg/SVGFEMergeNodeElement.cpp', + 'svg/SVGFEMergeNodeElement.h', + 'svg/SVGFEOffsetElement.cpp', + 'svg/SVGFEOffsetElement.h', + 'svg/SVGFEPointLightElement.cpp', + 'svg/SVGFEPointLightElement.h', + 'svg/SVGFESpecularLightingElement.cpp', + 'svg/SVGFESpecularLightingElement.h', + 'svg/SVGFESpotLightElement.cpp', + 'svg/SVGFESpotLightElement.h', + 'svg/SVGFETileElement.cpp', + 'svg/SVGFETileElement.h', + 'svg/SVGFETurbulenceElement.cpp', + 'svg/SVGFETurbulenceElement.h', + 'svg/SVGFilterElement.cpp', + 'svg/SVGFilterElement.h', + 'svg/SVGFilterPrimitiveStandardAttributes.cpp', + 'svg/SVGFilterPrimitiveStandardAttributes.h', + 'svg/SVGFitToViewBox.cpp', + 'svg/SVGFitToViewBox.h', + 'svg/SVGFont.cpp', + 'svg/SVGFontData.cpp', + 'svg/SVGFontData.h', + 'svg/SVGFontElement.cpp', + 'svg/SVGFontElement.h', + 'svg/SVGFontFaceElement.cpp', + 'svg/SVGFontFaceElement.h', + 'svg/SVGFontFaceFormatElement.cpp', + 'svg/SVGFontFaceFormatElement.h', + 'svg/SVGFontFaceNameElement.cpp', + 'svg/SVGFontFaceNameElement.h', + 'svg/SVGFontFaceSrcElement.cpp', + 'svg/SVGFontFaceSrcElement.h', + 'svg/SVGFontFaceUriElement.cpp', + 'svg/SVGFontFaceUriElement.h', + 'svg/SVGForeignObjectElement.cpp', + 'svg/SVGForeignObjectElement.h', + 'svg/SVGGElement.cpp', + 'svg/SVGGElement.h', + 'svg/SVGGlyphElement.cpp', + 'svg/SVGGlyphElement.h', + 'svg/SVGGlyphMap.h', + 'svg/SVGGradientElement.cpp', + 'svg/SVGGradientElement.h', + 'svg/SVGHKernElement.cpp', + 'svg/SVGHKernElement.h', + 'svg/SVGImageElement.cpp', + 'svg/SVGImageElement.h', + 'svg/SVGImageLoader.cpp', + 'svg/SVGImageLoader.h', + 'svg/SVGLangSpace.cpp', + 'svg/SVGLangSpace.h', + 'svg/SVGLength.cpp', + 'svg/SVGLength.h', + 'svg/SVGLengthList.cpp', + 'svg/SVGLengthList.h', + 'svg/SVGLineElement.cpp', + 'svg/SVGLineElement.h', + 'svg/SVGLinearGradientElement.cpp', + 'svg/SVGLinearGradientElement.h', + 'svg/SVGList.h', + 'svg/SVGListTraits.h', + 'svg/SVGLocatable.cpp', + 'svg/SVGLocatable.h', + 'svg/SVGMPathElement.cpp', + 'svg/SVGMPathElement.h', + 'svg/SVGMarkerElement.cpp', + 'svg/SVGMarkerElement.h', + 'svg/SVGMaskElement.cpp', + 'svg/SVGMaskElement.h', + 'svg/SVGMetadataElement.cpp', + 'svg/SVGMetadataElement.h', + 'svg/SVGMissingGlyphElement.cpp', + 'svg/SVGMissingGlyphElement.h', + 'svg/SVGNumberList.cpp', + 'svg/SVGNumberList.h', + 'svg/SVGPaint.cpp', + 'svg/SVGPaint.h', + 'svg/SVGParserUtilities.cpp', + 'svg/SVGParserUtilities.h', + 'svg/SVGPathElement.cpp', + 'svg/SVGPathElement.h', + 'svg/SVGPathSeg.h', + 'svg/SVGPathSegArc.cpp', + 'svg/SVGPathSegArc.h', + 'svg/SVGPathSegClosePath.cpp', + 'svg/SVGPathSegClosePath.h', + 'svg/SVGPathSegCurvetoCubic.cpp', + 'svg/SVGPathSegCurvetoCubic.h', + 'svg/SVGPathSegCurvetoCubicSmooth.cpp', + 'svg/SVGPathSegCurvetoCubicSmooth.h', + 'svg/SVGPathSegCurvetoQuadratic.cpp', + 'svg/SVGPathSegCurvetoQuadratic.h', + 'svg/SVGPathSegCurvetoQuadraticSmooth.cpp', + 'svg/SVGPathSegCurvetoQuadraticSmooth.h', + 'svg/SVGPathSegLineto.cpp', + 'svg/SVGPathSegLineto.h', + 'svg/SVGPathSegLinetoHorizontal.cpp', + 'svg/SVGPathSegLinetoHorizontal.h', + 'svg/SVGPathSegLinetoVertical.cpp', + 'svg/SVGPathSegLinetoVertical.h', + 'svg/SVGPathSegList.cpp', + 'svg/SVGPathSegList.h', + 'svg/SVGPathSegMoveto.cpp', + 'svg/SVGPathSegMoveto.h', + 'svg/SVGPatternElement.cpp', + 'svg/SVGPatternElement.h', + 'svg/SVGPointList.cpp', + 'svg/SVGPointList.h', + 'svg/SVGPolyElement.cpp', + 'svg/SVGPolyElement.h', + 'svg/SVGPolygonElement.cpp', + 'svg/SVGPolygonElement.h', + 'svg/SVGPolylineElement.cpp', + 'svg/SVGPolylineElement.h', + 'svg/SVGPreserveAspectRatio.cpp', + 'svg/SVGPreserveAspectRatio.h', + 'svg/SVGRadialGradientElement.cpp', + 'svg/SVGRadialGradientElement.h', + 'svg/SVGRectElement.cpp', + 'svg/SVGRectElement.h', + 'svg/SVGRenderingIntent.h', + 'svg/SVGSVGElement.cpp', + 'svg/SVGSVGElement.h', + 'svg/SVGScriptElement.cpp', + 'svg/SVGScriptElement.h', + 'svg/SVGSetElement.cpp', + 'svg/SVGSetElement.h', + 'svg/SVGStopElement.cpp', + 'svg/SVGStopElement.h', + 'svg/SVGStringList.cpp', + 'svg/SVGStringList.h', + 'svg/SVGStylable.cpp', + 'svg/SVGStylable.h', + 'svg/SVGStyleElement.cpp', + 'svg/SVGStyleElement.h', + 'svg/SVGStyledElement.cpp', + 'svg/SVGStyledElement.h', + 'svg/SVGStyledLocatableElement.cpp', + 'svg/SVGStyledLocatableElement.h', + 'svg/SVGStyledTransformableElement.cpp', + 'svg/SVGStyledTransformableElement.h', + 'svg/SVGSwitchElement.cpp', + 'svg/SVGSwitchElement.h', + 'svg/SVGSymbolElement.cpp', + 'svg/SVGSymbolElement.h', + 'svg/SVGTRefElement.cpp', + 'svg/SVGTRefElement.h', + 'svg/SVGTSpanElement.cpp', + 'svg/SVGTSpanElement.h', + 'svg/SVGTests.cpp', + 'svg/SVGTests.h', + 'svg/SVGTextContentElement.cpp', + 'svg/SVGTextContentElement.h', + 'svg/SVGTextElement.cpp', + 'svg/SVGTextElement.h', + 'svg/SVGTextPathElement.cpp', + 'svg/SVGTextPathElement.h', + 'svg/SVGTextPositioningElement.cpp', + 'svg/SVGTextPositioningElement.h', + 'svg/SVGTitleElement.cpp', + 'svg/SVGTitleElement.h', + 'svg/SVGTransform.cpp', + 'svg/SVGTransform.h', + 'svg/SVGTransformDistance.cpp', + 'svg/SVGTransformDistance.h', + 'svg/SVGTransformList.cpp', + 'svg/SVGTransformList.h', + 'svg/SVGTransformable.cpp', + 'svg/SVGTransformable.h', + 'svg/SVGURIReference.cpp', + 'svg/SVGURIReference.h', + 'svg/SVGUnitTypes.h', + 'svg/SVGUseElement.cpp', + 'svg/SVGUseElement.h', + 'svg/SVGViewElement.cpp', + 'svg/SVGViewElement.h', + 'svg/SVGViewSpec.cpp', + 'svg/SVGViewSpec.h', + 'svg/SVGZoomAndPan.cpp', + 'svg/SVGZoomAndPan.h', + 'svg/SVGZoomEvent.cpp', + 'svg/SVGZoomEvent.h', + 'svg/SynchronizableTypeWrapper.h', + 'workers/AbstractWorker.cpp', + 'workers/AbstractWorker.h', + 'workers/GenericWorkerTask.h', + 'workers/SharedWorker.cpp', + 'workers/SharedWorker.h', + 'workers/Worker.cpp', + 'workers/Worker.h', + 'workers/WorkerContext.cpp', + 'workers/WorkerContext.h', + 'workers/WorkerContextProxy.h', + 'workers/WorkerLoaderProxy.h', + 'workers/WorkerLocation.cpp', + 'workers/WorkerLocation.h', + 'workers/WorkerMessagingProxy.cpp', + 'workers/WorkerMessagingProxy.h', + 'workers/WorkerObjectProxy.h', + 'workers/WorkerRunLoop.cpp', + 'workers/WorkerRunLoop.h', + 'workers/WorkerScriptLoader.cpp', + 'workers/WorkerScriptLoader.h', + 'workers/WorkerScriptLoaderClient.h', + 'workers/WorkerThread.cpp', + 'workers/WorkerThread.h', + 'xml/DOMParser.cpp', + 'xml/DOMParser.h', + 'xml/NativeXPathNSResolver.cpp', + 'xml/NativeXPathNSResolver.h', + 'xml/XMLHttpRequest.cpp', + 'xml/XMLHttpRequest.h', + 'xml/XMLHttpRequestException.h', + 'xml/XMLHttpRequestProgressEvent.h', + 'xml/XMLHttpRequestUpload.cpp', + 'xml/XMLHttpRequestUpload.h', + 'xml/XMLSerializer.cpp', + 'xml/XMLSerializer.h', + 'xml/XPathEvaluator.cpp', + 'xml/XPathEvaluator.h', + 'xml/XPathException.h', + 'xml/XPathExpression.cpp', + 'xml/XPathExpression.h', + 'xml/XPathExpressionNode.cpp', + 'xml/XPathExpressionNode.h', + 'xml/XPathFunctions.cpp', + 'xml/XPathFunctions.h', + 'xml/XPathNSResolver.cpp', + 'xml/XPathNSResolver.h', + 'xml/XPathNamespace.cpp', + 'xml/XPathNamespace.h', + 'xml/XPathNodeSet.cpp', + 'xml/XPathNodeSet.h', + 'xml/XPathParser.cpp', + 'xml/XPathParser.h', + 'xml/XPathPath.cpp', + 'xml/XPathPath.h', + 'xml/XPathPredicate.cpp', + 'xml/XPathPredicate.h', + 'xml/XPathResult.cpp', + 'xml/XPathResult.h', + 'xml/XPathStep.cpp', + 'xml/XPathStep.h', + 'xml/XPathUtil.cpp', + 'xml/XPathUtil.h', + 'xml/XPathValue.cpp', + 'xml/XPathValue.h', + 'xml/XPathVariableReference.cpp', + 'xml/XPathVariableReference.h', + 'xml/XSLImportRule.cpp', + 'xml/XSLImportRule.h', + 'xml/XSLStyleSheet.cpp', + 'xml/XSLStyleSheet.h', + 'xml/XSLTExtensions.cpp', + 'xml/XSLTExtensions.h', + 'xml/XSLTProcessor.cpp', + 'xml/XSLTProcessor.h', + 'xml/XSLTUnicodeSort.cpp', + 'xml/XSLTUnicodeSort.h', + ], + } +} diff --git a/src/3rdparty/webkit/WebCore/WebCore.order b/src/3rdparty/webkit/WebCore/WebCore.order index ddce440..31b178c 100644 --- a/src/3rdparty/webkit/WebCore/WebCore.order +++ b/src/3rdparty/webkit/WebCore/WebCore.order @@ -3793,7 +3793,6 @@ __ZN7WebCore7UIEventD0Ev __ZN7WebCore5EventD2Ev __ZN7WebCore13ContainerNode8setFocusEb __ZN7WebCore4Node8setFocusEb -__ZN7WebCore14focusRingColorEv +[WebCoreControlTintObserver controlTintDidChange] __ZN7WebCore26usesTestModeFocusRingColorEv __ZNK7WebCore14SVGRenderStyle17inheritedNotEqualEPKS0_ diff --git a/src/3rdparty/webkit/WebCore/WebCore.pro b/src/3rdparty/webkit/WebCore/WebCore.pro index 486c9d0..b76cad1 100644 --- a/src/3rdparty/webkit/WebCore/WebCore.pro +++ b/src/3rdparty/webkit/WebCore/WebCore.pro @@ -58,6 +58,12 @@ freebsd-*: DEFINES += HAVE_PTHREAD_NP_H DEFINES += BUILD_WEBKIT +# Remove whole program optimizations due to miscompilations +win32-msvc2005|win32-msvc2008:{ + QMAKE_CFLAGS_RELEASE -= -GL + QMAKE_CXXFLAGS_RELEASE -= -GL +} + win32-*: DEFINES += _HAS_TR1=0 wince* { # DEFINES += ENABLE_SVG=0 ENABLE_XPATH=0 ENABLE_XBL=0 \ @@ -100,6 +106,7 @@ contains(DEFINES, ENABLE_SINGLE_THREADED=1) { !contains(DEFINES, ENABLE_OFFLINE_WEB_APPLICATIONS=.): DEFINES += ENABLE_OFFLINE_WEB_APPLICATIONS=1 !contains(DEFINES, ENABLE_DOM_STORAGE=.): DEFINES += ENABLE_DOM_STORAGE=1 !contains(DEFINES, ENABLE_ICONDATABASE=.): DEFINES += ENABLE_ICONDATABASE=1 +!contains(DEFINES, ENABLE_CHANNEL_MESSAGING=.): DEFINES += ENABLE_CHANNEL_MESSAGING=1 # turn on SQLITE support if any of the dependent features are turned on !contains(DEFINES, ENABLE_SQLITE=.) { @@ -116,6 +123,7 @@ contains(DEFINES, ENABLE_SINGLE_THREADED=1) { !contains(DEFINES, ENABLE_XSLT=.): DEFINES += ENABLE_XSLT=0 #!contains(DEFINES, ENABLE_XBL=.): DEFINES += ENABLE_XBL=1 !contains(DEFINES, ENABLE_WML=.): DEFINES += ENABLE_WML=0 +!contains(DEFINES, ENABLE_SHARED_WORKERS=.): DEFINES += ENABLE_SHARED_WORKERS=0 !contains(DEFINES, ENABLE_WORKERS=.): DEFINES += ENABLE_WORKERS=1 !contains(DEFINES, ENABLE_XHTMLMP=.): DEFINES += ENABLE_XHTMLMP=0 @@ -246,7 +254,7 @@ SVGCSSPROPERTIES = $$PWD/css/SVGCSSPropertyNames.in SVGCSSVALUES = $$PWD/css/SVGCSSValueKeywords.in STYLESHEETS_EMBED = \ - $$PWD/css/html4.css \ + $$PWD/css/html.css \ $$PWD/css/quirks.css \ $$PWD/css/svg.css \ $$PWD/css/view-source.css \ @@ -404,6 +412,7 @@ IDL_BINDINGS += \ html/ImageData.idl \ html/MediaError.idl \ html/TextMetrics.idl \ + html/ValidityState.idl \ html/VoidCallback.idl \ inspector/InspectorController.idl \ page/BarInfo.idl \ @@ -748,6 +757,7 @@ SOURCES += \ html/CollectionCache.cpp \ html/DataGridColumn.cpp \ html/DataGridColumnList.cpp \ + html/DOMDataGridDataSource.cpp \ html/File.cpp \ html/FileList.cpp \ html/FormDataList.cpp \ @@ -833,6 +843,7 @@ SOURCES += \ html/HTMLViewSourceDocument.cpp \ html/ImageData.cpp \ html/PreloadScanner.cpp \ + html/ValidityState.cpp \ inspector/ConsoleMessage.cpp \ inspector/InspectorDatabaseResource.cpp \ inspector/InspectorDOMStorageResource.cpp \ @@ -1012,7 +1023,6 @@ SOURCES += \ plugins/PluginStream.cpp \ plugins/PluginView.cpp \ rendering/AutoTableLayout.cpp \ - rendering/bidi.cpp \ rendering/break_lines.cpp \ rendering/CounterNode.cpp \ rendering/EllipsisBox.cpp \ @@ -1025,6 +1035,7 @@ SOURCES += \ rendering/RenderApplet.cpp \ rendering/RenderArena.cpp \ rendering/RenderBlock.cpp \ + rendering/RenderBlockLineLayout.cpp \ rendering/RenderBox.cpp \ rendering/RenderBoxModelObject.cpp \ rendering/RenderBR.cpp \ @@ -1106,7 +1117,6 @@ SOURCES += \ HEADERS += \ $$PWD/platform/graphics/qt/StillImageQt.h \ $$PWD/platform/qt/QWebPopup.h \ - $$PWD/../WebKit/qt/Api/qwebpluginfactory.h \ $$PWD/../WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h \ $$PWD/platform/network/qt/QNetworkReplyHandler.h \ $$PWD/rendering/style/CursorData.h \ @@ -1114,9 +1124,7 @@ HEADERS += \ $$PWD/rendering/style/StyleInheritedData.h \ $$PWD/rendering/style/StyleRareInheritedData.h \ $$PWD/rendering/style/StyleRareNonInheritedData.h \ - $$PWD/rendering/style/StyleReflection.h \ - $$PWD/../WebKit/qt/Api/qwebsecurityorigin.h \ - $$PWD/../WebKit/qt/Api/qwebdatabase.h + $$PWD/rendering/style/StyleReflection.h SOURCES += \ @@ -1293,6 +1301,10 @@ contains(DEFINES, ENABLE_NETSCAPE_PLUGIN_API=1) { plugins/PluginViewNone.cpp } +contains(DEFINES, ENABLE_CHANNEL_MESSAGING=1) { + FEATURE_DEFINES_JAVASCRIPT += ENABLE_CHANNEL_MESSAGING=1 +} + contains(DEFINES, ENABLE_DASHBOARD_SUPPORT=0) { DASHBOARDSUPPORTCSSPROPERTIES -= $$PWD/css/DashboardSupportCSSPropertyNames.in } @@ -1322,6 +1334,7 @@ contains(DEFINES, ENABLE_SQLITE=1) { SOURCES += \ platform/sql/SQLiteAuthorizer.cpp \ platform/sql/SQLiteDatabase.cpp \ + platform/sql/SQLiteFileSystem.cpp \ platform/sql/SQLiteStatement.cpp \ platform/sql/SQLiteTransaction.cpp \ platform/sql/SQLValue.cpp \ @@ -1368,10 +1381,12 @@ contains(DEFINES, ENABLE_DOM_STORAGE=1) { storage/LocalStorageThread.h \ storage/Storage.h \ storage/StorageArea.h \ + storage/StorageAreaImpl.h \ storage/StorageAreaSync.h \ storage/StorageEvent.h \ storage/StorageMap.h \ storage/StorageNamespace.h \ + storage/StorageNamespaceImpl.h \ storage/StorageSyncManager.h SOURCES += \ @@ -1380,10 +1395,12 @@ contains(DEFINES, ENABLE_DOM_STORAGE=1) { storage/LocalStorageThread.cpp \ storage/Storage.cpp \ storage/StorageArea.cpp \ + storage/StorageAreaImpl.cpp \ storage/StorageAreaSync.cpp \ storage/StorageEvent.cpp \ storage/StorageMap.cpp \ storage/StorageNamespace.cpp \ + storage/StorageNamespaceImpl.cpp \ storage/StorageSyncManager.cpp IDL_BINDINGS += \ @@ -1427,6 +1444,21 @@ contains(DEFINES, ENABLE_WORKERS=1) { workers/WorkerScriptLoader.cpp } +contains(DEFINES, SHARED_WORKERS=1) { + FEATURE_DEFINES_JAVASCRIPT += ENABLE_SHARED_WORKERS=1 + + IDL_BINDINGS += \ + workers/AbstractWorker.idl \ + workers/SharedWorker.idl + + SOURCES += \ + bindings/js/JSAbstractWorkerCustom.cpp \ + bindings/js/JSSharedWorkerConstructor.cpp \ + bindings/js/JSSharedWorkerCustom.cpp \ + workers/AbstractWorker.cpp \ + workers/SharedWorker.cpp +} + contains(DEFINES, ENABLE_VIDEO=1) { FEATURE_DEFINES_JAVASCRIPT += ENABLE_VIDEO=1 @@ -2168,8 +2200,6 @@ HEADERS += $$WEBKIT_API_HEADERS target.path = $$[QT_INSTALL_LIBS] headers.files = $$WEBKIT_API_HEADERS headers.path = $$[QT_INSTALL_HEADERS]/QtWebKit - prf.files = $$PWD/../WebKit/qt/Api/qtwebkit.prf - prf.path = $$[QT_INSTALL_PREFIX]/mkspecs/features VERSION=$${QT_MAJOR_VERSION}.$${QT_MINOR_VERSION}.$${QT_PATCH_VERSION} @@ -2182,7 +2212,7 @@ HEADERS += $$WEBKIT_API_HEADERS } - INSTALLS += target headers prf + INSTALLS += target headers unix { CONFIG += create_pc create_prl diff --git a/src/3rdparty/webkit/WebCore/accessibility/AccessibilityObject.h b/src/3rdparty/webkit/WebCore/accessibility/AccessibilityObject.h index 8939092..22a7f99 100644 --- a/src/3rdparty/webkit/WebCore/accessibility/AccessibilityObject.h +++ b/src/3rdparty/webkit/WebCore/accessibility/AccessibilityObject.h @@ -151,7 +151,8 @@ enum AccessibilityRole { ListBoxOptionRole, TableHeaderContainerRole, DefinitionListTermRole, - DefinitionListDefinitionRole + DefinitionListDefinitionRole, + AnnotationRole }; struct VisiblePositionRange { @@ -285,7 +286,7 @@ public: virtual IntRect boundingBoxRect() const; virtual IntRect elementRect() const; virtual IntSize size() const; - IntPoint clickPoint() const; + virtual IntPoint clickPoint() const; virtual KURL url() const; virtual PlainTextRange selectedTextRange() const; diff --git a/src/3rdparty/webkit/WebCore/accessibility/AccessibilityRenderObject.cpp b/src/3rdparty/webkit/WebCore/accessibility/AccessibilityRenderObject.cpp index 9c10267..7d2ddc5 100644 --- a/src/3rdparty/webkit/WebCore/accessibility/AccessibilityRenderObject.cpp +++ b/src/3rdparty/webkit/WebCore/accessibility/AccessibilityRenderObject.cpp @@ -966,6 +966,10 @@ String AccessibilityRenderObject::accessibilityDescription() const if (!m_renderer) return String(); + String ariaLabel = getAttribute(aria_labelAttr).string(); + if (!ariaLabel.isEmpty()) + return ariaLabel; + String ariaDescription = ariaDescribedByAttribute(); if (!ariaDescription.isEmpty()) return ariaDescription; @@ -1063,6 +1067,21 @@ IntSize AccessibilityRenderObject::size() const return rect.size(); } +IntPoint AccessibilityRenderObject::clickPoint() const +{ + // use the default position unless this is an editable web area, in which case we use the selection bounds. + if (!isWebArea() || isReadOnly()) + return AccessibilityObject::clickPoint(); + + VisibleSelection visSelection = selection(); + VisiblePositionRange range = VisiblePositionRange(visSelection.visibleStart(), visSelection.visibleEnd()); + IntRect bounds = boundsForVisiblePositionRange(range); +#if PLATFORM(MAC) + bounds.setLocation(m_renderer->document()->view()->screenToContents(bounds.location())); +#endif + return IntPoint(bounds.x() + (bounds.width() / 2), bounds.y() - (bounds.height() / 2)); +} + AccessibilityObject* AccessibilityRenderObject::internalLinkElement() const { Element* element = anchorElement(); @@ -1290,13 +1309,13 @@ bool AccessibilityRenderObject::accessibilityIsIgnored() const return false; } - // check for one-dimensional image - RenderImage* image = toRenderImage(m_renderer); - if (image->height() <= 1 || image->width() <= 1) - return true; - - // check whether rendered image was stretched from one-dimensional file image if (isNativeImage()) { + // check for one-dimensional image + RenderImage* image = toRenderImage(m_renderer); + if (image->height() <= 1 || image->width() <= 1) + return true; + + // check whether rendered image was stretched from one-dimensional file image if (image->cachedImage()) { IntSize imageSize = image->cachedImage()->imageSize(image->view()->zoomFactor()); return imageSize.height() <= 1 || imageSize.width() <= 1; @@ -2154,12 +2173,13 @@ AccessibilityObject* AccessibilityRenderObject::observableObject() const typedef HashMap<String, AccessibilityRole, CaseFoldingHash> ARIARoleMap; -struct RoleEntry { - String ariaRole; - AccessibilityRole webcoreRole; -}; static const ARIARoleMap& createARIARoleMap() { + struct RoleEntry { + String ariaRole; + AccessibilityRole webcoreRole; + }; + const RoleEntry roles[] = { { "button", ButtonRole }, { "checkbox", CheckBoxRole }, @@ -2184,7 +2204,8 @@ static const ARIARoleMap& createARIARoleMap() { "range", SliderRole }, { "slider", SliderRole }, { "spinbutton", ProgressIndicatorRole }, - { "textbox", TextAreaRole } + { "textbox", TextAreaRole }, + { "toolbar", ToolbarRole } }; ARIARoleMap& roleMap = *new ARIARoleMap; @@ -2304,6 +2325,9 @@ AccessibilityRole AccessibilityRenderObject::roleValue() const if (node && node->hasTagName(dtTag)) return DefinitionListTermRole; + if (node && (node->hasTagName(rpTag) || node->hasTagName(rtTag))) + return AnnotationRole; + if (m_renderer->isBlockFlow() || (node && node->hasTagName(labelTag))) return GroupRole; diff --git a/src/3rdparty/webkit/WebCore/accessibility/AccessibilityRenderObject.h b/src/3rdparty/webkit/WebCore/accessibility/AccessibilityRenderObject.h index 4fa325f..4f8e247 100644 --- a/src/3rdparty/webkit/WebCore/accessibility/AccessibilityRenderObject.h +++ b/src/3rdparty/webkit/WebCore/accessibility/AccessibilityRenderObject.h @@ -147,6 +147,7 @@ public: virtual IntRect boundingBoxRect() const; virtual IntRect elementRect() const; virtual IntSize size() const; + virtual IntPoint clickPoint() const; void setRenderer(RenderObject* renderer) { m_renderer = renderer; } RenderObject* renderer() const { return m_renderer; } diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSAbstractWorkerCustom.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSAbstractWorkerCustom.cpp new file mode 100644 index 0000000..82e06e3 --- /dev/null +++ b/src/3rdparty/webkit/WebCore/bindings/js/JSAbstractWorkerCustom.cpp @@ -0,0 +1,93 @@ +/* + * Copyright (C) 2009 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" + +#if ENABLE(SHARED_WORKERS) + +#include "JSAbstractWorker.h" + +#include "AbstractWorker.h" +#include "JSDOMGlobalObject.h" +#include "JSEventListener.h" +#include "JSEventTarget.h" + +using namespace JSC; + +namespace WebCore { + +void JSAbstractWorker::mark() +{ + DOMObject::mark(); + + markIfNotNull(m_impl->onerror()); + + typedef AbstractWorker::EventListenersMap EventListenersMap; + typedef AbstractWorker::ListenerVector ListenerVector; + EventListenersMap& eventListeners = m_impl->eventListeners(); + for (EventListenersMap::iterator mapIter = eventListeners.begin(); mapIter != eventListeners.end(); ++mapIter) { + for (ListenerVector::iterator vecIter = mapIter->second.begin(); vecIter != mapIter->second.end(); ++vecIter) + (*vecIter)->markJSFunction(); + } +} + +JSValue JSAbstractWorker::addEventListener(ExecState* exec, const ArgList& args) +{ + JSDOMGlobalObject* globalObject = toJSDOMGlobalObject(impl()->scriptExecutionContext()); + if (!globalObject) + return jsUndefined(); + RefPtr<JSEventListener> listener = globalObject->findOrCreateJSEventListener(args.at(1)); + if (!listener) + return jsUndefined(); + impl()->addEventListener(args.at(0).toString(exec), listener.release(), args.at(2).toBoolean(exec)); + return jsUndefined(); +} + +JSValue JSAbstractWorker::removeEventListener(ExecState* exec, const ArgList& args) +{ + JSDOMGlobalObject* globalObject = toJSDOMGlobalObject(impl()->scriptExecutionContext()); + if (!globalObject) + return jsUndefined(); + JSEventListener* listener = globalObject->findJSEventListener(args.at(1)); + if (!listener) + return jsUndefined(); + impl()->removeEventListener(args.at(0).toString(exec), listener, args.at(2).toBoolean(exec)); + return jsUndefined(); +} + +JSValue toJS(ExecState* exec, AbstractWorker* baseObject) +{ + // Just call the JSEventTarget implementation of toJS(), which already differentiates between the different implementations. + return toJS(exec, static_cast<EventTarget*>(baseObject)); +} + +} // namespace WebCore + +#endif // ENABLE(SHARED_WORKERS) diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSCustomXPathNSResolver.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSCustomXPathNSResolver.cpp index 6361e70..ffe8cf5 100644 --- a/src/3rdparty/webkit/WebCore/bindings/js/JSCustomXPathNSResolver.cpp +++ b/src/3rdparty/webkit/WebCore/bindings/js/JSCustomXPathNSResolver.cpp @@ -84,7 +84,7 @@ String JSCustomXPathNSResolver::lookupNamespaceURI(const String& prefix) callType = m_customResolver->getCallData(callData); if (callType == CallTypeNone) { // FIXME: Pass actual line number and source URL. - m_frame->domWindow()->console()->addMessage(JSMessageSource, ErrorMessageLevel, "XPathNSResolver does not have a lookupNamespaceURI method.", 0, String()); + m_frame->domWindow()->console()->addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, "XPathNSResolver does not have a lookupNamespaceURI method.", 0, String()); return String(); } function = m_customResolver; diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.cpp index 55f0e91..81d59fb 100644 --- a/src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.cpp +++ b/src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.cpp @@ -32,6 +32,7 @@ #include "EventException.h" #include "ExceptionCode.h" #include "Frame.h" +#include "HTMLAudioElement.h" #include "HTMLImageElement.h" #include "HTMLScriptElement.h" #include "HTMLNames.h" @@ -288,6 +289,10 @@ static inline bool isObservableThroughDOM(JSNode* jsNode) return true; if (node->hasTagName(scriptTag) && !static_cast<HTMLScriptElement*>(node)->haveFiredLoadEvent()) return true; +#if ENABLE(VIDEO) + if (node->hasTagName(audioTag) && !static_cast<HTMLAudioElement*>(node)->paused()) + return true; +#endif } return false; diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.h b/src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.h index 1378c91..e3fd417 100644 --- a/src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.h +++ b/src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.h @@ -86,8 +86,9 @@ namespace WebCore { return structure; return cacheDOMStructure(globalObject, WrapperClass::createStructure(WrapperClass::createPrototype(exec, globalObject)), &WrapperClass::s_info); } - template<class WrapperClass> inline JSC::Structure* getDOMStructure(JSC::ExecState* exec) + template<class WrapperClass> inline JSC::Structure* deprecatedGetDOMStructure(JSC::ExecState* exec) { + // FIXME: This function is wrong. It uses the wrong global object for creating the prototype structure. return getDOMStructure<WrapperClass>(exec, static_cast<JSDOMGlobalObject*>(exec->lexicalGlobalObject())); } template<class WrapperClass> inline JSC::JSObject* getDOMPrototype(JSC::ExecState* exec, JSC::JSGlobalObject* globalObject) @@ -99,7 +100,8 @@ namespace WebCore { { ASSERT(object); ASSERT(!getCachedDOMObjectWrapper(exec->globalData(), object)); - WrapperClass* wrapper = new (exec) WrapperClass(getDOMStructure<WrapperClass>(exec), object); + // FIXME: new (exec) could use a different globalData than the globalData this wrapper is cached on. + WrapperClass* wrapper = new (exec) WrapperClass(deprecatedGetDOMStructure<WrapperClass>(exec), object); cacheDOMObjectWrapper(exec->globalData(), object, wrapper); return wrapper; } @@ -118,7 +120,7 @@ namespace WebCore { { ASSERT(object); ASSERT(!getCachedDOMObjectWrapper(exec->globalData(), object)); - WrapperClass* wrapper = new (exec) WrapperClass(getDOMStructure<WrapperClass>(exec), object, context); + WrapperClass* wrapper = new (exec) WrapperClass(deprecatedGetDOMStructure<WrapperClass>(exec), object, context); cacheDOMObjectWrapper(exec->globalData(), object, wrapper); return wrapper; } @@ -137,7 +139,9 @@ namespace WebCore { { ASSERT(node); ASSERT(!getCachedDOMNodeWrapper(node->document(), node)); - WrapperClass* wrapper = new (exec) WrapperClass(getDOMStructure<WrapperClass>(exec), node); + WrapperClass* wrapper = new (exec) WrapperClass(deprecatedGetDOMStructure<WrapperClass>(exec), node); + // FIXME: The entire function can be removed, once we fix caching. + // This function is a one-off hack to make Nodes cache in the right global object. cacheDOMNodeWrapper(node->document(), node, wrapper); return wrapper; } diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowBase.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowBase.cpp index 0eefebe..0f419ba 100644 --- a/src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowBase.cpp +++ b/src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowBase.cpp @@ -99,7 +99,7 @@ void JSDOMWindowBase::printErrorMessage(const String& message) const if (settings->privateBrowsingEnabled()) return; - impl()->console()->addMessage(JSMessageSource, ErrorMessageLevel, message, 1, String()); // FIXME: provide a real line number and source URL. + impl()->console()->addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, message, 1, String()); // FIXME: provide a real line number and source URL. } ExecState* JSDOMWindowBase::globalExec() diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowCustom.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowCustom.cpp index 22013eb..c095bf2 100644 --- a/src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowCustom.cpp +++ b/src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowCustom.cpp @@ -45,6 +45,7 @@ #include "JSMessageChannelConstructor.h" #include "JSMessagePort.h" #include "JSOptionConstructor.h" +#include "JSSharedWorkerConstructor.h" #include "JSWebKitCSSMatrixConstructor.h" #include "JSWebKitPointConstructor.h" #include "JSWorkerConstructor.h" @@ -476,6 +477,13 @@ JSValue JSDOMWindow::worker(ExecState* exec) const } #endif +#if ENABLE(SHARED_WORKERS) +JSValue JSDOMWindow::sharedWorker(ExecState* exec) const +{ + return getDOMConstructor<JSSharedWorkerConstructor>(exec, this); +} +#endif + // Custom functions // Helper for window.open() and window.showModalDialog() diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSDataGridColumnListCustom.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSDataGridColumnListCustom.cpp index af49df4..c7ffcde 100644 --- a/src/3rdparty/webkit/WebCore/bindings/js/JSDataGridColumnListCustom.cpp +++ b/src/3rdparty/webkit/WebCore/bindings/js/JSDataGridColumnListCustom.cpp @@ -24,6 +24,9 @@ */ #include "config.h" + +#if ENABLE(DATAGRID) + #include "JSDataGridColumnList.h" #include "AtomicString.h" @@ -47,3 +50,5 @@ JSValue JSDataGridColumnList::nameGetter(ExecState* exec, const Identifier& prop } } // namespace WebCore + +#endif diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSDataGridDataSource.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSDataGridDataSource.cpp index e75b10b..02b4214 100644 --- a/src/3rdparty/webkit/WebCore/bindings/js/JSDataGridDataSource.cpp +++ b/src/3rdparty/webkit/WebCore/bindings/js/JSDataGridDataSource.cpp @@ -24,6 +24,9 @@ */ #include "config.h" + +#if ENABLE(DATAGRID) + #include "JSDataGridDataSource.h" #include "Document.h" @@ -47,34 +50,6 @@ JSDataGridDataSource::~JSDataGridDataSource() { } -void JSDataGridDataSource::initialize(HTMLDataGridElement* datagrid) -{ - if (!m_frame->script()->isEnabled()) - return; - - JSLock lock(false); - RefPtr<JSDataGridDataSource> protect(this); - - ExecState* exec = m_frame->script()->globalObject()->globalExec(); - - if (!jsDataSource().isObject()) - return; - - JSValue initializeFunction = jsDataSource().get(exec, Identifier(exec, "initialize")); - CallData callData; - CallType callType = initializeFunction.getCallData(callData); - if (callType == CallTypeNone) - return; - - MarkedArgumentBuffer args; - args.append(toJS(exec, datagrid)); - - JSDOMWindowBase::commonJSGlobalData()->timeoutChecker.start(); - call(exec, initializeFunction, callType, callData, m_dataSource, args); - JSDOMWindowBase::commonJSGlobalData()->timeoutChecker.stop(); - - if (exec->hadException()) - reportCurrentException(exec); -} - } // namespace WebCore + +#endif // ENABLE(DATAGRID) diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSDataGridDataSource.h b/src/3rdparty/webkit/WebCore/bindings/js/JSDataGridDataSource.h index 2537b00..077ef8f 100644 --- a/src/3rdparty/webkit/WebCore/bindings/js/JSDataGridDataSource.h +++ b/src/3rdparty/webkit/WebCore/bindings/js/JSDataGridDataSource.h @@ -26,6 +26,8 @@ #ifndef JSDataGridDataSource_h #define JSDataGridDataSource_h +#if ENABLE(DATAGRID) + #include "DataGridDataSource.h" #include <runtime/JSValue.h> #include <runtime/Protect.h> @@ -49,8 +51,6 @@ public: virtual bool isJSDataGridDataSource() const { return true; } JSC::JSValue jsDataSource() const { return m_dataSource.get(); } - virtual void initialize(HTMLDataGridElement*); - private: JSDataGridDataSource(JSC::JSValue, Frame*); @@ -72,4 +72,5 @@ inline const JSDataGridDataSource* asJSDataGridDataSource(const DataGridDataSour } // namespace WebCore +#endif // ENABLE(DATAGRID) #endif // JSDataGridDataSource_h diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSEventTarget.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSEventTarget.cpp index 2058098..875e904 100644 --- a/src/3rdparty/webkit/WebCore/bindings/js/JSEventTarget.cpp +++ b/src/3rdparty/webkit/WebCore/bindings/js/JSEventTarget.cpp @@ -56,6 +56,11 @@ #include "WorkerContext.h" #endif +#if ENABLE(SHARED_WORKERS) +#include "JSSharedWorker.h" +#include "SharedWorker.h" +#endif + using namespace JSC; namespace WebCore { @@ -101,6 +106,11 @@ JSValue toJS(ExecState* exec, EventTarget* target) return toJSDOMGlobalObject(workerContext); #endif +#if ENABLE(SHARED_WORKERS) + if (SharedWorker* sharedWorker = target->toSharedWorker()) + return toJS(exec, sharedWorker); +#endif + ASSERT_NOT_REACHED(); return jsNull(); } @@ -132,6 +142,10 @@ EventTarget* toEventTarget(JSC::JSValue value) CONVERT_TO_EVENT_TARGET(WorkerContext) #endif +#if ENABLE(SHARED_WORKERS) + CONVERT_TO_EVENT_TARGET(SharedWorker) +#endif + return 0; } diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSHTMLDataGridElementCustom.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSHTMLDataGridElementCustom.cpp index 5aa0904..a30f5e4 100644 --- a/src/3rdparty/webkit/WebCore/bindings/js/JSHTMLDataGridElementCustom.cpp +++ b/src/3rdparty/webkit/WebCore/bindings/js/JSHTMLDataGridElementCustom.cpp @@ -24,6 +24,9 @@ */ #include "config.h" + +#if ENABLE(DATAGRID) + #include "JSHTMLDataGridElement.h" #include "Document.h" @@ -44,7 +47,14 @@ JSValue JSHTMLDataGridElement::dataSource(ExecState*) const void JSHTMLDataGridElement::setDataSource(ExecState*, JSValue value) { + if (value.isNull()) { + static_cast<HTMLDataGridElement*>(impl())->setDataSource(0); + return; + } + static_cast<HTMLDataGridElement*>(impl())->setDataSource(JSDataGridDataSource::create(value, impl()->document()->frame())); } } // namespace WebCore + +#endif // ENABLE(DATAGRID) diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSHTMLFormElementCustom.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSHTMLFormElementCustom.cpp index 8bf543c..e5b428a 100644 --- a/src/3rdparty/webkit/WebCore/bindings/js/JSHTMLFormElementCustom.cpp +++ b/src/3rdparty/webkit/WebCore/bindings/js/JSHTMLFormElementCustom.cpp @@ -62,7 +62,7 @@ JSValue JSHTMLFormElement::submit(ExecState* exec, const ArgList&) Frame* activeFrame = asJSDOMWindow(exec->dynamicGlobalObject())->impl()->frame(); if (!activeFrame) return jsUndefined(); - static_cast<HTMLFormElement*>(impl())->submit(0, false, !activeFrame->script()->anyPageIsProcessingUserGesture(), false); + static_cast<HTMLFormElement*>(impl())->submit(0, false, !activeFrame->script()->anyPageIsProcessingUserGesture()); return jsUndefined(); } diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSLazyEventListener.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSLazyEventListener.cpp index f7c74ae..8913243 100644 --- a/src/3rdparty/webkit/WebCore/bindings/js/JSLazyEventListener.cpp +++ b/src/3rdparty/webkit/WebCore/bindings/js/JSLazyEventListener.cpp @@ -77,7 +77,11 @@ void JSLazyEventListener::parseCode() const if (m_parsed) return; - if (m_globalObject->scriptExecutionContext()->isDocument()) { + ScriptExecutionContext* executionContext = m_globalObject->scriptExecutionContext(); + ASSERT(executionContext); + if (!executionContext) + return; + if (executionContext->isDocument()) { JSDOMWindow* window = static_cast<JSDOMWindow*>(m_globalObject); Frame* frame = window->impl()->frame(); if (!frame) @@ -93,7 +97,7 @@ void JSLazyEventListener::parseCode() const ExecState* exec = m_globalObject->globalExec(); MarkedArgumentBuffer args; - UString sourceURL(m_globalObject->scriptExecutionContext()->url().string()); + UString sourceURL(executionContext->url().string()); args.append(jsNontrivialString(exec, m_eventParameterName)); args.append(jsString(exec, m_code)); diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSNamedNodesCollection.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSNamedNodesCollection.cpp index 93a8937..af1995b 100644 --- a/src/3rdparty/webkit/WebCore/bindings/js/JSNamedNodesCollection.cpp +++ b/src/3rdparty/webkit/WebCore/bindings/js/JSNamedNodesCollection.cpp @@ -43,7 +43,9 @@ const ClassInfo JSNamedNodesCollection::s_info = { "Collection", 0, 0, 0 }; // for constructs like document.forms.<name>[1], // so it shouldn't be a problem that it's storing all the nodes (with the same name). (David) JSNamedNodesCollection::JSNamedNodesCollection(ExecState* exec, const Vector<RefPtr<Node> >& nodes) - : DOMObject(getDOMStructure<JSNamedNodesCollection>(exec)) + // FIXME: deprecatedGetDOMStructure uses the prototype off of the wrong global object + // we should use the global object from the nodes. + : DOMObject(deprecatedGetDOMStructure<JSNamedNodesCollection>(exec)) , m_nodes(new Vector<RefPtr<Node> >(nodes)) { } diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSRGBColor.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSRGBColor.cpp index f7c87e2..c430d5f 100644 --- a/src/3rdparty/webkit/WebCore/bindings/js/JSRGBColor.cpp +++ b/src/3rdparty/webkit/WebCore/bindings/js/JSRGBColor.cpp @@ -49,7 +49,9 @@ ASSERT_CLASS_FITS_IN_CELL(JSRGBColor); const ClassInfo JSRGBColor::s_info = { "RGBColor", 0, &JSRGBColorTable, 0 }; JSRGBColor::JSRGBColor(ExecState* exec, unsigned color) - : DOMObject(getDOMStructure<JSRGBColor>(exec)) + // FIXME: deprecatedGetDOMStructure uses the prototype off of the wrong global object + // This will be fixed when JSRGBColor wraps css/RGBColor instead of being custom. + : DOMObject(deprecatedGetDOMStructure<JSRGBColor>(exec)) , m_color(color) { } diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSSharedWorkerConstructor.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSSharedWorkerConstructor.cpp new file mode 100644 index 0000000..ead17dd --- /dev/null +++ b/src/3rdparty/webkit/WebCore/bindings/js/JSSharedWorkerConstructor.cpp @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2009 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" + +#if ENABLE(SHARED_WORKERS) + +#include "JSSharedWorkerConstructor.h" + +#include "JSDOMWindowCustom.h" +#include "JSSharedWorker.h" +#include "SharedWorker.h" + +using namespace JSC; + +namespace WebCore { + +const ClassInfo JSSharedWorkerConstructor::s_info = { "SharedWorkerConstructor", 0, 0, 0 }; + +JSSharedWorkerConstructor::JSSharedWorkerConstructor(ExecState* exec, JSDOMGlobalObject* globalObject) + : DOMObject(JSSharedWorkerConstructor::createStructure(globalObject->objectPrototype())) +{ + putDirect(exec->propertyNames().prototype, JSSharedWorkerPrototype::self(exec, globalObject), None); + // Host functions have a length property describing the number of expected arguments. + putDirect(exec->propertyNames().length, jsNumber(exec, 2), ReadOnly|DontDelete|DontEnum); +} + +static JSObject* constructSharedWorker(ExecState* exec, JSObject*, const ArgList& args) +{ + if (args.size() < 2) + return throwError(exec, SyntaxError, "Not enough arguments"); + + UString scriptURL = args.at(0).toString(exec); + UString name = args.at(1).toString(exec); + if (exec->hadException()) + return 0; + + ScriptExecutionContext* context = static_cast<JSDOMGlobalObject*>(exec->dynamicGlobalObject())->scriptExecutionContext(); + ExceptionCode ec = 0; + RefPtr<SharedWorker> worker = SharedWorker::create(scriptURL, name, context, ec); + setDOMException(exec, ec); + + // FIXME: toJS() creates an object whose prototype is derived from lexicalGlobalScope, which is incorrect (Bug 27088) + return asObject(toJS(exec, worker.release())); +} + +ConstructType JSSharedWorkerConstructor::getConstructData(ConstructData& constructData) +{ + constructData.native.function = constructSharedWorker; + return ConstructTypeHost; +} + + +} // namespace WebCore + +#endif // ENABLE(SHARED_WORKERS) diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSSharedWorkerConstructor.h b/src/3rdparty/webkit/WebCore/bindings/js/JSSharedWorkerConstructor.h new file mode 100644 index 0000000..be8b2b4 --- /dev/null +++ b/src/3rdparty/webkit/WebCore/bindings/js/JSSharedWorkerConstructor.h @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2009 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef JSSharedWorkerConstructor_h +#define JSSharedWorkerConstructor_h + +#if ENABLE(SHARED_WORKERS) + +#include "JSDOMBinding.h" + +namespace WebCore { + + class JSSharedWorkerConstructor : public DOMObject { + public: + JSSharedWorkerConstructor(JSC::ExecState*, JSDOMGlobalObject*); + + static const JSC::ClassInfo s_info; + + private: + virtual JSC::ConstructType getConstructData(JSC::ConstructData&); + + virtual const JSC::ClassInfo* classInfo() const { return &s_info; } + }; + +} // namespace WebCore + +#endif // ENABLE(SHARED_WORKERS) + +#endif // JSSharedWorkerConstructor_h diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSSharedWorkerCustom.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSSharedWorkerCustom.cpp new file mode 100644 index 0000000..8553298 --- /dev/null +++ b/src/3rdparty/webkit/WebCore/bindings/js/JSSharedWorkerCustom.cpp @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2009 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" + +#if ENABLE(SHARED_WORKERS) + +#include "JSSharedWorker.h" + +#include "JSDOMGlobalObject.h" +#include "SharedWorker.h" + +using namespace JSC; + +namespace WebCore { + +void JSSharedWorker::mark() +{ + Base::mark(); + + if (MessagePort* port = impl()->port()) { + DOMObject* wrapper = getCachedDOMObjectWrapper(*Heap::heap(this)->globalData(), port); + if (wrapper && !wrapper->marked()) + wrapper->mark(); + } +} + +} // namespace WebCore + +#endif // ENABLE(SHARED_WORKERS) diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSWorkerContextCustom.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSWorkerContextCustom.cpp index 14bbe19..06475f9 100644 --- a/src/3rdparty/webkit/WebCore/bindings/js/JSWorkerContextCustom.cpp +++ b/src/3rdparty/webkit/WebCore/bindings/js/JSWorkerContextCustom.cpp @@ -30,7 +30,10 @@ #include "JSWorkerContext.h" #include "JSDOMBinding.h" +#include "JSDOMGlobalObject.h" #include "JSEventListener.h" +#include "JSMessageChannelConstructor.h" +#include "JSMessagePort.h" #include "JSWorkerLocation.h" #include "JSWorkerNavigator.h" #include "JSXMLHttpRequestConstructor.h" @@ -138,6 +141,14 @@ JSValue JSWorkerContext::setInterval(ExecState* exec, const ArgList& args) return jsNumber(exec, impl()->setInterval(action, delay)); } + +#if ENABLE(CHANNEL_MESSAGING) +JSValue JSWorkerContext::messageChannel(ExecState* exec) const +{ + return getDOMConstructor<JSMessageChannelConstructor>(exec, this); +} +#endif + } // namespace WebCore #endif // ENABLE(WORKERS) diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSWorkerCustom.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSWorkerCustom.cpp index f4d3033..9707519 100644 --- a/src/3rdparty/webkit/WebCore/bindings/js/JSWorkerCustom.cpp +++ b/src/3rdparty/webkit/WebCore/bindings/js/JSWorkerCustom.cpp @@ -31,6 +31,7 @@ #include "JSDOMGlobalObject.h" #include "JSEventListener.h" +#include "JSMessagePort.h" #include "Worker.h" using namespace JSC; diff --git a/src/3rdparty/webkit/WebCore/bindings/js/ScriptController.cpp b/src/3rdparty/webkit/WebCore/bindings/js/ScriptController.cpp index 3e59df9..442205e 100644 --- a/src/3rdparty/webkit/WebCore/bindings/js/ScriptController.cpp +++ b/src/3rdparty/webkit/WebCore/bindings/js/ScriptController.cpp @@ -81,7 +81,15 @@ ScriptController::~ScriptController() ScriptValue ScriptController::evaluate(const ScriptSourceCode& sourceCode) { - if (!m_XSSAuditor->canEvaluate(sourceCode.source())) { + const SourceCode& jsSourceCode = sourceCode.jsSourceCode(); + String sourceURL = jsSourceCode.provider()->url(); + + if (sourceURL.isNull() && !m_XSSAuditor->canEvaluateJavaScriptURL(sourceCode.source())) { + // This JavaScript URL is not safe to be evaluated. + return JSValue(); + } + + if (!sourceURL.isNull() && !m_XSSAuditor->canEvaluate(sourceCode.source())) { // This script is not safe to be evaluated. return JSValue(); } @@ -89,8 +97,6 @@ ScriptValue ScriptController::evaluate(const ScriptSourceCode& sourceCode) // evaluate code. Returns the JS return value or 0 // if there was none, an error occured or the type couldn't be converted. - const SourceCode& jsSourceCode = sourceCode.jsSourceCode(); - initScriptIfNeeded(); // inlineCode is true for <a href="javascript:doSomething()"> // and false for <script>doSomething()</script>. Check if it has the @@ -98,7 +104,6 @@ ScriptValue ScriptController::evaluate(const ScriptSourceCode& sourceCode) // See smart window.open policy for where this is used. ExecState* exec = m_windowShell->window()->globalExec(); const String* savedSourceURL = m_sourceURL; - String sourceURL = jsSourceCode.provider()->url(); m_sourceURL = &sourceURL; JSLock lock(false); diff --git a/src/3rdparty/webkit/WebCore/bindings/js/ScriptObjectQuarantine.cpp b/src/3rdparty/webkit/WebCore/bindings/js/ScriptObjectQuarantine.cpp index 13e180a..ab392bc 100644 --- a/src/3rdparty/webkit/WebCore/bindings/js/ScriptObjectQuarantine.cpp +++ b/src/3rdparty/webkit/WebCore/bindings/js/ScriptObjectQuarantine.cpp @@ -31,7 +31,6 @@ #include "config.h" #include "ScriptObjectQuarantine.h" -#include "Database.h" #include "Document.h" #include "Frame.h" #include "JSDOMBinding.h" @@ -43,6 +42,7 @@ #include <runtime/JSLock.h> #if ENABLE(DATABASE) +#include "Database.h" #include "JSDatabase.h" #endif diff --git a/src/3rdparty/webkit/WebCore/bindings/scripts/CodeGeneratorJS.pm b/src/3rdparty/webkit/WebCore/bindings/scripts/CodeGeneratorJS.pm index 4f9aa1a..dbcffff 100644 --- a/src/3rdparty/webkit/WebCore/bindings/scripts/CodeGeneratorJS.pm +++ b/src/3rdparty/webkit/WebCore/bindings/scripts/CodeGeneratorJS.pm @@ -140,14 +140,6 @@ sub AvoidInclusionOfType return 0; } -sub UsesManualToJSImplementation -{ - my $type = shift; - - return 1 if $type eq "Node" or $type eq "Document" or $type eq "HTMLCollection" or $type eq "SVGPathSeg" or $type eq "StyleSheet" or $type eq "CSSRule" or $type eq "CSSValue" or $type eq "Event" or $type eq "ImageData" or $type eq "Element" or $type eq "Text" or $type eq "SVGElementInstance"; - return 0; -} - sub IndexGetterReturnsStrings { my $type = shift; @@ -629,7 +621,7 @@ sub GenerateHeader push(@headerContent, "}\n\n"); } - if (!$hasParent || $dataNode->extendedAttributes->{"GenerateToJS"}) { + if (!$hasParent || $dataNode->extendedAttributes->{"GenerateToJS"} || $dataNode->extendedAttributes->{"CustomToJS"}) { if ($podType) { push(@headerContent, "JSC::JSValue toJS(JSC::ExecState*, JSSVGPODTypeWrapper<$podType>*, SVGElement* context);\n"); } elsif (IsSVGTypeNeedingContextParameter($implClassName)) { @@ -1505,7 +1497,7 @@ sub GenerateImplementation } } - if ((!$hasParent or $dataNode->extendedAttributes->{"GenerateToJS"}) and !UsesManualToJSImplementation($implClassName)) { + if ((!$hasParent or $dataNode->extendedAttributes->{"GenerateToJS"}) and !$dataNode->extendedAttributes->{"CustomToJS"}) { if ($podType) { push(@implContent, "JSC::JSValue toJS(JSC::ExecState* exec, JSSVGPODTypeWrapper<$podType>* object, SVGElement* context)\n"); } elsif (IsSVGTypeNeedingContextParameter($implClassName)) { @@ -1910,7 +1902,7 @@ tableSizeLoop: push(@implContent, "};\n\n"); my $perfectSizeMask = $perfectSize - 1; my $compactSizeMask = $numEntries - 1; - push(@implContent, "static const HashTable $name =\n"); + push(@implContent, "static JSC_CONST_HASHTABLE HashTable $name =\n"); push(@implContent, "#if ENABLE(PERFECT_HASH_SIZE)\n"); push(@implContent, " { $perfectSizeMask, $nameEntries, 0 };\n"); push(@implContent, "#else\n"); diff --git a/src/3rdparty/webkit/WebCore/bindings/scripts/CodeGeneratorV8.pm b/src/3rdparty/webkit/WebCore/bindings/scripts/CodeGeneratorV8.pm index 088668e..cdadf81 100644 --- a/src/3rdparty/webkit/WebCore/bindings/scripts/CodeGeneratorV8.pm +++ b/src/3rdparty/webkit/WebCore/bindings/scripts/CodeGeneratorV8.pm @@ -234,7 +234,7 @@ sub AddClassForwardIfNeeded sub GetImplementationFileName { my $iface = shift; - return "HTMLCollection.h" if $iface eq "UndetectableHTMLCollection"; + return "HTMLCollection.h" if $iface eq "HTMLAllCollection"; return "Event.h" if $iface eq "DOMTimeStamp"; return "NamedAttrMap.h" if $iface eq "NamedNodeMap"; return "NameNodeList.h" if $iface eq "NodeList"; @@ -346,12 +346,12 @@ sub HolderToNative if (IsNodeSubType($dataNode)) { push(@implContentDecls, <<END); - $implClassName* imp = V8Proxy::convertDOMWrapperToNode<$implClassName>(holder); + $implClassName* imp = V8DOMWrapper::convertDOMWrapperToNode<$implClassName>(holder); END } else { push(@implContentDecls, <<END); - $implClassName* imp = V8Proxy::convertToNativeObject<$implClassName>(V8ClassIndex::$classIndex, holder); + $implClassName* imp = V8DOMWrapper::convertToNativeObject<$implClassName>(V8ClassIndex::$classIndex, holder); END } @@ -381,7 +381,7 @@ sub GenerateDomainSafeFunctionGetter INC_STATS(\"DOM.$implClassName.$funcName._get\"); static v8::Persistent<v8::FunctionTemplate> private_template = v8::Persistent<v8::FunctionTemplate>::New($newTemplateString); - v8::Handle<v8::Object> holder = V8Proxy::lookupDOMWrapper(V8ClassIndex::$classIndex, info.This()); + v8::Handle<v8::Object> holder = V8DOMWrapper::lookupDOMWrapper(V8ClassIndex::$classIndex, info.This()); if (holder.IsEmpty()) { // can only reach here by 'object.__proto__.func', and it should passed // domain security check already @@ -421,7 +421,7 @@ END if ($classIndex eq "DOMWINDOW") { push(@implContentDecls, <<END); - DOMWindow* window = V8Proxy::convertToNativeObject<DOMWindow>(V8ClassIndex::DOMWINDOW, info.Holder()); + DOMWindow* window = V8DOMWrapper::convertToNativeObject<DOMWindow>(V8ClassIndex::DOMWINDOW, info.Holder()); Frame* frame = window->frame(); if (frame) { // Get the proxy corresponding to the DOMWindow if possible to @@ -500,7 +500,7 @@ END if ($isPodType) { push(@implContentDecls, <<END); - V8SVGPODTypeWrapper<$implClassName>* imp_wrapper = V8Proxy::convertToNativeObject<V8SVGPODTypeWrapper<$implClassName> >(V8ClassIndex::$classIndex, info.Holder()); + V8SVGPODTypeWrapper<$implClassName>* imp_wrapper = V8DOMWrapper::convertToNativeObject<V8SVGPODTypeWrapper<$implClassName> >(V8ClassIndex::$classIndex, info.Holder()); $implClassName imp_instance = *imp_wrapper; END if ($getterStringUsesImp) { @@ -512,7 +512,7 @@ END } elsif ($attrExt->{"v8OnProto"} || $attrExt->{"V8DisallowShadowing"}) { # perform lookup first push(@implContentDecls, <<END); - v8::Handle<v8::Object> holder = V8Proxy::lookupDOMWrapper(V8ClassIndex::$classIndex, info.This()); + v8::Handle<v8::Object> holder = V8DOMWrapper::lookupDOMWrapper(V8ClassIndex::$classIndex, info.This()); if (holder.IsEmpty()) return v8::Undefined(); END HolderToNative($dataNode, $implClassName, $classIndex); @@ -562,7 +562,7 @@ END $getterString = "imp_instance"; } if ($nativeType eq "String") { - $getterString = "ToString($getterString)"; + $getterString = "toString($getterString)"; } my $result; @@ -624,9 +624,9 @@ END if ($attrIsPodType) { my $classIndex = uc($attrType); - push(@implContentDecls, " return V8Proxy::convertToV8Object(V8ClassIndex::$classIndex, wrapper);\n"); + push(@implContentDecls, " return V8DOMWrapper::convertToV8Object(V8ClassIndex::$classIndex, wrapper);\n"); } else { - push(@implContentDecls, " return ".NativeToJSValue($attribute->signature, $result).";\n"); + push(@implContentDecls, " " . ReturnNativeToJSValue($attribute->signature, $result, " ").";\n"); } push(@implContentDecls, " }\n\n"); # end of getter @@ -674,14 +674,14 @@ sub GenerateNormalAttrSetter if ($isPodType) { $implClassName = GetNativeType($implClassName); $implIncludes{"V8SVGPODTypeWrapper.h"} = 1; - push(@implContentDecls, " V8SVGPODTypeWrapper<$implClassName>* wrapper = V8Proxy::convertToNativeObject<V8SVGPODTypeWrapper<$implClassName> >(V8ClassIndex::$classIndex, info.Holder());\n"); + push(@implContentDecls, " V8SVGPODTypeWrapper<$implClassName>* wrapper = V8DOMWrapper::convertToNativeObject<V8SVGPODTypeWrapper<$implClassName> >(V8ClassIndex::$classIndex, info.Holder());\n"); push(@implContentDecls, " $implClassName imp_instance = *wrapper;\n"); push(@implContentDecls, " $implClassName* imp = &imp_instance;\n"); } elsif ($attrExt->{"v8OnProto"}) { # perform lookup first push(@implContentDecls, <<END); - v8::Handle<v8::Object> holder = V8Proxy::lookupDOMWrapper(V8ClassIndex::$classIndex, info.This()); + v8::Handle<v8::Object> holder = V8DOMWrapper::lookupDOMWrapper(V8ClassIndex::$classIndex, info.This()); if (holder.IsEmpty()) return v8::Undefined(); END HolderToNative($dataNode, $implClassName, $classIndex); @@ -795,7 +795,7 @@ sub GenerateFunctionCallback if (IsPodType($implClassName)) { my $nativeClassName = GetNativeType($implClassName); - push(@implContentDecls, " V8SVGPODTypeWrapper<$nativeClassName>* imp_wrapper = V8Proxy::convertToNativeObject<V8SVGPODTypeWrapper<$nativeClassName> >(V8ClassIndex::$classIndex, args.Holder());\n"); + push(@implContentDecls, " V8SVGPODTypeWrapper<$nativeClassName>* imp_wrapper = V8DOMWrapper::convertToNativeObject<V8SVGPODTypeWrapper<$nativeClassName> >(V8ClassIndex::$classIndex, args.Holder());\n"); push(@implContentDecls, " $nativeClassName imp_instance = *imp_wrapper;\n"); push(@implContentDecls, " $nativeClassName* imp = &imp_instance;\n"); } else { @@ -1053,7 +1053,7 @@ sub GenerateImplementation push(@implFixedHeader, "#include \"config.h\"\n" . "#include \"V8Proxy.h\"\n" . - "#include \"v8_binding.h\"\n\n" . + "#include \"V8Binding.h\"\n\n" . "#undef LOG\n\n"); my $conditionalString; @@ -1174,7 +1174,7 @@ sub GenerateImplementation my $has_attributes = 0; if (@$attributes) { $has_attributes = 1; - push(@implContent, "static const BatchedAttribute attrs[] = {\n"); + push(@implContent, "static const BatchedAttribute ${interfaceName}_attrs[] = {\n"); GenerateBatchedAttributeData($interfaceName, $attributes); push(@implContent, "};\n"); } @@ -1183,7 +1183,7 @@ sub GenerateImplementation my $has_constants = 0; if (@{$dataNode->constants}) { $has_constants = 1; - push(@implContent, "static const BatchedConstant consts[] = {\n"); + push(@implContent, "static const BatchedConstant ${interfaceName}_consts[] = {\n"); } foreach my $constant (@{$dataNode->constants}) { my $name = $constant->name; @@ -1234,7 +1234,7 @@ END # Set up our attributes if we have them if ($has_attributes) { push(@implContent, <<END); - batchConfigureAttributes(instance, proto, attrs, sizeof(attrs)/sizeof(*attrs)); + batchConfigureAttributes(instance, proto, ${interfaceName}_attrs, sizeof(${interfaceName}_attrs)/sizeof(*${interfaceName}_attrs)); END } @@ -1319,7 +1319,7 @@ END if ($parent eq "EventTarget") { next; } $implIncludes{"V8${parent}.h"} = 1; my $parentClassIndex = uc($codeGenerator->StripModule($parent)); - push(@implContent, " desc->Inherit(V8Proxy::getTemplate(V8ClassIndex::${parentClassIndex}));\n"); + push(@implContent, " desc->Inherit(V8DOMWrapper::getTemplate(V8ClassIndex::${parentClassIndex}));\n"); last; } @@ -1328,7 +1328,7 @@ END if ($has_constants) { push(@implContent, <<END); - batchConfigureConstants(desc, proto, consts, sizeof(consts)/sizeof(*consts)); + batchConfigureConstants(desc, proto, ${interfaceName}_consts, sizeof(${interfaceName}_consts)/sizeof(*${interfaceName}_consts)); END } @@ -1482,7 +1482,7 @@ sub GenerateFunctionCallString() } $result .= $indent . "if (success)\n"; $result .= $indent . " " . - "return V8Proxy::convertNodeToV8Object($nodeToReturn);\n"; + "return V8DOMWrapper::convertNodeToV8Object($nodeToReturn);\n"; $result .= $indent . "return v8::Null();\n"; return $result; } elsif ($returnType eq "void") { @@ -1547,9 +1547,9 @@ sub GenerateFunctionCallString() if ($returnsPodType) { my $classIndex = uc($returnType); - $result .= $indent . "return V8Proxy::convertToV8Object(V8ClassIndex::$classIndex, wrapper);\n"; + $result .= $indent . "return V8DOMWrapper::convertToV8Object(V8ClassIndex::$classIndex, wrapper);\n"; } else { - $result .= $indent . "return " . NativeToJSValue($function->signature, $return) . ";\n"; + $result .= $indent . ReturnNativeToJSValue($function->signature, $return, $indent) . ";\n"; } return $result; @@ -1560,7 +1560,7 @@ sub GenerateFunctionCallString() sub GetClassName { my $type = shift; - return "HTMLCollection" if $type eq "UndetectableHTMLCollection"; + return "HTMLCollection" if $type eq "HTMLAllCollection"; return $type; } @@ -1799,19 +1799,19 @@ sub JSValueToNative return "static_cast<$type>($value->NumberValue())" if $type eq "float" or $type eq "double"; return "$value->NumberValue()" if $type eq "SVGNumber"; - return "ToInt32($value${maybeOkParam})" if $type eq "unsigned long" or $type eq "unsigned short" or $type eq "long"; + return "toInt32($value${maybeOkParam})" if $type eq "unsigned long" or $type eq "unsigned short" or $type eq "long"; return "static_cast<Range::CompareHow>($value->Int32Value())" if $type eq "CompareHow"; return "static_cast<SVGPaint::SVGPaintType>($value->ToInt32()->Int32Value())" if $type eq "SVGPaintType"; - return "ToWebCoreString($value)" if $type eq "AtomicString" or $type eq "DOMUserData"; + return "toWebCoreString($value)" if $type eq "AtomicString" or $type eq "DOMUserData"; if ($type eq "DOMString") { - return "valueToStringWithNullCheck($value)" if $signature->extendedAttributes->{"ConvertNullToNullString"}; - return "valueToStringWithNullOrUndefinedCheck($value)" if $signature->extendedAttributes->{"ConvertUndefinedOrNullToNullString"}; - return "ToWebCoreString($value)"; + return "toWebCoreStringWithNullCheck($value)" if $signature->extendedAttributes->{"ConvertNullToNullString"}; + return "toWebCoreStringWithNullOrUndefinedCheck($value)" if $signature->extendedAttributes->{"ConvertUndefinedOrNullToNullString"}; + return "toWebCoreString($value)"; } if ($type eq "NodeFilter") { - return "V8Proxy::wrapNativeNodeFilter($value)"; + return "V8DOMWrapper::wrapNativeNodeFilter($value)"; } if ($type eq "SVGRect") { @@ -1828,7 +1828,7 @@ sub JSValueToNative $implIncludes{"V8Node.h"} = 1; # EventTarget is not in DOM hierarchy, but all Nodes are EventTarget. - return "V8Node::HasInstance($value) ? V8Proxy::convertDOMWrapperToNode<Node>($value) : 0"; + return "V8Node::HasInstance($value) ? V8DOMWrapper::convertDOMWrapperToNode<Node>($value) : 0"; } AddIncludesForType($type); @@ -1839,7 +1839,7 @@ sub JSValueToNative # Perform type checks on the parameter, if it is expected Node type, # return NULL. - return "V8${type}::HasInstance($value) ? V8Proxy::convertDOMWrapperToNode<${type}>($value) : 0"; + return "V8${type}::HasInstance($value) ? V8DOMWrapper::convertDOMWrapperToNode<${type}>($value) : 0"; } else { # TODO: Temporary to avoid Window name conflict. my $classIndex = uc($type); @@ -1851,14 +1851,14 @@ sub JSValueToNative my $nativeType = GetNativeType($type); $implIncludes{"V8SVGPODTypeWrapper.h"} = 1; - return "V8SVGPODTypeUtil::ToSVGPODType<${nativeType}>(V8ClassIndex::${classIndex}, $value${maybeOkParam})" + return "V8SVGPODTypeUtil::toSVGPODType<${nativeType}>(V8ClassIndex::${classIndex}, $value${maybeOkParam})" } $implIncludes{"V8${type}.h"} = 1; # Perform type checks on the parameter, if it is expected Node type, # return NULL. - return "V8${type}::HasInstance($value) ? V8Proxy::convertToNativeObject<${implClassName}>(V8ClassIndex::${classIndex}, $value) : 0"; + return "V8${type}::HasInstance($value) ? V8DOMWrapper::convertToNativeObject<${implClassName}>(V8ClassIndex::${classIndex}, $value) : 0"; } } @@ -1976,33 +1976,34 @@ sub IsDOMNodeType } -sub NativeToJSValue +sub ReturnNativeToJSValue { my $signature = shift; my $value = shift; + my $indent = shift; my $type = $codeGenerator->StripModule($signature->type); my $className= "V8$type"; - return "v8::Date::New(static_cast<double>($value))" if $type eq "DOMTimeStamp"; - return "$value ? v8::True() : v8::False()" if $type eq "boolean"; - return "v8::Undefined()" if $type eq "void"; + return "return v8::Date::New(static_cast<double>($value))" if $type eq "DOMTimeStamp"; + return "return $value ? v8::True() : v8::False()" if $type eq "boolean"; + return "return v8::Undefined()" if $type eq "void"; # For all the types where we use 'int' as the representation type, # we use Integer::New which has a fast Smi conversion check. - return "v8::Integer::New($value)" if GetNativeType($type) eq "int"; + return "return v8::Integer::New($value)" if GetNativeType($type) eq "int"; - return "v8::Number::New($value)" if $codeGenerator->IsPrimitiveType($type) or $type eq "SVGPaintType"; + return "return v8::Number::New($value)" if $codeGenerator->IsPrimitiveType($type) or $type eq "SVGPaintType"; if ($codeGenerator->IsStringType($type)) { my $conv = $signature->extendedAttributes->{"ConvertNullStringTo"}; if (defined $conv) { - return "v8StringOrNull($value)" if $conv eq "Null"; - return "v8StringOrUndefined($value)" if $conv eq "Undefined"; - return "v8StringOrFalse($value)" if $conv eq "False"; + return "return v8StringOrNull($value)" if $conv eq "Null"; + return "return v8StringOrUndefined($value)" if $conv eq "Undefined"; + return "return v8StringOrFalse($value)" if $conv eq "False"; die "Unknown value for ConvertNullStringTo extended attribute"; } - return "v8String($value)"; + return "return v8String($value)"; } # V8 specific. @@ -2012,30 +2013,32 @@ sub NativeToJSValue # special case for non-DOM node interfaces if (IsDOMNodeType($type)) { - return "V8Proxy::convertNodeToV8Object($value)"; + return "return V8DOMWrapper::convertNodeToV8Object($value)"; } if ($type eq "EventTarget" or $type eq "SVGElementInstance") { - return "V8Proxy::convertEventTargetToV8Object($value)"; + return "return V8DOMWrapper::convertEventTargetToV8Object($value)"; } if ($type eq "Event") { - return "V8Proxy::convertEventToV8Object($value)"; + return "return V8DOMWrapper::convertEventToV8Object($value)"; } if ($type eq "EventListener") { - return "V8Proxy::convertEventListenerToV8Object($value)"; + return "return V8DOMWrapper::convertEventListenerToV8Object($value)"; } if ($type eq "RGBColor") { - return "V8Proxy::convertToV8Object(V8ClassIndex::RGBCOLOR, new RGBColor($value))"; + my $construct = "RefPtr<RGBColor> rgbcolor = RGBColor::create($value);\n"; + my $convert = "V8DOMWrapper::convertToV8Object(V8ClassIndex::RGBCOLOR, WTF::getPtr(rgbcolor))"; + return $construct . $indent . "return " . $convert; } if ($type eq "WorkerContext" or $type eq "WorkerLocation" or $type eq "WorkerNavigator") { $implIncludes{"WorkerContextExecutionProxy.h"} = 1; my $classIndex = uc($type); - return "WorkerContextExecutionProxy::ToV8Object(V8ClassIndex::$classIndex, $value)"; + return "return WorkerContextExecutionProxy::ToV8Object(V8ClassIndex::$classIndex, $value)"; } else { @@ -2047,7 +2050,7 @@ sub NativeToJSValue $value = GenerateSVGStaticPodTypeWrapper($type, $value); } - return "V8Proxy::convertToV8Object(V8ClassIndex::$classIndex, $value)"; + return "return V8DOMWrapper::convertToV8Object(V8ClassIndex::$classIndex, $value)"; } } diff --git a/src/3rdparty/webkit/WebCore/bridge/qt/qt_instance.cpp b/src/3rdparty/webkit/WebCore/bridge/qt/qt_instance.cpp index 60cf16f..3ea8bcf 100644 --- a/src/3rdparty/webkit/WebCore/bridge/qt/qt_instance.cpp +++ b/src/3rdparty/webkit/WebCore/bridge/qt/qt_instance.cpp @@ -74,7 +74,7 @@ private: const ClassInfo QtRuntimeObjectImp::s_info = { "QtRuntimeObject", &RuntimeObjectImp::s_info, 0, 0 }; QtRuntimeObjectImp::QtRuntimeObjectImp(ExecState* exec, PassRefPtr<Instance> instance) - : RuntimeObjectImp(exec, WebCore::getDOMStructure<QtRuntimeObjectImp>(exec), instance) + : RuntimeObjectImp(exec, WebCore::deprecatedGetDOMStructure<QtRuntimeObjectImp>(exec), instance) { } diff --git a/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp b/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp index 161e570..aabd677 100644 --- a/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp +++ b/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp @@ -907,7 +907,7 @@ JSValue convertQVariantToValue(ExecState* exec, PassRefPtr<RootObject> root, con const ClassInfo QtRuntimeMethod::s_info = { "QtRuntimeMethod", 0, 0, 0 }; QtRuntimeMethod::QtRuntimeMethod(QtRuntimeMethodData* dd, ExecState* exec, const Identifier& ident, PassRefPtr<QtInstance> inst) - : InternalFunction(&exec->globalData(), getDOMStructure<QtRuntimeMethod>(exec), ident) + : InternalFunction(&exec->globalData(), deprecatedGetDOMStructure<QtRuntimeMethod>(exec), ident) , d_ptr(dd) { QW_D(QtRuntimeMethod); diff --git a/src/3rdparty/webkit/WebCore/bridge/runtime_array.cpp b/src/3rdparty/webkit/WebCore/bridge/runtime_array.cpp index fead83a..2849822 100644 --- a/src/3rdparty/webkit/WebCore/bridge/runtime_array.cpp +++ b/src/3rdparty/webkit/WebCore/bridge/runtime_array.cpp @@ -36,9 +36,11 @@ namespace JSC { const ClassInfo RuntimeArray::s_info = { "RuntimeArray", &JSArray::info, 0, 0 }; -RuntimeArray::RuntimeArray(ExecState* exec, Bindings::Array* a) - : JSObject(getDOMStructure<RuntimeArray>(exec)) - , _array(a) +RuntimeArray::RuntimeArray(ExecState* exec, Bindings::Array* array) + // FIXME: deprecatedGetDOMStructure uses the prototype off of the wrong global object + // We need to pass in the right global object for "array". + : JSObject(deprecatedGetDOMStructure<RuntimeArray>(exec)) + , _array(array) { } diff --git a/src/3rdparty/webkit/WebCore/bridge/runtime_method.cpp b/src/3rdparty/webkit/WebCore/bridge/runtime_method.cpp index 30a3581..0af0af5 100644 --- a/src/3rdparty/webkit/WebCore/bridge/runtime_method.cpp +++ b/src/3rdparty/webkit/WebCore/bridge/runtime_method.cpp @@ -41,8 +41,11 @@ ASSERT_CLASS_FITS_IN_CELL(RuntimeMethod); const ClassInfo RuntimeMethod::s_info = { "RuntimeMethod", 0, 0, 0 }; -RuntimeMethod::RuntimeMethod(ExecState* exec, const Identifier& ident, Bindings::MethodList& m) - : InternalFunction(&exec->globalData(), getDOMStructure<RuntimeMethod>(exec), ident) +RuntimeMethod::RuntimeMethod(ExecState* exec, const Identifier& ident, Bindings::MethodList& m) + // FIXME: deprecatedGetDOMStructure uses the prototype off of the wrong global object + // exec-globalData() is also likely wrong. + // Callers will need to pass in the right global object corresponding to this native object "m". + : InternalFunction(&exec->globalData(), deprecatedGetDOMStructure<RuntimeMethod>(exec), ident) , _methodList(new MethodList(m)) { } diff --git a/src/3rdparty/webkit/WebCore/bridge/runtime_object.cpp b/src/3rdparty/webkit/WebCore/bridge/runtime_object.cpp index 79afd3f..385f914 100644 --- a/src/3rdparty/webkit/WebCore/bridge/runtime_object.cpp +++ b/src/3rdparty/webkit/WebCore/bridge/runtime_object.cpp @@ -41,7 +41,9 @@ using namespace Bindings; const ClassInfo RuntimeObjectImp::s_info = { "RuntimeObject", 0, 0, 0 }; RuntimeObjectImp::RuntimeObjectImp(ExecState* exec, PassRefPtr<Instance> i) - : JSObject(getDOMStructure<RuntimeObjectImp>(exec)) + // FIXME: deprecatedGetDOMStructure uses the prototype off of the wrong global object + // We need to pass in the right global object for "i". + : JSObject(deprecatedGetDOMStructure<RuntimeObjectImp>(exec)) , instance(i) { instance->rootObject()->addRuntimeObject(this); diff --git a/src/3rdparty/webkit/WebCore/bridge/runtime_root.cpp b/src/3rdparty/webkit/WebCore/bridge/runtime_root.cpp index 8e00fd5..0e9bf74 100644 --- a/src/3rdparty/webkit/WebCore/bridge/runtime_root.cpp +++ b/src/3rdparty/webkit/WebCore/bridge/runtime_root.cpp @@ -22,6 +22,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ + #include "config.h" #include "runtime_root.h" diff --git a/src/3rdparty/webkit/WebCore/bridge/runtime_root.h b/src/3rdparty/webkit/WebCore/bridge/runtime_root.h index 0d6fdbd..eacbb57 100644 --- a/src/3rdparty/webkit/WebCore/bridge/runtime_root.h +++ b/src/3rdparty/webkit/WebCore/bridge/runtime_root.h @@ -86,4 +86,4 @@ private: } // namespace JSC -#endif +#endif // RUNTIME_ROOT_H_ diff --git a/src/3rdparty/webkit/WebCore/css/CSSParser.cpp b/src/3rdparty/webkit/WebCore/css/CSSParser.cpp index 2e8f3bb..b49b646 100644 --- a/src/3rdparty/webkit/WebCore/css/CSSParser.cpp +++ b/src/3rdparty/webkit/WebCore/css/CSSParser.cpp @@ -347,7 +347,7 @@ bool CSSParser::parseMediaQuery(MediaList* queries, const String& string) m_mediaQuery = 0; // can't use { because tokenizer state switches from mediaquery to initial state when it sees { token. // instead insert one " " (which is WHITESPACE in CSSGrammar.y) - setupParser ("@-webkit-mediaquery ", string, "} "); + setupParser("@-webkit-mediaquery ", string, "} "); cssyyparse(this); bool ok = false; @@ -408,7 +408,7 @@ bool CSSParser::validUnit(CSSParserValue* value, Units unitflags, bool strict) return false; bool b = false; - switch(value->unit) { + switch (value->unit) { case CSSPrimitiveValue::CSS_NUMBER: b = (unitflags & FNumber); if (!b && ((unitflags & (FLength | FAngle | FTime)) && (value->fValue == 0 || !strict))) { @@ -1049,7 +1049,7 @@ bool CSSParser::parseValue(int propId, bool important) } else { RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); bool is_valid = true; - while(is_valid && value) { + while (is_valid && value) { switch (value->id) { case CSSValueBlink: break; @@ -1317,7 +1317,8 @@ bool CSSParser::parseValue(int propId, bool important) if (id == CSSValueNone) valid_primitive = true; else { - if (validUnit(value, FNumber|FNonNeg, m_strict)) { + // Accepting valueless numbers is a quirk of the -webkit prefixed version of the property. + if (validUnit(value, FNumber|FLength|FNonNeg, m_strict)) { RefPtr<CSSValue> val = CSSPrimitiveValue::create(value->fValue, (CSSPrimitiveValue::UnitTypes)value->unit); if (val) { addProperty(propId, val.release(), important); @@ -2576,7 +2577,7 @@ bool CSSParser::parseAnimationProperty(int propId, RefPtr<CSSValue>& result) #define DASHBOARD_REGION_NUM_PARAMETERS 6 #define DASHBOARD_REGION_SHORT_NUM_PARAMETERS 2 -static CSSParserValue* skipCommaInDashboardRegion (CSSParserValueList *args) +static CSSParserValue* skipCommaInDashboardRegion(CSSParserValueList *args) { if (args->size() == (DASHBOARD_REGION_NUM_PARAMETERS*2-1) || args->size() == (DASHBOARD_REGION_SHORT_NUM_PARAMETERS*2-1)) { @@ -2631,7 +2632,7 @@ bool CSSParser::parseDashboardRegions(int propId, bool important) int numArgs = args->size(); if ((numArgs != DASHBOARD_REGION_NUM_PARAMETERS && numArgs != (DASHBOARD_REGION_NUM_PARAMETERS*2-1)) && - (numArgs != DASHBOARD_REGION_SHORT_NUM_PARAMETERS && numArgs != (DASHBOARD_REGION_SHORT_NUM_PARAMETERS*2-1))){ + (numArgs != DASHBOARD_REGION_SHORT_NUM_PARAMETERS && numArgs != (DASHBOARD_REGION_SHORT_NUM_PARAMETERS*2-1))) { valid = false; break; } @@ -2647,7 +2648,7 @@ bool CSSParser::parseDashboardRegions(int propId, bool important) // Second arg is a type. arg = args->next(); - arg = skipCommaInDashboardRegion (args); + arg = skipCommaInDashboardRegion(args); if (arg->unit != CSSPrimitiveValue::CSS_IDENT) { valid = false; break; @@ -2677,7 +2678,7 @@ bool CSSParser::parseDashboardRegions(int propId, bool important) int i; for (i = 0; i < 4; i++) { arg = args->next(); - arg = skipCommaInDashboardRegion (args); + arg = skipCommaInDashboardRegion(args); valid = arg->id == CSSValueAuto || validUnit(arg, FLength, m_strict); if (!valid) @@ -3438,7 +3439,8 @@ struct ShadowParseContext { bool allowLength() { return allowX || allowY || allowBlur; } - void commitValue() { + void commitValue() + { // Handle the ,, case gracefully by doing nothing. if (x || y || blur || color) { if (!values) @@ -3454,7 +3456,8 @@ struct ShadowParseContext { allowY = allowBlur = false; } - void commitLength(CSSParserValue* v) { + void commitLength(CSSParserValue* v) + { RefPtr<CSSPrimitiveValue> val = CSSPrimitiveValue::create(v->fValue, (CSSPrimitiveValue::UnitTypes)v->unit); if (allowX) { @@ -3471,7 +3474,8 @@ struct ShadowParseContext { } } - void commitColor(PassRefPtr<CSSPrimitiveValue> val) { + void commitColor(PassRefPtr<CSSPrimitiveValue> val) + { color = val; allowColor = false; if (allowX) @@ -3603,8 +3607,7 @@ bool CSSParser::parseReflect(int propId, bool important) return true; } -struct BorderImageParseContext -{ +struct BorderImageParseContext { BorderImageParseContext() : m_allowBreak(false) , m_allowNumber(false) @@ -3626,7 +3629,8 @@ struct BorderImageParseContext bool allowRule() const { return m_allowRule; } void commitImage(PassRefPtr<CSSValue> image) { m_image = image; m_allowNumber = true; } - void commitNumber(CSSParserValue* v) { + void commitNumber(CSSParserValue* v) + { PassRefPtr<CSSPrimitiveValue> val = CSSPrimitiveValue::create(v->fValue, (CSSPrimitiveValue::UnitTypes)v->unit); if (!m_top) m_top = val; @@ -3643,7 +3647,8 @@ struct BorderImageParseContext m_allowNumber = !m_left; } void commitSlash() { m_allowBreak = m_allowSlash = m_allowNumber = false; m_allowWidth = true; } - void commitWidth(CSSParserValue* val) { + void commitWidth(CSSParserValue* val) + { if (!m_borderTop) m_borderTop = val; else if (!m_borderRight) @@ -3658,14 +3663,16 @@ struct BorderImageParseContext m_allowBreak = m_allowRule = true; m_allowWidth = !m_borderLeft; } - void commitRule(int keyword) { + void commitRule(int keyword) + { if (!m_horizontalRule) m_horizontalRule = keyword; else if (!m_verticalRule) m_verticalRule = keyword; m_allowRule = !m_verticalRule; } - PassRefPtr<CSSValue> commitBorderImage(CSSParser* p, bool important) { + PassRefPtr<CSSValue> commitBorderImage(CSSParser* p, bool important) + { // We need to clone and repeat values for any omissions. if (!m_right) { m_right = CSSPrimitiveValue::create(m_top->getDoubleValue(), (CSSPrimitiveValue::UnitTypes)m_top->primitiveType()); @@ -4291,7 +4298,7 @@ int CSSParser::lex(void* yylvalWithoutType) int length; UChar* t = text(&length); - switch(token) { + switch (token) { case WHITESPACE: case SGML_CD: case INCLUDES: @@ -4374,7 +4381,7 @@ UChar* CSSParser::text(int *length) { UChar* start = yytext; int l = yyleng; - switch(yyTok) { + switch (yyTok) { case STRING: l--; /* nobreak */ diff --git a/src/3rdparty/webkit/WebCore/css/CSSPrimitiveValueMappings.h b/src/3rdparty/webkit/WebCore/css/CSSPrimitiveValueMappings.h index fd1d203..1dd2a2d 100644 --- a/src/3rdparty/webkit/WebCore/css/CSSPrimitiveValueMappings.h +++ b/src/3rdparty/webkit/WebCore/css/CSSPrimitiveValueMappings.h @@ -215,14 +215,20 @@ template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ControlPart e) case MediaSeekForwardButtonPart: m_value.ident = CSSValueMediaSeekForwardButton; break; + case MediaRewindButtonPart: + m_value.ident = CSSValueMediaRewindButton; + break; + case MediaReturnToRealtimeButtonPart: + m_value.ident = CSSValueMediaReturnToRealtimeButton; + break; case MediaSliderPart: m_value.ident = CSSValueMediaSlider; break; case MediaSliderThumbPart: m_value.ident = CSSValueMediaSliderthumb; break; - case MediaTimelineContainerPart: - m_value.ident = CSSValueMediaTimelineContainer; + case MediaControlsBackgroundPart: + m_value.ident = CSSValueMediaControlsBackground; break; case MediaCurrentTimePart: m_value.ident = CSSValueMediaCurrentTimeDisplay; diff --git a/src/3rdparty/webkit/WebCore/css/CSSRule.idl b/src/3rdparty/webkit/WebCore/css/CSSRule.idl index f13f293..bc57e55 100644 --- a/src/3rdparty/webkit/WebCore/css/CSSRule.idl +++ b/src/3rdparty/webkit/WebCore/css/CSSRule.idl @@ -22,6 +22,7 @@ module css { // Introduced in DOM Level 2: interface [ + CustomToJS, GenerateConstructor, Polymorphic, InterfaceUUID=548139b4-31ab-4978-b1d5-cfcfdfbaea0e, diff --git a/src/3rdparty/webkit/WebCore/css/CSSSelector.cpp b/src/3rdparty/webkit/WebCore/css/CSSSelector.cpp index 17fbd64..5429c16 100644 --- a/src/3rdparty/webkit/WebCore/css/CSSSelector.cpp +++ b/src/3rdparty/webkit/WebCore/css/CSSSelector.cpp @@ -107,6 +107,9 @@ void CSSSelector::extractPseudoType() const DEFINE_STATIC_LOCAL(AtomicString, mediaControlsTimeline, ("-webkit-media-controls-timeline")); DEFINE_STATIC_LOCAL(AtomicString, mediaControlsSeekBackButton, ("-webkit-media-controls-seek-back-button")); DEFINE_STATIC_LOCAL(AtomicString, mediaControlsSeekForwardButton, ("-webkit-media-controls-seek-forward-button")); + DEFINE_STATIC_LOCAL(AtomicString, mediaControlsRewindButton, ("-webkit-media-controls-rewind-button")); + DEFINE_STATIC_LOCAL(AtomicString, mediaControlsReturnToRealtimeButton, ("-webkit-media-controls-return-to-realtime-button")); + DEFINE_STATIC_LOCAL(AtomicString, mediaControlsStatusDisplay, ("-webkit-media-controls-status-display")); DEFINE_STATIC_LOCAL(AtomicString, mediaControlsFullscreenButton, ("-webkit-media-controls-fullscreen-button")); DEFINE_STATIC_LOCAL(AtomicString, mediaControlsTimelineContainer, ("-webkit-media-controls-timeline-container")); DEFINE_STATIC_LOCAL(AtomicString, mediaControlsCurrentTimeDisplay, ("-webkit-media-controls-current-time-display")); @@ -236,6 +239,15 @@ void CSSSelector::extractPseudoType() const } else if (m_value == mediaControlsSeekForwardButton) { m_pseudoType = PseudoMediaControlsSeekForwardButton; element = true; + } else if (m_value == mediaControlsRewindButton) { + m_pseudoType = PseudoMediaControlsRewindButton; + element = true; + } else if (m_value == mediaControlsReturnToRealtimeButton) { + m_pseudoType = PseudoMediaControlsReturnToRealtimeButton; + element = true; + } else if (m_value == mediaControlsStatusDisplay) { + m_pseudoType = PseudoMediaControlsStatusDisplay; + element = true; } else if (m_value == mediaControlsFullscreenButton) { m_pseudoType = PseudoMediaControlsFullscreenButton; element = true; diff --git a/src/3rdparty/webkit/WebCore/css/CSSSelector.h b/src/3rdparty/webkit/WebCore/css/CSSSelector.h index 728c34d..b24f057 100644 --- a/src/3rdparty/webkit/WebCore/css/CSSSelector.h +++ b/src/3rdparty/webkit/WebCore/css/CSSSelector.h @@ -173,6 +173,9 @@ namespace WebCore { PseudoMediaControlsTimeline, PseudoMediaControlsSeekBackButton, PseudoMediaControlsSeekForwardButton, + PseudoMediaControlsRewindButton, + PseudoMediaControlsReturnToRealtimeButton, + PseudoMediaControlsStatusDisplay, PseudoMediaControlsFullscreenButton }; diff --git a/src/3rdparty/webkit/WebCore/css/CSSStyleSelector.cpp b/src/3rdparty/webkit/WebCore/css/CSSStyleSelector.cpp index ce4c343..d782d38 100644 --- a/src/3rdparty/webkit/WebCore/css/CSSStyleSelector.cpp +++ b/src/3rdparty/webkit/WebCore/css/CSSStyleSelector.cpp @@ -526,7 +526,7 @@ static void loadFullDefaultStyle() } // Strict-mode rules. - String defaultRules = String(html4UserAgentStyleSheet, sizeof(html4UserAgentStyleSheet)) + RenderTheme::defaultTheme()->extraDefaultStyleSheet(); + String defaultRules = String(htmlUserAgentStyleSheet, sizeof(htmlUserAgentStyleSheet)) + RenderTheme::defaultTheme()->extraDefaultStyleSheet(); CSSStyleSheet* defaultSheet = parseUASheet(defaultRules); defaultStyle->addRulesFromSheet(defaultSheet, screenEval()); defaultPrintStyle->addRulesFromSheet(defaultSheet, printEval()); @@ -1405,6 +1405,22 @@ PassRefPtr<RenderStyle> CSSStyleSelector::pseudoStyleForElement(PseudoId pseudo, return m_style.release(); } +#if ENABLE(DATAGRID) + +PassRefPtr<RenderStyle> CSSStyleSelector::pseudoStyleForDataGridColumn(DataGridColumn*, RenderStyle*) +{ + // FIXME: Implement + return 0; +} + +PassRefPtr<RenderStyle> CSSStyleSelector::pseudoStyleForDataGridColumnHeader(DataGridColumn*, RenderStyle*) +{ + // FIXME: Implement + return 0; +} + +#endif + static void addIntrinsicMargins(RenderStyle* style) { // Intrinsic margin value. @@ -2481,6 +2497,15 @@ bool CSSStyleSelector::SelectorChecker::checkOneSelector(CSSSelector* sel, Eleme case CSSSelector::PseudoMediaControlsSeekForwardButton: dynamicPseudo = MEDIA_CONTROLS_SEEK_FORWARD_BUTTON; return true; + case CSSSelector::PseudoMediaControlsRewindButton: + dynamicPseudo = MEDIA_CONTROLS_REWIND_BUTTON; + return true; + case CSSSelector::PseudoMediaControlsReturnToRealtimeButton: + dynamicPseudo = MEDIA_CONTROLS_RETURN_TO_REALTIME_BUTTON; + return true; + case CSSSelector::PseudoMediaControlsStatusDisplay: + dynamicPseudo = MEDIA_CONTROLS_STATUS_DISPLAY; + return true; case CSSSelector::PseudoMediaControlsFullscreenButton: dynamicPseudo = MEDIA_CONTROLS_FULLSCREEN_BUTTON; return true; @@ -3413,7 +3438,7 @@ void CSSStyleSelector::applyProperty(int id, CSSValue *value) } int width = 0; - if (primitiveValue && primitiveValue->getIdent() == CSSValueNormal){ + if (primitiveValue && primitiveValue->getIdent() == CSSValueNormal) { width = 0; } else { if (!primitiveValue) @@ -4931,7 +4956,7 @@ void CSSStyleSelector::applyProperty(int id, CSSValue *value) int type = primitiveValue->primitiveType(); if (CSSPrimitiveValue::isUnitTypeLength(type)) l = Length(primitiveValue->computeLengthIntForLength(style(), zoomFactor), Fixed); - else if(type == CSSPrimitiveValue::CSS_PERCENTAGE) + else if (type == CSSPrimitiveValue::CSS_PERCENTAGE) l = Length(primitiveValue->getDoubleValue(), Percent); else return; @@ -4961,10 +4986,17 @@ void CSSStyleSelector::applyProperty(int id, CSSValue *value) m_style->setPerspective(0); return; } - - if (primitiveValue->primitiveType() != CSSPrimitiveValue::CSS_NUMBER) + + float perspectiveValue; + int type = primitiveValue->primitiveType(); + if (CSSPrimitiveValue::isUnitTypeLength(type)) + perspectiveValue = static_cast<float>(primitiveValue->computeLengthIntForLength(style(), zoomFactor)); + else if (type == CSSPrimitiveValue::CSS_NUMBER) { + // For backward compatibility, treat valueless numbers as px. + perspectiveValue = CSSPrimitiveValue::create(primitiveValue->getDoubleValue(), CSSPrimitiveValue::CSS_PX)->computeLengthFloat(style(), zoomFactor); + } else return; - float perspectiveValue = static_cast<float>(primitiveValue->getDoubleValue()); + if (perspectiveValue >= 0.0f) m_style->setPerspective(perspectiveValue); return; @@ -4994,7 +5026,7 @@ void CSSStyleSelector::applyProperty(int id, CSSValue *value) int type = primitiveValue->primitiveType(); if (CSSPrimitiveValue::isUnitTypeLength(type)) l = Length(primitiveValue->computeLengthIntForLength(style(), zoomFactor), Fixed); - else if(type == CSSPrimitiveValue::CSS_PERCENTAGE) + else if (type == CSSPrimitiveValue::CSS_PERCENTAGE) l = Length(primitiveValue->getDoubleValue(), Percent); else return; @@ -5718,7 +5750,7 @@ Color CSSStyleSelector::getColorFromPrimitiveValue(CSSPrimitiveValue* primitiveV } else if (ident == CSSValueWebkitActivelink) col = m_element->document()->activeLinkColor(); else if (ident == CSSValueWebkitFocusRingColor) - col = RenderTheme::defaultTheme()->focusRingColor(); + col = RenderTheme::focusRingColor(); else if (ident == CSSValueCurrentcolor) col = m_style->color(); else diff --git a/src/3rdparty/webkit/WebCore/css/CSSStyleSelector.h b/src/3rdparty/webkit/WebCore/css/CSSStyleSelector.h index 8dd36d7..c9df876 100644 --- a/src/3rdparty/webkit/WebCore/css/CSSStyleSelector.h +++ b/src/3rdparty/webkit/WebCore/css/CSSStyleSelector.h @@ -50,6 +50,7 @@ class CSSStyleSheet; class CSSValue; class CSSVariableDependentValue; class CSSVariablesRule; +class DataGridColumn; class Document; class Element; class Frame; @@ -89,6 +90,12 @@ public: PassRefPtr<RenderStyle> pseudoStyleForElement(PseudoId, Element*, RenderStyle* parentStyle = 0); +#if ENABLE(DATAGRID) + // Datagrid style computation (uses unique pseudo elements and structures) + PassRefPtr<RenderStyle> pseudoStyleForDataGridColumn(DataGridColumn*, RenderStyle* parentStyle); + PassRefPtr<RenderStyle> pseudoStyleForDataGridColumnHeader(DataGridColumn*, RenderStyle* parentStyle); +#endif + private: RenderStyle* locateSharedStyle(); Node* locateCousinList(Element* parent, unsigned depth = 1); diff --git a/src/3rdparty/webkit/WebCore/css/CSSValue.idl b/src/3rdparty/webkit/WebCore/css/CSSValue.idl index 875d12e..ee82b0c 100644 --- a/src/3rdparty/webkit/WebCore/css/CSSValue.idl +++ b/src/3rdparty/webkit/WebCore/css/CSSValue.idl @@ -21,6 +21,7 @@ module css { interface [ + CustomToJS, GenerateConstructor, Polymorphic, InterfaceUUID=9fd62a7b-539d-4500-bd6c-ec075abbc404, diff --git a/src/3rdparty/webkit/WebCore/css/CSSValueKeywords.in b/src/3rdparty/webkit/WebCore/css/CSSValueKeywords.in index 698dffe..dac7567 100644 --- a/src/3rdparty/webkit/WebCore/css/CSSValueKeywords.in +++ b/src/3rdparty/webkit/WebCore/css/CSSValueKeywords.in @@ -504,9 +504,11 @@ media-mute-button media-play-button media-seek-back-button media-seek-forward-button +media-rewind-button +media-return-to-realtime-button media-slider media-sliderthumb -media-timeline-container +media-controls-background media-current-time-display media-time-remaining-display menulist diff --git a/src/3rdparty/webkit/WebCore/css/MediaList.cpp b/src/3rdparty/webkit/WebCore/css/MediaList.cpp index 452345f..85cf590 100644 --- a/src/3rdparty/webkit/WebCore/css/MediaList.cpp +++ b/src/3rdparty/webkit/WebCore/css/MediaList.cpp @@ -139,7 +139,7 @@ void MediaList::deleteMedium(const String& oldMedium, ExceptionCode& ec) ec = NOT_FOUND_ERR; if (oldQuery) { - for(size_t i = 0; i < m_queries.size(); ++i) { + for (size_t i = 0; i < m_queries.size(); ++i) { MediaQuery* a = m_queries[i]; if (*a == *oldQuery) { m_queries.remove(i); diff --git a/src/3rdparty/webkit/WebCore/css/MediaQuery.h b/src/3rdparty/webkit/WebCore/css/MediaQuery.h index 0aa0da1..ff22d9a 100644 --- a/src/3rdparty/webkit/WebCore/css/MediaQuery.h +++ b/src/3rdparty/webkit/WebCore/css/MediaQuery.h @@ -34,8 +34,7 @@ namespace WebCore { class MediaQueryExp; -class MediaQuery -{ +class MediaQuery { public: enum Restrictor { Only, Not, None diff --git a/src/3rdparty/webkit/WebCore/css/MediaQueryEvaluator.cpp b/src/3rdparty/webkit/WebCore/css/MediaQueryEvaluator.cpp index c641dfd..16af981 100644 --- a/src/3rdparty/webkit/WebCore/css/MediaQueryEvaluator.cpp +++ b/src/3rdparty/webkit/WebCore/css/MediaQueryEvaluator.cpp @@ -162,7 +162,7 @@ bool MediaQueryEvaluator::eval(const MediaList* mediaList, CSSStyleSelector* sty static bool parseAspectRatio(CSSValue* value, int& h, int& v) { - if (value->isValueList()){ + if (value->isValueList()) { CSSValueList* valueList = static_cast<CSSValueList*>(value); if (valueList->length() == 3) { CSSValue* i0 = valueList->itemWithoutBoundsCheck(0); diff --git a/src/3rdparty/webkit/WebCore/css/MediaQueryEvaluator.h b/src/3rdparty/webkit/WebCore/css/MediaQueryEvaluator.h index 5ae8fec..404504b 100644 --- a/src/3rdparty/webkit/WebCore/css/MediaQueryEvaluator.h +++ b/src/3rdparty/webkit/WebCore/css/MediaQueryEvaluator.h @@ -49,8 +49,7 @@ class MediaQueryExp; * the device characteristics are not known. This can be used to prune the loading * of stylesheets to only those which are probable to match. */ -class MediaQueryEvaluator -{ +class MediaQueryEvaluator { public: /** Creates evaluator which evaluates only simple media queries * Evaluator returns true for "all", and returns value of \mediaFeatureResult diff --git a/src/3rdparty/webkit/WebCore/css/MediaQueryExp.h b/src/3rdparty/webkit/WebCore/css/MediaQueryExp.h index 3036d04..5ff4af3 100644 --- a/src/3rdparty/webkit/WebCore/css/MediaQueryExp.h +++ b/src/3rdparty/webkit/WebCore/css/MediaQueryExp.h @@ -36,8 +36,7 @@ namespace WebCore { class CSSParserValueList; -class MediaQueryExp -{ +class MediaQueryExp { public: MediaQueryExp(const AtomicString& mediaFeature, CSSParserValueList* values); ~MediaQueryExp(); @@ -46,7 +45,8 @@ public: CSSValue* value() const { return m_value.get(); } - bool operator==(const MediaQueryExp& other) const { + bool operator==(const MediaQueryExp& other) const + { return (other.m_mediaFeature == m_mediaFeature) && ((!other.m_value && !m_value) || (other.m_value && m_value && other.m_value->cssText() == m_value->cssText())); diff --git a/src/3rdparty/webkit/WebCore/css/StyleSheet.idl b/src/3rdparty/webkit/WebCore/css/StyleSheet.idl index 3a26f20..e4f4090 100644 --- a/src/3rdparty/webkit/WebCore/css/StyleSheet.idl +++ b/src/3rdparty/webkit/WebCore/css/StyleSheet.idl @@ -23,6 +23,7 @@ module stylesheets { // Introduced in DOM Level 2: interface [ CustomMarkFunction, + CustomToJS, GenerateConstructor, Polymorphic, InterfaceUUID=2bd2db5f-aaab-4422-96a0-e05455313f35, diff --git a/src/3rdparty/webkit/WebCore/css/WebKitCSSMatrix.h b/src/3rdparty/webkit/WebCore/css/WebKitCSSMatrix.h index 67ba113..56bf76b 100644 --- a/src/3rdparty/webkit/WebCore/css/WebKitCSSMatrix.h +++ b/src/3rdparty/webkit/WebCore/css/WebKitCSSMatrix.h @@ -149,7 +149,7 @@ protected: WebKitCSSMatrix(); WebKitCSSMatrix(const WebKitCSSMatrix&); WebKitCSSMatrix(const TransformationMatrix&); - WebKitCSSMatrix(const String&, ExceptionCode& ); + WebKitCSSMatrix(const String&, ExceptionCode&); TransformationMatrix m_matrix; }; diff --git a/src/3rdparty/webkit/WebCore/css/html4.css b/src/3rdparty/webkit/WebCore/css/html.css index dc1f608..8dad349 100644 --- a/src/3rdparty/webkit/WebCore/css/html4.css +++ b/src/3rdparty/webkit/WebCore/css/html.css @@ -610,8 +610,4 @@ iframe { border: 2px inset } -img, input[type=image], video, iframe, object, embed, applet { - overflow: hidden; /* Default to overflow:hidden so that border-radius clipping works on the foreground of these elements. */ -} - /* noscript is handled internally, as it depends on settings */ diff --git a/src/3rdparty/webkit/WebCore/css/mediaControls.css b/src/3rdparty/webkit/WebCore/css/mediaControls.css index 668458c..f9694f8 100644 --- a/src/3rdparty/webkit/WebCore/css/mediaControls.css +++ b/src/3rdparty/webkit/WebCore/css/mediaControls.css @@ -32,6 +32,7 @@ audio { audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel { display: -webkit-box; -webkit-box-orient: horizontal; + -webkit-box-align: center; -webkit-user-select: none; position: absolute; bottom: 0; @@ -61,7 +62,7 @@ audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-bu } audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container { - -webkit-appearance: media-timeline-container; + -webkit-appearance: media-controls-background; display: -webkit-box; -webkit-box-orient: horizontal; -webkit-box-align: center; @@ -102,6 +103,16 @@ audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls } audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button { + -webkit-appearance: media-fullscreen-button; + display: -webkit-box; + width: 16px; + height: 16px; +} + +audio::-webkit-media-controls-rewind-button, video::-webkit-media-controls-rewind-button { display: none; } +audio::-webkit-media-controls-return-to-realtime-button, video::-webkit-media-controls-return-to-realtime-button { + display: none; +} diff --git a/src/3rdparty/webkit/WebCore/css/mediaControlsQT.css b/src/3rdparty/webkit/WebCore/css/mediaControlsQT.css index 900dcf2..a9b7a5f 100644 --- a/src/3rdparty/webkit/WebCore/css/mediaControlsQT.css +++ b/src/3rdparty/webkit/WebCore/css/mediaControlsQT.css @@ -31,6 +31,7 @@ audio { audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel { /* In mediaControls.css */ + -webkit-appearance: media-controls-background; height: 25px; } @@ -39,50 +40,83 @@ video:-webkit-full-page-media::-webkit-media-controls-panel { } audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button { - -webkit-box-ordinal-group: 2; /* At the end of the controller bar */ - width: 30px; - height: 25px; + -webkit-box-ordinal-group: 2; /* Before the fullscreen button */ + width: 15px; + height: 14px; + margin-left: 2px; + margin-right: 8px; } audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button { - width: 30px; - height: 25px; + width: 16px; + height: 16px; + margin-left: 6px; + margin-right: 1px; } audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container { - height: 25px; + -webkit-appearance: none; + -webkit-box-orient: horizontal; + -webkit-box-align: center; + -webkit-box-pack: center; + -webkit-box-flex: 1; + text-align: right; + height: auto; } audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display { - -webkit-appearance: media-current-time-display; -webkit-user-select: none; - display: inline-block; + display: -webkit-box; + -webkit-box-flex: 0; + -webkit-box-pack: center; + -webkit-box-align: center; cursor: default; font: -webkit-small-control; - font-size: .09em; - text-align: center; + font-size: 9px; overflow: hidden; - line-height: 13px; - height: 14px; + height: 13px; width: 45px; + color: white; + text-shadow: black 0px 1px 1px; + + letter-spacing: normal; + word-spacing: normal; + line-height: normal; + text-transform: none; + text-indent: 0; + text-decoration: none; } audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display { - -webkit-appearance: media-time-remaining-display; -webkit-user-select: none; - display: inline-block; + display: -webkit-box; + -webkit-box-flex: 0; + -webkit-box-pack: center; + -webkit-box-align: center; cursor: default; font: -webkit-small-control; - font-size: .09em; - text-align: center; + font-size: 9px; overflow: hidden; - line-height: 13px; - height: 14px; + height: 13px; width: 45px; + color: white; + text-shadow: black 0px 1px 1px; + + letter-spacing: normal; + word-spacing: normal; + line-height: normal; + text-transform: none; + text-indent: 0; + text-decoration: none; } audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline { + display: -webkit-box; + -webkit-box-flex: 1; height: 13px; + padding: 0px; + margin: 0px; + margin-top: 4px; } audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button { @@ -96,5 +130,50 @@ audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls } audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button { + width: 16px; + height: 16px; + margin-left: 7px; + margin-right: 7px; + -webkit-box-ordinal-group: 3; /* At the very end */ +} + +audio::-webkit-media-controls-rewind-button, video::-webkit-media-controls-rewind-button { + display: -webkit-box; + -webkit-appearance: media-rewind-button; + width: 18px; + height: 18px; + margin-bottom: 1px; + margin-left: 6px; + margin-right: 2px; +} + +audio::-webkit-media-controls-return-to-realtime-button, video::-webkit-media-controls-return-to-realtime-button { display: none; + -webkit-appearance: media-return-to-realtime-button; + width: 16px; + height: 11px; + margin-left: 6px; + margin-right: 2px; +} + +audio::-webkit-media-controls-status-display, video::-webkit-media-controls-status-display { + -webkit-user-select: none; + cursor: default; + display: -webkit-box; + -webkit-box-flex: 1; + font: -webkit-small-control; + color: white; + font-size: 10px; + line-height: 13px; + overflow: hidden; + text-shadow: black 0px 1px 1px; + margin-left: 10px; + margin-right: 10px; + + letter-spacing: normal; + word-spacing: normal; + line-height: normal; + text-transform: none; + text-indent: 0; + text-decoration: none; } diff --git a/src/3rdparty/webkit/WebCore/css/themeWin.css b/src/3rdparty/webkit/WebCore/css/themeWin.css index 421fed0..a0170ac 100644 --- a/src/3rdparty/webkit/WebCore/css/themeWin.css +++ b/src/3rdparty/webkit/WebCore/css/themeWin.css @@ -29,7 +29,7 @@ */ /* These styles override the default styling for HTML elements as defined in - WebCore/css/html4.css. So far we have used this file exclusively for + WebCore/css/html.css. So far we have used this file exclusively for making our form elements match Firefox's. */ input:not([type]), diff --git a/src/3rdparty/webkit/WebCore/dom/Comment.h b/src/3rdparty/webkit/WebCore/dom/Comment.h index f5f1810..d00ba62 100644 --- a/src/3rdparty/webkit/WebCore/dom/Comment.h +++ b/src/3rdparty/webkit/WebCore/dom/Comment.h @@ -29,8 +29,7 @@ namespace WebCore { -class Comment : public CharacterData -{ +class Comment : public CharacterData { public: Comment(Document*, const String &_text); Comment(Document*); diff --git a/src/3rdparty/webkit/WebCore/dom/ContainerNode.cpp b/src/3rdparty/webkit/WebCore/dom/ContainerNode.cpp index 20cc7a3..2d79156 100644 --- a/src/3rdparty/webkit/WebCore/dom/ContainerNode.cpp +++ b/src/3rdparty/webkit/WebCore/dom/ContainerNode.cpp @@ -600,6 +600,8 @@ void ContainerNode::insertedIntoDocument() void ContainerNode::removedFromDocument() { Node::removedFromDocument(); + if (document()->cssTarget() == this) + document()->setCSSTarget(0); setInDocument(false); removedFromTree(false); for (Node* child = m_firstChild; child; child = child->nextSibling()) diff --git a/src/3rdparty/webkit/WebCore/dom/Document.cpp b/src/3rdparty/webkit/WebCore/dom/Document.cpp index 3d01c80..3ee00ad 100644 --- a/src/3rdparty/webkit/WebCore/dom/Document.cpp +++ b/src/3rdparty/webkit/WebCore/dom/Document.cpp @@ -1663,7 +1663,8 @@ void Document::implicitClose() } frame()->loader()->checkCallImplicitClose(); - + RenderObject* renderObject = renderer(); + // We used to force a synchronous display and flush here. This really isn't // necessary and can in fact be actively harmful if pages are loading at a rate of > 60fps // (if your platform is syncing flushes and limiting them to 60fps). @@ -1672,13 +1673,18 @@ void Document::implicitClose() updateStyleIfNeeded(); // Always do a layout after loading if needed. - if (view() && renderer() && (!renderer()->firstChild() || renderer()->needsLayout())) + if (view() && renderObject && (!renderObject->firstChild() || renderObject->needsLayout())) view()->layout(); } #if PLATFORM(MAC) - if (f && renderer() && this == topDocument() && AXObjectCache::accessibilityEnabled()) - axObjectCache()->postNotification(renderer(), "AXLoadComplete", true); + if (f && renderObject && this == topDocument() && AXObjectCache::accessibilityEnabled()) + // The AX cache may have been cleared at this point, but we need to make sure it contains an + // AX object to send the notification to. getOrCreate will make sure that an valid AX object + // exists in the cache (we ignore the return value because we don't need it here). This is + // only safe to call when a layout is not in progress, so it can not be used in postNotification. + axObjectCache()->getOrCreate(renderObject); + axObjectCache()->postNotification(renderObject, "AXLoadComplete", true); #endif #if ENABLE(SVG) @@ -2598,7 +2604,7 @@ bool Document::setFocusedNode(PassRefPtr<Node> newFocusedNode) else view()->setFocus(); } - } + } #if PLATFORM(MAC) && !PLATFORM(CHROMIUM) if (!focusChangeBlocked && m_focusedNode && AXObjectCache::accessibilityEnabled()) @@ -4354,19 +4360,19 @@ void Document::parseDNSPrefetchControlHeader(const String& dnsPrefetchControl) void Document::reportException(const String& errorMessage, int lineNumber, const String& sourceURL) { if (DOMWindow* window = domWindow()) - window->console()->addMessage(JSMessageSource, ErrorMessageLevel, errorMessage, lineNumber, sourceURL); + window->console()->addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, errorMessage, lineNumber, sourceURL); } -void Document::addMessage(MessageDestination destination, MessageSource source, MessageLevel level, const String& message, unsigned lineNumber, const String& sourceURL) +void Document::addMessage(MessageDestination destination, MessageSource source, MessageType type, MessageLevel level, const String& message, unsigned lineNumber, const String& sourceURL) { switch (destination) { case InspectorControllerDestination: if (page()) - page()->inspectorController()->addMessageToConsole(source, level, message, lineNumber, sourceURL); + page()->inspectorController()->addMessageToConsole(source, type, level, message, lineNumber, sourceURL); return; case ConsoleDestination: if (DOMWindow* window = domWindow()) - window->console()->addMessage(source, level, message, lineNumber, sourceURL); + window->console()->addMessage(source, type, level, message, lineNumber, sourceURL); return; } ASSERT_NOT_REACHED(); diff --git a/src/3rdparty/webkit/WebCore/dom/Document.h b/src/3rdparty/webkit/WebCore/dom/Document.h index 92865f4..82f0455 100644 --- a/src/3rdparty/webkit/WebCore/dom/Document.h +++ b/src/3rdparty/webkit/WebCore/dom/Document.h @@ -224,7 +224,7 @@ public: } virtual PassRefPtr<Element> createElement(const AtomicString& tagName, ExceptionCode&); - PassRefPtr<DocumentFragment> createDocumentFragment (); + PassRefPtr<DocumentFragment> createDocumentFragment(); PassRefPtr<Text> createTextNode(const String& data); PassRefPtr<Comment> createComment(const String& data); PassRefPtr<CDATASection> createCDATASection(const String& data, ExceptionCode&); @@ -403,7 +403,7 @@ public: PassRefPtr<CSSStyleDeclaration> createCSSStyleDeclaration(); PassRefPtr<EditingText> createEditingTextNode(const String&); - virtual void recalcStyle( StyleChange = NoChange ); + virtual void recalcStyle(StyleChange = NoChange); virtual void updateStyleIfNeeded(); void updateLayout(); void updateLayoutIgnorePendingStylesheets(); @@ -787,7 +787,7 @@ public: void parseDNSPrefetchControlHeader(const String&); virtual void reportException(const String& errorMessage, int lineNumber, const String& sourceURL); - virtual void addMessage(MessageDestination, MessageSource, MessageLevel, const String& message, unsigned lineNumber, const String& sourceURL); + virtual void addMessage(MessageDestination, MessageSource, MessageType, MessageLevel, const String& message, unsigned lineNumber, const String& sourceURL); virtual void resourceRetrievedByXMLHttpRequest(unsigned long identifier, const ScriptString& sourceString); virtual void scriptImported(unsigned long, const String&); virtual void postTask(PassRefPtr<Task>); // Executes the task on context's thread asynchronously. @@ -990,7 +990,7 @@ public: void setDashboardRegionsDirty(bool f) { m_dashboardRegionsDirty = f; } bool dashboardRegionsDirty() const { return m_dashboardRegionsDirty; } bool hasDashboardRegions () const { return m_hasDashboardRegions; } - void setHasDashboardRegions (bool f) { m_hasDashboardRegions = f; } + void setHasDashboardRegions(bool f) { m_hasDashboardRegions = f; } const Vector<DashboardRegionValue>& dashboardRegions() const; void setDashboardRegions(const Vector<DashboardRegionValue>&); #endif diff --git a/src/3rdparty/webkit/WebCore/dom/Document.idl b/src/3rdparty/webkit/WebCore/dom/Document.idl index ac6dd0e..ad41057 100644 --- a/src/3rdparty/webkit/WebCore/dom/Document.idl +++ b/src/3rdparty/webkit/WebCore/dom/Document.idl @@ -21,8 +21,8 @@ module core { interface [ + CustomToJS, GenerateConstructor, - GenerateToJS, GenerateNativeConverter, CustomMarkFunction, InlineGetOwnPropertySlot, diff --git a/src/3rdparty/webkit/WebCore/dom/DocumentFragment.cpp b/src/3rdparty/webkit/WebCore/dom/DocumentFragment.cpp index 40be64d..7a6174f 100644 --- a/src/3rdparty/webkit/WebCore/dom/DocumentFragment.cpp +++ b/src/3rdparty/webkit/WebCore/dom/DocumentFragment.cpp @@ -34,7 +34,7 @@ DocumentFragment::DocumentFragment(Document *doc) : ContainerNode(doc) String DocumentFragment::nodeName() const { - return "#document-fragment"; + return "#document-fragment"; } Node::NodeType DocumentFragment::nodeType() const diff --git a/src/3rdparty/webkit/WebCore/dom/DocumentFragment.h b/src/3rdparty/webkit/WebCore/dom/DocumentFragment.h index 33a62be..46d8ecd 100644 --- a/src/3rdparty/webkit/WebCore/dom/DocumentFragment.h +++ b/src/3rdparty/webkit/WebCore/dom/DocumentFragment.h @@ -30,8 +30,7 @@ namespace WebCore { -class DocumentFragment : public ContainerNode -{ +class DocumentFragment : public ContainerNode { public: DocumentFragment(Document*); diff --git a/src/3rdparty/webkit/WebCore/dom/DynamicNodeList.cpp b/src/3rdparty/webkit/WebCore/dom/DynamicNodeList.cpp index eeb9833..892a5e7 100644 --- a/src/3rdparty/webkit/WebCore/dom/DynamicNodeList.cpp +++ b/src/3rdparty/webkit/WebCore/dom/DynamicNodeList.cpp @@ -30,7 +30,7 @@ namespace WebCore { DynamicNodeList::DynamicNodeList(PassRefPtr<Node> rootNode) : m_rootNode(rootNode) - , m_caches(new Caches) + , m_caches(Caches::create()) , m_ownsCaches(true) { m_rootNode->registerDynamicNodeList(this); @@ -42,16 +42,11 @@ DynamicNodeList::DynamicNodeList(PassRefPtr<Node> rootNode, DynamicNodeList::Cac , m_ownsCaches(false) { m_rootNode->registerDynamicNodeList(this); - ++caches->refCount; } DynamicNodeList::~DynamicNodeList() { m_rootNode->unregisterDynamicNodeList(this); - if (m_ownsCaches) - delete m_caches; - else - --m_caches->refCount; } unsigned DynamicNodeList::length() const @@ -158,10 +153,14 @@ DynamicNodeList::Caches::Caches() : lastItem(0) , isLengthCacheValid(false) , isItemCacheValid(false) - , refCount(0) { } +PassRefPtr<DynamicNodeList::Caches> DynamicNodeList::Caches::create() +{ + return adoptRef(new Caches()); +} + void DynamicNodeList::Caches::reset() { lastItem = 0; diff --git a/src/3rdparty/webkit/WebCore/dom/DynamicNodeList.h b/src/3rdparty/webkit/WebCore/dom/DynamicNodeList.h index ee9832d..f97c38f 100644 --- a/src/3rdparty/webkit/WebCore/dom/DynamicNodeList.h +++ b/src/3rdparty/webkit/WebCore/dom/DynamicNodeList.h @@ -37,8 +37,8 @@ namespace WebCore { class DynamicNodeList : public NodeList { public: - struct Caches { - Caches(); + struct Caches : RefCounted<Caches> { + static PassRefPtr<Caches> create(); void reset(); unsigned cachedLength; @@ -46,7 +46,8 @@ namespace WebCore { unsigned lastItemOffset; bool isLengthCacheValid : 1; bool isItemCacheValid : 1; - unsigned refCount; + protected: + Caches(); }; virtual ~DynamicNodeList(); @@ -68,7 +69,7 @@ namespace WebCore { virtual bool nodeMatches(Element*) const = 0; RefPtr<Node> m_rootNode; - mutable Caches* m_caches; + mutable RefPtr<Caches> m_caches; bool m_ownsCaches; private: diff --git a/src/3rdparty/webkit/WebCore/dom/EditingText.h b/src/3rdparty/webkit/WebCore/dom/EditingText.h index 3dcd8c1..e114786 100644 --- a/src/3rdparty/webkit/WebCore/dom/EditingText.h +++ b/src/3rdparty/webkit/WebCore/dom/EditingText.h @@ -29,8 +29,7 @@ namespace WebCore { -class EditingText : public Text -{ +class EditingText : public Text { public: EditingText(Document *impl, const String &text); EditingText(Document *impl); diff --git a/src/3rdparty/webkit/WebCore/dom/Element.cpp b/src/3rdparty/webkit/WebCore/dom/Element.cpp index d858888..0e6c245 100644 --- a/src/3rdparty/webkit/WebCore/dom/Element.cpp +++ b/src/3rdparty/webkit/WebCore/dom/Element.cpp @@ -761,6 +761,34 @@ void Element::detach() ContainerNode::detach(); } +bool Element::pseudoStyleCacheIsInvalid(const RenderStyle* currentStyle, RenderStyle* newStyle) +{ + ASSERT(currentStyle = renderStyle()); + + if (!renderer() || !currentStyle) + return false; + + RenderStyle::PseudoStyleCache pseudoStyleCache; + currentStyle->getPseudoStyleCache(pseudoStyleCache); + size_t cacheSize = pseudoStyleCache.size(); + for (size_t i = 0; i < cacheSize; ++i) { + RefPtr<RenderStyle> newPseudoStyle; + PseudoId pseudoId = pseudoStyleCache[i]->styleType(); + if (pseudoId == FIRST_LINE || pseudoId == FIRST_LINE_INHERITED) + newPseudoStyle = renderer()->uncachedFirstLineStyle(newStyle); + else + newPseudoStyle = renderer()->getUncachedPseudoStyle(pseudoId, newStyle, newStyle); + + if (*newPseudoStyle != *pseudoStyleCache[i]) { + if (pseudoId < FIRST_INTERNAL_PSEUDOID) + newStyle->setHasPseudoStyle(pseudoId); + newStyle->addCachedPseudoStyle(newPseudoStyle); + return true; + } + } + return false; +} + void Element::recalcStyle(StyleChange change) { RenderStyle* currentStyle = renderStyle(); @@ -811,7 +839,7 @@ void Element::recalcStyle(StyleChange change) newStyle->setChildrenAffectedByDirectAdjacentRules(); } - if (ch != NoChange) { + if (ch != NoChange || pseudoStyleCacheIsInvalid(currentStyle, newStyle.get())) { setRenderStyle(newStyle); } else if (needsStyleRecalc() && (styleChangeType() != AnimationStyleChange) && (document()->usesSiblingRules() || document()->usesDescendantRules())) { // Although no change occurred, we use the new style so that the cousin style sharing code won't get @@ -981,7 +1009,7 @@ void Element::dispatchAttrAdditionEvent(Attribute*) return; ExceptionCode ec = 0; dispatchEvent(new MutationEvent(DOMAttrModifiedEvent, true, false, attr, attr->value(), - attr->value(),document()->attrName(attr->id()), MutationEvent::ADDITION), ec); + attr->value(), document()->attrName(attr->id()), MutationEvent::ADDITION), ec); #endif } diff --git a/src/3rdparty/webkit/WebCore/dom/Element.h b/src/3rdparty/webkit/WebCore/dom/Element.h index dfa2c0e..b0bbeb3 100644 --- a/src/3rdparty/webkit/WebCore/dom/Element.h +++ b/src/3rdparty/webkit/WebCore/dom/Element.h @@ -170,6 +170,8 @@ public: virtual void formatForDebugger(char* buffer, unsigned length) const; #endif + bool pseudoStyleCacheIsInvalid(const RenderStyle* currentStyle, RenderStyle* newStyle); + String innerText() const; String outerText() const; diff --git a/src/3rdparty/webkit/WebCore/dom/Event.idl b/src/3rdparty/webkit/WebCore/dom/Event.idl index 5ac9e0c..75b6b5f 100644 --- a/src/3rdparty/webkit/WebCore/dom/Event.idl +++ b/src/3rdparty/webkit/WebCore/dom/Event.idl @@ -22,6 +22,7 @@ module events { // Introduced in DOM Level 2: interface [ + CustomToJS, GenerateConstructor, NoStaticTables, Polymorphic, diff --git a/src/3rdparty/webkit/WebCore/dom/EventTarget.cpp b/src/3rdparty/webkit/WebCore/dom/EventTarget.cpp index 06cea07..437f5ba 100644 --- a/src/3rdparty/webkit/WebCore/dom/EventTarget.cpp +++ b/src/3rdparty/webkit/WebCore/dom/EventTarget.cpp @@ -95,6 +95,13 @@ WorkerContext* EventTarget::toWorkerContext() } #endif +#if ENABLE(SHARED_WORKERS) +SharedWorker* EventTarget::toSharedWorker() +{ + return 0; +} +#endif + #ifndef NDEBUG void forbidEventDispatch() { diff --git a/src/3rdparty/webkit/WebCore/dom/EventTarget.h b/src/3rdparty/webkit/WebCore/dom/EventTarget.h index 662902e..73a32e3 100644 --- a/src/3rdparty/webkit/WebCore/dom/EventTarget.h +++ b/src/3rdparty/webkit/WebCore/dom/EventTarget.h @@ -36,6 +36,7 @@ namespace WebCore { + class AbstractWorker; class AtomicString; class DOMApplicationCache; class DOMWindow; @@ -45,6 +46,7 @@ namespace WebCore { class Node; class SVGElementInstance; class ScriptExecutionContext; + class SharedWorker; class Worker; class WorkerContext; class XMLHttpRequest; @@ -70,6 +72,10 @@ namespace WebCore { virtual WorkerContext* toWorkerContext(); #endif +#if ENABLE(SHARED_WORKERS) + virtual SharedWorker* toSharedWorker(); +#endif + virtual ScriptExecutionContext* scriptExecutionContext() const = 0; virtual void addEventListener(const AtomicString& eventType, PassRefPtr<EventListener>, bool useCapture) = 0; diff --git a/src/3rdparty/webkit/WebCore/dom/HTMLAllCollection.idl b/src/3rdparty/webkit/WebCore/dom/HTMLAllCollection.idl new file mode 100644 index 0000000..dee365f --- /dev/null +++ b/src/3rdparty/webkit/WebCore/dom/HTMLAllCollection.idl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2008, 2009 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +module html { + + // This interface is used for undetectable HTMLCollections. + // An undetectable HTMLCollection behaves like an HTMLCollection + // when used, but the 'typeof' operator returns undefined and + // ToBoolean returns false. + interface HTMLAllCollection : HTMLCollection { + }; + +} diff --git a/src/3rdparty/webkit/WebCore/dom/MessageChannel.cpp b/src/3rdparty/webkit/WebCore/dom/MessageChannel.cpp index ac0a4ab..73c016f 100644 --- a/src/3rdparty/webkit/WebCore/dom/MessageChannel.cpp +++ b/src/3rdparty/webkit/WebCore/dom/MessageChannel.cpp @@ -28,7 +28,7 @@ #include "MessageChannel.h" #include "MessagePort.h" -#include "PlatformMessagePortChannel.h" +#include "MessagePortChannel.h" namespace WebCore { @@ -36,7 +36,7 @@ MessageChannel::MessageChannel(ScriptExecutionContext* context) : m_port1(MessagePort::create(*context)) , m_port2(MessagePort::create(*context)) { - PlatformMessagePortChannel::createChannel(m_port1.get(), m_port2.get()); + MessagePortChannel::createChannel(m_port1.get(), m_port2.get()); } MessageChannel::~MessageChannel() diff --git a/src/3rdparty/webkit/WebCore/dom/MessagePortChannel.cpp b/src/3rdparty/webkit/WebCore/dom/MessagePortChannel.cpp index 768d4f4..05134c0 100644 --- a/src/3rdparty/webkit/WebCore/dom/MessagePortChannel.cpp +++ b/src/3rdparty/webkit/WebCore/dom/MessagePortChannel.cpp @@ -30,14 +30,8 @@ #include "config.h" #include "MessagePortChannel.h" -#include "PlatformMessagePortChannel.h" - namespace WebCore { -PassOwnPtr<MessagePortChannel> MessagePortChannel::create(PassRefPtr<PlatformMessagePortChannel> channel) -{ - return new MessagePortChannel(channel); -} PassOwnPtr<MessagePortChannel::EventData> MessagePortChannel::EventData::create(const String& message, PassOwnPtr<MessagePortChannel> channel) { @@ -50,15 +44,4 @@ MessagePortChannel::EventData::EventData(const String& message, PassOwnPtr<Messa { } -MessagePortChannel::MessagePortChannel(PassRefPtr<PlatformMessagePortChannel> channel) - : m_channel(channel) -{ -} - -MessagePortChannel::~MessagePortChannel() -{ - // Make sure we close our platform channel when the base is freed, to keep the channel objects from leaking. - m_channel->close(); -} - } // namespace WebCore diff --git a/src/3rdparty/webkit/WebCore/dom/MessagePortChannel.h b/src/3rdparty/webkit/WebCore/dom/MessagePortChannel.h index 15b3d16..3841020 100644 --- a/src/3rdparty/webkit/WebCore/dom/MessagePortChannel.h +++ b/src/3rdparty/webkit/WebCore/dom/MessagePortChannel.h @@ -50,6 +50,8 @@ namespace WebCore { // It acts as a wrapper around the platform-dependent PlatformMessagePortChannel implementation which ensures that the platform-dependent close() method is invoked before destruction. class MessagePortChannel : Noncopyable { public: + static void createChannel(PassRefPtr<MessagePort>, PassRefPtr<MessagePort>); + // Creates a new wrapper for the passed channel. static PassOwnPtr<MessagePortChannel> create(PassRefPtr<PlatformMessagePortChannel>); diff --git a/src/3rdparty/webkit/WebCore/dom/NamedAttrMap.cpp b/src/3rdparty/webkit/WebCore/dom/NamedAttrMap.cpp index f3e9bb2..fe631c8 100644 --- a/src/3rdparty/webkit/WebCore/dom/NamedAttrMap.cpp +++ b/src/3rdparty/webkit/WebCore/dom/NamedAttrMap.cpp @@ -164,7 +164,7 @@ PassRefPtr<Node> NamedNodeMap::removeNamedItem(const QualifiedName& name, Except return r.release(); } -PassRefPtr<Node> NamedNodeMap::item (unsigned index) const +PassRefPtr<Node> NamedNodeMap::item(unsigned index) const { if (index >= length()) return 0; diff --git a/src/3rdparty/webkit/WebCore/dom/Node.cpp b/src/3rdparty/webkit/WebCore/dom/Node.cpp index 3ddf4c0..192462d 100644 --- a/src/3rdparty/webkit/WebCore/dom/Node.cpp +++ b/src/3rdparty/webkit/WebCore/dom/Node.cpp @@ -495,7 +495,7 @@ void Node::setTabIndexExplicitly(short i) String Node::nodeValue() const { - return String(); + return String(); } void Node::setNodeValue(const String& /*nodeValue*/, ExceptionCode& ec) @@ -517,7 +517,7 @@ PassRefPtr<NodeList> Node::childNodes() document()->addNodeListCache(); } - return ChildNodeList::create(this, &data->nodeLists()->m_childNodeListCaches); + return ChildNodeList::create(this, data->nodeLists()->m_childNodeListCaches.get()); } Node *Node::lastDescendant() const @@ -777,7 +777,7 @@ unsigned Node::nodeIndex() const { Node *_tempNode = previousSibling(); unsigned count=0; - for( count=0; _tempNode; count++ ) + for ( count=0; _tempNode; count++ ) _tempNode = _tempNode->previousSibling(); return count; } @@ -1500,9 +1500,9 @@ PassRefPtr<NodeList> Node::getElementsByTagNameNS(const AtomicString& namespaceU pair<NodeListsNodeData::TagCacheMap::iterator, bool> result = data->nodeLists()->m_tagNodeListCaches.add(QualifiedName(nullAtom, localNameAtom, namespaceURI), 0); if (result.second) - result.first->second = new DynamicNodeList::Caches; + result.first->second = DynamicNodeList::Caches::create(); - return TagNodeList::create(this, namespaceURI.isEmpty() ? nullAtom : namespaceURI, localNameAtom, result.first->second); + return TagNodeList::create(this, namespaceURI.isEmpty() ? nullAtom : namespaceURI, localNameAtom, result.first->second.get()); } PassRefPtr<NodeList> Node::getElementsByName(const String& elementName) @@ -1515,9 +1515,9 @@ PassRefPtr<NodeList> Node::getElementsByName(const String& elementName) pair<NodeListsNodeData::CacheMap::iterator, bool> result = data->nodeLists()->m_nameNodeListCaches.add(elementName, 0); if (result.second) - result.first->second = new DynamicNodeList::Caches; + result.first->second = DynamicNodeList::Caches::create(); - return NameNodeList::create(this, elementName, result.first->second); + return NameNodeList::create(this, elementName, result.first->second.get()); } PassRefPtr<NodeList> Node::getElementsByClassName(const String& classNames) @@ -1530,9 +1530,9 @@ PassRefPtr<NodeList> Node::getElementsByClassName(const String& classNames) pair<NodeListsNodeData::CacheMap::iterator, bool> result = data->nodeLists()->m_classNodeListCaches.add(classNames, 0); if (result.second) - result.first->second = new DynamicNodeList::Caches; + result.first->second = DynamicNodeList::Caches::create(); - return ClassNodeList::create(this, classNames, result.first->second); + return ClassNodeList::create(this, classNames, result.first->second.get()); } template <typename Functor> @@ -2185,7 +2185,7 @@ void Node::formatForDebugger(char* buffer, unsigned length) const void NodeListsNodeData::invalidateCaches() { - m_childNodeListCaches.reset(); + m_childNodeListCaches->reset(); TagCacheMap::const_iterator tagCachesEnd = m_tagNodeListCaches.end(); for (TagCacheMap::const_iterator it = m_tagNodeListCaches.begin(); it != tagCachesEnd; ++it) it->second->reset(); @@ -2208,24 +2208,24 @@ bool NodeListsNodeData::isEmpty() const if (!m_listsWithCaches.isEmpty()) return false; - if (m_childNodeListCaches.refCount) + if (m_childNodeListCaches->refCount()) return false; TagCacheMap::const_iterator tagCachesEnd = m_tagNodeListCaches.end(); for (TagCacheMap::const_iterator it = m_tagNodeListCaches.begin(); it != tagCachesEnd; ++it) { - if (it->second->refCount) + if (it->second->refCount()) return false; } CacheMap::const_iterator classCachesEnd = m_classNodeListCaches.end(); for (CacheMap::const_iterator it = m_classNodeListCaches.begin(); it != classCachesEnd; ++it) { - if (it->second->refCount) + if (it->second->refCount()) return false; } CacheMap::const_iterator nameCachesEnd = m_nameNodeListCaches.end(); for (CacheMap::const_iterator it = m_nameNodeListCaches.begin(); it != nameCachesEnd; ++it) { - if (it->second->refCount) + if (it->second->refCount()) return false; } diff --git a/src/3rdparty/webkit/WebCore/dom/Node.idl b/src/3rdparty/webkit/WebCore/dom/Node.idl index bcfb226..1e31aea 100644 --- a/src/3rdparty/webkit/WebCore/dom/Node.idl +++ b/src/3rdparty/webkit/WebCore/dom/Node.idl @@ -23,9 +23,9 @@ module core { interface [ CustomMarkFunction, CustomPushEventHandlerScope, + CustomToJS, GenerateConstructor, GenerateNativeConverter, - GenerateToJS, InlineGetOwnPropertySlot, Polymorphic, InterfaceUUID=84BA0D7A-7E3E-4a7b-B6FB-7653E8FB54ED, diff --git a/src/3rdparty/webkit/WebCore/dom/NodeRareData.h b/src/3rdparty/webkit/WebCore/dom/NodeRareData.h index ae0e516..7740344 100644 --- a/src/3rdparty/webkit/WebCore/dom/NodeRareData.h +++ b/src/3rdparty/webkit/WebCore/dom/NodeRareData.h @@ -37,24 +37,18 @@ struct NodeListsNodeData { typedef HashSet<DynamicNodeList*> NodeListSet; NodeListSet m_listsWithCaches; - DynamicNodeList::Caches m_childNodeListCaches; + RefPtr<DynamicNodeList::Caches> m_childNodeListCaches; - typedef HashMap<String, DynamicNodeList::Caches*> CacheMap; + typedef HashMap<String, RefPtr<DynamicNodeList::Caches> > CacheMap; CacheMap m_classNodeListCaches; CacheMap m_nameNodeListCaches; - typedef HashMap<QualifiedName, DynamicNodeList::Caches*> TagCacheMap; + typedef HashMap<QualifiedName, RefPtr<DynamicNodeList::Caches> > TagCacheMap; TagCacheMap m_tagNodeListCaches; - static PassOwnPtr<NodeListsNodeData> create() { - return new NodeListsNodeData; - } - - ~NodeListsNodeData() + static PassOwnPtr<NodeListsNodeData> create() { - deleteAllValues(m_classNodeListCaches); - deleteAllValues(m_nameNodeListCaches); - deleteAllValues(m_tagNodeListCaches); + return new NodeListsNodeData; } void invalidateCaches(); @@ -62,7 +56,10 @@ struct NodeListsNodeData { bool isEmpty() const; private: - NodeListsNodeData() { } + NodeListsNodeData() + : m_childNodeListCaches(DynamicNodeList::Caches::create()) + { + } }; class NodeRareData { diff --git a/src/3rdparty/webkit/WebCore/dom/Notation.h b/src/3rdparty/webkit/WebCore/dom/Notation.h index 6f5bf3f..2bd5363 100644 --- a/src/3rdparty/webkit/WebCore/dom/Notation.h +++ b/src/3rdparty/webkit/WebCore/dom/Notation.h @@ -29,8 +29,7 @@ namespace WebCore { -class Notation : public ContainerNode -{ +class Notation : public ContainerNode { public: Notation(Document*); Notation(Document*, const String& name, const String& publicId, const String& systemId); diff --git a/src/3rdparty/webkit/WebCore/dom/ProcessingInstruction.h b/src/3rdparty/webkit/WebCore/dom/ProcessingInstruction.h index 3f42ed4..d133019 100644 --- a/src/3rdparty/webkit/WebCore/dom/ProcessingInstruction.h +++ b/src/3rdparty/webkit/WebCore/dom/ProcessingInstruction.h @@ -33,8 +33,7 @@ namespace WebCore { class StyleSheet; class CSSStyleSheet; -class ProcessingInstruction : public ContainerNode, private CachedResourceClient -{ +class ProcessingInstruction : public ContainerNode, private CachedResourceClient { public: ProcessingInstruction(Document*); ProcessingInstruction(Document*, const String& target, const String& data); diff --git a/src/3rdparty/webkit/WebCore/dom/Range.cpp b/src/3rdparty/webkit/WebCore/dom/Range.cpp index 4fb1164..e7fd8a2 100644 --- a/src/3rdparty/webkit/WebCore/dom/Range.cpp +++ b/src/3rdparty/webkit/WebCore/dom/Range.cpp @@ -725,7 +725,7 @@ PassRefPtr<DocumentFragment> Range::processContents(ActionType action, Exception for (; leftParent != commonRoot; leftParent = leftParent->parentNode()) { if (action == EXTRACT_CONTENTS || action == CLONE_CONTENTS) { RefPtr<Node> leftContentsParent = leftParent->cloneNode(false); - leftContentsParent->appendChild(leftContents,ec); + leftContentsParent->appendChild(leftContents, ec); leftContents = leftContentsParent; } @@ -733,11 +733,11 @@ PassRefPtr<DocumentFragment> Range::processContents(ActionType action, Exception for (; n; n = next) { next = n->nextSibling(); if (action == EXTRACT_CONTENTS) - leftContents->appendChild(n,ec); // will remove n from leftParent + leftContents->appendChild(n, ec); // will remove n from leftParent else if (action == CLONE_CONTENTS) - leftContents->appendChild(n->cloneNode(true),ec); + leftContents->appendChild(n->cloneNode(true), ec); else - leftParent->removeChild(n,ec); + leftParent->removeChild(n, ec); } n = leftParent->nextSibling(); } @@ -795,7 +795,7 @@ PassRefPtr<DocumentFragment> Range::processContents(ActionType action, Exception for (; rightParent != commonRoot; rightParent = rightParent->parentNode()) { if (action == EXTRACT_CONTENTS || action == CLONE_CONTENTS) { RefPtr<Node> rightContentsParent = rightParent->cloneNode(false); - rightContentsParent->appendChild(rightContents,ec); + rightContentsParent->appendChild(rightContents, ec); rightContents = rightContentsParent; } Node* prev; diff --git a/src/3rdparty/webkit/WebCore/dom/ScriptExecutionContext.h b/src/3rdparty/webkit/WebCore/dom/ScriptExecutionContext.h index 7b2f36a..3f8febc 100644 --- a/src/3rdparty/webkit/WebCore/dom/ScriptExecutionContext.h +++ b/src/3rdparty/webkit/WebCore/dom/ScriptExecutionContext.h @@ -64,7 +64,7 @@ namespace WebCore { SecurityOrigin* securityOrigin() const { return m_securityOrigin.get(); } virtual void reportException(const String& errorMessage, int lineNumber, const String& sourceURL) = 0; - virtual void addMessage(MessageDestination, MessageSource, MessageLevel, const String& message, unsigned lineNumber, const String& sourceURL) = 0; + virtual void addMessage(MessageDestination, MessageSource, MessageType, MessageLevel, const String& message, unsigned lineNumber, const String& sourceURL) = 0; virtual void resourceRetrievedByXMLHttpRequest(unsigned long identifier, const ScriptString& sourceString) = 0; virtual void scriptImported(unsigned long, const String&) = 0; diff --git a/src/3rdparty/webkit/WebCore/dom/SelectElement.cpp b/src/3rdparty/webkit/WebCore/dom/SelectElement.cpp index 1831f3a..7552c56 100644 --- a/src/3rdparty/webkit/WebCore/dom/SelectElement.cpp +++ b/src/3rdparty/webkit/WebCore/dom/SelectElement.cpp @@ -867,6 +867,19 @@ void SelectElement::accessKeySetSelectedIndex(SelectElementData& data, Element* scrollToSelection(data, element); } +unsigned SelectElement::optionCount(const SelectElementData& data, const Element* element) +{ + unsigned options = 0; + + const Vector<Element*>& items = data.listItems(element); + for (unsigned i = 0; i < items.size(); ++i) { + if (isOptionElement(items[i])) + ++options; + } + + return options; +} + // SelectElementData SelectElementData::SelectElementData() : m_multiple(false) diff --git a/src/3rdparty/webkit/WebCore/dom/SelectElement.h b/src/3rdparty/webkit/WebCore/dom/SelectElement.h index 29187ae..4cc76a0 100644 --- a/src/3rdparty/webkit/WebCore/dom/SelectElement.h +++ b/src/3rdparty/webkit/WebCore/dom/SelectElement.h @@ -95,7 +95,8 @@ protected: static void typeAheadFind(SelectElementData&, Element*, KeyboardEvent*); static void insertedIntoTree(SelectElementData&, Element*); static void accessKeySetSelectedIndex(SelectElementData&, Element*, int index); - + static unsigned optionCount(const SelectElementData&, const Element*); + private: static void menuListDefaultEventHandler(SelectElementData&, Element*, Event*, HTMLFormElement*); static void listBoxDefaultEventHandler(SelectElementData&, Element*, Event*, HTMLFormElement*); diff --git a/src/3rdparty/webkit/WebCore/dom/StyledElement.cpp b/src/3rdparty/webkit/WebCore/dom/StyledElement.cpp index 8ddfd31..c22ecf9 100644 --- a/src/3rdparty/webkit/WebCore/dom/StyledElement.cpp +++ b/src/3rdparty/webkit/WebCore/dom/StyledElement.cpp @@ -280,10 +280,11 @@ CSSStyleDeclaration* StyledElement::style() return getInlineStyleDecl(); } -static inline int toHex(UChar c) { +static inline int toHex(UChar c) +{ return ((c >= '0' && c <= '9') ? (c - '0') : ((c >= 'a' && c <= 'f') ? (c - 'a' + 10) - : (( c >= 'A' && c <= 'F') ? (c - 'A' + 10) + : ((c >= 'A' && c <= 'F') ? (c - 'A' + 10) : -1))); } diff --git a/src/3rdparty/webkit/WebCore/dom/XMLTokenizerLibxml2.cpp b/src/3rdparty/webkit/WebCore/dom/XMLTokenizerLibxml2.cpp index 4098eaa..95f63e9 100644 --- a/src/3rdparty/webkit/WebCore/dom/XMLTokenizerLibxml2.cpp +++ b/src/3rdparty/webkit/WebCore/dom/XMLTokenizerLibxml2.cpp @@ -195,7 +195,8 @@ private: }; struct PendingStartElementNSCallback : public PendingCallback { - virtual ~PendingStartElementNSCallback() { + virtual ~PendingStartElementNSCallback() + { xmlFree(xmlLocalName); xmlFree(xmlPrefix); xmlFree(xmlURI); @@ -208,7 +209,8 @@ private: xmlFree(attributes); } - virtual void call(XMLTokenizer* tokenizer) { + virtual void call(XMLTokenizer* tokenizer) + { tokenizer->startElementNs(xmlLocalName, xmlPrefix, xmlURI, nb_namespaces, const_cast<const xmlChar**>(namespaces), nb_attributes, nb_defaulted, const_cast<const xmlChar**>(attributes)); @@ -312,7 +314,7 @@ private: struct PendingErrorCallback: public PendingCallback { virtual ~PendingErrorCallback() { - free (message); + free(message); } virtual void call(XMLTokenizer* tokenizer) @@ -344,7 +346,8 @@ class OffsetBuffer { public: OffsetBuffer(const Vector<char>& b) : m_buffer(b), m_currentOffset(0) { } - int readOutBytes(char* outputBuffer, unsigned askedToRead) { + int readOutBytes(char* outputBuffer, unsigned askedToRead) + { unsigned bytesLeft = m_buffer.size() - m_currentOffset; unsigned lenToCopy = min(askedToRead, bytesLeft); if (lenToCopy) { @@ -668,7 +671,7 @@ typedef struct _xmlSAX2Namespace xmlSAX2Namespace; static inline void handleElementNamespaces(Element* newElement, const xmlChar** libxmlNamespaces, int nb_namespaces, ExceptionCode& ec) { xmlSAX2Namespace* namespaces = reinterpret_cast<xmlSAX2Namespace*>(libxmlNamespaces); - for(int i = 0; i < nb_namespaces; i++) { + for (int i = 0; i < nb_namespaces; i++) { String namespaceQName = "xmlns"; String namespaceURI = toString(namespaces[i].uri); if (namespaces[i].prefix) @@ -691,7 +694,7 @@ typedef struct _xmlSAX2Attributes xmlSAX2Attributes; static inline void handleElementAttributes(Element* newElement, const xmlChar** libxmlAttributes, int nb_attributes, ExceptionCode& ec) { xmlSAX2Attributes* attributes = reinterpret_cast<xmlSAX2Attributes*>(libxmlAttributes); - for(int i = 0; i < nb_attributes; i++) { + for (int i = 0; i < nb_attributes; i++) { String attrLocalName = toString(attributes[i].localname); int valueLength = (int) (attributes[i].end - attributes[i].value); String attrValue = toString(attributes[i].value, valueLength); @@ -1407,7 +1410,7 @@ static void attributesStartElementNsHandler(void* closure, const xmlChar* xmlLoc state->gotAttributes = true; xmlSAX2Attributes* attributes = reinterpret_cast<xmlSAX2Attributes*>(libxmlAttributes); - for(int i = 0; i < nb_attributes; i++) { + for (int i = 0; i < nb_attributes; i++) { String attrLocalName = toString(attributes[i].localname); int valueLength = (int) (attributes[i].end - attributes[i].value); String attrValue = toString(attributes[i].value, valueLength); diff --git a/src/3rdparty/webkit/WebCore/dom/XMLTokenizerQt.cpp b/src/3rdparty/webkit/WebCore/dom/XMLTokenizerQt.cpp index 3173708..16c637f 100644 --- a/src/3rdparty/webkit/WebCore/dom/XMLTokenizerQt.cpp +++ b/src/3rdparty/webkit/WebCore/dom/XMLTokenizerQt.cpp @@ -66,8 +66,7 @@ using namespace std; namespace WebCore { #if QT_VERSION >= 0x040400 -class EntityResolver : public QXmlStreamEntityResolver -{ +class EntityResolver : public QXmlStreamEntityResolver { virtual QString resolveUndeclaredEntity(const QString &name); }; @@ -354,7 +353,7 @@ static void attributesStartElementNsHandler(AttributeParseState* state, const QX state->gotAttributes = true; - for(int i = 0; i < attrs.count(); i++) { + for (int i = 0; i < attrs.count(); i++) { const QXmlStreamAttribute& attr = attrs[i]; String attrLocalName = attr.name(); String attrValue = attr.value(); @@ -540,7 +539,7 @@ void XMLTokenizer::parseStartElement() String prefix = prefixFromQName(m_stream.qualifiedName().toString()); if (m_parsingFragment && uri.isNull()) { - Q_ASSERT (prefix.isNull()); + Q_ASSERT(prefix.isNull()); uri = m_defaultNamespaceURI; } diff --git a/src/3rdparty/webkit/WebCore/dom/default/PlatformMessagePortChannel.cpp b/src/3rdparty/webkit/WebCore/dom/default/PlatformMessagePortChannel.cpp index 80ab7c8..d668703 100644 --- a/src/3rdparty/webkit/WebCore/dom/default/PlatformMessagePortChannel.cpp +++ b/src/3rdparty/webkit/WebCore/dom/default/PlatformMessagePortChannel.cpp @@ -37,6 +37,27 @@ namespace WebCore { // MessagePortChannel implementations - just delegate to the PlatformMessagePortChannel. +void MessagePortChannel::createChannel(PassRefPtr<MessagePort> port1, PassRefPtr<MessagePort> port2) +{ + PlatformMessagePortChannel::createChannel(port1, port2); +} + +PassOwnPtr<MessagePortChannel> MessagePortChannel::create(PassRefPtr<PlatformMessagePortChannel> channel) +{ + return new MessagePortChannel(channel); +} + +MessagePortChannel::MessagePortChannel(PassRefPtr<PlatformMessagePortChannel> channel) + : m_channel(channel) +{ +} + +MessagePortChannel::~MessagePortChannel() +{ + // Make sure we close our platform channel when the base is freed, to keep the channel objects from leaking. + m_channel->close(); +} + bool MessagePortChannel::entangleIfOpen(MessagePort* port) { return m_channel->entangleIfOpen(port); diff --git a/src/3rdparty/webkit/WebCore/editing/ApplyStyleCommand.cpp b/src/3rdparty/webkit/WebCore/editing/ApplyStyleCommand.cpp index 8d0312b..998a1e2 100644 --- a/src/3rdparty/webkit/WebCore/editing/ApplyStyleCommand.cpp +++ b/src/3rdparty/webkit/WebCore/editing/ApplyStyleCommand.cpp @@ -787,7 +787,7 @@ void ApplyStyleCommand::applyInlineStyle(CSSMutableStyleDeclaration *style) styleWithoutEmbedding->removeProperty(CSSPropertyUnicodeBidi); styleWithoutEmbedding->removeProperty(CSSPropertyDirection); removeInlineStyle(styleWithoutEmbedding, removeStart, end); - } else + } else removeInlineStyle(style, removeStart, end); start = startPosition(); @@ -857,7 +857,7 @@ void ApplyStyleCommand::applyInlineStyle(CSSMutableStyleDeclaration *style) styleWithoutEmbedding->removeProperty(CSSPropertyUnicodeBidi); styleWithoutEmbedding->removeProperty(CSSPropertyDirection); applyInlineStyleToRange(styleWithoutEmbedding.get(), start, end); - } else + } else applyInlineStyleToRange(style, start, end); // Remove dummy style spans created by splitting text elements. diff --git a/src/3rdparty/webkit/WebCore/editing/CompositeEditCommand.cpp b/src/3rdparty/webkit/WebCore/editing/CompositeEditCommand.cpp index 8e4f950..9737e92 100644 --- a/src/3rdparty/webkit/WebCore/editing/CompositeEditCommand.cpp +++ b/src/3rdparty/webkit/WebCore/editing/CompositeEditCommand.cpp @@ -1041,6 +1041,8 @@ Position CompositeEditCommand::positionAvoidingSpecialElementBoundary(const Posi // to determine if the split is necessary. Returns the last split node. PassRefPtr<Node> CompositeEditCommand::splitTreeToNode(Node* start, Node* end, bool splitAncestor) { + ASSERT(start != end); + RefPtr<Node> node; for (node = start; node && node->parent() != end; node = node->parent()) { VisiblePosition positionInParent(Position(node->parent(), 0), DOWNSTREAM); diff --git a/src/3rdparty/webkit/WebCore/editing/DeleteSelectionCommand.cpp b/src/3rdparty/webkit/WebCore/editing/DeleteSelectionCommand.cpp index 5a0d8fc..284f073 100644 --- a/src/3rdparty/webkit/WebCore/editing/DeleteSelectionCommand.cpp +++ b/src/3rdparty/webkit/WebCore/editing/DeleteSelectionCommand.cpp @@ -365,7 +365,7 @@ void DeleteSelectionCommand::removeNode(PassRefPtr<Node> node) updateLayout(); RenderObject *r = node->renderer(); if (r && r->isTableCell() && static_cast<RenderTableCell*>(r)->contentHeight() <= 0) - insertBlockPlaceholder(Position(node,0)); + insertBlockPlaceholder(Position(node, 0)); return; } diff --git a/src/3rdparty/webkit/WebCore/editing/Editor.cpp b/src/3rdparty/webkit/WebCore/editing/Editor.cpp index 2ad5cce..b62ded7 100644 --- a/src/3rdparty/webkit/WebCore/editing/Editor.cpp +++ b/src/3rdparty/webkit/WebCore/editing/Editor.cpp @@ -655,9 +655,9 @@ PassRefPtr<Node> Editor::increaseSelectionListLevelOrdered() if (!canEditRichly() || m_frame->selection()->isNone()) return 0; - PassRefPtr<Node> newList = IncreaseSelectionListLevelCommand::increaseSelectionListLevelOrdered(m_frame->document()); + RefPtr<Node> newList = IncreaseSelectionListLevelCommand::increaseSelectionListLevelOrdered(m_frame->document()); revealSelectionAfterEditingOperation(); - return newList; + return newList.release(); } PassRefPtr<Node> Editor::increaseSelectionListLevelUnordered() @@ -665,9 +665,9 @@ PassRefPtr<Node> Editor::increaseSelectionListLevelUnordered() if (!canEditRichly() || m_frame->selection()->isNone()) return 0; - PassRefPtr<Node> newList = IncreaseSelectionListLevelCommand::increaseSelectionListLevelUnordered(m_frame->document()); + RefPtr<Node> newList = IncreaseSelectionListLevelCommand::increaseSelectionListLevelUnordered(m_frame->document()); revealSelectionAfterEditingOperation(); - return newList; + return newList.release(); } void Editor::decreaseSelectionListLevel() @@ -1066,9 +1066,9 @@ void Editor::paste() void Editor::pasteAsPlainText() { - if (!canPaste()) + if (!canPaste()) return; - pasteAsPlainTextWithPasteboard(Pasteboard::generalPasteboard()); + pasteAsPlainTextWithPasteboard(Pasteboard::generalPasteboard()); } void Editor::performDelete() diff --git a/src/3rdparty/webkit/WebCore/editing/EditorCommand.cpp b/src/3rdparty/webkit/WebCore/editing/EditorCommand.cpp index ab62c09..5a189d4 100644 --- a/src/3rdparty/webkit/WebCore/editing/EditorCommand.cpp +++ b/src/3rdparty/webkit/WebCore/editing/EditorCommand.cpp @@ -1247,9 +1247,10 @@ static String valueForeColor(Frame* frame, Event*) // Map of functions -struct CommandEntry { const char* name; EditorInternalCommand command; }; static const CommandMap& createCommandMap() { + struct CommandEntry { const char* name; EditorInternalCommand command; }; + static const CommandEntry commands[] = { { "AlignCenter", { executeJustifyCenter, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } }, { "AlignJustified", { executeJustifyFull, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } }, diff --git a/src/3rdparty/webkit/WebCore/editing/IndentOutdentCommand.cpp b/src/3rdparty/webkit/WebCore/editing/IndentOutdentCommand.cpp index 3922367..890cff2 100644 --- a/src/3rdparty/webkit/WebCore/editing/IndentOutdentCommand.cpp +++ b/src/3rdparty/webkit/WebCore/editing/IndentOutdentCommand.cpp @@ -163,6 +163,12 @@ void IndentOutdentCommand::indentIntoBlockquote(const VisiblePosition& endOfCurr moveParagraph(startOfParagraph(endOfCurrentParagraph), endOfCurrentParagraph, VisiblePosition(Position(insertionPoint, 0)), true); } +bool IndentOutdentCommand::isAtUnsplittableElement(const Position& pos) const +{ + Node* node = pos.node(); + return node == editableRootForPosition(pos) || node == enclosingNodeOfType(pos, &isTableCell); +} + void IndentOutdentCommand::indentRegion() { VisibleSelection selection = selectionForParagraphIteration(endingSelection()); @@ -174,10 +180,10 @@ void IndentOutdentCommand::indentRegion() ASSERT(!startOfSelection.isNull()); ASSERT(!endOfSelection.isNull()); - // Special case empty root editable elements because there's nothing to split + // Special case empty unsplittable elements because there's nothing to split // and there's nothing to move. Position start = startOfSelection.deepEquivalent().downstream(); - if (start.node() == editableRootForPosition(start)) { + if (isAtUnsplittableElement(start)) { RefPtr<Element> blockquote = createIndentBlockquoteElement(document()); insertNodeAt(blockquote, start); RefPtr<Element> placeholder = createBreakElement(document()); diff --git a/src/3rdparty/webkit/WebCore/editing/IndentOutdentCommand.h b/src/3rdparty/webkit/WebCore/editing/IndentOutdentCommand.h index 419f832f..a10b89d 100644 --- a/src/3rdparty/webkit/WebCore/editing/IndentOutdentCommand.h +++ b/src/3rdparty/webkit/WebCore/editing/IndentOutdentCommand.h @@ -46,6 +46,9 @@ private: virtual void doApply(); virtual EditAction editingAction() const { return m_typeOfAction == Indent ? EditActionIndent : EditActionOutdent; } + // FIXME: Does this belong in htmlediting.cpp? + bool isAtUnsplittableElement(const Position&) const; + void indentRegion(); void outdentRegion(); void outdentParagraph(); diff --git a/src/3rdparty/webkit/WebCore/editing/SelectionController.cpp b/src/3rdparty/webkit/WebCore/editing/SelectionController.cpp index 9bb68ad..54f09cd 100644 --- a/src/3rdparty/webkit/WebCore/editing/SelectionController.cpp +++ b/src/3rdparty/webkit/WebCore/editing/SelectionController.cpp @@ -250,7 +250,8 @@ void SelectionController::willBeModified(EAlteration alter, EDirection direction } } -TextDirection SelectionController::directionOfEnclosingBlock() { +TextDirection SelectionController::directionOfEnclosingBlock() +{ Node* n = m_sel.extent().node(); Node* enclosingBlockNode = enclosingBlock(n); if (!enclosingBlockNode) diff --git a/src/3rdparty/webkit/WebCore/editing/SmartReplaceICU.cpp b/src/3rdparty/webkit/WebCore/editing/SmartReplaceICU.cpp index 18be647..9acd350 100644 --- a/src/3rdparty/webkit/WebCore/editing/SmartReplaceICU.cpp +++ b/src/3rdparty/webkit/WebCore/editing/SmartReplaceICU.cpp @@ -37,7 +37,8 @@ namespace WebCore { -static void addAllCodePoints(USet* smartSet, const String& string) { +static void addAllCodePoints(USet* smartSet, const String& string) +{ const UChar* characters = string.characters(); for (size_t i = 0; i < string.length(); i++) uset_add(smartSet, characters[i]); diff --git a/src/3rdparty/webkit/WebCore/editing/TextIterator.cpp b/src/3rdparty/webkit/WebCore/editing/TextIterator.cpp index aee34df..a1b3bc5 100644 --- a/src/3rdparty/webkit/WebCore/editing/TextIterator.cpp +++ b/src/3rdparty/webkit/WebCore/editing/TextIterator.cpp @@ -42,6 +42,7 @@ #include "visible_units.h" #if USE(ICU_UNICODE) && !UCONFIG_NO_COLLATION +#include "TextBreakIteratorInternalICU.h" #include <unicode/usearch.h> #endif @@ -143,7 +144,7 @@ unsigned BitStack::size() const // -------- -static inline Node* parentOrShadowParent(Node* node) +static inline Node* parentCrossingShadowBoundaries(Node* node) { if (Node* parent = node->parentNode()) return parent; @@ -155,20 +156,50 @@ static inline Node* parentOrShadowParent(Node* node) static unsigned depthCrossingShadowBoundaries(Node* node) { unsigned depth = 0; - for (Node* parent = parentOrShadowParent(node); parent; parent = parentOrShadowParent(parent)) + for (Node* parent = parentCrossingShadowBoundaries(node); parent; parent = parentCrossingShadowBoundaries(parent)) ++depth; return depth; } #endif +// This function is like Range::pastLastNode, except for the fact that it can climb up out of shadow trees. +static Node* nextInPreOrderCrossingShadowBoundaries(Node* rangeEndContainer, int rangeEndOffset) +{ + if (!rangeEndContainer) + return 0; + if (rangeEndOffset >= 0 && !rangeEndContainer->offsetInCharacters()) { + if (Node* next = rangeEndContainer->childNode(rangeEndOffset)) + return next; + } + for (Node* node = rangeEndContainer; node; node = parentCrossingShadowBoundaries(node)) { + if (Node* next = node->nextSibling()) + return next; + } + return 0; +} + +static Node* previousInPostOrderCrossingShadowBoundaries(Node* rangeStartContainer, int rangeStartOffset) +{ + if (!rangeStartContainer) + return 0; + if (rangeStartOffset > 0 && !rangeStartContainer->offsetInCharacters()) { + if (Node* previous = rangeStartContainer->childNode(rangeStartOffset - 1)) + return previous; + } + for (Node* node = rangeStartContainer; node; node = parentCrossingShadowBoundaries(node)) { + if (Node* previous = node->previousSibling()) + return previous; + } + return 0; +} + +// -------- + static inline bool fullyClipsContents(Node* node) { RenderObject* renderer = node->renderer(); - if (!renderer || !renderer->isBox()) - return false; - RenderStyle* style = renderer->style(); - if (style->overflowX() == OVISIBLE && style->overflowY() == OVISIBLE) + if (!renderer || !renderer->isBox() || !renderer->hasOverflowClip()) return false; return toRenderBox(renderer)->size().isEmpty(); } @@ -195,7 +226,7 @@ static void setUpFullyClippedStack(BitStack& stack, Node* node) { // Put the nodes in a vector so we can iterate in reverse order. Vector<Node*, 100> ancestry; - for (Node* parent = parentOrShadowParent(node); parent; parent = parentOrShadowParent(parent)) + for (Node* parent = parentCrossingShadowBoundaries(node); parent; parent = parentCrossingShadowBoundaries(parent)) ancestry.append(parent); // Call pushFullyClippedState on each node starting with the earliest ancestor. @@ -265,7 +296,7 @@ TextIterator::TextIterator(const Range* r, bool emitCharactersBetweenAllVisibleP m_handledChildren = false; // calculate first out of bounds node - m_pastEndNode = r->pastLastNode(); + m_pastEndNode = nextInPreOrderCrossingShadowBoundaries(endContainer, endOffset); // initialize node processing state m_needAnotherNewline = false; @@ -352,14 +383,14 @@ void TextIterator::advance() next = m_node->nextSibling(); if (!next) { bool pastEnd = m_node->traverseNextNode() == m_pastEndNode; - Node* parentNode = parentOrShadowParent(m_node); + Node* parentNode = parentCrossingShadowBoundaries(m_node); while (!next && parentNode) { if ((pastEnd && parentNode == m_endContainer) || m_endContainer->isDescendantOf(parentNode)) return; bool haveRenderer = m_node->renderer(); m_node = parentNode; m_fullyClippedStack.pop(); - parentNode = parentOrShadowParent(m_node); + parentNode = parentCrossingShadowBoundaries(m_node); if (haveRenderer) exitNode(); if (m_positionNode) { @@ -883,14 +914,14 @@ Node* TextIterator::node() const // -------- -SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator() : m_positionNode(0) +SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator() + : m_positionNode(0) { } SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator(const Range* r) + : m_positionNode(0) { - m_positionNode = 0; - if (!r) return; @@ -932,15 +963,8 @@ SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator(const Range* r) m_lastTextNode = 0; m_lastCharacter = '\n'; - - if (startOffset == 0 || !startNode->firstChild()) { - m_pastStartNode = startNode->previousSibling(); - while (!m_pastStartNode && startNode->parentNode()) { - startNode = startNode->parentNode(); - m_pastStartNode = startNode->previousSibling(); - } - } else - m_pastStartNode = startNode->childNode(startOffset - 1); + + m_pastStartNode = previousInPostOrderCrossingShadowBoundaries(startNode, startOffset); advance(); } @@ -987,7 +1011,7 @@ void SimplifiedBackwardsTextIterator::advance() // Exit all other containers. next = m_node->previousSibling(); while (!next) { - Node* parentNode = parentOrShadowParent(m_node); + Node* parentNode = parentCrossingShadowBoundaries(m_node); if (!parentNode) break; m_node = parentNode; @@ -1053,26 +1077,22 @@ bool SimplifiedBackwardsTextIterator::handleNonTextNode() { // We can use a linefeed in place of a tab because this simple iterator is only used to // find boundaries, not actual content. A linefeed breaks words, sentences, and paragraphs. - if (shouldEmitNewlineForNode(m_node) || - shouldEmitNewlineAfterNode(m_node) || - shouldEmitTabBeforeNode(m_node)) { + if (shouldEmitNewlineForNode(m_node) || shouldEmitNewlineAfterNode(m_node) || shouldEmitTabBeforeNode(m_node)) { unsigned index = m_node->nodeIndex(); - // The start of this emitted range is wrong, ensuring correctness would require - // VisiblePositions and so would be slow. previousBoundary expects this. + // The start of this emitted range is wrong. Ensuring correctness would require + // VisiblePositions and so would be slow. previousBoundary expects this. emitCharacter('\n', m_node->parentNode(), index + 1, index + 1); } - return true; } void SimplifiedBackwardsTextIterator::exitNode() { - if (shouldEmitNewlineForNode(m_node) || - shouldEmitNewlineBeforeNode(m_node) || - shouldEmitTabBeforeNode(m_node)) - // The start of this emitted range is wrong, ensuring correctness would require - // VisiblePositions and so would be slow. previousBoundary expects this. + if (shouldEmitNewlineForNode(m_node) || shouldEmitNewlineBeforeNode(m_node) || shouldEmitTabBeforeNode(m_node)) { + // The start of this emitted range is wrong. Ensuring correctness would require + // VisiblePositions and so would be slow. previousBoundary expects this. emitCharacter('\n', m_node, 0, 0); + } } void SimplifiedBackwardsTextIterator::emitCharacter(UChar c, Node* node, int startOffset, int endOffset) @@ -1386,13 +1406,9 @@ static UStringSearch* createSearcher() // Provide a non-empty pattern and non-empty text so usearch_open will not fail, // but it doesn't matter exactly what it is, since we don't perform any searches // without setting both the pattern and the text. - - // Pass empty string for the locale for now to get the Unicode Collation Algorithm, - // rather than something locale-specific. - UErrorCode status = U_ZERO_ERROR; - UStringSearch* searcher = usearch_open(&newlineCharacter, 1, &newlineCharacter, 1, "", 0, &status); - ASSERT(status == U_ZERO_ERROR); + UStringSearch* searcher = usearch_open(&newlineCharacter, 1, &newlineCharacter, 1, currentSearchLocaleID(), 0, &status); + ASSERT(status == U_ZERO_ERROR || status == U_USING_FALLBACK_WARNING); return searcher; } diff --git a/src/3rdparty/webkit/WebCore/editing/gtk/SelectionControllerGtk.cpp b/src/3rdparty/webkit/WebCore/editing/gtk/SelectionControllerGtk.cpp index c21c45a..f3bd4bc 100644 --- a/src/3rdparty/webkit/WebCore/editing/gtk/SelectionControllerGtk.cpp +++ b/src/3rdparty/webkit/WebCore/editing/gtk/SelectionControllerGtk.cpp @@ -30,11 +30,11 @@ namespace WebCore { void SelectionController::notifyAccessibilityForSelectionChange() { if (AXObjectCache::accessibilityEnabled() && m_sel.start().isNotNull() && m_sel.end().isNotNull()) { - RenderObject* focusedNode = m_sel.start().node()->renderer(); + RenderObject* focusedNode = m_sel.end().node()->renderer(); AccessibilityObject* accessibilityObject = m_frame->document()->axObjectCache()->getOrCreate(focusedNode); AtkObject* wrapper = accessibilityObject->wrapper(); if (ATK_IS_TEXT(wrapper)) { - g_signal_emit_by_name(wrapper, "text-caret-moved", m_sel.start().computeOffsetInContainerNode()); + g_signal_emit_by_name(wrapper, "text-caret-moved", m_sel.end().computeOffsetInContainerNode()); if (m_sel.isRange()) g_signal_emit_by_name(wrapper, "text-selection-changed"); diff --git a/src/3rdparty/webkit/WebCore/generated/ArrayPrototype.lut.h b/src/3rdparty/webkit/WebCore/generated/ArrayPrototype.lut.h index da67f2e..d3d7d36 100644 --- a/src/3rdparty/webkit/WebCore/generated/ArrayPrototype.lut.h +++ b/src/3rdparty/webkit/WebCore/generated/ArrayPrototype.lut.h @@ -29,6 +29,6 @@ static const struct HashTableValue arrayTableValues[22] = { { 0, 0, 0, 0 } }; -extern const struct HashTable arrayTable = +extern JSC_CONST_HASHTABLE HashTable arrayTable = { 65, 63, arrayTableValues, 0 }; } // namespace diff --git a/src/3rdparty/webkit/WebCore/generated/CSSGrammar.cpp b/src/3rdparty/webkit/WebCore/generated/CSSGrammar.cpp index 4c85bee..1c2da06 100644 --- a/src/3rdparty/webkit/WebCore/generated/CSSGrammar.cpp +++ b/src/3rdparty/webkit/WebCore/generated/CSSGrammar.cpp @@ -1,24 +1,23 @@ -/* A Bison parser, made by GNU Bison 2.3. */ -/* Skeleton implementation for Bison's Yacc-like parsers in C +/* A Bison parser, made by GNU Bison 2.4.1. */ - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +/* Skeleton implementation for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -29,7 +28,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -47,7 +46,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.3" +#define YYBISON_VERSION "2.4.1" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -55,159 +54,28 @@ /* Pure parsers. */ #define YYPURE 1 +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + /* Using locations. */ #define YYLSP_NEEDED 0 /* Substitute the variable and function names. */ -#define yyparse cssyyparse -#define yylex cssyylex -#define yyerror cssyyerror -#define yylval cssyylval -#define yychar cssyychar -#define yydebug cssyydebug -#define yynerrs cssyynerrs - - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - TOKEN_EOF = 0, - LOWEST_PREC = 258, - UNIMPORTANT_TOK = 259, - WHITESPACE = 260, - SGML_CD = 261, - INCLUDES = 262, - DASHMATCH = 263, - BEGINSWITH = 264, - ENDSWITH = 265, - CONTAINS = 266, - STRING = 267, - IDENT = 268, - NTH = 269, - HEX = 270, - IDSEL = 271, - IMPORT_SYM = 272, - PAGE_SYM = 273, - MEDIA_SYM = 274, - FONT_FACE_SYM = 275, - CHARSET_SYM = 276, - NAMESPACE_SYM = 277, - WEBKIT_RULE_SYM = 278, - WEBKIT_DECLS_SYM = 279, - WEBKIT_KEYFRAME_RULE_SYM = 280, - WEBKIT_KEYFRAMES_SYM = 281, - WEBKIT_VALUE_SYM = 282, - WEBKIT_MEDIAQUERY_SYM = 283, - WEBKIT_SELECTOR_SYM = 284, - WEBKIT_VARIABLES_SYM = 285, - WEBKIT_DEFINE_SYM = 286, - VARIABLES_FOR = 287, - WEBKIT_VARIABLES_DECLS_SYM = 288, - ATKEYWORD = 289, - IMPORTANT_SYM = 290, - MEDIA_ONLY = 291, - MEDIA_NOT = 292, - MEDIA_AND = 293, - QEMS = 294, - EMS = 295, - EXS = 296, - PXS = 297, - CMS = 298, - MMS = 299, - INS = 300, - PTS = 301, - PCS = 302, - DEGS = 303, - RADS = 304, - GRADS = 305, - TURNS = 306, - MSECS = 307, - SECS = 308, - HERZ = 309, - KHERZ = 310, - DIMEN = 311, - PERCENTAGE = 312, - FLOATTOKEN = 313, - INTEGER = 314, - URI = 315, - FUNCTION = 316, - NOTFUNCTION = 317, - UNICODERANGE = 318, - VARCALL = 319 - }; -#endif -/* Tokens. */ -#define TOKEN_EOF 0 -#define LOWEST_PREC 258 -#define UNIMPORTANT_TOK 259 -#define WHITESPACE 260 -#define SGML_CD 261 -#define INCLUDES 262 -#define DASHMATCH 263 -#define BEGINSWITH 264 -#define ENDSWITH 265 -#define CONTAINS 266 -#define STRING 267 -#define IDENT 268 -#define NTH 269 -#define HEX 270 -#define IDSEL 271 -#define IMPORT_SYM 272 -#define PAGE_SYM 273 -#define MEDIA_SYM 274 -#define FONT_FACE_SYM 275 -#define CHARSET_SYM 276 -#define NAMESPACE_SYM 277 -#define WEBKIT_RULE_SYM 278 -#define WEBKIT_DECLS_SYM 279 -#define WEBKIT_KEYFRAME_RULE_SYM 280 -#define WEBKIT_KEYFRAMES_SYM 281 -#define WEBKIT_VALUE_SYM 282 -#define WEBKIT_MEDIAQUERY_SYM 283 -#define WEBKIT_SELECTOR_SYM 284 -#define WEBKIT_VARIABLES_SYM 285 -#define WEBKIT_DEFINE_SYM 286 -#define VARIABLES_FOR 287 -#define WEBKIT_VARIABLES_DECLS_SYM 288 -#define ATKEYWORD 289 -#define IMPORTANT_SYM 290 -#define MEDIA_ONLY 291 -#define MEDIA_NOT 292 -#define MEDIA_AND 293 -#define QEMS 294 -#define EMS 295 -#define EXS 296 -#define PXS 297 -#define CMS 298 -#define MMS 299 -#define INS 300 -#define PTS 301 -#define PCS 302 -#define DEGS 303 -#define RADS 304 -#define GRADS 305 -#define TURNS 306 -#define MSECS 307 -#define SECS 308 -#define HERZ 309 -#define KHERZ 310 -#define DIMEN 311 -#define PERCENTAGE 312 -#define FLOATTOKEN 313 -#define INTEGER 314 -#define URI 315 -#define FUNCTION 316 -#define NOTFUNCTION 317 -#define UNICODERANGE 318 -#define VARCALL 319 - - +#define yyparse cssyyparse +#define yylex cssyylex +#define yyerror cssyyerror +#define yylval cssyylval +#define yychar cssyychar +#define yydebug cssyydebug +#define yynerrs cssyynerrs /* Copy the first part of user declarations. */ + +/* Line 189 of yacc.c */ #line 1 "../css/CSSGrammar.y" @@ -264,6 +132,9 @@ using namespace HTMLNames; +/* Line 189 of yacc.c */ +#line 137 "WebCore/tmp/../generated/CSSGrammar.tab.c" + /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 @@ -282,10 +153,88 @@ using namespace HTMLNames; # define YYTOKEN_TABLE 0 #endif + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + TOKEN_EOF = 0, + LOWEST_PREC = 258, + UNIMPORTANT_TOK = 259, + WHITESPACE = 260, + SGML_CD = 261, + INCLUDES = 262, + DASHMATCH = 263, + BEGINSWITH = 264, + ENDSWITH = 265, + CONTAINS = 266, + STRING = 267, + IDENT = 268, + NTH = 269, + HEX = 270, + IDSEL = 271, + IMPORT_SYM = 272, + PAGE_SYM = 273, + MEDIA_SYM = 274, + FONT_FACE_SYM = 275, + CHARSET_SYM = 276, + NAMESPACE_SYM = 277, + WEBKIT_RULE_SYM = 278, + WEBKIT_DECLS_SYM = 279, + WEBKIT_KEYFRAME_RULE_SYM = 280, + WEBKIT_KEYFRAMES_SYM = 281, + WEBKIT_VALUE_SYM = 282, + WEBKIT_MEDIAQUERY_SYM = 283, + WEBKIT_SELECTOR_SYM = 284, + WEBKIT_VARIABLES_SYM = 285, + WEBKIT_DEFINE_SYM = 286, + VARIABLES_FOR = 287, + WEBKIT_VARIABLES_DECLS_SYM = 288, + ATKEYWORD = 289, + IMPORTANT_SYM = 290, + MEDIA_ONLY = 291, + MEDIA_NOT = 292, + MEDIA_AND = 293, + QEMS = 294, + EMS = 295, + EXS = 296, + PXS = 297, + CMS = 298, + MMS = 299, + INS = 300, + PTS = 301, + PCS = 302, + DEGS = 303, + RADS = 304, + GRADS = 305, + TURNS = 306, + MSECS = 307, + SECS = 308, + HERZ = 309, + KHERZ = 310, + DIMEN = 311, + PERCENTAGE = 312, + FLOATTOKEN = 313, + INTEGER = 314, + URI = 315, + FUNCTION = 316, + NOTFUNCTION = 317, + UNICODERANGE = 318, + VARCALL = 319 + }; +#endif + + + #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 58 "../css/CSSGrammar.y" { + +/* Line 214 of yacc.c */ +#line 58 "../css/CSSGrammar.y" + bool boolean; char character; int integer; @@ -307,18 +256,21 @@ typedef union YYSTYPE WebKitCSSKeyframeRule* keyframeRule; WebKitCSSKeyframesRule* keyframesRule; float val; -} -/* Line 187 of yacc.c. */ -#line 313 "WebCore/tmp/../generated/CSSGrammar.tab.c" - YYSTYPE; + + + +/* Line 214 of yacc.c */ +#line 264 "WebCore/tmp/../generated/CSSGrammar.tab.c" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif - /* Copy the second part of user declarations. */ + +/* Line 264 of yacc.c */ #line 82 "../css/CSSGrammar.y" @@ -334,8 +286,8 @@ static int cssyylex(YYSTYPE* yylval, void* parser) -/* Line 216 of yacc.c. */ -#line 339 "WebCore/tmp/../generated/CSSGrammar.tab.c" +/* Line 264 of yacc.c */ +#line 291 "WebCore/tmp/../generated/CSSGrammar.tab.c" #ifdef short # undef short @@ -410,14 +362,14 @@ typedef short int yytype_int16; #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static int -YYID (int i) +YYID (int yyi) #else static int -YYID (i) - int i; +YYID (yyi) + int yyi; #endif { - return i; + return yyi; } #endif @@ -498,9 +450,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss; - YYSTYPE yyvs; - }; + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; +}; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) @@ -534,12 +486,12 @@ union yyalloc elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack) \ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ @@ -1558,17 +1510,20 @@ yy_symbol_print (yyoutput, yytype, yyvaluep) #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) #else static void -yy_stack_print (bottom, top) - yytype_int16 *bottom; - yytype_int16 *top; +yy_stack_print (yybottom, yytop) + yytype_int16 *yybottom; + yytype_int16 *yytop; #endif { YYFPRINTF (stderr, "Stack now"); - for (; bottom <= top; ++bottom) - YYFPRINTF (stderr, " %d", *bottom); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } YYFPRINTF (stderr, "\n"); } @@ -1602,11 +1557,11 @@ yy_reduce_print (yyvsp, yyrule) /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { - fprintf (stderr, " $%d = ", yyi + 1); + YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]) ); - fprintf (stderr, "\n"); + YYFPRINTF (stderr, "\n"); } } @@ -1886,10 +1841,8 @@ yydestruct (yymsg, yytype, yyvaluep) break; } } - /* Prevent warnings from -Wmissing-prototypes. */ - #ifdef YYPARSE_PARAM #if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); @@ -1908,10 +1861,9 @@ int yyparse (); - -/*----------. -| yyparse. | -`----------*/ +/*-------------------------. +| yyparse or yypush_parse. | +`-------------------------*/ #ifdef YYPARSE_PARAM #if (defined __STDC__ || defined __C99__FUNC__ \ @@ -1935,74 +1887,75 @@ yyparse () #endif #endif { - /* The look-ahead symbol. */ +/* The lookahead symbol. */ int yychar; -/* The semantic value of the look-ahead symbol. */ +/* The semantic value of the lookahead symbol. */ YYSTYPE yylval; -/* Number of syntax errors so far. */ -int yynerrs; + /* Number of syntax errors so far. */ + int yynerrs; - int yystate; - int yyn; - int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Look-ahead token as an internal (translated) token number. */ - int yytoken = 0; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. + /* The stacks and their tools: + `yyss': related to states. + `yyvs': related to semantic values. - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss = yyssa; - yytype_int16 *yyssp; + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; - - - -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; - YYSIZE_T yystacksize = YYINITDEPTH; + YYSIZE_T yystacksize; + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; + yytoken = 0; + yyss = yyssa; + yyvs = yyvsa; + yystacksize = YYINITDEPTH; + YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ + yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ - yyssp = yyss; yyvsp = yyvs; @@ -2032,7 +1985,6 @@ int yynerrs; YYSTYPE *yyvs1 = yyvs; yytype_int16 *yyss1 = yyss; - /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might @@ -2040,7 +1992,6 @@ int yynerrs; yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); yyss = yyss1; @@ -2063,9 +2014,8 @@ int yynerrs; (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); - + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); @@ -2076,7 +2026,6 @@ int yynerrs; yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); @@ -2086,6 +2035,9 @@ int yynerrs; YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + if (yystate == YYFINAL) + YYACCEPT; + goto yybackup; /*-----------. @@ -2094,16 +2046,16 @@ int yynerrs; yybackup: /* Do appropriate processing given the current state. Read a - look-ahead token if we need one and don't already have one. */ + lookahead token if we need one and don't already have one. */ - /* First try to decide what to do without reference to look-ahead token. */ + /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; - /* Not known => get a look-ahead token if don't already have one. */ + /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); @@ -2135,20 +2087,16 @@ yybackup: goto yyreduce; } - if (yyn == YYFINAL) - YYACCEPT; - /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; - /* Shift the look-ahead token. */ + /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - /* Discard the shifted token unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; + /* Discard the shifted token. */ + yychar = YYEMPTY; yystate = yyn; *++yyvsp = yylval; @@ -2188,6 +2136,8 @@ yyreduce: switch (yyn) { case 12: + +/* Line 1455 of yacc.c */ #line 282 "../css/CSSGrammar.y" { static_cast<CSSParser*>(parser)->m_rule = (yyvsp[(4) - (6)].rule); @@ -2195,6 +2145,8 @@ yyreduce: break; case 13: + +/* Line 1455 of yacc.c */ #line 288 "../css/CSSGrammar.y" { static_cast<CSSParser*>(parser)->m_keyframe = (yyvsp[(4) - (6)].keyframeRule); @@ -2202,6 +2154,8 @@ yyreduce: break; case 14: + +/* Line 1455 of yacc.c */ #line 294 "../css/CSSGrammar.y" { /* can be empty */ @@ -2209,6 +2163,8 @@ yyreduce: break; case 15: + +/* Line 1455 of yacc.c */ #line 300 "../css/CSSGrammar.y" { /* can be empty */ @@ -2216,6 +2172,8 @@ yyreduce: break; case 16: + +/* Line 1455 of yacc.c */ #line 306 "../css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -2231,6 +2189,8 @@ yyreduce: break; case 17: + +/* Line 1455 of yacc.c */ #line 320 "../css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -2239,6 +2199,8 @@ yyreduce: break; case 18: + +/* Line 1455 of yacc.c */ #line 327 "../css/CSSGrammar.y" { if ((yyvsp[(4) - (5)].selectorList)) { @@ -2250,12 +2212,16 @@ yyreduce: break; case 25: + +/* Line 1455 of yacc.c */ #line 349 "../css/CSSGrammar.y" { ;} break; case 28: + +/* Line 1455 of yacc.c */ #line 359 "../css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -2266,18 +2232,24 @@ yyreduce: break; case 29: + +/* Line 1455 of yacc.c */ #line 365 "../css/CSSGrammar.y" { ;} break; case 30: + +/* Line 1455 of yacc.c */ #line 367 "../css/CSSGrammar.y" { ;} break; case 32: + +/* Line 1455 of yacc.c */ #line 373 "../css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -2287,12 +2259,16 @@ yyreduce: break; case 33: + +/* Line 1455 of yacc.c */ #line 378 "../css/CSSGrammar.y" { ;} break; case 35: + +/* Line 1455 of yacc.c */ #line 384 "../css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -2302,6 +2278,8 @@ yyreduce: break; case 39: + +/* Line 1455 of yacc.c */ #line 398 "../css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -2311,11 +2289,15 @@ yyreduce: break; case 49: + +/* Line 1455 of yacc.c */ #line 421 "../css/CSSGrammar.y" { (yyval.ruleList) = 0; ;} break; case 50: + +/* Line 1455 of yacc.c */ #line 422 "../css/CSSGrammar.y" { (yyval.ruleList) = (yyvsp[(1) - (3)].ruleList); @@ -2328,6 +2310,8 @@ yyreduce: break; case 60: + +/* Line 1455 of yacc.c */ #line 449 "../css/CSSGrammar.y" { (yyval.rule) = static_cast<CSSParser*>(parser)->createImportRule((yyvsp[(3) - (6)].string), (yyvsp[(5) - (6)].mediaList)); @@ -2335,6 +2319,8 @@ yyreduce: break; case 61: + +/* Line 1455 of yacc.c */ #line 452 "../css/CSSGrammar.y" { (yyval.rule) = 0; @@ -2342,6 +2328,8 @@ yyreduce: break; case 62: + +/* Line 1455 of yacc.c */ #line 455 "../css/CSSGrammar.y" { (yyval.rule) = 0; @@ -2349,6 +2337,8 @@ yyreduce: break; case 63: + +/* Line 1455 of yacc.c */ #line 458 "../css/CSSGrammar.y" { (yyval.rule) = 0; @@ -2356,6 +2346,8 @@ yyreduce: break; case 64: + +/* Line 1455 of yacc.c */ #line 464 "../css/CSSGrammar.y" { (yyval.rule) = static_cast<CSSParser*>(parser)->createVariablesRule((yyvsp[(3) - (7)].mediaList), true); @@ -2363,6 +2355,8 @@ yyreduce: break; case 65: + +/* Line 1455 of yacc.c */ #line 468 "../css/CSSGrammar.y" { (yyval.rule) = static_cast<CSSParser*>(parser)->createVariablesRule((yyvsp[(3) - (7)].mediaList), false); @@ -2370,6 +2364,8 @@ yyreduce: break; case 66: + +/* Line 1455 of yacc.c */ #line 474 "../css/CSSGrammar.y" { (yyval.mediaList) = static_cast<CSSParser*>(parser)->createMediaList(); @@ -2377,6 +2373,8 @@ yyreduce: break; case 67: + +/* Line 1455 of yacc.c */ #line 478 "../css/CSSGrammar.y" { (yyval.mediaList) = (yyvsp[(3) - (3)].mediaList); @@ -2384,6 +2382,8 @@ yyreduce: break; case 68: + +/* Line 1455 of yacc.c */ #line 484 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (1)].boolean); @@ -2391,6 +2391,8 @@ yyreduce: break; case 69: + +/* Line 1455 of yacc.c */ #line 487 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (2)].boolean); @@ -2400,6 +2402,8 @@ yyreduce: break; case 70: + +/* Line 1455 of yacc.c */ #line 492 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (1)].boolean); @@ -2407,6 +2411,8 @@ yyreduce: break; case 71: + +/* Line 1455 of yacc.c */ #line 495 "../css/CSSGrammar.y" { (yyval.boolean) = false; @@ -2414,6 +2420,8 @@ yyreduce: break; case 72: + +/* Line 1455 of yacc.c */ #line 498 "../css/CSSGrammar.y" { (yyval.boolean) = false; @@ -2421,6 +2429,8 @@ yyreduce: break; case 73: + +/* Line 1455 of yacc.c */ #line 501 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (2)].boolean); @@ -2428,6 +2438,8 @@ yyreduce: break; case 74: + +/* Line 1455 of yacc.c */ #line 507 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (3)].boolean); @@ -2435,6 +2447,8 @@ yyreduce: break; case 75: + +/* Line 1455 of yacc.c */ #line 510 "../css/CSSGrammar.y" { (yyval.boolean) = false; @@ -2442,6 +2456,8 @@ yyreduce: break; case 76: + +/* Line 1455 of yacc.c */ #line 513 "../css/CSSGrammar.y" { (yyval.boolean) = false; @@ -2449,6 +2465,8 @@ yyreduce: break; case 77: + +/* Line 1455 of yacc.c */ #line 516 "../css/CSSGrammar.y" { (yyval.boolean) = false; @@ -2456,6 +2474,8 @@ yyreduce: break; case 78: + +/* Line 1455 of yacc.c */ #line 519 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (4)].boolean); @@ -2465,6 +2485,8 @@ yyreduce: break; case 79: + +/* Line 1455 of yacc.c */ #line 524 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (4)].boolean); @@ -2472,6 +2494,8 @@ yyreduce: break; case 80: + +/* Line 1455 of yacc.c */ #line 527 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (6)].boolean); @@ -2479,6 +2503,8 @@ yyreduce: break; case 81: + +/* Line 1455 of yacc.c */ #line 533 "../css/CSSGrammar.y" { (yyval.boolean) = static_cast<CSSParser*>(parser)->addVariable((yyvsp[(1) - (4)].string), (yyvsp[(4) - (4)].valueList)); @@ -2486,6 +2512,8 @@ yyreduce: break; case 82: + +/* Line 1455 of yacc.c */ #line 537 "../css/CSSGrammar.y" { (yyval.boolean) = static_cast<CSSParser*>(parser)->addVariableDeclarationBlock((yyvsp[(1) - (7)].string)); @@ -2493,6 +2521,8 @@ yyreduce: break; case 83: + +/* Line 1455 of yacc.c */ #line 541 "../css/CSSGrammar.y" { (yyval.boolean) = false; @@ -2500,6 +2530,8 @@ yyreduce: break; case 84: + +/* Line 1455 of yacc.c */ #line 545 "../css/CSSGrammar.y" { (yyval.boolean) = false; @@ -2507,6 +2539,8 @@ yyreduce: break; case 85: + +/* Line 1455 of yacc.c */ #line 549 "../css/CSSGrammar.y" { /* @variables { varname: } Just reduce away this variable with no value. */ @@ -2515,6 +2549,8 @@ yyreduce: break; case 86: + +/* Line 1455 of yacc.c */ #line 554 "../css/CSSGrammar.y" { /* if we come across rules with invalid values like this case: @variables { varname: *; }, just discard the property/value pair */ @@ -2523,6 +2559,8 @@ yyreduce: break; case 87: + +/* Line 1455 of yacc.c */ #line 561 "../css/CSSGrammar.y" { (yyval.string) = (yyvsp[(1) - (2)].string); @@ -2530,6 +2568,8 @@ yyreduce: break; case 88: + +/* Line 1455 of yacc.c */ #line 567 "../css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -2539,16 +2579,22 @@ yyreduce: break; case 91: + +/* Line 1455 of yacc.c */ #line 577 "../css/CSSGrammar.y" { (yyval.string).characters = 0; ;} break; case 92: + +/* Line 1455 of yacc.c */ #line 578 "../css/CSSGrammar.y" { (yyval.string) = (yyvsp[(1) - (2)].string); ;} break; case 95: + +/* Line 1455 of yacc.c */ #line 587 "../css/CSSGrammar.y" { (yyval.string) = (yyvsp[(1) - (2)].string); @@ -2556,6 +2602,8 @@ yyreduce: break; case 96: + +/* Line 1455 of yacc.c */ #line 593 "../css/CSSGrammar.y" { (yyval.valueList) = 0; @@ -2563,6 +2611,8 @@ yyreduce: break; case 97: + +/* Line 1455 of yacc.c */ #line 596 "../css/CSSGrammar.y" { (yyval.valueList) = (yyvsp[(3) - (4)].valueList); @@ -2570,6 +2620,8 @@ yyreduce: break; case 98: + +/* Line 1455 of yacc.c */ #line 602 "../css/CSSGrammar.y" { (yyvsp[(3) - (7)].string).lower(); @@ -2578,6 +2630,8 @@ yyreduce: break; case 99: + +/* Line 1455 of yacc.c */ #line 609 "../css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -2587,6 +2641,8 @@ yyreduce: break; case 100: + +/* Line 1455 of yacc.c */ #line 614 "../css/CSSGrammar.y" { (yyval.mediaQueryExpList) = (yyvsp[(1) - (5)].mediaQueryExpList); @@ -2595,6 +2651,8 @@ yyreduce: break; case 101: + +/* Line 1455 of yacc.c */ #line 621 "../css/CSSGrammar.y" { (yyval.mediaQueryExpList) = static_cast<CSSParser*>(parser)->createFloatingMediaQueryExpList(); @@ -2602,6 +2660,8 @@ yyreduce: break; case 102: + +/* Line 1455 of yacc.c */ #line 624 "../css/CSSGrammar.y" { (yyval.mediaQueryExpList) = (yyvsp[(3) - (3)].mediaQueryExpList); @@ -2609,6 +2669,8 @@ yyreduce: break; case 103: + +/* Line 1455 of yacc.c */ #line 630 "../css/CSSGrammar.y" { (yyval.mediaQueryRestrictor) = MediaQuery::None; @@ -2616,6 +2678,8 @@ yyreduce: break; case 104: + +/* Line 1455 of yacc.c */ #line 633 "../css/CSSGrammar.y" { (yyval.mediaQueryRestrictor) = MediaQuery::Only; @@ -2623,6 +2687,8 @@ yyreduce: break; case 105: + +/* Line 1455 of yacc.c */ #line 636 "../css/CSSGrammar.y" { (yyval.mediaQueryRestrictor) = MediaQuery::Not; @@ -2630,6 +2696,8 @@ yyreduce: break; case 106: + +/* Line 1455 of yacc.c */ #line 642 "../css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -2638,6 +2706,8 @@ yyreduce: break; case 107: + +/* Line 1455 of yacc.c */ #line 647 "../css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -2647,6 +2717,8 @@ yyreduce: break; case 108: + +/* Line 1455 of yacc.c */ #line 655 "../css/CSSGrammar.y" { (yyval.mediaList) = static_cast<CSSParser*>(parser)->createMediaList(); @@ -2654,6 +2726,8 @@ yyreduce: break; case 110: + +/* Line 1455 of yacc.c */ #line 662 "../css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -2663,6 +2737,8 @@ yyreduce: break; case 111: + +/* Line 1455 of yacc.c */ #line 667 "../css/CSSGrammar.y" { (yyval.mediaList) = (yyvsp[(1) - (4)].mediaList); @@ -2672,6 +2748,8 @@ yyreduce: break; case 112: + +/* Line 1455 of yacc.c */ #line 672 "../css/CSSGrammar.y" { (yyval.mediaList) = 0; @@ -2679,6 +2757,8 @@ yyreduce: break; case 113: + +/* Line 1455 of yacc.c */ #line 678 "../css/CSSGrammar.y" { (yyval.rule) = static_cast<CSSParser*>(parser)->createMediaRule((yyvsp[(3) - (7)].mediaList), (yyvsp[(6) - (7)].ruleList)); @@ -2686,6 +2766,8 @@ yyreduce: break; case 114: + +/* Line 1455 of yacc.c */ #line 681 "../css/CSSGrammar.y" { (yyval.rule) = static_cast<CSSParser*>(parser)->createMediaRule(0, (yyvsp[(5) - (6)].ruleList)); @@ -2693,6 +2775,8 @@ yyreduce: break; case 115: + +/* Line 1455 of yacc.c */ #line 687 "../css/CSSGrammar.y" { (yyval.string) = (yyvsp[(1) - (2)].string); @@ -2700,6 +2784,8 @@ yyreduce: break; case 116: + +/* Line 1455 of yacc.c */ #line 693 "../css/CSSGrammar.y" { (yyval.rule) = (yyvsp[(7) - (8)].keyframesRule); @@ -2708,11 +2794,15 @@ yyreduce: break; case 119: + +/* Line 1455 of yacc.c */ #line 705 "../css/CSSGrammar.y" { (yyval.keyframesRule) = static_cast<CSSParser*>(parser)->createKeyframesRule(); ;} break; case 120: + +/* Line 1455 of yacc.c */ #line 706 "../css/CSSGrammar.y" { (yyval.keyframesRule) = (yyvsp[(1) - (3)].keyframesRule); @@ -2722,6 +2812,8 @@ yyreduce: break; case 121: + +/* Line 1455 of yacc.c */ #line 714 "../css/CSSGrammar.y" { (yyval.keyframeRule) = static_cast<CSSParser*>(parser)->createKeyframeRule((yyvsp[(1) - (6)].valueList)); @@ -2729,6 +2821,8 @@ yyreduce: break; case 122: + +/* Line 1455 of yacc.c */ #line 720 "../css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -2738,6 +2832,8 @@ yyreduce: break; case 123: + +/* Line 1455 of yacc.c */ #line 725 "../css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -2748,11 +2844,15 @@ yyreduce: break; case 124: + +/* Line 1455 of yacc.c */ #line 734 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).isInt = false; (yyval.value).fValue = (yyvsp[(1) - (1)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER; ;} break; case 125: + +/* Line 1455 of yacc.c */ #line 735 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).isInt = false; (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER; @@ -2767,6 +2867,8 @@ yyreduce: break; case 126: + +/* Line 1455 of yacc.c */ #line 759 "../css/CSSGrammar.y" { (yyval.rule) = 0; @@ -2774,6 +2876,8 @@ yyreduce: break; case 127: + +/* Line 1455 of yacc.c */ #line 762 "../css/CSSGrammar.y" { (yyval.rule) = 0; @@ -2781,6 +2885,8 @@ yyreduce: break; case 128: + +/* Line 1455 of yacc.c */ #line 769 "../css/CSSGrammar.y" { (yyval.rule) = static_cast<CSSParser*>(parser)->createFontFaceRule(); @@ -2788,6 +2894,8 @@ yyreduce: break; case 129: + +/* Line 1455 of yacc.c */ #line 772 "../css/CSSGrammar.y" { (yyval.rule) = 0; @@ -2795,6 +2903,8 @@ yyreduce: break; case 130: + +/* Line 1455 of yacc.c */ #line 775 "../css/CSSGrammar.y" { (yyval.rule) = 0; @@ -2802,31 +2912,43 @@ yyreduce: break; case 131: + +/* Line 1455 of yacc.c */ #line 781 "../css/CSSGrammar.y" { (yyval.relation) = CSSSelector::DirectAdjacent; ;} break; case 132: + +/* Line 1455 of yacc.c */ #line 782 "../css/CSSGrammar.y" { (yyval.relation) = CSSSelector::IndirectAdjacent; ;} break; case 133: + +/* Line 1455 of yacc.c */ #line 783 "../css/CSSGrammar.y" { (yyval.relation) = CSSSelector::Child; ;} break; case 134: + +/* Line 1455 of yacc.c */ #line 787 "../css/CSSGrammar.y" { (yyval.integer) = -1; ;} break; case 135: + +/* Line 1455 of yacc.c */ #line 788 "../css/CSSGrammar.y" { (yyval.integer) = 1; ;} break; case 136: + +/* Line 1455 of yacc.c */ #line 792 "../css/CSSGrammar.y" { (yyval.rule) = static_cast<CSSParser*>(parser)->createStyleRule((yyvsp[(1) - (5)].selectorList)); @@ -2834,6 +2956,8 @@ yyreduce: break; case 137: + +/* Line 1455 of yacc.c */ #line 798 "../css/CSSGrammar.y" { if ((yyvsp[(1) - (1)].selector)) { @@ -2847,6 +2971,8 @@ yyreduce: break; case 138: + +/* Line 1455 of yacc.c */ #line 807 "../css/CSSGrammar.y" { if ((yyvsp[(1) - (4)].selectorList) && (yyvsp[(4) - (4)].selector)) { @@ -2859,6 +2985,8 @@ yyreduce: break; case 139: + +/* Line 1455 of yacc.c */ #line 815 "../css/CSSGrammar.y" { (yyval.selectorList) = 0; @@ -2866,6 +2994,8 @@ yyreduce: break; case 140: + +/* Line 1455 of yacc.c */ #line 821 "../css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(1) - (2)].selector); @@ -2873,6 +3003,8 @@ yyreduce: break; case 141: + +/* Line 1455 of yacc.c */ #line 827 "../css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(1) - (1)].selector); @@ -2880,6 +3012,8 @@ yyreduce: break; case 142: + +/* Line 1455 of yacc.c */ #line 831 "../css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(1) - (1)].selector); @@ -2887,6 +3021,8 @@ yyreduce: break; case 143: + +/* Line 1455 of yacc.c */ #line 835 "../css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(2) - (2)].selector); @@ -2906,6 +3042,8 @@ yyreduce: break; case 144: + +/* Line 1455 of yacc.c */ #line 850 "../css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(3) - (3)].selector); @@ -2930,6 +3068,8 @@ yyreduce: break; case 145: + +/* Line 1455 of yacc.c */ #line 870 "../css/CSSGrammar.y" { (yyval.selector) = 0; @@ -2937,21 +3077,29 @@ yyreduce: break; case 146: + +/* Line 1455 of yacc.c */ #line 876 "../css/CSSGrammar.y" { (yyval.string).characters = 0; (yyval.string).length = 0; ;} break; case 147: + +/* Line 1455 of yacc.c */ #line 877 "../css/CSSGrammar.y" { static UChar star = '*'; (yyval.string).characters = ☆ (yyval.string).length = 1; ;} break; case 148: + +/* Line 1455 of yacc.c */ #line 878 "../css/CSSGrammar.y" { (yyval.string) = (yyvsp[(1) - (2)].string); ;} break; case 149: + +/* Line 1455 of yacc.c */ #line 882 "../css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -2961,6 +3109,8 @@ yyreduce: break; case 150: + +/* Line 1455 of yacc.c */ #line 887 "../css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(2) - (2)].selector); @@ -2972,6 +3122,8 @@ yyreduce: break; case 151: + +/* Line 1455 of yacc.c */ #line 894 "../css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(1) - (1)].selector); @@ -2982,6 +3134,8 @@ yyreduce: break; case 152: + +/* Line 1455 of yacc.c */ #line 900 "../css/CSSGrammar.y" { AtomicString namespacePrefix = (yyvsp[(1) - (2)].string); @@ -2996,6 +3150,8 @@ yyreduce: break; case 153: + +/* Line 1455 of yacc.c */ #line 910 "../css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(3) - (3)].selector); @@ -3012,6 +3168,8 @@ yyreduce: break; case 154: + +/* Line 1455 of yacc.c */ #line 922 "../css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(2) - (2)].selector); @@ -3026,6 +3184,8 @@ yyreduce: break; case 155: + +/* Line 1455 of yacc.c */ #line 935 "../css/CSSGrammar.y" { CSSParserString& str = (yyvsp[(1) - (1)].string); @@ -3038,6 +3198,8 @@ yyreduce: break; case 156: + +/* Line 1455 of yacc.c */ #line 943 "../css/CSSGrammar.y" { static UChar star = '*'; @@ -3047,6 +3209,8 @@ yyreduce: break; case 157: + +/* Line 1455 of yacc.c */ #line 951 "../css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(1) - (1)].selector); @@ -3054,6 +3218,8 @@ yyreduce: break; case 158: + +/* Line 1455 of yacc.c */ #line 954 "../css/CSSGrammar.y" { if (!(yyvsp[(2) - (2)].selector)) @@ -3071,6 +3237,8 @@ yyreduce: break; case 159: + +/* Line 1455 of yacc.c */ #line 967 "../css/CSSGrammar.y" { (yyval.selector) = 0; @@ -3078,6 +3246,8 @@ yyreduce: break; case 160: + +/* Line 1455 of yacc.c */ #line 973 "../css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -3090,6 +3260,8 @@ yyreduce: break; case 161: + +/* Line 1455 of yacc.c */ #line 981 "../css/CSSGrammar.y" { if ((yyvsp[(1) - (1)].string).characters[0] >= '0' && (yyvsp[(1) - (1)].string).characters[0] <= '9') { @@ -3106,6 +3278,8 @@ yyreduce: break; case 165: + +/* Line 1455 of yacc.c */ #line 999 "../css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -3118,6 +3292,8 @@ yyreduce: break; case 166: + +/* Line 1455 of yacc.c */ #line 1010 "../css/CSSGrammar.y" { CSSParserString& str = (yyvsp[(1) - (2)].string); @@ -3130,6 +3306,8 @@ yyreduce: break; case 167: + +/* Line 1455 of yacc.c */ #line 1021 "../css/CSSGrammar.y" { (yyval.selector) = static_cast<CSSParser*>(parser)->createFloatingSelector(); @@ -3139,6 +3317,8 @@ yyreduce: break; case 168: + +/* Line 1455 of yacc.c */ #line 1026 "../css/CSSGrammar.y" { (yyval.selector) = static_cast<CSSParser*>(parser)->createFloatingSelector(); @@ -3149,6 +3329,8 @@ yyreduce: break; case 169: + +/* Line 1455 of yacc.c */ #line 1032 "../css/CSSGrammar.y" { AtomicString namespacePrefix = (yyvsp[(3) - (5)].string); @@ -3161,6 +3343,8 @@ yyreduce: break; case 170: + +/* Line 1455 of yacc.c */ #line 1040 "../css/CSSGrammar.y" { AtomicString namespacePrefix = (yyvsp[(3) - (9)].string); @@ -3174,6 +3358,8 @@ yyreduce: break; case 171: + +/* Line 1455 of yacc.c */ #line 1052 "../css/CSSGrammar.y" { (yyval.integer) = CSSSelector::Exact; @@ -3181,6 +3367,8 @@ yyreduce: break; case 172: + +/* Line 1455 of yacc.c */ #line 1055 "../css/CSSGrammar.y" { (yyval.integer) = CSSSelector::List; @@ -3188,6 +3376,8 @@ yyreduce: break; case 173: + +/* Line 1455 of yacc.c */ #line 1058 "../css/CSSGrammar.y" { (yyval.integer) = CSSSelector::Hyphen; @@ -3195,6 +3385,8 @@ yyreduce: break; case 174: + +/* Line 1455 of yacc.c */ #line 1061 "../css/CSSGrammar.y" { (yyval.integer) = CSSSelector::Begin; @@ -3202,6 +3394,8 @@ yyreduce: break; case 175: + +/* Line 1455 of yacc.c */ #line 1064 "../css/CSSGrammar.y" { (yyval.integer) = CSSSelector::End; @@ -3209,6 +3403,8 @@ yyreduce: break; case 176: + +/* Line 1455 of yacc.c */ #line 1067 "../css/CSSGrammar.y" { (yyval.integer) = CSSSelector::Contain; @@ -3216,6 +3412,8 @@ yyreduce: break; case 179: + +/* Line 1455 of yacc.c */ #line 1078 "../css/CSSGrammar.y" { (yyval.selector) = static_cast<CSSParser*>(parser)->createFloatingSelector(); @@ -3250,6 +3448,8 @@ yyreduce: break; case 180: + +/* Line 1455 of yacc.c */ #line 1108 "../css/CSSGrammar.y" { (yyval.selector) = static_cast<CSSParser*>(parser)->createFloatingSelector(); @@ -3273,6 +3473,8 @@ yyreduce: break; case 181: + +/* Line 1455 of yacc.c */ #line 1128 "../css/CSSGrammar.y" { CSSParser *p = static_cast<CSSParser*>(parser); @@ -3294,6 +3496,8 @@ yyreduce: break; case 182: + +/* Line 1455 of yacc.c */ #line 1146 "../css/CSSGrammar.y" { CSSParser *p = static_cast<CSSParser*>(parser); @@ -3315,6 +3519,8 @@ yyreduce: break; case 183: + +/* Line 1455 of yacc.c */ #line 1164 "../css/CSSGrammar.y" { CSSParser *p = static_cast<CSSParser*>(parser); @@ -3337,6 +3543,8 @@ yyreduce: break; case 184: + +/* Line 1455 of yacc.c */ #line 1183 "../css/CSSGrammar.y" { if (!(yyvsp[(4) - (6)].selector) || (yyvsp[(4) - (6)].selector)->simpleSelector() || (yyvsp[(4) - (6)].selector)->tagHistory()) @@ -3353,6 +3561,8 @@ yyreduce: break; case 185: + +/* Line 1455 of yacc.c */ #line 1198 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (1)].boolean); @@ -3360,6 +3570,8 @@ yyreduce: break; case 186: + +/* Line 1455 of yacc.c */ #line 1201 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (2)].boolean); @@ -3369,6 +3581,8 @@ yyreduce: break; case 187: + +/* Line 1455 of yacc.c */ #line 1206 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (1)].boolean); @@ -3376,6 +3590,8 @@ yyreduce: break; case 188: + +/* Line 1455 of yacc.c */ #line 1209 "../css/CSSGrammar.y" { (yyval.boolean) = false; @@ -3383,6 +3599,8 @@ yyreduce: break; case 189: + +/* Line 1455 of yacc.c */ #line 1212 "../css/CSSGrammar.y" { (yyval.boolean) = false; @@ -3390,6 +3608,8 @@ yyreduce: break; case 190: + +/* Line 1455 of yacc.c */ #line 1215 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (2)].boolean); @@ -3397,6 +3617,8 @@ yyreduce: break; case 191: + +/* Line 1455 of yacc.c */ #line 1218 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (2)].boolean); @@ -3404,6 +3626,8 @@ yyreduce: break; case 192: + +/* Line 1455 of yacc.c */ #line 1224 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (3)].boolean); @@ -3411,6 +3635,8 @@ yyreduce: break; case 193: + +/* Line 1455 of yacc.c */ #line 1227 "../css/CSSGrammar.y" { (yyval.boolean) = false; @@ -3418,6 +3644,8 @@ yyreduce: break; case 194: + +/* Line 1455 of yacc.c */ #line 1230 "../css/CSSGrammar.y" { (yyval.boolean) = false; @@ -3425,6 +3653,8 @@ yyreduce: break; case 195: + +/* Line 1455 of yacc.c */ #line 1233 "../css/CSSGrammar.y" { (yyval.boolean) = false; @@ -3432,6 +3662,8 @@ yyreduce: break; case 196: + +/* Line 1455 of yacc.c */ #line 1236 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (4)].boolean); @@ -3441,6 +3673,8 @@ yyreduce: break; case 197: + +/* Line 1455 of yacc.c */ #line 1241 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (4)].boolean); @@ -3448,6 +3682,8 @@ yyreduce: break; case 198: + +/* Line 1455 of yacc.c */ #line 1244 "../css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (6)].boolean); @@ -3455,6 +3691,8 @@ yyreduce: break; case 199: + +/* Line 1455 of yacc.c */ #line 1250 "../css/CSSGrammar.y" { (yyval.boolean) = false; @@ -3472,6 +3710,8 @@ yyreduce: break; case 200: + +/* Line 1455 of yacc.c */ #line 1264 "../css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -3487,6 +3727,8 @@ yyreduce: break; case 201: + +/* Line 1455 of yacc.c */ #line 1276 "../css/CSSGrammar.y" { (yyval.boolean) = false; @@ -3494,6 +3736,8 @@ yyreduce: break; case 202: + +/* Line 1455 of yacc.c */ #line 1280 "../css/CSSGrammar.y" { /* The default movable type template has letter-spacing: .none; Handle this by looking for @@ -3504,6 +3748,8 @@ yyreduce: break; case 203: + +/* Line 1455 of yacc.c */ #line 1287 "../css/CSSGrammar.y" { /* When we encounter something like p {color: red !important fail;} we should drop the declaration */ @@ -3512,6 +3758,8 @@ yyreduce: break; case 204: + +/* Line 1455 of yacc.c */ #line 1292 "../css/CSSGrammar.y" { /* Handle this case: div { text-align: center; !important } Just reduce away the stray !important. */ @@ -3520,6 +3768,8 @@ yyreduce: break; case 205: + +/* Line 1455 of yacc.c */ #line 1297 "../css/CSSGrammar.y" { /* div { font-family: } Just reduce away this property with no value. */ @@ -3528,6 +3778,8 @@ yyreduce: break; case 206: + +/* Line 1455 of yacc.c */ #line 1302 "../css/CSSGrammar.y" { /* if we come across rules with invalid values like this case: p { weight: *; }, just discard the rule */ @@ -3536,6 +3788,8 @@ yyreduce: break; case 207: + +/* Line 1455 of yacc.c */ #line 1307 "../css/CSSGrammar.y" { /* if we come across: div { color{;color:maroon} }, ignore everything within curly brackets */ @@ -3544,6 +3798,8 @@ yyreduce: break; case 208: + +/* Line 1455 of yacc.c */ #line 1314 "../css/CSSGrammar.y" { (yyval.integer) = cssPropertyID((yyvsp[(1) - (2)].string)); @@ -3551,16 +3807,22 @@ yyreduce: break; case 209: + +/* Line 1455 of yacc.c */ #line 1320 "../css/CSSGrammar.y" { (yyval.boolean) = true; ;} break; case 210: + +/* Line 1455 of yacc.c */ #line 1321 "../css/CSSGrammar.y" { (yyval.boolean) = false; ;} break; case 211: + +/* Line 1455 of yacc.c */ #line 1325 "../css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -3570,6 +3832,8 @@ yyreduce: break; case 212: + +/* Line 1455 of yacc.c */ #line 1330 "../css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -3588,6 +3852,8 @@ yyreduce: break; case 213: + +/* Line 1455 of yacc.c */ #line 1344 "../css/CSSGrammar.y" { (yyval.valueList) = 0; @@ -3595,6 +3861,8 @@ yyreduce: break; case 214: + +/* Line 1455 of yacc.c */ #line 1350 "../css/CSSGrammar.y" { (yyval.character) = '/'; @@ -3602,6 +3870,8 @@ yyreduce: break; case 215: + +/* Line 1455 of yacc.c */ #line 1353 "../css/CSSGrammar.y" { (yyval.character) = ','; @@ -3609,6 +3879,8 @@ yyreduce: break; case 216: + +/* Line 1455 of yacc.c */ #line 1356 "../css/CSSGrammar.y" { (yyval.character) = 0; @@ -3616,21 +3888,29 @@ yyreduce: break; case 217: + +/* Line 1455 of yacc.c */ #line 1362 "../css/CSSGrammar.y" { (yyval.value) = (yyvsp[(1) - (1)].value); ;} break; case 218: + +/* Line 1455 of yacc.c */ #line 1363 "../css/CSSGrammar.y" { (yyval.value) = (yyvsp[(2) - (2)].value); (yyval.value).fValue *= (yyvsp[(1) - (2)].integer); ;} break; case 219: + +/* Line 1455 of yacc.c */ #line 1364 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_STRING; ;} break; case 220: + +/* Line 1455 of yacc.c */ #line 1365 "../css/CSSGrammar.y" { (yyval.value).id = cssValueKeywordID((yyvsp[(1) - (2)].string)); @@ -3640,36 +3920,50 @@ yyreduce: break; case 221: + +/* Line 1455 of yacc.c */ #line 1371 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_DIMENSION; ;} break; case 222: + +/* Line 1455 of yacc.c */ #line 1372 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(2) - (3)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_DIMENSION; ;} break; case 223: + +/* Line 1455 of yacc.c */ #line 1373 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_URI; ;} break; case 224: + +/* Line 1455 of yacc.c */ #line 1374 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_UNICODE_RANGE; ;} break; case 225: + +/* Line 1455 of yacc.c */ #line 1375 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (1)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; ;} break; case 226: + +/* Line 1455 of yacc.c */ #line 1376 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).string = CSSParserString(); (yyval.value).unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; ;} break; case 227: + +/* Line 1455 of yacc.c */ #line 1378 "../css/CSSGrammar.y" { (yyval.value) = (yyvsp[(1) - (1)].value); @@ -3677,6 +3971,8 @@ yyreduce: break; case 228: + +/* Line 1455 of yacc.c */ #line 1381 "../css/CSSGrammar.y" { (yyval.value) = (yyvsp[(1) - (2)].value); @@ -3684,6 +3980,8 @@ yyreduce: break; case 229: + +/* Line 1455 of yacc.c */ #line 1384 "../css/CSSGrammar.y" { /* Handle width: %; */ (yyval.value).id = 0; (yyval.value).unit = 0; @@ -3691,106 +3989,148 @@ yyreduce: break; case 230: + +/* Line 1455 of yacc.c */ #line 1390 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).isInt = true; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER; ;} break; case 231: + +/* Line 1455 of yacc.c */ #line 1391 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).isInt = false; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER; ;} break; case 232: + +/* Line 1455 of yacc.c */ #line 1392 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PERCENTAGE; ;} break; case 233: + +/* Line 1455 of yacc.c */ #line 1393 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PX; ;} break; case 234: + +/* Line 1455 of yacc.c */ #line 1394 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_CM; ;} break; case 235: + +/* Line 1455 of yacc.c */ #line 1395 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_MM; ;} break; case 236: + +/* Line 1455 of yacc.c */ #line 1396 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_IN; ;} break; case 237: + +/* Line 1455 of yacc.c */ #line 1397 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PT; ;} break; case 238: + +/* Line 1455 of yacc.c */ #line 1398 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PC; ;} break; case 239: + +/* Line 1455 of yacc.c */ #line 1399 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_DEG; ;} break; case 240: + +/* Line 1455 of yacc.c */ #line 1400 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_RAD; ;} break; case 241: + +/* Line 1455 of yacc.c */ #line 1401 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_GRAD; ;} break; case 242: + +/* Line 1455 of yacc.c */ #line 1402 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_TURN; ;} break; case 243: + +/* Line 1455 of yacc.c */ #line 1403 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_MS; ;} break; case 244: + +/* Line 1455 of yacc.c */ #line 1404 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_S; ;} break; case 245: + +/* Line 1455 of yacc.c */ #line 1405 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_HZ; ;} break; case 246: + +/* Line 1455 of yacc.c */ #line 1406 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_KHZ; ;} break; case 247: + +/* Line 1455 of yacc.c */ #line 1407 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_EMS; ;} break; case 248: + +/* Line 1455 of yacc.c */ #line 1408 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSParserValue::Q_EMS; ;} break; case 249: + +/* Line 1455 of yacc.c */ #line 1409 "../css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_EXS; ;} break; case 250: + +/* Line 1455 of yacc.c */ #line 1413 "../css/CSSGrammar.y" { (yyval.value).id = 0; @@ -3800,6 +4140,8 @@ yyreduce: break; case 251: + +/* Line 1455 of yacc.c */ #line 1421 "../css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -3813,6 +4155,8 @@ yyreduce: break; case 252: + +/* Line 1455 of yacc.c */ #line 1430 "../css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -3826,16 +4170,22 @@ yyreduce: break; case 253: + +/* Line 1455 of yacc.c */ #line 1446 "../css/CSSGrammar.y" { (yyval.string) = (yyvsp[(1) - (2)].string); ;} break; case 254: + +/* Line 1455 of yacc.c */ #line 1447 "../css/CSSGrammar.y" { (yyval.string) = (yyvsp[(1) - (2)].string); ;} break; case 255: + +/* Line 1455 of yacc.c */ #line 1454 "../css/CSSGrammar.y" { (yyval.rule) = 0; @@ -3843,6 +4193,8 @@ yyreduce: break; case 256: + +/* Line 1455 of yacc.c */ #line 1457 "../css/CSSGrammar.y" { (yyval.rule) = 0; @@ -3850,6 +4202,8 @@ yyreduce: break; case 257: + +/* Line 1455 of yacc.c */ #line 1463 "../css/CSSGrammar.y" { (yyval.rule) = 0; @@ -3857,6 +4211,8 @@ yyreduce: break; case 258: + +/* Line 1455 of yacc.c */ #line 1466 "../css/CSSGrammar.y" { (yyval.rule) = 0; @@ -3864,6 +4220,8 @@ yyreduce: break; case 261: + +/* Line 1455 of yacc.c */ #line 1477 "../css/CSSGrammar.y" { (yyval.rule) = 0; @@ -3871,6 +4229,8 @@ yyreduce: break; case 262: + +/* Line 1455 of yacc.c */ #line 1483 "../css/CSSGrammar.y" { (yyval.rule) = 0; @@ -3878,6 +4238,8 @@ yyreduce: break; case 263: + +/* Line 1455 of yacc.c */ #line 1489 "../css/CSSGrammar.y" { (yyval.rule) = 0; @@ -3885,8 +4247,9 @@ yyreduce: break; -/* Line 1267 of yacc.c. */ -#line 3890 "WebCore/tmp/../generated/CSSGrammar.tab.c" + +/* Line 1455 of yacc.c */ +#line 4253 "WebCore/tmp/../generated/CSSGrammar.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3897,7 +4260,6 @@ yyreduce: *++yyvsp = yyval; - /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -3962,7 +4324,7 @@ yyerrlab: if (yyerrstatus == 3) { - /* If just tried and failed to reuse look-ahead token after an + /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) @@ -3979,7 +4341,7 @@ yyerrlab: } } - /* Else will try to reuse look-ahead token after shifting the error + /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; @@ -4036,9 +4398,6 @@ yyerrlab1: YY_STACK_PRINT (yyss, yyssp); } - if (yyn == YYFINAL) - YYACCEPT; - *++yyvsp = yylval; @@ -4063,7 +4422,7 @@ yyabortlab: yyresult = 1; goto yyreturn; -#ifndef yyoverflow +#if !defined(yyoverflow) || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ @@ -4074,7 +4433,7 @@ yyexhaustedlab: #endif yyreturn: - if (yychar != YYEOF && yychar != YYEMPTY) + if (yychar != YYEMPTY) yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); /* Do not reclaim the symbols of the rule which action triggered @@ -4100,6 +4459,8 @@ yyreturn: } + +/* Line 1675 of yacc.c */ #line 1516 "../css/CSSGrammar.y" diff --git a/src/3rdparty/webkit/WebCore/generated/CSSGrammar.h b/src/3rdparty/webkit/WebCore/generated/CSSGrammar.h index 61ba1f5..4223680 100644 --- a/src/3rdparty/webkit/WebCore/generated/CSSGrammar.h +++ b/src/3rdparty/webkit/WebCore/generated/CSSGrammar.h @@ -1,26 +1,25 @@ #ifndef CSSGRAMMAR_H #define CSSGRAMMAR_H -/* A Bison parser, made by GNU Bison 2.3. */ -/* Skeleton interface for Bison's Yacc-like parsers in C +/* A Bison parser, made by GNU Bison 2.4.1. */ - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +/* Skeleton interface for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -31,10 +30,11 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ + /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE @@ -106,78 +106,16 @@ VARCALL = 319 }; #endif -/* Tokens. */ -#define TOKEN_EOF 0 -#define LOWEST_PREC 258 -#define UNIMPORTANT_TOK 259 -#define WHITESPACE 260 -#define SGML_CD 261 -#define INCLUDES 262 -#define DASHMATCH 263 -#define BEGINSWITH 264 -#define ENDSWITH 265 -#define CONTAINS 266 -#define STRING 267 -#define IDENT 268 -#define NTH 269 -#define HEX 270 -#define IDSEL 271 -#define IMPORT_SYM 272 -#define PAGE_SYM 273 -#define MEDIA_SYM 274 -#define FONT_FACE_SYM 275 -#define CHARSET_SYM 276 -#define NAMESPACE_SYM 277 -#define WEBKIT_RULE_SYM 278 -#define WEBKIT_DECLS_SYM 279 -#define WEBKIT_KEYFRAME_RULE_SYM 280 -#define WEBKIT_KEYFRAMES_SYM 281 -#define WEBKIT_VALUE_SYM 282 -#define WEBKIT_MEDIAQUERY_SYM 283 -#define WEBKIT_SELECTOR_SYM 284 -#define WEBKIT_VARIABLES_SYM 285 -#define WEBKIT_DEFINE_SYM 286 -#define VARIABLES_FOR 287 -#define WEBKIT_VARIABLES_DECLS_SYM 288 -#define ATKEYWORD 289 -#define IMPORTANT_SYM 290 -#define MEDIA_ONLY 291 -#define MEDIA_NOT 292 -#define MEDIA_AND 293 -#define QEMS 294 -#define EMS 295 -#define EXS 296 -#define PXS 297 -#define CMS 298 -#define MMS 299 -#define INS 300 -#define PTS 301 -#define PCS 302 -#define DEGS 303 -#define RADS 304 -#define GRADS 305 -#define TURNS 306 -#define MSECS 307 -#define SECS 308 -#define HERZ 309 -#define KHERZ 310 -#define DIMEN 311 -#define PERCENTAGE 312 -#define FLOATTOKEN 313 -#define INTEGER 314 -#define URI 315 -#define FUNCTION 316 -#define NOTFUNCTION 317 -#define UNICODERANGE 318 -#define VARCALL 319 - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 58 "../css/CSSGrammar.y" { + +/* Line 1676 of yacc.c */ +#line 58 "../css/CSSGrammar.y" + bool boolean; char character; int integer; @@ -199,15 +137,18 @@ typedef union YYSTYPE WebKitCSSKeyframeRule* keyframeRule; WebKitCSSKeyframesRule* keyframesRule; float val; -} -/* Line 1489 of yacc.c. */ -#line 203 "WebCore/tmp/../generated/CSSGrammar.tab.h" - YYSTYPE; + + + +/* Line 1676 of yacc.c */ +#line 143 "WebCore/tmp/../generated/CSSGrammar.tab.h" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif + #endif diff --git a/src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.c b/src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.c index e84ca9e..6362110 100644 --- a/src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.c +++ b/src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.c @@ -84,6 +84,9 @@ hash_val (register const char *str, register unsigned int len) switch (len) { default: + hval += asso_values[(unsigned char)str[30]]; + /*FALLTHROUGH*/ + case 30: hval += asso_values[(unsigned char)str[29]]; /*FALLTHROUGH*/ case 29: @@ -188,9 +191,9 @@ findValue (register const char *str, register unsigned int len) { enum { - TOTAL_KEYWORDS = 537, + TOTAL_KEYWORDS = 539, MIN_WORD_LENGTH = 2, - MAX_WORD_LENGTH = 30, + MAX_WORD_LENGTH = 31, MIN_HASH_VALUE = 0, MAX_HASH_VALUE = 8751 }; @@ -203,7 +206,7 @@ findValue (register const char *str, register unsigned int len) {"300", CSSValue300}, #line 287 "CSSValueKeywords.gperf" {"end", CSSValueEnd}, -#line 545 "CSSValueKeywords.gperf" +#line 547 "CSSValueKeywords.gperf" {"lr", CSSValueLr}, #line 48 "CSSValueKeywords.gperf" {"900", CSSValue900}, @@ -211,7 +214,7 @@ findValue (register const char *str, register unsigned int len) {"hide", CSSValueHide}, #line 47 "CSSValueKeywords.gperf" {"800", CSSValue800}, -#line 369 "CSSValueKeywords.gperf" +#line 371 "CSSValueKeywords.gperf" {"lines", CSSValueLines}, #line 46 "CSSValueKeywords.gperf" {"700", CSSValue700}, @@ -229,23 +232,23 @@ findValue (register const char *str, register unsigned int len) {"circle", CSSValueCircle}, #line 43 "CSSValueKeywords.gperf" {"400", CSSValue400}, -#line 463 "CSSValueKeywords.gperf" +#line 465 "CSSValueKeywords.gperf" {"linen", CSSValueLinen}, #line 41 "CSSValueKeywords.gperf" {"200", CSSValue200}, -#line 479 "CSSValueKeywords.gperf" +#line 481 "CSSValueKeywords.gperf" {"oldlace", CSSValueOldlace}, #line 252 "CSSValueKeywords.gperf" {"cross", CSSValueCross}, -#line 400 "CSSValueKeywords.gperf" +#line 402 "CSSValueKeywords.gperf" {"coral", CSSValueCoral}, #line 312 "CSSValueKeywords.gperf" {"clip", CSSValueClip}, #line 13 "CSSValueKeywords.gperf" {"none", CSSValueNone}, -#line 403 "CSSValueKeywords.gperf" +#line 405 "CSSValueKeywords.gperf" {"crimson", CSSValueCrimson}, -#line 547 "CSSValueKeywords.gperf" +#line 549 "CSSValueKeywords.gperf" {"tb", CSSValueTb}, #line 251 "CSSValueKeywords.gperf" {"crop", CSSValueCrop}, @@ -255,7 +258,7 @@ findValue (register const char *str, register unsigned int len) {"inline", CSSValueInline}, #line 176 "CSSValueKeywords.gperf" {"armenian", CSSValueArmenian}, -#line 367 "CSSValueKeywords.gperf" +#line 369 "CSSValueKeywords.gperf" {"logical", CSSValueLogical}, #line 241 "CSSValueKeywords.gperf" {"collapse", CSSValueCollapse}, @@ -271,13 +274,13 @@ findValue (register const char *str, register unsigned int len) {"initial", CSSValueInitial}, #line 215 "CSSValueKeywords.gperf" {"e-resize", CSSValueEResize}, -#line 546 "CSSValueKeywords.gperf" +#line 548 "CSSValueKeywords.gperf" {"rl", CSSValueRl}, #line 221 "CSSValueKeywords.gperf" {"s-resize", CSSValueSResize}, -#line 375 "CSSValueKeywords.gperf" +#line 377 "CSSValueKeywords.gperf" {"linear", CSSValueLinear}, -#line 505 "CSSValueKeywords.gperf" +#line 507 "CSSValueKeywords.gperf" {"snow", CSSValueSnow}, #line 205 "CSSValueKeywords.gperf" {"move", CSSValueMove}, @@ -287,29 +290,29 @@ findValue (register const char *str, register unsigned int len) {"slow", CSSValueSlow}, #line 218 "CSSValueKeywords.gperf" {"n-resize", CSSValueNResize}, -#line 509 "CSSValueKeywords.gperf" +#line 511 "CSSValueKeywords.gperf" {"thistle", CSSValueThistle}, -#line 455 "CSSValueKeywords.gperf" +#line 457 "CSSValueKeywords.gperf" {"lightsalmon", CSSValueLightsalmon}, -#line 399 "CSSValueKeywords.gperf" +#line 401 "CSSValueKeywords.gperf" {"chocolate", CSSValueChocolate}, #line 279 "CSSValueKeywords.gperf" {"show", CSSValueShow}, #line 257 "CSSValueKeywords.gperf" {"higher", CSSValueHigher}, -#line 520 "CSSValueKeywords.gperf" +#line 522 "CSSValueKeywords.gperf" {"srgb", CSSValueSrgb}, #line 187 "CSSValueKeywords.gperf" {"compact", CSSValueCompact}, #line 309 "CSSValueKeywords.gperf" {"ignore", CSSValueIgnore}, -#line 510 "CSSValueKeywords.gperf" +#line 512 "CSSValueKeywords.gperf" {"tomato", CSSValueTomato}, #line 90 "CSSValueKeywords.gperf" {"white", CSSValueWhite}, #line 51 "CSSValueKeywords.gperf" {"small", CSSValueSmall}, -#line 362 "CSSValueKeywords.gperf" +#line 364 "CSSValueKeywords.gperf" {"content", CSSValueContent}, #line 285 "CSSValueKeywords.gperf" {"stretch", CSSValueStretch}, @@ -317,15 +320,15 @@ findValue (register const char *str, register unsigned int len) {"maroon", CSSValueMaroon}, #line 293 "CSSValueKeywords.gperf" {"single", CSSValueSingle}, -#line 374 "CSSValueKeywords.gperf" +#line 376 "CSSValueKeywords.gperf" {"ease", CSSValueEase}, #line 155 "CSSValueKeywords.gperf" {"right", CSSValueRight}, -#line 496 "CSSValueKeywords.gperf" +#line 498 "CSSValueKeywords.gperf" {"salmon", CSSValueSalmon}, -#line 508 "CSSValueKeywords.gperf" +#line 510 "CSSValueKeywords.gperf" {"tan", CSSValueTan}, -#line 544 "CSSValueKeywords.gperf" +#line 546 "CSSValueKeywords.gperf" {"tb-rl", CSSValueTbRl}, #line 39 "CSSValueKeywords.gperf" {"lighter", CSSValueLighter}, @@ -333,39 +336,39 @@ findValue (register const char *str, register unsigned int len) {"crosshair", CSSValueCrosshair}, #line 59 "CSSValueKeywords.gperf" {"wider", CSSValueWider}, -#line 351 "CSSValueKeywords.gperf" +#line 353 "CSSValueKeywords.gperf" {"caret", CSSValueCaret}, #line 189 "CSSValueKeywords.gperf" {"table", CSSValueTable}, #line 332 "CSSValueKeywords.gperf" {"listitem", CSSValueListitem}, -#line 475 "CSSValueKeywords.gperf" +#line 477 "CSSValueKeywords.gperf" {"mintcream", CSSValueMintcream}, #line 222 "CSSValueKeywords.gperf" {"w-resize", CSSValueWResize}, -#line 542 "CSSValueKeywords.gperf" +#line 544 "CSSValueKeywords.gperf" {"lr-tb", CSSValueLrTb}, #line 179 "CSSValueKeywords.gperf" {"hiragana", CSSValueHiragana}, #line 236 "CSSValueKeywords.gperf" {"rtl", CSSValueRtl}, -#line 527 "CSSValueKeywords.gperf" +#line 529 "CSSValueKeywords.gperf" {"miter", CSSValueMiter}, -#line 448 "CSSValueKeywords.gperf" +#line 450 "CSSValueKeywords.gperf" {"lightcoral", CSSValueLightcoral}, -#line 440 "CSSValueKeywords.gperf" +#line 442 "CSSValueKeywords.gperf" {"indigo", CSSValueIndigo}, #line 243 "CSSValueKeywords.gperf" {"absolute", CSSValueAbsolute}, #line 289 "CSSValueKeywords.gperf" {"horizontal", CSSValueHorizontal}, -#line 404 "CSSValueKeywords.gperf" +#line 406 "CSSValueKeywords.gperf" {"cyan", CSSValueCyan}, #line 11 "CSSValueKeywords.gperf" {"inherit", CSSValueInherit}, -#line 464 "CSSValueKeywords.gperf" +#line 466 "CSSValueKeywords.gperf" {"magenta", CSSValueMagenta}, -#line 516 "CSSValueKeywords.gperf" +#line 518 "CSSValueKeywords.gperf" {"nonzero", CSSValueNonzero}, #line 204 "CSSValueKeywords.gperf" {"pointer", CSSValuePointer}, @@ -373,7 +376,7 @@ findValue (register const char *str, register unsigned int len) {"underline", CSSValueUnderline}, #line 130 "CSSValueKeywords.gperf" {"no-repeat", CSSValueNoRepeat}, -#line 387 "CSSValueKeywords.gperf" +#line 389 "CSSValueKeywords.gperf" {"aliceblue", CSSValueAliceblue}, #line 112 "CSSValueKeywords.gperf" {"match", CSSValueMatch}, @@ -385,13 +388,13 @@ findValue (register const char *str, register unsigned int len) {"ridge", CSSValueRidge}, #line 57 "CSSValueKeywords.gperf" {"smaller", CSSValueSmaller}, -#line 395 "CSSValueKeywords.gperf" +#line 397 "CSSValueKeywords.gperf" {"brown", CSSValueBrown}, #line 230 "CSSValueKeywords.gperf" {"wait", CSSValueWait}, #line 258 "CSSValueKeywords.gperf" {"invert", CSSValueInvert}, -#line 540 "CSSValueKeywords.gperf" +#line 542 "CSSValueKeywords.gperf" {"no-change", CSSValueNoChange}, #line 32 "CSSValueKeywords.gperf" {"italic", CSSValueItalic}, @@ -409,17 +412,17 @@ findValue (register const char *str, register unsigned int len) {"intrinsic", CSSValueIntrinsic}, #line 317 "CSSValueKeywords.gperf" {"wave", CSSValueWave}, -#line 501 "CSSValueKeywords.gperf" +#line 503 "CSSValueKeywords.gperf" {"skyblue", CSSValueSkyblue}, #line 302 "CSSValueKeywords.gperf" {"infinite", CSSValueInfinite}, #line 280 "CSSValueKeywords.gperf" {"static", CSSValueStatic}, -#line 462 "CSSValueKeywords.gperf" +#line 464 "CSSValueKeywords.gperf" {"limegreen", CSSValueLimegreen}, -#line 543 "CSSValueKeywords.gperf" +#line 545 "CSSValueKeywords.gperf" {"rl-tb", CSSValueRlTb}, -#line 447 "CSSValueKeywords.gperf" +#line 449 "CSSValueKeywords.gperf" {"lightblue", CSSValueLightblue}, #line 85 "CSSValueKeywords.gperf" {"orange", CSSValueOrange}, @@ -429,23 +432,23 @@ findValue (register const char *str, register unsigned int len) {"progress", CSSValueProgress}, #line 318 "CSSValueKeywords.gperf" {"continuous", CSSValueContinuous}, -#line 385 "CSSValueKeywords.gperf" +#line 387 "CSSValueKeywords.gperf" {"fill", CSSValueFill}, #line 144 "CSSValueKeywords.gperf" {"baseline", CSSValueBaseline}, -#line 538 "CSSValueKeywords.gperf" +#line 540 "CSSValueKeywords.gperf" {"mathematical", CSSValueMathematical}, #line 207 "CSSValueKeywords.gperf" {"cell", CSSValueCell}, #line 273 "CSSValueKeywords.gperf" {"pre", CSSValuePre}, -#line 452 "CSSValueKeywords.gperf" +#line 454 "CSSValueKeywords.gperf" {"lightgreen", CSSValueLightgreen}, -#line 460 "CSSValueKeywords.gperf" +#line 462 "CSSValueKeywords.gperf" {"lightsteelblue", CSSValueLightsteelblue}, -#line 456 "CSSValueKeywords.gperf" +#line 458 "CSSValueKeywords.gperf" {"lightseagreen", CSSValueLightseagreen}, -#line 500 "CSSValueKeywords.gperf" +#line 502 "CSSValueKeywords.gperf" {"sienna", CSSValueSienna}, #line 286 "CSSValueKeywords.gperf" {"start", CSSValueStart}, @@ -465,11 +468,11 @@ findValue (register const char *str, register unsigned int len) {"transparent", CSSValueTransparent}, #line 14 "CSSValueKeywords.gperf" {"hidden", CSSValueHidden}, -#line 397 "CSSValueKeywords.gperf" +#line 399 "CSSValueKeywords.gperf" {"cadetblue", CSSValueCadetblue}, -#line 478 "CSSValueKeywords.gperf" +#line 480 "CSSValueKeywords.gperf" {"navajowhite", CSSValueNavajowhite}, -#line 502 "CSSValueKeywords.gperf" +#line 504 "CSSValueKeywords.gperf" {"slateblue", CSSValueSlateblue}, #line 308 "CSSValueKeywords.gperf" {"element", CSSValueElement}, @@ -477,11 +480,11 @@ findValue (register const char *str, register unsigned int len) {"level", CSSValueLevel}, #line 87 "CSSValueKeywords.gperf" {"red", CSSValueRed}, -#line 494 "CSSValueKeywords.gperf" +#line 496 "CSSValueKeywords.gperf" {"royalblue", CSSValueRoyalblue}, #line 163 "CSSValueKeywords.gperf" {"disc", CSSValueDisc}, -#line 433 "CSSValueKeywords.gperf" +#line 435 "CSSValueKeywords.gperf" {"ghostwhite", CSSValueGhostwhite}, #line 25 "CSSValueKeywords.gperf" {"menu", CSSValueMenu}, @@ -491,37 +494,37 @@ findValue (register const char *str, register unsigned int len) {"icon", CSSValueIcon}, #line 60 "CSSValueKeywords.gperf" {"narrower", CSSValueNarrower}, -#line 484 "CSSValueKeywords.gperf" +#line 486 "CSSValueKeywords.gperf" {"palegreen", CSSValuePalegreen}, -#line 489 "CSSValueKeywords.gperf" +#line 491 "CSSValueKeywords.gperf" {"peru", CSSValuePeru}, #line 131 "CSSValueKeywords.gperf" {"clear", CSSValueClear}, #line 52 "CSSValueKeywords.gperf" {"medium", CSSValueMedium}, -#line 477 "CSSValueKeywords.gperf" +#line 479 "CSSValueKeywords.gperf" {"moccasin", CSSValueMoccasin}, #line 162 "CSSValueKeywords.gperf" {"inside", CSSValueInside}, -#line 499 "CSSValueKeywords.gperf" +#line 501 "CSSValueKeywords.gperf" {"seashell", CSSValueSeashell}, -#line 513 "CSSValueKeywords.gperf" +#line 515 "CSSValueKeywords.gperf" {"wheat", CSSValueWheat}, #line 150 "CSSValueKeywords.gperf" {"top", CSSValueTop}, #line 156 "CSSValueKeywords.gperf" {"center", CSSValueCenter}, -#line 474 "CSSValueKeywords.gperf" +#line 476 "CSSValueKeywords.gperf" {"midnightblue", CSSValueMidnightblue}, -#line 532 "CSSValueKeywords.gperf" +#line 534 "CSSValueKeywords.gperf" {"central", CSSValueCentral}, #line 298 "CSSValueKeywords.gperf" {"up", CSSValueUp}, -#line 521 "CSSValueKeywords.gperf" +#line 523 "CSSValueKeywords.gperf" {"linearrgb", CSSValueLinearrgb}, -#line 537 "CSSValueKeywords.gperf" +#line 539 "CSSValueKeywords.gperf" {"hanging", CSSValueHanging}, -#line 398 "CSSValueKeywords.gperf" +#line 400 "CSSValueKeywords.gperf" {"chartreuse", CSSValueChartreuse}, #line 80 "CSSValueKeywords.gperf" {"green", CSSValueGreen}, @@ -529,13 +532,13 @@ findValue (register const char *str, register unsigned int len) {"teal", CSSValueTeal}, #line 245 "CSSValueKeywords.gperf" {"avoid", CSSValueAvoid}, -#line 372 "CSSValueKeywords.gperf" +#line 374 "CSSValueKeywords.gperf" {"flat", CSSValueFlat}, -#line 343 "CSSValueKeywords.gperf" +#line 345 "CSSValueKeywords.gperf" {"menulist", CSSValueMenulist}, #line 255 "CSSValueKeywords.gperf" {"hand", CSSValueHand}, -#line 380 "CSSValueKeywords.gperf" +#line 382 "CSSValueKeywords.gperf" {"reset", CSSValueReset}, #line 175 "CSSValueKeywords.gperf" {"hebrew", CSSValueHebrew}, @@ -545,11 +548,11 @@ findValue (register const char *str, register unsigned int len) {"bold", CSSValueBold}, #line 154 "CSSValueKeywords.gperf" {"left", CSSValueLeft}, -#line 528 "CSSValueKeywords.gperf" +#line 530 "CSSValueKeywords.gperf" {"bevel", CSSValueBevel}, -#line 439 "CSSValueKeywords.gperf" +#line 441 "CSSValueKeywords.gperf" {"indianred", CSSValueIndianred}, -#line 432 "CSSValueKeywords.gperf" +#line 434 "CSSValueKeywords.gperf" {"gainsboro", CSSValueGainsboro}, #line 322 "CSSValueKeywords.gperf" {"space", CSSValueSpace}, @@ -567,17 +570,17 @@ findValue (register const char *str, register unsigned int len) {"window", CSSValueWindow}, #line 271 "CSSValueKeywords.gperf" {"overline", CSSValueOverline}, -#line 434 "CSSValueKeywords.gperf" +#line 436 "CSSValueKeywords.gperf" {"gold", CSSValueGold}, #line 211 "CSSValueKeywords.gperf" {"no-drop", CSSValueNoDrop}, -#line 524 "CSSValueKeywords.gperf" +#line 526 "CSSValueKeywords.gperf" {"crispedges", CSSValueCrispedges}, -#line 384 "CSSValueKeywords.gperf" +#line 386 "CSSValueKeywords.gperf" {"painted", CSSValuePainted}, -#line 490 "CSSValueKeywords.gperf" +#line 492 "CSSValueKeywords.gperf" {"pink", CSSValuePink}, -#line 391 "CSSValueKeywords.gperf" +#line 393 "CSSValueKeywords.gperf" {"beige", CSSValueBeige}, #line 141 "CSSValueKeywords.gperf" {"xor", CSSValueXor}, @@ -591,7 +594,7 @@ findValue (register const char *str, register unsigned int len) {"mix", CSSValueMix}, #line 114 "CSSValueKeywords.gperf" {"scrollbar", CSSValueScrollbar}, -#line 361 "CSSValueKeywords.gperf" +#line 363 "CSSValueKeywords.gperf" {"border", CSSValueBorder}, #line 38 "CSSValueKeywords.gperf" {"bolder", CSSValueBolder}, @@ -599,41 +602,41 @@ findValue (register const char *str, register unsigned int len) {"caption", CSSValueCaption}, #line 242 "CSSValueKeywords.gperf" {"above", CSSValueAbove}, -#line 430 "CSSValueKeywords.gperf" +#line 432 "CSSValueKeywords.gperf" {"floralwhite", CSSValueFloralwhite}, -#line 507 "CSSValueKeywords.gperf" +#line 509 "CSSValueKeywords.gperf" {"steelblue", CSSValueSteelblue}, -#line 536 "CSSValueKeywords.gperf" +#line 538 "CSSValueKeywords.gperf" {"alphabetic", CSSValueAlphabetic}, #line 281 "CSSValueKeywords.gperf" {"thick", CSSValueThick}, -#line 491 "CSSValueKeywords.gperf" +#line 493 "CSSValueKeywords.gperf" {"plum", CSSValuePlum}, -#line 402 "CSSValueKeywords.gperf" +#line 404 "CSSValueKeywords.gperf" {"cornsilk", CSSValueCornsilk}, #line 86 "CSSValueKeywords.gperf" {"purple", CSSValuePurple}, -#line 386 "CSSValueKeywords.gperf" +#line 388 "CSSValueKeywords.gperf" {"stroke", CSSValueStroke}, #line 50 "CSSValueKeywords.gperf" {"x-small", CSSValueXSmall}, #line 69 "CSSValueKeywords.gperf" {"serif", CSSValueSerif}, -#line 392 "CSSValueKeywords.gperf" +#line 394 "CSSValueKeywords.gperf" {"bisque", CSSValueBisque}, -#line 466 "CSSValueKeywords.gperf" +#line 468 "CSSValueKeywords.gperf" {"mediumblue", CSSValueMediumblue}, -#line 431 "CSSValueKeywords.gperf" +#line 433 "CSSValueKeywords.gperf" {"forestgreen", CSSValueForestgreen}, -#line 535 "CSSValueKeywords.gperf" +#line 537 "CSSValueKeywords.gperf" {"ideographic", CSSValueIdeographic}, -#line 512 "CSSValueKeywords.gperf" +#line 514 "CSSValueKeywords.gperf" {"violet", CSSValueViolet}, #line 201 "CSSValueKeywords.gperf" {"auto", CSSValueAuto}, -#line 390 "CSSValueKeywords.gperf" +#line 392 "CSSValueKeywords.gperf" {"azure", CSSValueAzure}, -#line 443 "CSSValueKeywords.gperf" +#line 445 "CSSValueKeywords.gperf" {"lavender", CSSValueLavender}, #line 75 "CSSValueKeywords.gperf" {"aqua", CSSValueAqua}, @@ -641,23 +644,23 @@ findValue (register const char *str, register unsigned int len) {"lower", CSSValueLower}, #line 237 "CSSValueKeywords.gperf" {"capitalize", CSSValueCapitalize}, -#line 468 "CSSValueKeywords.gperf" +#line 470 "CSSValueKeywords.gperf" {"mediumpurple", CSSValueMediumpurple}, #line 88 "CSSValueKeywords.gperf" {"silver", CSSValueSilver}, -#line 454 "CSSValueKeywords.gperf" +#line 456 "CSSValueKeywords.gperf" {"lightpink", CSSValueLightpink}, #line 297 "CSSValueKeywords.gperf" {"ahead", CSSValueAhead}, -#line 363 "CSSValueKeywords.gperf" +#line 365 "CSSValueKeywords.gperf" {"padding", CSSValuePadding}, -#line 449 "CSSValueKeywords.gperf" +#line 451 "CSSValueKeywords.gperf" {"lightcyan", CSSValueLightcyan}, #line 248 "CSSValueKeywords.gperf" {"blink", CSSValueBlink}, #line 239 "CSSValueKeywords.gperf" {"lowercase", CSSValueLowercase}, -#line 498 "CSSValueKeywords.gperf" +#line 500 "CSSValueKeywords.gperf" {"seagreen", CSSValueSeagreen}, #line 294 "CSSValueKeywords.gperf" {"multiple", CSSValueMultiple}, @@ -665,41 +668,41 @@ findValue (register const char *str, register unsigned int len) {"blue", CSSValueBlue}, #line 184 "CSSValueKeywords.gperf" {"block", CSSValueBlock}, -#line 469 "CSSValueKeywords.gperf" +#line 471 "CSSValueKeywords.gperf" {"mediumseagreen", CSSValueMediumseagreen}, -#line 470 "CSSValueKeywords.gperf" +#line 472 "CSSValueKeywords.gperf" {"mediumslateblue", CSSValueMediumslateblue}, -#line 514 "CSSValueKeywords.gperf" +#line 516 "CSSValueKeywords.gperf" {"whitesmoke", CSSValueWhitesmoke}, #line 18 "CSSValueKeywords.gperf" {"outset", CSSValueOutset}, -#line 368 "CSSValueKeywords.gperf" +#line 370 "CSSValueKeywords.gperf" {"visual", CSSValueVisual}, #line 268 "CSSValueKeywords.gperf" {"nowrap", CSSValueNowrap}, #line 232 "CSSValueKeywords.gperf" {"all-scroll", CSSValueAllScroll}, -#line 438 "CSSValueKeywords.gperf" +#line 440 "CSSValueKeywords.gperf" {"hotpink", CSSValueHotpink}, #line 116 "CSSValueKeywords.gperf" {"threedface", CSSValueThreedface}, -#line 481 "CSSValueKeywords.gperf" +#line 483 "CSSValueKeywords.gperf" {"orangered", CSSValueOrangered}, -#line 482 "CSSValueKeywords.gperf" +#line 484 "CSSValueKeywords.gperf" {"orchid", CSSValueOrchid}, #line 223 "CSSValueKeywords.gperf" {"ew-resize", CSSValueEwResize}, #line 220 "CSSValueKeywords.gperf" {"sw-resize", CSSValueSwResize}, -#line 388 "CSSValueKeywords.gperf" +#line 390 "CSSValueKeywords.gperf" {"antiquewhite", CSSValueAntiquewhite}, -#line 461 "CSSValueKeywords.gperf" +#line 463 "CSSValueKeywords.gperf" {"lightyellow", CSSValueLightyellow}, #line 16 "CSSValueKeywords.gperf" {"groove", CSSValueGroove}, #line 185 "CSSValueKeywords.gperf" {"list-item", CSSValueListItem}, -#line 401 "CSSValueKeywords.gperf" +#line 403 "CSSValueKeywords.gperf" {"cornflowerblue", CSSValueCornflowerblue}, #line 217 "CSSValueKeywords.gperf" {"nw-resize", CSSValueNwResize}, @@ -717,35 +720,35 @@ findValue (register const char *str, register unsigned int len) {"listbox", CSSValueListbox}, #line 197 "CSSValueKeywords.gperf" {"table-cell", CSSValueTableCell}, -#line 376 "CSSValueKeywords.gperf" +#line 378 "CSSValueKeywords.gperf" {"ease-in", CSSValueEaseIn}, -#line 476 "CSSValueKeywords.gperf" +#line 478 "CSSValueKeywords.gperf" {"mistyrose", CSSValueMistyrose}, #line 83 "CSSValueKeywords.gperf" {"navy", CSSValueNavy}, #line 76 "CSSValueKeywords.gperf" {"black", CSSValueBlack}, -#line 495 "CSSValueKeywords.gperf" +#line 497 "CSSValueKeywords.gperf" {"saddlebrown", CSSValueSaddlebrown}, -#line 441 "CSSValueKeywords.gperf" +#line 443 "CSSValueKeywords.gperf" {"ivory", CSSValueIvory}, #line 227 "CSSValueKeywords.gperf" {"col-resize", CSSValueColResize}, -#line 389 "CSSValueKeywords.gperf" +#line 391 "CSSValueKeywords.gperf" {"aquamarine", CSSValueAquamarine}, #line 54 "CSSValueKeywords.gperf" {"x-large", CSSValueXLarge}, -#line 526 "CSSValueKeywords.gperf" +#line 528 "CSSValueKeywords.gperf" {"butt", CSSValueButt}, #line 111 "CSSValueKeywords.gperf" {"infotext", CSSValueInfotext}, #line 190 "CSSValueKeywords.gperf" {"inline-table", CSSValueInlineTable}, -#line 428 "CSSValueKeywords.gperf" +#line 430 "CSSValueKeywords.gperf" {"dodgerblue", CSSValueDodgerblue}, #line 127 "CSSValueKeywords.gperf" {"repeat", CSSValueRepeat}, -#line 506 "CSSValueKeywords.gperf" +#line 508 "CSSValueKeywords.gperf" {"springgreen", CSSValueSpringgreen}, #line 278 "CSSValueKeywords.gperf" {"separate", CSSValueSeparate}, @@ -765,33 +768,33 @@ findValue (register const char *str, register unsigned int len) {"dotted", CSSValueDotted}, #line 124 "CSSValueKeywords.gperf" {"currentcolor", CSSValueCurrentcolor}, -#line 525 "CSSValueKeywords.gperf" +#line 527 "CSSValueKeywords.gperf" {"geometricprecision", CSSValueGeometricprecision}, #line 295 "CSSValueKeywords.gperf" {"forwards", CSSValueForwards}, -#line 519 "CSSValueKeywords.gperf" +#line 521 "CSSValueKeywords.gperf" {"new", CSSValueNew}, -#line 370 "CSSValueKeywords.gperf" +#line 372 "CSSValueKeywords.gperf" {"running", CSSValueRunning}, #line 119 "CSSValueKeywords.gperf" {"threedshadow", CSSValueThreedshadow}, #line 20 "CSSValueKeywords.gperf" {"dashed", CSSValueDashed}, -#line 377 "CSSValueKeywords.gperf" +#line 379 "CSSValueKeywords.gperf" {"ease-out", CSSValueEaseOut}, #line 198 "CSSValueKeywords.gperf" {"table-caption", CSSValueTableCaption}, -#line 485 "CSSValueKeywords.gperf" +#line 487 "CSSValueKeywords.gperf" {"paleturquoise", CSSValuePaleturquoise}, -#line 379 "CSSValueKeywords.gperf" +#line 381 "CSSValueKeywords.gperf" {"document", CSSValueDocument}, #line 196 "CSSValueKeywords.gperf" {"table-column", CSSValueTableColumn}, -#line 444 "CSSValueKeywords.gperf" +#line 446 "CSSValueKeywords.gperf" {"lavenderblush", CSSValueLavenderblush}, -#line 453 "CSSValueKeywords.gperf" +#line 455 "CSSValueKeywords.gperf" {"lightgrey", CSSValueLightgrey}, -#line 451 "CSSValueKeywords.gperf" +#line 453 "CSSValueKeywords.gperf" {"lightgray", CSSValueLightgray}, #line 181 "CSSValueKeywords.gperf" {"hiragana-iroha", CSSValueHiraganaIroha}, @@ -799,7 +802,7 @@ findValue (register const char *str, register unsigned int len) {"highlighttext", CSSValueHighlighttext}, #line 108 "CSSValueKeywords.gperf" {"inactivecaption", CSSValueInactivecaption}, -#line 467 "CSSValueKeywords.gperf" +#line 469 "CSSValueKeywords.gperf" {"mediumorchid", CSSValueMediumorchid}, #line 194 "CSSValueKeywords.gperf" {"table-row", CSSValueTableRow}, @@ -807,25 +810,25 @@ findValue (register const char *str, register unsigned int len) {"windowframe", CSSValueWindowframe}, #line 299 "CSSValueKeywords.gperf" {"down", CSSValueDown}, -#line 518 "CSSValueKeywords.gperf" +#line 520 "CSSValueKeywords.gperf" {"accumulate", CSSValueAccumulate}, #line 203 "CSSValueKeywords.gperf" {"default", CSSValueDefault}, -#line 445 "CSSValueKeywords.gperf" +#line 447 "CSSValueKeywords.gperf" {"lawngreen", CSSValueLawngreen}, #line 262 "CSSValueKeywords.gperf" {"loud", CSSValueLoud}, #line 274 "CSSValueKeywords.gperf" {"pre-line", CSSValuePreLine}, -#line 459 "CSSValueKeywords.gperf" +#line 461 "CSSValueKeywords.gperf" {"lightslategrey", CSSValueLightslategrey}, -#line 458 "CSSValueKeywords.gperf" +#line 460 "CSSValueKeywords.gperf" {"lightslategray", CSSValueLightslategray}, #line 290 "CSSValueKeywords.gperf" {"vertical", CSSValueVertical}, #line 238 "CSSValueKeywords.gperf" {"uppercase", CSSValueUppercase}, -#line 522 "CSSValueKeywords.gperf" +#line 524 "CSSValueKeywords.gperf" {"optimizespeed", CSSValueOptimizespeed}, #line 229 "CSSValueKeywords.gperf" {"text", CSSValueText}, @@ -835,17 +838,17 @@ findValue (register const char *str, register unsigned int len) {"line-through", CSSValueLineThrough}, #line 132 "CSSValueKeywords.gperf" {"copy", CSSValueCopy}, -#line 504 "CSSValueKeywords.gperf" +#line 506 "CSSValueKeywords.gperf" {"slategrey", CSSValueSlategrey}, -#line 503 "CSSValueKeywords.gperf" +#line 505 "CSSValueKeywords.gperf" {"slategray", CSSValueSlategray}, -#line 435 "CSSValueKeywords.gperf" +#line 437 "CSSValueKeywords.gperf" {"goldenrod", CSSValueGoldenrod}, -#line 471 "CSSValueKeywords.gperf" +#line 473 "CSSValueKeywords.gperf" {"mediumspringgreen", CSSValueMediumspringgreen}, -#line 446 "CSSValueKeywords.gperf" +#line 448 "CSSValueKeywords.gperf" {"lemonchiffon", CSSValueLemonchiffon}, -#line 393 "CSSValueKeywords.gperf" +#line 395 "CSSValueKeywords.gperf" {"blanchedalmond", CSSValueBlanchedalmond}, #line 125 "CSSValueKeywords.gperf" {"grey", CSSValueGrey}, @@ -855,57 +858,57 @@ findValue (register const char *str, register unsigned int len) {"decimal", CSSValueDecimal}, #line 113 "CSSValueKeywords.gperf" {"menutext", CSSValueMenutext}, -#line 437 "CSSValueKeywords.gperf" +#line 439 "CSSValueKeywords.gperf" {"honeydew", CSSValueHoneydew}, #line 276 "CSSValueKeywords.gperf" {"relative", CSSValueRelative}, #line 147 "CSSValueKeywords.gperf" {"super", CSSValueSuper}, -#line 417 "CSSValueKeywords.gperf" +#line 419 "CSSValueKeywords.gperf" {"darksalmon", CSSValueDarksalmon}, -#line 360 "CSSValueKeywords.gperf" +#line 362 "CSSValueKeywords.gperf" {"round", CSSValueRound}, #line 72 "CSSValueKeywords.gperf" {"fantasy", CSSValueFantasy}, -#line 465 "CSSValueKeywords.gperf" +#line 467 "CSSValueKeywords.gperf" {"mediumaquamarine", CSSValueMediumaquamarine}, -#line 493 "CSSValueKeywords.gperf" +#line 495 "CSSValueKeywords.gperf" {"rosybrown", CSSValueRosybrown}, -#line 371 "CSSValueKeywords.gperf" +#line 373 "CSSValueKeywords.gperf" {"paused", CSSValuePaused}, #line 22 "CSSValueKeywords.gperf" {"double", CSSValueDouble}, #line 270 "CSSValueKeywords.gperf" {"overlay", CSSValueOverlay}, -#line 358 "CSSValueKeywords.gperf" +#line 360 "CSSValueKeywords.gperf" {"textarea", CSSValueTextarea}, -#line 429 "CSSValueKeywords.gperf" +#line 431 "CSSValueKeywords.gperf" {"firebrick", CSSValueFirebrick}, -#line 382 "CSSValueKeywords.gperf" +#line 384 "CSSValueKeywords.gperf" {"visiblefill", CSSValueVisiblefill}, -#line 517 "CSSValueKeywords.gperf" +#line 519 "CSSValueKeywords.gperf" {"evenodd", CSSValueEvenodd}, #line 118 "CSSValueKeywords.gperf" {"threedlightshadow", CSSValueThreedlightshadow}, #line 275 "CSSValueKeywords.gperf" {"pre-wrap", CSSValuePreWrap}, -#line 511 "CSSValueKeywords.gperf" +#line 513 "CSSValueKeywords.gperf" {"turquoise", CSSValueTurquoise}, #line 70 "CSSValueKeywords.gperf" {"sans-serif", CSSValueSansSerif}, #line 31 "CSSValueKeywords.gperf" {"status-bar", CSSValueStatusBar}, -#line 483 "CSSValueKeywords.gperf" +#line 485 "CSSValueKeywords.gperf" {"palegoldenrod", CSSValuePalegoldenrod}, #line 244 "CSSValueKeywords.gperf" {"always", CSSValueAlways}, -#line 436 "CSSValueKeywords.gperf" +#line 438 "CSSValueKeywords.gperf" {"greenyellow", CSSValueGreenyellow}, #line 250 "CSSValueKeywords.gperf" {"close-quote", CSSValueCloseQuote}, -#line 480 "CSSValueKeywords.gperf" +#line 482 "CSSValueKeywords.gperf" {"olivedrab", CSSValueOlivedrab}, -#line 541 "CSSValueKeywords.gperf" +#line 543 "CSSValueKeywords.gperf" {"reset-size", CSSValueResetSize}, #line 212 "CSSValueKeywords.gperf" {"not-allowed", CSSValueNotAllowed}, @@ -915,7 +918,7 @@ findValue (register const char *str, register unsigned int len) {"buttonface", CSSValueButtonface}, #line 122 "CSSValueKeywords.gperf" {"windowtext", CSSValueWindowtext}, -#line 472 "CSSValueKeywords.gperf" +#line 474 "CSSValueKeywords.gperf" {"mediumturquoise", CSSValueMediumturquoise}, #line 49 "CSSValueKeywords.gperf" {"xx-small", CSSValueXxSmall}, @@ -923,53 +926,53 @@ findValue (register const char *str, register unsigned int len) {"cursive", CSSValueCursive}, #line 266 "CSSValueKeywords.gperf" {"no-close-quote", CSSValueNoCloseQuote}, -#line 427 "CSSValueKeywords.gperf" +#line 429 "CSSValueKeywords.gperf" {"dimgrey", CSSValueDimgrey}, -#line 426 "CSSValueKeywords.gperf" +#line 428 "CSSValueKeywords.gperf" {"dimgray", CSSValueDimgray}, -#line 488 "CSSValueKeywords.gperf" +#line 490 "CSSValueKeywords.gperf" {"peachpuff", CSSValuePeachpuff}, #line 225 "CSSValueKeywords.gperf" {"nesw-resize", CSSValueNeswResize}, #line 267 "CSSValueKeywords.gperf" {"no-open-quote", CSSValueNoOpenQuote}, -#line 539 "CSSValueKeywords.gperf" +#line 541 "CSSValueKeywords.gperf" {"use-script", CSSValueUseScript}, -#line 405 "CSSValueKeywords.gperf" +#line 407 "CSSValueKeywords.gperf" {"darkblue", CSSValueDarkblue}, #line 291 "CSSValueKeywords.gperf" {"inline-axis", CSSValueInlineAxis}, -#line 352 "CSSValueKeywords.gperf" +#line 354 "CSSValueKeywords.gperf" {"searchfield", CSSValueSearchfield}, -#line 381 "CSSValueKeywords.gperf" +#line 383 "CSSValueKeywords.gperf" {"visiblepainted", CSSValueVisiblepainted}, #line 254 "CSSValueKeywords.gperf" {"fixed", CSSValueFixed}, -#line 442 "CSSValueKeywords.gperf" +#line 444 "CSSValueKeywords.gperf" {"khaki", CSSValueKhaki}, -#line 412 "CSSValueKeywords.gperf" +#line 414 "CSSValueKeywords.gperf" {"darkmagenta", CSSValueDarkmagenta}, #line 103 "CSSValueKeywords.gperf" {"captiontext", CSSValueCaptiontext}, -#line 515 "CSSValueKeywords.gperf" +#line 517 "CSSValueKeywords.gperf" {"yellowgreen", CSSValueYellowgreen}, -#line 486 "CSSValueKeywords.gperf" +#line 488 "CSSValueKeywords.gperf" {"palevioletred", CSSValuePalevioletred}, -#line 487 "CSSValueKeywords.gperf" +#line 489 "CSSValueKeywords.gperf" {"papayawhip", CSSValuePapayawhip}, -#line 492 "CSSValueKeywords.gperf" +#line 494 "CSSValueKeywords.gperf" {"powderblue", CSSValuePowderblue}, #line 78 "CSSValueKeywords.gperf" {"fuchsia", CSSValueFuchsia}, -#line 409 "CSSValueKeywords.gperf" +#line 411 "CSSValueKeywords.gperf" {"darkgreen", CSSValueDarkgreen}, #line 100 "CSSValueKeywords.gperf" {"buttonhighlight", CSSValueButtonhighlight}, -#line 418 "CSSValueKeywords.gperf" +#line 420 "CSSValueKeywords.gperf" {"darkseagreen", CSSValueDarkseagreen}, -#line 419 "CSSValueKeywords.gperf" +#line 421 "CSSValueKeywords.gperf" {"darkslateblue", CSSValueDarkslateblue}, -#line 414 "CSSValueKeywords.gperf" +#line 416 "CSSValueKeywords.gperf" {"darkorange", CSSValueDarkorange}, #line 186 "CSSValueKeywords.gperf" {"run-in", CSSValueRunIn}, @@ -979,7 +982,7 @@ findValue (register const char *str, register unsigned int len) {"buttonshadow", CSSValueButtonshadow}, #line 180 "CSSValueKeywords.gperf" {"katakana", CSSValueKatakana}, -#line 347 "CSSValueKeywords.gperf" +#line 349 "CSSValueKeywords.gperf" {"slider-horizontal", CSSValueSliderHorizontal}, #line 134 "CSSValueKeywords.gperf" {"source-in", CSSValueSourceIn}, @@ -987,41 +990,41 @@ findValue (register const char *str, register unsigned int len) {"inline-block", CSSValueInlineBlock}, #line 172 "CSSValueKeywords.gperf" {"lower-latin", CSSValueLowerLatin}, -#line 394 "CSSValueKeywords.gperf" +#line 396 "CSSValueKeywords.gperf" {"blueviolet", CSSValueBlueviolet}, #line 136 "CSSValueKeywords.gperf" {"source-atop", CSSValueSourceAtop}, #line 226 "CSSValueKeywords.gperf" {"nwse-resize", CSSValueNwseResize}, -#line 497 "CSSValueKeywords.gperf" +#line 499 "CSSValueKeywords.gperf" {"sandybrown", CSSValueSandybrown}, #line 208 "CSSValueKeywords.gperf" {"context-menu", CSSValueContextMenu}, #line 168 "CSSValueKeywords.gperf" {"lower-roman", CSSValueLowerRoman}, -#line 344 "CSSValueKeywords.gperf" +#line 346 "CSSValueKeywords.gperf" {"menulist-button", CSSValueMenulistButton}, #line 319 "CSSValueKeywords.gperf" {"skip-white-space", CSSValueSkipWhiteSpace}, #line 55 "CSSValueKeywords.gperf" {"xx-large", CSSValueXxLarge}, -#line 338 "CSSValueKeywords.gperf" +#line 340 "CSSValueKeywords.gperf" {"media-slider", CSSValueMediaSlider}, -#line 366 "CSSValueKeywords.gperf" +#line 368 "CSSValueKeywords.gperf" {"content-box", CSSValueContentBox}, -#line 457 "CSSValueKeywords.gperf" +#line 459 "CSSValueKeywords.gperf" {"lightskyblue", CSSValueLightskyblue}, #line 315 "CSSValueKeywords.gperf" {"dot-dash", CSSValueDotDash}, -#line 531 "CSSValueKeywords.gperf" +#line 533 "CSSValueKeywords.gperf" {"after-edge", CSSValueAfterEdge}, #line 135 "CSSValueKeywords.gperf" {"source-out", CSSValueSourceOut}, #line 228 "CSSValueKeywords.gperf" {"row-resize", CSSValueRowResize}, -#line 383 "CSSValueKeywords.gperf" +#line 385 "CSSValueKeywords.gperf" {"visiblestroke", CSSValueVisiblestroke}, -#line 416 "CSSValueKeywords.gperf" +#line 418 "CSSValueKeywords.gperf" {"darkred", CSSValueDarkred}, #line 107 "CSSValueKeywords.gperf" {"inactiveborder", CSSValueInactiveborder}, @@ -1029,15 +1032,15 @@ findValue (register const char *str, register unsigned int len) {"buttontext", CSSValueButtontext}, #line 104 "CSSValueKeywords.gperf" {"graytext", CSSValueGraytext}, -#line 378 "CSSValueKeywords.gperf" +#line 380 "CSSValueKeywords.gperf" {"ease-in-out", CSSValueEaseInOut}, #line 138 "CSSValueKeywords.gperf" {"destination-in", CSSValueDestinationIn}, -#line 415 "CSSValueKeywords.gperf" +#line 417 "CSSValueKeywords.gperf" {"darkorchid", CSSValueDarkorchid}, #line 143 "CSSValueKeywords.gperf" {"plus-lighter", CSSValuePlusLighter}, -#line 473 "CSSValueKeywords.gperf" +#line 475 "CSSValueKeywords.gperf" {"mediumvioletred", CSSValueMediumvioletred}, #line 97 "CSSValueKeywords.gperf" {"appworkspace", CSSValueAppworkspace}, @@ -1051,7 +1054,7 @@ findValue (register const char *str, register unsigned int len) {"push-button", CSSValuePushButton}, #line 320 "CSSValueKeywords.gperf" {"break-all", CSSValueBreakAll}, -#line 529 "CSSValueKeywords.gperf" +#line 531 "CSSValueKeywords.gperf" {"optimizelegibility", CSSValueOptimizelegibility}, #line 109 "CSSValueKeywords.gperf" {"inactivecaptiontext", CSSValueInactivecaptiontext}, @@ -1059,15 +1062,15 @@ findValue (register const char *str, register unsigned int len) {"justify", CSSValueJustify}, #line 173 "CSSValueKeywords.gperf" {"upper-alpha", CSSValueUpperAlpha}, -#line 349 "CSSValueKeywords.gperf" +#line 351 "CSSValueKeywords.gperf" {"sliderthumb-horizontal", CSSValueSliderthumbHorizontal}, -#line 424 "CSSValueKeywords.gperf" +#line 426 "CSSValueKeywords.gperf" {"deeppink", CSSValueDeeppink}, #line 139 "CSSValueKeywords.gperf" {"destination-out", CSSValueDestinationOut}, #line 61 "CSSValueKeywords.gperf" {"ultra-condensed", CSSValueUltraCondensed}, -#line 406 "CSSValueKeywords.gperf" +#line 408 "CSSValueKeywords.gperf" {"darkcyan", CSSValueDarkcyan}, #line 174 "CSSValueKeywords.gperf" {"upper-latin", CSSValueUpperLatin}, @@ -1075,15 +1078,15 @@ findValue (register const char *str, register unsigned int len) {"text-top", CSSValueTextTop}, #line 296 "CSSValueKeywords.gperf" {"backwards", CSSValueBackwards}, -#line 423 "CSSValueKeywords.gperf" +#line 425 "CSSValueKeywords.gperf" {"darkviolet", CSSValueDarkviolet}, -#line 357 "CSSValueKeywords.gperf" +#line 359 "CSSValueKeywords.gperf" {"textfield", CSSValueTextfield}, #line 169 "CSSValueKeywords.gperf" {"upper-roman", CSSValueUpperRoman}, #line 327 "CSSValueKeywords.gperf" {"square-button", CSSValueSquareButton}, -#line 339 "CSSValueKeywords.gperf" +#line 341 "CSSValueKeywords.gperf" {"media-sliderthumb", CSSValueMediaSliderthumb}, #line 64 "CSSValueKeywords.gperf" {"semi-condensed", CSSValueSemiCondensed}, @@ -1095,21 +1098,21 @@ findValue (register const char *str, register unsigned int len) {"read-write", CSSValueReadWrite}, #line 95 "CSSValueKeywords.gperf" {"activeborder", CSSValueActiveborder}, -#line 345 "CSSValueKeywords.gperf" +#line 347 "CSSValueKeywords.gperf" {"menulist-text", CSSValueMenulistText}, -#line 396 "CSSValueKeywords.gperf" +#line 398 "CSSValueKeywords.gperf" {"burlywood", CSSValueBurlywood}, -#line 523 "CSSValueKeywords.gperf" +#line 525 "CSSValueKeywords.gperf" {"optimizequality", CSSValueOptimizequality}, -#line 450 "CSSValueKeywords.gperf" +#line 452 "CSSValueKeywords.gperf" {"lightgoldenrodyellow", CSSValueLightgoldenrodyellow}, -#line 422 "CSSValueKeywords.gperf" +#line 424 "CSSValueKeywords.gperf" {"darkturquoise", CSSValueDarkturquoise}, -#line 530 "CSSValueKeywords.gperf" +#line 532 "CSSValueKeywords.gperf" {"before-edge", CSSValueBeforeEdge}, #line 26 "CSSValueKeywords.gperf" {"message-box", CSSValueMessageBox}, -#line 348 "CSSValueKeywords.gperf" +#line 350 "CSSValueKeywords.gperf" {"slider-vertical", CSSValueSliderVertical}, #line 149 "CSSValueKeywords.gperf" {"text-bottom", CSSValueTextBottom}, @@ -1119,15 +1122,13 @@ findValue (register const char *str, register unsigned int len) {"cjk-ideographic", CSSValueCjkIdeographic}, #line 98 "CSSValueKeywords.gperf" {"background", CSSValueBackground}, -#line 410 "CSSValueKeywords.gperf" +#line 412 "CSSValueKeywords.gperf" {"darkgrey", CSSValueDarkgrey}, #line 195 "CSSValueKeywords.gperf" {"table-column-group", CSSValueTableColumnGroup}, -#line 408 "CSSValueKeywords.gperf" +#line 410 "CSSValueKeywords.gperf" {"darkgray", CSSValueDarkgray}, -#line 340 "CSSValueKeywords.gperf" - {"media-timeline-container", CSSValueMediaTimelineContainer}, -#line 365 "CSSValueKeywords.gperf" +#line 367 "CSSValueKeywords.gperf" {"border-box", CSSValueBorderBox}, #line 330 "CSSValueKeywords.gperf" {"default-button", CSSValueDefaultButton}, @@ -1137,17 +1138,17 @@ findValue (register const char *str, register unsigned int len) {"bidi-override", CSSValueBidiOverride}, #line 115 "CSSValueKeywords.gperf" {"threeddarkshadow", CSSValueThreeddarkshadow}, -#line 413 "CSSValueKeywords.gperf" +#line 415 "CSSValueKeywords.gperf" {"darkolivegreen", CSSValueDarkolivegreen}, #line 191 "CSSValueKeywords.gperf" {"table-row-group", CSSValueTableRowGroup}, -#line 421 "CSSValueKeywords.gperf" +#line 423 "CSSValueKeywords.gperf" {"darkslategrey", CSSValueDarkslategrey}, -#line 420 "CSSValueKeywords.gperf" +#line 422 "CSSValueKeywords.gperf" {"darkslategray", CSSValueDarkslategray}, -#line 364 "CSSValueKeywords.gperf" +#line 366 "CSSValueKeywords.gperf" {"padding-box", CSSValuePaddingBox}, -#line 373 "CSSValueKeywords.gperf" +#line 375 "CSSValueKeywords.gperf" {"preserve-3d", CSSValuePreserve3d}, #line 133 "CSSValueKeywords.gperf" {"source-over", CSSValueSourceOver}, @@ -1155,7 +1156,7 @@ findValue (register const char *str, register unsigned int len) {"repeat-x", CSSValueRepeatX}, #line 334 "CSSValueKeywords.gperf" {"media-mute-button", CSSValueMediaMuteButton}, -#line 407 "CSSValueKeywords.gperf" +#line 409 "CSSValueKeywords.gperf" {"darkgoldenrod", CSSValueDarkgoldenrod}, #line 129 "CSSValueKeywords.gperf" {"repeat-y", CSSValueRepeatY}, @@ -1165,7 +1166,7 @@ findValue (register const char *str, register unsigned int len) {"lower-greek", CSSValueLowerGreek}, #line 305 "CSSValueKeywords.gperf" {"read-only", CSSValueReadOnly}, -#line 350 "CSSValueKeywords.gperf" +#line 352 "CSSValueKeywords.gperf" {"sliderthumb-vertical", CSSValueSliderthumbVertical}, #line 321 "CSSValueKeywords.gperf" {"break-word", CSSValueBreakWord}, @@ -1173,7 +1174,7 @@ findValue (register const char *str, register unsigned int len) {"extra-condensed", CSSValueExtraCondensed}, #line 329 "CSSValueKeywords.gperf" {"button-bevel", CSSValueButtonBevel}, -#line 411 "CSSValueKeywords.gperf" +#line 413 "CSSValueKeywords.gperf" {"darkkhaki", CSSValueDarkkhaki}, #line 137 "CSSValueKeywords.gperf" {"destination-over", CSSValueDestinationOver}, @@ -1189,13 +1190,15 @@ findValue (register const char *str, register unsigned int len) {"semi-expanded", CSSValueSemiExpanded}, #line 142 "CSSValueKeywords.gperf" {"plus-darker", CSSValuePlusDarker}, -#line 425 "CSSValueKeywords.gperf" +#line 427 "CSSValueKeywords.gperf" {"deepskyblue", CSSValueDeepskyblue}, #line 333 "CSSValueKeywords.gperf" {"media-fullscreen-button", CSSValueMediaFullscreenButton}, -#line 353 "CSSValueKeywords.gperf" +#line 355 "CSSValueKeywords.gperf" {"searchfield-decoration", CSSValueSearchfieldDecoration}, -#line 346 "CSSValueKeywords.gperf" +#line 338 "CSSValueKeywords.gperf" + {"media-rewind-button", CSSValueMediaRewindButton}, +#line 348 "CSSValueKeywords.gperf" {"menulist-textfield", CSSValueMenulistTextfield}, #line 316 "CSSValueKeywords.gperf" {"dot-dot-dash", CSSValueDotDotDash}, @@ -1203,9 +1206,9 @@ findValue (register const char *str, register unsigned int len) {"media-play-button", CSSValueMediaPlayButton}, #line 67 "CSSValueKeywords.gperf" {"extra-expanded", CSSValueExtraExpanded}, -#line 356 "CSSValueKeywords.gperf" +#line 358 "CSSValueKeywords.gperf" {"searchfield-cancel-button", CSSValueSearchfieldCancelButton}, -#line 359 "CSSValueKeywords.gperf" +#line 361 "CSSValueKeywords.gperf" {"caps-lock-indicator", CSSValueCapsLockIndicator}, #line 153 "CSSValueKeywords.gperf" {"-webkit-auto", CSSValueWebkitAuto}, @@ -1215,21 +1218,23 @@ findValue (register const char *str, register unsigned int len) {"decimal-leading-zero", CSSValueDecimalLeadingZero}, #line 30 "CSSValueKeywords.gperf" {"-webkit-control", CSSValueWebkitControl}, -#line 355 "CSSValueKeywords.gperf" +#line 357 "CSSValueKeywords.gperf" {"searchfield-results-button", CSSValueSearchfieldResultsButton}, #line 284 "CSSValueKeywords.gperf" {"-webkit-nowrap", CSSValueWebkitNowrap}, #line 159 "CSSValueKeywords.gperf" {"-webkit-right", CSSValueWebkitRight}, -#line 534 "CSSValueKeywords.gperf" +#line 342 "CSSValueKeywords.gperf" + {"media-controls-background", CSSValueMediaControlsBackground}, +#line 536 "CSSValueKeywords.gperf" {"text-after-edge", CSSValueTextAfterEdge}, #line 158 "CSSValueKeywords.gperf" {"-webkit-left", CSSValueWebkitLeft}, #line 233 "CSSValueKeywords.gperf" {"-webkit-grab", CSSValueWebkitGrab}, -#line 533 "CSSValueKeywords.gperf" +#line 535 "CSSValueKeywords.gperf" {"text-before-edge", CSSValueTextBeforeEdge}, -#line 354 "CSSValueKeywords.gperf" +#line 356 "CSSValueKeywords.gperf" {"searchfield-results-decoration", CSSValueSearchfieldResultsDecoration}, #line 93 "CSSValueKeywords.gperf" {"-webkit-link", CSSValueWebkitLink}, @@ -1243,14 +1248,16 @@ findValue (register const char *str, register unsigned int len) {"-webkit-grabbing", CSSValueWebkitGrabbing}, #line 213 "CSSValueKeywords.gperf" {"-webkit-zoom-in", CSSValueWebkitZoomIn}, -#line 342 "CSSValueKeywords.gperf" +#line 344 "CSSValueKeywords.gperf" {"media-time-remaining-display", CSSValueMediaTimeRemainingDisplay}, -#line 341 "CSSValueKeywords.gperf" +#line 343 "CSSValueKeywords.gperf" {"media-current-time-display", CSSValueMediaCurrentTimeDisplay}, #line 29 "CSSValueKeywords.gperf" {"-webkit-small-control", CSSValueWebkitSmallControl}, #line 214 "CSSValueKeywords.gperf" {"-webkit-zoom-out", CSSValueWebkitZoomOut}, +#line 339 "CSSValueKeywords.gperf" + {"media-return-to-realtime-button", CSSValueMediaReturnToRealtimeButton}, #line 28 "CSSValueKeywords.gperf" {"-webkit-mini-control", CSSValueWebkitMiniControl}, #line 336 "CSSValueKeywords.gperf" @@ -1584,72 +1591,71 @@ findValue (register const char *str, register unsigned int len) -1, -1, 458, -1, -1, -1, -1, 459, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 460, 461, -1, -1, -1, 462, 463, -1, -1, - 464, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 465, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 466, -1, -1, -1, -1, -1, -1, -1, -1, - 467, 468, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 469, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 470, -1, -1, -1, - -1, -1, 471, -1, -1, -1, -1, -1, -1, -1, + 464, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 465, -1, -1, -1, -1, -1, -1, -1, -1, + 466, 467, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 468, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 472, -1, -1, -1, -1, 473, -1, -1, + -1, -1, -1, -1, -1, -1, 469, -1, -1, -1, + -1, -1, 470, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 471, -1, -1, -1, -1, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 474, -1, -1, -1, 475, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 473, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 476, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 477, -1, -1, -1, 478, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 475, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 476, -1, -1, -1, 477, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 479, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 478, 479, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 481, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 482, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 481, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 483, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 484, -1, -1, + -1, -1, -1, -1, -1, -1, 482, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 485, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 483, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 484, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 486, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 485, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 487, -1, -1, -1, -1, - -1, 488, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 489, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 486, -1, -1, -1, -1, + -1, 487, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 488, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 490, -1, -1, -1, -1, - -1, 491, 492, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 489, -1, -1, -1, -1, + -1, 490, 491, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 493, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 492, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 493, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -1657,26 +1663,27 @@ findValue (register const char *str, register unsigned int len) -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 495, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 496, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 495, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 497, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 498, -1, -1, -1, -1, -1, -1, -1, -1, + 496, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 497, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 498, -1, -1, -1, -1, -1, -1, -1, -1, 499, 500, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -1789,14 +1796,14 @@ findValue (register const char *str, register unsigned int len) -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 511, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 511, -1, -1, -1, 512, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 512, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 513, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 513, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, + 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 515, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -1806,10 +1813,10 @@ findValue (register const char *str, register unsigned int len) -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 515, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 516, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 516, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 517, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -1832,7 +1839,7 @@ findValue (register const char *str, register unsigned int len) -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 517, 518, -1, -1, -1, + -1, -1, -1, -1, -1, 518, 519, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -1842,46 +1849,46 @@ findValue (register const char *str, register unsigned int len) -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 519, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 520, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 520, -1, 521, -1, -1, + -1, -1, -1, -1, -1, 521, -1, 522, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 522, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 523, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 523, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 524, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 524, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 525, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 525, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 526, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 526, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 527, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 528, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 527, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 529, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 528, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 530, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -1911,7 +1918,7 @@ findValue (register const char *str, register unsigned int len) -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 529, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 531, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -1926,7 +1933,7 @@ findValue (register const char *str, register unsigned int len) -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 530, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 532, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -1942,7 +1949,7 @@ findValue (register const char *str, register unsigned int len) -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 531, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 533, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -1958,7 +1965,7 @@ findValue (register const char *str, register unsigned int len) -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 532, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 534, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -1976,7 +1983,7 @@ findValue (register const char *str, register unsigned int len) -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 533, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 535, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -1984,7 +1991,7 @@ findValue (register const char *str, register unsigned int len) -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 534, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 536, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -2065,7 +2072,7 @@ findValue (register const char *str, register unsigned int len) -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 535, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 537, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -2150,7 +2157,7 @@ findValue (register const char *str, register unsigned int len) -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 536 + -1, 538 }; if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) @@ -2172,7 +2179,7 @@ findValue (register const char *str, register unsigned int len) } return 0; } -#line 548 "CSSValueKeywords.gperf" +#line 550 "CSSValueKeywords.gperf" static const char * const valueList[] = { "", @@ -2503,9 +2510,11 @@ static const char * const valueList[] = { "media-play-button", "media-seek-back-button", "media-seek-forward-button", +"media-rewind-button", +"media-return-to-realtime-button", "media-slider", "media-sliderthumb", -"media-timeline-container", +"media-controls-background", "media-current-time-display", "media-time-remaining-display", "menulist", diff --git a/src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.h b/src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.h index 8b6c669..b8f83c4 100644 --- a/src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.h +++ b/src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.h @@ -331,218 +331,220 @@ const int CSSValueMediaMuteButton = 324; const int CSSValueMediaPlayButton = 325; const int CSSValueMediaSeekBackButton = 326; const int CSSValueMediaSeekForwardButton = 327; -const int CSSValueMediaSlider = 328; -const int CSSValueMediaSliderthumb = 329; -const int CSSValueMediaTimelineContainer = 330; -const int CSSValueMediaCurrentTimeDisplay = 331; -const int CSSValueMediaTimeRemainingDisplay = 332; -const int CSSValueMenulist = 333; -const int CSSValueMenulistButton = 334; -const int CSSValueMenulistText = 335; -const int CSSValueMenulistTextfield = 336; -const int CSSValueSliderHorizontal = 337; -const int CSSValueSliderVertical = 338; -const int CSSValueSliderthumbHorizontal = 339; -const int CSSValueSliderthumbVertical = 340; -const int CSSValueCaret = 341; -const int CSSValueSearchfield = 342; -const int CSSValueSearchfieldDecoration = 343; -const int CSSValueSearchfieldResultsDecoration = 344; -const int CSSValueSearchfieldResultsButton = 345; -const int CSSValueSearchfieldCancelButton = 346; -const int CSSValueTextfield = 347; -const int CSSValueTextarea = 348; -const int CSSValueCapsLockIndicator = 349; -const int CSSValueRound = 350; -const int CSSValueBorder = 351; -const int CSSValueContent = 352; -const int CSSValuePadding = 353; -const int CSSValuePaddingBox = 354; -const int CSSValueBorderBox = 355; -const int CSSValueContentBox = 356; -const int CSSValueLogical = 357; -const int CSSValueVisual = 358; -const int CSSValueLines = 359; -const int CSSValueRunning = 360; -const int CSSValuePaused = 361; -const int CSSValueFlat = 362; -const int CSSValuePreserve3d = 363; -const int CSSValueEase = 364; -const int CSSValueLinear = 365; -const int CSSValueEaseIn = 366; -const int CSSValueEaseOut = 367; -const int CSSValueEaseInOut = 368; -const int CSSValueDocument = 369; -const int CSSValueReset = 370; -const int CSSValueVisiblepainted = 371; -const int CSSValueVisiblefill = 372; -const int CSSValueVisiblestroke = 373; -const int CSSValuePainted = 374; -const int CSSValueFill = 375; -const int CSSValueStroke = 376; -const int CSSValueAliceblue = 377; -const int CSSValueAntiquewhite = 378; -const int CSSValueAquamarine = 379; -const int CSSValueAzure = 380; -const int CSSValueBeige = 381; -const int CSSValueBisque = 382; -const int CSSValueBlanchedalmond = 383; -const int CSSValueBlueviolet = 384; -const int CSSValueBrown = 385; -const int CSSValueBurlywood = 386; -const int CSSValueCadetblue = 387; -const int CSSValueChartreuse = 388; -const int CSSValueChocolate = 389; -const int CSSValueCoral = 390; -const int CSSValueCornflowerblue = 391; -const int CSSValueCornsilk = 392; -const int CSSValueCrimson = 393; -const int CSSValueCyan = 394; -const int CSSValueDarkblue = 395; -const int CSSValueDarkcyan = 396; -const int CSSValueDarkgoldenrod = 397; -const int CSSValueDarkgray = 398; -const int CSSValueDarkgreen = 399; -const int CSSValueDarkgrey = 400; -const int CSSValueDarkkhaki = 401; -const int CSSValueDarkmagenta = 402; -const int CSSValueDarkolivegreen = 403; -const int CSSValueDarkorange = 404; -const int CSSValueDarkorchid = 405; -const int CSSValueDarkred = 406; -const int CSSValueDarksalmon = 407; -const int CSSValueDarkseagreen = 408; -const int CSSValueDarkslateblue = 409; -const int CSSValueDarkslategray = 410; -const int CSSValueDarkslategrey = 411; -const int CSSValueDarkturquoise = 412; -const int CSSValueDarkviolet = 413; -const int CSSValueDeeppink = 414; -const int CSSValueDeepskyblue = 415; -const int CSSValueDimgray = 416; -const int CSSValueDimgrey = 417; -const int CSSValueDodgerblue = 418; -const int CSSValueFirebrick = 419; -const int CSSValueFloralwhite = 420; -const int CSSValueForestgreen = 421; -const int CSSValueGainsboro = 422; -const int CSSValueGhostwhite = 423; -const int CSSValueGold = 424; -const int CSSValueGoldenrod = 425; -const int CSSValueGreenyellow = 426; -const int CSSValueHoneydew = 427; -const int CSSValueHotpink = 428; -const int CSSValueIndianred = 429; -const int CSSValueIndigo = 430; -const int CSSValueIvory = 431; -const int CSSValueKhaki = 432; -const int CSSValueLavender = 433; -const int CSSValueLavenderblush = 434; -const int CSSValueLawngreen = 435; -const int CSSValueLemonchiffon = 436; -const int CSSValueLightblue = 437; -const int CSSValueLightcoral = 438; -const int CSSValueLightcyan = 439; -const int CSSValueLightgoldenrodyellow = 440; -const int CSSValueLightgray = 441; -const int CSSValueLightgreen = 442; -const int CSSValueLightgrey = 443; -const int CSSValueLightpink = 444; -const int CSSValueLightsalmon = 445; -const int CSSValueLightseagreen = 446; -const int CSSValueLightskyblue = 447; -const int CSSValueLightslategray = 448; -const int CSSValueLightslategrey = 449; -const int CSSValueLightsteelblue = 450; -const int CSSValueLightyellow = 451; -const int CSSValueLimegreen = 452; -const int CSSValueLinen = 453; -const int CSSValueMagenta = 454; -const int CSSValueMediumaquamarine = 455; -const int CSSValueMediumblue = 456; -const int CSSValueMediumorchid = 457; -const int CSSValueMediumpurple = 458; -const int CSSValueMediumseagreen = 459; -const int CSSValueMediumslateblue = 460; -const int CSSValueMediumspringgreen = 461; -const int CSSValueMediumturquoise = 462; -const int CSSValueMediumvioletred = 463; -const int CSSValueMidnightblue = 464; -const int CSSValueMintcream = 465; -const int CSSValueMistyrose = 466; -const int CSSValueMoccasin = 467; -const int CSSValueNavajowhite = 468; -const int CSSValueOldlace = 469; -const int CSSValueOlivedrab = 470; -const int CSSValueOrangered = 471; -const int CSSValueOrchid = 472; -const int CSSValuePalegoldenrod = 473; -const int CSSValuePalegreen = 474; -const int CSSValuePaleturquoise = 475; -const int CSSValuePalevioletred = 476; -const int CSSValuePapayawhip = 477; -const int CSSValuePeachpuff = 478; -const int CSSValuePeru = 479; -const int CSSValuePink = 480; -const int CSSValuePlum = 481; -const int CSSValuePowderblue = 482; -const int CSSValueRosybrown = 483; -const int CSSValueRoyalblue = 484; -const int CSSValueSaddlebrown = 485; -const int CSSValueSalmon = 486; -const int CSSValueSandybrown = 487; -const int CSSValueSeagreen = 488; -const int CSSValueSeashell = 489; -const int CSSValueSienna = 490; -const int CSSValueSkyblue = 491; -const int CSSValueSlateblue = 492; -const int CSSValueSlategray = 493; -const int CSSValueSlategrey = 494; -const int CSSValueSnow = 495; -const int CSSValueSpringgreen = 496; -const int CSSValueSteelblue = 497; -const int CSSValueTan = 498; -const int CSSValueThistle = 499; -const int CSSValueTomato = 500; -const int CSSValueTurquoise = 501; -const int CSSValueViolet = 502; -const int CSSValueWheat = 503; -const int CSSValueWhitesmoke = 504; -const int CSSValueYellowgreen = 505; -const int CSSValueNonzero = 506; -const int CSSValueEvenodd = 507; -const int CSSValueAccumulate = 508; -const int CSSValueNew = 509; -const int CSSValueSrgb = 510; -const int CSSValueLinearrgb = 511; -const int CSSValueOptimizespeed = 512; -const int CSSValueOptimizequality = 513; -const int CSSValueCrispedges = 514; -const int CSSValueGeometricprecision = 515; -const int CSSValueButt = 516; -const int CSSValueMiter = 517; -const int CSSValueBevel = 518; -const int CSSValueOptimizelegibility = 519; -const int CSSValueBeforeEdge = 520; -const int CSSValueAfterEdge = 521; -const int CSSValueCentral = 522; -const int CSSValueTextBeforeEdge = 523; -const int CSSValueTextAfterEdge = 524; -const int CSSValueIdeographic = 525; -const int CSSValueAlphabetic = 526; -const int CSSValueHanging = 527; -const int CSSValueMathematical = 528; -const int CSSValueUseScript = 529; -const int CSSValueNoChange = 530; -const int CSSValueResetSize = 531; -const int CSSValueLrTb = 532; -const int CSSValueRlTb = 533; -const int CSSValueTbRl = 534; -const int CSSValueLr = 535; -const int CSSValueRl = 536; -const int CSSValueTb = 537; -const int numCSSValueKeywords = 538; -const size_t maxCSSValueKeywordLength = 30; +const int CSSValueMediaRewindButton = 328; +const int CSSValueMediaReturnToRealtimeButton = 329; +const int CSSValueMediaSlider = 330; +const int CSSValueMediaSliderthumb = 331; +const int CSSValueMediaControlsBackground = 332; +const int CSSValueMediaCurrentTimeDisplay = 333; +const int CSSValueMediaTimeRemainingDisplay = 334; +const int CSSValueMenulist = 335; +const int CSSValueMenulistButton = 336; +const int CSSValueMenulistText = 337; +const int CSSValueMenulistTextfield = 338; +const int CSSValueSliderHorizontal = 339; +const int CSSValueSliderVertical = 340; +const int CSSValueSliderthumbHorizontal = 341; +const int CSSValueSliderthumbVertical = 342; +const int CSSValueCaret = 343; +const int CSSValueSearchfield = 344; +const int CSSValueSearchfieldDecoration = 345; +const int CSSValueSearchfieldResultsDecoration = 346; +const int CSSValueSearchfieldResultsButton = 347; +const int CSSValueSearchfieldCancelButton = 348; +const int CSSValueTextfield = 349; +const int CSSValueTextarea = 350; +const int CSSValueCapsLockIndicator = 351; +const int CSSValueRound = 352; +const int CSSValueBorder = 353; +const int CSSValueContent = 354; +const int CSSValuePadding = 355; +const int CSSValuePaddingBox = 356; +const int CSSValueBorderBox = 357; +const int CSSValueContentBox = 358; +const int CSSValueLogical = 359; +const int CSSValueVisual = 360; +const int CSSValueLines = 361; +const int CSSValueRunning = 362; +const int CSSValuePaused = 363; +const int CSSValueFlat = 364; +const int CSSValuePreserve3d = 365; +const int CSSValueEase = 366; +const int CSSValueLinear = 367; +const int CSSValueEaseIn = 368; +const int CSSValueEaseOut = 369; +const int CSSValueEaseInOut = 370; +const int CSSValueDocument = 371; +const int CSSValueReset = 372; +const int CSSValueVisiblepainted = 373; +const int CSSValueVisiblefill = 374; +const int CSSValueVisiblestroke = 375; +const int CSSValuePainted = 376; +const int CSSValueFill = 377; +const int CSSValueStroke = 378; +const int CSSValueAliceblue = 379; +const int CSSValueAntiquewhite = 380; +const int CSSValueAquamarine = 381; +const int CSSValueAzure = 382; +const int CSSValueBeige = 383; +const int CSSValueBisque = 384; +const int CSSValueBlanchedalmond = 385; +const int CSSValueBlueviolet = 386; +const int CSSValueBrown = 387; +const int CSSValueBurlywood = 388; +const int CSSValueCadetblue = 389; +const int CSSValueChartreuse = 390; +const int CSSValueChocolate = 391; +const int CSSValueCoral = 392; +const int CSSValueCornflowerblue = 393; +const int CSSValueCornsilk = 394; +const int CSSValueCrimson = 395; +const int CSSValueCyan = 396; +const int CSSValueDarkblue = 397; +const int CSSValueDarkcyan = 398; +const int CSSValueDarkgoldenrod = 399; +const int CSSValueDarkgray = 400; +const int CSSValueDarkgreen = 401; +const int CSSValueDarkgrey = 402; +const int CSSValueDarkkhaki = 403; +const int CSSValueDarkmagenta = 404; +const int CSSValueDarkolivegreen = 405; +const int CSSValueDarkorange = 406; +const int CSSValueDarkorchid = 407; +const int CSSValueDarkred = 408; +const int CSSValueDarksalmon = 409; +const int CSSValueDarkseagreen = 410; +const int CSSValueDarkslateblue = 411; +const int CSSValueDarkslategray = 412; +const int CSSValueDarkslategrey = 413; +const int CSSValueDarkturquoise = 414; +const int CSSValueDarkviolet = 415; +const int CSSValueDeeppink = 416; +const int CSSValueDeepskyblue = 417; +const int CSSValueDimgray = 418; +const int CSSValueDimgrey = 419; +const int CSSValueDodgerblue = 420; +const int CSSValueFirebrick = 421; +const int CSSValueFloralwhite = 422; +const int CSSValueForestgreen = 423; +const int CSSValueGainsboro = 424; +const int CSSValueGhostwhite = 425; +const int CSSValueGold = 426; +const int CSSValueGoldenrod = 427; +const int CSSValueGreenyellow = 428; +const int CSSValueHoneydew = 429; +const int CSSValueHotpink = 430; +const int CSSValueIndianred = 431; +const int CSSValueIndigo = 432; +const int CSSValueIvory = 433; +const int CSSValueKhaki = 434; +const int CSSValueLavender = 435; +const int CSSValueLavenderblush = 436; +const int CSSValueLawngreen = 437; +const int CSSValueLemonchiffon = 438; +const int CSSValueLightblue = 439; +const int CSSValueLightcoral = 440; +const int CSSValueLightcyan = 441; +const int CSSValueLightgoldenrodyellow = 442; +const int CSSValueLightgray = 443; +const int CSSValueLightgreen = 444; +const int CSSValueLightgrey = 445; +const int CSSValueLightpink = 446; +const int CSSValueLightsalmon = 447; +const int CSSValueLightseagreen = 448; +const int CSSValueLightskyblue = 449; +const int CSSValueLightslategray = 450; +const int CSSValueLightslategrey = 451; +const int CSSValueLightsteelblue = 452; +const int CSSValueLightyellow = 453; +const int CSSValueLimegreen = 454; +const int CSSValueLinen = 455; +const int CSSValueMagenta = 456; +const int CSSValueMediumaquamarine = 457; +const int CSSValueMediumblue = 458; +const int CSSValueMediumorchid = 459; +const int CSSValueMediumpurple = 460; +const int CSSValueMediumseagreen = 461; +const int CSSValueMediumslateblue = 462; +const int CSSValueMediumspringgreen = 463; +const int CSSValueMediumturquoise = 464; +const int CSSValueMediumvioletred = 465; +const int CSSValueMidnightblue = 466; +const int CSSValueMintcream = 467; +const int CSSValueMistyrose = 468; +const int CSSValueMoccasin = 469; +const int CSSValueNavajowhite = 470; +const int CSSValueOldlace = 471; +const int CSSValueOlivedrab = 472; +const int CSSValueOrangered = 473; +const int CSSValueOrchid = 474; +const int CSSValuePalegoldenrod = 475; +const int CSSValuePalegreen = 476; +const int CSSValuePaleturquoise = 477; +const int CSSValuePalevioletred = 478; +const int CSSValuePapayawhip = 479; +const int CSSValuePeachpuff = 480; +const int CSSValuePeru = 481; +const int CSSValuePink = 482; +const int CSSValuePlum = 483; +const int CSSValuePowderblue = 484; +const int CSSValueRosybrown = 485; +const int CSSValueRoyalblue = 486; +const int CSSValueSaddlebrown = 487; +const int CSSValueSalmon = 488; +const int CSSValueSandybrown = 489; +const int CSSValueSeagreen = 490; +const int CSSValueSeashell = 491; +const int CSSValueSienna = 492; +const int CSSValueSkyblue = 493; +const int CSSValueSlateblue = 494; +const int CSSValueSlategray = 495; +const int CSSValueSlategrey = 496; +const int CSSValueSnow = 497; +const int CSSValueSpringgreen = 498; +const int CSSValueSteelblue = 499; +const int CSSValueTan = 500; +const int CSSValueThistle = 501; +const int CSSValueTomato = 502; +const int CSSValueTurquoise = 503; +const int CSSValueViolet = 504; +const int CSSValueWheat = 505; +const int CSSValueWhitesmoke = 506; +const int CSSValueYellowgreen = 507; +const int CSSValueNonzero = 508; +const int CSSValueEvenodd = 509; +const int CSSValueAccumulate = 510; +const int CSSValueNew = 511; +const int CSSValueSrgb = 512; +const int CSSValueLinearrgb = 513; +const int CSSValueOptimizespeed = 514; +const int CSSValueOptimizequality = 515; +const int CSSValueCrispedges = 516; +const int CSSValueGeometricprecision = 517; +const int CSSValueButt = 518; +const int CSSValueMiter = 519; +const int CSSValueBevel = 520; +const int CSSValueOptimizelegibility = 521; +const int CSSValueBeforeEdge = 522; +const int CSSValueAfterEdge = 523; +const int CSSValueCentral = 524; +const int CSSValueTextBeforeEdge = 525; +const int CSSValueTextAfterEdge = 526; +const int CSSValueIdeographic = 527; +const int CSSValueAlphabetic = 528; +const int CSSValueHanging = 529; +const int CSSValueMathematical = 530; +const int CSSValueUseScript = 531; +const int CSSValueNoChange = 532; +const int CSSValueResetSize = 533; +const int CSSValueLrTb = 534; +const int CSSValueRlTb = 535; +const int CSSValueTbRl = 536; +const int CSSValueLr = 537; +const int CSSValueRl = 538; +const int CSSValueTb = 539; +const int numCSSValueKeywords = 540; +const size_t maxCSSValueKeywordLength = 31; const char* getValueName(unsigned short id); diff --git a/src/3rdparty/webkit/WebCore/generated/DatePrototype.lut.h b/src/3rdparty/webkit/WebCore/generated/DatePrototype.lut.h index 3016f9e..507cf91 100644 --- a/src/3rdparty/webkit/WebCore/generated/DatePrototype.lut.h +++ b/src/3rdparty/webkit/WebCore/generated/DatePrototype.lut.h @@ -54,6 +54,6 @@ static const struct HashTableValue dateTableValues[47] = { { 0, 0, 0, 0 } }; -extern const struct HashTable dateTable = +extern JSC_CONST_HASHTABLE HashTable dateTable = { 134, 127, dateTableValues, 0 }; } // namespace diff --git a/src/3rdparty/webkit/WebCore/generated/Grammar.cpp b/src/3rdparty/webkit/WebCore/generated/Grammar.cpp index 4ad3078..d1a7a80 100644 --- a/src/3rdparty/webkit/WebCore/generated/Grammar.cpp +++ b/src/3rdparty/webkit/WebCore/generated/Grammar.cpp @@ -1,24 +1,23 @@ -/* A Bison parser, made by GNU Bison 2.3. */ -/* Skeleton implementation for Bison's Yacc-like parsers in C +/* A Bison parser, made by GNU Bison 2.4.1. */ - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +/* Skeleton implementation for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -29,7 +28,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -47,7 +46,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.3" +#define YYBISON_VERSION "2.4.1" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -55,159 +54,28 @@ /* Pure parsers. */ #define YYPURE 1 +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + /* Using locations. */ #define YYLSP_NEEDED 1 /* Substitute the variable and function names. */ -#define yyparse jscyyparse -#define yylex jscyylex -#define yyerror jscyyerror -#define yylval jscyylval -#define yychar jscyychar -#define yydebug jscyydebug -#define yynerrs jscyynerrs -#define yylloc jscyylloc - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - NULLTOKEN = 258, - TRUETOKEN = 259, - FALSETOKEN = 260, - BREAK = 261, - CASE = 262, - DEFAULT = 263, - FOR = 264, - NEW = 265, - VAR = 266, - CONSTTOKEN = 267, - CONTINUE = 268, - FUNCTION = 269, - RETURN = 270, - VOIDTOKEN = 271, - DELETETOKEN = 272, - IF = 273, - THISTOKEN = 274, - DO = 275, - WHILE = 276, - INTOKEN = 277, - INSTANCEOF = 278, - TYPEOF = 279, - SWITCH = 280, - WITH = 281, - RESERVED = 282, - THROW = 283, - TRY = 284, - CATCH = 285, - FINALLY = 286, - DEBUGGER = 287, - IF_WITHOUT_ELSE = 288, - ELSE = 289, - EQEQ = 290, - NE = 291, - STREQ = 292, - STRNEQ = 293, - LE = 294, - GE = 295, - OR = 296, - AND = 297, - PLUSPLUS = 298, - MINUSMINUS = 299, - LSHIFT = 300, - RSHIFT = 301, - URSHIFT = 302, - PLUSEQUAL = 303, - MINUSEQUAL = 304, - MULTEQUAL = 305, - DIVEQUAL = 306, - LSHIFTEQUAL = 307, - RSHIFTEQUAL = 308, - URSHIFTEQUAL = 309, - ANDEQUAL = 310, - MODEQUAL = 311, - XOREQUAL = 312, - OREQUAL = 313, - OPENBRACE = 314, - CLOSEBRACE = 315, - NUMBER = 316, - IDENT = 317, - STRING = 318, - AUTOPLUSPLUS = 319, - AUTOMINUSMINUS = 320 - }; -#endif -/* Tokens. */ -#define NULLTOKEN 258 -#define TRUETOKEN 259 -#define FALSETOKEN 260 -#define BREAK 261 -#define CASE 262 -#define DEFAULT 263 -#define FOR 264 -#define NEW 265 -#define VAR 266 -#define CONSTTOKEN 267 -#define CONTINUE 268 -#define FUNCTION 269 -#define RETURN 270 -#define VOIDTOKEN 271 -#define DELETETOKEN 272 -#define IF 273 -#define THISTOKEN 274 -#define DO 275 -#define WHILE 276 -#define INTOKEN 277 -#define INSTANCEOF 278 -#define TYPEOF 279 -#define SWITCH 280 -#define WITH 281 -#define RESERVED 282 -#define THROW 283 -#define TRY 284 -#define CATCH 285 -#define FINALLY 286 -#define DEBUGGER 287 -#define IF_WITHOUT_ELSE 288 -#define ELSE 289 -#define EQEQ 290 -#define NE 291 -#define STREQ 292 -#define STRNEQ 293 -#define LE 294 -#define GE 295 -#define OR 296 -#define AND 297 -#define PLUSPLUS 298 -#define MINUSMINUS 299 -#define LSHIFT 300 -#define RSHIFT 301 -#define URSHIFT 302 -#define PLUSEQUAL 303 -#define MINUSEQUAL 304 -#define MULTEQUAL 305 -#define DIVEQUAL 306 -#define LSHIFTEQUAL 307 -#define RSHIFTEQUAL 308 -#define URSHIFTEQUAL 309 -#define ANDEQUAL 310 -#define MODEQUAL 311 -#define XOREQUAL 312 -#define OREQUAL 313 -#define OPENBRACE 314 -#define CLOSEBRACE 315 -#define NUMBER 316 -#define IDENT 317 -#define STRING 318 -#define AUTOPLUSPLUS 319 -#define AUTOMINUSMINUS 320 - - - +#define yyparse jscyyparse +#define yylex jscyylex +#define yyerror jscyyerror +#define yylval jscyylval +#define yychar jscyychar +#define yydebug jscyydebug +#define yynerrs jscyynerrs +#define yylloc jscyylloc /* Copy the first part of user declarations. */ + +/* Line 189 of yacc.c */ #line 3 "../../JavaScriptCore/parser/Grammar.y" @@ -363,6 +231,9 @@ static inline void appendToVarDeclarationList(void* globalPtr, ParserArenaData<D +/* Line 189 of yacc.c */ +#line 236 "WebCore/tmp/../generated/Grammar.tab.c" + /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 @@ -381,10 +252,88 @@ static inline void appendToVarDeclarationList(void* globalPtr, ParserArenaData<D # define YYTOKEN_TABLE 0 #endif + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + NULLTOKEN = 258, + TRUETOKEN = 259, + FALSETOKEN = 260, + BREAK = 261, + CASE = 262, + DEFAULT = 263, + FOR = 264, + NEW = 265, + VAR = 266, + CONSTTOKEN = 267, + CONTINUE = 268, + FUNCTION = 269, + RETURN = 270, + VOIDTOKEN = 271, + DELETETOKEN = 272, + IF = 273, + THISTOKEN = 274, + DO = 275, + WHILE = 276, + INTOKEN = 277, + INSTANCEOF = 278, + TYPEOF = 279, + SWITCH = 280, + WITH = 281, + RESERVED = 282, + THROW = 283, + TRY = 284, + CATCH = 285, + FINALLY = 286, + DEBUGGER = 287, + IF_WITHOUT_ELSE = 288, + ELSE = 289, + EQEQ = 290, + NE = 291, + STREQ = 292, + STRNEQ = 293, + LE = 294, + GE = 295, + OR = 296, + AND = 297, + PLUSPLUS = 298, + MINUSMINUS = 299, + LSHIFT = 300, + RSHIFT = 301, + URSHIFT = 302, + PLUSEQUAL = 303, + MINUSEQUAL = 304, + MULTEQUAL = 305, + DIVEQUAL = 306, + LSHIFTEQUAL = 307, + RSHIFTEQUAL = 308, + URSHIFTEQUAL = 309, + ANDEQUAL = 310, + MODEQUAL = 311, + XOREQUAL = 312, + OREQUAL = 313, + OPENBRACE = 314, + CLOSEBRACE = 315, + NUMBER = 316, + IDENT = 317, + STRING = 318, + AUTOPLUSPLUS = 319, + AUTOMINUSMINUS = 320 + }; +#endif + + + #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 157 "../../JavaScriptCore/parser/Grammar.y" { + +/* Line 214 of yacc.c */ +#line 157 "../../JavaScriptCore/parser/Grammar.y" + int intValue; double doubleValue; Identifier* ident; @@ -414,13 +363,15 @@ typedef union YYSTYPE ParameterListInfo parameterList; Operator op; -} -/* Line 187 of yacc.c. */ -#line 420 "WebCore/tmp/../generated/Grammar.tab.c" - YYSTYPE; + + + +/* Line 214 of yacc.c */ +#line 371 "WebCore/tmp/../generated/Grammar.tab.c" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED @@ -440,8 +391,8 @@ typedef struct YYLTYPE /* Copy the second part of user declarations. */ -/* Line 216 of yacc.c. */ -#line 445 "WebCore/tmp/../generated/Grammar.tab.c" +/* Line 264 of yacc.c */ +#line 396 "WebCore/tmp/../generated/Grammar.tab.c" #ifdef short # undef short @@ -516,14 +467,14 @@ typedef short int yytype_int16; #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static int -YYID (int i) +YYID (int yyi) #else static int -YYID (i) - int i; +YYID (yyi) + int yyi; #endif { - return i; + return yyi; } #endif @@ -605,9 +556,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss; - YYSTYPE yyvs; - YYLTYPE yyls; + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; + YYLTYPE yyls_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ @@ -642,12 +593,12 @@ union yyalloc elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack) \ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ @@ -2361,17 +2312,20 @@ yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp) #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) #else static void -yy_stack_print (bottom, top) - yytype_int16 *bottom; - yytype_int16 *top; +yy_stack_print (yybottom, yytop) + yytype_int16 *yybottom; + yytype_int16 *yytop; #endif { YYFPRINTF (stderr, "Stack now"); - for (; bottom <= top; ++bottom) - YYFPRINTF (stderr, " %d", *bottom); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } YYFPRINTF (stderr, "\n"); } @@ -2406,11 +2360,11 @@ yy_reduce_print (yyvsp, yylsp, yyrule) /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { - fprintf (stderr, " $%d = ", yyi + 1); + YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]) , &(yylsp[(yyi + 1) - (yynrhs)]) ); - fprintf (stderr, "\n"); + YYFPRINTF (stderr, "\n"); } } @@ -2692,10 +2646,8 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) break; } } - /* Prevent warnings from -Wmissing-prototypes. */ - #ifdef YYPARSE_PARAM #if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); @@ -2714,10 +2666,9 @@ int yyparse (); - -/*----------. -| yyparse. | -`----------*/ +/*-------------------------. +| yyparse or yypush_parse. | +`-------------------------*/ #ifdef YYPARSE_PARAM #if (defined __STDC__ || defined __C99__FUNC__ \ @@ -2741,88 +2692,97 @@ yyparse () #endif #endif { - /* The look-ahead symbol. */ +/* The lookahead symbol. */ int yychar; -/* The semantic value of the look-ahead symbol. */ +/* The semantic value of the lookahead symbol. */ YYSTYPE yylval; -/* Number of syntax errors so far. */ -int yynerrs; -/* Location data for the look-ahead symbol. */ +/* Location data for the lookahead symbol. */ YYLTYPE yylloc; - int yystate; - int yyn; - int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Look-ahead token as an internal (translated) token number. */ - int yytoken = 0; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif + /* Number of syntax errors so far. */ + int yynerrs; - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ + /* The stacks and their tools: + `yyss': related to states. + `yyvs': related to semantic values. + `yyls': related to locations. - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss = yyssa; - yytype_int16 *yyssp; + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; - /* The location stack. */ - YYLTYPE yylsa[YYINITDEPTH]; - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; - /* The locations where the error started and ended. */ - YYLTYPE yyerror_range[2]; + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) + /* The location stack. */ + YYLTYPE yylsa[YYINITDEPTH]; + YYLTYPE *yyls; + YYLTYPE *yylsp; + + /* The locations where the error started and ended. */ + YYLTYPE yyerror_range[2]; - YYSIZE_T yystacksize = YYINITDEPTH; + YYSIZE_T yystacksize; + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; YYLTYPE yyloc; +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) + /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; + yytoken = 0; + yyss = yyssa; + yyvs = yyvsa; + yyls = yylsa; + yystacksize = YYINITDEPTH; + YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ + yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ - yyssp = yyss; yyvsp = yyvs; yylsp = yyls; + #if YYLTYPE_IS_TRIVIAL /* Initialize the default location before parsing starts. */ yylloc.first_line = yylloc.last_line = 1; - yylloc.first_column = yylloc.last_column = 0; + yylloc.first_column = yylloc.last_column = 1; #endif goto yysetstate; @@ -2861,6 +2821,7 @@ YYLTYPE yylloc; &yyvs1, yysize * sizeof (*yyvsp), &yyls1, yysize * sizeof (*yylsp), &yystacksize); + yyls = yyls1; yyss = yyss1; yyvs = yyvs1; @@ -2882,9 +2843,9 @@ YYLTYPE yylloc; (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); - YYSTACK_RELOCATE (yyls); + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); + YYSTACK_RELOCATE (yyls_alloc, yyls); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); @@ -2905,6 +2866,9 @@ YYLTYPE yylloc; YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + if (yystate == YYFINAL) + YYACCEPT; + goto yybackup; /*-----------. @@ -2913,16 +2877,16 @@ YYLTYPE yylloc; yybackup: /* Do appropriate processing given the current state. Read a - look-ahead token if we need one and don't already have one. */ + lookahead token if we need one and don't already have one. */ - /* First try to decide what to do without reference to look-ahead token. */ + /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; - /* Not known => get a look-ahead token if don't already have one. */ + /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); @@ -2954,20 +2918,16 @@ yybackup: goto yyreduce; } - if (yyn == YYFINAL) - YYACCEPT; - /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; - /* Shift the look-ahead token. */ + /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - /* Discard the shifted token unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; + /* Discard the shifted token. */ + yychar = YYEMPTY; yystate = yyn; *++yyvsp = yylval; @@ -3008,31 +2968,43 @@ yyreduce: switch (yyn) { case 2: + +/* Line 1455 of yacc.c */ #line 290 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NullNode(GLOBAL_DATA), 0, 1); ;} break; case 3: + +/* Line 1455 of yacc.c */ #line 291 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BooleanNode(GLOBAL_DATA, true), 0, 1); ;} break; case 4: + +/* Line 1455 of yacc.c */ #line 292 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BooleanNode(GLOBAL_DATA, false), 0, 1); ;} break; case 5: + +/* Line 1455 of yacc.c */ #line 293 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeNumberNode(GLOBAL_DATA, (yyvsp[(1) - (1)].doubleValue)), 0, 1); ;} break; case 6: + +/* Line 1455 of yacc.c */ #line 294 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) StringNode(GLOBAL_DATA, *(yyvsp[(1) - (1)].ident)), 0, 1); ;} break; case 7: + +/* Line 1455 of yacc.c */ #line 295 "../../JavaScriptCore/parser/Grammar.y" { Lexer& l = *LEXER; @@ -3046,6 +3018,8 @@ yyreduce: break; case 8: + +/* Line 1455 of yacc.c */ #line 304 "../../JavaScriptCore/parser/Grammar.y" { Lexer& l = *LEXER; @@ -3059,26 +3033,36 @@ yyreduce: break; case 9: + +/* Line 1455 of yacc.c */ #line 316 "../../JavaScriptCore/parser/Grammar.y" { (yyval.propertyNode) = createNodeInfo<PropertyNode*>(new (GLOBAL_DATA) PropertyNode(GLOBAL_DATA, *(yyvsp[(1) - (3)].ident), (yyvsp[(3) - (3)].expressionNode).m_node, PropertyNode::Constant), (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 10: + +/* Line 1455 of yacc.c */ #line 317 "../../JavaScriptCore/parser/Grammar.y" { (yyval.propertyNode) = createNodeInfo<PropertyNode*>(new (GLOBAL_DATA) PropertyNode(GLOBAL_DATA, *(yyvsp[(1) - (3)].ident), (yyvsp[(3) - (3)].expressionNode).m_node, PropertyNode::Constant), (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 11: + +/* Line 1455 of yacc.c */ #line 318 "../../JavaScriptCore/parser/Grammar.y" { (yyval.propertyNode) = createNodeInfo<PropertyNode*>(new (GLOBAL_DATA) PropertyNode(GLOBAL_DATA, Identifier(GLOBAL_DATA, UString::from((yyvsp[(1) - (3)].doubleValue))), (yyvsp[(3) - (3)].expressionNode).m_node, PropertyNode::Constant), (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 12: + +/* Line 1455 of yacc.c */ #line 319 "../../JavaScriptCore/parser/Grammar.y" { (yyval.propertyNode) = createNodeInfo<PropertyNode*>(makeGetterOrSetterPropertyNode(globalPtr, *(yyvsp[(1) - (7)].ident), *(yyvsp[(2) - (7)].ident), 0, (yyvsp[(6) - (7)].functionBodyNode), LEXER->sourceCode((yyvsp[(5) - (7)].intValue), (yyvsp[(7) - (7)].intValue), (yylsp[(5) - (7)]).first_line)), ClosureFeature, 0); DBG((yyvsp[(6) - (7)].functionBodyNode), (yylsp[(5) - (7)]), (yylsp[(7) - (7)])); if (!(yyval.propertyNode).m_node) YYABORT; ;} break; case 13: + +/* Line 1455 of yacc.c */ #line 321 "../../JavaScriptCore/parser/Grammar.y" { (yyval.propertyNode) = createNodeInfo<PropertyNode*>(makeGetterOrSetterPropertyNode(globalPtr, *(yyvsp[(1) - (8)].ident), *(yyvsp[(2) - (8)].ident), (yyvsp[(4) - (8)].parameterList).m_node.head, (yyvsp[(7) - (8)].functionBodyNode), LEXER->sourceCode((yyvsp[(6) - (8)].intValue), (yyvsp[(8) - (8)].intValue), (yylsp[(6) - (8)]).first_line)), (yyvsp[(4) - (8)].parameterList).m_features | ClosureFeature, 0); @@ -3091,6 +3075,8 @@ yyreduce: break; case 14: + +/* Line 1455 of yacc.c */ #line 332 "../../JavaScriptCore/parser/Grammar.y" { (yyval.propertyList).m_node.head = new (GLOBAL_DATA) PropertyListNode(GLOBAL_DATA, (yyvsp[(1) - (1)].propertyNode).m_node); (yyval.propertyList).m_node.tail = (yyval.propertyList).m_node.head; @@ -3099,6 +3085,8 @@ yyreduce: break; case 15: + +/* Line 1455 of yacc.c */ #line 336 "../../JavaScriptCore/parser/Grammar.y" { (yyval.propertyList).m_node.head = (yyvsp[(1) - (3)].propertyList).m_node.head; (yyval.propertyList).m_node.tail = new (GLOBAL_DATA) PropertyListNode(GLOBAL_DATA, (yyvsp[(3) - (3)].propertyNode).m_node, (yyvsp[(1) - (3)].propertyList).m_node.tail); @@ -3107,51 +3095,71 @@ yyreduce: break; case 17: + +/* Line 1455 of yacc.c */ #line 344 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ObjectLiteralNode(GLOBAL_DATA), 0, 0); ;} break; case 18: + +/* Line 1455 of yacc.c */ #line 345 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ObjectLiteralNode(GLOBAL_DATA, (yyvsp[(2) - (3)].propertyList).m_node.head), (yyvsp[(2) - (3)].propertyList).m_features, (yyvsp[(2) - (3)].propertyList).m_numConstants); ;} break; case 19: + +/* Line 1455 of yacc.c */ #line 347 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ObjectLiteralNode(GLOBAL_DATA, (yyvsp[(2) - (4)].propertyList).m_node.head), (yyvsp[(2) - (4)].propertyList).m_features, (yyvsp[(2) - (4)].propertyList).m_numConstants); ;} break; case 20: + +/* Line 1455 of yacc.c */ #line 351 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ThisNode(GLOBAL_DATA), ThisFeature, 0); ;} break; case 23: + +/* Line 1455 of yacc.c */ #line 354 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ResolveNode(GLOBAL_DATA, *(yyvsp[(1) - (1)].ident), (yylsp[(1) - (1)]).first_column), (*(yyvsp[(1) - (1)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0, 0); ;} break; case 24: + +/* Line 1455 of yacc.c */ #line 355 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = (yyvsp[(2) - (3)].expressionNode); ;} break; case 25: + +/* Line 1455 of yacc.c */ #line 359 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ArrayNode(GLOBAL_DATA, (yyvsp[(2) - (3)].intValue)), 0, (yyvsp[(2) - (3)].intValue) ? 1 : 0); ;} break; case 26: + +/* Line 1455 of yacc.c */ #line 360 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ArrayNode(GLOBAL_DATA, (yyvsp[(2) - (3)].elementList).m_node.head), (yyvsp[(2) - (3)].elementList).m_features, (yyvsp[(2) - (3)].elementList).m_numConstants); ;} break; case 27: + +/* Line 1455 of yacc.c */ #line 361 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ArrayNode(GLOBAL_DATA, (yyvsp[(4) - (5)].intValue), (yyvsp[(2) - (5)].elementList).m_node.head), (yyvsp[(2) - (5)].elementList).m_features, (yyvsp[(4) - (5)].intValue) ? (yyvsp[(2) - (5)].elementList).m_numConstants + 1 : (yyvsp[(2) - (5)].elementList).m_numConstants); ;} break; case 28: + +/* Line 1455 of yacc.c */ #line 365 "../../JavaScriptCore/parser/Grammar.y" { (yyval.elementList).m_node.head = new (GLOBAL_DATA) ElementNode(GLOBAL_DATA, (yyvsp[(1) - (2)].intValue), (yyvsp[(2) - (2)].expressionNode).m_node); (yyval.elementList).m_node.tail = (yyval.elementList).m_node.head; @@ -3160,6 +3168,8 @@ yyreduce: break; case 29: + +/* Line 1455 of yacc.c */ #line 370 "../../JavaScriptCore/parser/Grammar.y" { (yyval.elementList).m_node.head = (yyvsp[(1) - (4)].elementList).m_node.head; (yyval.elementList).m_node.tail = new (GLOBAL_DATA) ElementNode(GLOBAL_DATA, (yyvsp[(1) - (4)].elementList).m_node.tail, (yyvsp[(3) - (4)].intValue), (yyvsp[(4) - (4)].expressionNode).m_node); @@ -3168,26 +3178,36 @@ yyreduce: break; case 30: + +/* Line 1455 of yacc.c */ #line 377 "../../JavaScriptCore/parser/Grammar.y" { (yyval.intValue) = 0; ;} break; case 32: + +/* Line 1455 of yacc.c */ #line 382 "../../JavaScriptCore/parser/Grammar.y" { (yyval.intValue) = 1; ;} break; case 33: + +/* Line 1455 of yacc.c */ #line 383 "../../JavaScriptCore/parser/Grammar.y" { (yyval.intValue) = (yyvsp[(1) - (2)].intValue) + 1; ;} break; case 35: + +/* Line 1455 of yacc.c */ #line 388 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>((yyvsp[(1) - (1)].funcExprNode).m_node, (yyvsp[(1) - (1)].funcExprNode).m_features, (yyvsp[(1) - (1)].funcExprNode).m_numConstants); ;} break; case 36: + +/* Line 1455 of yacc.c */ #line 389 "../../JavaScriptCore/parser/Grammar.y" { BracketAccessorNode* node = new (GLOBAL_DATA) BracketAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (4)]).first_column, (yylsp[(1) - (4)]).last_column, (yylsp[(4) - (4)]).last_column); @@ -3196,6 +3216,8 @@ yyreduce: break; case 37: + +/* Line 1455 of yacc.c */ #line 393 "../../JavaScriptCore/parser/Grammar.y" { DotAccessorNode* node = new (GLOBAL_DATA) DotAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, *(yyvsp[(3) - (3)].ident)); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(1) - (3)]).last_column, (yylsp[(3) - (3)]).last_column); @@ -3204,6 +3226,8 @@ yyreduce: break; case 38: + +/* Line 1455 of yacc.c */ #line 397 "../../JavaScriptCore/parser/Grammar.y" { NewExprNode* node = new (GLOBAL_DATA) NewExprNode(GLOBAL_DATA, (yyvsp[(2) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].argumentsNode).m_node); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(3) - (3)]).last_column); @@ -3212,6 +3236,8 @@ yyreduce: break; case 40: + +/* Line 1455 of yacc.c */ #line 405 "../../JavaScriptCore/parser/Grammar.y" { BracketAccessorNode* node = new (GLOBAL_DATA) BracketAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (4)]).first_column, (yylsp[(1) - (4)]).last_column, (yylsp[(4) - (4)]).last_column); @@ -3220,6 +3246,8 @@ yyreduce: break; case 41: + +/* Line 1455 of yacc.c */ #line 409 "../../JavaScriptCore/parser/Grammar.y" { DotAccessorNode* node = new (GLOBAL_DATA) DotAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, *(yyvsp[(3) - (3)].ident)); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(1) - (3)]).last_column, (yylsp[(3) - (3)]).last_column); @@ -3228,6 +3256,8 @@ yyreduce: break; case 42: + +/* Line 1455 of yacc.c */ #line 413 "../../JavaScriptCore/parser/Grammar.y" { NewExprNode* node = new (GLOBAL_DATA) NewExprNode(GLOBAL_DATA, (yyvsp[(2) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].argumentsNode).m_node); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(3) - (3)]).last_column); @@ -3236,6 +3266,8 @@ yyreduce: break; case 44: + +/* Line 1455 of yacc.c */ #line 421 "../../JavaScriptCore/parser/Grammar.y" { NewExprNode* node = new (GLOBAL_DATA) NewExprNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).last_column, (yylsp[(2) - (2)]).last_column); @@ -3244,6 +3276,8 @@ yyreduce: break; case 46: + +/* Line 1455 of yacc.c */ #line 429 "../../JavaScriptCore/parser/Grammar.y" { NewExprNode* node = new (GLOBAL_DATA) NewExprNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).last_column, (yylsp[(2) - (2)]).last_column); @@ -3252,16 +3286,22 @@ yyreduce: break; case 47: + +/* Line 1455 of yacc.c */ #line 436 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = makeFunctionCallNode(globalPtr, (yyvsp[(1) - (2)].expressionNode), (yyvsp[(2) - (2)].argumentsNode), (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column); ;} break; case 48: + +/* Line 1455 of yacc.c */ #line 437 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = makeFunctionCallNode(globalPtr, (yyvsp[(1) - (2)].expressionNode), (yyvsp[(2) - (2)].argumentsNode), (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column); ;} break; case 49: + +/* Line 1455 of yacc.c */ #line 438 "../../JavaScriptCore/parser/Grammar.y" { BracketAccessorNode* node = new (GLOBAL_DATA) BracketAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (4)]).first_column, (yylsp[(1) - (4)]).last_column, (yylsp[(4) - (4)]).last_column); @@ -3270,6 +3310,8 @@ yyreduce: break; case 50: + +/* Line 1455 of yacc.c */ #line 442 "../../JavaScriptCore/parser/Grammar.y" { DotAccessorNode* node = new (GLOBAL_DATA) DotAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, *(yyvsp[(3) - (3)].ident)); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(1) - (3)]).last_column, (yylsp[(3) - (3)]).last_column); @@ -3277,16 +3319,22 @@ yyreduce: break; case 51: + +/* Line 1455 of yacc.c */ #line 448 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = makeFunctionCallNode(globalPtr, (yyvsp[(1) - (2)].expressionNode), (yyvsp[(2) - (2)].argumentsNode), (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column); ;} break; case 52: + +/* Line 1455 of yacc.c */ #line 449 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = makeFunctionCallNode(globalPtr, (yyvsp[(1) - (2)].expressionNode), (yyvsp[(2) - (2)].argumentsNode), (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column); ;} break; case 53: + +/* Line 1455 of yacc.c */ #line 450 "../../JavaScriptCore/parser/Grammar.y" { BracketAccessorNode* node = new (GLOBAL_DATA) BracketAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (4)]).first_column, (yylsp[(1) - (4)]).last_column, (yylsp[(4) - (4)]).last_column); @@ -3295,6 +3343,8 @@ yyreduce: break; case 54: + +/* Line 1455 of yacc.c */ #line 454 "../../JavaScriptCore/parser/Grammar.y" { DotAccessorNode* node = new (GLOBAL_DATA) DotAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, *(yyvsp[(3) - (3)].ident)); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(1) - (3)]).last_column, (yylsp[(3) - (3)]).last_column); @@ -3303,16 +3353,22 @@ yyreduce: break; case 55: + +/* Line 1455 of yacc.c */ #line 461 "../../JavaScriptCore/parser/Grammar.y" { (yyval.argumentsNode) = createNodeInfo<ArgumentsNode*>(new (GLOBAL_DATA) ArgumentsNode(GLOBAL_DATA), 0, 0); ;} break; case 56: + +/* Line 1455 of yacc.c */ #line 462 "../../JavaScriptCore/parser/Grammar.y" { (yyval.argumentsNode) = createNodeInfo<ArgumentsNode*>(new (GLOBAL_DATA) ArgumentsNode(GLOBAL_DATA, (yyvsp[(2) - (3)].argumentList).m_node.head), (yyvsp[(2) - (3)].argumentList).m_features, (yyvsp[(2) - (3)].argumentList).m_numConstants); ;} break; case 57: + +/* Line 1455 of yacc.c */ #line 466 "../../JavaScriptCore/parser/Grammar.y" { (yyval.argumentList).m_node.head = new (GLOBAL_DATA) ArgumentListNode(GLOBAL_DATA, (yyvsp[(1) - (1)].expressionNode).m_node); (yyval.argumentList).m_node.tail = (yyval.argumentList).m_node.head; @@ -3321,6 +3377,8 @@ yyreduce: break; case 58: + +/* Line 1455 of yacc.c */ #line 470 "../../JavaScriptCore/parser/Grammar.y" { (yyval.argumentList).m_node.head = (yyvsp[(1) - (3)].argumentList).m_node.head; (yyval.argumentList).m_node.tail = new (GLOBAL_DATA) ArgumentListNode(GLOBAL_DATA, (yyvsp[(1) - (3)].argumentList).m_node.tail, (yyvsp[(3) - (3)].expressionNode).m_node); @@ -3329,181 +3387,253 @@ yyreduce: break; case 64: + +/* Line 1455 of yacc.c */ #line 488 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePostfixNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode).m_node, OpPlusPlus, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column), (yyvsp[(1) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(1) - (2)].expressionNode).m_numConstants); ;} break; case 65: + +/* Line 1455 of yacc.c */ #line 489 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePostfixNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode).m_node, OpMinusMinus, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column), (yyvsp[(1) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(1) - (2)].expressionNode).m_numConstants); ;} break; case 67: + +/* Line 1455 of yacc.c */ #line 494 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePostfixNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode).m_node, OpPlusPlus, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column), (yyvsp[(1) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(1) - (2)].expressionNode).m_numConstants); ;} break; case 68: + +/* Line 1455 of yacc.c */ #line 495 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePostfixNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode).m_node, OpMinusMinus, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column), (yyvsp[(1) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(1) - (2)].expressionNode).m_numConstants); ;} break; case 69: + +/* Line 1455 of yacc.c */ #line 499 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeDeleteNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).last_column, (yylsp[(2) - (2)]).last_column), (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 70: + +/* Line 1455 of yacc.c */ #line 500 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) VoidNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node), (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants + 1); ;} break; case 71: + +/* Line 1455 of yacc.c */ #line 501 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeTypeOfNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node), (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 72: + +/* Line 1455 of yacc.c */ #line 502 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePrefixNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node, OpPlusPlus, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).first_column + 1, (yylsp[(2) - (2)]).last_column), (yyvsp[(2) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 73: + +/* Line 1455 of yacc.c */ #line 503 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePrefixNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node, OpPlusPlus, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).first_column + 1, (yylsp[(2) - (2)]).last_column), (yyvsp[(2) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 74: + +/* Line 1455 of yacc.c */ #line 504 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePrefixNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node, OpMinusMinus, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).first_column + 1, (yylsp[(2) - (2)]).last_column), (yyvsp[(2) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 75: + +/* Line 1455 of yacc.c */ #line 505 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePrefixNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node, OpMinusMinus, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).first_column + 1, (yylsp[(2) - (2)]).last_column), (yyvsp[(2) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 76: + +/* Line 1455 of yacc.c */ #line 506 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) UnaryPlusNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node), (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 77: + +/* Line 1455 of yacc.c */ #line 507 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeNegateNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node), (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 78: + +/* Line 1455 of yacc.c */ #line 508 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeBitwiseNotNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node), (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 79: + +/* Line 1455 of yacc.c */ #line 509 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LogicalNotNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node), (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 85: + +/* Line 1455 of yacc.c */ #line 523 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeMultNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 86: + +/* Line 1455 of yacc.c */ #line 524 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeDivNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 87: + +/* Line 1455 of yacc.c */ #line 525 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ModNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 89: + +/* Line 1455 of yacc.c */ #line 531 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeMultNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 90: + +/* Line 1455 of yacc.c */ #line 533 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeDivNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 91: + +/* Line 1455 of yacc.c */ #line 535 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ModNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 93: + +/* Line 1455 of yacc.c */ #line 540 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeAddNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 94: + +/* Line 1455 of yacc.c */ #line 541 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeSubNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 96: + +/* Line 1455 of yacc.c */ #line 547 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeAddNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 97: + +/* Line 1455 of yacc.c */ #line 549 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeSubNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 99: + +/* Line 1455 of yacc.c */ #line 554 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeLeftShiftNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 100: + +/* Line 1455 of yacc.c */ #line 555 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeRightShiftNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 101: + +/* Line 1455 of yacc.c */ #line 556 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) UnsignedRightShiftNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 103: + +/* Line 1455 of yacc.c */ #line 561 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeLeftShiftNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 104: + +/* Line 1455 of yacc.c */ #line 562 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeRightShiftNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 105: + +/* Line 1455 of yacc.c */ #line 563 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) UnsignedRightShiftNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 107: + +/* Line 1455 of yacc.c */ #line 568 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LessNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 108: + +/* Line 1455 of yacc.c */ #line 569 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) GreaterNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 109: + +/* Line 1455 of yacc.c */ #line 570 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LessEqNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 110: + +/* Line 1455 of yacc.c */ #line 571 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) GreaterEqNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 111: + +/* Line 1455 of yacc.c */ #line 572 "../../JavaScriptCore/parser/Grammar.y" { InstanceOfNode* node = new (GLOBAL_DATA) InstanceOfNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(3) - (3)]).first_column, (yylsp[(3) - (3)]).last_column); @@ -3511,6 +3641,8 @@ yyreduce: break; case 112: + +/* Line 1455 of yacc.c */ #line 575 "../../JavaScriptCore/parser/Grammar.y" { InNode* node = new (GLOBAL_DATA) InNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(3) - (3)]).first_column, (yylsp[(3) - (3)]).last_column); @@ -3518,26 +3650,36 @@ yyreduce: break; case 114: + +/* Line 1455 of yacc.c */ #line 582 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LessNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 115: + +/* Line 1455 of yacc.c */ #line 583 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) GreaterNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 116: + +/* Line 1455 of yacc.c */ #line 584 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LessEqNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 117: + +/* Line 1455 of yacc.c */ #line 585 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) GreaterEqNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 118: + +/* Line 1455 of yacc.c */ #line 587 "../../JavaScriptCore/parser/Grammar.y" { InstanceOfNode* node = new (GLOBAL_DATA) InstanceOfNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(3) - (3)]).first_column, (yylsp[(3) - (3)]).last_column); @@ -3545,26 +3687,36 @@ yyreduce: break; case 120: + +/* Line 1455 of yacc.c */ #line 594 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LessNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 121: + +/* Line 1455 of yacc.c */ #line 595 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) GreaterNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 122: + +/* Line 1455 of yacc.c */ #line 596 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LessEqNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 123: + +/* Line 1455 of yacc.c */ #line 597 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) GreaterEqNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 124: + +/* Line 1455 of yacc.c */ #line 599 "../../JavaScriptCore/parser/Grammar.y" { InstanceOfNode* node = new (GLOBAL_DATA) InstanceOfNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(3) - (3)]).first_column, (yylsp[(3) - (3)]).last_column); @@ -3572,6 +3724,8 @@ yyreduce: break; case 125: + +/* Line 1455 of yacc.c */ #line 603 "../../JavaScriptCore/parser/Grammar.y" { InNode* node = new (GLOBAL_DATA) InNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(3) - (3)]).first_column, (yylsp[(3) - (3)]).last_column); @@ -3579,156 +3733,218 @@ yyreduce: break; case 127: + +/* Line 1455 of yacc.c */ #line 610 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) EqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 128: + +/* Line 1455 of yacc.c */ #line 611 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NotEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 129: + +/* Line 1455 of yacc.c */ #line 612 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) StrictEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 130: + +/* Line 1455 of yacc.c */ #line 613 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NotStrictEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 132: + +/* Line 1455 of yacc.c */ #line 619 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) EqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 133: + +/* Line 1455 of yacc.c */ #line 621 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NotEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 134: + +/* Line 1455 of yacc.c */ #line 623 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) StrictEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 135: + +/* Line 1455 of yacc.c */ #line 625 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NotStrictEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 137: + +/* Line 1455 of yacc.c */ #line 631 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) EqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 138: + +/* Line 1455 of yacc.c */ #line 632 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NotEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 139: + +/* Line 1455 of yacc.c */ #line 634 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) StrictEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 140: + +/* Line 1455 of yacc.c */ #line 636 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NotStrictEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 142: + +/* Line 1455 of yacc.c */ #line 641 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitAndNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 144: + +/* Line 1455 of yacc.c */ #line 647 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitAndNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 146: + +/* Line 1455 of yacc.c */ #line 652 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitAndNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 148: + +/* Line 1455 of yacc.c */ #line 657 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitXOrNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 150: + +/* Line 1455 of yacc.c */ #line 663 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitXOrNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 152: + +/* Line 1455 of yacc.c */ #line 669 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitXOrNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 154: + +/* Line 1455 of yacc.c */ #line 674 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitOrNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 156: + +/* Line 1455 of yacc.c */ #line 680 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitOrNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 158: + +/* Line 1455 of yacc.c */ #line 686 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitOrNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 160: + +/* Line 1455 of yacc.c */ #line 691 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LogicalOpNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, OpLogicalAnd), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 162: + +/* Line 1455 of yacc.c */ #line 697 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LogicalOpNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, OpLogicalAnd), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 164: + +/* Line 1455 of yacc.c */ #line 703 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LogicalOpNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, OpLogicalAnd), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 166: + +/* Line 1455 of yacc.c */ #line 708 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LogicalOpNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, OpLogicalOr), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 168: + +/* Line 1455 of yacc.c */ #line 714 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LogicalOpNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, OpLogicalOr), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 170: + +/* Line 1455 of yacc.c */ #line 719 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LogicalOpNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, OpLogicalOr), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 172: + +/* Line 1455 of yacc.c */ #line 725 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ConditionalNode(GLOBAL_DATA, (yyvsp[(1) - (5)].expressionNode).m_node, (yyvsp[(3) - (5)].expressionNode).m_node, (yyvsp[(5) - (5)].expressionNode).m_node), (yyvsp[(1) - (5)].expressionNode).m_features | (yyvsp[(3) - (5)].expressionNode).m_features | (yyvsp[(5) - (5)].expressionNode).m_features, (yyvsp[(1) - (5)].expressionNode).m_numConstants + (yyvsp[(3) - (5)].expressionNode).m_numConstants + (yyvsp[(5) - (5)].expressionNode).m_numConstants); ;} break; case 174: + +/* Line 1455 of yacc.c */ #line 731 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ConditionalNode(GLOBAL_DATA, (yyvsp[(1) - (5)].expressionNode).m_node, (yyvsp[(3) - (5)].expressionNode).m_node, (yyvsp[(5) - (5)].expressionNode).m_node), (yyvsp[(1) - (5)].expressionNode).m_features | (yyvsp[(3) - (5)].expressionNode).m_features | (yyvsp[(5) - (5)].expressionNode).m_features, (yyvsp[(1) - (5)].expressionNode).m_numConstants + (yyvsp[(3) - (5)].expressionNode).m_numConstants + (yyvsp[(5) - (5)].expressionNode).m_numConstants); ;} break; case 176: + +/* Line 1455 of yacc.c */ #line 737 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ConditionalNode(GLOBAL_DATA, (yyvsp[(1) - (5)].expressionNode).m_node, (yyvsp[(3) - (5)].expressionNode).m_node, (yyvsp[(5) - (5)].expressionNode).m_node), (yyvsp[(1) - (5)].expressionNode).m_features | (yyvsp[(3) - (5)].expressionNode).m_features | (yyvsp[(5) - (5)].expressionNode).m_features, (yyvsp[(1) - (5)].expressionNode).m_numConstants + (yyvsp[(3) - (5)].expressionNode).m_numConstants + (yyvsp[(5) - (5)].expressionNode).m_numConstants); ;} break; case 178: + +/* Line 1455 of yacc.c */ #line 743 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeAssignNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(2) - (3)].op), (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(1) - (3)].expressionNode).m_features & AssignFeature, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).first_column + 1, (yylsp[(3) - (3)]).last_column), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features | AssignFeature, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); @@ -3736,6 +3952,8 @@ yyreduce: break; case 180: + +/* Line 1455 of yacc.c */ #line 751 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeAssignNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(2) - (3)].op), (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(1) - (3)].expressionNode).m_features & AssignFeature, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).first_column + 1, (yylsp[(3) - (3)]).last_column), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features | AssignFeature, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); @@ -3743,6 +3961,8 @@ yyreduce: break; case 182: + +/* Line 1455 of yacc.c */ #line 759 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeAssignNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(2) - (3)].op), (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(1) - (3)].expressionNode).m_features & AssignFeature, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).first_column + 1, (yylsp[(3) - (3)]).last_column), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features | AssignFeature, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); @@ -3750,99 +3970,137 @@ yyreduce: break; case 183: + +/* Line 1455 of yacc.c */ #line 765 "../../JavaScriptCore/parser/Grammar.y" { (yyval.op) = OpEqual; ;} break; case 184: + +/* Line 1455 of yacc.c */ #line 766 "../../JavaScriptCore/parser/Grammar.y" { (yyval.op) = OpPlusEq; ;} break; case 185: + +/* Line 1455 of yacc.c */ #line 767 "../../JavaScriptCore/parser/Grammar.y" { (yyval.op) = OpMinusEq; ;} break; case 186: + +/* Line 1455 of yacc.c */ #line 768 "../../JavaScriptCore/parser/Grammar.y" { (yyval.op) = OpMultEq; ;} break; case 187: + +/* Line 1455 of yacc.c */ #line 769 "../../JavaScriptCore/parser/Grammar.y" { (yyval.op) = OpDivEq; ;} break; case 188: + +/* Line 1455 of yacc.c */ #line 770 "../../JavaScriptCore/parser/Grammar.y" { (yyval.op) = OpLShift; ;} break; case 189: + +/* Line 1455 of yacc.c */ #line 771 "../../JavaScriptCore/parser/Grammar.y" { (yyval.op) = OpRShift; ;} break; case 190: + +/* Line 1455 of yacc.c */ #line 772 "../../JavaScriptCore/parser/Grammar.y" { (yyval.op) = OpURShift; ;} break; case 191: + +/* Line 1455 of yacc.c */ #line 773 "../../JavaScriptCore/parser/Grammar.y" { (yyval.op) = OpAndEq; ;} break; case 192: + +/* Line 1455 of yacc.c */ #line 774 "../../JavaScriptCore/parser/Grammar.y" { (yyval.op) = OpXOrEq; ;} break; case 193: + +/* Line 1455 of yacc.c */ #line 775 "../../JavaScriptCore/parser/Grammar.y" { (yyval.op) = OpOrEq; ;} break; case 194: + +/* Line 1455 of yacc.c */ #line 776 "../../JavaScriptCore/parser/Grammar.y" { (yyval.op) = OpModEq; ;} break; case 196: + +/* Line 1455 of yacc.c */ #line 781 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(combineCommaNodes(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 198: + +/* Line 1455 of yacc.c */ #line 786 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(combineCommaNodes(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 200: + +/* Line 1455 of yacc.c */ #line 791 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(combineCommaNodes(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;} break; case 218: + +/* Line 1455 of yacc.c */ #line 815 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) BlockNode(GLOBAL_DATA, 0), 0, 0, 0, 0); DBG((yyval.statementNode).m_node, (yylsp[(1) - (2)]), (yylsp[(2) - (2)])); ;} break; case 219: + +/* Line 1455 of yacc.c */ #line 817 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) BlockNode(GLOBAL_DATA, (yyvsp[(2) - (3)].sourceElements).m_node), (yyvsp[(2) - (3)].sourceElements).m_varDeclarations, (yyvsp[(2) - (3)].sourceElements).m_funcDeclarations, (yyvsp[(2) - (3)].sourceElements).m_features, (yyvsp[(2) - (3)].sourceElements).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(3) - (3)])); ;} break; case 220: + +/* Line 1455 of yacc.c */ #line 822 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(makeVarStatementNode(GLOBAL_DATA, (yyvsp[(2) - (3)].varDeclList).m_node), (yyvsp[(2) - (3)].varDeclList).m_varDeclarations, (yyvsp[(2) - (3)].varDeclList).m_funcDeclarations, (yyvsp[(2) - (3)].varDeclList).m_features, (yyvsp[(2) - (3)].varDeclList).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(3) - (3)])); ;} break; case 221: + +/* Line 1455 of yacc.c */ #line 824 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(makeVarStatementNode(GLOBAL_DATA, (yyvsp[(2) - (3)].varDeclList).m_node), (yyvsp[(2) - (3)].varDeclList).m_varDeclarations, (yyvsp[(2) - (3)].varDeclList).m_funcDeclarations, (yyvsp[(2) - (3)].varDeclList).m_features, (yyvsp[(2) - (3)].varDeclList).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(2) - (3)])); @@ -3850,6 +4108,8 @@ yyreduce: break; case 222: + +/* Line 1455 of yacc.c */ #line 830 "../../JavaScriptCore/parser/Grammar.y" { (yyval.varDeclList).m_node = 0; (yyval.varDeclList).m_varDeclarations = new (GLOBAL_DATA) ParserArenaData<DeclarationStacks::VarStack>; @@ -3861,6 +4121,8 @@ yyreduce: break; case 223: + +/* Line 1455 of yacc.c */ #line 837 "../../JavaScriptCore/parser/Grammar.y" { AssignResolveNode* node = new (GLOBAL_DATA) AssignResolveNode(GLOBAL_DATA, *(yyvsp[(1) - (2)].ident), (yyvsp[(2) - (2)].expressionNode).m_node, (yyvsp[(2) - (2)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).first_column + 1, (yylsp[(2) - (2)]).last_column); @@ -3874,6 +4136,8 @@ yyreduce: break; case 224: + +/* Line 1455 of yacc.c */ #line 847 "../../JavaScriptCore/parser/Grammar.y" { (yyval.varDeclList).m_node = (yyvsp[(1) - (3)].varDeclList).m_node; (yyval.varDeclList).m_varDeclarations = (yyvsp[(1) - (3)].varDeclList).m_varDeclarations; @@ -3885,6 +4149,8 @@ yyreduce: break; case 225: + +/* Line 1455 of yacc.c */ #line 855 "../../JavaScriptCore/parser/Grammar.y" { AssignResolveNode* node = new (GLOBAL_DATA) AssignResolveNode(GLOBAL_DATA, *(yyvsp[(3) - (4)].ident), (yyvsp[(4) - (4)].expressionNode).m_node, (yyvsp[(4) - (4)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(3) - (4)]).first_column, (yylsp[(4) - (4)]).first_column + 1, (yylsp[(4) - (4)]).last_column); @@ -3898,6 +4164,8 @@ yyreduce: break; case 226: + +/* Line 1455 of yacc.c */ #line 867 "../../JavaScriptCore/parser/Grammar.y" { (yyval.varDeclList).m_node = 0; (yyval.varDeclList).m_varDeclarations = new (GLOBAL_DATA) ParserArenaData<DeclarationStacks::VarStack>; @@ -3909,6 +4177,8 @@ yyreduce: break; case 227: + +/* Line 1455 of yacc.c */ #line 874 "../../JavaScriptCore/parser/Grammar.y" { AssignResolveNode* node = new (GLOBAL_DATA) AssignResolveNode(GLOBAL_DATA, *(yyvsp[(1) - (2)].ident), (yyvsp[(2) - (2)].expressionNode).m_node, (yyvsp[(2) - (2)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).first_column + 1, (yylsp[(2) - (2)]).last_column); @@ -3922,6 +4192,8 @@ yyreduce: break; case 228: + +/* Line 1455 of yacc.c */ #line 884 "../../JavaScriptCore/parser/Grammar.y" { (yyval.varDeclList).m_node = (yyvsp[(1) - (3)].varDeclList).m_node; (yyval.varDeclList).m_varDeclarations = (yyvsp[(1) - (3)].varDeclList).m_varDeclarations; @@ -3933,6 +4205,8 @@ yyreduce: break; case 229: + +/* Line 1455 of yacc.c */ #line 892 "../../JavaScriptCore/parser/Grammar.y" { AssignResolveNode* node = new (GLOBAL_DATA) AssignResolveNode(GLOBAL_DATA, *(yyvsp[(3) - (4)].ident), (yyvsp[(4) - (4)].expressionNode).m_node, (yyvsp[(4) - (4)].expressionNode).m_features & AssignFeature); SET_EXCEPTION_LOCATION(node, (yylsp[(3) - (4)]).first_column, (yylsp[(4) - (4)]).first_column + 1, (yylsp[(4) - (4)]).last_column); @@ -3946,18 +4220,24 @@ yyreduce: break; case 230: + +/* Line 1455 of yacc.c */ #line 904 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) ConstStatementNode(GLOBAL_DATA, (yyvsp[(2) - (3)].constDeclList).m_node.head), (yyvsp[(2) - (3)].constDeclList).m_varDeclarations, (yyvsp[(2) - (3)].constDeclList).m_funcDeclarations, (yyvsp[(2) - (3)].constDeclList).m_features, (yyvsp[(2) - (3)].constDeclList).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(3) - (3)])); ;} break; case 231: + +/* Line 1455 of yacc.c */ #line 907 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) ConstStatementNode(GLOBAL_DATA, (yyvsp[(2) - (3)].constDeclList).m_node.head), (yyvsp[(2) - (3)].constDeclList).m_varDeclarations, (yyvsp[(2) - (3)].constDeclList).m_funcDeclarations, (yyvsp[(2) - (3)].constDeclList).m_features, (yyvsp[(2) - (3)].constDeclList).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(2) - (3)])); AUTO_SEMICOLON; ;} break; case 232: + +/* Line 1455 of yacc.c */ #line 912 "../../JavaScriptCore/parser/Grammar.y" { (yyval.constDeclList).m_node.head = (yyvsp[(1) - (1)].constDeclNode).m_node; (yyval.constDeclList).m_node.tail = (yyval.constDeclList).m_node.head; @@ -3970,6 +4250,8 @@ yyreduce: break; case 233: + +/* Line 1455 of yacc.c */ #line 921 "../../JavaScriptCore/parser/Grammar.y" { (yyval.constDeclList).m_node.head = (yyvsp[(1) - (3)].constDeclList).m_node.head; (yyvsp[(1) - (3)].constDeclList).m_node.tail->m_next = (yyvsp[(3) - (3)].constDeclNode).m_node; @@ -3982,49 +4264,67 @@ yyreduce: break; case 234: + +/* Line 1455 of yacc.c */ #line 932 "../../JavaScriptCore/parser/Grammar.y" { (yyval.constDeclNode) = createNodeInfo<ConstDeclNode*>(new (GLOBAL_DATA) ConstDeclNode(GLOBAL_DATA, *(yyvsp[(1) - (1)].ident), 0), (*(yyvsp[(1) - (1)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0, 0); ;} break; case 235: + +/* Line 1455 of yacc.c */ #line 933 "../../JavaScriptCore/parser/Grammar.y" { (yyval.constDeclNode) = createNodeInfo<ConstDeclNode*>(new (GLOBAL_DATA) ConstDeclNode(GLOBAL_DATA, *(yyvsp[(1) - (2)].ident), (yyvsp[(2) - (2)].expressionNode).m_node), ((*(yyvsp[(1) - (2)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0) | (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;} break; case 236: + +/* Line 1455 of yacc.c */ #line 937 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = (yyvsp[(2) - (2)].expressionNode); ;} break; case 237: + +/* Line 1455 of yacc.c */ #line 941 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = (yyvsp[(2) - (2)].expressionNode); ;} break; case 238: + +/* Line 1455 of yacc.c */ #line 945 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) EmptyStatementNode(GLOBAL_DATA), 0, 0, 0, 0); ;} break; case 239: + +/* Line 1455 of yacc.c */ #line 949 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) ExprStatementNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode).m_node), 0, 0, (yyvsp[(1) - (2)].expressionNode).m_features, (yyvsp[(1) - (2)].expressionNode).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (2)]), (yylsp[(2) - (2)])); ;} break; case 240: + +/* Line 1455 of yacc.c */ #line 951 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) ExprStatementNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode).m_node), 0, 0, (yyvsp[(1) - (2)].expressionNode).m_features, (yyvsp[(1) - (2)].expressionNode).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (2)]), (yylsp[(1) - (2)])); AUTO_SEMICOLON; ;} break; case 241: + +/* Line 1455 of yacc.c */ #line 957 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) IfNode(GLOBAL_DATA, (yyvsp[(3) - (5)].expressionNode).m_node, (yyvsp[(5) - (5)].statementNode).m_node), (yyvsp[(5) - (5)].statementNode).m_varDeclarations, (yyvsp[(5) - (5)].statementNode).m_funcDeclarations, (yyvsp[(3) - (5)].expressionNode).m_features | (yyvsp[(5) - (5)].statementNode).m_features, (yyvsp[(3) - (5)].expressionNode).m_numConstants + (yyvsp[(5) - (5)].statementNode).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (5)]), (yylsp[(4) - (5)])); ;} break; case 242: + +/* Line 1455 of yacc.c */ #line 960 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) IfElseNode(GLOBAL_DATA, (yyvsp[(3) - (7)].expressionNode).m_node, (yyvsp[(5) - (7)].statementNode).m_node, (yyvsp[(7) - (7)].statementNode).m_node), mergeDeclarationLists((yyvsp[(5) - (7)].statementNode).m_varDeclarations, (yyvsp[(7) - (7)].statementNode).m_varDeclarations), @@ -4035,24 +4335,32 @@ yyreduce: break; case 243: + +/* Line 1455 of yacc.c */ #line 969 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) DoWhileNode(GLOBAL_DATA, (yyvsp[(2) - (7)].statementNode).m_node, (yyvsp[(5) - (7)].expressionNode).m_node), (yyvsp[(2) - (7)].statementNode).m_varDeclarations, (yyvsp[(2) - (7)].statementNode).m_funcDeclarations, (yyvsp[(2) - (7)].statementNode).m_features | (yyvsp[(5) - (7)].expressionNode).m_features, (yyvsp[(2) - (7)].statementNode).m_numConstants + (yyvsp[(5) - (7)].expressionNode).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (7)]), (yylsp[(3) - (7)])); ;} break; case 244: + +/* Line 1455 of yacc.c */ #line 971 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) DoWhileNode(GLOBAL_DATA, (yyvsp[(2) - (7)].statementNode).m_node, (yyvsp[(5) - (7)].expressionNode).m_node), (yyvsp[(2) - (7)].statementNode).m_varDeclarations, (yyvsp[(2) - (7)].statementNode).m_funcDeclarations, (yyvsp[(2) - (7)].statementNode).m_features | (yyvsp[(5) - (7)].expressionNode).m_features, (yyvsp[(2) - (7)].statementNode).m_numConstants + (yyvsp[(5) - (7)].expressionNode).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (7)]), (yylsp[(3) - (7)])); ;} break; case 245: + +/* Line 1455 of yacc.c */ #line 973 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) WhileNode(GLOBAL_DATA, (yyvsp[(3) - (5)].expressionNode).m_node, (yyvsp[(5) - (5)].statementNode).m_node), (yyvsp[(5) - (5)].statementNode).m_varDeclarations, (yyvsp[(5) - (5)].statementNode).m_funcDeclarations, (yyvsp[(3) - (5)].expressionNode).m_features | (yyvsp[(5) - (5)].statementNode).m_features, (yyvsp[(3) - (5)].expressionNode).m_numConstants + (yyvsp[(5) - (5)].statementNode).m_numConstants); DBG((yyval.statementNode).m_node, (yylsp[(1) - (5)]), (yylsp[(4) - (5)])); ;} break; case 246: + +/* Line 1455 of yacc.c */ #line 976 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) ForNode(GLOBAL_DATA, (yyvsp[(3) - (9)].expressionNode).m_node, (yyvsp[(5) - (9)].expressionNode).m_node, (yyvsp[(7) - (9)].expressionNode).m_node, (yyvsp[(9) - (9)].statementNode).m_node, false), (yyvsp[(9) - (9)].statementNode).m_varDeclarations, (yyvsp[(9) - (9)].statementNode).m_funcDeclarations, (yyvsp[(3) - (9)].expressionNode).m_features | (yyvsp[(5) - (9)].expressionNode).m_features | (yyvsp[(7) - (9)].expressionNode).m_features | (yyvsp[(9) - (9)].statementNode).m_features, @@ -4062,6 +4370,8 @@ yyreduce: break; case 247: + +/* Line 1455 of yacc.c */ #line 982 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) ForNode(GLOBAL_DATA, (yyvsp[(4) - (10)].varDeclList).m_node, (yyvsp[(6) - (10)].expressionNode).m_node, (yyvsp[(8) - (10)].expressionNode).m_node, (yyvsp[(10) - (10)].statementNode).m_node, true), mergeDeclarationLists((yyvsp[(4) - (10)].varDeclList).m_varDeclarations, (yyvsp[(10) - (10)].statementNode).m_varDeclarations), @@ -4072,6 +4382,8 @@ yyreduce: break; case 248: + +/* Line 1455 of yacc.c */ #line 989 "../../JavaScriptCore/parser/Grammar.y" { ForInNode* node = new (GLOBAL_DATA) ForInNode(GLOBAL_DATA, (yyvsp[(3) - (7)].expressionNode).m_node, (yyvsp[(5) - (7)].expressionNode).m_node, (yyvsp[(7) - (7)].statementNode).m_node); @@ -4084,6 +4396,8 @@ yyreduce: break; case 249: + +/* Line 1455 of yacc.c */ #line 998 "../../JavaScriptCore/parser/Grammar.y" { ForInNode *forIn = new (GLOBAL_DATA) ForInNode(GLOBAL_DATA, *(yyvsp[(4) - (8)].ident), 0, (yyvsp[(6) - (8)].expressionNode).m_node, (yyvsp[(8) - (8)].statementNode).m_node, (yylsp[(5) - (8)]).first_column, (yylsp[(5) - (8)]).first_column - (yylsp[(4) - (8)]).first_column, (yylsp[(6) - (8)]).last_column - (yylsp[(5) - (8)]).first_column); SET_EXCEPTION_LOCATION(forIn, (yylsp[(4) - (8)]).first_column, (yylsp[(5) - (8)]).first_column + 1, (yylsp[(6) - (8)]).last_column); @@ -4093,6 +4407,8 @@ yyreduce: break; case 250: + +/* Line 1455 of yacc.c */ #line 1004 "../../JavaScriptCore/parser/Grammar.y" { ForInNode *forIn = new (GLOBAL_DATA) ForInNode(GLOBAL_DATA, *(yyvsp[(4) - (9)].ident), (yyvsp[(5) - (9)].expressionNode).m_node, (yyvsp[(7) - (9)].expressionNode).m_node, (yyvsp[(9) - (9)].statementNode).m_node, (yylsp[(5) - (9)]).first_column, (yylsp[(5) - (9)]).first_column - (yylsp[(4) - (9)]).first_column, (yylsp[(5) - (9)]).last_column - (yylsp[(5) - (9)]).first_column); SET_EXCEPTION_LOCATION(forIn, (yylsp[(4) - (9)]).first_column, (yylsp[(6) - (9)]).first_column + 1, (yylsp[(7) - (9)]).last_column); @@ -4104,16 +4420,22 @@ yyreduce: break; case 251: + +/* Line 1455 of yacc.c */ #line 1014 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(0, 0, 0); ;} break; case 253: + +/* Line 1455 of yacc.c */ #line 1019 "../../JavaScriptCore/parser/Grammar.y" { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(0, 0, 0); ;} break; case 255: + +/* Line 1455 of yacc.c */ #line 1024 "../../JavaScriptCore/parser/Grammar.y" { ContinueNode* node = new (GLOBAL_DATA) ContinueNode(GLOBAL_DATA); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(1) - (2)]).last_column); @@ -4122,6 +4444,8 @@ yyreduce: break; case 256: + +/* Line 1455 of yacc.c */ #line 1028 "../../JavaScriptCore/parser/Grammar.y" { ContinueNode* node = new (GLOBAL_DATA) ContinueNode(GLOBAL_DATA); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(1) - (2)]).last_column); @@ -4130,6 +4454,8 @@ yyreduce: break; case 257: + +/* Line 1455 of yacc.c */ #line 1032 "../../JavaScriptCore/parser/Grammar.y" { ContinueNode* node = new (GLOBAL_DATA) ContinueNode(GLOBAL_DATA, *(yyvsp[(2) - (3)].ident)); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column); @@ -4138,6 +4464,8 @@ yyreduce: break; case 258: + +/* Line 1455 of yacc.c */ #line 1036 "../../JavaScriptCore/parser/Grammar.y" { ContinueNode* node = new (GLOBAL_DATA) ContinueNode(GLOBAL_DATA, *(yyvsp[(2) - (3)].ident)); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column); @@ -4146,6 +4474,8 @@ yyreduce: break; case 259: + +/* Line 1455 of yacc.c */ #line 1043 "../../JavaScriptCore/parser/Grammar.y" { BreakNode* node = new (GLOBAL_DATA) BreakNode(GLOBAL_DATA); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(1) - (2)]).last_column); @@ -4153,6 +4483,8 @@ yyreduce: break; case 260: + +/* Line 1455 of yacc.c */ #line 1046 "../../JavaScriptCore/parser/Grammar.y" { BreakNode* node = new (GLOBAL_DATA) BreakNode(GLOBAL_DATA); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(1) - (2)]).last_column); @@ -4160,6 +4492,8 @@ yyreduce: break; case 261: + +/* Line 1455 of yacc.c */ #line 1049 "../../JavaScriptCore/parser/Grammar.y" { BreakNode* node = new (GLOBAL_DATA) BreakNode(GLOBAL_DATA, *(yyvsp[(2) - (3)].ident)); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column); @@ -4167,6 +4501,8 @@ yyreduce: break; case 262: + +/* Line 1455 of yacc.c */ #line 1052 "../../JavaScriptCore/parser/Grammar.y" { BreakNode* node = new (GLOBAL_DATA) BreakNode(GLOBAL_DATA, *(yyvsp[(2) - (3)].ident)); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column); @@ -4174,6 +4510,8 @@ yyreduce: break; case 263: + +/* Line 1455 of yacc.c */ #line 1058 "../../JavaScriptCore/parser/Grammar.y" { ReturnNode* node = new (GLOBAL_DATA) ReturnNode(GLOBAL_DATA, 0); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(1) - (2)]).last_column); @@ -4181,6 +4519,8 @@ yyreduce: break; case 264: + +/* Line 1455 of yacc.c */ #line 1061 "../../JavaScriptCore/parser/Grammar.y" { ReturnNode* node = new (GLOBAL_DATA) ReturnNode(GLOBAL_DATA, 0); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(1) - (2)]).last_column); @@ -4188,6 +4528,8 @@ yyreduce: break; case 265: + +/* Line 1455 of yacc.c */ #line 1064 "../../JavaScriptCore/parser/Grammar.y" { ReturnNode* node = new (GLOBAL_DATA) ReturnNode(GLOBAL_DATA, (yyvsp[(2) - (3)].expressionNode).m_node); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column); @@ -4195,6 +4537,8 @@ yyreduce: break; case 266: + +/* Line 1455 of yacc.c */ #line 1067 "../../JavaScriptCore/parser/Grammar.y" { ReturnNode* node = new (GLOBAL_DATA) ReturnNode(GLOBAL_DATA, (yyvsp[(2) - (3)].expressionNode).m_node); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column); @@ -4202,6 +4546,8 @@ yyreduce: break; case 267: + +/* Line 1455 of yacc.c */ #line 1073 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) WithNode(GLOBAL_DATA, (yyvsp[(3) - (5)].expressionNode).m_node, (yyvsp[(5) - (5)].statementNode).m_node, (yylsp[(3) - (5)]).last_column, (yylsp[(3) - (5)]).last_column - (yylsp[(3) - (5)]).first_column), (yyvsp[(5) - (5)].statementNode).m_varDeclarations, (yyvsp[(5) - (5)].statementNode).m_funcDeclarations, (yyvsp[(3) - (5)].expressionNode).m_features | (yyvsp[(5) - (5)].statementNode).m_features | WithFeature, (yyvsp[(3) - (5)].expressionNode).m_numConstants + (yyvsp[(5) - (5)].statementNode).m_numConstants); @@ -4209,6 +4555,8 @@ yyreduce: break; case 268: + +/* Line 1455 of yacc.c */ #line 1079 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) SwitchNode(GLOBAL_DATA, (yyvsp[(3) - (5)].expressionNode).m_node, (yyvsp[(5) - (5)].caseBlockNode).m_node), (yyvsp[(5) - (5)].caseBlockNode).m_varDeclarations, (yyvsp[(5) - (5)].caseBlockNode).m_funcDeclarations, (yyvsp[(3) - (5)].expressionNode).m_features | (yyvsp[(5) - (5)].caseBlockNode).m_features, (yyvsp[(3) - (5)].expressionNode).m_numConstants + (yyvsp[(5) - (5)].caseBlockNode).m_numConstants); @@ -4216,11 +4564,15 @@ yyreduce: break; case 269: + +/* Line 1455 of yacc.c */ #line 1085 "../../JavaScriptCore/parser/Grammar.y" { (yyval.caseBlockNode) = createNodeDeclarationInfo<CaseBlockNode*>(new (GLOBAL_DATA) CaseBlockNode(GLOBAL_DATA, (yyvsp[(2) - (3)].clauseList).m_node.head, 0, 0), (yyvsp[(2) - (3)].clauseList).m_varDeclarations, (yyvsp[(2) - (3)].clauseList).m_funcDeclarations, (yyvsp[(2) - (3)].clauseList).m_features, (yyvsp[(2) - (3)].clauseList).m_numConstants); ;} break; case 270: + +/* Line 1455 of yacc.c */ #line 1087 "../../JavaScriptCore/parser/Grammar.y" { (yyval.caseBlockNode) = createNodeDeclarationInfo<CaseBlockNode*>(new (GLOBAL_DATA) CaseBlockNode(GLOBAL_DATA, (yyvsp[(2) - (5)].clauseList).m_node.head, (yyvsp[(3) - (5)].caseClauseNode).m_node, (yyvsp[(4) - (5)].clauseList).m_node.head), mergeDeclarationLists(mergeDeclarationLists((yyvsp[(2) - (5)].clauseList).m_varDeclarations, (yyvsp[(3) - (5)].caseClauseNode).m_varDeclarations), (yyvsp[(4) - (5)].clauseList).m_varDeclarations), @@ -4230,11 +4582,15 @@ yyreduce: break; case 271: + +/* Line 1455 of yacc.c */ #line 1095 "../../JavaScriptCore/parser/Grammar.y" { (yyval.clauseList).m_node.head = 0; (yyval.clauseList).m_node.tail = 0; (yyval.clauseList).m_varDeclarations = 0; (yyval.clauseList).m_funcDeclarations = 0; (yyval.clauseList).m_features = 0; (yyval.clauseList).m_numConstants = 0; ;} break; case 273: + +/* Line 1455 of yacc.c */ #line 1100 "../../JavaScriptCore/parser/Grammar.y" { (yyval.clauseList).m_node.head = new (GLOBAL_DATA) ClauseListNode(GLOBAL_DATA, (yyvsp[(1) - (1)].caseClauseNode).m_node); (yyval.clauseList).m_node.tail = (yyval.clauseList).m_node.head; @@ -4245,6 +4601,8 @@ yyreduce: break; case 274: + +/* Line 1455 of yacc.c */ #line 1106 "../../JavaScriptCore/parser/Grammar.y" { (yyval.clauseList).m_node.head = (yyvsp[(1) - (2)].clauseList).m_node.head; (yyval.clauseList).m_node.tail = new (GLOBAL_DATA) ClauseListNode(GLOBAL_DATA, (yyvsp[(1) - (2)].clauseList).m_node.tail, (yyvsp[(2) - (2)].caseClauseNode).m_node); @@ -4256,26 +4614,36 @@ yyreduce: break; case 275: + +/* Line 1455 of yacc.c */ #line 1116 "../../JavaScriptCore/parser/Grammar.y" { (yyval.caseClauseNode) = createNodeDeclarationInfo<CaseClauseNode*>(new (GLOBAL_DATA) CaseClauseNode(GLOBAL_DATA, (yyvsp[(2) - (3)].expressionNode).m_node), 0, 0, (yyvsp[(2) - (3)].expressionNode).m_features, (yyvsp[(2) - (3)].expressionNode).m_numConstants); ;} break; case 276: + +/* Line 1455 of yacc.c */ #line 1117 "../../JavaScriptCore/parser/Grammar.y" { (yyval.caseClauseNode) = createNodeDeclarationInfo<CaseClauseNode*>(new (GLOBAL_DATA) CaseClauseNode(GLOBAL_DATA, (yyvsp[(2) - (4)].expressionNode).m_node, (yyvsp[(4) - (4)].sourceElements).m_node), (yyvsp[(4) - (4)].sourceElements).m_varDeclarations, (yyvsp[(4) - (4)].sourceElements).m_funcDeclarations, (yyvsp[(2) - (4)].expressionNode).m_features | (yyvsp[(4) - (4)].sourceElements).m_features, (yyvsp[(2) - (4)].expressionNode).m_numConstants + (yyvsp[(4) - (4)].sourceElements).m_numConstants); ;} break; case 277: + +/* Line 1455 of yacc.c */ #line 1121 "../../JavaScriptCore/parser/Grammar.y" { (yyval.caseClauseNode) = createNodeDeclarationInfo<CaseClauseNode*>(new (GLOBAL_DATA) CaseClauseNode(GLOBAL_DATA, 0), 0, 0, 0, 0); ;} break; case 278: + +/* Line 1455 of yacc.c */ #line 1122 "../../JavaScriptCore/parser/Grammar.y" { (yyval.caseClauseNode) = createNodeDeclarationInfo<CaseClauseNode*>(new (GLOBAL_DATA) CaseClauseNode(GLOBAL_DATA, 0, (yyvsp[(3) - (3)].sourceElements).m_node), (yyvsp[(3) - (3)].sourceElements).m_varDeclarations, (yyvsp[(3) - (3)].sourceElements).m_funcDeclarations, (yyvsp[(3) - (3)].sourceElements).m_features, (yyvsp[(3) - (3)].sourceElements).m_numConstants); ;} break; case 279: + +/* Line 1455 of yacc.c */ #line 1126 "../../JavaScriptCore/parser/Grammar.y" { LabelNode* node = new (GLOBAL_DATA) LabelNode(GLOBAL_DATA, *(yyvsp[(1) - (3)].ident), (yyvsp[(3) - (3)].statementNode).m_node); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column); @@ -4283,6 +4651,8 @@ yyreduce: break; case 280: + +/* Line 1455 of yacc.c */ #line 1132 "../../JavaScriptCore/parser/Grammar.y" { ThrowNode* node = new (GLOBAL_DATA) ThrowNode(GLOBAL_DATA, (yyvsp[(2) - (3)].expressionNode).m_node); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column); @@ -4291,6 +4661,8 @@ yyreduce: break; case 281: + +/* Line 1455 of yacc.c */ #line 1136 "../../JavaScriptCore/parser/Grammar.y" { ThrowNode* node = new (GLOBAL_DATA) ThrowNode(GLOBAL_DATA, (yyvsp[(2) - (3)].expressionNode).m_node); SET_EXCEPTION_LOCATION(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column); @@ -4299,6 +4671,8 @@ yyreduce: break; case 282: + +/* Line 1455 of yacc.c */ #line 1143 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) TryNode(GLOBAL_DATA, (yyvsp[(2) - (4)].statementNode).m_node, GLOBAL_DATA->propertyNames->nullIdentifier, false, 0, (yyvsp[(4) - (4)].statementNode).m_node), mergeDeclarationLists((yyvsp[(2) - (4)].statementNode).m_varDeclarations, (yyvsp[(4) - (4)].statementNode).m_varDeclarations), @@ -4309,6 +4683,8 @@ yyreduce: break; case 283: + +/* Line 1455 of yacc.c */ #line 1149 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) TryNode(GLOBAL_DATA, (yyvsp[(2) - (7)].statementNode).m_node, *(yyvsp[(5) - (7)].ident), ((yyvsp[(7) - (7)].statementNode).m_features & EvalFeature) != 0, (yyvsp[(7) - (7)].statementNode).m_node, 0), mergeDeclarationLists((yyvsp[(2) - (7)].statementNode).m_varDeclarations, (yyvsp[(7) - (7)].statementNode).m_varDeclarations), @@ -4319,6 +4695,8 @@ yyreduce: break; case 284: + +/* Line 1455 of yacc.c */ #line 1156 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) TryNode(GLOBAL_DATA, (yyvsp[(2) - (9)].statementNode).m_node, *(yyvsp[(5) - (9)].ident), ((yyvsp[(7) - (9)].statementNode).m_features & EvalFeature) != 0, (yyvsp[(7) - (9)].statementNode).m_node, (yyvsp[(9) - (9)].statementNode).m_node), mergeDeclarationLists(mergeDeclarationLists((yyvsp[(2) - (9)].statementNode).m_varDeclarations, (yyvsp[(7) - (9)].statementNode).m_varDeclarations), (yyvsp[(9) - (9)].statementNode).m_varDeclarations), @@ -4329,23 +4707,31 @@ yyreduce: break; case 285: + +/* Line 1455 of yacc.c */ #line 1165 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) DebuggerStatementNode(GLOBAL_DATA), 0, 0, 0, 0); DBG((yyval.statementNode).m_node, (yylsp[(1) - (2)]), (yylsp[(2) - (2)])); ;} break; case 286: + +/* Line 1455 of yacc.c */ #line 1167 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) DebuggerStatementNode(GLOBAL_DATA), 0, 0, 0, 0); DBG((yyval.statementNode).m_node, (yylsp[(1) - (2)]), (yylsp[(1) - (2)])); AUTO_SEMICOLON; ;} break; case 287: + +/* Line 1455 of yacc.c */ #line 1172 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new FuncDeclNode(GLOBAL_DATA, *(yyvsp[(2) - (7)].ident), (yyvsp[(6) - (7)].functionBodyNode), LEXER->sourceCode((yyvsp[(5) - (7)].intValue), (yyvsp[(7) - (7)].intValue), (yylsp[(5) - (7)]).first_line)), 0, new (GLOBAL_DATA) ParserArenaData<DeclarationStacks::FunctionStack>, ((*(yyvsp[(2) - (7)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0) | ClosureFeature, 0); DBG((yyvsp[(6) - (7)].functionBodyNode), (yylsp[(5) - (7)]), (yylsp[(7) - (7)])); (yyval.statementNode).m_funcDeclarations->data.append(static_cast<FuncDeclNode*>((yyval.statementNode).m_node)); ;} break; case 288: + +/* Line 1455 of yacc.c */ #line 1174 "../../JavaScriptCore/parser/Grammar.y" { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new FuncDeclNode(GLOBAL_DATA, *(yyvsp[(2) - (8)].ident), (yyvsp[(7) - (8)].functionBodyNode), LEXER->sourceCode((yyvsp[(6) - (8)].intValue), (yyvsp[(8) - (8)].intValue), (yylsp[(6) - (8)]).first_line), (yyvsp[(4) - (8)].parameterList).m_node.head), 0, new (GLOBAL_DATA) ParserArenaData<DeclarationStacks::FunctionStack>, ((*(yyvsp[(2) - (8)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0) | (yyvsp[(4) - (8)].parameterList).m_features | ClosureFeature, 0); @@ -4357,11 +4743,15 @@ yyreduce: break; case 289: + +/* Line 1455 of yacc.c */ #line 1184 "../../JavaScriptCore/parser/Grammar.y" { (yyval.funcExprNode) = createNodeInfo(new FuncExprNode(GLOBAL_DATA, GLOBAL_DATA->propertyNames->nullIdentifier, (yyvsp[(5) - (6)].functionBodyNode), LEXER->sourceCode((yyvsp[(4) - (6)].intValue), (yyvsp[(6) - (6)].intValue), (yylsp[(4) - (6)]).first_line)), ClosureFeature, 0); DBG((yyvsp[(5) - (6)].functionBodyNode), (yylsp[(4) - (6)]), (yylsp[(6) - (6)])); ;} break; case 290: + +/* Line 1455 of yacc.c */ #line 1186 "../../JavaScriptCore/parser/Grammar.y" { (yyval.funcExprNode) = createNodeInfo(new FuncExprNode(GLOBAL_DATA, GLOBAL_DATA->propertyNames->nullIdentifier, (yyvsp[(6) - (7)].functionBodyNode), LEXER->sourceCode((yyvsp[(5) - (7)].intValue), (yyvsp[(7) - (7)].intValue), (yylsp[(5) - (7)]).first_line), (yyvsp[(3) - (7)].parameterList).m_node.head), (yyvsp[(3) - (7)].parameterList).m_features | ClosureFeature, 0); @@ -4372,11 +4762,15 @@ yyreduce: break; case 291: + +/* Line 1455 of yacc.c */ #line 1192 "../../JavaScriptCore/parser/Grammar.y" { (yyval.funcExprNode) = createNodeInfo(new FuncExprNode(GLOBAL_DATA, *(yyvsp[(2) - (7)].ident), (yyvsp[(6) - (7)].functionBodyNode), LEXER->sourceCode((yyvsp[(5) - (7)].intValue), (yyvsp[(7) - (7)].intValue), (yylsp[(5) - (7)]).first_line)), ClosureFeature, 0); DBG((yyvsp[(6) - (7)].functionBodyNode), (yylsp[(5) - (7)]), (yylsp[(7) - (7)])); ;} break; case 292: + +/* Line 1455 of yacc.c */ #line 1194 "../../JavaScriptCore/parser/Grammar.y" { (yyval.funcExprNode) = createNodeInfo(new FuncExprNode(GLOBAL_DATA, *(yyvsp[(2) - (8)].ident), (yyvsp[(7) - (8)].functionBodyNode), LEXER->sourceCode((yyvsp[(6) - (8)].intValue), (yyvsp[(8) - (8)].intValue), (yylsp[(6) - (8)]).first_line), (yyvsp[(4) - (8)].parameterList).m_node.head), (yyvsp[(4) - (8)].parameterList).m_features | ClosureFeature, 0); @@ -4387,6 +4781,8 @@ yyreduce: break; case 293: + +/* Line 1455 of yacc.c */ #line 1203 "../../JavaScriptCore/parser/Grammar.y" { (yyval.parameterList).m_node.head = new (GLOBAL_DATA) ParameterNode(GLOBAL_DATA, *(yyvsp[(1) - (1)].ident)); (yyval.parameterList).m_features = (*(yyvsp[(1) - (1)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0; @@ -4394,6 +4790,8 @@ yyreduce: break; case 294: + +/* Line 1455 of yacc.c */ #line 1206 "../../JavaScriptCore/parser/Grammar.y" { (yyval.parameterList).m_node.head = (yyvsp[(1) - (3)].parameterList).m_node.head; (yyval.parameterList).m_features = (yyvsp[(1) - (3)].parameterList).m_features | ((*(yyvsp[(3) - (3)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0); @@ -4401,27 +4799,37 @@ yyreduce: break; case 295: + +/* Line 1455 of yacc.c */ #line 1212 "../../JavaScriptCore/parser/Grammar.y" { (yyval.functionBodyNode) = FunctionBodyNode::create(GLOBAL_DATA); ;} break; case 296: + +/* Line 1455 of yacc.c */ #line 1213 "../../JavaScriptCore/parser/Grammar.y" { (yyval.functionBodyNode) = FunctionBodyNode::create(GLOBAL_DATA); ;} break; case 297: + +/* Line 1455 of yacc.c */ #line 1217 "../../JavaScriptCore/parser/Grammar.y" { GLOBAL_DATA->parser->didFinishParsing(new (GLOBAL_DATA) SourceElements(GLOBAL_DATA), 0, 0, NoFeatures, (yylsp[(0) - (0)]).last_line, 0); ;} break; case 298: + +/* Line 1455 of yacc.c */ #line 1218 "../../JavaScriptCore/parser/Grammar.y" { GLOBAL_DATA->parser->didFinishParsing((yyvsp[(1) - (1)].sourceElements).m_node, (yyvsp[(1) - (1)].sourceElements).m_varDeclarations, (yyvsp[(1) - (1)].sourceElements).m_funcDeclarations, (yyvsp[(1) - (1)].sourceElements).m_features, (yylsp[(1) - (1)]).last_line, (yyvsp[(1) - (1)].sourceElements).m_numConstants); ;} break; case 299: + +/* Line 1455 of yacc.c */ #line 1223 "../../JavaScriptCore/parser/Grammar.y" { (yyval.sourceElements).m_node = new (GLOBAL_DATA) SourceElements(GLOBAL_DATA); (yyval.sourceElements).m_node->append((yyvsp[(1) - (1)].statementNode).m_node); @@ -4433,6 +4841,8 @@ yyreduce: break; case 300: + +/* Line 1455 of yacc.c */ #line 1230 "../../JavaScriptCore/parser/Grammar.y" { (yyval.sourceElements).m_node->append((yyvsp[(2) - (2)].statementNode).m_node); (yyval.sourceElements).m_varDeclarations = mergeDeclarationLists((yyvsp[(1) - (2)].sourceElements).m_varDeclarations, (yyvsp[(2) - (2)].statementNode).m_varDeclarations); @@ -4443,188 +4853,261 @@ yyreduce: break; case 304: + +/* Line 1455 of yacc.c */ #line 1244 "../../JavaScriptCore/parser/Grammar.y" { ;} break; case 305: + +/* Line 1455 of yacc.c */ #line 1245 "../../JavaScriptCore/parser/Grammar.y" { ;} break; case 306: + +/* Line 1455 of yacc.c */ #line 1246 "../../JavaScriptCore/parser/Grammar.y" { Lexer& l = *LEXER; if (!l.scanRegExp()) YYABORT; ;} break; case 307: + +/* Line 1455 of yacc.c */ #line 1247 "../../JavaScriptCore/parser/Grammar.y" { Lexer& l = *LEXER; if (!l.scanRegExp()) YYABORT; ;} break; case 308: + +/* Line 1455 of yacc.c */ #line 1251 "../../JavaScriptCore/parser/Grammar.y" { ;} break; case 309: + +/* Line 1455 of yacc.c */ #line 1252 "../../JavaScriptCore/parser/Grammar.y" { ;} break; case 310: + +/* Line 1455 of yacc.c */ #line 1253 "../../JavaScriptCore/parser/Grammar.y" { ;} break; case 311: + +/* Line 1455 of yacc.c */ #line 1254 "../../JavaScriptCore/parser/Grammar.y" { if (*(yyvsp[(1) - (7)].ident) != "get" && *(yyvsp[(1) - (7)].ident) != "set") YYABORT; ;} break; case 312: + +/* Line 1455 of yacc.c */ #line 1255 "../../JavaScriptCore/parser/Grammar.y" { if (*(yyvsp[(1) - (8)].ident) != "get" && *(yyvsp[(1) - (8)].ident) != "set") YYABORT; ;} break; case 316: + +/* Line 1455 of yacc.c */ #line 1265 "../../JavaScriptCore/parser/Grammar.y" { ;} break; case 317: + +/* Line 1455 of yacc.c */ #line 1266 "../../JavaScriptCore/parser/Grammar.y" { ;} break; case 318: + +/* Line 1455 of yacc.c */ #line 1268 "../../JavaScriptCore/parser/Grammar.y" { ;} break; case 322: + +/* Line 1455 of yacc.c */ #line 1275 "../../JavaScriptCore/parser/Grammar.y" { ;} break; case 517: + +/* Line 1455 of yacc.c */ #line 1643 "../../JavaScriptCore/parser/Grammar.y" { ;} break; case 518: + +/* Line 1455 of yacc.c */ #line 1644 "../../JavaScriptCore/parser/Grammar.y" { ;} break; case 520: + +/* Line 1455 of yacc.c */ #line 1649 "../../JavaScriptCore/parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 521: + +/* Line 1455 of yacc.c */ #line 1653 "../../JavaScriptCore/parser/Grammar.y" { ;} break; case 522: + +/* Line 1455 of yacc.c */ #line 1654 "../../JavaScriptCore/parser/Grammar.y" { ;} break; case 525: + +/* Line 1455 of yacc.c */ #line 1660 "../../JavaScriptCore/parser/Grammar.y" { ;} break; case 526: + +/* Line 1455 of yacc.c */ #line 1661 "../../JavaScriptCore/parser/Grammar.y" { ;} break; case 530: + +/* Line 1455 of yacc.c */ #line 1668 "../../JavaScriptCore/parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 533: + +/* Line 1455 of yacc.c */ #line 1677 "../../JavaScriptCore/parser/Grammar.y" { ;} break; case 534: + +/* Line 1455 of yacc.c */ #line 1678 "../../JavaScriptCore/parser/Grammar.y" { ;} break; case 539: + +/* Line 1455 of yacc.c */ #line 1695 "../../JavaScriptCore/parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 555: + +/* Line 1455 of yacc.c */ #line 1726 "../../JavaScriptCore/parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 557: + +/* Line 1455 of yacc.c */ #line 1728 "../../JavaScriptCore/parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 559: + +/* Line 1455 of yacc.c */ #line 1733 "../../JavaScriptCore/parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 561: + +/* Line 1455 of yacc.c */ #line 1735 "../../JavaScriptCore/parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 563: + +/* Line 1455 of yacc.c */ #line 1740 "../../JavaScriptCore/parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 565: + +/* Line 1455 of yacc.c */ #line 1742 "../../JavaScriptCore/parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 568: + +/* Line 1455 of yacc.c */ #line 1754 "../../JavaScriptCore/parser/Grammar.y" { ;} break; case 569: + +/* Line 1455 of yacc.c */ #line 1755 "../../JavaScriptCore/parser/Grammar.y" { ;} break; case 578: + +/* Line 1455 of yacc.c */ #line 1779 "../../JavaScriptCore/parser/Grammar.y" { ;} break; case 580: + +/* Line 1455 of yacc.c */ #line 1784 "../../JavaScriptCore/parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 585: + +/* Line 1455 of yacc.c */ #line 1795 "../../JavaScriptCore/parser/Grammar.y" { AUTO_SEMICOLON; ;} break; case 592: + +/* Line 1455 of yacc.c */ #line 1811 "../../JavaScriptCore/parser/Grammar.y" { ;} break; -/* Line 1267 of yacc.c. */ -#line 4628 "WebCore/tmp/../generated/Grammar.tab.c" + +/* Line 1455 of yacc.c */ +#line 5111 "WebCore/tmp/../generated/Grammar.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -4700,7 +5183,7 @@ yyerrlab: if (yyerrstatus == 3) { - /* If just tried and failed to reuse look-ahead token after an + /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) @@ -4717,7 +5200,7 @@ yyerrlab: } } - /* Else will try to reuse look-ahead token after shifting the error + /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; @@ -4775,14 +5258,11 @@ yyerrlab1: YY_STACK_PRINT (yyss, yyssp); } - if (yyn == YYFINAL) - YYACCEPT; - *++yyvsp = yylval; yyerror_range[1] = yylloc; /* Using YYLLOC is tempting, but would change the location of - the look-ahead. YYLOC is available though. */ + the lookahead. YYLOC is available though. */ YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2); *++yylsp = yyloc; @@ -4807,7 +5287,7 @@ yyabortlab: yyresult = 1; goto yyreturn; -#ifndef yyoverflow +#if !defined(yyoverflow) || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ @@ -4818,7 +5298,7 @@ yyexhaustedlab: #endif yyreturn: - if (yychar != YYEOF && yychar != YYEMPTY) + if (yychar != YYEMPTY) yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc); /* Do not reclaim the symbols of the rule which action triggered @@ -4844,6 +5324,8 @@ yyreturn: } + +/* Line 1675 of yacc.c */ #line 1827 "../../JavaScriptCore/parser/Grammar.y" diff --git a/src/3rdparty/webkit/WebCore/generated/Grammar.h b/src/3rdparty/webkit/WebCore/generated/Grammar.h index 4188cd8..34b0b37 100644 --- a/src/3rdparty/webkit/WebCore/generated/Grammar.h +++ b/src/3rdparty/webkit/WebCore/generated/Grammar.h @@ -1,24 +1,23 @@ -/* A Bison parser, made by GNU Bison 2.3. */ -/* Skeleton interface for Bison's Yacc-like parsers in C +/* A Bison parser, made by GNU Bison 2.4.1. */ - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +/* Skeleton interface for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -29,10 +28,11 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ + /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE @@ -104,78 +104,16 @@ AUTOMINUSMINUS = 320 }; #endif -/* Tokens. */ -#define NULLTOKEN 258 -#define TRUETOKEN 259 -#define FALSETOKEN 260 -#define BREAK 261 -#define CASE 262 -#define DEFAULT 263 -#define FOR 264 -#define NEW 265 -#define VAR 266 -#define CONSTTOKEN 267 -#define CONTINUE 268 -#define FUNCTION 269 -#define RETURN 270 -#define VOIDTOKEN 271 -#define DELETETOKEN 272 -#define IF 273 -#define THISTOKEN 274 -#define DO 275 -#define WHILE 276 -#define INTOKEN 277 -#define INSTANCEOF 278 -#define TYPEOF 279 -#define SWITCH 280 -#define WITH 281 -#define RESERVED 282 -#define THROW 283 -#define TRY 284 -#define CATCH 285 -#define FINALLY 286 -#define DEBUGGER 287 -#define IF_WITHOUT_ELSE 288 -#define ELSE 289 -#define EQEQ 290 -#define NE 291 -#define STREQ 292 -#define STRNEQ 293 -#define LE 294 -#define GE 295 -#define OR 296 -#define AND 297 -#define PLUSPLUS 298 -#define MINUSMINUS 299 -#define LSHIFT 300 -#define RSHIFT 301 -#define URSHIFT 302 -#define PLUSEQUAL 303 -#define MINUSEQUAL 304 -#define MULTEQUAL 305 -#define DIVEQUAL 306 -#define LSHIFTEQUAL 307 -#define RSHIFTEQUAL 308 -#define URSHIFTEQUAL 309 -#define ANDEQUAL 310 -#define MODEQUAL 311 -#define XOREQUAL 312 -#define OREQUAL 313 -#define OPENBRACE 314 -#define CLOSEBRACE 315 -#define NUMBER 316 -#define IDENT 317 -#define STRING 318 -#define AUTOPLUSPLUS 319 -#define AUTOMINUSMINUS 320 - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 157 "../../JavaScriptCore/parser/Grammar.y" { + +/* Line 1676 of yacc.c */ +#line 157 "../../JavaScriptCore/parser/Grammar.y" + int intValue; double doubleValue; Identifier* ident; @@ -205,13 +143,15 @@ typedef union YYSTYPE ParameterListInfo parameterList; Operator op; -} -/* Line 1489 of yacc.c. */ -#line 211 "WebCore/tmp/../generated/Grammar.tab.h" - YYSTYPE; + + + +/* Line 1676 of yacc.c */ +#line 151 "WebCore/tmp/../generated/Grammar.tab.h" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif @@ -230,3 +170,4 @@ typedef struct YYLTYPE #endif + diff --git a/src/3rdparty/webkit/WebCore/generated/HTMLElementFactory.cpp b/src/3rdparty/webkit/WebCore/generated/HTMLElementFactory.cpp index d14bc93..4a8430c 100644 --- a/src/3rdparty/webkit/WebCore/generated/HTMLElementFactory.cpp +++ b/src/3rdparty/webkit/WebCore/generated/HTMLElementFactory.cpp @@ -184,21 +184,33 @@ static PassRefPtr<HTMLElement> tablecolConstructor(const QualifiedName& tagName, return new HTMLTableColElement(tagName, doc); } +#if ENABLE(DATAGRID) + static PassRefPtr<HTMLElement> datagridConstructor(const QualifiedName& tagName, Document* doc, HTMLFormElement*, bool) { return new HTMLDataGridElement(tagName, doc); } +#endif + +#if ENABLE(DATAGRID) + static PassRefPtr<HTMLElement> datagridcellConstructor(const QualifiedName& tagName, Document* doc, HTMLFormElement*, bool) { return new HTMLDataGridCellElement(tagName, doc); } +#endif + +#if ENABLE(DATAGRID) + static PassRefPtr<HTMLElement> datagridcolConstructor(const QualifiedName& tagName, Document* doc, HTMLFormElement*, bool) { return new HTMLDataGridColElement(tagName, doc); } +#endif + static PassRefPtr<HTMLElement> modConstructor(const QualifiedName& tagName, Document* doc, HTMLFormElement*, bool) { return new HTMLModElement(tagName, doc); @@ -219,11 +231,15 @@ static PassRefPtr<HTMLElement> dlistConstructor(const QualifiedName& tagName, Do return new HTMLDListElement(tagName, doc); } +#if ENABLE(DATAGRID) + static PassRefPtr<HTMLElement> datagridrowConstructor(const QualifiedName& tagName, Document* doc, HTMLFormElement*, bool) { return new HTMLDataGridRowElement(tagName, doc); } +#endif + static PassRefPtr<HTMLElement> embedConstructor(const QualifiedName& tagName, Document* doc, HTMLFormElement*, bool) { return new HTMLEmbedElement(tagName, doc); @@ -486,14 +502,26 @@ static inline void createFunctionMapIfNecessary() addTag(captionTag, tablecaptionConstructor); addTag(colTag, tablecolConstructor); addTag(colgroupTag, tablecolConstructor); +#if ENABLE(DATAGRID) addTag(datagridTag, datagridConstructor); +#endif + +#if ENABLE(DATAGRID) addTag(dcellTag, datagridcellConstructor); +#endif + +#if ENABLE(DATAGRID) addTag(dcolTag, datagridcolConstructor); +#endif + addTag(delTag, modConstructor); addTag(dirTag, directoryConstructor); addTag(divTag, divConstructor); addTag(dlTag, dlistConstructor); +#if ENABLE(DATAGRID) addTag(drowTag, datagridrowConstructor); +#endif + addTag(embedTag, embedConstructor); addTag(fieldsetTag, fieldsetConstructor); addTag(fontTag, fontConstructor); diff --git a/src/3rdparty/webkit/WebCore/generated/HTMLNames.cpp b/src/3rdparty/webkit/WebCore/generated/HTMLNames.cpp index 4e23159..f40ae05 100644 --- a/src/3rdparty/webkit/WebCore/generated/HTMLNames.cpp +++ b/src/3rdparty/webkit/WebCore/generated/HTMLNames.cpp @@ -128,6 +128,9 @@ DEFINE_GLOBAL(QualifiedName, paramTag, nullAtom, "param", xhtmlNamespaceURI); DEFINE_GLOBAL(QualifiedName, plaintextTag, nullAtom, "plaintext", xhtmlNamespaceURI); DEFINE_GLOBAL(QualifiedName, preTag, nullAtom, "pre", xhtmlNamespaceURI); DEFINE_GLOBAL(QualifiedName, qTag, nullAtom, "q", xhtmlNamespaceURI); +DEFINE_GLOBAL(QualifiedName, rpTag, nullAtom, "rp", xhtmlNamespaceURI); +DEFINE_GLOBAL(QualifiedName, rtTag, nullAtom, "rt", xhtmlNamespaceURI); +DEFINE_GLOBAL(QualifiedName, rubyTag, nullAtom, "ruby", xhtmlNamespaceURI); DEFINE_GLOBAL(QualifiedName, sTag, nullAtom, "s", xhtmlNamespaceURI); DEFINE_GLOBAL(QualifiedName, sampTag, nullAtom, "samp", xhtmlNamespaceURI); DEFINE_GLOBAL(QualifiedName, scriptTag, nullAtom, "script", xhtmlNamespaceURI); @@ -244,6 +247,9 @@ WebCore::QualifiedName** getHTMLTags(size_t* size) (WebCore::QualifiedName*)&plaintextTag, (WebCore::QualifiedName*)&preTag, (WebCore::QualifiedName*)&qTag, + (WebCore::QualifiedName*)&rpTag, + (WebCore::QualifiedName*)&rtTag, + (WebCore::QualifiedName*)&rubyTag, (WebCore::QualifiedName*)&sTag, (WebCore::QualifiedName*)&sampTag, (WebCore::QualifiedName*)&scriptTag, @@ -273,7 +279,7 @@ WebCore::QualifiedName** getHTMLTags(size_t* size) (WebCore::QualifiedName*)&wbrTag, (WebCore::QualifiedName*)&xmpTag, }; - *size = 111; + *size = 114; return HTMLTags; } @@ -292,6 +298,7 @@ DEFINE_GLOBAL(QualifiedName, aria_checkedAttr, nullAtom, "aria_checked", xhtmlNa DEFINE_GLOBAL(QualifiedName, aria_describedbyAttr, nullAtom, "aria_describedby", xhtmlNamespaceURI); DEFINE_GLOBAL(QualifiedName, aria_disabledAttr, nullAtom, "aria_disabled", xhtmlNamespaceURI); DEFINE_GLOBAL(QualifiedName, aria_hiddenAttr, nullAtom, "aria_hidden", xhtmlNamespaceURI); +DEFINE_GLOBAL(QualifiedName, aria_labelAttr, nullAtom, "aria_label", xhtmlNamespaceURI); DEFINE_GLOBAL(QualifiedName, aria_labeledbyAttr, nullAtom, "aria_labeledby", xhtmlNamespaceURI); DEFINE_GLOBAL(QualifiedName, aria_labelledbyAttr, nullAtom, "aria_labelledby", xhtmlNamespaceURI); DEFINE_GLOBAL(QualifiedName, aria_levelAttr, nullAtom, "aria_level", xhtmlNamespaceURI); @@ -529,6 +536,7 @@ WebCore::QualifiedName** getHTMLAttrs(size_t* size) (WebCore::QualifiedName*)&aria_describedbyAttr, (WebCore::QualifiedName*)&aria_disabledAttr, (WebCore::QualifiedName*)&aria_hiddenAttr, + (WebCore::QualifiedName*)&aria_labelAttr, (WebCore::QualifiedName*)&aria_labeledbyAttr, (WebCore::QualifiedName*)&aria_labelledbyAttr, (WebCore::QualifiedName*)&aria_levelAttr, @@ -748,7 +756,7 @@ WebCore::QualifiedName** getHTMLAttrs(size_t* size) (WebCore::QualifiedName*)&widthAttr, (WebCore::QualifiedName*)&wrapAttr, }; - *size = 232; + *size = 233; return HTMLAttr; } @@ -856,6 +864,9 @@ void init() const char *plaintextTagString = "plaintext"; const char *preTagString = "pre"; const char *qTagString = "q"; + const char *rpTagString = "rp"; + const char *rtTagString = "rt"; + const char *rubyTagString = "ruby"; const char *sTagString = "s"; const char *sampTagString = "samp"; const char *scriptTagString = "script"; @@ -967,6 +978,9 @@ void init() new ((void*)&plaintextTag) QualifiedName(nullAtom, plaintextTagString, xhtmlNS); new ((void*)&preTag) QualifiedName(nullAtom, preTagString, xhtmlNS); new ((void*)&qTag) QualifiedName(nullAtom, qTagString, xhtmlNS); + new ((void*)&rpTag) QualifiedName(nullAtom, rpTagString, xhtmlNS); + new ((void*)&rtTag) QualifiedName(nullAtom, rtTagString, xhtmlNS); + new ((void*)&rubyTag) QualifiedName(nullAtom, rubyTagString, xhtmlNS); new ((void*)&sTag) QualifiedName(nullAtom, sTagString, xhtmlNS); new ((void*)&sampTag) QualifiedName(nullAtom, sampTagString, xhtmlNS); new ((void*)&scriptTag) QualifiedName(nullAtom, scriptTagString, xhtmlNS); @@ -1010,6 +1024,7 @@ void init() const char *aria_describedbyAttrString = "aria-describedby"; const char *aria_disabledAttrString = "aria-disabled"; const char *aria_hiddenAttrString = "aria-hidden"; + const char *aria_labelAttrString = "aria-label"; const char *aria_labeledbyAttrString = "aria-labeledby"; const char *aria_labelledbyAttrString = "aria-labelledby"; const char *aria_levelAttrString = "aria-level"; @@ -1241,6 +1256,7 @@ void init() new ((void*)&aria_describedbyAttr) QualifiedName(nullAtom, aria_describedbyAttrString, nullAtom); new ((void*)&aria_disabledAttr) QualifiedName(nullAtom, aria_disabledAttrString, nullAtom); new ((void*)&aria_hiddenAttr) QualifiedName(nullAtom, aria_hiddenAttrString, nullAtom); + new ((void*)&aria_labelAttr) QualifiedName(nullAtom, aria_labelAttrString, nullAtom); new ((void*)&aria_labeledbyAttr) QualifiedName(nullAtom, aria_labeledbyAttrString, nullAtom); new ((void*)&aria_labelledbyAttr) QualifiedName(nullAtom, aria_labelledbyAttrString, nullAtom); new ((void*)&aria_levelAttr) QualifiedName(nullAtom, aria_levelAttrString, nullAtom); diff --git a/src/3rdparty/webkit/WebCore/generated/HTMLNames.h b/src/3rdparty/webkit/WebCore/generated/HTMLNames.h index fba6088..3de4fc5 100644 --- a/src/3rdparty/webkit/WebCore/generated/HTMLNames.h +++ b/src/3rdparty/webkit/WebCore/generated/HTMLNames.h @@ -124,6 +124,9 @@ extern const WebCore::QualifiedName paramTag; extern const WebCore::QualifiedName plaintextTag; extern const WebCore::QualifiedName preTag; extern const WebCore::QualifiedName qTag; +extern const WebCore::QualifiedName rpTag; +extern const WebCore::QualifiedName rtTag; +extern const WebCore::QualifiedName rubyTag; extern const WebCore::QualifiedName sTag; extern const WebCore::QualifiedName sampTag; extern const WebCore::QualifiedName scriptTag; @@ -167,6 +170,7 @@ extern const WebCore::QualifiedName aria_checkedAttr; extern const WebCore::QualifiedName aria_describedbyAttr; extern const WebCore::QualifiedName aria_disabledAttr; extern const WebCore::QualifiedName aria_hiddenAttr; +extern const WebCore::QualifiedName aria_labelAttr; extern const WebCore::QualifiedName aria_labeledbyAttr; extern const WebCore::QualifiedName aria_labelledbyAttr; extern const WebCore::QualifiedName aria_levelAttr; diff --git a/src/3rdparty/webkit/WebCore/generated/JSAttr.cpp b/src/3rdparty/webkit/WebCore/generated/JSAttr.cpp index bf9bea5..4659189 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSAttr.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSAttr.cpp @@ -49,7 +49,7 @@ static const HashTableValue JSAttrTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSAttrTable = +static JSC_CONST_HASHTABLE HashTable JSAttrTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSAttrTableValues, 0 }; #else @@ -63,7 +63,7 @@ static const HashTableValue JSAttrConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSAttrConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSAttrConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSAttrConstructorTableValues, 0 }; #else @@ -101,7 +101,7 @@ static const HashTableValue JSAttrPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSAttrPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSAttrPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSAttrPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSBarInfo.cpp b/src/3rdparty/webkit/WebCore/generated/JSBarInfo.cpp index 25aede5..2b5afda 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSBarInfo.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSBarInfo.cpp @@ -38,7 +38,7 @@ static const HashTableValue JSBarInfoTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSBarInfoTable = +static JSC_CONST_HASHTABLE HashTable JSBarInfoTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSBarInfoTableValues, 0 }; #else @@ -52,7 +52,7 @@ static const HashTableValue JSBarInfoPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSBarInfoPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSBarInfoPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSBarInfoPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCDATASection.cpp b/src/3rdparty/webkit/WebCore/generated/JSCDATASection.cpp index f89540d..51f543f 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCDATASection.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCDATASection.cpp @@ -38,7 +38,7 @@ static const HashTableValue JSCDATASectionTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSCDATASectionTable = +static JSC_CONST_HASHTABLE HashTable JSCDATASectionTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCDATASectionTableValues, 0 }; #else @@ -52,7 +52,7 @@ static const HashTableValue JSCDATASectionConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCDATASectionConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSCDATASectionConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCDATASectionConstructorTableValues, 0 }; #else @@ -90,7 +90,7 @@ static const HashTableValue JSCDATASectionPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCDATASectionPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCDATASectionPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCDATASectionPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCSSCharsetRule.cpp b/src/3rdparty/webkit/WebCore/generated/JSCSSCharsetRule.cpp index 15cabbf..70a61d5 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCSSCharsetRule.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCSSCharsetRule.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSCSSCharsetRuleTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSCharsetRuleTable = +static JSC_CONST_HASHTABLE HashTable JSCSSCharsetRuleTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSCSSCharsetRuleTableValues, 0 }; #else @@ -54,7 +54,7 @@ static const HashTableValue JSCSSCharsetRuleConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSCharsetRuleConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSCSSCharsetRuleConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCSSCharsetRuleConstructorTableValues, 0 }; #else @@ -92,7 +92,7 @@ static const HashTableValue JSCSSCharsetRulePrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSCharsetRulePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCSSCharsetRulePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCSSCharsetRulePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCSSFontFaceRule.cpp b/src/3rdparty/webkit/WebCore/generated/JSCSSFontFaceRule.cpp index ab3b3a5..13c119e 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCSSFontFaceRule.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCSSFontFaceRule.cpp @@ -42,7 +42,7 @@ static const HashTableValue JSCSSFontFaceRuleTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSFontFaceRuleTable = +static JSC_CONST_HASHTABLE HashTable JSCSSFontFaceRuleTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSCSSFontFaceRuleTableValues, 0 }; #else @@ -56,7 +56,7 @@ static const HashTableValue JSCSSFontFaceRuleConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSFontFaceRuleConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSCSSFontFaceRuleConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCSSFontFaceRuleConstructorTableValues, 0 }; #else @@ -94,7 +94,7 @@ static const HashTableValue JSCSSFontFaceRulePrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSFontFaceRulePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCSSFontFaceRulePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCSSFontFaceRulePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCSSImportRule.cpp b/src/3rdparty/webkit/WebCore/generated/JSCSSImportRule.cpp index 4dc5151..45d5d60 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCSSImportRule.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCSSImportRule.cpp @@ -46,7 +46,7 @@ static const HashTableValue JSCSSImportRuleTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSImportRuleTable = +static JSC_CONST_HASHTABLE HashTable JSCSSImportRuleTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSCSSImportRuleTableValues, 0 }; #else @@ -60,7 +60,7 @@ static const HashTableValue JSCSSImportRuleConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSImportRuleConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSCSSImportRuleConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCSSImportRuleConstructorTableValues, 0 }; #else @@ -98,7 +98,7 @@ static const HashTableValue JSCSSImportRulePrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSImportRulePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCSSImportRulePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCSSImportRulePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCSSMediaRule.cpp b/src/3rdparty/webkit/WebCore/generated/JSCSSMediaRule.cpp index 35589af..3e13a69 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCSSMediaRule.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCSSMediaRule.cpp @@ -46,7 +46,7 @@ static const HashTableValue JSCSSMediaRuleTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSMediaRuleTable = +static JSC_CONST_HASHTABLE HashTable JSCSSMediaRuleTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSCSSMediaRuleTableValues, 0 }; #else @@ -60,7 +60,7 @@ static const HashTableValue JSCSSMediaRuleConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSMediaRuleConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSCSSMediaRuleConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCSSMediaRuleConstructorTableValues, 0 }; #else @@ -100,7 +100,7 @@ static const HashTableValue JSCSSMediaRulePrototypeTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSMediaRulePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCSSMediaRulePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSCSSMediaRulePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCSSPageRule.cpp b/src/3rdparty/webkit/WebCore/generated/JSCSSPageRule.cpp index 6869a49..c02abbd 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCSSPageRule.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCSSPageRule.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSCSSPageRuleTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSPageRuleTable = +static JSC_CONST_HASHTABLE HashTable JSCSSPageRuleTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSCSSPageRuleTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSCSSPageRuleConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSPageRuleConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSCSSPageRuleConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCSSPageRuleConstructorTableValues, 0 }; #else @@ -96,7 +96,7 @@ static const HashTableValue JSCSSPageRulePrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSPageRulePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCSSPageRulePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCSSPageRulePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCSSPrimitiveValue.cpp b/src/3rdparty/webkit/WebCore/generated/JSCSSPrimitiveValue.cpp index 61a39ec..5d81a44 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCSSPrimitiveValue.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCSSPrimitiveValue.cpp @@ -48,7 +48,7 @@ static const HashTableValue JSCSSPrimitiveValueTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSPrimitiveValueTable = +static JSC_CONST_HASHTABLE HashTable JSCSSPrimitiveValueTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSCSSPrimitiveValueTableValues, 0 }; #else @@ -88,7 +88,7 @@ static const HashTableValue JSCSSPrimitiveValueConstructorTableValues[27] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSPrimitiveValueConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSCSSPrimitiveValueConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 8191, JSCSSPrimitiveValueConstructorTableValues, 0 }; #else @@ -159,7 +159,7 @@ static const HashTableValue JSCSSPrimitiveValuePrototypeTableValues[34] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSPrimitiveValuePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCSSPrimitiveValuePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 8191, JSCSSPrimitiveValuePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCSSRule.cpp b/src/3rdparty/webkit/WebCore/generated/JSCSSRule.cpp index 31a4dc3..3aac528 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCSSRule.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCSSRule.cpp @@ -47,7 +47,7 @@ static const HashTableValue JSCSSRuleTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSRuleTable = +static JSC_CONST_HASHTABLE HashTable JSCSSRuleTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSCSSRuleTableValues, 0 }; #else @@ -71,7 +71,7 @@ static const HashTableValue JSCSSRuleConstructorTableValues[11] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSRuleConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSCSSRuleConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 1023, JSCSSRuleConstructorTableValues, 0 }; #else @@ -119,7 +119,7 @@ static const HashTableValue JSCSSRulePrototypeTableValues[11] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSRulePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCSSRulePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 1023, JSCSSRulePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCSSRuleList.cpp b/src/3rdparty/webkit/WebCore/generated/JSCSSRuleList.cpp index 19e9d14..6188091 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCSSRuleList.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCSSRuleList.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSCSSRuleListTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSRuleListTable = +static JSC_CONST_HASHTABLE HashTable JSCSSRuleListTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSCSSRuleListTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSCSSRuleListConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSRuleListConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSCSSRuleListConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCSSRuleListConstructorTableValues, 0 }; #else @@ -97,7 +97,7 @@ static const HashTableValue JSCSSRuleListPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSRuleListPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCSSRuleListPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCSSRuleListPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCSSStyleDeclaration.cpp b/src/3rdparty/webkit/WebCore/generated/JSCSSStyleDeclaration.cpp index cf7ceed..c437238 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCSSStyleDeclaration.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCSSStyleDeclaration.cpp @@ -51,7 +51,7 @@ static const HashTableValue JSCSSStyleDeclarationTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSStyleDeclarationTable = +static JSC_CONST_HASHTABLE HashTable JSCSSStyleDeclarationTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSCSSStyleDeclarationTableValues, 0 }; #else @@ -65,7 +65,7 @@ static const HashTableValue JSCSSStyleDeclarationConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSStyleDeclarationConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSCSSStyleDeclarationConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCSSStyleDeclarationConstructorTableValues, 0 }; #else @@ -111,7 +111,7 @@ static const HashTableValue JSCSSStyleDeclarationPrototypeTableValues[9] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSStyleDeclarationPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCSSStyleDeclarationPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSCSSStyleDeclarationPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCSSStyleRule.cpp b/src/3rdparty/webkit/WebCore/generated/JSCSSStyleRule.cpp index 1d92b22..a9f69a2 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCSSStyleRule.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCSSStyleRule.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSCSSStyleRuleTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSStyleRuleTable = +static JSC_CONST_HASHTABLE HashTable JSCSSStyleRuleTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSCSSStyleRuleTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSCSSStyleRuleConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSStyleRuleConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSCSSStyleRuleConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCSSStyleRuleConstructorTableValues, 0 }; #else @@ -96,7 +96,7 @@ static const HashTableValue JSCSSStyleRulePrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSStyleRulePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCSSStyleRulePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCSSStyleRulePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCSSStyleSheet.cpp b/src/3rdparty/webkit/WebCore/generated/JSCSSStyleSheet.cpp index f697203..c1cc446 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCSSStyleSheet.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCSSStyleSheet.cpp @@ -47,7 +47,7 @@ static const HashTableValue JSCSSStyleSheetTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSStyleSheetTable = +static JSC_CONST_HASHTABLE HashTable JSCSSStyleSheetTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSCSSStyleSheetTableValues, 0 }; #else @@ -61,7 +61,7 @@ static const HashTableValue JSCSSStyleSheetConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSStyleSheetConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSCSSStyleSheetConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCSSStyleSheetConstructorTableValues, 0 }; #else @@ -103,7 +103,7 @@ static const HashTableValue JSCSSStyleSheetPrototypeTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSStyleSheetPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCSSStyleSheetPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSCSSStyleSheetPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCSSValue.cpp b/src/3rdparty/webkit/WebCore/generated/JSCSSValue.cpp index 87aff14..a402304 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCSSValue.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCSSValue.cpp @@ -42,7 +42,7 @@ static const HashTableValue JSCSSValueTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSValueTable = +static JSC_CONST_HASHTABLE HashTable JSCSSValueTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSCSSValueTableValues, 0 }; #else @@ -60,7 +60,7 @@ static const HashTableValue JSCSSValueConstructorTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSValueConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSCSSValueConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSCSSValueConstructorTableValues, 0 }; #else @@ -102,7 +102,7 @@ static const HashTableValue JSCSSValuePrototypeTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSValuePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCSSValuePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSCSSValuePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCSSValueList.cpp b/src/3rdparty/webkit/WebCore/generated/JSCSSValueList.cpp index 98721ec..7322385 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCSSValueList.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCSSValueList.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSCSSValueListTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSValueListTable = +static JSC_CONST_HASHTABLE HashTable JSCSSValueListTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSCSSValueListTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSCSSValueListConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSValueListConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSCSSValueListConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCSSValueListConstructorTableValues, 0 }; #else @@ -97,7 +97,7 @@ static const HashTableValue JSCSSValueListPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSValueListPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCSSValueListPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCSSValueListPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCSSVariablesDeclaration.cpp b/src/3rdparty/webkit/WebCore/generated/JSCSSVariablesDeclaration.cpp index 3c8c75a..4aa1770 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCSSVariablesDeclaration.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCSSVariablesDeclaration.cpp @@ -48,7 +48,7 @@ static const HashTableValue JSCSSVariablesDeclarationTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSVariablesDeclarationTable = +static JSC_CONST_HASHTABLE HashTable JSCSSVariablesDeclarationTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSCSSVariablesDeclarationTableValues, 0 }; #else @@ -62,7 +62,7 @@ static const HashTableValue JSCSSVariablesDeclarationConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSVariablesDeclarationConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSCSSVariablesDeclarationConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCSSVariablesDeclarationConstructorTableValues, 0 }; #else @@ -104,7 +104,7 @@ static const HashTableValue JSCSSVariablesDeclarationPrototypeTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSVariablesDeclarationPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCSSVariablesDeclarationPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSCSSVariablesDeclarationPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCSSVariablesRule.cpp b/src/3rdparty/webkit/WebCore/generated/JSCSSVariablesRule.cpp index ed3050d..f28aaed 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCSSVariablesRule.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCSSVariablesRule.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSCSSVariablesRuleTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSVariablesRuleTable = +static JSC_CONST_HASHTABLE HashTable JSCSSVariablesRuleTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSCSSVariablesRuleTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSCSSVariablesRuleConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSVariablesRuleConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSCSSVariablesRuleConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCSSVariablesRuleConstructorTableValues, 0 }; #else @@ -96,7 +96,7 @@ static const HashTableValue JSCSSVariablesRulePrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCSSVariablesRulePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCSSVariablesRulePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCSSVariablesRulePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCanvasGradient.cpp b/src/3rdparty/webkit/WebCore/generated/JSCanvasGradient.cpp index 7801622..79db6e0 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCanvasGradient.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCanvasGradient.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSCanvasGradientPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSCanvasGradientPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCanvasGradientPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCanvasGradientPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCanvasPattern.cpp b/src/3rdparty/webkit/WebCore/generated/JSCanvasPattern.cpp index 14dc535..c443a9c 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCanvasPattern.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCanvasPattern.cpp @@ -37,7 +37,7 @@ static const HashTableValue JSCanvasPatternPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCanvasPatternPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCanvasPatternPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCanvasPatternPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCanvasRenderingContext2D.cpp b/src/3rdparty/webkit/WebCore/generated/JSCanvasRenderingContext2D.cpp index 2f318c1..fd54b4f 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCanvasRenderingContext2D.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCanvasRenderingContext2D.cpp @@ -69,7 +69,7 @@ static const HashTableValue JSCanvasRenderingContext2DTableValues[18] = { 0, 0, 0, 0 } }; -static const HashTable JSCanvasRenderingContext2DTable = +static JSC_CONST_HASHTABLE HashTable JSCanvasRenderingContext2DTable = #if ENABLE(PERFECT_HASH_SIZE) { 8191, JSCanvasRenderingContext2DTableValues, 0 }; #else @@ -83,7 +83,7 @@ static const HashTableValue JSCanvasRenderingContext2DConstructorTableValues[1] { 0, 0, 0, 0 } }; -static const HashTable JSCanvasRenderingContext2DConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSCanvasRenderingContext2DConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCanvasRenderingContext2DConstructorTableValues, 0 }; #else @@ -165,7 +165,7 @@ static const HashTableValue JSCanvasRenderingContext2DPrototypeTableValues[45] = { 0, 0, 0, 0 } }; -static const HashTable JSCanvasRenderingContext2DPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCanvasRenderingContext2DPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 4095, JSCanvasRenderingContext2DPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCharacterData.cpp b/src/3rdparty/webkit/WebCore/generated/JSCharacterData.cpp index a860721..a2d10e4 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCharacterData.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCharacterData.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSCharacterDataTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSCharacterDataTable = +static JSC_CONST_HASHTABLE HashTable JSCharacterDataTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSCharacterDataTableValues, 0 }; #else @@ -59,7 +59,7 @@ static const HashTableValue JSCharacterDataConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCharacterDataConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSCharacterDataConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCharacterDataConstructorTableValues, 0 }; #else @@ -102,7 +102,7 @@ static const HashTableValue JSCharacterDataPrototypeTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSCharacterDataPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCharacterDataPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSCharacterDataPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSClientRect.cpp b/src/3rdparty/webkit/WebCore/generated/JSClientRect.cpp index 4db0efb..aea6ac5 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSClientRect.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSClientRect.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSClientRectTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSClientRectTable = +static JSC_CONST_HASHTABLE HashTable JSClientRectTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSClientRectTableValues, 0 }; #else @@ -59,7 +59,7 @@ static const HashTableValue JSClientRectConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSClientRectConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSClientRectConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSClientRectConstructorTableValues, 0 }; #else @@ -97,7 +97,7 @@ static const HashTableValue JSClientRectPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSClientRectPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSClientRectPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSClientRectPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSClientRectList.cpp b/src/3rdparty/webkit/WebCore/generated/JSClientRectList.cpp index 97eff69..854daa3 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSClientRectList.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSClientRectList.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSClientRectListTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSClientRectListTable = +static JSC_CONST_HASHTABLE HashTable JSClientRectListTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSClientRectListTableValues, 0 }; #else @@ -59,7 +59,7 @@ static const HashTableValue JSClientRectListConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSClientRectListConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSClientRectListConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSClientRectListConstructorTableValues, 0 }; #else @@ -98,7 +98,7 @@ static const HashTableValue JSClientRectListPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSClientRectListPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSClientRectListPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSClientRectListPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSClipboard.cpp b/src/3rdparty/webkit/WebCore/generated/JSClipboard.cpp index 19c40b7..7306d2a 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSClipboard.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSClipboard.cpp @@ -46,7 +46,7 @@ static const HashTableValue JSClipboardTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSClipboardTable = +static JSC_CONST_HASHTABLE HashTable JSClipboardTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSClipboardTableValues, 0 }; #else @@ -60,7 +60,7 @@ static const HashTableValue JSClipboardConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSClipboardConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSClipboardConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSClipboardConstructorTableValues, 0 }; #else @@ -102,7 +102,7 @@ static const HashTableValue JSClipboardPrototypeTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSClipboardPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSClipboardPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSClipboardPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSComment.cpp b/src/3rdparty/webkit/WebCore/generated/JSComment.cpp index 7905094..6666541 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSComment.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSComment.cpp @@ -38,7 +38,7 @@ static const HashTableValue JSCommentTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSCommentTable = +static JSC_CONST_HASHTABLE HashTable JSCommentTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCommentTableValues, 0 }; #else @@ -52,7 +52,7 @@ static const HashTableValue JSCommentConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCommentConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSCommentConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCommentConstructorTableValues, 0 }; #else @@ -90,7 +90,7 @@ static const HashTableValue JSCommentPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCommentPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCommentPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCommentPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSConsole.cpp b/src/3rdparty/webkit/WebCore/generated/JSConsole.cpp index 24e5ef3..2b223a2 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSConsole.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSConsole.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSConsoleTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSConsoleTable = +static JSC_CONST_HASHTABLE HashTable JSConsoleTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSConsoleTableValues, 0 }; #else @@ -70,7 +70,7 @@ static const HashTableValue JSConsolePrototypeTableValues[17] = { 0, 0, 0, 0 } }; -static const HashTable JSConsolePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSConsolePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 511, JSConsolePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCoordinates.cpp b/src/3rdparty/webkit/WebCore/generated/JSCoordinates.cpp index 0db560b..eafee51 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCoordinates.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCoordinates.cpp @@ -48,7 +48,7 @@ static const HashTableValue JSCoordinatesTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSCoordinatesTable = +static JSC_CONST_HASHTABLE HashTable JSCoordinatesTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSCoordinatesTableValues, 0 }; #else @@ -63,7 +63,7 @@ static const HashTableValue JSCoordinatesPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSCoordinatesPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCoordinatesPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCoordinatesPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSCounter.cpp b/src/3rdparty/webkit/WebCore/generated/JSCounter.cpp index 03a3eb3..b3a834f 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSCounter.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSCounter.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSCounterTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSCounterTable = +static JSC_CONST_HASHTABLE HashTable JSCounterTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSCounterTableValues, 0 }; #else @@ -57,7 +57,7 @@ static const HashTableValue JSCounterConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCounterConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSCounterConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCounterConstructorTableValues, 0 }; #else @@ -95,7 +95,7 @@ static const HashTableValue JSCounterPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSCounterPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSCounterPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSCounterPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSDOMApplicationCache.cpp b/src/3rdparty/webkit/WebCore/generated/JSDOMApplicationCache.cpp index 0d7202b..e9d43ee 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSDOMApplicationCache.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSDOMApplicationCache.cpp @@ -57,7 +57,7 @@ static const HashTableValue JSDOMApplicationCacheTableValues[10] = { 0, 0, 0, 0 } }; -static const HashTable JSDOMApplicationCacheTable = +static JSC_CONST_HASHTABLE HashTable JSDOMApplicationCacheTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSDOMApplicationCacheTableValues, 0 }; #else @@ -82,7 +82,7 @@ static const HashTableValue JSDOMApplicationCachePrototypeTableValues[12] = { 0, 0, 0, 0 } }; -static const HashTable JSDOMApplicationCachePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSDOMApplicationCachePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSDOMApplicationCachePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSDOMCoreException.cpp b/src/3rdparty/webkit/WebCore/generated/JSDOMCoreException.cpp index 3b45220..2241182 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSDOMCoreException.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSDOMCoreException.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSDOMCoreExceptionTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSDOMCoreExceptionTable = +static JSC_CONST_HASHTABLE HashTable JSDOMCoreExceptionTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSDOMCoreExceptionTableValues, 0 }; #else @@ -81,7 +81,7 @@ static const HashTableValue JSDOMCoreExceptionConstructorTableValues[23] = { 0, 0, 0, 0 } }; -static const HashTable JSDOMCoreExceptionConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSDOMCoreExceptionConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 511, JSDOMCoreExceptionConstructorTableValues, 0 }; #else @@ -142,7 +142,7 @@ static const HashTableValue JSDOMCoreExceptionPrototypeTableValues[24] = { 0, 0, 0, 0 } }; -static const HashTable JSDOMCoreExceptionPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSDOMCoreExceptionPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 511, JSDOMCoreExceptionPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSDOMImplementation.cpp b/src/3rdparty/webkit/WebCore/generated/JSDOMImplementation.cpp index 1e2f950..9b5787c 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSDOMImplementation.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSDOMImplementation.cpp @@ -48,7 +48,7 @@ static const HashTableValue JSDOMImplementationTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSDOMImplementationTable = +static JSC_CONST_HASHTABLE HashTable JSDOMImplementationTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSDOMImplementationTableValues, 0 }; #else @@ -62,7 +62,7 @@ static const HashTableValue JSDOMImplementationConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSDOMImplementationConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSDOMImplementationConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSDOMImplementationConstructorTableValues, 0 }; #else @@ -105,7 +105,7 @@ static const HashTableValue JSDOMImplementationPrototypeTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSDOMImplementationPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSDOMImplementationPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSDOMImplementationPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSDOMParser.cpp b/src/3rdparty/webkit/WebCore/generated/JSDOMParser.cpp index ffb4f70..ac05d7d 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSDOMParser.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSDOMParser.cpp @@ -42,7 +42,7 @@ static const HashTableValue JSDOMParserTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSDOMParserTable = +static JSC_CONST_HASHTABLE HashTable JSDOMParserTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSDOMParserTableValues, 0 }; #else @@ -56,7 +56,7 @@ static const HashTableValue JSDOMParserConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSDOMParserConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSDOMParserConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSDOMParserConstructorTableValues, 0 }; #else @@ -104,7 +104,7 @@ static const HashTableValue JSDOMParserPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSDOMParserPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSDOMParserPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSDOMParserPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSDOMSelection.cpp b/src/3rdparty/webkit/WebCore/generated/JSDOMSelection.cpp index 422c410..b0a249d 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSDOMSelection.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSDOMSelection.cpp @@ -56,7 +56,7 @@ static const HashTableValue JSDOMSelectionTableValues[12] = { 0, 0, 0, 0 } }; -static const HashTable JSDOMSelectionTable = +static JSC_CONST_HASHTABLE HashTable JSDOMSelectionTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSDOMSelectionTableValues, 0 }; #else @@ -85,7 +85,7 @@ static const HashTableValue JSDOMSelectionPrototypeTableValues[16] = { 0, 0, 0, 0 } }; -static const HashTable JSDOMSelectionPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSDOMSelectionPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSDOMSelectionPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSDOMWindow.cpp b/src/3rdparty/webkit/WebCore/generated/JSDOMWindow.cpp index d9c3ed9..6ac4749 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSDOMWindow.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSDOMWindow.cpp @@ -94,6 +94,7 @@ #include "JSHTMLCanvasElement.h" #include "JSHTMLCollection.h" #include "JSHTMLDListElement.h" +#include "JSHTMLDataGridCellElement.h" #include "JSHTMLDataGridColElement.h" #include "JSHTMLDataGridElement.h" #include "JSHTMLDirectoryElement.h" @@ -148,7 +149,9 @@ #include "JSKeyboardEvent.h" #include "JSMediaError.h" #include "JSMediaList.h" +#include "JSMessageChannel.h" #include "JSMessageEvent.h" +#include "JSMessagePort.h" #include "JSMimeType.h" #include "JSMimeTypeArray.h" #include "JSMouseEvent.h" @@ -225,7 +228,7 @@ ASSERT_CLASS_FITS_IN_CELL(JSDOMWindow); /* Hash table */ -static const HashTableValue JSDOMWindowTableValues[272] = +static const HashTableValue JSDOMWindowTableValues[275] = { { "screen", DontDelete|ReadOnly, (intptr_t)jsDOMWindowScreen, (intptr_t)0 }, { "history", DontDelete|ReadOnly, (intptr_t)jsDOMWindowHistory, (intptr_t)0 }, @@ -385,8 +388,15 @@ static const HashTableValue JSDOMWindowTableValues[272] = { "HTMLBodyElement", DontDelete, (intptr_t)jsDOMWindowHTMLBodyElementConstructor, (intptr_t)setJSDOMWindowHTMLBodyElementConstructor }, { "HTMLButtonElement", DontDelete, (intptr_t)jsDOMWindowHTMLButtonElementConstructor, (intptr_t)setJSDOMWindowHTMLButtonElementConstructor }, { "HTMLCanvasElement", DontDelete, (intptr_t)jsDOMWindowHTMLCanvasElementConstructor, (intptr_t)setJSDOMWindowHTMLCanvasElementConstructor }, +#if ENABLE(DATAGRID) { "HTMLDataGridElement", DontDelete, (intptr_t)jsDOMWindowHTMLDataGridElementConstructor, (intptr_t)setJSDOMWindowHTMLDataGridElementConstructor }, +#endif +#if ENABLE(DATAGRID) + { "HTMLDataGridCellElement", DontDelete, (intptr_t)jsDOMWindowHTMLDataGridCellElementConstructor, (intptr_t)setJSDOMWindowHTMLDataGridCellElementConstructor }, +#endif +#if ENABLE(DATAGRID) { "HTMLDataGridColElement", DontDelete, (intptr_t)jsDOMWindowHTMLDataGridColElementConstructor, (intptr_t)setJSDOMWindowHTMLDataGridColElementConstructor }, +#endif { "HTMLDListElement", DontDelete, (intptr_t)jsDOMWindowHTMLDListElementConstructor, (intptr_t)setJSDOMWindowHTMLDListElementConstructor }, { "HTMLDirectoryElement", DontDelete, (intptr_t)jsDOMWindowHTMLDirectoryElementConstructor, (intptr_t)setJSDOMWindowHTMLDirectoryElementConstructor }, { "HTMLDivElement", DontDelete, (intptr_t)jsDOMWindowHTMLDivElementConstructor, (intptr_t)setJSDOMWindowHTMLDivElementConstructor }, @@ -467,6 +477,8 @@ static const HashTableValue JSDOMWindowTableValues[272] = { "XMLHttpRequest", DontDelete, (intptr_t)jsDOMWindowXMLHttpRequestConstructor, (intptr_t)setJSDOMWindowXMLHttpRequestConstructor }, { "XMLHttpRequestUpload", DontDelete, (intptr_t)jsDOMWindowXMLHttpRequestUploadConstructor, (intptr_t)setJSDOMWindowXMLHttpRequestUploadConstructor }, { "XMLHttpRequestException", DontDelete, (intptr_t)jsDOMWindowXMLHttpRequestExceptionConstructor, (intptr_t)setJSDOMWindowXMLHttpRequestExceptionConstructor }, + { "MessagePort", DontDelete, (intptr_t)jsDOMWindowMessagePortConstructor, (intptr_t)setJSDOMWindowMessagePortConstructor }, + { "MessageChannel", DontDelete, (intptr_t)jsDOMWindowMessageChannelConstructor, (intptr_t)setJSDOMWindowMessageChannelConstructor }, { "Worker", DontDelete, (intptr_t)jsDOMWindowWorkerConstructor, (intptr_t)setJSDOMWindowWorkerConstructor }, { "Plugin", DontDelete, (intptr_t)jsDOMWindowPluginConstructor, (intptr_t)setJSDOMWindowPluginConstructor }, { "PluginArray", DontDelete, (intptr_t)jsDOMWindowPluginArrayConstructor, (intptr_t)setJSDOMWindowPluginArrayConstructor }, @@ -511,7 +523,7 @@ static const HashTableValue JSDOMWindowTableValues[272] = { 0, 0, 0, 0 } }; -static const HashTable JSDOMWindowTable = +static JSC_CONST_HASHTABLE HashTable JSDOMWindowTable = #if ENABLE(PERFECT_HASH_SIZE) { 32767, JSDOMWindowTableValues, 0 }; #else @@ -561,7 +573,7 @@ static const HashTableValue JSDOMWindowPrototypeTableValues[37] = { 0, 0, 0, 0 } }; -static const HashTable JSDOMWindowPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSDOMWindowPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 1023, JSDOMWindowPrototypeTableValues, 0 }; #else @@ -2182,6 +2194,7 @@ JSValue jsDOMWindowHTMLCanvasElementConstructor(ExecState* exec, const Identifie return JSHTMLCanvasElement::getConstructor(exec); } +#if ENABLE(DATAGRID) JSValue jsDOMWindowHTMLDataGridElementConstructor(ExecState* exec, const Identifier&, const PropertySlot& slot) { if (!static_cast<JSDOMWindow*>(asObject(slot.slotBase()))->allowsAccessFrom(exec)) @@ -2189,7 +2202,19 @@ JSValue jsDOMWindowHTMLDataGridElementConstructor(ExecState* exec, const Identif UNUSED_PARAM(slot); return JSHTMLDataGridElement::getConstructor(exec); } +#endif + +#if ENABLE(DATAGRID) +JSValue jsDOMWindowHTMLDataGridCellElementConstructor(ExecState* exec, const Identifier&, const PropertySlot& slot) +{ + if (!static_cast<JSDOMWindow*>(asObject(slot.slotBase()))->allowsAccessFrom(exec)) + return jsUndefined(); + UNUSED_PARAM(slot); + return JSHTMLDataGridCellElement::getConstructor(exec); +} +#endif +#if ENABLE(DATAGRID) JSValue jsDOMWindowHTMLDataGridColElementConstructor(ExecState* exec, const Identifier&, const PropertySlot& slot) { if (!static_cast<JSDOMWindow*>(asObject(slot.slotBase()))->allowsAccessFrom(exec)) @@ -2197,6 +2222,7 @@ JSValue jsDOMWindowHTMLDataGridColElementConstructor(ExecState* exec, const Iden UNUSED_PARAM(slot); return JSHTMLDataGridColElement::getConstructor(exec); } +#endif JSValue jsDOMWindowHTMLDListElementConstructor(ExecState* exec, const Identifier&, const PropertySlot& slot) { @@ -2833,6 +2859,21 @@ JSValue jsDOMWindowXMLHttpRequestExceptionConstructor(ExecState* exec, const Ide return JSXMLHttpRequestException::getConstructor(exec); } +JSValue jsDOMWindowMessagePortConstructor(ExecState* exec, const Identifier&, const PropertySlot& slot) +{ + if (!static_cast<JSDOMWindow*>(asObject(slot.slotBase()))->allowsAccessFrom(exec)) + return jsUndefined(); + UNUSED_PARAM(slot); + return JSMessagePort::getConstructor(exec); +} + +JSValue jsDOMWindowMessageChannelConstructor(ExecState* exec, const Identifier&, const PropertySlot& slot) +{ + if (!static_cast<JSDOMWindow*>(asObject(slot.slotBase()))->allowsAccessFrom(exec)) + return jsUndefined(); + return static_cast<JSDOMWindow*>(asObject(slot.slotBase()))->messageChannel(exec); +} + JSValue jsDOMWindowWorkerConstructor(ExecState* exec, const Identifier&, const PropertySlot& slot) { if (!static_cast<JSDOMWindow*>(asObject(slot.slotBase()))->allowsAccessFrom(exec)) @@ -4386,6 +4427,14 @@ void setJSDOMWindowHTMLDataGridElementConstructor(ExecState* exec, JSObject* thi static_cast<JSDOMWindow*>(thisObject)->putDirect(Identifier(exec, "HTMLDataGridElement"), value); } +void setJSDOMWindowHTMLDataGridCellElementConstructor(ExecState* exec, JSObject* thisObject, JSValue value) +{ + if (!static_cast<JSDOMWindow*>(thisObject)->allowsAccessFrom(exec)) + return; + // Shadowing a built-in constructor + static_cast<JSDOMWindow*>(thisObject)->putDirect(Identifier(exec, "HTMLDataGridCellElement"), value); +} + void setJSDOMWindowHTMLDataGridColElementConstructor(ExecState* exec, JSObject* thisObject, JSValue value) { if (!static_cast<JSDOMWindow*>(thisObject)->allowsAccessFrom(exec)) @@ -5034,6 +5083,22 @@ void setJSDOMWindowXMLHttpRequestExceptionConstructor(ExecState* exec, JSObject* static_cast<JSDOMWindow*>(thisObject)->putDirect(Identifier(exec, "XMLHttpRequestException"), value); } +void setJSDOMWindowMessagePortConstructor(ExecState* exec, JSObject* thisObject, JSValue value) +{ + if (!static_cast<JSDOMWindow*>(thisObject)->allowsAccessFrom(exec)) + return; + // Shadowing a built-in constructor + static_cast<JSDOMWindow*>(thisObject)->putDirect(Identifier(exec, "MessagePort"), value); +} + +void setJSDOMWindowMessageChannelConstructor(ExecState* exec, JSObject* thisObject, JSValue value) +{ + if (!static_cast<JSDOMWindow*>(thisObject)->allowsAccessFrom(exec)) + return; + // Shadowing a built-in constructor + static_cast<JSDOMWindow*>(thisObject)->putDirect(Identifier(exec, "MessageChannel"), value); +} + void setJSDOMWindowWorkerConstructor(ExecState* exec, JSObject* thisObject, JSValue value) { if (!static_cast<JSDOMWindow*>(thisObject)->allowsAccessFrom(exec)) diff --git a/src/3rdparty/webkit/WebCore/generated/JSDOMWindow.h b/src/3rdparty/webkit/WebCore/generated/JSDOMWindow.h index 869e598..073eff7 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSDOMWindow.h +++ b/src/3rdparty/webkit/WebCore/generated/JSDOMWindow.h @@ -66,6 +66,7 @@ public: JSC::JSValue webKitCSSMatrix(JSC::ExecState*) const; JSC::JSValue webKitPoint(JSC::ExecState*) const; JSC::JSValue xmlHttpRequest(JSC::ExecState*) const; + JSC::JSValue messageChannel(JSC::ExecState*) const; JSC::JSValue worker(JSC::ExecState*) const; JSC::JSValue audio(JSC::ExecState*) const; @@ -447,6 +448,8 @@ JSC::JSValue jsDOMWindowHTMLCanvasElementConstructor(JSC::ExecState*, const JSC: void setJSDOMWindowHTMLCanvasElementConstructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); JSC::JSValue jsDOMWindowHTMLDataGridElementConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); void setJSDOMWindowHTMLDataGridElementConstructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); +JSC::JSValue jsDOMWindowHTMLDataGridCellElementConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); +void setJSDOMWindowHTMLDataGridCellElementConstructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); JSC::JSValue jsDOMWindowHTMLDataGridColElementConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); void setJSDOMWindowHTMLDataGridColElementConstructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); JSC::JSValue jsDOMWindowHTMLDListElementConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); @@ -609,6 +612,10 @@ JSC::JSValue jsDOMWindowXMLHttpRequestUploadConstructor(JSC::ExecState*, const J void setJSDOMWindowXMLHttpRequestUploadConstructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); JSC::JSValue jsDOMWindowXMLHttpRequestExceptionConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); void setJSDOMWindowXMLHttpRequestExceptionConstructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); +JSC::JSValue jsDOMWindowMessagePortConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); +void setJSDOMWindowMessagePortConstructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); +JSC::JSValue jsDOMWindowMessageChannelConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); +void setJSDOMWindowMessageChannelConstructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); JSC::JSValue jsDOMWindowWorkerConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); void setJSDOMWindowWorkerConstructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); JSC::JSValue jsDOMWindowPluginConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); diff --git a/src/3rdparty/webkit/WebCore/generated/JSDataGridColumn.cpp b/src/3rdparty/webkit/WebCore/generated/JSDataGridColumn.cpp index 105b916..9559fb5 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSDataGridColumn.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSDataGridColumn.cpp @@ -19,6 +19,9 @@ */ #include "config.h" + +#if ENABLE(DATAGRID) + #include "JSDataGridColumn.h" #include "DataGridColumn.h" @@ -47,7 +50,7 @@ static const HashTableValue JSDataGridColumnTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSDataGridColumnTable = +static JSC_CONST_HASHTABLE HashTable JSDataGridColumnTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSDataGridColumnTableValues, 0 }; #else @@ -67,7 +70,7 @@ static const HashTableValue JSDataGridColumnConstructorTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSDataGridColumnConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSDataGridColumnConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSDataGridColumnConstructorTableValues, 0 }; #else @@ -111,7 +114,7 @@ static const HashTableValue JSDataGridColumnPrototypeTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSDataGridColumnPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSDataGridColumnPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSDataGridColumnPrototypeTableValues, 0 }; #else @@ -287,3 +290,5 @@ DataGridColumn* toDataGridColumn(JSC::JSValue value) } } + +#endif // ENABLE(DATAGRID) diff --git a/src/3rdparty/webkit/WebCore/generated/JSDataGridColumn.h b/src/3rdparty/webkit/WebCore/generated/JSDataGridColumn.h index 331ad9d..a85b988 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSDataGridColumn.h +++ b/src/3rdparty/webkit/WebCore/generated/JSDataGridColumn.h @@ -21,6 +21,8 @@ #ifndef JSDataGridColumn_h #define JSDataGridColumn_h +#if ENABLE(DATAGRID) + #include "JSDOMBinding.h" #include <runtime/JSGlobalObject.h> #include <runtime/ObjectPrototype.h> @@ -95,4 +97,6 @@ JSC::JSValue jsDataGridColumnSORC_DESCENDING(JSC::ExecState*, const JSC::Identif } // namespace WebCore +#endif // ENABLE(DATAGRID) + #endif diff --git a/src/3rdparty/webkit/WebCore/generated/JSDataGridColumnList.cpp b/src/3rdparty/webkit/WebCore/generated/JSDataGridColumnList.cpp index 276878e..3c0eb8d 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSDataGridColumnList.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSDataGridColumnList.cpp @@ -19,6 +19,9 @@ */ #include "config.h" + +#if ENABLE(DATAGRID) + #include "JSDataGridColumnList.h" #include "AtomicString.h" @@ -48,7 +51,7 @@ static const HashTableValue JSDataGridColumnListTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSDataGridColumnListTable = +static JSC_CONST_HASHTABLE HashTable JSDataGridColumnListTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSDataGridColumnListTableValues, 0 }; #else @@ -62,7 +65,7 @@ static const HashTableValue JSDataGridColumnListConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSDataGridColumnListConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSDataGridColumnListConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSDataGridColumnListConstructorTableValues, 0 }; #else @@ -105,7 +108,7 @@ static const HashTableValue JSDataGridColumnListPrototypeTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSDataGridColumnListPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSDataGridColumnListPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSDataGridColumnListPrototypeTableValues, 0 }; #else @@ -299,3 +302,5 @@ DataGridColumnList* toDataGridColumnList(JSC::JSValue value) } } + +#endif // ENABLE(DATAGRID) diff --git a/src/3rdparty/webkit/WebCore/generated/JSDataGridColumnList.h b/src/3rdparty/webkit/WebCore/generated/JSDataGridColumnList.h index 879daf9..b76ffd5 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSDataGridColumnList.h +++ b/src/3rdparty/webkit/WebCore/generated/JSDataGridColumnList.h @@ -21,6 +21,8 @@ #ifndef JSDataGridColumnList_h #define JSDataGridColumnList_h +#if ENABLE(DATAGRID) + #include "JSDOMBinding.h" #include <runtime/JSGlobalObject.h> #include <runtime/ObjectPrototype.h> @@ -90,4 +92,6 @@ JSC::JSValue jsDataGridColumnListConstructor(JSC::ExecState*, const JSC::Identif } // namespace WebCore +#endif // ENABLE(DATAGRID) + #endif diff --git a/src/3rdparty/webkit/WebCore/generated/JSDatabase.cpp b/src/3rdparty/webkit/WebCore/generated/JSDatabase.cpp index 490b081..894f93c 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSDatabase.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSDatabase.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSDatabaseTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSDatabaseTable = +static JSC_CONST_HASHTABLE HashTable JSDatabaseTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSDatabaseTableValues, 0 }; #else @@ -60,7 +60,7 @@ static const HashTableValue JSDatabasePrototypeTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSDatabasePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSDatabasePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSDatabasePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSDocument.cpp b/src/3rdparty/webkit/WebCore/generated/JSDocument.cpp index 2c59f13..ce7b850 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSDocument.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSDocument.cpp @@ -169,7 +169,7 @@ static const HashTableValue JSDocumentTableValues[69] = { 0, 0, 0, 0 } }; -static const HashTable JSDocumentTable = +static JSC_CONST_HASHTABLE HashTable JSDocumentTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSDocumentTableValues, 0 }; #else @@ -183,7 +183,7 @@ static const HashTableValue JSDocumentConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSDocumentConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSDocumentConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSDocumentConstructorTableValues, 0 }; #else @@ -257,7 +257,7 @@ static const HashTableValue JSDocumentPrototypeTableValues[37] = { 0, 0, 0, 0 } }; -static const HashTable JSDocumentPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSDocumentPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 511, JSDocumentPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSDocumentFragment.cpp b/src/3rdparty/webkit/WebCore/generated/JSDocumentFragment.cpp index 865efd2..05deb3c 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSDocumentFragment.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSDocumentFragment.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSDocumentFragmentTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSDocumentFragmentTable = +static JSC_CONST_HASHTABLE HashTable JSDocumentFragmentTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSDocumentFragmentTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSDocumentFragmentConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSDocumentFragmentConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSDocumentFragmentConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSDocumentFragmentConstructorTableValues, 0 }; #else @@ -98,7 +98,7 @@ static const HashTableValue JSDocumentFragmentPrototypeTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSDocumentFragmentPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSDocumentFragmentPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSDocumentFragmentPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSDocumentType.cpp b/src/3rdparty/webkit/WebCore/generated/JSDocumentType.cpp index 43e7a8c..361e62f 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSDocumentType.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSDocumentType.cpp @@ -48,7 +48,7 @@ static const HashTableValue JSDocumentTypeTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSDocumentTypeTable = +static JSC_CONST_HASHTABLE HashTable JSDocumentTypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSDocumentTypeTableValues, 0 }; #else @@ -62,7 +62,7 @@ static const HashTableValue JSDocumentTypeConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSDocumentTypeConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSDocumentTypeConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSDocumentTypeConstructorTableValues, 0 }; #else @@ -100,7 +100,7 @@ static const HashTableValue JSDocumentTypePrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSDocumentTypePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSDocumentTypePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSDocumentTypePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSElement.cpp index afa1d93..a4d2409 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSElement.cpp @@ -117,7 +117,7 @@ static const HashTableValue JSElementTableValues[60] = { 0, 0, 0, 0 } }; -static const HashTable JSElementTable = +static JSC_CONST_HASHTABLE HashTable JSElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 8191, JSElementTableValues, 0 }; #else @@ -131,7 +131,7 @@ static const HashTableValue JSElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSElementConstructorTableValues, 0 }; #else @@ -196,7 +196,7 @@ static const HashTableValue JSElementPrototypeTableValues[28] = { 0, 0, 0, 0 } }; -static const HashTable JSElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 1023, JSElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSEntity.cpp b/src/3rdparty/webkit/WebCore/generated/JSEntity.cpp index be4eed5..4b354b0 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSEntity.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSEntity.cpp @@ -42,7 +42,7 @@ static const HashTableValue JSEntityTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSEntityTable = +static JSC_CONST_HASHTABLE HashTable JSEntityTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSEntityTableValues, 0 }; #else @@ -56,7 +56,7 @@ static const HashTableValue JSEntityConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSEntityConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSEntityConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSEntityConstructorTableValues, 0 }; #else @@ -94,7 +94,7 @@ static const HashTableValue JSEntityPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSEntityPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSEntityPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSEntityPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSEntityReference.cpp b/src/3rdparty/webkit/WebCore/generated/JSEntityReference.cpp index dc12c48..1d6b6ff 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSEntityReference.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSEntityReference.cpp @@ -38,7 +38,7 @@ static const HashTableValue JSEntityReferenceTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSEntityReferenceTable = +static JSC_CONST_HASHTABLE HashTable JSEntityReferenceTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSEntityReferenceTableValues, 0 }; #else @@ -52,7 +52,7 @@ static const HashTableValue JSEntityReferenceConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSEntityReferenceConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSEntityReferenceConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSEntityReferenceConstructorTableValues, 0 }; #else @@ -90,7 +90,7 @@ static const HashTableValue JSEntityReferencePrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSEntityReferencePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSEntityReferencePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSEntityReferencePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSEvent.cpp b/src/3rdparty/webkit/WebCore/generated/JSEvent.cpp index f00e179..550db25 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSEvent.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSEvent.cpp @@ -55,7 +55,7 @@ static const HashTableValue JSEventTableValues[13] = { 0, 0, 0, 0 } }; -static const HashTable JSEventTable = +static JSC_CONST_HASHTABLE HashTable JSEventTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSEventTableValues, 0 }; #else @@ -88,7 +88,7 @@ static const HashTableValue JSEventConstructorTableValues[20] = { 0, 0, 0, 0 } }; -static const HashTable JSEventConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSEventConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 8191, JSEventConstructorTableValues, 0 }; #else @@ -148,7 +148,7 @@ static const HashTableValue JSEventPrototypeTableValues[23] = { 0, 0, 0, 0 } }; -static const HashTable JSEventPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSEventPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 8191, JSEventPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSEventException.cpp b/src/3rdparty/webkit/WebCore/generated/JSEventException.cpp index 2adb70a..1c39ced 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSEventException.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSEventException.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSEventExceptionTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSEventExceptionTable = +static JSC_CONST_HASHTABLE HashTable JSEventExceptionTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSEventExceptionTableValues, 0 }; #else @@ -60,7 +60,7 @@ static const HashTableValue JSEventExceptionConstructorTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSEventExceptionConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSEventExceptionConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSEventExceptionConstructorTableValues, 0 }; #else @@ -100,7 +100,7 @@ static const HashTableValue JSEventExceptionPrototypeTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSEventExceptionPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSEventExceptionPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSEventExceptionPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSFile.cpp b/src/3rdparty/webkit/WebCore/generated/JSFile.cpp index d25dfc6..923e24b 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSFile.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSFile.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSFileTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSFileTable = +static JSC_CONST_HASHTABLE HashTable JSFileTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSFileTableValues, 0 }; #else @@ -57,7 +57,7 @@ static const HashTableValue JSFileConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSFileConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSFileConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSFileConstructorTableValues, 0 }; #else @@ -95,7 +95,7 @@ static const HashTableValue JSFilePrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSFilePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSFilePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSFilePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSFileList.cpp b/src/3rdparty/webkit/WebCore/generated/JSFileList.cpp index cd165c1..9d14098 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSFileList.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSFileList.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSFileListTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSFileListTable = +static JSC_CONST_HASHTABLE HashTable JSFileListTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSFileListTableValues, 0 }; #else @@ -59,7 +59,7 @@ static const HashTableValue JSFileListConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSFileListConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSFileListConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSFileListConstructorTableValues, 0 }; #else @@ -98,7 +98,7 @@ static const HashTableValue JSFileListPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSFileListPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSFileListPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSFileListPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSGeolocation.cpp b/src/3rdparty/webkit/WebCore/generated/JSGeolocation.cpp index a75348b..104d781 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSGeolocation.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSGeolocation.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSGeolocationTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSGeolocationTable = +static JSC_CONST_HASHTABLE HashTable JSGeolocationTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSGeolocationTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSGeolocationPrototypeTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSGeolocationPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSGeolocationPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSGeolocationPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSGeoposition.cpp b/src/3rdparty/webkit/WebCore/generated/JSGeoposition.cpp index 35399cf..b872171 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSGeoposition.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSGeoposition.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSGeopositionTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSGeopositionTable = +static JSC_CONST_HASHTABLE HashTable JSGeopositionTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSGeopositionTableValues, 0 }; #else @@ -60,7 +60,7 @@ static const HashTableValue JSGeopositionPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSGeopositionPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSGeopositionPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSGeopositionPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLAnchorElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLAnchorElement.cpp index c422551..a9bbfca 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLAnchorElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLAnchorElement.cpp @@ -60,7 +60,7 @@ static const HashTableValue JSHTMLAnchorElementTableValues[21] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLAnchorElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLAnchorElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 511, JSHTMLAnchorElementTableValues, 0 }; #else @@ -74,7 +74,7 @@ static const HashTableValue JSHTMLAnchorElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLAnchorElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLAnchorElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLAnchorElementConstructorTableValues, 0 }; #else @@ -113,7 +113,7 @@ static const HashTableValue JSHTMLAnchorElementPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLAnchorElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLAnchorElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLAnchorElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLAppletElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLAppletElement.cpp index 787c2c7..4fe98d6 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLAppletElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLAppletElement.cpp @@ -53,7 +53,7 @@ static const HashTableValue JSHTMLAppletElementTableValues[13] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLAppletElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLAppletElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSHTMLAppletElementTableValues, 0 }; #else @@ -67,7 +67,7 @@ static const HashTableValue JSHTMLAppletElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLAppletElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLAppletElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLAppletElementConstructorTableValues, 0 }; #else @@ -105,7 +105,7 @@ static const HashTableValue JSHTMLAppletElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLAppletElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLAppletElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLAppletElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLAreaElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLAreaElement.cpp index 1d40591..f78a54b 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLAreaElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLAreaElement.cpp @@ -54,7 +54,7 @@ static const HashTableValue JSHTMLAreaElementTableValues[16] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLAreaElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLAreaElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 511, JSHTMLAreaElementTableValues, 0 }; #else @@ -68,7 +68,7 @@ static const HashTableValue JSHTMLAreaElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLAreaElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLAreaElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLAreaElementConstructorTableValues, 0 }; #else @@ -106,7 +106,7 @@ static const HashTableValue JSHTMLAreaElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLAreaElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLAreaElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLAreaElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLAudioElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLAudioElement.cpp index 00db209..a2fbfce 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLAudioElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLAudioElement.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSHTMLAudioElementTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLAudioElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLAudioElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLAudioElementTableValues, 0 }; #else @@ -55,7 +55,7 @@ static const HashTableValue JSHTMLAudioElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLAudioElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLAudioElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLAudioElementConstructorTableValues, 0 }; #else @@ -93,7 +93,7 @@ static const HashTableValue JSHTMLAudioElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLAudioElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLAudioElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLAudioElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLBRElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLBRElement.cpp index aff5b90..2a43e6c 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLBRElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLBRElement.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSHTMLBRElementTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLBRElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLBRElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSHTMLBRElementTableValues, 0 }; #else @@ -55,7 +55,7 @@ static const HashTableValue JSHTMLBRElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLBRElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLBRElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLBRElementConstructorTableValues, 0 }; #else @@ -93,7 +93,7 @@ static const HashTableValue JSHTMLBRElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLBRElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLBRElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLBRElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLBaseElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLBaseElement.cpp index d0c6502..7c78555 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLBaseElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLBaseElement.cpp @@ -42,7 +42,7 @@ static const HashTableValue JSHTMLBaseElementTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLBaseElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLBaseElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSHTMLBaseElementTableValues, 0 }; #else @@ -56,7 +56,7 @@ static const HashTableValue JSHTMLBaseElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLBaseElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLBaseElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLBaseElementConstructorTableValues, 0 }; #else @@ -94,7 +94,7 @@ static const HashTableValue JSHTMLBaseElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLBaseElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLBaseElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLBaseElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLBaseFontElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLBaseFontElement.cpp index 24288a2..081be5a 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLBaseFontElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLBaseFontElement.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSHTMLBaseFontElementTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLBaseFontElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLBaseFontElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSHTMLBaseFontElementTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSHTMLBaseFontElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLBaseFontElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLBaseFontElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLBaseFontElementConstructorTableValues, 0 }; #else @@ -96,7 +96,7 @@ static const HashTableValue JSHTMLBaseFontElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLBaseFontElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLBaseFontElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLBaseFontElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLBlockquoteElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLBlockquoteElement.cpp index aa108aa..852568b 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLBlockquoteElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLBlockquoteElement.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSHTMLBlockquoteElementTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLBlockquoteElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLBlockquoteElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSHTMLBlockquoteElementTableValues, 0 }; #else @@ -55,7 +55,7 @@ static const HashTableValue JSHTMLBlockquoteElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLBlockquoteElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLBlockquoteElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLBlockquoteElementConstructorTableValues, 0 }; #else @@ -93,7 +93,7 @@ static const HashTableValue JSHTMLBlockquoteElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLBlockquoteElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLBlockquoteElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLBlockquoteElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLBodyElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLBodyElement.cpp index 6da9517..d86b723 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLBodyElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLBodyElement.cpp @@ -57,7 +57,7 @@ static const HashTableValue JSHTMLBodyElementTableValues[15] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLBodyElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLBodyElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSHTMLBodyElementTableValues, 0 }; #else @@ -71,7 +71,7 @@ static const HashTableValue JSHTMLBodyElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLBodyElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLBodyElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLBodyElementConstructorTableValues, 0 }; #else @@ -109,7 +109,7 @@ static const HashTableValue JSHTMLBodyElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLBodyElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLBodyElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLBodyElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLButtonElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLButtonElement.cpp index 96f463b..098528d 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLButtonElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLButtonElement.cpp @@ -24,7 +24,9 @@ #include "HTMLButtonElement.h" #include "HTMLFormElement.h" #include "JSHTMLFormElement.h" +#include "JSValidityState.h" #include "KURL.h" +#include "ValidityState.h" #include <runtime/Error.h> #include <runtime/JSString.h> #include <wtf/GetPtr.h> @@ -37,9 +39,10 @@ ASSERT_CLASS_FITS_IN_CELL(JSHTMLButtonElement); /* Hash table */ -static const HashTableValue JSHTMLButtonElementTableValues[10] = +static const HashTableValue JSHTMLButtonElementTableValues[11] = { { "form", DontDelete|ReadOnly, (intptr_t)jsHTMLButtonElementForm, (intptr_t)0 }, + { "validity", DontDelete|ReadOnly, (intptr_t)jsHTMLButtonElementValidity, (intptr_t)0 }, { "accessKey", DontDelete, (intptr_t)jsHTMLButtonElementAccessKey, (intptr_t)setJSHTMLButtonElementAccessKey }, { "disabled", DontDelete, (intptr_t)jsHTMLButtonElementDisabled, (intptr_t)setJSHTMLButtonElementDisabled }, { "autofocus", DontDelete, (intptr_t)jsHTMLButtonElementAutofocus, (intptr_t)setJSHTMLButtonElementAutofocus }, @@ -51,7 +54,7 @@ static const HashTableValue JSHTMLButtonElementTableValues[10] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLButtonElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLButtonElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSHTMLButtonElementTableValues, 0 }; #else @@ -65,7 +68,7 @@ static const HashTableValue JSHTMLButtonElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLButtonElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLButtonElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLButtonElementConstructorTableValues, 0 }; #else @@ -104,7 +107,7 @@ static const HashTableValue JSHTMLButtonElementPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLButtonElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLButtonElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLButtonElementPrototypeTableValues, 0 }; #else @@ -147,6 +150,13 @@ JSValue jsHTMLButtonElementForm(ExecState* exec, const Identifier&, const Proper return toJS(exec, WTF::getPtr(imp->form())); } +JSValue jsHTMLButtonElementValidity(ExecState* exec, const Identifier&, const PropertySlot& slot) +{ + UNUSED_PARAM(exec); + HTMLButtonElement* imp = static_cast<HTMLButtonElement*>(static_cast<JSHTMLButtonElement*>(asObject(slot.slotBase()))->impl()); + return toJS(exec, WTF::getPtr(imp->validity())); +} + JSValue jsHTMLButtonElementAccessKey(ExecState* exec, const Identifier&, const PropertySlot& slot) { UNUSED_PARAM(exec); diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLButtonElement.h b/src/3rdparty/webkit/WebCore/generated/JSHTMLButtonElement.h index 9849bbb..1ac56c5 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLButtonElement.h +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLButtonElement.h @@ -66,6 +66,7 @@ JSC::JSValue JSC_HOST_CALL jsHTMLButtonElementPrototypeFunctionClick(JSC::ExecSt // Attributes JSC::JSValue jsHTMLButtonElementForm(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); +JSC::JSValue jsHTMLButtonElementValidity(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); JSC::JSValue jsHTMLButtonElementAccessKey(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); void setJSHTMLButtonElementAccessKey(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); JSC::JSValue jsHTMLButtonElementDisabled(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLCanvasElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLCanvasElement.cpp index b90cbea..d40e900 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLCanvasElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLCanvasElement.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSHTMLCanvasElementTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLCanvasElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLCanvasElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSHTMLCanvasElementTableValues, 0 }; #else @@ -59,7 +59,7 @@ static const HashTableValue JSHTMLCanvasElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLCanvasElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLCanvasElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLCanvasElementConstructorTableValues, 0 }; #else @@ -99,7 +99,7 @@ static const HashTableValue JSHTMLCanvasElementPrototypeTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLCanvasElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLCanvasElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSHTMLCanvasElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLCollection.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLCollection.cpp index 7ff47ac..9b6bda3 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLCollection.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLCollection.cpp @@ -48,7 +48,7 @@ static const HashTableValue JSHTMLCollectionTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLCollectionTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLCollectionTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSHTMLCollectionTableValues, 0 }; #else @@ -62,7 +62,7 @@ static const HashTableValue JSHTMLCollectionConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLCollectionConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLCollectionConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLCollectionConstructorTableValues, 0 }; #else @@ -103,7 +103,7 @@ static const HashTableValue JSHTMLCollectionPrototypeTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLCollectionPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLCollectionPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSHTMLCollectionPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLDListElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLDListElement.cpp index e65bb1f..a3f60b2 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLDListElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLDListElement.cpp @@ -39,7 +39,7 @@ static const HashTableValue JSHTMLDListElementTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDListElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDListElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSHTMLDListElementTableValues, 0 }; #else @@ -53,7 +53,7 @@ static const HashTableValue JSHTMLDListElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDListElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDListElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLDListElementConstructorTableValues, 0 }; #else @@ -91,7 +91,7 @@ static const HashTableValue JSHTMLDListElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDListElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDListElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLDListElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridCellElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridCellElement.cpp index e0f8624..f070da6 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridCellElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridCellElement.cpp @@ -19,6 +19,9 @@ */ #include "config.h" + +#if ENABLE(DATAGRID) + #include "JSHTMLDataGridCellElement.h" #include "HTMLDataGridCellElement.h" @@ -46,7 +49,7 @@ static const HashTableValue JSHTMLDataGridCellElementTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDataGridCellElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDataGridCellElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSHTMLDataGridCellElementTableValues, 0 }; #else @@ -60,7 +63,7 @@ static const HashTableValue JSHTMLDataGridCellElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDataGridCellElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDataGridCellElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLDataGridCellElementConstructorTableValues, 0 }; #else @@ -98,7 +101,7 @@ static const HashTableValue JSHTMLDataGridCellElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDataGridCellElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDataGridCellElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLDataGridCellElementPrototypeTableValues, 0 }; #else @@ -210,3 +213,5 @@ JSValue JSHTMLDataGridCellElement::getConstructor(ExecState* exec) } + +#endif // ENABLE(DATAGRID) diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridCellElement.h b/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridCellElement.h index a0b8815..eb0a6de 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridCellElement.h +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridCellElement.h @@ -21,6 +21,8 @@ #ifndef JSHTMLDataGridCellElement_h #define JSHTMLDataGridCellElement_h +#if ENABLE(DATAGRID) + #include "JSHTMLElement.h" namespace WebCore { @@ -71,4 +73,6 @@ JSC::JSValue jsHTMLDataGridCellElementConstructor(JSC::ExecState*, const JSC::Id } // namespace WebCore +#endif // ENABLE(DATAGRID) + #endif diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridColElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridColElement.cpp index a608a1f..0f750e7 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridColElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridColElement.cpp @@ -19,6 +19,9 @@ */ #include "config.h" + +#if ENABLE(DATAGRID) + #include "JSHTMLDataGridColElement.h" #include "HTMLDataGridColElement.h" @@ -46,7 +49,7 @@ static const HashTableValue JSHTMLDataGridColElementTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDataGridColElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDataGridColElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSHTMLDataGridColElementTableValues, 0 }; #else @@ -60,7 +63,7 @@ static const HashTableValue JSHTMLDataGridColElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDataGridColElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDataGridColElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLDataGridColElementConstructorTableValues, 0 }; #else @@ -98,7 +101,7 @@ static const HashTableValue JSHTMLDataGridColElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDataGridColElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDataGridColElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLDataGridColElementPrototypeTableValues, 0 }; #else @@ -210,3 +213,5 @@ JSValue JSHTMLDataGridColElement::getConstructor(ExecState* exec) } + +#endif // ENABLE(DATAGRID) diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridColElement.h b/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridColElement.h index 24efd48..0fe1b0e 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridColElement.h +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridColElement.h @@ -21,6 +21,8 @@ #ifndef JSHTMLDataGridColElement_h #define JSHTMLDataGridColElement_h +#if ENABLE(DATAGRID) + #include "JSHTMLElement.h" namespace WebCore { @@ -71,4 +73,6 @@ JSC::JSValue jsHTMLDataGridColElementConstructor(JSC::ExecState*, const JSC::Ide } // namespace WebCore +#endif // ENABLE(DATAGRID) + #endif diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridElement.cpp index ea4237c..d964c7b 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridElement.cpp @@ -19,6 +19,9 @@ */ #include "config.h" + +#if ENABLE(DATAGRID) + #include "JSHTMLDataGridElement.h" #include "DataGridColumnList.h" @@ -45,7 +48,7 @@ static const HashTableValue JSHTMLDataGridElementTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDataGridElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDataGridElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSHTMLDataGridElementTableValues, 0 }; #else @@ -59,7 +62,7 @@ static const HashTableValue JSHTMLDataGridElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDataGridElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDataGridElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLDataGridElementConstructorTableValues, 0 }; #else @@ -97,7 +100,7 @@ static const HashTableValue JSHTMLDataGridElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDataGridElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDataGridElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLDataGridElementPrototypeTableValues, 0 }; #else @@ -200,3 +203,5 @@ JSValue JSHTMLDataGridElement::getConstructor(ExecState* exec) } + +#endif // ENABLE(DATAGRID) diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridElement.h b/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridElement.h index ee6c8d8..7be0e5e 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridElement.h +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridElement.h @@ -21,6 +21,8 @@ #ifndef JSHTMLDataGridElement_h #define JSHTMLDataGridElement_h +#if ENABLE(DATAGRID) + #include "JSHTMLElement.h" namespace WebCore { @@ -74,4 +76,6 @@ JSC::JSValue jsHTMLDataGridElementConstructor(JSC::ExecState*, const JSC::Identi } // namespace WebCore +#endif // ENABLE(DATAGRID) + #endif diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridRowElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridRowElement.cpp index 938ff16..b6a2d97 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridRowElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridRowElement.cpp @@ -19,6 +19,9 @@ */ #include "config.h" + +#if ENABLE(DATAGRID) + #include "JSHTMLDataGridRowElement.h" #include "HTMLDataGridRowElement.h" @@ -41,7 +44,7 @@ static const HashTableValue JSHTMLDataGridRowElementTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDataGridRowElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDataGridRowElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSHTMLDataGridRowElementTableValues, 0 }; #else @@ -55,7 +58,7 @@ static const HashTableValue JSHTMLDataGridRowElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDataGridRowElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDataGridRowElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLDataGridRowElementConstructorTableValues, 0 }; #else @@ -93,7 +96,7 @@ static const HashTableValue JSHTMLDataGridRowElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDataGridRowElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDataGridRowElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLDataGridRowElementPrototypeTableValues, 0 }; #else @@ -179,3 +182,5 @@ JSValue JSHTMLDataGridRowElement::getConstructor(ExecState* exec) } + +#endif // ENABLE(DATAGRID) diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridRowElement.h b/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridRowElement.h index 562b5f7..987e8bf 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridRowElement.h +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLDataGridRowElement.h @@ -21,6 +21,8 @@ #ifndef JSHTMLDataGridRowElement_h #define JSHTMLDataGridRowElement_h +#if ENABLE(DATAGRID) + #include "JSHTMLElement.h" namespace WebCore { @@ -67,4 +69,6 @@ JSC::JSValue jsHTMLDataGridRowElementConstructor(JSC::ExecState*, const JSC::Ide } // namespace WebCore +#endif // ENABLE(DATAGRID) + #endif diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLDirectoryElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLDirectoryElement.cpp index 711057b..ddad16b 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLDirectoryElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLDirectoryElement.cpp @@ -39,7 +39,7 @@ static const HashTableValue JSHTMLDirectoryElementTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDirectoryElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDirectoryElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSHTMLDirectoryElementTableValues, 0 }; #else @@ -53,7 +53,7 @@ static const HashTableValue JSHTMLDirectoryElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDirectoryElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDirectoryElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLDirectoryElementConstructorTableValues, 0 }; #else @@ -91,7 +91,7 @@ static const HashTableValue JSHTMLDirectoryElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDirectoryElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDirectoryElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLDirectoryElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLDivElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLDivElement.cpp index 43da933..779666e 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLDivElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLDivElement.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSHTMLDivElementTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDivElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDivElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSHTMLDivElementTableValues, 0 }; #else @@ -55,7 +55,7 @@ static const HashTableValue JSHTMLDivElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDivElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDivElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLDivElementConstructorTableValues, 0 }; #else @@ -93,7 +93,7 @@ static const HashTableValue JSHTMLDivElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDivElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDivElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLDivElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLDocument.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLDocument.cpp index 1182aee..fd3aaf4 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLDocument.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLDocument.cpp @@ -62,7 +62,7 @@ static const HashTableValue JSHTMLDocumentTableValues[17] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDocumentTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDocumentTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSHTMLDocumentTableValues, 0 }; #else @@ -76,7 +76,7 @@ static const HashTableValue JSHTMLDocumentConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDocumentConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDocumentConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLDocumentConstructorTableValues, 0 }; #else @@ -122,7 +122,7 @@ static const HashTableValue JSHTMLDocumentPrototypeTableValues[9] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLDocumentPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLDocumentPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSHTMLDocumentPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLElement.cpp index ce77377..25e9bca 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLElement.cpp @@ -60,7 +60,7 @@ static const HashTableValue JSHTMLElementTableValues[15] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 511, JSHTMLElementTableValues, 0 }; #else @@ -74,7 +74,7 @@ static const HashTableValue JSHTMLElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLElementConstructorTableValues, 0 }; #else @@ -115,7 +115,7 @@ static const HashTableValue JSHTMLElementPrototypeTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSHTMLElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLElementWrapperFactory.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLElementWrapperFactory.cpp index 7d66f62..aaedcca 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLElementWrapperFactory.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLElementWrapperFactory.cpp @@ -243,21 +243,33 @@ static JSNode* createHTMLTableColElementWrapper(ExecState* exec, PassRefPtr<HTML return CREATE_DOM_NODE_WRAPPER(exec, HTMLTableColElement, element.get()); } +#if ENABLE(DATAGRID) + static JSNode* createHTMLDataGridElementWrapper(ExecState* exec, PassRefPtr<HTMLElement> element) { return CREATE_DOM_NODE_WRAPPER(exec, HTMLDataGridElement, element.get()); } +#endif + +#if ENABLE(DATAGRID) + static JSNode* createHTMLDataGridCellElementWrapper(ExecState* exec, PassRefPtr<HTMLElement> element) { return CREATE_DOM_NODE_WRAPPER(exec, HTMLDataGridCellElement, element.get()); } +#endif + +#if ENABLE(DATAGRID) + static JSNode* createHTMLDataGridColElementWrapper(ExecState* exec, PassRefPtr<HTMLElement> element) { return CREATE_DOM_NODE_WRAPPER(exec, HTMLDataGridColElement, element.get()); } +#endif + static JSNode* createHTMLModElementWrapper(ExecState* exec, PassRefPtr<HTMLElement> element) { return CREATE_DOM_NODE_WRAPPER(exec, HTMLModElement, element.get()); @@ -278,11 +290,15 @@ static JSNode* createHTMLDListElementWrapper(ExecState* exec, PassRefPtr<HTMLEle return CREATE_DOM_NODE_WRAPPER(exec, HTMLDListElement, element.get()); } +#if ENABLE(DATAGRID) + static JSNode* createHTMLDataGridRowElementWrapper(ExecState* exec, PassRefPtr<HTMLElement> element) { return CREATE_DOM_NODE_WRAPPER(exec, HTMLDataGridRowElement, element.get()); } +#endif + static JSNode* createHTMLEmbedElementWrapper(ExecState* exec, PassRefPtr<HTMLElement> element) { return CREATE_DOM_NODE_WRAPPER(exec, HTMLEmbedElement, element.get()); @@ -526,14 +542,22 @@ JSNode* createJSHTMLWrapper(ExecState* exec, PassRefPtr<HTMLElement> element) map.set(captionTag.localName().impl(), createHTMLTableCaptionElementWrapper); map.set(colTag.localName().impl(), createHTMLTableColElementWrapper); map.set(colgroupTag.localName().impl(), createHTMLTableColElementWrapper); +#if ENABLE(DATAGRID) map.set(datagridTag.localName().impl(), createHTMLDataGridElementWrapper); +#endif +#if ENABLE(DATAGRID) map.set(dcellTag.localName().impl(), createHTMLDataGridCellElementWrapper); +#endif +#if ENABLE(DATAGRID) map.set(dcolTag.localName().impl(), createHTMLDataGridColElementWrapper); +#endif map.set(delTag.localName().impl(), createHTMLModElementWrapper); map.set(dirTag.localName().impl(), createHTMLDirectoryElementWrapper); map.set(divTag.localName().impl(), createHTMLDivElementWrapper); map.set(dlTag.localName().impl(), createHTMLDListElementWrapper); +#if ENABLE(DATAGRID) map.set(drowTag.localName().impl(), createHTMLDataGridRowElementWrapper); +#endif map.set(embedTag.localName().impl(), createHTMLEmbedElementWrapper); map.set(fieldsetTag.localName().impl(), createHTMLFieldSetElementWrapper); map.set(fontTag.localName().impl(), createHTMLFontElementWrapper); diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLEmbedElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLEmbedElement.cpp index 107a225..b1c63f8 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLEmbedElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLEmbedElement.cpp @@ -52,7 +52,7 @@ static const HashTableValue JSHTMLEmbedElementTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLEmbedElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLEmbedElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 16383, JSHTMLEmbedElementTableValues, 0 }; #else @@ -66,7 +66,7 @@ static const HashTableValue JSHTMLEmbedElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLEmbedElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLEmbedElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLEmbedElementConstructorTableValues, 0 }; #else @@ -105,7 +105,7 @@ static const HashTableValue JSHTMLEmbedElementPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLEmbedElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLEmbedElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLEmbedElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLFieldSetElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLFieldSetElement.cpp index 27a1ebb..07dc170 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLFieldSetElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLFieldSetElement.cpp @@ -24,6 +24,8 @@ #include "HTMLFieldSetElement.h" #include "HTMLFormElement.h" #include "JSHTMLFormElement.h" +#include "JSValidityState.h" +#include "ValidityState.h" #include <wtf/GetPtr.h> using namespace JSC; @@ -34,15 +36,16 @@ ASSERT_CLASS_FITS_IN_CELL(JSHTMLFieldSetElement); /* Hash table */ -static const HashTableValue JSHTMLFieldSetElementTableValues[4] = +static const HashTableValue JSHTMLFieldSetElementTableValues[5] = { { "form", DontDelete|ReadOnly, (intptr_t)jsHTMLFieldSetElementForm, (intptr_t)0 }, + { "validity", DontDelete|ReadOnly, (intptr_t)jsHTMLFieldSetElementValidity, (intptr_t)0 }, { "willValidate", DontDelete|ReadOnly, (intptr_t)jsHTMLFieldSetElementWillValidate, (intptr_t)0 }, { "constructor", DontEnum|ReadOnly, (intptr_t)jsHTMLFieldSetElementConstructor, (intptr_t)0 }, { 0, 0, 0, 0 } }; -static const HashTable JSHTMLFieldSetElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLFieldSetElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSHTMLFieldSetElementTableValues, 0 }; #else @@ -56,7 +59,7 @@ static const HashTableValue JSHTMLFieldSetElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLFieldSetElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLFieldSetElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLFieldSetElementConstructorTableValues, 0 }; #else @@ -94,7 +97,7 @@ static const HashTableValue JSHTMLFieldSetElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLFieldSetElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLFieldSetElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLFieldSetElementPrototypeTableValues, 0 }; #else @@ -132,6 +135,13 @@ JSValue jsHTMLFieldSetElementForm(ExecState* exec, const Identifier&, const Prop return toJS(exec, WTF::getPtr(imp->form())); } +JSValue jsHTMLFieldSetElementValidity(ExecState* exec, const Identifier&, const PropertySlot& slot) +{ + UNUSED_PARAM(exec); + HTMLFieldSetElement* imp = static_cast<HTMLFieldSetElement*>(static_cast<JSHTMLFieldSetElement*>(asObject(slot.slotBase()))->impl()); + return toJS(exec, WTF::getPtr(imp->validity())); +} + JSValue jsHTMLFieldSetElementWillValidate(ExecState* exec, const Identifier&, const PropertySlot& slot) { UNUSED_PARAM(exec); diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLFieldSetElement.h b/src/3rdparty/webkit/WebCore/generated/JSHTMLFieldSetElement.h index fa6c56c..6966b40 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLFieldSetElement.h +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLFieldSetElement.h @@ -57,6 +57,7 @@ public: // Attributes JSC::JSValue jsHTMLFieldSetElementForm(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); +JSC::JSValue jsHTMLFieldSetElementValidity(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); JSC::JSValue jsHTMLFieldSetElementWillValidate(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); JSC::JSValue jsHTMLFieldSetElementConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLFontElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLFontElement.cpp index 0bff1ee..5d80326 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLFontElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLFontElement.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSHTMLFontElementTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLFontElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLFontElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSHTMLFontElementTableValues, 0 }; #else @@ -57,7 +57,7 @@ static const HashTableValue JSHTMLFontElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLFontElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLFontElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLFontElementConstructorTableValues, 0 }; #else @@ -95,7 +95,7 @@ static const HashTableValue JSHTMLFontElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLFontElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLFontElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLFontElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLFormElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLFormElement.cpp index de495a5..c3cb279 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLFormElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLFormElement.cpp @@ -55,7 +55,7 @@ static const HashTableValue JSHTMLFormElementTableValues[11] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLFormElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLFormElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 4095, JSHTMLFormElementTableValues, 0 }; #else @@ -69,7 +69,7 @@ static const HashTableValue JSHTMLFormElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLFormElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLFormElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLFormElementConstructorTableValues, 0 }; #else @@ -109,7 +109,7 @@ static const HashTableValue JSHTMLFormElementPrototypeTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLFormElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLFormElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSHTMLFormElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLFrameElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLFrameElement.cpp index a5bff3e..d11a908 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLFrameElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLFrameElement.cpp @@ -62,7 +62,7 @@ static const HashTableValue JSHTMLFrameElementTableValues[15] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLFrameElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLFrameElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 16383, JSHTMLFrameElementTableValues, 0 }; #else @@ -76,7 +76,7 @@ static const HashTableValue JSHTMLFrameElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLFrameElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLFrameElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLFrameElementConstructorTableValues, 0 }; #else @@ -115,7 +115,7 @@ static const HashTableValue JSHTMLFrameElementPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLFrameElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLFrameElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLFrameElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLFrameSetElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLFrameSetElement.cpp index 7abfddd..358280c 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLFrameSetElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLFrameSetElement.cpp @@ -54,7 +54,7 @@ static const HashTableValue JSHTMLFrameSetElementTableValues[11] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLFrameSetElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLFrameSetElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSHTMLFrameSetElementTableValues, 0 }; #else @@ -68,7 +68,7 @@ static const HashTableValue JSHTMLFrameSetElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLFrameSetElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLFrameSetElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLFrameSetElementConstructorTableValues, 0 }; #else @@ -106,7 +106,7 @@ static const HashTableValue JSHTMLFrameSetElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLFrameSetElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLFrameSetElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLFrameSetElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLHRElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLHRElement.cpp index 8ec45b5..e208976 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLHRElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLHRElement.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSHTMLHRElementTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLHRElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLHRElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSHTMLHRElementTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSHTMLHRElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLHRElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLHRElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLHRElementConstructorTableValues, 0 }; #else @@ -96,7 +96,7 @@ static const HashTableValue JSHTMLHRElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLHRElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLHRElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLHRElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLHeadElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLHeadElement.cpp index a2ec868..ff1f3e4 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLHeadElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLHeadElement.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSHTMLHeadElementTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLHeadElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLHeadElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSHTMLHeadElementTableValues, 0 }; #else @@ -55,7 +55,7 @@ static const HashTableValue JSHTMLHeadElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLHeadElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLHeadElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLHeadElementConstructorTableValues, 0 }; #else @@ -93,7 +93,7 @@ static const HashTableValue JSHTMLHeadElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLHeadElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLHeadElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLHeadElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLHeadingElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLHeadingElement.cpp index 5a5b8b2..b4702f3 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLHeadingElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLHeadingElement.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSHTMLHeadingElementTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLHeadingElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLHeadingElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSHTMLHeadingElementTableValues, 0 }; #else @@ -55,7 +55,7 @@ static const HashTableValue JSHTMLHeadingElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLHeadingElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLHeadingElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLHeadingElementConstructorTableValues, 0 }; #else @@ -93,7 +93,7 @@ static const HashTableValue JSHTMLHeadingElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLHeadingElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLHeadingElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLHeadingElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLHtmlElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLHtmlElement.cpp index 95ab223..8325f69 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLHtmlElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLHtmlElement.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSHTMLHtmlElementTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLHtmlElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLHtmlElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSHTMLHtmlElementTableValues, 0 }; #else @@ -55,7 +55,7 @@ static const HashTableValue JSHTMLHtmlElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLHtmlElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLHtmlElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLHtmlElementConstructorTableValues, 0 }; #else @@ -93,7 +93,7 @@ static const HashTableValue JSHTMLHtmlElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLHtmlElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLHtmlElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLHtmlElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLIFrameElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLIFrameElement.cpp index 068dfc2..557b3a4 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLIFrameElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLIFrameElement.cpp @@ -60,7 +60,7 @@ static const HashTableValue JSHTMLIFrameElementTableValues[14] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLIFrameElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLIFrameElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 16383, JSHTMLIFrameElementTableValues, 0 }; #else @@ -74,7 +74,7 @@ static const HashTableValue JSHTMLIFrameElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLIFrameElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLIFrameElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLIFrameElementConstructorTableValues, 0 }; #else @@ -113,7 +113,7 @@ static const HashTableValue JSHTMLIFrameElementPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLIFrameElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLIFrameElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLIFrameElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLImageElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLImageElement.cpp index a0259bb..da621b2 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLImageElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLImageElement.cpp @@ -60,7 +60,7 @@ static const HashTableValue JSHTMLImageElementTableValues[20] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLImageElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLImageElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 16383, JSHTMLImageElementTableValues, 0 }; #else @@ -74,7 +74,7 @@ static const HashTableValue JSHTMLImageElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLImageElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLImageElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLImageElementConstructorTableValues, 0 }; #else @@ -112,7 +112,7 @@ static const HashTableValue JSHTMLImageElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLImageElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLImageElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLImageElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLInputElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLInputElement.cpp index 720249a..e6111bb 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLInputElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLInputElement.cpp @@ -26,7 +26,9 @@ #include "HTMLInputElement.h" #include "JSFileList.h" #include "JSHTMLFormElement.h" +#include "JSValidityState.h" #include "KURL.h" +#include "ValidityState.h" #include <runtime/Error.h> #include <runtime/JSNumberCell.h> #include <runtime/JSString.h> @@ -40,11 +42,12 @@ ASSERT_CLASS_FITS_IN_CELL(JSHTMLInputElement); /* Hash table */ -static const HashTableValue JSHTMLInputElementTableValues[27] = +static const HashTableValue JSHTMLInputElementTableValues[28] = { { "defaultValue", DontDelete, (intptr_t)jsHTMLInputElementDefaultValue, (intptr_t)setJSHTMLInputElementDefaultValue }, { "defaultChecked", DontDelete, (intptr_t)jsHTMLInputElementDefaultChecked, (intptr_t)setJSHTMLInputElementDefaultChecked }, { "form", DontDelete|ReadOnly, (intptr_t)jsHTMLInputElementForm, (intptr_t)0 }, + { "validity", DontDelete|ReadOnly, (intptr_t)jsHTMLInputElementValidity, (intptr_t)0 }, { "accept", DontDelete, (intptr_t)jsHTMLInputElementAccept, (intptr_t)setJSHTMLInputElementAccept }, { "accessKey", DontDelete, (intptr_t)jsHTMLInputElementAccessKey, (intptr_t)setJSHTMLInputElementAccessKey }, { "align", DontDelete, (intptr_t)jsHTMLInputElementAlign, (intptr_t)setJSHTMLInputElementAlign }, @@ -71,7 +74,7 @@ static const HashTableValue JSHTMLInputElementTableValues[27] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLInputElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLInputElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSHTMLInputElementTableValues, 0 }; #else @@ -85,7 +88,7 @@ static const HashTableValue JSHTMLInputElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLInputElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLInputElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLInputElementConstructorTableValues, 0 }; #else @@ -126,7 +129,7 @@ static const HashTableValue JSHTMLInputElementPrototypeTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLInputElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLInputElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSHTMLInputElementPrototypeTableValues, 0 }; #else @@ -183,6 +186,13 @@ JSValue jsHTMLInputElementForm(ExecState* exec, const Identifier&, const Propert return toJS(exec, WTF::getPtr(imp->form())); } +JSValue jsHTMLInputElementValidity(ExecState* exec, const Identifier&, const PropertySlot& slot) +{ + UNUSED_PARAM(exec); + HTMLInputElement* imp = static_cast<HTMLInputElement*>(static_cast<JSHTMLInputElement*>(asObject(slot.slotBase()))->impl()); + return toJS(exec, WTF::getPtr(imp->validity())); +} + JSValue jsHTMLInputElementAccept(ExecState* exec, const Identifier&, const PropertySlot& slot) { UNUSED_PARAM(exec); diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLInputElement.h b/src/3rdparty/webkit/WebCore/generated/JSHTMLInputElement.h index ef9431c..52f455e 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLInputElement.h +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLInputElement.h @@ -82,6 +82,7 @@ void setJSHTMLInputElementDefaultValue(JSC::ExecState*, JSC::JSObject*, JSC::JSV JSC::JSValue jsHTMLInputElementDefaultChecked(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); void setJSHTMLInputElementDefaultChecked(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); JSC::JSValue jsHTMLInputElementForm(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); +JSC::JSValue jsHTMLInputElementValidity(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); JSC::JSValue jsHTMLInputElementAccept(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); void setJSHTMLInputElementAccept(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); JSC::JSValue jsHTMLInputElementAccessKey(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLIsIndexElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLIsIndexElement.cpp index d23f3f1..6322e51 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLIsIndexElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLIsIndexElement.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSHTMLIsIndexElementTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLIsIndexElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLIsIndexElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSHTMLIsIndexElementTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSHTMLIsIndexElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLIsIndexElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLIsIndexElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLIsIndexElementConstructorTableValues, 0 }; #else @@ -96,7 +96,7 @@ static const HashTableValue JSHTMLIsIndexElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLIsIndexElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLIsIndexElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLIsIndexElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLLIElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLLIElement.cpp index 35f00d2..14ba464 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLLIElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLLIElement.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSHTMLLIElementTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLLIElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLLIElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSHTMLLIElementTableValues, 0 }; #else @@ -57,7 +57,7 @@ static const HashTableValue JSHTMLLIElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLLIElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLLIElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLLIElementConstructorTableValues, 0 }; #else @@ -95,7 +95,7 @@ static const HashTableValue JSHTMLLIElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLLIElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLLIElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLLIElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLLabelElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLLabelElement.cpp index 24d1f57..37c7c76 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLLabelElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLLabelElement.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSHTMLLabelElementTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLLabelElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLLabelElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSHTMLLabelElementTableValues, 0 }; #else @@ -59,7 +59,7 @@ static const HashTableValue JSHTMLLabelElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLLabelElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLLabelElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLLabelElementConstructorTableValues, 0 }; #else @@ -97,7 +97,7 @@ static const HashTableValue JSHTMLLabelElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLLabelElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLLabelElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLLabelElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLLegendElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLLegendElement.cpp index b52f3e9..b3b985a 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLLegendElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLLegendElement.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSHTMLLegendElementTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLLegendElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLLegendElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSHTMLLegendElementTableValues, 0 }; #else @@ -59,7 +59,7 @@ static const HashTableValue JSHTMLLegendElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLLegendElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLLegendElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLLegendElementConstructorTableValues, 0 }; #else @@ -97,7 +97,7 @@ static const HashTableValue JSHTMLLegendElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLLegendElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLLegendElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLLegendElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLLinkElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLLinkElement.cpp index c40004e..d6bf634 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLLinkElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLLinkElement.cpp @@ -52,7 +52,7 @@ static const HashTableValue JSHTMLLinkElementTableValues[12] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLLinkElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLLinkElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSHTMLLinkElementTableValues, 0 }; #else @@ -66,7 +66,7 @@ static const HashTableValue JSHTMLLinkElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLLinkElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLLinkElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLLinkElementConstructorTableValues, 0 }; #else @@ -104,7 +104,7 @@ static const HashTableValue JSHTMLLinkElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLLinkElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLLinkElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLLinkElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLMapElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLMapElement.cpp index 458c3f1..9c9345f 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLMapElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLMapElement.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSHTMLMapElementTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLMapElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLMapElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSHTMLMapElementTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSHTMLMapElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLMapElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLMapElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLMapElementConstructorTableValues, 0 }; #else @@ -96,7 +96,7 @@ static const HashTableValue JSHTMLMapElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLMapElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLMapElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLMapElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLMarqueeElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLMarqueeElement.cpp index 90f090f..2e8c6d3 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLMarqueeElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLMarqueeElement.cpp @@ -39,7 +39,7 @@ static const HashTableValue JSHTMLMarqueeElementTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLMarqueeElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLMarqueeElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLMarqueeElementTableValues, 0 }; #else @@ -53,7 +53,7 @@ static const HashTableValue JSHTMLMarqueeElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLMarqueeElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLMarqueeElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLMarqueeElementConstructorTableValues, 0 }; #else @@ -93,7 +93,7 @@ static const HashTableValue JSHTMLMarqueeElementPrototypeTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLMarqueeElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLMarqueeElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSHTMLMarqueeElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLMediaElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLMediaElement.cpp index 1f04d40..c3c74d3 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLMediaElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLMediaElement.cpp @@ -72,7 +72,7 @@ static const HashTableValue JSHTMLMediaElementTableValues[25] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLMediaElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLMediaElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 1023, JSHTMLMediaElementTableValues, 0 }; #else @@ -96,7 +96,7 @@ static const HashTableValue JSHTMLMediaElementConstructorTableValues[11] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLMediaElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLMediaElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSHTMLMediaElementConstructorTableValues, 0 }; #else @@ -148,7 +148,7 @@ static const HashTableValue JSHTMLMediaElementPrototypeTableValues[15] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLMediaElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLMediaElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSHTMLMediaElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLMenuElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLMenuElement.cpp index 35ce014..e658ed8 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLMenuElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLMenuElement.cpp @@ -39,7 +39,7 @@ static const HashTableValue JSHTMLMenuElementTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLMenuElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLMenuElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSHTMLMenuElementTableValues, 0 }; #else @@ -53,7 +53,7 @@ static const HashTableValue JSHTMLMenuElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLMenuElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLMenuElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLMenuElementConstructorTableValues, 0 }; #else @@ -91,7 +91,7 @@ static const HashTableValue JSHTMLMenuElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLMenuElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLMenuElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLMenuElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLMetaElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLMetaElement.cpp index 213c2bf..6b26520 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLMetaElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLMetaElement.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSHTMLMetaElementTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLMetaElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLMetaElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSHTMLMetaElementTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSHTMLMetaElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLMetaElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLMetaElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLMetaElementConstructorTableValues, 0 }; #else @@ -96,7 +96,7 @@ static const HashTableValue JSHTMLMetaElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLMetaElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLMetaElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLMetaElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLModElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLModElement.cpp index b55516c..ded7e9f 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLModElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLModElement.cpp @@ -42,7 +42,7 @@ static const HashTableValue JSHTMLModElementTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLModElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLModElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSHTMLModElementTableValues, 0 }; #else @@ -56,7 +56,7 @@ static const HashTableValue JSHTMLModElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLModElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLModElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLModElementConstructorTableValues, 0 }; #else @@ -94,7 +94,7 @@ static const HashTableValue JSHTMLModElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLModElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLModElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLModElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLOListElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLOListElement.cpp index 70fe0b4..63b781c 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLOListElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLOListElement.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSHTMLOListElementTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLOListElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLOListElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSHTMLOListElementTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSHTMLOListElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLOListElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLOListElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLOListElementConstructorTableValues, 0 }; #else @@ -96,7 +96,7 @@ static const HashTableValue JSHTMLOListElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLOListElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLOListElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLOListElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLObjectElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLObjectElement.cpp index c50e27a..c9f7102 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLObjectElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLObjectElement.cpp @@ -69,7 +69,7 @@ static const HashTableValue JSHTMLObjectElementTableValues[20] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLObjectElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLObjectElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSHTMLObjectElementTableValues, 0 }; #else @@ -83,7 +83,7 @@ static const HashTableValue JSHTMLObjectElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLObjectElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLObjectElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLObjectElementConstructorTableValues, 0 }; #else @@ -122,7 +122,7 @@ static const HashTableValue JSHTMLObjectElementPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLObjectElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLObjectElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLObjectElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLOptGroupElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLOptGroupElement.cpp index 69506b0..4b651c4 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLOptGroupElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLOptGroupElement.cpp @@ -42,7 +42,7 @@ static const HashTableValue JSHTMLOptGroupElementTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLOptGroupElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLOptGroupElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSHTMLOptGroupElementTableValues, 0 }; #else @@ -56,7 +56,7 @@ static const HashTableValue JSHTMLOptGroupElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLOptGroupElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLOptGroupElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLOptGroupElementConstructorTableValues, 0 }; #else @@ -94,7 +94,7 @@ static const HashTableValue JSHTMLOptGroupElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLOptGroupElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLOptGroupElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLOptGroupElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLOptionElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLOptionElement.cpp index ee1283d..4c9b51a 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLOptionElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLOptionElement.cpp @@ -51,7 +51,7 @@ static const HashTableValue JSHTMLOptionElementTableValues[10] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLOptionElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLOptionElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSHTMLOptionElementTableValues, 0 }; #else @@ -65,7 +65,7 @@ static const HashTableValue JSHTMLOptionElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLOptionElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLOptionElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLOptionElementConstructorTableValues, 0 }; #else @@ -103,7 +103,7 @@ static const HashTableValue JSHTMLOptionElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLOptionElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLOptionElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLOptionElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLOptionsCollection.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLOptionsCollection.cpp index 578ab90..b9e8d15 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLOptionsCollection.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLOptionsCollection.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSHTMLOptionsCollectionTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLOptionsCollectionTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLOptionsCollectionTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSHTMLOptionsCollectionTableValues, 0 }; #else @@ -57,7 +57,7 @@ static const HashTableValue JSHTMLOptionsCollectionPrototypeTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLOptionsCollectionPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLOptionsCollectionPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSHTMLOptionsCollectionPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLParagraphElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLParagraphElement.cpp index ba47a53..b267dc2 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLParagraphElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLParagraphElement.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSHTMLParagraphElementTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLParagraphElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLParagraphElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSHTMLParagraphElementTableValues, 0 }; #else @@ -55,7 +55,7 @@ static const HashTableValue JSHTMLParagraphElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLParagraphElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLParagraphElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLParagraphElementConstructorTableValues, 0 }; #else @@ -93,7 +93,7 @@ static const HashTableValue JSHTMLParagraphElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLParagraphElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLParagraphElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLParagraphElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLParamElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLParamElement.cpp index b4c9348..467df03 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLParamElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLParamElement.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSHTMLParamElementTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLParamElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLParamElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSHTMLParamElementTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSHTMLParamElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLParamElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLParamElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLParamElementConstructorTableValues, 0 }; #else @@ -96,7 +96,7 @@ static const HashTableValue JSHTMLParamElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLParamElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLParamElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLParamElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLPreElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLPreElement.cpp index 8aac7c1..b6bc6fb 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLPreElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLPreElement.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSHTMLPreElementTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLPreElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLPreElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSHTMLPreElementTableValues, 0 }; #else @@ -55,7 +55,7 @@ static const HashTableValue JSHTMLPreElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLPreElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLPreElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLPreElementConstructorTableValues, 0 }; #else @@ -93,7 +93,7 @@ static const HashTableValue JSHTMLPreElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLPreElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLPreElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLPreElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLQuoteElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLQuoteElement.cpp index dd831c0..a8313b9 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLQuoteElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLQuoteElement.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSHTMLQuoteElementTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLQuoteElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLQuoteElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSHTMLQuoteElementTableValues, 0 }; #else @@ -55,7 +55,7 @@ static const HashTableValue JSHTMLQuoteElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLQuoteElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLQuoteElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLQuoteElementConstructorTableValues, 0 }; #else @@ -93,7 +93,7 @@ static const HashTableValue JSHTMLQuoteElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLQuoteElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLQuoteElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLQuoteElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLScriptElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLScriptElement.cpp index ab7bc3d..8e157d1 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLScriptElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLScriptElement.cpp @@ -47,7 +47,7 @@ static const HashTableValue JSHTMLScriptElementTableValues[9] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLScriptElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLScriptElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSHTMLScriptElementTableValues, 0 }; #else @@ -61,7 +61,7 @@ static const HashTableValue JSHTMLScriptElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLScriptElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLScriptElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLScriptElementConstructorTableValues, 0 }; #else @@ -99,7 +99,7 @@ static const HashTableValue JSHTMLScriptElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLScriptElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLScriptElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLScriptElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLSelectElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLSelectElement.cpp index 8a61381..08e765c 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLSelectElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLSelectElement.cpp @@ -29,8 +29,10 @@ #include "JSHTMLFormElement.h" #include "JSHTMLOptionsCollection.h" #include "JSNode.h" +#include "JSValidityState.h" #include "KURL.h" #include "Node.h" +#include "ValidityState.h" #include <runtime/Error.h> #include <runtime/JSNumberCell.h> #include <runtime/JSString.h> @@ -45,13 +47,14 @@ ASSERT_CLASS_FITS_IN_CELL(JSHTMLSelectElement); /* Hash table */ -static const HashTableValue JSHTMLSelectElementTableValues[14] = +static const HashTableValue JSHTMLSelectElementTableValues[15] = { { "type", DontDelete|ReadOnly, (intptr_t)jsHTMLSelectElementType, (intptr_t)0 }, { "selectedIndex", DontDelete, (intptr_t)jsHTMLSelectElementSelectedIndex, (intptr_t)setJSHTMLSelectElementSelectedIndex }, { "value", DontDelete, (intptr_t)jsHTMLSelectElementValue, (intptr_t)setJSHTMLSelectElementValue }, { "length", DontDelete, (intptr_t)jsHTMLSelectElementLength, (intptr_t)setJSHTMLSelectElementLength }, { "form", DontDelete|ReadOnly, (intptr_t)jsHTMLSelectElementForm, (intptr_t)0 }, + { "validity", DontDelete|ReadOnly, (intptr_t)jsHTMLSelectElementValidity, (intptr_t)0 }, { "willValidate", DontDelete|ReadOnly, (intptr_t)jsHTMLSelectElementWillValidate, (intptr_t)0 }, { "options", DontDelete|ReadOnly, (intptr_t)jsHTMLSelectElementOptions, (intptr_t)0 }, { "disabled", DontDelete, (intptr_t)jsHTMLSelectElementDisabled, (intptr_t)setJSHTMLSelectElementDisabled }, @@ -63,11 +66,11 @@ static const HashTableValue JSHTMLSelectElementTableValues[14] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLSelectElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLSelectElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSHTMLSelectElementTableValues, 0 }; #else - { 34, 31, JSHTMLSelectElementTableValues, 0 }; + { 35, 31, JSHTMLSelectElementTableValues, 0 }; #endif /* Hash table for constructor */ @@ -77,7 +80,7 @@ static const HashTableValue JSHTMLSelectElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLSelectElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLSelectElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLSelectElementConstructorTableValues, 0 }; #else @@ -119,7 +122,7 @@ static const HashTableValue JSHTMLSelectElementPrototypeTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLSelectElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLSelectElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSHTMLSelectElementPrototypeTableValues, 0 }; #else @@ -210,6 +213,13 @@ JSValue jsHTMLSelectElementForm(ExecState* exec, const Identifier&, const Proper return toJS(exec, WTF::getPtr(imp->form())); } +JSValue jsHTMLSelectElementValidity(ExecState* exec, const Identifier&, const PropertySlot& slot) +{ + UNUSED_PARAM(exec); + HTMLSelectElement* imp = static_cast<HTMLSelectElement*>(static_cast<JSHTMLSelectElement*>(asObject(slot.slotBase()))->impl()); + return toJS(exec, WTF::getPtr(imp->validity())); +} + JSValue jsHTMLSelectElementWillValidate(ExecState* exec, const Identifier&, const PropertySlot& slot) { UNUSED_PARAM(exec); diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLSelectElement.h b/src/3rdparty/webkit/WebCore/generated/JSHTMLSelectElement.h index 1790360..53459cb 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLSelectElement.h +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLSelectElement.h @@ -84,6 +84,7 @@ void setJSHTMLSelectElementValue(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); JSC::JSValue jsHTMLSelectElementLength(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); void setJSHTMLSelectElementLength(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); JSC::JSValue jsHTMLSelectElementForm(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); +JSC::JSValue jsHTMLSelectElementValidity(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); JSC::JSValue jsHTMLSelectElementWillValidate(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); JSC::JSValue jsHTMLSelectElementOptions(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); JSC::JSValue jsHTMLSelectElementDisabled(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLSourceElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLSourceElement.cpp index b9f65ad..5e534cf 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLSourceElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLSourceElement.cpp @@ -46,7 +46,7 @@ static const HashTableValue JSHTMLSourceElementTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLSourceElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLSourceElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSHTMLSourceElementTableValues, 0 }; #else @@ -60,7 +60,7 @@ static const HashTableValue JSHTMLSourceElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLSourceElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLSourceElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLSourceElementConstructorTableValues, 0 }; #else @@ -98,7 +98,7 @@ static const HashTableValue JSHTMLSourceElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLSourceElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLSourceElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLSourceElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLStyleElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLStyleElement.cpp index 5b31c04..77b1b1a 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLStyleElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLStyleElement.cpp @@ -46,7 +46,7 @@ static const HashTableValue JSHTMLStyleElementTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLStyleElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLStyleElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSHTMLStyleElementTableValues, 0 }; #else @@ -60,7 +60,7 @@ static const HashTableValue JSHTMLStyleElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLStyleElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLStyleElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLStyleElementConstructorTableValues, 0 }; #else @@ -98,7 +98,7 @@ static const HashTableValue JSHTMLStyleElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLStyleElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLStyleElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLStyleElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLTableCaptionElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLTableCaptionElement.cpp index 51b8dbe..3fcbcba 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLTableCaptionElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLTableCaptionElement.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSHTMLTableCaptionElementTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTableCaptionElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTableCaptionElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSHTMLTableCaptionElementTableValues, 0 }; #else @@ -55,7 +55,7 @@ static const HashTableValue JSHTMLTableCaptionElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTableCaptionElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTableCaptionElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLTableCaptionElementConstructorTableValues, 0 }; #else @@ -93,7 +93,7 @@ static const HashTableValue JSHTMLTableCaptionElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTableCaptionElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTableCaptionElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLTableCaptionElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLTableCellElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLTableCellElement.cpp index cb81f6d..8ddf4ca 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLTableCellElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLTableCellElement.cpp @@ -56,7 +56,7 @@ static const HashTableValue JSHTMLTableCellElementTableValues[17] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTableCellElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTableCellElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 511, JSHTMLTableCellElementTableValues, 0 }; #else @@ -70,7 +70,7 @@ static const HashTableValue JSHTMLTableCellElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTableCellElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTableCellElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLTableCellElementConstructorTableValues, 0 }; #else @@ -108,7 +108,7 @@ static const HashTableValue JSHTMLTableCellElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTableCellElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTableCellElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLTableCellElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLTableColElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLTableColElement.cpp index 470cd02..b79eda4 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLTableColElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLTableColElement.cpp @@ -47,7 +47,7 @@ static const HashTableValue JSHTMLTableColElementTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTableColElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTableColElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 511, JSHTMLTableColElementTableValues, 0 }; #else @@ -61,7 +61,7 @@ static const HashTableValue JSHTMLTableColElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTableColElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTableColElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLTableColElementConstructorTableValues, 0 }; #else @@ -99,7 +99,7 @@ static const HashTableValue JSHTMLTableColElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTableColElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTableColElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLTableColElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLTableElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLTableElement.cpp index 96b92e0..6965555 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLTableElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLTableElement.cpp @@ -63,7 +63,7 @@ static const HashTableValue JSHTMLTableElementTableValues[16] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTableElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTableElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSHTMLTableElementTableValues, 0 }; #else @@ -77,7 +77,7 @@ static const HashTableValue JSHTMLTableElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTableElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTableElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLTableElementConstructorTableValues, 0 }; #else @@ -123,7 +123,7 @@ static const HashTableValue JSHTMLTableElementPrototypeTableValues[9] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTableElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTableElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSHTMLTableElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLTableRowElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLTableRowElement.cpp index c384613..d806271 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLTableRowElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLTableRowElement.cpp @@ -54,7 +54,7 @@ static const HashTableValue JSHTMLTableRowElementTableValues[10] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTableRowElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTableRowElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSHTMLTableRowElementTableValues, 0 }; #else @@ -68,7 +68,7 @@ static const HashTableValue JSHTMLTableRowElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTableRowElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTableRowElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLTableRowElementConstructorTableValues, 0 }; #else @@ -108,7 +108,7 @@ static const HashTableValue JSHTMLTableRowElementPrototypeTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTableRowElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTableRowElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSHTMLTableRowElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLTableSectionElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLTableSectionElement.cpp index 8e8ce54..7515cfd 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLTableSectionElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLTableSectionElement.cpp @@ -50,7 +50,7 @@ static const HashTableValue JSHTMLTableSectionElementTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTableSectionElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTableSectionElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSHTMLTableSectionElementTableValues, 0 }; #else @@ -64,7 +64,7 @@ static const HashTableValue JSHTMLTableSectionElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTableSectionElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTableSectionElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLTableSectionElementConstructorTableValues, 0 }; #else @@ -104,7 +104,7 @@ static const HashTableValue JSHTMLTableSectionElementPrototypeTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTableSectionElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTableSectionElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSHTMLTableSectionElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLTextAreaElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLTextAreaElement.cpp index 6d845f9..f103fb7 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLTextAreaElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLTextAreaElement.cpp @@ -24,7 +24,9 @@ #include "HTMLFormElement.h" #include "HTMLTextAreaElement.h" #include "JSHTMLFormElement.h" +#include "JSValidityState.h" #include "KURL.h" +#include "ValidityState.h" #include <runtime/Error.h> #include <runtime/JSNumberCell.h> #include <runtime/JSString.h> @@ -38,10 +40,11 @@ ASSERT_CLASS_FITS_IN_CELL(JSHTMLTextAreaElement); /* Hash table */ -static const HashTableValue JSHTMLTextAreaElementTableValues[16] = +static const HashTableValue JSHTMLTextAreaElementTableValues[17] = { { "defaultValue", DontDelete, (intptr_t)jsHTMLTextAreaElementDefaultValue, (intptr_t)setJSHTMLTextAreaElementDefaultValue }, { "form", DontDelete|ReadOnly, (intptr_t)jsHTMLTextAreaElementForm, (intptr_t)0 }, + { "validity", DontDelete|ReadOnly, (intptr_t)jsHTMLTextAreaElementValidity, (intptr_t)0 }, { "accessKey", DontDelete, (intptr_t)jsHTMLTextAreaElementAccessKey, (intptr_t)setJSHTMLTextAreaElementAccessKey }, { "cols", DontDelete, (intptr_t)jsHTMLTextAreaElementCols, (intptr_t)setJSHTMLTextAreaElementCols }, { "disabled", DontDelete, (intptr_t)jsHTMLTextAreaElementDisabled, (intptr_t)setJSHTMLTextAreaElementDisabled }, @@ -58,11 +61,11 @@ static const HashTableValue JSHTMLTextAreaElementTableValues[16] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTextAreaElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTextAreaElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSHTMLTextAreaElementTableValues, 0 }; #else - { 35, 31, JSHTMLTextAreaElementTableValues, 0 }; + { 36, 31, JSHTMLTextAreaElementTableValues, 0 }; #endif /* Hash table for constructor */ @@ -72,7 +75,7 @@ static const HashTableValue JSHTMLTextAreaElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTextAreaElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTextAreaElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLTextAreaElementConstructorTableValues, 0 }; #else @@ -112,7 +115,7 @@ static const HashTableValue JSHTMLTextAreaElementPrototypeTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTextAreaElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTextAreaElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSHTMLTextAreaElementPrototypeTableValues, 0 }; #else @@ -162,6 +165,13 @@ JSValue jsHTMLTextAreaElementForm(ExecState* exec, const Identifier&, const Prop return toJS(exec, WTF::getPtr(imp->form())); } +JSValue jsHTMLTextAreaElementValidity(ExecState* exec, const Identifier&, const PropertySlot& slot) +{ + UNUSED_PARAM(exec); + HTMLTextAreaElement* imp = static_cast<HTMLTextAreaElement*>(static_cast<JSHTMLTextAreaElement*>(asObject(slot.slotBase()))->impl()); + return toJS(exec, WTF::getPtr(imp->validity())); +} + JSValue jsHTMLTextAreaElementAccessKey(ExecState* exec, const Identifier&, const PropertySlot& slot) { UNUSED_PARAM(exec); diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLTextAreaElement.h b/src/3rdparty/webkit/WebCore/generated/JSHTMLTextAreaElement.h index d248975..63d0575 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLTextAreaElement.h +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLTextAreaElement.h @@ -69,6 +69,7 @@ JSC::JSValue JSC_HOST_CALL jsHTMLTextAreaElementPrototypeFunctionSetSelectionRan JSC::JSValue jsHTMLTextAreaElementDefaultValue(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); void setJSHTMLTextAreaElementDefaultValue(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); JSC::JSValue jsHTMLTextAreaElementForm(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); +JSC::JSValue jsHTMLTextAreaElementValidity(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); JSC::JSValue jsHTMLTextAreaElementAccessKey(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); void setJSHTMLTextAreaElementAccessKey(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); JSC::JSValue jsHTMLTextAreaElementCols(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLTitleElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLTitleElement.cpp index 82a61ad..dbc9932 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLTitleElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLTitleElement.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSHTMLTitleElementTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTitleElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTitleElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSHTMLTitleElementTableValues, 0 }; #else @@ -55,7 +55,7 @@ static const HashTableValue JSHTMLTitleElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTitleElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTitleElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLTitleElementConstructorTableValues, 0 }; #else @@ -93,7 +93,7 @@ static const HashTableValue JSHTMLTitleElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLTitleElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLTitleElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLTitleElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLUListElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLUListElement.cpp index 522ff7f..aae57e3 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLUListElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLUListElement.cpp @@ -42,7 +42,7 @@ static const HashTableValue JSHTMLUListElementTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLUListElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLUListElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSHTMLUListElementTableValues, 0 }; #else @@ -56,7 +56,7 @@ static const HashTableValue JSHTMLUListElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLUListElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLUListElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLUListElementConstructorTableValues, 0 }; #else @@ -94,7 +94,7 @@ static const HashTableValue JSHTMLUListElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLUListElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLUListElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLUListElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHTMLVideoElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSHTMLVideoElement.cpp index c097281..19c1a20 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHTMLVideoElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHTMLVideoElement.cpp @@ -49,7 +49,7 @@ static const HashTableValue JSHTMLVideoElementTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLVideoElementTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLVideoElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSHTMLVideoElementTableValues, 0 }; #else @@ -63,7 +63,7 @@ static const HashTableValue JSHTMLVideoElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLVideoElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLVideoElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLVideoElementConstructorTableValues, 0 }; #else @@ -101,7 +101,7 @@ static const HashTableValue JSHTMLVideoElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSHTMLVideoElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHTMLVideoElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHTMLVideoElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSHistory.cpp b/src/3rdparty/webkit/WebCore/generated/JSHistory.cpp index 55e22af..097a6b7 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSHistory.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSHistory.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSHistoryTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSHistoryTable = +static JSC_CONST_HASHTABLE HashTable JSHistoryTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSHistoryTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSHistoryPrototypeTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSHistoryPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSHistoryPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSHistoryPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSImageData.cpp b/src/3rdparty/webkit/WebCore/generated/JSImageData.cpp index a965375..139249b 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSImageData.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSImageData.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSImageDataTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSImageDataTable = +static JSC_CONST_HASHTABLE HashTable JSImageDataTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSImageDataTableValues, 0 }; #else @@ -55,7 +55,7 @@ static const HashTableValue JSImageDataConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSImageDataConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSImageDataConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSImageDataConstructorTableValues, 0 }; #else @@ -93,7 +93,7 @@ static const HashTableValue JSImageDataPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSImageDataPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSImageDataPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSImageDataPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSInspectorController.cpp b/src/3rdparty/webkit/WebCore/generated/JSInspectorController.cpp index a0dac40..a457224 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSInspectorController.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSInspectorController.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSInspectorControllerTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSInspectorControllerTable = +static JSC_CONST_HASHTABLE HashTable JSInspectorControllerTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSInspectorControllerTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSInspectorControllerConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSInspectorControllerConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSInspectorControllerConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSInspectorControllerConstructorTableValues, 0 }; #else @@ -143,7 +143,7 @@ static const HashTableValue JSInspectorControllerPrototypeTableValues[48] = { 0, 0, 0, 0 } }; -static const HashTable JSInspectorControllerPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSInspectorControllerPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSInspectorControllerPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSJavaScriptCallFrame.cpp b/src/3rdparty/webkit/WebCore/generated/JSJavaScriptCallFrame.cpp index c8a3f3d..a4a4f8b 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSJavaScriptCallFrame.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSJavaScriptCallFrame.cpp @@ -52,7 +52,7 @@ static const HashTableValue JSJavaScriptCallFrameTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSJavaScriptCallFrameTable = +static JSC_CONST_HASHTABLE HashTable JSJavaScriptCallFrameTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSJavaScriptCallFrameTableValues, 0 }; #else @@ -67,7 +67,7 @@ static const HashTableValue JSJavaScriptCallFramePrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSJavaScriptCallFramePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSJavaScriptCallFramePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSJavaScriptCallFramePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSKeyboardEvent.cpp b/src/3rdparty/webkit/WebCore/generated/JSKeyboardEvent.cpp index 750d1be..a03e149 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSKeyboardEvent.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSKeyboardEvent.cpp @@ -50,7 +50,7 @@ static const HashTableValue JSKeyboardEventTableValues[9] = { 0, 0, 0, 0 } }; -static const HashTable JSKeyboardEventTable = +static JSC_CONST_HASHTABLE HashTable JSKeyboardEventTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSKeyboardEventTableValues, 0 }; #else @@ -64,7 +64,7 @@ static const HashTableValue JSKeyboardEventConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSKeyboardEventConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSKeyboardEventConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSKeyboardEventConstructorTableValues, 0 }; #else @@ -103,7 +103,7 @@ static const HashTableValue JSKeyboardEventPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSKeyboardEventPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSKeyboardEventPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSKeyboardEventPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSLocation.cpp b/src/3rdparty/webkit/WebCore/generated/JSLocation.cpp index a1c76be..01b1416 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSLocation.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSLocation.cpp @@ -49,7 +49,7 @@ static const HashTableValue JSLocationTableValues[9] = { 0, 0, 0, 0 } }; -static const HashTable JSLocationTable = +static JSC_CONST_HASHTABLE HashTable JSLocationTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSLocationTableValues, 0 }; #else @@ -67,7 +67,7 @@ static const HashTableValue JSLocationPrototypeTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSLocationPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSLocationPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSLocationPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSMediaError.cpp b/src/3rdparty/webkit/WebCore/generated/JSMediaError.cpp index 490e06c..76d8044 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSMediaError.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSMediaError.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSMediaErrorTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSMediaErrorTable = +static JSC_CONST_HASHTABLE HashTable JSMediaErrorTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSMediaErrorTableValues, 0 }; #else @@ -61,7 +61,7 @@ static const HashTableValue JSMediaErrorConstructorTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSMediaErrorConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSMediaErrorConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSMediaErrorConstructorTableValues, 0 }; #else @@ -103,7 +103,7 @@ static const HashTableValue JSMediaErrorPrototypeTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSMediaErrorPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSMediaErrorPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSMediaErrorPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSMediaList.cpp b/src/3rdparty/webkit/WebCore/generated/JSMediaList.cpp index 4a517c8f..448b378 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSMediaList.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSMediaList.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSMediaListTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSMediaListTable = +static JSC_CONST_HASHTABLE HashTable JSMediaListTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSMediaListTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSMediaListConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSMediaListConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSMediaListConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSMediaListConstructorTableValues, 0 }; #else @@ -99,7 +99,7 @@ static const HashTableValue JSMediaListPrototypeTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSMediaListPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSMediaListPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSMediaListPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSMessageChannel.cpp b/src/3rdparty/webkit/WebCore/generated/JSMessageChannel.cpp index 8f660f2..5b41a54 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSMessageChannel.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSMessageChannel.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSMessageChannelTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSMessageChannelTable = +static JSC_CONST_HASHTABLE HashTable JSMessageChannelTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSMessageChannelTableValues, 0 }; #else @@ -55,7 +55,7 @@ static const HashTableValue JSMessageChannelPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSMessageChannelPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSMessageChannelPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSMessageChannelPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSMessageEvent.cpp b/src/3rdparty/webkit/WebCore/generated/JSMessageEvent.cpp index e95dd9c..190fb5a 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSMessageEvent.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSMessageEvent.cpp @@ -50,7 +50,7 @@ static const HashTableValue JSMessageEventTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSMessageEventTable = +static JSC_CONST_HASHTABLE HashTable JSMessageEventTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSMessageEventTableValues, 0 }; #else @@ -64,7 +64,7 @@ static const HashTableValue JSMessageEventConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSMessageEventConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSMessageEventConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSMessageEventConstructorTableValues, 0 }; #else @@ -103,7 +103,7 @@ static const HashTableValue JSMessageEventPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSMessageEventPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSMessageEventPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSMessageEventPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSMessagePort.cpp b/src/3rdparty/webkit/WebCore/generated/JSMessagePort.cpp index 7cb75b2..cc43258 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSMessagePort.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSMessagePort.cpp @@ -48,7 +48,7 @@ static const HashTableValue JSMessagePortTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSMessagePortTable = +static JSC_CONST_HASHTABLE HashTable JSMessagePortTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSMessagePortTableValues, 0 }; #else @@ -62,7 +62,7 @@ static const HashTableValue JSMessagePortConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSMessagePortConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSMessagePortConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSMessagePortConstructorTableValues, 0 }; #else @@ -106,7 +106,7 @@ static const HashTableValue JSMessagePortPrototypeTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSMessagePortPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSMessagePortPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSMessagePortPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSMimeType.cpp b/src/3rdparty/webkit/WebCore/generated/JSMimeType.cpp index 09a5dbd..1938061 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSMimeType.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSMimeType.cpp @@ -46,7 +46,7 @@ static const HashTableValue JSMimeTypeTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSMimeTypeTable = +static JSC_CONST_HASHTABLE HashTable JSMimeTypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSMimeTypeTableValues, 0 }; #else @@ -60,7 +60,7 @@ static const HashTableValue JSMimeTypeConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSMimeTypeConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSMimeTypeConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSMimeTypeConstructorTableValues, 0 }; #else @@ -98,7 +98,7 @@ static const HashTableValue JSMimeTypePrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSMimeTypePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSMimeTypePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSMimeTypePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSMimeTypeArray.cpp b/src/3rdparty/webkit/WebCore/generated/JSMimeTypeArray.cpp index 509d6d0..28e3930 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSMimeTypeArray.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSMimeTypeArray.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSMimeTypeArrayTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSMimeTypeArrayTable = +static JSC_CONST_HASHTABLE HashTable JSMimeTypeArrayTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSMimeTypeArrayTableValues, 0 }; #else @@ -59,7 +59,7 @@ static const HashTableValue JSMimeTypeArrayConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSMimeTypeArrayConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSMimeTypeArrayConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSMimeTypeArrayConstructorTableValues, 0 }; #else @@ -99,7 +99,7 @@ static const HashTableValue JSMimeTypeArrayPrototypeTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSMimeTypeArrayPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSMimeTypeArrayPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSMimeTypeArrayPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSMouseEvent.cpp b/src/3rdparty/webkit/WebCore/generated/JSMouseEvent.cpp index 6daf2ab..fca18c5 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSMouseEvent.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSMouseEvent.cpp @@ -64,7 +64,7 @@ static const HashTableValue JSMouseEventTableValues[19] = { 0, 0, 0, 0 } }; -static const HashTable JSMouseEventTable = +static JSC_CONST_HASHTABLE HashTable JSMouseEventTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSMouseEventTableValues, 0 }; #else @@ -78,7 +78,7 @@ static const HashTableValue JSMouseEventConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSMouseEventConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSMouseEventConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSMouseEventConstructorTableValues, 0 }; #else @@ -117,7 +117,7 @@ static const HashTableValue JSMouseEventPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSMouseEventPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSMouseEventPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSMouseEventPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSMutationEvent.cpp b/src/3rdparty/webkit/WebCore/generated/JSMutationEvent.cpp index 71d339e..2f6bc8e 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSMutationEvent.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSMutationEvent.cpp @@ -49,7 +49,7 @@ static const HashTableValue JSMutationEventTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSMutationEventTable = +static JSC_CONST_HASHTABLE HashTable JSMutationEventTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSMutationEventTableValues, 0 }; #else @@ -66,7 +66,7 @@ static const HashTableValue JSMutationEventConstructorTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSMutationEventConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSMutationEventConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSMutationEventConstructorTableValues, 0 }; #else @@ -108,7 +108,7 @@ static const HashTableValue JSMutationEventPrototypeTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSMutationEventPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSMutationEventPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSMutationEventPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSNamedNodeMap.cpp b/src/3rdparty/webkit/WebCore/generated/JSNamedNodeMap.cpp index 9c6a5a9..47a7643 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSNamedNodeMap.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSNamedNodeMap.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSNamedNodeMapTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSNamedNodeMapTable = +static JSC_CONST_HASHTABLE HashTable JSNamedNodeMapTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSNamedNodeMapTableValues, 0 }; #else @@ -59,7 +59,7 @@ static const HashTableValue JSNamedNodeMapConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSNamedNodeMapConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSNamedNodeMapConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSNamedNodeMapConstructorTableValues, 0 }; #else @@ -104,7 +104,7 @@ static const HashTableValue JSNamedNodeMapPrototypeTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSNamedNodeMapPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSNamedNodeMapPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSNamedNodeMapPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSNavigator.cpp b/src/3rdparty/webkit/WebCore/generated/JSNavigator.cpp index feefecc..e55a3cc 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSNavigator.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSNavigator.cpp @@ -58,7 +58,7 @@ static const HashTableValue JSNavigatorTableValues[15] = { 0, 0, 0, 0 } }; -static const HashTable JSNavigatorTable = +static JSC_CONST_HASHTABLE HashTable JSNavigatorTable = #if ENABLE(PERFECT_HASH_SIZE) { 511, JSNavigatorTableValues, 0 }; #else @@ -73,7 +73,7 @@ static const HashTableValue JSNavigatorPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSNavigatorPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSNavigatorPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSNavigatorPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSNode.cpp b/src/3rdparty/webkit/WebCore/generated/JSNode.cpp index fda843c..d9d3d35 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSNode.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSNode.cpp @@ -71,7 +71,7 @@ static const HashTableValue JSNodeTableValues[19] = { 0, 0, 0, 0 } }; -static const HashTable JSNodeTable = +static JSC_CONST_HASHTABLE HashTable JSNodeTable = #if ENABLE(PERFECT_HASH_SIZE) { 4095, JSNodeTableValues, 0 }; #else @@ -103,7 +103,7 @@ static const HashTableValue JSNodeConstructorTableValues[19] = { 0, 0, 0, 0 } }; -static const HashTable JSNodeConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSNodeConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSNodeConstructorTableValues, 0 }; #else @@ -177,7 +177,7 @@ static const HashTableValue JSNodePrototypeTableValues[37] = { 0, 0, 0, 0 } }; -static const HashTable JSNodePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSNodePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 4095, JSNodePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSNodeFilter.cpp b/src/3rdparty/webkit/WebCore/generated/JSNodeFilter.cpp index 3084eed..32ef101 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSNodeFilter.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSNodeFilter.cpp @@ -39,7 +39,7 @@ static const HashTableValue JSNodeFilterTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSNodeFilterTable = +static JSC_CONST_HASHTABLE HashTable JSNodeFilterTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSNodeFilterTableValues, 0 }; #else @@ -69,7 +69,7 @@ static const HashTableValue JSNodeFilterConstructorTableValues[17] = { 0, 0, 0, 0 } }; -static const HashTable JSNodeFilterConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSNodeFilterConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSNodeFilterConstructorTableValues, 0 }; #else @@ -124,7 +124,7 @@ static const HashTableValue JSNodeFilterPrototypeTableValues[18] = { 0, 0, 0, 0 } }; -static const HashTable JSNodeFilterPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSNodeFilterPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSNodeFilterPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSNodeIterator.cpp b/src/3rdparty/webkit/WebCore/generated/JSNodeIterator.cpp index 152ab6f..6e79669 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSNodeIterator.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSNodeIterator.cpp @@ -50,7 +50,7 @@ static const HashTableValue JSNodeIteratorTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSNodeIteratorTable = +static JSC_CONST_HASHTABLE HashTable JSNodeIteratorTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSNodeIteratorTableValues, 0 }; #else @@ -64,7 +64,7 @@ static const HashTableValue JSNodeIteratorConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSNodeIteratorConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSNodeIteratorConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSNodeIteratorConstructorTableValues, 0 }; #else @@ -105,7 +105,7 @@ static const HashTableValue JSNodeIteratorPrototypeTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSNodeIteratorPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSNodeIteratorPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSNodeIteratorPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSNodeList.cpp b/src/3rdparty/webkit/WebCore/generated/JSNodeList.cpp index 80e1f22..f02b7b7 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSNodeList.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSNodeList.cpp @@ -46,7 +46,7 @@ static const HashTableValue JSNodeListTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSNodeListTable = +static JSC_CONST_HASHTABLE HashTable JSNodeListTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSNodeListTableValues, 0 }; #else @@ -60,7 +60,7 @@ static const HashTableValue JSNodeListConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSNodeListConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSNodeListConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSNodeListConstructorTableValues, 0 }; #else @@ -99,7 +99,7 @@ static const HashTableValue JSNodeListPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSNodeListPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSNodeListPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSNodeListPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSNotation.cpp b/src/3rdparty/webkit/WebCore/generated/JSNotation.cpp index 95dacaa..13ac97b 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSNotation.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSNotation.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSNotationTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSNotationTable = +static JSC_CONST_HASHTABLE HashTable JSNotationTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSNotationTableValues, 0 }; #else @@ -55,7 +55,7 @@ static const HashTableValue JSNotationConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSNotationConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSNotationConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSNotationConstructorTableValues, 0 }; #else @@ -93,7 +93,7 @@ static const HashTableValue JSNotationPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSNotationPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSNotationPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSNotationPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSONObject.lut.h b/src/3rdparty/webkit/WebCore/generated/JSONObject.lut.h index 9a12bb4..ce685c2 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSONObject.lut.h +++ b/src/3rdparty/webkit/WebCore/generated/JSONObject.lut.h @@ -10,6 +10,6 @@ static const struct HashTableValue jsonTableValues[3] = { { 0, 0, 0, 0 } }; -extern const struct HashTable jsonTable = +extern JSC_CONST_HASHTABLE HashTable jsonTable = { 4, 3, jsonTableValues, 0 }; } // namespace diff --git a/src/3rdparty/webkit/WebCore/generated/JSOverflowEvent.cpp b/src/3rdparty/webkit/WebCore/generated/JSOverflowEvent.cpp index b704dcb..88a8bd3 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSOverflowEvent.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSOverflowEvent.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSOverflowEventTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSOverflowEventTable = +static JSC_CONST_HASHTABLE HashTable JSOverflowEventTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSOverflowEventTableValues, 0 }; #else @@ -60,7 +60,7 @@ static const HashTableValue JSOverflowEventConstructorTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSOverflowEventConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSOverflowEventConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSOverflowEventConstructorTableValues, 0 }; #else @@ -102,7 +102,7 @@ static const HashTableValue JSOverflowEventPrototypeTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSOverflowEventPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSOverflowEventPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSOverflowEventPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSPlugin.cpp b/src/3rdparty/webkit/WebCore/generated/JSPlugin.cpp index 9b3c480..c8d0432 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSPlugin.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSPlugin.cpp @@ -50,7 +50,7 @@ static const HashTableValue JSPluginTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSPluginTable = +static JSC_CONST_HASHTABLE HashTable JSPluginTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSPluginTableValues, 0 }; #else @@ -64,7 +64,7 @@ static const HashTableValue JSPluginConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSPluginConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSPluginConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSPluginConstructorTableValues, 0 }; #else @@ -104,7 +104,7 @@ static const HashTableValue JSPluginPrototypeTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSPluginPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSPluginPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSPluginPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSPluginArray.cpp b/src/3rdparty/webkit/WebCore/generated/JSPluginArray.cpp index ba960da..2d0ec36 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSPluginArray.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSPluginArray.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSPluginArrayTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSPluginArrayTable = +static JSC_CONST_HASHTABLE HashTable JSPluginArrayTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSPluginArrayTableValues, 0 }; #else @@ -59,7 +59,7 @@ static const HashTableValue JSPluginArrayConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSPluginArrayConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSPluginArrayConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSPluginArrayConstructorTableValues, 0 }; #else @@ -100,7 +100,7 @@ static const HashTableValue JSPluginArrayPrototypeTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSPluginArrayPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSPluginArrayPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSPluginArrayPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSPositionError.cpp b/src/3rdparty/webkit/WebCore/generated/JSPositionError.cpp index 89f9e56..680cfc3 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSPositionError.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSPositionError.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSPositionErrorTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSPositionErrorTable = +static JSC_CONST_HASHTABLE HashTable JSPositionErrorTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSPositionErrorTableValues, 0 }; #else @@ -61,7 +61,7 @@ static const HashTableValue JSPositionErrorConstructorTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSPositionErrorConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSPositionErrorConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSPositionErrorConstructorTableValues, 0 }; #else @@ -103,7 +103,7 @@ static const HashTableValue JSPositionErrorPrototypeTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSPositionErrorPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSPositionErrorPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSPositionErrorPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSProcessingInstruction.cpp b/src/3rdparty/webkit/WebCore/generated/JSProcessingInstruction.cpp index 7ca8069..f9d2fc0 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSProcessingInstruction.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSProcessingInstruction.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSProcessingInstructionTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSProcessingInstructionTable = +static JSC_CONST_HASHTABLE HashTable JSProcessingInstructionTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSProcessingInstructionTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSProcessingInstructionConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSProcessingInstructionConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSProcessingInstructionConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSProcessingInstructionConstructorTableValues, 0 }; #else @@ -96,7 +96,7 @@ static const HashTableValue JSProcessingInstructionPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSProcessingInstructionPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSProcessingInstructionPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSProcessingInstructionPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSProgressEvent.cpp b/src/3rdparty/webkit/WebCore/generated/JSProgressEvent.cpp index b70c3c2..5c7bd50 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSProgressEvent.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSProgressEvent.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSProgressEventTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSProgressEventTable = +static JSC_CONST_HASHTABLE HashTable JSProgressEventTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSProgressEventTableValues, 0 }; #else @@ -57,7 +57,7 @@ static const HashTableValue JSProgressEventConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSProgressEventConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSProgressEventConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSProgressEventConstructorTableValues, 0 }; #else @@ -96,7 +96,7 @@ static const HashTableValue JSProgressEventPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSProgressEventPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSProgressEventPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSProgressEventPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSRGBColor.lut.h b/src/3rdparty/webkit/WebCore/generated/JSRGBColor.lut.h index 03bb415..4bcba9c 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSRGBColor.lut.h +++ b/src/3rdparty/webkit/WebCore/generated/JSRGBColor.lut.h @@ -11,6 +11,6 @@ static const struct HashTableValue JSRGBColorTableValues[4] = { { 0, 0, 0, 0 } }; -extern const struct HashTable JSRGBColorTable = +extern JSC_CONST_HASHTABLE HashTable JSRGBColorTable = { 8, 7, JSRGBColorTableValues, 0 }; } // namespace diff --git a/src/3rdparty/webkit/WebCore/generated/JSRange.cpp b/src/3rdparty/webkit/WebCore/generated/JSRange.cpp index 901b8f3..35582f5 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSRange.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSRange.cpp @@ -53,7 +53,7 @@ static const HashTableValue JSRangeTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSRangeTable = +static JSC_CONST_HASHTABLE HashTable JSRangeTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSRangeTableValues, 0 }; #else @@ -75,7 +75,7 @@ static const HashTableValue JSRangeConstructorTableValues[9] = { 0, 0, 0, 0 } }; -static const HashTable JSRangeConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSRangeConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 511, JSRangeConstructorTableValues, 0 }; #else @@ -144,7 +144,7 @@ static const HashTableValue JSRangePrototypeTableValues[32] = { 0, 0, 0, 0 } }; -static const HashTable JSRangePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSRangePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 1023, JSRangePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSRangeException.cpp b/src/3rdparty/webkit/WebCore/generated/JSRangeException.cpp index 3cf51ee..799616e 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSRangeException.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSRangeException.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSRangeExceptionTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSRangeExceptionTable = +static JSC_CONST_HASHTABLE HashTable JSRangeExceptionTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSRangeExceptionTableValues, 0 }; #else @@ -61,7 +61,7 @@ static const HashTableValue JSRangeExceptionConstructorTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSRangeExceptionConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSRangeExceptionConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSRangeExceptionConstructorTableValues, 0 }; #else @@ -102,7 +102,7 @@ static const HashTableValue JSRangeExceptionPrototypeTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSRangeExceptionPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSRangeExceptionPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSRangeExceptionPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSRect.cpp b/src/3rdparty/webkit/WebCore/generated/JSRect.cpp index 02423ef..4f6a2f7 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSRect.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSRect.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSRectTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSRectTable = +static JSC_CONST_HASHTABLE HashTable JSRectTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSRectTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSRectConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSRectConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSRectConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSRectConstructorTableValues, 0 }; #else @@ -96,7 +96,7 @@ static const HashTableValue JSRectPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSRectPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSRectPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSRectPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSQLError.cpp b/src/3rdparty/webkit/WebCore/generated/JSSQLError.cpp index 77cdc74..f907210 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSQLError.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSQLError.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSSQLErrorTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSQLErrorTable = +static JSC_CONST_HASHTABLE HashTable JSSQLErrorTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSSQLErrorTableValues, 0 }; #else @@ -59,7 +59,7 @@ static const HashTableValue JSSQLErrorPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSQLErrorPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSQLErrorPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSQLErrorPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSQLResultSet.cpp b/src/3rdparty/webkit/WebCore/generated/JSSQLResultSet.cpp index 8852997..e00abfe 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSQLResultSet.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSQLResultSet.cpp @@ -46,7 +46,7 @@ static const HashTableValue JSSQLResultSetTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSSQLResultSetTable = +static JSC_CONST_HASHTABLE HashTable JSSQLResultSetTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSQLResultSetTableValues, 0 }; #else @@ -60,7 +60,7 @@ static const HashTableValue JSSQLResultSetPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSQLResultSetPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSQLResultSetPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSQLResultSetPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSQLResultSetRowList.cpp b/src/3rdparty/webkit/WebCore/generated/JSSQLResultSetRowList.cpp index daf19f5..1a8af16 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSQLResultSetRowList.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSQLResultSetRowList.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSSQLResultSetRowListTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSQLResultSetRowListTable = +static JSC_CONST_HASHTABLE HashTable JSSQLResultSetRowListTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSQLResultSetRowListTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSSQLResultSetRowListPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSQLResultSetRowListPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSQLResultSetRowListPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSQLResultSetRowListPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSQLTransaction.cpp b/src/3rdparty/webkit/WebCore/generated/JSSQLTransaction.cpp index 1f086ee..cb7dabd 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSQLTransaction.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSQLTransaction.cpp @@ -42,7 +42,7 @@ static const HashTableValue JSSQLTransactionPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSQLTransactionPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSQLTransactionPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSQLTransactionPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGAElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGAElement.cpp index 3e6d235..b7a3237 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGAElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGAElement.cpp @@ -70,7 +70,7 @@ static const HashTableValue JSSVGAElementTableValues[14] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSSVGAElementTableValues, 0 }; #else @@ -90,7 +90,7 @@ static const HashTableValue JSSVGAElementPrototypeTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSSVGAElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGAltGlyphElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGAltGlyphElement.cpp index 89543b1..56a4392 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGAltGlyphElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGAltGlyphElement.cpp @@ -46,7 +46,7 @@ static const HashTableValue JSSVGAltGlyphElementTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAltGlyphElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAltGlyphElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSSVGAltGlyphElementTableValues, 0 }; #else @@ -60,7 +60,7 @@ static const HashTableValue JSSVGAltGlyphElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAltGlyphElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAltGlyphElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGAltGlyphElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGAngle.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGAngle.cpp index 39c7e73..4bb4518 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGAngle.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGAngle.cpp @@ -49,7 +49,7 @@ static const HashTableValue JSSVGAngleTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAngleTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAngleTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGAngleTableValues, 0 }; #else @@ -68,7 +68,7 @@ static const HashTableValue JSSVGAngleConstructorTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAngleConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAngleConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGAngleConstructorTableValues, 0 }; #else @@ -113,7 +113,7 @@ static const HashTableValue JSSVGAnglePrototypeTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnglePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnglePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGAnglePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimateColorElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimateColorElement.cpp index cbb2269..432bd7e 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimateColorElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimateColorElement.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSSVGAnimateColorElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimateColorElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimateColorElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGAnimateColorElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimateElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimateElement.cpp index 77d0331..b79ba69 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimateElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimateElement.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSSVGAnimateElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimateElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimateElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGAnimateElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimateTransformElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimateTransformElement.cpp index 511108f..8b68ea4 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimateTransformElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimateTransformElement.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSSVGAnimateTransformElementPrototypeTableValues[1] { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimateTransformElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimateTransformElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGAnimateTransformElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedAngle.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedAngle.cpp index 92c485a..34a9a9b 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedAngle.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedAngle.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSSVGAnimatedAngleTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedAngleTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedAngleTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGAnimatedAngleTableValues, 0 }; #else @@ -57,7 +57,7 @@ static const HashTableValue JSSVGAnimatedAnglePrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedAnglePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedAnglePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGAnimatedAnglePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedBoolean.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedBoolean.cpp index 2821aaa..969a5c9 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedBoolean.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedBoolean.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSSVGAnimatedBooleanTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedBooleanTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedBooleanTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGAnimatedBooleanTableValues, 0 }; #else @@ -55,7 +55,7 @@ static const HashTableValue JSSVGAnimatedBooleanPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedBooleanPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedBooleanPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGAnimatedBooleanPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedEnumeration.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedEnumeration.cpp index 3af330f..d61ea12 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedEnumeration.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedEnumeration.cpp @@ -42,7 +42,7 @@ static const HashTableValue JSSVGAnimatedEnumerationTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedEnumerationTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedEnumerationTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGAnimatedEnumerationTableValues, 0 }; #else @@ -56,7 +56,7 @@ static const HashTableValue JSSVGAnimatedEnumerationPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedEnumerationPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedEnumerationPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGAnimatedEnumerationPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedInteger.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedInteger.cpp index 11337a2..8228409 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedInteger.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedInteger.cpp @@ -42,7 +42,7 @@ static const HashTableValue JSSVGAnimatedIntegerTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedIntegerTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedIntegerTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGAnimatedIntegerTableValues, 0 }; #else @@ -56,7 +56,7 @@ static const HashTableValue JSSVGAnimatedIntegerPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedIntegerPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedIntegerPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGAnimatedIntegerPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedLength.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedLength.cpp index 2e1fc5b..e680aea 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedLength.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedLength.cpp @@ -42,7 +42,7 @@ static const HashTableValue JSSVGAnimatedLengthTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedLengthTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedLengthTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGAnimatedLengthTableValues, 0 }; #else @@ -56,7 +56,7 @@ static const HashTableValue JSSVGAnimatedLengthPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedLengthPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedLengthPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGAnimatedLengthPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedLengthList.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedLengthList.cpp index 04fa5f2..f6bf514 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedLengthList.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedLengthList.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSSVGAnimatedLengthListTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedLengthListTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedLengthListTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGAnimatedLengthListTableValues, 0 }; #else @@ -57,7 +57,7 @@ static const HashTableValue JSSVGAnimatedLengthListPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedLengthListPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedLengthListPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGAnimatedLengthListPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedNumber.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedNumber.cpp index 0b1d5a3..232b085 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedNumber.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedNumber.cpp @@ -42,7 +42,7 @@ static const HashTableValue JSSVGAnimatedNumberTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedNumberTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedNumberTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGAnimatedNumberTableValues, 0 }; #else @@ -56,7 +56,7 @@ static const HashTableValue JSSVGAnimatedNumberPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedNumberPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedNumberPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGAnimatedNumberPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedNumberList.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedNumberList.cpp index 3e07104..c782499 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedNumberList.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedNumberList.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSSVGAnimatedNumberListTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedNumberListTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedNumberListTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGAnimatedNumberListTableValues, 0 }; #else @@ -57,7 +57,7 @@ static const HashTableValue JSSVGAnimatedNumberListPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedNumberListPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedNumberListPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGAnimatedNumberListPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedPreserveAspectRatio.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedPreserveAspectRatio.cpp index 6209832..6fd809c6 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedPreserveAspectRatio.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedPreserveAspectRatio.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSSVGAnimatedPreserveAspectRatioTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedPreserveAspectRatioTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedPreserveAspectRatioTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGAnimatedPreserveAspectRatioTableValues, 0 }; #else @@ -57,7 +57,7 @@ static const HashTableValue JSSVGAnimatedPreserveAspectRatioPrototypeTableValues { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedPreserveAspectRatioPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedPreserveAspectRatioPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGAnimatedPreserveAspectRatioPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedRect.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedRect.cpp index 41698eb..8d8a4da 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedRect.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedRect.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSSVGAnimatedRectTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedRectTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedRectTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGAnimatedRectTableValues, 0 }; #else @@ -57,7 +57,7 @@ static const HashTableValue JSSVGAnimatedRectPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedRectPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedRectPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGAnimatedRectPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedString.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedString.cpp index 8d29f52..cfcebf0 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedString.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedString.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSSVGAnimatedStringTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedStringTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedStringTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGAnimatedStringTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSSVGAnimatedStringPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedStringPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedStringPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGAnimatedStringPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedTransformList.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedTransformList.cpp index ecdf262..80d48c9 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedTransformList.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedTransformList.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSSVGAnimatedTransformListTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedTransformListTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedTransformListTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGAnimatedTransformListTableValues, 0 }; #else @@ -57,7 +57,7 @@ static const HashTableValue JSSVGAnimatedTransformListPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimatedTransformListPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimatedTransformListPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGAnimatedTransformListPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimationElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimationElement.cpp index 12d6f19..70fc7b3 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGAnimationElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGAnimationElement.cpp @@ -52,7 +52,7 @@ static const HashTableValue JSSVGAnimationElementTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimationElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimationElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGAnimationElementTableValues, 0 }; #else @@ -74,7 +74,7 @@ static const HashTableValue JSSVGAnimationElementPrototypeTableValues[9] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGAnimationElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGAnimationElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSSVGAnimationElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGCircleElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGCircleElement.cpp index f9fa2aa..a487e9c 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGCircleElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGCircleElement.cpp @@ -72,7 +72,7 @@ static const HashTableValue JSSVGCircleElementTableValues[15] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGCircleElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGCircleElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSSVGCircleElementTableValues, 0 }; #else @@ -92,7 +92,7 @@ static const HashTableValue JSSVGCircleElementPrototypeTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGCircleElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGCircleElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSSVGCircleElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGClipPathElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGClipPathElement.cpp index 73e31af..5adfdb9 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGClipPathElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGClipPathElement.cpp @@ -70,7 +70,7 @@ static const HashTableValue JSSVGClipPathElementTableValues[13] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGClipPathElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGClipPathElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSSVGClipPathElementTableValues, 0 }; #else @@ -90,7 +90,7 @@ static const HashTableValue JSSVGClipPathElementPrototypeTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGClipPathElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGClipPathElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSSVGClipPathElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGColor.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGColor.cpp index 88c62e4..97ea35b 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGColor.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGColor.cpp @@ -46,7 +46,7 @@ static const HashTableValue JSSVGColorTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGColorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGColorTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSSVGColorTableValues, 0 }; #else @@ -64,7 +64,7 @@ static const HashTableValue JSSVGColorConstructorTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGColorConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGColorConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSSVGColorConstructorTableValues, 0 }; #else @@ -109,7 +109,7 @@ static const HashTableValue JSSVGColorPrototypeTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGColorPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGColorPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGColorPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGComponentTransferFunctionElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGComponentTransferFunctionElement.cpp index d5be3bc..3fc9adc 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGComponentTransferFunctionElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGComponentTransferFunctionElement.cpp @@ -51,7 +51,7 @@ static const HashTableValue JSSVGComponentTransferFunctionElementTableValues[9] { 0, 0, 0, 0 } }; -static const HashTable JSSVGComponentTransferFunctionElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGComponentTransferFunctionElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSSVGComponentTransferFunctionElementTableValues, 0 }; #else @@ -71,7 +71,7 @@ static const HashTableValue JSSVGComponentTransferFunctionElementConstructorTabl { 0, 0, 0, 0 } }; -static const HashTable JSSVGComponentTransferFunctionElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGComponentTransferFunctionElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSSVGComponentTransferFunctionElementConstructorTableValues, 0 }; #else @@ -115,7 +115,7 @@ static const HashTableValue JSSVGComponentTransferFunctionElementPrototypeTableV { 0, 0, 0, 0 } }; -static const HashTable JSSVGComponentTransferFunctionElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGComponentTransferFunctionElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSSVGComponentTransferFunctionElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGCursorElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGCursorElement.cpp index d6171c6..c38cb5b 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGCursorElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGCursorElement.cpp @@ -53,7 +53,7 @@ static const HashTableValue JSSVGCursorElementTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGCursorElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGCursorElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSSVGCursorElementTableValues, 0 }; #else @@ -68,7 +68,7 @@ static const HashTableValue JSSVGCursorElementPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGCursorElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGCursorElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGCursorElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGDefinitionSrcElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGDefinitionSrcElement.cpp index 6947dda..207bbe7 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGDefinitionSrcElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGDefinitionSrcElement.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSSVGDefinitionSrcElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGDefinitionSrcElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGDefinitionSrcElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGDefinitionSrcElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGDefsElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGDefsElement.cpp index 83e26d0..dd87211 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGDefsElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGDefsElement.cpp @@ -68,7 +68,7 @@ static const HashTableValue JSSVGDefsElementTableValues[12] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGDefsElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGDefsElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSSVGDefsElementTableValues, 0 }; #else @@ -88,7 +88,7 @@ static const HashTableValue JSSVGDefsElementPrototypeTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGDefsElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGDefsElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSSVGDefsElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGDescElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGDescElement.cpp index 28641ab..77be621 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGDescElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGDescElement.cpp @@ -53,7 +53,7 @@ static const HashTableValue JSSVGDescElementTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGDescElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGDescElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGDescElementTableValues, 0 }; #else @@ -68,7 +68,7 @@ static const HashTableValue JSSVGDescElementPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGDescElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGDescElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGDescElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGDocument.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGDocument.cpp index 840e6c9..6d91ccc 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGDocument.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGDocument.cpp @@ -46,7 +46,7 @@ static const HashTableValue JSSVGDocumentTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGDocumentTable = +static JSC_CONST_HASHTABLE HashTable JSSVGDocumentTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGDocumentTableValues, 0 }; #else @@ -61,7 +61,7 @@ static const HashTableValue JSSVGDocumentPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGDocumentPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGDocumentPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGDocumentPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGElement.cpp index e4defcf..b9e0a2d 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGElement.cpp @@ -49,7 +49,7 @@ static const HashTableValue JSSVGElementTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGElementTableValues, 0 }; #else @@ -63,7 +63,7 @@ static const HashTableValue JSSVGElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGElementInstance.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGElementInstance.cpp index 3b4d6b1..560630d 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGElementInstance.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGElementInstance.cpp @@ -102,7 +102,7 @@ static const HashTableValue JSSVGElementInstanceTableValues[49] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGElementInstanceTable = +static JSC_CONST_HASHTABLE HashTable JSSVGElementInstanceTable = #if ENABLE(PERFECT_HASH_SIZE) { 4095, JSSVGElementInstanceTableValues, 0 }; #else @@ -119,7 +119,7 @@ static const HashTableValue JSSVGElementInstancePrototypeTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGElementInstancePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGElementInstancePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSSVGElementInstancePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGElementInstanceList.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGElementInstanceList.cpp index 81c9335..312345f 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGElementInstanceList.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGElementInstanceList.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSSVGElementInstanceListTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGElementInstanceListTable = +static JSC_CONST_HASHTABLE HashTable JSSVGElementInstanceListTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGElementInstanceListTableValues, 0 }; #else @@ -60,7 +60,7 @@ static const HashTableValue JSSVGElementInstanceListPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGElementInstanceListPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGElementInstanceListPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGElementInstanceListPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGEllipseElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGEllipseElement.cpp index 8d6d8ec..73d7cfa 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGEllipseElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGEllipseElement.cpp @@ -73,7 +73,7 @@ static const HashTableValue JSSVGEllipseElementTableValues[16] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGEllipseElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGEllipseElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSSVGEllipseElementTableValues, 0 }; #else @@ -93,7 +93,7 @@ static const HashTableValue JSSVGEllipseElementPrototypeTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGEllipseElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGEllipseElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSSVGEllipseElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGException.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGException.cpp index af6a2090..7860c9d 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGException.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGException.cpp @@ -48,7 +48,7 @@ static const HashTableValue JSSVGExceptionTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGExceptionTable = +static JSC_CONST_HASHTABLE HashTable JSSVGExceptionTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSSVGExceptionTableValues, 0 }; #else @@ -65,7 +65,7 @@ static const HashTableValue JSSVGExceptionConstructorTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGExceptionConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGExceptionConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSSVGExceptionConstructorTableValues, 0 }; #else @@ -107,7 +107,7 @@ static const HashTableValue JSSVGExceptionPrototypeTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGExceptionPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGExceptionPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSSVGExceptionPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFEBlendElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFEBlendElement.cpp index 0ecbe59..a353006 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFEBlendElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFEBlendElement.cpp @@ -60,7 +60,7 @@ static const HashTableValue JSSVGFEBlendElementTableValues[12] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEBlendElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEBlendElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGFEBlendElementTableValues, 0 }; #else @@ -80,7 +80,7 @@ static const HashTableValue JSSVGFEBlendElementConstructorTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEBlendElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEBlendElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGFEBlendElementConstructorTableValues, 0 }; #else @@ -125,7 +125,7 @@ static const HashTableValue JSSVGFEBlendElementPrototypeTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEBlendElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEBlendElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGFEBlendElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFEColorMatrixElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFEColorMatrixElement.cpp index dd8db83..d875386 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFEColorMatrixElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFEColorMatrixElement.cpp @@ -61,7 +61,7 @@ static const HashTableValue JSSVGFEColorMatrixElementTableValues[12] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEColorMatrixElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEColorMatrixElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGFEColorMatrixElementTableValues, 0 }; #else @@ -80,7 +80,7 @@ static const HashTableValue JSSVGFEColorMatrixElementConstructorTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEColorMatrixElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEColorMatrixElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSSVGFEColorMatrixElementConstructorTableValues, 0 }; #else @@ -124,7 +124,7 @@ static const HashTableValue JSSVGFEColorMatrixElementPrototypeTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEColorMatrixElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEColorMatrixElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSSVGFEColorMatrixElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFEComponentTransferElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFEComponentTransferElement.cpp index cf4de5c..c5238a8 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFEComponentTransferElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFEComponentTransferElement.cpp @@ -56,7 +56,7 @@ static const HashTableValue JSSVGFEComponentTransferElementTableValues[9] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEComponentTransferElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEComponentTransferElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGFEComponentTransferElementTableValues, 0 }; #else @@ -71,7 +71,7 @@ static const HashTableValue JSSVGFEComponentTransferElementPrototypeTableValues[ { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEComponentTransferElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEComponentTransferElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFEComponentTransferElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFECompositeElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFECompositeElement.cpp index 6aff814..8edb5f0 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFECompositeElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFECompositeElement.cpp @@ -65,7 +65,7 @@ static const HashTableValue JSSVGFECompositeElementTableValues[16] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFECompositeElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFECompositeElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGFECompositeElementTableValues, 0 }; #else @@ -86,7 +86,7 @@ static const HashTableValue JSSVGFECompositeElementConstructorTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFECompositeElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFECompositeElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGFECompositeElementConstructorTableValues, 0 }; #else @@ -132,7 +132,7 @@ static const HashTableValue JSSVGFECompositeElementPrototypeTableValues[9] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFECompositeElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFECompositeElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSSVGFECompositeElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFEDiffuseLightingElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFEDiffuseLightingElement.cpp index 4549381..0fffc6e 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFEDiffuseLightingElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFEDiffuseLightingElement.cpp @@ -61,7 +61,7 @@ static const HashTableValue JSSVGFEDiffuseLightingElementTableValues[13] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEDiffuseLightingElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEDiffuseLightingElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGFEDiffuseLightingElementTableValues, 0 }; #else @@ -76,7 +76,7 @@ static const HashTableValue JSSVGFEDiffuseLightingElementPrototypeTableValues[2] { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEDiffuseLightingElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEDiffuseLightingElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFEDiffuseLightingElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFEDisplacementMapElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFEDisplacementMapElement.cpp index dca7363..0e8e342 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFEDisplacementMapElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFEDisplacementMapElement.cpp @@ -63,7 +63,7 @@ static const HashTableValue JSSVGFEDisplacementMapElementTableValues[14] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEDisplacementMapElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEDisplacementMapElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGFEDisplacementMapElementTableValues, 0 }; #else @@ -82,7 +82,7 @@ static const HashTableValue JSSVGFEDisplacementMapElementConstructorTableValues[ { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEDisplacementMapElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEDisplacementMapElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGFEDisplacementMapElementConstructorTableValues, 0 }; #else @@ -126,7 +126,7 @@ static const HashTableValue JSSVGFEDisplacementMapElementPrototypeTableValues[7] { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEDisplacementMapElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEDisplacementMapElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGFEDisplacementMapElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFEDistantLightElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFEDistantLightElement.cpp index 55abac8..63ece0d 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFEDistantLightElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFEDistantLightElement.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSSVGFEDistantLightElementTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEDistantLightElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEDistantLightElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGFEDistantLightElementTableValues, 0 }; #else @@ -57,7 +57,7 @@ static const HashTableValue JSSVGFEDistantLightElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEDistantLightElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEDistantLightElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFEDistantLightElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFEFloodElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFEFloodElement.cpp index 1b7cab5..f80ec71 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFEFloodElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFEFloodElement.cpp @@ -57,7 +57,7 @@ static const HashTableValue JSSVGFEFloodElementTableValues[10] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEFloodElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEFloodElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGFEFloodElementTableValues, 0 }; #else @@ -71,7 +71,7 @@ static const HashTableValue JSSVGFEFloodElementConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEFloodElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEFloodElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFEFloodElementConstructorTableValues, 0 }; #else @@ -110,7 +110,7 @@ static const HashTableValue JSSVGFEFloodElementPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEFloodElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEFloodElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFEFloodElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncAElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncAElement.cpp index 90dbf26..a51799b 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncAElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncAElement.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSSVGFEFuncAElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEFuncAElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEFuncAElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFEFuncAElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncBElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncBElement.cpp index a2c895b..710a37b 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncBElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncBElement.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSSVGFEFuncBElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEFuncBElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEFuncBElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFEFuncBElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncGElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncGElement.cpp index acebd39..82aa829 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncGElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncGElement.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSSVGFEFuncGElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEFuncGElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEFuncGElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFEFuncGElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncRElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncRElement.cpp index c6fad7b..26b8c93 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncRElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncRElement.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSSVGFEFuncRElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEFuncRElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEFuncRElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFEFuncRElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFEGaussianBlurElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFEGaussianBlurElement.cpp index 281c9be..f36edd6 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFEGaussianBlurElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFEGaussianBlurElement.cpp @@ -59,7 +59,7 @@ static const HashTableValue JSSVGFEGaussianBlurElementTableValues[11] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEGaussianBlurElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEGaussianBlurElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGFEGaussianBlurElementTableValues, 0 }; #else @@ -75,7 +75,7 @@ static const HashTableValue JSSVGFEGaussianBlurElementPrototypeTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEGaussianBlurElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEGaussianBlurElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGFEGaussianBlurElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFEImageElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFEImageElement.cpp index 08ea33e..d3f76f9 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFEImageElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFEImageElement.cpp @@ -62,7 +62,7 @@ static const HashTableValue JSSVGFEImageElementTableValues[12] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEImageElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEImageElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGFEImageElementTableValues, 0 }; #else @@ -77,7 +77,7 @@ static const HashTableValue JSSVGFEImageElementPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEImageElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEImageElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFEImageElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFEMergeElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFEMergeElement.cpp index 7262013..4b18c0a 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFEMergeElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFEMergeElement.cpp @@ -55,7 +55,7 @@ static const HashTableValue JSSVGFEMergeElementTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEMergeElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEMergeElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGFEMergeElementTableValues, 0 }; #else @@ -70,7 +70,7 @@ static const HashTableValue JSSVGFEMergeElementPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEMergeElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEMergeElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFEMergeElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFEMergeNodeElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFEMergeNodeElement.cpp index 32fc5c7..3ea7b74 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFEMergeNodeElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFEMergeNodeElement.cpp @@ -42,7 +42,7 @@ static const HashTableValue JSSVGFEMergeNodeElementTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEMergeNodeElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEMergeNodeElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFEMergeNodeElementTableValues, 0 }; #else @@ -56,7 +56,7 @@ static const HashTableValue JSSVGFEMergeNodeElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEMergeNodeElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEMergeNodeElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFEMergeNodeElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFEOffsetElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFEOffsetElement.cpp index 3b36b96..4ea1f85 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFEOffsetElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFEOffsetElement.cpp @@ -59,7 +59,7 @@ static const HashTableValue JSSVGFEOffsetElementTableValues[11] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEOffsetElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEOffsetElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGFEOffsetElementTableValues, 0 }; #else @@ -74,7 +74,7 @@ static const HashTableValue JSSVGFEOffsetElementPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEOffsetElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEOffsetElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFEOffsetElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFEPointLightElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFEPointLightElement.cpp index 5004762..6ca91ec 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFEPointLightElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFEPointLightElement.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSSVGFEPointLightElementTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEPointLightElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEPointLightElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSSVGFEPointLightElementTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSSVGFEPointLightElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFEPointLightElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFEPointLightElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFEPointLightElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFESpecularLightingElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFESpecularLightingElement.cpp index 7521e62..4f8ac6c 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFESpecularLightingElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFESpecularLightingElement.cpp @@ -60,7 +60,7 @@ static const HashTableValue JSSVGFESpecularLightingElementTableValues[12] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFESpecularLightingElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFESpecularLightingElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 1023, JSSVGFESpecularLightingElementTableValues, 0 }; #else @@ -75,7 +75,7 @@ static const HashTableValue JSSVGFESpecularLightingElementPrototypeTableValues[2 { 0, 0, 0, 0 } }; -static const HashTable JSSVGFESpecularLightingElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFESpecularLightingElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFESpecularLightingElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFESpotLightElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFESpotLightElement.cpp index de15407..b5ae3d1 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFESpotLightElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFESpotLightElement.cpp @@ -49,7 +49,7 @@ static const HashTableValue JSSVGFESpotLightElementTableValues[9] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFESpotLightElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFESpotLightElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGFESpotLightElementTableValues, 0 }; #else @@ -63,7 +63,7 @@ static const HashTableValue JSSVGFESpotLightElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFESpotLightElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFESpotLightElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFESpotLightElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFETileElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFETileElement.cpp index 66b19e8..bc0e33c 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFETileElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFETileElement.cpp @@ -56,7 +56,7 @@ static const HashTableValue JSSVGFETileElementTableValues[9] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFETileElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFETileElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGFETileElementTableValues, 0 }; #else @@ -71,7 +71,7 @@ static const HashTableValue JSSVGFETileElementPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFETileElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFETileElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFETileElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFETurbulenceElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFETurbulenceElement.cpp index 50369f1..c0e4fac 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFETurbulenceElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFETurbulenceElement.cpp @@ -65,7 +65,7 @@ static const HashTableValue JSSVGFETurbulenceElementTableValues[15] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFETurbulenceElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFETurbulenceElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGFETurbulenceElementTableValues, 0 }; #else @@ -85,7 +85,7 @@ static const HashTableValue JSSVGFETurbulenceElementConstructorTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFETurbulenceElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFETurbulenceElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSSVGFETurbulenceElementConstructorTableValues, 0 }; #else @@ -130,7 +130,7 @@ static const HashTableValue JSSVGFETurbulenceElementPrototypeTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFETurbulenceElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFETurbulenceElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSSVGFETurbulenceElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFilterElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFilterElement.cpp index 9a63655..6ba6d1b 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFilterElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFilterElement.cpp @@ -67,7 +67,7 @@ static const HashTableValue JSSVGFilterElementTableValues[15] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFilterElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFilterElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 511, JSSVGFilterElementTableValues, 0 }; #else @@ -83,7 +83,7 @@ static const HashTableValue JSSVGFilterElementPrototypeTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFilterElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFilterElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGFilterElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFontElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFontElement.cpp index d66d6b6..755c2c0 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFontElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFontElement.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSSVGFontElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFontElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFontElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFontElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceElement.cpp index 55633bb..cddf759 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceElement.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSSVGFontFaceElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFontFaceElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFontFaceElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFontFaceElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceFormatElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceFormatElement.cpp index 50708c2..bc0d0ae 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceFormatElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceFormatElement.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSSVGFontFaceFormatElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFontFaceFormatElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFontFaceFormatElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFontFaceFormatElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceNameElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceNameElement.cpp index 2f12035..87c749a 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceNameElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceNameElement.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSSVGFontFaceNameElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFontFaceNameElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFontFaceNameElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFontFaceNameElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceSrcElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceSrcElement.cpp index 82c6137..302e4be 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceSrcElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceSrcElement.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSSVGFontFaceSrcElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFontFaceSrcElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFontFaceSrcElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFontFaceSrcElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceUriElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceUriElement.cpp index 32208d8..16507ff 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceUriElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceUriElement.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSSVGFontFaceUriElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGFontFaceUriElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGFontFaceUriElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGFontFaceUriElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGForeignObjectElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGForeignObjectElement.cpp index 7bba5bb..8bac171 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGForeignObjectElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGForeignObjectElement.cpp @@ -73,7 +73,7 @@ static const HashTableValue JSSVGForeignObjectElementTableValues[16] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGForeignObjectElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGForeignObjectElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 1023, JSSVGForeignObjectElementTableValues, 0 }; #else @@ -93,7 +93,7 @@ static const HashTableValue JSSVGForeignObjectElementPrototypeTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGForeignObjectElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGForeignObjectElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSSVGForeignObjectElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGGElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGGElement.cpp index 75a61b6..1ea98b2 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGGElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGGElement.cpp @@ -68,7 +68,7 @@ static const HashTableValue JSSVGGElementTableValues[12] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGGElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGGElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSSVGGElementTableValues, 0 }; #else @@ -88,7 +88,7 @@ static const HashTableValue JSSVGGElementPrototypeTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGGElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGGElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSSVGGElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGGlyphElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGGlyphElement.cpp index 684831f..6cd2211 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGGlyphElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGGlyphElement.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSSVGGlyphElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGGlyphElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGGlyphElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGGlyphElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGGradientElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGGradientElement.cpp index 1dc75b0..bcadbfc 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGGradientElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGGradientElement.cpp @@ -58,7 +58,7 @@ static const HashTableValue JSSVGGradientElementTableValues[9] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGGradientElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGGradientElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGGradientElementTableValues, 0 }; #else @@ -76,7 +76,7 @@ static const HashTableValue JSSVGGradientElementConstructorTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGGradientElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGGradientElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSSVGGradientElementConstructorTableValues, 0 }; #else @@ -119,7 +119,7 @@ static const HashTableValue JSSVGGradientElementPrototypeTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGGradientElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGGradientElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSSVGGradientElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGHKernElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGHKernElement.cpp index 87c1fe8..d636a27 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGHKernElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGHKernElement.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSSVGHKernElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGHKernElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGHKernElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGHKernElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGImageElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGImageElement.cpp index 4f6f84f..8aaa237 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGImageElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGImageElement.cpp @@ -76,7 +76,7 @@ static const HashTableValue JSSVGImageElementTableValues[18] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGImageElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGImageElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 1023, JSSVGImageElementTableValues, 0 }; #else @@ -96,7 +96,7 @@ static const HashTableValue JSSVGImageElementPrototypeTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGImageElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGImageElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSSVGImageElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGLength.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGLength.cpp index 7e86524..7a4d143 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGLength.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGLength.cpp @@ -49,7 +49,7 @@ static const HashTableValue JSSVGLengthTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGLengthTable = +static JSC_CONST_HASHTABLE HashTable JSSVGLengthTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGLengthTableValues, 0 }; #else @@ -74,7 +74,7 @@ static const HashTableValue JSSVGLengthConstructorTableValues[12] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGLengthConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGLengthConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 511, JSSVGLengthConstructorTableValues, 0 }; #else @@ -125,7 +125,7 @@ static const HashTableValue JSSVGLengthPrototypeTableValues[14] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGLengthPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGLengthPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 511, JSSVGLengthPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGLengthList.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGLengthList.cpp index 9283d38..86b9320 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGLengthList.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGLengthList.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSSVGLengthListTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGLengthListTable = +static JSC_CONST_HASHTABLE HashTable JSSVGLengthListTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGLengthListTableValues, 0 }; #else @@ -66,7 +66,7 @@ static const HashTableValue JSSVGLengthListPrototypeTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGLengthListPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGLengthListPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSSVGLengthListPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGLineElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGLineElement.cpp index 62e72c5..9e7057b 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGLineElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGLineElement.cpp @@ -73,7 +73,7 @@ static const HashTableValue JSSVGLineElementTableValues[16] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGLineElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGLineElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 1023, JSSVGLineElementTableValues, 0 }; #else @@ -93,7 +93,7 @@ static const HashTableValue JSSVGLineElementPrototypeTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGLineElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGLineElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSSVGLineElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGLinearGradientElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGLinearGradientElement.cpp index 4e0c48a..56ec26c 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGLinearGradientElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGLinearGradientElement.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSSVGLinearGradientElementTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGLinearGradientElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGLinearGradientElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSSVGLinearGradientElementTableValues, 0 }; #else @@ -59,7 +59,7 @@ static const HashTableValue JSSVGLinearGradientElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGLinearGradientElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGLinearGradientElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGLinearGradientElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGMarkerElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGMarkerElement.cpp index afaf538..d1b0cd6 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGMarkerElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGMarkerElement.cpp @@ -71,7 +71,7 @@ static const HashTableValue JSSVGMarkerElementTableValues[16] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGMarkerElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGMarkerElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSSVGMarkerElementTableValues, 0 }; #else @@ -91,7 +91,7 @@ static const HashTableValue JSSVGMarkerElementConstructorTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGMarkerElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGMarkerElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGMarkerElementConstructorTableValues, 0 }; #else @@ -138,7 +138,7 @@ static const HashTableValue JSSVGMarkerElementPrototypeTableValues[10] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGMarkerElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGMarkerElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSSVGMarkerElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGMaskElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGMaskElement.cpp index d6e2a33..c266956 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGMaskElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGMaskElement.cpp @@ -68,7 +68,7 @@ static const HashTableValue JSSVGMaskElementTableValues[15] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGMaskElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGMaskElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGMaskElementTableValues, 0 }; #else @@ -84,7 +84,7 @@ static const HashTableValue JSSVGMaskElementPrototypeTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGMaskElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGMaskElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGMaskElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGMatrix.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGMatrix.cpp index 761f128..e668ab2 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGMatrix.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGMatrix.cpp @@ -48,7 +48,7 @@ static const HashTableValue JSSVGMatrixTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGMatrixTable = +static JSC_CONST_HASHTABLE HashTable JSSVGMatrixTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGMatrixTableValues, 0 }; #else @@ -73,7 +73,7 @@ static const HashTableValue JSSVGMatrixPrototypeTableValues[12] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGMatrixPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGMatrixPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSSVGMatrixPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGMetadataElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGMetadataElement.cpp index a150bd3..500bb33 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGMetadataElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGMetadataElement.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSSVGMetadataElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGMetadataElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGMetadataElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGMetadataElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGMissingGlyphElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGMissingGlyphElement.cpp index f5eaa01..b6efc8c 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGMissingGlyphElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGMissingGlyphElement.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSSVGMissingGlyphElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGMissingGlyphElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGMissingGlyphElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGMissingGlyphElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGNumber.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGNumber.cpp index 9e3dede..491e6bf 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGNumber.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGNumber.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSSVGNumberTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGNumberTable = +static JSC_CONST_HASHTABLE HashTable JSSVGNumberTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGNumberTableValues, 0 }; #else @@ -55,7 +55,7 @@ static const HashTableValue JSSVGNumberPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGNumberPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGNumberPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGNumberPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGNumberList.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGNumberList.cpp index 28fd4bc..1558247 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGNumberList.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGNumberList.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSSVGNumberListTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGNumberListTable = +static JSC_CONST_HASHTABLE HashTable JSSVGNumberListTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGNumberListTableValues, 0 }; #else @@ -65,7 +65,7 @@ static const HashTableValue JSSVGNumberListPrototypeTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGNumberListPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGNumberListPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSSVGNumberListPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPaint.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPaint.cpp index 8bfddc2..f3e7b6f 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPaint.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPaint.cpp @@ -47,7 +47,7 @@ static const HashTableValue JSSVGPaintTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPaintTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPaintTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSSVGPaintTableValues, 0 }; #else @@ -71,7 +71,7 @@ static const HashTableValue JSSVGPaintConstructorTableValues[11] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPaintConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPaintConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 4095, JSSVGPaintConstructorTableValues, 0 }; #else @@ -121,7 +121,7 @@ static const HashTableValue JSSVGPaintPrototypeTableValues[13] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPaintPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPaintPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 4095, JSSVGPaintPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathElement.cpp index 0855624..8da1204 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathElement.cpp @@ -107,7 +107,7 @@ static const HashTableValue JSSVGPathElementTableValues[17] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGPathElementTableValues, 0 }; #else @@ -149,7 +149,7 @@ static const HashTableValue JSSVGPathElementPrototypeTableValues[29] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSSVGPathElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSeg.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSeg.cpp index 99c580b..b19e3a0 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSeg.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSeg.cpp @@ -46,7 +46,7 @@ static const HashTableValue JSSVGPathSegTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSSVGPathSegTableValues, 0 }; #else @@ -80,7 +80,7 @@ static const HashTableValue JSSVGPathSegConstructorTableValues[21] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSSVGPathSegConstructorTableValues, 0 }; #else @@ -138,7 +138,7 @@ static const HashTableValue JSSVGPathSegPrototypeTableValues[21] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSSVGPathSegPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegArcAbs.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegArcAbs.cpp index f754bf0..d8f37b2 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegArcAbs.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegArcAbs.cpp @@ -48,7 +48,7 @@ static const HashTableValue JSSVGPathSegArcAbsTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegArcAbsTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegArcAbsTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGPathSegArcAbsTableValues, 0 }; #else @@ -62,7 +62,7 @@ static const HashTableValue JSSVGPathSegArcAbsPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegArcAbsPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegArcAbsPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegArcAbsPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegArcRel.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegArcRel.cpp index 70a23c5..0f59520 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegArcRel.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegArcRel.cpp @@ -48,7 +48,7 @@ static const HashTableValue JSSVGPathSegArcRelTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegArcRelTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegArcRelTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGPathSegArcRelTableValues, 0 }; #else @@ -62,7 +62,7 @@ static const HashTableValue JSSVGPathSegArcRelPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegArcRelPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegArcRelPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegArcRelPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegClosePath.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegClosePath.cpp index 1270ef2..1519f2a 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegClosePath.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegClosePath.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSSVGPathSegClosePathPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegClosePathPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegClosePathPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegClosePathPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicAbs.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicAbs.cpp index a33c4bc..c862653 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicAbs.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicAbs.cpp @@ -47,7 +47,7 @@ static const HashTableValue JSSVGPathSegCurvetoCubicAbsTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegCurvetoCubicAbsTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegCurvetoCubicAbsTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSSVGPathSegCurvetoCubicAbsTableValues, 0 }; #else @@ -61,7 +61,7 @@ static const HashTableValue JSSVGPathSegCurvetoCubicAbsPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegCurvetoCubicAbsPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegCurvetoCubicAbsPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegCurvetoCubicAbsPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicRel.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicRel.cpp index f6c6ad4..84c349c 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicRel.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicRel.cpp @@ -47,7 +47,7 @@ static const HashTableValue JSSVGPathSegCurvetoCubicRelTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegCurvetoCubicRelTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegCurvetoCubicRelTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSSVGPathSegCurvetoCubicRelTableValues, 0 }; #else @@ -61,7 +61,7 @@ static const HashTableValue JSSVGPathSegCurvetoCubicRelPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegCurvetoCubicRelPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegCurvetoCubicRelPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegCurvetoCubicRelPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicSmoothAbs.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicSmoothAbs.cpp index 22f8de9..f5716b0 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicSmoothAbs.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicSmoothAbs.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSSVGPathSegCurvetoCubicSmoothAbsTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegCurvetoCubicSmoothAbsTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegCurvetoCubicSmoothAbsTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSSVGPathSegCurvetoCubicSmoothAbsTableValues, 0 }; #else @@ -59,7 +59,7 @@ static const HashTableValue JSSVGPathSegCurvetoCubicSmoothAbsPrototypeTableValue { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegCurvetoCubicSmoothAbsPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegCurvetoCubicSmoothAbsPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegCurvetoCubicSmoothAbsPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicSmoothRel.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicSmoothRel.cpp index 8608b28..c5c05d7 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicSmoothRel.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicSmoothRel.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSSVGPathSegCurvetoCubicSmoothRelTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegCurvetoCubicSmoothRelTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegCurvetoCubicSmoothRelTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSSVGPathSegCurvetoCubicSmoothRelTableValues, 0 }; #else @@ -59,7 +59,7 @@ static const HashTableValue JSSVGPathSegCurvetoCubicSmoothRelPrototypeTableValue { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegCurvetoCubicSmoothRelPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegCurvetoCubicSmoothRelPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegCurvetoCubicSmoothRelPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticAbs.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticAbs.cpp index 5897807..4170299 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticAbs.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticAbs.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSSVGPathSegCurvetoQuadraticAbsTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegCurvetoQuadraticAbsTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegCurvetoQuadraticAbsTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSSVGPathSegCurvetoQuadraticAbsTableValues, 0 }; #else @@ -59,7 +59,7 @@ static const HashTableValue JSSVGPathSegCurvetoQuadraticAbsPrototypeTableValues[ { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegCurvetoQuadraticAbsPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegCurvetoQuadraticAbsPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegCurvetoQuadraticAbsPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticRel.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticRel.cpp index 19f9b60..4f50522 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticRel.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticRel.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSSVGPathSegCurvetoQuadraticRelTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegCurvetoQuadraticRelTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegCurvetoQuadraticRelTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSSVGPathSegCurvetoQuadraticRelTableValues, 0 }; #else @@ -59,7 +59,7 @@ static const HashTableValue JSSVGPathSegCurvetoQuadraticRelPrototypeTableValues[ { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegCurvetoQuadraticRelPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegCurvetoQuadraticRelPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegCurvetoQuadraticRelPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticSmoothAbs.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticSmoothAbs.cpp index 3fefc7e..0ebe08a 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticSmoothAbs.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticSmoothAbs.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSSVGPathSegCurvetoQuadraticSmoothAbsTableValues[3] { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegCurvetoQuadraticSmoothAbsTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegCurvetoQuadraticSmoothAbsTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGPathSegCurvetoQuadraticSmoothAbsTableValues, 0 }; #else @@ -57,7 +57,7 @@ static const HashTableValue JSSVGPathSegCurvetoQuadraticSmoothAbsPrototypeTableV { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegCurvetoQuadraticSmoothAbsPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegCurvetoQuadraticSmoothAbsPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegCurvetoQuadraticSmoothAbsPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticSmoothRel.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticSmoothRel.cpp index e16e6b5..69382f9 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticSmoothRel.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticSmoothRel.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSSVGPathSegCurvetoQuadraticSmoothRelTableValues[3] { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegCurvetoQuadraticSmoothRelTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegCurvetoQuadraticSmoothRelTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGPathSegCurvetoQuadraticSmoothRelTableValues, 0 }; #else @@ -57,7 +57,7 @@ static const HashTableValue JSSVGPathSegCurvetoQuadraticSmoothRelPrototypeTableV { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegCurvetoQuadraticSmoothRelPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegCurvetoQuadraticSmoothRelPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegCurvetoQuadraticSmoothRelPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoAbs.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoAbs.cpp index 8676d4b..bd7a491 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoAbs.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoAbs.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSSVGPathSegLinetoAbsTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegLinetoAbsTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegLinetoAbsTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGPathSegLinetoAbsTableValues, 0 }; #else @@ -57,7 +57,7 @@ static const HashTableValue JSSVGPathSegLinetoAbsPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegLinetoAbsPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegLinetoAbsPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegLinetoAbsPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoHorizontalAbs.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoHorizontalAbs.cpp index 0289a9a..d5b7b4f 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoHorizontalAbs.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoHorizontalAbs.cpp @@ -42,7 +42,7 @@ static const HashTableValue JSSVGPathSegLinetoHorizontalAbsTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegLinetoHorizontalAbsTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegLinetoHorizontalAbsTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegLinetoHorizontalAbsTableValues, 0 }; #else @@ -56,7 +56,7 @@ static const HashTableValue JSSVGPathSegLinetoHorizontalAbsPrototypeTableValues[ { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegLinetoHorizontalAbsPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegLinetoHorizontalAbsPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegLinetoHorizontalAbsPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoHorizontalRel.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoHorizontalRel.cpp index cd0755a..2549caf 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoHorizontalRel.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoHorizontalRel.cpp @@ -42,7 +42,7 @@ static const HashTableValue JSSVGPathSegLinetoHorizontalRelTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegLinetoHorizontalRelTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegLinetoHorizontalRelTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegLinetoHorizontalRelTableValues, 0 }; #else @@ -56,7 +56,7 @@ static const HashTableValue JSSVGPathSegLinetoHorizontalRelPrototypeTableValues[ { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegLinetoHorizontalRelPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegLinetoHorizontalRelPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegLinetoHorizontalRelPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoRel.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoRel.cpp index 250196a..117083b 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoRel.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoRel.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSSVGPathSegLinetoRelTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegLinetoRelTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegLinetoRelTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGPathSegLinetoRelTableValues, 0 }; #else @@ -57,7 +57,7 @@ static const HashTableValue JSSVGPathSegLinetoRelPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegLinetoRelPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegLinetoRelPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegLinetoRelPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoVerticalAbs.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoVerticalAbs.cpp index 82f7ff8..dea3f90 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoVerticalAbs.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoVerticalAbs.cpp @@ -42,7 +42,7 @@ static const HashTableValue JSSVGPathSegLinetoVerticalAbsTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegLinetoVerticalAbsTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegLinetoVerticalAbsTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegLinetoVerticalAbsTableValues, 0 }; #else @@ -56,7 +56,7 @@ static const HashTableValue JSSVGPathSegLinetoVerticalAbsPrototypeTableValues[1] { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegLinetoVerticalAbsPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegLinetoVerticalAbsPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegLinetoVerticalAbsPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoVerticalRel.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoVerticalRel.cpp index e07cdd2..e1ff669 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoVerticalRel.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoVerticalRel.cpp @@ -42,7 +42,7 @@ static const HashTableValue JSSVGPathSegLinetoVerticalRelTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegLinetoVerticalRelTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegLinetoVerticalRelTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegLinetoVerticalRelTableValues, 0 }; #else @@ -56,7 +56,7 @@ static const HashTableValue JSSVGPathSegLinetoVerticalRelPrototypeTableValues[1] { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegLinetoVerticalRelPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegLinetoVerticalRelPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegLinetoVerticalRelPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegList.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegList.cpp index 9a76052..8cfdc3c 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegList.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegList.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSSVGPathSegListTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegListTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegListTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegListTableValues, 0 }; #else @@ -65,7 +65,7 @@ static const HashTableValue JSSVGPathSegListPrototypeTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegListPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegListPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSSVGPathSegListPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegMovetoAbs.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegMovetoAbs.cpp index 3f23fb6..88ef122 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegMovetoAbs.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegMovetoAbs.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSSVGPathSegMovetoAbsTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegMovetoAbsTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegMovetoAbsTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGPathSegMovetoAbsTableValues, 0 }; #else @@ -57,7 +57,7 @@ static const HashTableValue JSSVGPathSegMovetoAbsPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegMovetoAbsPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegMovetoAbsPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegMovetoAbsPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegMovetoRel.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegMovetoRel.cpp index 51a946d..1f572b2 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegMovetoRel.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPathSegMovetoRel.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSSVGPathSegMovetoRelTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegMovetoRelTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegMovetoRelTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGPathSegMovetoRelTableValues, 0 }; #else @@ -57,7 +57,7 @@ static const HashTableValue JSSVGPathSegMovetoRelPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPathSegMovetoRelPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPathSegMovetoRelPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPathSegMovetoRelPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPatternElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPatternElement.cpp index a01e6f2..4616edc 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPatternElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPatternElement.cpp @@ -75,7 +75,7 @@ static const HashTableValue JSSVGPatternElementTableValues[19] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPatternElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPatternElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGPatternElementTableValues, 0 }; #else @@ -91,7 +91,7 @@ static const HashTableValue JSSVGPatternElementPrototypeTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPatternElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPatternElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGPatternElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPoint.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPoint.cpp index ea8bc94..d0050bf 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPoint.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPoint.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSSVGPointTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPointTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPointTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSSVGPointTableValues, 0 }; #else @@ -60,7 +60,7 @@ static const HashTableValue JSSVGPointPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPointPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPointPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPointPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPointList.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPointList.cpp index 74c85a6..5c911bd 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPointList.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPointList.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSSVGPointListTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPointListTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPointListTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGPointListTableValues, 0 }; #else @@ -64,7 +64,7 @@ static const HashTableValue JSSVGPointListPrototypeTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPointListPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPointListPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSSVGPointListPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPolygonElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPolygonElement.cpp index 33a19b4..aba8123 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPolygonElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPolygonElement.cpp @@ -72,7 +72,7 @@ static const HashTableValue JSSVGPolygonElementTableValues[14] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPolygonElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPolygonElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSSVGPolygonElementTableValues, 0 }; #else @@ -92,7 +92,7 @@ static const HashTableValue JSSVGPolygonElementPrototypeTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPolygonElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPolygonElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSSVGPolygonElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPolylineElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPolylineElement.cpp index a04f5fa..8a967cd 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPolylineElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPolylineElement.cpp @@ -72,7 +72,7 @@ static const HashTableValue JSSVGPolylineElementTableValues[14] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPolylineElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPolylineElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSSVGPolylineElementTableValues, 0 }; #else @@ -92,7 +92,7 @@ static const HashTableValue JSSVGPolylineElementPrototypeTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPolylineElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPolylineElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSSVGPolylineElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGPreserveAspectRatio.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGPreserveAspectRatio.cpp index b586e60..85e123c 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGPreserveAspectRatio.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGPreserveAspectRatio.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSSVGPreserveAspectRatioTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPreserveAspectRatioTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPreserveAspectRatioTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSSVGPreserveAspectRatioTableValues, 0 }; #else @@ -72,7 +72,7 @@ static const HashTableValue JSSVGPreserveAspectRatioConstructorTableValues[15] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPreserveAspectRatioConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPreserveAspectRatioConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSSVGPreserveAspectRatioConstructorTableValues, 0 }; #else @@ -124,7 +124,7 @@ static const HashTableValue JSSVGPreserveAspectRatioPrototypeTableValues[15] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGPreserveAspectRatioPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGPreserveAspectRatioPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSSVGPreserveAspectRatioPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGRadialGradientElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGRadialGradientElement.cpp index b888704..ae2d18e 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGRadialGradientElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGRadialGradientElement.cpp @@ -46,7 +46,7 @@ static const HashTableValue JSSVGRadialGradientElementTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGRadialGradientElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGRadialGradientElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSSVGRadialGradientElementTableValues, 0 }; #else @@ -60,7 +60,7 @@ static const HashTableValue JSSVGRadialGradientElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGRadialGradientElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGRadialGradientElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGRadialGradientElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGRect.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGRect.cpp index 8e857f2..59e4127 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGRect.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGRect.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSSVGRectTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGRectTable = +static JSC_CONST_HASHTABLE HashTable JSSVGRectTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGRectTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSSVGRectPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGRectPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGRectPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGRectPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGRectElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGRectElement.cpp index 2f97100..423808c 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGRectElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGRectElement.cpp @@ -75,7 +75,7 @@ static const HashTableValue JSSVGRectElementTableValues[18] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGRectElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGRectElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 8191, JSSVGRectElementTableValues, 0 }; #else @@ -95,7 +95,7 @@ static const HashTableValue JSSVGRectElementPrototypeTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGRectElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGRectElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSSVGRectElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGRenderingIntent.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGRenderingIntent.cpp index 97df330..938f097 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGRenderingIntent.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGRenderingIntent.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSSVGRenderingIntentTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGRenderingIntentTable = +static JSC_CONST_HASHTABLE HashTable JSSVGRenderingIntentTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGRenderingIntentTableValues, 0 }; #else @@ -61,7 +61,7 @@ static const HashTableValue JSSVGRenderingIntentConstructorTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGRenderingIntentConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGRenderingIntentConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGRenderingIntentConstructorTableValues, 0 }; #else @@ -105,7 +105,7 @@ static const HashTableValue JSSVGRenderingIntentPrototypeTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGRenderingIntentPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGRenderingIntentPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGRenderingIntentPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGSVGElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGSVGElement.cpp index 072c0cf..b610779 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGSVGElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGSVGElement.cpp @@ -99,7 +99,7 @@ static const HashTableValue JSSVGSVGElementTableValues[28] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGSVGElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGSVGElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 1023, JSSVGSVGElementTableValues, 0 }; #else @@ -144,7 +144,7 @@ static const HashTableValue JSSVGSVGElementPrototypeTableValues[32] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGSVGElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGSVGElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSSVGSVGElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGScriptElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGScriptElement.cpp index da7b486..4c8e140 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGScriptElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGScriptElement.cpp @@ -47,7 +47,7 @@ static const HashTableValue JSSVGScriptElementTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGScriptElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGScriptElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSSVGScriptElementTableValues, 0 }; #else @@ -61,7 +61,7 @@ static const HashTableValue JSSVGScriptElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGScriptElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGScriptElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGScriptElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGSetElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGSetElement.cpp index e54b57f..35f8787 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGSetElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGSetElement.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSSVGSetElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGSetElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGSetElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGSetElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGStopElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGStopElement.cpp index 8308fcb..ea8be78 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGStopElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGStopElement.cpp @@ -51,7 +51,7 @@ static const HashTableValue JSSVGStopElementTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGStopElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGStopElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSSVGStopElementTableValues, 0 }; #else @@ -66,7 +66,7 @@ static const HashTableValue JSSVGStopElementPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGStopElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGStopElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGStopElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGStringList.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGStringList.cpp index ee9cf18..1f80627 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGStringList.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGStringList.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSSVGStringListTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGStringListTable = +static JSC_CONST_HASHTABLE HashTable JSSVGStringListTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGStringListTableValues, 0 }; #else @@ -66,7 +66,7 @@ static const HashTableValue JSSVGStringListPrototypeTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGStringListPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGStringListPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSSVGStringListPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGStyleElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGStyleElement.cpp index 6b9f6b7..1d7bd7a 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGStyleElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGStyleElement.cpp @@ -46,7 +46,7 @@ static const HashTableValue JSSVGStyleElementTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGStyleElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGStyleElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSSVGStyleElementTableValues, 0 }; #else @@ -60,7 +60,7 @@ static const HashTableValue JSSVGStyleElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGStyleElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGStyleElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGStyleElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGSwitchElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGSwitchElement.cpp index 563c735..83b2146 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGSwitchElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGSwitchElement.cpp @@ -68,7 +68,7 @@ static const HashTableValue JSSVGSwitchElementTableValues[12] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGSwitchElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGSwitchElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSSVGSwitchElementTableValues, 0 }; #else @@ -88,7 +88,7 @@ static const HashTableValue JSSVGSwitchElementPrototypeTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGSwitchElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGSwitchElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSSVGSwitchElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGSymbolElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGSymbolElement.cpp index 757bfd8f..4a34e05 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGSymbolElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGSymbolElement.cpp @@ -59,7 +59,7 @@ static const HashTableValue JSSVGSymbolElementTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGSymbolElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGSymbolElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGSymbolElementTableValues, 0 }; #else @@ -74,7 +74,7 @@ static const HashTableValue JSSVGSymbolElementPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGSymbolElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGSymbolElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGSymbolElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGTRefElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGTRefElement.cpp index 7abab12..8ee0f5f 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGTRefElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGTRefElement.cpp @@ -42,7 +42,7 @@ static const HashTableValue JSSVGTRefElementTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGTRefElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGTRefElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGTRefElementTableValues, 0 }; #else @@ -56,7 +56,7 @@ static const HashTableValue JSSVGTRefElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGTRefElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGTRefElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGTRefElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGTSpanElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGTSpanElement.cpp index acfbd95..5203dfb 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGTSpanElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGTSpanElement.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSSVGTSpanElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGTSpanElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGTSpanElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGTSpanElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGTextContentElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGTextContentElement.cpp index 16afd09..4208aa3 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGTextContentElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGTextContentElement.cpp @@ -70,7 +70,7 @@ static const HashTableValue JSSVGTextContentElementTableValues[12] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGTextContentElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGTextContentElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSSVGTextContentElementTableValues, 0 }; #else @@ -87,7 +87,7 @@ static const HashTableValue JSSVGTextContentElementConstructorTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGTextContentElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGTextContentElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSSVGTextContentElementConstructorTableValues, 0 }; #else @@ -139,7 +139,7 @@ static const HashTableValue JSSVGTextContentElementPrototypeTableValues[15] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGTextContentElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGTextContentElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSSVGTextContentElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGTextElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGTextElement.cpp index 9ebc992..270113b 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGTextElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGTextElement.cpp @@ -49,7 +49,7 @@ static const HashTableValue JSSVGTextElementTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGTextElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGTextElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSSVGTextElementTableValues, 0 }; #else @@ -67,7 +67,7 @@ static const HashTableValue JSSVGTextElementPrototypeTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGTextElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGTextElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSSVGTextElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGTextPathElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGTextPathElement.cpp index ff320ca..68bcbf8 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGTextPathElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGTextPathElement.cpp @@ -48,7 +48,7 @@ static const HashTableValue JSSVGTextPathElementTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGTextPathElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGTextPathElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGTextPathElementTableValues, 0 }; #else @@ -68,7 +68,7 @@ static const HashTableValue JSSVGTextPathElementConstructorTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGTextPathElementConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGTextPathElementConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSSVGTextPathElementConstructorTableValues, 0 }; #else @@ -112,7 +112,7 @@ static const HashTableValue JSSVGTextPathElementPrototypeTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGTextPathElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGTextPathElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSSVGTextPathElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGTextPositioningElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGTextPositioningElement.cpp index 373d0c3..24bc336 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGTextPositioningElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGTextPositioningElement.cpp @@ -47,7 +47,7 @@ static const HashTableValue JSSVGTextPositioningElementTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGTextPositioningElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGTextPositioningElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGTextPositioningElementTableValues, 0 }; #else @@ -61,7 +61,7 @@ static const HashTableValue JSSVGTextPositioningElementPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGTextPositioningElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGTextPositioningElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGTextPositioningElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGTitleElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGTitleElement.cpp index 479cbcc..962a9f5 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGTitleElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGTitleElement.cpp @@ -53,7 +53,7 @@ static const HashTableValue JSSVGTitleElementTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGTitleElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGTitleElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGTitleElementTableValues, 0 }; #else @@ -68,7 +68,7 @@ static const HashTableValue JSSVGTitleElementPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGTitleElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGTitleElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGTitleElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGTransform.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGTransform.cpp index cb98e9f..8f0aeb0 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGTransform.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGTransform.cpp @@ -47,7 +47,7 @@ static const HashTableValue JSSVGTransformTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGTransformTable = +static JSC_CONST_HASHTABLE HashTable JSSVGTransformTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSSVGTransformTableValues, 0 }; #else @@ -68,7 +68,7 @@ static const HashTableValue JSSVGTransformConstructorTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGTransformConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGTransformConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSSVGTransformConstructorTableValues, 0 }; #else @@ -119,7 +119,7 @@ static const HashTableValue JSSVGTransformPrototypeTableValues[14] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGTransformPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGTransformPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSSVGTransformPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGTransformList.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGTransformList.cpp index 3232123..855efe0 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGTransformList.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGTransformList.cpp @@ -46,7 +46,7 @@ static const HashTableValue JSSVGTransformListTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGTransformListTable = +static JSC_CONST_HASHTABLE HashTable JSSVGTransformListTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGTransformListTableValues, 0 }; #else @@ -69,7 +69,7 @@ static const HashTableValue JSSVGTransformListPrototypeTableValues[10] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGTransformListPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGTransformListPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSSVGTransformListPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGUnitTypes.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGUnitTypes.cpp index 5477773..569a35a 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGUnitTypes.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGUnitTypes.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSSVGUnitTypesTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGUnitTypesTable = +static JSC_CONST_HASHTABLE HashTable JSSVGUnitTypesTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGUnitTypesTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSSVGUnitTypesConstructorTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGUnitTypesConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSSVGUnitTypesConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSSVGUnitTypesConstructorTableValues, 0 }; #else @@ -99,7 +99,7 @@ static const HashTableValue JSSVGUnitTypesPrototypeTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGUnitTypesPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGUnitTypesPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSSVGUnitTypesPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGUseElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGUseElement.cpp index d05bc22..f309e6d 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGUseElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGUseElement.cpp @@ -78,7 +78,7 @@ static const HashTableValue JSSVGUseElementTableValues[19] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGUseElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGUseElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 1023, JSSVGUseElementTableValues, 0 }; #else @@ -98,7 +98,7 @@ static const HashTableValue JSSVGUseElementPrototypeTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGUseElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGUseElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 2047, JSSVGUseElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGViewElement.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGViewElement.cpp index 115ed1e..16b1ffb 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGViewElement.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGViewElement.cpp @@ -51,7 +51,7 @@ static const HashTableValue JSSVGViewElementTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGViewElementTable = +static JSC_CONST_HASHTABLE HashTable JSSVGViewElementTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSSVGViewElementTableValues, 0 }; #else @@ -68,7 +68,7 @@ static const HashTableValue JSSVGViewElementPrototypeTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGViewElementPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGViewElementPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSSVGViewElementPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSSVGZoomEvent.cpp b/src/3rdparty/webkit/WebCore/generated/JSSVGZoomEvent.cpp index 5434095..74cdb26 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSSVGZoomEvent.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSSVGZoomEvent.cpp @@ -48,7 +48,7 @@ static const HashTableValue JSSVGZoomEventTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGZoomEventTable = +static JSC_CONST_HASHTABLE HashTable JSSVGZoomEventTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSSVGZoomEventTableValues, 0 }; #else @@ -62,7 +62,7 @@ static const HashTableValue JSSVGZoomEventPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSSVGZoomEventPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSSVGZoomEventPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSSVGZoomEventPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSScreen.cpp b/src/3rdparty/webkit/WebCore/generated/JSScreen.cpp index b68c308..0da8897 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSScreen.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSScreen.cpp @@ -46,7 +46,7 @@ static const HashTableValue JSScreenTableValues[9] = { 0, 0, 0, 0 } }; -static const HashTable JSScreenTable = +static JSC_CONST_HASHTABLE HashTable JSScreenTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSScreenTableValues, 0 }; #else @@ -60,7 +60,7 @@ static const HashTableValue JSScreenPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSScreenPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSScreenPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSScreenPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSStorage.cpp b/src/3rdparty/webkit/WebCore/generated/JSStorage.cpp index bcdea8b..9f15644 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSStorage.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSStorage.cpp @@ -48,7 +48,7 @@ static const HashTableValue JSStorageTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSStorageTable = +static JSC_CONST_HASHTABLE HashTable JSStorageTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSStorageTableValues, 0 }; #else @@ -62,7 +62,7 @@ static const HashTableValue JSStorageConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSStorageConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSStorageConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSStorageConstructorTableValues, 0 }; #else @@ -105,7 +105,7 @@ static const HashTableValue JSStoragePrototypeTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSStoragePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSStoragePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSStoragePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSStorageEvent.cpp b/src/3rdparty/webkit/WebCore/generated/JSStorageEvent.cpp index 293d0ad..42aac0e 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSStorageEvent.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSStorageEvent.cpp @@ -54,7 +54,7 @@ static const HashTableValue JSStorageEventTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSStorageEventTable = +static JSC_CONST_HASHTABLE HashTable JSStorageEventTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSStorageEventTableValues, 0 }; #else @@ -68,7 +68,7 @@ static const HashTableValue JSStorageEventConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSStorageEventConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSStorageEventConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSStorageEventConstructorTableValues, 0 }; #else @@ -107,7 +107,7 @@ static const HashTableValue JSStorageEventPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSStorageEventPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSStorageEventPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSStorageEventPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSStyleSheet.cpp b/src/3rdparty/webkit/WebCore/generated/JSStyleSheet.cpp index 04c6895..1e75a0d 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSStyleSheet.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSStyleSheet.cpp @@ -51,7 +51,7 @@ static const HashTableValue JSStyleSheetTableValues[9] = { 0, 0, 0, 0 } }; -static const HashTable JSStyleSheetTable = +static JSC_CONST_HASHTABLE HashTable JSStyleSheetTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSStyleSheetTableValues, 0 }; #else @@ -65,7 +65,7 @@ static const HashTableValue JSStyleSheetConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSStyleSheetConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSStyleSheetConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSStyleSheetConstructorTableValues, 0 }; #else @@ -103,7 +103,7 @@ static const HashTableValue JSStyleSheetPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSStyleSheetPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSStyleSheetPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSStyleSheetPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSStyleSheetList.cpp b/src/3rdparty/webkit/WebCore/generated/JSStyleSheetList.cpp index fccd08b..41cc305 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSStyleSheetList.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSStyleSheetList.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSStyleSheetListTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSStyleSheetListTable = +static JSC_CONST_HASHTABLE HashTable JSStyleSheetListTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSStyleSheetListTableValues, 0 }; #else @@ -59,7 +59,7 @@ static const HashTableValue JSStyleSheetListConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSStyleSheetListConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSStyleSheetListConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSStyleSheetListConstructorTableValues, 0 }; #else @@ -98,7 +98,7 @@ static const HashTableValue JSStyleSheetListPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSStyleSheetListPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSStyleSheetListPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSStyleSheetListPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSText.cpp b/src/3rdparty/webkit/WebCore/generated/JSText.cpp index ea29d3c..8be8a89 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSText.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSText.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSTextTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSTextTable = +static JSC_CONST_HASHTABLE HashTable JSTextTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSTextTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSTextConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSTextConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSTextConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSTextConstructorTableValues, 0 }; #else @@ -98,7 +98,7 @@ static const HashTableValue JSTextPrototypeTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSTextPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSTextPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSTextPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSTextEvent.cpp b/src/3rdparty/webkit/WebCore/generated/JSTextEvent.cpp index e20e411..de001cf 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSTextEvent.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSTextEvent.cpp @@ -43,7 +43,7 @@ static const HashTableValue JSTextEventTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSTextEventTable = +static JSC_CONST_HASHTABLE HashTable JSTextEventTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSTextEventTableValues, 0 }; #else @@ -57,7 +57,7 @@ static const HashTableValue JSTextEventConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSTextEventConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSTextEventConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSTextEventConstructorTableValues, 0 }; #else @@ -96,7 +96,7 @@ static const HashTableValue JSTextEventPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSTextEventPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSTextEventPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSTextEventPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSTextMetrics.cpp b/src/3rdparty/webkit/WebCore/generated/JSTextMetrics.cpp index 904be08..d11e8f8 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSTextMetrics.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSTextMetrics.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSTextMetricsTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSTextMetricsTable = +static JSC_CONST_HASHTABLE HashTable JSTextMetricsTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSTextMetricsTableValues, 0 }; #else @@ -54,7 +54,7 @@ static const HashTableValue JSTextMetricsConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSTextMetricsConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSTextMetricsConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSTextMetricsConstructorTableValues, 0 }; #else @@ -92,7 +92,7 @@ static const HashTableValue JSTextMetricsPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSTextMetricsPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSTextMetricsPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSTextMetricsPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSTimeRanges.cpp b/src/3rdparty/webkit/WebCore/generated/JSTimeRanges.cpp index eebd8cd..fdd6278 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSTimeRanges.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSTimeRanges.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSTimeRangesTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSTimeRangesTable = +static JSC_CONST_HASHTABLE HashTable JSTimeRangesTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSTimeRangesTableValues, 0 }; #else @@ -56,7 +56,7 @@ static const HashTableValue JSTimeRangesPrototypeTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSTimeRangesPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSTimeRangesPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 31, JSTimeRangesPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSTreeWalker.cpp b/src/3rdparty/webkit/WebCore/generated/JSTreeWalker.cpp index da610da..b10b4cb 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSTreeWalker.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSTreeWalker.cpp @@ -49,7 +49,7 @@ static const HashTableValue JSTreeWalkerTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSTreeWalkerTable = +static JSC_CONST_HASHTABLE HashTable JSTreeWalkerTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSTreeWalkerTableValues, 0 }; #else @@ -63,7 +63,7 @@ static const HashTableValue JSTreeWalkerConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSTreeWalkerConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSTreeWalkerConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSTreeWalkerConstructorTableValues, 0 }; #else @@ -108,7 +108,7 @@ static const HashTableValue JSTreeWalkerPrototypeTableValues[8] = { 0, 0, 0, 0 } }; -static const HashTable JSTreeWalkerPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSTreeWalkerPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSTreeWalkerPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSUIEvent.cpp b/src/3rdparty/webkit/WebCore/generated/JSUIEvent.cpp index 3711f49..cdf611f 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSUIEvent.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSUIEvent.cpp @@ -51,7 +51,7 @@ static const HashTableValue JSUIEventTableValues[11] = { 0, 0, 0, 0 } }; -static const HashTable JSUIEventTable = +static JSC_CONST_HASHTABLE HashTable JSUIEventTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSUIEventTableValues, 0 }; #else @@ -65,7 +65,7 @@ static const HashTableValue JSUIEventConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSUIEventConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSUIEventConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSUIEventConstructorTableValues, 0 }; #else @@ -104,7 +104,7 @@ static const HashTableValue JSUIEventPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSUIEventPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSUIEventPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSUIEventPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSValidityState.cpp b/src/3rdparty/webkit/WebCore/generated/JSValidityState.cpp new file mode 100644 index 0000000..fe8ea20 --- /dev/null +++ b/src/3rdparty/webkit/WebCore/generated/JSValidityState.cpp @@ -0,0 +1,172 @@ +/* + This file is part of the WebKit open source project. + This file has been generated by generate-bindings.pl. DO NOT MODIFY! + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "config.h" +#include "JSValidityState.h" + +#include "ValidityState.h" +#include <wtf/GetPtr.h> + +using namespace JSC; + +namespace WebCore { + +ASSERT_CLASS_FITS_IN_CELL(JSValidityState); + +/* Hash table */ + +static const HashTableValue JSValidityStateTableValues[10] = +{ + { "valueMissing", DontDelete|ReadOnly, (intptr_t)jsValidityStateValueMissing, (intptr_t)0 }, + { "typeMismatch", DontDelete|ReadOnly, (intptr_t)jsValidityStateTypeMismatch, (intptr_t)0 }, + { "patternMismatch", DontDelete|ReadOnly, (intptr_t)jsValidityStatePatternMismatch, (intptr_t)0 }, + { "tooLong", DontDelete|ReadOnly, (intptr_t)jsValidityStateTooLong, (intptr_t)0 }, + { "rangeUnderflow", DontDelete|ReadOnly, (intptr_t)jsValidityStateRangeUnderflow, (intptr_t)0 }, + { "rangeOverflow", DontDelete|ReadOnly, (intptr_t)jsValidityStateRangeOverflow, (intptr_t)0 }, + { "stepMismatch", DontDelete|ReadOnly, (intptr_t)jsValidityStateStepMismatch, (intptr_t)0 }, + { "customError", DontDelete|ReadOnly, (intptr_t)jsValidityStateCustomError, (intptr_t)0 }, + { "valid", DontDelete|ReadOnly, (intptr_t)jsValidityStateValid, (intptr_t)0 }, + { 0, 0, 0, 0 } +}; + +static JSC_CONST_HASHTABLE HashTable JSValidityStateTable = +#if ENABLE(PERFECT_HASH_SIZE) + { 1023, JSValidityStateTableValues, 0 }; +#else + { 34, 31, JSValidityStateTableValues, 0 }; +#endif + +/* Hash table for prototype */ + +static const HashTableValue JSValidityStatePrototypeTableValues[1] = +{ + { 0, 0, 0, 0 } +}; + +static JSC_CONST_HASHTABLE HashTable JSValidityStatePrototypeTable = +#if ENABLE(PERFECT_HASH_SIZE) + { 0, JSValidityStatePrototypeTableValues, 0 }; +#else + { 1, 0, JSValidityStatePrototypeTableValues, 0 }; +#endif + +const ClassInfo JSValidityStatePrototype::s_info = { "ValidityStatePrototype", 0, &JSValidityStatePrototypeTable, 0 }; + +JSObject* JSValidityStatePrototype::self(ExecState* exec, JSGlobalObject* globalObject) +{ + return getDOMPrototype<JSValidityState>(exec, globalObject); +} + +const ClassInfo JSValidityState::s_info = { "ValidityState", 0, &JSValidityStateTable, 0 }; + +JSValidityState::JSValidityState(PassRefPtr<Structure> structure, PassRefPtr<ValidityState> impl) + : DOMObject(structure) + , m_impl(impl) +{ +} + +JSValidityState::~JSValidityState() +{ + forgetDOMObject(*Heap::heap(this)->globalData(), m_impl.get()); +} + +JSObject* JSValidityState::createPrototype(ExecState* exec, JSGlobalObject* globalObject) +{ + return new (exec) JSValidityStatePrototype(JSValidityStatePrototype::createStructure(globalObject->objectPrototype())); +} + +bool JSValidityState::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot) +{ + return getStaticValueSlot<JSValidityState, Base>(exec, &JSValidityStateTable, this, propertyName, slot); +} + +JSValue jsValidityStateValueMissing(ExecState* exec, const Identifier&, const PropertySlot& slot) +{ + UNUSED_PARAM(exec); + ValidityState* imp = static_cast<ValidityState*>(static_cast<JSValidityState*>(asObject(slot.slotBase()))->impl()); + return jsBoolean(imp->valueMissing()); +} + +JSValue jsValidityStateTypeMismatch(ExecState* exec, const Identifier&, const PropertySlot& slot) +{ + UNUSED_PARAM(exec); + ValidityState* imp = static_cast<ValidityState*>(static_cast<JSValidityState*>(asObject(slot.slotBase()))->impl()); + return jsBoolean(imp->typeMismatch()); +} + +JSValue jsValidityStatePatternMismatch(ExecState* exec, const Identifier&, const PropertySlot& slot) +{ + UNUSED_PARAM(exec); + ValidityState* imp = static_cast<ValidityState*>(static_cast<JSValidityState*>(asObject(slot.slotBase()))->impl()); + return jsBoolean(imp->patternMismatch()); +} + +JSValue jsValidityStateTooLong(ExecState* exec, const Identifier&, const PropertySlot& slot) +{ + UNUSED_PARAM(exec); + ValidityState* imp = static_cast<ValidityState*>(static_cast<JSValidityState*>(asObject(slot.slotBase()))->impl()); + return jsBoolean(imp->tooLong()); +} + +JSValue jsValidityStateRangeUnderflow(ExecState* exec, const Identifier&, const PropertySlot& slot) +{ + UNUSED_PARAM(exec); + ValidityState* imp = static_cast<ValidityState*>(static_cast<JSValidityState*>(asObject(slot.slotBase()))->impl()); + return jsBoolean(imp->rangeUnderflow()); +} + +JSValue jsValidityStateRangeOverflow(ExecState* exec, const Identifier&, const PropertySlot& slot) +{ + UNUSED_PARAM(exec); + ValidityState* imp = static_cast<ValidityState*>(static_cast<JSValidityState*>(asObject(slot.slotBase()))->impl()); + return jsBoolean(imp->rangeOverflow()); +} + +JSValue jsValidityStateStepMismatch(ExecState* exec, const Identifier&, const PropertySlot& slot) +{ + UNUSED_PARAM(exec); + ValidityState* imp = static_cast<ValidityState*>(static_cast<JSValidityState*>(asObject(slot.slotBase()))->impl()); + return jsBoolean(imp->stepMismatch()); +} + +JSValue jsValidityStateCustomError(ExecState* exec, const Identifier&, const PropertySlot& slot) +{ + UNUSED_PARAM(exec); + ValidityState* imp = static_cast<ValidityState*>(static_cast<JSValidityState*>(asObject(slot.slotBase()))->impl()); + return jsBoolean(imp->customError()); +} + +JSValue jsValidityStateValid(ExecState* exec, const Identifier&, const PropertySlot& slot) +{ + UNUSED_PARAM(exec); + ValidityState* imp = static_cast<ValidityState*>(static_cast<JSValidityState*>(asObject(slot.slotBase()))->impl()); + return jsBoolean(imp->valid()); +} + +JSC::JSValue toJS(JSC::ExecState* exec, ValidityState* object) +{ + return getDOMObjectWrapper<JSValidityState>(exec, object); +} +ValidityState* toValidityState(JSC::JSValue value) +{ + return value.isObject(&JSValidityState::s_info) ? static_cast<JSValidityState*>(asObject(value))->impl() : 0; +} + +} diff --git a/src/3rdparty/webkit/WebCore/generated/JSValidityState.h b/src/3rdparty/webkit/WebCore/generated/JSValidityState.h new file mode 100644 index 0000000..a866146 --- /dev/null +++ b/src/3rdparty/webkit/WebCore/generated/JSValidityState.h @@ -0,0 +1,79 @@ +/* + This file is part of the WebKit open source project. + This file has been generated by generate-bindings.pl. DO NOT MODIFY! + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef JSValidityState_h +#define JSValidityState_h + +#include "JSDOMBinding.h" +#include <runtime/JSGlobalObject.h> +#include <runtime/ObjectPrototype.h> + +namespace WebCore { + +class ValidityState; + +class JSValidityState : public DOMObject { + typedef DOMObject Base; +public: + JSValidityState(PassRefPtr<JSC::Structure>, PassRefPtr<ValidityState>); + virtual ~JSValidityState(); + static JSC::JSObject* createPrototype(JSC::ExecState*, JSC::JSGlobalObject*); + virtual bool getOwnPropertySlot(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertySlot&); + virtual const JSC::ClassInfo* classInfo() const { return &s_info; } + static const JSC::ClassInfo s_info; + + static PassRefPtr<JSC::Structure> createStructure(JSC::JSValue prototype) + { + return JSC::Structure::create(prototype, JSC::TypeInfo(JSC::ObjectType)); + } + + ValidityState* impl() const { return m_impl.get(); } + +private: + RefPtr<ValidityState> m_impl; +}; + +JSC::JSValue toJS(JSC::ExecState*, ValidityState*); +ValidityState* toValidityState(JSC::JSValue); + +class JSValidityStatePrototype : public JSC::JSObject { + typedef JSC::JSObject Base; +public: + static JSC::JSObject* self(JSC::ExecState*, JSC::JSGlobalObject*); + virtual const JSC::ClassInfo* classInfo() const { return &s_info; } + static const JSC::ClassInfo s_info; + JSValidityStatePrototype(PassRefPtr<JSC::Structure> structure) : JSC::JSObject(structure) { } +}; + +// Attributes + +JSC::JSValue jsValidityStateValueMissing(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); +JSC::JSValue jsValidityStateTypeMismatch(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); +JSC::JSValue jsValidityStatePatternMismatch(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); +JSC::JSValue jsValidityStateTooLong(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); +JSC::JSValue jsValidityStateRangeUnderflow(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); +JSC::JSValue jsValidityStateRangeOverflow(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); +JSC::JSValue jsValidityStateStepMismatch(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); +JSC::JSValue jsValidityStateCustomError(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); +JSC::JSValue jsValidityStateValid(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); + +} // namespace WebCore + +#endif diff --git a/src/3rdparty/webkit/WebCore/generated/JSVoidCallback.cpp b/src/3rdparty/webkit/WebCore/generated/JSVoidCallback.cpp index ad9ae01..b95c440 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSVoidCallback.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSVoidCallback.cpp @@ -39,7 +39,7 @@ static const HashTableValue JSVoidCallbackPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSVoidCallbackPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSVoidCallbackPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSVoidCallbackPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSWebKitAnimationEvent.cpp b/src/3rdparty/webkit/WebCore/generated/JSWebKitAnimationEvent.cpp index a1cb988..e8b791b 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSWebKitAnimationEvent.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSWebKitAnimationEvent.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSWebKitAnimationEventTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSWebKitAnimationEventTable = +static JSC_CONST_HASHTABLE HashTable JSWebKitAnimationEventTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSWebKitAnimationEventTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSWebKitAnimationEventConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSWebKitAnimationEventConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSWebKitAnimationEventConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSWebKitAnimationEventConstructorTableValues, 0 }; #else @@ -97,7 +97,7 @@ static const HashTableValue JSWebKitAnimationEventPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSWebKitAnimationEventPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSWebKitAnimationEventPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSWebKitAnimationEventPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSWebKitCSSKeyframeRule.cpp b/src/3rdparty/webkit/WebCore/generated/JSWebKitCSSKeyframeRule.cpp index c07c962..a99fac6 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSWebKitCSSKeyframeRule.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSWebKitCSSKeyframeRule.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSWebKitCSSKeyframeRuleTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSWebKitCSSKeyframeRuleTable = +static JSC_CONST_HASHTABLE HashTable JSWebKitCSSKeyframeRuleTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSWebKitCSSKeyframeRuleTableValues, 0 }; #else @@ -59,7 +59,7 @@ static const HashTableValue JSWebKitCSSKeyframeRuleConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSWebKitCSSKeyframeRuleConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSWebKitCSSKeyframeRuleConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSWebKitCSSKeyframeRuleConstructorTableValues, 0 }; #else @@ -97,7 +97,7 @@ static const HashTableValue JSWebKitCSSKeyframeRulePrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSWebKitCSSKeyframeRulePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSWebKitCSSKeyframeRulePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSWebKitCSSKeyframeRulePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSWebKitCSSKeyframesRule.cpp b/src/3rdparty/webkit/WebCore/generated/JSWebKitCSSKeyframesRule.cpp index 1bc7805..013622c 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSWebKitCSSKeyframesRule.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSWebKitCSSKeyframesRule.cpp @@ -47,7 +47,7 @@ static const HashTableValue JSWebKitCSSKeyframesRuleTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSWebKitCSSKeyframesRuleTable = +static JSC_CONST_HASHTABLE HashTable JSWebKitCSSKeyframesRuleTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSWebKitCSSKeyframesRuleTableValues, 0 }; #else @@ -61,7 +61,7 @@ static const HashTableValue JSWebKitCSSKeyframesRuleConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSWebKitCSSKeyframesRuleConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSWebKitCSSKeyframesRuleConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSWebKitCSSKeyframesRuleConstructorTableValues, 0 }; #else @@ -102,7 +102,7 @@ static const HashTableValue JSWebKitCSSKeyframesRulePrototypeTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSWebKitCSSKeyframesRulePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSWebKitCSSKeyframesRulePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSWebKitCSSKeyframesRulePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSWebKitCSSMatrix.cpp b/src/3rdparty/webkit/WebCore/generated/JSWebKitCSSMatrix.cpp index 8b28647..9c1436b 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSWebKitCSSMatrix.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSWebKitCSSMatrix.cpp @@ -64,7 +64,7 @@ static const HashTableValue JSWebKitCSSMatrixTableValues[23] = { 0, 0, 0, 0 } }; -static const HashTable JSWebKitCSSMatrixTable = +static JSC_CONST_HASHTABLE HashTable JSWebKitCSSMatrixTable = #if ENABLE(PERFECT_HASH_SIZE) { 255, JSWebKitCSSMatrixTableValues, 0 }; #else @@ -86,7 +86,7 @@ static const HashTableValue JSWebKitCSSMatrixPrototypeTableValues[9] = { 0, 0, 0, 0 } }; -static const HashTable JSWebKitCSSMatrixPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSWebKitCSSMatrixPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSWebKitCSSMatrixPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSWebKitCSSTransformValue.cpp b/src/3rdparty/webkit/WebCore/generated/JSWebKitCSSTransformValue.cpp index 37f1563..59a4650 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSWebKitCSSTransformValue.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSWebKitCSSTransformValue.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSWebKitCSSTransformValueTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSWebKitCSSTransformValueTable = +static JSC_CONST_HASHTABLE HashTable JSWebKitCSSTransformValueTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSWebKitCSSTransformValueTableValues, 0 }; #else @@ -75,7 +75,7 @@ static const HashTableValue JSWebKitCSSTransformValueConstructorTableValues[22] { 0, 0, 0, 0 } }; -static const HashTable JSWebKitCSSTransformValueConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSWebKitCSSTransformValueConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 1023, JSWebKitCSSTransformValueConstructorTableValues, 0 }; #else @@ -134,7 +134,7 @@ static const HashTableValue JSWebKitCSSTransformValuePrototypeTableValues[22] = { 0, 0, 0, 0 } }; -static const HashTable JSWebKitCSSTransformValuePrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSWebKitCSSTransformValuePrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 1023, JSWebKitCSSTransformValuePrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSWebKitPoint.cpp b/src/3rdparty/webkit/WebCore/generated/JSWebKitPoint.cpp index b954f24..ced49fb 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSWebKitPoint.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSWebKitPoint.cpp @@ -40,7 +40,7 @@ static const HashTableValue JSWebKitPointTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSWebKitPointTable = +static JSC_CONST_HASHTABLE HashTable JSWebKitPointTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSWebKitPointTableValues, 0 }; #else @@ -54,7 +54,7 @@ static const HashTableValue JSWebKitPointPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSWebKitPointPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSWebKitPointPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSWebKitPointPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSWebKitTransitionEvent.cpp b/src/3rdparty/webkit/WebCore/generated/JSWebKitTransitionEvent.cpp index 3ca4c82..75e4de7 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSWebKitTransitionEvent.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSWebKitTransitionEvent.cpp @@ -44,7 +44,7 @@ static const HashTableValue JSWebKitTransitionEventTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSWebKitTransitionEventTable = +static JSC_CONST_HASHTABLE HashTable JSWebKitTransitionEventTable = #if ENABLE(PERFECT_HASH_SIZE) { 7, JSWebKitTransitionEventTableValues, 0 }; #else @@ -58,7 +58,7 @@ static const HashTableValue JSWebKitTransitionEventConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSWebKitTransitionEventConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSWebKitTransitionEventConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSWebKitTransitionEventConstructorTableValues, 0 }; #else @@ -97,7 +97,7 @@ static const HashTableValue JSWebKitTransitionEventPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSWebKitTransitionEventPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSWebKitTransitionEventPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSWebKitTransitionEventPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSWheelEvent.cpp b/src/3rdparty/webkit/WebCore/generated/JSWheelEvent.cpp index e56513d..1a47e6f 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSWheelEvent.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSWheelEvent.cpp @@ -54,7 +54,7 @@ static const HashTableValue JSWheelEventTableValues[17] = { 0, 0, 0, 0 } }; -static const HashTable JSWheelEventTable = +static JSC_CONST_HASHTABLE HashTable JSWheelEventTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSWheelEventTableValues, 0 }; #else @@ -68,7 +68,7 @@ static const HashTableValue JSWheelEventConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSWheelEventConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSWheelEventConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSWheelEventConstructorTableValues, 0 }; #else @@ -106,7 +106,7 @@ static const HashTableValue JSWheelEventPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSWheelEventPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSWheelEventPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSWheelEventPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSWorker.cpp b/src/3rdparty/webkit/WebCore/generated/JSWorker.cpp index 4c4f8a0..979f43b 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSWorker.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSWorker.cpp @@ -30,6 +30,7 @@ #include "JSDOMGlobalObject.h" #include "JSEvent.h" #include "JSEventListener.h" +#include "JSMessagePort.h" #include "Worker.h" #include <runtime/Error.h> #include <wtf/GetPtr.h> @@ -49,7 +50,7 @@ static const HashTableValue JSWorkerTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSWorkerTable = +static JSC_CONST_HASHTABLE HashTable JSWorkerTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSWorkerTableValues, 0 }; #else @@ -60,7 +61,7 @@ static const HashTable JSWorkerTable = static const HashTableValue JSWorkerPrototypeTableValues[6] = { - { "postMessage", DontDelete|Function, (intptr_t)jsWorkerPrototypeFunctionPostMessage, (intptr_t)1 }, + { "postMessage", DontDelete|Function, (intptr_t)jsWorkerPrototypeFunctionPostMessage, (intptr_t)2 }, { "terminate", DontDelete|Function, (intptr_t)jsWorkerPrototypeFunctionTerminate, (intptr_t)0 }, { "addEventListener", DontDelete|Function, (intptr_t)jsWorkerPrototypeFunctionAddEventListener, (intptr_t)3 }, { "removeEventListener", DontDelete|Function, (intptr_t)jsWorkerPrototypeFunctionRemoveEventListener, (intptr_t)3 }, @@ -68,7 +69,7 @@ static const HashTableValue JSWorkerPrototypeTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSWorkerPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSWorkerPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSWorkerPrototypeTableValues, 0 }; #else @@ -164,9 +165,20 @@ JSValue JSC_HOST_CALL jsWorkerPrototypeFunctionPostMessage(ExecState* exec, JSOb return throwError(exec, TypeError); JSWorker* castedThisObj = static_cast<JSWorker*>(asObject(thisValue)); Worker* imp = static_cast<Worker*>(castedThisObj->impl()); + ExceptionCode ec = 0; const UString& message = args.at(0).toString(exec); - imp->postMessage(message); + int argsCount = args.size(); + if (argsCount < 2) { + imp->postMessage(message, ec); + setDOMException(exec, ec); + return jsUndefined(); + } + + MessagePort* messagePort = toMessagePort(args.at(1)); + + imp->postMessage(message, messagePort, ec); + setDOMException(exec, ec); return jsUndefined(); } diff --git a/src/3rdparty/webkit/WebCore/generated/JSWorkerContext.cpp b/src/3rdparty/webkit/WebCore/generated/JSWorkerContext.cpp index cf2e02d..cf46141 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSWorkerContext.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSWorkerContext.cpp @@ -28,7 +28,9 @@ #include "EventListener.h" #include "JSEvent.h" #include "JSEventListener.h" +#include "JSMessageChannel.h" #include "JSMessageEvent.h" +#include "JSMessagePort.h" #include "JSWorkerContext.h" #include "JSWorkerLocation.h" #include "JSWorkerNavigator.h" @@ -47,7 +49,7 @@ ASSERT_CLASS_FITS_IN_CELL(JSWorkerContext); /* Hash table */ -static const HashTableValue JSWorkerContextTableValues[8] = +static const HashTableValue JSWorkerContextTableValues[9] = { { "self", DontDelete, (intptr_t)jsWorkerContextSelf, (intptr_t)setJSWorkerContextSelf }, { "location", DontDelete, (intptr_t)jsWorkerContextLocation, (intptr_t)setJSWorkerContextLocation }, @@ -55,11 +57,12 @@ static const HashTableValue JSWorkerContextTableValues[8] = { "onmessage", DontDelete, (intptr_t)jsWorkerContextOnmessage, (intptr_t)setJSWorkerContextOnmessage }, { "MessageEvent", DontDelete, (intptr_t)jsWorkerContextMessageEventConstructor, (intptr_t)setJSWorkerContextMessageEventConstructor }, { "WorkerLocation", DontDelete, (intptr_t)jsWorkerContextWorkerLocationConstructor, (intptr_t)setJSWorkerContextWorkerLocationConstructor }, + { "MessageChannel", DontDelete, (intptr_t)jsWorkerContextMessageChannelConstructor, (intptr_t)setJSWorkerContextMessageChannelConstructor }, { "XMLHttpRequest", DontDelete, (intptr_t)jsWorkerContextXMLHttpRequestConstructor, (intptr_t)setJSWorkerContextXMLHttpRequestConstructor }, { 0, 0, 0, 0 } }; -static const HashTable JSWorkerContextTable = +static JSC_CONST_HASHTABLE HashTable JSWorkerContextTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSWorkerContextTableValues, 0 }; #else @@ -72,7 +75,7 @@ static const HashTableValue JSWorkerContextPrototypeTableValues[11] = { { "close", DontDelete|Function, (intptr_t)jsWorkerContextPrototypeFunctionClose, (intptr_t)0 }, { "importScripts", DontDelete|Function, (intptr_t)jsWorkerContextPrototypeFunctionImportScripts, (intptr_t)0 }, - { "postMessage", DontDelete|Function, (intptr_t)jsWorkerContextPrototypeFunctionPostMessage, (intptr_t)1 }, + { "postMessage", DontDelete|Function, (intptr_t)jsWorkerContextPrototypeFunctionPostMessage, (intptr_t)2 }, { "setTimeout", DontDelete|Function, (intptr_t)jsWorkerContextPrototypeFunctionSetTimeout, (intptr_t)2 }, { "clearTimeout", DontDelete|Function, (intptr_t)jsWorkerContextPrototypeFunctionClearTimeout, (intptr_t)1 }, { "setInterval", DontDelete|Function, (intptr_t)jsWorkerContextPrototypeFunctionSetInterval, (intptr_t)2 }, @@ -83,7 +86,7 @@ static const HashTableValue JSWorkerContextPrototypeTableValues[11] = { 0, 0, 0, 0 } }; -static const HashTable JSWorkerContextPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSWorkerContextPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 1023, JSWorkerContextPrototypeTableValues, 0 }; #else @@ -168,6 +171,11 @@ JSValue jsWorkerContextWorkerLocationConstructor(ExecState* exec, const Identifi return JSWorkerLocation::getConstructor(exec); } +JSValue jsWorkerContextMessageChannelConstructor(ExecState* exec, const Identifier&, const PropertySlot& slot) +{ + return static_cast<JSWorkerContext*>(asObject(slot.slotBase()))->messageChannel(exec); +} + JSValue jsWorkerContextXMLHttpRequestConstructor(ExecState* exec, const Identifier&, const PropertySlot& slot) { return static_cast<JSWorkerContext*>(asObject(slot.slotBase()))->xmlHttpRequest(exec); @@ -216,6 +224,12 @@ void setJSWorkerContextWorkerLocationConstructor(ExecState* exec, JSObject* this static_cast<JSWorkerContext*>(thisObject)->putDirect(Identifier(exec, "WorkerLocation"), value); } +void setJSWorkerContextMessageChannelConstructor(ExecState* exec, JSObject* thisObject, JSValue value) +{ + // Shadowing a built-in constructor + static_cast<JSWorkerContext*>(thisObject)->putDirect(Identifier(exec, "MessageChannel"), value); +} + void setJSWorkerContextXMLHttpRequestConstructor(ExecState* exec, JSObject* thisObject, JSValue value) { // Shadowing a built-in constructor @@ -250,9 +264,20 @@ JSValue JSC_HOST_CALL jsWorkerContextPrototypeFunctionPostMessage(ExecState* exe return throwError(exec, TypeError); JSWorkerContext* castedThisObj = static_cast<JSWorkerContext*>(asObject(thisValue)); WorkerContext* imp = static_cast<WorkerContext*>(castedThisObj->impl()); + ExceptionCode ec = 0; const UString& message = args.at(0).toString(exec); - imp->postMessage(message); + int argsCount = args.size(); + if (argsCount < 2) { + imp->postMessage(message, ec); + setDOMException(exec, ec); + return jsUndefined(); + } + + MessagePort* messagePort = toMessagePort(args.at(1)); + + imp->postMessage(message, messagePort, ec); + setDOMException(exec, ec); return jsUndefined(); } diff --git a/src/3rdparty/webkit/WebCore/generated/JSWorkerContext.h b/src/3rdparty/webkit/WebCore/generated/JSWorkerContext.h index c522808..7453f27 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSWorkerContext.h +++ b/src/3rdparty/webkit/WebCore/generated/JSWorkerContext.h @@ -48,6 +48,7 @@ public: // Custom attributes + JSC::JSValue messageChannel(JSC::ExecState*) const; JSC::JSValue xmlHttpRequest(JSC::ExecState*) const; // Custom functions @@ -99,6 +100,8 @@ JSC::JSValue jsWorkerContextMessageEventConstructor(JSC::ExecState*, const JSC:: void setJSWorkerContextMessageEventConstructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); JSC::JSValue jsWorkerContextWorkerLocationConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); void setJSWorkerContextWorkerLocationConstructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); +JSC::JSValue jsWorkerContextMessageChannelConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); +void setJSWorkerContextMessageChannelConstructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); JSC::JSValue jsWorkerContextXMLHttpRequestConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&); void setJSWorkerContextXMLHttpRequestConstructor(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); diff --git a/src/3rdparty/webkit/WebCore/generated/JSWorkerLocation.cpp b/src/3rdparty/webkit/WebCore/generated/JSWorkerLocation.cpp index 7960f9a..d29c219 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSWorkerLocation.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSWorkerLocation.cpp @@ -52,7 +52,7 @@ static const HashTableValue JSWorkerLocationTableValues[10] = { 0, 0, 0, 0 } }; -static const HashTable JSWorkerLocationTable = +static JSC_CONST_HASHTABLE HashTable JSWorkerLocationTable = #if ENABLE(PERFECT_HASH_SIZE) { 511, JSWorkerLocationTableValues, 0 }; #else @@ -66,7 +66,7 @@ static const HashTableValue JSWorkerLocationConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSWorkerLocationConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSWorkerLocationConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSWorkerLocationConstructorTableValues, 0 }; #else @@ -105,7 +105,7 @@ static const HashTableValue JSWorkerLocationPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSWorkerLocationPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSWorkerLocationPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSWorkerLocationPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSWorkerNavigator.cpp b/src/3rdparty/webkit/WebCore/generated/JSWorkerNavigator.cpp index 457f163..76da8f1 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSWorkerNavigator.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSWorkerNavigator.cpp @@ -47,7 +47,7 @@ static const HashTableValue JSWorkerNavigatorTableValues[6] = { 0, 0, 0, 0 } }; -static const HashTable JSWorkerNavigatorTable = +static JSC_CONST_HASHTABLE HashTable JSWorkerNavigatorTable = #if ENABLE(PERFECT_HASH_SIZE) { 511, JSWorkerNavigatorTableValues, 0 }; #else @@ -61,7 +61,7 @@ static const HashTableValue JSWorkerNavigatorPrototypeTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSWorkerNavigatorPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSWorkerNavigatorPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSWorkerNavigatorPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequest.cpp b/src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequest.cpp index 1677954..ebd723e 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequest.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequest.cpp @@ -64,7 +64,7 @@ static const HashTableValue JSXMLHttpRequestTableValues[14] = { 0, 0, 0, 0 } }; -static const HashTable JSXMLHttpRequestTable = +static JSC_CONST_HASHTABLE HashTable JSXMLHttpRequestTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSXMLHttpRequestTableValues, 0 }; #else @@ -93,7 +93,7 @@ static const HashTableValue JSXMLHttpRequestPrototypeTableValues[16] = { 0, 0, 0, 0 } }; -static const HashTable JSXMLHttpRequestPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSXMLHttpRequestPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 1023, JSXMLHttpRequestPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestException.cpp b/src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestException.cpp index 34a5444..3820567 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestException.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestException.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSXMLHttpRequestExceptionTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSXMLHttpRequestExceptionTable = +static JSC_CONST_HASHTABLE HashTable JSXMLHttpRequestExceptionTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSXMLHttpRequestExceptionTableValues, 0 }; #else @@ -61,7 +61,7 @@ static const HashTableValue JSXMLHttpRequestExceptionConstructorTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSXMLHttpRequestExceptionConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSXMLHttpRequestExceptionConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 1, JSXMLHttpRequestExceptionConstructorTableValues, 0 }; #else @@ -102,7 +102,7 @@ static const HashTableValue JSXMLHttpRequestExceptionPrototypeTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSXMLHttpRequestExceptionPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSXMLHttpRequestExceptionPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSXMLHttpRequestExceptionPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestProgressEvent.cpp b/src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestProgressEvent.cpp index 4882570..d1a5324 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestProgressEvent.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestProgressEvent.cpp @@ -41,7 +41,7 @@ static const HashTableValue JSXMLHttpRequestProgressEventTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSXMLHttpRequestProgressEventTable = +static JSC_CONST_HASHTABLE HashTable JSXMLHttpRequestProgressEventTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSXMLHttpRequestProgressEventTableValues, 0 }; #else @@ -55,7 +55,7 @@ static const HashTableValue JSXMLHttpRequestProgressEventConstructorTableValues[ { 0, 0, 0, 0 } }; -static const HashTable JSXMLHttpRequestProgressEventConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSXMLHttpRequestProgressEventConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSXMLHttpRequestProgressEventConstructorTableValues, 0 }; #else @@ -93,7 +93,7 @@ static const HashTableValue JSXMLHttpRequestProgressEventPrototypeTableValues[1] { 0, 0, 0, 0 } }; -static const HashTable JSXMLHttpRequestProgressEventPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSXMLHttpRequestProgressEventPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSXMLHttpRequestProgressEventPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestUpload.cpp b/src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestUpload.cpp index 34942b0..ad482ce 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestUpload.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestUpload.cpp @@ -50,7 +50,7 @@ static const HashTableValue JSXMLHttpRequestUploadTableValues[7] = { 0, 0, 0, 0 } }; -static const HashTable JSXMLHttpRequestUploadTable = +static JSC_CONST_HASHTABLE HashTable JSXMLHttpRequestUploadTable = #if ENABLE(PERFECT_HASH_SIZE) { 15, JSXMLHttpRequestUploadTableValues, 0 }; #else @@ -64,7 +64,7 @@ static const HashTableValue JSXMLHttpRequestUploadConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSXMLHttpRequestUploadConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSXMLHttpRequestUploadConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSXMLHttpRequestUploadConstructorTableValues, 0 }; #else @@ -105,7 +105,7 @@ static const HashTableValue JSXMLHttpRequestUploadPrototypeTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSXMLHttpRequestUploadPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSXMLHttpRequestUploadPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSXMLHttpRequestUploadPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSXMLSerializer.cpp b/src/3rdparty/webkit/WebCore/generated/JSXMLSerializer.cpp index 211f027..8c803b5 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSXMLSerializer.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSXMLSerializer.cpp @@ -42,7 +42,7 @@ static const HashTableValue JSXMLSerializerTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSXMLSerializerTable = +static JSC_CONST_HASHTABLE HashTable JSXMLSerializerTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSXMLSerializerTableValues, 0 }; #else @@ -56,7 +56,7 @@ static const HashTableValue JSXMLSerializerConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSXMLSerializerConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSXMLSerializerConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSXMLSerializerConstructorTableValues, 0 }; #else @@ -104,7 +104,7 @@ static const HashTableValue JSXMLSerializerPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSXMLSerializerPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSXMLSerializerPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSXMLSerializerPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSXPathEvaluator.cpp b/src/3rdparty/webkit/WebCore/generated/JSXPathEvaluator.cpp index 6103329..7570bc4 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSXPathEvaluator.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSXPathEvaluator.cpp @@ -51,7 +51,7 @@ static const HashTableValue JSXPathEvaluatorTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSXPathEvaluatorTable = +static JSC_CONST_HASHTABLE HashTable JSXPathEvaluatorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSXPathEvaluatorTableValues, 0 }; #else @@ -65,7 +65,7 @@ static const HashTableValue JSXPathEvaluatorConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSXPathEvaluatorConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSXPathEvaluatorConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSXPathEvaluatorConstructorTableValues, 0 }; #else @@ -115,7 +115,7 @@ static const HashTableValue JSXPathEvaluatorPrototypeTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSXPathEvaluatorPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSXPathEvaluatorPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSXPathEvaluatorPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSXPathException.cpp b/src/3rdparty/webkit/WebCore/generated/JSXPathException.cpp index 82518b1..8ac6eb3 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSXPathException.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSXPathException.cpp @@ -48,7 +48,7 @@ static const HashTableValue JSXPathExceptionTableValues[5] = { 0, 0, 0, 0 } }; -static const HashTable JSXPathExceptionTable = +static JSC_CONST_HASHTABLE HashTable JSXPathExceptionTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSXPathExceptionTableValues, 0 }; #else @@ -64,7 +64,7 @@ static const HashTableValue JSXPathExceptionConstructorTableValues[3] = { 0, 0, 0, 0 } }; -static const HashTable JSXPathExceptionConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSXPathExceptionConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSXPathExceptionConstructorTableValues, 0 }; #else @@ -105,7 +105,7 @@ static const HashTableValue JSXPathExceptionPrototypeTableValues[4] = { 0, 0, 0, 0 } }; -static const HashTable JSXPathExceptionPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSXPathExceptionPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 3, JSXPathExceptionPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSXPathExpression.cpp b/src/3rdparty/webkit/WebCore/generated/JSXPathExpression.cpp index fd945fe..2bfaae5 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSXPathExpression.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSXPathExpression.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSXPathExpressionTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSXPathExpressionTable = +static JSC_CONST_HASHTABLE HashTable JSXPathExpressionTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSXPathExpressionTableValues, 0 }; #else @@ -59,7 +59,7 @@ static const HashTableValue JSXPathExpressionConstructorTableValues[1] = { 0, 0, 0, 0 } }; -static const HashTable JSXPathExpressionConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSXPathExpressionConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSXPathExpressionConstructorTableValues, 0 }; #else @@ -98,7 +98,7 @@ static const HashTableValue JSXPathExpressionPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSXPathExpressionPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSXPathExpressionPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSXPathExpressionPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSXPathNSResolver.cpp b/src/3rdparty/webkit/WebCore/generated/JSXPathNSResolver.cpp index 550c85e..7136752 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSXPathNSResolver.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSXPathNSResolver.cpp @@ -45,7 +45,7 @@ static const HashTableValue JSXPathNSResolverPrototypeTableValues[2] = { 0, 0, 0, 0 } }; -static const HashTable JSXPathNSResolverPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSXPathNSResolverPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 0, JSXPathNSResolverPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/JSXPathResult.cpp b/src/3rdparty/webkit/WebCore/generated/JSXPathResult.cpp index cecdf90..118325b 100644 --- a/src/3rdparty/webkit/WebCore/generated/JSXPathResult.cpp +++ b/src/3rdparty/webkit/WebCore/generated/JSXPathResult.cpp @@ -54,7 +54,7 @@ static const HashTableValue JSXPathResultTableValues[9] = { 0, 0, 0, 0 } }; -static const HashTable JSXPathResultTable = +static JSC_CONST_HASHTABLE HashTable JSXPathResultTable = #if ENABLE(PERFECT_HASH_SIZE) { 63, JSXPathResultTableValues, 0 }; #else @@ -78,7 +78,7 @@ static const HashTableValue JSXPathResultConstructorTableValues[11] = { 0, 0, 0, 0 } }; -static const HashTable JSXPathResultConstructorTable = +static JSC_CONST_HASHTABLE HashTable JSXPathResultConstructorTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSXPathResultConstructorTableValues, 0 }; #else @@ -128,7 +128,7 @@ static const HashTableValue JSXPathResultPrototypeTableValues[13] = { 0, 0, 0, 0 } }; -static const HashTable JSXPathResultPrototypeTable = +static JSC_CONST_HASHTABLE HashTable JSXPathResultPrototypeTable = #if ENABLE(PERFECT_HASH_SIZE) { 127, JSXPathResultPrototypeTableValues, 0 }; #else diff --git a/src/3rdparty/webkit/WebCore/generated/Lexer.lut.h b/src/3rdparty/webkit/WebCore/generated/Lexer.lut.h index 4c46e07..2cf7617 100644 --- a/src/3rdparty/webkit/WebCore/generated/Lexer.lut.h +++ b/src/3rdparty/webkit/WebCore/generated/Lexer.lut.h @@ -44,6 +44,6 @@ static const struct HashTableValue mainTableValues[37] = { { 0, 0, 0, 0 } }; -extern const struct HashTable mainTable = +extern JSC_CONST_HASHTABLE HashTable mainTable = { 133, 127, mainTableValues, 0 }; } // namespace diff --git a/src/3rdparty/webkit/WebCore/generated/MathObject.lut.h b/src/3rdparty/webkit/WebCore/generated/MathObject.lut.h index c8359c1..ce76857 100644 --- a/src/3rdparty/webkit/WebCore/generated/MathObject.lut.h +++ b/src/3rdparty/webkit/WebCore/generated/MathObject.lut.h @@ -26,6 +26,6 @@ static const struct HashTableValue mathTableValues[19] = { { 0, 0, 0, 0 } }; -extern const struct HashTable mathTable = +extern JSC_CONST_HASHTABLE HashTable mathTable = { 67, 63, mathTableValues, 0 }; } // namespace diff --git a/src/3rdparty/webkit/WebCore/generated/NumberConstructor.lut.h b/src/3rdparty/webkit/WebCore/generated/NumberConstructor.lut.h index 6879c03..d1155ae 100644 --- a/src/3rdparty/webkit/WebCore/generated/NumberConstructor.lut.h +++ b/src/3rdparty/webkit/WebCore/generated/NumberConstructor.lut.h @@ -13,6 +13,6 @@ static const struct HashTableValue numberTableValues[6] = { { 0, 0, 0, 0 } }; -extern const struct HashTable numberTable = +extern JSC_CONST_HASHTABLE HashTable numberTable = { 16, 15, numberTableValues, 0 }; } // namespace diff --git a/src/3rdparty/webkit/WebCore/generated/RegExpConstructor.lut.h b/src/3rdparty/webkit/WebCore/generated/RegExpConstructor.lut.h index 0bdf10c..eea201c 100644 --- a/src/3rdparty/webkit/WebCore/generated/RegExpConstructor.lut.h +++ b/src/3rdparty/webkit/WebCore/generated/RegExpConstructor.lut.h @@ -29,6 +29,6 @@ static const struct HashTableValue regExpConstructorTableValues[22] = { { 0, 0, 0, 0 } }; -extern const struct HashTable regExpConstructorTable = +extern JSC_CONST_HASHTABLE HashTable regExpConstructorTable = { 65, 63, regExpConstructorTableValues, 0 }; } // namespace diff --git a/src/3rdparty/webkit/WebCore/generated/RegExpObject.lut.h b/src/3rdparty/webkit/WebCore/generated/RegExpObject.lut.h index 69a745d..146aec0 100644 --- a/src/3rdparty/webkit/WebCore/generated/RegExpObject.lut.h +++ b/src/3rdparty/webkit/WebCore/generated/RegExpObject.lut.h @@ -13,6 +13,6 @@ static const struct HashTableValue regExpTableValues[6] = { { 0, 0, 0, 0 } }; -extern const struct HashTable regExpTable = +extern JSC_CONST_HASHTABLE HashTable regExpTable = { 17, 15, regExpTableValues, 0 }; } // namespace diff --git a/src/3rdparty/webkit/WebCore/generated/StringPrototype.lut.h b/src/3rdparty/webkit/WebCore/generated/StringPrototype.lut.h index aa044fa..bbbd75e 100644 --- a/src/3rdparty/webkit/WebCore/generated/StringPrototype.lut.h +++ b/src/3rdparty/webkit/WebCore/generated/StringPrototype.lut.h @@ -40,6 +40,6 @@ static const struct HashTableValue stringTableValues[33] = { { 0, 0, 0, 0 } }; -extern const struct HashTable stringTable = +extern JSC_CONST_HASHTABLE HashTable stringTable = { 71, 63, stringTableValues, 0 }; } // namespace diff --git a/src/3rdparty/webkit/WebCore/generated/UserAgentStyleSheets.h b/src/3rdparty/webkit/WebCore/generated/UserAgentStyleSheets.h index 6c53189..1ccfa4a 100644 --- a/src/3rdparty/webkit/WebCore/generated/UserAgentStyleSheets.h +++ b/src/3rdparty/webkit/WebCore/generated/UserAgentStyleSheets.h @@ -1,8 +1,8 @@ namespace WebCore { -extern const char html4UserAgentStyleSheet[8585]; +extern const char htmlUserAgentStyleSheet[8502]; extern const char quirksUserAgentStyleSheet[359]; extern const char svgUserAgentStyleSheet[358]; extern const char sourceUserAgentStyleSheet[2004]; extern const char wmlUserAgentStyleSheet[2956]; -extern const char mediaControlsUserAgentStyleSheet[1999]; +extern const char mediaControlsUserAgentStyleSheet[2346]; } diff --git a/src/3rdparty/webkit/WebCore/generated/UserAgentStyleSheetsData.cpp b/src/3rdparty/webkit/WebCore/generated/UserAgentStyleSheetsData.cpp index efc6b9a..a6915e6 100644 --- a/src/3rdparty/webkit/WebCore/generated/UserAgentStyleSheetsData.cpp +++ b/src/3rdparty/webkit/WebCore/generated/UserAgentStyleSheetsData.cpp @@ -1,5 +1,5 @@ namespace WebCore { -extern const char html4UserAgentStyleSheet[8585] = { +extern const char htmlUserAgentStyleSheet[8502] = { 110, 97, 109, 101, 115, 112, 97, 99, 101, 32, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 119, 51, 46, 111, 114, 103, 47, 49, 57, 57, 57, 47, 120, 104, 116, 109, 108, 34, 59, 32, 104, 116, 109, 108, 32, 123, @@ -531,12 +531,7 @@ extern const char html4UserAgentStyleSheet[8585] = { 123, 32, 98, 111, 114, 100, 101, 114, 45, 99, 111, 108, 111, 114, 58, 32, 105, 110, 104, 101, 114, 105, 116, 32, 125, 32, 105, 102, 114, 97, 109, 101, 32, 123, 32, 98, 111, 114, 100, 101, 114, 58, 32, 50, 112, 120, 32, 105, - 110, 115, 101, 116, 32, 125, 32, 105, 109, 103, 44, 32, 105, 110, 112, 117, - 116, 91, 116, 121, 112, 101, 61, 105, 109, 97, 103, 101, 93, 44, 32, 118, - 105, 100, 101, 111, 44, 32, 105, 102, 114, 97, 109, 101, 44, 32, 111, 98, - 106, 101, 99, 116, 44, 32, 101, 109, 98, 101, 100, 44, 32, 97, 112, 112, - 108, 101, 116, 32, 123, 32, 111, 118, 101, 114, 102, 108, 111, 119, 58, 32, - 104, 105, 100, 100, 101, 110, 59, 32, 125 + 110, 115, 101, 116, 32, 125 }; extern const char quirksUserAgentStyleSheet[359] = { 105, 109, 103, 91, 97, 108, 105, 103, 110, 61, 34, 108, 101, 102, 116, 34, @@ -903,7 +898,7 @@ extern const char wmlUserAgentStyleSheet[2956] = { 32, 99, 111, 108, 111, 114, 58, 32, 45, 119, 101, 98, 107, 105, 116, 45, 97, 99, 116, 105, 118, 101, 108, 105, 110, 107, 32, 125 }; -extern const char mediaControlsUserAgentStyleSheet[1999] = { +extern const char mediaControlsUserAgentStyleSheet[2346] = { 97, 117, 100, 105, 111, 32, 123, 32, 119, 105, 100, 116, 104, 58, 32, 50, 48, 48, 112, 120, 59, 32, 104, 101, 105, 103, 104, 116, 58, 32, 49, 54, 112, 120, 59, 32, 125, 32, 97, 117, 100, 105, 111, 58, 58, 45, 119, 101, @@ -914,120 +909,142 @@ extern const char mediaControlsUserAgentStyleSheet[1999] = { 32, 100, 105, 115, 112, 108, 97, 121, 58, 32, 45, 119, 101, 98, 107, 105, 116, 45, 98, 111, 120, 59, 32, 45, 119, 101, 98, 107, 105, 116, 45, 98, 111, 120, 45, 111, 114, 105, 101, 110, 116, 58, 32, 104, 111, 114, 105, 122, - 111, 110, 116, 97, 108, 59, 32, 45, 119, 101, 98, 107, 105, 116, 45, 117, - 115, 101, 114, 45, 115, 101, 108, 101, 99, 116, 58, 32, 110, 111, 110, 101, - 59, 32, 112, 111, 115, 105, 116, 105, 111, 110, 58, 32, 97, 98, 115, 111, - 108, 117, 116, 101, 59, 32, 98, 111, 116, 116, 111, 109, 58, 32, 48, 59, - 32, 119, 105, 100, 116, 104, 58, 32, 49, 48, 48, 37, 59, 32, 122, 45, - 105, 110, 100, 101, 120, 58, 32, 48, 59, 32, 111, 118, 101, 114, 102, 108, - 111, 119, 58, 32, 104, 105, 100, 100, 101, 110, 59, 32, 104, 101, 105, 103, - 104, 116, 58, 32, 49, 54, 112, 120, 59, 32, 116, 101, 120, 116, 45, 97, - 108, 105, 103, 110, 58, 32, 114, 105, 103, 104, 116, 59, 32, 125, 32, 118, - 105, 100, 101, 111, 58, 45, 119, 101, 98, 107, 105, 116, 45, 102, 117, 108, - 108, 45, 112, 97, 103, 101, 45, 109, 101, 100, 105, 97, 58, 58, 45, 119, - 101, 98, 107, 105, 116, 45, 109, 101, 100, 105, 97, 45, 99, 111, 110, 116, - 114, 111, 108, 115, 45, 112, 97, 110, 101, 108, 32, 123, 32, 98, 111, 116, - 116, 111, 109, 58, 32, 45, 49, 54, 112, 120, 59, 32, 125, 32, 97, 117, - 100, 105, 111, 58, 58, 45, 119, 101, 98, 107, 105, 116, 45, 109, 101, 100, - 105, 97, 45, 99, 111, 110, 116, 114, 111, 108, 115, 45, 109, 117, 116, 101, - 45, 98, 117, 116, 116, 111, 110, 44, 32, 118, 105, 100, 101, 111, 58, 58, + 111, 110, 116, 97, 108, 59, 32, 45, 119, 101, 98, 107, 105, 116, 45, 98, + 111, 120, 45, 97, 108, 105, 103, 110, 58, 32, 99, 101, 110, 116, 101, 114, + 59, 32, 45, 119, 101, 98, 107, 105, 116, 45, 117, 115, 101, 114, 45, 115, + 101, 108, 101, 99, 116, 58, 32, 110, 111, 110, 101, 59, 32, 112, 111, 115, + 105, 116, 105, 111, 110, 58, 32, 97, 98, 115, 111, 108, 117, 116, 101, 59, + 32, 98, 111, 116, 116, 111, 109, 58, 32, 48, 59, 32, 119, 105, 100, 116, + 104, 58, 32, 49, 48, 48, 37, 59, 32, 122, 45, 105, 110, 100, 101, 120, + 58, 32, 48, 59, 32, 111, 118, 101, 114, 102, 108, 111, 119, 58, 32, 104, + 105, 100, 100, 101, 110, 59, 32, 104, 101, 105, 103, 104, 116, 58, 32, 49, + 54, 112, 120, 59, 32, 116, 101, 120, 116, 45, 97, 108, 105, 103, 110, 58, + 32, 114, 105, 103, 104, 116, 59, 32, 125, 32, 118, 105, 100, 101, 111, 58, + 45, 119, 101, 98, 107, 105, 116, 45, 102, 117, 108, 108, 45, 112, 97, 103, + 101, 45, 109, 101, 100, 105, 97, 58, 58, 45, 119, 101, 98, 107, 105, 116, + 45, 109, 101, 100, 105, 97, 45, 99, 111, 110, 116, 114, 111, 108, 115, 45, + 112, 97, 110, 101, 108, 32, 123, 32, 98, 111, 116, 116, 111, 109, 58, 32, + 45, 49, 54, 112, 120, 59, 32, 125, 32, 97, 117, 100, 105, 111, 58, 58, 45, 119, 101, 98, 107, 105, 116, 45, 109, 101, 100, 105, 97, 45, 99, 111, 110, 116, 114, 111, 108, 115, 45, 109, 117, 116, 101, 45, 98, 117, 116, 116, - 111, 110, 32, 123, 32, 45, 119, 101, 98, 107, 105, 116, 45, 97, 112, 112, - 101, 97, 114, 97, 110, 99, 101, 58, 32, 109, 101, 100, 105, 97, 45, 109, - 117, 116, 101, 45, 98, 117, 116, 116, 111, 110, 59, 32, 100, 105, 115, 112, + 111, 110, 44, 32, 118, 105, 100, 101, 111, 58, 58, 45, 119, 101, 98, 107, + 105, 116, 45, 109, 101, 100, 105, 97, 45, 99, 111, 110, 116, 114, 111, 108, + 115, 45, 109, 117, 116, 101, 45, 98, 117, 116, 116, 111, 110, 32, 123, 32, + 45, 119, 101, 98, 107, 105, 116, 45, 97, 112, 112, 101, 97, 114, 97, 110, + 99, 101, 58, 32, 109, 101, 100, 105, 97, 45, 109, 117, 116, 101, 45, 98, + 117, 116, 116, 111, 110, 59, 32, 100, 105, 115, 112, 108, 97, 121, 58, 32, + 45, 119, 101, 98, 107, 105, 116, 45, 98, 111, 120, 59, 32, 119, 105, 100, + 116, 104, 58, 32, 49, 54, 112, 120, 59, 32, 104, 101, 105, 103, 104, 116, + 58, 32, 49, 54, 112, 120, 59, 32, 125, 32, 97, 117, 100, 105, 111, 58, + 58, 45, 119, 101, 98, 107, 105, 116, 45, 109, 101, 100, 105, 97, 45, 99, + 111, 110, 116, 114, 111, 108, 115, 45, 112, 108, 97, 121, 45, 98, 117, 116, + 116, 111, 110, 44, 32, 118, 105, 100, 101, 111, 58, 58, 45, 119, 101, 98, + 107, 105, 116, 45, 109, 101, 100, 105, 97, 45, 99, 111, 110, 116, 114, 111, + 108, 115, 45, 112, 108, 97, 121, 45, 98, 117, 116, 116, 111, 110, 32, 123, + 32, 45, 119, 101, 98, 107, 105, 116, 45, 97, 112, 112, 101, 97, 114, 97, + 110, 99, 101, 58, 32, 109, 101, 100, 105, 97, 45, 112, 108, 97, 121, 45, + 98, 117, 116, 116, 111, 110, 59, 32, 100, 105, 115, 112, 108, 97, 121, 58, + 32, 45, 119, 101, 98, 107, 105, 116, 45, 98, 111, 120, 59, 32, 119, 105, + 100, 116, 104, 58, 32, 49, 54, 112, 120, 59, 32, 104, 101, 105, 103, 104, + 116, 58, 32, 49, 54, 112, 120, 59, 32, 125, 32, 97, 117, 100, 105, 111, + 58, 58, 45, 119, 101, 98, 107, 105, 116, 45, 109, 101, 100, 105, 97, 45, + 99, 111, 110, 116, 114, 111, 108, 115, 45, 116, 105, 109, 101, 108, 105, 110, + 101, 45, 99, 111, 110, 116, 97, 105, 110, 101, 114, 44, 32, 118, 105, 100, + 101, 111, 58, 58, 45, 119, 101, 98, 107, 105, 116, 45, 109, 101, 100, 105, + 97, 45, 99, 111, 110, 116, 114, 111, 108, 115, 45, 116, 105, 109, 101, 108, + 105, 110, 101, 45, 99, 111, 110, 116, 97, 105, 110, 101, 114, 32, 123, 32, + 45, 119, 101, 98, 107, 105, 116, 45, 97, 112, 112, 101, 97, 114, 97, 110, + 99, 101, 58, 32, 109, 101, 100, 105, 97, 45, 99, 111, 110, 116, 114, 111, + 108, 115, 45, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 59, 32, 100, + 105, 115, 112, 108, 97, 121, 58, 32, 45, 119, 101, 98, 107, 105, 116, 45, + 98, 111, 120, 59, 32, 45, 119, 101, 98, 107, 105, 116, 45, 98, 111, 120, + 45, 111, 114, 105, 101, 110, 116, 58, 32, 104, 111, 114, 105, 122, 111, 110, + 116, 97, 108, 59, 32, 45, 119, 101, 98, 107, 105, 116, 45, 98, 111, 120, + 45, 97, 108, 105, 103, 110, 58, 32, 99, 101, 110, 116, 101, 114, 59, 32, + 45, 119, 101, 98, 107, 105, 116, 45, 98, 111, 120, 45, 112, 97, 99, 107, + 58, 32, 101, 110, 100, 59, 32, 45, 119, 101, 98, 107, 105, 116, 45, 98, + 111, 120, 45, 102, 108, 101, 120, 58, 32, 49, 59, 32, 45, 119, 101, 98, + 107, 105, 116, 45, 117, 115, 101, 114, 45, 115, 101, 108, 101, 99, 116, 58, + 32, 110, 111, 110, 101, 59, 32, 104, 101, 105, 103, 104, 116, 58, 32, 49, + 54, 112, 120, 59, 32, 125, 32, 97, 117, 100, 105, 111, 58, 58, 45, 119, + 101, 98, 107, 105, 116, 45, 109, 101, 100, 105, 97, 45, 99, 111, 110, 116, + 114, 111, 108, 115, 45, 99, 117, 114, 114, 101, 110, 116, 45, 116, 105, 109, + 101, 45, 100, 105, 115, 112, 108, 97, 121, 44, 32, 118, 105, 100, 101, 111, + 58, 58, 45, 119, 101, 98, 107, 105, 116, 45, 109, 101, 100, 105, 97, 45, + 99, 111, 110, 116, 114, 111, 108, 115, 45, 99, 117, 114, 114, 101, 110, 116, + 45, 116, 105, 109, 101, 45, 100, 105, 115, 112, 108, 97, 121, 32, 123, 32, + 100, 105, 115, 112, 108, 97, 121, 58, 32, 110, 111, 110, 101, 59, 32, 125, + 32, 97, 117, 100, 105, 111, 58, 58, 45, 119, 101, 98, 107, 105, 116, 45, + 109, 101, 100, 105, 97, 45, 99, 111, 110, 116, 114, 111, 108, 115, 45, 116, + 105, 109, 101, 45, 114, 101, 109, 97, 105, 110, 105, 110, 103, 45, 100, 105, + 115, 112, 108, 97, 121, 44, 32, 118, 105, 100, 101, 111, 58, 58, 45, 119, + 101, 98, 107, 105, 116, 45, 109, 101, 100, 105, 97, 45, 99, 111, 110, 116, + 114, 111, 108, 115, 45, 116, 105, 109, 101, 45, 114, 101, 109, 97, 105, 110, + 105, 110, 103, 45, 100, 105, 115, 112, 108, 97, 121, 32, 123, 32, 100, 105, + 115, 112, 108, 97, 121, 58, 32, 110, 111, 110, 101, 59, 32, 125, 32, 97, + 117, 100, 105, 111, 58, 58, 45, 119, 101, 98, 107, 105, 116, 45, 109, 101, + 100, 105, 97, 45, 99, 111, 110, 116, 114, 111, 108, 115, 45, 116, 105, 109, + 101, 108, 105, 110, 101, 44, 32, 118, 105, 100, 101, 111, 58, 58, 45, 119, + 101, 98, 107, 105, 116, 45, 109, 101, 100, 105, 97, 45, 99, 111, 110, 116, + 114, 111, 108, 115, 45, 116, 105, 109, 101, 108, 105, 110, 101, 32, 123, 32, + 45, 119, 101, 98, 107, 105, 116, 45, 97, 112, 112, 101, 97, 114, 97, 110, + 99, 101, 58, 32, 109, 101, 100, 105, 97, 45, 115, 108, 105, 100, 101, 114, + 59, 32, 100, 105, 115, 112, 108, 97, 121, 58, 32, 45, 119, 101, 98, 107, + 105, 116, 45, 98, 111, 120, 59, 32, 45, 119, 101, 98, 107, 105, 116, 45, + 98, 111, 120, 45, 102, 108, 101, 120, 58, 32, 49, 59, 32, 104, 101, 105, + 103, 104, 116, 58, 32, 49, 54, 112, 120, 59, 32, 112, 97, 100, 100, 105, + 110, 103, 58, 32, 48, 112, 120, 32, 50, 112, 120, 59, 32, 125, 32, 97, + 117, 100, 105, 111, 58, 58, 45, 119, 101, 98, 107, 105, 116, 45, 109, 101, + 100, 105, 97, 45, 99, 111, 110, 116, 114, 111, 108, 115, 45, 115, 101, 101, + 107, 45, 98, 97, 99, 107, 45, 98, 117, 116, 116, 111, 110, 44, 32, 118, + 105, 100, 101, 111, 58, 58, 45, 119, 101, 98, 107, 105, 116, 45, 109, 101, + 100, 105, 97, 45, 99, 111, 110, 116, 114, 111, 108, 115, 45, 115, 101, 101, + 107, 45, 98, 97, 99, 107, 45, 98, 117, 116, 116, 111, 110, 32, 123, 32, + 45, 119, 101, 98, 107, 105, 116, 45, 97, 112, 112, 101, 97, 114, 97, 110, + 99, 101, 58, 32, 109, 101, 100, 105, 97, 45, 115, 101, 101, 107, 45, 98, + 97, 99, 107, 45, 98, 117, 116, 116, 111, 110, 59, 32, 100, 105, 115, 112, 108, 97, 121, 58, 32, 45, 119, 101, 98, 107, 105, 116, 45, 98, 111, 120, 59, 32, 119, 105, 100, 116, 104, 58, 32, 49, 54, 112, 120, 59, 32, 104, 101, 105, 103, 104, 116, 58, 32, 49, 54, 112, 120, 59, 32, 125, 32, 97, 117, 100, 105, 111, 58, 58, 45, 119, 101, 98, 107, 105, 116, 45, 109, 101, - 100, 105, 97, 45, 99, 111, 110, 116, 114, 111, 108, 115, 45, 112, 108, 97, - 121, 45, 98, 117, 116, 116, 111, 110, 44, 32, 118, 105, 100, 101, 111, 58, - 58, 45, 119, 101, 98, 107, 105, 116, 45, 109, 101, 100, 105, 97, 45, 99, - 111, 110, 116, 114, 111, 108, 115, 45, 112, 108, 97, 121, 45, 98, 117, 116, - 116, 111, 110, 32, 123, 32, 45, 119, 101, 98, 107, 105, 116, 45, 97, 112, - 112, 101, 97, 114, 97, 110, 99, 101, 58, 32, 109, 101, 100, 105, 97, 45, - 112, 108, 97, 121, 45, 98, 117, 116, 116, 111, 110, 59, 32, 100, 105, 115, - 112, 108, 97, 121, 58, 32, 45, 119, 101, 98, 107, 105, 116, 45, 98, 111, - 120, 59, 32, 119, 105, 100, 116, 104, 58, 32, 49, 54, 112, 120, 59, 32, - 104, 101, 105, 103, 104, 116, 58, 32, 49, 54, 112, 120, 59, 32, 125, 32, - 97, 117, 100, 105, 111, 58, 58, 45, 119, 101, 98, 107, 105, 116, 45, 109, - 101, 100, 105, 97, 45, 99, 111, 110, 116, 114, 111, 108, 115, 45, 116, 105, - 109, 101, 108, 105, 110, 101, 45, 99, 111, 110, 116, 97, 105, 110, 101, 114, + 100, 105, 97, 45, 99, 111, 110, 116, 114, 111, 108, 115, 45, 115, 101, 101, + 107, 45, 102, 111, 114, 119, 97, 114, 100, 45, 98, 117, 116, 116, 111, 110, 44, 32, 118, 105, 100, 101, 111, 58, 58, 45, 119, 101, 98, 107, 105, 116, 45, 109, 101, 100, 105, 97, 45, 99, 111, 110, 116, 114, 111, 108, 115, 45, - 116, 105, 109, 101, 108, 105, 110, 101, 45, 99, 111, 110, 116, 97, 105, 110, - 101, 114, 32, 123, 32, 45, 119, 101, 98, 107, 105, 116, 45, 97, 112, 112, - 101, 97, 114, 97, 110, 99, 101, 58, 32, 109, 101, 100, 105, 97, 45, 116, - 105, 109, 101, 108, 105, 110, 101, 45, 99, 111, 110, 116, 97, 105, 110, 101, - 114, 59, 32, 100, 105, 115, 112, 108, 97, 121, 58, 32, 45, 119, 101, 98, - 107, 105, 116, 45, 98, 111, 120, 59, 32, 45, 119, 101, 98, 107, 105, 116, - 45, 98, 111, 120, 45, 111, 114, 105, 101, 110, 116, 58, 32, 104, 111, 114, - 105, 122, 111, 110, 116, 97, 108, 59, 32, 45, 119, 101, 98, 107, 105, 116, - 45, 98, 111, 120, 45, 97, 108, 105, 103, 110, 58, 32, 99, 101, 110, 116, - 101, 114, 59, 32, 45, 119, 101, 98, 107, 105, 116, 45, 98, 111, 120, 45, - 112, 97, 99, 107, 58, 32, 101, 110, 100, 59, 32, 45, 119, 101, 98, 107, - 105, 116, 45, 98, 111, 120, 45, 102, 108, 101, 120, 58, 32, 49, 59, 32, - 45, 119, 101, 98, 107, 105, 116, 45, 117, 115, 101, 114, 45, 115, 101, 108, - 101, 99, 116, 58, 32, 110, 111, 110, 101, 59, 32, 104, 101, 105, 103, 104, + 115, 101, 101, 107, 45, 102, 111, 114, 119, 97, 114, 100, 45, 98, 117, 116, + 116, 111, 110, 32, 123, 32, 45, 119, 101, 98, 107, 105, 116, 45, 97, 112, + 112, 101, 97, 114, 97, 110, 99, 101, 58, 32, 109, 101, 100, 105, 97, 45, + 115, 101, 101, 107, 45, 102, 111, 114, 119, 97, 114, 100, 45, 98, 117, 116, + 116, 111, 110, 59, 32, 100, 105, 115, 112, 108, 97, 121, 58, 32, 45, 119, + 101, 98, 107, 105, 116, 45, 98, 111, 120, 59, 32, 119, 105, 100, 116, 104, + 58, 32, 49, 54, 112, 120, 59, 32, 104, 101, 105, 103, 104, 116, 58, 32, + 49, 54, 112, 120, 59, 32, 125, 32, 97, 117, 100, 105, 111, 58, 58, 45, + 119, 101, 98, 107, 105, 116, 45, 109, 101, 100, 105, 97, 45, 99, 111, 110, + 116, 114, 111, 108, 115, 45, 102, 117, 108, 108, 115, 99, 114, 101, 101, 110, + 45, 98, 117, 116, 116, 111, 110, 44, 32, 118, 105, 100, 101, 111, 58, 58, + 45, 119, 101, 98, 107, 105, 116, 45, 109, 101, 100, 105, 97, 45, 99, 111, + 110, 116, 114, 111, 108, 115, 45, 102, 117, 108, 108, 115, 99, 114, 101, 101, + 110, 45, 98, 117, 116, 116, 111, 110, 32, 123, 32, 45, 119, 101, 98, 107, + 105, 116, 45, 97, 112, 112, 101, 97, 114, 97, 110, 99, 101, 58, 32, 109, + 101, 100, 105, 97, 45, 102, 117, 108, 108, 115, 99, 114, 101, 101, 110, 45, + 98, 117, 116, 116, 111, 110, 59, 32, 100, 105, 115, 112, 108, 97, 121, 58, + 32, 45, 119, 101, 98, 107, 105, 116, 45, 98, 111, 120, 59, 32, 119, 105, + 100, 116, 104, 58, 32, 49, 54, 112, 120, 59, 32, 104, 101, 105, 103, 104, 116, 58, 32, 49, 54, 112, 120, 59, 32, 125, 32, 97, 117, 100, 105, 111, 58, 58, 45, 119, 101, 98, 107, 105, 116, 45, 109, 101, 100, 105, 97, 45, - 99, 111, 110, 116, 114, 111, 108, 115, 45, 99, 117, 114, 114, 101, 110, 116, - 45, 116, 105, 109, 101, 45, 100, 105, 115, 112, 108, 97, 121, 44, 32, 118, - 105, 100, 101, 111, 58, 58, 45, 119, 101, 98, 107, 105, 116, 45, 109, 101, - 100, 105, 97, 45, 99, 111, 110, 116, 114, 111, 108, 115, 45, 99, 117, 114, - 114, 101, 110, 116, 45, 116, 105, 109, 101, 45, 100, 105, 115, 112, 108, 97, - 121, 32, 123, 32, 100, 105, 115, 112, 108, 97, 121, 58, 32, 110, 111, 110, - 101, 59, 32, 125, 32, 97, 117, 100, 105, 111, 58, 58, 45, 119, 101, 98, - 107, 105, 116, 45, 109, 101, 100, 105, 97, 45, 99, 111, 110, 116, 114, 111, - 108, 115, 45, 116, 105, 109, 101, 45, 114, 101, 109, 97, 105, 110, 105, 110, - 103, 45, 100, 105, 115, 112, 108, 97, 121, 44, 32, 118, 105, 100, 101, 111, - 58, 58, 45, 119, 101, 98, 107, 105, 116, 45, 109, 101, 100, 105, 97, 45, - 99, 111, 110, 116, 114, 111, 108, 115, 45, 116, 105, 109, 101, 45, 114, 101, - 109, 97, 105, 110, 105, 110, 103, 45, 100, 105, 115, 112, 108, 97, 121, 32, - 123, 32, 100, 105, 115, 112, 108, 97, 121, 58, 32, 110, 111, 110, 101, 59, - 32, 125, 32, 97, 117, 100, 105, 111, 58, 58, 45, 119, 101, 98, 107, 105, - 116, 45, 109, 101, 100, 105, 97, 45, 99, 111, 110, 116, 114, 111, 108, 115, - 45, 116, 105, 109, 101, 108, 105, 110, 101, 44, 32, 118, 105, 100, 101, 111, - 58, 58, 45, 119, 101, 98, 107, 105, 116, 45, 109, 101, 100, 105, 97, 45, - 99, 111, 110, 116, 114, 111, 108, 115, 45, 116, 105, 109, 101, 108, 105, 110, - 101, 32, 123, 32, 45, 119, 101, 98, 107, 105, 116, 45, 97, 112, 112, 101, - 97, 114, 97, 110, 99, 101, 58, 32, 109, 101, 100, 105, 97, 45, 115, 108, - 105, 100, 101, 114, 59, 32, 100, 105, 115, 112, 108, 97, 121, 58, 32, 45, - 119, 101, 98, 107, 105, 116, 45, 98, 111, 120, 59, 32, 45, 119, 101, 98, - 107, 105, 116, 45, 98, 111, 120, 45, 102, 108, 101, 120, 58, 32, 49, 59, - 32, 104, 101, 105, 103, 104, 116, 58, 32, 49, 54, 112, 120, 59, 32, 112, - 97, 100, 100, 105, 110, 103, 58, 32, 48, 112, 120, 32, 50, 112, 120, 59, - 32, 125, 32, 97, 117, 100, 105, 111, 58, 58, 45, 119, 101, 98, 107, 105, - 116, 45, 109, 101, 100, 105, 97, 45, 99, 111, 110, 116, 114, 111, 108, 115, - 45, 115, 101, 101, 107, 45, 98, 97, 99, 107, 45, 98, 117, 116, 116, 111, - 110, 44, 32, 118, 105, 100, 101, 111, 58, 58, 45, 119, 101, 98, 107, 105, - 116, 45, 109, 101, 100, 105, 97, 45, 99, 111, 110, 116, 114, 111, 108, 115, - 45, 115, 101, 101, 107, 45, 98, 97, 99, 107, 45, 98, 117, 116, 116, 111, - 110, 32, 123, 32, 45, 119, 101, 98, 107, 105, 116, 45, 97, 112, 112, 101, - 97, 114, 97, 110, 99, 101, 58, 32, 109, 101, 100, 105, 97, 45, 115, 101, - 101, 107, 45, 98, 97, 99, 107, 45, 98, 117, 116, 116, 111, 110, 59, 32, - 100, 105, 115, 112, 108, 97, 121, 58, 32, 45, 119, 101, 98, 107, 105, 116, - 45, 98, 111, 120, 59, 32, 119, 105, 100, 116, 104, 58, 32, 49, 54, 112, - 120, 59, 32, 104, 101, 105, 103, 104, 116, 58, 32, 49, 54, 112, 120, 59, - 32, 125, 32, 97, 117, 100, 105, 111, 58, 58, 45, 119, 101, 98, 107, 105, - 116, 45, 109, 101, 100, 105, 97, 45, 99, 111, 110, 116, 114, 111, 108, 115, - 45, 115, 101, 101, 107, 45, 102, 111, 114, 119, 97, 114, 100, 45, 98, 117, - 116, 116, 111, 110, 44, 32, 118, 105, 100, 101, 111, 58, 58, 45, 119, 101, - 98, 107, 105, 116, 45, 109, 101, 100, 105, 97, 45, 99, 111, 110, 116, 114, - 111, 108, 115, 45, 115, 101, 101, 107, 45, 102, 111, 114, 119, 97, 114, 100, - 45, 98, 117, 116, 116, 111, 110, 32, 123, 32, 45, 119, 101, 98, 107, 105, - 116, 45, 97, 112, 112, 101, 97, 114, 97, 110, 99, 101, 58, 32, 109, 101, - 100, 105, 97, 45, 115, 101, 101, 107, 45, 102, 111, 114, 119, 97, 114, 100, - 45, 98, 117, 116, 116, 111, 110, 59, 32, 100, 105, 115, 112, 108, 97, 121, - 58, 32, 45, 119, 101, 98, 107, 105, 116, 45, 98, 111, 120, 59, 32, 119, - 105, 100, 116, 104, 58, 32, 49, 54, 112, 120, 59, 32, 104, 101, 105, 103, - 104, 116, 58, 32, 49, 54, 112, 120, 59, 32, 125, 32, 97, 117, 100, 105, - 111, 58, 58, 45, 119, 101, 98, 107, 105, 116, 45, 109, 101, 100, 105, 97, - 45, 99, 111, 110, 116, 114, 111, 108, 115, 45, 102, 117, 108, 108, 115, 99, - 114, 101, 101, 110, 45, 98, 117, 116, 116, 111, 110, 44, 32, 118, 105, 100, - 101, 111, 58, 58, 45, 119, 101, 98, 107, 105, 116, 45, 109, 101, 100, 105, - 97, 45, 99, 111, 110, 116, 114, 111, 108, 115, 45, 102, 117, 108, 108, 115, - 99, 114, 101, 101, 110, 45, 98, 117, 116, 116, 111, 110, 32, 123, 32, 100, - 105, 115, 112, 108, 97, 121, 58, 32, 110, 111, 110, 101, 59, 32, 125 + 99, 111, 110, 116, 114, 111, 108, 115, 45, 114, 101, 119, 105, 110, 100, 45, + 98, 117, 116, 116, 111, 110, 44, 32, 118, 105, 100, 101, 111, 58, 58, 45, + 119, 101, 98, 107, 105, 116, 45, 109, 101, 100, 105, 97, 45, 99, 111, 110, + 116, 114, 111, 108, 115, 45, 114, 101, 119, 105, 110, 100, 45, 98, 117, 116, + 116, 111, 110, 32, 123, 32, 100, 105, 115, 112, 108, 97, 121, 58, 32, 110, + 111, 110, 101, 59, 32, 125, 32, 97, 117, 100, 105, 111, 58, 58, 45, 119, + 101, 98, 107, 105, 116, 45, 109, 101, 100, 105, 97, 45, 99, 111, 110, 116, + 114, 111, 108, 115, 45, 114, 101, 116, 117, 114, 110, 45, 116, 111, 45, 114, + 101, 97, 108, 116, 105, 109, 101, 45, 98, 117, 116, 116, 111, 110, 44, 32, + 118, 105, 100, 101, 111, 58, 58, 45, 119, 101, 98, 107, 105, 116, 45, 109, + 101, 100, 105, 97, 45, 99, 111, 110, 116, 114, 111, 108, 115, 45, 114, 101, + 116, 117, 114, 110, 45, 116, 111, 45, 114, 101, 97, 108, 116, 105, 109, 101, + 45, 98, 117, 116, 116, 111, 110, 32, 123, 32, 100, 105, 115, 112, 108, 97, + 121, 58, 32, 110, 111, 110, 101, 59, 32, 125 }; } diff --git a/src/3rdparty/webkit/WebCore/generated/XPathGrammar.cpp b/src/3rdparty/webkit/WebCore/generated/XPathGrammar.cpp index d06adf6..1872980 100644 --- a/src/3rdparty/webkit/WebCore/generated/XPathGrammar.cpp +++ b/src/3rdparty/webkit/WebCore/generated/XPathGrammar.cpp @@ -1,24 +1,23 @@ -/* A Bison parser, made by GNU Bison 2.3. */ -/* Skeleton implementation for Bison's Yacc-like parsers in C +/* A Bison parser, made by GNU Bison 2.4.1. */ - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +/* Skeleton implementation for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -29,7 +28,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -47,7 +46,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.3" +#define YYBISON_VERSION "2.4.1" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -55,69 +54,28 @@ /* Pure parsers. */ #define YYPURE 1 +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + /* Using locations. */ #define YYLSP_NEEDED 0 /* Substitute the variable and function names. */ -#define yyparse xpathyyparse -#define yylex xpathyylex -#define yyerror xpathyyerror -#define yylval xpathyylval -#define yychar xpathyychar -#define yydebug xpathyydebug -#define yynerrs xpathyynerrs - - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - MULOP = 258, - RELOP = 259, - EQOP = 260, - MINUS = 261, - PLUS = 262, - AND = 263, - OR = 264, - AXISNAME = 265, - NODETYPE = 266, - PI = 267, - FUNCTIONNAME = 268, - LITERAL = 269, - VARIABLEREFERENCE = 270, - NUMBER = 271, - DOTDOT = 272, - SLASHSLASH = 273, - NAMETEST = 274, - XPATH_ERROR = 275 - }; -#endif -/* Tokens. */ -#define MULOP 258 -#define RELOP 259 -#define EQOP 260 -#define MINUS 261 -#define PLUS 262 -#define AND 263 -#define OR 264 -#define AXISNAME 265 -#define NODETYPE 266 -#define PI 267 -#define FUNCTIONNAME 268 -#define LITERAL 269 -#define VARIABLEREFERENCE 270 -#define NUMBER 271 -#define DOTDOT 272 -#define SLASHSLASH 273 -#define NAMETEST 274 -#define XPATH_ERROR 275 - - +#define yyparse xpathyyparse +#define yylex xpathyylex +#define yyerror xpathyyerror +#define yylval xpathyylval +#define yychar xpathyychar +#define yydebug xpathyydebug +#define yynerrs xpathyynerrs /* Copy the first part of user declarations. */ + +/* Line 189 of yacc.c */ #line 28 "../xml/XPathGrammar.y" @@ -144,6 +102,9 @@ using namespace XPath; +/* Line 189 of yacc.c */ +#line 107 "WebCore/tmp/../generated/XPathGrammar.tab.c" + /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 @@ -162,10 +123,43 @@ using namespace XPath; # define YYTOKEN_TABLE 0 #endif + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + MULOP = 258, + RELOP = 259, + EQOP = 260, + MINUS = 261, + PLUS = 262, + AND = 263, + OR = 264, + AXISNAME = 265, + NODETYPE = 266, + PI = 267, + FUNCTIONNAME = 268, + LITERAL = 269, + VARIABLEREFERENCE = 270, + NUMBER = 271, + DOTDOT = 272, + SLASHSLASH = 273, + NAMETEST = 274, + XPATH_ERROR = 275 + }; +#endif + + + #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 56 "../xml/XPathGrammar.y" { + +/* Line 214 of yacc.c */ +#line 56 "../xml/XPathGrammar.y" + Step::Axis axis; Step::NodeTest* nodeTest; NumericOp::Opcode numop; @@ -176,18 +170,21 @@ typedef union YYSTYPE Vector<Expression*>* argList; Step* step; LocationPath* locationPath; -} -/* Line 187 of yacc.c. */ -#line 182 "WebCore/tmp/../generated/XPathGrammar.tab.c" - YYSTYPE; + + + +/* Line 214 of yacc.c */ +#line 178 "WebCore/tmp/../generated/XPathGrammar.tab.c" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif - /* Copy the second part of user declarations. */ + +/* Line 264 of yacc.c */ #line 69 "../xml/XPathGrammar.y" @@ -196,8 +193,8 @@ static void xpathyyerror(const char*) { } -/* Line 216 of yacc.c. */ -#line 201 "WebCore/tmp/../generated/XPathGrammar.tab.c" +/* Line 264 of yacc.c */ +#line 198 "WebCore/tmp/../generated/XPathGrammar.tab.c" #ifdef short # undef short @@ -272,14 +269,14 @@ typedef short int yytype_int16; #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static int -YYID (int i) +YYID (int yyi) #else static int -YYID (i) - int i; +YYID (yyi) + int yyi; #endif { - return i; + return yyi; } #endif @@ -360,9 +357,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss; - YYSTYPE yyvs; - }; + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; +}; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) @@ -396,12 +393,12 @@ union yyalloc elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack) \ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ @@ -854,17 +851,20 @@ yy_symbol_print (yyoutput, yytype, yyvaluep) #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) #else static void -yy_stack_print (bottom, top) - yytype_int16 *bottom; - yytype_int16 *top; +yy_stack_print (yybottom, yytop) + yytype_int16 *yybottom; + yytype_int16 *yytop; #endif { YYFPRINTF (stderr, "Stack now"); - for (; bottom <= top; ++bottom) - YYFPRINTF (stderr, " %d", *bottom); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } YYFPRINTF (stderr, "\n"); } @@ -898,11 +898,11 @@ yy_reduce_print (yyvsp, yyrule) /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { - fprintf (stderr, " $%d = ", yyi + 1); + YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]) ); - fprintf (stderr, "\n"); + YYFPRINTF (stderr, "\n"); } } @@ -1182,10 +1182,8 @@ yydestruct (yymsg, yytype, yyvaluep) break; } } - /* Prevent warnings from -Wmissing-prototypes. */ - #ifdef YYPARSE_PARAM #if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); @@ -1204,10 +1202,9 @@ int yyparse (); - -/*----------. -| yyparse. | -`----------*/ +/*-------------------------. +| yyparse or yypush_parse. | +`-------------------------*/ #ifdef YYPARSE_PARAM #if (defined __STDC__ || defined __C99__FUNC__ \ @@ -1231,74 +1228,75 @@ yyparse () #endif #endif { - /* The look-ahead symbol. */ +/* The lookahead symbol. */ int yychar; -/* The semantic value of the look-ahead symbol. */ +/* The semantic value of the lookahead symbol. */ YYSTYPE yylval; -/* Number of syntax errors so far. */ -int yynerrs; - - int yystate; - int yyn; - int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Look-ahead token as an internal (translated) token number. */ - int yytoken = 0; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif - - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. - - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ + /* Number of syntax errors so far. */ + int yynerrs; - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss = yyssa; - yytype_int16 *yyssp; + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; + /* The stacks and their tools: + `yyss': related to states. + `yyvs': related to semantic values. + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; - YYSIZE_T yystacksize = YYINITDEPTH; + YYSIZE_T yystacksize; + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; + yytoken = 0; + yyss = yyssa; + yyvs = yyvsa; + yystacksize = YYINITDEPTH; + YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ + yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ - yyssp = yyss; yyvsp = yyvs; @@ -1328,7 +1326,6 @@ int yynerrs; YYSTYPE *yyvs1 = yyvs; yytype_int16 *yyss1 = yyss; - /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might @@ -1336,7 +1333,6 @@ int yynerrs; yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); yyss = yyss1; @@ -1359,9 +1355,8 @@ int yynerrs; (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); - + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); @@ -1372,7 +1367,6 @@ int yynerrs; yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); @@ -1382,6 +1376,9 @@ int yynerrs; YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + if (yystate == YYFINAL) + YYACCEPT; + goto yybackup; /*-----------. @@ -1390,16 +1387,16 @@ int yynerrs; yybackup: /* Do appropriate processing given the current state. Read a - look-ahead token if we need one and don't already have one. */ + lookahead token if we need one and don't already have one. */ - /* First try to decide what to do without reference to look-ahead token. */ + /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; - /* Not known => get a look-ahead token if don't already have one. */ + /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); @@ -1431,20 +1428,16 @@ yybackup: goto yyreduce; } - if (yyn == YYFINAL) - YYACCEPT; - /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; - /* Shift the look-ahead token. */ + /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - /* Discard the shifted token unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; + /* Discard the shifted token. */ + yychar = YYEMPTY; yystate = yyn; *++yyvsp = yylval; @@ -1484,6 +1477,8 @@ yyreduce: switch (yyn) { case 2: + +/* Line 1455 of yacc.c */ #line 118 "../xml/XPathGrammar.y" { PARSER->m_topExpr = (yyvsp[(1) - (1)].expr); @@ -1491,6 +1486,8 @@ yyreduce: break; case 3: + +/* Line 1455 of yacc.c */ #line 125 "../xml/XPathGrammar.y" { (yyval.locationPath)->setAbsolute(false); @@ -1498,6 +1495,8 @@ yyreduce: break; case 4: + +/* Line 1455 of yacc.c */ #line 130 "../xml/XPathGrammar.y" { (yyval.locationPath)->setAbsolute(true); @@ -1505,6 +1504,8 @@ yyreduce: break; case 5: + +/* Line 1455 of yacc.c */ #line 137 "../xml/XPathGrammar.y" { (yyval.locationPath) = new LocationPath; @@ -1513,6 +1514,8 @@ yyreduce: break; case 6: + +/* Line 1455 of yacc.c */ #line 143 "../xml/XPathGrammar.y" { (yyval.locationPath) = (yyvsp[(2) - (2)].locationPath); @@ -1520,6 +1523,8 @@ yyreduce: break; case 7: + +/* Line 1455 of yacc.c */ #line 148 "../xml/XPathGrammar.y" { (yyval.locationPath) = (yyvsp[(2) - (2)].locationPath); @@ -1529,6 +1534,8 @@ yyreduce: break; case 8: + +/* Line 1455 of yacc.c */ #line 157 "../xml/XPathGrammar.y" { (yyval.locationPath) = new LocationPath; @@ -1539,6 +1546,8 @@ yyreduce: break; case 9: + +/* Line 1455 of yacc.c */ #line 165 "../xml/XPathGrammar.y" { (yyval.locationPath)->appendStep((yyvsp[(3) - (3)].step)); @@ -1547,6 +1556,8 @@ yyreduce: break; case 10: + +/* Line 1455 of yacc.c */ #line 171 "../xml/XPathGrammar.y" { (yyval.locationPath)->appendStep((yyvsp[(2) - (3)].step)); @@ -1557,6 +1568,8 @@ yyreduce: break; case 11: + +/* Line 1455 of yacc.c */ #line 181 "../xml/XPathGrammar.y" { if ((yyvsp[(2) - (2)].predList)) { @@ -1570,6 +1583,8 @@ yyreduce: break; case 12: + +/* Line 1455 of yacc.c */ #line 192 "../xml/XPathGrammar.y" { String localName; @@ -1590,6 +1605,8 @@ yyreduce: break; case 13: + +/* Line 1455 of yacc.c */ #line 210 "../xml/XPathGrammar.y" { if ((yyvsp[(3) - (3)].predList)) { @@ -1603,6 +1620,8 @@ yyreduce: break; case 14: + +/* Line 1455 of yacc.c */ #line 221 "../xml/XPathGrammar.y" { String localName; @@ -1623,6 +1642,8 @@ yyreduce: break; case 17: + +/* Line 1455 of yacc.c */ #line 245 "../xml/XPathGrammar.y" { (yyval.axis) = Step::AttributeAxis; @@ -1630,6 +1651,8 @@ yyreduce: break; case 18: + +/* Line 1455 of yacc.c */ #line 252 "../xml/XPathGrammar.y" { if (*(yyvsp[(1) - (3)].str) == "node") @@ -1645,6 +1668,8 @@ yyreduce: break; case 19: + +/* Line 1455 of yacc.c */ #line 265 "../xml/XPathGrammar.y" { (yyval.nodeTest) = new Step::NodeTest(Step::NodeTest::ProcessingInstructionNodeTest); @@ -1654,6 +1679,8 @@ yyreduce: break; case 20: + +/* Line 1455 of yacc.c */ #line 272 "../xml/XPathGrammar.y" { (yyval.nodeTest) = new Step::NodeTest(Step::NodeTest::ProcessingInstructionNodeTest, (yyvsp[(3) - (4)].str)->stripWhiteSpace()); @@ -1664,6 +1691,8 @@ yyreduce: break; case 21: + +/* Line 1455 of yacc.c */ #line 282 "../xml/XPathGrammar.y" { (yyval.predList) = 0; @@ -1671,6 +1700,8 @@ yyreduce: break; case 23: + +/* Line 1455 of yacc.c */ #line 291 "../xml/XPathGrammar.y" { (yyval.predList) = new Vector<Predicate*>; @@ -1681,6 +1712,8 @@ yyreduce: break; case 24: + +/* Line 1455 of yacc.c */ #line 299 "../xml/XPathGrammar.y" { (yyval.predList)->append(new Predicate((yyvsp[(2) - (2)].expr))); @@ -1689,6 +1722,8 @@ yyreduce: break; case 25: + +/* Line 1455 of yacc.c */ #line 307 "../xml/XPathGrammar.y" { (yyval.expr) = (yyvsp[(2) - (3)].expr); @@ -1696,6 +1731,8 @@ yyreduce: break; case 26: + +/* Line 1455 of yacc.c */ #line 314 "../xml/XPathGrammar.y" { (yyval.step) = new Step(Step::DescendantOrSelfAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest)); @@ -1704,6 +1741,8 @@ yyreduce: break; case 27: + +/* Line 1455 of yacc.c */ #line 322 "../xml/XPathGrammar.y" { (yyval.step) = new Step(Step::SelfAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest)); @@ -1712,6 +1751,8 @@ yyreduce: break; case 28: + +/* Line 1455 of yacc.c */ #line 328 "../xml/XPathGrammar.y" { (yyval.step) = new Step(Step::ParentAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest)); @@ -1720,6 +1761,8 @@ yyreduce: break; case 29: + +/* Line 1455 of yacc.c */ #line 336 "../xml/XPathGrammar.y" { (yyval.expr) = new VariableReference(*(yyvsp[(1) - (1)].str)); @@ -1729,6 +1772,8 @@ yyreduce: break; case 30: + +/* Line 1455 of yacc.c */ #line 343 "../xml/XPathGrammar.y" { (yyval.expr) = (yyvsp[(2) - (3)].expr); @@ -1736,6 +1781,8 @@ yyreduce: break; case 31: + +/* Line 1455 of yacc.c */ #line 348 "../xml/XPathGrammar.y" { (yyval.expr) = new StringExpression(*(yyvsp[(1) - (1)].str)); @@ -1745,6 +1792,8 @@ yyreduce: break; case 32: + +/* Line 1455 of yacc.c */ #line 355 "../xml/XPathGrammar.y" { (yyval.expr) = new Number((yyvsp[(1) - (1)].str)->toDouble()); @@ -1754,6 +1803,8 @@ yyreduce: break; case 34: + +/* Line 1455 of yacc.c */ #line 366 "../xml/XPathGrammar.y" { (yyval.expr) = createFunction(*(yyvsp[(1) - (3)].str)); @@ -1765,6 +1816,8 @@ yyreduce: break; case 35: + +/* Line 1455 of yacc.c */ #line 375 "../xml/XPathGrammar.y" { (yyval.expr) = createFunction(*(yyvsp[(1) - (4)].str), *(yyvsp[(3) - (4)].argList)); @@ -1777,6 +1830,8 @@ yyreduce: break; case 36: + +/* Line 1455 of yacc.c */ #line 387 "../xml/XPathGrammar.y" { (yyval.argList) = new Vector<Expression*>; @@ -1787,6 +1842,8 @@ yyreduce: break; case 37: + +/* Line 1455 of yacc.c */ #line 395 "../xml/XPathGrammar.y" { (yyval.argList)->append((yyvsp[(3) - (3)].expr)); @@ -1795,6 +1852,8 @@ yyreduce: break; case 40: + +/* Line 1455 of yacc.c */ #line 409 "../xml/XPathGrammar.y" { (yyval.expr) = new Union; @@ -1807,6 +1866,8 @@ yyreduce: break; case 41: + +/* Line 1455 of yacc.c */ #line 421 "../xml/XPathGrammar.y" { (yyval.expr) = (yyvsp[(1) - (1)].locationPath); @@ -1814,6 +1875,8 @@ yyreduce: break; case 43: + +/* Line 1455 of yacc.c */ #line 428 "../xml/XPathGrammar.y" { (yyvsp[(3) - (3)].locationPath)->setAbsolute(true); @@ -1825,6 +1888,8 @@ yyreduce: break; case 44: + +/* Line 1455 of yacc.c */ #line 437 "../xml/XPathGrammar.y" { (yyvsp[(3) - (3)].locationPath)->insertFirstStep((yyvsp[(2) - (3)].step)); @@ -1838,6 +1903,8 @@ yyreduce: break; case 46: + +/* Line 1455 of yacc.c */ #line 452 "../xml/XPathGrammar.y" { (yyval.expr) = new Filter((yyvsp[(1) - (2)].expr), *(yyvsp[(2) - (2)].predList)); @@ -1848,6 +1915,8 @@ yyreduce: break; case 48: + +/* Line 1455 of yacc.c */ #line 464 "../xml/XPathGrammar.y" { (yyval.expr) = new LogicalOp(LogicalOp::OP_Or, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); @@ -1858,6 +1927,8 @@ yyreduce: break; case 50: + +/* Line 1455 of yacc.c */ #line 476 "../xml/XPathGrammar.y" { (yyval.expr) = new LogicalOp(LogicalOp::OP_And, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); @@ -1868,6 +1939,8 @@ yyreduce: break; case 52: + +/* Line 1455 of yacc.c */ #line 488 "../xml/XPathGrammar.y" { (yyval.expr) = new EqTestOp((yyvsp[(2) - (3)].eqop), (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); @@ -1878,6 +1951,8 @@ yyreduce: break; case 54: + +/* Line 1455 of yacc.c */ #line 500 "../xml/XPathGrammar.y" { (yyval.expr) = new EqTestOp((yyvsp[(2) - (3)].eqop), (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); @@ -1888,6 +1963,8 @@ yyreduce: break; case 56: + +/* Line 1455 of yacc.c */ #line 512 "../xml/XPathGrammar.y" { (yyval.expr) = new NumericOp(NumericOp::OP_Add, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); @@ -1898,6 +1975,8 @@ yyreduce: break; case 57: + +/* Line 1455 of yacc.c */ #line 520 "../xml/XPathGrammar.y" { (yyval.expr) = new NumericOp(NumericOp::OP_Sub, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); @@ -1908,6 +1987,8 @@ yyreduce: break; case 59: + +/* Line 1455 of yacc.c */ #line 532 "../xml/XPathGrammar.y" { (yyval.expr) = new NumericOp((yyvsp[(2) - (3)].numop), (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); @@ -1918,6 +1999,8 @@ yyreduce: break; case 61: + +/* Line 1455 of yacc.c */ #line 544 "../xml/XPathGrammar.y" { (yyval.expr) = new Negative; @@ -1928,8 +2011,9 @@ yyreduce: break; -/* Line 1267 of yacc.c. */ -#line 1933 "WebCore/tmp/../generated/XPathGrammar.tab.c" + +/* Line 1455 of yacc.c */ +#line 2017 "WebCore/tmp/../generated/XPathGrammar.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -1940,7 +2024,6 @@ yyreduce: *++yyvsp = yyval; - /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -2005,7 +2088,7 @@ yyerrlab: if (yyerrstatus == 3) { - /* If just tried and failed to reuse look-ahead token after an + /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) @@ -2022,7 +2105,7 @@ yyerrlab: } } - /* Else will try to reuse look-ahead token after shifting the error + /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; @@ -2079,9 +2162,6 @@ yyerrlab1: YY_STACK_PRINT (yyss, yyssp); } - if (yyn == YYFINAL) - YYACCEPT; - *++yyvsp = yylval; @@ -2106,7 +2186,7 @@ yyabortlab: yyresult = 1; goto yyreturn; -#ifndef yyoverflow +#if !defined(yyoverflow) || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ @@ -2117,7 +2197,7 @@ yyexhaustedlab: #endif yyreturn: - if (yychar != YYEOF && yychar != YYEMPTY) + if (yychar != YYEMPTY) yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); /* Do not reclaim the symbols of the rule which action triggered @@ -2143,6 +2223,8 @@ yyreturn: } + +/* Line 1675 of yacc.c */ #line 552 "../xml/XPathGrammar.y" diff --git a/src/3rdparty/webkit/WebCore/generated/XPathGrammar.h b/src/3rdparty/webkit/WebCore/generated/XPathGrammar.h index 9728266..5a974bb 100644 --- a/src/3rdparty/webkit/WebCore/generated/XPathGrammar.h +++ b/src/3rdparty/webkit/WebCore/generated/XPathGrammar.h @@ -1,24 +1,23 @@ -/* A Bison parser, made by GNU Bison 2.3. */ -/* Skeleton interface for Bison's Yacc-like parsers in C +/* A Bison parser, made by GNU Bison 2.4.1. */ - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +/* Skeleton interface for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -29,10 +28,11 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ + /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE @@ -59,33 +59,16 @@ XPATH_ERROR = 275 }; #endif -/* Tokens. */ -#define MULOP 258 -#define RELOP 259 -#define EQOP 260 -#define MINUS 261 -#define PLUS 262 -#define AND 263 -#define OR 264 -#define AXISNAME 265 -#define NODETYPE 266 -#define PI 267 -#define FUNCTIONNAME 268 -#define LITERAL 269 -#define VARIABLEREFERENCE 270 -#define NUMBER 271 -#define DOTDOT 272 -#define SLASHSLASH 273 -#define NAMETEST 274 -#define XPATH_ERROR 275 - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 56 "../xml/XPathGrammar.y" { + +/* Line 1676 of yacc.c */ +#line 56 "../xml/XPathGrammar.y" + Step::Axis axis; Step::NodeTest* nodeTest; NumericOp::Opcode numop; @@ -96,14 +79,17 @@ typedef union YYSTYPE Vector<Expression*>* argList; Step* step; LocationPath* locationPath; -} -/* Line 1489 of yacc.c. */ -#line 102 "WebCore/tmp/../generated/XPathGrammar.tab.h" - YYSTYPE; + + + +/* Line 1676 of yacc.c */ +#line 87 "WebCore/tmp/../generated/XPathGrammar.tab.h" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif + diff --git a/src/3rdparty/webkit/WebCore/history/HistoryItem.cpp b/src/3rdparty/webkit/WebCore/history/HistoryItem.cpp index 6156524..e199337 100644 --- a/src/3rdparty/webkit/WebCore/history/HistoryItem.cpp +++ b/src/3rdparty/webkit/WebCore/history/HistoryItem.cpp @@ -161,8 +161,8 @@ const String& HistoryItem::alternateTitle() const Image* HistoryItem::icon() const { - Image* result = iconDatabase()->iconForPageURL(m_urlString, IntSize(16,16)); - return result ? result : iconDatabase()->defaultIcon(IntSize(16,16)); + Image* result = iconDatabase()->iconForPageURL(m_urlString, IntSize(16, 16)); + return result ? result : iconDatabase()->defaultIcon(IntSize(16, 16)); } double HistoryItem::lastVisitedTime() const @@ -287,14 +287,16 @@ void HistoryItem::collapseDailyVisitsToWeekly() m_weeklyVisitCounts.shrink(maxWeeklyCounts); } -void HistoryItem::recordVisitAtTime(double time) +void HistoryItem::recordVisitAtTime(double time, VisitCountBehavior visitCountBehavior) { padDailyCountsForNewVisit(time); m_lastVisitedTime = time; - m_visitCount++; - m_dailyVisitCounts[0]++; + if (visitCountBehavior == IncreaseVisitCount) { + ++m_visitCount; + ++m_dailyVisitCounts[0]; + } collapseDailyVisitsToWeekly(); } @@ -305,10 +307,10 @@ void HistoryItem::setLastVisitedTime(double time) recordVisitAtTime(time); } -void HistoryItem::visited(const String& title, double time) +void HistoryItem::visited(const String& title, double time, VisitCountBehavior visitCountBehavior) { m_title = title; - recordVisitAtTime(time); + recordVisitAtTime(time, visitCountBehavior); } int HistoryItem::visitCount() const @@ -329,10 +331,10 @@ void HistoryItem::setVisitCount(int count) void HistoryItem::adoptVisitCounts(Vector<int>& dailyCounts, Vector<int>& weeklyCounts) { - m_dailyVisitCounts.clear(); - m_dailyVisitCounts.swap(dailyCounts); - m_weeklyVisitCounts.clear(); - m_weeklyVisitCounts.swap(weeklyCounts); + m_dailyVisitCounts.clear(); + m_dailyVisitCounts.swap(dailyCounts); + m_weeklyVisitCounts.clear(); + m_weeklyVisitCounts.swap(weeklyCounts); } const IntPoint& HistoryItem::scrollPoint() const diff --git a/src/3rdparty/webkit/WebCore/history/HistoryItem.h b/src/3rdparty/webkit/WebCore/history/HistoryItem.h index ac7d124..c12122f 100644 --- a/src/3rdparty/webkit/WebCore/history/HistoryItem.h +++ b/src/3rdparty/webkit/WebCore/history/HistoryItem.h @@ -56,6 +56,11 @@ typedef Vector<RefPtr<HistoryItem> > HistoryItemVector; extern void (*notifyHistoryItemChanged)(); +enum VisitCountBehavior { + IncreaseVisitCount, + DoNotIncreaseVisitCount +}; + class HistoryItem : public RefCounted<HistoryItem> { friend class PageCache; @@ -144,7 +149,7 @@ public: // This should not be called directly for HistoryItems that are already included // in GlobalHistory. The WebKit api for this is to use -[WebHistory setLastVisitedTimeInterval:forItem:] instead. void setLastVisitedTime(double); - void visited(const String& title, double time); + void visited(const String& title, double time, VisitCountBehavior); void addRedirectURL(const String&); Vector<String>* redirectURLs() const; @@ -189,7 +194,7 @@ private: void padDailyCountsForNewVisit(double time); void collapseDailyVisitsToWeekly(); - void recordVisitAtTime(double); + void recordVisitAtTime(double, VisitCountBehavior = IncreaseVisitCount); HistoryItem* findTargetItem(); diff --git a/src/3rdparty/webkit/WebCore/html/CanvasRenderingContext2D.cpp b/src/3rdparty/webkit/WebCore/html/CanvasRenderingContext2D.cpp index 37f4799..7a255d8 100644 --- a/src/3rdparty/webkit/WebCore/html/CanvasRenderingContext2D.cpp +++ b/src/3rdparty/webkit/WebCore/html/CanvasRenderingContext2D.cpp @@ -58,10 +58,10 @@ #include "TextMetrics.h" #include "HTMLVideoElement.h" #include <stdio.h> - #include <wtf/ByteArray.h> #include <wtf/MathExtras.h> #include <wtf/OwnPtr.h> +#include <wtf/UnusedParam.h> using namespace std; @@ -546,6 +546,8 @@ void CanvasRenderingContext2D::lineTo(float x, float y) return; if (!state().m_invertibleCTM) return; + if (m_path.isEmpty()) + m_path.moveTo(FloatPoint(x, y)); m_path.addLineTo(FloatPoint(x, y)); } @@ -555,6 +557,8 @@ void CanvasRenderingContext2D::quadraticCurveTo(float cpx, float cpy, float x, f return; if (!state().m_invertibleCTM) return; + if (m_path.isEmpty()) + m_path.moveTo(FloatPoint(cpx, cpy)); m_path.addQuadCurveTo(FloatPoint(cpx, cpy), FloatPoint(x, y)); } @@ -564,6 +568,8 @@ void CanvasRenderingContext2D::bezierCurveTo(float cp1x, float cp1y, float cp2x, return; if (!state().m_invertibleCTM) return; + if (m_path.isEmpty()) + m_path.moveTo(FloatPoint(cp1x, cp1y)); m_path.addBezierCurveTo(FloatPoint(cp1x, cp1y), FloatPoint(cp2x, cp2y), FloatPoint(x, y)); } @@ -1103,7 +1109,7 @@ void CanvasRenderingContext2D::drawImage(HTMLVideoElement* video, const FloatRec c->translate(destRect.x(), destRect.y()); c->scale(FloatSize(destRect.width()/sourceRect.width(), destRect.height()/sourceRect.height())); c->translate(-sourceRect.x(), -sourceRect.y()); - video->paint(c, IntRect(IntPoint(), size(video))); + video->paintCurrentFrameInContext(c, IntRect(IntPoint(), size(video))); c->restore(); } #endif @@ -1158,6 +1164,8 @@ void CanvasRenderingContext2D::prepareGradientForDashboard(CanvasGradient* gradi if (Settings* settings = m_canvas->document()->settings()) if (settings->usesDashboardBackwardCompatibilityMode()) gradient->setDashboardCompatibilityMode(); +#else + UNUSED_PARAM(gradient); #endif } diff --git a/src/3rdparty/webkit/WebCore/html/CanvasStyle.cpp b/src/3rdparty/webkit/WebCore/html/CanvasStyle.cpp index 743ed4f..946cac7 100644 --- a/src/3rdparty/webkit/WebCore/html/CanvasStyle.cpp +++ b/src/3rdparty/webkit/WebCore/html/CanvasStyle.cpp @@ -174,7 +174,7 @@ void CanvasStyle::applyFillColor(GraphicsContext* context) switch (m_type) { case ColorString: { Color c = Color(m_color); - if (c.isValid()){ + if (c.isValid()) { context->setFillColor(c.rgb()); break; } @@ -185,7 +185,7 @@ void CanvasStyle::applyFillColor(GraphicsContext* context) } case ColorStringWithAlpha: { Color c = Color(m_color); - if (c.isValid()){ + if (c.isValid()) { context->setFillColor(colorWithOverrideAlpha(c.rgb(), m_alpha)); break; } diff --git a/src/3rdparty/webkit/WebCore/html/DOMDataGridDataSource.cpp b/src/3rdparty/webkit/WebCore/html/DOMDataGridDataSource.cpp new file mode 100644 index 0000000..aa44d8c --- /dev/null +++ b/src/3rdparty/webkit/WebCore/html/DOMDataGridDataSource.cpp @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2009 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" + +#if ENABLE(DATAGRID) + +#include "DOMDataGridDataSource.h" + +namespace WebCore { + +DOMDataGridDataSource::DOMDataGridDataSource() +{ +} + +DOMDataGridDataSource::~DOMDataGridDataSource() +{ +} + +} // namespace WebCore + +#endif // ENABLE(DATAGRID) diff --git a/src/3rdparty/webkit/WebCore/html/DOMDataGridDataSource.h b/src/3rdparty/webkit/WebCore/html/DOMDataGridDataSource.h new file mode 100644 index 0000000..2ce2ab8 --- /dev/null +++ b/src/3rdparty/webkit/WebCore/html/DOMDataGridDataSource.h @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2009 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef DOMDataGridDataSource_h +#define DOMDataGridDataSource_h + +#if ENABLE(DATAGRID) + +#include "DataGridDataSource.h" +#include <wtf/PassRefPtr.h> +#include <wtf/RefPtr.h> + +namespace WebCore { + +class HTMLDataGridElement; + +class DOMDataGridDataSource : public DataGridDataSource { +public: + static PassRefPtr<DOMDataGridDataSource> create() + { + return adoptRef(new DOMDataGridDataSource); + } + + virtual ~DOMDataGridDataSource(); + + virtual bool isDOMDataGridDataSource() const { return true; } + +private: + DOMDataGridDataSource(); +}; + +inline DOMDataGridDataSource* asDOMDataGridDataSource(DataGridDataSource* dataSource) +{ + ASSERT(dataSource->isDOMDataGridDataSource()); + return static_cast<DOMDataGridDataSource*>(dataSource); +} + +inline const DOMDataGridDataSource* asDOMDataGridDataSource(const DataGridDataSource* dataSource) +{ + ASSERT(dataSource->isDOMDataGridDataSource()); + return static_cast<const DOMDataGridDataSource*>(dataSource); +} + +} // namespace WebCore + +#endif // ENABLE(DATAGRID) +#endif // DOMDataGridDataSource_h diff --git a/src/3rdparty/webkit/WebCore/html/DataGridColumn.cpp b/src/3rdparty/webkit/WebCore/html/DataGridColumn.cpp index 136c08e..7810c86 100644 --- a/src/3rdparty/webkit/WebCore/html/DataGridColumn.cpp +++ b/src/3rdparty/webkit/WebCore/html/DataGridColumn.cpp @@ -24,6 +24,9 @@ */ #include "config.h" + +#if ENABLE(DATAGRID) + #include "DataGridColumn.h" #include "DataGridColumnList.h" @@ -39,4 +42,12 @@ void DataGridColumn::setPrimary(bool primary) } } +void DataGridColumn::columnChanged() +{ + if (m_columns) + m_columns->setDataGridNeedsLayout(); +} + } // namespace WebCore + +#endif diff --git a/src/3rdparty/webkit/WebCore/html/DataGridColumn.h b/src/3rdparty/webkit/WebCore/html/DataGridColumn.h index 8e63cd6..3d480a9 100644 --- a/src/3rdparty/webkit/WebCore/html/DataGridColumn.h +++ b/src/3rdparty/webkit/WebCore/html/DataGridColumn.h @@ -26,7 +26,10 @@ #ifndef DataGridColumn_h #define DataGridColumn_h +#if ENABLE(DATAGRID) + #include "AtomicString.h" +#include "RenderStyle.h" #include <wtf/PassRefPtr.h> #include <wtf/RefCounted.h> @@ -36,34 +39,49 @@ class DataGridColumnList; class DataGridColumn : public RefCounted<DataGridColumn> { public: - static PassRefPtr<DataGridColumn> create(DataGridColumnList* columns, const String& columnID, const String& label, const String& type, bool primary, unsigned short sortable) + static PassRefPtr<DataGridColumn> create(const String& columnID, const String& label, const String& type, bool primary, unsigned short sortable) { - return new DataGridColumn(columns, columnID, label, type, primary, sortable); + return adoptRef(new DataGridColumn(columnID, label, type, primary, sortable)); } const AtomicString& id() const { return m_id; } - void setId(const AtomicString& id) { m_id = id; } + void setId(const AtomicString& id) { m_id = id; columnChanged(); } const AtomicString& label() const { return m_label; } - void setLabel(const AtomicString& label) { m_label = label; } + void setLabel(const AtomicString& label) { m_label = label; columnChanged(); } const AtomicString& type() const { return m_type; } - void setType(const AtomicString& type) { m_type = type; } + void setType(const AtomicString& type) { m_type = type; columnChanged(); } unsigned short sortable() const { return m_sortable; } - void setSortable(unsigned short sortable) { m_sortable = sortable; } + void setSortable(unsigned short sortable) { m_sortable = sortable; columnChanged(); } unsigned short sortDirection() const { return m_sortDirection; } - void setSortDirection(unsigned short sortDirection) { m_sortDirection = sortDirection; } + void setSortDirection(unsigned short sortDirection) { m_sortDirection = sortDirection; columnChanged(); } bool primary() const { return m_primary; } void setPrimary(bool); - void detachFromColumnList() { m_columns = 0; } + void setColumnList(DataGridColumnList* list) + { + m_columns = list; + m_columnStyle = 0; + m_headerStyle = 0; + m_rect = IntRect(); + } + + RenderStyle* columnStyle() const { return m_columnStyle.get(); } + void setColumnStyle(PassRefPtr<RenderStyle> style) { m_columnStyle = style; } + + RenderStyle* headerStyle() const { return m_headerStyle.get(); } + void setHeaderStyle(PassRefPtr<RenderStyle> style) { m_headerStyle = style; } + + const IntRect& rect() const { return m_rect; } + void setRect(const IntRect& rect) { m_rect = rect; } private: - DataGridColumn(DataGridColumnList* columns, const String& columnID, const String& label, const String& type, bool primary, unsigned short sortable) - : m_columns(columns) + DataGridColumn(const String& columnID, const String& label, const String& type, bool primary, unsigned short sortable) + : m_columns(0) , m_id(columnID) , m_label(label) , m_type(type) @@ -73,6 +91,8 @@ private: { } + void columnChanged(); + DataGridColumnList* m_columns; // Not refcounted. The columns list will null out our reference when it goes away. AtomicString m_id; @@ -83,8 +103,15 @@ private: unsigned short m_sortable; unsigned short m_sortDirection; + + RefPtr<RenderStyle> m_columnStyle; // The style used to render the column background behind the row cells. + RefPtr<RenderStyle> m_headerStyle; // The style used to render the column header above the row cells. + + IntRect m_rect; }; } // namespace WebCore +#endif + #endif // DataGridColumn_h diff --git a/src/3rdparty/webkit/WebCore/html/DataGridColumn.idl b/src/3rdparty/webkit/WebCore/html/DataGridColumn.idl index 04418a1..f566325 100644 --- a/src/3rdparty/webkit/WebCore/html/DataGridColumn.idl +++ b/src/3rdparty/webkit/WebCore/html/DataGridColumn.idl @@ -26,7 +26,8 @@ module html { interface [ - GenerateConstructor + GenerateConstructor, + Conditional=DATAGRID ] DataGridColumn { attribute DOMString id; // The identifier for the column. attribute DOMString label; // The text to display in the column. diff --git a/src/3rdparty/webkit/WebCore/html/DataGridColumnList.cpp b/src/3rdparty/webkit/WebCore/html/DataGridColumnList.cpp index 48f7d60..9613402 100644 --- a/src/3rdparty/webkit/WebCore/html/DataGridColumnList.cpp +++ b/src/3rdparty/webkit/WebCore/html/DataGridColumnList.cpp @@ -24,13 +24,22 @@ */ #include "config.h" -#include "DataGridColumnList.h" + +#if ENABLE(DATAGRID) #include "AtomicString.h" +#include "DataGridColumnList.h" +#include "HTMLDataGridElement.h" #include "PlatformString.h" +#include "RenderObject.h" namespace WebCore { +DataGridColumnList::DataGridColumnList(HTMLDataGridElement* dataGrid) + : m_dataGrid(dataGrid) +{ +} + DataGridColumnList::~DataGridColumnList() { clear(); @@ -46,13 +55,26 @@ DataGridColumn* DataGridColumnList::itemWithName(const AtomicString& name) const return 0; } +void DataGridColumnList::setDataGridNeedsLayout() +{ + // Mark the datagrid as needing layout. + if (dataGrid() && dataGrid()->renderer()) + dataGrid()->renderer()->setNeedsLayout(true); +} + DataGridColumn* DataGridColumnList::add(const String& id, const String& label, const String& type, bool primary, unsigned short sortable) { - RefPtr<DataGridColumn> column = DataGridColumn::create(this, id, label, type, primary, sortable); - if (primary) + return add(DataGridColumn::create(id, label, type, primary, sortable).get()); +} + +DataGridColumn* DataGridColumnList::add(DataGridColumn* column) +{ + if (column->primary()) m_primaryColumn = column; m_columns.append(column); - return column.get(); + column->setColumnList(this); + setDataGridNeedsLayout(); + return column; } void DataGridColumnList::remove(DataGridColumn* col) @@ -65,6 +87,8 @@ void DataGridColumnList::remove(DataGridColumn* col) m_primaryColumn = 0; if (col == m_sortColumn) m_sortColumn = 0; + col->setColumnList(0); + setDataGridNeedsLayout(); } void DataGridColumnList::move(DataGridColumn* col, unsigned long index) @@ -73,16 +97,18 @@ void DataGridColumnList::move(DataGridColumn* col, unsigned long index) if (colIndex == notFound) return; m_columns.insert(index, col); + setDataGridNeedsLayout(); } void DataGridColumnList::clear() { unsigned length = m_columns.size(); for (unsigned i = 0; i < length; ++i) - m_columns[i]->detachFromColumnList(); + m_columns[i]->setColumnList(0); m_columns.clear(); m_primaryColumn = 0; m_sortColumn = 0; + setDataGridNeedsLayout(); } void DataGridColumnList::primaryColumnChanged(DataGridColumn* col) @@ -92,7 +118,9 @@ void DataGridColumnList::primaryColumnChanged(DataGridColumn* col) else if (m_primaryColumn = col) m_primaryColumn = 0; - // FIXME: Invalidate the tree. + setDataGridNeedsLayout(); } } // namespace WebCore + +#endif diff --git a/src/3rdparty/webkit/WebCore/html/DataGridColumnList.h b/src/3rdparty/webkit/WebCore/html/DataGridColumnList.h index d0caebe..ed72863 100644 --- a/src/3rdparty/webkit/WebCore/html/DataGridColumnList.h +++ b/src/3rdparty/webkit/WebCore/html/DataGridColumnList.h @@ -1,6 +1,8 @@ #ifndef DataGridColumnList_h #define DataGridColumnList_h +#if ENABLE(DATAGRID) + #include "DataGridColumn.h" #include <wtf/PassRefPtr.h> @@ -10,13 +12,14 @@ namespace WebCore { class AtomicString; +class HTMLDataGridElement; class DataGridColumnList : public RefCounted<DataGridColumnList> { friend class DataGridColumn; public: - static PassRefPtr<DataGridColumnList> create() + static PassRefPtr<DataGridColumnList> create(HTMLDataGridElement* grid) { - return new DataGridColumnList(); + return adoptRef(new DataGridColumnList(grid)); } ~DataGridColumnList(); @@ -31,12 +34,22 @@ public: DataGridColumn* sortColumn() const { return m_sortColumn.get(); } DataGridColumn* add(const String& id, const String& label, const String& type, bool primary, unsigned short sortable); + DataGridColumn* add(DataGridColumn*); void remove(DataGridColumn*); void move(DataGridColumn*, unsigned long index); void clear(); + HTMLDataGridElement* dataGrid() const { return m_dataGrid; } + void clearDataGrid() { m_dataGrid = 0; } + + void setDataGridNeedsLayout(); + private: - void primaryColumnChanged(DataGridColumn* col); + DataGridColumnList(HTMLDataGridElement*); + + void primaryColumnChanged(DataGridColumn*); + + HTMLDataGridElement* m_dataGrid; // Weak reference. Will be nulled out when our tree goes away. Vector<RefPtr<DataGridColumn> > m_columns; RefPtr<DataGridColumn> m_primaryColumn; @@ -45,4 +58,6 @@ private: } // namespace WebCore +#endif + #endif // DataGridColumnList_h diff --git a/src/3rdparty/webkit/WebCore/html/DataGridColumnList.idl b/src/3rdparty/webkit/WebCore/html/DataGridColumnList.idl index cab4339..1a59f43 100644 --- a/src/3rdparty/webkit/WebCore/html/DataGridColumnList.idl +++ b/src/3rdparty/webkit/WebCore/html/DataGridColumnList.idl @@ -28,7 +28,8 @@ module html { interface [ GenerateConstructor, HasIndexGetter, - HasNameGetter + HasNameGetter, + Conditional=DATAGRID ] DataGridColumnList { DataGridColumn item(in [IsIndex] unsigned long index); readonly attribute unsigned long length; diff --git a/src/3rdparty/webkit/WebCore/html/DataGridDataSource.h b/src/3rdparty/webkit/WebCore/html/DataGridDataSource.h index 0c9a24d..2ab1f5b 100644 --- a/src/3rdparty/webkit/WebCore/html/DataGridDataSource.h +++ b/src/3rdparty/webkit/WebCore/html/DataGridDataSource.h @@ -26,6 +26,8 @@ #ifndef DataGridDataSource_h #define DataGridDataSource_h +#if ENABLE(DATAGRID) + #include <wtf/RefCounted.h> namespace WebCore { @@ -36,11 +38,12 @@ class DataGridDataSource : public RefCounted<DataGridDataSource> { public: virtual ~DataGridDataSource() { } + virtual bool isDOMDataGridDataSource() const { return false; } virtual bool isJSDataGridDataSource() const { return false; } - - virtual void initialize(HTMLDataGridElement*) = 0; }; } // namespace WebCore +#endif + #endif // DataGridDataSource_h diff --git a/src/3rdparty/webkit/WebCore/html/HTMLAnchorElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLAnchorElement.cpp index 354f9f0..09362cd 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLAnchorElement.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLAnchorElement.cpp @@ -249,7 +249,7 @@ void HTMLAnchorElement::setActive(bool down, bool pause) if (Settings* settings = document()->settings()) editableLinkBehavior = settings->editableLinkBehavior(); - switch(editableLinkBehavior) { + switch (editableLinkBehavior) { default: case EditableLinkDefaultBehavior: case EditableLinkAlwaysLive: @@ -497,7 +497,7 @@ bool HTMLAnchorElement::isLiveLink() const if (Settings* settings = document()->settings()) editableLinkBehavior = settings->editableLinkBehavior(); - switch(editableLinkBehavior) { + switch (editableLinkBehavior) { default: case EditableLinkDefaultBehavior: case EditableLinkAlwaysLive: diff --git a/src/3rdparty/webkit/WebCore/html/HTMLAppletElement.h b/src/3rdparty/webkit/WebCore/html/HTMLAppletElement.h index 26d8126..e271965 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLAppletElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLAppletElement.h @@ -30,8 +30,7 @@ namespace WebCore { class HTMLFormElement; class HTMLImageLoader; -class HTMLAppletElement : public HTMLPlugInElement -{ +class HTMLAppletElement : public HTMLPlugInElement { public: HTMLAppletElement(const QualifiedName&, Document*); ~HTMLAppletElement(); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLAttributeNames.in b/src/3rdparty/webkit/WebCore/html/HTMLAttributeNames.in index a29d6d2..0fc45d7 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLAttributeNames.in +++ b/src/3rdparty/webkit/WebCore/html/HTMLAttributeNames.in @@ -17,6 +17,7 @@ aria-checked aria-describedby aria-disabled aria-hidden +aria-label aria-labeledby aria-labelledby aria-level diff --git a/src/3rdparty/webkit/WebCore/html/HTMLAudioElement.h b/src/3rdparty/webkit/WebCore/html/HTMLAudioElement.h index de390cf..1dbe44f 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLAudioElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLAudioElement.h @@ -32,8 +32,7 @@ namespace WebCore { -class HTMLAudioElement : public HTMLMediaElement -{ +class HTMLAudioElement : public HTMLMediaElement { public: HTMLAudioElement(const QualifiedName&, Document*); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLBRElement.h b/src/3rdparty/webkit/WebCore/html/HTMLBRElement.h index 982a646..5600463 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLBRElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLBRElement.h @@ -28,8 +28,7 @@ namespace WebCore { class String; -class HTMLBRElement : public HTMLElement -{ +class HTMLBRElement : public HTMLElement { public: HTMLBRElement(const QualifiedName&, Document*); ~HTMLBRElement(); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLBaseElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLBaseElement.cpp index a278908..84e359c 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLBaseElement.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLBaseElement.cpp @@ -30,6 +30,7 @@ #include "HTMLNames.h" #include "KURL.h" #include "MappedAttribute.h" +#include "XSSAuditor.h" namespace WebCore { @@ -48,6 +49,7 @@ HTMLBaseElement::~HTMLBaseElement() void HTMLBaseElement::parseMappedAttribute(MappedAttribute* attr) { if (attr->name() == hrefAttr) { + m_hrefAttrValue = attr->value(); m_href = parseURL(attr->value()); process(); } else if (attr->name() == targetAttr) { @@ -78,7 +80,7 @@ void HTMLBaseElement::process() if (!inDocument()) return; - if (!m_href.isEmpty()) + if (!m_href.isEmpty() && (!document()->frame() || document()->frame()->script()->xssAuditor()->canSetBaseElementURL(m_hrefAttrValue))) document()->setBaseElementURL(KURL(document()->url(), m_href)); if (!m_target.isEmpty()) diff --git a/src/3rdparty/webkit/WebCore/html/HTMLBaseElement.h b/src/3rdparty/webkit/WebCore/html/HTMLBaseElement.h index f068851..bb980e9 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLBaseElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLBaseElement.h @@ -26,8 +26,7 @@ namespace WebCore { -class HTMLBaseElement : public HTMLElement -{ +class HTMLBaseElement : public HTMLElement { public: HTMLBaseElement(const QualifiedName&, Document*); ~HTMLBaseElement(); @@ -48,6 +47,7 @@ public: void setTarget(const String&); protected: + String m_hrefAttrValue; String m_href; String m_target; }; diff --git a/src/3rdparty/webkit/WebCore/html/HTMLBaseFontElement.h b/src/3rdparty/webkit/WebCore/html/HTMLBaseFontElement.h index 0c9a9fd..c15a36e 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLBaseFontElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLBaseFontElement.h @@ -26,8 +26,7 @@ namespace WebCore { -class HTMLBaseFontElement : public HTMLElement -{ +class HTMLBaseFontElement : public HTMLElement { public: HTMLBaseFontElement(const QualifiedName&, Document* doc); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLButtonElement.idl b/src/3rdparty/webkit/WebCore/html/HTMLButtonElement.idl index 028e92b..30ad6f2 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLButtonElement.idl +++ b/src/3rdparty/webkit/WebCore/html/HTMLButtonElement.idl @@ -26,6 +26,9 @@ module html { ImplementationUUID=1be13b5f-40df-4550-b70e-8c805e546cad ] HTMLButtonElement : HTMLElement { readonly attribute HTMLFormElement form; +#if !defined(LANGUAGE_COM) || !LANGUAGE_COM + readonly attribute ValidityState validity; +#endif attribute [ConvertNullToNullString] DOMString accessKey; attribute boolean disabled; attribute boolean autofocus; diff --git a/src/3rdparty/webkit/WebCore/html/HTMLDListElement.h b/src/3rdparty/webkit/WebCore/html/HTMLDListElement.h index 8925e6b..49c944b 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLDListElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLDListElement.h @@ -26,8 +26,7 @@ namespace WebCore { -class HTMLDListElement : public HTMLElement -{ +class HTMLDListElement : public HTMLElement { public: HTMLDListElement(const QualifiedName&, Document*); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLDataGridCellElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLDataGridCellElement.cpp index d06ad82..bad8929 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLDataGridCellElement.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLDataGridCellElement.cpp @@ -24,6 +24,9 @@ */ #include "config.h" + +#if ENABLE(DATAGRID) + #include "HTMLDataGridCellElement.h" #include "HTMLNames.h" @@ -89,3 +92,5 @@ void HTMLDataGridCellElement::setProgress(float progress) } } // namespace WebCore + +#endif diff --git a/src/3rdparty/webkit/WebCore/html/HTMLDataGridCellElement.h b/src/3rdparty/webkit/WebCore/html/HTMLDataGridCellElement.h index 9de6e40..270835c 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLDataGridCellElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLDataGridCellElement.h @@ -26,6 +26,8 @@ #ifndef HTMLDataGridCellElement_h #define HTMLDataGridCellElement_h +#if ENABLE(DATAGRID) + #include "HTMLElement.h" namespace WebCore { @@ -55,4 +57,6 @@ public: } // namespace WebCore +#endif + #endif // HTMLDataGridCellElement_h diff --git a/src/3rdparty/webkit/WebCore/html/HTMLDataGridCellElement.idl b/src/3rdparty/webkit/WebCore/html/HTMLDataGridCellElement.idl index 4d15f6f..c7c51bc 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLDataGridCellElement.idl +++ b/src/3rdparty/webkit/WebCore/html/HTMLDataGridCellElement.idl @@ -26,7 +26,8 @@ module html { interface [ - GenerateConstructor + GenerateConstructor, + Conditional=DATAGRID ] HTMLDataGridCellElement : HTMLElement { attribute DOMString label; // The text to display in the column, assuming the type supports text. diff --git a/src/3rdparty/webkit/WebCore/html/HTMLDataGridColElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLDataGridColElement.cpp index b209447..8398545 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLDataGridColElement.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLDataGridColElement.cpp @@ -24,9 +24,14 @@ */ #include "config.h" -#include "HTMLDataGridColElement.h" +#if ENABLE(DATAGRID) + +#include "DataGridColumn.h" +#include "HTMLDataGridElement.h" +#include "HTMLDataGridColElement.h" #include "HTMLNames.h" +#include "MappedAttribute.h" #include "Text.h" namespace WebCore { @@ -35,9 +40,48 @@ using namespace HTMLNames; HTMLDataGridColElement::HTMLDataGridColElement(const QualifiedName& name, Document* doc) : HTMLElement(name, doc) + , m_dataGrid(0) +{ +} + +HTMLDataGridElement* HTMLDataGridColElement::findDataGridAncestor() const +{ + if (parent() && parent()->hasTagName(datagridTag)) + return static_cast<HTMLDataGridElement*>(parent()); + return 0; +} + +void HTMLDataGridColElement::ensureColumn() { + if (m_column) + return; + m_column = DataGridColumn::create(getAttribute(idAttr), label(), type(), primary(), sortable()); } +void HTMLDataGridColElement::insertedIntoTree(bool deep) +{ + HTMLElement::insertedIntoTree(deep); + if (dataGrid()) // We're connected to a datagrid already. + return; + m_dataGrid = findDataGridAncestor(); + if (dataGrid() && dataGrid()->dataSource()->isDOMDataGridDataSource()) { + ensureColumn(); + m_dataGrid->columns()->add(column()); // FIXME: Deal with ordering issues (complicated, since columns can be made outside the DOM). + } +} + +void HTMLDataGridColElement::removedFromTree(bool deep) +{ + HTMLElement::removedFromTree(deep); + if (dataGrid() && dataGrid()->dataSource()->isDOMDataGridDataSource()) { + HTMLDataGridElement* grid = findDataGridAncestor(); + if (!grid && column()) { + dataGrid()->columns()->remove(column()); + m_dataGrid = 0; + } + } +} + String HTMLDataGridColElement::label() const { return getAttribute(labelAttr); @@ -60,12 +104,14 @@ void HTMLDataGridColElement::setType(const String& type) unsigned short HTMLDataGridColElement::sortable() const { - return hasAttribute(sortableAttr); + if (!hasAttribute(sortableAttr)) + return 2; + return getAttribute(sortableAttr).toInt(0); } void HTMLDataGridColElement::setSortable(unsigned short sortable) { - setAttribute(sortableAttr, sortable ? "" : 0); + setAttribute(sortableAttr, String::number(sortable)); } unsigned short HTMLDataGridColElement::sortDirection() const @@ -99,4 +145,27 @@ void HTMLDataGridColElement::setPrimary(bool primary) setAttribute(primaryAttr, primary ? "" : 0); } +void HTMLDataGridColElement::parseMappedAttribute(MappedAttribute* attr) +{ + HTMLElement::parseMappedAttribute(attr); + + if (!column()) + return; + + if (attr->name() == labelAttr) + column()->setLabel(label()); + else if (attr->name() == typeAttr) + column()->setType(type()); + else if (attr->name() == primaryAttr) + column()->setPrimary(primary()); + else if (attr->name() == sortableAttr) + column()->setSortable(sortable()); + else if (attr->name() == sortdirectionAttr) + column()->setSortDirection(sortDirection()); + else if (attr->name() == idAttr) + column()->setId(getAttribute(idAttr)); +} + } // namespace WebCore + +#endif diff --git a/src/3rdparty/webkit/WebCore/html/HTMLDataGridColElement.h b/src/3rdparty/webkit/WebCore/html/HTMLDataGridColElement.h index 87133cc..d91ec51 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLDataGridColElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLDataGridColElement.h @@ -26,17 +26,25 @@ #ifndef HTMLDataGridColElement_h #define HTMLDataGridColElement_h +#if ENABLE(DATAGRID) + +#include "DataGridColumn.h" #include "HTMLElement.h" namespace WebCore { +class HTMLDataGridElement; + class HTMLDataGridColElement : public HTMLElement { public: HTMLDataGridColElement(const QualifiedName&, Document*); virtual HTMLTagStatus endTagRequirement() const { return TagStatusForbidden; } virtual int tagPriority() const { return 0; } - + virtual void insertedIntoTree(bool /*deep*/); + virtual void removedFromTree(bool /*deep*/); + virtual void parseMappedAttribute(MappedAttribute*); + String label() const; void setLabel(const String&); @@ -51,8 +59,21 @@ public: bool primary() const; void setPrimary(bool); + + DataGridColumn* column() const { return m_column.get(); } + void setColumn(PassRefPtr<DataGridColumn> col) { m_column = col; } + +private: + HTMLDataGridElement* dataGrid() const { return m_dataGrid; } + HTMLDataGridElement* findDataGridAncestor() const; + void ensureColumn(); + + RefPtr<DataGridColumn> m_column; + HTMLDataGridElement* m_dataGrid; // Not refcounted. We will null out our reference if we get removed from the grid. }; } // namespace WebCore +#endif + #endif // HTMLDataGridColElement_h diff --git a/src/3rdparty/webkit/WebCore/html/HTMLDataGridColElement.idl b/src/3rdparty/webkit/WebCore/html/HTMLDataGridColElement.idl index c72751c..5861039 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLDataGridColElement.idl +++ b/src/3rdparty/webkit/WebCore/html/HTMLDataGridColElement.idl @@ -26,7 +26,8 @@ module html { interface [ - GenerateConstructor + GenerateConstructor, + Conditional=DATAGRID ] HTMLDataGridColElement : HTMLElement { attribute DOMString label; // The text to display in the column. attribute DOMString type; // The type of data displayed in this column. diff --git a/src/3rdparty/webkit/WebCore/html/HTMLDataGridElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLDataGridElement.cpp index 2d9f852..bb1f4a6 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLDataGridElement.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLDataGridElement.cpp @@ -24,8 +24,12 @@ */ #include "config.h" + +#if ENABLE(DATAGRID) + #include "HTMLDataGridElement.h" +#include "DOMDataGridDataSource.h" #include "HTMLNames.h" #include "RenderDataGrid.h" #include "Text.h" @@ -36,13 +40,14 @@ using namespace HTMLNames; HTMLDataGridElement::HTMLDataGridElement(const QualifiedName& tagName, Document* document) : HTMLElement(tagName, document) - , m_initializationTimer(this, &HTMLDataGridElement::initializationTimerFired) + , m_columns(DataGridColumnList::create(this)) { - m_columns = DataGridColumnList::create(); + setDataSource(DOMDataGridDataSource::create()); } HTMLDataGridElement::~HTMLDataGridElement() { + m_columns->clearDataGrid(); } bool HTMLDataGridElement::checkDTD(const Node* newChild) @@ -87,18 +92,27 @@ void HTMLDataGridElement::setMultiple(bool multiple) setAttribute(multipleAttr, multiple ? "" : 0); } -void HTMLDataGridElement::setDataSource(PassRefPtr<DataGridDataSource> dataSource) +void HTMLDataGridElement::setDataSource(PassRefPtr<DataGridDataSource> ds) { - if (m_initializationTimer.isActive()) - m_initializationTimer.stop(); - + if (m_dataSource == ds) + return; + + RefPtr<DataGridDataSource> dataSource = ds; + if (!dataSource) + dataSource = DOMDataGridDataSource::create(); m_dataSource = dataSource; - m_initializationTimer.startOneShot(0); + + // Always clear our columns when a data source changes. + // The register callback will rebuild the columns. + m_columns->clear(); } -void HTMLDataGridElement::initializationTimerFired(Timer<HTMLDataGridElement>*) +DataGridDataSource* HTMLDataGridElement::dataSource() const { - m_dataSource->initialize(this); + ASSERT(m_dataSource); + return m_dataSource.get(); } } // namespace WebCore + +#endif // ENABLE(DATAGRID) diff --git a/src/3rdparty/webkit/WebCore/html/HTMLDataGridElement.h b/src/3rdparty/webkit/WebCore/html/HTMLDataGridElement.h index 646c97e..94672c1 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLDataGridElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLDataGridElement.h @@ -26,6 +26,8 @@ #ifndef HTMLDataGridElement_h #define HTMLDataGridElement_h +#if ENABLE(DATAGRID) + #include "DataGridColumnList.h" #include "DataGridDataSource.h" #include "HTMLElement.h" @@ -53,19 +55,17 @@ public: void setMultiple(bool); void setDataSource(PassRefPtr<DataGridDataSource>); - DataGridDataSource* dataSource() const { return m_dataSource.get(); } + DataGridDataSource* dataSource() const; DataGridColumnList* columns() const { return m_columns.get(); } private: - void initializationTimerFired(Timer<HTMLDataGridElement>*); - - Timer<HTMLDataGridElement> m_initializationTimer; RefPtr<DataGridDataSource> m_dataSource; - RefPtr<DataGridColumnList> m_columns; }; } // namespace WebCore +#endif + #endif // HTMLDataGridElement_h diff --git a/src/3rdparty/webkit/WebCore/html/HTMLDataGridElement.idl b/src/3rdparty/webkit/WebCore/html/HTMLDataGridElement.idl index b4b0897..c9e6d9d 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLDataGridElement.idl +++ b/src/3rdparty/webkit/WebCore/html/HTMLDataGridElement.idl @@ -26,7 +26,8 @@ module html { interface [ - GenerateConstructor + GenerateConstructor, + Conditional=DATAGRID ] HTMLDataGridElement : HTMLElement { attribute [Custom] DataGridDataSource dataSource; diff --git a/src/3rdparty/webkit/WebCore/html/HTMLDataGridRowElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLDataGridRowElement.cpp index e671806..c958cbd 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLDataGridRowElement.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLDataGridRowElement.cpp @@ -24,6 +24,9 @@ */ #include "config.h" + +#if ENABLE(DATAGRID) + #include "HTMLDataGridRowElement.h" #include "HTMLNames.h" @@ -76,3 +79,5 @@ void HTMLDataGridRowElement::setExpanded(bool expanded) } } // namespace WebCore + +#endif diff --git a/src/3rdparty/webkit/WebCore/html/HTMLDataGridRowElement.h b/src/3rdparty/webkit/WebCore/html/HTMLDataGridRowElement.h index d911db2..eac33e6 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLDataGridRowElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLDataGridRowElement.h @@ -26,6 +26,8 @@ #ifndef HTMLDataGridRowElement_h #define HTMLDataGridRowElement_h +#if ENABLE(DATAGRID) + #include "HTMLElement.h" namespace WebCore { @@ -49,4 +51,6 @@ public: } // namespace WebCore +#endif + #endif // HTMLDataGridRowElement_h diff --git a/src/3rdparty/webkit/WebCore/html/HTMLDataGridRowElement.idl b/src/3rdparty/webkit/WebCore/html/HTMLDataGridRowElement.idl index 4aeb4d5..f6954af 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLDataGridRowElement.idl +++ b/src/3rdparty/webkit/WebCore/html/HTMLDataGridRowElement.idl @@ -26,7 +26,8 @@ module html { interface [ - GenerateConstructor + GenerateConstructor, + Conditional=DATAGRID ] HTMLDataGridRowElement : HTMLElement { attribute boolean selected; // Whether or not the row is currently selected. attribute boolean focused; // Whether or not the row is the current object in the tree for keyboard navigation (or as the principal item of a multiple selection). diff --git a/src/3rdparty/webkit/WebCore/html/HTMLDirectoryElement.h b/src/3rdparty/webkit/WebCore/html/HTMLDirectoryElement.h index 6be4c22..eead141 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLDirectoryElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLDirectoryElement.h @@ -26,8 +26,7 @@ namespace WebCore { -class HTMLDirectoryElement : public HTMLElement -{ +class HTMLDirectoryElement : public HTMLElement { public: HTMLDirectoryElement(const QualifiedName&, Document*); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLElement.cpp index 5655df8..8acc6bd 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLElement.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLElement.cpp @@ -79,7 +79,7 @@ HTMLTagStatus HTMLElement::endTagRequirement() const { if (hasLocalName(wbrTag)) return TagStatusForbidden; - if (hasLocalName(dtTag) || hasLocalName(ddTag)) + if (hasLocalName(dtTag) || hasLocalName(ddTag) || hasLocalName(rpTag) || hasLocalName(rtTag)) return TagStatusOptional; // Same values as <span>. This way custom tag name elements will behave like inline spans. @@ -90,9 +90,9 @@ int HTMLElement::tagPriority() const { if (hasLocalName(wbrTag)) return 0; - if (hasLocalName(addressTag) || hasLocalName(ddTag) || hasLocalName(dtTag) || hasLocalName(noscriptTag)) + if (hasLocalName(addressTag) || hasLocalName(ddTag) || hasLocalName(dtTag) || hasLocalName(noscriptTag) || hasLocalName(rpTag) || hasLocalName(rtTag)) return 3; - if (hasLocalName(centerTag) || hasLocalName(nobrTag)) + if (hasLocalName(centerTag) || hasLocalName(nobrTag) || hasLocalName(rubyTag)) return 5; if (hasLocalName(noembedTag) || hasLocalName(noframesTag)) return 10; @@ -875,6 +875,9 @@ static HashSet<AtomicStringImpl*>* inlineTagList() tagList.add(audioTag.localName().impl()); tagList.add(videoTag.localName().impl()); #endif + tagList.add(rpTag.localName().impl()); + tagList.add(rtTag.localName().impl()); + tagList.add(rubyTag.localName().impl()); } return &tagList; } diff --git a/src/3rdparty/webkit/WebCore/html/HTMLFieldSetElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLFieldSetElement.cpp index eb8d4ed..eb83173 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLFieldSetElement.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLFieldSetElement.cpp @@ -34,7 +34,7 @@ namespace WebCore { using namespace HTMLNames; HTMLFieldSetElement::HTMLFieldSetElement(const QualifiedName& tagName, Document *doc, HTMLFormElement *f) - : HTMLFormControlElement(tagName, doc, f) + : HTMLFormControlElement(tagName, doc, f) { ASSERT(hasTagName(fieldsetTag)); } diff --git a/src/3rdparty/webkit/WebCore/html/HTMLFieldSetElement.idl b/src/3rdparty/webkit/WebCore/html/HTMLFieldSetElement.idl index c48f8d6..371f3fd 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLFieldSetElement.idl +++ b/src/3rdparty/webkit/WebCore/html/HTMLFieldSetElement.idl @@ -25,6 +25,9 @@ module html { ImplementationUUID=93573758-96db-415d-9bdc-ee7238604094 ] HTMLFieldSetElement : HTMLElement { readonly attribute HTMLFormElement form; +#if !defined(LANGUAGE_COM) || !LANGUAGE_COM + readonly attribute ValidityState validity; +#endif readonly attribute boolean willValidate; }; diff --git a/src/3rdparty/webkit/WebCore/html/HTMLFormControlElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLFormControlElement.cpp index b985e75..87938ac 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLFormControlElement.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLFormControlElement.cpp @@ -25,6 +25,7 @@ #include "config.h" #include "HTMLFormControlElement.h" +#include "ChromeClient.h" #include "Document.h" #include "EventHandler.h" #include "EventNames.h" @@ -35,8 +36,10 @@ #include "HTMLParser.h" #include "HTMLTokenizer.h" #include "MappedAttribute.h" +#include "Page.h" #include "RenderBox.h" #include "RenderTheme.h" +#include "ValidityState.h" namespace WebCore { @@ -61,6 +64,14 @@ HTMLFormControlElement::~HTMLFormControlElement() m_form->removeFormElement(this); } +ValidityState* HTMLFormControlElement::validity() +{ + if (!m_validityState) + m_validityState = ValidityState::create(this); + + return m_validityState.get(); +} + void HTMLFormControlElement::parseMappedAttribute(MappedAttribute *attr) { if (attr->name() == nameAttr) { @@ -242,6 +253,22 @@ bool HTMLFormControlElement::willValidate() const return form() && name().length() && !disabled() && !isReadOnlyFormControl(); } +void HTMLFormControlElement::dispatchFocusEvent() +{ + if (document()->frame() && document()->frame()->page()) + document()->frame()->page()->chrome()->client()->formDidFocus(this); + + HTMLElement::dispatchFocusEvent(); +} + +void HTMLFormControlElement::dispatchBlurEvent() +{ + if (document()->frame() && document()->frame()->page()) + document()->frame()->page()->chrome()->client()->formDidBlur(this); + + HTMLElement::dispatchBlurEvent(); +} + bool HTMLFormControlElement::supportsFocus() const { return isFocusable() || (!disabled() && !document()->haveStylesheetsLoaded()); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLFormControlElement.h b/src/3rdparty/webkit/WebCore/html/HTMLFormControlElement.h index 0a7bbd1..a03eb1a 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLFormControlElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLFormControlElement.h @@ -30,6 +30,7 @@ namespace WebCore { class FormDataList; class HTMLFormElement; +class ValidityState; class HTMLFormControlElement : public HTMLElement { public: @@ -40,6 +41,7 @@ public: virtual int tagPriority() const { return 1; } HTMLFormElement* form() const { return m_form; } + virtual ValidityState* validity(); virtual bool isTextFormControl() const { return false; } virtual bool isEnabledFormControl() const { return !disabled(); } @@ -100,6 +102,9 @@ public: void formDestroyed() { m_form = 0; } + virtual void dispatchFocusEvent(); + virtual void dispatchBlurEvent(); + protected: void removeFromForm(); @@ -107,6 +112,7 @@ private: virtual HTMLFormElement* virtualForm() const; HTMLFormElement* m_form; + RefPtr<ValidityState> m_validityState; bool m_disabled; bool m_readOnly; bool m_valueMatchesRenderer; diff --git a/src/3rdparty/webkit/WebCore/html/HTMLFormElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLFormElement.cpp index 64cac37..f2012e1 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLFormElement.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLFormElement.cpp @@ -328,7 +328,7 @@ static void transferMailtoPostFormDataToURL(RefPtr<FormData>& data, KURL& url, c url.setQuery(query); } -void HTMLFormElement::submit(Event* event, bool activateSubmitButton, bool lockHistory, bool lockBackForwardList) +void HTMLFormElement::submit(Event* event, bool activateSubmitButton, bool lockHistory) { FrameView* view = document()->view(); Frame* frame = document()->frame(); @@ -389,14 +389,14 @@ void HTMLFormElement::submit(Event* event, bool activateSubmitButton, bool lockH m_url = url.string(); } - frame->loader()->submitForm("POST", m_url, data.release(), m_target, m_formDataBuilder.encodingType(), String(), lockHistory, lockBackForwardList, event, formState.release()); + frame->loader()->submitForm("POST", m_url, data.release(), m_target, m_formDataBuilder.encodingType(), String(), lockHistory, event, formState.release()); } else { Vector<char> boundary = m_formDataBuilder.generateUniqueBoundaryString(); - frame->loader()->submitForm("POST", m_url, createFormData(boundary.data()), m_target, m_formDataBuilder.encodingType(), boundary.data(), lockHistory, lockBackForwardList, event, formState.release()); + frame->loader()->submitForm("POST", m_url, createFormData(boundary.data()), m_target, m_formDataBuilder.encodingType(), boundary.data(), lockHistory, event, formState.release()); } } else { m_formDataBuilder.setIsMultiPartForm(false); - frame->loader()->submitForm("GET", m_url, createFormData(CString()), m_target, String(), String(), lockHistory, lockBackForwardList, event, formState.release()); + frame->loader()->submitForm("GET", m_url, createFormData(CString()), m_target, String(), String(), lockHistory, event, formState.release()); } if (needButtonActivation && firstSuccessfulSubmitButton) @@ -415,7 +415,7 @@ void HTMLFormElement::reset() // ### DOM2 labels this event as not cancelable, however // common browsers( sick! ) allow it be cancelled. - if ( !dispatchEvent(eventNames().resetEvent,true, true) ) { + if ( !dispatchEvent(eventNames().resetEvent, true, true) ) { m_inreset = false; return; } diff --git a/src/3rdparty/webkit/WebCore/html/HTMLFormElement.h b/src/3rdparty/webkit/WebCore/html/HTMLFormElement.h index d08e16c..6b7812a 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLFormElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLFormElement.h @@ -78,7 +78,7 @@ public: void removeImgElement(HTMLImageElement*); bool prepareSubmit(Event*); - void submit(Event* = 0, bool activateSubmitButton = false, bool lockHistory = false, bool lockBackForwardList = false); + void submit(Event* = 0, bool activateSubmitButton = false, bool lockHistory = false); void reset(); // Used to indicate a malformed state to keep from applying the bottom margin of the form. diff --git a/src/3rdparty/webkit/WebCore/html/HTMLHRElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLHRElement.cpp index d6cc58e..6858f56 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLHRElement.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLHRElement.cpp @@ -71,7 +71,7 @@ void HTMLHRElement::parseMappedAttribute(MappedAttribute *attr) } else if (attr->name() == widthAttr) { bool ok; int v = attr->value().toInt(&ok); - if(ok && !v) + if (ok && !v) addCSSLength(attr, CSSPropertyWidth, "1"); else addCSSLength(attr, CSSPropertyWidth, attr->value()); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLHeadElement.h b/src/3rdparty/webkit/WebCore/html/HTMLHeadElement.h index 2f01ef2..21d8a2f 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLHeadElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLHeadElement.h @@ -30,8 +30,7 @@ namespace WebCore { -class HTMLHeadElement : public HTMLElement -{ +class HTMLHeadElement : public HTMLElement { public: HTMLHeadElement(const QualifiedName&, Document*); ~HTMLHeadElement(); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLHtmlElement.h b/src/3rdparty/webkit/WebCore/html/HTMLHtmlElement.h index 91a0045..86603b5 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLHtmlElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLHtmlElement.h @@ -30,8 +30,7 @@ namespace WebCore { -class HTMLHtmlElement : public HTMLElement -{ +class HTMLHtmlElement : public HTMLElement { public: HTMLHtmlElement(const QualifiedName&, Document*); ~HTMLHtmlElement(); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLImageElement.h b/src/3rdparty/webkit/WebCore/html/HTMLImageElement.h index 25cbb55..ae2ce38 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLImageElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLImageElement.h @@ -67,7 +67,7 @@ public: CachedImage* cachedImage() const { return m_imageLoader.image(); } void setCachedImage(CachedImage* i) { m_imageLoader.setImage(i); }; - void setLoadManually (bool loadManually) { m_imageLoader.setLoadManually(loadManually); } + void setLoadManually(bool loadManually) { m_imageLoader.setLoadManually(loadManually); } String name() const; void setName(const String&); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLInputElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLInputElement.cpp index ae7e768..8b2aa0e 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLInputElement.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLInputElement.cpp @@ -1590,9 +1590,9 @@ void HTMLInputElement::onSearch() VisibleSelection HTMLInputElement::selection() const { - if (!renderer() || !isTextField() || m_data.cachedSelectionStart() == -1 || m_data.cachedSelectionEnd() == -1) + if (!renderer() || !isTextField() || m_data.cachedSelectionStart() == -1 || m_data.cachedSelectionEnd() == -1) return VisibleSelection(); - return toRenderTextControl(renderer())->selection(m_data.cachedSelectionStart(), m_data.cachedSelectionEnd()); + return toRenderTextControl(renderer())->selection(m_data.cachedSelectionStart(), m_data.cachedSelectionEnd()); } void HTMLInputElement::documentDidBecomeActive() diff --git a/src/3rdparty/webkit/WebCore/html/HTMLInputElement.idl b/src/3rdparty/webkit/WebCore/html/HTMLInputElement.idl index 5536733..7cd91b0 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLInputElement.idl +++ b/src/3rdparty/webkit/WebCore/html/HTMLInputElement.idl @@ -28,6 +28,9 @@ module html { attribute [ConvertNullToNullString] DOMString defaultValue; attribute boolean defaultChecked; readonly attribute HTMLFormElement form; +#if !defined(LANGUAGE_COM) || !LANGUAGE_COM + readonly attribute ValidityState validity; +#endif attribute [ConvertNullToNullString] DOMString accept; attribute [ConvertNullToNullString] DOMString accessKey; attribute [ConvertNullToNullString] DOMString align; @@ -69,7 +72,7 @@ module html { readonly attribute URL absoluteImageURL; #endif -#if !defined(LANGUAGE_COM) +#if !defined(LANGUAGE_COM) || !LANGUAGE_COM readonly attribute FileList files; #endif }; diff --git a/src/3rdparty/webkit/WebCore/html/HTMLIsIndexElement.h b/src/3rdparty/webkit/WebCore/html/HTMLIsIndexElement.h index 82042cf..a1462b8 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLIsIndexElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLIsIndexElement.h @@ -27,8 +27,7 @@ namespace WebCore { -class HTMLIsIndexElement : public HTMLInputElement -{ +class HTMLIsIndexElement : public HTMLInputElement { public: HTMLIsIndexElement(const QualifiedName&, Document *doc, HTMLFormElement *f = 0); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLLinkElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLLinkElement.cpp index cb8f36c..986544a 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLLinkElement.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLLinkElement.cpp @@ -181,9 +181,11 @@ void HTMLLinkElement::process() if (m_isDNSPrefetch && m_url.isValid() && !m_url.isEmpty()) prefetchDNS(m_url.host()); + bool acceptIfTypeContainsTextCSS = document()->page() && document()->page()->settings() && document()->page()->settings()->treatsAnyTextCSSLinkAsStylesheet(); + // Stylesheet // This was buggy and would incorrectly match <link rel="alternate">, which has a different specified meaning. -dwh - if (m_disabledState != 2 && m_isStyleSheet && document()->frame() && m_url.isValid()) { + if (m_disabledState != 2 && (m_isStyleSheet || acceptIfTypeContainsTextCSS && type.contains("text/css")) && document()->frame() && m_url.isValid()) { // also, don't load style sheets for standalone documents // Add ourselves as a pending sheet, but only if we aren't an alternate // stylesheet. Alternate stylesheets don't hold up render tree construction. diff --git a/src/3rdparty/webkit/WebCore/html/HTMLMarqueeElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLMarqueeElement.cpp index d62eaab..0cb6501 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLMarqueeElement.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLMarqueeElement.cpp @@ -34,7 +34,7 @@ namespace WebCore { using namespace HTMLNames; - // WinIE uses 60ms as the minimum delay by default. +// WinIE uses 60ms as the minimum delay by default. const int defaultMinimumDelay = 60; HTMLMarqueeElement::HTMLMarqueeElement(const QualifiedName& tagName, Document* doc) diff --git a/src/3rdparty/webkit/WebCore/html/HTMLMediaElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLMediaElement.cpp index 3d48b82..716a592 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLMediaElement.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLMediaElement.cpp @@ -391,7 +391,7 @@ String HTMLMediaElement::canPlayType(const String& mimeType) const switch (support) { case MediaPlayer::IsNotSupported: - canPlay = "no"; + canPlay = ""; break; case MediaPlayer::MayBeSupported: canPlay = "maybe"; @@ -690,7 +690,6 @@ void HTMLMediaElement::setNetworkState(MediaPlayer::NetworkState state) } if (state == MediaPlayer::Idle) { - ASSERT(static_cast<ReadyState>(m_player->readyState()) < HAVE_ENOUGH_DATA); if (m_networkState > NETWORK_IDLE) { stopPeriodicTimers(); scheduleProgressEvent(eventNames().suspendEvent); @@ -752,7 +751,6 @@ void HTMLMediaElement::setReadyState(MediaPlayer::ReadyState state) if (m_seeking && m_readyState < HAVE_CURRENT_DATA) { // 4.8.10.10, step 9 scheduleEvent(eventNames().seekingEvent); - m_seeking = false; } if (wasPotentiallyPlaying && m_readyState < HAVE_FUTURE_DATA) { @@ -839,6 +837,18 @@ void HTMLMediaElement::progressEventTimerFired(Timer<HTMLMediaElement>*) } } +void HTMLMediaElement::rewind(float timeDelta) +{ + ExceptionCode e; + setCurrentTime(max(currentTime() - timeDelta, minTimeSeekable()), e); +} + +void HTMLMediaElement::returnToRealtime() +{ + ExceptionCode e; + setCurrentTime(maxTimeSeekable(), e); +} + void HTMLMediaElement::seek(float time, ExceptionCode& ec) { // 4.8.10.10. Seeking @@ -891,6 +901,11 @@ HTMLMediaElement::ReadyState HTMLMediaElement::readyState() const return m_readyState; } +MediaPlayer::MovieLoadType HTMLMediaElement::movieLoadType() const +{ + return m_player ? m_player->movieLoadType() : MediaPlayer::Unknown; +} + bool HTMLMediaElement::seeking() const { return m_seeking; @@ -1408,9 +1423,9 @@ PassRefPtr<TimeRanges> HTMLMediaElement::played() const PassRefPtr<TimeRanges> HTMLMediaElement::seekable() const { // FIXME real ranges support - if (!m_player || !m_player->maxTimeSeekable()) + if (!maxTimeSeekable()) return TimeRanges::create(); - return TimeRanges::create(0, m_player->maxTimeSeekable()); + return TimeRanges::create(minTimeSeekable(), maxTimeSeekable()); } bool HTMLMediaElement::potentiallyPlaying() const @@ -1444,6 +1459,16 @@ bool HTMLMediaElement::pausedForUserInteraction() const return false; } +float HTMLMediaElement::minTimeSeekable() const +{ + return 0; +} + +float HTMLMediaElement::maxTimeSeekable() const +{ + return m_player ? m_player->maxTimeSeekable() : 0; +} + void HTMLMediaElement::updateVolume() { if (!m_player) @@ -1603,7 +1628,7 @@ bool HTMLMediaElement::processingUserGesture() const FrameLoader* loader = frame ? frame->loader() : 0; // return 'true' for safety if we don't know the answer - return loader ? loader->userGestureHint() : true; + return loader ? loader->isProcessingUserGesture() : true; } #if ENABLE(PLUGIN_PROXY_FOR_VIDEO) diff --git a/src/3rdparty/webkit/WebCore/html/HTMLMediaElement.h b/src/3rdparty/webkit/WebCore/html/HTMLMediaElement.h index 8d238d5..486574b 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLMediaElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLMediaElement.h @@ -66,6 +66,9 @@ public: virtual bool isVideo() const { return false; } virtual bool hasVideo() const { return false; } + void rewind(float timeDelta); + void returnToRealtime(); + virtual bool supportsFullscreen() const { return false; } void scheduleLoad(); @@ -75,6 +78,8 @@ public: // Pauses playback without changing any states or generating events void setPausedInternal(bool); + MediaPlayer::MovieLoadType movieLoadType() const; + bool inActiveDocument() const { return m_inActiveDocument; } // DOM API @@ -221,10 +226,12 @@ private: bool stoppedDueToErrors() const; bool pausedForUserInteraction() const; + float minTimeSeekable() const; + float maxTimeSeekable() const; + // Restrictions to change default behaviors. This is a effectively a compile time choice at the moment // because there are no accessor methods. - enum BehaviorRestrictions - { + enum BehaviorRestrictions { NoRestrictions = 0, RequireUserGestureForLoadRestriction = 1 << 0, RequireUserGestureForRateChangeRestriction = 1 << 1, diff --git a/src/3rdparty/webkit/WebCore/html/HTMLMenuElement.h b/src/3rdparty/webkit/WebCore/html/HTMLMenuElement.h index 0f4488d..68b5b8f 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLMenuElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLMenuElement.h @@ -26,8 +26,7 @@ namespace WebCore { -class HTMLMenuElement : public HTMLElement -{ +class HTMLMenuElement : public HTMLElement { public: HTMLMenuElement(const QualifiedName&, Document*); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLMetaElement.h b/src/3rdparty/webkit/WebCore/html/HTMLMetaElement.h index f535293..d86df2e 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLMetaElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLMetaElement.h @@ -28,8 +28,7 @@ namespace WebCore { -class HTMLMetaElement : public HTMLElement -{ +class HTMLMetaElement : public HTMLElement { public: HTMLMetaElement(const QualifiedName&, Document*); ~HTMLMetaElement(); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLModElement.h b/src/3rdparty/webkit/WebCore/html/HTMLModElement.h index 399053c..83697f9 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLModElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLModElement.h @@ -30,8 +30,7 @@ namespace WebCore { class String; -class HTMLModElement : public HTMLElement -{ +class HTMLModElement : public HTMLElement { public: HTMLModElement(const QualifiedName&, Document*); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLOListElement.h b/src/3rdparty/webkit/WebCore/html/HTMLOListElement.h index e459269..b7a13ee 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLOListElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLOListElement.h @@ -26,8 +26,7 @@ namespace WebCore { -class HTMLOListElement : public HTMLElement -{ +class HTMLOListElement : public HTMLElement { public: HTMLOListElement(const QualifiedName&, Document*); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLOptionElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLOptionElement.cpp index 1d446f7..8cb95d0 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLOptionElement.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLOptionElement.cpp @@ -152,10 +152,10 @@ void HTMLOptionElement::setSelectedState(bool selected) void HTMLOptionElement::childrenChanged(bool changedByParser, Node* beforeChange, Node* afterChange, int childCountDelta) { - HTMLSelectElement* select = ownerSelectElement(); - if (select) - select->childrenChanged(changedByParser); - HTMLFormControlElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta); + HTMLSelectElement* select = ownerSelectElement(); + if (select) + select->childrenChanged(changedByParser); + HTMLFormControlElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta); } HTMLSelectElement* HTMLOptionElement::ownerSelectElement() const diff --git a/src/3rdparty/webkit/WebCore/html/HTMLParamElement.h b/src/3rdparty/webkit/WebCore/html/HTMLParamElement.h index 4da2ed3..1867ccf 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLParamElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLParamElement.h @@ -27,8 +27,7 @@ namespace WebCore { -class HTMLParamElement : public HTMLElement -{ +class HTMLParamElement : public HTMLElement { friend class HTMLAppletElement; public: HTMLParamElement(const QualifiedName&, Document*); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLParser.cpp b/src/3rdparty/webkit/WebCore/html/HTMLParser.cpp index ea6bbe2..722f4e2 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLParser.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLParser.cpp @@ -793,6 +793,20 @@ bool HTMLParser::dtCreateErrorCheck(Token* t, RefPtr<Node>& result) return true; } +bool HTMLParser::rpCreateErrorCheck(Token*, RefPtr<Node>&) +{ + popBlock(rpTag); + popBlock(rtTag); + return true; +} + +bool HTMLParser::rtCreateErrorCheck(Token*, RefPtr<Node>&) +{ + popBlock(rpTag); + popBlock(rtTag); + return true; +} + bool HTMLParser::nestedCreateErrorCheck(Token* t, RefPtr<Node>&) { popBlock(t->tagName); @@ -917,6 +931,8 @@ PassRefPtr<Node> HTMLParser::getNode(Token* t) gFunctionMap.set(pTag.localName().impl(), &HTMLParser::pCloserCreateErrorCheck); gFunctionMap.set(plaintextTag.localName().impl(), &HTMLParser::pCloserCreateErrorCheck); gFunctionMap.set(preTag.localName().impl(), &HTMLParser::pCloserCreateErrorCheck); + gFunctionMap.set(rpTag.localName().impl(), &HTMLParser::rpCreateErrorCheck); + gFunctionMap.set(rtTag.localName().impl(), &HTMLParser::rtCreateErrorCheck); gFunctionMap.set(sTag.localName().impl(), &HTMLParser::nestedStyleCreateErrorCheck); gFunctionMap.set(selectTag.localName().impl(), &HTMLParser::selectCreateErrorCheck); gFunctionMap.set(smallTag.localName().impl(), &HTMLParser::nestedStyleCreateErrorCheck); @@ -1656,7 +1672,7 @@ void HTMLParser::reportErrorToConsole(HTMLParserErrorCode errorCode, const Atomi message.replace("%tag1", tag1); message.replace("%tag2", tag2); - frame->domWindow()->console()->addMessage(HTMLMessageSource, + frame->domWindow()->console()->addMessage(HTMLMessageSource, LogMessageType, isWarning(errorCode) ? WarningMessageLevel : ErrorMessageLevel, message, lineNumber, m_document->url().string()); } diff --git a/src/3rdparty/webkit/WebCore/html/HTMLParser.h b/src/3rdparty/webkit/WebCore/html/HTMLParser.h index 19f553e..bd12049 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLParser.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLParser.h @@ -102,6 +102,8 @@ private: bool noscriptCreateErrorCheck(Token*, RefPtr<Node>&); bool pCloserCreateErrorCheck(Token*, RefPtr<Node>&); bool pCloserStrictCreateErrorCheck(Token*, RefPtr<Node>&); + bool rpCreateErrorCheck(Token*, RefPtr<Node>&); + bool rtCreateErrorCheck(Token*, RefPtr<Node>&); bool selectCreateErrorCheck(Token*, RefPtr<Node>&); bool tableCellCreateErrorCheck(Token*, RefPtr<Node>&); bool tableSectionCreateErrorCheck(Token*, RefPtr<Node>&); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLQuoteElement.h b/src/3rdparty/webkit/WebCore/html/HTMLQuoteElement.h index 623c28f..addbfb4 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLQuoteElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLQuoteElement.h @@ -28,8 +28,7 @@ namespace WebCore { class String; -class HTMLQuoteElement : public HTMLElement -{ +class HTMLQuoteElement : public HTMLElement { public: HTMLQuoteElement(const QualifiedName&, Document*); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLSelectElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLSelectElement.cpp index c47bb70..2409f31 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLSelectElement.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLSelectElement.cpp @@ -106,13 +106,7 @@ int HTMLSelectElement::activeSelectionEndListIndex() const unsigned HTMLSelectElement::length() const { - unsigned len = 0; - const Vector<Element*>& items = listItems(); - for (unsigned i = 0; i < items.size(); ++i) { - if (items[i]->hasLocalName(optionTag)) - ++len; - } - return len; + return SelectElement::optionCount(m_data, this); } void HTMLSelectElement::add(HTMLElement *element, HTMLElement *before, ExceptionCode& ec) diff --git a/src/3rdparty/webkit/WebCore/html/HTMLSelectElement.idl b/src/3rdparty/webkit/WebCore/html/HTMLSelectElement.idl index fb08bb1..26f2653 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLSelectElement.idl +++ b/src/3rdparty/webkit/WebCore/html/HTMLSelectElement.idl @@ -41,6 +41,9 @@ module html { #endif readonly attribute HTMLFormElement form; +#if !defined(LANGUAGE_COM) || !LANGUAGE_COM + readonly attribute ValidityState validity; +#endif readonly attribute boolean willValidate; // Modified in DOM Level 2: diff --git a/src/3rdparty/webkit/WebCore/html/HTMLStyleElement.h b/src/3rdparty/webkit/WebCore/html/HTMLStyleElement.h index fe3adb0..03b4c66 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLStyleElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLStyleElement.h @@ -28,8 +28,7 @@ namespace WebCore { -class HTMLStyleElement : public HTMLElement, public StyleElement -{ +class HTMLStyleElement : public HTMLElement, public StyleElement { public: HTMLStyleElement(const QualifiedName&, Document*, bool createdByParser); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLTableCaptionElement.h b/src/3rdparty/webkit/WebCore/html/HTMLTableCaptionElement.h index 38bc434..3c2aaa1 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLTableCaptionElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLTableCaptionElement.h @@ -30,8 +30,7 @@ namespace WebCore { -class HTMLTableCaptionElement : public HTMLTablePartElement -{ +class HTMLTableCaptionElement : public HTMLTablePartElement { public: HTMLTableCaptionElement(const QualifiedName&, Document*); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLTableCellElement.h b/src/3rdparty/webkit/WebCore/html/HTMLTableCellElement.h index 7e26e94..fc74cae 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLTableCellElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLTableCellElement.h @@ -32,8 +32,7 @@ namespace WebCore { -class HTMLTableCellElement : public HTMLTablePartElement -{ +class HTMLTableCellElement : public HTMLTablePartElement { public: HTMLTableCellElement(const QualifiedName&, Document*); ~HTMLTableCellElement(); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLTableColElement.h b/src/3rdparty/webkit/WebCore/html/HTMLTableColElement.h index 0bed401..83a26aa 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLTableColElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLTableColElement.h @@ -34,8 +34,7 @@ namespace WebCore { class HTMLTableElement; -class HTMLTableColElement : public HTMLTablePartElement -{ +class HTMLTableColElement : public HTMLTablePartElement { public: HTMLTableColElement(const QualifiedName& tagName, Document*); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLTableSectionElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLTableSectionElement.cpp index e91a96a..15fa97e 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLTableSectionElement.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLTableSectionElement.cpp @@ -99,7 +99,7 @@ PassRefPtr<HTMLElement> HTMLTableSectionElement::insertRow(int index, ExceptionC return r.release(); } -void HTMLTableSectionElement::deleteRow( int index, ExceptionCode& ec) +void HTMLTableSectionElement::deleteRow(int index, ExceptionCode& ec) { RefPtr<HTMLCollection> children = rows(); int numRows = children ? (int)children->length() : 0; diff --git a/src/3rdparty/webkit/WebCore/html/HTMLTagNames.in b/src/3rdparty/webkit/WebCore/html/HTMLTagNames.in index e6bbfc9..c066e3c 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLTagNames.in +++ b/src/3rdparty/webkit/WebCore/html/HTMLTagNames.in @@ -25,10 +25,10 @@ cite interfaceName=HTMLElement code interfaceName=HTMLElement col interfaceName=HTMLTableColElement colgroup interfaceName=HTMLTableColElement -datagrid interfaceName=HTMLDataGridElement -dcell interfaceName=HTMLDataGridCellElement -dcol interfaceName=HTMLDataGridColElement -drow interfaceName=HTMLDataGridRowElement +datagrid interfaceName=HTMLDataGridElement,conditional=DATAGRID +dcell interfaceName=HTMLDataGridCellElement,conditional=DATAGRID +dcol interfaceName=HTMLDataGridColElement,conditional=DATAGRID +drow interfaceName=HTMLDataGridRowElement,conditional=DATAGRID dd interfaceName=HTMLElement del interfaceName=HTMLModElement dfn interfaceName=HTMLElement @@ -89,6 +89,9 @@ param plaintext interfaceName=HTMLElement pre q interfaceName=HTMLQuoteElement +rp interfaceName=HTMLElement +rt interfaceName=HTMLElement +ruby interfaceName=HTMLElement s interfaceName=HTMLElement samp interfaceName=HTMLElement script constructorNeedsCreatedByParser diff --git a/src/3rdparty/webkit/WebCore/html/HTMLTextAreaElement.idl b/src/3rdparty/webkit/WebCore/html/HTMLTextAreaElement.idl index c4f144b..f6ac05a 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLTextAreaElement.idl +++ b/src/3rdparty/webkit/WebCore/html/HTMLTextAreaElement.idl @@ -27,6 +27,9 @@ module html { ] HTMLTextAreaElement : HTMLElement { attribute [ConvertNullToNullString] DOMString defaultValue; readonly attribute HTMLFormElement form; +#if !defined(LANGUAGE_COM) || !LANGUAGE_COM + readonly attribute ValidityState validity; +#endif attribute [ConvertNullToNullString] DOMString accessKey; attribute long cols; attribute boolean disabled; diff --git a/src/3rdparty/webkit/WebCore/html/HTMLTitleElement.h b/src/3rdparty/webkit/WebCore/html/HTMLTitleElement.h index 2cbb667..5335d8d 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLTitleElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLTitleElement.h @@ -28,8 +28,7 @@ namespace WebCore { -class HTMLTitleElement : public HTMLElement -{ +class HTMLTitleElement : public HTMLElement { public: HTMLTitleElement(const QualifiedName&, Document*); ~HTMLTitleElement(); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLTokenizer.cpp b/src/3rdparty/webkit/WebCore/html/HTMLTokenizer.cpp index 6966351..5788eb6 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLTokenizer.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLTokenizer.cpp @@ -321,7 +321,7 @@ HTMLTokenizer::State HTMLTokenizer::parseNonHTMLText(SegmentedString& src, State { ASSERT(state.inTextArea() || state.inTitle() || state.inIFrame() || !state.hasEntityState()); ASSERT(!state.hasTagState()); - ASSERT(state.inXmp() + state.inTextArea() + state.inTitle() + state.inStyle() + state.inScript() + state.inIFrame() == 1 ); + ASSERT(state.inXmp() + state.inTextArea() + state.inTitle() + state.inStyle() + state.inScript() + state.inIFrame() == 1); if (state.inScript() && !m_currentScriptTagStartLineNumber) m_currentScriptTagStartLineNumber = m_lineNumber; @@ -730,9 +730,9 @@ HTMLTokenizer::State HTMLTokenizer::parseEntity(SegmentedString& src, UChar*& de EntityUnicodeValue = 0; } - while(!src.isEmpty()) { + while (!src.isEmpty()) { UChar cc = *src; - switch(state.entityState()) { + switch (state.entityState()) { case NoEntity: ASSERT(state.entityState() != NoEntity); return state; @@ -781,7 +781,7 @@ HTMLTokenizer::State HTMLTokenizer::parseEntity(SegmentedString& src, UChar*& de case Decimal: { int ll = min(src.length(), 9-cBufferPos); - while(ll--) { + while (ll--) { cc = *src; if (!(cc >= '0' && cc <= '9')) { @@ -800,7 +800,7 @@ HTMLTokenizer::State HTMLTokenizer::parseEntity(SegmentedString& src, UChar*& de case EntityName: { int ll = min(src.length(), 9-cBufferPos); - while(ll--) { + while (ll--) { cc = *src; if (!((cc >= 'a' && cc <= 'z') || (cc >= '0' && cc <= '9') || (cc >= 'A' && cc <= 'Z'))) { @@ -814,7 +814,7 @@ HTMLTokenizer::State HTMLTokenizer::parseEntity(SegmentedString& src, UChar*& de if (cBufferPos == 9) state.setEntityState(SearchSemicolon); if (state.entityState() == SearchSemicolon) { - if(cBufferPos > 1) { + if (cBufferPos > 1) { // Since the maximum length of entity name is 9, // so a single char array which is allocated on // the stack, its length is 10, should be OK. @@ -837,11 +837,11 @@ HTMLTokenizer::State HTMLTokenizer::parseEntity(SegmentedString& src, UChar*& de else e = 0; - if(e) + if (e) EntityUnicodeValue = e->code; // be IE compatible - if(parsingTag && EntityUnicodeValue > 255 && *src != ';') + if (parsingTag && EntityUnicodeValue > 255 && *src != ';') EntityUnicodeValue = 0; } } @@ -1122,7 +1122,7 @@ HTMLTokenizer::State HTMLTokenizer::parseTag(SegmentedString& src, State state) while (!src.isEmpty()) { checkBuffer(); - switch(state.tagState()) { + switch (state.tagState()) { case NoTag: { m_cBufferPos = cBufferPos; @@ -1237,7 +1237,7 @@ HTMLTokenizer::State HTMLTokenizer::parseTag(SegmentedString& src, State state) break; } case SearchAttribute: - while(!src.isEmpty()) { + while (!src.isEmpty()) { UChar curchar = *src; // In this mode just ignore any quotes we encounter and treat them like spaces. if (!isASCIISpace(curchar) && curchar != '\'' && curchar != '"') { @@ -1256,6 +1256,7 @@ HTMLTokenizer::State HTMLTokenizer::parseTag(SegmentedString& src, State state) break; case AttributeName: { + m_rawAttributeBeforeValue.clear(); int ll = min(src.length(), CBUFLEN - cBufferPos); while (ll--) { UChar curchar = *src; @@ -1278,6 +1279,7 @@ HTMLTokenizer::State HTMLTokenizer::parseTag(SegmentedString& src, State state) else m_cBuffer[cBufferPos++] = curchar; + m_rawAttributeBeforeValue.append(curchar); src.advance(m_lineNumber); } if (cBufferPos == CBUFLEN) { @@ -1309,6 +1311,7 @@ HTMLTokenizer::State HTMLTokenizer::parseTag(SegmentedString& src, State state) state.setTagState(SearchValue); if (inViewSourceMode()) m_currentToken.addViewSourceChar(curchar); + m_rawAttributeBeforeValue.append(curchar); src.advancePastNonNewline(); } else { m_currentToken.addAttribute(m_attrName, emptyAtom, inViewSourceMode()); @@ -1318,11 +1321,12 @@ HTMLTokenizer::State HTMLTokenizer::parseTag(SegmentedString& src, State state) } break; } - if (inViewSourceMode()) - m_currentToken.addViewSourceChar(curchar); - + lastIsSlash = curchar == '/'; + if (inViewSourceMode()) + m_currentToken.addViewSourceChar(curchar); + m_rawAttributeBeforeValue.append(curchar); src.advance(m_lineNumber); } break; @@ -1335,6 +1339,7 @@ HTMLTokenizer::State HTMLTokenizer::parseTag(SegmentedString& src, State state) state.setTagState(QuotedValue); if (inViewSourceMode()) m_currentToken.addViewSourceChar(curchar); + m_rawAttributeBeforeValue.append(curchar); src.advancePastNonNewline(); } else state.setTagState(Value); @@ -1343,6 +1348,7 @@ HTMLTokenizer::State HTMLTokenizer::parseTag(SegmentedString& src, State state) } if (inViewSourceMode()) m_currentToken.addViewSourceChar(curchar); + m_rawAttributeBeforeValue.append(curchar); src.advance(m_lineNumber); } break; @@ -1391,6 +1397,13 @@ HTMLTokenizer::State HTMLTokenizer::parseTag(SegmentedString& src, State state) m_currentToken.addViewSourceChar('x'); } else if (inViewSourceMode()) m_currentToken.addViewSourceChar('v'); + + if (m_currentToken.beginTag && m_currentToken.tagName == scriptTag && !inViewSourceMode() && !m_parser->skipMode() && m_attrName == srcAttr) { + String context(m_rawAttributeBeforeValue.data(), m_rawAttributeBeforeValue.size()); + if (m_XSSAuditor && !m_XSSAuditor->canLoadExternalScriptFromSrc(context, attributeValue)) + attributeValue = blankURL().string(); + } + m_currentToken.addAttribute(m_attrName, attributeValue, inViewSourceMode()); m_dest = m_buffer; state.setTagState(SearchAttribute); @@ -1407,7 +1420,7 @@ HTMLTokenizer::State HTMLTokenizer::parseTag(SegmentedString& src, State state) } break; case Value: - while(!src.isEmpty()) { + while (!src.isEmpty()) { checkBuffer(); UChar curchar = *src; if (curchar <= '>' && !src.escaped()) { @@ -1421,6 +1434,13 @@ HTMLTokenizer::State HTMLTokenizer::parseTag(SegmentedString& src, State state) // '/' does not delimit in IE! if (isASCIISpace(curchar) || curchar == '>') { AtomicString attributeValue(m_buffer + 1, m_dest - m_buffer - 1); + + if (m_currentToken.beginTag && m_currentToken.tagName == scriptTag && !inViewSourceMode() && !m_parser->skipMode() && m_attrName == srcAttr) { + String context(m_rawAttributeBeforeValue.data(), m_rawAttributeBeforeValue.size()); + if (m_XSSAuditor && !m_XSSAuditor->canLoadExternalScriptFromSrc(context, attributeValue)) + attributeValue = blankURL().string(); + } + m_currentToken.addAttribute(m_attrName, attributeValue, inViewSourceMode()); if (inViewSourceMode()) m_currentToken.addViewSourceChar('v'); @@ -1473,11 +1493,8 @@ HTMLTokenizer::State HTMLTokenizer::parseTag(SegmentedString& src, State state) m_scriptTagCharsetAttrValue = String(); if (m_currentToken.attrs && !m_fragment) { if (m_doc->frame() && m_doc->frame()->script()->isEnabled()) { - if ((a = m_currentToken.attrs->getAttributeItem(srcAttr))) { + if ((a = m_currentToken.attrs->getAttributeItem(srcAttr))) m_scriptTagSrcAttrValue = m_doc->completeURL(parseURL(a->value())).string(); - if (m_XSSAuditor && !m_XSSAuditor->canLoadExternalScriptFromSrc(a->value())) - m_scriptTagSrcAttrValue = String(); - } } } } @@ -1684,7 +1701,7 @@ void HTMLTokenizer::write(const SegmentedString& str, bool appendData) else if (state.startTag()) { state.setStartTag(false); - switch(cc) { + switch (cc) { case '/': break; case '!': { @@ -1712,7 +1729,7 @@ void HTMLTokenizer::write(const SegmentedString& str, bool appendData) } // else fall through default: { - if( ((cc >= 'a') && (cc <= 'z')) || ((cc >= 'A') && (cc <= 'Z'))) { + if ( ((cc >= 'a') && (cc <= 'z')) || ((cc >= 'A') && (cc <= 'Z'))) { // Start of a Start-Tag } else { // Invalid tag diff --git a/src/3rdparty/webkit/WebCore/html/HTMLTokenizer.h b/src/3rdparty/webkit/WebCore/html/HTMLTokenizer.h index 6612af8..d731b2d 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLTokenizer.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLTokenizer.h @@ -213,6 +213,10 @@ private: Token m_currentToken; + // This buffer holds the raw characters we've seen between the beginning of + // the attribute name and the first character of the attribute value. + Vector<UChar, 32> m_rawAttributeBeforeValue; + // Tokenizer flags ////////////////// // are we in quotes within a html tag diff --git a/src/3rdparty/webkit/WebCore/html/HTMLUListElement.h b/src/3rdparty/webkit/WebCore/html/HTMLUListElement.h index 3a565a4..1eda5f3 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLUListElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLUListElement.h @@ -26,8 +26,7 @@ namespace WebCore { -class HTMLUListElement : public HTMLElement -{ +class HTMLUListElement : public HTMLElement { public: HTMLUListElement(const QualifiedName&, Document*); diff --git a/src/3rdparty/webkit/WebCore/html/HTMLVideoElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLVideoElement.cpp index a6210a2..ecd74e7 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLVideoElement.cpp +++ b/src/3rdparty/webkit/WebCore/html/HTMLVideoElement.cpp @@ -186,7 +186,7 @@ void HTMLVideoElement::updatePosterImage() #endif } -void HTMLVideoElement::paint(GraphicsContext* context, const IntRect& r) +void HTMLVideoElement::paint(GraphicsContext* context, const IntRect& destRect) { // FIXME: We should also be able to paint the poster image. @@ -195,7 +195,19 @@ void HTMLVideoElement::paint(GraphicsContext* context, const IntRect& r) return; player->setVisible(true); // Make player visible or it won't draw. - player->paint(context, r); + player->paint(context, destRect); +} + +void HTMLVideoElement::paintCurrentFrameInContext(GraphicsContext* context, const IntRect& destRect) +{ + // FIXME: We should also be able to paint the poster image. + + MediaPlayer* player = HTMLMediaElement::player(); + if (!player) + return; + + player->setVisible(true); // Make player visible or it won't draw. + player->paintCurrentFrameInContext(context, destRect); } } diff --git a/src/3rdparty/webkit/WebCore/html/HTMLVideoElement.h b/src/3rdparty/webkit/WebCore/html/HTMLVideoElement.h index 830e72e..dc9714a 100644 --- a/src/3rdparty/webkit/WebCore/html/HTMLVideoElement.h +++ b/src/3rdparty/webkit/WebCore/html/HTMLVideoElement.h @@ -35,8 +35,7 @@ namespace WebCore { class HTMLImageLoader; -class HTMLVideoElement : public HTMLMediaElement -{ +class HTMLVideoElement : public HTMLMediaElement { public: HTMLVideoElement(const QualifiedName&, Document*); @@ -67,8 +66,9 @@ public: void updatePosterImage(); - // Used by canvas to gain raw pixel access void paint(GraphicsContext*, const IntRect&); + // Used by canvas to gain raw pixel access + void paintCurrentFrameInContext(GraphicsContext*, const IntRect&); private: OwnPtr<HTMLImageLoader> m_imageLoader; diff --git a/src/3rdparty/webkit/WebCore/html/ImageData.idl b/src/3rdparty/webkit/WebCore/html/ImageData.idl index 7f37b52..8025de1 100644 --- a/src/3rdparty/webkit/WebCore/html/ImageData.idl +++ b/src/3rdparty/webkit/WebCore/html/ImageData.idl @@ -29,8 +29,8 @@ module html { interface [ + CustomToJS, GenerateConstructor, - GenerateToJS ] ImageData { readonly attribute long width; readonly attribute long height; diff --git a/src/3rdparty/webkit/WebCore/html/TimeRanges.h b/src/3rdparty/webkit/WebCore/html/TimeRanges.h index 37820dc..6be8c4e 100644 --- a/src/3rdparty/webkit/WebCore/html/TimeRanges.h +++ b/src/3rdparty/webkit/WebCore/html/TimeRanges.h @@ -64,7 +64,8 @@ private: // We consider all the Ranges to be semi-bounded as follow: [start, end[ struct Range { Range() { } - Range(float start, float end) { + Range(float start, float end) + { m_start = start; m_end = end; } diff --git a/src/3rdparty/webkit/WebCore/html/ValidityState.cpp b/src/3rdparty/webkit/WebCore/html/ValidityState.cpp new file mode 100644 index 0000000..8ff629c --- /dev/null +++ b/src/3rdparty/webkit/WebCore/html/ValidityState.cpp @@ -0,0 +1,43 @@ +/* + * This file is part of the WebKit project. + * + * Copyright (C) 2009 Michelangelo De Simone <micdesim@gmail.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + */ + +#include "config.h" +#include "ValidityState.h" +#include "HTMLFormControlElement.h" + +namespace WebCore { + +ValidityState::ValidityState(HTMLFormControlElement* parent) + : m_control(parent) +{ + ASSERT(parent); +} + +bool ValidityState::valid() +{ + bool someError = typeMismatch() || stepMismatch() || rangeUnderflow() || rangeOverflow() || + tooLong() || patternMismatch() || valueMissing() || customError(); + + return !someError; +} + +} // namespace diff --git a/src/3rdparty/webkit/WebCore/html/ValidityState.h b/src/3rdparty/webkit/WebCore/html/ValidityState.h new file mode 100644 index 0000000..a011f7a --- /dev/null +++ b/src/3rdparty/webkit/WebCore/html/ValidityState.h @@ -0,0 +1,59 @@ +/* + * This file is part of the WebKit project. + * + * Copyright (C) 2009 Michelangelo De Simone <micdesim@gmail.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + */ + +#ifndef ValidityState_h +#define ValidityState_h + +#include <wtf/PassRefPtr.h> +#include <wtf/RefCounted.h> + +namespace WebCore { + + class HTMLFormControlElement; + + class ValidityState : public RefCounted<ValidityState> { + public: + static PassRefPtr<ValidityState> create(HTMLFormControlElement* owner) + { + return adoptRef(new ValidityState(owner)); + } + + HTMLFormControlElement* control() const { return m_control; } + + bool valueMissing() { return false; } + bool typeMismatch() { return false; } + bool patternMismatch() { return false; } + bool tooLong() { return false; } + bool rangeUnderflow() { return false; } + bool rangeOverflow() { return false; } + bool stepMismatch() { return false; } + bool customError() { return false; } + bool valid(); + + private: + ValidityState(HTMLFormControlElement*); + HTMLFormControlElement* m_control; + }; + +} // namespace WebCore + +#endif // ValidityState_h diff --git a/src/3rdparty/webkit/WebCore/html/ValidityState.idl b/src/3rdparty/webkit/WebCore/html/ValidityState.idl new file mode 100644 index 0000000..b926852 --- /dev/null +++ b/src/3rdparty/webkit/WebCore/html/ValidityState.idl @@ -0,0 +1,36 @@ +/* + * This file is part of the WebKit project. + * + * Copyright (C) 2009 Michelangelo De Simone <micdesim@gmail.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + */ + +module html { + + interface ValidityState { + readonly attribute boolean valueMissing; + readonly attribute boolean typeMismatch; + readonly attribute boolean patternMismatch; + readonly attribute boolean tooLong; + readonly attribute boolean rangeUnderflow; + readonly attribute boolean rangeOverflow; + readonly attribute boolean stepMismatch; + readonly attribute boolean customError; + readonly attribute boolean valid; + }; +} diff --git a/src/3rdparty/webkit/WebCore/inspector/ConsoleMessage.cpp b/src/3rdparty/webkit/WebCore/inspector/ConsoleMessage.cpp index b3c0218..609197e 100644 --- a/src/3rdparty/webkit/WebCore/inspector/ConsoleMessage.cpp +++ b/src/3rdparty/webkit/WebCore/inspector/ConsoleMessage.cpp @@ -38,8 +38,9 @@ namespace WebCore { -ConsoleMessage::ConsoleMessage(MessageSource s, MessageLevel l, const String& m, unsigned li, const String& u, unsigned g) +ConsoleMessage::ConsoleMessage(MessageSource s, MessageType t, MessageLevel l, const String& m, unsigned li, const String& u, unsigned g) : m_source(s) + , m_type(t) , m_level(l) , m_message(m) , m_line(li) @@ -49,8 +50,9 @@ ConsoleMessage::ConsoleMessage(MessageSource s, MessageLevel l, const String& m, { } -ConsoleMessage::ConsoleMessage(MessageSource s, MessageLevel l, ScriptCallStack* callStack, unsigned g, bool storeTrace) +ConsoleMessage::ConsoleMessage(MessageSource s, MessageType t, MessageLevel l, ScriptCallStack* callStack, unsigned g, bool storeTrace) : m_source(s) + , m_type(t) , m_level(l) , m_wrappedArguments(callStack->at(0).argumentCount()) , m_frames(storeTrace ? callStack->size() : 0) @@ -77,6 +79,7 @@ void ConsoleMessage::addToConsole(InspectorFrontend* frontend) { InspectorJSONObject jsonObj = frontend->newInspectorJSONObject(); jsonObj.set("source", static_cast<int>(m_source)); + jsonObj.set("type", static_cast<int>(m_type)); jsonObj.set("level", static_cast<int>(m_level)); jsonObj.set("line", static_cast<int>(m_line)); jsonObj.set("url", m_url); @@ -109,6 +112,7 @@ bool ConsoleMessage::isEqual(ScriptState* state, ConsoleMessage* msg) const } return msg->m_source == m_source + && msg->m_type == m_type && msg->m_level == m_level && msg->m_message == m_message && msg->m_line == m_line diff --git a/src/3rdparty/webkit/WebCore/inspector/ConsoleMessage.h b/src/3rdparty/webkit/WebCore/inspector/ConsoleMessage.h index 15e6e7e..5b2f7d5 100644 --- a/src/3rdparty/webkit/WebCore/inspector/ConsoleMessage.h +++ b/src/3rdparty/webkit/WebCore/inspector/ConsoleMessage.h @@ -44,8 +44,8 @@ namespace WebCore { class ConsoleMessage { public: - ConsoleMessage(MessageSource, MessageLevel, const String& m, unsigned li, const String& u, unsigned g); - ConsoleMessage(MessageSource, MessageLevel, ScriptCallStack*, unsigned g, bool storeTrace = false); + ConsoleMessage(MessageSource, MessageType, MessageLevel, const String& m, unsigned li, const String& u, unsigned g); + ConsoleMessage(MessageSource, MessageType, MessageLevel, ScriptCallStack*, unsigned g, bool storeTrace = false); void addToConsole(InspectorFrontend* frontend); void incrementCount() { ++m_repeatCount; }; @@ -53,6 +53,7 @@ namespace WebCore { private: MessageSource m_source; + MessageType m_type; MessageLevel m_level; String m_message; Vector<ScriptValue> m_wrappedArguments; diff --git a/src/3rdparty/webkit/WebCore/inspector/InspectorController.cpp b/src/3rdparty/webkit/WebCore/inspector/InspectorController.cpp index 7e0cf31..4b2dd59 100644 --- a/src/3rdparty/webkit/WebCore/inspector/InspectorController.cpp +++ b/src/3rdparty/webkit/WebCore/inspector/InspectorController.cpp @@ -395,20 +395,20 @@ void InspectorController::setWindowVisible(bool visible, bool attached) m_showAfterVisible = CurrentPanel; } -void InspectorController::addMessageToConsole(MessageSource source, MessageLevel level, ScriptCallStack* callStack) +void InspectorController::addMessageToConsole(MessageSource source, MessageType type, MessageLevel level, ScriptCallStack* callStack) { if (!enabled()) return; - addConsoleMessage(callStack->state(), new ConsoleMessage(source, level, callStack, m_groupLevel, level == TraceMessageLevel)); + addConsoleMessage(callStack->state(), new ConsoleMessage(source, type, level, callStack, m_groupLevel, type == TraceMessageType)); } -void InspectorController::addMessageToConsole(MessageSource source, MessageLevel level, const String& message, unsigned lineNumber, const String& sourceID) +void InspectorController::addMessageToConsole(MessageSource source, MessageType type, MessageLevel level, const String& message, unsigned lineNumber, const String& sourceID) { if (!enabled()) return; - addConsoleMessage(0, new ConsoleMessage(source, level, message, lineNumber, sourceID, m_groupLevel)); + addConsoleMessage(0, new ConsoleMessage(source, type, level, message, lineNumber, sourceID, m_groupLevel)); } void InspectorController::addConsoleMessage(ScriptState* scriptState, ConsoleMessage* consoleMessage) @@ -440,7 +440,7 @@ void InspectorController::startGroup(MessageSource source, ScriptCallStack* call { ++m_groupLevel; - addConsoleMessage(callStack->state(), new ConsoleMessage(source, StartGroupMessageLevel, callStack, m_groupLevel)); + addConsoleMessage(callStack->state(), new ConsoleMessage(source, StartGroupMessageType, LogMessageLevel, callStack, m_groupLevel)); } void InspectorController::endGroup(MessageSource source, unsigned lineNumber, const String& sourceURL) @@ -450,7 +450,7 @@ void InspectorController::endGroup(MessageSource source, unsigned lineNumber, co --m_groupLevel; - addConsoleMessage(0, new ConsoleMessage(source, EndGroupMessageLevel, String(), lineNumber, sourceURL, m_groupLevel)); + addConsoleMessage(0, new ConsoleMessage(source, EndGroupMessageType, LogMessageLevel, String(), lineNumber, sourceURL, m_groupLevel)); } void InspectorController::attachWindow() @@ -987,7 +987,8 @@ void InspectorController::scriptImported(unsigned long identifier, const String& resource->updateScriptObject(m_frontend.get()); } -void InspectorController::enableResourceTracking(bool always) { +void InspectorController::enableResourceTracking(bool always) +{ if (!enabled()) return; @@ -1005,7 +1006,8 @@ void InspectorController::enableResourceTracking(bool always) { m_inspectedPage->mainFrame()->loader()->reload(); } -void InspectorController::disableResourceTracking(bool always) { +void InspectorController::disableResourceTracking(bool always) +{ if (!enabled()) return; @@ -1098,7 +1100,7 @@ void InspectorController::addProfileFinishedMessageToConsole(PassRefPtr<Profile> message += "/"; message += UString::from(profile->uid()); message += "\" finished."; - addMessageToConsole(JSMessageSource, LogMessageLevel, message, lineNumber, sourceURL); + addMessageToConsole(JSMessageSource, LogMessageType, LogMessageLevel, message, lineNumber, sourceURL); } void InspectorController::addStartProfilingMessageToConsole(const UString& title, unsigned lineNumber, const UString& sourceURL) @@ -1106,7 +1108,7 @@ void InspectorController::addStartProfilingMessageToConsole(const UString& title UString message = "Profile \"webkit-profile://"; message += encodeWithURLEscapeSequences(title); message += "/0\" started."; - addMessageToConsole(JSMessageSource, LogMessageLevel, message, lineNumber, sourceURL); + addMessageToConsole(JSMessageSource, LogMessageType, LogMessageLevel, message, lineNumber, sourceURL); } void InspectorController::addScriptProfile(Profile* profile) @@ -1506,7 +1508,7 @@ void InspectorController::count(const String& title, unsigned lineNumber, const m_counts.add(identifier, count); String message = String::format("%s: %d", title.utf8().data(), count); - addMessageToConsole(JSMessageSource, LogMessageLevel, message, lineNumber, sourceID); + addMessageToConsole(JSMessageSource, LogMessageType, LogMessageLevel, message, lineNumber, sourceID); } void InspectorController::startTiming(const String& title) diff --git a/src/3rdparty/webkit/WebCore/inspector/InspectorController.h b/src/3rdparty/webkit/WebCore/inspector/InspectorController.h index 8ba8669..4c90bc5 100644 --- a/src/3rdparty/webkit/WebCore/inspector/InspectorController.h +++ b/src/3rdparty/webkit/WebCore/inspector/InspectorController.h @@ -173,8 +173,8 @@ public: void addResourceSourceToFrame(long identifier, Node* frame); bool addSourceToFrame(const String& mimeType, const String& source, Node*); - void addMessageToConsole(MessageSource, MessageLevel, ScriptCallStack*); - void addMessageToConsole(MessageSource, MessageLevel, const String& message, unsigned lineNumber, const String& sourceID); + void addMessageToConsole(MessageSource, MessageType, MessageLevel, ScriptCallStack*); + void addMessageToConsole(MessageSource, MessageType, MessageLevel, const String& message, unsigned lineNumber, const String& sourceID); void clearConsoleMessages(); void attachWindow(); diff --git a/src/3rdparty/webkit/WebCore/inspector/InspectorFrontend.cpp b/src/3rdparty/webkit/WebCore/inspector/InspectorFrontend.cpp index 255f1d8..c1abd31 100644 --- a/src/3rdparty/webkit/WebCore/inspector/InspectorFrontend.cpp +++ b/src/3rdparty/webkit/WebCore/inspector/InspectorFrontend.cpp @@ -61,7 +61,8 @@ InspectorFrontend::~InspectorFrontend() m_webInspector = ScriptObject(); } -InspectorJSONObject InspectorFrontend::newInspectorJSONObject() { +InspectorJSONObject InspectorFrontend::newInspectorJSONObject() +{ return InspectorJSONObject::createNew(m_scriptState); } diff --git a/src/3rdparty/webkit/WebCore/inspector/JavaScriptCallFrame.cpp b/src/3rdparty/webkit/WebCore/inspector/JavaScriptCallFrame.cpp index 6e8fce9..1ce0def 100644 --- a/src/3rdparty/webkit/WebCore/inspector/JavaScriptCallFrame.cpp +++ b/src/3rdparty/webkit/WebCore/inspector/JavaScriptCallFrame.cpp @@ -62,6 +62,14 @@ const JSC::ScopeChainNode* JavaScriptCallFrame::scopeChain() const return m_debuggerCallFrame.scopeChain(); } +JSC::JSGlobalObject* JavaScriptCallFrame::dynamicGlobalObject() const +{ + ASSERT(m_isValid); + if (!m_isValid) + return 0; + return m_debuggerCallFrame.dynamicGlobalObject(); +} + String JavaScriptCallFrame::functionName() const { ASSERT(m_isValid); diff --git a/src/3rdparty/webkit/WebCore/inspector/JavaScriptCallFrame.h b/src/3rdparty/webkit/WebCore/inspector/JavaScriptCallFrame.h index 9f193d8..e86b0eb 100644 --- a/src/3rdparty/webkit/WebCore/inspector/JavaScriptCallFrame.h +++ b/src/3rdparty/webkit/WebCore/inspector/JavaScriptCallFrame.h @@ -61,6 +61,7 @@ namespace WebCore { String functionName() const; JSC::DebuggerCallFrame::Type type() const; const JSC::ScopeChainNode* scopeChain() const; + JSC::JSGlobalObject* dynamicGlobalObject() const; JSC::JSObject* thisObject() const; JSC::JSValue evaluate(const JSC::UString& script, JSC::JSValue& exception) const; diff --git a/src/3rdparty/webkit/WebCore/inspector/JavaScriptDebugServer.cpp b/src/3rdparty/webkit/WebCore/inspector/JavaScriptDebugServer.cpp index bb6358c..84bc2f6 100644 --- a/src/3rdparty/webkit/WebCore/inspector/JavaScriptDebugServer.cpp +++ b/src/3rdparty/webkit/WebCore/inspector/JavaScriptDebugServer.cpp @@ -275,6 +275,19 @@ static Page* toPage(JSGlobalObject* globalObject) return frame ? frame->page() : 0; } +void JavaScriptDebugServer::detach(JSGlobalObject* globalObject) +{ + // If we're detaching from the currently executing global object, manually tear down our + // stack, since we won't get further debugger callbacks to do so. Also, resume execution, + // since there's no point in staying paused once a window closes. + if (m_currentCallFrame && m_currentCallFrame->dynamicGlobalObject() == globalObject) { + m_currentCallFrame = 0; + m_pauseOnCallFrame = 0; + continueProgram(); + } + Debugger::detach(globalObject); +} + void JavaScriptDebugServer::sourceParsed(ExecState* exec, const SourceCode& source, int errorLine, const UString& errorMessage) { if (m_callingListeners) @@ -387,12 +400,12 @@ void JavaScriptDebugServer::setJavaScriptPaused(FrameView* view, bool paused) if (!view) return; - const HashSet<Widget*>* children = view->children(); + const HashSet<RefPtr<Widget> >* children = view->children(); ASSERT(children); - HashSet<Widget*>::const_iterator end = children->end(); - for (HashSet<Widget*>::const_iterator it = children->begin(); it != end; ++it) { - Widget* widget = *it; + HashSet<RefPtr<Widget> >::const_iterator end = children->end(); + for (HashSet<RefPtr<Widget> >::const_iterator it = children->begin(); it != end; ++it) { + Widget* widget = (*it).get(); if (!widget->isPluginView()) continue; static_cast<PluginView*>(widget)->setJavaScriptPaused(paused); diff --git a/src/3rdparty/webkit/WebCore/inspector/JavaScriptDebugServer.h b/src/3rdparty/webkit/WebCore/inspector/JavaScriptDebugServer.h index 4ec3e33..baa6699 100644 --- a/src/3rdparty/webkit/WebCore/inspector/JavaScriptDebugServer.h +++ b/src/3rdparty/webkit/WebCore/inspector/JavaScriptDebugServer.h @@ -39,6 +39,7 @@ namespace JSC { class DebuggerCallFrame; + class JSGlobalObject; } namespace WebCore { @@ -99,6 +100,8 @@ namespace WebCore { void dispatchFunctionToListeners(JavaScriptExecutionCallback, Page*); void pauseIfNeeded(Page*); + + virtual void detach(JSC::JSGlobalObject*); virtual void sourceParsed(JSC::ExecState*, const JSC::SourceCode&, int errorLine, const JSC::UString& errorMsg); virtual void callEvent(const JSC::DebuggerCallFrame&, intptr_t sourceID, int lineNumber); diff --git a/src/3rdparty/webkit/WebCore/inspector/front-end/CallStackSidebarPane.js b/src/3rdparty/webkit/WebCore/inspector/front-end/CallStackSidebarPane.js index a2c8bed..c08cc7a 100644 --- a/src/3rdparty/webkit/WebCore/inspector/front-end/CallStackSidebarPane.js +++ b/src/3rdparty/webkit/WebCore/inspector/front-end/CallStackSidebarPane.js @@ -26,6 +26,16 @@ WebInspector.CallStackSidebarPane = function() { WebInspector.SidebarPane.call(this, WebInspector.UIString("Call Stack")); + + this._shortcuts = {}; + + var shortcut = WebInspector.KeyboardShortcut.makeKey(WebInspector.KeyboardShortcut.KeyCodes.Period, + WebInspector.KeyboardShortcut.Modifiers.Ctrl); + this._shortcuts[shortcut] = this._selectNextCallFrameOnStack.bind(this); + + var shortcut = WebInspector.KeyboardShortcut.makeKey(WebInspector.KeyboardShortcut.KeyCodes.Comma, + WebInspector.KeyboardShortcut.Modifiers.Ctrl); + this._shortcuts[shortcut] = this._selectPreviousCallFrameOnStack.bind(this); } WebInspector.CallStackSidebarPane.prototype = { @@ -100,6 +110,53 @@ WebInspector.CallStackSidebarPane.prototype = { this.dispatchEventToListeners("call frame selected"); }, + handleKeyEvent: function(event) + { + var shortcut = WebInspector.KeyboardShortcut.makeKeyFromEvent(event); + var handler = this._shortcuts[shortcut]; + if (handler) { + handler(event); + event.preventDefault(); + event.handled = true; + } + }, + + _selectNextCallFrameOnStack: function() + { + var index = this._selectedCallFrameIndex(); + if (index == -1) + return; + this._selectedPlacardByIndex(index + 1); + }, + + _selectPreviousCallFrameOnStack: function() + { + var index = this._selectedCallFrameIndex(); + if (index == -1) + return; + this._selectedPlacardByIndex(index - 1); + }, + + _selectedPlacardByIndex: function(index) + { + if (index < 0 || index >= this.placards.length) + return; + var placard = this.placards[index]; + this.selectedCallFrame = placard.callFrame + }, + + _selectedCallFrameIndex: function() + { + if (!this._selectedCallFrame) + return -1; + for (var i = 0; i < this.placards.length; ++i) { + var placard = this.placards[i]; + if (placard.callFrame === this._selectedCallFrame) + return i; + } + return -1; + }, + _placardSelected: function(event) { var placardElement = event.target.enclosingNodeOrSelfWithClass("placard"); diff --git a/src/3rdparty/webkit/WebCore/inspector/front-end/Console.js b/src/3rdparty/webkit/WebCore/inspector/front-end/Console.js index bce1784..ca9ac00 100644 --- a/src/3rdparty/webkit/WebCore/inspector/front-end/Console.js +++ b/src/3rdparty/webkit/WebCore/inspector/front-end/Console.js @@ -198,7 +198,7 @@ WebInspector.Console.prototype = { this.messages.push(msg); - if (msg.level === WebInspector.ConsoleMessage.MessageLevel.EndGroup) { + if (msg.type === WebInspector.ConsoleMessage.MessageType.EndGroup) { if (this.groupLevel < 1) return; @@ -206,7 +206,7 @@ WebInspector.Console.prototype = { this.currentGroup = this.currentGroup.parentGroup; } else { - if (msg.level === WebInspector.ConsoleMessage.MessageLevel.StartGroup) { + if (msg.type === WebInspector.ConsoleMessage.MessageType.StartGroup) { this.groupLevel++; var group = new WebInspector.ConsoleGroup(this.currentGroup, this.groupLevel); @@ -260,16 +260,7 @@ WebInspector.Console.prototype = { return; var reportCompletions = this._reportCompletions.bind(this, bestMatchOnly, completionsReadyCallback, dotNotation, bracketNotation, prefix); - if (expressionString) { - this._evalInInspectedWindow(expressionString, reportCompletions); - } else { - // There is no expressionString, so the completion should happen against global properties. - // Or if the debugger is paused, against properties in scope of the selected call frame. - if (WebInspector.panels.scripts && WebInspector.panels.scripts.paused) - reportCompletions(WebInspector.panels.scripts.variablesInScopeForSelectedCallFrame()); - else - reportCompletions(InspectorController.inspectedWindow()); - } + this._evalInInspectedWindow(expressionString, reportCompletions); }, _reportCompletions: function(bestMatchOnly, completionsReadyCallback, dotNotation, bracketNotation, prefix, result) { @@ -397,7 +388,6 @@ WebInspector.Console.prototype = { WebInspector.panels.scripts.evaluateInSelectedCallFrame(expression, false, callback); return; } - this.doEvalInWindow(expression, callback); }, @@ -431,6 +421,11 @@ WebInspector.Console.prototype = { doEvalInWindow: function(expression, callback) { + if (!expression) { + // There is no expression, so the completion should happen against global properties. + expression = "this"; + } + // Surround the expression in with statements to inject our command line API so that // the window object properties still take more precedent than our API functions. expression = "with (window._inspectorCommandLineAPI) { with (window) { " + expression + " } }"; @@ -581,23 +576,24 @@ WebInspector.Console.prototype = { WebInspector.Console.prototype.__proto__ = WebInspector.View.prototype; -WebInspector.ConsoleMessage = function(source, level, line, url, groupLevel, repeatCount) +WebInspector.ConsoleMessage = function(source, type, level, line, url, groupLevel, repeatCount) { this.source = source; + this.type = type; this.level = level; this.line = line; this.url = url; this.groupLevel = groupLevel; this.repeatCount = repeatCount; - if (arguments.length > 6) - this.setMessageBody(Array.prototype.slice.call(arguments, 6)); + if (arguments.length > 7) + this.setMessageBody(Array.prototype.slice.call(arguments, 7)); } WebInspector.ConsoleMessage.prototype = { setMessageBody: function(args) { - switch (this.level) { - case WebInspector.ConsoleMessage.MessageLevel.Trace: + switch (this.type) { + case WebInspector.ConsoleMessage.MessageType.Trace: var span = document.createElement("span"); span.addStyleClass("console-formatted-trace"); var stack = Array.prototype.slice.call(args); @@ -607,7 +603,7 @@ WebInspector.ConsoleMessage.prototype = { span.appendChild(document.createTextNode(funcNames.join("\n"))); this.formattedMessage = span; break; - case WebInspector.ConsoleMessage.MessageLevel.Object: + case WebInspector.ConsoleMessage.MessageType.Object: this.formattedMessage = this._format(["%O", args[0]]); break; default: @@ -725,8 +721,10 @@ WebInspector.ConsoleMessage.prototype = { case WebInspector.ConsoleMessage.MessageLevel.Error: element.addStyleClass("console-error-level"); break; - case WebInspector.ConsoleMessage.MessageLevel.StartGroup: - element.addStyleClass("console-group-title-level"); + } + + if (this.type === WebInspector.ConsoleMessage.MessageType.StartGroup) { + element.addStyleClass("console-group-title"); } if (this.elementsTreeOutline) { @@ -793,6 +791,25 @@ WebInspector.ConsoleMessage.prototype = { break; } + var typeString; + switch (this.type) { + case WebInspector.ConsoleMessage.MessageType.Log: + typeString = "Log"; + break; + case WebInspector.ConsoleMessage.MessageType.Object: + typeString = "Object"; + break; + case WebInspector.ConsoleMessage.MessageType.Trace: + typeString = "Trace"; + break; + case WebInspector.ConsoleMessage.MessageType.StartGroup: + typeString = "Start Group"; + break; + case WebInspector.ConsoleMessage.MessageType.EndGroup: + typeString = "End Group"; + break; + } + var levelString; switch (this.level) { case WebInspector.ConsoleMessage.MessageLevel.Tip: @@ -807,21 +824,9 @@ WebInspector.ConsoleMessage.prototype = { case WebInspector.ConsoleMessage.MessageLevel.Error: levelString = "Error"; break; - case WebInspector.ConsoleMessage.MessageLevel.Object: - levelString = "Object"; - break; - case WebInspector.ConsoleMessage.MessageLevel.Trace: - levelString = "Trace"; - break; - case WebInspector.ConsoleMessage.MessageLevel.StartGroup: - levelString = "Start Group"; - break; - case WebInspector.ConsoleMessage.MessageLevel.EndGroup: - levelString = "End Group"; - break; } - return sourceString + " " + levelString + ": " + this.formattedMessage.textContent + "\n" + this.url + " line " + this.line; + return sourceString + " " + typeString + " " + levelString + ": " + this.formattedMessage.textContent + "\n" + this.url + " line " + this.line; }, isEqual: function(msg, disreguardGroup) @@ -830,6 +835,7 @@ WebInspector.ConsoleMessage.prototype = { return false; var ret = (this.source == msg.source) + && (this.type == msg.type) && (this.level == msg.level) && (this.line == msg.line) && (this.url == msg.url) @@ -849,15 +855,19 @@ WebInspector.ConsoleMessage.MessageSource = { Other: 5 } +WebInspector.ConsoleMessage.MessageType = { + Log: 0, + Object: 1, + Trace: 2, + StartGroup: 3, + EndGroup: 4 +} + WebInspector.ConsoleMessage.MessageLevel = { Tip: 0, Log: 1, Warning: 2, - Error: 3, - Object: 4, - Trace: 5, - StartGroup: 6, - EndGroup: 7 + Error: 3 } WebInspector.ConsoleCommand = function(command) @@ -888,7 +898,7 @@ WebInspector.ConsoleCommandResult = function(result, exception, originatingComma var line = (exception ? result.line : -1); var url = (exception ? result.sourceURL : null); - WebInspector.ConsoleMessage.call(this, WebInspector.ConsoleMessage.MessageSource.JS, level, line, url, null, 1, message); + WebInspector.ConsoleMessage.call(this, WebInspector.ConsoleMessage.MessageSource.JS, WebInspector.ConsoleMessage.MessageType.Log, level, line, url, null, 1, message); this.originatingCommand = originatingCommand; } @@ -925,7 +935,7 @@ WebInspector.ConsoleGroup.prototype = { { var element = msg.toMessageElement(); - if (msg.level === WebInspector.ConsoleMessage.MessageLevel.StartGroup) { + if (msg.type === WebInspector.ConsoleMessage.MessageType.StartGroup) { this.messagesElement.parentNode.insertBefore(element, this.messagesElement); element.addEventListener("click", this._titleClicked.bind(this), true); } else @@ -937,7 +947,7 @@ WebInspector.ConsoleGroup.prototype = { _titleClicked: function(event) { - var groupTitleElement = event.target.enclosingNodeOrSelfWithClass("console-group-title-level"); + var groupTitleElement = event.target.enclosingNodeOrSelfWithClass("console-group-title"); if (groupTitleElement) { var groupElement = groupTitleElement.enclosingNodeOrSelfWithClass("console-group"); if (groupElement) diff --git a/src/3rdparty/webkit/WebCore/inspector/front-end/KeyboardShortcut.js b/src/3rdparty/webkit/WebCore/inspector/front-end/KeyboardShortcut.js new file mode 100644 index 0000000..ed28a48 --- /dev/null +++ b/src/3rdparty/webkit/WebCore/inspector/front-end/KeyboardShortcut.js @@ -0,0 +1,108 @@ +/* + * Copyright (C) 2009 Apple Inc. All rights reserved. + * Copyright (C) 2009 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +WebInspector.KeyboardShortcut = function() +{ +}; + +/** + * Constants for encoding modifier key set as a bit mask. + * @see #_makeKeyFromCodeAndModifiers + */ +WebInspector.KeyboardShortcut.Modifiers = { + None: 0, // Constant for empty modifiers set. + Shift: 1, + Ctrl: 2, + Alt: 4, + Meta: 8 // Command key on Mac, Win key on other platforms. +}; + +WebInspector.KeyboardShortcut.KeyCodes = { + Esc: 27, + Space: 32, + PageUp: 33, // also NUM_NORTH_EAST + PageDown: 34, // also NUM_SOUTH_EAST + End: 35, // also NUM_SOUTH_WEST + Home: 36, // also NUM_NORTH_WEST + Left: 37, // also NUM_WEST + Up: 38, // also NUM_NORTH + Right: 39, // also NUM_EAST + Down: 40, // also NUM_SOUTH + F1: 112, + F2: 113, + F3: 114, + F4: 115, + F5: 116, + F6: 117, + F7: 118, + F8: 119, + F9: 120, + F10: 121, + F11: 122, + F12: 123, + Semicolon: 186, // ; + Comma: 188, // , + Period: 190, // . + Slash: 191, // / + Apostrophe: 192, // ` + SingleQuote: 222, // ' +}; + +/** + * Creates a number encoding keyCode in the lower 8 bits and modifiers mask in the higher 8 bits. + * It is usefull for matching pressed keys. + * @param {number} keyCode Code of the key. + * @param {number} optModifiers Optional list of modifiers passed as additional paramerters. + */ +WebInspector.KeyboardShortcut.makeKey = function(keyCode, optModifiers) +{ + var modifiers = WebInspector.KeyboardShortcut.Modifiers.None; + for (var i = 1; i < arguments.length; i++) + modifiers |= arguments[i]; + return WebInspector.KeyboardShortcut._makeKeyFromCodeAndModifiers(keyCode, modifiers); +}; + +WebInspector.KeyboardShortcut.makeKeyFromEvent = function(keyboardEvent) +{ + var modifiers = WebInspector.KeyboardShortcut.Modifiers.None; + if (keyboardEvent.shiftKey) + modifiers |= WebInspector.KeyboardShortcut.Modifiers.Shift; + if (keyboardEvent.ctrlKey) + modifiers |= WebInspector.KeyboardShortcut.Modifiers.Ctrl; + if (keyboardEvent.altKey) + modifiers |= WebInspector.KeyboardShortcut.Modifiers.Alt; + if (keyboardEvent.metaKey) + modifiers |= WebInspector.KeyboardShortcut.Modifiers.Meta; + return WebInspector.KeyboardShortcut._makeKeyFromCodeAndModifiers(keyboardEvent.keyCode, modifiers); +}; + +WebInspector.KeyboardShortcut._makeKeyFromCodeAndModifiers = function(keyCode, modifiers) +{ + return (keyCode & 255) | (modifiers << 8); +}; diff --git a/src/3rdparty/webkit/WebCore/inspector/front-end/Resource.js b/src/3rdparty/webkit/WebCore/inspector/front-end/Resource.js index 058f232..85d5cd2 100644 --- a/src/3rdparty/webkit/WebCore/inspector/front-end/Resource.js +++ b/src/3rdparty/webkit/WebCore/inspector/front-end/Resource.js @@ -489,7 +489,8 @@ WebInspector.Resource.prototype = { // Otherwise, we flood the Console with too many tips. /* var msg = new WebInspector.ConsoleMessage(WebInspector.ConsoleMessage.MessageSource.Other, - WebInspector.ConsoleMessage.MessageLevel.Tip, -1, this.url, null, 1, tip.message); + WebInspector.ConsoleMessage.MessageType.Log, WebInspector.ConsoleMessage.MessageLevel.Tip, + -1, this.url, null, 1, tip.message); WebInspector.console.addMessage(msg); */ }, @@ -549,6 +550,7 @@ WebInspector.Resource.prototype = { case WebInspector.Warnings.IncorrectMIMEType.id: if (!this._mimeTypeIsConsistentWithType()) msg = new WebInspector.ConsoleMessage(WebInspector.ConsoleMessage.MessageSource.Other, + WebInspector.ConsoleMessage.MessageType.Log, WebInspector.ConsoleMessage.MessageLevel.Warning, -1, this.url, null, 1, String.sprintf(WebInspector.Warnings.IncorrectMIMEType.message, WebInspector.Resource.Type.toString(this.type), this.mimeType)); diff --git a/src/3rdparty/webkit/WebCore/inspector/front-end/ResourcesPanel.js b/src/3rdparty/webkit/WebCore/inspector/front-end/ResourcesPanel.js index 04d998e..c4ea83f 100644 --- a/src/3rdparty/webkit/WebCore/inspector/front-end/ResourcesPanel.js +++ b/src/3rdparty/webkit/WebCore/inspector/front-end/ResourcesPanel.js @@ -126,7 +126,7 @@ WebInspector.ResourcesPanel = function() this.resourcesTreeElement.expand(); - var panelEnablerHeading = WebInspector.UIString("You need to enable resource tracking to use the this panel."); + var panelEnablerHeading = WebInspector.UIString("You need to enable resource tracking to use this panel."); var panelEnablerDisclaimer = WebInspector.UIString("Enabling resource tracking will reload the page and make page loading slower."); var panelEnablerButton = WebInspector.UIString("Enable resource tracking"); diff --git a/src/3rdparty/webkit/WebCore/inspector/front-end/ScriptsPanel.js b/src/3rdparty/webkit/WebCore/inspector/front-end/ScriptsPanel.js index d30c002..68013c9 100644 --- a/src/3rdparty/webkit/WebCore/inspector/front-end/ScriptsPanel.js +++ b/src/3rdparty/webkit/WebCore/inspector/front-end/ScriptsPanel.js @@ -163,6 +163,39 @@ WebInspector.ScriptsPanel = function() this._breakpointsURLMap = {}; + this._shortcuts = {}; + + var isMac = InspectorController.platform().indexOf("mac-") === 0; + var platformSpecificModifier = isMac ? WebInspector.KeyboardShortcut.Modifiers.Meta : WebInspector.KeyboardShortcut.Modifiers.Ctrl; + + // Continue. + var handler = this.pauseButton.click.bind(this.pauseButton); + var shortcut = WebInspector.KeyboardShortcut.makeKey(WebInspector.KeyboardShortcut.KeyCodes.F8); + this._shortcuts[shortcut] = handler; + var shortcut = WebInspector.KeyboardShortcut.makeKey(WebInspector.KeyboardShortcut.KeyCodes.Slash, platformSpecificModifier); + this._shortcuts[shortcut] = handler; + + // Step over. + var handler = this.stepOverButton.click.bind(this.stepOverButton); + var shortcut = WebInspector.KeyboardShortcut.makeKey(WebInspector.KeyboardShortcut.KeyCodes.F10); + this._shortcuts[shortcut] = handler; + var shortcut = WebInspector.KeyboardShortcut.makeKey(WebInspector.KeyboardShortcut.KeyCodes.SingleQuote, platformSpecificModifier); + this._shortcuts[shortcut] = handler; + + // Step into. + var handler = this.stepIntoButton.click.bind(this.stepIntoButton); + var shortcut = WebInspector.KeyboardShortcut.makeKey(WebInspector.KeyboardShortcut.KeyCodes.F11); + this._shortcuts[shortcut] = handler; + var shortcut = WebInspector.KeyboardShortcut.makeKey(WebInspector.KeyboardShortcut.KeyCodes.Semicolon, platformSpecificModifier); + this._shortcuts[shortcut] = handler; + + // Step out. + var handler = this.stepOutButton.click.bind(this.stepOutButton); + var shortcut = WebInspector.KeyboardShortcut.makeKey(WebInspector.KeyboardShortcut.KeyCodes.F11, WebInspector.KeyboardShortcut.Modifiers.Shift); + this._shortcuts[shortcut] = handler; + var shortcut = WebInspector.KeyboardShortcut.makeKey(WebInspector.KeyboardShortcut.KeyCodes.Semicolon, WebInspector.KeyboardShortcut.Modifiers.Shift, platformSpecificModifier); + this._shortcuts[shortcut] = handler; + this.reset(); } @@ -337,8 +370,14 @@ WebInspector.ScriptsPanel.prototype = { doEvalInCallFrame: function(callFrame, code, callback) { + var panel = this; function delayedEvaluation() { + if (!code) { + // Evaluate into properties in scope of the selected call frame. + callback(panel._variablesInScope(callFrame)); + return; + } try { callback(callFrame.evaluate(code)); } catch (e) { @@ -348,20 +387,15 @@ WebInspector.ScriptsPanel.prototype = { setTimeout(delayedEvaluation, 0); }, - variablesInScopeForSelectedCallFrame: function() + _variablesInScope: function(callFrame) { - var selectedCallFrame = this.sidebarPanes.callstack.selectedCallFrame; - if (!this._paused || !selectedCallFrame) - return {}; - var result = {}; - var scopeChain = selectedCallFrame.scopeChain; + var scopeChain = callFrame.scopeChain; for (var i = 0; i < scopeChain.length; ++i) { var scopeObject = scopeChain[i]; for (var property in scopeObject) result[property] = true; } - return result; }, @@ -486,6 +520,19 @@ WebInspector.ScriptsPanel.prototype = { this._showScriptOrResource((view.resource || view.script)); }, + handleKeyEvent: function(event) + { + var shortcut = WebInspector.KeyboardShortcut.makeKeyFromEvent(event); + var handler = this._shortcuts[shortcut]; + if (handler) { + handler(event); + event.preventDefault(); + event.handled = true; + } else { + this.sidebarPanes.callstack.handleKeyEvent(event); + } + }, + scriptViewForScript: function(script) { if (!script) diff --git a/src/3rdparty/webkit/WebCore/inspector/front-end/TextPrompt.js b/src/3rdparty/webkit/WebCore/inspector/front-end/TextPrompt.js index 30772f7..4194ff1 100644 --- a/src/3rdparty/webkit/WebCore/inspector/front-end/TextPrompt.js +++ b/src/3rdparty/webkit/WebCore/inspector/front-end/TextPrompt.js @@ -159,10 +159,9 @@ WebInspector.TextPrompt.prototype = { return; var selectionRange = selection.getRangeAt(0); - var wordPrefixRange = selectionRange.startContainer.rangeOfWord(selectionRange.startOffset, this.completionStopCharacters, this.element, "backward"); var fullWordRange = document.createRange(); - fullWordRange.setStart(wordPrefixRange.startContainer, wordPrefixRange.startOffset); + fullWordRange.setStart(originalWordPrefixRange.startContainer, originalWordPrefixRange.startOffset); fullWordRange.setEnd(selectionRange.endContainer, selectionRange.endOffset); if (originalWordPrefixRange.toString() + selectionRange.toString() != fullWordRange.toString()) @@ -185,7 +184,7 @@ WebInspector.TextPrompt.prototype = { var completionText = completions[foundIndex + 1]; } - var wordPrefixLength = wordPrefixRange.toString().length; + var wordPrefixLength = originalWordPrefixRange.toString().length; this._userEnteredRange = fullWordRange; this._userEnteredText = fullWordRange.toString(); diff --git a/src/3rdparty/webkit/WebCore/inspector/front-end/WebKit.qrc b/src/3rdparty/webkit/WebCore/inspector/front-end/WebKit.qrc index 76a925b..6619499 100644 --- a/src/3rdparty/webkit/WebCore/inspector/front-end/WebKit.qrc +++ b/src/3rdparty/webkit/WebCore/inspector/front-end/WebKit.qrc @@ -19,6 +19,7 @@ <file>FontView.js</file> <file>ImageView.js</file> <file>inspector.js</file> + <file>KeyboardShortcut.js</file> <file>MetricsSidebarPane.js</file> <file>Object.js</file> <file>ObjectPropertiesSection.js</file> @@ -109,6 +110,7 @@ <file>Images/resourcePlainIcon.png</file> <file>Images/resourcePlainIconSmall.png</file> <file>Images/resourcesIcon.png</file> + <file>Images/resourcesSilhouette.png</file> <file>Images/resourcesSizeGraphIcon.png</file> <file>Images/resourcesTimeGraphIcon.png</file> <file>Images/scriptsIcon.png</file> diff --git a/src/3rdparty/webkit/WebCore/inspector/front-end/inspector.css b/src/3rdparty/webkit/WebCore/inspector/front-end/inspector.css index c162531..929caa2 100644 --- a/src/3rdparty/webkit/WebCore/inspector/front-end/inspector.css +++ b/src/3rdparty/webkit/WebCore/inspector/front-end/inspector.css @@ -483,7 +483,7 @@ body.console-visible #console { background-image: none; } -.console-message::before, .console-user-command::before, #console-prompt::before, .console-group-title-level::before { +.console-message::before, .console-user-command::before, #console-prompt::before, .console-group-title::before { position: absolute; display: block; content: ""; @@ -529,18 +529,18 @@ body.console-visible #console { margin-left: 16px; } -.console-group-title-level { +.console-group-title { font-weight: bold; } -.console-group-title-level::before { +.console-group-title::before { background-image: url(Images/disclosureTriangleSmallDown.png); top: 0.6em; width: 11px; height: 12px; } -.console-group.collapsed .console-group-title-level::before { +.console-group.collapsed .console-group-title::before { background-image: url(Images/disclosureTriangleSmallRight.png); } diff --git a/src/3rdparty/webkit/WebCore/inspector/front-end/inspector.html b/src/3rdparty/webkit/WebCore/inspector/front-end/inspector.html index 184bb45..f211fb7 100644 --- a/src/3rdparty/webkit/WebCore/inspector/front-end/inspector.html +++ b/src/3rdparty/webkit/WebCore/inspector/front-end/inspector.html @@ -34,6 +34,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. <script type="text/javascript" src="treeoutline.js"></script> <script type="text/javascript" src="inspector.js"></script> <script type="text/javascript" src="Object.js"></script> + <script type="text/javascript" src="KeyboardShortcut.js"></script> <script type="text/javascript" src="TextPrompt.js"></script> <script type="text/javascript" src="Placard.js"></script> <script type="text/javascript" src="View.js"></script> diff --git a/src/3rdparty/webkit/WebCore/inspector/front-end/inspector.js b/src/3rdparty/webkit/WebCore/inspector/front-end/inspector.js index 9d5bac0..91f2659 100644 --- a/src/3rdparty/webkit/WebCore/inspector/front-end/inspector.js +++ b/src/3rdparty/webkit/WebCore/inspector/front-end/inspector.js @@ -979,6 +979,7 @@ WebInspector.addMessageToConsole = function(payload) { var consoleMessage = new WebInspector.ConsoleMessage( payload.source, + payload.type, payload.level, payload.line, payload.url, diff --git a/src/3rdparty/webkit/WebCore/loader/DocLoader.cpp b/src/3rdparty/webkit/WebCore/loader/DocLoader.cpp index 06d96bc..0b72f94 100644 --- a/src/3rdparty/webkit/WebCore/loader/DocLoader.cpp +++ b/src/3rdparty/webkit/WebCore/loader/DocLoader.cpp @@ -247,7 +247,7 @@ void DocLoader::printAccessDeniedMessage(const KURL& url) const m_doc->url().string().utf8().data()); // FIXME: provide a real line number and source URL. - frame()->domWindow()->console()->addMessage(OtherMessageSource, ErrorMessageLevel, message, 1, String()); + frame()->domWindow()->console()->addMessage(OtherMessageSource, LogMessageType, ErrorMessageLevel, message, 1, String()); } void DocLoader::setAutoLoadImages(bool enable) diff --git a/src/3rdparty/webkit/WebCore/loader/EmptyClients.h b/src/3rdparty/webkit/WebCore/loader/EmptyClients.h index 2abd54f..f1c4c5d 100644 --- a/src/3rdparty/webkit/WebCore/loader/EmptyClients.h +++ b/src/3rdparty/webkit/WebCore/loader/EmptyClients.h @@ -95,7 +95,7 @@ public: virtual void setResizable(bool) { } - virtual void addMessageToConsole(MessageSource, MessageLevel, const String&, unsigned, const String&) { } + virtual void addMessageToConsole(MessageSource, MessageType, MessageLevel, const String&, unsigned, const String&) { } virtual bool canRunBeforeUnloadConfirmPanel() { return false; } virtual bool runBeforeUnloadConfirmPanel(const String&, Frame*) { return true; } @@ -137,6 +137,9 @@ public: virtual void formStateDidChange(const Node*) { } + virtual void formDidFocus(const Node*) { } + virtual void formDidBlur(const Node*) { } + virtual PassOwnPtr<HTMLParserQuirks> createHTMLParserQuirks() { return 0; } virtual bool setCursor(PlatformCursorHandle) { return false; } @@ -270,8 +273,8 @@ public: virtual bool canCachePage() const { return false; } virtual PassRefPtr<Frame> createFrame(const KURL&, const String&, HTMLFrameOwnerElement*, const String&, bool, int, int) { return 0; } - virtual Widget* createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool) { return 0; } - virtual Widget* createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL&, const Vector<String>&, const Vector<String>&) { return 0; } + virtual PassRefPtr<Widget> createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool) { return 0; } + virtual PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL&, const Vector<String>&, const Vector<String>&) { return 0; } virtual ObjectContentType objectContentType(const KURL&, const String&) { return ObjectContentType(); } virtual String overrideMediaType() const { return String(); } diff --git a/src/3rdparty/webkit/WebCore/loader/FrameLoader.cpp b/src/3rdparty/webkit/WebCore/loader/FrameLoader.cpp index 9a09e49..1e51583 100644 --- a/src/3rdparty/webkit/WebCore/loader/FrameLoader.cpp +++ b/src/3rdparty/webkit/WebCore/loader/FrameLoader.cpp @@ -424,7 +424,7 @@ bool FrameLoader::requestFrame(HTMLFrameOwnerElement* ownerElement, const String Frame* frame = ownerElement->contentFrame(); if (frame) - frame->loader()->scheduleLocationChange(url.string(), m_outgoingReferrer, true, true, userGestureHint()); + frame->loader()->scheduleLocationChange(url.string(), m_outgoingReferrer, true, true, isProcessingUserGesture()); else frame = loadSubframe(ownerElement, url, frameName, m_outgoingReferrer); @@ -487,7 +487,7 @@ Frame* FrameLoader::loadSubframe(HTMLFrameOwnerElement* ownerElement, const KURL void FrameLoader::submitForm(const char* action, const String& url, PassRefPtr<FormData> formData, const String& target, const String& contentType, const String& boundary, - bool lockHistory, bool lockBackForwardList, PassRefPtr<Event> event, PassRefPtr<FormState> formState) + bool lockHistory, PassRefPtr<Event> event, PassRefPtr<FormState> formState) { ASSERT(action); ASSERT(strcmp(action, "GET") == 0 || strcmp(action, "POST") == 0); @@ -559,20 +559,7 @@ void FrameLoader::submitForm(const char* action, const String& url, PassRefPtr<F frameRequest.resourceRequest().setURL(u); addHTTPOriginIfNeeded(frameRequest.resourceRequest(), outgoingOrigin()); - // Navigation of a subframe during loading of the main frame does not create a new back/forward item. - // Strangely, we only implement this rule for form submission; time will tell if we need it for other types of navigation. - // The definition of "during load" is any time before the load event has been handled. - // See https://bugs.webkit.org/show_bug.cgi?id=14957 for the original motivation for this. - if (Page* targetPage = targetFrame->page()) { - Frame* mainFrame = targetPage->mainFrame(); - if (mainFrame != targetFrame) { - Document* document = mainFrame->document(); - if (!mainFrame->loader()->isComplete() || document && document->processingLoadEvent()) - lockBackForwardList = true; - } - } - - targetFrame->loader()->scheduleFormSubmission(frameRequest, lockHistory, lockBackForwardList, event, formState); + targetFrame->loader()->scheduleFormSubmission(frameRequest, lockHistory, event, formState); } void FrameLoader::stopLoading(bool sendUnload, DatabasePolicy databasePolicy) @@ -1336,6 +1323,20 @@ void FrameLoader::scheduleHTTPRedirection(double delay, const String& url) scheduleRedirection(new ScheduledRedirection(delay, url, true, delay <= 1, false, false)); } +static bool mustLockBackForwardList(Frame* targetFrame) +{ + // Navigation of a subframe during loading of an ancestor frame does not create a new back/forward item. + // The definition of "during load" is any time before all handlers for the load event have been run. + // See https://bugs.webkit.org/show_bug.cgi?id=14957 for the original motivation for this. + + for (Frame* ancestor = targetFrame->tree()->parent(); ancestor; ancestor = ancestor->tree()->parent()) { + Document* document = ancestor->document(); + if (!ancestor->loader()->isComplete() || document && document->processingLoadEvent()) + return true; + } + return false; +} + void FrameLoader::scheduleLocationChange(const String& url, const String& referrer, bool lockHistory, bool lockBackForwardList, bool wasUserGesture) { if (!m_frame->page()) @@ -1344,6 +1345,8 @@ void FrameLoader::scheduleLocationChange(const String& url, const String& referr if (url.isEmpty()) return; + lockBackForwardList = lockBackForwardList || mustLockBackForwardList(m_frame); + // If the URL we're going to navigate to is the same as the current one, except for the // fragment part, we don't need to schedule the location change. KURL parsedURL(url); @@ -1360,7 +1363,7 @@ void FrameLoader::scheduleLocationChange(const String& url, const String& referr } void FrameLoader::scheduleFormSubmission(const FrameLoadRequest& frameRequest, - bool lockHistory, bool lockBackForwardList, PassRefPtr<Event> event, PassRefPtr<FormState> formState) + bool lockHistory, PassRefPtr<Event> event, PassRefPtr<FormState> formState) { ASSERT(m_frame->page()); ASSERT(!frameRequest.isEmpty()); @@ -1372,7 +1375,7 @@ void FrameLoader::scheduleFormSubmission(const FrameLoadRequest& frameRequest, // This may happen when a frame changes the location of another frame. bool duringLoad = !m_committedFirstRealDocumentLoad; - scheduleRedirection(new ScheduledRedirection(frameRequest, lockHistory, lockBackForwardList, event, formState, duringLoad)); + scheduleRedirection(new ScheduledRedirection(frameRequest, lockHistory, mustLockBackForwardList(m_frame), event, formState, duringLoad)); } void FrameLoader::scheduleRefresh(bool wasUserGesture) @@ -1586,28 +1589,8 @@ bool FrameLoader::gotoAnchor(const String& name) if (!anchorNode && !(name.isEmpty() || equalIgnoringCase(name, "top"))) return false; - // We need to update the layout before scrolling, otherwise we could - // really mess things up if an anchor scroll comes at a bad moment. - m_frame->document()->updateStyleIfNeeded(); - // Only do a layout if changes have occurred that make it necessary. - if (m_frame->view() && m_frame->contentRenderer() && m_frame->contentRenderer()->needsLayout()) - m_frame->view()->layout(); - - // Scroll nested layers and frames to reveal the anchor. - // Align to the top and to the closest side (this matches other browsers). - RenderObject* renderer; - IntRect rect; - if (!anchorNode) - renderer = m_frame->document()->renderer(); // top of document - else { - renderer = anchorNode->renderer(); - rect = anchorNode->getRect(); - } - if (renderer) { - renderer->enclosingLayer()->scrollRectToVisible(rect, true, ScrollAlignment::alignToEdgeIfNeeded, ScrollAlignment::alignTopAlways); - if (m_frame->view()) - m_frame->view()->setLockedToAnchor(true); - } + if (FrameView* view = m_frame->view()) + view->maintainScrollPositionAtAnchor(anchorNode ? static_cast<Node*>(anchorNode) : m_frame->document()); return true; } @@ -1686,7 +1669,7 @@ static HTMLPlugInElement* toPlugInElement(Node* node) bool FrameLoader::loadPlugin(RenderPart* renderer, const KURL& url, const String& mimeType, const Vector<String>& paramNames, const Vector<String>& paramValues, bool useFallback) { - Widget* widget = 0; + RefPtr<Widget> widget; if (renderer && !useFallback) { HTMLPlugInElement* element = toPlugInElement(renderer->node()); @@ -1768,7 +1751,7 @@ void FrameLoader::provisionalLoadStarted() m_client->provisionalLoadStarted(); } -bool FrameLoader::userGestureHint() +bool FrameLoader::isProcessingUserGesture() { Frame* frame = m_frame->tree()->top(); if (!frame->script()->isEnabled()) @@ -2111,7 +2094,7 @@ void FrameLoader::completed() if (Frame* parent = m_frame->tree()->parent()) parent->loader()->checkCompleted(); if (m_frame->view()) - m_frame->view()->setLockedToAnchor(false); + m_frame->view()->maintainScrollPositionAtAnchor(0); } void FrameLoader::started() @@ -2406,7 +2389,7 @@ void FrameLoader::reportLocalLoadFailed(Frame* frame, const String& url) if (!frame) return; - frame->domWindow()->console()->addMessage(JSMessageSource, ErrorMessageLevel, "Not allowed to load local resource: " + url, 0, String()); + frame->domWindow()->console()->addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, "Not allowed to load local resource: " + url, 0, String()); } bool FrameLoader::shouldHideReferrer(const KURL& url, const String& referrer) @@ -2623,7 +2606,7 @@ bool FrameLoader::shouldAllowNavigation(Frame* targetFrame) const targetDocument->url().string().utf8().data(), activeDocument->url().string().utf8().data()); // FIXME: should we print to the console of the activeFrame as well? - targetFrame->domWindow()->console()->addMessage(JSMessageSource, ErrorMessageLevel, message, 1, String()); + targetFrame->domWindow()->console()->addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, message, 1, String()); } return false; @@ -5066,7 +5049,7 @@ void FrameLoader::dispatchWindowObjectAvailable() } } -Widget* FrameLoader::createJavaAppletWidget(const IntSize& size, HTMLAppletElement* element, const HashMap<String, String>& args) +PassRefPtr<Widget> FrameLoader::createJavaAppletWidget(const IntSize& size, HTMLAppletElement* element, const HashMap<String, String>& args) { String baseURLString; String codeBaseURLString; @@ -5094,7 +5077,7 @@ Widget* FrameLoader::createJavaAppletWidget(const IntSize& size, HTMLAppletEleme baseURLString = m_frame->document()->baseURL().string(); KURL baseURL = completeURL(baseURLString); - Widget* widget = m_client->createJavaAppletWidget(size, element, baseURL, paramNames, paramValues); + RefPtr<Widget> widget = m_client->createJavaAppletWidget(size, element, baseURL, paramNames, paramValues); if (!widget) return 0; diff --git a/src/3rdparty/webkit/WebCore/loader/FrameLoader.h b/src/3rdparty/webkit/WebCore/loader/FrameLoader.h index d96329f..b80a87c 100644 --- a/src/3rdparty/webkit/WebCore/loader/FrameLoader.h +++ b/src/3rdparty/webkit/WebCore/loader/FrameLoader.h @@ -261,7 +261,7 @@ namespace WebCore { void submitForm(const char* action, const String& url, PassRefPtr<FormData>, const String& target, const String& contentType, const String& boundary, - bool lockHistory, bool lockBackForwardList, PassRefPtr<Event>, PassRefPtr<FormState>); + bool lockHistory, PassRefPtr<Event>, PassRefPtr<FormState>); void stop(); void stopLoading(bool sendUnload, DatabasePolicy = DatabasePolicyStop); @@ -305,7 +305,7 @@ namespace WebCore { void handledOnloadEvents(); String userAgent(const KURL&) const; - Widget* createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const HashMap<String, String>& args); + PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const HashMap<String, String>& args); void dispatchWindowObjectAvailable(); void dispatchDocumentElementAvailable(); @@ -316,7 +316,7 @@ namespace WebCore { bool openedByDOM() const; void setOpenedByDOM(); - bool userGestureHint(); + bool isProcessingUserGesture(); void resetMultipleFormSubmissionProtection(); @@ -492,7 +492,7 @@ namespace WebCore { void dispatchDidFinishLoading(DocumentLoader*, unsigned long identifier); static bool isLocationChange(const ScheduledRedirection&); - void scheduleFormSubmission(const FrameLoadRequest&, bool lockHistory, bool lockBackForwardList, PassRefPtr<Event>, PassRefPtr<FormState>); + void scheduleFormSubmission(const FrameLoadRequest&, bool lockHistory, PassRefPtr<Event>, PassRefPtr<FormState>); void loadWithDocumentLoader(DocumentLoader*, FrameLoadType, PassRefPtr<FormState>); // Calls continueLoadAfterNavigationPolicy void load(DocumentLoader*); // Calls loadWithDocumentLoader diff --git a/src/3rdparty/webkit/WebCore/loader/FrameLoaderClient.h b/src/3rdparty/webkit/WebCore/loader/FrameLoaderClient.h index 8c050f0..aa36b50 100644 --- a/src/3rdparty/webkit/WebCore/loader/FrameLoaderClient.h +++ b/src/3rdparty/webkit/WebCore/loader/FrameLoaderClient.h @@ -200,10 +200,10 @@ namespace WebCore { virtual PassRefPtr<Frame> createFrame(const KURL& url, const String& name, HTMLFrameOwnerElement* ownerElement, const String& referrer, bool allowsScrolling, int marginWidth, int marginHeight) = 0; - virtual Widget* createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool loadManually) = 0; + virtual PassRefPtr<Widget> createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool loadManually) = 0; virtual void redirectDataToPlugin(Widget* pluginWidget) = 0; - virtual Widget* createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues) = 0; + virtual PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues) = 0; virtual ObjectContentType objectContentType(const KURL& url, const String& mimeType) = 0; virtual String overrideMediaType() const = 0; diff --git a/src/3rdparty/webkit/WebCore/loader/TextDocument.cpp b/src/3rdparty/webkit/WebCore/loader/TextDocument.cpp index 0d86c1b..a3d7061 100644 --- a/src/3rdparty/webkit/WebCore/loader/TextDocument.cpp +++ b/src/3rdparty/webkit/WebCore/loader/TextDocument.cpp @@ -162,6 +162,8 @@ void TextTokenizer::write(const SegmentedString& s, bool) void TextTokenizer::finish() { + if (!m_preElement) + write(SegmentedString(), true); // Create document structure for an empty text document. m_preElement = 0; fastFree(m_buffer); m_buffer = 0; diff --git a/src/3rdparty/webkit/WebCore/loader/icon/IconDatabase.cpp b/src/3rdparty/webkit/WebCore/loader/icon/IconDatabase.cpp index 3ded4f3..b78291d 100644 --- a/src/3rdparty/webkit/WebCore/loader/icon/IconDatabase.cpp +++ b/src/3rdparty/webkit/WebCore/loader/icon/IconDatabase.cpp @@ -27,6 +27,8 @@ #include "config.h" #include "IconDatabase.h" +#if ENABLE(ICONDATABASE) + #include "AutodrainedPool.h" #include "DocumentLoader.h" #include "FileSystem.h" @@ -2067,3 +2069,5 @@ void IconDatabase::writeIconSnapshotToSQLDatabase(const IconSnapshot& snapshot) } } // namespace WebCore + +#endif // ENABLE(ICONDATABASE) diff --git a/src/3rdparty/webkit/WebCore/loader/icon/IconDatabase.h b/src/3rdparty/webkit/WebCore/loader/icon/IconDatabase.h index 40f641a..675e6c8 100644 --- a/src/3rdparty/webkit/WebCore/loader/icon/IconDatabase.h +++ b/src/3rdparty/webkit/WebCore/loader/icon/IconDatabase.h @@ -165,6 +165,7 @@ private: HashSet<String> m_pageURLsPendingImport; HashSet<String> m_pageURLsInterestedInIcons; HashSet<IconRecord*> m_iconsPendingReading; +#endif // ENABLE(ICONDATABASE) // *** Sync Thread Only *** public: @@ -174,6 +175,7 @@ public: bool shouldStopThreadActivity() const; +#if ENABLE(ICONDATABASE) private: static void* iconDatabaseSyncThreadStart(void *); void* iconDatabaseSyncThread(); @@ -238,4 +240,4 @@ IconDatabase* iconDatabase(); } // namespace WebCore -#endif +#endif // IconDatabase_h diff --git a/src/3rdparty/webkit/WebCore/loader/icon/IconDatabaseNone.cpp b/src/3rdparty/webkit/WebCore/loader/icon/IconDatabaseNone.cpp index a7fb88d..03a7964 100644 --- a/src/3rdparty/webkit/WebCore/loader/icon/IconDatabaseNone.cpp +++ b/src/3rdparty/webkit/WebCore/loader/icon/IconDatabaseNone.cpp @@ -26,6 +26,8 @@ #include "config.h" #include "IconDatabase.h" +#if !ENABLE(ICONDATABASE) + #include "PlatformString.h" #include "SharedBuffer.h" #include <wtf/StdLibExtras.h> @@ -194,4 +196,23 @@ void IconDatabase::setClient(IconDatabaseClient*) { } +// ************************ +// *** Sync Thread Only *** +// ************************ + +void IconDatabase::importIconURLForPageURL(const String&, const String&) +{ +} + +void IconDatabase::importIconDataForIconURL(PassRefPtr<SharedBuffer>, const String&) +{ +} + +bool IconDatabase::shouldStopThreadActivity() const +{ + return true; +} + } // namespace WebCore + +#endif // !ENABLE(ICONDATABASE) diff --git a/src/3rdparty/webkit/WebCore/loader/loader.cpp b/src/3rdparty/webkit/WebCore/loader/loader.cpp index d10877f..881e200 100644 --- a/src/3rdparty/webkit/WebCore/loader/loader.cpp +++ b/src/3rdparty/webkit/WebCore/loader/loader.cpp @@ -176,6 +176,35 @@ void Loader::resumePendingRequests() scheduleServePendingRequests(); } +void Loader::nonCacheRequestInFlight(const KURL& url) +{ + if (!url.protocolInHTTPFamily()) + return; + + AtomicString hostName = url.host(); + RefPtr<Host> host = m_hosts.get(hostName.impl()); + if (!host) { + host = Host::create(hostName, maxRequestsInFlightPerHost); + m_hosts.add(hostName.impl(), host); + } + + host->nonCacheRequestInFlight(); +} + +void Loader::nonCacheRequestComplete(const KURL& url) +{ + if (!url.protocolInHTTPFamily()) + return; + + AtomicString hostName = url.host(); + RefPtr<Host> host = m_hosts.get(hostName.impl()); + ASSERT(host); + if (!host) + return; + + host->nonCacheRequestComplete(); +} + void Loader::cancelRequests(DocLoader* docLoader) { docLoader->clearPendingPreloads(); @@ -204,6 +233,7 @@ Loader::Host::Host(const AtomicString& name, unsigned maxRequestsInFlight) : m_name(name) , m_maxRequestsInFlight(maxRequestsInFlight) , m_numResourcesProcessing(0) + , m_nonCachedRequestsInFlight(0) { } @@ -219,6 +249,17 @@ void Loader::Host::addRequest(Request* request, Priority priority) m_requestsPending[priority].append(request); } +void Loader::Host::nonCacheRequestInFlight() +{ + ++m_nonCachedRequestsInFlight; +} + +void Loader::Host::nonCacheRequestComplete() +{ + --m_nonCachedRequestsInFlight; + ASSERT(m_nonCachedRequestsInFlight >= 0); +} + bool Loader::Host::hasRequests() const { if (!m_requestsLoading.isEmpty()) @@ -250,7 +291,7 @@ void Loader::Host::servePendingRequests(RequestQueue& requestsPending, bool& ser // resources that we would want to push to the front of the queue. Just hand off the remaining resources // to the networking layer. bool parsedAndStylesheetsKnown = !docLoader->doc()->parsing() && docLoader->doc()->haveStylesheetsLoaded(); - if (!parsedAndStylesheetsKnown && !resourceIsCacheValidator && m_requestsLoading.size() >= m_maxRequestsInFlight) { + if (!parsedAndStylesheetsKnown && !resourceIsCacheValidator && m_requestsLoading.size() + m_nonCachedRequestsInFlight >= m_maxRequestsInFlight) { serveLowerPriority = false; return; } diff --git a/src/3rdparty/webkit/WebCore/loader/loader.h b/src/3rdparty/webkit/WebCore/loader/loader.h index c5b9416..3cced3d 100644 --- a/src/3rdparty/webkit/WebCore/loader/loader.h +++ b/src/3rdparty/webkit/WebCore/loader/loader.h @@ -35,6 +35,7 @@ namespace WebCore { class CachedResource; class DocLoader; + class KURL; class Request; class Loader : Noncopyable { @@ -52,6 +53,9 @@ namespace WebCore { bool isSuspendingPendingRequests() { return m_isSuspendingPendingRequests; } void suspendPendingRequests(); void resumePendingRequests(); + + void nonCacheRequestInFlight(const KURL&); + void nonCacheRequestComplete(const KURL&); private: Priority determinePriority(const CachedResource*) const; @@ -69,11 +73,13 @@ namespace WebCore { const AtomicString& name() const { return m_name; } void addRequest(Request*, Priority); + void nonCacheRequestInFlight(); + void nonCacheRequestComplete(); void servePendingRequests(Priority minimumPriority = Low); void cancelRequests(DocLoader*); bool hasRequests() const; - bool processingResource() const { return m_numResourcesProcessing != 0; } + bool processingResource() const { return m_numResourcesProcessing != 0 || m_nonCachedRequestsInFlight !=0; } private: Host(const AtomicString&, unsigned); @@ -94,6 +100,7 @@ namespace WebCore { const AtomicString m_name; const int m_maxRequestsInFlight; int m_numResourcesProcessing; + int m_nonCachedRequestsInFlight; }; typedef HashMap<AtomicStringImpl*, RefPtr<Host> > HostMap; HostMap m_hosts; diff --git a/src/3rdparty/webkit/WebCore/page/ChromeClient.h b/src/3rdparty/webkit/WebCore/page/ChromeClient.h index e155754..78efa45 100644 --- a/src/3rdparty/webkit/WebCore/page/ChromeClient.h +++ b/src/3rdparty/webkit/WebCore/page/ChromeClient.h @@ -103,7 +103,7 @@ namespace WebCore { virtual void setResizable(bool) = 0; - virtual void addMessageToConsole(MessageSource, MessageLevel, const String& message, unsigned int lineNumber, const String& sourceID) = 0; + virtual void addMessageToConsole(MessageSource, MessageType, MessageLevel, const String& message, unsigned int lineNumber, const String& sourceID) = 0; virtual bool canRunBeforeUnloadConfirmPanel() = 0; virtual bool runBeforeUnloadConfirmPanel(const String& message, Frame* frame) = 0; @@ -168,6 +168,9 @@ namespace WebCore { // Notification that the given form element has changed. This function // will be called frequently, so handling should be very fast. virtual void formStateDidChange(const Node*) = 0; + + virtual void formDidFocus(const Node*) { }; + virtual void formDidBlur(const Node*) { }; virtual PassOwnPtr<HTMLParserQuirks> createHTMLParserQuirks() = 0; diff --git a/src/3rdparty/webkit/WebCore/page/Console.cpp b/src/3rdparty/webkit/WebCore/page/Console.cpp index 1a654ab..45ff059 100644 --- a/src/3rdparty/webkit/WebCore/page/Console.cpp +++ b/src/3rdparty/webkit/WebCore/page/Console.cpp @@ -128,18 +128,6 @@ static void printMessageSourceAndLevelPrefix(MessageSource source, MessageLevel case ErrorMessageLevel: levelString = "ERROR"; break; - case ObjectMessageLevel: - levelString = "OBJECT"; - break; - case TraceMessageLevel: - levelString = "TRACE"; - break; - case StartGroupMessageLevel: - levelString = "START GROUP"; - break; - case EndGroupMessageLevel: - levelString = "END GROUP"; - break; default: ASSERT_NOT_REACHED(); levelString = "UNKNOWN"; @@ -149,16 +137,16 @@ static void printMessageSourceAndLevelPrefix(MessageSource source, MessageLevel printf("%s %s:", sourceString, levelString); } -void Console::addMessage(MessageSource source, MessageLevel level, const String& message, unsigned lineNumber, const String& sourceURL) +void Console::addMessage(MessageSource source, MessageType type, MessageLevel level, const String& message, unsigned lineNumber, const String& sourceURL) { Page* page = this->page(); if (!page) return; if (source == JSMessageSource || source == WMLMessageSource) - page->chrome()->client()->addMessageToConsole(source, level, message, lineNumber, sourceURL); + page->chrome()->client()->addMessageToConsole(source, type, level, message, lineNumber, sourceURL); - page->inspectorController()->addMessageToConsole(source, level, message, lineNumber, sourceURL); + page->inspectorController()->addMessageToConsole(source, type, level, message, lineNumber, sourceURL); if (!Console::shouldPrintExceptions()) return; @@ -169,7 +157,8 @@ void Console::addMessage(MessageSource source, MessageLevel level, const String& printf(" %s\n", message.utf8().data()); } -void Console::addMessage(MessageLevel level, ScriptCallStack* callStack, bool acceptNoArguments) { +void Console::addMessage(MessageType type, MessageLevel level, ScriptCallStack* callStack, bool acceptNoArguments) +{ Page* page = this->page(); if (!page) return; @@ -181,9 +170,9 @@ void Console::addMessage(MessageLevel level, ScriptCallStack* callStack, bool ac String message; if (getFirstArgumentAsString(callStack->state(), lastCaller, message)) - page->chrome()->client()->addMessageToConsole(JSMessageSource, level, message, lastCaller.lineNumber(), lastCaller.sourceURL().prettyURL()); + page->chrome()->client()->addMessageToConsole(JSMessageSource, type, level, message, lastCaller.lineNumber(), lastCaller.sourceURL().prettyURL()); - page->inspectorController()->addMessageToConsole(JSMessageSource, level, callStack); + page->inspectorController()->addMessageToConsole(JSMessageSource, type, level, callStack); if (!Console::shouldPrintExceptions()) return; @@ -207,7 +196,7 @@ void Console::debug(ScriptCallStack* callStack) void Console::error(ScriptCallStack* callStack) { - addMessage(ErrorMessageLevel, callStack); + addMessage(LogMessageType, ErrorMessageLevel, callStack); } void Console::info(ScriptCallStack* callStack) @@ -217,12 +206,12 @@ void Console::info(ScriptCallStack* callStack) void Console::log(ScriptCallStack* callStack) { - addMessage(LogMessageLevel, callStack); + addMessage(LogMessageType, LogMessageLevel, callStack); } void Console::dir(ScriptCallStack* callStack) { - addMessage(ObjectMessageLevel, callStack); + addMessage(ObjectMessageType, LogMessageLevel, callStack); } void Console::dirxml(ScriptCallStack* callStack) @@ -233,7 +222,7 @@ void Console::dirxml(ScriptCallStack* callStack) void Console::trace(ScriptCallStack* callStack) { - addMessage(TraceMessageLevel, callStack, true); + addMessage(TraceMessageType, LogMessageLevel, callStack, true); if (!shouldPrintExceptions()) return; @@ -251,7 +240,7 @@ void Console::assertCondition(bool condition, ScriptCallStack* callStack) return; // FIXME: <https://bugs.webkit.org/show_bug.cgi?id=19135> It would be nice to prefix assertion failures with a message like "Assertion failed: ". - addMessage(ErrorMessageLevel, callStack, true); + addMessage(LogMessageType, ErrorMessageLevel, callStack, true); } void Console::count(ScriptCallStack* callStack) @@ -349,7 +338,7 @@ void Console::timeEnd(const String& title, ScriptCallStack* callStack) String message = title + String::format(": %.0fms", elapsed); const ScriptCallFrame& lastCaller = callStack->at(0); - page->inspectorController()->addMessageToConsole(JSMessageSource, LogMessageLevel, message, lastCaller.lineNumber(), lastCaller.sourceURL().string()); + page->inspectorController()->addMessageToConsole(JSMessageSource, LogMessageType, LogMessageLevel, message, lastCaller.lineNumber(), lastCaller.sourceURL().string()); } void Console::group(ScriptCallStack* callStack) @@ -372,7 +361,7 @@ void Console::groupEnd() void Console::warn(ScriptCallStack* callStack) { - addMessage(WarningMessageLevel, callStack); + addMessage(LogMessageType, WarningMessageLevel, callStack); } static bool printExceptions = false; diff --git a/src/3rdparty/webkit/WebCore/page/Console.h b/src/3rdparty/webkit/WebCore/page/Console.h index 79396ea..64e596d 100644 --- a/src/3rdparty/webkit/WebCore/page/Console.h +++ b/src/3rdparty/webkit/WebCore/page/Console.h @@ -59,16 +59,19 @@ namespace WebCore { OtherMessageSource }; + enum MessageType { + LogMessageType, + ObjectMessageType, + TraceMessageType, + StartGroupMessageType, + EndGroupMessageType + }; + enum MessageLevel { TipMessageLevel, LogMessageLevel, WarningMessageLevel, - ErrorMessageLevel, - // FIXME: the remaining levels should become a new MessageType enum. - ObjectMessageLevel, - TraceMessageLevel, - StartGroupMessageLevel, - EndGroupMessageLevel + ErrorMessageLevel }; class Console : public RefCounted<Console> { @@ -78,7 +81,7 @@ namespace WebCore { Frame* frame() const; void disconnectFrame(); - void addMessage(MessageSource, MessageLevel, const String& message, unsigned lineNumber, const String& sourceURL); + void addMessage(MessageSource, MessageType, MessageLevel, const String& message, unsigned lineNumber, const String& sourceURL); void debug(ScriptCallStack*); void error(ScriptCallStack*); @@ -108,7 +111,7 @@ namespace WebCore { private: inline Page* page() const; - void addMessage(MessageLevel, ScriptCallStack*, bool acceptNoArguments = false); + void addMessage(MessageType, MessageLevel, ScriptCallStack*, bool acceptNoArguments = false); Console(Frame*); diff --git a/src/3rdparty/webkit/WebCore/page/DOMWindow.cpp b/src/3rdparty/webkit/WebCore/page/DOMWindow.cpp index eb1981c..8e64fe3 100644 --- a/src/3rdparty/webkit/WebCore/page/DOMWindow.cpp +++ b/src/3rdparty/webkit/WebCore/page/DOMWindow.cpp @@ -634,7 +634,7 @@ void DOMWindow::postMessageTimerFired(PostMessageTimer* t) if (!timer->targetOrigin()->isSameSchemeHostPort(document()->securityOrigin())) { String message = String::format("Unable to post message to %s. Recipient has origin %s.\n", timer->targetOrigin()->toString().utf8().data(), document()->securityOrigin()->toString().utf8().data()); - console()->addMessage(JSMessageSource, ErrorMessageLevel, message, 0, String()); + console()->addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, message, 0, String()); return; } } diff --git a/src/3rdparty/webkit/WebCore/page/DOMWindow.idl b/src/3rdparty/webkit/WebCore/page/DOMWindow.idl index 942facc..bfdebd4 100644 --- a/src/3rdparty/webkit/WebCore/page/DOMWindow.idl +++ b/src/3rdparty/webkit/WebCore/page/DOMWindow.idl @@ -349,8 +349,9 @@ module window { attribute HTMLBodyElementConstructor HTMLBodyElement; attribute HTMLButtonElementConstructor HTMLButtonElement; attribute HTMLCanvasElementConstructor HTMLCanvasElement; - attribute HTMLDataGridElementConstructor HTMLDataGridElement; - attribute HTMLDataGridColElementConstructor HTMLDataGridColElement; + attribute [Conditional=DATAGRID] HTMLDataGridElementConstructor HTMLDataGridElement; + attribute [Conditional=DATAGRID] HTMLDataGridCellElementConstructor HTMLDataGridCellElement; + attribute [Conditional=DATAGRID] HTMLDataGridColElementConstructor HTMLDataGridColElement; attribute HTMLDListElementConstructor HTMLDListElement; attribute HTMLDirectoryElementConstructor HTMLDirectoryElement; attribute HTMLDivElementConstructor HTMLDivElement; @@ -460,6 +461,10 @@ module window { attribute [JSCCustomGetter] WorkerConstructor Worker; // Usable with the new operator #endif +#if defined(ENABLE_SHARED_WORKERS) && ENABLE_SHARED_WORKERS + attribute [JSCCustomGetter] SharedWorkerConstructor SharedWorker; // Usable with the new operator +#endif + attribute PluginConstructor Plugin; attribute PluginArrayConstructor PluginArray; diff --git a/src/3rdparty/webkit/WebCore/page/EventHandler.cpp b/src/3rdparty/webkit/WebCore/page/EventHandler.cpp index 8f0b420..3f0296e 100644 --- a/src/3rdparty/webkit/WebCore/page/EventHandler.cpp +++ b/src/3rdparty/webkit/WebCore/page/EventHandler.cpp @@ -154,6 +154,8 @@ EventHandler::EventHandler(Frame* frame) , m_capturingMouseEventsNode(0) , m_clickCount(0) , m_mouseDownTimestamp(0) + , m_useLatchedWheelEventNode(false) + , m_widgetIsLatched(false) #if PLATFORM(MAC) , m_mouseDownView(nil) , m_sendingEventToSubview(false) @@ -193,6 +195,7 @@ void EventHandler::clear() m_mousePressed = false; m_capturesDragging = false; m_capturingMouseEventsNode = 0; + m_latchedWheelEventNode = 0; } void EventHandler::selectClosestWordFromMouseEvent(const MouseEventWithHitTestResults& result) @@ -395,7 +398,7 @@ bool EventHandler::handleMousePressEvent(const MouseEventWithHitTestResults& eve m_mouseDownMayStartAutoscroll = m_mouseDownMayStartSelect || (m_mousePressNode && m_mousePressNode->renderBox() && m_mousePressNode->renderBox()->canBeProgramaticallyScrolled(true)); - return swallowEvent; + return swallowEvent; } bool EventHandler::handleMouseDraggedEvent(const MouseEventWithHitTestResults& event) @@ -766,7 +769,7 @@ HitTestResult EventHandler::hitTestResultAtPoint(const IntPoint& point, bool all result = widgetHitTestResult; if (testScrollbars == ShouldHitTestScrollbars) { - Scrollbar* eventScrollbar = view->scrollbarUnderPoint(point); + Scrollbar* eventScrollbar = view->scrollbarAtPoint(point); if (eventScrollbar) result.setScrollbar(eventScrollbar); } @@ -967,7 +970,7 @@ Cursor EventHandler::selectCursor(const MouseEventWithHitTestResults& event, Scr // If the link is editable, then we need to check the settings to see whether or not the link should be followed if (editable) { ASSERT(m_frame->settings()); - switch(m_frame->settings()->editableLinkBehavior()) { + switch (m_frame->settings()->editableLinkBehavior()) { default: case EditableLinkDefaultBehavior: case EditableLinkAlwaysLive: @@ -1159,7 +1162,7 @@ bool EventHandler::handleMousePressEvent(const PlatformMouseEvent& mouseEvent) invalidateClick(); return true; } - } + } #endif m_clickCount = mouseEvent.clickCount(); @@ -1205,7 +1208,7 @@ bool EventHandler::handleMousePressEvent(const PlatformMouseEvent& mouseEvent) } FrameView* view = m_frame->view(); - Scrollbar* scrollbar = view ? view->scrollbarUnderPoint(mouseEvent.pos()) : 0; + Scrollbar* scrollbar = view ? view->scrollbarAtPoint(mouseEvent.pos()) : 0; if (!scrollbar) scrollbar = mev.scrollbar(); if (scrollbar && passMousePressEventToScrollbar(mev, scrollbar)) @@ -1297,7 +1300,7 @@ bool EventHandler::handleMouseMoveEvent(const PlatformMouseEvent& mouseEvent, Hi // Send events right to a scrollbar if the mouse is pressed. if (m_lastScrollbarUnderMouse && m_mousePressed) - return m_lastScrollbarUnderMouse->mouseMoved(m_lastScrollbarUnderMouse->transformEvent(mouseEvent)); + return m_lastScrollbarUnderMouse->mouseMoved(mouseEvent); // Treat mouse move events while the mouse is pressed as "read-only" in prepareMouseEvent // if we are allowed to select. @@ -1319,7 +1322,7 @@ bool EventHandler::handleMouseMoveEvent(const PlatformMouseEvent& mouseEvent, Hi m_resizeLayer->resize(mouseEvent, m_offsetFromResizeCorner); else { if (FrameView* view = m_frame->view()) - scrollbar = view->scrollbarUnderPoint(mouseEvent.pos()); + scrollbar = view->scrollbarAtPoint(mouseEvent.pos()); if (!scrollbar) scrollbar = mev.scrollbar(); @@ -1349,7 +1352,7 @@ bool EventHandler::handleMouseMoveEvent(const PlatformMouseEvent& mouseEvent, Hi swallowEvent |= passMouseMoveEventToSubframe(mev, newSubframe.get(), hoveredNode); } else { if (scrollbar && !m_mousePressed) - scrollbar->mouseMoved(scrollbar->transformEvent(mouseEvent)); // Handle hover effects on platforms that support visual feedback on scrollbar hovering. + scrollbar->mouseMoved(mouseEvent); // Handle hover effects on platforms that support visual feedback on scrollbar hovering. if (Page* page = m_frame->page()) { if ((!m_resizeLayer || !m_resizeLayer->inResizeMode()) && !page->mainFrame()->eventHandler()->panScrollInProgress()) { if (FrameView* view = m_frame->view()) @@ -1715,16 +1718,38 @@ bool EventHandler::handleWheelEvent(PlatformWheelEvent& e) return false; IntPoint vPoint = view->windowToContents(e.pos()); - HitTestRequest request(HitTestRequest::ReadOnly); - HitTestResult result(vPoint); - doc->renderView()->layer()->hitTest(request, result); - Node* node = result.innerNode(); + Node* node; + bool isOverWidget; + bool didSetLatchedNode = false; + + if (m_useLatchedWheelEventNode) { + if (!m_latchedWheelEventNode) { + HitTestRequest request(HitTestRequest::ReadOnly); + HitTestResult result(vPoint); + doc->renderView()->layer()->hitTest(request, result); + m_latchedWheelEventNode = result.innerNode(); + m_widgetIsLatched = result.isOverWidget(); + didSetLatchedNode = true; + } + + node = m_latchedWheelEventNode.get(); + isOverWidget = m_widgetIsLatched; + } else { + if (m_latchedWheelEventNode) + m_latchedWheelEventNode = 0; + + HitTestRequest request(HitTestRequest::ReadOnly); + HitTestResult result(vPoint); + doc->renderView()->layer()->hitTest(request, result); + node = result.innerNode(); + isOverWidget = result.isOverWidget(); + } if (node) { // Figure out which view to send the event to. RenderObject* target = node->renderer(); - if (result.isOverWidget() && target && target->isWidget()) { + if (isOverWidget && target && target->isWidget()) { Widget* widget = static_cast<RenderWidget*>(target)->widget(); if (widget && passWheelEventToWidget(e, widget)) { @@ -2027,7 +2052,7 @@ void EventHandler::handleKeyboardSelectionMovement(KeyboardEvent* event) void EventHandler::defaultKeyboardEventHandler(KeyboardEvent* event) { - if (event->type() == eventNames().keydownEvent) { + if (event->type() == eventNames().keydownEvent) { m_frame->editor()->handleKeyboardEvent(event); if (event->defaultHandled()) return; @@ -2037,14 +2062,14 @@ void EventHandler::defaultKeyboardEventHandler(KeyboardEvent* event) // provides KB navigation and selection for enhanced accessibility users if (AXObjectCache::accessibilityEnhancedUserInterfaceEnabled()) handleKeyboardSelectionMovement(event); - } - if (event->type() == eventNames().keypressEvent) { + } + if (event->type() == eventNames().keypressEvent) { m_frame->editor()->handleKeyboardEvent(event); if (event->defaultHandled()) return; if (event->charCode() == ' ') defaultSpaceEventHandler(event); - } + } } bool EventHandler::dragHysteresisExceeded(const FloatPoint& floatDragViewportLocation) const @@ -2102,6 +2127,9 @@ void EventHandler::dragSourceEndedAt(const PlatformMouseEvent& event, DragOperat } freeClipboard(); dragState().m_dragSrc = 0; + // In case the drag was ended due to an escape key press we need to ensure + // that consecutive mousemove events don't reinitiate the drag and drop. + m_mouseDownMayStartDrag = false; } // returns if we should continue "default processing", i.e., whether eventhandler canceled diff --git a/src/3rdparty/webkit/WebCore/page/EventHandler.h b/src/3rdparty/webkit/WebCore/page/EventHandler.h index f76716e..d5c0b97 100644 --- a/src/3rdparty/webkit/WebCore/page/EventHandler.h +++ b/src/3rdparty/webkit/WebCore/page/EventHandler.h @@ -332,6 +332,10 @@ private: double m_mouseDownTimestamp; PlatformMouseEvent m_mouseDown; + bool m_useLatchedWheelEventNode; + RefPtr<Node> m_latchedWheelEventNode; + bool m_widgetIsLatched; + #if PLATFORM(MAC) NSView *m_mouseDownView; bool m_sendingEventToSubview; diff --git a/src/3rdparty/webkit/WebCore/page/FocusController.cpp b/src/3rdparty/webkit/WebCore/page/FocusController.cpp index 8dad846..817801c 100644 --- a/src/3rdparty/webkit/WebCore/page/FocusController.cpp +++ b/src/3rdparty/webkit/WebCore/page/FocusController.cpp @@ -58,6 +58,7 @@ using namespace HTMLNames; FocusController::FocusController(Page* page) : m_page(page) , m_isActive(false) + , m_isFocused(false) { } @@ -66,16 +67,20 @@ void FocusController::setFocusedFrame(PassRefPtr<Frame> frame) if (m_focusedFrame == frame) return; - if (m_focusedFrame && m_focusedFrame->view()) { - m_focusedFrame->selection()->setFocused(false); - m_focusedFrame->document()->dispatchWindowEvent(eventNames().blurEvent, false, false); - } + RefPtr<Frame> oldFrame = m_focusedFrame; + RefPtr<Frame> newFrame = frame; - m_focusedFrame = frame; + m_focusedFrame = newFrame; - if (m_focusedFrame && m_focusedFrame->view()) { - m_focusedFrame->selection()->setFocused(true); - m_focusedFrame->document()->dispatchWindowEvent(eventNames().focusEvent, false, false); + // Now that the frame is updated, fire events and update the selection focused states of both frames. + if (oldFrame && oldFrame->view()) { + oldFrame->selection()->setFocused(false); + oldFrame->document()->dispatchWindowEvent(eventNames().blurEvent, false, false); + } + + if (newFrame && newFrame->view() && isFocused()) { + newFrame->selection()->setFocused(true); + newFrame->document()->dispatchWindowEvent(eventNames().focusEvent, false, false); } } @@ -86,6 +91,19 @@ Frame* FocusController::focusedOrMainFrame() return m_page->mainFrame(); } +void FocusController::setFocused(bool focused) +{ + if (isFocused() == focused) + return; + + m_isFocused = focused; + + if (m_focusedFrame && m_focusedFrame->view()) { + m_focusedFrame->selection()->setFocused(focused); + m_focusedFrame->document()->dispatchWindowEvent(focused ? eventNames().focusEvent : eventNames().blurEvent, false, false); + } +} + static Node* deepFocusableNode(FocusDirection direction, Node* node, KeyboardEvent* event) { // The node we found might be a HTMLFrameOwnerElement, so descend down the frame tree until we find either: @@ -322,7 +340,7 @@ void FocusController::setActive(bool active) focusedOrMainFrame()->selection()->pageActivationChanged(); - if (m_focusedFrame) + if (m_focusedFrame && isFocused()) m_focusedFrame->document()->dispatchWindowEvent(active ? eventNames().focusEvent : eventNames().blurEvent, false, false); } diff --git a/src/3rdparty/webkit/WebCore/page/FocusController.h b/src/3rdparty/webkit/WebCore/page/FocusController.h index f4a6632..33debf1 100644 --- a/src/3rdparty/webkit/WebCore/page/FocusController.h +++ b/src/3rdparty/webkit/WebCore/page/FocusController.h @@ -53,10 +53,14 @@ namespace WebCore { void setActive(bool); bool isActive() const { return m_isActive; } + void setFocused(bool); + bool isFocused() const { return m_isFocused; } + private: Page* m_page; RefPtr<Frame> m_focusedFrame; bool m_isActive; + bool m_isFocused; }; } // namespace WebCore diff --git a/src/3rdparty/webkit/WebCore/page/Frame.cpp b/src/3rdparty/webkit/WebCore/page/Frame.cpp index 8905bd9..870bd2a 100644 --- a/src/3rdparty/webkit/WebCore/page/Frame.cpp +++ b/src/3rdparty/webkit/WebCore/page/Frame.cpp @@ -793,7 +793,7 @@ String Frame::jsStatusBarText() const String Frame::jsDefaultStatusBarText() const { - return m_kjsDefaultStatusBarText; + return m_kjsDefaultStatusBarText; } void Frame::setNeedsReapplyStyles() @@ -1771,7 +1771,7 @@ void Frame::createView(const IntSize& viewportSize, frameView->setParentVisible(true); if (ownerRenderer()) - ownerRenderer()->setWidget(frameView.get()); + ownerRenderer()->setWidget(frameView); if (HTMLFrameOwnerElement* owner = ownerElement()) view()->setCanHaveScrollbars(owner->scrollingMode() != ScrollbarAlwaysOff); diff --git a/src/3rdparty/webkit/WebCore/page/FrameView.cpp b/src/3rdparty/webkit/WebCore/page/FrameView.cpp index 41f2c5c..d57e845 100644 --- a/src/3rdparty/webkit/WebCore/page/FrameView.cpp +++ b/src/3rdparty/webkit/WebCore/page/FrameView.cpp @@ -111,7 +111,6 @@ FrameView::FrameView(Frame* frame) , m_shouldUpdateWhileOffscreen(true) , m_deferSetNeedsLayouts(0) , m_setNeedsLayoutWasDeferred(false) - , m_lockedToAnchor(false) { init(); } @@ -185,7 +184,7 @@ void FrameView::reset() m_isPainting = false; m_isVisuallyNonEmpty = false; m_firstVisuallyNonEmptyLayoutCallbackPending = true; - m_lockedToAnchor = false; + m_maintainScrollPositionAnchor = 0; } bool FrameView::isFrameView() const @@ -417,20 +416,18 @@ void FrameView::applyOverflowToViewport(RenderObject* o, ScrollbarMode& hMode, S } #if USE(ACCELERATED_COMPOSITING) -void FrameView::updateCompositingLayers(CompositingUpdate updateType) +void FrameView::updateCompositingLayers() { RenderView* view = m_frame->contentRenderer(); - if (view && view->compositor()) { - // This call will make sure the cached hasAcceleratedCompositing is updated from the pref - view->compositor()->cacheAcceleratedCompositingEnabledFlag(); - } - - if (!view || !view->usesCompositing()) + if (!view) return; - if (updateType == ForcedCompositingUpdate) - view->compositor()->setCompositingLayersNeedUpdate(); + // This call will make sure the cached hasAcceleratedCompositing is updated from the pref + view->compositor()->cacheAcceleratedCompositingEnabledFlag(); + if (!view->usesCompositing()) + return; + view->compositor()->updateCompositingLayers(); } @@ -624,7 +621,9 @@ void FrameView::layout(bool allowSubtree) // Now update the positions of all layers. beginDeferredRepaints(); - layer->updateLayerPositions(m_doFullRepaint); + layer->updateLayerPositions((m_doFullRepaint ? RenderLayer::DoFullRepaint : 0) + | RenderLayer::CheckForRepaint + | RenderLayer::UpdateCompositingLayers); endDeferredRepaints(); #if USE(ACCELERATED_COMPOSITING) @@ -666,9 +665,6 @@ void FrameView::layout(bool allowSubtree) ASSERT(m_enqueueEvents); } - if (lockedToAnchor()) - m_frame->loader()->gotoAnchor(); - m_nestedLayoutCount--; } @@ -751,11 +747,27 @@ void FrameView::restoreScrollbar() setScrollbarsSuppressed(false); } +void FrameView::maintainScrollPositionAtAnchor(Node* anchorNode) +{ + m_maintainScrollPositionAnchor = anchorNode; + if (!m_maintainScrollPositionAnchor) + return; + + // We need to update the layout before scrolling, otherwise we could + // really mess things up if an anchor scroll comes at a bad moment. + m_frame->document()->updateStyleIfNeeded(); + // Only do a layout if changes have occurred that make it necessary. + if (m_frame->contentRenderer() && m_frame->contentRenderer()->needsLayout()) + layout(); + else + scrollToAnchor(); +} + void FrameView::scrollRectIntoViewRecursively(const IntRect& r) { bool wasInProgrammaticScroll = m_inProgrammaticScroll; m_inProgrammaticScroll = true; - setLockedToAnchor(false); + m_maintainScrollPositionAnchor = 0; ScrollView::scrollRectIntoViewRecursively(r); m_inProgrammaticScroll = wasInProgrammaticScroll; } @@ -764,7 +776,7 @@ void FrameView::setScrollPosition(const IntPoint& scrollPoint) { bool wasInProgrammaticScroll = m_inProgrammaticScroll; m_inProgrammaticScroll = true; - setLockedToAnchor(false); + m_maintainScrollPositionAnchor = 0; ScrollView::setScrollPosition(scrollPoint); m_inProgrammaticScroll = wasInProgrammaticScroll; } @@ -1118,6 +1130,27 @@ void FrameView::resumeScheduledEvents() ASSERT(m_scheduledEvents.isEmpty() || m_enqueueEvents); } +void FrameView::scrollToAnchor() +{ + RefPtr<Node> anchorNode = m_maintainScrollPositionAnchor; + if (!anchorNode) + return; + + if (!anchorNode->renderer()) + return; + + IntRect rect; + if (anchorNode != m_frame->document()) + rect = anchorNode->getRect(); + + // Scroll nested layers and frames to reveal the anchor. + // Align to the top and to the closest side (this matches other browsers). + anchorNode->renderer()->enclosingLayer()->scrollRectToVisible(rect, true, ScrollAlignment::alignToEdgeIfNeeded, ScrollAlignment::alignTopAlways); + + // scrollRectToVisible can call into scrollRectIntoViewRecursively(), which resets m_maintainScrollPositionAnchor. + m_maintainScrollPositionAnchor = anchorNode; +} + bool FrameView::updateWidgets() { if (m_nestedLayoutCount > 1 || !m_widgetUpdateSet || m_widgetUpdateSet->isEmpty()) @@ -1161,7 +1194,9 @@ void FrameView::performPostLayoutTasks() if (updateWidgets()) break; } - + + scrollToAnchor(); + resumeScheduledEvents(); if (!root->printing()) { @@ -1351,7 +1386,7 @@ void FrameView::setWasScrolledByUser(bool wasScrolledByUser) { if (m_inProgrammaticScroll) return; - setLockedToAnchor(false); + m_maintainScrollPositionAnchor = 0; m_wasScrolledByUser = wasScrolledByUser; } @@ -1447,11 +1482,13 @@ void FrameView::layoutIfNeededRecursive() if (needsLayout()) layout(); - const HashSet<Widget*>* viewChildren = children(); - HashSet<Widget*>::const_iterator end = viewChildren->end(); - for (HashSet<Widget*>::const_iterator current = viewChildren->begin(); current != end; ++current) - if ((*current)->isFrameView()) - static_cast<FrameView*>(*current)->layoutIfNeededRecursive(); + const HashSet<RefPtr<Widget> >* viewChildren = children(); + HashSet<RefPtr<Widget> >::const_iterator end = viewChildren->end(); + for (HashSet<RefPtr<Widget> >::const_iterator current = viewChildren->begin(); current != end; ++current) { + Widget* widget = (*current).get(); + if (widget->isFrameView()) + static_cast<FrameView*>(widget)->layoutIfNeededRecursive(); + } // layoutIfNeededRecursive is called when we need to make sure layout is up-to-date before // painting, so we need to flush out any deferred repaints too. @@ -1517,4 +1554,142 @@ void FrameView::adjustPageHeight(float *newBottom, float oldTop, float oldBottom *newBottom = oldBottom; } +IntRect FrameView::convertFromRenderer(const RenderObject* renderer, const IntRect& rendererRect) const +{ + IntRect rect = renderer->localToAbsoluteQuad(FloatRect(rendererRect)).enclosingBoundingBox(); + + // Convert from page ("absolute") to FrameView coordinates. + rect.move(-scrollX(), -scrollY()); + + return rect; +} + +IntRect FrameView::convertToRenderer(const RenderObject* renderer, const IntRect& viewRect) const +{ + IntRect rect = viewRect; + + // Convert from FrameView coords into page ("absolute") coordinates. + rect.move(scrollX(), scrollY()); + + // FIXME: we don't have a way to map an absolute rect down to a local quad, so just + // move the rect for now. + rect.setLocation(roundedIntPoint(renderer->absoluteToLocal(rect.location(), false, true /* use transforms */))); + return rect; +} + +IntPoint FrameView::convertFromRenderer(const RenderObject* renderer, const IntPoint& rendererPoint) const +{ + IntPoint point = roundedIntPoint(renderer->localToAbsolute(rendererPoint, false, true /* use transforms */)); + + // Convert from page ("absolute") to FrameView coordinates. + point.move(-scrollX(), -scrollY()); + return point; +} + +IntPoint FrameView::convertToRenderer(const RenderObject* renderer, const IntPoint& viewPoint) const +{ + IntPoint point = viewPoint; + + // Convert from FrameView coords into page ("absolute") coordinates. + point += IntSize(scrollX(), scrollY()); + + return roundedIntPoint(renderer->absoluteToLocal(point, false, true /* use transforms */)); +} + +IntRect FrameView::convertToContainingView(const IntRect& localRect) const +{ + if (const ScrollView* parentScrollView = parent()) { + if (parentScrollView->isFrameView()) { + const FrameView* parentView = static_cast<const FrameView*>(parentScrollView); + // Get our renderer in the parent view + RenderPart* renderer = m_frame->ownerRenderer(); + if (!renderer) + return localRect; + + IntRect rect(localRect); + // Add borders and padding?? + rect.move(renderer->borderLeft() + renderer->paddingLeft(), + renderer->borderTop() + renderer->paddingTop()); + return parentView->convertFromRenderer(renderer, rect); + } + + return Widget::convertToContainingView(localRect); + } + + return localRect; +} + +IntRect FrameView::convertFromContainingView(const IntRect& parentRect) const +{ + if (const ScrollView* parentScrollView = parent()) { + if (parentScrollView->isFrameView()) { + const FrameView* parentView = static_cast<const FrameView*>(parentScrollView); + + // Get our renderer in the parent view + RenderPart* renderer = m_frame->ownerRenderer(); + if (!renderer) + return parentRect; + + IntRect rect = parentView->convertToRenderer(renderer, parentRect); + // Subtract borders and padding + rect.move(-renderer->borderLeft() - renderer->paddingLeft(), + -renderer->borderTop() - renderer->paddingTop()); + return rect; + } + + return Widget::convertFromContainingView(parentRect); + } + + return parentRect; +} + +IntPoint FrameView::convertToContainingView(const IntPoint& localPoint) const +{ + if (const ScrollView* parentScrollView = parent()) { + if (parentScrollView->isFrameView()) { + const FrameView* parentView = static_cast<const FrameView*>(parentScrollView); + + // Get our renderer in the parent view + RenderPart* renderer = m_frame->ownerRenderer(); + if (!renderer) + return localPoint; + + IntPoint point(localPoint); + + // Add borders and padding + point.move(renderer->borderLeft() + renderer->paddingLeft(), + renderer->borderTop() + renderer->paddingTop()); + return parentView->convertFromRenderer(renderer, point); + } + + return Widget::convertToContainingView(localPoint); + } + + return localPoint; +} + +IntPoint FrameView::convertFromContainingView(const IntPoint& parentPoint) const +{ + if (const ScrollView* parentScrollView = parent()) { + if (parentScrollView->isFrameView()) { + const FrameView* parentView = static_cast<const FrameView*>(parentScrollView); + + // Get our renderer in the parent view + RenderPart* renderer = m_frame->ownerRenderer(); + if (!renderer) + return parentPoint; + + IntPoint point = parentView->convertToRenderer(renderer, parentPoint); + // Subtract borders and padding + point.move(-renderer->borderLeft() - renderer->paddingLeft(), + -renderer->borderTop() - renderer->paddingTop()); + return point; + } + + return Widget::convertFromContainingView(parentPoint); + } + + return parentPoint; +} + } // namespace WebCore diff --git a/src/3rdparty/webkit/WebCore/page/FrameView.h b/src/3rdparty/webkit/WebCore/page/FrameView.h index 9dabe56..8eee5b8 100644 --- a/src/3rdparty/webkit/WebCore/page/FrameView.h +++ b/src/3rdparty/webkit/WebCore/page/FrameView.h @@ -48,7 +48,7 @@ class String; template <typename T> class Timer; -class FrameView : public ScrollView, public RefCounted<FrameView> { +class FrameView : public ScrollView { public: friend class RenderView; @@ -93,8 +93,7 @@ public: bool needsFullRepaint() const { return m_doFullRepaint; } #if USE(ACCELERATED_COMPOSITING) - enum CompositingUpdate { NormalCompositingUpdate, ForcedCompositingUpdate }; - void updateCompositingLayers(CompositingUpdate updateType = NormalCompositingUpdate); + void updateCompositingLayers(); // Called when changes to the GraphicsLayer hierarchy have to be synchronized with // content rendered via the normal painting path. @@ -126,11 +125,6 @@ public: virtual IntRect windowClipRect(bool clipToContents = true) const; IntRect windowClipRectForLayer(const RenderLayer*, bool clipToLayerContents) const; - virtual bool isActive() const; - virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&); - virtual void valueChanged(Scrollbar*); - virtual void getTickmarks(Vector<IntRect>&) const; - virtual IntRect windowResizerRect() const; virtual void scrollRectIntoViewRecursively(const IntRect&); @@ -185,9 +179,13 @@ public: void adjustPageHeight(float* newBottom, float oldTop, float oldBottom, float bottomLimit); - bool lockedToAnchor() { return m_lockedToAnchor; } - void setLockedToAnchor(bool lockedToAnchor) { m_lockedToAnchor = lockedToAnchor; } + void maintainScrollPositionAtAnchor(Node*); + // Methods to convert points and rects between the coordinate space of the renderer, and this view. + virtual IntRect convertFromRenderer(const RenderObject*, const IntRect&) const; + virtual IntRect convertToRenderer(const RenderObject*, const IntRect&) const; + virtual IntPoint convertFromRenderer(const RenderObject*, const IntPoint&) const; + virtual IntPoint convertToRenderer(const RenderObject*, const IntPoint&) const; private: FrameView(Frame*); @@ -215,12 +213,26 @@ private: layout(); } + // Override ScrollView methods to do point conversion via renderers, in order to + // take transforms into account. + virtual IntRect convertToContainingView(const IntRect&) const; + virtual IntRect convertFromContainingView(const IntRect&) const; + virtual IntPoint convertToContainingView(const IntPoint&) const; + virtual IntPoint convertFromContainingView(const IntPoint&) const; + + // ScrollBarClient interface + virtual void valueChanged(Scrollbar*); + virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&); + virtual bool isActive() const; + virtual void getTickmarks(Vector<IntRect>&) const; + void deferredRepaintTimerFired(Timer<FrameView>*); void doDeferredRepaints(); void updateDeferredRepaintDelay(); double adjustedDeferredRepaintDelay() const; bool updateWidgets(); + void scrollToAnchor(); static double sCurrentPaintTimeStamp; // used for detecting decoded resource thrash in the cache @@ -290,7 +302,7 @@ private: bool m_isVisuallyNonEmpty; bool m_firstVisuallyNonEmptyLayoutCallbackPending; - bool m_lockedToAnchor; + RefPtr<Node> m_maintainScrollPositionAnchor; }; } // namespace WebCore diff --git a/src/3rdparty/webkit/WebCore/page/MouseEventWithHitTestResults.h b/src/3rdparty/webkit/WebCore/page/MouseEventWithHitTestResults.h index c4e419c..7330d93 100644 --- a/src/3rdparty/webkit/WebCore/page/MouseEventWithHitTestResults.h +++ b/src/3rdparty/webkit/WebCore/page/MouseEventWithHitTestResults.h @@ -28,7 +28,6 @@ namespace WebCore { class Scrollbar; -// FIXME: Why doesn't this class just cache a HitTestResult instead of copying all of HitTestResult's fields over? class MouseEventWithHitTestResults { public: MouseEventWithHitTestResults(const PlatformMouseEvent&, const HitTestResult&); @@ -46,6 +45,6 @@ private: HitTestResult m_hitTestResult; }; -} +} // namespace WebCore -#endif +#endif // MouseEventWithHitTestResults_h diff --git a/src/3rdparty/webkit/WebCore/page/Settings.cpp b/src/3rdparty/webkit/WebCore/page/Settings.cpp index 7a15163..6f8b7c7 100644 --- a/src/3rdparty/webkit/WebCore/page/Settings.cpp +++ b/src/3rdparty/webkit/WebCore/page/Settings.cpp @@ -75,6 +75,7 @@ Settings::Settings(Page* page) #endif , m_needsAdobeFrameReloadingQuirk(false) , m_needsKeyboardEventDisambiguationQuirks(false) + , m_treatsAnyTextCSSLinkAsStylesheet(false) , m_needsLeopardMailQuirks(false) , m_needsTigerMailQuirks(false) , m_isDOMPasteAllowed(false) @@ -87,6 +88,7 @@ Settings::Settings(Page* page) , m_needsSiteSpecificQuirks(false) , m_fontRenderingMode(0) , m_webArchiveDebugModeEnabled(false) + , m_localFileContentSniffingEnabled(false) , m_inApplicationChromeMode(false) , m_offlineWebApplicationCacheEnabled(false) , m_shouldPaintCustomScrollbars(false) @@ -314,6 +316,11 @@ void Settings::setNeedsKeyboardEventDisambiguationQuirks(bool needsQuirks) m_needsKeyboardEventDisambiguationQuirks = needsQuirks; } +void Settings::setTreatsAnyTextCSSLinkAsStylesheet(bool treatsAnyTextCSSLinkAsStylesheet) +{ + m_treatsAnyTextCSSLinkAsStylesheet = treatsAnyTextCSSLinkAsStylesheet; +} + void Settings::setNeedsLeopardMailQuirks(bool needsQuirks) { m_needsLeopardMailQuirks = needsQuirks; @@ -400,6 +407,11 @@ void Settings::setWebArchiveDebugModeEnabled(bool enabled) m_webArchiveDebugModeEnabled = enabled; } +void Settings::setLocalFileContentSniffingEnabled(bool enabled) +{ + m_localFileContentSniffingEnabled = enabled; +} + void Settings::setLocalStorageDatabasePath(const String& path) { m_localStorageDatabasePath = path; diff --git a/src/3rdparty/webkit/WebCore/page/Settings.h b/src/3rdparty/webkit/WebCore/page/Settings.h index 4b9b40a..962af18 100644 --- a/src/3rdparty/webkit/WebCore/page/Settings.h +++ b/src/3rdparty/webkit/WebCore/page/Settings.h @@ -163,6 +163,9 @@ namespace WebCore { void setNeedsKeyboardEventDisambiguationQuirks(bool); bool needsKeyboardEventDisambiguationQuirks() const { return m_needsKeyboardEventDisambiguationQuirks; } + void setTreatsAnyTextCSSLinkAsStylesheet(bool); + bool treatsAnyTextCSSLinkAsStylesheet() const { return m_treatsAnyTextCSSLinkAsStylesheet; } + void setNeedsLeopardMailQuirks(bool); bool needsLeopardMailQuirks() const { return m_needsLeopardMailQuirks; } @@ -202,6 +205,9 @@ namespace WebCore { void setWebArchiveDebugModeEnabled(bool); bool webArchiveDebugModeEnabled() const { return m_webArchiveDebugModeEnabled; } + void setLocalFileContentSniffingEnabled(bool); + bool localFileContentSniffingEnabled() const { return m_localFileContentSniffingEnabled; } + void setLocalStorageDatabasePath(const String&); const String& localStorageDatabasePath() const { return m_localStorageDatabasePath; } @@ -282,6 +288,7 @@ namespace WebCore { #endif bool m_needsAdobeFrameReloadingQuirk : 1; bool m_needsKeyboardEventDisambiguationQuirks : 1; + bool m_treatsAnyTextCSSLinkAsStylesheet : 1; bool m_needsLeopardMailQuirks : 1; bool m_needsTigerMailQuirks : 1; bool m_isDOMPasteAllowed : 1; @@ -294,6 +301,7 @@ namespace WebCore { bool m_needsSiteSpecificQuirks : 1; unsigned m_fontRenderingMode : 1; bool m_webArchiveDebugModeEnabled : 1; + bool m_localFileContentSniffingEnabled : 1; bool m_inApplicationChromeMode : 1; bool m_offlineWebApplicationCacheEnabled : 1; bool m_shouldPaintCustomScrollbars : 1; diff --git a/src/3rdparty/webkit/WebCore/page/XSSAuditor.cpp b/src/3rdparty/webkit/WebCore/page/XSSAuditor.cpp index f8a2f40..5dfc963 100644 --- a/src/3rdparty/webkit/WebCore/page/XSSAuditor.cpp +++ b/src/3rdparty/webkit/WebCore/page/XSSAuditor.cpp @@ -28,6 +28,7 @@ #include "XSSAuditor.h" #include <wtf/StdLibExtras.h> +#include <wtf/Vector.h> #include "Console.h" #include "CString.h" @@ -35,6 +36,7 @@ #include "DOMWindow.h" #include "Frame.h" #include "KURL.h" +#include "PreloadScanner.h" #include "ResourceResponseBase.h" #include "ScriptSourceCode.h" #include "Settings.h" @@ -44,6 +46,11 @@ using namespace WTF; namespace WebCore { +static bool isNonNullControlCharacter(UChar c) +{ + return (c > '\0' && c < ' ') || c == 127; +} + XSSAuditor::XSSAuditor(Frame* frame) : m_frame(frame) { @@ -64,9 +71,22 @@ bool XSSAuditor::canEvaluate(const String& sourceCode) const if (!isEnabled()) return true; - if (findInRequest(sourceCode)) { + if (findInRequest(sourceCode, false, true, false)) { DEFINE_STATIC_LOCAL(String, consoleMessage, ("Refused to execute a JavaScript script. Source code of script found within request.\n")); - m_frame->domWindow()->console()->addMessage(JSMessageSource, ErrorMessageLevel, consoleMessage, 1, String()); + m_frame->domWindow()->console()->addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, consoleMessage, 1, String()); + return false; + } + return true; +} + +bool XSSAuditor::canEvaluateJavaScriptURL(const String& code) const +{ + if (!isEnabled()) + return true; + + if (findInRequest(code, false, false, true, true)) { + DEFINE_STATIC_LOCAL(String, consoleMessage, ("Refused to execute a JavaScript script. Source code of script found within request.\n")); + m_frame->domWindow()->console()->addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, consoleMessage, 1, String()); return false; } return true; @@ -77,17 +97,22 @@ bool XSSAuditor::canCreateInlineEventListener(const String&, const String& code) if (!isEnabled()) return true; - return canEvaluate(code); + if (findInRequest(code)) { + DEFINE_STATIC_LOCAL(String, consoleMessage, ("Refused to execute a JavaScript script. Source code of script found within request.\n")); + m_frame->domWindow()->console()->addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, consoleMessage, 1, String()); + return false; + } + return true; } -bool XSSAuditor::canLoadExternalScriptFromSrc(const String& url) const +bool XSSAuditor::canLoadExternalScriptFromSrc(const String& context, const String& url) const { if (!isEnabled()) return true; - if (findInRequest(url)) { + if (findInRequest(context + url)) { DEFINE_STATIC_LOCAL(String, consoleMessage, ("Refused to execute a JavaScript script. Source code of script found within request.\n")); - m_frame->domWindow()->console()->addMessage(JSMessageSource, ErrorMessageLevel, consoleMessage, 1, String()); + m_frame->domWindow()->console()->addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, consoleMessage, 1, String()); return false; } return true; @@ -98,45 +123,113 @@ bool XSSAuditor::canLoadObject(const String& url) const if (!isEnabled()) return true; - if (findInRequest(url)) { + if (findInRequest(url, false, false)) { DEFINE_STATIC_LOCAL(String, consoleMessage, ("Refused to execute a JavaScript script. Source code of script found within request")); - m_frame->domWindow()->console()->addMessage(OtherMessageSource, ErrorMessageLevel, consoleMessage, 1, String()); + m_frame->domWindow()->console()->addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, consoleMessage, 1, String()); return false; } return true; } -String XSSAuditor::decodeURL(const String& str, const TextEncoding& encoding, bool allowControlCharacters) +bool XSSAuditor::canSetBaseElementURL(const String& url) const +{ + if (!isEnabled()) + return true; + + KURL baseElementURL(m_frame->document()->url(), url); + if (m_frame->document()->url().host() != baseElementURL.host() && findInRequest(url)) { + DEFINE_STATIC_LOCAL(String, consoleMessage, ("Refused to execute a JavaScript script. Source code of script found within request")); + m_frame->domWindow()->console()->addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, consoleMessage, 1, String()); + return false; + } + return true; +} + +String XSSAuditor::decodeURL(const String& str, const TextEncoding& encoding, bool allowNullCharacters, + bool allowNonNullControlCharacters, bool decodeHTMLentities, bool leaveUndecodableHTMLEntitiesUntouched) { String result; String url = str; url.replace('+', ' '); result = decodeURLEscapeSequences(url); - if (!allowControlCharacters) - result.removeCharacters(&isControlCharacter); - result = encoding.decode(result.utf8().data(), result.length()); - if (!allowControlCharacters) - result.removeCharacters(&isControlCharacter); + String decodedResult = encoding.decode(result.utf8().data(), result.length()); + if (!decodedResult.isEmpty()) + result = decodedResult; + if (decodeHTMLentities) + result = decodeHTMLEntities(result, leaveUndecodableHTMLEntitiesUntouched); + if (!allowNullCharacters) + result = StringImpl::createStrippingNullCharacters(result.characters(), result.length()); + if (!allowNonNullControlCharacters) { + decodedResult = result.removeCharacters(&isNonNullControlCharacter); + if (!decodedResult.isEmpty()) + result = decodedResult; + } return result; } -bool XSSAuditor::findInRequest(const String& string) const +String XSSAuditor::decodeHTMLEntities(const String& str, bool leaveUndecodableHTMLEntitiesUntouched) +{ + SegmentedString source(str); + SegmentedString sourceShadow; + Vector<UChar> result; + + while (!source.isEmpty()) { + UChar cc = *source; + source.advance(); + + if (cc != '&') { + result.append(cc); + continue; + } + + if (leaveUndecodableHTMLEntitiesUntouched) + sourceShadow = source; + bool notEnoughCharacters = false; + unsigned entity = PreloadScanner::consumeEntity(source, notEnoughCharacters); + // We ignore notEnoughCharacters because we might as well use this loop + // to copy the remaining characters into |result|. + + if (entity > 0xFFFF) { + result.append(U16_LEAD(entity)); + result.append(U16_TRAIL(entity)); + } else if (!leaveUndecodableHTMLEntitiesUntouched || entity != 0xFFFD){ + result.append(entity); + } else { + result.append('&'); + if (leaveUndecodableHTMLEntitiesUntouched) + source = sourceShadow; + } + } + + return String::adopt(result); +} + +bool XSSAuditor::findInRequest(const String& string, bool matchNullCharacters, bool matchNonNullControlCharacters, + bool decodeHTMLentities, bool leaveUndecodableHTMLEntitiesUntouched) const { bool result = false; Frame* parentFrame = m_frame->tree()->parent(); if (parentFrame && m_frame->document()->url() == blankURL()) - result = findInRequest(parentFrame, string); + result = findInRequest(parentFrame, string, matchNullCharacters, matchNonNullControlCharacters, + decodeHTMLentities, leaveUndecodableHTMLEntitiesUntouched); if (!result) - result = findInRequest(m_frame, string); + result = findInRequest(m_frame, string, matchNullCharacters, matchNonNullControlCharacters, + decodeHTMLentities, leaveUndecodableHTMLEntitiesUntouched); return result; } -bool XSSAuditor::findInRequest(Frame* frame, const String& string) const +bool XSSAuditor::findInRequest(Frame* frame, const String& string, bool matchNullCharacters, bool matchNonNullControlCharacters, + bool decodeHTMLentities, bool leaveUndecodableHTMLEntitiesUntouched) const { ASSERT(frame->document()); String pageURL = frame->document()->url().string(); + if (!frame->document()->decoder()) { + // Note, JavaScript URLs do not have a charset. + return false; + } + if (protocolIs(pageURL, "data")) return false; @@ -145,7 +238,8 @@ bool XSSAuditor::findInRequest(Frame* frame, const String& string) const if (string.length() < pageURL.length()) { // The string can actually fit inside the pageURL. - String decodedPageURL = decodeURL(pageURL, frame->document()->decoder()->encoding()); + String decodedPageURL = decodeURL(pageURL, frame->document()->decoder()->encoding(), matchNullCharacters, + matchNonNullControlCharacters, decodeHTMLentities, leaveUndecodableHTMLEntitiesUntouched); if (decodedPageURL.find(string, 0, false) != -1) return true; // We've found the smoking gun. } @@ -158,7 +252,8 @@ bool XSSAuditor::findInRequest(Frame* frame, const String& string) const // the url-encoded POST data because the length of the url-decoded // code is less than or equal to the length of the url-encoded // string. - String decodedFormData = decodeURL(formData, frame->document()->decoder()->encoding()); + String decodedFormData = decodeURL(formData, frame->document()->decoder()->encoding(), matchNullCharacters, + matchNonNullControlCharacters, decodeHTMLentities, leaveUndecodableHTMLEntitiesUntouched); if (decodedFormData.find(string, 0, false) != -1) return true; // We found the string in the POST data. } diff --git a/src/3rdparty/webkit/WebCore/page/XSSAuditor.h b/src/3rdparty/webkit/WebCore/page/XSSAuditor.h index 7974d1c..6c6a56c 100644 --- a/src/3rdparty/webkit/WebCore/page/XSSAuditor.h +++ b/src/3rdparty/webkit/WebCore/page/XSSAuditor.h @@ -74,13 +74,17 @@ namespace WebCore { // based on the content of any user-submitted data. bool canEvaluate(const String& sourceCode) const; + // Determines whether the JavaScript URL should be allowed or denied execution + // based on the content of any user-submitted data. + bool canEvaluateJavaScriptURL(const String& code) const; + // Determines whether the event listener should be created based on the // content of any user-submitted data. bool canCreateInlineEventListener(const String& functionName, const String& code) const; // Determines whether the external script should be loaded based on the // content of any user-submitted data. - bool canLoadExternalScriptFromSrc(const String& url) const; + bool canLoadExternalScriptFromSrc(const String& context, const String& url) const; // Determines whether object should be loaded based on the content of // any user-submitted data. @@ -88,12 +92,24 @@ namespace WebCore { // This method is called by FrameLoader::requestObject. bool canLoadObject(const String& url) const; + // Determines whether the base URL should be changed based on the content + // of any user-submitted data. + // + // This method is called by HTMLBaseElement::process. + bool canSetBaseElementURL(const String& url) const; + private: - static String decodeURL(const String& url, const TextEncoding& encoding = UTF8Encoding(), bool allowControlCharacters = false); + static String decodeURL(const String& url, const TextEncoding& encoding = UTF8Encoding(), bool allowNullCharacters = false, + bool allowNonNullControlCharacters = true, bool decodeHTMLentities = true, + bool leaveUndecodableHTMLEntitiesUntouched = false); + + static String decodeHTMLEntities(const String&, bool leaveUndecodableHTMLEntitiesUntouched = false); - bool findInRequest(const String&) const; + bool findInRequest(const String&, bool matchNullCharacters = true, bool matchNonNullControlCharacters = true, + bool decodeHTMLentities = true, bool leaveUndecodableHTMLEntitiesUntouched = false) const; - bool findInRequest(Frame*, const String&) const; + bool findInRequest(Frame*, const String&, bool matchNullCharacters = true, bool matchNonNullControlCharacters = true, + bool decodeHTMLentities = true, bool leaveUndecodableHTMLEntitiesUntouched = false) const; // The frame to audit. Frame* m_frame; diff --git a/src/3rdparty/webkit/WebCore/page/android/DragControllerAndroid.cpp b/src/3rdparty/webkit/WebCore/page/android/DragControllerAndroid.cpp index 94c1cbb..19d02c6 100644 --- a/src/3rdparty/webkit/WebCore/page/android/DragControllerAndroid.cpp +++ b/src/3rdparty/webkit/WebCore/page/android/DragControllerAndroid.cpp @@ -44,7 +44,7 @@ DragOperation DragController::dragOperation(DragData* dragData) if (dragData->containsURL()) return DragOperationCopy; - return DragOperationNone; + return DragOperationNone; } const float DragController::DragImageAlpha = 1.0f; diff --git a/src/3rdparty/webkit/WebCore/page/android/EventHandlerAndroid.cpp b/src/3rdparty/webkit/WebCore/page/android/EventHandlerAndroid.cpp index 2464429..c6bce4f 100644 --- a/src/3rdparty/webkit/WebCore/page/android/EventHandlerAndroid.cpp +++ b/src/3rdparty/webkit/WebCore/page/android/EventHandlerAndroid.cpp @@ -41,7 +41,7 @@ namespace WebCore { unsigned EventHandler::s_accessKeyModifiers = PlatformKeyboardEvent::AltKey; -bool EventHandler::tabsToAllControls(KeyboardEvent* ) const +bool EventHandler::tabsToAllControls(KeyboardEvent*) const { return true; } @@ -75,7 +75,7 @@ bool EventHandler::passMouseDownEventToWidget(Widget* ) return false; } -bool EventHandler::eventActivatedView(const PlatformMouseEvent& ) const +bool EventHandler::eventActivatedView(const PlatformMouseEvent&) const { notImplemented(); return false; diff --git a/src/3rdparty/webkit/WebCore/page/animation/AnimationBase.cpp b/src/3rdparty/webkit/WebCore/page/animation/AnimationBase.cpp index 7b8a189..a4916e9 100644 --- a/src/3rdparty/webkit/WebCore/page/animation/AnimationBase.cpp +++ b/src/3rdparty/webkit/WebCore/page/animation/AnimationBase.cpp @@ -1041,7 +1041,7 @@ void AnimationBase::getTimeToNextEvent(double& time, bool& isLooping) const double nextIterationTime = m_totalDuration; if (m_totalDuration < 0 || elapsedDuration < m_totalDuration) { - durationLeft = m_animation->duration() - fmod(elapsedDuration, m_animation->duration()); + durationLeft = m_animation->duration() > 0 ? (m_animation->duration() - fmod(elapsedDuration, m_animation->duration())) : 0; nextIterationTime = elapsedDuration + durationLeft; } diff --git a/src/3rdparty/webkit/WebCore/page/animation/AnimationController.cpp b/src/3rdparty/webkit/WebCore/page/animation/AnimationController.cpp index 58a1f5b..ed241e1 100644 --- a/src/3rdparty/webkit/WebCore/page/animation/AnimationController.cpp +++ b/src/3rdparty/webkit/WebCore/page/animation/AnimationController.cpp @@ -136,9 +136,9 @@ void AnimationControllerPrivate::updateStyleIfNeededDispatcherFired(Timer<Animat Vector<EventToDispatch>::const_iterator eventsToDispatchEnd = m_eventsToDispatch.end(); for (Vector<EventToDispatch>::const_iterator it = m_eventsToDispatch.begin(); it != eventsToDispatchEnd; ++it) { if (it->eventType == eventNames().webkitTransitionEndEvent) - it->element->dispatchWebKitTransitionEvent(it->eventType,it->name, it->elapsedTime); + it->element->dispatchWebKitTransitionEvent(it->eventType, it->name, it->elapsedTime); else - it->element->dispatchWebKitAnimationEvent(it->eventType,it->name, it->elapsedTime); + it->element->dispatchWebKitAnimationEvent(it->eventType, it->name, it->elapsedTime); } m_eventsToDispatch.clear(); @@ -152,20 +152,6 @@ void AnimationControllerPrivate::updateStyleIfNeededDispatcherFired(Timer<Animat if (m_frame) m_frame->document()->updateStyleIfNeeded(); - - // We can now safely remove any animations or transitions that are finished. - // We can't remove them any earlier because we might get a false restart of - // a transition. This can happen because we have not yet set the final property - // value until we call the rendering dispatcher. So this can make the current - // style slightly different from the desired final style (because our last - // animation step was, say 0.9999 or something). And we need to remove them - // here because if there are no more animations running we'll never get back - // into the animation code to clean them up. - RenderObjectAnimationMap::const_iterator animationsEnd = m_compositeAnimations.end(); - for (RenderObjectAnimationMap::const_iterator it = m_compositeAnimations.begin(); it != animationsEnd; ++it) { - CompositeAnimation* compAnim = it->second.get(); - compAnim->cleanupFinishedAnimations(); // will not modify m_compositeAnimations, so OK to call while iterating - } } void AnimationControllerPrivate::startUpdateStyleIfNeededDispatcher() diff --git a/src/3rdparty/webkit/WebCore/page/animation/CompositeAnimation.cpp b/src/3rdparty/webkit/WebCore/page/animation/CompositeAnimation.cpp index b03dfe3..9481b8d 100644 --- a/src/3rdparty/webkit/WebCore/page/animation/CompositeAnimation.cpp +++ b/src/3rdparty/webkit/WebCore/page/animation/CompositeAnimation.cpp @@ -117,7 +117,10 @@ void CompositeAnimation::updateTransitions(RenderObject* renderer, RenderStyle* bool equal = true; if (implAnim) { - implAnim->setActive(true); + // If we are post active don't bother setting the active flag. This will cause + // this animation to get removed at the end of this function. + if (!implAnim->postActive()) + implAnim->setActive(true); // This might be a transition that is just finishing. That would be the case // if it were postActive. But we still need to check for equality because @@ -183,52 +186,62 @@ void CompositeAnimation::updateKeyframeAnimations(RenderObject* renderer, Render if (m_keyframeAnimations.isEmpty() && !targetStyle->hasAnimations()) return; - // Nothing to do if the current and target animations are the same - if (currentStyle && currentStyle->hasAnimations() && targetStyle->hasAnimations() && *(currentStyle->animations()) == *(targetStyle->animations())) - return; - - // Mark all existing animations as no longer active AnimationNameMap::const_iterator kfend = m_keyframeAnimations.end(); - for (AnimationNameMap::const_iterator it = m_keyframeAnimations.begin(); it != kfend; ++it) - it->second->setIndex(-1); - - // Toss the animation order map - m_keyframeAnimationOrderMap.clear(); - // Now mark any still active animations as active and add any new animations - if (targetStyle->animations()) { - int numAnims = targetStyle->animations()->size(); - for (int i = 0; i < numAnims; ++i) { - const Animation* anim = targetStyle->animations()->animation(i); - AtomicString animationName(anim->name()); - - if (!anim->isValidAnimation()) - continue; + if (currentStyle && currentStyle->hasAnimations() && targetStyle->hasAnimations() && *(currentStyle->animations()) == *(targetStyle->animations())) { + // The current and target animations are the same so we just need to toss any + // animation which is finished (postActive). + for (AnimationNameMap::const_iterator it = m_keyframeAnimations.begin(); it != kfend; ++it) { + if (it->second->postActive()) + it->second->setIndex(-1); + } + } else { + // Mark all existing animations as no longer active. + for (AnimationNameMap::const_iterator it = m_keyframeAnimations.begin(); it != kfend; ++it) + it->second->setIndex(-1); - // See if there is a current animation for this name - RefPtr<KeyframeAnimation> keyframeAnim = m_keyframeAnimations.get(animationName.impl()); + // Toss the animation order map. + m_keyframeAnimationOrderMap.clear(); + + // Now mark any still active animations as active and add any new animations. + if (targetStyle->animations()) { + int numAnims = targetStyle->animations()->size(); + for (int i = 0; i < numAnims; ++i) { + const Animation* anim = targetStyle->animations()->animation(i); + AtomicString animationName(anim->name()); + + if (!anim->isValidAnimation()) + continue; + + // See if there is a current animation for this name. + RefPtr<KeyframeAnimation> keyframeAnim = m_keyframeAnimations.get(animationName.impl()); + + if (keyframeAnim) { + // If this animation is postActive, skip it so it gets removed at the end of this function. + if (keyframeAnim->postActive()) + continue; + + // This one is still active. + + // Animations match, but play states may differ. Update if needed. + keyframeAnim->updatePlayState(anim->playState() == AnimPlayStatePlaying); + + // Set the saved animation to this new one, just in case the play state has changed. + keyframeAnim->setAnimation(anim); + keyframeAnim->setIndex(i); + } else if ((anim->duration() || anim->delay()) && anim->iterationCount()) { + keyframeAnim = KeyframeAnimation::create(const_cast<Animation*>(anim), renderer, i, this, currentStyle ? currentStyle : targetStyle); + m_keyframeAnimations.set(keyframeAnim->name().impl(), keyframeAnim); + } - if (keyframeAnim) { - // There is one so it is still active - - // Animations match, but play states may differ. update if needed - keyframeAnim->updatePlayState(anim->playState() == AnimPlayStatePlaying); - - // Set the saved animation to this new one, just in case the play state has changed - keyframeAnim->setAnimation(anim); - keyframeAnim->setIndex(i); - } else if ((anim->duration() || anim->delay()) && anim->iterationCount()) { - keyframeAnim = KeyframeAnimation::create(const_cast<Animation*>(anim), renderer, i, this, currentStyle ? currentStyle : targetStyle); - m_keyframeAnimations.set(keyframeAnim->name().impl(), keyframeAnim); + // Add this to the animation order map. + if (keyframeAnim) + m_keyframeAnimationOrderMap.append(keyframeAnim->name().impl()); } - - // Add this to the animation order map - if (keyframeAnim) - m_keyframeAnimationOrderMap.append(keyframeAnim->name().impl()); } } - - // Make a list of animations to be removed + + // Make a list of animations to be removed. Vector<AtomicStringImpl*> animsToBeRemoved; kfend = m_keyframeAnimations.end(); for (AnimationNameMap::const_iterator it = m_keyframeAnimations.begin(); it != kfend; ++it) { @@ -237,7 +250,7 @@ void CompositeAnimation::updateKeyframeAnimations(RenderObject* renderer, Render animsToBeRemoved.append(keyframeAnim->name().impl()); } - // Now remove the animations from the list + // Now remove the animations from the list. for (size_t j = 0; j < animsToBeRemoved.size(); ++j) m_keyframeAnimations.remove(animsToBeRemoved[j]); } @@ -246,11 +259,9 @@ PassRefPtr<RenderStyle> CompositeAnimation::animate(RenderObject* renderer, Rend { RefPtr<RenderStyle> resultStyle; - // Update animations first so we can see if any transitions are overridden - updateKeyframeAnimations(renderer, currentStyle, targetStyle); - - // We don't do any transitions if we don't have a currentStyle (on startup) + // We don't do any transitions if we don't have a currentStyle (on startup). updateTransitions(renderer, currentStyle, targetStyle); + updateKeyframeAnimations(renderer, currentStyle, targetStyle); if (currentStyle) { // Now that we have transition objects ready, let them know about the new goal state. We want them @@ -272,8 +283,6 @@ PassRefPtr<RenderStyle> CompositeAnimation::animate(RenderObject* renderer, Rend keyframeAnim->animate(this, renderer, currentStyle, targetStyle, resultStyle); } - cleanupFinishedAnimations(); - return resultStyle ? resultStyle.release() : targetStyle; } @@ -364,50 +373,6 @@ PassRefPtr<KeyframeAnimation> CompositeAnimation::getAnimationForProperty(int pr return retval; } -void CompositeAnimation::cleanupFinishedAnimations() -{ - if (isSuspended()) - return; - - // Make a list of transitions to be deleted - Vector<int> finishedTransitions; - if (!m_transitions.isEmpty()) { - CSSPropertyTransitionsMap::const_iterator transitionsEnd = m_transitions.end(); - - for (CSSPropertyTransitionsMap::const_iterator it = m_transitions.begin(); it != transitionsEnd; ++it) { - ImplicitAnimation* anim = it->second.get(); - if (!anim) - continue; - if (anim->postActive()) - finishedTransitions.append(anim->animatingProperty()); - } - - // Delete them - size_t finishedTransitionCount = finishedTransitions.size(); - for (size_t i = 0; i < finishedTransitionCount; ++i) - m_transitions.remove(finishedTransitions[i]); - } - - // Make a list of animations to be deleted - Vector<AtomicStringImpl*> finishedAnimations; - if (!m_keyframeAnimations.isEmpty()) { - AnimationNameMap::const_iterator animationsEnd = m_keyframeAnimations.end(); - - for (AnimationNameMap::const_iterator it = m_keyframeAnimations.begin(); it != animationsEnd; ++it) { - KeyframeAnimation* anim = it->second.get(); - if (!anim) - continue; - if (anim->postActive()) - finishedAnimations.append(anim->name().impl()); - } - - // Delete them - size_t finishedAnimationCount = finishedAnimations.size(); - for (size_t i = 0; i < finishedAnimationCount; ++i) - m_keyframeAnimations.remove(finishedAnimations[i]); - } -} - void CompositeAnimation::suspendAnimations() { if (m_isSuspended) diff --git a/src/3rdparty/webkit/WebCore/page/animation/CompositeAnimation.h b/src/3rdparty/webkit/WebCore/page/animation/CompositeAnimation.h index 739cfdc..b7db442 100644 --- a/src/3rdparty/webkit/WebCore/page/animation/CompositeAnimation.h +++ b/src/3rdparty/webkit/WebCore/page/animation/CompositeAnimation.h @@ -74,8 +74,6 @@ public: PassRefPtr<KeyframeAnimation> getAnimationForProperty(int property) const; - void cleanupFinishedAnimations(); - void overrideImplicitAnimations(int property); void resumeOverriddenImplicitAnimations(int property); diff --git a/src/3rdparty/webkit/WebCore/page/animation/ImplicitAnimation.cpp b/src/3rdparty/webkit/WebCore/page/animation/ImplicitAnimation.cpp index 8edcd5a..8e6349d 100644 --- a/src/3rdparty/webkit/WebCore/page/animation/ImplicitAnimation.cpp +++ b/src/3rdparty/webkit/WebCore/page/animation/ImplicitAnimation.cpp @@ -212,6 +212,10 @@ bool ImplicitAnimation::affectsProperty(int property) const bool ImplicitAnimation::isTargetPropertyEqual(int prop, const RenderStyle* targetStyle) { + // We can get here for a transition that has not started yet. This would make m_toStyle unset and null. + // So we check that here (see <https://bugs.webkit.org/show_bug.cgi?id=26706>) + if (!m_toStyle) + return false; return propertiesEqual(prop, m_toStyle.get(), targetStyle); } diff --git a/src/3rdparty/webkit/WebCore/page/qt/DragControllerQt.cpp b/src/3rdparty/webkit/WebCore/page/qt/DragControllerQt.cpp index 1fe56b4..e6c7682 100644 --- a/src/3rdparty/webkit/WebCore/page/qt/DragControllerQt.cpp +++ b/src/3rdparty/webkit/WebCore/page/qt/DragControllerQt.cpp @@ -31,8 +31,7 @@ #include "FrameView.h" #include "Page.h" -namespace WebCore -{ +namespace WebCore { // FIXME: These values are straight out of DragControllerMac, so probably have // little correlation with Qt standards... diff --git a/src/3rdparty/webkit/WebCore/page/win/DragControllerWin.cpp b/src/3rdparty/webkit/WebCore/page/win/DragControllerWin.cpp index dca8ea2..f0404ff 100644 --- a/src/3rdparty/webkit/WebCore/page/win/DragControllerWin.cpp +++ b/src/3rdparty/webkit/WebCore/page/win/DragControllerWin.cpp @@ -50,7 +50,8 @@ DragOperation DragController::dragOperation(DragData* dragData) return dragData->containsURL() && !m_didInitiateDrag ? DragOperationCopy : DragOperationNone; } -bool DragController::isCopyKeyDown() { +bool DragController::isCopyKeyDown() +{ return ::GetAsyncKeyState(VK_CONTROL); } diff --git a/src/3rdparty/webkit/WebCore/page/win/FrameWin.h b/src/3rdparty/webkit/WebCore/page/win/FrameWin.h index 405c7b2..2924291 100644 --- a/src/3rdparty/webkit/WebCore/page/win/FrameWin.h +++ b/src/3rdparty/webkit/WebCore/page/win/FrameWin.h @@ -34,7 +34,7 @@ typedef struct HBITMAP__* HBITMAP; namespace WebCore { HBITMAP imageFromSelection(Frame* frame, bool forceWhiteText); - void computePageRectsForFrame(Frame*, const IntRect& printRect, float headerHeight, float footerHeight, float userScaleFactor,Vector<IntRect>& pages, int& pageHeight); + void computePageRectsForFrame(Frame*, const IntRect& printRect, float headerHeight, float footerHeight, float userScaleFactor, Vector<IntRect>& pages, int& pageHeight); } diff --git a/src/3rdparty/webkit/WebCore/platform/CrossThreadCopier.h b/src/3rdparty/webkit/WebCore/platform/CrossThreadCopier.h index e7b4c0e..d12d72d 100644 --- a/src/3rdparty/webkit/WebCore/platform/CrossThreadCopier.h +++ b/src/3rdparty/webkit/WebCore/platform/CrossThreadCopier.h @@ -32,6 +32,7 @@ #define CrossThreadCopier_h #include <memory> +#include <wtf/PassOwnPtr.h> #include <wtf/PassRefPtr.h> #include <wtf/RefPtr.h> #include <wtf/Threading.h> @@ -73,6 +74,14 @@ namespace WebCore { } }; + template<typename T> struct CrossThreadCopierBase<false, PassOwnPtr<T> > { + typedef PassOwnPtr<T> Type; + static Type copy(const PassOwnPtr<T>& ownPtr) + { + return PassOwnPtr<T>(static_cast<T*>(ownPtr.release())); + } + }; + template<typename T> struct CrossThreadCopierBase<false, std::auto_ptr<T> > { typedef std::auto_ptr<T> Type; static Type copy(const std::auto_ptr<T>& autoPtr) diff --git a/src/3rdparty/webkit/WebCore/platform/DragImage.h b/src/3rdparty/webkit/WebCore/platform/DragImage.h index 744e450..a9039db 100644 --- a/src/3rdparty/webkit/WebCore/platform/DragImage.h +++ b/src/3rdparty/webkit/WebCore/platform/DragImage.h @@ -46,6 +46,8 @@ typedef struct HBITMAP__* HBITMAP; class wxDragImage; #elif PLATFORM(CHROMIUM) #include "DragImageRef.h" +#elif PLATFORM(GTK) +typedef struct _GdkPixbuf GdkPixbuf; #endif //We need to #define YOffset as it needs to be shared with WebKit @@ -69,7 +71,7 @@ namespace WebCore { #elif PLATFORM(WX) typedef wxDragImage* DragImageRef; #elif PLATFORM(GTK) - typedef void* DragImageRef; + typedef GdkPixbuf* DragImageRef; #endif IntSize dragImageSize(DragImageRef); diff --git a/src/3rdparty/webkit/WebCore/platform/FileSystem.h b/src/3rdparty/webkit/WebCore/platform/FileSystem.h index 16afe8f..e23b6da 100644 --- a/src/3rdparty/webkit/WebCore/platform/FileSystem.h +++ b/src/3rdparty/webkit/WebCore/platform/FileSystem.h @@ -53,7 +53,7 @@ typedef const struct __CFData* CFDataRef; -#if PLATFORM(WIN) +#if PLATFORM(WIN_OS) // These are to avoid including <winbase.h> in a header for Chromium typedef void *HANDLE; // Assuming STRICT @@ -65,13 +65,15 @@ namespace WebCore { class CString; -#if PLATFORM(WIN) -typedef HANDLE PlatformFileHandle; -typedef HMODULE PlatformModule; -// FIXME: -1 is INVALID_HANDLE_VALUE, defined in <winbase.h>. Chromium tries to -// avoid using Windows headers in headers. We'd rather move this into the .cpp. -const PlatformFileHandle invalidPlatformFileHandle = reinterpret_cast<HANDLE>(-1); +#if PLATFORM(QT) +typedef QFile* PlatformFileHandle; +const PlatformFileHandle invalidPlatformFileHandle = 0; +#if defined(Q_WS_MAC) +typedef CFBundleRef PlatformModule; +typedef unsigned PlatformModuleVersion; +#elif defined(Q_OS_WIN) +typedef HMODULE PlatformModule; struct PlatformModuleVersion { unsigned leastSig; unsigned mostSig; @@ -89,15 +91,18 @@ struct PlatformModuleVersion { } }; -#elif PLATFORM(QT) - -typedef QFile* PlatformFileHandle; -const PlatformFileHandle invalidPlatformFileHandle = 0; -#if defined(Q_WS_MAC) -typedef CFBundleRef PlatformModule; +#else +typedef QLibrary* PlatformModule; typedef unsigned PlatformModuleVersion; -#elif defined(Q_OS_WIN) +#endif + +#elif PLATFORM(WIN_OS) +typedef HANDLE PlatformFileHandle; typedef HMODULE PlatformModule; +// FIXME: -1 is INVALID_HANDLE_VALUE, defined in <winbase.h>. Chromium tries to +// avoid using Windows headers in headers. We'd rather move this into the .cpp. +const PlatformFileHandle invalidPlatformFileHandle = reinterpret_cast<HANDLE>(-1); + struct PlatformModuleVersion { unsigned leastSig; unsigned mostSig; @@ -116,11 +121,6 @@ struct PlatformModuleVersion { }; #else -typedef QLibrary* PlatformModule; -typedef unsigned PlatformModuleVersion; -#endif - -#else typedef int PlatformFileHandle; #if PLATFORM(GTK) typedef GModule* PlatformModule; diff --git a/src/3rdparty/webkit/WebCore/platform/LocalizedStrings.h b/src/3rdparty/webkit/WebCore/platform/LocalizedStrings.h index b6ec878..7c586d3 100644 --- a/src/3rdparty/webkit/WebCore/platform/LocalizedStrings.h +++ b/src/3rdparty/webkit/WebCore/platform/LocalizedStrings.h @@ -132,6 +132,9 @@ namespace WebCore { #endif String imageTitle(const String& filename, const IntSize& size); + + String mediaElementLoadingStateText(); + String mediaElementLiveBroadcastStateText(); } #endif diff --git a/src/3rdparty/webkit/WebCore/platform/ScrollView.cpp b/src/3rdparty/webkit/WebCore/platform/ScrollView.cpp index 9d3c128..ba6b61c 100644 --- a/src/3rdparty/webkit/WebCore/platform/ScrollView.cpp +++ b/src/3rdparty/webkit/WebCore/platform/ScrollView.cpp @@ -58,11 +58,12 @@ ScrollView::~ScrollView() platformDestroy(); } -void ScrollView::addChild(Widget* child) +void ScrollView::addChild(PassRefPtr<Widget> prpChild) { + Widget* child = prpChild.get(); ASSERT(child != this && !child->parent()); child->setParent(this); - m_children.add(child); + m_children.add(prpChild); if (child->platformWidget()) platformAddChild(child); } @@ -640,7 +641,7 @@ void ScrollView::setScrollbarsSuppressed(bool suppressed, bool repaintOnUnsuppre } } -Scrollbar* ScrollView::scrollbarUnderPoint(const IntPoint& windowPoint) +Scrollbar* ScrollView::scrollbarAtPoint(const IntPoint& windowPoint) { if (platformWidget()) return 0; @@ -709,8 +710,8 @@ void ScrollView::frameRectsChanged() if (platformWidget()) return; - HashSet<Widget*>::const_iterator end = m_children.end(); - for (HashSet<Widget*>::const_iterator current = m_children.begin(); current != end; ++current) + HashSet<RefPtr<Widget> >::const_iterator end = m_children.end(); + for (HashSet<RefPtr<Widget> >::const_iterator current = m_children.begin(); current != end; ++current) (*current)->frameRectsChanged(); } @@ -802,6 +803,39 @@ bool ScrollView::scrollbarCornerPresent() const (m_verticalScrollbar && height() - m_verticalScrollbar->height() > 0); } +IntRect ScrollView::convertFromScrollbarToContainingView(const Scrollbar* scrollbar, const IntRect& localRect) const +{ + // Scrollbars won't be transformed within us + IntRect newRect = localRect; + newRect.move(scrollbar->x(), scrollbar->y()); + return newRect; +} + +IntRect ScrollView::convertFromContainingViewToScrollbar(const Scrollbar* scrollbar, const IntRect& parentRect) const +{ + IntRect newRect = parentRect; + // Scrollbars won't be transformed within us + newRect.move(-scrollbar->x(), -scrollbar->y()); + return newRect; +} + +// FIXME: test these on windows +IntPoint ScrollView::convertFromScrollbarToContainingView(const Scrollbar* scrollbar, const IntPoint& localPoint) const +{ + // Scrollbars won't be transformed within us + IntPoint newPoint = localPoint; + newPoint.move(scrollbar->x(), scrollbar->y()); + return newPoint; +} + +IntPoint ScrollView::convertFromContainingViewToScrollbar(const Scrollbar* scrollbar, const IntPoint& parentPoint) const +{ + IntPoint newPoint = parentPoint; + // Scrollbars won't be transformed within us + newPoint.move(-scrollbar->x(), -scrollbar->y()); + return newPoint; +} + void ScrollView::setParentVisible(bool visible) { if (isParentVisible() == visible) @@ -812,8 +846,8 @@ void ScrollView::setParentVisible(bool visible) if (!isSelfVisible()) return; - HashSet<Widget*>::iterator end = m_children.end(); - for (HashSet<Widget*>::iterator it = m_children.begin(); it != end; ++it) + HashSet<RefPtr<Widget> >::iterator end = m_children.end(); + for (HashSet<RefPtr<Widget> >::iterator it = m_children.begin(); it != end; ++it) (*it)->setParentVisible(visible); } @@ -822,8 +856,8 @@ void ScrollView::show() if (!isSelfVisible()) { setSelfVisible(true); if (isParentVisible()) { - HashSet<Widget*>::iterator end = m_children.end(); - for (HashSet<Widget*>::iterator it = m_children.begin(); it != end; ++it) + HashSet<RefPtr<Widget> >::iterator end = m_children.end(); + for (HashSet<RefPtr<Widget> >::iterator it = m_children.begin(); it != end; ++it) (*it)->setParentVisible(true); } } @@ -835,8 +869,8 @@ void ScrollView::hide() { if (isSelfVisible()) { if (isParentVisible()) { - HashSet<Widget*>::iterator end = m_children.end(); - for (HashSet<Widget*>::iterator it = m_children.begin(); it != end; ++it) + HashSet<RefPtr<Widget> >::iterator end = m_children.end(); + for (HashSet<RefPtr<Widget> >::iterator it = m_children.begin(); it != end; ++it) (*it)->setParentVisible(false); } setSelfVisible(false); diff --git a/src/3rdparty/webkit/WebCore/platform/ScrollView.h b/src/3rdparty/webkit/WebCore/platform/ScrollView.h index 7f99a22..b950327 100644 --- a/src/3rdparty/webkit/WebCore/platform/ScrollView.h +++ b/src/3rdparty/webkit/WebCore/platform/ScrollView.h @@ -55,7 +55,6 @@ class Scrollbar; class ScrollView : public Widget, public ScrollbarClient { public: - ScrollView(); ~ScrollView(); // ScrollbarClient method. FrameView overrides the other two. @@ -69,8 +68,8 @@ public: virtual IntRect windowClipRect(bool clipToContents = true) const = 0; // Methods for child manipulation and inspection. - const HashSet<Widget*>* children() const { return &m_children; } - void addChild(Widget*); + const HashSet<RefPtr<Widget> >* children() const { return &m_children; } + void addChild(PassRefPtr<Widget>); void removeChild(Widget*); // If the scroll view does not use a native widget, then it will have cross-platform Scrollbars. These methods @@ -181,7 +180,7 @@ public: virtual void setFrameRect(const IntRect&); // For platforms that need to hit test scrollbars from within the engine's event handlers (like Win32). - Scrollbar* scrollbarUnderPoint(const IntPoint& windowPoint); + Scrollbar* scrollbarAtPoint(const IntPoint& windowPoint); // This method exists for scrollviews that need to handle wheel events manually. // On Mac the underlying NSScrollView just does the scrolling, but on other platforms @@ -221,7 +220,14 @@ public: virtual bool scrollbarCornerPresent() const; + virtual IntRect convertFromScrollbarToContainingView(const Scrollbar*, const IntRect&) const; + virtual IntRect convertFromContainingViewToScrollbar(const Scrollbar*, const IntRect&) const; + virtual IntPoint convertFromScrollbarToContainingView(const Scrollbar*, const IntPoint&) const; + virtual IntPoint convertFromContainingViewToScrollbar(const Scrollbar*, const IntPoint&) const; + protected: + ScrollView(); + virtual void repaintContentRectangle(const IntRect&, bool now = false); virtual void paintContents(GraphicsContext*, const IntRect& damageRect) = 0; @@ -239,7 +245,7 @@ private: ScrollbarMode m_verticalScrollbarMode; bool m_prohibitsScrolling; - HashSet<Widget*> m_children; + HashSet<RefPtr<Widget> > m_children; // This bool is unused on Mac OS because we directly ask the platform widget // whether it is safe to blit on scroll. diff --git a/src/3rdparty/webkit/WebCore/platform/Scrollbar.cpp b/src/3rdparty/webkit/WebCore/platform/Scrollbar.cpp index babf3d4..4574f63 100644 --- a/src/3rdparty/webkit/WebCore/platform/Scrollbar.cpp +++ b/src/3rdparty/webkit/WebCore/platform/Scrollbar.cpp @@ -449,9 +449,36 @@ void Scrollbar::invalidateRect(const IntRect& rect) m_client->invalidateScrollbarRect(this, rect); } -PlatformMouseEvent Scrollbar::transformEvent(const PlatformMouseEvent& event) +IntRect Scrollbar::convertToContainingView(const IntRect& localRect) const { - return event; + if (m_client) + return m_client->convertFromScrollbarToContainingView(this, localRect); + + return Widget::convertToContainingView(localRect); +} + +IntRect Scrollbar::convertFromContainingView(const IntRect& parentRect) const +{ + if (m_client) + return m_client->convertFromContainingViewToScrollbar(this, parentRect); + + return Widget::convertFromContainingView(parentRect); +} + +IntPoint Scrollbar::convertToContainingView(const IntPoint& localPoint) const +{ + if (m_client) + return m_client->convertFromScrollbarToContainingView(this, localPoint); + + return Widget::convertToContainingView(localPoint); +} + +IntPoint Scrollbar::convertFromContainingView(const IntPoint& parentPoint) const +{ + if (m_client) + return m_client->convertFromContainingViewToScrollbar(this, parentPoint); + + return Widget::convertFromContainingView(parentPoint); } } diff --git a/src/3rdparty/webkit/WebCore/platform/Scrollbar.h b/src/3rdparty/webkit/WebCore/platform/Scrollbar.h index 711ae36..67496f2 100644 --- a/src/3rdparty/webkit/WebCore/platform/Scrollbar.h +++ b/src/3rdparty/webkit/WebCore/platform/Scrollbar.h @@ -26,7 +26,6 @@ #ifndef Scrollbar_h #define Scrollbar_h -#include <wtf/RefCounted.h> #include "ScrollTypes.h" #include "Timer.h" #include "Widget.h" @@ -45,7 +44,7 @@ class PlatformMouseEvent; const int cScrollbarPixelsPerLineStep = 40; const int cAmountToKeepWhenPaging = 40; -class Scrollbar : public Widget, public RefCounted<Scrollbar> { +class Scrollbar : public Widget { protected: Scrollbar(ScrollbarClient*, ScrollbarOrientation, ScrollbarControlSize, ScrollbarTheme* = 0); @@ -110,10 +109,6 @@ public: bool contextMenu(const PlatformMouseEvent& event); #endif - // Takes an event and accounts for any transforms that might occur on the scrollbar. Returns - // a new event that has had all of the transforms applied. - PlatformMouseEvent transformEvent(const PlatformMouseEvent&); - ScrollbarTheme* theme() const { return m_theme; } virtual void setParent(ScrollView*); @@ -126,13 +121,19 @@ public: virtual void styleChanged() { } + virtual IntRect convertToContainingView(const IntRect&) const; + virtual IntRect convertFromContainingView(const IntRect&) const; + + virtual IntPoint convertToContainingView(const IntPoint&) const; + virtual IntPoint convertFromContainingView(const IntPoint&) const; + private: virtual bool isScrollbar() const { return true; } protected: virtual void updateThumbPosition(); virtual void updateThumbProportion(); - + void autoscrollTimerFired(Timer<Scrollbar>*); void startTimerIfNeeded(double delay); void stopTimerIfNeeded(); diff --git a/src/3rdparty/webkit/WebCore/platform/ScrollbarClient.h b/src/3rdparty/webkit/WebCore/platform/ScrollbarClient.h index f720e95..6efe72e 100644 --- a/src/3rdparty/webkit/WebCore/platform/ScrollbarClient.h +++ b/src/3rdparty/webkit/WebCore/platform/ScrollbarClient.h @@ -27,12 +27,11 @@ #define ScrollbarClient_h #include "IntRect.h" +#include "Scrollbar.h" #include <wtf/Vector.h> namespace WebCore { -class Scrollbar; - class ScrollbarClient { public: virtual ~ScrollbarClient() {} @@ -45,6 +44,29 @@ public: virtual bool scrollbarCornerPresent() const = 0; virtual void getTickmarks(Vector<IntRect>&) const { } + + // Convert points and rects between the scrollbar and its containing view. + // The client needs to implement these in order to be aware of layout effects + // like CSS transforms. + virtual IntRect convertFromScrollbarToContainingView(const Scrollbar* scrollbar, const IntRect& scrollbarRect) const + { + return scrollbar->Widget::convertToContainingView(scrollbarRect); + } + + virtual IntRect convertFromContainingViewToScrollbar(const Scrollbar* scrollbar, const IntRect& parentRect) const + { + return scrollbar->Widget::convertFromContainingView(parentRect); + } + + virtual IntPoint convertFromScrollbarToContainingView(const Scrollbar* scrollbar, const IntPoint& scrollbarPoint) const + { + return scrollbar->Widget::convertToContainingView(scrollbarPoint); + } + + virtual IntPoint convertFromContainingViewToScrollbar(const Scrollbar* scrollbar, const IntPoint& parentPoint) const + { + return scrollbar->Widget::convertFromContainingView(parentPoint); + } }; } diff --git a/src/3rdparty/webkit/WebCore/platform/Theme.h b/src/3rdparty/webkit/WebCore/platform/Theme.h index 5574bd7..f211576 100644 --- a/src/3rdparty/webkit/WebCore/platform/Theme.h +++ b/src/3rdparty/webkit/WebCore/platform/Theme.h @@ -106,7 +106,7 @@ public: virtual void inflateControlPaintRect(ControlPart, ControlStates, IntRect& /*zoomedRect*/, float /*zoomFactor*/) const { } // This method is called once, from RenderTheme::adjustDefaultStyleSheet(), to let each platform adjust - // the default CSS rules in html4.css. + // the default CSS rules in html.css. static String defaultStyleSheet(); private: diff --git a/src/3rdparty/webkit/WebCore/platform/ThemeTypes.h b/src/3rdparty/webkit/WebCore/platform/ThemeTypes.h index ae85a63..b763675 100644 --- a/src/3rdparty/webkit/WebCore/platform/ThemeTypes.h +++ b/src/3rdparty/webkit/WebCore/platform/ThemeTypes.h @@ -43,12 +43,15 @@ enum ControlState { typedef unsigned ControlStates; +// Must follow CSSValueKeywords.in order enum ControlPart { NoControlPart, CheckboxPart, RadioPart, PushButtonPart, SquareButtonPart, ButtonPart, ButtonBevelPart, DefaultButtonPart, ListboxPart, ListItemPart, MediaFullscreenButtonPart, MediaMuteButtonPart, MediaPlayButtonPart, MediaSeekBackButtonPart, - MediaSeekForwardButtonPart, MediaSliderPart, MediaSliderThumbPart, MediaTimelineContainerPart, - MediaCurrentTimePart, MediaTimeRemainingPart, + MediaSeekForwardButtonPart, MediaRewindButtonPart, MediaReturnToRealtimeButtonPart, + MediaSliderPart, + MediaSliderThumbPart, MediaControlsBackgroundPart, + MediaCurrentTimePart, MediaTimeRemainingPart, MenulistPart, MenulistButtonPart, MenulistTextPart, MenulistTextFieldPart, SliderHorizontalPart, SliderVerticalPart, SliderThumbHorizontalPart, SliderThumbVerticalPart, CaretPart, SearchFieldPart, SearchFieldDecorationPart, diff --git a/src/3rdparty/webkit/WebCore/platform/Widget.cpp b/src/3rdparty/webkit/WebCore/platform/Widget.cpp index a456431..5bb903b 100644 --- a/src/3rdparty/webkit/WebCore/platform/Widget.cpp +++ b/src/3rdparty/webkit/WebCore/platform/Widget.cpp @@ -69,42 +69,61 @@ void Widget::removeFromParent() parent()->removeChild(this); } -#if !PLATFORM(MAC) +IntRect Widget::convertFromContainingWindow(const IntRect& windowRect) const +{ + if (const ScrollView* parentScrollView = parent()) { + IntRect parentRect = parentScrollView->convertFromContainingWindow(windowRect); + return convertFromContainingView(parentRect); + } + return convertFromContainingWindowToRoot(this, windowRect); +} + +IntRect Widget::convertToContainingWindow(const IntRect& localRect) const +{ + if (const ScrollView* parentScrollView = parent()) { + IntRect parentRect = convertToContainingView(localRect); + return parentScrollView->convertToContainingWindow(parentRect); + } + return convertFromRootToContainingWindow(this, localRect); +} + +IntPoint Widget::convertFromContainingWindow(const IntPoint& windowPoint) const +{ + if (const ScrollView* parentScrollView = parent()) { + IntPoint parentPoint = parentScrollView->convertFromContainingWindow(windowPoint); + return convertFromContainingView(parentPoint); + } + return convertFromContainingWindowToRoot(this, windowPoint); +} -IntRect Widget::convertToContainingWindow(const IntRect& rect) const +IntPoint Widget::convertToContainingWindow(const IntPoint& localPoint) const { - IntRect convertedRect = rect; - convertedRect.setLocation(convertToContainingWindow(convertedRect.location())); - return convertedRect; + if (const ScrollView* parentScrollView = parent()) { + IntPoint parentPoint = convertToContainingView(localPoint); + return parentScrollView->convertToContainingWindow(parentPoint); + } + return convertFromRootToContainingWindow(this, localPoint); } -IntPoint Widget::convertToContainingWindow(const IntPoint& point) const +#if !PLATFORM(MAC) +IntRect Widget::convertFromRootToContainingWindow(const Widget*, const IntRect& rect) { - IntPoint windowPoint = point; - const Widget* childWidget = this; - for (const ScrollView* parentScrollView = parent(); - parentScrollView; - childWidget = parentScrollView, parentScrollView = parentScrollView->parent()) - windowPoint = parentScrollView->convertChildToSelf(childWidget, windowPoint); - return windowPoint; + return rect; } -IntPoint Widget::convertFromContainingWindow(const IntPoint& point) const +IntRect Widget::convertFromContainingWindowToRoot(const Widget*, const IntRect& rect) { - IntPoint widgetPoint = point; - const Widget* childWidget = this; - for (const ScrollView* parentScrollView = parent(); - parentScrollView; - childWidget = parentScrollView, parentScrollView = parentScrollView->parent()) - widgetPoint = parentScrollView->convertSelfToChild(childWidget, widgetPoint); - return widgetPoint; + return rect; } -IntRect Widget::convertFromContainingWindow(const IntRect& rect) const +IntPoint Widget::convertFromRootToContainingWindow(const Widget*, const IntPoint& point) { - IntRect result = rect; - result.setLocation(convertFromContainingWindow(rect.location())); - return result; + return point; +} + +IntPoint Widget::convertFromContainingWindowToRoot(const Widget*, const IntPoint& point) +{ + return point; } #endif @@ -118,4 +137,41 @@ void Widget::retainPlatformWidget() } #endif +IntRect Widget::convertToContainingView(const IntRect& localRect) const +{ + if (const ScrollView* parentScrollView = parent()) { + IntRect parentRect(localRect); + parentRect.setLocation(parentScrollView->convertChildToSelf(this, localRect.location())); + return parentRect; + } + return localRect; } + +IntRect Widget::convertFromContainingView(const IntRect& parentRect) const +{ + if (const ScrollView* parentScrollView = parent()) { + IntRect localRect = parentRect; + localRect.setLocation(parentScrollView->convertSelfToChild(this, localRect.location())); + return localRect; + } + + return parentRect; +} + +IntPoint Widget::convertToContainingView(const IntPoint& localPoint) const +{ + if (const ScrollView* parentScrollView = parent()) + return parentScrollView->convertChildToSelf(this, localPoint); + + return localPoint; +} + +IntPoint Widget::convertFromContainingView(const IntPoint& parentPoint) const +{ + if (const ScrollView* parentScrollView = parent()) + return parentScrollView->convertSelfToChild(this, parentPoint); + + return parentPoint; +} + +} // namespace WebCore diff --git a/src/3rdparty/webkit/WebCore/platform/Widget.h b/src/3rdparty/webkit/WebCore/platform/Widget.h index b6c0054..5fd18fa 100644 --- a/src/3rdparty/webkit/WebCore/platform/Widget.h +++ b/src/3rdparty/webkit/WebCore/platform/Widget.h @@ -73,6 +73,8 @@ typedef wxWindow* PlatformWidget; #include "IntRect.h" #include "IntSize.h" +#include <wtf/RefCounted.h> + namespace WebCore { class Cursor; @@ -81,7 +83,6 @@ class Font; class GraphicsContext; class PlatformMouseEvent; class ScrollView; -class WidgetClient; class WidgetPrivate; // The Widget class serves as a base class for three kinds of objects: @@ -99,11 +100,11 @@ class WidgetPrivate; // Scrollbar - Mac, Gtk // Plugin - Mac, Windows (windowed only), Qt (windowed only, widget is an HWND on windows), Gtk (windowed only) // -class Widget { +class Widget : public RefCounted<Widget> { public: Widget(PlatformWidget = 0); virtual ~Widget(); - + PlatformWidget platformWidget() const { return m_widget; } void setPlatformWidget(PlatformWidget widget) { @@ -164,9 +165,10 @@ public: // up with an inaccurate rect. Always make sure to use the rect-based convertFromContainingWindow method // when converting window rects. IntRect convertToContainingWindow(const IntRect&) const; - IntPoint convertToContainingWindow(const IntPoint&) const; - IntPoint convertFromContainingWindow(const IntPoint&) const; // See comment above about when not to use this method. IntRect convertFromContainingWindow(const IntRect&) const; + + IntPoint convertToContainingWindow(const IntPoint&) const; + IntPoint convertFromContainingWindow(const IntPoint&) const; virtual void frameRectsChanged() {} @@ -179,12 +181,26 @@ public: void removeFromSuperview(); #endif + // Virtual methods to convert points to/from the containing ScrollView + virtual IntRect convertToContainingView(const IntRect&) const; + virtual IntRect convertFromContainingView(const IntRect&) const; + virtual IntPoint convertToContainingView(const IntPoint&) const; + virtual IntPoint convertFromContainingView(const IntPoint&) const; + private: void init(PlatformWidget); // Must be called by all Widget constructors to initialize cross-platform data. void releasePlatformWidget(); void retainPlatformWidget(); + // These methods are used to convert from the root widget to the containing window, + // which has behavior that may differ between platforms (e.g. Mac uses flipped window coordinates). + static IntRect convertFromRootToContainingWindow(const Widget* rootWidget, const IntRect&); + static IntRect convertFromContainingWindowToRoot(const Widget* rootWidget, const IntRect&); + + static IntPoint convertFromRootToContainingWindow(const Widget* rootWidget, const IntPoint&); + static IntPoint convertFromContainingWindowToRoot(const Widget* rootWidget, const IntPoint&); + private: ScrollView* m_parent; PlatformWidget m_widget; diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/BitmapImage.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/BitmapImage.cpp index 8933d7b..32aefc9 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/BitmapImage.cpp +++ b/src/3rdparty/webkit/WebCore/platform/graphics/BitmapImage.cpp @@ -86,7 +86,7 @@ void BitmapImage::destroyDecodedData(bool destroyAll) destroyMetadataAndNotify(framesCleared); - m_source.clear(destroyAll, clearBeforeFrame, m_data.get(), m_allDataReceived); + m_source.clear(destroyAll, clearBeforeFrame, data(), m_allDataReceived); return; } @@ -163,7 +163,7 @@ bool BitmapImage::dataChanged(bool allDataReceived) // Feed all the data we've seen so far to the image decoder. m_allDataReceived = allDataReceived; - m_source.setData(m_data.get(), allDataReceived); + m_source.setData(data(), allDataReceived); // Clear the frame count. m_haveFrameCount = false; diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/Color.h b/src/3rdparty/webkit/WebCore/platform/graphics/Color.h index 032d0cb..7ac432f 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/Color.h +++ b/src/3rdparty/webkit/WebCore/platform/graphics/Color.h @@ -145,7 +145,6 @@ inline bool operator!=(const Color& a, const Color& b) return !(a == b); } -Color focusRingColor(); Color colorFromPremultipliedARGB(unsigned); unsigned premultipliedARGBFromColor(const Color&); diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/GraphicsLayer.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/GraphicsLayer.cpp index 0c442a2..2b85bfa 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/GraphicsLayer.cpp +++ b/src/3rdparty/webkit/WebCore/platform/graphics/GraphicsLayer.cpp @@ -193,6 +193,7 @@ GraphicsLayer::GraphicsLayer(GraphicsLayerClient* client) , m_masksToBounds(false) , m_drawsContent(false) , m_paintingPhase(GraphicsLayerPaintAllMask) + , m_contentsOrientation(CompositingCoordinatesTopDown) , m_parent(0) #ifndef NDEBUG , m_repaintCount(0) diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/GraphicsLayer.h b/src/3rdparty/webkit/WebCore/platform/graphics/GraphicsLayer.h index ae51951..9407563 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/GraphicsLayer.h +++ b/src/3rdparty/webkit/WebCore/platform/graphics/GraphicsLayer.h @@ -293,6 +293,14 @@ public: enum CompositingCoordinatesOrientation { CompositingCoordinatesTopDown, CompositingCoordinatesBottomUp }; static CompositingCoordinatesOrientation compositingCoordinatesOrientation(); + // Set the geometry orientation (top-down, or bottom-up) for this layer, which also controls sublayer geometry. + virtual void setGeometryOrientation(CompositingCoordinatesOrientation) { } + virtual CompositingCoordinatesOrientation geometryOrientation() const { return CompositingCoordinatesTopDown; } + + // Flippedness of the contents of this layer. Does not affect sublayer geometry. + virtual void setContentsOrientation(CompositingCoordinatesOrientation orientation) { m_contentsOrientation = orientation; } + virtual CompositingCoordinatesOrientation contentsOrientation() const { return m_contentsOrientation; } + #ifndef NDEBUG static bool showDebugBorders(); static bool showRepaintCounter(); @@ -348,6 +356,7 @@ protected: bool m_drawsContent : 1; GraphicsLayerPaintingPhase m_paintingPhase; + CompositingCoordinatesOrientation m_contentsOrientation; Vector<GraphicsLayer*> m_children; GraphicsLayer* m_parent; diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/Image.h b/src/3rdparty/webkit/WebCore/platform/graphics/Image.h index bb61043c..c0d07c9 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/Image.h +++ b/src/3rdparty/webkit/WebCore/platform/graphics/Image.h @@ -31,9 +31,9 @@ #include "GraphicsTypes.h" #include "ImageSource.h" #include "IntRect.h" -#include <wtf/RefPtr.h> -#include <wtf/PassRefPtr.h> #include "SharedBuffer.h" +#include <wtf/PassRefPtr.h> +#include <wtf/RefPtr.h> #if PLATFORM(MAC) #ifdef __OBJC__ @@ -67,13 +67,13 @@ typedef struct _GdkPixbuf GdkPixbuf; namespace WebCore { -class TransformationMatrix; class FloatPoint; class FloatRect; class FloatSize; class GraphicsContext; class SharedBuffer; class String; +class TransformationMatrix; // This class gets notified when an image creates or destroys decoded frames and when it advances animation frames. class ImageObserver; @@ -81,6 +81,7 @@ class ImageObserver; class Image : public RefCounted<Image> { friend class GeneratedImage; friend class GraphicsContext; + public: virtual ~Image(); @@ -168,13 +169,8 @@ protected: virtual void drawPattern(GraphicsContext*, const FloatRect& srcRect, const TransformationMatrix& patternTransform, const FloatPoint& phase, CompositeOperator, const FloatRect& destRect); -#if PLATFORM(CG) - // These are private to CG. Ideally they would be only in the .cpp file, but the callback requires access - // to the private function nativeImageForCurrentFrame() - static void drawPatternCallback(void* info, CGContext*); -#endif - -protected: + +private: RefPtr<SharedBuffer> m_data; // The encoded raw data for the image. ImageObserver* m_imageObserver; }; diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/IntPoint.h b/src/3rdparty/webkit/WebCore/platform/graphics/IntPoint.h index 1cae191..21af67b 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/IntPoint.h +++ b/src/3rdparty/webkit/WebCore/platform/graphics/IntPoint.h @@ -80,6 +80,7 @@ public: void setX(int x) { m_x = x; } void setY(int y) { m_y = y; } + void move(const IntSize& s) { move(s.width(), s.height()); } void move(int dx, int dy) { m_x += dx; m_y += dy; } IntPoint expandedTo(const IntPoint& other) const diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/MediaPlayer.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/MediaPlayer.cpp index a277675..21ce22d 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/MediaPlayer.cpp +++ b/src/3rdparty/webkit/WebCore/platform/graphics/MediaPlayer.cpp @@ -437,6 +437,11 @@ void MediaPlayer::paint(GraphicsContext* p, const IntRect& r) m_private->paint(p, r); } +void MediaPlayer::paintCurrentFrameInContext(GraphicsContext* p, const IntRect& r) +{ + m_private->paintCurrentFrameInContext(p, r); +} + MediaPlayer::SupportsType MediaPlayer::supportsType(ContentType contentType) { String type = contentType.type(); @@ -490,6 +495,17 @@ bool MediaPlayer::supportsAcceleratedRendering() const } #endif // USE(ACCELERATED_COMPOSITING) +bool MediaPlayer::hasSingleSecurityOrigin() const +{ + return m_private->hasSingleSecurityOrigin(); +} + +MediaPlayer::MovieLoadType MediaPlayer::movieLoadType() const +{ + return m_private->movieLoadType(); +} + +// Client callbacks. void MediaPlayer::networkStateChanged() { if (m_mediaPlayerClient) @@ -538,10 +554,6 @@ void MediaPlayer::rateChanged() m_mediaPlayerClient->mediaPlayerRateChanged(this); } -bool MediaPlayer::hasSingleSecurityOrigin() const -{ - return m_private->hasSingleSecurityOrigin(); } -} #endif diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/MediaPlayer.h b/src/3rdparty/webkit/WebCore/platform/graphics/MediaPlayer.h index 187c701..9d9370b 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/MediaPlayer.h +++ b/src/3rdparty/webkit/WebCore/platform/graphics/MediaPlayer.h @@ -160,6 +160,7 @@ public: void setAutobuffer(bool); void paint(GraphicsContext*, const IntRect&); + void paintCurrentFrameInContext(GraphicsContext*, const IntRect&); enum NetworkState { Empty, Idle, Loading, Loaded, FormatError, NetworkError, DecodeError }; NetworkState networkState(); @@ -167,6 +168,9 @@ public: enum ReadyState { HaveNothing, HaveMetadata, HaveCurrentData, HaveFutureData, HaveEnoughData }; ReadyState readyState(); + enum MovieLoadType { Unknown, Download, StoredStream, LiveStream }; + MovieLoadType movieLoadType() const; + void networkStateChanged(); void readyStateChanged(); void volumeChanged(); diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/MediaPlayerPrivate.h b/src/3rdparty/webkit/WebCore/platform/graphics/MediaPlayerPrivate.h index edbe125..753ccd2 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/MediaPlayerPrivate.h +++ b/src/3rdparty/webkit/WebCore/platform/graphics/MediaPlayerPrivate.h @@ -85,7 +85,9 @@ public: virtual void setSize(const IntSize&) = 0; - virtual void paint(GraphicsContext*, const IntRect&) = 0 ; + virtual void paint(GraphicsContext*, const IntRect&) = 0; + + virtual void paintCurrentFrameInContext(GraphicsContext* c, const IntRect& r) { paint(c, r); } virtual void setAutobuffer(bool) { }; @@ -103,6 +105,9 @@ public: #endif virtual bool hasSingleSecurityOrigin() const { return false; } + + virtual MediaPlayer::MovieLoadType movieLoadType() const { return MediaPlayer::Unknown; } + }; } diff --git a/src/3rdparty/webkit/WebCore/platform/mac/LocalizedStringsMac.mm b/src/3rdparty/webkit/WebCore/platform/mac/LocalizedStringsMac.mm index ebb6d93..fdd7df5 100644 --- a/src/3rdparty/webkit/WebCore/platform/mac/LocalizedStringsMac.mm +++ b/src/3rdparty/webkit/WebCore/platform/mac/LocalizedStringsMac.mm @@ -697,4 +697,20 @@ String imageTitle(const String& filename, const IntSize& size) return String(); } +String mediaElementLoadingStateText() +{ + BEGIN_BLOCK_OBJC_EXCEPTIONS; + return [[WebCoreViewFactory sharedFactory] mediaElementLoadingStateText]; + END_BLOCK_OBJC_EXCEPTIONS; + return String(); +} + +String mediaElementLiveBroadcastStateText() +{ + BEGIN_BLOCK_OBJC_EXCEPTIONS; + return [[WebCoreViewFactory sharedFactory] mediaElementLiveBroadcastStateText]; + END_BLOCK_OBJC_EXCEPTIONS; + return String(); +} + } diff --git a/src/3rdparty/webkit/WebCore/platform/mac/ThemeMac.mm b/src/3rdparty/webkit/WebCore/platform/mac/ThemeMac.mm index a3e743f..e7e12ac 100644 --- a/src/3rdparty/webkit/WebCore/platform/mac/ThemeMac.mm +++ b/src/3rdparty/webkit/WebCore/platform/mac/ThemeMac.mm @@ -26,6 +26,7 @@ #import "config.h" #import "ThemeMac.h" +#import "BlockExceptions.h" #import "GraphicsContext.h" #import "LocalCurrentGraphicsContext.h" #import "ScrollView.h" @@ -195,6 +196,8 @@ static NSButtonCell* checkbox(ControlStates states, const IntRect& zoomedRect, f // FIXME: Share more code with radio buttons. static void paintCheckbox(ControlStates states, GraphicsContext* context, const IntRect& zoomedRect, float zoomFactor, ScrollView* scrollView) { + BEGIN_BLOCK_OBJC_EXCEPTIONS + // Determine the width and height needed for the control and prepare the cell for painting. NSButtonCell* checkboxCell = checkbox(states, zoomedRect, zoomFactor); @@ -218,6 +221,8 @@ static void paintCheckbox(ControlStates states, GraphicsContext* context, const [checkboxCell setControlView:nil]; context->restore(); + + END_BLOCK_OBJC_EXCEPTIONS } // Radio Buttons @@ -289,8 +294,10 @@ static void paintRadio(ControlStates states, GraphicsContext* context, const Int context->translate(-inflatedRect.x(), -inflatedRect.y()); } + BEGIN_BLOCK_OBJC_EXCEPTIONS [radioCell drawWithFrame:NSRect(inflatedRect) inView:scrollView->documentView()]; [radioCell setControlView:nil]; + END_BLOCK_OBJC_EXCEPTIONS context->restore(); } @@ -348,6 +355,8 @@ static NSButtonCell* button(ControlPart part, ControlStates states, const IntRec static void paintButton(ControlPart part, ControlStates states, GraphicsContext* context, const IntRect& zoomedRect, float zoomFactor, ScrollView* scrollView) { + BEGIN_BLOCK_OBJC_EXCEPTIONS + // Determine the width and height needed for the control and prepare the cell for painting. NSButtonCell *buttonCell = button(part, states, zoomedRect, zoomFactor); LocalCurrentGraphicsContext localContext(context); @@ -391,6 +400,8 @@ static void paintButton(ControlPart part, ControlStates states, GraphicsContext* if (![previousDefaultButtonCell isEqual:buttonCell]) [window setDefaultButtonCell:previousDefaultButtonCell]; + + END_BLOCK_OBJC_EXCEPTIONS } // Theme overrides @@ -479,6 +490,7 @@ LengthBox ThemeMac::controlPadding(ControlPart part, const Font& font, const Len void ThemeMac::inflateControlPaintRect(ControlPart part, ControlStates states, IntRect& zoomedRect, float zoomFactor) const { + BEGIN_BLOCK_OBJC_EXCEPTIONS switch (part) { case CheckboxPart: { // We inflate the rect as needed to account for padding included in the cell to accommodate the checkbox @@ -520,6 +532,7 @@ void ThemeMac::inflateControlPaintRect(ControlPart part, ControlStates states, I default: break; } + END_BLOCK_OBJC_EXCEPTIONS } void ThemeMac::paint(ControlPart part, ControlStates states, GraphicsContext* context, const IntRect& zoomedRect, float zoomFactor, ScrollView* scrollView) const diff --git a/src/3rdparty/webkit/WebCore/platform/mac/WebCoreSystemInterface.h b/src/3rdparty/webkit/WebCore/platform/mac/WebCoreSystemInterface.h index cbe4aea..768899e 100644 --- a/src/3rdparty/webkit/WebCore/platform/mac/WebCoreSystemInterface.h +++ b/src/3rdparty/webkit/WebCore/platform/mac/WebCoreSystemInterface.h @@ -104,8 +104,9 @@ extern void (*wkDrawFocusRing)(CGContextRef, CGColorRef, int radius); extern NSFont* (*wkGetFontInLanguageForRange)(NSFont*, NSString*, NSRange); extern NSFont* (*wkGetFontInLanguageForCharacter)(NSFont*, UniChar); extern BOOL (*wkGetGlyphTransformedAdvances)(CGFontRef, NSFont*, CGAffineTransform*, ATSGlyphRef*, CGSize* advance); -extern void (*wkDrawMediaSliderTrack)(int themeStyle, CGContextRef context, CGRect rect, float timeLoaded, float currentTime, float duration); -extern void (*wkDrawMediaUIPart)(int part, int themeStyle, CGContextRef context, CGRect rect, BOOL active); +extern void (*wkDrawMediaSliderTrack)(int themeStyle, CGContextRef context, CGRect rect, float timeLoaded, float currentTime, + float duration, unsigned state); +extern void (*wkDrawMediaUIPart)(int part, int themeStyle, CGContextRef context, CGRect rect, unsigned state); extern NSString* (*wkGetPreferredExtensionForMIMEType)(NSString*); extern NSArray* (*wkGetExtensionsForMIMEType)(NSString*); extern NSString* (*wkGetMIMETypeForExtension)(NSString*); @@ -122,6 +123,7 @@ extern int (*wkQTMovieDataRate)(QTMovie*); extern float (*wkQTMovieMaxTimeLoaded)(QTMovie*); extern NSString *(*wkQTMovieMaxTimeLoadedChangeNotification)(void); extern float (*wkQTMovieMaxTimeSeekable)(QTMovie*); +extern int (*wkQTMovieGetType)(QTMovie* movie); extern void (*wkQTMovieViewSetDrawSynchronously)(QTMovieView*, BOOL); extern void (*wkSetCGFontRenderingMode)(CGContextRef, NSFont*); extern void (*wkSetDragImage)(NSImage*, NSPoint offset); @@ -134,6 +136,7 @@ extern void (*wkSignalCFReadStreamEnd)(CFReadStreamRef stream); extern void (*wkSignalCFReadStreamError)(CFReadStreamRef stream, CFStreamError *error); extern void (*wkSignalCFReadStreamHasBytes)(CFReadStreamRef stream); extern unsigned (*wkInitializeMaximumHTTPConnectionCountPerHost)(unsigned preferredConnectionCount); +extern BOOL (*wkIsLatchingWheelEvent)(NSEvent *); #ifndef BUILDING_ON_TIGER extern void (*wkGetGlyphsForCharacters)(CGFontRef, const UniChar[], CGGlyph[], size_t); diff --git a/src/3rdparty/webkit/WebCore/platform/mac/WebCoreSystemInterface.mm b/src/3rdparty/webkit/WebCore/platform/mac/WebCoreSystemInterface.mm index 05d1da6..d0e276f 100644 --- a/src/3rdparty/webkit/WebCore/platform/mac/WebCoreSystemInterface.mm +++ b/src/3rdparty/webkit/WebCore/platform/mac/WebCoreSystemInterface.mm @@ -39,9 +39,10 @@ void (*wkDrawFocusRing)(CGContextRef, CGColorRef, int radius); NSFont* (*wkGetFontInLanguageForRange)(NSFont*, NSString*, NSRange); NSFont* (*wkGetFontInLanguageForCharacter)(NSFont*, UniChar); BOOL (*wkGetGlyphTransformedAdvances)(CGFontRef, NSFont*, CGAffineTransform*, ATSGlyphRef*, CGSize* advance); -void (*wkDrawMediaSliderTrack)(int themeStyle, CGContextRef context, CGRect rect, float timeLoaded, float currentTime, float duration); +void (*wkDrawMediaSliderTrack)(int themeStyle, CGContextRef context, CGRect rect, float timeLoaded, float currentTime, + float duration, unsigned state); BOOL (*wkHitTestMediaUIPart)(int part, int themeStyle, CGRect bounds, CGPoint point); -void (*wkDrawMediaUIPart)(int part, int themeStyle, CGContextRef context, CGRect rect, BOOL active); +void (*wkDrawMediaUIPart)(int part, int themeStyle, CGContextRef context, CGRect rect, unsigned state); void (*wkMeasureMediaUIPart)(int part, int themeStyle, CGRect *bounds, CGSize *naturalSize); NSString* (*wkGetPreferredExtensionForMIMEType)(NSString*); NSArray* (*wkGetExtensionsForMIMEType)(NSString*); @@ -56,6 +57,7 @@ int (*wkQTMovieDataRate)(QTMovie*); float (*wkQTMovieMaxTimeLoaded)(QTMovie*); NSString *(*wkQTMovieMaxTimeLoadedChangeNotification)(void); float (*wkQTMovieMaxTimeSeekable)(QTMovie*); +int (*wkQTMovieGetType)(QTMovie* movie); void (*wkQTMovieViewSetDrawSynchronously)(QTMovieView*, BOOL); void (*wkSetCGFontRenderingMode)(CGContextRef, NSFont*); void (*wkSetDragImage)(NSImage*, NSPoint offset); @@ -78,6 +80,7 @@ void (*wkSetNSURLConnectionDefersCallbacks)(NSURLConnection *, BOOL); void (*wkSetNSURLRequestShouldContentSniff)(NSMutableURLRequest *, BOOL); id (*wkCreateNSURLConnectionDelegateProxy)(void); unsigned (*wkInitializeMaximumHTTPConnectionCountPerHost)(unsigned preferredConnectionCount); +BOOL (*wkIsLatchingWheelEvent)(NSEvent *); #ifndef BUILDING_ON_TIGER void (*wkGetGlyphsForCharacters)(CGFontRef, const UniChar[], CGGlyph[], size_t); diff --git a/src/3rdparty/webkit/WebCore/platform/mac/WidgetMac.mm b/src/3rdparty/webkit/WebCore/platform/mac/WidgetMac.mm index 1aaf4b2..8653a03 100644 --- a/src/3rdparty/webkit/WebCore/platform/mac/WidgetMac.mm +++ b/src/3rdparty/webkit/WebCore/platform/mac/WidgetMac.mm @@ -283,72 +283,52 @@ void Widget::afterMouseDown(NSView *view, Widget* widget) } } -IntPoint Widget::convertFromContainingWindow(const IntPoint& point) const +// These are here to deal with flipped coords on Mac. +IntRect Widget::convertFromRootToContainingWindow(const Widget* rootWidget, const IntRect& rect) { - if (!platformWidget()) { - if (!parent()) - return point; - IntPoint result = parent()->convertFromContainingWindow(point); - result.move(parent()->scrollX() - x(), parent()->scrollY() - y()); - return result; - } - + if (!rootWidget->platformWidget()) + return rect; + BEGIN_BLOCK_OBJC_EXCEPTIONS; - return IntPoint([platformWidget() convertPoint:point fromView:nil]); + return enclosingIntRect([rootWidget->platformWidget() convertRect:rect toView:nil]); END_BLOCK_OBJC_EXCEPTIONS; - - return point; + + return rect; } -IntRect Widget::convertFromContainingWindow(const IntRect& rect) const +IntRect Widget::convertFromContainingWindowToRoot(const Widget* rootWidget, const IntRect& rect) { - if (!platformWidget()) { - if (!parent()) - return rect; - IntRect result = parent()->convertFromContainingWindow(rect); - result.move(parent()->scrollX() - x(), parent()->scrollY() - y()); - return result; - } - + if (!rootWidget->platformWidget()) + return rect; + BEGIN_BLOCK_OBJC_EXCEPTIONS; - return enclosingIntRect([platformWidget() convertRect:rect fromView:nil]); + return enclosingIntRect([rootWidget->platformWidget() convertRect:rect fromView:nil]); END_BLOCK_OBJC_EXCEPTIONS; - + return rect; } -IntRect Widget::convertToContainingWindow(const IntRect& r) const +IntPoint Widget::convertFromRootToContainingWindow(const Widget* rootWidget, const IntPoint& point) { - if (!platformWidget()) { - if (!parent()) - return r; - IntRect result = r; - result.move(parent()->scrollX() - x(), parent()->scrollY() - y()); - return parent()->convertToContainingWindow(result); - } - + if (!rootWidget->platformWidget()) + return point; + BEGIN_BLOCK_OBJC_EXCEPTIONS; - return IntRect([platformWidget() convertRect:r toView:nil]); + return IntPoint([rootWidget->platformWidget() convertPoint:point toView:nil]); END_BLOCK_OBJC_EXCEPTIONS; - - return r; + return point; } - -IntPoint Widget::convertToContainingWindow(const IntPoint& p) const + +IntPoint Widget::convertFromContainingWindowToRoot(const Widget* rootWidget, const IntPoint& point) { - if (!platformWidget()) { - if (!parent()) - return p; - IntPoint result = p; - result.move(parent()->scrollX() - x(), parent()->scrollY() - y()); - return parent()->convertToContainingWindow(result); - } - + if (!rootWidget->platformWidget()) + return point; + BEGIN_BLOCK_OBJC_EXCEPTIONS; - return IntPoint([platformWidget() convertPoint:p toView:nil]); + return IntPoint([rootWidget->platformWidget() convertPoint:point fromView:nil]); END_BLOCK_OBJC_EXCEPTIONS; - return p; + return point; } void Widget::releasePlatformWidget() diff --git a/src/3rdparty/webkit/WebCore/platform/network/ResourceHandleInternal.h b/src/3rdparty/webkit/WebCore/platform/network/ResourceHandleInternal.h index 8b0f476..676129a 100644 --- a/src/3rdparty/webkit/WebCore/platform/network/ResourceHandleInternal.h +++ b/src/3rdparty/webkit/WebCore/platform/network/ResourceHandleInternal.h @@ -35,7 +35,7 @@ #include <CFNetwork/CFURLConnectionPriv.h> #endif -#if USE(WININET) +#if USE(WININET) || (USE(CURL) && PLATFORM(WIN)) #include <winsock2.h> #include <windows.h> #endif @@ -111,7 +111,6 @@ namespace WebCore { #if USE(SOUP) , m_msg(0) , m_cancelled(false) - , m_reportedHeaders(false) , m_gfile(0) , m_inputStream(0) , m_cancellable(0) @@ -194,7 +193,6 @@ namespace WebCore { SoupMessage* m_msg; ResourceResponse m_response; bool m_cancelled; - bool m_reportedHeaders; GFile* m_gfile; GInputStream* m_inputStream; GCancellable* m_cancellable; diff --git a/src/3rdparty/webkit/WebCore/platform/network/ResourceResponseBase.cpp b/src/3rdparty/webkit/WebCore/platform/network/ResourceResponseBase.cpp index a6d70fd..7f8a4e2 100644 --- a/src/3rdparty/webkit/WebCore/platform/network/ResourceResponseBase.cpp +++ b/src/3rdparty/webkit/WebCore/platform/network/ResourceResponseBase.cpp @@ -502,7 +502,7 @@ static bool isCacheHeaderSeparator(UChar c) } } -bool isControlCharacter(UChar c) +static bool isControlCharacter(UChar c) { return c < ' ' || c == 127; } diff --git a/src/3rdparty/webkit/WebCore/platform/network/ResourceResponseBase.h b/src/3rdparty/webkit/WebCore/platform/network/ResourceResponseBase.h index 20165e7..7594c09 100644 --- a/src/3rdparty/webkit/WebCore/platform/network/ResourceResponseBase.h +++ b/src/3rdparty/webkit/WebCore/platform/network/ResourceResponseBase.h @@ -162,8 +162,6 @@ struct CrossThreadResourceResponseData { time_t m_lastModifiedDate; }; -bool isControlCharacter(UChar c); - } // namespace WebCore #endif // ResourceResponseBase_h diff --git a/src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp b/src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp index a6c7513..57a5e99 100644 --- a/src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp +++ b/src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp @@ -352,5 +352,15 @@ String imageTitle(const String& filename, const IntSize& size) return QCoreApplication::translate("QWebPage", "%1 (%2x%3 pixels)", "Title string for images").arg(filename).arg(size.width()).arg(size.height()); } +String mediaElementLoadingStateText() +{ + return QCoreApplication::translate("QWebPage", "Loading...", "Media controller status message when the media is loading"); +} + +String mediaElementLiveBroadcastStateText() +{ + return QCoreApplication::translate("QWebPage", "Live Broadcast", "Media controller status message when watching a live broadcast"); +} + } // vim: ts=4 sw=4 et diff --git a/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp b/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp index 4a6df0a..0b42e5c 100644 --- a/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp @@ -608,7 +608,7 @@ bool RenderThemeQt::paintMenuList(RenderObject* o, const RenderObject::PaintInfo void RenderThemeQt::adjustMenuListButtonStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const { - // WORKAROUND because html4.css specifies -webkit-border-radius for <select> so we override it here + // WORKAROUND because html.css specifies -webkit-border-radius for <select> so we override it here // see also http://bugs.webkit.org/show_bug.cgi?id=18399 style->resetBorderRadius(); diff --git a/src/3rdparty/webkit/WebCore/platform/sql/SQLiteDatabase.cpp b/src/3rdparty/webkit/WebCore/platform/sql/SQLiteDatabase.cpp index 702cf02..d9b57b2 100644 --- a/src/3rdparty/webkit/WebCore/platform/sql/SQLiteDatabase.cpp +++ b/src/3rdparty/webkit/WebCore/platform/sql/SQLiteDatabase.cpp @@ -29,6 +29,7 @@ #include "DatabaseAuthorizer.h" #include "Logging.h" +#include "SQLiteFileSystem.h" #include "SQLiteStatement.h" #include <sqlite3.h> @@ -60,9 +61,7 @@ bool SQLiteDatabase::open(const String& filename) { close(); - // SQLite expects a null terminator on its UTF-16 strings. - String path = filename; - m_lastError = sqlite3_open16(path.charactersWithNullTermination(), &m_db); + m_lastError = SQLiteFileSystem::openDatabase(filename, &m_db); if (m_lastError != SQLITE_OK) { LOG_ERROR("SQLite database failed to load from %s\nCause - %s", filename.ascii().data(), sqlite3_errmsg(m_db)); diff --git a/src/3rdparty/webkit/WebCore/platform/sql/SQLiteFileSystem.cpp b/src/3rdparty/webkit/WebCore/platform/sql/SQLiteFileSystem.cpp new file mode 100644 index 0000000..8cd7e80 --- /dev/null +++ b/src/3rdparty/webkit/WebCore/platform/sql/SQLiteFileSystem.cpp @@ -0,0 +1,123 @@ +/* + * Copyright (C) 2009 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" +#include "SQLiteFileSystem.h" + +#include "FileSystem.h" +#include "SQLiteDatabase.h" +#include "SQLiteStatement.h" +#include <sqlite3.h> + +namespace WebCore { + +SQLiteFileSystem::SQLiteFileSystem() +{ +} + +void SQLiteFileSystem::registerSQLiteVFS() +{ +} + +int SQLiteFileSystem::openDatabase(const String& fileName, sqlite3** database) +{ + // SQLite expects a null terminator on its UTF-16 strings. + String path = fileName; + return sqlite3_open16(path.charactersWithNullTermination(), database); +} + +String SQLiteFileSystem::getFileNameForNewDatabase(const String& dbDir, const String&, + const String&, SQLiteDatabase* db) +{ + // try to get the next sequence number from the given database + // if we can't get a number, return an empty string + SQLiteStatement sequenceStatement(*db, "SELECT seq FROM sqlite_sequence WHERE name='Databases';"); + if (sequenceStatement.prepare() != SQLResultOk) + return String(); + int result = sequenceStatement.step(); + int64_t seq = 0; + if (result == SQLResultRow) + seq = sequenceStatement.getColumnInt64(0); + else if (result != SQLResultDone) + return String(); + sequenceStatement.finalize(); + + // increment the number until we can use it to form a file name that doesn't exist + String fileName; + do { + ++seq; + fileName = pathByAppendingComponent(dbDir, String::format("%016llx.db", seq)); + } while (fileExists(fileName)); + + return String::format("%016llx.db", seq); +} + +String SQLiteFileSystem::appendDatabaseFileNameToPath(const String& path, const String& fileName) +{ + return pathByAppendingComponent(path, fileName); +} + +bool SQLiteFileSystem::ensureDatabaseDirectoryExists(const String& path) +{ + if (path.isEmpty()) + return false; + return makeAllDirectories(path); +} + +bool SQLiteFileSystem::ensureDatabaseFileExists(const String& fileName, bool checkPathOnly) +{ + if (fileName.isEmpty()) + return false; + + if (checkPathOnly) { + String dir = directoryName(fileName); + return ensureDatabaseDirectoryExists(dir); + } + + return fileExists(fileName); +} + +bool SQLiteFileSystem::deleteEmptyDatabaseDirectory(const String& path) +{ + return deleteEmptyDirectory(path); +} + +bool SQLiteFileSystem::deleteDatabaseFile(const String& fileName) +{ + return deleteFile(fileName); +} + +long long SQLiteFileSystem::getDatabaseFileSize(const String& fileName) +{ + long long size; + return getFileSize(fileName, size) ? size : 0; +} + +} // namespace WebCore diff --git a/src/3rdparty/webkit/WebCore/platform/sql/SQLiteFileSystem.h b/src/3rdparty/webkit/WebCore/platform/sql/SQLiteFileSystem.h new file mode 100644 index 0000000..0a26e9d --- /dev/null +++ b/src/3rdparty/webkit/WebCore/platform/sql/SQLiteFileSystem.h @@ -0,0 +1,114 @@ +/* + * Copyright (C) 2009 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SQLiteFileSystem_h +#define SQLiteFileSystem_h + +#include "PlatformString.h" +#include <wtf/Threading.h> + +struct sqlite3; + +namespace WebCore { + +class SQLiteDatabase; + +// A class that abstracts the file system related operations required +// by the WebKit database code. +class SQLiteFileSystem { +public: + // Registers a user-defined SQLite VFS. + static void registerSQLiteVFS(); + + // Opens a database file. + // + // fileName - The name of the database file. + // database - The SQLite structure that represents the database stored + // in the given file. + static int openDatabase(const String& fileName, sqlite3** database); + + // Returns the file name for a database. + // + // dbDir - The directory where all databases are stored. + // dbName - The name of the database. + // originIdentifier - The origin that wants to use this database. + // db - A database with a number generator used to create unique file names. + static String getFileNameForNewDatabase(const String& dbDir, const String& dbName, + const String& originIdentifier, SQLiteDatabase* db); + + // Creates an absolute file path given a directory and a file name. + // + // path - The directory. + // fileName - The file name. + static String appendDatabaseFileNameToPath(const String& path, const String& fileName); + + // Makes sure the given directory exists, by creating all missing directories + // on the given path. + // + // path - The directory. + static bool ensureDatabaseDirectoryExists(const String& path); + + // If 'checkPathOnly' is false, then this method only checks if the given file exists. + // If 'checkPathOnly' is true, then this method makes sure all directories on the + // given path exist by creating the missing ones, and does not check if the file + // itself exists. + // + // Sometimes we expect a DB file to exist; other times, we're OK with creating a new + // DB file, but we want to make sure that the directory in which we want to put the + // new DB file exists. This method covers both cases. + // + // fileName - The file name. + // checkPathOnly - If true, we only make sure that the given directory exists. + // If false, we only check if the file exists. + static bool ensureDatabaseFileExists(const String& fileName, bool checkPathOnly); + + // Deletes an empty database directory. + // + // path - The directory. + static bool deleteEmptyDatabaseDirectory(const String& path); + + // Deletes a database file. + // + // fileName - The file name. + static bool deleteDatabaseFile(const String& fileName); + + // Returns the size of the database file. + // + // fileName - The file name. + static long long getDatabaseFileSize(const String& fileName); + +private: + // do not instantiate this class + SQLiteFileSystem(); +}; // class SQLiteFileSystem + +} // namespace WebCore + +#endif diff --git a/src/3rdparty/webkit/WebCore/platform/text/TextBreakIteratorInternalICU.h b/src/3rdparty/webkit/WebCore/platform/text/TextBreakIteratorInternalICU.h index d4b25e7..68b7003 100644 --- a/src/3rdparty/webkit/WebCore/platform/text/TextBreakIteratorInternalICU.h +++ b/src/3rdparty/webkit/WebCore/platform/text/TextBreakIteratorInternalICU.h @@ -21,10 +21,12 @@ #ifndef TextBreakIteratorInternalICU_h #define TextBreakIteratorInternalICU_h -#include <wtf/unicode/Unicode.h> +// FIXME: Now that this handles locales for ICU, not just for text breaking, +// this file and the various implementation files should be renamed. namespace WebCore { + const char* currentSearchLocaleID(); const char* currentTextBreakLocaleID(); } diff --git a/src/3rdparty/webkit/WebCore/platform/text/android/TextBreakIteratorInternalICU.cpp b/src/3rdparty/webkit/WebCore/platform/text/android/TextBreakIteratorInternalICU.cpp index 9bebe74..9732e92 100644 --- a/src/3rdparty/webkit/WebCore/platform/text/android/TextBreakIteratorInternalICU.cpp +++ b/src/3rdparty/webkit/WebCore/platform/text/android/TextBreakIteratorInternalICU.cpp @@ -28,8 +28,15 @@ namespace WebCore { +const char* currentSearchLocaleID() +{ + // FIXME: Should use system locale. + return ""; +} + const char* currentTextBreakLocaleID() { + // FIXME: Should use system locale. return "en_us"; } diff --git a/src/3rdparty/webkit/WebCore/platform/text/mac/TextBreakIteratorInternalICUMac.mm b/src/3rdparty/webkit/WebCore/platform/text/mac/TextBreakIteratorInternalICUMac.mm index 92983eb..5da10e0 100644 --- a/src/3rdparty/webkit/WebCore/platform/text/mac/TextBreakIteratorInternalICUMac.mm +++ b/src/3rdparty/webkit/WebCore/platform/text/mac/TextBreakIteratorInternalICUMac.mm @@ -1,5 +1,5 @@ /* - * Copyright (C) 2007 Apple Inc. All rights reserved. + * Copyright (C) 2007, 2009 Apple Inc. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -21,41 +21,79 @@ #include "config.h" #include "TextBreakIteratorInternalICU.h" +#include <wtf/RetainPtr.h> + namespace WebCore { static const int maxLocaleStringLength = 32; -// This code was swiped from the CarbonCore UnicodeUtilities. One change from that is to use the empty -// string instead of the "old locale model" as the ultimate fallback. This change is per the UnicodeUtilities -// engineer. -static void getTextBreakLocale(char localeStringBuffer[maxLocaleStringLength]) +static inline RetainPtr<CFStringRef> textBreakLocalePreference() { - // Empty string means "root locale", which is what we use if we can't use a pref. + RetainPtr<CFPropertyListRef> locale(AdoptCF, CFPreferencesCopyValue(CFSTR("AppleTextBreakLocale"), + kCFPreferencesAnyApplication, kCFPreferencesCurrentUser, kCFPreferencesAnyHost)); + if (!locale || CFGetTypeID(locale.get()) != CFStringGetTypeID()) + return 0; + return static_cast<CFStringRef>(locale.get()); +} - // We get the parts string from AppleTextBreakLocale pref. - // If that fails then look for the first language in the AppleLanguages pref. - CFStringRef prefLocaleStr = (CFStringRef)CFPreferencesCopyValue(CFSTR("AppleTextBreakLocale"), - kCFPreferencesAnyApplication, kCFPreferencesCurrentUser, kCFPreferencesAnyHost); - if (!prefLocaleStr) { - CFArrayRef appleLangArr = (CFArrayRef)CFPreferencesCopyValue(CFSTR("AppleLanguages"), - kCFPreferencesAnyApplication, kCFPreferencesCurrentUser, kCFPreferencesAnyHost); - if (appleLangArr) { - // Take the topmost language. Retain so that we can blindly release later. - prefLocaleStr = (CFStringRef)CFArrayGetValueAtIndex(appleLangArr, 0); - if (prefLocaleStr) - CFRetain(prefLocaleStr); - CFRelease(appleLangArr); - } - } - if (prefLocaleStr) { - // Canonicalize pref string in case it is not in the canonical format. - CFStringRef canonLocaleCFStr = CFLocaleCreateCanonicalLanguageIdentifierFromString(kCFAllocatorDefault, prefLocaleStr); - if (canonLocaleCFStr) { - CFStringGetCString(canonLocaleCFStr, localeStringBuffer, maxLocaleStringLength, kCFStringEncodingASCII); - CFRelease(canonLocaleCFStr); - } - CFRelease(prefLocaleStr); +static RetainPtr<CFStringRef> topLanguagePreference() +{ + RetainPtr<CFPropertyListRef> languages(AdoptCF, CFPreferencesCopyValue(CFSTR("AppleLanguages"), + kCFPreferencesAnyApplication, kCFPreferencesCurrentUser, kCFPreferencesAnyHost)); + if (!languages || CFGetTypeID(languages.get()) != CFArrayGetTypeID()) + return 0; + CFArrayRef languagesArray = static_cast<CFArrayRef>(languages.get()); + if (CFArrayGetCount(languagesArray) < 1) + return 0; + const void* value = CFArrayGetValueAtIndex(languagesArray, 0); + if (!value || CFGetTypeID(value) != CFStringGetTypeID()) + return 0; + return static_cast<CFStringRef>(value); +} + +static RetainPtr<CFStringRef> canonicalLanguageIdentifier(CFStringRef locale) +{ + if (!locale) + return 0; + RetainPtr<CFStringRef> canonicalLocale(AdoptCF, + CFLocaleCreateCanonicalLanguageIdentifierFromString(kCFAllocatorDefault, locale)); + if (!canonicalLocale) + return locale; + return canonicalLocale; +} + +static void getLocale(CFStringRef locale, char localeStringBuffer[maxLocaleStringLength]) +{ + // Empty string means "root locale", and that is what we use if we can't get a preference. + localeStringBuffer[0] = 0; + if (!locale) + return; + CFStringGetCString(locale, localeStringBuffer, maxLocaleStringLength, kCFStringEncodingASCII); +} + +static void getSearchLocale(char localeStringBuffer[maxLocaleStringLength]) +{ + getLocale(canonicalLanguageIdentifier(topLanguagePreference().get()).get(), localeStringBuffer); +} + +const char* currentSearchLocaleID() +{ + static char localeStringBuffer[maxLocaleStringLength]; + static bool gotSearchLocale = false; + if (!gotSearchLocale) { + getSearchLocale(localeStringBuffer); + gotSearchLocale = true; } + return localeStringBuffer; +} + +static void getTextBreakLocale(char localeStringBuffer[maxLocaleStringLength]) +{ + // If there is no text break locale, use the top language preference. + RetainPtr<CFStringRef> locale = textBreakLocalePreference(); + if (!locale) + locale = topLanguagePreference(); + getLocale(canonicalLanguageIdentifier(locale.get()).get(), localeStringBuffer); } const char* currentTextBreakLocaleID() diff --git a/src/3rdparty/webkit/WebCore/platform/text/win/TextBreakIteratorInternalICUWin.cpp b/src/3rdparty/webkit/WebCore/platform/text/win/TextBreakIteratorInternalICUWin.cpp index ce436df..e417e17 100644 --- a/src/3rdparty/webkit/WebCore/platform/text/win/TextBreakIteratorInternalICUWin.cpp +++ b/src/3rdparty/webkit/WebCore/platform/text/win/TextBreakIteratorInternalICUWin.cpp @@ -23,6 +23,12 @@ namespace WebCore { +const char* currentSearchLocaleID() +{ + // FIXME: Should use system locale. + return ""; +} + const char* currentTextBreakLocaleID() { // Using en_US_POSIX now so word selection in address field works as expected as before (double-clicking diff --git a/src/3rdparty/webkit/WebCore/plugins/PluginView.cpp b/src/3rdparty/webkit/WebCore/plugins/PluginView.cpp index 2c5adc5..8737572 100644 --- a/src/3rdparty/webkit/WebCore/plugins/PluginView.cpp +++ b/src/3rdparty/webkit/WebCore/plugins/PluginView.cpp @@ -239,8 +239,12 @@ void PluginView::performRequest(PluginRequest* request) m_streams.add(stream); stream->start(); } else { + // If the target frame is our frame, we could destroy the + // PluginView, so we protect it. <rdar://problem/6991251> + RefPtr<PluginView> protect(this); + m_parentFrame->loader()->load(request->frameLoadRequest().resourceRequest(), targetFrameName, false); - + // FIXME: <rdar://problem/4807469> This should be sent when the document has finished loading if (request->sendNotification()) { PluginView::setCurrentPluginView(this); @@ -481,6 +485,11 @@ PassRefPtr<JSC::Bindings::Instance> PluginView::bindingInstance() if (!m_plugin || !m_plugin->pluginFuncs()->getvalue) return 0; + // On Windows, calling Java's NPN_GetValue can allow the message loop to + // run, allowing loading to take place or JavaScript to run. Protect the + // PluginView from destruction. <rdar://problem/6978804> + RefPtr<PluginView> protect(this); + NPError npErr; { PluginView::setCurrentPluginView(this); @@ -491,6 +500,13 @@ PassRefPtr<JSC::Bindings::Instance> PluginView::bindingInstance() PluginView::setCurrentPluginView(0); } + if (hasOneRef()) { + // The renderer for the PluginView was destroyed during the above call, and + // the PluginView will be destroyed when this function returns, so we + // return null. + return 0; + } + if (npErr != NPERR_NO_ERROR || !object) return 0; @@ -667,7 +683,7 @@ bool PluginView::isCallingPlugin() return s_callingPlugin > 0; } -PluginView* PluginView::create(Frame* parentFrame, const IntSize& size, Element* element, const KURL& url, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually) +PassRefPtr<PluginView> PluginView::create(Frame* parentFrame, const IntSize& size, Element* element, const KURL& url, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually) { // if we fail to find a plugin for this MIME type, findPlugin will search for // a plugin by the file extension and update the MIME type, so pass a mutable String @@ -680,7 +696,7 @@ PluginView* PluginView::create(Frame* parentFrame, const IntSize& size, Element* plugin = PluginDatabase::installedPlugins()->findPlugin(url, mimeTypeCopy); } - return new PluginView(parentFrame, size, plugin, element, url, paramNames, paramValues, mimeTypeCopy, loadManually); + return adoptRef(new PluginView(parentFrame, size, plugin, element, url, paramNames, paramValues, mimeTypeCopy, loadManually)); } void PluginView::freeStringArray(char** stringArray, int length) diff --git a/src/3rdparty/webkit/WebCore/plugins/PluginView.h b/src/3rdparty/webkit/WebCore/plugins/PluginView.h index 41d986b..3ed6756 100644 --- a/src/3rdparty/webkit/WebCore/plugins/PluginView.h +++ b/src/3rdparty/webkit/WebCore/plugins/PluginView.h @@ -108,7 +108,7 @@ namespace WebCore { class PluginView : public Widget, private PluginStreamClient, public PluginManualLoader { public: - static PluginView* create(Frame* parentFrame, const IntSize&, Element*, const KURL&, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually); + static PassRefPtr<PluginView> create(Frame* parentFrame, const IntSize&, Element*, const KURL&, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually); virtual ~PluginView(); PluginPackage* plugin() const { return m_plugin.get(); } diff --git a/src/3rdparty/webkit/WebCore/plugins/win/PluginMessageThrottlerWin.cpp b/src/3rdparty/webkit/WebCore/plugins/win/PluginMessageThrottlerWin.cpp index 27bf5b9..b79ca20 100644 --- a/src/3rdparty/webkit/WebCore/plugins/win/PluginMessageThrottlerWin.cpp +++ b/src/3rdparty/webkit/WebCore/plugins/win/PluginMessageThrottlerWin.cpp @@ -85,6 +85,9 @@ void PluginMessageThrottlerWin::messageThrottleTimerFired(Timer<PluginMessageThr if (message == m_back) m_back = 0; + // Protect the PluginView from destruction while calling its window proc. + // <rdar://problem/6930280> + RefPtr<PluginView> protect(m_pluginView); ::CallWindowProc(m_pluginView->pluginWndProc(), message->hWnd, message->msg, message->wParam, message->lParam); freeMessage(message); diff --git a/src/3rdparty/webkit/WebCore/plugins/win/PluginPackageWin.cpp b/src/3rdparty/webkit/WebCore/plugins/win/PluginPackageWin.cpp index b52553e..40d9b2a 100644 --- a/src/3rdparty/webkit/WebCore/plugins/win/PluginPackageWin.cpp +++ b/src/3rdparty/webkit/WebCore/plugins/win/PluginPackageWin.cpp @@ -81,9 +81,16 @@ bool PluginPackage::isPluginBlacklisted() if (compareFileVersion(slPluginMinRequired) < 0) return true; - } else if (fileName() == "npmozax.dll") + } else if (fileName() == "npmozax.dll") { // Bug 15217: Mozilla ActiveX control complains about missing xpcom_core.dll return true; + } else if (name() == "Yahoo Application State Plugin") { + // https://bugs.webkit.org/show_bug.cgi?id=26860 + // Bug in Yahoo Application State plug-in earlier than 1.0.0.6 leads to heap corruption. + static const PlatformModuleVersion yahooAppStatePluginMinRequired(0x00000006, 0x00010000); + if (compareFileVersion(yahooAppStatePluginMinRequired) < 0) + return true; + } return false; } @@ -248,7 +255,7 @@ bool PluginPackage::load() return false; // Load the library - m_module = ::LoadLibraryW(m_path.charactersWithNullTermination()); + m_module = ::LoadLibraryExW(m_path.charactersWithNullTermination(), 0, LOAD_WITH_ALTERED_SEARCH_PATH); if (!::SetCurrentDirectoryW(currentPath)) { if (m_module) diff --git a/src/3rdparty/webkit/WebCore/plugins/win/PluginViewWin.cpp b/src/3rdparty/webkit/WebCore/plugins/win/PluginViewWin.cpp index e477965..272a540 100644 --- a/src/3rdparty/webkit/WebCore/plugins/win/PluginViewWin.cpp +++ b/src/3rdparty/webkit/WebCore/plugins/win/PluginViewWin.cpp @@ -110,11 +110,6 @@ static BYTE* endPaint; HDC WINAPI PluginView::hookedBeginPaint(HWND hWnd, PAINTSTRUCT* lpPaint) { -#if (COMPILER(MINGW)) - Q_UNUSED(hWnd) - Q_UNUSED(lpPaint) - return 0; -#else PluginView* pluginView = reinterpret_cast<PluginView*>(GetProp(hWnd, kWebPluginViewProperty)); if (pluginView && pluginView->m_wmPrintHDC) { // We're secretly handling WM_PRINTCLIENT, so set up the PAINTSTRUCT so @@ -125,6 +120,17 @@ HDC WINAPI PluginView::hookedBeginPaint(HWND hWnd, PAINTSTRUCT* lpPaint) return pluginView->m_wmPrintHDC; } +#if COMPILER(GCC) + HDC result; + asm ("push %2\n" + "push %3\n" + "call *%4\n" + : "=a" (result) + : "a" (beginPaintSysCall), "g" (lpPaint), "g" (hWnd), "m" (*beginPaint) + : "memory" + ); + return result; +#else // Call through to the original BeginPaint. __asm mov eax, beginPaintSysCall __asm push lpPaint @@ -135,11 +141,6 @@ HDC WINAPI PluginView::hookedBeginPaint(HWND hWnd, PAINTSTRUCT* lpPaint) BOOL WINAPI PluginView::hookedEndPaint(HWND hWnd, const PAINTSTRUCT* lpPaint) { -#if (COMPILER(MINGW)) - Q_UNUSED(hWnd) - Q_UNUSED(lpPaint) - return FALSE; -#else PluginView* pluginView = reinterpret_cast<PluginView*>(GetProp(hWnd, kWebPluginViewProperty)); if (pluginView && pluginView->m_wmPrintHDC) { // We're secretly handling WM_PRINTCLIENT, so we don't have to do any @@ -147,15 +148,24 @@ BOOL WINAPI PluginView::hookedEndPaint(HWND hWnd, const PAINTSTRUCT* lpPaint) return TRUE; } +#if COMPILER(GCC) + BOOL result; + asm ("push %2\n" + "push %3\n" + "call *%4\n" + : "=a" (result) + : "a" (endPaintSysCall), "g" (lpPaint), "g" (hWnd), "g" (*endPaint) + ); + return result; +#else // Call through to the original EndPaint. __asm mov eax, endPaintSysCall __asm push lpPaint __asm push hWnd __asm call endPaint -#endif +#endif } -#if (!COMPILER(MINGW)) static void hook(const char* module, const char* proc, unsigned& sysCallID, BYTE*& pProc, const void* pNewProc) { // See <http://www.fengyuan.com/article/wmprint.html> for an explanation of @@ -163,7 +173,7 @@ static void hook(const char* module, const char* proc, unsigned& sysCallID, BYTE HINSTANCE hMod = GetModuleHandleA(module); - pProc = reinterpret_cast<BYTE*>(GetProcAddress(hMod, proc)); + pProc = reinterpret_cast<BYTE*>(reinterpret_cast<ptrdiff_t>(GetProcAddress(hMod, proc))); if (pProc[0] != 0xB8) return; @@ -193,10 +203,10 @@ static void setUpOffscreenPaintingHooks(HDC (WINAPI*hookedBeginPaint)(HWND, PAIN // we hook into BeginPaint/EndPaint to allow their normal WM_PAINT handling // to draw into a given HDC. Note that this hooking affects the entire // process. - hook("user32.dll", "BeginPaint", beginPaintSysCall, beginPaint, hookedBeginPaint); - hook("user32.dll", "EndPaint", endPaintSysCall, endPaint, hookedEndPaint); + hook("user32.dll", "BeginPaint", beginPaintSysCall, beginPaint, reinterpret_cast<const void *>(reinterpret_cast<ptrdiff_t>(hookedBeginPaint))); + hook("user32.dll", "EndPaint", endPaintSysCall, endPaint, reinterpret_cast<const void *>(reinterpret_cast<ptrdiff_t>(hookedEndPaint))); + } -#endif static bool registerPluginView() { @@ -940,9 +950,8 @@ void PluginView::init() if (m_isWindowed) { registerPluginView(); -#if (!COMPILER(MINGW)) setUpOffscreenPaintingHooks(hookedBeginPaint, hookedEndPaint); -#endif + DWORD flags = WS_CHILD; if (isSelfVisible()) flags |= WS_VISIBLE; diff --git a/src/3rdparty/webkit/WebCore/rendering/AutoTableLayout.cpp b/src/3rdparty/webkit/WebCore/rendering/AutoTableLayout.cpp index 648e843..afb72cf 100644 --- a/src/3rdparty/webkit/WebCore/rendering/AutoTableLayout.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/AutoTableLayout.cpp @@ -94,7 +94,7 @@ void AutoTableLayout::recalcColumn(int effCol) w.setRawValue(32760); if (w.isNegative()) w.setValue(0); - switch(w.type()) { + switch (w.type()) { case Fixed: // ignore width=0 if (w.value() > 0 && (int)l.width.type() != Percent) { @@ -573,7 +573,7 @@ void AutoTableLayout::layout() int reduction = min(w, excess); // the lines below might look inconsistent, but that's the way it's handled in mozilla excess -= reduction; - int newWidth = max(int (m_layoutStruct[i].effMinWidth), w - reduction); + int newWidth = max(static_cast<int>(m_layoutStruct[i].effMinWidth), w - reduction); available += w - newWidth; m_layoutStruct[i].calcWidth = newWidth; } diff --git a/src/3rdparty/webkit/WebCore/rendering/InlineBox.cpp b/src/3rdparty/webkit/WebCore/rendering/InlineBox.cpp index 2d956a8..bbf11b3 100644 --- a/src/3rdparty/webkit/WebCore/rendering/InlineBox.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/InlineBox.cpp @@ -88,10 +88,10 @@ void InlineBox::showTreeForThis() const int InlineBox::height() const { #if ENABLE(SVG) - if (isSVG()) - return svgBoxHeight(); + if (hasVirtualHeight()) + return virtualHeight(); #endif - + if (renderer()->isText()) return m_isText ? renderer()->style(m_firstLine)->font().height() : 0; if (renderer()->isBox() && parent()) @@ -244,26 +244,26 @@ bool InlineBox::prevOnLineExists() const return m_prevOnLineExists; } -InlineBox* InlineBox::firstLeafChild() -{ - return this; -} - -InlineBox* InlineBox::lastLeafChild() -{ - return this; -} - -InlineBox* InlineBox::nextLeafChild() +InlineBox* InlineBox::nextLeafChild() const { - return parent() ? parent()->firstLeafChildAfterBox(this) : 0; + InlineBox* leaf = 0; + for (InlineBox* box = nextOnLine(); box && !leaf; box = box->nextOnLine()) + leaf = box->isLeaf() ? box : static_cast<InlineFlowBox*>(box)->firstLeafChild(); + if (!leaf && parent()) + leaf = parent()->nextLeafChild(); + return leaf; } - -InlineBox* InlineBox::prevLeafChild() + +InlineBox* InlineBox::prevLeafChild() const { - return parent() ? parent()->lastLeafChildBeforeBox(this) : 0; + InlineBox* leaf = 0; + for (InlineBox* box = prevOnLine(); box && !leaf; box = box->prevOnLine()) + leaf = box->isLeaf() ? box : static_cast<InlineFlowBox*>(box)->lastLeafChild(); + if (!leaf && parent()) + leaf = parent()->prevLeafChild(); + return leaf; } - + RenderObject::SelectionState InlineBox::selectionState() { return renderer()->selectionState(); diff --git a/src/3rdparty/webkit/WebCore/rendering/InlineBox.h b/src/3rdparty/webkit/WebCore/rendering/InlineBox.h index 9585278..0f66edd 100644 --- a/src/3rdparty/webkit/WebCore/rendering/InlineBox.h +++ b/src/3rdparty/webkit/WebCore/rendering/InlineBox.h @@ -49,7 +49,7 @@ public: , m_dirty(false) , m_extracted(false) #if ENABLE(SVG) - , m_isSVG(false) + , m_hasVirtualHeight(false) #endif , m_endsWithBreak(false) , m_hasSelectedChildren(false) @@ -82,7 +82,7 @@ public: , m_dirty(dirty) , m_extracted(extracted) #if ENABLE(SVG) - , m_isSVG(false) + , m_hasVirtualHeight(false) #endif , m_endsWithBreak(false) , m_hasSelectedChildren(false) @@ -129,18 +129,22 @@ public: #ifndef NDEBUG void showTreeForThis() const; #endif + + bool isText() const { return m_isText; } + void setIsText(bool b) { m_isText = b; } + virtual bool isInlineBox() { return false; } virtual bool isInlineFlowBox() const { return false; } virtual bool isInlineTextBox() { return false; } virtual bool isRootInlineBox() const { return false; } #if ENABLE(SVG) virtual bool isSVGRootInlineBox() { return false; } - bool isSVG() const { return m_isSVG; } - void setIsSVG(bool b) { m_isSVG = b; } -#endif - bool isText() const { return m_isText; } - void setIsText(bool b) { m_isText = b; } + bool hasVirtualHeight() const { return m_hasVirtualHeight; } + void setHasVirtualHeight() { m_hasVirtualHeight = true; } + virtual int virtualHeight() const { ASSERT_NOT_REACHED(); return 0; } +#endif + bool isConstructed() { return m_constructed; } virtual void setConstructed() { @@ -171,10 +175,10 @@ public: bool nextOnLineExists() const; bool prevOnLineExists() const; - virtual InlineBox* firstLeafChild(); - virtual InlineBox* lastLeafChild(); - InlineBox* nextLeafChild(); - InlineBox* prevLeafChild(); + virtual bool isLeaf() const { return true; } + + InlineBox* nextLeafChild() const; + InlineBox* prevLeafChild() const; RenderObject* renderer() const { return m_renderer; } @@ -201,6 +205,9 @@ public: int height() const; + inline int baselinePosition(bool isRootLineBox) const { return renderer()->baselinePosition(m_firstLine, isRootLineBox); } + inline int lineHeight(bool isRootLineBox) const { return renderer()->lineHeight(m_firstLine, isRootLineBox); } + virtual int topOverflow() const { return y(); } virtual int bottomOverflow() const { return y() + height(); } virtual int leftOverflow() const { return x(); } @@ -243,11 +250,6 @@ public: return 0; } -protected: -#if ENABLE(SVG) - virtual int svgBoxHeight() const { return 0; } -#endif - private: InlineBox* m_next; // The next element on the same line as us. InlineBox* m_prev; // The previous element on the same line as us. @@ -272,10 +274,7 @@ private: protected: bool m_dirty : 1; bool m_extracted : 1; - -#if ENABLE(SVG) - bool m_isSVG : 1; -#endif + bool m_hasVirtualHeight : 1; // for RootInlineBox bool m_endsWithBreak : 1; // Whether the line ends with a <br>. diff --git a/src/3rdparty/webkit/WebCore/rendering/InlineFlowBox.cpp b/src/3rdparty/webkit/WebCore/rendering/InlineFlowBox.cpp index be6b966..e46ba38 100644 --- a/src/3rdparty/webkit/WebCore/rendering/InlineFlowBox.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/InlineFlowBox.cpp @@ -371,7 +371,7 @@ void InlineFlowBox::adjustMaxAscentAndDescent(int& maxAscent, int& maxDescent, if (curr->renderer()->isPositioned()) continue; // Positioned placeholders don't affect calculations. if (curr->y() == PositionTop || curr->y() == PositionBottom) { - int lineHeight = curr->renderer()->lineHeight(m_firstLine); + int lineHeight = curr->lineHeight(false); if (curr->y() == PositionTop) { if (maxAscent + maxDescent < lineHeight) maxDescent = lineHeight - maxAscent; @@ -404,11 +404,11 @@ void InlineFlowBox::computeLogicalBoxHeights(int& maxPositionTop, int& maxPositi { if (isRootInlineBox()) { // Examine our root box. - int lineHeight = renderer()->lineHeight(m_firstLine, true); - int baseline = renderer()->baselinePosition(m_firstLine, true); + int height = lineHeight(true); + int baseline = baselinePosition(true); if (hasTextChildren() || strictMode) { int ascent = baseline; - int descent = lineHeight - ascent; + int descent = height - ascent; if (maxAscent < ascent) maxAscent = ascent; if (maxDescent < descent) @@ -456,8 +456,8 @@ void InlineFlowBox::computeLogicalBoxHeights(int& maxPositionTop, int& maxPositi } } } else { - lineHeight = curr->renderer()->lineHeight(m_firstLine); - baseline = curr->renderer()->baselinePosition(m_firstLine); + lineHeight = curr->lineHeight(false); + baseline = curr->baselinePosition(false); } curr->setY(verticalPositionForBox(curr, m_firstLine)); @@ -485,8 +485,8 @@ void InlineFlowBox::placeBoxesVertically(int yPos, int maxHeight, int maxAscent, int& topPosition, int& bottomPosition, int& selectionTop, int& selectionBottom) { if (isRootInlineBox()) - setY(yPos + max(0, maxAscent - renderer()->baselinePosition(m_firstLine, true))); // Place our root box. - + setY(yPos + max(0, maxAscent - baselinePosition(true))); // Place our root box. + for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) { if (curr->renderer()->isPositioned()) continue; // Positioned placeholders don't affect calculations. @@ -501,11 +501,11 @@ void InlineFlowBox::placeBoxesVertically(int yPos, int maxHeight, int maxAscent, if (curr->y() == PositionTop) curr->setY(yPos); else if (curr->y() == PositionBottom) - curr->setY(yPos + maxHeight - curr->renderer()->lineHeight(m_firstLine)); + curr->setY(yPos + maxHeight - curr->lineHeight(false)); else { if ((isInlineFlow && !static_cast<InlineFlowBox*>(curr)->hasTextChildren()) && !curr->boxModelObject()->hasHorizontalBordersOrPadding() && !strictMode) childAffectsTopBottomPos = false; - int posAdjust = maxAscent - curr->renderer()->baselinePosition(m_firstLine); + int posAdjust = maxAscent - curr->baselinePosition(false); if (!childAffectsTopBottomPos) posAdjust = max(0, posAdjust); curr->setY(curr->y() + yPos + posAdjust); @@ -521,7 +521,8 @@ void InlineFlowBox::placeBoxesVertically(int yPos, int maxHeight, int maxAscent, int overflowBottom = 0; if (curr->isText() || curr->isInlineFlowBox()) { const Font& font = curr->renderer()->style(m_firstLine)->font(); - newY += curr->renderer()->baselinePosition(m_firstLine) - font.ascent(); + newY += curr->baselinePosition(false) - font.ascent(); + for (ShadowData* shadow = curr->renderer()->style()->textShadow(); shadow; shadow = shadow->next) { overflowTop = min(overflowTop, shadow->y - shadow->blur); overflowBottom = max(overflowBottom, shadow->y + shadow->blur); @@ -565,7 +566,7 @@ void InlineFlowBox::placeBoxesVertically(int yPos, int maxHeight, int maxAscent, if (isRootInlineBox()) { const Font& font = renderer()->style(m_firstLine)->font(); - setY(y() + renderer()->baselinePosition(m_firstLine, true) - font.ascent()); + setY(y() + baselinePosition(true) - font.ascent()); if (hasTextChildren() || strictMode) { selectionTop = min(selectionTop, y()); selectionBottom = max(selectionBottom, y() + height()); @@ -980,33 +981,19 @@ void InlineFlowBox::paintTextDecorations(RenderObject::PaintInfo& paintInfo, int } } -InlineBox* InlineFlowBox::firstLeafChild() -{ - return firstLeafChildAfterBox(); -} - -InlineBox* InlineFlowBox::lastLeafChild() -{ - return lastLeafChildBeforeBox(); -} - -InlineBox* InlineFlowBox::firstLeafChildAfterBox(InlineBox* start) +InlineBox* InlineFlowBox::firstLeafChild() const { InlineBox* leaf = 0; - for (InlineBox* box = start ? start->nextOnLine() : firstChild(); box && !leaf; box = box->nextOnLine()) - leaf = box->firstLeafChild(); - if (start && !leaf && parent()) - return parent()->firstLeafChildAfterBox(this); + for (InlineBox* child = firstChild(); child && !leaf; child = child->nextOnLine()) + leaf = child->isLeaf() ? child : static_cast<InlineFlowBox*>(child)->firstLeafChild(); return leaf; } -InlineBox* InlineFlowBox::lastLeafChildBeforeBox(InlineBox* start) +InlineBox* InlineFlowBox::lastLeafChild() const { InlineBox* leaf = 0; - for (InlineBox* box = start ? start->prevOnLine() : lastChild(); box && !leaf; box = box->prevOnLine()) - leaf = box->lastLeafChild(); - if (start && !leaf && parent()) - return parent()->lastLeafChildBeforeBox(this); + for (InlineBox* child = lastChild(); child && !leaf; child = child->prevOnLine()) + leaf = child->isLeaf() ? child : static_cast<InlineFlowBox*>(child)->lastLeafChild(); return leaf; } @@ -1037,7 +1024,7 @@ int InlineFlowBox::placeEllipsisBox(bool ltr, int blockLeftEdge, int blockRightE int visibleLeftEdge = blockLeftEdge; int visibleRightEdge = blockRightEdge; - while(box) { + while (box) { int currResult = box->placeEllipsisBox(ltr, visibleLeftEdge, visibleRightEdge, ellipsisWidth, foundBox); if (currResult != -1 && result == -1) result = currResult; diff --git a/src/3rdparty/webkit/WebCore/rendering/InlineFlowBox.h b/src/3rdparty/webkit/WebCore/rendering/InlineFlowBox.h index ab1b6f2..9bb1162 100644 --- a/src/3rdparty/webkit/WebCore/rendering/InlineFlowBox.h +++ b/src/3rdparty/webkit/WebCore/rendering/InlineFlowBox.h @@ -58,13 +58,13 @@ public: InlineFlowBox* prevFlowBox() const { return static_cast<InlineFlowBox*>(m_prevLine); } InlineFlowBox* nextFlowBox() const { return static_cast<InlineFlowBox*>(m_nextLine); } - InlineBox* firstChild() { checkConsistency(); return m_firstChild; } - InlineBox* lastChild() { checkConsistency(); return m_lastChild; } + InlineBox* firstChild() const { checkConsistency(); return m_firstChild; } + InlineBox* lastChild() const { checkConsistency(); return m_lastChild; } - virtual InlineBox* firstLeafChild(); - virtual InlineBox* lastLeafChild(); - InlineBox* firstLeafChildAfterBox(InlineBox* start = 0); - InlineBox* lastLeafChildBeforeBox(InlineBox* start = 0); + virtual bool isLeaf() const { return false; } + + InlineBox* firstLeafChild() const; + InlineBox* lastLeafChild() const; virtual void setConstructed() { diff --git a/src/3rdparty/webkit/WebCore/rendering/InlineTextBox.cpp b/src/3rdparty/webkit/WebCore/rendering/InlineTextBox.cpp index 53646f9..94dd4f3 100644 --- a/src/3rdparty/webkit/WebCore/rendering/InlineTextBox.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/InlineTextBox.cpp @@ -753,8 +753,8 @@ void InlineTextBox::paintSpellingOrGrammarMarker(GraphicsContext* pt, int tx, in void InlineTextBox::paintTextMatchMarker(GraphicsContext* pt, int tx, int ty, DocumentMarker marker, RenderStyle* style, const Font& font) { - // Use same y positioning and height as for selection, so that when the selection and this highlight are on - // the same word there are no pieces sticking out. + // Use same y positioning and height as for selection, so that when the selection and this highlight are on + // the same word there are no pieces sticking out. int y = selectionTop(); int h = selectionHeight(); diff --git a/src/3rdparty/webkit/WebCore/rendering/MediaControlElements.cpp b/src/3rdparty/webkit/WebCore/rendering/MediaControlElements.cpp index fc2790c..74293e0 100644 --- a/src/3rdparty/webkit/WebCore/rendering/MediaControlElements.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/MediaControlElements.cpp @@ -32,6 +32,7 @@ #include "MediaControlElements.h" +#include "LocalizedStrings.h" #include "EventNames.h" #include "FloatConversion.h" #include "Frame.h" @@ -40,6 +41,7 @@ #include "RenderMedia.h" #include "RenderSlider.h" #include "RenderTheme.h" +#include "CString.h" namespace WebCore { @@ -74,51 +76,165 @@ void MediaControlShadowRootElement::updateStyle() } // ---------------------------- + -MediaTextDisplayElement::MediaTextDisplayElement(Document* doc, PseudoId pseudo, HTMLMediaElement* mediaElement) +MediaControlElement::MediaControlElement(Document* doc, PseudoId pseudo, HTMLMediaElement* mediaElement) : HTMLDivElement(divTag, doc) , m_mediaElement(mediaElement) , m_pseudoStyleId(pseudo) { - RenderStyle* style = m_mediaElement->renderer()->getCachedPseudoStyle(m_pseudoStyleId); - RenderObject* renderer = createRenderer(m_mediaElement->renderer()->renderArena(), style); - if (renderer) { - setRenderer(renderer); - renderer->setStyle(style); - } - setAttached(); setInDocument(true); } -void MediaTextDisplayElement::attachToParent(Element* parent) +void MediaControlElement::attachToParent(Element* parent) { parent->addChild(this); - if (renderer() && parent->renderer()) - parent->renderer()->addChild(renderer()); } -void MediaTextDisplayElement::update() +void MediaControlElement::update() { if (renderer()) renderer()->updateFromElement(); updateStyle(); } -void MediaTextDisplayElement::updateStyle() +PassRefPtr<RenderStyle> MediaControlElement::styleForElement() +{ + RenderStyle* style = m_mediaElement->renderer()->getCachedPseudoStyle(m_pseudoStyleId); + if (!style) + return 0; + + // text-decoration can't be overrided from CSS. So we do it here. + // See https://bugs.webkit.org/show_bug.cgi?id=27015 + style->setTextDecoration(TDNONE); + style->setTextDecorationsInEffect(TDNONE); + + return style; +} + +bool MediaControlElement::rendererIsNeeded(RenderStyle* style) +{ + return HTMLDivElement::rendererIsNeeded(style) && parent() && parent()->renderer(); +} + +void MediaControlElement::attach() { - if (renderer() && m_mediaElement->renderer()) { - RenderStyle* style = m_mediaElement->renderer()->getCachedPseudoStyle(m_pseudoStyleId); - renderer()->setStyle(style); + RefPtr<RenderStyle> style = styleForElement(); + if (!style) + return; + bool needsRenderer = rendererIsNeeded(style.get()); + if (!needsRenderer) + return; + RenderObject* renderer = createRenderer(m_mediaElement->renderer()->renderArena(), style.get()); + if (!renderer) + return; + renderer->setStyle(style.get()); + setRenderer(renderer); + if (parent() && parent()->renderer()) { + // Find next sibling with a renderer to determine where to insert. + Node* sibling = nextSibling(); + while (sibling && !sibling->renderer()) + sibling = sibling->nextSibling(); + parent()->renderer()->addChild(renderer, sibling ? sibling->renderer() : 0); } + ContainerNode::attach(); } -MediaTimeDisplayElement::MediaTimeDisplayElement(Document* doc, HTMLMediaElement* element, bool currentTime) - : MediaTextDisplayElement(doc, currentTime ? MEDIA_CONTROLS_CURRENT_TIME_DISPLAY : MEDIA_CONTROLS_TIME_REMAINING_DISPLAY, element) +void MediaControlElement::updateStyle() { + if (!m_mediaElement || !m_mediaElement->renderer()) + return; + + RefPtr<RenderStyle> style = styleForElement(); + if (!style) + return; + + bool needsRenderer = rendererIsNeeded(style.get()) && parent() && parent()->renderer(); + if (renderer() && !needsRenderer) + detach(); + else if (!renderer() && needsRenderer) + attach(); + else if (renderer()) { + renderer()->setStyle(style.get()); + + // Make sure that if there is any innerText renderer, it is updated as well. + if (firstChild() && firstChild()->renderer()) + firstChild()->renderer()->setStyle(style.get()); + } } // ---------------------------- +MediaControlTimelineContainerElement::MediaControlTimelineContainerElement(Document* doc, HTMLMediaElement* element) +: MediaControlElement(doc, MEDIA_CONTROLS_TIMELINE_CONTAINER, element) +{ +} + +bool MediaControlTimelineContainerElement::rendererIsNeeded(RenderStyle* style) +{ + if (!MediaControlElement::rendererIsNeeded(style)) + return false; + + // This is for MediaControllerThemeClassic: + // If there is no style for MediaControlStatusDisplayElement style, don't hide + // the timeline. + if (!m_mediaElement->renderer()->getCachedPseudoStyle(MEDIA_CONTROLS_STATUS_DISPLAY)) + return true; + + float duration = m_mediaElement->duration(); + return !isnan(duration) && !isinf(duration); +} + + +// ---------------------------- + +MediaControlStatusDisplayElement::MediaControlStatusDisplayElement(Document* doc, HTMLMediaElement* element) +: MediaControlElement(doc, MEDIA_CONTROLS_STATUS_DISPLAY, element) +, m_stateBeingDisplayed(Nothing) +{ +} + +void MediaControlStatusDisplayElement::update() +{ + MediaControlElement::update(); + + // Get the new state that we'll have to display. + StateBeingDisplayed newStateToDisplay = Nothing; + + if (m_mediaElement->readyState() != HTMLMediaElement::HAVE_ENOUGH_DATA && !m_mediaElement->currentSrc().isEmpty()) + newStateToDisplay = Loading; + else if (m_mediaElement->movieLoadType() == MediaPlayer::LiveStream) + newStateToDisplay = LiveBroadcast; + + // Propagate only if needed. + if (newStateToDisplay == m_stateBeingDisplayed) + return; + m_stateBeingDisplayed = newStateToDisplay; + + ExceptionCode e; + switch (m_stateBeingDisplayed) { + case Nothing: + setInnerText("", e); + break; + case Loading: + setInnerText(mediaElementLoadingStateText(), e); + break; + case LiveBroadcast: + setInnerText(mediaElementLiveBroadcastStateText(), e); + break; + } +} + +bool MediaControlStatusDisplayElement::rendererIsNeeded(RenderStyle* style) +{ + if (!MediaControlElement::rendererIsNeeded(style)) + return false; + float duration = m_mediaElement->duration(); + return (isnan(duration) || isinf(duration)); +} + +// ---------------------------- + MediaControlInputElement::MediaControlInputElement(Document* doc, PseudoId pseudo, const String& type, HTMLMediaElement* mediaElement, MediaControlElementType displayType) : HTMLInputElement(inputTag, doc) , m_mediaElement(mediaElement) @@ -126,15 +242,12 @@ MediaControlInputElement::MediaControlInputElement(Document* doc, PseudoId pseud , m_displayType(displayType) { setInputType(type); - updateStyle(); setInDocument(true); } void MediaControlInputElement::attachToParent(Element* parent) { parent->addChild(this); - if (renderer() && parent->renderer()) - parent->renderer()->addChild(renderer()); } void MediaControlInputElement::update() @@ -145,34 +258,58 @@ void MediaControlInputElement::update() updateStyle(); } +PassRefPtr<RenderStyle> MediaControlInputElement::styleForElement() +{ + return m_mediaElement->renderer()->getCachedPseudoStyle(m_pseudoStyleId); +} + +bool MediaControlInputElement::rendererIsNeeded(RenderStyle* style) +{ + return HTMLInputElement::rendererIsNeeded(style) && parent() && parent()->renderer(); +} + +void MediaControlInputElement::attach() +{ + RefPtr<RenderStyle> style = styleForElement(); + if (!style) + return; + + bool needsRenderer = rendererIsNeeded(style.get()); + if (!needsRenderer) + return; + RenderObject* renderer = createRenderer(m_mediaElement->renderer()->renderArena(), style.get()); + if (!renderer) + return; + renderer->setStyle(style.get()); + setRenderer(renderer); + if (parent() && parent()->renderer()) { + // Find next sibling with a renderer to determine where to insert. + Node* sibling = nextSibling(); + while (sibling && !sibling->renderer()) + sibling = sibling->nextSibling(); + parent()->renderer()->addChild(renderer, sibling ? sibling->renderer() : 0); + } + ContainerNode::attach(); +} + void MediaControlInputElement::updateStyle() { if (!m_mediaElement || !m_mediaElement->renderer()) return; - RenderStyle* style = m_mediaElement->renderer()->getCachedPseudoStyle(m_pseudoStyleId); + RefPtr<RenderStyle> style = styleForElement(); + if (!style) + return; - bool needsRenderer = rendererIsNeeded(style); + bool needsRenderer = rendererIsNeeded(style.get()) && parent() && parent()->renderer(); if (renderer() && !needsRenderer) detach(); - else if (!renderer() && needsRenderer) { - RenderObject* renderer = createRenderer(m_mediaElement->renderer()->renderArena(), style); - if (!renderer) - return; - renderer->setStyle(style); - setRenderer(renderer); - setAttached(); - if (parent() && parent()->renderer()) { - // Find next sibling with a renderer to determine where to insert. - Node* sibling = nextSibling(); - while (sibling && !sibling->renderer()) - sibling = sibling->nextSibling(); - parent()->renderer()->addChild(renderer, sibling ? sibling->renderer() : 0); - } - } else if (renderer()) - renderer()->setStyle(style); + else if (!renderer() && needsRenderer) + attach(); + else if (renderer()) + renderer()->setStyle(style.get()); } - + bool MediaControlInputElement::hitTest(const IntPoint& absPoint) { if (renderer() && renderer()->style()->hasAppearance()) @@ -283,6 +420,59 @@ void MediaControlSeekButtonElement::seekTimerFired(Timer<MediaControlSeekButtonE m_mediaElement->setCurrentTime(m_mediaElement->currentTime() + seekTime, ec); } +void MediaControlSeekButtonElement::detach() +{ + if (m_capturing) { + if (Frame* frame = document()->frame()) + frame->eventHandler()->setCapturingMouseEventsNode(0); + } + MediaControlInputElement::detach(); +} + + +// ---------------------------- + +MediaControlRewindButtonElement::MediaControlRewindButtonElement(Document* doc, HTMLMediaElement* element) +: MediaControlInputElement(doc, MEDIA_CONTROLS_REWIND_BUTTON, "button", element, MediaRewindButton) +{ +} + +void MediaControlRewindButtonElement::defaultEventHandler(Event* event) +{ + if (event->type() == eventNames().clickEvent) { + m_mediaElement->rewind(30); + event->setDefaultHandled(); + } + HTMLInputElement::defaultEventHandler(event); +} + +bool MediaControlRewindButtonElement::rendererIsNeeded(RenderStyle* style) +{ + return MediaControlInputElement::rendererIsNeeded(style) && m_mediaElement->movieLoadType() != MediaPlayer::LiveStream; +} + + +// ---------------------------- + +MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement(Document* doc, HTMLMediaElement* element) +: MediaControlInputElement(doc, MEDIA_CONTROLS_RETURN_TO_REALTIME_BUTTON, "button", element, MediaReturnToRealtimeButton) +{ +} + +void MediaControlReturnToRealtimeButtonElement::defaultEventHandler(Event* event) +{ + if (event->type() == eventNames().clickEvent) { + m_mediaElement->returnToRealtime(); + event->setDefaultHandled(); + } + HTMLInputElement::defaultEventHandler(event); +} + +bool MediaControlReturnToRealtimeButtonElement::rendererIsNeeded(RenderStyle* style) +{ + return MediaControlInputElement::rendererIsNeeded(style) && m_mediaElement->movieLoadType() == MediaPlayer::LiveStream; +} + // ---------------------------- MediaControlTimelineElement::MediaControlTimelineElement(Document* document, HTMLMediaElement* element) @@ -295,9 +485,9 @@ void MediaControlTimelineElement::defaultEventHandler(Event* event) if (event->type() == eventNames().mousedownEvent) m_mediaElement->beginScrubbing(); - HTMLInputElement::defaultEventHandler(event); + MediaControlInputElement::defaultEventHandler(event); - if (event->type() == eventNames().mouseoverEvent || event->type() == eventNames().mouseoutEvent || event->type() == eventNames().mousemoveEvent ) { + if (event->type() == eventNames().mouseoverEvent || event->type() == eventNames().mouseoutEvent || event->type() == eventNames().mousemoveEvent) { return; } @@ -322,6 +512,7 @@ void MediaControlTimelineElement::update(bool updateDuration) setAttribute(maxAttr, String::number(isfinite(dur) ? dur : 0)); } setValue(String::number(m_mediaElement->currentTime())); + MediaControlInputElement::update(); } // ---------------------------- @@ -341,11 +532,42 @@ void MediaControlFullscreenButtonElement::defaultEventHandler(Event* event) bool MediaControlFullscreenButtonElement::rendererIsNeeded(RenderStyle* style) { - return m_mediaElement->supportsFullscreen() && MediaControlInputElement::rendererIsNeeded(style); + return MediaControlInputElement::rendererIsNeeded(style) && m_mediaElement->supportsFullscreen(); } // ---------------------------- +MediaControlTimeDisplayElement::MediaControlTimeDisplayElement(Document* doc, PseudoId pseudo, HTMLMediaElement* element) + : MediaControlElement(doc, pseudo, element) + , m_isVisible(true) +{ +} + +PassRefPtr<RenderStyle> MediaControlTimeDisplayElement::styleForElement() +{ + RefPtr<RenderStyle> style = MediaControlElement::styleForElement(); + if (!m_isVisible) { + style = RenderStyle::clone(style.get()); + style->setWidth(Length(0, Fixed)); + } + return style; +} + +void MediaControlTimeDisplayElement::setVisible(bool visible) +{ + // This function is used during the RenderMedia::layout() + // call, where we cannot change the renderer at this time. + if (!renderer() || !renderer()->style()) + return; + + if (visible == m_isVisible) + return; + m_isVisible = visible; + RefPtr<RenderStyle> style = styleForElement(); + renderer()->setStyle(style.get()); +} + + } //namespace WebCore #endif // enable(video) diff --git a/src/3rdparty/webkit/WebCore/rendering/MediaControlElements.h b/src/3rdparty/webkit/WebCore/rendering/MediaControlElements.h index eefb2ce..d5fa5d2 100644 --- a/src/3rdparty/webkit/WebCore/rendering/MediaControlElements.h +++ b/src/3rdparty/webkit/WebCore/rendering/MediaControlElements.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008 Apple Inc. All rights reserved. + * Copyright (C) 2008, 2009 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -43,11 +43,24 @@ namespace WebCore { class Event; class Frame; +// Must match WebKitSystemInterface.h enum MediaControlElementType { - MediaFullscreenButton, MediaMuteButton, MediaPlayButton, - MediaSeekBackButton, MediaSeekForwardButton, MediaSlider, MediaSliderThumb, - MediaUnMuteButton, MediaPauseButton, MediaTimelineContainer, MediaCurrentTimeDisplay, - MediaTimeRemainingDisplay, MediaControlsPanel + MediaFullscreenButton = 0, + MediaMuteButton, + MediaPlayButton, + MediaSeekBackButton, + MediaSeekForwardButton, + MediaSlider, + MediaSliderThumb, + MediaRewindButton, + MediaReturnToRealtimeButton, + MediaUnMuteButton, + MediaPauseButton, + MediaTimelineContainer, + MediaCurrentTimeDisplay, + MediaTimeRemainingDisplay, + MediaStatusDisplay, + MediaControlsPanel }; class MediaControlShadowRootElement : public HTMLDivElement { @@ -63,15 +76,19 @@ private: HTMLMediaElement* m_mediaElement; }; - // ---------------------------- - -class MediaTextDisplayElement : public HTMLDivElement -{ +// ---------------------------- + +class MediaControlElement : public HTMLDivElement { public: - MediaTextDisplayElement(Document*, PseudoId, HTMLMediaElement*); + MediaControlElement(Document*, PseudoId, HTMLMediaElement*); + virtual void attach(); + virtual bool rendererIsNeeded(RenderStyle*); + + virtual PassRefPtr<RenderStyle> styleForElement(); void attachToParent(Element*); void update(); - void updateStyle(); + virtual void updateStyle(); + protected: HTMLMediaElement* m_mediaElement; PseudoId m_pseudoStyleId; @@ -79,9 +96,22 @@ protected: // ---------------------------- -class MediaTimeDisplayElement : public MediaTextDisplayElement { +class MediaControlTimelineContainerElement : public MediaControlElement { +public: + MediaControlTimelineContainerElement(Document*, HTMLMediaElement*); + virtual bool rendererIsNeeded(RenderStyle*); +}; + +// ---------------------------- + +class MediaControlStatusDisplayElement : public MediaControlElement { public: - MediaTimeDisplayElement(Document*, HTMLMediaElement*, bool currentTime); + MediaControlStatusDisplayElement(Document*, HTMLMediaElement*); + virtual void update(); + virtual bool rendererIsNeeded(RenderStyle*); +private: + enum StateBeingDisplayed { Nothing, Loading, LiveBroadcast }; + StateBeingDisplayed m_stateBeingDisplayed; }; // ---------------------------- @@ -89,9 +119,14 @@ public: class MediaControlInputElement : public HTMLInputElement { public: MediaControlInputElement(Document*, PseudoId, const String& type, HTMLMediaElement*, MediaControlElementType); + virtual void attach(); + virtual bool rendererIsNeeded(RenderStyle*); + + virtual PassRefPtr<RenderStyle> styleForElement(); void attachToParent(Element*); void update(); - virtual void updateStyle(); + void updateStyle(); + bool hitTest(const IntPoint& absPoint); MediaControlElementType displayType() const { return m_displayType; } @@ -128,6 +163,7 @@ class MediaControlSeekButtonElement : public MediaControlInputElement { public: MediaControlSeekButtonElement(Document*, HTMLMediaElement*, bool forward); virtual void defaultEventHandler(Event*); + virtual void detach(); void seekTimerFired(Timer<MediaControlSeekButtonElement>*); private: @@ -136,6 +172,24 @@ private: bool m_capturing; Timer<MediaControlSeekButtonElement> m_seekTimer; }; + +// ---------------------------- + +class MediaControlRewindButtonElement : public MediaControlInputElement { +public: + MediaControlRewindButtonElement(Document*, HTMLMediaElement*); + virtual void defaultEventHandler(Event*); + virtual bool rendererIsNeeded(RenderStyle*); +}; + +// ---------------------------- + +class MediaControlReturnToRealtimeButtonElement : public MediaControlInputElement { +public: + MediaControlReturnToRealtimeButtonElement(Document*, HTMLMediaElement*); + virtual void defaultEventHandler(Event*); + virtual bool rendererIsNeeded(RenderStyle*); +}; // ---------------------------- @@ -157,14 +211,27 @@ public: // ---------------------------- +class MediaControlTimeDisplayElement : public MediaControlElement { +public: + MediaControlTimeDisplayElement(Document*, PseudoId, HTMLMediaElement*); + void setVisible(bool); + virtual PassRefPtr<RenderStyle> styleForElement(); + +private: + bool m_isVisible; +}; + +// ---------------------------- + class RenderMediaControlShadowRoot : public RenderBlock { public: RenderMediaControlShadowRoot(Element* e) : RenderBlock(e) { } void setParent(RenderObject* p) { RenderObject::setParent(p); } }; - + // ---------------------------- + } //namespace WebCore #endif // enable(video) #endif // MediaControlElements_h diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderApplet.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderApplet.cpp index a989d6f..062641e 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderApplet.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderApplet.cpp @@ -26,6 +26,7 @@ #include "HTMLAppletElement.h" #include "HTMLNames.h" #include "HTMLParamElement.h" +#include "Widget.h" namespace WebCore { diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderArena.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderArena.cpp index b7bfe4d..34325d4 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderArena.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderArena.cpp @@ -39,7 +39,7 @@ #include <string.h> #include <wtf/Assertions.h> -#define ROUNDUP(x,y) ((((x)+((y)-1))/(y))*(y)) +#define ROUNDUP(x, y) ((((x)+((y)-1))/(y))*(y)) namespace WebCore { diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderBlock.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderBlock.cpp index 98426ed..c949eda 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderBlock.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderBlock.cpp @@ -84,6 +84,10 @@ static PercentHeightContainerMap* gPercentHeightContainerMap = 0; typedef WTF::HashMap<RenderBlock*, ListHashSet<RenderInline*>*> ContinuationOutlineTableMap; +typedef WTF::HashSet<RenderBlock*> DelayedUpdateScrollInfoSet; +static int gDelayUpdateScrollInfo = 0; +static DelayedUpdateScrollInfoSet* gDelayedUpdateScrollInfoSet = 0; + // Our MarginInfo state used when laying out block children. RenderBlock::MarginInfo::MarginInfo(RenderBlock* block, int top, int bottom) { @@ -389,14 +393,14 @@ void RenderBlock::deleteLineBoxTree() m_lineBoxes.deleteLineBoxTree(renderArena()); } -RootInlineBox* RenderBlock::createRootBox() +RootInlineBox* RenderBlock::createRootInlineBox() { return new (renderArena()) RootInlineBox(this); } -RootInlineBox* RenderBlock::createRootInlineBox() +RootInlineBox* RenderBlock::createAndAppendRootInlineBox() { - RootInlineBox* rootBox = createRootBox(); + RootInlineBox* rootBox = createRootInlineBox(); m_lineBoxes.appendLineBox(rootBox); return rootBox; } @@ -688,6 +692,45 @@ bool RenderBlock::isSelfCollapsingBlock() const return false; } +void RenderBlock::startDelayUpdateScrollInfo() +{ + if (gDelayUpdateScrollInfo == 0) { + ASSERT(!gDelayedUpdateScrollInfoSet); + gDelayedUpdateScrollInfoSet = new DelayedUpdateScrollInfoSet; + } + ASSERT(gDelayedUpdateScrollInfoSet); + ++gDelayUpdateScrollInfo; +} + +void RenderBlock::finishDelayUpdateScrollInfo() +{ + --gDelayUpdateScrollInfo; + ASSERT(gDelayUpdateScrollInfo >= 0); + if (gDelayUpdateScrollInfo == 0) { + ASSERT(gDelayedUpdateScrollInfoSet); + + for (DelayedUpdateScrollInfoSet::iterator it = gDelayedUpdateScrollInfoSet->begin(); it != gDelayedUpdateScrollInfoSet->end(); ++it) { + RenderBlock* block = *it; + if (block->hasOverflowClip()) { + block->layer()->updateScrollInfoAfterLayout(); + } + } + + delete gDelayedUpdateScrollInfoSet; + gDelayedUpdateScrollInfoSet = 0; + } +} + +void RenderBlock::updateScrollInfoAfterLayout() +{ + if (hasOverflowClip()) { + if (gDelayUpdateScrollInfo) + gDelayedUpdateScrollInfoSet->add(this); + else + layer()->updateScrollInfoAfterLayout(); + } +} + void RenderBlock::layout() { // Update our first letter info now. @@ -844,8 +887,7 @@ void RenderBlock::layoutBlock(bool relayoutChildren) // Update our scroll information if we're overflow:auto/scroll/hidden now that we know if // we overflow or not. - if (hasOverflowClip()) - layer()->updateScrollInfoAfterLayout(); + updateScrollInfoAfterLayout(); // Repaint with our new bounds if they are different from our old bounds. bool didFullRepaint = repainter.repaintAfterLayout(); @@ -1436,8 +1478,10 @@ void RenderBlock::layoutBlockChildren(bool relayoutChildren, int& maxFloatBottom child->repaintDuringLayoutIfMoved(oldRect); } - if (!childHadLayout && child->checkForRepaintDuringLayout()) + if (!childHadLayout && child->checkForRepaintDuringLayout()) { child->repaint(); + child->repaintOverhangingFloats(true); + } ASSERT(oldLayoutDelta == view()->layoutDelta()); } @@ -1465,8 +1509,7 @@ bool RenderBlock::layoutOnlyPositionedObjects() statePusher.pop(); - if (hasOverflowClip()) - layer()->updateScrollInfoAfterLayout(); + updateScrollInfoAfterLayout(); setNeedsLayout(false); return true; @@ -2421,10 +2464,10 @@ bool RenderBlock::positionNewFloats() if (o->style()->floating() == FLEFT) { int heightRemainingLeft = 1; int heightRemainingRight = 1; - int fx = leftRelOffset(y,lo, false, &heightRemainingLeft); - while (rightRelOffset(y,ro, false, &heightRemainingRight)-fx < fwidth) { + int fx = leftRelOffset(y, lo, false, &heightRemainingLeft); + while (rightRelOffset(y, ro, false, &heightRemainingRight)-fx < fwidth) { y += min(heightRemainingLeft, heightRemainingRight); - fx = leftRelOffset(y,lo, false, &heightRemainingLeft); + fx = leftRelOffset(y, lo, false, &heightRemainingLeft); } fx = max(0, fx); f->m_left = fx; @@ -2432,8 +2475,8 @@ bool RenderBlock::positionNewFloats() } else { int heightRemainingLeft = 1; int heightRemainingRight = 1; - int fx = rightRelOffset(y,ro, false, &heightRemainingRight); - while (fx - leftRelOffset(y,lo, false, &heightRemainingLeft) < fwidth) { + int fx = rightRelOffset(y, ro, false, &heightRemainingRight); + while (fx - leftRelOffset(y, lo, false, &heightRemainingLeft) < fwidth) { y += min(heightRemainingLeft, heightRemainingRight); fx = rightRelOffset(y, ro, false, &heightRemainingRight); } @@ -2458,7 +2501,7 @@ void RenderBlock::newLine(EClear clear) positionNewFloats(); // set y position int newY = 0; - switch(clear) + switch (clear) { case CLEFT: newY = leftBottom(); @@ -2629,12 +2672,12 @@ int RenderBlock::floatBottom() const { if (!m_floatingObjects) return 0; - int bottom=0; + int bottom = 0; FloatingObject* r; DeprecatedPtrListIterator<FloatingObject> it(*m_floatingObjects); for ( ; (r = it.current()); ++it ) if (r->m_bottom>bottom) - bottom=r->m_bottom; + bottom = r->m_bottom; return bottom; } @@ -2919,12 +2962,12 @@ int RenderBlock::leftBottom() { if (!m_floatingObjects) return 0; - int bottom=0; + int bottom = 0; FloatingObject* r; DeprecatedPtrListIterator<FloatingObject> it(*m_floatingObjects); for ( ; (r = it.current()); ++it ) if (r->m_bottom > bottom && r->type() == FloatingObject::FloatLeft) - bottom=r->m_bottom; + bottom = r->m_bottom; return bottom; } @@ -2933,12 +2976,12 @@ int RenderBlock::rightBottom() { if (!m_floatingObjects) return 0; - int bottom=0; + int bottom = 0; FloatingObject* r; DeprecatedPtrListIterator<FloatingObject> it(*m_floatingObjects); for ( ; (r = it.current()); ++it ) if (r->m_bottom>bottom && r->type() == FloatingObject::FloatRight) - bottom=r->m_bottom; + bottom = r->m_bottom; return bottom; } @@ -3246,12 +3289,12 @@ void RenderBlock::addVisualOverflow(const IntRect& r) m_overflowHeight = max(m_overflowHeight, r.bottom()); } -bool RenderBlock::isPointInOverflowControl(HitTestResult& result, int, int, int, int) +bool RenderBlock::isPointInOverflowControl(HitTestResult& result, int _x, int _y, int _tx, int _ty) { if (!scrollsOverflow()) return false; - return layer()->hitTestOverflowControls(result); + return layer()->hitTestOverflowControls(result, IntPoint(_x - _tx, _y - _ty)); } bool RenderBlock::nodeAtPoint(const HitTestRequest& request, HitTestResult& result, int _x, int _y, int _tx, int _ty, HitTestAction hitTestAction) @@ -3900,8 +3943,7 @@ void RenderBlock::calcPrefWidths() setPrefWidthsDirty(false); } -struct InlineMinMaxIterator -{ +struct InlineMinMaxIterator { /* InlineMinMaxIterator is a class that will iterate over all render objects that contribute to inline min/max width calculations. Note the following about the way it walks: (1) Positioned content is skipped (since it does not contribute to min/max width of a block) diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderBlock.h b/src/3rdparty/webkit/WebCore/rendering/RenderBlock.h index 31eae7c8..871e439 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderBlock.h +++ b/src/3rdparty/webkit/WebCore/rendering/RenderBlock.h @@ -35,7 +35,6 @@ namespace WebCore { class InlineIterator; -class Position; class RenderInline; class RootInlineBox; @@ -142,23 +141,26 @@ public: virtual void updateBeforeAfterContent(PseudoId); - RootInlineBox* createRootInlineBox(); + RootInlineBox* createAndAppendRootInlineBox(); + virtual RootInlineBox* createRootInlineBox(); // Subclassed by SVG and Ruby. // Called to lay out the legend for a fieldset. virtual RenderObject* layoutLegend(bool /*relayoutChildren*/) { return 0; } - // the implementation of the following functions is in bidi.cpp struct FloatWithRect { FloatWithRect(RenderBox* f) : object(f) , rect(IntRect(f->x() - f->marginLeft(), f->y() - f->marginTop(), f->width() + f->marginLeft() + f->marginRight(), f->height() + f->marginTop() + f->marginBottom())) + , everHadLayout(f->m_everHadLayout) { } RenderBox* object; IntRect rect; + bool everHadLayout; }; + // The following functions' implementations are in RenderBlockLineLayout.cpp. void bidiReorderLine(InlineBidiResolver&, const InlineIterator& end, bool previousLineBrokeCleanly); RootInlineBox* determineStartPosition(bool& firstLine, bool& fullLayout, bool& previousLineBrokeCleanly, InlineBidiResolver&, Vector<FloatWithRect>& floats, unsigned& numCleanFloats); @@ -179,7 +181,7 @@ public: void checkLinesForOverflow(); void deleteEllipsisLineBoxes(); void checkLinesForTextOverflow(); - // end bidi.cpp functions + // End of functions defined in RenderBlockLineLayout.cpp. virtual void paint(PaintInfo&, int tx, int ty); virtual void paintObject(PaintInfo&, int tx, int ty); @@ -328,6 +330,14 @@ public: // style from this RenderBlock. RenderBlock* createAnonymousBlock() const; + // Delay update scrollbar until finishDelayRepaint() will be + // called. This function is used when a flexbox is layouting its + // descendant. If multiple startDelayRepaint() is called, + // finishDelayRepaint() will do nothing until finishDelayRepaint() + // is called same times. + static void startDelayUpdateScrollInfo(); + static void finishDelayUpdateScrollInfo(); + private: void adjustPointToColumnContents(IntPoint&) const; void adjustForBorderFit(int x, int& left, int& right) const; // Helper function for borderFitAdjust @@ -342,7 +352,6 @@ protected: virtual bool hasLineIfEmpty() const; bool layoutOnlyPositionedObjects(); - virtual RootInlineBox* createRootBox(); // Subclassed by SVG. private: Position positionForBox(InlineBox*, bool start = true) const; @@ -357,6 +366,8 @@ private: bool expandsToEncloseOverhangingFloats() const; + void updateScrollInfoAfterLayout(); + protected: struct FloatingObject { enum Type { diff --git a/src/3rdparty/webkit/WebCore/rendering/bidi.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderBlockLineLayout.cpp index 635ad9a..c243dc1 100644 --- a/src/3rdparty/webkit/WebCore/rendering/bidi.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderBlockLineLayout.cpp @@ -1,6 +1,6 @@ /* * Copyright (C) 2000 Lars Knoll (knoll@kde.org) - * Copyright (C) 2004, 2006, 2007, 2008 Apple Inc. All right reserved. + * Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009 Apple Inc. All right reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -20,17 +20,13 @@ */ #include "config.h" -#include "bidi.h" +#include "BidiResolver.h" #include "CharacterNames.h" -#include "Document.h" -#include "Element.h" -#include "FrameView.h" #include "InlineTextBox.h" #include "Logging.h" #include "RenderArena.h" #include "RenderInline.h" -#include "RenderLayer.h" #include "RenderListMarker.h" #include "RenderView.h" #include "break_lines.h" @@ -70,7 +66,7 @@ public: bool atEnd() const; UChar current() const; - WTF::Unicode::Direction direction() const; + Direction direction() const; RenderBlock* block; RenderObject* obj; @@ -102,8 +98,35 @@ static int inlineWidth(RenderObject* child, bool start = true, bool end = true) return extraWidth; } +struct BidiRun : BidiCharacterRun { + BidiRun(int start, int stop, RenderObject* object, BidiContext* context, Direction dir) + : BidiCharacterRun(start, stop, context, dir) + , m_object(object) + , m_box(0) + { + } + + void destroy(); + + // Overloaded new operator. + void* operator new(size_t, RenderArena*) throw(); + + // Overridden to prevent the normal delete from being called. + void operator delete(void*, size_t); + + BidiRun* next() { return static_cast<BidiRun*>(m_next); } + +private: + // The normal operator new is disallowed. + void* operator new(size_t) throw(); + +public: + RenderObject* m_object; + InlineBox* m_box; +}; + #ifndef NDEBUG -static WTF::RefCountedLeakCounter bidiRunCounter("BidiRun"); +static RefCountedLeakCounter bidiRunCounter("BidiRun"); static bool inBidiRunDestroy; #endif @@ -449,7 +472,7 @@ void InlineBidiResolver::appendRun() static inline InlineBox* createInlineBoxForRenderer(RenderObject* obj, bool isRootLineBox, bool isOnlyRun = false) { if (isRootLineBox) - return toRenderBlock(obj)->createRootInlineBox(); + return toRenderBlock(obj)->createAndAppendRootInlineBox(); if (obj->isText()) { InlineTextBox* textBox = toRenderText(obj)->createInlineTextBox(); @@ -463,7 +486,7 @@ static inline InlineBox* createInlineBoxForRenderer(RenderObject* obj, bool isRo if (obj->isBox()) return toRenderBox(obj)->createInlineBox(); - return toRenderInline(obj)->createInlineFlowBox(); + return toRenderInline(obj)->createAndAppendInlineFlowBox(); } static inline void dirtyLineBoxesForRenderer(RenderObject* o, bool fullLayout) @@ -641,7 +664,7 @@ void RenderBlock::computeHorizontalPositionsForLine(RootInlineBox* lineBox, bool // objects horizontally. The total width of the line can be increased if we end up // justifying text. int x = leftOffset(height(), firstLine); - switch(textAlign) { + switch (textAlign) { case LEFT: case WEBKIT_LEFT: // The direction of the block should determine what happens with wide lines. In @@ -808,7 +831,6 @@ void RenderBlock::layoutInlineChildren(bool relayoutChildren, int& repaintTop, i // Figure out if we should clear out our line boxes. // FIXME: Handle resize eventually! - // FIXME: Do something better when floats are present. bool fullLayout = !firstLineBox() || !firstChild() || selfNeedsLayout() || relayoutChildren; if (fullLayout) lineBoxes()->deleteLineBoxes(renderArena()); @@ -1120,6 +1142,17 @@ void RenderBlock::layoutInlineChildren(bool relayoutChildren, int& repaintTop, i } lastFloat = m_floatingObjects->last(); } + size_t floatCount = floats.size(); + // Floats that did not have layout did not repaint when we laid them out. They would have + // painted by now if they had moved, but if they stayed at (0, 0), they still need to be + // painted. + for (size_t i = 0; i < floatCount; ++i) { + if (!floats[i].everHadLayout) { + RenderBox* f = floats[i].object; + if (!f->x() && !f->y() && f->checkForRepaintDuringLayout()) + f->repaint(); + } + } } // Now add in the bottom border/padding. diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderBox.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderBox.cpp index ab0d153..4db5c55 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderBox.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderBox.cpp @@ -1562,7 +1562,7 @@ int RenderBox::calcReplacedWidthUsing(Length width) const default: return intrinsicSize().width(); } - } +} int RenderBox::calcReplacedHeight() const { diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderBoxModelObject.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderBoxModelObject.cpp index 8973e64..ced5a78 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderBoxModelObject.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderBoxModelObject.cpp @@ -1124,6 +1124,9 @@ void RenderBoxModelObject::paintBoxShadow(GraphicsContext* context, int tx, int { // FIXME: Deal with border-image. Would be great to use border-image as a mask. + if (context->paintingDisabled()) + return; + IntRect rect(tx, ty, w, h); bool hasBorderRadius = s->hasBorderRadius(); bool hasOpaqueBackground = s->backgroundColor().isValid() && s->backgroundColor().alpha() == 255; @@ -1134,18 +1137,16 @@ void RenderBoxModelObject::paintBoxShadow(GraphicsContext* context, int tx, int int shadowBlur = shadow->blur; IntRect fillRect(rect); - if (hasBorderRadius) { - IntRect shadowRect(rect); - shadowRect.inflate(shadowBlur); - shadowRect.move(shadowOffset); - context->clip(shadowRect); - - // Move the fill just outside the clip, adding 1 pixel separation so that the fill does not - // bleed in (due to antialiasing) if the context is transformed. - IntSize extraOffset(w + max(0, shadowOffset.width()) + shadowBlur + 1, 0); - shadowOffset -= extraOffset; - fillRect.move(extraOffset); - } + IntRect shadowRect(rect); + shadowRect.inflate(shadowBlur); + shadowRect.move(shadowOffset); + context->clip(shadowRect); + + // Move the fill just outside the clip, adding 1 pixel separation so that the fill does not + // bleed in (due to antialiasing) if the context is transformed. + IntSize extraOffset(w + max(0, shadowOffset.width()) + shadowBlur + 1, 0); + shadowOffset -= extraOffset; + fillRect.move(extraOffset); context->setShadow(shadowOffset, shadowBlur, shadow->color); if (hasBorderRadius) { @@ -1157,12 +1158,50 @@ void RenderBoxModelObject::paintBoxShadow(GraphicsContext* context, int tx, int IntSize bottomLeft = begin ? bottomLeftRadius : IntSize(); IntSize bottomRight = end ? bottomRightRadius : IntSize(); - if (!hasOpaqueBackground) - context->clipOutRoundedRect(rect, topLeft, topRight, bottomLeft, bottomRight); + IntRect rectToClipOut = rect; + IntSize topLeftToClipOut = topLeft; + IntSize topRightToClipOut = topRight; + IntSize bottomLeftToClipOut = bottomLeft; + IntSize bottomRightToClipOut = bottomRight; + + // If the box is opaque, it is unnecessary to clip it out. However, doing so saves time + // when painting the shadow. On the other hand, it introduces subpixel gaps along the + // corners. Those are avoided by insetting the clipping path by one pixel. + if (hasOpaqueBackground) { + rectToClipOut.inflate(-1); + + topLeftToClipOut.expand(-1, -1); + topLeftToClipOut.clampNegativeToZero(); + + topRightToClipOut.expand(-1, -1); + topRightToClipOut.clampNegativeToZero(); + + bottomLeftToClipOut.expand(-1, -1); + bottomLeftToClipOut.clampNegativeToZero(); + + bottomRightToClipOut.expand(-1, -1); + bottomRightToClipOut.clampNegativeToZero(); + } + + if (!rectToClipOut.isEmpty()) + context->clipOutRoundedRect(rectToClipOut, topLeftToClipOut, topRightToClipOut, bottomLeftToClipOut, bottomRightToClipOut); context->fillRoundedRect(fillRect, topLeft, topRight, bottomLeft, bottomRight, Color::black); } else { - if (!hasOpaqueBackground) - context->clipOut(rect); + IntRect rectToClipOut = rect; + + // If the box is opaque, it is unnecessary to clip it out. However, doing so saves time + // when painting the shadow. On the other hand, it introduces subpixel gaps along the + // edges if they are not pixel-aligned. Those are avoided by insetting the clipping path + // by one pixel. + if (hasOpaqueBackground) { + TransformationMatrix currentTransformation = context->getCTM(); + if (currentTransformation.a() != 1 || (currentTransformation.d() != 1 && currentTransformation.d() != -1) + || currentTransformation.b() || currentTransformation.c()) + rectToClipOut.inflate(-1); + } + + if (!rectToClipOut.isEmpty()) + context->clipOut(rectToClipOut); context->fillRect(fillRect, Color::black); } context->restore(); diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderDataGrid.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderDataGrid.cpp index b207a31..bdf723f 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderDataGrid.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderDataGrid.cpp @@ -24,12 +24,17 @@ */ #include "config.h" + +#if ENABLE(DATAGRID) + #include "RenderDataGrid.h" +#include "CSSStyleSelector.h" #include "FocusController.h" #include "Frame.h" #include "GraphicsContext.h" #include "Page.h" +#include "RenderView.h" #include "Scrollbar.h" using std::min; @@ -47,6 +52,42 @@ RenderDataGrid::~RenderDataGrid() { } +void RenderDataGrid::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle) +{ + RenderBlock::styleDidChange(diff, oldStyle); + recalcStyleForColumns(); +} + +void RenderDataGrid::recalcStyleForColumns() +{ + DataGridColumnList* columns = gridElement()->columns(); + unsigned length = columns->length(); + for (unsigned i = 0; i < length; ++i) + recalcStyleForColumn(columns->item(i)); +} + +void RenderDataGrid::recalcStyleForColumn(DataGridColumn* column) +{ + if (!column->columnStyle()) + column->setColumnStyle(document()->styleSelector()->pseudoStyleForDataGridColumn(column, style())); + if (!column->headerStyle()) + column->setHeaderStyle(document()->styleSelector()->pseudoStyleForDataGridColumnHeader(column, style())); +} + +RenderStyle* RenderDataGrid::columnStyle(DataGridColumn* column) +{ + if (!column->columnStyle()) + recalcStyleForColumn(column); + return column->columnStyle(); +} + +RenderStyle* RenderDataGrid::headerStyle(DataGridColumn* column) +{ + if (!column->headerStyle()) + recalcStyleForColumn(column); + return column->headerStyle(); +} + void RenderDataGrid::calcPrefWidths() { m_minPrefWidth = 0; @@ -77,6 +118,17 @@ void RenderDataGrid::calcPrefWidths() setPrefWidthsDirty(false); } +void RenderDataGrid::layout() +{ + RenderBlock::layout(); + layoutColumns(); +} + +void RenderDataGrid::layoutColumns() +{ + // FIXME: Implement. +} + void RenderDataGrid::paintObject(PaintInfo& paintInfo, int tx, int ty) { if (style()->visibility() != VISIBLE) @@ -92,14 +144,29 @@ void RenderDataGrid::paintObject(PaintInfo& paintInfo, int tx, int ty) paintColumnHeaders(paintInfo, tx, ty); } -void RenderDataGrid::paintColumnHeaders(PaintInfo&, int, int) +void RenderDataGrid::paintColumnHeaders(PaintInfo& paintInfo, int tx, int ty) { - gridElement()->columns(); - + DataGridColumnList* columns = gridElement()->columns(); + unsigned length = columns->length(); + for (unsigned i = 0; i < length; ++i) { + DataGridColumn* column = columns->item(i); + RenderStyle* columnStyle = headerStyle(column); + + // Don't render invisible columns. + if (!columnStyle || columnStyle->display() == NONE || columnStyle->visibility() != VISIBLE) + continue; + + // Paint the column header if it intersects the dirty rect. + IntRect columnRect(column->rect()); + columnRect.move(tx, ty); + if (columnRect.intersects(paintInfo.rect)) + paintColumnHeader(column, paintInfo, tx, ty); + } } -void RenderDataGrid::rebuildColumns() +void RenderDataGrid::paintColumnHeader(DataGridColumn*, PaintInfo&, int, int) { + // FIXME: Implement. } // Scrolling implementation functions @@ -119,4 +186,65 @@ bool RenderDataGrid::isActive() const return page && page->focusController()->isActive(); } + +IntRect RenderDataGrid::convertFromScrollbarToContainingView(const Scrollbar* scrollbar, const IntRect& scrollbarRect) const +{ + RenderView* view = this->view(); + if (!view) + return scrollbarRect; + + IntRect rect = scrollbarRect; + + int scrollbarLeft = width() - borderRight() - scrollbar->width(); + int scrollbarTop = borderTop(); + rect.move(scrollbarLeft, scrollbarTop); + + return view->frameView()->convertFromRenderer(this, rect); } + +IntRect RenderDataGrid::convertFromContainingViewToScrollbar(const Scrollbar* scrollbar, const IntRect& parentRect) const +{ + RenderView* view = this->view(); + if (!view) + return parentRect; + + IntRect rect = view->frameView()->convertToRenderer(this, parentRect); + + int scrollbarLeft = width() - borderRight() - scrollbar->width(); + int scrollbarTop = borderTop(); + rect.move(-scrollbarLeft, -scrollbarTop); + return rect; +} + +IntPoint RenderDataGrid::convertFromScrollbarToContainingView(const Scrollbar* scrollbar, const IntPoint& scrollbarPoint) const +{ + RenderView* view = this->view(); + if (!view) + return scrollbarPoint; + + IntPoint point = scrollbarPoint; + + int scrollbarLeft = width() - borderRight() - scrollbar->width(); + int scrollbarTop = borderTop(); + point.move(scrollbarLeft, scrollbarTop); + + return view->frameView()->convertFromRenderer(this, point); +} + +IntPoint RenderDataGrid::convertFromContainingViewToScrollbar(const Scrollbar* scrollbar, const IntPoint& parentPoint) const +{ + RenderView* view = this->view(); + if (!view) + return parentPoint; + + IntPoint point = view->frameView()->convertToRenderer(this, parentPoint); + + int scrollbarLeft = width() - borderRight() - scrollbar->width(); + int scrollbarTop = borderTop(); + point.move(-scrollbarLeft, -scrollbarTop); + return point; +} + +} + +#endif diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderDataGrid.h b/src/3rdparty/webkit/WebCore/rendering/RenderDataGrid.h index 6a4b32e..467edcc 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderDataGrid.h +++ b/src/3rdparty/webkit/WebCore/rendering/RenderDataGrid.h @@ -26,6 +26,8 @@ #ifndef RenderDataGrid_h #define RenderDataGrid_h +#if ENABLE(DATAGRID) + #include "HTMLDataGridElement.h" #include "RenderBlock.h" #include "ScrollbarClient.h" @@ -41,18 +43,24 @@ public: ~RenderDataGrid(); virtual const char* renderName() const { return "RenderDataGrid"; } - virtual bool canHaveChildren() const { return false; } - virtual void calcPrefWidths(); - + virtual void layout(); virtual void paintObject(PaintInfo&, int tx, int ty); void columnsChanged(); private: + virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle); + + RenderStyle* columnStyle(DataGridColumn*); + RenderStyle* headerStyle(DataGridColumn*); + void recalcStyleForColumns(); + void recalcStyleForColumn(DataGridColumn*); + + void layoutColumns(); void paintColumnHeaders(PaintInfo&, int tx, int ty); - void rebuildColumns(); + void paintColumnHeader(DataGridColumn*, PaintInfo&, int tx, int ty); HTMLDataGridElement* gridElement() const { return static_cast<HTMLDataGridElement*>(node()); } @@ -61,10 +69,16 @@ private: virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&); virtual bool isActive() const; virtual bool scrollbarCornerPresent() const { return false; } // We don't support resize on data grids yet. If we did this would have to change. + virtual IntRect convertFromScrollbarToContainingView(const Scrollbar*, const IntRect&) const; + virtual IntRect convertFromContainingViewToScrollbar(const Scrollbar*, const IntRect&) const; + virtual IntPoint convertFromScrollbarToContainingView(const Scrollbar*, const IntPoint&) const; + virtual IntPoint convertFromContainingViewToScrollbar(const Scrollbar*, const IntPoint&) const; RefPtr<Scrollbar> m_vBar; }; } +#endif + #endif // RenderDataGrid_h diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderFieldset.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderFieldset.cpp index 1275882..393c237 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderFieldset.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderFieldset.cpp @@ -99,7 +99,7 @@ RenderObject* RenderFieldset::layoutLegend(bool relayoutChildren) int b = borderTop(); int h = legend->height(); legend->setLocation(xPos, max((b-h)/2, 0)); - setHeight(max(b,h) + paddingTop()); + setHeight(max(b, h) + paddingTop()); } return legend; } diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderFlexibleBox.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderFlexibleBox.cpp index 1dcef36..65990f2 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderFlexibleBox.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderFlexibleBox.cpp @@ -36,7 +36,8 @@ namespace WebCore { class FlexBoxIterator { public: - FlexBoxIterator(RenderFlexibleBox* parent) { + FlexBoxIterator(RenderFlexibleBox* parent) + { box = parent; if (box->style()->boxOrient() == HORIZONTAL && box->style()->direction() == RTL) forward = box->style()->boxDirection() != BNORMAL; @@ -56,17 +57,20 @@ public: reset(); } - void reset() { + void reset() + { current = 0; currentOrdinal = forward ? 0 : lastOrdinal+1; } - RenderBox* first() { + RenderBox* first() + { reset(); return next(); } - RenderBox* next() { + RenderBox* next() + { do { if (!current) { if (forward) { @@ -336,7 +340,9 @@ void RenderFlexibleBox::layoutHorizontalBox(bool relayoutChildren) } child = iterator.next(); } - + + RenderBlock::startDelayUpdateScrollInfo(); + // We do 2 passes. The first pass is simply to lay everyone out at // their preferred widths. The second pass handles flexing the children. do { @@ -561,7 +567,9 @@ void RenderFlexibleBox::layoutHorizontalBox(bool relayoutChildren) } while (haveFlex); m_flexingChildren = false; - + + RenderBlock::finishDelayUpdateScrollInfo(); + if (remainingSpace > 0 && ((style()->direction() == LTR && style()->boxPack() != BSTART) || (style()->direction() == RTL && style()->boxPack() != BEND))) { // Children must be repositioned. @@ -648,7 +656,7 @@ void RenderFlexibleBox::layoutVerticalBox(bool relayoutChildren) { int xPos = borderLeft() + paddingLeft(); int yPos = borderTop() + paddingTop(); - if( style()->direction() == RTL ) + if (style()->direction() == RTL) xPos = width() - paddingRight() - borderRight(); int toAdd = borderBottom() + paddingBottom() + horizontalScrollbarHeight(); bool heightSpecified = false; @@ -789,6 +797,8 @@ void RenderFlexibleBox::layoutVerticalBox(bool relayoutChildren) } } + RenderBlock::startDelayUpdateScrollInfo(); + // We do 2 passes. The first pass is simply to lay everyone out at // their preferred widths. The second pass handles flexing the children. // Our first pass is done without flexing. We simply lay the children @@ -977,6 +987,8 @@ void RenderFlexibleBox::layoutVerticalBox(bool relayoutChildren) } } while (haveFlex); + RenderBlock::finishDelayUpdateScrollInfo(); + if (style()->boxPack() != BSTART && remainingSpace > 0) { // Children must be repositioned. int offset = 0; diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderFrameSet.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderFrameSet.cpp index 5995117..57c8a2f 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderFrameSet.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderFrameSet.cpp @@ -65,7 +65,7 @@ inline HTMLFrameSetElement* RenderFrameSet::frameSet() const static Color borderStartEdgeColor() { - return Color(170,170,170); + return Color(170, 170, 170); } static Color borderEndEdgeColor() diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderFrameSet.h b/src/3rdparty/webkit/WebCore/rendering/RenderFrameSet.h index 294e5df..713a248 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderFrameSet.h +++ b/src/3rdparty/webkit/WebCore/rendering/RenderFrameSet.h @@ -32,8 +32,7 @@ class MouseEvent; enum FrameEdge { LeftFrameEdge, RightFrameEdge, TopFrameEdge, BottomFrameEdge }; -struct FrameEdgeInfo -{ +struct FrameEdgeInfo { FrameEdgeInfo(bool preventResize = false, bool allowBorder = true) : m_preventResize(4) , m_allowBorder(4) diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderImage.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderImage.cpp index cd84a09..559406b 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderImage.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderImage.cpp @@ -89,8 +89,7 @@ private: Timer<RenderImage> m_highQualityRepaintTimer; }; -class RenderImageScaleObserver -{ +class RenderImageScaleObserver { public: static bool shouldImagePaintAtLowQuality(RenderImage*, const IntSize&); diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderInline.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderInline.cpp index 3965d94..f798a56 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderInline.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderInline.cpp @@ -749,14 +749,14 @@ void RenderInline::dirtyLineBoxes(bool fullLayout) m_lineBoxes.dirtyLineBoxes(); } -InlineFlowBox* RenderInline::createFlowBox() +InlineFlowBox* RenderInline::createInlineFlowBox() { return new (renderArena()) InlineFlowBox(this); } -InlineFlowBox* RenderInline::createInlineFlowBox() +InlineFlowBox* RenderInline::createAndAppendInlineFlowBox() { - InlineFlowBox* flowBox = createFlowBox(); + InlineFlowBox* flowBox = createInlineFlowBox(); m_lineBoxes.appendLineBox(flowBox); return flowBox; } diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderInline.h b/src/3rdparty/webkit/WebCore/rendering/RenderInline.h index cf6b84b..5a10068 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderInline.h +++ b/src/3rdparty/webkit/WebCore/rendering/RenderInline.h @@ -93,7 +93,9 @@ public: return IntRect(0, 0, boundingBox.width(), boundingBox.height()); } - InlineFlowBox* createInlineFlowBox(); + InlineFlowBox* createAndAppendInlineFlowBox(); + virtual InlineFlowBox* createInlineFlowBox(); // Subclassed by SVG and Ruby + void dirtyLineBoxes(bool fullLayout); virtual void dirtyLinesFromChangedChild(RenderObject* child) { m_lineBoxes.dirtyLinesFromChangedChild(this, child); } @@ -132,7 +134,6 @@ public: protected: virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle); virtual void updateBoxModelInfoFromStyle(); - virtual InlineFlowBox* createFlowBox(); // Subclassed by SVG static RenderInline* cloneInline(RenderInline* src); diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderLayer.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderLayer.cpp index ba85f1a..5de1bbf 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderLayer.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderLayer.cpp @@ -167,7 +167,7 @@ RenderLayer::RenderLayer(RenderBoxModelObject* renderer) , m_has3DTransformedDescendant(false) #if USE(ACCELERATED_COMPOSITING) , m_hasCompositingDescendant(false) - , m_mustOverlayCompositedLayers(false) + , m_mustOverlapCompositedLayers(false) #endif , m_marquee(0) , m_staticX(0) @@ -231,7 +231,7 @@ void RenderLayer::rendererContentChanged() { // This can get called when video becomes accelerated, so the layers may change. if (compositor()->updateLayerCompositingState(this)) - compositor()->setCompositingLayersNeedUpdate(); + compositor()->setCompositingLayersNeedRebuild(); if (m_backing) m_backing->rendererContentChanged(); @@ -255,17 +255,17 @@ void RenderLayer::setStaticY(int staticY) renderer()->setChildNeedsLayout(true, false); } -void RenderLayer::updateLayerPositions(bool doFullRepaint, bool checkForRepaint) +void RenderLayer::updateLayerPositions(UpdateLayerPositionsFlags flags) { - if (doFullRepaint) { + if (flags & DoFullRepaint) { renderer()->repaint(); #if USE(ACCELERATED_COMPOSITING) - checkForRepaint = false; + flags &= ~CheckForRepaint; // We need the full repaint to propagate to child layers if we are hardware compositing. if (!compositor()->inCompositingMode()) - doFullRepaint = false; + flags &= ~DoFullRepaint; #else - checkForRepaint = doFullRepaint = false; + flags &= ~(CheckForRepaint | DoFullRepaint); #endif } @@ -292,7 +292,7 @@ void RenderLayer::updateLayerPositions(bool doFullRepaint, bool checkForRepaint) RenderBoxModelObject* repaintContainer = renderer()->containerForRepaint(); IntRect newRect = renderer()->clippedOverflowRectForRepaint(repaintContainer); IntRect newOutlineBox = renderer()->outlineBoundsForRepaint(repaintContainer); - if (checkForRepaint) { + if (flags & CheckForRepaint) { if (view && !view->printing()) { if (m_needsFullRepaint) { renderer()->repaintUsingContainer(repaintContainer, m_repaintRect); @@ -316,11 +316,11 @@ void RenderLayer::updateLayerPositions(bool doFullRepaint, bool checkForRepaint) m_reflection->layout(); for (RenderLayer* child = firstChild(); child; child = child->nextSibling()) - child->updateLayerPositions(doFullRepaint, checkForRepaint); + child->updateLayerPositions(flags); #if USE(ACCELERATED_COMPOSITING) - if (isComposited()) - backing()->updateAfterLayout(); + if ((flags & UpdateCompositingLayers) && isComposited()) + backing()->updateAfterLayout(RenderLayerBacking::CompositingChildren); #endif // With all our children positioned, now update our marquee if we need to. @@ -328,6 +328,13 @@ void RenderLayer::updateLayerPositions(bool doFullRepaint, bool checkForRepaint) m_marquee->updateMarqueePosition(); } +void RenderLayer::computeRepaintRects() +{ + RenderBoxModelObject* repaintContainer = renderer()->containerForRepaint(); + m_repaintRect = renderer()->clippedOverflowRectForRepaint(repaintContainer); + m_outlineBox = renderer()->outlineBoundsForRepaint(repaintContainer); +} + void RenderLayer::updateTransform() { // hasTransform() on the renderer is also true when there is transform-style: preserve-3d or perspective set, @@ -453,7 +460,7 @@ void RenderLayer::updateVisibilityStatus() else { do { r = r->parent(); - if (r==renderer()) + if (r == renderer()) r = 0; } while (r && !r->nextSibling()); if (r) @@ -1057,14 +1064,15 @@ void RenderLayer::scrollToOffset(int x, int y, bool updateScrollbars, bool repai m_scrollX = newScrollX; m_scrollY = y; - // Update the positions of our child layers. + // Update the positions of our child layers. Don't have updateLayerPositions() update + // compositing layers, because we need to do a deep update from the compositing ancestor. for (RenderLayer* child = firstChild(); child; child = child->nextSibling()) - child->updateLayerPositions(false, false); + child->updateLayerPositions(0); #if USE(ACCELERATED_COMPOSITING) if (compositor()->inCompositingMode()) { if (RenderLayer* compositingAncestor = ancestorCompositingLayer()) - compositingAncestor->backing()->updateAfterLayout(); + compositingAncestor->backing()->updateAfterLayout(RenderLayerBacking::AllDescendants); } #endif @@ -1423,6 +1431,66 @@ bool RenderLayer::scrollbarCornerPresent() const return !scrollCornerRect(this, renderBox()->borderBoxRect()).isEmpty(); } +IntRect RenderLayer::convertFromScrollbarToContainingView(const Scrollbar* scrollbar, const IntRect& scrollbarRect) const +{ + RenderView* view = renderer()->view(); + if (!view) + return scrollbarRect; + + IntRect rect = scrollbarRect; + rect.move(scrollbarOffset(scrollbar)); + + return view->frameView()->convertFromRenderer(renderer(), rect); +} + +IntRect RenderLayer::convertFromContainingViewToScrollbar(const Scrollbar* scrollbar, const IntRect& parentRect) const +{ + RenderView* view = renderer()->view(); + if (!view) + return parentRect; + + IntRect rect = view->frameView()->convertToRenderer(renderer(), parentRect); + rect.move(-scrollbarOffset(scrollbar)); + return rect; +} + +IntPoint RenderLayer::convertFromScrollbarToContainingView(const Scrollbar* scrollbar, const IntPoint& scrollbarPoint) const +{ + RenderView* view = renderer()->view(); + if (!view) + return scrollbarPoint; + + IntPoint point = scrollbarPoint; + point.move(scrollbarOffset(scrollbar)); + return view->frameView()->convertFromRenderer(renderer(), point); +} + +IntPoint RenderLayer::convertFromContainingViewToScrollbar(const Scrollbar* scrollbar, const IntPoint& parentPoint) const +{ + RenderView* view = renderer()->view(); + if (!view) + return parentPoint; + + IntPoint point = view->frameView()->convertToRenderer(renderer(), parentPoint); + + point.move(-scrollbarOffset(scrollbar)); + return point; +} + +IntSize RenderLayer::scrollbarOffset(const Scrollbar* scrollbar) const +{ + RenderBox* box = renderBox(); + + if (scrollbar == m_vBar.get()) + return IntSize(box->width() - box->borderRight() - scrollbar->width(), box->borderTop()); + + if (scrollbar == m_hBar.get()) + return IntSize(box->borderLeft(), box->height() - box->borderBottom() - scrollbar->height()); + + ASSERT_NOT_REACHED(); + return IntSize(); +} + void RenderLayer::invalidateScrollbarRect(Scrollbar* scrollbar, const IntRect& rect) { IntRect scrollRect = rect; @@ -1834,34 +1902,29 @@ bool RenderLayer::isPointInResizeControl(const IntPoint& absolutePoint) const return resizerCornerRect(this, localBounds).contains(localPoint); } -bool RenderLayer::hitTestOverflowControls(HitTestResult& result) +bool RenderLayer::hitTestOverflowControls(HitTestResult& result, const IntPoint& localPoint) { if (!m_hBar && !m_vBar && (!renderer()->hasOverflowClip() || renderer()->style()->resize() == RESIZE_NONE)) return false; RenderBox* box = renderBox(); ASSERT(box); - - int x = 0; - int y = 0; - convertToLayerCoords(root(), x, y); - IntRect absBounds(x, y, box->width(), box->height()); IntRect resizeControlRect; if (renderer()->style()->resize() != RESIZE_NONE) { - resizeControlRect = resizerCornerRect(this, absBounds); - if (resizeControlRect.contains(result.point())) + resizeControlRect = resizerCornerRect(this, box->borderBoxRect()); + if (resizeControlRect.contains(localPoint)) return true; } int resizeControlSize = max(resizeControlRect.height(), 0); if (m_vBar) { - IntRect vBarRect(absBounds.right() - box->borderRight() - m_vBar->width(), - absBounds.y() + box->borderTop(), + IntRect vBarRect(box->width() - box->borderRight() - m_vBar->width(), + box->borderTop(), m_vBar->width(), - absBounds.height() - (box->borderTop() + box->borderBottom()) - (m_hBar ? m_hBar->height() : resizeControlSize)); - if (vBarRect.contains(result.point())) { + box->height() - (box->borderTop() + box->borderBottom()) - (m_hBar ? m_hBar->height() : resizeControlSize)); + if (vBarRect.contains(localPoint)) { result.setScrollbar(m_vBar.get()); return true; } @@ -1869,11 +1932,11 @@ bool RenderLayer::hitTestOverflowControls(HitTestResult& result) resizeControlSize = max(resizeControlRect.width(), 0); if (m_hBar) { - IntRect hBarRect(absBounds.x() + box->borderLeft(), - absBounds.bottom() - box->borderBottom() - m_hBar->height(), - absBounds.width() - (box->borderLeft() + box->borderRight()) - (m_vBar ? m_vBar->width() : resizeControlSize), + IntRect hBarRect(box->borderLeft(), + box->height() - box->borderBottom() - m_hBar->height(), + box->width() - (box->borderLeft() + box->borderRight()) - (m_vBar ? m_vBar->width() : resizeControlSize), m_hBar->height()); - if (hBarRect.contains(result.point())) { + if (hBarRect.contains(localPoint)) { result.setScrollbar(m_hBar.get()); return true; } @@ -2046,7 +2109,7 @@ void RenderLayer::paintLayer(RenderLayer* rootLayer, GraphicsContext* p, int ty = y - renderBoxY(); // Ensure our lists are up-to-date. - updateLayerListsIfNeeded(); + updateCompositingAndLayerListsIfNeeded(); bool selectionOnly = paintRestriction == PaintRestrictionSelectionOnly || paintRestriction == PaintRestrictionSelectionOnlyBlackText; bool forceBlackText = paintRestriction == PaintRestrictionSelectionOnlyBlackText; @@ -2336,7 +2399,7 @@ RenderLayer* RenderLayer::hitTestLayer(RenderLayer* rootLayer, RenderLayer* cont } // Ensure our lists and 3d status are up-to-date. - updateLayerListsIfNeeded(); + updateCompositingAndLayerListsIfNeeded(); update3DTransformedDescendantStatus(); RefPtr<HitTestingTransformState> localTransformState; @@ -2574,13 +2637,13 @@ void RenderLayer::calculateClipRects(const RenderLayer* rootLayer, ClipRects& cl } if (renderer()->hasOverflowClip()) { - IntRect newOverflowClip = toRenderBox(renderer())->overflowClipRect(x,y); + IntRect newOverflowClip = toRenderBox(renderer())->overflowClipRect(x, y); clipRects.setOverflowClipRect(intersection(newOverflowClip, clipRects.overflowClipRect())); if (renderer()->isPositioned() || renderer()->isRelPositioned()) clipRects.setPosClipRect(intersection(newOverflowClip, clipRects.posClipRect())); } if (renderer()->hasClip()) { - IntRect newPosClip = toRenderBox(renderer())->clipRect(x,y); + IntRect newPosClip = toRenderBox(renderer())->clipRect(x, y); clipRects.setPosClipRect(intersection(newPosClip, clipRects.posClipRect())); clipRects.setOverflowClipRect(intersection(newPosClip, clipRects.overflowClipRect())); clipRects.setFixedClipRect(intersection(newPosClip, clipRects.fixedClipRect())); @@ -2630,10 +2693,10 @@ void RenderLayer::calculateRects(const RenderLayer* rootLayer, const IntRect& pa if (renderer()->hasOverflowClip() || renderer()->hasClip()) { // This layer establishes a clip of some kind. if (renderer()->hasOverflowClip()) - foregroundRect.intersect(toRenderBox(renderer())->overflowClipRect(x,y)); + foregroundRect.intersect(toRenderBox(renderer())->overflowClipRect(x, y)); if (renderer()->hasClip()) { // Clip applies to *us* as well, so go ahead and update the damageRect. - IntRect newPosClip = toRenderBox(renderer())->clipRect(x,y); + IntRect newPosClip = toRenderBox(renderer())->clipRect(x, y); backgroundRect.intersect(newPosClip); foregroundRect.intersect(newPosClip); outlineRect.intersect(newPosClip); @@ -2920,7 +2983,7 @@ void RenderLayer::dirtyZOrderLists() #if USE(ACCELERATED_COMPOSITING) if (!renderer()->documentBeingDestroyed()) - compositor()->setCompositingLayersNeedUpdate(); + compositor()->setCompositingLayersNeedRebuild(); #endif } @@ -2939,7 +3002,7 @@ void RenderLayer::dirtyNormalFlowList() #if USE(ACCELERATED_COMPOSITING) if (!renderer()->documentBeingDestroyed()) - compositor()->setCompositingLayersNeedUpdate(); + compositor()->setCompositingLayersNeedRebuild(); #endif } @@ -3009,6 +3072,12 @@ void RenderLayer::collectLayers(Vector<RenderLayer*>*& posBuffer, Vector<RenderL void RenderLayer::updateLayerListsIfNeeded() { + updateZOrderLists(); + updateNormalFlowList(); +} + +void RenderLayer::updateCompositingAndLayerListsIfNeeded() +{ #if USE(ACCELERATED_COMPOSITING) if (compositor()->inCompositingMode()) { if ((isStackingContext() && m_zOrderListsDirty) || m_normalFlowListDirty) @@ -3016,8 +3085,7 @@ void RenderLayer::updateLayerListsIfNeeded() return; } #endif - updateZOrderLists(); - updateNormalFlowList(); + updateLayerListsIfNeeded(); } void RenderLayer::repaintIncludingDescendants() @@ -3129,7 +3197,7 @@ void RenderLayer::styleChanged(StyleDifference diff, const RenderStyle*) updateTransform(); if (compositor()->updateLayerCompositingState(this)) - compositor()->setCompositingLayersNeedUpdate(); + compositor()->setCompositingLayersNeedRebuild(); else if (m_backing) m_backing->updateGraphicsLayerGeometry(); diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderLayer.h b/src/3rdparty/webkit/WebCore/rendering/RenderLayer.h index 4feede8..1772c66 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderLayer.h +++ b/src/3rdparty/webkit/WebCore/rendering/RenderLayer.h @@ -264,7 +264,7 @@ public: void positionOverflowControls(int tx, int ty); bool isPointInResizeControl(const IntPoint& absolutePoint) const; - bool hitTestOverflowControls(HitTestResult&); + bool hitTestOverflowControls(HitTestResult&, const IntPoint& localPoint); IntSize offsetFromResizeCorner(const IntPoint& absolutePoint) const; void paintOverflowControls(GraphicsContext*, int tx, int ty, const IntRect& damageRect); @@ -294,7 +294,14 @@ public: bool hasAcceleratedCompositing() const; void updateLayerPosition(); - void updateLayerPositions(bool doFullRepaint = false, bool checkForRepaint = true); + + enum UpdateLayerPositionsFlag { + DoFullRepaint = 1, + CheckForRepaint = 1 << 1, + UpdateCompositingLayers = 1 << 2, + }; + typedef unsigned UpdateLayerPositionsFlags; + void updateLayerPositions(UpdateLayerPositionsFlags = DoFullRepaint | UpdateCompositingLayers); void updateTransform(); @@ -375,6 +382,7 @@ public: // Return a cached repaint rect, computed relative to the layer renderer's containerForRepaint. IntRect repaintRect() const { return m_repaintRect; } + void computeRepaintRects(); void setNeedsFullRepaint(bool f = true) { m_needsFullRepaint = f; } int staticX() const { return m_staticX; } @@ -441,6 +449,7 @@ private: void collectLayers(Vector<RenderLayer*>*&, Vector<RenderLayer*>*&); void updateLayerListsIfNeeded(); + void updateCompositingAndLayerListsIfNeeded(); enum PaintLayerFlag { PaintLayerHaveTransparency = 1, @@ -469,11 +478,18 @@ private: bool shouldBeNormalFlowOnly() const; + // ScrollBarClient interface virtual void valueChanged(Scrollbar*); virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&); virtual bool isActive() const; virtual bool scrollbarCornerPresent() const; - + virtual IntRect convertFromScrollbarToContainingView(const Scrollbar*, const IntRect&) const; + virtual IntRect convertFromContainingViewToScrollbar(const Scrollbar*, const IntRect&) const; + virtual IntPoint convertFromScrollbarToContainingView(const Scrollbar*, const IntPoint&) const; + virtual IntPoint convertFromContainingViewToScrollbar(const Scrollbar*, const IntPoint&) const; + + IntSize scrollbarOffset(const Scrollbar*) const; + void updateOverflowStatus(bool horizontalOverflow, bool verticalOverflow); void childVisibilityChanged(bool newVisibility); @@ -509,8 +525,8 @@ private: bool hasCompositingDescendant() const { return m_hasCompositingDescendant; } void setHasCompositingDescendant(bool b) { m_hasCompositingDescendant = b; } - bool mustOverlayCompositedLayers() const { return m_mustOverlayCompositedLayers; } - void setMustOverlayCompositedLayers(bool b) { m_mustOverlayCompositedLayers = b; } + bool mustOverlapCompositedLayers() const { return m_mustOverlapCompositedLayers; } + void setMustOverlapCompositedLayers(bool b) { m_mustOverlapCompositedLayers = b; } #endif private: @@ -603,7 +619,7 @@ protected: // in a preserves3D hierarchy. Hint to do 3D-aware hit testing. #if USE(ACCELERATED_COMPOSITING) bool m_hasCompositingDescendant : 1; - bool m_mustOverlayCompositedLayers : 1; + bool m_mustOverlapCompositedLayers : 1; #endif RenderMarquee* m_marquee; // Used by layers with overflow:marquee diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderLayerBacking.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderLayerBacking.cpp index 1c6d43c..ce0ffb1 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderLayerBacking.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderLayerBacking.cpp @@ -126,10 +126,10 @@ void RenderLayerBacking::updateLayerTransform() m_graphicsLayer->setTransform(t); } -void RenderLayerBacking::updateAfterLayout() +void RenderLayerBacking::updateAfterLayout(UpdateDepth updateDepth) { RenderLayerCompositor* layerCompositor = compositor(); - if (!layerCompositor->compositingLayersNeedUpdate()) { + if (!layerCompositor->compositingLayersNeedRebuild()) { // Calling updateGraphicsLayerGeometry() here gives incorrect results, because the // position of this layer's GraphicsLayer depends on the position of our compositing // ancestor's GraphicsLayer. That cannot be determined until all the descendant @@ -138,10 +138,12 @@ void RenderLayerBacking::updateAfterLayout() // The solution is to update compositing children of this layer here, // via updateCompositingChildrenGeometry(). setCompositedBounds(layerCompositor->calculateCompositedBounds(m_owningLayer, m_owningLayer)); - layerCompositor->updateCompositingChildrenGeometry(m_owningLayer, m_owningLayer); + layerCompositor->updateCompositingDescendantGeometry(m_owningLayer, m_owningLayer, updateDepth); - if (!m_owningLayer->parent()) + if (!m_owningLayer->parent()) { + updateGraphicsLayerGeometry(); layerCompositor->updateRootLayerPosition(); + } } } @@ -969,7 +971,11 @@ bool RenderLayerBacking::startAnimation(double beginTime, const Animation* anim, if (hasOpacity && m_graphicsLayer->animateFloat(AnimatedPropertyOpacity, opacityVector, anim, beginTime)) didAnimateOpacity = true; - return didAnimateTransform && didAnimateOpacity; + bool runningAcceleratedAnimation = didAnimateTransform && didAnimateOpacity; + if (runningAcceleratedAnimation) + compositor()->didStartAcceleratedAnimation(); + + return runningAcceleratedAnimation; } bool RenderLayerBacking::startTransition(double beginTime, int property, const RenderStyle* fromStyle, const RenderStyle* toStyle) @@ -1003,6 +1009,9 @@ bool RenderLayerBacking::startTransition(double beginTime, int property, const R didAnimate = true; } } + + if (didAnimate) + compositor()->didStartAcceleratedAnimation(); return didAnimate; } diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderLayerBacking.h b/src/3rdparty/webkit/WebCore/rendering/RenderLayerBacking.h index 50a77db..25b1a31 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderLayerBacking.h +++ b/src/3rdparty/webkit/WebCore/rendering/RenderLayerBacking.h @@ -53,7 +53,8 @@ public: RenderLayer* owningLayer() const { return m_owningLayer; } - void updateAfterLayout(); + enum UpdateDepth { CompositingChildren, AllDescendants }; + void updateAfterLayout(UpdateDepth); // Returns true if layer configuration changed. bool updateGraphicsLayerConfiguration(); diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderLayerCompositor.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderLayerCompositor.cpp index 8b07ca9..b7bccaa 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderLayerCompositor.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderLayerCompositor.cpp @@ -75,20 +75,14 @@ struct CompositingState { #endif }; -static TransformationMatrix flipTransform() -{ - TransformationMatrix flipper; - flipper.flipY(); - return flipper; -} - RenderLayerCompositor::RenderLayerCompositor(RenderView* renderView) : m_renderView(renderView) , m_rootPlatformLayer(0) + , m_hasAcceleratedCompositing(true) + , m_compositingConsultsOverlap(true) , m_compositing(false) , m_rootLayerAttached(false) - , m_compositingLayersNeedUpdate(false) - , m_hasAcceleratedCompositing(true) + , m_compositingLayersNeedRebuild(false) #if PROFILE_LAYER_REBUILD , m_rootLayerUpdateCount(0) #endif // PROFILE_LAYER_REBUILD @@ -120,21 +114,21 @@ void RenderLayerCompositor::cacheAcceleratedCompositingEnabledFlag() { bool hasAcceleratedCompositing = false; if (Settings* settings = m_renderView->document()->settings()) - hasAcceleratedCompositing = settings-> acceleratedCompositingEnabled(); + hasAcceleratedCompositing = settings->acceleratedCompositingEnabled(); if (hasAcceleratedCompositing != m_hasAcceleratedCompositing) - setCompositingLayersNeedUpdate(); + setCompositingLayersNeedRebuild(); m_hasAcceleratedCompositing = hasAcceleratedCompositing; } -void RenderLayerCompositor::setCompositingLayersNeedUpdate(bool needUpdate) +void RenderLayerCompositor::setCompositingLayersNeedRebuild(bool needRebuild) { if (inCompositingMode()) { - if (!m_compositingLayersNeedUpdate && needUpdate) + if (!m_compositingLayersNeedRebuild && needRebuild) scheduleViewUpdate(); - m_compositingLayersNeedUpdate = needUpdate; + m_compositingLayersNeedRebuild = needRebuild; } } @@ -150,14 +144,17 @@ void RenderLayerCompositor::scheduleViewUpdate() void RenderLayerCompositor::updateCompositingLayers(RenderLayer* updateRoot) { - if (!m_compositingLayersNeedUpdate) + // When m_compositingConsultsOverlap is true, then layer positions affect compositing, + // so we can only bail here when we're not looking at overlap. + if (!m_compositingLayersNeedRebuild && !m_compositingConsultsOverlap) return; ASSERT(inCompositingMode()); + bool needLayerRebuild = m_compositingLayersNeedRebuild; if (!updateRoot) { - // Only clear the flag if we're updating the entire hierarchy - m_compositingLayersNeedUpdate = false; + // Only clear the flag if we're updating the entire hierarchy. + m_compositingLayersNeedRebuild = false; updateRoot = rootRenderLayer(); } @@ -173,13 +170,20 @@ void RenderLayerCompositor::updateCompositingLayers(RenderLayer* updateRoot) // complex. { CompositingState compState(updateRoot); - computeCompositingRequirements(updateRoot, compState); + bool layersChanged; + if (m_compositingConsultsOverlap) { + OverlapMap overlapTestRequestMap; + computeCompositingRequirements(updateRoot, &overlapTestRequestMap, compState, layersChanged); + } else + computeCompositingRequirements(updateRoot, 0, compState, layersChanged); + + needLayerRebuild |= layersChanged; } // Now create and parent the compositing layers. { CompositingState compState(updateRoot); - rebuildCompositingLayerTree(updateRoot, compState); + rebuildCompositingLayerTree(updateRoot, compState, needLayerRebuild); } #if PROFILE_LAYER_REBUILD @@ -188,7 +192,7 @@ void RenderLayerCompositor::updateCompositingLayers(RenderLayer* updateRoot) fprintf(stderr, "Update %d: computeCompositingRequirements for the world took %fms\n", m_rootLayerUpdateCount, 1000.0 * (endTime - startTime)); #endif - ASSERT(updateRoot || !m_compositingLayersNeedUpdate); + ASSERT(updateRoot || !m_compositingLayersNeedRebuild); if (!hasAcceleratedCompositing()) enableCompositingMode(false); @@ -200,6 +204,11 @@ bool RenderLayerCompositor::updateBacking(RenderLayer* layer, CompositingChangeR if (needsToBeComposited(layer)) { enableCompositingMode(); + + // 3D transforms turn off the testing of overlap. + if (requiresCompositingForTransform(layer->renderer())) + setCompositingConsultsOverlap(false); + if (!layer->backing()) { // If we need to repaint, do so before making backing @@ -214,6 +223,10 @@ bool RenderLayerCompositor::updateBacking(RenderLayer* layer, CompositingChangeR layer->clearBacking(); layerChanged = true; + // The layer's cached repaints rects are relative to the repaint container, so change when + // compositing changes; we need to update them here. + layer->computeRepaintRects(); + // If we need to repaint, do so now that we've removed the backing if (shouldRepaint == CompositingChangeRepaintNow) repaintOnCompositingChange(layer); @@ -261,13 +274,20 @@ void RenderLayerCompositor::repaintOnCompositingChange(RenderLayer* layer) // RenderLayers that are rendered by the composited RenderLayer. IntRect RenderLayerCompositor::calculateCompositedBounds(const RenderLayer* layer, const RenderLayer* ancestorLayer) { + if (!layer->isSelfPaintingLayer()) + return IntRect(); + IntRect boundingBoxRect, unionBounds; boundingBoxRect = unionBounds = layer->localBoundingBox(); - ASSERT(layer->isStackingContext() || (!layer->m_posZOrderList || layer->m_posZOrderList->size() == 0)); + if (layer->renderer()->hasOverflowClip() || layer->renderer()->hasMask()) { + int ancestorRelX = 0, ancestorRelY = 0; + layer->convertToLayerCoords(ancestorLayer, ancestorRelX, ancestorRelY); + boundingBoxRect.move(ancestorRelX, ancestorRelY); + return boundingBoxRect; + } - if (!layer->isSelfPaintingLayer()) - return IntRect(); + ASSERT(layer->isStackingContext() || (!layer->m_posZOrderList || layer->m_posZOrderList->size() == 0)); if (Vector<RenderLayer*>* negZOrderList = layer->negZOrderList()) { size_t listSize = negZOrderList->size(); @@ -317,7 +337,7 @@ IntRect RenderLayerCompositor::calculateCompositedBounds(const RenderLayer* laye void RenderLayerCompositor::layerWasAdded(RenderLayer* /*parent*/, RenderLayer* /*child*/) { - setCompositingLayersNeedUpdate(); + setCompositingLayersNeedRebuild(); } void RenderLayerCompositor::layerWillBeRemoved(RenderLayer* parent, RenderLayer* child) @@ -343,7 +363,7 @@ void RenderLayerCompositor::layerWillBeRemoved(RenderLayer* parent, RenderLayer* m_renderView->frameView()->setNeedsOneShotDrawingSynchronization(); } - setCompositingLayersNeedUpdate(); + setCompositingLayersNeedRebuild(); } RenderLayer* RenderLayerCompositor::enclosingNonStackingClippingLayer(const RenderLayer* layer) const @@ -358,6 +378,31 @@ RenderLayer* RenderLayerCompositor::enclosingNonStackingClippingLayer(const Rend return 0; } +void RenderLayerCompositor::addToOverlapMap(OverlapMap& overlapMap, RenderLayer* layer, IntRect& layerBounds, bool& boundsComputed) +{ + if (layer->isRootLayer()) + return; + + if (!boundsComputed) { + layerBounds = layer->renderer()->localToAbsoluteQuad(FloatRect(layer->localBoundingBox())).enclosingBoundingBox(); + boundsComputed = true; + } + + overlapMap.add(layer, layerBounds); +} + +bool RenderLayerCompositor::overlapsCompositedLayers(OverlapMap& overlapMap, const IntRect& layerBounds) +{ + RenderLayerCompositor::OverlapMap::const_iterator end = overlapMap.end(); + for (RenderLayerCompositor::OverlapMap::const_iterator it = overlapMap.begin(); it != end; ++it) { + const IntRect& bounds = it->second; + if (layerBounds.intersects(bounds)) + return true; + } + + return false; +} + // Recurse through the layers in z-index and overflow order (which is equivalent to painting order) // For the z-order children of a compositing layer: // If a child layers has a compositing layer, then all subsequent layers must @@ -367,7 +412,7 @@ RenderLayer* RenderLayerCompositor::enclosingNonStackingClippingLayer(const Rend // must be compositing so that its contents render over that child. // This implies that its positive z-index children must also be compositing. // -void RenderLayerCompositor::computeCompositingRequirements(RenderLayer* layer, struct CompositingState& compositingState) +void RenderLayerCompositor::computeCompositingRequirements(RenderLayer* layer, OverlapMap* overlapMap, struct CompositingState& compositingState, bool& layersChanged) { layer->updateLayerPosition(); layer->updateZOrderLists(); @@ -375,7 +420,19 @@ void RenderLayerCompositor::computeCompositingRequirements(RenderLayer* layer, s // Clear the flag layer->setHasCompositingDescendant(false); - layer->setMustOverlayCompositedLayers(compositingState.m_subtreeIsCompositing); + + bool mustOverlapCompositedLayers = compositingState.m_subtreeIsCompositing; + + bool haveComputedBounds = false; + IntRect absBounds; + if (overlapMap && mustOverlapCompositedLayers) { + // If we're testing for overlap, we only need to composite if we overlap something that is already composited. + absBounds = layer->renderer()->localToAbsoluteQuad(FloatRect(layer->localBoundingBox())).enclosingBoundingBox(); + haveComputedBounds = true; + mustOverlapCompositedLayers &= overlapsCompositedLayers(*overlapMap, absBounds); + } + + layer->setMustOverlapCompositedLayers(mustOverlapCompositedLayers); // The children of this layer don't need to composite, unless there is // a compositing layer among them, so start by inheriting the compositing @@ -391,6 +448,8 @@ void RenderLayerCompositor::computeCompositingRequirements(RenderLayer* layer, s compositingState.m_subtreeIsCompositing = true; // This layer now acts as the ancestor for kids. childState.m_compositingAncestor = layer; + if (overlapMap) + addToOverlapMap(*overlapMap, layer, absBounds, haveComputedBounds); } #if ENABLE(VIDEO) @@ -407,14 +466,16 @@ void RenderLayerCompositor::computeCompositingRequirements(RenderLayer* layer, s size_t listSize = negZOrderList->size(); for (size_t i = 0; i < listSize; ++i) { RenderLayer* curLayer = negZOrderList->at(i); - computeCompositingRequirements(curLayer, childState); + computeCompositingRequirements(curLayer, overlapMap, childState, layersChanged); // If we have to make a layer for this child, make one now so we can have a contents layer // (since we need to ensure that the -ve z-order child renders underneath our contents). if (childState.m_subtreeIsCompositing) { // make layer compositing - layer->setMustOverlayCompositedLayers(true); + layer->setMustOverlapCompositedLayers(true); childState.m_compositingAncestor = layer; + if (overlapMap) + addToOverlapMap(*overlapMap, layer, absBounds, haveComputedBounds); } } } @@ -425,7 +486,7 @@ void RenderLayerCompositor::computeCompositingRequirements(RenderLayer* layer, s size_t listSize = normalFlowList->size(); for (size_t i = 0; i < listSize; ++i) { RenderLayer* curLayer = normalFlowList->at(i); - computeCompositingRequirements(curLayer, childState); + computeCompositingRequirements(curLayer, overlapMap, childState, layersChanged); } } @@ -434,7 +495,7 @@ void RenderLayerCompositor::computeCompositingRequirements(RenderLayer* layer, s size_t listSize = posZOrderList->size(); for (size_t i = 0; i < listSize; ++i) { RenderLayer* curLayer = posZOrderList->at(i); - computeCompositingRequirements(curLayer, childState); + computeCompositingRequirements(curLayer, overlapMap, childState, layersChanged); } } } @@ -443,8 +504,11 @@ void RenderLayerCompositor::computeCompositingRequirements(RenderLayer* layer, s // be composited. Also, if we have opacity < 1, then we need to be a layer so that // the child layers are opaque, then rendered with opacity on this layer. if (childState.m_subtreeIsCompositing && - (layer->renderer()->hasTransform() || layer->renderer()->style()->opacity() < 1)) - layer->setMustOverlayCompositedLayers(true); + (layer->renderer()->hasTransform() || layer->renderer()->style()->opacity() < 1)) { + layer->setMustOverlapCompositedLayers(true); + if (overlapMap) + addToOverlapMap(*overlapMap, layer, absBounds, haveComputedBounds); + } // Subsequent layers in the parent stacking context also need to composite. if (childState.m_subtreeIsCompositing) @@ -460,7 +524,8 @@ void RenderLayerCompositor::computeCompositingRequirements(RenderLayer* layer, s layer->setHasCompositingDescendant(childState.m_subtreeIsCompositing); // Update backing now, so that we can use isComposited() reliably during tree traversal in rebuildCompositingLayerTree(). - updateBacking(layer, CompositingChangeRepaintNow); + if (updateBacking(layer, CompositingChangeRepaintNow)) + layersChanged = true; } void RenderLayerCompositor::setCompositingParent(RenderLayer* childLayer, RenderLayer* parentLayer) @@ -515,7 +580,7 @@ bool RenderLayerCompositor::canAccelerateVideoRendering(RenderVideo* o) const } #endif -void RenderLayerCompositor::rebuildCompositingLayerTree(RenderLayer* layer, struct CompositingState& compositingState) +void RenderLayerCompositor::rebuildCompositingLayerTree(RenderLayer* layer, struct CompositingState& compositingState, bool updateHierarchy) { // Make the layer compositing if necessary, and set up clipping and content layers. // Note that we can only do work here that is independent of whether the descendant layers @@ -533,11 +598,12 @@ void RenderLayerCompositor::rebuildCompositingLayerTree(RenderLayer* layer, stru updateRootLayerPosition(); // FIXME: make this more incremental - layerBacking->parentForSublayers()->removeAllChildren(); + if (updateHierarchy) + layerBacking->parentForSublayers()->removeAllChildren(); } // host the document layer in the RenderView's root layer - if (layer->isRootLayer() && layer->isComposited()) + if (updateHierarchy && layer->isRootLayer() && layer->isComposited()) parentInRootLayer(layer); CompositingState childState = compositingState; @@ -559,13 +625,13 @@ void RenderLayerCompositor::rebuildCompositingLayerTree(RenderLayer* layer, stru size_t listSize = negZOrderList->size(); for (size_t i = 0; i < listSize; ++i) { RenderLayer* curLayer = negZOrderList->at(i); - rebuildCompositingLayerTree(curLayer, childState); - if (curLayer->isComposited()) + rebuildCompositingLayerTree(curLayer, childState, updateHierarchy); + if (updateHierarchy && curLayer->isComposited()) setCompositingParent(curLayer, childState.m_compositingAncestor); } } - if (layerBacking && layerBacking->contentsLayer()) { + if (updateHierarchy && layerBacking && layerBacking->contentsLayer()) { // we only have a contents layer if we have an m_layer layerBacking->contentsLayer()->removeFromParent(); @@ -579,8 +645,8 @@ void RenderLayerCompositor::rebuildCompositingLayerTree(RenderLayer* layer, stru size_t listSize = normalFlowList->size(); for (size_t i = 0; i < listSize; ++i) { RenderLayer* curLayer = normalFlowList->at(i); - rebuildCompositingLayerTree(curLayer, childState); - if (curLayer->isComposited()) + rebuildCompositingLayerTree(curLayer, childState, updateHierarchy); + if (updateHierarchy && curLayer->isComposited()) setCompositingParent(curLayer, childState.m_compositingAncestor); } } @@ -590,8 +656,8 @@ void RenderLayerCompositor::rebuildCompositingLayerTree(RenderLayer* layer, stru size_t listSize = posZOrderList->size(); for (size_t i = 0; i < listSize; ++i) { RenderLayer* curLayer = posZOrderList->at(i); - rebuildCompositingLayerTree(curLayer, childState); - if (curLayer->isComposited()) + rebuildCompositingLayerTree(curLayer, childState, updateHierarchy); + if (updateHierarchy && curLayer->isComposited()) setCompositingParent(curLayer, childState.m_compositingAncestor); } } @@ -600,13 +666,14 @@ void RenderLayerCompositor::rebuildCompositingLayerTree(RenderLayer* layer, stru // Recurs down the RenderLayer tree until its finds the compositing descendants of compositingAncestor and updates their geometry. -void RenderLayerCompositor::updateCompositingChildrenGeometry(RenderLayer* compositingAncestor, RenderLayer* layer) +void RenderLayerCompositor::updateCompositingDescendantGeometry(RenderLayer* compositingAncestor, RenderLayer* layer, RenderLayerBacking::UpdateDepth updateDepth) { if (layer != compositingAncestor) { if (RenderLayerBacking* layerBacking = layer->backing()) { layerBacking->setCompositedBounds(calculateCompositedBounds(layer, layer)); layerBacking->updateGraphicsLayerGeometry(); - return; + if (updateDepth == RenderLayerBacking::CompositingChildren) + return; } } @@ -617,21 +684,21 @@ void RenderLayerCompositor::updateCompositingChildrenGeometry(RenderLayer* compo if (Vector<RenderLayer*>* negZOrderList = layer->negZOrderList()) { size_t listSize = negZOrderList->size(); for (size_t i = 0; i < listSize; ++i) - updateCompositingChildrenGeometry(compositingAncestor, negZOrderList->at(i)); + updateCompositingDescendantGeometry(compositingAncestor, negZOrderList->at(i), updateDepth); } } if (Vector<RenderLayer*>* normalFlowList = layer->normalFlowList()) { size_t listSize = normalFlowList->size(); for (size_t i = 0; i < listSize; ++i) - updateCompositingChildrenGeometry(compositingAncestor, normalFlowList->at(i)); + updateCompositingDescendantGeometry(compositingAncestor, normalFlowList->at(i), updateDepth); } if (layer->isStackingContext()) { if (Vector<RenderLayer*>* posZOrderList = layer->posZOrderList()) { size_t listSize = posZOrderList->size(); for (size_t i = 0; i < listSize; ++i) - updateCompositingChildrenGeometry(compositingAncestor, posZOrderList->at(i)); + updateCompositingDescendantGeometry(compositingAncestor, posZOrderList->at(i), updateDepth); } } } @@ -729,6 +796,14 @@ void RenderLayerCompositor::updateRootLayerPosition() m_rootPlatformLayer->setSize(FloatSize(m_renderView->overflowWidth(), m_renderView->overflowHeight())); } +void RenderLayerCompositor::didStartAcceleratedAnimation() +{ + // If an accelerated animation or transition runs, we have to turn off overlap checking because + // we don't do layout for every frame, but we have to ensure that the layering is + // correct between the animating object and other objects on the page. + setCompositingConsultsOverlap(false); +} + bool RenderLayerCompositor::has3DContent() const { return layerHas3DContent(rootRenderLayer()); @@ -739,7 +814,7 @@ bool RenderLayerCompositor::needsToBeComposited(const RenderLayer* layer) const if (!m_hasAcceleratedCompositing || !layer->isSelfPaintingLayer()) return false; - return requiresCompositingLayer(layer) || layer->mustOverlayCompositedLayers(); + return requiresCompositingLayer(layer) || layer->mustOverlapCompositedLayers(); } // Note: this specifies whether the RL needs a compositing layer for intrinsic reasons. @@ -847,9 +922,8 @@ void RenderLayerCompositor::ensureRootPlatformLayer() m_rootPlatformLayer = GraphicsLayer::createGraphicsLayer(0); m_rootPlatformLayer->setSize(FloatSize(m_renderView->overflowWidth(), m_renderView->overflowHeight())); m_rootPlatformLayer->setPosition(FloatPoint(0, 0)); - - if (GraphicsLayer::compositingCoordinatesOrientation() == GraphicsLayer::CompositingCoordinatesBottomUp) - m_rootPlatformLayer->setChildrenTransform(flipTransform()); + // The root layer does flipping if we need it on this platform. + m_rootPlatformLayer->setGeometryOrientation(GraphicsLayer::compositingCoordinatesOrientation()); // Need to clip to prevent transformed content showing outside this frame m_rootPlatformLayer->setMasksToBounds(true); diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderLayerCompositor.h b/src/3rdparty/webkit/WebCore/rendering/RenderLayerCompositor.h index bcd6a3f..778eccc 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderLayerCompositor.h +++ b/src/3rdparty/webkit/WebCore/rendering/RenderLayerCompositor.h @@ -27,6 +27,7 @@ #define RenderLayerCompositor_h #include "RenderLayer.h" +#include "RenderLayerBacking.h" namespace WebCore { @@ -63,9 +64,16 @@ public: // Copy the acceleratedCompositingEnabledFlag from Settings void cacheAcceleratedCompositingEnabledFlag(); - void setCompositingLayersNeedUpdate(bool needUpdate = true); - bool compositingLayersNeedUpdate() const { return m_compositingLayersNeedUpdate; } + // Called when the layer hierarchy needs to be udpated (compositing layers have been + // created, destroyed or re-parented). + void setCompositingLayersNeedRebuild(bool needRebuild = true); + bool compositingLayersNeedRebuild() const { return m_compositingLayersNeedRebuild; } + // Controls whether or not to consult geometry when deciding which layers need + // to be composited. Defaults to true. + void setCompositingConsultsOverlap(bool b) { m_compositingConsultsOverlap = b; } + bool compositingConsultsOverlap() const { return m_compositingConsultsOverlap; } + void scheduleViewUpdate(); // Rebuild the tree of compositing layers @@ -76,7 +84,7 @@ public: bool updateLayerCompositingState(RenderLayer*, CompositingChangeRepaint = CompositingChangeRepaintNow); // Update the geometry for compositing children of compositingAncestor. - void updateCompositingChildrenGeometry(RenderLayer* compositingAncestor, RenderLayer* layer); + void updateCompositingDescendantGeometry(RenderLayer* compositingAncestor, RenderLayer* layer, RenderLayerBacking::UpdateDepth); // Whether layer's backing needs a graphics layer to do clipping by an ancestor (non-stacking-context parent with overflow). bool clippedByAncestor(RenderLayer*) const; @@ -110,6 +118,8 @@ public: void updateRootLayerPosition(); + void didStartAcceleratedAnimation(); + #if ENABLE(VIDEO) // Use by RenderVideo to ask if it should try to use accelerated compositing. bool canAccelerateVideoRendering(RenderVideo*) const; @@ -131,8 +141,13 @@ private: // Repaint the given rect (which is layer's coords), and regions of child layers that intersect that rect. void recursiveRepaintLayerRect(RenderLayer* layer, const IntRect& rect); - void computeCompositingRequirements(RenderLayer*, struct CompositingState&); - void rebuildCompositingLayerTree(RenderLayer* layer, struct CompositingState&); + typedef HashMap<RenderLayer*, IntRect> OverlapMap; + static void addToOverlapMap(OverlapMap&, RenderLayer*, IntRect& layerBounds, bool& boundsComputed); + static bool overlapsCompositedLayers(OverlapMap&, const IntRect& layerBounds); + + // Returns true if any layer's compositing changed + void computeCompositingRequirements(RenderLayer*, OverlapMap*, struct CompositingState&, bool& layersChanged); + void rebuildCompositingLayerTree(RenderLayer* layer, struct CompositingState&, bool updateHierarchy); // Hook compositing layers together void setCompositingParent(RenderLayer* childLayer, RenderLayer* parentLayer); @@ -153,10 +168,11 @@ private: private: RenderView* m_renderView; GraphicsLayer* m_rootPlatformLayer; + bool m_hasAcceleratedCompositing; + bool m_compositingConsultsOverlap; bool m_compositing; bool m_rootLayerAttached; - bool m_compositingLayersNeedUpdate; - bool m_hasAcceleratedCompositing; + bool m_compositingLayersNeedRebuild; #if PROFILE_LAYER_REBUILD int m_rootLayerUpdateCount; diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderListBox.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderListBox.cpp index 83c569e..e6c28f7 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderListBox.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderListBox.cpp @@ -370,7 +370,7 @@ bool RenderListBox::isPointInOverflowControl(HitTestResult& result, int _x, int return false; IntRect vertRect(_tx + width() - borderRight() - m_vBar->width(), - _ty, + _ty + borderTop(), m_vBar->width(), height() - borderTop() - borderBottom()); @@ -416,22 +416,22 @@ void RenderListBox::panScroll(const IntPoint& panStartMousePosition) int yDelta = currentMousePosition.y() - panStartMousePosition.y(); - // If the point is too far from the center we limit the speed + // If the point is too far from the center we limit the speed yDelta = max(min(yDelta, maxSpeed), -maxSpeed); - if(abs(yDelta) < iconRadius) // at the center we let the space for the icon + if (abs(yDelta) < iconRadius) // at the center we let the space for the icon return; if (yDelta > 0) //offsetY = view()->viewHeight(); absOffset.move(0, listHeight()); - else if (yDelta < 0) - yDelta--; + else if (yDelta < 0) + yDelta--; // Let's attenuate the speed yDelta /= speedReducer; - IntPoint scrollPoint(0,0); + IntPoint scrollPoint(0, 0); scrollPoint.setY(absOffset.y() + yDelta); int newOffset = scrollToward(scrollPoint); if (newOffset < 0) @@ -623,6 +623,64 @@ void RenderListBox::invalidateScrollbarRect(Scrollbar* scrollbar, const IntRect& repaintRectangle(scrollRect); } +IntRect RenderListBox::convertFromScrollbarToContainingView(const Scrollbar* scrollbar, const IntRect& scrollbarRect) const +{ + RenderView* view = this->view(); + if (!view) + return scrollbarRect; + + IntRect rect = scrollbarRect; + + int scrollbarLeft = width() - borderRight() - scrollbar->width(); + int scrollbarTop = borderTop(); + rect.move(scrollbarLeft, scrollbarTop); + + return view->frameView()->convertFromRenderer(this, rect); +} + +IntRect RenderListBox::convertFromContainingViewToScrollbar(const Scrollbar* scrollbar, const IntRect& parentRect) const +{ + RenderView* view = this->view(); + if (!view) + return parentRect; + + IntRect rect = view->frameView()->convertToRenderer(this, parentRect); + + int scrollbarLeft = width() - borderRight() - scrollbar->width(); + int scrollbarTop = borderTop(); + rect.move(-scrollbarLeft, -scrollbarTop); + return rect; +} + +IntPoint RenderListBox::convertFromScrollbarToContainingView(const Scrollbar* scrollbar, const IntPoint& scrollbarPoint) const +{ + RenderView* view = this->view(); + if (!view) + return scrollbarPoint; + + IntPoint point = scrollbarPoint; + + int scrollbarLeft = width() - borderRight() - scrollbar->width(); + int scrollbarTop = borderTop(); + point.move(scrollbarLeft, scrollbarTop); + + return view->frameView()->convertFromRenderer(this, point); +} + +IntPoint RenderListBox::convertFromContainingViewToScrollbar(const Scrollbar* scrollbar, const IntPoint& parentPoint) const +{ + RenderView* view = this->view(); + if (!view) + return parentPoint; + + IntPoint point = view->frameView()->convertToRenderer(this, parentPoint); + + int scrollbarLeft = width() - borderRight() - scrollbar->width(); + int scrollbarTop = borderTop(); + point.move(-scrollbarLeft, -scrollbarTop); + return point; +} + PassRefPtr<Scrollbar> RenderListBox::createScrollbar() { RefPtr<Scrollbar> widget; diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderListBox.h b/src/3rdparty/webkit/WebCore/rendering/RenderListBox.h index b8c0540..dd257a8 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderListBox.h +++ b/src/3rdparty/webkit/WebCore/rendering/RenderListBox.h @@ -101,6 +101,10 @@ private: virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&); virtual bool isActive() const; virtual bool scrollbarCornerPresent() const { return false; } // We don't support resize on list boxes yet. If we did this would have to change. + virtual IntRect convertFromScrollbarToContainingView(const Scrollbar*, const IntRect&) const; + virtual IntRect convertFromContainingViewToScrollbar(const Scrollbar*, const IntRect&) const; + virtual IntPoint convertFromScrollbarToContainingView(const Scrollbar*, const IntPoint&) const; + virtual IntPoint convertFromContainingViewToScrollbar(const Scrollbar*, const IntPoint&) const; void setHasVerticalScrollbar(bool hasScrollbar); PassRefPtr<Scrollbar> createScrollbar(); diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderMarquee.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderMarquee.cpp index 48659f7..31a8305 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderMarquee.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderMarquee.cpp @@ -235,7 +235,7 @@ void RenderMarquee::updateMarqueeStyle() // to a marquee of 200px. if (isHorizontal()) { if (s->height().isFixed() && s->height().value() < s->fontSize()) - s->setHeight(Length(s->fontSize(),Fixed)); + s->setHeight(Length(s->fontSize(), Fixed)); } else if (s->height().isAuto()) //vertical marquee with no specified height s->setHeight(Length(200, Fixed)); @@ -309,4 +309,3 @@ void RenderMarquee::timerFired(Timer<RenderMarquee>*) } } // namespace WebCore - diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderMedia.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderMedia.cpp index b0eb097..b87e99d 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderMedia.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderMedia.cpp @@ -45,7 +45,8 @@ using namespace HTMLNames; static const double cTimeUpdateRepeatDelay = 0.2; static const double cOpacityAnimationRepeatDelay = 0.05; // FIXME get this from style -static const double cOpacityAnimationDuration = 0.1; +static const double cOpacityAnimationDurationFadeIn = 0.1; +static const double cOpacityAnimationDurationFadeOut = 0.3; RenderMedia::RenderMedia(HTMLMediaElement* video) : RenderReplaced(video) @@ -53,9 +54,9 @@ RenderMedia::RenderMedia(HTMLMediaElement* video) , m_opacityAnimationTimer(this, &RenderMedia::opacityAnimationTimerFired) , m_mouseOver(false) , m_opacityAnimationStartTime(0) + , m_opacityAnimationDuration(cOpacityAnimationDurationFadeIn) , m_opacityAnimationFrom(0) , m_opacityAnimationTo(1.0f) - , m_previousVisible(VISIBLE) { } @@ -65,6 +66,7 @@ RenderMedia::RenderMedia(HTMLMediaElement* video, const IntSize& intrinsicSize) , m_opacityAnimationTimer(this, &RenderMedia::opacityAnimationTimerFired) , m_mouseOver(false) , m_opacityAnimationStartTime(0) + , m_opacityAnimationDuration(cOpacityAnimationDurationFadeIn) , m_opacityAnimationFrom(0) , m_opacityAnimationTo(1.0f) { @@ -104,20 +106,32 @@ void RenderMedia::styleDidChange(StyleDifference diff, const RenderStyle* oldSty RenderReplaced::styleDidChange(diff, oldStyle); if (m_controlsShadowRoot) { - if (m_panel->renderer()) - m_panel->renderer()->setStyle(getCachedPseudoStyle(MEDIA_CONTROLS_PANEL)); - - if (m_timelineContainer->renderer()) - m_timelineContainer->renderer()->setStyle(getCachedPseudoStyle(MEDIA_CONTROLS_TIMELINE_CONTAINER)); - - m_muteButton->updateStyle(); - m_playButton->updateStyle(); - m_seekBackButton->updateStyle(); - m_seekForwardButton->updateStyle(); - m_timeline->updateStyle(); - m_fullscreenButton->updateStyle(); - m_currentTimeDisplay->updateStyle(); - m_timeRemainingDisplay->updateStyle(); + if (m_panel) + m_panel->updateStyle(); + if (m_muteButton) + m_muteButton->updateStyle(); + if (m_playButton) + m_playButton->updateStyle(); + if (m_seekBackButton) + m_seekBackButton->updateStyle(); + if (m_seekForwardButton) + m_seekForwardButton->updateStyle(); + if (m_rewindButton) + m_rewindButton->updateStyle(); + if (m_returnToRealtimeButton) + m_returnToRealtimeButton->updateStyle(); + if (m_statusDisplay) + m_statusDisplay->updateStyle(); + if (m_timelineContainer) + m_timelineContainer->updateStyle(); + if (m_timeline) + m_timeline->updateStyle(); + if (m_fullscreenButton) + m_fullscreenButton->updateStyle(); + if (m_currentTimeDisplay) + m_currentTimeDisplay->updateStyle(); + if (m_timeRemainingDisplay) + m_timeRemainingDisplay->updateStyle(); } } @@ -132,6 +146,13 @@ void RenderMedia::layout() return; IntSize newSize = contentBoxRect().size(); if (newSize != oldSize || controlsRenderer->needsLayout()) { + + if (m_currentTimeDisplay && m_timeRemainingDisplay) { + bool shouldShowTimeDisplays = shouldShowTimeDisplayControls(); + m_currentTimeDisplay->setVisible(shouldShowTimeDisplays); + m_timeRemainingDisplay->setVisible(shouldShowTimeDisplays); + } + controlsRenderer->setLocation(borderLeft() + paddingLeft(), borderTop() + paddingTop()); controlsRenderer->style()->setHeight(Length(newSize.height(), Fixed)); controlsRenderer->style()->setWidth(Length(newSize.width(), Fixed)); @@ -151,17 +172,8 @@ void RenderMedia::createControlsShadowRoot() void RenderMedia::createPanel() { ASSERT(!m_panel); - RenderStyle* style = getCachedPseudoStyle(MEDIA_CONTROLS_PANEL); - m_panel = new HTMLDivElement(HTMLNames::divTag, document()); - RenderObject* renderer = m_panel->createRenderer(renderArena(), style); - if (renderer) { - m_panel->setRenderer(renderer); - renderer->setStyle(style); - m_panel->setAttached(); - m_panel->setInDocument(true); - m_controlsShadowRoot->addChild(m_panel); - m_controlsShadowRoot->renderer()->addChild(renderer); - } + m_panel = new MediaControlElement(document(), MEDIA_CONTROLS_PANEL, mediaElement()); + m_panel->attachToParent(m_controlsShadowRoot.get()); } void RenderMedia::createMuteButton() @@ -192,20 +204,32 @@ void RenderMedia::createSeekForwardButton() m_seekForwardButton->attachToParent(m_panel.get()); } +void RenderMedia::createRewindButton() +{ + ASSERT(!m_rewindButton); + m_rewindButton = new MediaControlRewindButtonElement(document(), mediaElement()); + m_rewindButton->attachToParent(m_panel.get()); +} + +void RenderMedia::createReturnToRealtimeButton() +{ + ASSERT(!m_returnToRealtimeButton); + m_returnToRealtimeButton = new MediaControlReturnToRealtimeButtonElement(document(), mediaElement()); + m_returnToRealtimeButton->attachToParent(m_panel.get()); +} + +void RenderMedia::createStatusDisplay() +{ + ASSERT(!m_statusDisplay); + m_statusDisplay = new MediaControlStatusDisplayElement(document(), mediaElement()); + m_statusDisplay->attachToParent(m_panel.get()); +} + void RenderMedia::createTimelineContainer() { ASSERT(!m_timelineContainer); - RenderStyle* style = getCachedPseudoStyle(MEDIA_CONTROLS_TIMELINE_CONTAINER); - m_timelineContainer = new HTMLDivElement(HTMLNames::divTag, document()); - RenderObject* renderer = m_timelineContainer->createRenderer(renderArena(), style); - if (renderer) { - m_timelineContainer->setRenderer(renderer); - renderer->setStyle(style); - m_timelineContainer->setAttached(); - m_timelineContainer->setInDocument(true); - m_panel->addChild(m_timelineContainer); - m_panel->renderer()->addChild(renderer); - } + m_timelineContainer = new MediaControlTimelineContainerElement(document(), mediaElement()); + m_timelineContainer->attachToParent(m_panel.get()); } void RenderMedia::createTimeline() @@ -215,18 +239,18 @@ void RenderMedia::createTimeline() m_timeline->setAttribute(precisionAttr, "float"); m_timeline->attachToParent(m_timelineContainer.get()); } - + void RenderMedia::createCurrentTimeDisplay() { ASSERT(!m_currentTimeDisplay); - m_currentTimeDisplay = new MediaTimeDisplayElement(document(), mediaElement(), true); + m_currentTimeDisplay = new MediaControlTimeDisplayElement(document(), MEDIA_CONTROLS_CURRENT_TIME_DISPLAY, mediaElement()); m_currentTimeDisplay->attachToParent(m_timelineContainer.get()); } void RenderMedia::createTimeRemainingDisplay() { ASSERT(!m_timeRemainingDisplay); - m_timeRemainingDisplay = new MediaTimeDisplayElement(document(), mediaElement(), false); + m_timeRemainingDisplay = new MediaControlTimeDisplayElement(document(), MEDIA_CONTROLS_TIME_REMAINING_DISPLAY, mediaElement()); m_timeRemainingDisplay->attachToParent(m_timelineContainer.get()); } @@ -251,10 +275,13 @@ void RenderMedia::updateControls() m_panel = 0; m_muteButton = 0; m_playButton = 0; + m_statusDisplay = 0; m_timelineContainer = 0; m_timeline = 0; m_seekBackButton = 0; m_seekForwardButton = 0; + m_rewindButton = 0; + m_returnToRealtimeButton = 0; m_currentTimeDisplay = 0; m_timeRemainingDisplay = 0; m_fullscreenButton = 0; @@ -269,34 +296,46 @@ void RenderMedia::updateControls() if (!m_controlsShadowRoot) { createControlsShadowRoot(); createPanel(); - if (m_panel && m_panel->renderer()) { + if (m_panel) { + createRewindButton(); createMuteButton(); createPlayButton(); + createReturnToRealtimeButton(); + createStatusDisplay(); createTimelineContainer(); createSeekBackButton(); createSeekForwardButton(); - createFullscreenButton(); - } - if (m_timelineContainer && m_timelineContainer->renderer()) { - createCurrentTimeDisplay(); - createTimeline(); - createTimeRemainingDisplay(); + createFullscreenButton(); + if (m_timelineContainer) { + createCurrentTimeDisplay(); + createTimeline(); + createTimeRemainingDisplay(); + } + m_panel->attach(); } } if (media->canPlay()) { if (m_timeUpdateTimer.isActive()) m_timeUpdateTimer.stop(); - } else if (style()->visibility() == VISIBLE && m_timeline && m_timeline->renderer() && m_timeline->renderer()->style()->display() != NONE ) { + } else if (style()->visibility() == VISIBLE && m_timeline && m_timeline->renderer() && m_timeline->renderer()->style()->display() != NONE) { m_timeUpdateTimer.startRepeating(cTimeUpdateRepeatDelay); } - m_previousVisible = style()->visibility(); + if (m_panel) { + // update() might alter the opacity of the element, especially if we are in the middle + // of an animation. This is the only element concerned as we animate only this element. + float opacityBeforeChangingStyle = m_panel->renderer() ? m_panel->renderer()->style()->opacity() : 0; + m_panel->update(); + changeOpacity(m_panel.get(), opacityBeforeChangingStyle); + } if (m_muteButton) m_muteButton->update(); if (m_playButton) m_playButton->update(); + if (m_timelineContainer) + m_timelineContainer->update(); if (m_timeline) m_timeline->update(); if (m_currentTimeDisplay) @@ -307,8 +346,15 @@ void RenderMedia::updateControls() m_seekBackButton->update(); if (m_seekForwardButton) m_seekForwardButton->update(); + if (m_rewindButton) + m_rewindButton->update(); + if (m_returnToRealtimeButton) + m_returnToRealtimeButton->update(); + if (m_statusDisplay) + m_statusDisplay->update(); if (m_fullscreenButton) m_fullscreenButton->update(); + updateTimeDisplay(); updateControlVisibility(); } @@ -363,26 +409,34 @@ void RenderMedia::updateControlVisibility() if (!media->hasVideo()) return; - // do fading manually, css animations don't work well with shadow trees - bool visible = style()->visibility() == VISIBLE && (m_mouseOver || media->canPlay()); - if (visible == (m_opacityAnimationTo > 0)) + // Don't fade if the media element is not visible + if (style()->visibility() != VISIBLE) return; + + bool shouldHideController = !m_mouseOver && !media->canPlay(); + + // Do fading manually, css animations don't work with shadow trees - if (style()->visibility() != m_previousVisible) { - // don't fade gradually if it the element has just changed visibility - m_previousVisible = style()->visibility(); - m_opacityAnimationTo = m_previousVisible == VISIBLE ? 1.0f : 0; - changeOpacity(m_panel.get(), m_opacityAnimationTo); + float animateFrom = m_panel->renderer()->style()->opacity(); + float animateTo = shouldHideController ? 0.0f : 1.0f; + + if (animateFrom == animateTo) return; - } - if (visible) { - m_opacityAnimationFrom = m_panel->renderer()->style()->opacity(); - m_opacityAnimationTo = 1.0f; - } else { - m_opacityAnimationFrom = m_panel->renderer()->style()->opacity(); - m_opacityAnimationTo = 0; + if (m_opacityAnimationTimer.isActive()) { + if (m_opacityAnimationTo == animateTo) + return; + m_opacityAnimationTimer.stop(); } + + if (animateFrom < animateTo) + m_opacityAnimationDuration = cOpacityAnimationDurationFadeIn; + else + m_opacityAnimationDuration = cOpacityAnimationDurationFadeOut; + + m_opacityAnimationFrom = animateFrom; + m_opacityAnimationTo = animateTo; + m_opacityAnimationStartTime = currentTime(); m_opacityAnimationTimer.startRepeating(cOpacityAnimationRepeatDelay); } @@ -401,11 +455,11 @@ void RenderMedia::changeOpacity(HTMLElement* e, float opacity) void RenderMedia::opacityAnimationTimerFired(Timer<RenderMedia>*) { double time = currentTime() - m_opacityAnimationStartTime; - if (time >= cOpacityAnimationDuration) { - time = cOpacityAnimationDuration; + if (time >= m_opacityAnimationDuration) { + time = m_opacityAnimationDuration; m_opacityAnimationTimer.stop(); } - float opacity = narrowPrecisionToFloat(m_opacityAnimationFrom + (m_opacityAnimationTo - m_opacityAnimationFrom) * time / cOpacityAnimationDuration); + float opacity = narrowPrecisionToFloat(m_opacityAnimationFrom + (m_opacityAnimationTo - m_opacityAnimationFrom) * time / m_opacityAnimationDuration); changeOpacity(m_panel.get(), opacity); } @@ -426,6 +480,12 @@ void RenderMedia::forwardEvent(Event* event) if (m_seekForwardButton && m_seekForwardButton->hitTest(point)) m_seekForwardButton->defaultEventHandler(event); + if (m_rewindButton && m_rewindButton->hitTest(point)) + m_rewindButton->defaultEventHandler(event); + + if (m_returnToRealtimeButton && m_returnToRealtimeButton->hitTest(point)) + m_returnToRealtimeButton->defaultEventHandler(event); + if (m_timeline && m_timeline->hitTest(point)) m_timeline->defaultEventHandler(event); @@ -473,6 +533,19 @@ int RenderMedia::leftmostPosition(bool includeOverflowInterior, bool includeSelf return min(left, m_controlsShadowRoot->renderBox()->x() + m_controlsShadowRoot->renderBox()->leftmostPosition(includeOverflowInterior, includeSelf)); } + +// We want the timeline slider to be at least 100 pixels wide. +static const int minWidthToDisplayTimeDisplays = 16 + 16 + 45 + 100 + 45 + 16 + 1; + +bool RenderMedia::shouldShowTimeDisplayControls() const +{ + if (!m_currentTimeDisplay && !m_timeRemainingDisplay) + return false; + + int width = mediaElement()->renderBox()->width(); + return width >= minWidthToDisplayTimeDisplays * style()->effectiveZoom(); +} + } // namespace WebCore #endif diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderMedia.h b/src/3rdparty/webkit/WebCore/rendering/RenderMedia.h index 6013d7b..e1149bb 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderMedia.h +++ b/src/3rdparty/webkit/WebCore/rendering/RenderMedia.h @@ -38,9 +38,14 @@ class HTMLMediaElement; class MediaControlMuteButtonElement; class MediaControlPlayButtonElement; class MediaControlSeekButtonElement; +class MediaControlRewindButtonElement; +class MediaControlReturnToRealtimeButtonElement; class MediaControlTimelineElement; class MediaControlFullscreenButtonElement; -class MediaTimeDisplayElement; +class MediaControlTimeDisplayElement; +class MediaControlStatusDisplayElement; +class MediaControlTimelineContainerElement; +class MediaControlElement; class MediaPlayer; class RenderMedia : public RenderReplaced { @@ -66,6 +71,8 @@ public: static String formatTime(float time); + bool shouldShowTimeDisplayControls() const; + void updateFromElement(); void updatePlayer(); void updateControls(); @@ -85,6 +92,9 @@ private: void createPlayButton(); void createSeekBackButton(); void createSeekForwardButton(); + void createRewindButton(); + void createReturnToRealtimeButton(); + void createStatusDisplay(); void createTimelineContainer(); void createTimeline(); void createCurrentTimeDisplay(); @@ -100,16 +110,19 @@ private: virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle); RefPtr<HTMLElement> m_controlsShadowRoot; - RefPtr<HTMLElement> m_panel; + RefPtr<MediaControlElement> m_panel; RefPtr<MediaControlMuteButtonElement> m_muteButton; RefPtr<MediaControlPlayButtonElement> m_playButton; RefPtr<MediaControlSeekButtonElement> m_seekBackButton; RefPtr<MediaControlSeekButtonElement> m_seekForwardButton; + RefPtr<MediaControlRewindButtonElement> m_rewindButton; + RefPtr<MediaControlReturnToRealtimeButtonElement> m_returnToRealtimeButton; RefPtr<MediaControlTimelineElement> m_timeline; RefPtr<MediaControlFullscreenButtonElement> m_fullscreenButton; - RefPtr<HTMLElement> m_timelineContainer; - RefPtr<MediaTimeDisplayElement> m_currentTimeDisplay; - RefPtr<MediaTimeDisplayElement> m_timeRemainingDisplay; + RefPtr<MediaControlTimelineContainerElement> m_timelineContainer; + RefPtr<MediaControlTimeDisplayElement> m_currentTimeDisplay; + RefPtr<MediaControlTimeDisplayElement> m_timeRemainingDisplay; + RefPtr<MediaControlStatusDisplayElement> m_statusDisplay; RenderObjectChildList m_children; Node* m_lastUnderNode; Node* m_nodeUnderMouse; @@ -118,9 +131,9 @@ private: Timer<RenderMedia> m_opacityAnimationTimer; bool m_mouseOver; double m_opacityAnimationStartTime; + double m_opacityAnimationDuration; float m_opacityAnimationFrom; float m_opacityAnimationTo; - EVisibility m_previousVisible; }; } // namespace WebCore diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderMenuList.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderMenuList.cpp index 4cd7b43..ed8c8ba 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderMenuList.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderMenuList.cpp @@ -25,6 +25,7 @@ #include "RenderMenuList.h" #include "CSSStyleSelector.h" +#include "Frame.h" #include "FrameView.h" #include "HTMLNames.h" #include "NodeRenderStyle.h" @@ -296,6 +297,12 @@ void RenderMenuList::hidePopup() void RenderMenuList::valueChanged(unsigned listIndex, bool fireOnChange) { + // Check to ensure a page navigation has not occurred while + // the popup was up. + Document* doc = static_cast<Element*>(node())->document(); + if (!doc || doc != doc->frame()->document()) + return; + SelectElement* select = toSelectElement(static_cast<Element*>(node())); select->setSelectedIndexByUser(select->listToOptionIndex(listIndex), true, fireOnChange); } diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderObject.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderObject.cpp index 098932a..adf6deb 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderObject.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderObject.cpp @@ -774,7 +774,7 @@ void RenderObject::drawLineForBoxSide(GraphicsContext* graphicsContext, int x1, break; case BSRight: drawLineForBoxSide(graphicsContext, x1, y1 + max((adjbw1 * 2 + 1) / 3, 0), - x1 + third, y2 - max(( adjbw2 * 2 + 1) / 3, 0), + x1 + third, y2 - max((adjbw2 * 2 + 1) / 3, 0), s, c, textcolor, SOLID, adjbw1bigthird, adjbw2bigthird); drawLineForBoxSide(graphicsContext, x2 - third, y1 + max((-adjbw1 * 2 + 1) / 3, 0), x2, y2 - max((-adjbw2 * 2 + 1) / 3, 0), @@ -1738,8 +1738,8 @@ IntSize RenderObject::offsetFromContainer(RenderObject* o) const IntRect RenderObject::localCaretRect(InlineBox*, int, int* extraWidthToEndOfLine) { - if (extraWidthToEndOfLine) - *extraWidthToEndOfLine = 0; + if (extraWidthToEndOfLine) + *extraWidthToEndOfLine = 0; return IntRect(); } @@ -1980,6 +1980,27 @@ void RenderObject::layout() setNeedsLayout(false); } +PassRefPtr<RenderStyle> RenderObject::uncachedFirstLineStyle(RenderStyle* style) const +{ + if (!document()->usesFirstLineRules()) + return 0; + + ASSERT(!isText()); + + RefPtr<RenderStyle> result; + + if (isBlockFlow()) { + if (RenderBlock* firstLineBlock = this->firstLineBlock()) + result = firstLineBlock->getUncachedPseudoStyle(FIRST_LINE, style, firstLineBlock == this ? style : 0); + } else if (!isAnonymous() && isRenderInline()) { + RenderStyle* parentStyle = parent()->firstLineStyle(); + if (parentStyle != parent()->style()) + result = getUncachedPseudoStyle(FIRST_LINE_INHERITED, parentStyle, style); + } + + return result.release(); +} + RenderStyle* RenderObject::firstLineStyleSlowCase() const { ASSERT(document()->usesFirstLineRules()); @@ -2016,13 +2037,15 @@ RenderStyle* RenderObject::getCachedPseudoStyle(PseudoId pseudo, RenderStyle* pa return 0; } -PassRefPtr<RenderStyle> RenderObject::getUncachedPseudoStyle(PseudoId pseudo, RenderStyle* parentStyle) const +PassRefPtr<RenderStyle> RenderObject::getUncachedPseudoStyle(PseudoId pseudo, RenderStyle* parentStyle, RenderStyle* ownStyle) const { - if (pseudo < FIRST_INTERNAL_PSEUDOID && !style()->hasPseudoStyle(pseudo)) + if (pseudo < FIRST_INTERNAL_PSEUDOID && !ownStyle && !style()->hasPseudoStyle(pseudo)) return 0; - if (!parentStyle) + if (!parentStyle) { + ASSERT(!ownStyle); parentStyle = style(); + } Node* n = node(); while (n && !n->isElementNode()) diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderObject.h b/src/3rdparty/webkit/WebCore/rendering/RenderObject.h index 311ef9c..911169d 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderObject.h +++ b/src/3rdparty/webkit/WebCore/rendering/RenderObject.h @@ -382,7 +382,7 @@ public: // The pseudo element style can be cached or uncached. Use the cached method if the pseudo element doesn't respect // any pseudo classes (and therefore has no concept of changing state). RenderStyle* getCachedPseudoStyle(PseudoId, RenderStyle* parentStyle = 0) const; - PassRefPtr<RenderStyle> getUncachedPseudoStyle(PseudoId, RenderStyle* parentStyle = 0) const; + PassRefPtr<RenderStyle> getUncachedPseudoStyle(PseudoId, RenderStyle* parentStyle = 0, RenderStyle* ownStyle = 0) const; virtual void updateDragState(bool dragOn); @@ -553,7 +553,11 @@ public: RenderStyle* style() const { return m_style.get(); } RenderStyle* firstLineStyle() const { return document()->usesFirstLineRules() ? firstLineStyleSlowCase() : style(); } RenderStyle* style(bool firstLine) const { return firstLine ? firstLineStyle() : style(); } - + + // Used only by Element::pseudoStyleCacheIsInvalid to get a first line style based off of a + // given new style, without accessing the cache. + PassRefPtr<RenderStyle> uncachedFirstLineStyle(RenderStyle*) const; + // Anonymous blocks that are part of of a continuation chain will return their inline continuation's outline style instead. // This is typically only relevant when repainting. virtual RenderStyle* outlineStyleForRepaint() const { return style(); } diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderPart.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderPart.cpp index bcf9ef9..cb56c0c 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderPart.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderPart.cpp @@ -41,13 +41,11 @@ RenderPart::~RenderPart() clearWidget(); } -void RenderPart::setWidget(Widget* widget) +void RenderPart::setWidget(PassRefPtr<Widget> widget) { if (widget == this->widget()) return; - if (widget && widget->isFrameView()) - static_cast<FrameView*>(widget)->ref(); RenderWidget::setWidget(widget); // make sure the scrollbars are set correctly for restore @@ -59,16 +57,4 @@ void RenderPart::viewCleared() { } -void RenderPart::deleteWidget(Widget* widget) -{ - // Since deref ends up calling setWidget back on us, need to make sure - // that widget is already 0 so it won't do any work. - ASSERT(!this->widget()); - - if (widget && widget->isFrameView()) - static_cast<FrameView*>(widget)->deref(); - else - delete widget; -} - } diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderPart.h b/src/3rdparty/webkit/WebCore/rendering/RenderPart.h index e47ead0..a1d2e2b 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderPart.h +++ b/src/3rdparty/webkit/WebCore/rendering/RenderPart.h @@ -34,7 +34,7 @@ public: bool hasFallbackContent() const { return m_hasFallbackContent; } - virtual void setWidget(Widget*); + virtual void setWidget(PassRefPtr<Widget>); virtual void viewCleared(); protected: @@ -43,8 +43,6 @@ protected: private: virtual bool isRenderPart() const { return true; } virtual const char* renderName() const { return "RenderPart"; } - - virtual void deleteWidget(Widget*); }; } diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderReplaced.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderReplaced.cpp index e61ac8e..d9a0b62 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderReplaced.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderReplaced.cpp @@ -127,8 +127,7 @@ void RenderReplaced::paint(PaintInfo& paintInfo, int tx, int ty) drawSelectionTint = false; } - bool clipToBorderRadius = style()->overflowX() != OVISIBLE && style()->hasBorderRadius(); - if (clipToBorderRadius) { + if (style()->hasBorderRadius()) { // Push a clip if we have a border radius, since we want to round the foreground content that gets painted. paintInfo.context->save(); @@ -141,7 +140,7 @@ void RenderReplaced::paint(PaintInfo& paintInfo, int tx, int ty) paintReplaced(paintInfo, tx, ty); - if (clipToBorderRadius) + if (style()->hasBorderRadius()) paintInfo.context->restore(); // The selection tint never gets clipped by border-radius rounding, since we want it to run right up to the edges of diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderSVGImage.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderSVGImage.cpp index b38352e..f494709 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderSVGImage.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderSVGImage.cpp @@ -2,7 +2,7 @@ Copyright (C) 2006 Alexander Kellett <lypanov@kde.org> Copyright (C) 2006 Apple Computer, Inc. Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org> - Copyright (C) 2007, 2008 Rob Buis <buis@kde.org> + Copyright (C) 2007, 2008, 2009 Rob Buis <buis@kde.org> Copyright (C) 2009, Google, Inc. This library is free software; you can redistribute it and/or @@ -59,7 +59,7 @@ void RenderSVGImage::adjustRectsForAspectRatio(FloatRect& destRect, FloatRect& s float widthToHeightMultiplier = srcRect.height() / srcRect.width(); if (origDestHeight > (origDestWidth * widthToHeightMultiplier)) { destRect.setHeight(origDestWidth * widthToHeightMultiplier); - switch(aspectRatio->align()) { + switch (aspectRatio->align()) { case SVGPreserveAspectRatio::SVG_PRESERVEASPECTRATIO_XMINYMID: case SVGPreserveAspectRatio::SVG_PRESERVEASPECTRATIO_XMIDYMID: case SVGPreserveAspectRatio::SVG_PRESERVEASPECTRATIO_XMAXYMID: @@ -74,7 +74,7 @@ void RenderSVGImage::adjustRectsForAspectRatio(FloatRect& destRect, FloatRect& s } if (origDestWidth > (origDestHeight / widthToHeightMultiplier)) { destRect.setWidth(origDestHeight / widthToHeightMultiplier); - switch(aspectRatio->align()) { + switch (aspectRatio->align()) { case SVGPreserveAspectRatio::SVG_PRESERVEASPECTRATIO_XMIDYMIN: case SVGPreserveAspectRatio::SVG_PRESERVEASPECTRATIO_XMIDYMID: case SVGPreserveAspectRatio::SVG_PRESERVEASPECTRATIO_XMIDYMAX: @@ -93,7 +93,7 @@ void RenderSVGImage::adjustRectsForAspectRatio(FloatRect& destRect, FloatRect& s if (origDestHeight < (origDestWidth * widthToHeightMultiplier)) { float destToSrcMultiplier = srcRect.width() / destRect.width(); srcRect.setHeight(destRect.height() * destToSrcMultiplier); - switch(aspectRatio->align()) { + switch (aspectRatio->align()) { case SVGPreserveAspectRatio::SVG_PRESERVEASPECTRATIO_XMINYMID: case SVGPreserveAspectRatio::SVG_PRESERVEASPECTRATIO_XMIDYMID: case SVGPreserveAspectRatio::SVG_PRESERVEASPECTRATIO_XMAXYMID: @@ -110,7 +110,7 @@ void RenderSVGImage::adjustRectsForAspectRatio(FloatRect& destRect, FloatRect& s if (origDestWidth < (origDestHeight / widthToHeightMultiplier)) { float destToSrcMultiplier = srcRect.height() / destRect.height(); srcRect.setWidth(destRect.width() * destToSrcMultiplier); - switch(aspectRatio->align()) { + switch (aspectRatio->align()) { case SVGPreserveAspectRatio::SVG_PRESERVEASPECTRATIO_XMIDYMIN: case SVGPreserveAspectRatio::SVG_PRESERVEASPECTRATIO_XMIDYMID: case SVGPreserveAspectRatio::SVG_PRESERVEASPECTRATIO_XMIDYMAX: @@ -227,9 +227,7 @@ FloatRect RenderSVGImage::repaintRectInLocalCoordinates() const void RenderSVGImage::imageChanged(WrappedImagePtr image, const IntRect* rect) { RenderImage::imageChanged(image, rect); - - // We override to invalidate a larger rect, since SVG images can draw outside their "bounds" - repaintRectangle(absoluteClippedOverflowRect()); // FIXME: Isn't this just repaint()? + repaint(); } IntRect RenderSVGImage::clippedOverflowRectForRepaint(RenderBoxModelObject* repaintContainer) diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderSVGInline.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderSVGInline.cpp index 3c44dd8..cf97b52 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderSVGInline.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderSVGInline.cpp @@ -39,10 +39,10 @@ RenderSVGInline::RenderSVGInline(Node* n) { } -InlineFlowBox* RenderSVGInline::createFlowBox() +InlineFlowBox* RenderSVGInline::createInlineFlowBox() { InlineFlowBox* box = new (renderArena()) SVGInlineFlowBox(this); - box->setIsSVG(true); + box->setHasVirtualHeight(); return box; } diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderSVGInline.h b/src/3rdparty/webkit/WebCore/rendering/RenderSVGInline.h index 1ff8d02..9f9f3f5 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderSVGInline.h +++ b/src/3rdparty/webkit/WebCore/rendering/RenderSVGInline.h @@ -40,7 +40,7 @@ public: virtual void absoluteQuads(Vector<FloatQuad>&); private: - virtual InlineFlowBox* createFlowBox(); + virtual InlineFlowBox* createInlineFlowBox(); }; } diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderSVGInlineText.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderSVGInlineText.cpp index b1a21d7..48d01ae 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderSVGInlineText.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderSVGInlineText.cpp @@ -134,7 +134,7 @@ FloatQuad RenderSVGInlineText::computeRepaintQuadForRange(RenderBoxModelObject* InlineTextBox* RenderSVGInlineText::createTextBox() { InlineTextBox* box = new (renderArena()) SVGInlineTextBox(this); - box->setIsSVG(true); + box->setHasVirtualHeight(); return box; } diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderSVGText.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderSVGText.cpp index 9e9809d..3919d7f 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderSVGText.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderSVGText.cpp @@ -89,10 +89,10 @@ void RenderSVGText::layout() setNeedsLayout(false); } -RootInlineBox* RenderSVGText::createRootBox() +RootInlineBox* RenderSVGText::createRootInlineBox() { RootInlineBox* box = new (renderArena()) SVGRootInlineBox(this); - box->setIsSVG(true); + box->setHasVirtualHeight(); return box; } diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderSVGText.h b/src/3rdparty/webkit/WebCore/rendering/RenderSVGText.h index c1f1430..088332e 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderSVGText.h +++ b/src/3rdparty/webkit/WebCore/rendering/RenderSVGText.h @@ -65,7 +65,7 @@ private: // FIXME: This can be removed when localTransform() is removed from RenderObject virtual TransformationMatrix localTransform() const { return m_localTransform; } - virtual RootInlineBox* createRootBox(); + virtual RootInlineBox* createRootInlineBox(); TransformationMatrix m_localTransform; }; diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderSlider.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderSlider.cpp index 610a060..7df7743 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderSlider.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderSlider.cpp @@ -121,47 +121,57 @@ public: bool inDragMode() const { return m_inDragMode; } virtual void defaultEventHandler(Event*); + virtual void detach(); private: virtual bool isShadowNode() const { return true; } virtual Node* shadowParentNode() { return m_shadowParent; } + FloatPoint m_offsetToThumb; Node* m_shadowParent; - FloatPoint m_initialClickPoint; // initial click point in RenderSlider-local coordinates - int m_initialPosition; bool m_inDragMode; }; SliderThumbElement::SliderThumbElement(Document* document, Node* shadowParent) : HTMLDivElement(divTag, document) , m_shadowParent(shadowParent) - , m_initialPosition(0) , m_inDragMode(false) { } void SliderThumbElement::defaultEventHandler(Event* event) { + if (!event->isMouseEvent()) { + HTMLDivElement::defaultEventHandler(event); + return; + } + + MouseEvent* mouseEvent = static_cast<MouseEvent*>(event); + bool isLeftButton = mouseEvent->button() == LeftButton; const AtomicString& eventType = event->type(); - if (eventType == eventNames().mousedownEvent && event->isMouseEvent() && static_cast<MouseEvent*>(event)->button() == LeftButton) { - MouseEvent* mouseEvent = static_cast<MouseEvent*>(event); - RenderSlider* slider; - if (document()->frame() && renderer() && - (slider = static_cast<RenderSlider*>(renderer()->parent())) && - slider->mouseEventIsInThumb(mouseEvent)) { - - // Cache the initial point where the mouse down occurred, in slider coordinates - m_initialClickPoint = slider->absoluteToLocal(mouseEvent->absoluteLocation(), false, true); - // Cache the initial position of the thumb. - m_initialPosition = slider->currentPosition(); - m_inDragMode = true; - - document()->frame()->eventHandler()->setCapturingMouseEventsNode(m_shadowParent); - - event->setDefaultHandled(); - return; + + if (eventType == eventNames().mousedownEvent && isLeftButton) { + if (document()->frame() && renderer()) { + RenderSlider* slider = static_cast<RenderSlider*>(renderer()->parent()); + if (slider) { + if (slider->mouseEventIsInThumb(mouseEvent)) { + // We selected the thumb, we want the cursor to always stay at + // the same position relative to the thumb. + m_offsetToThumb = slider->mouseEventOffsetToThumb(mouseEvent); + } else { + // We are outside the thumb, move the thumb to the point were + // we clicked. We'll be exactly at the center of the thumb. + m_offsetToThumb.setX(0); + m_offsetToThumb.setY(0); + } + + m_inDragMode = true; + document()->frame()->eventHandler()->setCapturingMouseEventsNode(m_shadowParent); + event->setDefaultHandled(); + return; + } } - } else if (eventType == eventNames().mouseupEvent && event->isMouseEvent() && static_cast<MouseEvent*>(event)->button() == LeftButton) { + } else if (eventType == eventNames().mouseupEvent && isLeftButton) { if (m_inDragMode) { if (Frame* frame = document()->frame()) frame->eventHandler()->setCapturingMouseEventsNode(0); @@ -169,24 +179,31 @@ void SliderThumbElement::defaultEventHandler(Event* event) event->setDefaultHandled(); return; } - } else if (eventType == eventNames().mousemoveEvent && event->isMouseEvent()) { + } else if (eventType == eventNames().mousemoveEvent) { if (m_inDragMode && renderer() && renderer()->parent()) { - // Move the slider - MouseEvent* mouseEvent = static_cast<MouseEvent*>(event); RenderSlider* slider = static_cast<RenderSlider*>(renderer()->parent()); - - FloatPoint curPoint = slider->absoluteToLocal(mouseEvent->absoluteLocation(), false, true); - IntPoint eventOffset(m_initialPosition + curPoint.x() - m_initialClickPoint.x() + renderBox()->width() / 2, - m_initialPosition + curPoint.y() - m_initialClickPoint.y() + renderBox()->height() / 2); - slider->setValueForPosition(slider->positionForOffset(eventOffset)); - event->setDefaultHandled(); - return; + if (slider) { + FloatPoint curPoint = slider->absoluteToLocal(mouseEvent->absoluteLocation(), false, true); + IntPoint eventOffset(curPoint.x() + m_offsetToThumb.x(), curPoint.y() + m_offsetToThumb.y()); + slider->setValueForPosition(slider->positionForOffset(eventOffset)); + event->setDefaultHandled(); + return; + } } } HTMLDivElement::defaultEventHandler(event); } +void SliderThumbElement::detach() +{ + if (m_inDragMode) { + if (Frame* frame = document()->frame()) + frame->eventHandler()->setCapturingMouseEventsNode(0); + } + HTMLDivElement::detach(); +} + RenderSlider::RenderSlider(HTMLInputElement* element) : RenderBlock(element) { @@ -387,6 +404,17 @@ bool RenderSlider::mouseEventIsInThumb(MouseEvent* evt) return thumbBounds.contains(roundedIntPoint(localPoint)); } +FloatPoint RenderSlider::mouseEventOffsetToThumb(MouseEvent* evt) +{ + ASSERT(m_thumb && m_thumb->renderer()); + FloatPoint localPoint = m_thumb->renderBox()->absoluteToLocal(evt->absoluteLocation(), false, true); + IntRect thumbBounds = m_thumb->renderBox()->borderBoxRect(); + FloatPoint offset; + offset.setX(thumbBounds.x() + thumbBounds.width() / 2 - localPoint.x()); + offset.setY(thumbBounds.y() + thumbBounds.height() / 2 - localPoint.y()); + return offset; +} + void RenderSlider::setValueForPosition(int position) { if (!m_thumb || !m_thumb->renderer()) diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderSlider.h b/src/3rdparty/webkit/WebCore/rendering/RenderSlider.h index f1eab9c..779d82f 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderSlider.h +++ b/src/3rdparty/webkit/WebCore/rendering/RenderSlider.h @@ -41,12 +41,13 @@ namespace WebCore { virtual const char* renderName() const { return "RenderSlider"; } virtual bool isSlider() const { return true; } - virtual int baselinePosition( bool, bool ) const; + virtual int baselinePosition(bool, bool) const; virtual void calcPrefWidths(); virtual void layout(); virtual void updateFromElement(); bool mouseEventIsInThumb(MouseEvent*); + FloatPoint mouseEventOffsetToThumb(MouseEvent*); void setValueForPosition(int position); void setPositionFromValue(); diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderTable.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderTable.cpp index 48b0d1c..5d70784 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderTable.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderTable.cpp @@ -882,8 +882,7 @@ int RenderTable::outerBorderBottom() const bottomSection = m_foot; else { RenderObject* child; - for (child = lastChild(); child && !child->isTableSection(); child = child->previousSibling()) - ; + for (child = lastChild(); child && !child->isTableSection(); child = child->previousSibling()) { } bottomSection = child ? static_cast<RenderTableSection*>(child) : 0; } if (bottomSection) { diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderTableCol.h b/src/3rdparty/webkit/WebCore/rendering/RenderTableCol.h index 6b17ec4..12b6d9d 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderTableCol.h +++ b/src/3rdparty/webkit/WebCore/rendering/RenderTableCol.h @@ -33,8 +33,7 @@ namespace WebCore { -class RenderTableCol : public RenderBox -{ +class RenderTableCol : public RenderBox { public: RenderTableCol(Node*); diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderTextControl.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderTextControl.cpp index 29c8c8a..9acd9b2 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderTextControl.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderTextControl.cpp @@ -325,26 +325,14 @@ String RenderTextControl::text() if (!m_innerText) return ""; - Frame* frame = document()->frame(); - Text* compositionNode = frame ? frame->editor()->compositionNode() : 0; - Vector<UChar> result; for (Node* n = m_innerText.get(); n; n = n->traverseNextNode(m_innerText.get())) { if (n->hasTagName(brTag)) result.append(&newlineCharacter, 1); else if (n->isTextNode()) { - Text* text = static_cast<Text*>(n); - String data = text->data(); - unsigned length = data.length(); - if (text != compositionNode) - result.append(data.characters(), length); - else { - unsigned compositionStart = min(frame->editor()->compositionStart(), length); - unsigned compositionEnd = min(max(compositionStart, frame->editor()->compositionEnd()), length); - result.append(data.characters(), compositionStart); - result.append(data.characters() + compositionEnd, length - compositionEnd); - } + String data = static_cast<Text*>(n)->data(); + result.append(data.characters(), data.length()); } } @@ -386,9 +374,6 @@ String RenderTextControl::textWithHardLineBreaks() if (!box) return ""; - Frame* frame = document()->frame(); - Text* compositionNode = frame ? frame->editor()->compositionNode() : 0; - Node* breakNode; unsigned breakOffset; RootInlineBox* line = box->root(); @@ -403,19 +388,7 @@ String RenderTextControl::textWithHardLineBreaks() Text* text = static_cast<Text*>(n); String data = text->data(); unsigned length = data.length(); - unsigned compositionStart = (text == compositionNode) - ? min(frame->editor()->compositionStart(), length) : 0; - unsigned compositionEnd = (text == compositionNode) - ? min(max(compositionStart, frame->editor()->compositionEnd()), length) : 0; unsigned position = 0; - while (breakNode == n && breakOffset < compositionStart) { - result.append(data.characters() + position, breakOffset - position); - position = breakOffset; - result.append(&newlineCharacter, 1); - getNextSoftBreak(line, breakNode, breakOffset); - } - result.append(data.characters() + position, compositionStart - position); - position = compositionEnd; while (breakNode == n && breakOffset <= length) { if (breakOffset > position) { result.append(data.characters() + position, breakOffset - position); diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderTextControlSingleLine.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderTextControlSingleLine.cpp index a5db44e..9c022d6 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderTextControlSingleLine.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderTextControlSingleLine.cpp @@ -744,8 +744,8 @@ int RenderTextControlSingleLine::selectedIndex() const bool RenderTextControlSingleLine::itemIsSeparator(unsigned listIndex) const { - // The separator will be the second to last item in our list. - return static_cast<int>(listIndex) == (listSize() - 2); + // The separator will be the second to last item in our list. + return static_cast<int>(listIndex) == (listSize() - 2); } bool RenderTextControlSingleLine::itemIsLabel(unsigned listIndex) const diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderTheme.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderTheme.cpp index 517d911..23b6343 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderTheme.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderTheme.cpp @@ -42,6 +42,12 @@ namespace WebCore { using namespace HTMLNames; +static Color& customFocusRingColor() +{ + DEFINE_STATIC_LOCAL(Color, color, ()); + return color; +} + RenderTheme::RenderTheme() #if USE(NEW_THEME) : m_theme(platformTheme()) @@ -262,6 +268,10 @@ bool RenderTheme::paint(RenderObject* o, const RenderObject::PaintInfo& paintInf return paintMediaSeekBackButton(o, paintInfo, r); case MediaSeekForwardButtonPart: return paintMediaSeekForwardButton(o, paintInfo, r); + case MediaRewindButtonPart: + return paintMediaRewindButton(o, paintInfo, r); + case MediaReturnToRealtimeButtonPart: + return paintMediaReturnToRealtimeButton(o, paintInfo, r); case MediaSliderPart: return paintMediaSliderTrack(o, paintInfo, r); case MediaSliderThumbPart: @@ -272,8 +282,8 @@ bool RenderTheme::paint(RenderObject* o, const RenderObject::PaintInfo& paintInf return paintMediaTimeRemaining(o, paintInfo, r); case MediaCurrentTimePart: return paintMediaCurrentTime(o, paintInfo, r); - case MediaTimelineContainerPart: - return paintMediaTimelineContainer(o, paintInfo, r); + case MediaControlsBackgroundPart: + return paintMediaControlsBackground(o, paintInfo, r); case MenulistButtonPart: case TextFieldPart: case TextAreaPart: @@ -849,9 +859,14 @@ Color RenderTheme::platformInactiveTextSearchHighlightColor() const return Color(255, 255, 0); // Yellow. } -Color RenderTheme::focusRingColor() const +void RenderTheme::setCustomFocusRingColor(const Color& c) +{ + customFocusRingColor() = c; +} + +Color RenderTheme::focusRingColor() { - return Color(0, 0, 0); // Black. + return customFocusRingColor().isValid() ? customFocusRingColor() : defaultTheme()->platformFocusRingColor(); } } // namespace WebCore diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderTheme.h b/src/3rdparty/webkit/WebCore/rendering/RenderTheme.h index a1519ce..795daa2 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderTheme.h +++ b/src/3rdparty/webkit/WebCore/rendering/RenderTheme.h @@ -78,7 +78,7 @@ public: // RenderThemeMac.cpp for Mac OS X. // These methods return the theme's extra style sheets rules, to let each platform - // adjust the default CSS rules in html4.css, quirks.css, or mediaControls.css + // adjust the default CSS rules in html.css, quirks.css, or mediaControls.css virtual String extraDefaultStyleSheet() { return String(); } virtual String extraQuirksStyleSheet() { return String(); } #if ENABLE(VIDEO) @@ -137,7 +137,9 @@ public: virtual Color platformActiveTextSearchHighlightColor() const; virtual Color platformInactiveTextSearchHighlightColor() const; - virtual Color focusRingColor() const; + static Color focusRingColor(); + virtual Color platformFocusRingColor() const { return Color(0, 0, 0); } + static void setCustomFocusRingColor(const Color&); virtual void platformColorsDidChange(); @@ -242,7 +244,9 @@ protected: virtual bool paintMediaSeekForwardButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; } virtual bool paintMediaSliderTrack(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; } virtual bool paintMediaSliderThumb(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; } - virtual bool paintMediaTimelineContainer(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; } + virtual bool paintMediaRewindButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; } + virtual bool paintMediaReturnToRealtimeButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; } + virtual bool paintMediaControlsBackground(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; } virtual bool paintMediaCurrentTime(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; } virtual bool paintMediaTimeRemaining(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; } diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumMac.h b/src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumMac.h index 5497d52..f8204cf 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumMac.h +++ b/src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumMac.h @@ -64,7 +64,7 @@ namespace WebCore { virtual Color platformInactiveSelectionBackgroundColor() const; virtual Color activeListBoxSelectionBackgroundColor() const; - virtual Color focusRingColor() const; + virtual Color platformFocusRingColor() const; virtual void platformColorsDidChange(); diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumMac.mm b/src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumMac.mm index bd90831..efd28d9 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumMac.mm +++ b/src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumMac.mm @@ -46,6 +46,7 @@ #import "Image.h" #import "LocalCurrentGraphicsContext.h" #import "MediaControlElements.h" +#import "RenderMedia.h" #import "RenderSlider.h" #import "RenderView.h" #import "SharedBuffer.h" @@ -172,7 +173,7 @@ Color RenderThemeChromiumMac::activeListBoxSelectionBackgroundColor() const return Color(static_cast<int>(255.0 * [color redComponent]), static_cast<int>(255.0 * [color greenComponent]), static_cast<int>(255.0 * [color blueComponent])); } -Color RenderThemeChromiumMac::focusRingColor() const +Color RenderThemeChromiumMac::platformFocusRingColor() const { if (ChromiumBridge::layoutTestMode()) return oldAquaFocusRingColor(); @@ -1800,6 +1801,12 @@ typedef enum { MediaControllerThemeClassic = 1, MediaControllerThemeQT = 2 } MediaControllerThemeStyle; + +enum WKMediaControllerThemeState { + MediaUIPartDisabledFlag = 1 << 0, + MediaUIPartPressedFlag = 1 << 1, + MediaUIPartDrawEndCapsFlag = 1 << 3, +}; #endif bool RenderThemeChromiumMac::paintMediaFullscreenButton(RenderObject* o, const RenderObject::PaintInfo& paintInfo, const IntRect& r) @@ -1810,7 +1817,8 @@ bool RenderThemeChromiumMac::paintMediaFullscreenButton(RenderObject* o, const R return false; LocalCurrentGraphicsContext localContext(paintInfo.context); - wkDrawMediaUIPart(MediaFullscreenButton, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, node->active()); + wkDrawMediaUIPart(MediaFullscreenButton, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, + node->active() ? MediaUIPartPressedFlag : 0); #endif return false; } @@ -1828,7 +1836,8 @@ bool RenderThemeChromiumMac::paintMediaMuteButton(RenderObject* o, const RenderO return false; LocalCurrentGraphicsContext localContext(paintInfo.context); - wkDrawMediaUIPart(mediaElement->muted() ? MediaUnMuteButton : MediaMuteButton, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, node->active()); + wkDrawMediaUIPart(mediaElement->muted() ? MediaUnMuteButton : MediaMuteButton, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, + node->active() ? MediaUIPartPressedFlag : 0); #endif return false; } @@ -1846,7 +1855,8 @@ bool RenderThemeChromiumMac::paintMediaPlayButton(RenderObject* o, const RenderO return false; LocalCurrentGraphicsContext localContext(paintInfo.context); - wkDrawMediaUIPart(mediaElement->canPlay() ? MediaPlayButton : MediaPauseButton, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, node->active()); + wkDrawMediaUIPart(mediaElement->canPlay() ? MediaPlayButton : MediaPauseButton, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, + node->active() ? MediaUIPartPressedFlag : 0); #endif return false; } @@ -1859,7 +1869,8 @@ bool RenderThemeChromiumMac::paintMediaSeekBackButton(RenderObject* o, const Ren return false; LocalCurrentGraphicsContext localContext(paintInfo.context); - wkDrawMediaUIPart(MediaSeekBackButton, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, node->active()); + wkDrawMediaUIPart(MediaSeekBackButton, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, + node->active() ? MediaUIPartPressedFlag : 0); #endif return false; } @@ -1872,7 +1883,8 @@ bool RenderThemeChromiumMac::paintMediaSeekForwardButton(RenderObject* o, const return false; LocalCurrentGraphicsContext localContext(paintInfo.context); - wkDrawMediaUIPart(MediaSeekForwardButton, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, node->active()); + wkDrawMediaUIPart(MediaSeekForwardButton, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, + node->active() ? MediaUIPartPressedFlag : 0); #endif return false; } @@ -1898,7 +1910,8 @@ bool RenderThemeChromiumMac::paintMediaSliderTrack(RenderObject* o, const Render currentTime = player->currentTime(); } - wkDrawMediaSliderTrack(MediaControllerThemeClassic, paintInfo.context->platformContext(), r, timeLoaded, currentTime, duration); + bool shouldDrawEndCaps = !static_cast<RenderMedia*>(mediaElement->renderer())->shouldShowTimeDisplayControls(); + wkDrawMediaSliderTrack(MediaControllerThemeClassic, paintInfo.context->platformContext(), r, timeLoaded, currentTime, duration, shouldDrawEndCaps ? MediaUIPartDrawEndCapsFlag : 0); #endif return false; } @@ -1911,7 +1924,8 @@ bool RenderThemeChromiumMac::paintMediaSliderThumb(RenderObject* o, const Render return false; LocalCurrentGraphicsContext localContext(paintInfo.context); - wkDrawMediaUIPart(MediaSliderThumb, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, node->active()); + wkDrawMediaUIPart(MediaSliderThumb, MediaControllerThemeClassic, paintInfo.context->platformContext(), r, + node->active() ? MediaUIPartPressedFlag : 0); #endif return false; } diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumSkia.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumSkia.cpp index 1fb0cb2..95ffd02 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumSkia.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumSkia.cpp @@ -133,7 +133,7 @@ String RenderThemeChromiumSkia::extraMediaControlsStyleSheet() bool RenderThemeChromiumSkia::supportsHover(const RenderStyle* style) const { - return true; + return true; } bool RenderThemeChromiumSkia::supportsFocusRing(const RenderStyle* style) const @@ -162,7 +162,7 @@ Color RenderThemeChromiumSkia::platformInactiveSelectionForegroundColor() const return Color(0x32, 0x32, 0x32); } -Color RenderThemeChromiumSkia::focusRingColor() const +Color RenderThemeChromiumSkia::platformFocusRingColor() const { static Color focusRingColor(229, 151, 0, 255); return focusRingColor; @@ -212,8 +212,16 @@ bool RenderThemeChromiumSkia::paintCheckbox(RenderObject* o, const RenderObject: { static Image* const checkedImage = Image::loadPlatformResource("linuxCheckboxOn").releaseRef(); static Image* const uncheckedImage = Image::loadPlatformResource("linuxCheckboxOff").releaseRef(); + static Image* const disabledCheckedImage = Image::loadPlatformResource("linuxCheckboxDisabledOn").releaseRef(); + static Image* const disabledUncheckedImage = Image::loadPlatformResource("linuxCheckboxDisabledOff").releaseRef(); + + Image* image; + + if (this->isEnabled(o)) + image = this->isChecked(o) ? checkedImage : uncheckedImage; + else + image = this->isChecked(o) ? disabledCheckedImage : disabledUncheckedImage; - Image* image = this->isChecked(o) ? checkedImage : uncheckedImage; i.context->drawImage(image, rect); return false; } @@ -237,8 +245,15 @@ bool RenderThemeChromiumSkia::paintRadio(RenderObject* o, const RenderObject::Pa { static Image* const checkedImage = Image::loadPlatformResource("linuxRadioOn").releaseRef(); static Image* const uncheckedImage = Image::loadPlatformResource("linuxRadioOff").releaseRef(); + static Image* const disabledCheckedImage = Image::loadPlatformResource("linuxRadioDisabledOn").releaseRef(); + static Image* const disabledUncheckedImage = Image::loadPlatformResource("linuxRadioDisabledOff").releaseRef(); + + Image* image; + if (this->isEnabled(o)) + image = this->isChecked(o) ? checkedImage : uncheckedImage; + else + image = this->isChecked(o) ? disabledCheckedImage : disabledUncheckedImage; - Image* image = this->isChecked(o) ? checkedImage : uncheckedImage; i.context->drawImage(image, rect); return false; } diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumSkia.h b/src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumSkia.h index b81d4fa..8be64e5 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumSkia.h +++ b/src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumSkia.h @@ -54,7 +54,7 @@ namespace WebCore { virtual Color platformInactiveSelectionBackgroundColor() const; virtual Color platformActiveSelectionForegroundColor() const; virtual Color platformInactiveSelectionForegroundColor() const; - virtual Color focusRingColor() const; + virtual Color platformFocusRingColor() const; // To change the blink interval, override caretBlinkIntervalInternal instead of this one so that we may share layout test code an intercepts. virtual double caretBlinkInterval() const; diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumWin.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumWin.cpp index 4ed8d88..8459144 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumWin.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumWin.cpp @@ -204,11 +204,11 @@ PassRefPtr<RenderTheme> RenderTheme::themeForPage(Page* page) bool RenderThemeChromiumWin::supportsFocusRing(const RenderStyle* style) const { - // Let webkit draw one of its halo rings around any focused element, - // except push buttons. For buttons we use the windows PBS_DEFAULTED - // styling to give it a blue border. - return style->appearance() == ButtonPart - || style->appearance() == PushButtonPart; + // Let webkit draw one of its halo rings around any focused element, + // except push buttons. For buttons we use the windows PBS_DEFAULTED + // styling to give it a blue border. + return style->appearance() == ButtonPart + || style->appearance() == PushButtonPart; } Color RenderThemeChromiumWin::platformActiveSelectionBackgroundColor() const diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderThemeMac.h b/src/3rdparty/webkit/WebCore/rendering/RenderThemeMac.h index ba32105..85f141f 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderThemeMac.h +++ b/src/3rdparty/webkit/WebCore/rendering/RenderThemeMac.h @@ -58,7 +58,7 @@ public: virtual Color platformActiveListBoxSelectionForegroundColor() const; virtual Color platformInactiveListBoxSelectionBackgroundColor() const; virtual Color platformInactiveListBoxSelectionForegroundColor() const; - virtual Color focusRingColor() const; + virtual Color platformFocusRingColor() const; virtual ScrollbarControlSize scrollbarControlSizeForPart(ControlPart) { return SmallScrollbar; } @@ -124,12 +124,13 @@ protected: virtual bool paintMediaSeekForwardButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&); virtual bool paintMediaSliderTrack(RenderObject*, const RenderObject::PaintInfo&, const IntRect&); virtual bool paintMediaSliderThumb(RenderObject*, const RenderObject::PaintInfo&, const IntRect&); - virtual bool paintMediaTimelineContainer(RenderObject*, const RenderObject::PaintInfo&, const IntRect&); + virtual bool paintMediaRewindButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&); + virtual bool paintMediaReturnToRealtimeButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&); + virtual bool paintMediaControlsBackground(RenderObject*, const RenderObject::PaintInfo&, const IntRect&); virtual bool paintMediaCurrentTime(RenderObject*, const RenderObject::PaintInfo&, const IntRect&); virtual bool paintMediaTimeRemaining(RenderObject*, const RenderObject::PaintInfo&, const IntRect&); // Media controls - virtual bool hitTestMediaControlPart(RenderObject*, const IntPoint& absPoint); virtual String extraMediaControlsStyleSheet(); #endif diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderThemeSafari.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderThemeSafari.cpp index 914f7ee..05facef 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderThemeSafari.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderThemeSafari.cpp @@ -79,8 +79,10 @@ PassRefPtr<RenderTheme> RenderTheme::themeForPage(Page* page) // FIXME: This is called before Settings has been initialized by WebKit, so will return a // potentially wrong answer the very first time it's called (see // <https://bugs.webkit.org/show_bug.cgi?id=26493>). - if (Settings::shouldPaintNativeControls()) + if (Settings::shouldPaintNativeControls()) { + RenderTheme::setCustomFocusRingColor(safariTheme->platformFocusRingColor()); return windowsTheme; // keep the reference of one. + } return safariTheme; // keep the reference of one. } @@ -160,7 +162,7 @@ Color RenderThemeSafari::activeListBoxSelectionBackgroundColor() const return Color(56, 117, 215); } -Color RenderThemeSafari::focusRingColor() const +Color RenderThemeSafari::platformFocusRingColor() const { static Color focusRingColor; diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderThemeSafari.h b/src/3rdparty/webkit/WebCore/rendering/RenderThemeSafari.h index 4685238..fb8ffb0 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderThemeSafari.h +++ b/src/3rdparty/webkit/WebCore/rendering/RenderThemeSafari.h @@ -69,7 +69,7 @@ public: virtual Color platformInactiveSelectionBackgroundColor() const; virtual Color activeListBoxSelectionBackgroundColor() const; - virtual Color focusRingColor() const; + virtual Color platformFocusRingColor() const; // System fonts. virtual void systemFont(int propId, FontDescription&) const; diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderView.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderView.cpp index 05d40bc..3b8a4fb 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderView.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderView.cpp @@ -343,8 +343,8 @@ void RenderView::setMaximalOutlineSize(int o) if (o != m_maximalOutlineSize) { m_maximalOutlineSize = o; - if (m_frameView) - m_frameView->updateCompositingLayers(FrameView::ForcedCompositingUpdate); + // maximalOutlineSize affects compositing layer dimensions. + compositor()->setCompositingLayersNeedRebuild(); // FIXME: this really just needs to be a geometry update. } } #endif diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderWidget.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderWidget.cpp index ec2ee6a..16526ca 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderWidget.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RenderWidget.cpp @@ -73,8 +73,8 @@ void RenderWidget::destroy() if (m_widget) { if (m_frameView) - m_frameView->removeChild(m_widget); - widgetRendererMap().remove(m_widget); + m_frameView->removeChild(m_widget.get()); + widgetRendererMap().remove(m_widget.get()); } // removes from override size map @@ -113,17 +113,17 @@ void RenderWidget::setWidgetGeometry(const IntRect& frame) } } -void RenderWidget::setWidget(Widget* widget) +void RenderWidget::setWidget(PassRefPtr<Widget> widget) { if (widget != m_widget) { if (m_widget) { m_widget->removeFromParent(); - widgetRendererMap().remove(m_widget); + widgetRendererMap().remove(m_widget.get()); clearWidget(); } m_widget = widget; if (m_widget) { - widgetRendererMap().add(m_widget, this); + widgetRendererMap().add(m_widget.get(), this); // if we've already received a layout, apply the calculated space to the // widget immediately, but we have to have really been full constructed (with a non-null // style pointer). @@ -135,7 +135,7 @@ void RenderWidget::setWidget(Widget* widget) else m_widget->show(); } - m_frameView->addChild(m_widget); + m_frameView->addChild(m_widget.get()); } } } @@ -182,8 +182,7 @@ void RenderWidget::paint(PaintInfo& paintInfo, int tx, int ty) paintCustomHighlight(tx - x(), ty - y(), style()->highlight(), true); #endif - bool clipToBorderRadius = style()->overflowX() != OVISIBLE && style()->hasBorderRadius(); - if (clipToBorderRadius) { + if (style()->hasBorderRadius()) { // Push a clip if we have a border radius, since we want to round the foreground content that gets painted. paintInfo.context->save(); @@ -204,13 +203,13 @@ void RenderWidget::paint(PaintInfo& paintInfo, int tx, int ty) // to paint itself. That way it will composite properly with z-indexed layers. m_widget->paint(paintInfo.context, paintInfo.rect); - if (m_widget->isFrameView() && paintInfo.overlapTestRequests && !static_cast<FrameView*>(m_widget)->useSlowRepaints()) { + if (m_widget->isFrameView() && paintInfo.overlapTestRequests && !static_cast<FrameView*>(m_widget.get())->useSlowRepaints()) { ASSERT(!paintInfo.overlapTestRequests->contains(this)); paintInfo.overlapTestRequests->set(this, m_widget->frameRect()); } } - if (clipToBorderRadius) + if (style()->hasBorderRadius()) paintInfo.context->restore(); // Paint a partially transparent wash over selected widgets. @@ -224,7 +223,7 @@ void RenderWidget::setOverlapTestResult(bool isOverlapped) { ASSERT(m_widget); ASSERT(m_widget->isFrameView()); - static_cast<FrameView*>(m_widget)->setIsOverlapped(isOverlapped); + static_cast<FrameView*>(m_widget.get())->setIsOverlapped(isOverlapped); } void RenderWidget::deref(RenderArena *arena) @@ -259,7 +258,7 @@ void RenderWidget::updateWidgetPosition() // if the frame bounds got changed, or if view needs layout (possibly indicating // content size is wrong) we have to do a layout to set the right widget size if (m_widget->isFrameView()) { - FrameView* frameView = static_cast<FrameView*>(m_widget); + FrameView* frameView = static_cast<FrameView*>(m_widget.get()); if (boundsChanged || frameView->needsLayout()) frameView->layout(); } @@ -276,15 +275,7 @@ void RenderWidget::setSelectionState(SelectionState state) void RenderWidget::clearWidget() { - Widget* widget = m_widget; m_widget = 0; - if (widget) - deleteWidget(widget); -} - -void RenderWidget::deleteWidget(Widget* widget) -{ - delete widget; } RenderWidget* RenderWidget::find(const Widget* widget) diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderWidget.h b/src/3rdparty/webkit/WebCore/rendering/RenderWidget.h index d23dbb3..97d0b72 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RenderWidget.h +++ b/src/3rdparty/webkit/WebCore/rendering/RenderWidget.h @@ -33,8 +33,8 @@ class RenderWidget : public RenderReplaced, private OverlapTestRequestClient { public: virtual ~RenderWidget(); - Widget* widget() const { return m_widget; } - virtual void setWidget(Widget*); + Widget* widget() const { return m_widget.get(); } + virtual void setWidget(PassRefPtr<Widget>); static RenderWidget* find(const Widget*); @@ -57,7 +57,6 @@ private: virtual void destroy(); virtual void setSelectionState(SelectionState); virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, int x, int y, int tx, int ty, HitTestAction); - virtual void deleteWidget(Widget*); virtual void setOverlapTestResult(bool); void setWidgetGeometry(const IntRect&); @@ -65,7 +64,7 @@ private: RenderArena* ref() { ++m_refCount; return renderArena(); } void deref(RenderArena*); - Widget* m_widget; + RefPtr<Widget> m_widget; FrameView* m_frameView; int m_refCount; }; diff --git a/src/3rdparty/webkit/WebCore/rendering/RootInlineBox.cpp b/src/3rdparty/webkit/WebCore/rendering/RootInlineBox.cpp index ed125ee..e8f04da 100644 --- a/src/3rdparty/webkit/WebCore/rendering/RootInlineBox.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/RootInlineBox.cpp @@ -355,8 +355,8 @@ static bool isEditableLeaf(InlineBox* leaf) InlineBox* RootInlineBox::closestLeafChildForXPos(int x, bool onlyEditableLeaves) { - InlineBox* firstLeaf = firstLeafChildAfterBox(); - InlineBox* lastLeaf = lastLeafChildBeforeBox(); + InlineBox* firstLeaf = firstLeafChild(); + InlineBox* lastLeaf = lastLeafChild(); if (firstLeaf == lastLeaf && (!onlyEditableLeaves || isEditableLeaf(firstLeaf))) return firstLeaf; diff --git a/src/3rdparty/webkit/WebCore/rendering/SVGCharacterLayoutInfo.cpp b/src/3rdparty/webkit/WebCore/rendering/SVGCharacterLayoutInfo.cpp index 8871a75..b53e3d9 100644 --- a/src/3rdparty/webkit/WebCore/rendering/SVGCharacterLayoutInfo.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/SVGCharacterLayoutInfo.cpp @@ -390,11 +390,11 @@ void SVGCharacterLayoutInfo::addStackContent(StackType type, const PositionedFlo dyStackChanged = true; dyStack.append(list); break; - case AngleStack: + case AngleStack: angleStackChanged = true; angleStack.append(list); break; - default: + default: ASSERT_NOT_REACHED(); } } diff --git a/src/3rdparty/webkit/WebCore/rendering/SVGCharacterLayoutInfo.h b/src/3rdparty/webkit/WebCore/rendering/SVGCharacterLayoutInfo.h index 0188b9d..b5b4f3e 100644 --- a/src/3rdparty/webkit/WebCore/rendering/SVGCharacterLayoutInfo.h +++ b/src/3rdparty/webkit/WebCore/rendering/SVGCharacterLayoutInfo.h @@ -44,8 +44,7 @@ class SVGNumberList; class SVGTextPositioningElement; template<class Type> -class PositionedVector : public Vector<Type> -{ +class PositionedVector : public Vector<Type> { public: PositionedVector<Type>() : m_position(0) diff --git a/src/3rdparty/webkit/WebCore/rendering/SVGInlineFlowBox.h b/src/3rdparty/webkit/WebCore/rendering/SVGInlineFlowBox.h index 1aa2637..f6eb87a 100644 --- a/src/3rdparty/webkit/WebCore/rendering/SVGInlineFlowBox.h +++ b/src/3rdparty/webkit/WebCore/rendering/SVGInlineFlowBox.h @@ -37,7 +37,7 @@ public: { } - virtual int svgBoxHeight() const { return m_height; } + virtual int virtualHeight() const { return m_height; } void setHeight(int h) { m_height = h; } virtual void paint(RenderObject::PaintInfo&, int tx, int ty); diff --git a/src/3rdparty/webkit/WebCore/rendering/SVGInlineTextBox.h b/src/3rdparty/webkit/WebCore/rendering/SVGInlineTextBox.h index 410218d..76837cc 100644 --- a/src/3rdparty/webkit/WebCore/rendering/SVGInlineTextBox.h +++ b/src/3rdparty/webkit/WebCore/rendering/SVGInlineTextBox.h @@ -38,7 +38,7 @@ namespace WebCore { public: SVGInlineTextBox(RenderObject* obj); - virtual int svgBoxHeight() const { return m_height; } + virtual int virtualHeight() const { return m_height; } void setHeight(int h) { m_height = h; } virtual int selectionTop(); diff --git a/src/3rdparty/webkit/WebCore/rendering/SVGRootInlineBox.h b/src/3rdparty/webkit/WebCore/rendering/SVGRootInlineBox.h index 735f755..65bade0 100644 --- a/src/3rdparty/webkit/WebCore/rendering/SVGRootInlineBox.h +++ b/src/3rdparty/webkit/WebCore/rendering/SVGRootInlineBox.h @@ -53,7 +53,7 @@ public: virtual bool isSVGRootInlineBox() { return true; } - virtual int svgBoxHeight() const { return m_height; } + virtual int virtualHeight() const { return m_height; } void setHeight(int h) { m_height = h; } virtual void paint(RenderObject::PaintInfo&, int tx, int ty); diff --git a/src/3rdparty/webkit/WebCore/rendering/TextControlInnerElements.cpp b/src/3rdparty/webkit/WebCore/rendering/TextControlInnerElements.cpp index cd067de..e205882 100644 --- a/src/3rdparty/webkit/WebCore/rendering/TextControlInnerElements.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/TextControlInnerElements.cpp @@ -172,6 +172,16 @@ SearchFieldCancelButtonElement::SearchFieldCancelButtonElement(Document* doc) { } +void SearchFieldCancelButtonElement::detach() +{ + if (m_capturing) { + if (Frame* frame = document()->frame()) + frame->eventHandler()->setCapturingMouseEventsNode(0); + } + TextControlInnerElement::detach(); +} + + void SearchFieldCancelButtonElement::defaultEventHandler(Event* evt) { // If the element is visible, on mouseup, clear the value, and set selection diff --git a/src/3rdparty/webkit/WebCore/rendering/TextControlInnerElements.h b/src/3rdparty/webkit/WebCore/rendering/TextControlInnerElements.h index 9e81ada..f72ddf2 100644 --- a/src/3rdparty/webkit/WebCore/rendering/TextControlInnerElements.h +++ b/src/3rdparty/webkit/WebCore/rendering/TextControlInnerElements.h @@ -32,8 +32,7 @@ namespace WebCore { class String; -class TextControlInnerElement : public HTMLDivElement -{ +class TextControlInnerElement : public HTMLDivElement { public: TextControlInnerElement(Document*, Node* shadowParent = 0); @@ -64,6 +63,7 @@ class SearchFieldCancelButtonElement : public TextControlInnerElement { public: SearchFieldCancelButtonElement(Document*); virtual void defaultEventHandler(Event*); + virtual void detach(); private: bool m_capturing; }; diff --git a/src/3rdparty/webkit/WebCore/rendering/bidi.h b/src/3rdparty/webkit/WebCore/rendering/bidi.h deleted file mode 100644 index 9058eeb..0000000 --- a/src/3rdparty/webkit/WebCore/rendering/bidi.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * This file is part of the html renderer for KDE. - * - * Copyright (C) 2000 Lars Knoll (knoll@kde.org) - * Copyright (C) 2003 Apple Computer, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - -#ifndef bidi_h -#define bidi_h - -#include "BidiResolver.h" - -namespace WebCore { - -class RenderArena; -class RenderBlock; -class RenderObject; -class InlineBox; - -struct BidiRun : BidiCharacterRun { - BidiRun(int start, int stop, RenderObject* object, BidiContext* context, WTF::Unicode::Direction dir) - : BidiCharacterRun(start, stop, context, dir) - , m_object(object) - , m_box(0) - { - } - - void destroy(); - - // Overloaded new operator. - void* operator new(size_t, RenderArena*) throw(); - - // Overridden to prevent the normal delete from being called. - void operator delete(void*, size_t); - - BidiRun* next() { return static_cast<BidiRun*>(m_next); } - -private: - // The normal operator new is disallowed. - void* operator new(size_t) throw(); - -public: - RenderObject* m_object; - InlineBox* m_box; -}; - -} // namespace WebCore - -#endif // bidi_h diff --git a/src/3rdparty/webkit/WebCore/rendering/style/RenderStyle.cpp b/src/3rdparty/webkit/WebCore/rendering/style/RenderStyle.cpp index e4027db..36255b8 100644 --- a/src/3rdparty/webkit/WebCore/rendering/style/RenderStyle.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/style/RenderStyle.cpp @@ -225,6 +225,13 @@ RenderStyle* RenderStyle::addCachedPseudoStyle(PassRefPtr<RenderStyle> pseudo) return m_cachedPseudoStyle.get(); } +void RenderStyle::getPseudoStyleCache(PseudoStyleCache& cache) const +{ + ASSERT(cache.isEmpty()); + for (RenderStyle* pseudoStyle = m_cachedPseudoStyle.get(); pseudoStyle; pseudoStyle = pseudoStyle->m_cachedPseudoStyle.get()) + cache.append(pseudoStyle); +} + bool RenderStyle::inheritedNotEqual(const RenderStyle* other) const { return inherited_flags != other->inherited_flags || diff --git a/src/3rdparty/webkit/WebCore/rendering/style/RenderStyle.h b/src/3rdparty/webkit/WebCore/rendering/style/RenderStyle.h index 46c91cd..6922c88 100644 --- a/src/3rdparty/webkit/WebCore/rendering/style/RenderStyle.h +++ b/src/3rdparty/webkit/WebCore/rendering/style/RenderStyle.h @@ -307,6 +307,9 @@ public: RenderStyle* getCachedPseudoStyle(PseudoId) const; RenderStyle* addCachedPseudoStyle(PassRefPtr<RenderStyle>); + typedef Vector<RenderStyle*, 10> PseudoStyleCache; + void getPseudoStyleCache(PseudoStyleCache&) const; + bool affectedByHoverRules() const { return noninherited_flags._affectedByHover; } bool affectedByActiveRules() const { return noninherited_flags._affectedByActive; } bool affectedByDragRules() const { return noninherited_flags._affectedByDrag; } @@ -788,7 +791,7 @@ public: void setOverflowY(EOverflow v) { noninherited_flags._overflowY = v; } void setVisibility(EVisibility v) { inherited_flags._visibility = v; } void setVerticalAlign(EVerticalAlign v) { noninherited_flags._vertical_align = v; } - void setVerticalAlignLength(Length l) { SET_VAR(box, vertical_align, l ) } + void setVerticalAlignLength(Length l) { SET_VAR(box, vertical_align, l) } void setHasClip(bool b = true) { SET_VAR(visual, hasClip, b) } void setClipLeft(Length v) { SET_VAR(visual, clip.m_left, v) } @@ -797,7 +800,7 @@ public: void setClipBottom(Length v) { SET_VAR(visual, clip.m_bottom, v) } void setClip(Length top, Length right, Length bottom, Length left); - void setUnicodeBidi( EUnicodeBidi b ) { noninherited_flags._unicodeBidi = b; } + void setUnicodeBidi(EUnicodeBidi b) { noninherited_flags._unicodeBidi = b; } void setClear(EClear v) { noninherited_flags._clear = v; } void setTableLayout(ETableLayout v) { noninherited_flags._table_layout = v; } @@ -884,7 +887,7 @@ public: void setPaddingLeft(Length v) { SET_VAR(surround, padding.m_left, v) } void setPaddingRight(Length v) { SET_VAR(surround, padding.m_right, v) } - void setCursor( ECursor c ) { inherited_flags._cursor_style = c; } + void setCursor(ECursor c) { inherited_flags._cursor_style = c; } void addCursor(CachedImage*, const IntPoint& = IntPoint()); void setCursorList(PassRefPtr<CursorList>); void clearCursorList(); diff --git a/src/3rdparty/webkit/WebCore/rendering/style/RenderStyleConstants.h b/src/3rdparty/webkit/WebCore/rendering/style/RenderStyleConstants.h index 405cf7c..b08dd87 100644 --- a/src/3rdparty/webkit/WebCore/rendering/style/RenderStyleConstants.h +++ b/src/3rdparty/webkit/WebCore/rendering/style/RenderStyleConstants.h @@ -69,7 +69,8 @@ enum PseudoId { SLIDER_THUMB, SEARCH_CANCEL_BUTTON, SEARCH_DECORATION, SEARCH_RESULTS_DECORATION, SEARCH_RESULTS_BUTTON, MEDIA_CONTROLS_PANEL, MEDIA_CONTROLS_PLAY_BUTTON, MEDIA_CONTROLS_MUTE_BUTTON, MEDIA_CONTROLS_TIMELINE, MEDIA_CONTROLS_TIMELINE_CONTAINER, MEDIA_CONTROLS_CURRENT_TIME_DISPLAY, MEDIA_CONTROLS_TIME_REMAINING_DISPLAY, MEDIA_CONTROLS_SEEK_BACK_BUTTON, - MEDIA_CONTROLS_SEEK_FORWARD_BUTTON, MEDIA_CONTROLS_FULLSCREEN_BUTTON, + MEDIA_CONTROLS_SEEK_FORWARD_BUTTON, MEDIA_CONTROLS_FULLSCREEN_BUTTON, MEDIA_CONTROLS_REWIND_BUTTON, + MEDIA_CONTROLS_RETURN_TO_REALTIME_BUTTON, MEDIA_CONTROLS_STATUS_DISPLAY, SCROLLBAR_THUMB, SCROLLBAR_BUTTON, SCROLLBAR_TRACK, SCROLLBAR_TRACK_PIECE, SCROLLBAR_CORNER, RESIZER, FIRST_INTERNAL_PSEUDOID = FILE_UPLOAD_BUTTON @@ -109,7 +110,7 @@ enum EVerticalAlign { TEXT_BOTTOM, TOP, BOTTOM, BASELINE_MIDDLE, LENGTH }; -enum EClear{ +enum EClear { CNONE = 0, CLEFT = 1, CRIGHT = 2, CBOTH = 3 }; diff --git a/src/3rdparty/webkit/WebCore/rendering/style/SVGRenderStyleDefs.h b/src/3rdparty/webkit/WebCore/rendering/style/SVGRenderStyleDefs.h index cb504d2..b7bf026 100644 --- a/src/3rdparty/webkit/WebCore/rendering/style/SVGRenderStyleDefs.h +++ b/src/3rdparty/webkit/WebCore/rendering/style/SVGRenderStyleDefs.h @@ -60,13 +60,13 @@ #define SVG_RS_DEFINE_ATTRIBUTE_DATAREF_WITH_INITIAL_REFCOUNTED(Data, Group, Variable, Type, Name, Initial) \ Data* Name() const { return Group->Variable.get(); } \ void set##Type(PassRefPtr<Data> obj) { \ - if(!(Group->Variable == obj)) \ + if (!(Group->Variable == obj)) \ Group.access()->Variable = obj; \ } \ static Data* initial##Type() { return Initial; } #define SVG_RS_SET_VARIABLE(Group, Variable, Value) \ - if(!(Group->Variable == Value)) \ + if (!(Group->Variable == Value)) \ Group.access()->Variable = Value; namespace WebCore { diff --git a/src/3rdparty/webkit/WebCore/rendering/style/StyleInheritedData.h b/src/3rdparty/webkit/WebCore/rendering/style/StyleInheritedData.h index 5f1077e..548ca72 100644 --- a/src/3rdparty/webkit/WebCore/rendering/style/StyleInheritedData.h +++ b/src/3rdparty/webkit/WebCore/rendering/style/StyleInheritedData.h @@ -44,7 +44,7 @@ public: ~StyleInheritedData(); bool operator==(const StyleInheritedData& o) const; - bool operator!=( const StyleInheritedData& o) const + bool operator!=(const StyleInheritedData& o) const { return !(*this == o); } diff --git a/src/3rdparty/webkit/WebCore/storage/Database.cpp b/src/3rdparty/webkit/WebCore/storage/Database.cpp index 53bccbe..2292a0a 100644 --- a/src/3rdparty/webkit/WebCore/storage/Database.cpp +++ b/src/3rdparty/webkit/WebCore/storage/Database.cpp @@ -40,7 +40,6 @@ #include "DatabaseTracker.h" #include "Document.h" #include "ExceptionCode.h" -#include "FileSystem.h" #include "Frame.h" #include "InspectorController.h" #include "Logging.h" @@ -48,6 +47,7 @@ #include "Page.h" #include "OriginQuotaManager.h" #include "SQLiteDatabase.h" +#include "SQLiteFileSystem.h" #include "SQLiteStatement.h" #include "SQLResultSet.h" #include <wtf/MainThread.h> @@ -60,6 +60,9 @@ namespace WebCore { +// If we sleep for more the 30 seconds while blocked on SQLITE_BUSY, give up. +static const int maxSqliteBusyWaitTime = 30000; + const String& Database::databaseInfoTableName() { DEFINE_STATIC_LOCAL(String, name, ("__WebKitDatabaseInfoTable__")); @@ -132,6 +135,7 @@ Database::Database(Document* document, const String& name, const String& expecte , m_expectedVersion(expectedVersion) , m_deleted(false) , m_stopped(false) + , m_opened(false) { ASSERT(document); m_securityOrigin = document->securityOrigin(); @@ -316,7 +320,13 @@ void Database::markAsDeletedAndClose() void Database::close() { - m_sqliteDatabase.close(); + if (m_opened) { + ASSERT(m_document->databaseThread()); + ASSERT(currentThread() == document()->databaseThread()->getThreadID()); + m_sqliteDatabase.close(); + m_document->databaseThread()->recordDatabaseClosed(this); + m_opened = false; + } } void Database::stop() @@ -338,10 +348,7 @@ void Database::stop() unsigned long long Database::databaseSize() const { - long long size; - if (!getFileSize(m_filename, size)) - size = 0; - return size; + return SQLiteFileSystem::getDatabaseFileSize(m_filename); } unsigned long long Database::maximumSize() const @@ -426,8 +433,13 @@ bool Database::performOpenAndVerify(ExceptionCode& e) return false; } + m_opened = true; + if (m_document->databaseThread()) + m_document->databaseThread()->recordDatabaseOpen(this); + ASSERT(m_databaseAuthorizer); m_sqliteDatabase.setAuthorizer(m_databaseAuthorizer); + m_sqliteDatabase.setBusyTimeout(maxSqliteBusyWaitTime); if (!m_sqliteDatabase.tableExists(databaseInfoTableName())) { if (!m_sqliteDatabase.executeCommand("CREATE TABLE " + databaseInfoTableName() + " (key TEXT NOT NULL ON CONFLICT FAIL UNIQUE ON CONFLICT REPLACE,value TEXT NOT NULL ON CONFLICT FAIL);")) { diff --git a/src/3rdparty/webkit/WebCore/storage/Database.h b/src/3rdparty/webkit/WebCore/storage/Database.h index 385485a..0bdb37b 100644 --- a/src/3rdparty/webkit/WebCore/storage/Database.h +++ b/src/3rdparty/webkit/WebCore/storage/Database.h @@ -100,6 +100,7 @@ public: bool deleted() const { return m_deleted; } void close(); + bool opened() const { return m_opened; } void stop(); bool stopped() const { return m_stopped; } @@ -141,6 +142,8 @@ private: bool m_stopped; + bool m_opened; + SQLiteDatabase m_sqliteDatabase; RefPtr<DatabaseAuthorizer> m_databaseAuthorizer; diff --git a/src/3rdparty/webkit/WebCore/storage/DatabaseTask.h b/src/3rdparty/webkit/WebCore/storage/DatabaseTask.h index a3814d7..4aef892 100644 --- a/src/3rdparty/webkit/WebCore/storage/DatabaseTask.h +++ b/src/3rdparty/webkit/WebCore/storage/DatabaseTask.h @@ -45,8 +45,7 @@ class SQLCallback; class SQLTransaction; class VersionChangeCallback; -class DatabaseTask : public ThreadSafeShared<DatabaseTask> -{ +class DatabaseTask : public ThreadSafeShared<DatabaseTask> { friend class Database; public: virtual ~DatabaseTask(); @@ -76,8 +75,7 @@ private: OwnPtr<ThreadCondition> m_synchronousCondition; }; -class DatabaseOpenTask : public DatabaseTask -{ +class DatabaseOpenTask : public DatabaseTask { public: static PassRefPtr<DatabaseOpenTask> create(Database* db) { return adoptRef(new DatabaseOpenTask(db)); } @@ -96,8 +94,7 @@ private: bool m_success; }; -class DatabaseCloseTask : public DatabaseTask -{ +class DatabaseCloseTask : public DatabaseTask { public: static PassRefPtr<DatabaseCloseTask> create(Database* db) { return adoptRef(new DatabaseCloseTask(db)); } @@ -110,8 +107,7 @@ private: #endif }; -class DatabaseTransactionTask : public DatabaseTask -{ +class DatabaseTransactionTask : public DatabaseTask { public: static PassRefPtr<DatabaseTransactionTask> create(PassRefPtr<SQLTransaction> transaction) { return adoptRef(new DatabaseTransactionTask(transaction)); } @@ -129,8 +125,7 @@ private: RefPtr<SQLTransaction> m_transaction; }; -class DatabaseTableNamesTask : public DatabaseTask -{ +class DatabaseTableNamesTask : public DatabaseTask { public: static PassRefPtr<DatabaseTableNamesTask> create(Database* db) { return adoptRef(new DatabaseTableNamesTask(db)); } diff --git a/src/3rdparty/webkit/WebCore/storage/DatabaseThread.cpp b/src/3rdparty/webkit/WebCore/storage/DatabaseThread.cpp index fab02a2..b6c9b5d 100644 --- a/src/3rdparty/webkit/WebCore/storage/DatabaseThread.cpp +++ b/src/3rdparty/webkit/WebCore/storage/DatabaseThread.cpp @@ -99,6 +99,17 @@ void* DatabaseThread::databaseThread() LOG(StorageAPI, "About to detach thread %i and clear the ref to DatabaseThread %p, which currently has %i ref(s)", m_threadID, this, refCount()); + // Close the databases that we ran transactions on. This ensures that if any transactions are still open, they are rolled back and we don't leave the database in an + // inconsistent or locked state. + if (m_openDatabaseSet.size() > 0) { + // As the call to close will modify the original set, we must take a copy to iterate over. + DatabaseSet openSetCopy; + openSetCopy.swap(m_openDatabaseSet); + DatabaseSet::iterator end = openSetCopy.end(); + for (DatabaseSet::iterator it = openSetCopy.begin(); it != end; ++it) + (*it)->close(); + } + // Detach the thread so its resources are no longer of any concern to anyone else detachThread(m_threadID); @@ -108,6 +119,22 @@ void* DatabaseThread::databaseThread() return 0; } +void DatabaseThread::recordDatabaseOpen(Database* database) +{ + ASSERT(currentThread() == m_threadID); + ASSERT(database); + ASSERT(!m_openDatabaseSet.contains(database)); + m_openDatabaseSet.add(database); +} + +void DatabaseThread::recordDatabaseClosed(Database* database) +{ + ASSERT(currentThread() == m_threadID); + ASSERT(database); + ASSERT(m_queue.killed() || m_openDatabaseSet.contains(database)); + m_openDatabaseSet.remove(database); +} + void DatabaseThread::scheduleTask(PassRefPtr<DatabaseTask> task) { m_queue.append(task); diff --git a/src/3rdparty/webkit/WebCore/storage/DatabaseThread.h b/src/3rdparty/webkit/WebCore/storage/DatabaseThread.h index 9f13c33..5aab5fd 100644 --- a/src/3rdparty/webkit/WebCore/storage/DatabaseThread.h +++ b/src/3rdparty/webkit/WebCore/storage/DatabaseThread.h @@ -56,6 +56,10 @@ public: void scheduleImmediateTask(PassRefPtr<DatabaseTask>); // This just adds the task to the front of the queue - the caller needs to be extremely careful not to create deadlocks when waiting for completion. void unscheduleDatabaseTasks(Database*); + void recordDatabaseOpen(Database*); + void recordDatabaseClosed(Database*); + ThreadIdentifier getThreadID() { return m_threadID; } + private: DatabaseThread(); @@ -67,6 +71,10 @@ private: RefPtr<DatabaseThread> m_selfRef; MessageQueue<RefPtr<DatabaseTask> > m_queue; + + // This set keeps track of the open databases that have been used on this thread. + typedef HashSet<RefPtr<Database> > DatabaseSet; + DatabaseSet m_openDatabaseSet; }; } // namespace WebCore diff --git a/src/3rdparty/webkit/WebCore/storage/DatabaseTracker.cpp b/src/3rdparty/webkit/WebCore/storage/DatabaseTracker.cpp index 9311bc6..4a64fe6 100644 --- a/src/3rdparty/webkit/WebCore/storage/DatabaseTracker.cpp +++ b/src/3rdparty/webkit/WebCore/storage/DatabaseTracker.cpp @@ -35,12 +35,12 @@ #include "Database.h" #include "DatabaseTrackerClient.h" #include "Document.h" -#include "FileSystem.h" #include "Logging.h" #include "OriginQuotaManager.h" #include "Page.h" #include "SecurityOrigin.h" #include "SecurityOriginHash.h" +#include "SQLiteFileSystem.h" #include "SQLiteStatement.h" #include <wtf/MainThread.h> #include <wtf/StdLibExtras.h> @@ -69,6 +69,7 @@ DatabaseTracker::DatabaseTracker() , m_thread(currentThread()) #endif { + SQLiteFileSystem::registerSQLiteVFS(); } void DatabaseTracker::setDatabaseDirectoryPath(const String& path) @@ -87,9 +88,7 @@ const String& DatabaseTracker::databaseDirectoryPath() const String DatabaseTracker::trackerDatabasePath() const { ASSERT(currentThread() == m_thread); - if (m_databaseDirectoryPath.isEmpty()) - return String(); - return pathByAppendingComponent(m_databaseDirectoryPath, "Databases.db"); + return SQLiteFileSystem::appendDatabaseFileNameToPath(m_databaseDirectoryPath, "Databases.db"); } void DatabaseTracker::openTrackerDatabase(bool createIfDoesNotExist) @@ -100,13 +99,9 @@ void DatabaseTracker::openTrackerDatabase(bool createIfDoesNotExist) return; String databasePath = trackerDatabasePath(); - if (databasePath.isEmpty()) - return; - - if (!createIfDoesNotExist && !fileExists(databasePath)) + if (!SQLiteFileSystem::ensureDatabaseFileExists(databasePath, createIfDoesNotExist)) return; - makeAllDirectories(m_databaseDirectoryPath); if (!m_database.open(databasePath)) { // FIXME: What do do here? return; @@ -190,9 +185,7 @@ bool DatabaseTracker::hasEntryForDatabase(SecurityOrigin* origin, const String& String DatabaseTracker::originPath(SecurityOrigin* origin) const { ASSERT(currentThread() == m_thread); - if (m_databaseDirectoryPath.isEmpty()) - return String(); - return pathByAppendingComponent(m_databaseDirectoryPath, origin->databaseIdentifier()); + return SQLiteFileSystem::appendDatabaseFileNameToPath(m_databaseDirectoryPath, origin->databaseIdentifier()); } String DatabaseTracker::fullPathForDatabase(SecurityOrigin* origin, const String& name, bool createIfNotExists) @@ -206,7 +199,7 @@ String DatabaseTracker::fullPathForDatabase(SecurityOrigin* origin, const String String originPath = this->originPath(origin); // Make sure the path for this SecurityOrigin exists - if (createIfNotExists && !makeAllDirectories(originPath)) + if (createIfNotExists && !SQLiteFileSystem::ensureDatabaseDirectoryExists(originPath)) return String(); // See if we have a path for this database yet @@ -224,7 +217,7 @@ String DatabaseTracker::fullPathForDatabase(SecurityOrigin* origin, const String int result = statement.step(); if (result == SQLResultRow) - return pathByAppendingComponent(originPath, statement.getColumnText(0)); + return SQLiteFileSystem::appendDatabaseFileNameToPath(originPath, statement.getColumnText(0)); if (!createIfNotExists) return String(); @@ -241,33 +234,20 @@ String DatabaseTracker::fullPathForDatabase(SecurityOrigin* origin, const String return String(); result = sequenceStatement.step(); - // This has a range of 2^63 and starts at 0 for every time a user resets Safari - - // I can't imagine it'd over overflow - int64_t seq = 0; - if (result == SQLResultRow) { - seq = sequenceStatement.getColumnInt64(0); - } else if (result != SQLResultDone) - return String(); - sequenceStatement.finalize(); - - String filename; - do { - ++seq; - filename = pathByAppendingComponent(originPath, String::format("%016llx.db", seq)); - } while (fileExists(filename)); - - if (!addDatabase(origin, name, String::format("%016llx.db", seq))) + String fileName = SQLiteFileSystem::getFileNameForNewDatabase(originPath, origin->databaseIdentifier(), name, &m_database); + if (!addDatabase(origin, name, fileName)) return String(); // If this origin's quota is being tracked (open handle to a database in this origin), add this new database // to the quota manager now + String fullFilePath = SQLiteFileSystem::appendDatabaseFileNameToPath(originPath, fileName); { Locker<OriginQuotaManager> locker(originQuotaManager()); if (originQuotaManager().tracksOrigin(origin)) - originQuotaManager().addDatabase(origin, name, filename); + originQuotaManager().addDatabase(origin, name, fullFilePath); } - return filename; + return fullFilePath; } void DatabaseTracker::populateOrigins() @@ -423,8 +403,7 @@ unsigned long long DatabaseTracker::usageForDatabase(const String& name, Securit if (path.isEmpty()) return 0; - long long size; - return getFileSize(path, size) ? size : 0; + return SQLiteFileSystem::getDatabaseFileSize(path); } void DatabaseTracker::addOpenDatabase(Database* database) @@ -665,7 +644,7 @@ void DatabaseTracker::deleteOrigin(SecurityOrigin* origin) return; } - deleteEmptyDirectory(originPath(origin)); + SQLiteFileSystem::deleteEmptyDatabaseDirectory(originPath(origin)); RefPtr<SecurityOrigin> originPossiblyLastReference = origin; { @@ -679,8 +658,8 @@ void DatabaseTracker::deleteOrigin(SecurityOrigin* origin) if (m_quotaMap->isEmpty()) { if (m_database.isOpen()) m_database.close(); - deleteFile(trackerDatabasePath()); - deleteEmptyDirectory(m_databaseDirectoryPath); + SQLiteFileSystem::deleteDatabaseFile(trackerDatabasePath()); + SQLiteFileSystem::deleteEmptyDatabaseDirectory(m_databaseDirectoryPath); } } @@ -763,7 +742,7 @@ bool DatabaseTracker::deleteDatabaseFile(SecurityOrigin* origin, const String& n for (unsigned i = 0; i < deletedDatabases.size(); ++i) deletedDatabases[i]->markAsDeletedAndClose(); - return deleteFile(fullPath); + return SQLiteFileSystem::deleteDatabaseFile(fullPath); } void DatabaseTracker::setClient(DatabaseTrackerClient* client) diff --git a/src/3rdparty/webkit/WebCore/storage/OriginUsageRecord.cpp b/src/3rdparty/webkit/WebCore/storage/OriginUsageRecord.cpp index 211ba69..5f4957f 100644 --- a/src/3rdparty/webkit/WebCore/storage/OriginUsageRecord.cpp +++ b/src/3rdparty/webkit/WebCore/storage/OriginUsageRecord.cpp @@ -30,7 +30,7 @@ #if ENABLE(DATABASE) -#include "FileSystem.h" +#include "SQLiteFileSystem.h" namespace WebCore { @@ -82,13 +82,9 @@ unsigned long long OriginUsageRecord::diskUsage() const String& path = m_databaseMap.get(*iUnknown).filename; ASSERT(!path.isEmpty()); - long long size; - if (getFileSize(path, size)) - m_databaseMap.set(*iUnknown, DatabaseEntry(path, size)); - else { - // When we can't determine the file size, we'll just have to assume the file is missing/inaccessible. - m_databaseMap.set(*iUnknown, DatabaseEntry(path, 0)); - } + // When we can't determine the file size, we'll just have to assume the file is missing/inaccessible. + long long size = SQLiteFileSystem::getDatabaseFileSize(path); + m_databaseMap.set(*iUnknown, DatabaseEntry(path, size)); } m_unknownSet.clear(); diff --git a/src/3rdparty/webkit/WebCore/storage/StorageArea.cpp b/src/3rdparty/webkit/WebCore/storage/StorageArea.cpp index ac41447..11b3517 100644 --- a/src/3rdparty/webkit/WebCore/storage/StorageArea.cpp +++ b/src/3rdparty/webkit/WebCore/storage/StorageArea.cpp @@ -26,228 +26,19 @@ #include "config.h" #include "StorageArea.h" +#if PLATFORM(CHROMIUM) +#error "Chromium should not compile this file and instead define its own version of these factories that navigate the multi-process boundry." +#endif + #if ENABLE(DOM_STORAGE) -#include "EventNames.h" -#include "ExceptionCode.h" -#include "Frame.h" -#include "Page.h" -#include "PageGroup.h" -#include "SecurityOrigin.h" -#include "Settings.h" -#include "StorageEvent.h" -#include "StorageAreaSync.h" -#include "StorageMap.h" -#include "StorageSyncManager.h" +#include "StorageAreaImpl.h" namespace WebCore { PassRefPtr<StorageArea> StorageArea::create(StorageType storageType, SecurityOrigin* origin, PassRefPtr<StorageSyncManager> syncManager) { - return adoptRef(new StorageArea(storageType, origin, syncManager)); -} - -StorageArea::StorageArea(StorageType storageType, SecurityOrigin* origin, PassRefPtr<StorageSyncManager> syncManager) - : m_storageType(storageType) - , m_securityOrigin(origin) - , m_storageMap(StorageMap::create()) - , m_storageSyncManager(syncManager) -#ifndef NDEBUG - , m_isShutdown(false) -#endif -{ - ASSERT(m_securityOrigin); - ASSERT(m_storageMap); - - // FIXME: If there's no backing storage for LocalStorage, the default WebKit behavior should be that of private browsing, - // not silently ignoring it. https://bugs.webkit.org/show_bug.cgi?id=25894 - if (m_storageSyncManager) { - m_storageAreaSync = StorageAreaSync::create(m_storageSyncManager, this); - ASSERT(m_storageAreaSync); - } -} - -PassRefPtr<StorageArea> StorageArea::copy(SecurityOrigin* origin) -{ - ASSERT(!m_isShutdown); - return adoptRef(new StorageArea(origin, this)); -} - -StorageArea::StorageArea(SecurityOrigin* origin, StorageArea* area) - : m_storageType(area->m_storageType) - , m_securityOrigin(origin) - , m_storageMap(area->m_storageMap) - , m_storageSyncManager(area->m_storageSyncManager) -#ifndef NDEBUG - , m_isShutdown(area->m_isShutdown) -#endif -{ - ASSERT(m_securityOrigin); - ASSERT(m_storageMap); - ASSERT(!m_isShutdown); -} - -unsigned StorageArea::length() const -{ - ASSERT(!m_isShutdown); - return m_storageMap->length(); -} - -String StorageArea::key(unsigned index, ExceptionCode& ec) const -{ - ASSERT(!m_isShutdown); - blockUntilImportComplete(); - - String key; - - if (!m_storageMap->key(index, key)) { - ec = INDEX_SIZE_ERR; - return String(); - } - - return key; -} - -String StorageArea::getItem(const String& key) const -{ - ASSERT(!m_isShutdown); - blockUntilImportComplete(); - - return m_storageMap->getItem(key); -} - -void StorageArea::setItem(const String& key, const String& value, ExceptionCode& ec, Frame* frame) -{ - ASSERT(!m_isShutdown); - ASSERT(!value.isNull()); - blockUntilImportComplete(); - - if (frame->page()->settings()->privateBrowsingEnabled()) { - ec = QUOTA_EXCEEDED_ERR; - return; - } - - // FIXME: For LocalStorage where a disk quota will be enforced, here is where we need to do quota checking. - // If we decide to enforce a memory quota for SessionStorage, this is where we'd do that, also. - // if (<over quota>) { - // ec = QUOTA_EXCEEDED_ERR; - // return; - // } - - String oldValue; - RefPtr<StorageMap> newMap = m_storageMap->setItem(key, value, oldValue); - - if (newMap) - m_storageMap = newMap.release(); - - // Only notify the client if an item was actually changed - if (oldValue != value) { - if (m_storageAreaSync) - m_storageAreaSync->scheduleItemForSync(key, value); - dispatchStorageEvent(key, oldValue, value, frame); - } -} - -void StorageArea::removeItem(const String& key, Frame* frame) -{ - ASSERT(!m_isShutdown); - blockUntilImportComplete(); - - if (frame->page()->settings()->privateBrowsingEnabled()) - return; - - String oldValue; - RefPtr<StorageMap> newMap = m_storageMap->removeItem(key, oldValue); - if (newMap) - m_storageMap = newMap.release(); - - // Only notify the client if an item was actually removed - if (!oldValue.isNull()) { - if (m_storageAreaSync) - m_storageAreaSync->scheduleItemForSync(key, String()); - dispatchStorageEvent(key, oldValue, String(), frame); - } -} - -void StorageArea::clear(Frame* frame) -{ - ASSERT(!m_isShutdown); - blockUntilImportComplete(); - - if (frame->page()->settings()->privateBrowsingEnabled()) - return; - - m_storageMap = StorageMap::create(); - - if (m_storageAreaSync) - m_storageAreaSync->scheduleClear(); - dispatchStorageEvent(String(), String(), String(), frame); -} - -bool StorageArea::contains(const String& key) const -{ - ASSERT(!m_isShutdown); - blockUntilImportComplete(); - - return m_storageMap->contains(key); -} - -void StorageArea::importItem(const String& key, const String& value) -{ - ASSERT(!m_isShutdown); - m_storageMap->importItem(key, value); -} - -void StorageArea::close() -{ - if (m_storageAreaSync) - m_storageAreaSync->scheduleFinalSync(); - -#ifndef NDEBUG - m_isShutdown = true; -#endif -} - -void StorageArea::blockUntilImportComplete() const -{ - if (m_storageAreaSync) - m_storageAreaSync->blockUntilImportComplete(); -} - -void StorageArea::dispatchStorageEvent(const String& key, const String& oldValue, const String& newValue, Frame* sourceFrame) -{ - // We need to copy all relevant frames from every page to a vector since sending the event to one frame might mutate the frame tree - // of any given page in the group or mutate the page group itself. - Vector<RefPtr<Frame> > frames; - - // FIXME: When can this occur? - Page* page = sourceFrame->page(); - if (!page) - return; - - if (m_storageType == SessionStorage) { - // Send events only to our page. - for (Frame* frame = page->mainFrame(); frame; frame = frame->tree()->traverseNext()) { - if (frame->document()->securityOrigin()->equal(securityOrigin())) - frames.append(frame); - } - - for (unsigned i = 0; i < frames.size(); ++i) - frames[i]->document()->dispatchWindowEvent(StorageEvent::create(eventNames().storageEvent, key, oldValue, newValue, sourceFrame->document()->documentURI(), sourceFrame->domWindow(), frames[i]->domWindow()->sessionStorage())); - } else { - // Send events to every page. - const HashSet<Page*>& pages = page->group().pages(); - HashSet<Page*>::const_iterator end = pages.end(); - for (HashSet<Page*>::const_iterator it = pages.begin(); it != end; ++it) { - for (Frame* frame = (*it)->mainFrame(); frame; frame = frame->tree()->traverseNext()) { - if (frame->document()->securityOrigin()->equal(securityOrigin())) - frames.append(frame); - } - } - - for (unsigned i = 0; i < frames.size(); ++i) - frames[i]->document()->dispatchWindowEvent(StorageEvent::create(eventNames().storageEvent, key, oldValue, newValue, sourceFrame->document()->documentURI(), sourceFrame->domWindow(), frames[i]->domWindow()->localStorage())); - } + return StorageAreaImpl::create(storageType, origin, syncManager); } } diff --git a/src/3rdparty/webkit/WebCore/storage/StorageArea.h b/src/3rdparty/webkit/WebCore/storage/StorageArea.h index 69e7882..31f716a 100644 --- a/src/3rdparty/webkit/WebCore/storage/StorageArea.h +++ b/src/3rdparty/webkit/WebCore/storage/StorageArea.h @@ -50,45 +50,27 @@ namespace WebCore { typedef int ExceptionCode; enum StorageType { LocalStorage, SessionStorage }; + // This interface is required for Chromium since these actions need to be proxied between processes. class StorageArea : public ThreadSafeShared<StorageArea> { public: static PassRefPtr<StorageArea> create(StorageType, SecurityOrigin*, PassRefPtr<StorageSyncManager>); - PassRefPtr<StorageArea> copy(SecurityOrigin*); + virtual ~StorageArea() { } + virtual PassRefPtr<StorageArea> copy(SecurityOrigin*) = 0; // The HTML5 DOM Storage API - unsigned length() const; - String key(unsigned index, ExceptionCode& ec) const; - String getItem(const String& key) const; - void setItem(const String& key, const String& value, ExceptionCode& ec, Frame* sourceFrame); - void removeItem(const String& key, Frame* sourceFrame); - void clear(Frame* sourceFrame); + virtual unsigned length() const = 0; + virtual String key(unsigned index, ExceptionCode& ec) const = 0; + virtual String getItem(const String& key) const = 0; + virtual void setItem(const String& key, const String& value, ExceptionCode& ec, Frame* sourceFrame) = 0; + virtual void removeItem(const String& key, Frame* sourceFrame) = 0; + virtual void clear(Frame* sourceFrame) = 0; - bool contains(const String& key) const; - void close(); + virtual bool contains(const String& key) const = 0; + virtual void close() = 0; // Could be called from a background thread. - void importItem(const String& key, const String& value); - SecurityOrigin* securityOrigin() { return m_securityOrigin.get(); } - - protected: - StorageArea(StorageType, SecurityOrigin*, PassRefPtr<StorageSyncManager>); - StorageArea(SecurityOrigin*, StorageArea*); - - private: - void blockUntilImportComplete() const; - - void dispatchStorageEvent(const String& key, const String& oldValue, const String& newValue, Frame* sourceFrame); - - StorageType m_storageType; - RefPtr<SecurityOrigin> m_securityOrigin; - RefPtr<StorageMap> m_storageMap; - - RefPtr<StorageAreaSync> m_storageAreaSync; - RefPtr<StorageSyncManager> m_storageSyncManager; - -#ifndef NDEBUG - bool m_isShutdown; -#endif + virtual void importItem(const String& key, const String& value) = 0; + virtual SecurityOrigin* securityOrigin() = 0; }; } // namespace WebCore diff --git a/src/3rdparty/webkit/WebCore/storage/StorageAreaImpl.cpp b/src/3rdparty/webkit/WebCore/storage/StorageAreaImpl.cpp new file mode 100644 index 0000000..ba31658 --- /dev/null +++ b/src/3rdparty/webkit/WebCore/storage/StorageAreaImpl.cpp @@ -0,0 +1,266 @@ +/* + * Copyright (C) 2008 Apple Inc. All Rights Reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" +#include "StorageAreaImpl.h" + +#if ENABLE(DOM_STORAGE) + +#include "DOMWindow.h" +#include "EventNames.h" +#include "ExceptionCode.h" +#include "Frame.h" +#include "Page.h" +#include "PageGroup.h" +#include "SecurityOrigin.h" +#include "Settings.h" +#include "StorageEvent.h" +#include "StorageAreaSync.h" +#include "StorageMap.h" +#include "StorageSyncManager.h" + +namespace WebCore { + +PassRefPtr<StorageArea> StorageAreaImpl::create(StorageType storageType, SecurityOrigin* origin, PassRefPtr<StorageSyncManager> syncManager) +{ + return adoptRef(new StorageAreaImpl(storageType, origin, syncManager)); +} + +StorageAreaImpl::~StorageAreaImpl() +{ +} + +StorageAreaImpl::StorageAreaImpl(StorageType storageType, SecurityOrigin* origin, PassRefPtr<StorageSyncManager> syncManager) + : m_storageType(storageType) + , m_securityOrigin(origin) + , m_storageMap(StorageMap::create()) + , m_storageSyncManager(syncManager) +#ifndef NDEBUG + , m_isShutdown(false) +#endif +{ + ASSERT(m_securityOrigin); + ASSERT(m_storageMap); + + // FIXME: If there's no backing storage for LocalStorage, the default WebKit behavior should be that of private browsing, + // not silently ignoring it. https://bugs.webkit.org/show_bug.cgi?id=25894 + if (m_storageSyncManager) { + m_storageAreaSync = StorageAreaSync::create(m_storageSyncManager, this); + ASSERT(m_storageAreaSync); + } +} + +PassRefPtr<StorageArea> StorageAreaImpl::copy(SecurityOrigin* origin) +{ + ASSERT(!m_isShutdown); + return adoptRef(new StorageAreaImpl(origin, this)); +} + +StorageAreaImpl::StorageAreaImpl(SecurityOrigin* origin, StorageAreaImpl* area) + : m_storageType(area->m_storageType) + , m_securityOrigin(origin) + , m_storageMap(area->m_storageMap) + , m_storageSyncManager(area->m_storageSyncManager) +#ifndef NDEBUG + , m_isShutdown(area->m_isShutdown) +#endif +{ + ASSERT(m_securityOrigin); + ASSERT(m_storageMap); + ASSERT(!m_isShutdown); +} + +unsigned StorageAreaImpl::length() const +{ + ASSERT(!m_isShutdown); + return m_storageMap->length(); +} + +String StorageAreaImpl::key(unsigned index, ExceptionCode& ec) const +{ + ASSERT(!m_isShutdown); + blockUntilImportComplete(); + + String key; + + if (!m_storageMap->key(index, key)) { + ec = INDEX_SIZE_ERR; + return String(); + } + + return key; +} + +String StorageAreaImpl::getItem(const String& key) const +{ + ASSERT(!m_isShutdown); + blockUntilImportComplete(); + + return m_storageMap->getItem(key); +} + +void StorageAreaImpl::setItem(const String& key, const String& value, ExceptionCode& ec, Frame* frame) +{ + ASSERT(!m_isShutdown); + ASSERT(!value.isNull()); + blockUntilImportComplete(); + + if (frame->page()->settings()->privateBrowsingEnabled()) { + ec = QUOTA_EXCEEDED_ERR; + return; + } + + // FIXME: For LocalStorage where a disk quota will be enforced, here is where we need to do quota checking. + // If we decide to enforce a memory quota for SessionStorage, this is where we'd do that, also. + // if (<over quota>) { + // ec = QUOTA_EXCEEDED_ERR; + // return; + // } + + String oldValue; + RefPtr<StorageMap> newMap = m_storageMap->setItem(key, value, oldValue); + + if (newMap) + m_storageMap = newMap.release(); + + // Only notify the client if an item was actually changed + if (oldValue != value) { + if (m_storageAreaSync) + m_storageAreaSync->scheduleItemForSync(key, value); + dispatchStorageEvent(key, oldValue, value, frame); + } +} + +void StorageAreaImpl::removeItem(const String& key, Frame* frame) +{ + ASSERT(!m_isShutdown); + blockUntilImportComplete(); + + if (frame->page()->settings()->privateBrowsingEnabled()) + return; + + String oldValue; + RefPtr<StorageMap> newMap = m_storageMap->removeItem(key, oldValue); + if (newMap) + m_storageMap = newMap.release(); + + // Only notify the client if an item was actually removed + if (!oldValue.isNull()) { + if (m_storageAreaSync) + m_storageAreaSync->scheduleItemForSync(key, String()); + dispatchStorageEvent(key, oldValue, String(), frame); + } +} + +void StorageAreaImpl::clear(Frame* frame) +{ + ASSERT(!m_isShutdown); + blockUntilImportComplete(); + + if (frame->page()->settings()->privateBrowsingEnabled()) + return; + + m_storageMap = StorageMap::create(); + + if (m_storageAreaSync) + m_storageAreaSync->scheduleClear(); + dispatchStorageEvent(String(), String(), String(), frame); +} + +bool StorageAreaImpl::contains(const String& key) const +{ + ASSERT(!m_isShutdown); + blockUntilImportComplete(); + + return m_storageMap->contains(key); +} + +void StorageAreaImpl::importItem(const String& key, const String& value) +{ + ASSERT(!m_isShutdown); + m_storageMap->importItem(key, value); +} + +SecurityOrigin* StorageAreaImpl::securityOrigin() +{ + return m_securityOrigin.get(); +} + +void StorageAreaImpl::close() +{ + if (m_storageAreaSync) + m_storageAreaSync->scheduleFinalSync(); + +#ifndef NDEBUG + m_isShutdown = true; +#endif +} + +void StorageAreaImpl::blockUntilImportComplete() const +{ + if (m_storageAreaSync) + m_storageAreaSync->blockUntilImportComplete(); +} + +void StorageAreaImpl::dispatchStorageEvent(const String& key, const String& oldValue, const String& newValue, Frame* sourceFrame) +{ + // We need to copy all relevant frames from every page to a vector since sending the event to one frame might mutate the frame tree + // of any given page in the group or mutate the page group itself. + Vector<RefPtr<Frame> > frames; + + // FIXME: When can this occur? + Page* page = sourceFrame->page(); + if (!page) + return; + + if (m_storageType == SessionStorage) { + // Send events only to our page. + for (Frame* frame = page->mainFrame(); frame; frame = frame->tree()->traverseNext()) { + if (frame->document()->securityOrigin()->equal(securityOrigin())) + frames.append(frame); + } + + for (unsigned i = 0; i < frames.size(); ++i) + frames[i]->document()->dispatchWindowEvent(StorageEvent::create(eventNames().storageEvent, key, oldValue, newValue, sourceFrame->document()->documentURI(), sourceFrame->domWindow(), frames[i]->domWindow()->sessionStorage())); + } else { + // Send events to every page. + const HashSet<Page*>& pages = page->group().pages(); + HashSet<Page*>::const_iterator end = pages.end(); + for (HashSet<Page*>::const_iterator it = pages.begin(); it != end; ++it) { + for (Frame* frame = (*it)->mainFrame(); frame; frame = frame->tree()->traverseNext()) { + if (frame->document()->securityOrigin()->equal(securityOrigin())) + frames.append(frame); + } + } + + for (unsigned i = 0; i < frames.size(); ++i) + frames[i]->document()->dispatchWindowEvent(StorageEvent::create(eventNames().storageEvent, key, oldValue, newValue, sourceFrame->document()->documentURI(), sourceFrame->domWindow(), frames[i]->domWindow()->localStorage())); + } +} + +} + +#endif // ENABLE(DOM_STORAGE) + diff --git a/src/3rdparty/webkit/WebCore/storage/StorageAreaImpl.h b/src/3rdparty/webkit/WebCore/storage/StorageAreaImpl.h new file mode 100644 index 0000000..e2d14f1 --- /dev/null +++ b/src/3rdparty/webkit/WebCore/storage/StorageAreaImpl.h @@ -0,0 +1,80 @@ +/* + * Copyright (C) 2008 Apple Inc. All Rights Reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef StorageAreaImpl_h +#define StorageAreaImpl_h + +#if ENABLE(DOM_STORAGE) + +#include "StorageArea.h" + +namespace WebCore { + + class StorageAreaImpl : public StorageArea { + public: + static PassRefPtr<StorageArea> create(StorageType, SecurityOrigin*, PassRefPtr<StorageSyncManager>); + virtual ~StorageAreaImpl(); + virtual PassRefPtr<StorageArea> copy(SecurityOrigin*); + + // The HTML5 DOM Storage API + virtual unsigned length() const; + virtual String key(unsigned index, ExceptionCode& ec) const; + virtual String getItem(const String& key) const; + virtual void setItem(const String& key, const String& value, ExceptionCode& ec, Frame* sourceFrame); + virtual void removeItem(const String& key, Frame* sourceFrame); + virtual void clear(Frame* sourceFrame); + + virtual bool contains(const String& key) const; + virtual void close(); + + // Could be called from a background thread. + void importItem(const String& key, const String& value); + SecurityOrigin* securityOrigin(); + + private: + StorageAreaImpl(StorageType, SecurityOrigin*, PassRefPtr<StorageSyncManager>); + StorageAreaImpl(SecurityOrigin*, StorageAreaImpl*); + + void blockUntilImportComplete() const; + + void dispatchStorageEvent(const String& key, const String& oldValue, const String& newValue, Frame* sourceFrame); + + StorageType m_storageType; + RefPtr<SecurityOrigin> m_securityOrigin; + RefPtr<StorageMap> m_storageMap; + + RefPtr<StorageAreaSync> m_storageAreaSync; + RefPtr<StorageSyncManager> m_storageSyncManager; + +#ifndef NDEBUG + bool m_isShutdown; +#endif + }; + +} // namespace WebCore + +#endif // ENABLE(DOM_STORAGE) + +#endif // StorageAreaImpl_h diff --git a/src/3rdparty/webkit/WebCore/storage/StorageAreaSync.h b/src/3rdparty/webkit/WebCore/storage/StorageAreaSync.h index fa10e63..a7f1082 100644 --- a/src/3rdparty/webkit/WebCore/storage/StorageAreaSync.h +++ b/src/3rdparty/webkit/WebCore/storage/StorageAreaSync.h @@ -37,7 +37,7 @@ namespace WebCore { class Frame; - class StorageArea; + class StorageArea; class StorageSyncManager; class StorageAreaSync : public RefCounted<StorageAreaSync> { @@ -57,7 +57,6 @@ namespace WebCore { private: StorageAreaSync(PassRefPtr<StorageSyncManager> storageSyncManager, PassRefPtr<StorageArea> storageArea); - void dispatchStorageEvent(const String& key, const String& oldValue, const String& newValue, Frame* sourceFrame); Timer<StorageAreaSync> m_syncTimer; diff --git a/src/3rdparty/webkit/WebCore/storage/StorageNamespace.cpp b/src/3rdparty/webkit/WebCore/storage/StorageNamespace.cpp index d8d85a7..6fcae63 100644 --- a/src/3rdparty/webkit/WebCore/storage/StorageNamespace.cpp +++ b/src/3rdparty/webkit/WebCore/storage/StorageNamespace.cpp @@ -26,104 +26,26 @@ #include "config.h" #include "StorageNamespace.h" -#if ENABLE(DOM_STORAGE) - -#include <wtf/StdLibExtras.h> +#include "StorageNamespaceImpl.h" -namespace WebCore { +#if PLATFORM(CHROMIUM) +#error "Chromium should not compile this file and instead define its own version of these factories that navigate the multi-process boundry." +#endif -typedef HashMap<String, StorageNamespace*> LocalStorageNamespaceMap; +#if ENABLE(DOM_STORAGE) -static LocalStorageNamespaceMap& localStorageNamespaceMap() -{ - DEFINE_STATIC_LOCAL(LocalStorageNamespaceMap, localStorageNamespaceMap, ()); - return localStorageNamespaceMap; -} +namespace WebCore { PassRefPtr<StorageNamespace> StorageNamespace::localStorageNamespace(const String& path) { - const String lookupPath = path.isNull() ? String("") : path; - LocalStorageNamespaceMap::iterator it = localStorageNamespaceMap().find(lookupPath); - if (it == localStorageNamespaceMap().end()) { - RefPtr<StorageNamespace> storageNamespace = adoptRef(new StorageNamespace(LocalStorage, lookupPath)); - localStorageNamespaceMap().set(lookupPath, storageNamespace.get()); - return storageNamespace.release(); - } - - return it->second; + return StorageNamespaceImpl::localStorageNamespace(path); } PassRefPtr<StorageNamespace> StorageNamespace::sessionStorageNamespace() { - return adoptRef(new StorageNamespace(SessionStorage, String())); -} - -StorageNamespace::StorageNamespace(StorageType storageType, const String& path) - : m_storageType(storageType) - , m_path(path.copy()) // FIXME: Is the .copy necessary? - , m_syncManager(0) -#ifndef NDEBUG - , m_isShutdown(false) -#endif -{ - if (m_storageType == LocalStorage && !m_path.isEmpty()) - m_syncManager = StorageSyncManager::create(m_path); -} - -StorageNamespace::~StorageNamespace() -{ - ASSERT(isMainThread()); - - if (m_storageType == LocalStorage) { - ASSERT(localStorageNamespaceMap().get(m_path) == this); - localStorageNamespaceMap().remove(m_path); - } -} - -PassRefPtr<StorageNamespace> StorageNamespace::copy() -{ - ASSERT(isMainThread()); - ASSERT(!m_isShutdown); - - RefPtr<StorageNamespace> newNamespace = adoptRef(new StorageNamespace(m_storageType, m_path)); - - StorageAreaMap::iterator end = m_storageAreaMap.end(); - for (StorageAreaMap::iterator i = m_storageAreaMap.begin(); i != end; ++i) { - RefPtr<StorageArea> areaCopy = i->second->copy(i->first.get()); - newNamespace->m_storageAreaMap.set(i->first, areaCopy.release()); - } - - return newNamespace.release(); -} - -PassRefPtr<StorageArea> StorageNamespace::storageArea(SecurityOrigin* origin) -{ - ASSERT(isMainThread()); - ASSERT(!m_isShutdown); - - RefPtr<StorageArea> storageArea; - if (storageArea = m_storageAreaMap.get(origin)) - return storageArea.release(); - - storageArea = StorageArea::create(m_storageType, origin, m_syncManager); - m_storageAreaMap.set(origin, storageArea); - return storageArea.release(); + return StorageNamespaceImpl::sessionStorageNamespace(); } -void StorageNamespace::close() -{ - ASSERT(isMainThread()); - ASSERT(!m_isShutdown); - - StorageAreaMap::iterator end = m_storageAreaMap.end(); - for (StorageAreaMap::iterator it = m_storageAreaMap.begin(); it != end; ++it) - it->second->close(); - -#ifndef NDEBUG - m_isShutdown = true; -#endif -} +} // namespace WebCore #endif // ENABLE(DOM_STORAGE) - -} // namespace WebCore diff --git a/src/3rdparty/webkit/WebCore/storage/StorageNamespace.h b/src/3rdparty/webkit/WebCore/storage/StorageNamespace.h index 5621b01..687cea2 100644 --- a/src/3rdparty/webkit/WebCore/storage/StorageNamespace.h +++ b/src/3rdparty/webkit/WebCore/storage/StorageNamespace.h @@ -39,32 +39,16 @@ namespace WebCore { class StorageArea; class StorageSyncManager; + // This interface is required for Chromium since these actions need to be proxied between processes. class StorageNamespace : public RefCounted<StorageNamespace> { public: - ~StorageNamespace(); - static PassRefPtr<StorageNamespace> localStorageNamespace(const String& path); static PassRefPtr<StorageNamespace> sessionStorageNamespace(); - PassRefPtr<StorageArea> storageArea(SecurityOrigin*); - PassRefPtr<StorageNamespace> copy(); - void close(); - - private: - StorageNamespace(StorageType, const String& path); - - typedef HashMap<RefPtr<SecurityOrigin>, RefPtr<StorageArea>, SecurityOriginHash> StorageAreaMap; - StorageAreaMap m_storageAreaMap; - - StorageType m_storageType; - - // Only used if m_storageType == LocalStorage and the path was not "" in our constructor. - String m_path; - RefPtr<StorageSyncManager> m_syncManager; - -#ifndef NDEBUG - bool m_isShutdown; -#endif + virtual ~StorageNamespace() { } + virtual PassRefPtr<StorageArea> storageArea(SecurityOrigin*) = 0; + virtual PassRefPtr<StorageNamespace> copy() = 0; + virtual void close() = 0; }; } // namespace WebCore diff --git a/src/3rdparty/webkit/WebCore/storage/StorageNamespaceImpl.cpp b/src/3rdparty/webkit/WebCore/storage/StorageNamespaceImpl.cpp new file mode 100644 index 0000000..39ec27b --- /dev/null +++ b/src/3rdparty/webkit/WebCore/storage/StorageNamespaceImpl.cpp @@ -0,0 +1,129 @@ +/* + * Copyright (C) 2008 Apple Inc. All Rights Reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" +#include "StorageNamespaceImpl.h" + +#if ENABLE(DOM_STORAGE) + +#include <wtf/StdLibExtras.h> + +namespace WebCore { + +typedef HashMap<String, StorageNamespace*> LocalStorageNamespaceMap; + +static LocalStorageNamespaceMap& localStorageNamespaceMap() +{ + DEFINE_STATIC_LOCAL(LocalStorageNamespaceMap, localStorageNamespaceMap, ()); + return localStorageNamespaceMap; +} + +PassRefPtr<StorageNamespace> StorageNamespaceImpl::localStorageNamespace(const String& path) +{ + const String lookupPath = path.isNull() ? String("") : path; + LocalStorageNamespaceMap::iterator it = localStorageNamespaceMap().find(lookupPath); + if (it == localStorageNamespaceMap().end()) { + RefPtr<StorageNamespace> storageNamespace = adoptRef(new StorageNamespaceImpl(LocalStorage, lookupPath)); + localStorageNamespaceMap().set(lookupPath, storageNamespace.get()); + return storageNamespace.release(); + } + + return it->second; +} + +PassRefPtr<StorageNamespace> StorageNamespaceImpl::sessionStorageNamespace() +{ + return adoptRef(new StorageNamespaceImpl(SessionStorage, String())); +} + +StorageNamespaceImpl::StorageNamespaceImpl(StorageType storageType, const String& path) + : m_storageType(storageType) + , m_path(path.copy()) // FIXME: Is the .copy necessary? + , m_syncManager(0) +#ifndef NDEBUG + , m_isShutdown(false) +#endif +{ + if (m_storageType == LocalStorage && !m_path.isEmpty()) + m_syncManager = StorageSyncManager::create(m_path); +} + +StorageNamespaceImpl::~StorageNamespaceImpl() +{ + ASSERT(isMainThread()); + + if (m_storageType == LocalStorage) { + ASSERT(localStorageNamespaceMap().get(m_path) == this); + localStorageNamespaceMap().remove(m_path); + } +} + +PassRefPtr<StorageNamespace> StorageNamespaceImpl::copy() +{ + ASSERT(isMainThread()); + ASSERT(!m_isShutdown); + + StorageNamespaceImpl* newNamespace = new StorageNamespaceImpl(m_storageType, m_path); + + StorageAreaMap::iterator end = m_storageAreaMap.end(); + for (StorageAreaMap::iterator i = m_storageAreaMap.begin(); i != end; ++i) { + RefPtr<StorageArea> areaCopy = i->second->copy(i->first.get()); + newNamespace->m_storageAreaMap.set(i->first, areaCopy.release()); + } + + return adoptRef(newNamespace); +} + +PassRefPtr<StorageArea> StorageNamespaceImpl::storageArea(SecurityOrigin* origin) +{ + ASSERT(isMainThread()); + ASSERT(!m_isShutdown); + + RefPtr<StorageArea> storageArea; + if (storageArea = m_storageAreaMap.get(origin)) + return storageArea.release(); + + storageArea = StorageArea::create(m_storageType, origin, m_syncManager); + m_storageAreaMap.set(origin, storageArea); + return storageArea.release(); +} + +void StorageNamespaceImpl::close() +{ + ASSERT(isMainThread()); + ASSERT(!m_isShutdown); + + StorageAreaMap::iterator end = m_storageAreaMap.end(); + for (StorageAreaMap::iterator it = m_storageAreaMap.begin(); it != end; ++it) + it->second->close(); + +#ifndef NDEBUG + m_isShutdown = true; +#endif +} + +} // namespace WebCore + +#endif // ENABLE(DOM_STORAGE) diff --git a/src/3rdparty/webkit/WebCore/storage/StorageNamespaceImpl.h b/src/3rdparty/webkit/WebCore/storage/StorageNamespaceImpl.h new file mode 100644 index 0000000..6c5a9dc --- /dev/null +++ b/src/3rdparty/webkit/WebCore/storage/StorageNamespaceImpl.h @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2008 Apple Inc. All Rights Reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef StorageNamespaceImpl_h +#define StorageNamespaceImpl_h + +#if ENABLE(DOM_STORAGE) + +#include "StorageNamespace.h" + +namespace WebCore { + + class StorageNamespaceImpl : public StorageNamespace { + public: + static PassRefPtr<StorageNamespace> localStorageNamespace(const String& path); + static PassRefPtr<StorageNamespace> sessionStorageNamespace(); + + virtual ~StorageNamespaceImpl(); + virtual PassRefPtr<StorageArea> storageArea(SecurityOrigin*); + virtual PassRefPtr<StorageNamespace> copy(); + virtual void close(); + + private: + StorageNamespaceImpl(StorageType, const String& path); + + typedef HashMap<RefPtr<SecurityOrigin>, RefPtr<StorageArea>, SecurityOriginHash> StorageAreaMap; + StorageAreaMap m_storageAreaMap; + + StorageType m_storageType; + + // Only used if m_storageType == LocalStorage and the path was not "" in our constructor. + String m_path; + RefPtr<StorageSyncManager> m_syncManager; + +#ifndef NDEBUG + bool m_isShutdown; +#endif + }; + +} // namespace WebCore + +#endif // ENABLE(DOM_STORAGE) + +#endif // StorageNamespaceImpl_h diff --git a/src/3rdparty/webkit/WebCore/svg/GradientAttributes.h b/src/3rdparty/webkit/WebCore/svg/GradientAttributes.h index 2d7c32a..6b3408e 100644 --- a/src/3rdparty/webkit/WebCore/svg/GradientAttributes.h +++ b/src/3rdparty/webkit/WebCore/svg/GradientAttributes.h @@ -24,8 +24,7 @@ #if ENABLE(SVG) -namespace WebCore -{ +namespace WebCore { struct GradientAttributes { GradientAttributes() : m_spreadMethod(SpreadMethodPad) diff --git a/src/3rdparty/webkit/WebCore/svg/LinearGradientAttributes.h b/src/3rdparty/webkit/WebCore/svg/LinearGradientAttributes.h index e640c03..fc59465 100644 --- a/src/3rdparty/webkit/WebCore/svg/LinearGradientAttributes.h +++ b/src/3rdparty/webkit/WebCore/svg/LinearGradientAttributes.h @@ -26,8 +26,7 @@ #if ENABLE(SVG) -namespace WebCore -{ +namespace WebCore { struct LinearGradientAttributes : GradientAttributes { LinearGradientAttributes() : m_x1(0.0) diff --git a/src/3rdparty/webkit/WebCore/svg/PatternAttributes.h b/src/3rdparty/webkit/WebCore/svg/PatternAttributes.h index 2940baf..b43d87e 100644 --- a/src/3rdparty/webkit/WebCore/svg/PatternAttributes.h +++ b/src/3rdparty/webkit/WebCore/svg/PatternAttributes.h @@ -24,8 +24,7 @@ #if ENABLE(SVG) -namespace WebCore -{ +namespace WebCore { struct PatternAttributes { PatternAttributes() : m_x() diff --git a/src/3rdparty/webkit/WebCore/svg/RadialGradientAttributes.h b/src/3rdparty/webkit/WebCore/svg/RadialGradientAttributes.h index 782ab49..273cd29 100644 --- a/src/3rdparty/webkit/WebCore/svg/RadialGradientAttributes.h +++ b/src/3rdparty/webkit/WebCore/svg/RadialGradientAttributes.h @@ -26,8 +26,7 @@ #if ENABLE(SVG) -namespace WebCore -{ +namespace WebCore { struct RadialGradientAttributes : GradientAttributes { RadialGradientAttributes() : m_cx(0.5) diff --git a/src/3rdparty/webkit/WebCore/svg/SVGAnimatedPathData.h b/src/3rdparty/webkit/WebCore/svg/SVGAnimatedPathData.h index 6b3faf6..88b994b 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGAnimatedPathData.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGAnimatedPathData.h @@ -25,12 +25,10 @@ #if ENABLE(SVG) -namespace WebCore -{ +namespace WebCore { class SVGPathSegList; - class SVGAnimatedPathData - { + class SVGAnimatedPathData { public: SVGAnimatedPathData(); virtual ~SVGAnimatedPathData(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGAnimatedPoints.h b/src/3rdparty/webkit/WebCore/svg/SVGAnimatedPoints.h index 58323c0..1e61057 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGAnimatedPoints.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGAnimatedPoints.h @@ -25,12 +25,10 @@ #if ENABLE(SVG) -namespace WebCore -{ +namespace WebCore { class SVGPointList; - class SVGAnimatedPoints - { + class SVGAnimatedPoints { public: SVGAnimatedPoints(); virtual ~SVGAnimatedPoints(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGAnimationElement.h b/src/3rdparty/webkit/WebCore/svg/SVGAnimationElement.h index 120beb4..d43ed57 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGAnimationElement.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGAnimationElement.h @@ -43,8 +43,7 @@ namespace WebCore { class SVGAnimationElement : public SVGSMILElement, public SVGTests, public SVGExternalResourcesRequired, - public ElementTimeControl - { + public ElementTimeControl { public: SVGAnimationElement(const QualifiedName&, Document*); virtual ~SVGAnimationElement(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGClipPathElement.h b/src/3rdparty/webkit/WebCore/svg/SVGClipPathElement.h index ab7ea68..4043554 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGClipPathElement.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGClipPathElement.h @@ -35,8 +35,7 @@ namespace WebCore { class SVGClipPathElement : public SVGStyledTransformableElement, public SVGTests, public SVGLangSpace, - public SVGExternalResourcesRequired - { + public SVGExternalResourcesRequired { public: SVGClipPathElement(const QualifiedName&, Document*); virtual ~SVGClipPathElement(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGDocumentExtensions.cpp b/src/3rdparty/webkit/WebCore/svg/SVGDocumentExtensions.cpp index d7169e1..61645f4 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGDocumentExtensions.cpp +++ b/src/3rdparty/webkit/WebCore/svg/SVGDocumentExtensions.cpp @@ -89,13 +89,13 @@ void SVGDocumentExtensions::unpauseAnimations() void SVGDocumentExtensions::reportWarning(const String& message) { if (Frame* frame = m_doc->frame()) - frame->domWindow()->console()->addMessage(JSMessageSource, ErrorMessageLevel, "Warning: " + message, m_doc->tokenizer() ? m_doc->tokenizer()->lineNumber() : 1, String()); + frame->domWindow()->console()->addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, "Warning: " + message, m_doc->tokenizer() ? m_doc->tokenizer()->lineNumber() : 1, String()); } void SVGDocumentExtensions::reportError(const String& message) { if (Frame* frame = m_doc->frame()) - frame->domWindow()->console()->addMessage(JSMessageSource, ErrorMessageLevel, "Error: " + message, m_doc->tokenizer() ? m_doc->tokenizer()->lineNumber() : 1, String()); + frame->domWindow()->console()->addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, "Error: " + message, m_doc->tokenizer() ? m_doc->tokenizer()->lineNumber() : 1, String()); } void SVGDocumentExtensions::addPendingResource(const AtomicString& id, SVGStyledElement* obj) diff --git a/src/3rdparty/webkit/WebCore/svg/SVGElementInstance.h b/src/3rdparty/webkit/WebCore/svg/SVGElementInstance.h index 7c56792..c477718 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGElementInstance.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGElementInstance.h @@ -44,8 +44,7 @@ namespace WebCore { // SVGElementInstance mimics Node, but without providing all its functionality class SVGElementInstance : public TreeShared<SVGElementInstance>, - public EventTarget - { + public EventTarget { public: SVGElementInstance(SVGUseElement*, SVGElement* originalElement); virtual ~SVGElementInstance(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGElementInstance.idl b/src/3rdparty/webkit/WebCore/svg/SVGElementInstance.idl index 3d88178..cd4213c 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGElementInstance.idl +++ b/src/3rdparty/webkit/WebCore/svg/SVGElementInstance.idl @@ -31,7 +31,7 @@ module svg { CustomListeners, CustomMarkFunction, CustomPushEventHandlerScope, - GenerateToJS, + CustomToJS, GenerateNativeConverter ] SVGElementInstance #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFEBlendElement.cpp b/src/3rdparty/webkit/WebCore/svg/SVGFEBlendElement.cpp index f78412c..0497ea9 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFEBlendElement.cpp +++ b/src/3rdparty/webkit/WebCore/svg/SVGFEBlendElement.cpp @@ -69,7 +69,7 @@ bool SVGFEBlendElement::build(SVGResourceFilter* filterResource) FilterEffect* input1 = filterResource->builder()->getEffectById(in1()); FilterEffect* input2 = filterResource->builder()->getEffectById(in2()); - if(!input1 || !input2) + if (!input1 || !input2) return false; RefPtr<FilterEffect> effect = FEBlend::create(input1, input2, static_cast<BlendModeType>(mode())); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFEBlendElement.h b/src/3rdparty/webkit/WebCore/svg/SVGFEBlendElement.h index 70e5e06..bed649f 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFEBlendElement.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGFEBlendElement.h @@ -27,10 +27,8 @@ #include "FEBlend.h" #include "SVGFilterPrimitiveStandardAttributes.h" -namespace WebCore -{ - class SVGFEBlendElement : public SVGFilterPrimitiveStandardAttributes - { +namespace WebCore { + class SVGFEBlendElement : public SVGFilterPrimitiveStandardAttributes { public: SVGFEBlendElement(const QualifiedName&, Document*); virtual ~SVGFEBlendElement(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFEColorMatrixElement.cpp b/src/3rdparty/webkit/WebCore/svg/SVGFEColorMatrixElement.cpp index 660f000..c2d605b 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFEColorMatrixElement.cpp +++ b/src/3rdparty/webkit/WebCore/svg/SVGFEColorMatrixElement.cpp @@ -69,7 +69,7 @@ bool SVGFEColorMatrixElement::build(SVGResourceFilter* filterResource) { FilterEffect* input1 = filterResource->builder()->getEffectById(in1()); - if(!input1) + if (!input1) return false; Vector<float> _values; diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFEComponentTransferElement.cpp b/src/3rdparty/webkit/WebCore/svg/SVGFEComponentTransferElement.cpp index cad60dc..691d5cd 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFEComponentTransferElement.cpp +++ b/src/3rdparty/webkit/WebCore/svg/SVGFEComponentTransferElement.cpp @@ -60,7 +60,7 @@ bool SVGFEComponentTransferElement::build(SVGResourceFilter* filterResource) { FilterEffect* input1 = filterResource->builder()->getEffectById(in1()); - if(!input1) + if (!input1) return false; ComponentTransferFunction red; diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFECompositeElement.cpp b/src/3rdparty/webkit/WebCore/svg/SVGFECompositeElement.cpp index 2205243..6eec6ea 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFECompositeElement.cpp +++ b/src/3rdparty/webkit/WebCore/svg/SVGFECompositeElement.cpp @@ -85,7 +85,7 @@ bool SVGFECompositeElement::build(SVGResourceFilter* filterResource) FilterEffect* input1 = filterResource->builder()->getEffectById(in1()); FilterEffect* input2 = filterResource->builder()->getEffectById(in2()); - if(!input1 || !input2) + if (!input1 || !input2) return false; RefPtr<FilterEffect> effect = FEComposite::create(input1, input2, static_cast<CompositeOperationType>(_operator()), diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFEDiffuseLightingElement.cpp b/src/3rdparty/webkit/WebCore/svg/SVGFEDiffuseLightingElement.cpp index 00ff55a..edbd852 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFEDiffuseLightingElement.cpp +++ b/src/3rdparty/webkit/WebCore/svg/SVGFEDiffuseLightingElement.cpp @@ -75,7 +75,7 @@ bool SVGFEDiffuseLightingElement::build(SVGResourceFilter* filterResource) { FilterEffect* input1 = filterResource->builder()->getEffectById(in1()); - if(!input1) + if (!input1) return false; RefPtr<RenderStyle> filterStyle = styleForRenderer(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFEDisplacementMapElement.cpp b/src/3rdparty/webkit/WebCore/svg/SVGFEDisplacementMapElement.cpp index 8ac668c..adf02fe 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFEDisplacementMapElement.cpp +++ b/src/3rdparty/webkit/WebCore/svg/SVGFEDisplacementMapElement.cpp @@ -77,7 +77,7 @@ bool SVGFEDisplacementMapElement::build(SVGResourceFilter* filterResource) FilterEffect* input1 = filterResource->builder()->getEffectById(in1()); FilterEffect* input2 = filterResource->builder()->getEffectById(in2()); - if(!input1 || !input2) + if (!input1 || !input2) return false; diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFEDistantLightElement.h b/src/3rdparty/webkit/WebCore/svg/SVGFEDistantLightElement.h index e340549..95f45c8 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFEDistantLightElement.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGFEDistantLightElement.h @@ -23,10 +23,8 @@ #if ENABLE(SVG) && ENABLE(FILTERS) #include "SVGFELightElement.h" -namespace WebCore -{ - class SVGFEDistantLightElement : public SVGFELightElement - { +namespace WebCore { + class SVGFEDistantLightElement : public SVGFELightElement { public: SVGFEDistantLightElement(const QualifiedName&, Document*); virtual ~SVGFEDistantLightElement(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFEFloodElement.cpp b/src/3rdparty/webkit/WebCore/svg/SVGFEFloodElement.cpp index e12b4e1..ae5ce94 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFEFloodElement.cpp +++ b/src/3rdparty/webkit/WebCore/svg/SVGFEFloodElement.cpp @@ -55,7 +55,7 @@ bool SVGFEFloodElement::build(SVGResourceFilter* filterResource) { FilterEffect* input = filterResource->builder()->getEffectById(in1()); - if(!input) + if (!input) return false; RefPtr<RenderStyle> filterStyle = styleForRenderer(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFEFloodElement.h b/src/3rdparty/webkit/WebCore/svg/SVGFEFloodElement.h index 4a4cffc..ca4e18b 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFEFloodElement.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGFEFloodElement.h @@ -27,10 +27,8 @@ #include "SVGFEFlood.h" #include "SVGFilterPrimitiveStandardAttributes.h" -namespace WebCore -{ - class SVGFEFloodElement : public SVGFilterPrimitiveStandardAttributes - { +namespace WebCore { + class SVGFEFloodElement : public SVGFilterPrimitiveStandardAttributes { public: SVGFEFloodElement(const QualifiedName&, Document*); virtual ~SVGFEFloodElement(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFEFuncAElement.h b/src/3rdparty/webkit/WebCore/svg/SVGFEFuncAElement.h index 2c24039..8ec6b1c 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFEFuncAElement.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGFEFuncAElement.h @@ -26,10 +26,8 @@ #if ENABLE(SVG) && ENABLE(FILTERS) #include "SVGComponentTransferFunctionElement.h" -namespace WebCore -{ - class SVGFEFuncAElement : public SVGComponentTransferFunctionElement - { +namespace WebCore { + class SVGFEFuncAElement : public SVGComponentTransferFunctionElement { public: SVGFEFuncAElement(const QualifiedName&, Document*); virtual ~SVGFEFuncAElement(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFEFuncBElement.h b/src/3rdparty/webkit/WebCore/svg/SVGFEFuncBElement.h index 1eb0889..5d86f87 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFEFuncBElement.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGFEFuncBElement.h @@ -26,10 +26,8 @@ #if ENABLE(SVG) && ENABLE(FILTERS) #include "SVGComponentTransferFunctionElement.h" -namespace WebCore -{ - class SVGFEFuncBElement : public SVGComponentTransferFunctionElement - { +namespace WebCore { + class SVGFEFuncBElement : public SVGComponentTransferFunctionElement { public: SVGFEFuncBElement(const QualifiedName&, Document*); virtual ~SVGFEFuncBElement(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFEFuncGElement.h b/src/3rdparty/webkit/WebCore/svg/SVGFEFuncGElement.h index 973360e..9f5d3d7 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFEFuncGElement.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGFEFuncGElement.h @@ -26,10 +26,8 @@ #if ENABLE(SVG) && ENABLE(FILTERS) #include "SVGComponentTransferFunctionElement.h" -namespace WebCore -{ - class SVGFEFuncGElement : public SVGComponentTransferFunctionElement - { +namespace WebCore { + class SVGFEFuncGElement : public SVGComponentTransferFunctionElement { public: SVGFEFuncGElement(const QualifiedName&, Document*); virtual ~SVGFEFuncGElement(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFEFuncRElement.h b/src/3rdparty/webkit/WebCore/svg/SVGFEFuncRElement.h index 3553954..0a0d115 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFEFuncRElement.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGFEFuncRElement.h @@ -26,10 +26,8 @@ #if ENABLE(SVG) && ENABLE(FILTERS) #include "SVGComponentTransferFunctionElement.h" -namespace WebCore -{ - class SVGFEFuncRElement : public SVGComponentTransferFunctionElement - { +namespace WebCore { + class SVGFEFuncRElement : public SVGComponentTransferFunctionElement { public: SVGFEFuncRElement(const QualifiedName&, Document*); virtual ~SVGFEFuncRElement(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFEGaussianBlurElement.cpp b/src/3rdparty/webkit/WebCore/svg/SVGFEGaussianBlurElement.cpp index be3554f..4cddb5a 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFEGaussianBlurElement.cpp +++ b/src/3rdparty/webkit/WebCore/svg/SVGFEGaussianBlurElement.cpp @@ -71,7 +71,7 @@ bool SVGFEGaussianBlurElement::build(SVGResourceFilter* filterResource) { FilterEffect* input1 = filterResource->builder()->getEffectById(in1()); - if(!input1) + if (!input1) return false; RefPtr<FilterEffect> effect = FEGaussianBlur::create(input1, stdDeviationX(), stdDeviationY()); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFEImageElement.cpp b/src/3rdparty/webkit/WebCore/svg/SVGFEImageElement.cpp index ae69e0d..8122960 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFEImageElement.cpp +++ b/src/3rdparty/webkit/WebCore/svg/SVGFEImageElement.cpp @@ -86,7 +86,7 @@ void SVGFEImageElement::notifyFinished(CachedResource*) bool SVGFEImageElement::build(SVGResourceFilter* filterResource) { - if(!m_cachedImage) + if (!m_cachedImage) return false; RefPtr<FilterEffect> effect = FEImage::create(m_cachedImage.get()); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFEMergeElement.cpp b/src/3rdparty/webkit/WebCore/svg/SVGFEMergeElement.cpp index 0640066..cb3a781 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFEMergeElement.cpp +++ b/src/3rdparty/webkit/WebCore/svg/SVGFEMergeElement.cpp @@ -49,7 +49,7 @@ bool SVGFEMergeElement::build(SVGResourceFilter* filterResource) } } - if(mergeInputs.isEmpty()) + if (mergeInputs.isEmpty()) return false; RefPtr<FilterEffect> effect = FEMerge::create(mergeInputs); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFEOffsetElement.cpp b/src/3rdparty/webkit/WebCore/svg/SVGFEOffsetElement.cpp index c7e4e77..945a9da 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFEOffsetElement.cpp +++ b/src/3rdparty/webkit/WebCore/svg/SVGFEOffsetElement.cpp @@ -60,7 +60,7 @@ bool SVGFEOffsetElement::build(SVGResourceFilter* filterResource) { FilterEffect* input1 = filterResource->builder()->getEffectById(in1()); - if(!input1) + if (!input1) return false; RefPtr<FilterEffect> effect = FEOffset::create(input1, dx(), dy()); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFEPointLightElement.h b/src/3rdparty/webkit/WebCore/svg/SVGFEPointLightElement.h index edb9f9d..b39fffa 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFEPointLightElement.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGFEPointLightElement.h @@ -23,10 +23,8 @@ #if ENABLE(SVG) && ENABLE(FILTERS) #include "SVGFELightElement.h" -namespace WebCore -{ - class SVGFEPointLightElement : public SVGFELightElement - { +namespace WebCore { + class SVGFEPointLightElement : public SVGFELightElement { public: SVGFEPointLightElement(const QualifiedName&, Document*); virtual ~SVGFEPointLightElement(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFESpecularLightingElement.cpp b/src/3rdparty/webkit/WebCore/svg/SVGFESpecularLightingElement.cpp index 36dd453..7afa4cc 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFESpecularLightingElement.cpp +++ b/src/3rdparty/webkit/WebCore/svg/SVGFESpecularLightingElement.cpp @@ -90,7 +90,7 @@ bool SVGFESpecularLightingElement::build(SVGResourceFilter* filterResource) { FilterEffect* input1 = filterResource->builder()->getEffectById(in1()); - if(!input1) + if (!input1) return false; RefPtr<RenderStyle> filterStyle = styleForRenderer(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFESpotLightElement.h b/src/3rdparty/webkit/WebCore/svg/SVGFESpotLightElement.h index 629e51a..440c664 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFESpotLightElement.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGFESpotLightElement.h @@ -23,10 +23,8 @@ #if ENABLE(SVG) && ENABLE(FILTERS) #include "SVGFELightElement.h" -namespace WebCore -{ - class SVGFESpotLightElement : public SVGFELightElement - { +namespace WebCore { + class SVGFESpotLightElement : public SVGFELightElement { public: SVGFESpotLightElement(const QualifiedName&, Document*); virtual ~SVGFESpotLightElement(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGFETileElement.cpp b/src/3rdparty/webkit/WebCore/svg/SVGFETileElement.cpp index d5828eb..14af25f 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGFETileElement.cpp +++ b/src/3rdparty/webkit/WebCore/svg/SVGFETileElement.cpp @@ -55,7 +55,7 @@ bool SVGFETileElement::build(SVGResourceFilter* filterResource) { FilterEffect* input1 = filterResource->builder()->getEffectById(in1()); - if(!input1) + if (!input1) return false; RefPtr<FilterEffect> effect = FETile::create(input1); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGLineElement.cpp b/src/3rdparty/webkit/WebCore/svg/SVGLineElement.cpp index 17c110c..cb31178 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGLineElement.cpp +++ b/src/3rdparty/webkit/WebCore/svg/SVGLineElement.cpp @@ -59,8 +59,7 @@ void SVGLineElement::parseMappedAttribute(MappedAttribute* attr) setX2BaseValue(SVGLength(LengthModeWidth, attr->value())); else if (attr->name() == SVGNames::y2Attr) setY2BaseValue(SVGLength(LengthModeHeight, attr->value())); - else - { + else { if (SVGTests::parseMappedAttribute(attr)) return; if (SVGLangSpace::parseMappedAttribute(attr)) diff --git a/src/3rdparty/webkit/WebCore/svg/SVGList.h b/src/3rdparty/webkit/WebCore/svg/SVGList.h index 5381598..c04c200 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGList.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGList.h @@ -165,8 +165,7 @@ namespace WebCore { }; template<typename Item> - class SVGPODList : public SVGList<RefPtr<SVGPODListItem<Item> > > - { + class SVGPODList : public SVGList<RefPtr<SVGPODListItem<Item> > > { public: Item initialize(Item newItem, ExceptionCode& ec) { diff --git a/src/3rdparty/webkit/WebCore/svg/SVGListTraits.h b/src/3rdparty/webkit/WebCore/svg/SVGListTraits.h index b028ad5..d96bc67 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGListTraits.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGListTraits.h @@ -34,14 +34,12 @@ namespace WebCore { struct SVGListTraits { }; template<typename Item> - struct SVGListTraits<true, Item> - { + struct SVGListTraits<true, Item> { static Item nullItem() { return Item(); } }; template<> - struct SVGListTraits<false, double> - { + struct SVGListTraits<false, double> { static double nullItem() { return 0.0; } }; diff --git a/src/3rdparty/webkit/WebCore/svg/SVGMPathElement.h b/src/3rdparty/webkit/WebCore/svg/SVGMPathElement.h index 1e84cc7..988cead 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGMPathElement.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGMPathElement.h @@ -32,8 +32,7 @@ namespace WebCore { class SVGMPathElement : public SVGElement, SVGURIReference, - SVGExternalResourcesRequired - { + SVGExternalResourcesRequired { public: SVGMPathElement(const QualifiedName&, Document*); virtual ~SVGMPathElement(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGMetadataElement.h b/src/3rdparty/webkit/WebCore/svg/SVGMetadataElement.h index 4bd87d6..63d0aae 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGMetadataElement.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGMetadataElement.h @@ -26,10 +26,8 @@ #include "SVGElement.h" -namespace WebCore -{ - class SVGMetadataElement : public SVGElement - { +namespace WebCore { + class SVGMetadataElement : public SVGElement { public: SVGMetadataElement(const QualifiedName&, Document*); virtual ~SVGMetadataElement(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGParserUtilities.cpp b/src/3rdparty/webkit/WebCore/svg/SVGParserUtilities.cpp index 7d93f59..6f696e6 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGParserUtilities.cpp +++ b/src/3rdparty/webkit/WebCore/svg/SVGParserUtilities.cpp @@ -246,7 +246,7 @@ bool SVGPathParser::parseSVG(const String& s, bool process) bool relative = false; - switch(command) + switch (command) { case 'm': relative = true; @@ -625,7 +625,7 @@ void SVGPathParser::calculateArc(bool relative, double& curx, double& cury, doub n_segs = (int) (int) ceil(fabs(th_arc / (piDouble * 0.5 + 0.001))); - for(i = 0; i < n_segs; i++) { + for (i = 0; i < n_segs; i++) { double sin_th, cos_th; double a00, a01, a10, a11; double x1, y1, x2, y2, x3, y3; diff --git a/src/3rdparty/webkit/WebCore/svg/SVGPathElement.h b/src/3rdparty/webkit/WebCore/svg/SVGPathElement.h index a39e628..362a85b 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGPathElement.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGPathElement.h @@ -56,8 +56,7 @@ namespace WebCore { public SVGTests, public SVGLangSpace, public SVGExternalResourcesRequired, - public SVGAnimatedPathData - { + public SVGAnimatedPathData { public: SVGPathElement(const QualifiedName&, Document*); virtual ~SVGPathElement(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGPathSeg.idl b/src/3rdparty/webkit/WebCore/svg/SVGPathSeg.idl index 597b01d..6754d2a 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGPathSeg.idl +++ b/src/3rdparty/webkit/WebCore/svg/SVGPathSeg.idl @@ -26,7 +26,7 @@ module svg { - interface [Conditional=SVG, GenerateConstructor, Polymorphic] SVGPathSeg { + interface [Conditional=SVG, CustomToJS, GenerateConstructor, Polymorphic] SVGPathSeg { // Path Segment Types const unsigned short PATHSEG_UNKNOWN = 0; const unsigned short PATHSEG_CLOSEPATH = 1; diff --git a/src/3rdparty/webkit/WebCore/svg/SVGPathSegClosePath.h b/src/3rdparty/webkit/WebCore/svg/SVGPathSegClosePath.h index eb74dea..190af9e 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGPathSegClosePath.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGPathSegClosePath.h @@ -27,10 +27,8 @@ #include "SVGPathSeg.h" -namespace WebCore -{ - class SVGPathSegClosePath : public SVGPathSeg - { +namespace WebCore { + class SVGPathSegClosePath : public SVGPathSeg { public: static PassRefPtr<SVGPathSegClosePath> create() { return adoptRef(new SVGPathSegClosePath); } virtual ~SVGPathSegClosePath(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGSVGElement.h b/src/3rdparty/webkit/WebCore/svg/SVGSVGElement.h index fe8575b..f92ed72 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGSVGElement.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGSVGElement.h @@ -33,8 +33,7 @@ #include "SVGTests.h" #include "SVGZoomAndPan.h" -namespace WebCore -{ +namespace WebCore { class SVGAngle; class SVGLength; class SVGTransform; @@ -46,8 +45,7 @@ namespace WebCore public SVGLangSpace, public SVGExternalResourcesRequired, public SVGFitToViewBox, - public SVGZoomAndPan - { + public SVGZoomAndPan { public: SVGSVGElement(const QualifiedName&, Document*); virtual ~SVGSVGElement(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGSetElement.h b/src/3rdparty/webkit/WebCore/svg/SVGSetElement.h index d47e003..fda6919 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGSetElement.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGSetElement.h @@ -26,11 +26,9 @@ #include "SVGAnimateElement.h" -namespace WebCore -{ +namespace WebCore { // SVGAnimateElement implements superset of the functionality. - class SVGSetElement : public SVGAnimateElement - { + class SVGSetElement : public SVGAnimateElement { public: SVGSetElement(const QualifiedName&, Document*); }; diff --git a/src/3rdparty/webkit/WebCore/svg/SVGSwitchElement.h b/src/3rdparty/webkit/WebCore/svg/SVGSwitchElement.h index 82153d9..a2be835 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGSwitchElement.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGSwitchElement.h @@ -29,13 +29,11 @@ #include "SVGStyledTransformableElement.h" #include "SVGTests.h" -namespace WebCore -{ +namespace WebCore { class SVGSwitchElement : public SVGStyledTransformableElement, public SVGTests, public SVGLangSpace, - public SVGExternalResourcesRequired - { + public SVGExternalResourcesRequired { public: SVGSwitchElement(const QualifiedName&, Document*); virtual ~SVGSwitchElement(); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGTextPathElement.cpp b/src/3rdparty/webkit/WebCore/svg/SVGTextPathElement.cpp index 0d8560a..54a4aa2 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGTextPathElement.cpp +++ b/src/3rdparty/webkit/WebCore/svg/SVGTextPathElement.cpp @@ -57,7 +57,7 @@ void SVGTextPathElement::parseMappedAttribute(MappedAttribute* attr) else if (attr->name() == SVGNames::methodAttr) { if (value == "align") setSpacingBaseValue(SVG_TEXTPATH_METHODTYPE_ALIGN); - else if(value == "stretch") + else if (value == "stretch") setSpacingBaseValue(SVG_TEXTPATH_METHODTYPE_STRETCH); } else if (attr->name() == SVGNames::spacingAttr) { if (value == "auto") diff --git a/src/3rdparty/webkit/WebCore/svg/SVGTextPathElement.h b/src/3rdparty/webkit/WebCore/svg/SVGTextPathElement.h index e1dd938..4e8899a 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGTextPathElement.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGTextPathElement.h @@ -27,8 +27,7 @@ #include "SVGURIReference.h" -namespace WebCore -{ +namespace WebCore { enum SVGTextPathMethodType { SVG_TEXTPATH_METHODTYPE_UNKNOWN = 0, SVG_TEXTPATH_METHODTYPE_ALIGN = 1, @@ -42,8 +41,7 @@ namespace WebCore }; class SVGTextPathElement : public SVGTextContentElement, - public SVGURIReference - { + public SVGURIReference { public: // Forward declare these enums in the w3c naming scheme, for IDL generation enum { diff --git a/src/3rdparty/webkit/WebCore/svg/SVGTitleElement.h b/src/3rdparty/webkit/WebCore/svg/SVGTitleElement.h index cd4768c..e053a42 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGTitleElement.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGTitleElement.h @@ -27,11 +27,9 @@ #include "SVGLangSpace.h" #include "SVGStyledElement.h" -namespace WebCore -{ +namespace WebCore { class SVGTitleElement : public SVGStyledElement, - public SVGLangSpace - { + public SVGLangSpace { public: SVGTitleElement(const QualifiedName&, Document*); diff --git a/src/3rdparty/webkit/WebCore/svg/SVGTransformDistance.cpp b/src/3rdparty/webkit/WebCore/svg/SVGTransformDistance.cpp index 34adc63..00b5387 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGTransformDistance.cpp +++ b/src/3rdparty/webkit/WebCore/svg/SVGTransformDistance.cpp @@ -35,6 +35,8 @@ namespace WebCore { SVGTransformDistance::SVGTransformDistance() : m_type(SVGTransform::SVG_TRANSFORM_UNKNOWN) , m_angle(0) + , m_cx(0) + , m_cy(0) { } diff --git a/src/3rdparty/webkit/WebCore/svg/SVGTransformList.cpp b/src/3rdparty/webkit/WebCore/svg/SVGTransformList.cpp index ed457f4..648f1e9 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGTransformList.cpp +++ b/src/3rdparty/webkit/WebCore/svg/SVGTransformList.cpp @@ -26,7 +26,6 @@ #include "TransformationMatrix.h" #include "SVGTransform.h" #include "SVGSVGElement.h" -#include "SVGTransformDistance.h" #include "SVGTransformList.h" using namespace WebCore; @@ -65,23 +64,6 @@ SVGTransform SVGTransformList::concatenate() const return SVGTransform(matrix); } -SVGTransform SVGTransformList::concatenateForType(SVGTransform::SVGTransformType type) const -{ - unsigned int length = numberOfItems(); - if (!length) - return SVGTransform(); - - ExceptionCode ec = 0; - SVGTransformDistance totalTransform; - for (unsigned int i = 0; i < length; i++) { - const SVGTransform& transform = getItem(i, ec); - if (transform.type() == type) - totalTransform.addSVGTransform(transform); - } - - return totalTransform.addToSVGTransform(SVGTransform()); -} - String SVGTransformList::valueAsString() const { // TODO: We may want to build a real transform string, instead of concatting to a matrix(...). diff --git a/src/3rdparty/webkit/WebCore/svg/SVGTransformList.h b/src/3rdparty/webkit/WebCore/svg/SVGTransformList.h index 442016b..d095fe4 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGTransformList.h +++ b/src/3rdparty/webkit/WebCore/svg/SVGTransformList.h @@ -42,7 +42,6 @@ namespace WebCore { // Internal use only SVGTransform concatenate() const; - SVGTransform concatenateForType(SVGTransform::SVGTransformType) const; String valueAsString() const; diff --git a/src/3rdparty/webkit/WebCore/svg/SVGTransformable.cpp b/src/3rdparty/webkit/WebCore/svg/SVGTransformable.cpp index 6dbfc1a..17344ea 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGTransformable.cpp +++ b/src/3rdparty/webkit/WebCore/svg/SVGTransformable.cpp @@ -154,12 +154,12 @@ bool SVGTransformable::parseTransformValue(unsigned type, const UChar*& ptr, con return true; } -static const UChar skewXDesc[] = {'s','k','e','w', 'X'}; -static const UChar skewYDesc[] = {'s','k','e','w', 'Y'}; -static const UChar scaleDesc[] = {'s','c','a','l', 'e'}; -static const UChar translateDesc[] = {'t','r','a','n', 's', 'l', 'a', 't', 'e'}; -static const UChar rotateDesc[] = {'r','o','t','a', 't', 'e'}; -static const UChar matrixDesc[] = {'m','a','t','r', 'i', 'x'}; +static const UChar skewXDesc[] = {'s', 'k', 'e', 'w', 'X'}; +static const UChar skewYDesc[] = {'s', 'k', 'e', 'w', 'Y'}; +static const UChar scaleDesc[] = {'s', 'c', 'a', 'l', 'e'}; +static const UChar translateDesc[] = {'t', 'r', 'a', 'n', 's', 'l', 'a', 't', 'e'}; +static const UChar rotateDesc[] = {'r', 'o', 't', 'a', 't', 'e'}; +static const UChar matrixDesc[] = {'m', 'a', 't', 'r', 'i', 'x'}; static inline bool parseAndSkipType(const UChar*& currTransform, const UChar* end, unsigned short& type) { diff --git a/src/3rdparty/webkit/WebCore/svg/SVGViewSpec.cpp b/src/3rdparty/webkit/WebCore/svg/SVGViewSpec.cpp index 6aa3857..b12b1c2 100644 --- a/src/3rdparty/webkit/WebCore/svg/SVGViewSpec.cpp +++ b/src/3rdparty/webkit/WebCore/svg/SVGViewSpec.cpp @@ -82,7 +82,7 @@ const SVGElement* SVGViewSpec::contextElement() const return m_contextElement; } -static const UChar svgViewSpec[] = {'s','v','g','V', 'i', 'e', 'w'}; +static const UChar svgViewSpec[] = {'s', 'v', 'g', 'V', 'i', 'e', 'w'}; static const UChar viewBoxSpec[] = {'v', 'i', 'e', 'w', 'B', 'o', 'x'}; static const UChar preserveAspectRatioSpec[] = {'p', 'r', 'e', 's', 'e', 'r', 'v', 'e', 'A', 's', 'p', 'e', 'c', 't', 'R', 'a', 't', 'i', 'o'}; static const UChar transformSpec[] = {'t', 'r', 'a', 'n', 's', 'f', 'o', 'r', 'm'}; diff --git a/src/3rdparty/webkit/WebCore/svg/animation/SMILTime.cpp b/src/3rdparty/webkit/WebCore/svg/animation/SMILTime.cpp index 70f9487..44e96a2 100644 --- a/src/3rdparty/webkit/WebCore/svg/animation/SMILTime.cpp +++ b/src/3rdparty/webkit/WebCore/svg/animation/SMILTime.cpp @@ -35,7 +35,8 @@ const double SMILTime::unresolvedValue = DBL_MAX; // Just a big value smaller than DBL_MAX. Our times are relative to 0, we don't really need the full range. const double SMILTime::indefiniteValue = FLT_MAX; -SMILTime WebCore::operator+(const SMILTime& a, const SMILTime& b) { +SMILTime WebCore::operator+(const SMILTime& a, const SMILTime& b) +{ if (a.isUnresolved() || b.isUnresolved()) return SMILTime::unresolved(); if (a.isIndefinite() || b.isIndefinite()) @@ -43,7 +44,8 @@ SMILTime WebCore::operator+(const SMILTime& a, const SMILTime& b) { return a.value() + b.value(); } -SMILTime WebCore::operator-(const SMILTime& a, const SMILTime& b) { +SMILTime WebCore::operator-(const SMILTime& a, const SMILTime& b) +{ if (a.isUnresolved() || b.isUnresolved()) return SMILTime::unresolved(); if (a.isIndefinite() || b.isIndefinite()) @@ -51,7 +53,8 @@ SMILTime WebCore::operator-(const SMILTime& a, const SMILTime& b) { return a.value() - b.value(); } -SMILTime WebCore::operator*(const SMILTime& a, const SMILTime& b) { +SMILTime WebCore::operator*(const SMILTime& a, const SMILTime& b) +{ if (a.isUnresolved() || b.isUnresolved()) return SMILTime::unresolved(); if (a.value() == 0 || b.value() == 0) diff --git a/src/3rdparty/webkit/WebCore/svg/animation/SVGSMILElement.h b/src/3rdparty/webkit/WebCore/svg/animation/SVGSMILElement.h index fac102e..b61f20d 100644 --- a/src/3rdparty/webkit/WebCore/svg/animation/SVGSMILElement.h +++ b/src/3rdparty/webkit/WebCore/svg/animation/SVGSMILElement.h @@ -38,8 +38,7 @@ namespace WebCore { class SMILTimeContainer; // This class implements SMIL interval timing model as needed for SVG animation. - class SVGSMILElement : public SVGElement - { + class SVGSMILElement : public SVGElement { public: SVGSMILElement(const QualifiedName&, Document*); virtual ~SVGSMILElement(); diff --git a/src/3rdparty/webkit/WebCore/svg/graphics/SVGImage.cpp b/src/3rdparty/webkit/WebCore/svg/graphics/SVGImage.cpp index 227b570..4efcf2e 100644 --- a/src/3rdparty/webkit/WebCore/svg/graphics/SVGImage.cpp +++ b/src/3rdparty/webkit/WebCore/svg/graphics/SVGImage.cpp @@ -222,7 +222,7 @@ NativeImagePtr SVGImage::nativeImageForCurrentFrame() bool SVGImage::dataChanged(bool allDataReceived) { // Don't do anything if is an empty image. - if (!m_data->size()) + if (!data()->size()) return true; if (allDataReceived) { @@ -251,7 +251,7 @@ bool SVGImage::dataChanged(bool allDataReceived) loader->commitProvisionalLoad(0); loader->setResponseMIMEType("image/svg+xml"); loader->begin(KURL()); // create the empty document - loader->write(m_data->data(), m_data->size()); + loader->write(data()->data(), data()->size()); loader->end(); frame->view()->setTransparent(true); // SVG Images are transparent. } diff --git a/src/3rdparty/webkit/WebCore/svg/graphics/SVGResource.cpp b/src/3rdparty/webkit/WebCore/svg/graphics/SVGResource.cpp index 82c10ba..049edc7 100644 --- a/src/3rdparty/webkit/WebCore/svg/graphics/SVGResource.cpp +++ b/src/3rdparty/webkit/WebCore/svg/graphics/SVGResource.cpp @@ -50,7 +50,8 @@ struct ResourceSet { typedef HashMap<SVGStyledElement*, ResourceSet*> ResourceClientMap; -static ResourceClientMap& clientMap() { +static ResourceClientMap& clientMap() +{ DEFINE_STATIC_LOCAL(ResourceClientMap, map, ()); return map; } diff --git a/src/3rdparty/webkit/WebCore/wml/WMLCardElement.cpp b/src/3rdparty/webkit/WebCore/wml/WMLCardElement.cpp index 3713c59..0f49bd7 100644 --- a/src/3rdparty/webkit/WebCore/wml/WMLCardElement.cpp +++ b/src/3rdparty/webkit/WebCore/wml/WMLCardElement.cpp @@ -34,6 +34,7 @@ #include "WMLInputElement.h" #include "WMLIntrinsicEventHandler.h" #include "WMLNames.h" +#include "WMLSelectElement.h" #include "WMLTemplateElement.h" #include "WMLTimerElement.h" #include "WMLVariables.h" @@ -165,17 +166,14 @@ void WMLCardElement::handleIntrinsicEventIfNeeded() if (m_eventTimer) m_eventTimer->start(); - // FIXME: Initialize select elements in this card for (Node* node = traverseNextNode(); node != 0; node = node->traverseNextNode()) { if (!node->isElementNode()) continue; if (node->hasTagName(inputTag)) static_cast<WMLInputElement*>(node)->initialize(); - /* else if (node->hasTagName(selectTag)) static_cast<WMLSelectElement*>(node)->selectInitialOptions(); - */ } } diff --git a/src/3rdparty/webkit/WebCore/wml/WMLErrorHandling.cpp b/src/3rdparty/webkit/WebCore/wml/WMLErrorHandling.cpp index a228299..87c8003 100644 --- a/src/3rdparty/webkit/WebCore/wml/WMLErrorHandling.cpp +++ b/src/3rdparty/webkit/WebCore/wml/WMLErrorHandling.cpp @@ -61,7 +61,7 @@ void reportWMLError(Document* doc, WMLErrorCode error) if (!console) return; - console->addMessage(WMLMessageSource, ErrorMessageLevel, errorMessage, 0, String()); + console->addMessage(WMLMessageSource, LogMessageType, ErrorMessageLevel, errorMessage, 0, String()); } } diff --git a/src/3rdparty/webkit/WebCore/wml/WMLPageState.cpp b/src/3rdparty/webkit/WebCore/wml/WMLPageState.cpp index 15ae9ca..1afc0c9 100644 --- a/src/3rdparty/webkit/WebCore/wml/WMLPageState.cpp +++ b/src/3rdparty/webkit/WebCore/wml/WMLPageState.cpp @@ -54,7 +54,7 @@ void WMLPageState::reset() m_page->backForwardList()->clearWmlPageHistory(); // reset implementation-specfic state if UA has - m_historyLength = 1; + m_historyLength = 0; } bool WMLPageState::setNeedCheckDeckAccess(bool need) diff --git a/src/3rdparty/webkit/WebCore/wml/WMLPostfieldElement.cpp b/src/3rdparty/webkit/WebCore/wml/WMLPostfieldElement.cpp index 7d001e1..ca43f69 100644 --- a/src/3rdparty/webkit/WebCore/wml/WMLPostfieldElement.cpp +++ b/src/3rdparty/webkit/WebCore/wml/WMLPostfieldElement.cpp @@ -59,7 +59,7 @@ String WMLPostfieldElement::name() const String WMLPostfieldElement::value() const { - return parseValueSubstitutingVariableReferences(getAttribute(HTMLNames::valueAttr)); + return parseValueSubstitutingVariableReferences(getAttribute(HTMLNames::valueAttr)); } static inline CString encodedString(const TextEncoding& encoding, const String& data) diff --git a/src/3rdparty/webkit/WebCore/wml/WMLSelectElement.cpp b/src/3rdparty/webkit/WebCore/wml/WMLSelectElement.cpp index 5b5aed1..5e70098 100644 --- a/src/3rdparty/webkit/WebCore/wml/WMLSelectElement.cpp +++ b/src/3rdparty/webkit/WebCore/wml/WMLSelectElement.cpp @@ -22,16 +22,21 @@ #if ENABLE(WML) #include "WMLSelectElement.h" - +#include "CString.h" #include "HTMLNames.h" #include "MappedAttribute.h" +#include "OptionElement.h" #include "RenderListBox.h" #include "RenderMenuList.h" - +#include "WMLDocument.h" +#include "WMLNames.h" +#include "WMLVariables.h" #include <wtf/StdLibExtras.h> namespace WebCore { +using namespace WMLNames; + WMLSelectElement::WMLSelectElement(const QualifiedName& tagName, Document* document) : WMLFormControlElement(tagName, document) { @@ -41,6 +46,17 @@ WMLSelectElement::~WMLSelectElement() { } +String WMLSelectElement::title() const +{ + return substituteVariableReferences(getAttribute(HTMLNames::titleAttr), document()); +} + +const AtomicString& WMLSelectElement::formControlName() const +{ + AtomicString name = this->name(); + return name.isNull() ? emptyAtom : name; +} + const AtomicString& WMLSelectElement::formControlType() const { DEFINE_STATIC_LOCAL(const AtomicString, selectMultiple, ("select-multiple")); @@ -92,9 +108,14 @@ int WMLSelectElement::selectedIndex() const return SelectElement::selectedIndex(m_data, this); } -void WMLSelectElement::setSelectedIndex(int index, bool deselect, bool fireOnChange) +void WMLSelectElement::setSelectedIndex(int optionIndex, bool deselect) +{ + SelectElement::setSelectedIndex(m_data, this, optionIndex, deselect, false, false); +} + +void WMLSelectElement::setSelectedIndexByUser(int optionIndex, bool deselect, bool fireOnChangeNow) { - SelectElement::setSelectedIndex(m_data, this, index, deselect, fireOnChange); + SelectElement::setSelectedIndex(m_data, this, optionIndex, deselect, fireOnChangeNow, true); } bool WMLSelectElement::saveFormControlState(String& value) const @@ -151,6 +172,14 @@ void WMLSelectElement::reset() void WMLSelectElement::defaultEventHandler(Event* event) { SelectElement::defaultEventHandler(m_data, this, event); + + // FIXME: There must be a better place to update the page variable state. Investigate. + updateVariables(); + + if (event->defaultHandled()) + return; + + WMLFormControlElement::defaultEventHandler(event); } void WMLSelectElement::accessKeyAction(bool sendToAnyElement) @@ -213,12 +242,311 @@ void WMLSelectElement::scrollToSelection() SelectElement::scrollToSelection(m_data, this); } +void WMLSelectElement::selectInitialOptions() +{ + // Spec: Step 1 - the default option index is determined using iname and ivalue + calculateDefaultOptionIndices(); + + if (m_defaultOptionIndices.isEmpty()) + return; + + // Spec: Step 2 – initialise variables + initializeVariables(); + + // Spec: Step 3 – pre-select option(s) specified by the default option index + selectDefaultOptions(); +} + void WMLSelectElement::insertedIntoTree(bool deep) { SelectElement::insertedIntoTree(m_data, this); WMLFormControlElement::insertedIntoTree(deep); } +void WMLSelectElement::calculateDefaultOptionIndices() +{ + WMLPageState* pageState = wmlPageStateForDocument(document()); + if (!pageState) + return; + + String variable; + + // Spec: If the 'iname' attribute is specified and names a variable that is set, + // then the default option index is the validated value of that variable. + String iname = this->iname(); + if (!iname.isEmpty()) { + variable = pageState->getVariable(iname); + if (!variable.isEmpty()) + m_defaultOptionIndices = parseIndexValueString(variable); + } + + // Spec: If the default option index is empty and the 'ivalue' attribute is specified, + // then the default option index is the validated attribute value. + String ivalue = this->ivalue(); + if (m_defaultOptionIndices.isEmpty() && !ivalue.isEmpty()) + m_defaultOptionIndices = parseIndexValueString(ivalue); + + // Spec: If the default option index is empty, and the 'name' attribute is specified + // and the 'name' ttribute names a variable that is set, then for each value in the 'name' + // variable that is present as a value in the select's option elements, the index of the + // first option element containing that value is added to the default index if that + // index has not been previously added. + String name = this->name(); + if (m_defaultOptionIndices.isEmpty() && !name.isEmpty()) { + variable = pageState->getVariable(name); + if (!variable.isEmpty()) + m_defaultOptionIndices = valueStringToOptionIndices(variable); + } + + String value = parseValueSubstitutingVariableReferences(getAttribute(HTMLNames::valueAttr)); + + // Spec: If the default option index is empty and the 'value' attribute is specified then + // for each value in the 'value' attribute that is present as a value in the select's + // option elements, the index of the first option element containing that value is added + // to the default index if that index has not been previously added. + if (m_defaultOptionIndices.isEmpty() && !value.isEmpty()) + m_defaultOptionIndices = valueStringToOptionIndices(value); + + // Spec: If the default option index is empty and the select is a multi-choice, then the + // default option index is set to zero. If the select is single-choice, then the default + // option index is set to one. + if (m_defaultOptionIndices.isEmpty()) + m_defaultOptionIndices.append((unsigned) !m_data.multiple()); +} + +void WMLSelectElement::selectDefaultOptions() +{ + ASSERT(!m_defaultOptionIndices.isEmpty()); + + if (!m_data.multiple()) { + setSelectedIndex(m_defaultOptionIndices.first() - 1, false); + return; + } + + Vector<unsigned>::const_iterator end = m_defaultOptionIndices.end(); + for (Vector<unsigned>::const_iterator it = m_defaultOptionIndices.begin(); it != end; ++it) + setSelectedIndex((*it) - 1, false); +} + +void WMLSelectElement::initializeVariables() +{ + ASSERT(!m_defaultOptionIndices.isEmpty()); + + WMLPageState* pageState = wmlPageStateForDocument(document()); + if (!pageState) + return; + + const Vector<Element*>& items = m_data.listItems(this); + if (items.isEmpty()) + return; + + // Spec: If the 'iname' attribute is specified, then the named variable is set with the default option index. + String iname = this->iname(); + if (!iname.isEmpty()) + pageState->storeVariable(iname, optionIndicesToString()); + + String name = this->name(); + if (name.isEmpty()) + return; + + if (m_data.multiple()) { + // Spec: If the 'name' attribute is specified and the select is a multiple-choice element, + // then for each index greater than zero, the value of the 'value' attribute on the option + // element at the index is added to the name variable. + pageState->storeVariable(name, optionIndicesToValueString()); + return; + } + + // Spec: If the 'name' attribute is specified and the select is a single-choice element, + // then the named variable is set with the value of the 'value' attribute on the option + // element at the default option index. + unsigned optionIndex = m_defaultOptionIndices.first(); + ASSERT(optionIndex >= 1); + + int listIndex = optionToListIndex(optionIndex - 1); + ASSERT(listIndex >= 0); + ASSERT(listIndex < (int) items.size()); + + if (OptionElement* optionElement = toOptionElement(items[listIndex])) + pageState->storeVariable(name, optionElement->value()); +} + +void WMLSelectElement::updateVariables() +{ + WMLPageState* pageState = wmlPageStateForDocument(document()); + if (!pageState) + return; + + String name = this->name(); + String iname = this->iname(); + if (iname.isEmpty() && name.isEmpty()) + return; + + String nameString; + String inameString; + + unsigned optionIndex = 0; + const Vector<Element*>& items = m_data.listItems(this); + + for (unsigned i = 0; i < items.size(); ++i) { + OptionElement* optionElement = toOptionElement(items[i]); + if (!optionElement) + continue; + + ++optionIndex; + if (!optionElement->selected()) + continue; + + if (!nameString.isEmpty()) + nameString += ";"; + + if (!inameString.isEmpty()) + inameString += ";"; + + nameString += optionElement->value(); + inameString += String::number(optionIndex); + } + + if (!name.isEmpty()) + pageState->storeVariable(name, nameString); + + if (!iname.isEmpty()) + pageState->storeVariable(iname, inameString); +} + +Vector<unsigned> WMLSelectElement::parseIndexValueString(const String& indexValue) const +{ + Vector<unsigned> indices; + if (indexValue.isEmpty()) + return indices; + + Vector<String> indexStrings; + indexValue.split(';', indexStrings); + + bool ok = false; + unsigned optionCount = SelectElement::optionCount(m_data, this); + + Vector<String>::const_iterator end = indexStrings.end(); + for (Vector<String>::const_iterator it = indexStrings.begin(); it != end; ++it) { + unsigned parsedValue = (*it).toUIntStrict(&ok); + // Spec: Remove all non-integer indices from the value. Remove all out-of-range indices + // from the value, where out-of-range is defined as any index with a value greater than + // the number of options in the select or with a value less than one. + if (!ok || parsedValue < 1 || parsedValue > optionCount) + continue; + + // Spec: Remove duplicate indices. + if (indices.find(parsedValue) == notFound) + indices.append(parsedValue); + } + + return indices; +} + +Vector<unsigned> WMLSelectElement::valueStringToOptionIndices(const String& value) const +{ + Vector<unsigned> indices; + if (value.isEmpty()) + return indices; + + const Vector<Element*>& items = m_data.listItems(this); + if (items.isEmpty()) + return indices; + + Vector<String> indexStrings; + value.split(';', indexStrings); + + unsigned optionIndex = 0; + + Vector<String>::const_iterator end = indexStrings.end(); + for (Vector<String>::const_iterator it = indexStrings.begin(); it != end; ++it) { + String value = *it; + + for (unsigned i = 0; i < items.size(); ++i) { + if (!isOptionElement(items[i])) + continue; + + ++optionIndex; + if (OptionElement* optionElement = toOptionElement(items[i])) { + if (optionElement->value() == value) { + indices.append(optionIndex); + break; + } + } + } + } + + return indices; +} + +String WMLSelectElement::optionIndicesToValueString() const +{ + String valueString; + if (m_defaultOptionIndices.isEmpty()) + return valueString; + + const Vector<Element*>& items = m_data.listItems(this); + if (items.isEmpty()) + return valueString; + + Vector<unsigned>::const_iterator end = m_defaultOptionIndices.end(); + for (Vector<unsigned>::const_iterator it = m_defaultOptionIndices.begin(); it != end; ++it) { + unsigned optionIndex = (*it); + if (optionIndex < 1 || optionIndex > items.size()) + continue; + + int listIndex = optionToListIndex((*it) - 1); + ASSERT(listIndex >= 0); + ASSERT(listIndex < (int) items.size()); + + if (OptionElement* optionElement = toOptionElement(items[listIndex])) { + if (!valueString.isEmpty()) + valueString += ";"; + + valueString += optionElement->value(); + } + } + + return valueString; +} + +String WMLSelectElement::optionIndicesToString() const +{ + String valueString; + if (m_defaultOptionIndices.isEmpty()) + return valueString; + + Vector<unsigned>::const_iterator end = m_defaultOptionIndices.end(); + for (Vector<unsigned>::const_iterator it = m_defaultOptionIndices.begin(); it != end; ++it) { + if (!valueString.isEmpty()) + valueString += ";"; + + valueString += String::number(*it); + } + + return valueString; +} + +String WMLSelectElement::name() const +{ + return parseValueForbiddingVariableReferences(getAttribute(HTMLNames::nameAttr)); +} + +String WMLSelectElement::value() const +{ + return parseValueSubstitutingVariableReferences(getAttribute(HTMLNames::valueAttr)); +} + +String WMLSelectElement::iname() const +{ + return parseValueForbiddingVariableReferences(getAttribute(inameAttr)); +} + +String WMLSelectElement::ivalue() const +{ + return parseValueSubstitutingVariableReferences(getAttribute(ivalueAttr)); +} + } #endif diff --git a/src/3rdparty/webkit/WebCore/wml/WMLSelectElement.h b/src/3rdparty/webkit/WebCore/wml/WMLSelectElement.h index 8d3e0f9..6cd3bcb 100644 --- a/src/3rdparty/webkit/WebCore/wml/WMLSelectElement.h +++ b/src/3rdparty/webkit/WebCore/wml/WMLSelectElement.h @@ -32,6 +32,9 @@ public: WMLSelectElement(const QualifiedName&, Document*); virtual ~WMLSelectElement(); + virtual String title() const; + + virtual const AtomicString& formControlName() const; virtual const AtomicString& formControlType() const; virtual bool isKeyboardFocusable(KeyboardEvent*) const; @@ -47,7 +50,8 @@ public: virtual bool canStartSelection() const { return false; } virtual int selectedIndex() const; - virtual void setSelectedIndex(int index, bool deselect = true, bool fireOnChange = false); + virtual void setSelectedIndex(int index, bool deselect = true); + virtual void setSelectedIndexByUser(int index, bool deselect = true, bool fireOnChangeNow = false); virtual int size() const { return m_data.size(); } virtual bool multiple() const { return m_data.multiple(); } @@ -81,11 +85,28 @@ public: void accessKeySetSelectedIndex(int); void setRecalcListItems(); void scrollToSelection(); + void selectInitialOptions(); private: virtual void insertedIntoTree(bool); + void calculateDefaultOptionIndices(); + void selectDefaultOptions(); + void initializeVariables(); + void updateVariables(); + + Vector<unsigned> parseIndexValueString(const String&) const; + Vector<unsigned> valueStringToOptionIndices(const String&) const; + String optionIndicesToValueString() const; + String optionIndicesToString() const; + + String name() const; + String value() const; + String iname() const; + String ivalue() const; + SelectElementData m_data; + Vector<unsigned> m_defaultOptionIndices; }; } diff --git a/src/3rdparty/webkit/WebCore/wml/WMLSetvarElement.cpp b/src/3rdparty/webkit/WebCore/wml/WMLSetvarElement.cpp index f0c50cc..e59b070 100644 --- a/src/3rdparty/webkit/WebCore/wml/WMLSetvarElement.cpp +++ b/src/3rdparty/webkit/WebCore/wml/WMLSetvarElement.cpp @@ -72,7 +72,7 @@ String WMLSetvarElement::name() const String WMLSetvarElement::value() const { - return parseValueSubstitutingVariableReferences(getAttribute(HTMLNames::valueAttr)); + return parseValueSubstitutingVariableReferences(getAttribute(HTMLNames::valueAttr)); } } diff --git a/src/3rdparty/webkit/WebCore/workers/AbstractWorker.cpp b/src/3rdparty/webkit/WebCore/workers/AbstractWorker.cpp new file mode 100644 index 0000000..120f78a --- /dev/null +++ b/src/3rdparty/webkit/WebCore/workers/AbstractWorker.cpp @@ -0,0 +1,125 @@ +/* + * Copyright (C) 2009 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" + +#if ENABLE(SHARED_WORKERS) + +#include "AbstractWorker.h" + +#include "Event.h" +#include "EventException.h" +#include "EventNames.h" + +namespace WebCore { + +AbstractWorker::AbstractWorker(ScriptExecutionContext* context) + : ActiveDOMObject(context, this) +{ +} + +AbstractWorker::~AbstractWorker() +{ +} + +void AbstractWorker::addEventListener(const AtomicString& eventType, PassRefPtr<EventListener> eventListener, bool) +{ + EventListenersMap::iterator iter = m_eventListeners.find(eventType); + if (iter == m_eventListeners.end()) { + ListenerVector listeners; + listeners.append(eventListener); + m_eventListeners.add(eventType, listeners); + } else { + ListenerVector& listeners = iter->second; + for (ListenerVector::iterator listenerIter = listeners.begin(); listenerIter != listeners.end(); ++listenerIter) { + if (*listenerIter == eventListener) + return; + } + + listeners.append(eventListener); + m_eventListeners.add(eventType, listeners); + } +} + +void AbstractWorker::removeEventListener(const AtomicString& eventType, EventListener* eventListener, bool) +{ + EventListenersMap::iterator iter = m_eventListeners.find(eventType); + if (iter == m_eventListeners.end()) + return; + + ListenerVector& listeners = iter->second; + for (ListenerVector::const_iterator listenerIter = listeners.begin(); listenerIter != listeners.end(); ++listenerIter) { + if (*listenerIter == eventListener) { + listeners.remove(listenerIter - listeners.begin()); + return; + } + } +} + +bool AbstractWorker::dispatchEvent(PassRefPtr<Event> event, ExceptionCode& ec) +{ + if (!event || event->type().isEmpty()) { + ec = EventException::UNSPECIFIED_EVENT_TYPE_ERR; + return true; + } + + ListenerVector listenersCopy = m_eventListeners.get(event->type()); + for (ListenerVector::const_iterator listenerIter = listenersCopy.begin(); listenerIter != listenersCopy.end(); ++listenerIter) { + event->setTarget(this); + event->setCurrentTarget(this); + listenerIter->get()->handleEvent(event.get(), false); + } + + return !event->defaultPrevented(); +} + +void AbstractWorker::dispatchLoadErrorEvent() +{ + RefPtr<Event> evt = Event::create(eventNames().errorEvent, false, true); + if (m_onErrorListener) { + evt->setTarget(this); + evt->setCurrentTarget(this); + m_onErrorListener->handleEvent(evt.get(), true); + } + + ExceptionCode ec = 0; + dispatchEvent(evt.release(), ec); + ASSERT(!ec); +} + +void AbstractWorker::dispatchScriptErrorEvent(const String&, const String&, int) +{ + //FIXME: Generate an ErrorEvent instead of a simple event + dispatchLoadErrorEvent(); +} + +} // namespace WebCore + +#endif // ENABLE(SHARED_WORKERS) diff --git a/src/3rdparty/webkit/WebCore/workers/AbstractWorker.h b/src/3rdparty/webkit/WebCore/workers/AbstractWorker.h new file mode 100644 index 0000000..89e4258 --- /dev/null +++ b/src/3rdparty/webkit/WebCore/workers/AbstractWorker.h @@ -0,0 +1,86 @@ +/* + * Copyright (C) 2009 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef AbstractWorker_h +#define AbstractWorker_h + +#if ENABLE(SHARED_WORKERS) + +#include "ActiveDOMObject.h" +#include "AtomicStringHash.h" +#include "EventListener.h" +#include "EventTarget.h" +#include <wtf/PassRefPtr.h> +#include <wtf/RefCounted.h> +#include <wtf/RefPtr.h> + +namespace WebCore { + + class ScriptExecutionContext; + + class AbstractWorker : public RefCounted<AbstractWorker>, public ActiveDOMObject, public EventTarget { + public: + // EventTarget APIs + virtual ScriptExecutionContext* scriptExecutionContext() const { return ActiveDOMObject::scriptExecutionContext(); } + + virtual void addEventListener(const AtomicString& eventType, PassRefPtr<EventListener>, bool useCapture); + virtual void removeEventListener(const AtomicString& eventType, EventListener*, bool useCapture); + virtual bool dispatchEvent(PassRefPtr<Event>, ExceptionCode&); + + // Utility routines to generate appropriate error events for loading and script exceptions. + void dispatchLoadErrorEvent(); + void dispatchScriptErrorEvent(const String& errorMessage, const String& sourceURL, int); + + void setOnerror(PassRefPtr<EventListener> eventListener) { m_onErrorListener = eventListener; } + EventListener* onerror() const { return m_onErrorListener.get(); } + typedef Vector<RefPtr<EventListener> > ListenerVector; + typedef HashMap<AtomicString, ListenerVector> EventListenersMap; + EventListenersMap& eventListeners() { return m_eventListeners; } + + using RefCounted<AbstractWorker>::ref; + using RefCounted<AbstractWorker>::deref; + + AbstractWorker(ScriptExecutionContext*); + virtual ~AbstractWorker(); + + private: + + virtual void refEventTarget() { ref(); } + virtual void derefEventTarget() { deref(); } + + RefPtr<EventListener> m_onErrorListener; + EventListenersMap m_eventListeners; + }; + +} // namespace WebCore + +#endif // ENABLE(SHARED_WORKERS) + +#endif // AbstractWorker_h diff --git a/src/3rdparty/webkit/WebCore/workers/AbstractWorker.idl b/src/3rdparty/webkit/WebCore/workers/AbstractWorker.idl new file mode 100644 index 0000000..1234c0d --- /dev/null +++ b/src/3rdparty/webkit/WebCore/workers/AbstractWorker.idl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2009 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +module threads { + + interface [ + Conditional=SHARED_WORKERS, + CustomMarkFunction, + CustomToJS, + GenerateConstructor + ] AbstractWorker { + + attribute EventListener onerror; + + [Custom] void addEventListener(in DOMString type, + in EventListener listener, + in boolean useCapture); + [Custom] void removeEventListener(in DOMString type, + in EventListener listener, + in boolean useCapture); + boolean dispatchEvent(in Event evt) + raises(EventException); + }; + +} diff --git a/src/3rdparty/webkit/WebCore/workers/GenericWorkerTask.h b/src/3rdparty/webkit/WebCore/workers/GenericWorkerTask.h index 96b0e70..d6a9994 100644 --- a/src/3rdparty/webkit/WebCore/workers/GenericWorkerTask.h +++ b/src/3rdparty/webkit/WebCore/workers/GenericWorkerTask.h @@ -36,6 +36,7 @@ #include "CrossThreadCopier.h" #include "ScriptExecutionContext.h" #include <memory> +#include <wtf/PassOwnPtr.h> #include <wtf/PassRefPtr.h> #include <wtf/TypeTraits.h> @@ -58,6 +59,10 @@ namespace WebCore { typedef PassRefPtr<T> ParamType; }; + template<typename T> struct GenericWorkerTaskTraits<PassOwnPtr<T> > { + typedef PassOwnPtr<T> ParamType; + }; + template<typename P1, typename MP1> class GenericWorkerTask1 : public ScriptExecutionContext::Task { public: @@ -323,6 +328,56 @@ namespace WebCore { P6 m_parameter6; P7 m_parameter7; }; + + template<typename P1, typename MP1, typename P2, typename MP2, typename P3, typename MP3, typename P4, typename MP4, typename P5, typename MP5, typename P6, typename MP6, typename P7, typename MP7, typename P8, typename MP8> + class GenericWorkerTask8 : public ScriptExecutionContext::Task { + public: + typedef void (*Method)(ScriptExecutionContext*, MP1, MP2, MP3, MP4, MP5, MP6, MP7, MP8); + typedef GenericWorkerTask8<P1, MP1, P2, MP2, P3, MP3, P4, MP4, P5, MP5, P6, MP6, P7, MP7, P8, MP8> GenericWorkerTask; + typedef typename GenericWorkerTaskTraits<P1>::ParamType Param1; + typedef typename GenericWorkerTaskTraits<P2>::ParamType Param2; + typedef typename GenericWorkerTaskTraits<P3>::ParamType Param3; + typedef typename GenericWorkerTaskTraits<P4>::ParamType Param4; + typedef typename GenericWorkerTaskTraits<P5>::ParamType Param5; + typedef typename GenericWorkerTaskTraits<P6>::ParamType Param6; + typedef typename GenericWorkerTaskTraits<P7>::ParamType Param7; + typedef typename GenericWorkerTaskTraits<P8>::ParamType Param8; + + static PassRefPtr<GenericWorkerTask> create(Method method, Param1 parameter1, Param2 parameter2, Param3 parameter3, Param4 parameter4, Param5 parameter5, Param6 parameter6, Param7 parameter7, Param8 parameter8) + { + return adoptRef(new GenericWorkerTask(method, parameter1, parameter2, parameter3, parameter4, parameter5, parameter6, parameter7, parameter8)); + } + + private: + GenericWorkerTask8(Method method, Param1 parameter1, Param2 parameter2, Param3 parameter3, Param4 parameter4, Param5 parameter5, Param6 parameter6, Param7 parameter7, Param8 parameter8) + : m_method(method) + , m_parameter1(parameter1) + , m_parameter2(parameter2) + , m_parameter3(parameter3) + , m_parameter4(parameter4) + , m_parameter5(parameter5) + , m_parameter6(parameter6) + , m_parameter7(parameter7) + , m_parameter8(parameter8) + { + } + + virtual void performTask(ScriptExecutionContext* context) + { + (*m_method)(context, m_parameter1, m_parameter2, m_parameter3, m_parameter4, m_parameter5, m_parameter6, m_parameter7, m_parameter8); + } + + private: + Method m_method; + P1 m_parameter1; + P2 m_parameter2; + P3 m_parameter3; + P4 m_parameter4; + P5 m_parameter5; + P6 m_parameter6; + P7 m_parameter7; + P8 m_parameter8; + }; template<typename P1, typename MP1> PassRefPtr<ScriptExecutionContext::Task> createCallbackTask( @@ -408,6 +463,21 @@ namespace WebCore { CrossThreadCopier<P7>::copy(parameter7)); } + template<typename P1, typename MP1, typename P2, typename MP2, typename P3, typename MP3, typename P4, typename MP4, typename P5, typename MP5, typename P6, typename MP6, typename P7, typename MP7, typename P8, typename MP8> + PassRefPtr<ScriptExecutionContext::Task> createCallbackTask( + void (*method)(ScriptExecutionContext*, MP1, MP2, MP3, MP4, MP5, MP6, MP7, MP8), + const P1& parameter1, const P2& parameter2, const P3& parameter3, const P4& parameter4, const P5& parameter5, const P6& parameter6, const P7& parameter7, const P8& parameter8) + { + return GenericWorkerTask8<typename CrossThreadCopier<P1>::Type, MP1, typename CrossThreadCopier<P2>::Type, MP2, typename CrossThreadCopier<P3>::Type, MP3, + typename CrossThreadCopier<P4>::Type, MP4, typename CrossThreadCopier<P5>::Type, MP5, typename CrossThreadCopier<P6>::Type, MP6, + typename CrossThreadCopier<P7>::Type, MP7, typename CrossThreadCopier<P8>::Type, MP8>::create( + method, + CrossThreadCopier<P1>::copy(parameter1), CrossThreadCopier<P2>::copy(parameter2), + CrossThreadCopier<P3>::copy(parameter3), CrossThreadCopier<P4>::copy(parameter4), + CrossThreadCopier<P5>::copy(parameter5), CrossThreadCopier<P6>::copy(parameter6), + CrossThreadCopier<P7>::copy(parameter7), CrossThreadCopier<P8>::copy(parameter8)); + } + } // namespace WebCore #endif // ENABLE(WORKERS) diff --git a/src/3rdparty/webkit/WebCore/workers/SharedWorker.cpp b/src/3rdparty/webkit/WebCore/workers/SharedWorker.cpp new file mode 100644 index 0000000..e1d30d3 --- /dev/null +++ b/src/3rdparty/webkit/WebCore/workers/SharedWorker.cpp @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2009 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "config.h" + +#if ENABLE(SHARED_WORKERS) + +#include "SharedWorker.h" + +#include "MessagePort.h" + +namespace WebCore { + +SharedWorker::SharedWorker(const String&, const String&, ScriptExecutionContext* context, ExceptionCode&) + : AbstractWorker(context) +{ + // Placeholder - ultimately we'll look up the worker in the SharedWorkerRepository. +} + +SharedWorker::~SharedWorker() +{ +} + +} // namespace WebCore + +#endif // ENABLE(SHARED_WORKERS) diff --git a/src/3rdparty/webkit/WebCore/workers/SharedWorker.h b/src/3rdparty/webkit/WebCore/workers/SharedWorker.h new file mode 100644 index 0000000..36c7d85 --- /dev/null +++ b/src/3rdparty/webkit/WebCore/workers/SharedWorker.h @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2009 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SharedWorker_h +#define SharedWorker_h + +#include "AbstractWorker.h" + +#include <wtf/PassRefPtr.h> +#include <wtf/RefPtr.h> + + +namespace WebCore { + + class SharedWorker : public AbstractWorker { + public: + static PassRefPtr<SharedWorker> create(const String& url, const String& name, ScriptExecutionContext* context, ExceptionCode& ec) + { + return adoptRef(new SharedWorker(url, name, context, ec)); + } + ~SharedWorker(); + MessagePort* port() const { return m_port.get(); } + + virtual SharedWorker* toSharedWorker() { return this; } + + private: + SharedWorker(const String& url, const String& name, ScriptExecutionContext*, ExceptionCode&); + + RefPtr<MessagePort> m_port; + }; + +} // namespace WebCore + +#endif // SharedWorker_h diff --git a/src/3rdparty/webkit/WebCore/workers/SharedWorker.idl b/src/3rdparty/webkit/WebCore/workers/SharedWorker.idl new file mode 100644 index 0000000..09475f7 --- /dev/null +++ b/src/3rdparty/webkit/WebCore/workers/SharedWorker.idl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2009 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +module threads { + + interface [ + Conditional=SHARED_WORKERS, + CustomMarkFunction, + GenerateNativeConverter, + GenerateToJS + ] SharedWorker : AbstractWorker { + readonly attribute MessagePort port; + }; + +} diff --git a/src/3rdparty/webkit/WebCore/workers/Worker.cpp b/src/3rdparty/webkit/WebCore/workers/Worker.cpp index a810dda..2e03e3d 100644 --- a/src/3rdparty/webkit/WebCore/workers/Worker.cpp +++ b/src/3rdparty/webkit/WebCore/workers/Worker.cpp @@ -77,9 +77,18 @@ Worker::~Worker() m_contextProxy->workerObjectDestroyed(); } -void Worker::postMessage(const String& message) +void Worker::postMessage(const String& message, ExceptionCode& ec) { - m_contextProxy->postMessageToWorkerContext(message); + postMessage(message, 0, ec); +} + +void Worker::postMessage(const String& message, MessagePort* messagePort, ExceptionCode& ec) +{ + // Disentangle the port in preparation for sending it to the remote context. + OwnPtr<MessagePortChannel> channel = messagePort ? messagePort->disentangle(ec) : 0; + if (ec) + return; + m_contextProxy->postMessageToWorkerContext(message, channel.release()); } void Worker::terminate() @@ -180,9 +189,9 @@ bool Worker::dispatchEvent(PassRefPtr<Event> event, ExceptionCode& ec) return !event->defaultPrevented(); } -void Worker::dispatchMessage(const String& message) +void Worker::dispatchMessage(const String& message, PassRefPtr<MessagePort> port) { - RefPtr<Event> evt = MessageEvent::create(message, "", "", 0, 0); + RefPtr<Event> evt = MessageEvent::create(message, "", "", 0, port); if (m_onMessageListener.get()) { evt->setTarget(this); diff --git a/src/3rdparty/webkit/WebCore/workers/Worker.h b/src/3rdparty/webkit/WebCore/workers/Worker.h index bd9e556..1fcc8be 100644 --- a/src/3rdparty/webkit/WebCore/workers/Worker.h +++ b/src/3rdparty/webkit/WebCore/workers/Worker.h @@ -58,11 +58,12 @@ namespace WebCore { virtual Worker* toWorker() { return this; } - void postMessage(const String& message); + void postMessage(const String&, ExceptionCode&); + void postMessage(const String&, MessagePort*, ExceptionCode&); void terminate(); - void dispatchMessage(const String&); + void dispatchMessage(const String&, PassRefPtr<MessagePort>); void dispatchErrorEvent(); virtual bool canSuspend() const; diff --git a/src/3rdparty/webkit/WebCore/workers/Worker.idl b/src/3rdparty/webkit/WebCore/workers/Worker.idl index 2ef9b62..e078e7c 100644 --- a/src/3rdparty/webkit/WebCore/workers/Worker.idl +++ b/src/3rdparty/webkit/WebCore/workers/Worker.idl @@ -30,7 +30,8 @@ module threads { attribute EventListener onerror; attribute EventListener onmessage; - void postMessage(in DOMString message); + void postMessage(in DOMString message, in [Optional] MessagePort messagePort) + raises(DOMException); void terminate(); diff --git a/src/3rdparty/webkit/WebCore/workers/WorkerContext.cpp b/src/3rdparty/webkit/WebCore/workers/WorkerContext.cpp index fd05062..8e9fb97 100644 --- a/src/3rdparty/webkit/WebCore/workers/WorkerContext.cpp +++ b/src/3rdparty/webkit/WebCore/workers/WorkerContext.cpp @@ -130,6 +130,14 @@ bool WorkerContext::hasPendingActivity() const if (iter->first->hasPendingActivity()) return true; } + + // Keep the worker active as long as there is a MessagePort with pending activity or that is remotely entangled. + HashSet<MessagePort*>::const_iterator messagePortsEnd = messagePorts().end(); + for (HashSet<MessagePort*>::const_iterator iter = messagePorts().begin(); iter != messagePortsEnd; ++iter) { + if ((*iter)->hasPendingActivity() || ((*iter)->isEntangled() && !(*iter)->locallyEntangledPort())) + return true; + } + return false; } @@ -138,9 +146,9 @@ void WorkerContext::reportException(const String& errorMessage, int lineNumber, m_thread->workerObjectProxy().postExceptionToWorkerObject(errorMessage, lineNumber, sourceURL); } -void WorkerContext::addMessage(MessageDestination destination, MessageSource source, MessageLevel level, const String& message, unsigned lineNumber, const String& sourceURL) +void WorkerContext::addMessage(MessageDestination destination, MessageSource source, MessageType type, MessageLevel level, const String& message, unsigned lineNumber, const String& sourceURL) { - m_thread->workerObjectProxy().postConsoleMessageToWorkerObject(destination, source, level, message, lineNumber, sourceURL); + m_thread->workerObjectProxy().postConsoleMessageToWorkerObject(destination, source, type, level, message, lineNumber, sourceURL); } void WorkerContext::resourceRetrievedByXMLHttpRequest(unsigned long, const ScriptString&) @@ -155,12 +163,20 @@ void WorkerContext::scriptImported(unsigned long, const String&) notImplemented(); } -void WorkerContext::postMessage(const String& message) +void WorkerContext::postMessage(const String& message, ExceptionCode& ec) +{ + postMessage(message, 0, ec); +} + +void WorkerContext::postMessage(const String& message, MessagePort* port, ExceptionCode& ec) { if (m_closing) return; - - m_thread->workerObjectProxy().postMessageToWorkerObject(message); + // Disentangle the port in preparation for sending it to the remote context. + OwnPtr<MessagePortChannel> channel = port ? port->disentangle(ec) : 0; + if (ec) + return; + m_thread->workerObjectProxy().postMessageToWorkerObject(message, channel.release()); } void WorkerContext::addEventListener(const AtomicString& eventType, PassRefPtr<EventListener> eventListener, bool) @@ -239,11 +255,11 @@ void WorkerContext::clearInterval(int timeoutId) DOMTimer::removeById(scriptExecutionContext(), timeoutId); } -void WorkerContext::dispatchMessage(const String& message) +void WorkerContext::dispatchMessage(const String& message, PassRefPtr<MessagePort> port) { // Since close() stops the thread event loop, this should not ever get called while closing. ASSERT(!m_closing); - RefPtr<Event> evt = MessageEvent::create(message, "", "", 0, 0); + RefPtr<Event> evt = MessageEvent::create(message, "", "", 0, port); if (m_onmessageListener.get()) { evt->setTarget(this); @@ -283,7 +299,7 @@ void WorkerContext::importScripts(const Vector<String>& urls, const String& call } scriptExecutionContext()->scriptImported(scriptLoader.identifier(), scriptLoader.script()); - scriptExecutionContext()->addMessage(InspectorControllerDestination, JSMessageSource, LogMessageLevel, "Worker script imported: \"" + *it + "\".", callerLine, callerURL); + scriptExecutionContext()->addMessage(InspectorControllerDestination, JSMessageSource, LogMessageType, LogMessageLevel, "Worker script imported: \"" + *it + "\".", callerLine, callerURL); ScriptValue exception; m_script->evaluate(ScriptSourceCode(scriptLoader.script(), *it), &exception); diff --git a/src/3rdparty/webkit/WebCore/workers/WorkerContext.h b/src/3rdparty/webkit/WebCore/workers/WorkerContext.h index ce782f8..16f43fd 100644 --- a/src/3rdparty/webkit/WebCore/workers/WorkerContext.h +++ b/src/3rdparty/webkit/WebCore/workers/WorkerContext.h @@ -74,13 +74,12 @@ namespace WebCore { bool hasPendingActivity() const; virtual void reportException(const String& errorMessage, int lineNumber, const String& sourceURL); - virtual void addMessage(MessageDestination, MessageSource, MessageLevel, const String& message, unsigned lineNumber, const String& sourceURL); + virtual void addMessage(MessageDestination, MessageSource, MessageType, MessageLevel, const String& message, unsigned lineNumber, const String& sourceURL); virtual void resourceRetrievedByXMLHttpRequest(unsigned long identifier, const ScriptString& sourceString); virtual void scriptImported(unsigned long identifier, const String& sourceString); virtual void postTask(PassRefPtr<Task>); // Executes the task on context's thread asynchronously. - // WorkerGlobalScope WorkerContext* self() { return this; } WorkerLocation* location() const; @@ -90,9 +89,9 @@ namespace WebCore { void importScripts(const Vector<String>& urls, const String& callerURL, int callerLine, ExceptionCode&); WorkerNavigator* navigator() const; - // DedicatedWorkerGlobalScope - void postMessage(const String& message); + void postMessage(const String&, ExceptionCode&); + void postMessage(const String&, MessagePort*, ExceptionCode&); void setOnmessage(PassRefPtr<EventListener> eventListener) { m_onmessageListener = eventListener; } EventListener* onmessage() const { return m_onmessageListener.get(); } @@ -111,7 +110,7 @@ namespace WebCore { typedef HashMap<AtomicString, ListenerVector> EventListenersMap; EventListenersMap& eventListeners() { return m_eventListeners; } - void dispatchMessage(const String&); + void dispatchMessage(const String&, PassRefPtr<MessagePort>); // These methods are used for GC marking. See JSWorkerContext::mark() in // JSWorkerContextCustom.cpp. diff --git a/src/3rdparty/webkit/WebCore/workers/WorkerContext.idl b/src/3rdparty/webkit/WebCore/workers/WorkerContext.idl index 9d5aa79..709410a 100644 --- a/src/3rdparty/webkit/WebCore/workers/WorkerContext.idl +++ b/src/3rdparty/webkit/WebCore/workers/WorkerContext.idl @@ -41,7 +41,6 @@ module threads { #endif attribute [Replaceable] WorkerLocation location; void close(); - // attribute EventListener onclose; // attribute EventListener onerror; // WorkerUtils @@ -52,10 +51,10 @@ module threads { // DedicatedWorkerGlobalScope - void postMessage(in DOMString message); + void postMessage(in DOMString message, in [Optional] MessagePort messagePort) + raises(DOMException); attribute EventListener onmessage; - // Timers [Custom] long setTimeout(in TimeoutHandler handler, in long timeout); // [Custom] long setTimeout(in DOMString code, in long timeout); @@ -80,6 +79,9 @@ module threads { attribute MessageEventConstructor MessageEvent; attribute WorkerLocationConstructor WorkerLocation; +#if ENABLE_CHANNEL_MESSAGING + attribute [JSCCustomGetter] MessageChannelConstructor MessageChannel; +#endif attribute [JSCCustomGetter] XMLHttpRequestConstructor XMLHttpRequest; }; diff --git a/src/3rdparty/webkit/WebCore/workers/WorkerContextProxy.h b/src/3rdparty/webkit/WebCore/workers/WorkerContextProxy.h index c8f5761..f42527e 100644 --- a/src/3rdparty/webkit/WebCore/workers/WorkerContextProxy.h +++ b/src/3rdparty/webkit/WebCore/workers/WorkerContextProxy.h @@ -33,9 +33,12 @@ #if ENABLE(WORKERS) +#include <wtf/PassOwnPtr.h> + namespace WebCore { class KURL; + class MessagePortChannel; class String; class Worker; @@ -50,7 +53,7 @@ namespace WebCore { virtual void terminateWorkerContext() = 0; - virtual void postMessageToWorkerContext(const String&) = 0; + virtual void postMessageToWorkerContext(const String&, PassOwnPtr<MessagePortChannel>) = 0; virtual bool hasPendingActivity() const = 0; diff --git a/src/3rdparty/webkit/WebCore/workers/WorkerLoaderProxy.h b/src/3rdparty/webkit/WebCore/workers/WorkerLoaderProxy.h index b51f480..ac7cda1 100644 --- a/src/3rdparty/webkit/WebCore/workers/WorkerLoaderProxy.h +++ b/src/3rdparty/webkit/WebCore/workers/WorkerLoaderProxy.h @@ -33,11 +33,11 @@ #if ENABLE(WORKERS) +#include "ScriptExecutionContext.h" #include <wtf/PassRefPtr.h> namespace WebCore { - class ScriptExecutionContext::Task; class String; // A proxy to talk to the loader context. Normally, the document on the main thread diff --git a/src/3rdparty/webkit/WebCore/workers/WorkerMessagingProxy.cpp b/src/3rdparty/webkit/WebCore/workers/WorkerMessagingProxy.cpp index a6d0d5d..b6e1642 100644 --- a/src/3rdparty/webkit/WebCore/workers/WorkerMessagingProxy.cpp +++ b/src/3rdparty/webkit/WebCore/workers/WorkerMessagingProxy.cpp @@ -44,14 +44,15 @@ namespace WebCore { class MessageWorkerContextTask : public ScriptExecutionContext::Task { public: - static PassRefPtr<MessageWorkerContextTask> create(const String& message) + static PassRefPtr<MessageWorkerContextTask> create(const String& message, PassOwnPtr<MessagePortChannel> channel) { - return adoptRef(new MessageWorkerContextTask(message)); + return adoptRef(new MessageWorkerContextTask(message, channel)); } private: - MessageWorkerContextTask(const String& message) + MessageWorkerContextTask(const String& message, PassOwnPtr<MessagePortChannel> channel) : m_message(message.copy()) + , m_channel(channel) { } @@ -59,41 +60,52 @@ private: { ASSERT(scriptContext->isWorkerContext()); WorkerContext* context = static_cast<WorkerContext*>(scriptContext); - - context->dispatchMessage(m_message); - + RefPtr<MessagePort> port; + if (m_channel) { + port = MessagePort::create(*scriptContext); + port->entangle(m_channel.release()); + } + context->dispatchMessage(m_message, port.release()); context->thread()->workerObjectProxy().confirmMessageFromWorkerObject(context->hasPendingActivity()); } private: String m_message; + OwnPtr<MessagePortChannel> m_channel; }; class MessageWorkerTask : public ScriptExecutionContext::Task { public: - static PassRefPtr<MessageWorkerTask> create(const String& message, WorkerMessagingProxy* messagingProxy) + static PassRefPtr<MessageWorkerTask> create(const String& message, PassOwnPtr<MessagePortChannel> channel, WorkerMessagingProxy* messagingProxy) { - return adoptRef(new MessageWorkerTask(message, messagingProxy)); + return adoptRef(new MessageWorkerTask(message, channel, messagingProxy)); } private: - MessageWorkerTask(const String& message, WorkerMessagingProxy* messagingProxy) + MessageWorkerTask(const String& message, PassOwnPtr<MessagePortChannel> channel, WorkerMessagingProxy* messagingProxy) : m_message(message.copy()) + , m_channel(channel) , m_messagingProxy(messagingProxy) { } - virtual void performTask(ScriptExecutionContext*) + virtual void performTask(ScriptExecutionContext* scriptContext) { Worker* workerObject = m_messagingProxy->workerObject(); if (!workerObject || m_messagingProxy->askedToTerminate()) return; - workerObject->dispatchMessage(m_message); + RefPtr<MessagePort> port; + if (m_channel) { + port = MessagePort::create(*scriptContext); + port->entangle(m_channel.release()); + } + workerObject->dispatchMessage(m_message, port.release()); } private: String m_message; + OwnPtr<MessagePortChannel> m_channel; WorkerMessagingProxy* m_messagingProxy; }; @@ -205,21 +217,21 @@ void WorkerMessagingProxy::startWorkerContext(const KURL& scriptURL, const Strin thread->start(); } -void WorkerMessagingProxy::postMessageToWorkerObject(const String& message) +void WorkerMessagingProxy::postMessageToWorkerObject(const String& message, PassOwnPtr<MessagePortChannel> channel) { - m_scriptExecutionContext->postTask(MessageWorkerTask::create(message, this)); + m_scriptExecutionContext->postTask(MessageWorkerTask::create(message, channel, this)); } -void WorkerMessagingProxy::postMessageToWorkerContext(const String& message) +void WorkerMessagingProxy::postMessageToWorkerContext(const String& message, PassOwnPtr<MessagePortChannel> channel) { if (m_askedToTerminate) return; if (m_workerThread) { ++m_unconfirmedMessageCount; - m_workerThread->runLoop().postTask(MessageWorkerContextTask::create(message)); + m_workerThread->runLoop().postTask(MessageWorkerContextTask::create(message, channel)); } else - m_queuedEarlyTasks.append(MessageWorkerContextTask::create(message)); + m_queuedEarlyTasks.append(MessageWorkerContextTask::create(message, channel)); } void WorkerMessagingProxy::postTaskForModeToWorkerContext(PassRefPtr<ScriptExecutionContext::Task> task, const String& mode) @@ -243,16 +255,16 @@ void WorkerMessagingProxy::postExceptionToWorkerObject(const String& errorMessag m_scriptExecutionContext->postTask(WorkerExceptionTask::create(errorMessage, lineNumber, sourceURL, this)); } -static void postConsoleMessageTask(ScriptExecutionContext* context, WorkerMessagingProxy* messagingProxy, MessageDestination destination, MessageSource source, MessageLevel level, const String& message, unsigned lineNumber, const String& sourceURL) +static void postConsoleMessageTask(ScriptExecutionContext* context, WorkerMessagingProxy* messagingProxy, MessageDestination destination, MessageSource source, MessageType type, MessageLevel level, const String& message, unsigned lineNumber, const String& sourceURL) { if (messagingProxy->askedToTerminate()) return; - context->addMessage(destination, source, level, message, lineNumber, sourceURL); + context->addMessage(destination, source, type, level, message, lineNumber, sourceURL); } -void WorkerMessagingProxy::postConsoleMessageToWorkerObject(MessageDestination destination, MessageSource source, MessageLevel level, const String& message, int lineNumber, const String& sourceURL) +void WorkerMessagingProxy::postConsoleMessageToWorkerObject(MessageDestination destination, MessageSource source, MessageType type, MessageLevel level, const String& message, int lineNumber, const String& sourceURL) { - m_scriptExecutionContext->postTask(createCallbackTask(&postConsoleMessageTask, this, destination, source, level, message, lineNumber, sourceURL)); + m_scriptExecutionContext->postTask(createCallbackTask(&postConsoleMessageTask, this, destination, source, type, level, message, lineNumber, sourceURL)); } void WorkerMessagingProxy::workerThreadCreated(PassRefPtr<WorkerThread> workerThread) diff --git a/src/3rdparty/webkit/WebCore/workers/WorkerMessagingProxy.h b/src/3rdparty/webkit/WebCore/workers/WorkerMessagingProxy.h index 7fc9797..f9e1cd4 100644 --- a/src/3rdparty/webkit/WebCore/workers/WorkerMessagingProxy.h +++ b/src/3rdparty/webkit/WebCore/workers/WorkerMessagingProxy.h @@ -34,12 +34,14 @@ #include "WorkerLoaderProxy.h" #include "WorkerObjectProxy.h" #include <wtf/Noncopyable.h> +#include <wtf/PassOwnPtr.h> #include <wtf/PassRefPtr.h> #include <wtf/RefPtr.h> #include <wtf/Vector.h> namespace WebCore { + class MessagePortChannel; class ScriptExecutionContext; class String; class Worker; @@ -53,15 +55,15 @@ namespace WebCore { // (Only use these methods in the worker object thread.) virtual void startWorkerContext(const KURL& scriptURL, const String& userAgent, const String& sourceCode); virtual void terminateWorkerContext(); - virtual void postMessageToWorkerContext(const String& message); + virtual void postMessageToWorkerContext(const String&, PassOwnPtr<MessagePortChannel>); virtual bool hasPendingActivity() const; virtual void workerObjectDestroyed(); // Implementations of WorkerObjectProxy. // (Only use these methods in the worker context thread.) - virtual void postMessageToWorkerObject(const String& message); + virtual void postMessageToWorkerObject(const String&, PassOwnPtr<MessagePortChannel>); virtual void postExceptionToWorkerObject(const String& errorMessage, int lineNumber, const String& sourceURL); - virtual void postConsoleMessageToWorkerObject(MessageDestination, MessageSource, MessageLevel, const String& message, int lineNumber, const String& sourceURL); + virtual void postConsoleMessageToWorkerObject(MessageDestination, MessageSource, MessageType, MessageLevel, const String& message, int lineNumber, const String& sourceURL); virtual void confirmMessageFromWorkerObject(bool hasPendingActivity); virtual void reportPendingActivity(bool hasPendingActivity); virtual void workerContextDestroyed(); diff --git a/src/3rdparty/webkit/WebCore/workers/WorkerObjectProxy.h b/src/3rdparty/webkit/WebCore/workers/WorkerObjectProxy.h index 3b86028..c5f4456 100644 --- a/src/3rdparty/webkit/WebCore/workers/WorkerObjectProxy.h +++ b/src/3rdparty/webkit/WebCore/workers/WorkerObjectProxy.h @@ -35,8 +35,11 @@ #include "Console.h" +#include <wtf/PassOwnPtr.h> + namespace WebCore { + class MessagePortChannel; class String; // A proxy to talk to the worker object. @@ -44,11 +47,11 @@ namespace WebCore { public: virtual ~WorkerObjectProxy() {} - virtual void postMessageToWorkerObject(const String&) = 0; + virtual void postMessageToWorkerObject(const String&, PassOwnPtr<MessagePortChannel>) = 0; virtual void postExceptionToWorkerObject(const String& errorMessage, int lineNumber, const String& sourceURL) = 0; - virtual void postConsoleMessageToWorkerObject(MessageDestination, MessageSource, MessageLevel, const String& message, int lineNumber, const String& sourceURL) = 0; + virtual void postConsoleMessageToWorkerObject(MessageDestination, MessageSource, MessageType, MessageLevel, const String& message, int lineNumber, const String& sourceURL) = 0; virtual void confirmMessageFromWorkerObject(bool hasPendingActivity) = 0; diff --git a/src/3rdparty/webkit/WebCore/workers/WorkerRunLoop.cpp b/src/3rdparty/webkit/WebCore/workers/WorkerRunLoop.cpp index 1e5e510..b6f6487 100644 --- a/src/3rdparty/webkit/WebCore/workers/WorkerRunLoop.cpp +++ b/src/3rdparty/webkit/WebCore/workers/WorkerRunLoop.cpp @@ -125,8 +125,7 @@ String WorkerRunLoop::defaultMode() return String(); } -class RunLoopSetup : Noncopyable -{ +class RunLoopSetup : Noncopyable { public: RunLoopSetup(WorkerRunLoop& runLoop) : m_runLoop(runLoop) diff --git a/src/3rdparty/webkit/WebCore/xml/XMLHttpRequest.cpp b/src/3rdparty/webkit/WebCore/xml/XMLHttpRequest.cpp index 59cacbd..5e20252 100644 --- a/src/3rdparty/webkit/WebCore/xml/XMLHttpRequest.cpp +++ b/src/3rdparty/webkit/WebCore/xml/XMLHttpRequest.cpp @@ -22,6 +22,7 @@ #include "config.h" #include "XMLHttpRequest.h" +#include "Cache.h" #include "CString.h" #include "CrossOriginAccessControl.h" #include "CrossOriginPreflightResultCache.h" @@ -145,6 +146,7 @@ XMLHttpRequest::XMLHttpRequest(ScriptExecutionContext* context) , m_uploadComplete(false) , m_sameOriginRequest(true) , m_inPreflight(false) + , m_didTellLoaderAboutRequest(false) , m_receivedLength(0) , m_lastSendLineNumber(0) , m_exceptionCode(0) @@ -154,6 +156,10 @@ XMLHttpRequest::XMLHttpRequest(ScriptExecutionContext* context) XMLHttpRequest::~XMLHttpRequest() { + if (m_didTellLoaderAboutRequest) { + cache()->loader()->nonCacheRequestComplete(m_url); + m_didTellLoaderAboutRequest = false; + } if (m_upload) m_upload->disconnectXMLHttpRequest(); } @@ -681,6 +687,16 @@ void XMLHttpRequest::loadRequestAsynchronously(ResourceRequest& request) // a request is in progress because we need to keep the listeners alive, // and they are referenced by the JavaScript wrapper. setPendingActivity(this); + + // For now we should only balance the nonCached request count for main-thread XHRs and not + // Worker XHRs, as the Cache is not thread-safe. + // This will become irrelevant after https://bugs.webkit.org/show_bug.cgi?id=27165 is resolved. + if (!scriptExecutionContext()->isWorkerContext()) { + ASSERT(isMainThread()); + ASSERT(!m_didTellLoaderAboutRequest); + cache()->loader()->nonCacheRequestInFlight(m_url); + m_didTellLoaderAboutRequest = true; + } } } @@ -788,9 +804,9 @@ void XMLHttpRequest::dropProtection() // can't be recouped until the load is done, so only // report the extra cost at that point. - if (JSDOMGlobalObject* globalObject = toJSDOMGlobalObject(scriptExecutionContext())) - if (DOMObject* wrapper = getCachedDOMObjectWrapper(*globalObject->globalData(), this)) - JSC::Heap::heap(wrapper)->reportExtraMemoryCost(m_responseText.size() * 2); + if (JSDOMGlobalObject* globalObject = toJSDOMGlobalObject(scriptExecutionContext())) + if (DOMObject* wrapper = getCachedDOMObjectWrapper(*globalObject->globalData(), this)) + JSC::Heap::heap(wrapper)->reportExtraMemoryCost(m_responseText.size() * 2); #endif unsetPendingActivity(this); @@ -807,7 +823,7 @@ static void reportUnsafeUsage(ScriptExecutionContext* context, const String& mes return; // FIXME: It's not good to report the bad usage without indicating what source line it came from. // We should pass additional parameters so we can tell the console where the mistake occurred. - context->addMessage(ConsoleDestination, JSMessageSource, ErrorMessageLevel, message, 1, String()); + context->addMessage(ConsoleDestination, JSMessageSource, LogMessageType, ErrorMessageLevel, message, 1, String()); } void XMLHttpRequest::setRequestHeader(const AtomicString& name, const String& value, ExceptionCode& ec) @@ -961,6 +977,11 @@ String XMLHttpRequest::statusText(ExceptionCode& ec) const void XMLHttpRequest::didFail(const ResourceError& error) { + if (m_didTellLoaderAboutRequest) { + cache()->loader()->nonCacheRequestComplete(m_url); + m_didTellLoaderAboutRequest = false; + } + // If we are already in an error state, for instance we called abort(), bail out early. if (m_error) return; @@ -982,6 +1003,11 @@ void XMLHttpRequest::didFailRedirectCheck() void XMLHttpRequest::didFinishLoading(unsigned long identifier) { + if (m_didTellLoaderAboutRequest) { + cache()->loader()->nonCacheRequestComplete(m_url); + m_didTellLoaderAboutRequest = false; + } + if (m_error) return; @@ -997,7 +1023,7 @@ void XMLHttpRequest::didFinishLoading(unsigned long identifier) m_responseText += m_decoder->flush(); scriptExecutionContext()->resourceRetrievedByXMLHttpRequest(identifier, m_responseText); - scriptExecutionContext()->addMessage(InspectorControllerDestination, JSMessageSource, LogMessageLevel, "XHR finished loading: \"" + m_url + "\".", m_lastSendLineNumber, m_lastSendURL); + scriptExecutionContext()->addMessage(InspectorControllerDestination, JSMessageSource, LogMessageType, LogMessageLevel, "XHR finished loading: \"" + m_url + "\".", m_lastSendLineNumber, m_lastSendURL); bool hadLoader = m_loader; m_loader = 0; diff --git a/src/3rdparty/webkit/WebCore/xml/XMLHttpRequest.h b/src/3rdparty/webkit/WebCore/xml/XMLHttpRequest.h index 6955c11..d581d3d 100644 --- a/src/3rdparty/webkit/WebCore/xml/XMLHttpRequest.h +++ b/src/3rdparty/webkit/WebCore/xml/XMLHttpRequest.h @@ -225,6 +225,7 @@ private: bool m_sameOriginRequest; bool m_allowAccess; bool m_inPreflight; + bool m_didTellLoaderAboutRequest; // Used for onprogress tracking long long m_receivedLength; diff --git a/src/3rdparty/webkit/WebCore/xml/XPathFunctions.cpp b/src/3rdparty/webkit/WebCore/xml/XPathFunctions.cpp index 1f1d985..da39443 100644 --- a/src/3rdparty/webkit/WebCore/xml/XPathFunctions.cpp +++ b/src/3rdparty/webkit/WebCore/xml/XPathFunctions.cpp @@ -667,12 +667,12 @@ Value FunRound::evaluate() const return round(arg(0)->evaluate().toNumber()); } -struct FunctionMapping { - const char *name; - FunctionRec function; -}; static void createFunctionMap() { + struct FunctionMapping { + const char *name; + FunctionRec function; + }; static const FunctionMapping functions[] = { { "boolean", { &createFunBoolean, 1 } }, { "ceiling", { &createFunCeiling, 1 } }, diff --git a/src/3rdparty/webkit/WebCore/xml/XPathPath.h b/src/3rdparty/webkit/WebCore/xml/XPathPath.h index dc77971..7dd17d9 100644 --- a/src/3rdparty/webkit/WebCore/xml/XPathPath.h +++ b/src/3rdparty/webkit/WebCore/xml/XPathPath.h @@ -72,8 +72,7 @@ namespace WebCore { bool m_absolute; }; - class Path : public Expression - { + class Path : public Expression { public: Path(Filter*, LocationPath*); virtual ~Path(); diff --git a/src/3rdparty/webkit/WebCore/xml/XSLTProcessor.cpp b/src/3rdparty/webkit/WebCore/xml/XSLTProcessor.cpp index 3865124..a26fe77 100644 --- a/src/3rdparty/webkit/WebCore/xml/XSLTProcessor.cpp +++ b/src/3rdparty/webkit/WebCore/xml/XSLTProcessor.cpp @@ -99,7 +99,7 @@ void XSLTProcessor::parseErrorFunc(void* userData, xmlError* error) break; } - console->addMessage(XMLMessageSource, level, error->message, error->line, error->file); + console->addMessage(XMLMessageSource, LogMessageType, level, error->message, error->line, error->file); } // FIXME: There seems to be no way to control the ctxt pointer for loading here, thus we have globals. diff --git a/src/3rdparty/webkit/WebKit.pri b/src/3rdparty/webkit/WebKit.pri index 73a5e5c..73288ab 100644 --- a/src/3rdparty/webkit/WebKit.pri +++ b/src/3rdparty/webkit/WebKit.pri @@ -21,7 +21,11 @@ building-libs { LIBS += -framework QtWebKit QMAKE_FRAMEWORKPATH = $$OUTPUT_DIR/lib $$QMAKE_FRAMEWORKPATH } else { - LIBS += -lQtWebKit + win32-*|wince* { + LIBS += -lQtWebKit$${QT_MAJOR_VERSION} + } else { + LIBS += -lQtWebKit + } } } DEPENDPATH += $$PWD/WebKit/qt/Api diff --git a/src/3rdparty/webkit/WebKit/ChangeLog b/src/3rdparty/webkit/WebKit/ChangeLog index f07a75c..cabdf46 100644 --- a/src/3rdparty/webkit/WebKit/ChangeLog +++ b/src/3rdparty/webkit/WebKit/ChangeLog @@ -1,3 +1,42 @@ +2009-07-10 Adam Roben <aroben@apple.com> + + Sort all our Xcode projects + + Accomplished using sort-Xcode-project-file. + + Requested by Dave Kilzer. + + * WebKit.xcodeproj/project.pbxproj: + +2009-07-02 Adam Roben <aroben@apple.com> + + Fix warnings from update-webkit-localizable-strings + + Rubber-stamped by Eric Carlson. + + * English.lproj/Localizable.strings: Updated. + +2009-07-02 Adam Roben <aroben@apple.com> + + Update StringsNotToBeLocalized.txt for (not so) recent changes + + Bug 26926: StringsNotToBeLocalized.txt is out-of-date + <https://bugs.webkit.org/show_bug.cgi?id=26926> + + Reviewed by John Sullivan. + + * StringsNotToBeLocalized.txt: + +2009-07-02 Pierre d'Herbemont <pdherbemont@apple.com> + + Reviewed by Simon Fraser. + + <rdar://problem/6518119> + + Add localized strings for media controller status messages. + + * English.lproj/Localizable.strings: Localized text. + 2009-06-08 Dan Bernstein <mitz@apple.com> Rubber-stamped by Mark Rowe. diff --git a/src/3rdparty/webkit/WebKit/StringsNotToBeLocalized.txt b/src/3rdparty/webkit/WebKit/StringsNotToBeLocalized.txt index 003de11..7e593ca 100644 --- a/src/3rdparty/webkit/WebKit/StringsNotToBeLocalized.txt +++ b/src/3rdparty/webkit/WebKit/StringsNotToBeLocalized.txt @@ -402,7 +402,6 @@ "WebViewDidChangeTypingStyleNotification" "WebViewDidEndEditingNotification" "WebViewWindowClass" -"WhatsNewPanel" "Windows %d.%d" "Windows 95" "Windows 98" @@ -465,7 +464,6 @@ "com.adobe.dreamweaver-9.0" "com.alientechnology.Proteus" "com.app4mac.KidsBrowsercom.app4mac.wKiosk" -"com.apple." "com.apple.Aperture" "com.apple.AppKit" "com.apple.Automator" @@ -477,6 +475,7 @@ "com.apple.JavaAppletPlugin" "com.apple.JavaPluginCocoa" "com.apple.KeyboardUIModeDidChange" +"com.apple.Mail" "com.apple.QuickTime Plugin.plugin" "com.apple.Safari" "com.apple.WebCore" @@ -496,7 +495,9 @@ "com.barebones.textwrangler" "com.barebones.yojimbo" "com.culturedcode.xyle" +"com.e-frontier.shade10" "com.equinux.iSale4" +"com.equinux.iSale5" "com.freeverse.bumpercar" "com.growl.growlframework" "com.intrarts.PandoraMan" @@ -539,7 +540,6 @@ "https" "https:" "i" -"iLifeWelcomePanel" "icon.db" "image.pict" "image.png" @@ -690,6 +690,8 @@ WebKit/mac/WebCoreSupport/WebEditorClient.mm:"Enter" WebKit/mac/WebCoreSupport/WebEditorClient.mm:"Up" WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm:"height" WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm:"width" +WebKit/mac/WebCoreSupport/WebInspectorClient.mm:"Menlo" +WebKit/mac/WebCoreSupport/WebInspectorClient.mm:"Monaco" WebKit/mac/WebCoreSupport/WebInspectorClient.mm:"Web Inspector 2" WebKit/mac/WebCoreSupport/WebInspectorClient.mm:"inspector" WebKit/mac/WebView/WebHTMLView.mm:"'%@'" @@ -742,6 +744,7 @@ WebKit/win/ProgIDMacros.h:"WebKit." WebKit/win/WebCache.cpp:"images" WebKit/win/WebCache.cpp:"scripts" WebKit/win/WebCache.cpp:"style sheets" +WebKit/win/WebCoreSupport/WebInspectorClient.cpp:"Courier New" WebKit/win/WebCoreSupport/WebInspectorClient.cpp:"Web Inspector " WebKit/win/WebCoreSupport/WebInspectorClient.cpp:"Web Inspector" WebKit/win/WebCoreSupport/WebInspectorClient.cpp:"inspector" diff --git a/src/3rdparty/webkit/WebKit/qt/Api/headers.pri b/src/3rdparty/webkit/WebKit/qt/Api/headers.pri index e4bb618..d92eb1c 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/headers.pri +++ b/src/3rdparty/webkit/WebKit/qt/Api/headers.pri @@ -6,4 +6,6 @@ WEBKIT_API_HEADERS = $$PWD/qwebframe.h \ $$PWD/qwebhistoryinterface.h \ $$PWD/qwebdatabase.h \ $$PWD/qwebsecurityorigin.h \ - $$PWD/qwebelement.h + $$PWD/qwebelement.h \ + $$PWD/qwebpluginfactory.h \ + $$PWD/qwebhistory.h diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebdatabase.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebdatabase.cpp index 2db9cd0..2b25f95 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/qwebdatabase.cpp +++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebdatabase.cpp @@ -160,6 +160,20 @@ void QWebDatabase::removeDatabase(const QWebDatabase &db) } /*! + \since 4.6 + + Deletes all web databases in the configured offline storage path. + + \sa QWebSettings::setOfflineStoragePath() +*/ +void QWebDatabase::removeAllDatabases() +{ +#if ENABLE(DATABASE) + DatabaseTracker::tracker().deleteAllDatabases(); +#endif +} + +/*! Destroys the web database object. The data within this database is \b not destroyed. */ QWebDatabase::~QWebDatabase() diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebdatabase.h b/src/3rdparty/webkit/WebKit/qt/Api/qwebdatabase.h index 4e832bb..5b4f704 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/qwebdatabase.h +++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebdatabase.h @@ -46,6 +46,7 @@ public: QWebSecurityOrigin origin() const; static void removeDatabase(const QWebDatabase &db); + static void removeAllDatabases(); private: QWebDatabase(QWebDatabasePrivate* priv); diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebframe.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebframe.cpp index 381251d..29d380d 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/qwebframe.cpp +++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebframe.cpp @@ -20,73 +20,71 @@ #include "config.h" #include "qwebframe.h" -#include "qwebpage.h" -#include "qwebpage_p.h" -#include "qwebframe_p.h" -#include "qwebsecurityorigin.h" -#include "qwebsecurityorigin_p.h" -#include "qwebelement.h" +#include "CallFrame.h" +#include "Document.h" #include "DocumentLoader.h" +#include "DragData.h" +#include "Element.h" #include "FocusController.h" -#include "FrameLoaderClientQt.h" #include "Frame.h" +#include "FrameLoaderClientQt.h" #include "FrameTree.h" #include "FrameView.h" +#include "GCController.h" +#include "GraphicsContext.h" +#include "HTMLMetaElement.h" +#include "HitTestResult.h" #include "IconDatabase.h" #include "InspectorController.h" +#include "JSDOMBinding.h" +#include "JSDOMWindowBase.h" +#include "JSLock.h" +#include "JSObject.h" +#include "NodeList.h" #include "Page.h" +#include "PlatformMouseEvent.h" +#include "PlatformWheelEvent.h" +#include "PrintContext.h" #include "PutPropertySlot.h" -#include "ResourceRequest.h" +#include "RenderTreeAsText.h" #include "RenderView.h" -#include "SelectionController.h" +#include "ResourceRequest.h" +#include "ScriptController.h" +#include "ScriptSourceCode.h" +#include "ScriptValue.h" #include "Scrollbar.h" -#include "PrintContext.h" +#include "SelectionController.h" #include "SubstituteData.h" - -#include "markup.h" #include "htmlediting.h" -#include "RenderTreeAsText.h" -#include "Element.h" -#include "Document.h" -#include "DragData.h" -#include "RenderView.h" -#include "GraphicsContext.h" -#include "PlatformMouseEvent.h" -#include "PlatformWheelEvent.h" -#include "GraphicsContext.h" -#include "HitTestResult.h" - -#include "CallFrame.h" -#include "JSDOMBinding.h" -#include "JSDOMWindow.h" -#include "JSLock.h" -#include "JSObject.h" +#include "markup.h" #include "qt_instance.h" #include "qt_runtime.h" +#include "qwebelement.h" +#include "qwebframe_p.h" +#include "qwebpage.h" +#include "qwebpage_p.h" +#include "qwebsecurityorigin.h" +#include "qwebsecurityorigin_p.h" #include "runtime.h" #include "runtime_object.h" #include "runtime_root.h" -#include "ScriptController.h" -#include "ScriptSourceCode.h" -#include "ScriptValue.h" - #include "wtf/HashMap.h" - +#include <QMultiMap> #include <qdebug.h> #include <qevent.h> #include <qfileinfo.h> #include <qpainter.h> -#include <QMultiMap> +#include <qprinter.h> +#include <qregion.h> + +#if QT_VERSION < 0x040400 +#include "qwebnetworkinterface.h" +#endif + #if QT_VERSION >= 0x040400 #include <qnetworkrequest.h> -#else -#include "qwebnetworkinterface.h" #endif -#include <qregion.h> -#include <qprinter.h> -#include "HTMLMetaElement.h" -#include "NodeList.h" using namespace WebCore; @@ -166,27 +164,56 @@ int QWEBKIT_EXPORT qt_drt_numberOfActiveAnimations(QWebFrame *qframe) return controller->numberOfActiveAnimations(); } -void QWebFramePrivate::init(QWebFrame *qframe, WebCore::Page *webcorePage, QWebFrameData *frameData) +void QWEBKIT_EXPORT qt_drt_clearFrameName(QWebFrame* qFrame) { - q = qframe; + Frame* frame = QWebFramePrivate::core(qFrame); + frame->tree()->clearName(); +} - allowsScrolling = frameData->allowsScrolling; - marginWidth = frameData->marginWidth; - marginHeight = frameData->marginHeight; +int QWEBKIT_EXPORT qt_drt_javaScriptObjectsCount() +{ + return JSDOMWindowBase::commonJSGlobalData()->heap.globalObjectCount(); +} + +void QWEBKIT_EXPORT qt_drt_garbageCollector_collect() +{ + gcController().garbageCollectNow(); +} +void QWEBKIT_EXPORT qt_drt_garbageCollector_collectOnAlternateThread(bool waitUntilDone) +{ + gcController().garbageCollectOnAlternateThreadForDebugging(waitUntilDone); +} + +QWebFrameData::QWebFrameData(WebCore::Page* parentPage, WebCore::Frame* parentFrame, + WebCore::HTMLFrameOwnerElement* ownerFrameElement, + const WebCore::String& frameName) + : name(frameName) + , ownerElement(ownerFrameElement) + , page(parentPage) + , allowsScrolling(true) + , marginWidth(0) + , marginHeight(0) +{ frameLoaderClient = new FrameLoaderClientQt(); - RefPtr<Frame> newFrame = Frame::create(webcorePage, frameData->ownerElement, frameLoaderClient); - frame = newFrame.get(); - frameLoaderClient->setFrame(qframe, frame); + frame = Frame::create(page, ownerElement, frameLoaderClient); // FIXME: All of the below should probably be moved over into WebCore - frame->tree()->setName(frameData->name); - if (QWebFrame* _parentFrame = parentFrame()) - QWebFramePrivate::core(_parentFrame)->tree()->appendChild(frame); + frame->tree()->setName(name); + if (parentFrame) + parentFrame->tree()->appendChild(frame); +} - // balanced by adoptRef in FrameLoaderClientQt::createFrame - if (frameData->ownerElement) - frame->ref(); +void QWebFramePrivate::init(QWebFrame *qframe, QWebFrameData *frameData) +{ + q = qframe; + + allowsScrolling = frameData->allowsScrolling; + marginWidth = frameData->marginWidth; + marginHeight = frameData->marginHeight; + frame = frameData->frame.get(); + frameLoaderClient = frameData->frameLoaderClient; + frameLoaderClient->setFrame(qframe, frame); frame->init(); } @@ -280,7 +307,7 @@ QWebFrame::QWebFrame(QWebPage *parent, QWebFrameData *frameData) , d(new QWebFramePrivate) { d->page = parent; - d->init(this, parent->d->page, frameData); + d->init(this, frameData); if (!frameData->url.isEmpty()) { WebCore::ResourceRequest request(frameData->url, frameData->referrer); @@ -293,7 +320,7 @@ QWebFrame::QWebFrame(QWebFrame *parent, QWebFrameData *frameData) , d(new QWebFramePrivate) { d->page = parent->d->page; - d->init(this, parent->d->page->d->page, frameData); + d->init(this, frameData); } QWebFrame::~QWebFrame() @@ -316,6 +343,8 @@ QWebFrame::~QWebFrame() new URL, you should add them in a slot connected to the javaScriptWindowObjectCleared() signal. + If Javascript is not enabled for this page, then this method does nothing. + The \a object will never be explicitly deleted by QtWebKit. */ void QWebFrame::addToJavaScriptWindowObject(const QString &name, QObject *object) @@ -338,10 +367,15 @@ void QWebFrame::addToJavaScriptWindowObject(const QString &name, QObject *object new URL, you should add them in a slot connected to the javaScriptWindowObjectCleared() signal. + If Javascript is not enabled for this page, then this method does nothing. + The ownership of \a object is specified using \a own. */ void QWebFrame::addToJavaScriptWindowObject(const QString &name, QObject *object, QScriptEngine::ValueOwnership ownership) { + if (!page()->settings()->testAttribute(QWebSettings::JavascriptEnabled)) + return; + JSC::JSLock lock(false); JSDOMWindow* window = toJSDOMWindow(d->frame); JSC::Bindings::RootObject* root = d->frame->script()->bindingRootObject(); @@ -487,6 +521,17 @@ QUrl QWebFrame::url() const } /*! + \property QWebFrame::baseUrl + \brief the base URL of the frame, can be used to resolve relative URLs + \since 4.6 +*/ + +QUrl QWebFrame::baseUrl() const +{ + return d->frame->loader()->baseURL(); +} + +/*! \property QWebFrame::icon \brief the icon associated with this frame @@ -933,6 +978,27 @@ qreal QWebFrame::zoomFactor() const } /*! + \property QWebFrame::focus + \since 4.6 + + Returns true if this frame has keyboard input focus; otherwise, returns false. +*/ +bool QWebFrame::hasFocus() const +{ + return QWebFramePrivate::kit(d->frame->page()->focusController()->focusedFrame()) == this; +} + +/*! + \since 4.6 + + Gives keyboard input focus to this frame. +*/ +void QWebFrame::setFocus() +{ + QWebFramePrivate::core(this)->page()->focusController()->setFocusedFrame(QWebFramePrivate::core(this)); +} + +/*! Returns the position of the frame relative to it's parent frame. */ QPoint QWebFrame::pos() const @@ -1229,6 +1295,25 @@ QWebFrame* QWebFramePrivate::kit(WebCore::Frame* coreFrame) */ /*! + \fn void QWebFrame::loadStarted() + \since 4.6 + + This signal is emitted when a new load of this frame is started. + + \sa loadFinished() +*/ + +/*! + \fn void QWebFrame::loadFinished(bool ok) + \since 4.6 + + This signal is emitted when a load of this frame is finished. + \a ok will indicate whether the load was successful or any error occurred. + + \sa loadStarted() +*/ + +/*! \class QWebHitTestResult \since 4.4 \brief The QWebHitTestResult class provides information about the web diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebframe.h b/src/3rdparty/webkit/WebKit/qt/Api/qwebframe.h index 3ed453e..2c5309a 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/qwebframe.h +++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebframe.h @@ -109,9 +109,11 @@ class QWEBKIT_EXPORT QWebFrame : public QObject Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor) Q_PROPERTY(QString title READ title) Q_PROPERTY(QUrl url READ url WRITE setUrl) + Q_PROPERTY(QUrl baseUrl READ baseUrl) Q_PROPERTY(QIcon icon READ icon) Q_PROPERTY(QSize contentsSize READ contentsSize) Q_PROPERTY(QPoint scrollPosition READ scrollPosition WRITE setScrollPosition) + Q_PROPERTY(bool focus READ hasFocus) private: QWebFrame(QWebPage *parent, QWebFrameData *frameData); QWebFrame(QWebFrame *parent, QWebFrameData *frameData); @@ -140,6 +142,7 @@ public: QString title() const; void setUrl(const QUrl &url); QUrl url() const; + QUrl baseUrl() const; QIcon icon() const; QMultiMap<QString, QString> metaData() const; @@ -171,6 +174,9 @@ public: qreal zoomFactor() const; void setZoomFactor(qreal factor); + bool hasFocus() const; + void setFocus(); + QPoint pos() const; QRect geometry() const; QSize contentsSize() const; @@ -204,6 +210,9 @@ Q_SIGNALS: void contentsSizeChanged(const QSize &size); + void loadStarted(); + void loadFinished(bool ok); + private: friend class QWebPage; friend class QWebPagePrivate; diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebframe_p.h b/src/3rdparty/webkit/WebKit/qt/Api/qwebframe_p.h index 0c7da90..2b5c187 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/qwebframe_p.h +++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebframe_p.h @@ -43,9 +43,16 @@ class QWebPage; class QWebFrameData { public: + QWebFrameData(WebCore::Page*, WebCore::Frame* parentFrame = 0, + WebCore::HTMLFrameOwnerElement* = 0, + const WebCore::String& frameName = WebCore::String()); + WebCore::KURL url; WebCore::String name; WebCore::HTMLFrameOwnerElement* ownerElement; + WebCore::Page* page; + RefPtr<WebCore::Frame> frame; + WebCore::FrameLoaderClientQt* frameLoaderClient; WebCore::String referrer; bool allowsScrolling; @@ -67,8 +74,7 @@ public: , marginWidth(-1) , marginHeight(-1) {} - void init(QWebFrame *qframe, WebCore::Page *page, - QWebFrameData *frameData); + void init(QWebFrame* qframe, QWebFrameData* frameData); inline QWebFrame *parentFrame() { return qobject_cast<QWebFrame*>(q->parent()); } diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp index 5899a1b..84753bd 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp +++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp @@ -325,11 +325,7 @@ bool QWebPagePrivate::acceptNavigationRequest(QWebFrame *frame, const QNetworkRe void QWebPagePrivate::createMainFrame() { if (!mainFrame) { - QWebFrameData frameData; - frameData.ownerElement = 0; - frameData.allowsScrolling = true; - frameData.marginWidth = 0; - frameData.marginHeight = 0; + QWebFrameData frameData(page); mainFrame = new QWebFrame(q, &frameData); emit q->frameCreated(mainFrame); @@ -420,23 +416,6 @@ QMenu *QWebPagePrivate::createContextMenu(const WebCore::ContextMenu *webcoreMen } #endif // QT_NO_CONTEXTMENU -QWebFrame *QWebPagePrivate::frameAt(const QPoint &pos) const -{ - QWebFrame *frame = mainFrame; - -redo: - QList<QWebFrame*> children = frame->childFrames(); - for (int i = 0; i < children.size(); ++i) { - if (children.at(i)->geometry().contains(pos)) { - frame = children.at(i); - goto redo; - } - } - if (frame->geometry().contains(pos)) - return frame; - return 0; -} - void QWebPagePrivate::_q_webActionTriggered(bool checked) { QAction *a = qobject_cast<QAction *>(q->sender()); @@ -844,7 +823,7 @@ void QWebPagePrivate::focusInEvent(QFocusEvent *ev) Frame *frame = focusController->focusedFrame(); focusController->setActive(true); if (frame) { - frame->selection()->setFocused(true); + focusController->setFocused(true); } else { focusController->setFocusedFrame(QWebFramePrivate::core(mainFrame)); } @@ -857,10 +836,7 @@ void QWebPagePrivate::focusOutEvent(QFocusEvent *ev) // focusInEvent() we can re-activate the frame. FocusController *focusController = page->focusController(); focusController->setActive(false); - Frame *frame = focusController->focusedFrame(); - if (frame) { - frame->selection()->setFocused(false); - } + focusController->setFocused(false); } void QWebPagePrivate::dragEnterEvent(QDragEnterEvent *ev) @@ -1337,6 +1313,21 @@ QWebFrame *QWebPage::currentFrame() const return static_cast<WebCore::FrameLoaderClientQt *>(d->page->focusController()->focusedOrMainFrame()->loader()->client())->webFrame(); } + +/*! + Returns the frame at the given point \a pos. + + \sa mainFrame(), currentFrame() +*/ +QWebFrame* QWebPage::frameAt(const QPoint& pos) const +{ + QWebFrame* webFrame = mainFrame(); + if (!webFrame->geometry().contains(pos)) + return 0; + QWebHitTestResult hitTestResult = webFrame->hitTestContent(pos); + return hitTestResult.frame(); +} + /*! Returns a pointer to the view's history of navigated web pages. */ @@ -1430,6 +1421,28 @@ bool QWebPage::javaScriptPrompt(QWebFrame *frame, const QString& msg, const QStr } /*! + \fn bool QWebPage::shouldInterruptJavaScript() + \since 4.6 + This function is called when a JavaScript program is running for a long period of time. + + If the user wanted to stop the JavaScript the implementation should return true; otherwise false. + + The default implementation executes the query using QMessageBox::information with QMessageBox::Yes and QMessageBox::No buttons. + + \warning Because of binary compatibility constraints, this function is not virtual. If you want to + provide your own implementation in a QWebPage subclass, reimplement the shouldInterruptJavaScript() + slot in your subclass instead. QtWebKit will dynamically detect the slot and call it. +*/ +bool QWebPage::shouldInterruptJavaScript() +{ +#ifdef QT_NO_MESSAGEBOX + return false; +#else + return QMessageBox::Yes == QMessageBox::information(d->view, tr("JavaScript Problem - %1").arg(mainFrame()->url().host()), tr("The script on this page appears to have a problem. Do you want to stop the script?"), QMessageBox::Yes, QMessageBox::No); +#endif +} + +/*! This function is called whenever WebKit wants to create a new window of the given \a type, for example when a JavaScript program requests to open a document in a new window. @@ -2193,9 +2206,9 @@ bool QWebPage::swallowContextMenuEvent(QContextMenuEvent *event) { d->page->contextMenuController()->clearContextMenu(); - if (QWebFrame* webFrame = d->frameAt(event->pos())) { + if (QWebFrame* webFrame = frameAt(event->pos())) { Frame* frame = QWebFramePrivate::core(webFrame); - if (Scrollbar* scrollbar = frame->view()->scrollbarUnderPoint(PlatformMouseEvent(event, 1).pos())) { + if (Scrollbar* scrollbar = frame->view()->scrollbarAtPoint(PlatformMouseEvent(event, 1).pos())) { return scrollbar->contextMenu(PlatformMouseEvent(event, 1)); } } diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.h b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.h index 86822d2..517a77c 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.h +++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.h @@ -193,6 +193,7 @@ public: QWebFrame *mainFrame() const; QWebFrame *currentFrame() const; + QWebFrame* frameAt(const QPoint& pos) const; QWebHistory *history() const; QWebSettings *settings() const; @@ -287,6 +288,9 @@ public: inline QWebPagePrivate* handle() const { return d; } +public Q_SLOTS: + bool shouldInterruptJavaScript(); + Q_SIGNALS: void loadStarted(); void loadProgress(int progress); diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage_p.h b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage_p.h index 984bec1..3a3a674 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage_p.h +++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage_p.h @@ -75,9 +75,6 @@ public: #ifndef QT_NO_CONTEXTMENU QMenu *createContextMenu(const WebCore::ContextMenu *webcoreMenu, const QList<WebCore::ContextMenuItem> *items, QBitArray *visitedWebActions); #endif - - QWebFrame *frameAt(const QPoint &pos) const; - void _q_onLoadProgressChanged(int); void _q_webActionTriggered(bool checked); #ifndef NDEBUG diff --git a/src/3rdparty/webkit/WebKit/qt/ChangeLog b/src/3rdparty/webkit/WebKit/qt/ChangeLog index dffa5e5..02aab77 100644 --- a/src/3rdparty/webkit/WebKit/qt/ChangeLog +++ b/src/3rdparty/webkit/WebKit/qt/ChangeLog @@ -1,3 +1,341 @@ +2009-07-13 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Ariya Hidayat. + + Fix qdoc warnings for QWebPage::shouldInterruptJavaScript() and mention + how to re-implement it. + + * Api/qwebpage.cpp: + +2009-07-13 Simon Hausmann <hausmann@webkit.org> + + Reviewed by Ariya Hidayat. + + Fix crash with plugins when the plugin stream is cancelled. + + Similar to r26667 handle the case where didReceiveResponse on the + plugin view results in failure to set up the stream and + setMainDocumentError being called instead. This will set the + m_pluginView back to 0 and we need check for it before calling + didReceiveData. + + This was triggered by consecutive execution of + LayoutTests/plugins/return-error-from-new-stream-callback-in-full-frame-plugin.html + followed by LayoutTests/scrollbars/scrollbar-crash-on-refresh.html + + * WebCoreSupport/FrameLoaderClientQt.cpp: + (WebCore::FrameLoaderClientQt::committedLoad): + +2009-07-13 Simon Hausmann <hausmann@webkit.org> + + Reviewed by Ariya Hidayat. + + Added QWebDatabase::removeAllDatabases, as a way to delete all + databases from the offline storage path. + + Used by the Qt DRT. + + * Api/qwebdatabase.cpp: + (QWebDatabase::removeAllDatabases): + * Api/qwebdatabase.h: + +2009-07-13 Simon Hausmann <hausmann@webkit.org> + + Reviewed by Ariya Hidayat. + + Added loadStarted() and loadFinished() signals to QWebFrame, + to allow load tracking of individual frames, as opposed to + QWebPage's loadStarted/loadFinished signals that are emitted + whenever _any_ child frame loads/finishes. + + * Api/qwebframe.cpp: Document new signals. + * Api/qwebframe.h: Add new signals. + * WebCoreSupport/FrameLoaderClientQt.cpp: + (WebCore::FrameLoaderClientQt::setFrame): Connect new signals. + +2009-07-13 Simon Hausmann <hausmann@webkit.org> + + Reviewed by Ariya Hidayat. + + Add hooks for the GCController JavaScript interface needed by the + Qt DRT. + + Fixed sort order of includes in qwebframe.cpp. + + * Api/qwebframe.cpp: + (qt_drt_javaScriptObjectsCount): + (qt_drt_garbageCollector_collect): + (qt_drt_garbageCollector_collectOnAlternateThread): + +2009-07-13 Simon Hausmann <hausmann@webkit.org> + + Reviewed by Ariya Hidayat. + + Add hooks for the GCController JavaScript interface needed by the + Qt DRT. + + Fixed sort order of includes in qwebframe.cpp. + + * Api/qwebframe.cpp: + (qt_drt_javaScriptObjectsCount): + (qt_drt_garbageCollector_collect): + (qt_drt_garbageCollector_collectOnAlternateThread): + +2009-07-12 Brent Fulgham <bfulgham@gmail.com> + + Speculative build fix after http://trac.webkit.org/changeset/45786. + + * WebCoreSupport/ChromeClientQt.cpp: + (WebCore::ChromeClientQt::addMessageToConsole): + * WebCoreSupport/ChromeClientQt.h: + +2009-07-10 Yael Aharon <yael.aharon@nokia.com> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=27136 + + Fix a bug where webkit hangs when executing infinite JavaScript loop. + + * Api/qwebpage.cpp: + (QWebPage::shouldInterruptJavaScript): + * Api/qwebpage.h: + * WebCoreSupport/ChromeClientQt.cpp: + (WebCore::ChromeClientQt::shouldInterruptJavaScript): + * tests/qwebpage/tst_qwebpage.cpp: + (JSTestPage::JSTestPage): + (JSTestPage::shouldInterruptJavaScript): + (tst_QWebPage::infiniteLoopJS): + +2009-07-10 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=27108 + + Fix crash when in frame tree of a new frame before the new frame + has been installed in the frame tree, similar to r35088. + + After calling Frame::init() the frame it may have been removed from the + frame tree again through JavaScript. Detect this by checking the page() + afterwards. + + To make this check safe the Frame::init() code was moved into + QWebFrameData's constructor, where a RefPtr holds a reference to the frame. + After the check back in FrameLoaderClientQt we would hold the single + reference left and after release() the frame, its frame loader, its + client as well as the QWebFrame should have disappeared then. + + * Api/qwebframe.cpp: + (QWebFramePrivate::init): Only call Frame::init here, the rest is + done in QWebFrameData's constructor. + (QWebFrame::QWebFrame): + * Api/qwebframe_p.h: Adjust declaration. + (QWebFrameData::QWebFrameData): Create the Frame here. + * Api/qwebpage.cpp: + (QWebPagePrivate::createMainFrame): Adjust and simplify + to new QWebFrame constructor. + * WebCoreSupport/FrameLoaderClientQt.cpp: + (WebCore::FrameLoaderClientQt::createFrame): Adjust to + new QWebFrame construction using QWebFrameData and add the + check like in r35088. + +2009-07-09 Beth Dakin <bdakin@apple.com> + + Reviewed by Dave Hyatt. + + Make Widget RefCounted to fix: + + <rdar://problem/7038831> REGRESSION (TOT): In Mail, a crash occurs + at WebCore::Widget::afterMouseDown() after clicking To Do's close + box + <rdar://problem/6978804> WER #16: Repro Access Violation in + WebCore::PluginView::bindingInstance (1310178023) + -and- + <rdar://problem/6991251> WER #13: Crash in WebKit! + WebCore::PluginView::performRequest+203 (1311461169) + + * WebCoreSupport/FrameLoaderClientQt.cpp: + (WebCore::FrameLoaderClientQt::createPlugin): + (WebCore::FrameLoaderClientQt::createJavaAppletWidget): + * WebCoreSupport/FrameLoaderClientQt.h: + +2009-07-08 Pradeepto Bhattacharya <pradeepto@kde.org> + + Reviewed by Ariya Hidayat. + + Build fix. + + * WebCoreSupport/FrameLoaderClientQt.h: Removed the slot slotCallPolicyFunction(). + +2009-07-08 Simon Hausmann <hausmann@webkit.org> + + Reviewed by Tor Arne Vestbø. + + https://bugs.webkit.org/show_bug.cgi?id=27080 + + Fix DRT instability issues with fast/loader/submit-form-while-parsing-2.html + + When the form is submitted we call the policy function in the frame + loader delayed with a queued connection. That queued connection + sometimes interferes with the javascript timeout set in the testcase. + + Eliminate the entire delayed policy function mechanism and instead always + call back directly, like in the other ports. In most other places we called + the slot directly anyway. + + * WebCoreSupport/FrameLoaderClientQt.cpp: + (WebCore::FrameLoaderClientQt::FrameLoaderClientQt): Remove m_policyFunction. + (WebCore::FrameLoaderClientQt::callPolicyFunction): Call the policy function directly instead + of emitting the queued signal. + (WebCore::FrameLoaderClientQt::cancelPolicyCheck): Call callPolicyFunction directly. + (WebCore::FrameLoaderClientQt::dispatchWillSubmitForm): Ditto. + (WebCore::FrameLoaderClientQt::dispatchDecidePolicyForMIMEType): Ditto. + (WebCore::FrameLoaderClientQt::dispatchDecidePolicyForNewWindowAction): Ditto. + (WebCore::FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction): Ditto. + * WebCoreSupport/FrameLoaderClientQt.h: Remove m_policyFunction as well as the associated + signal. + +2009-07-07 Simon Hausmann <hausmann@webkit.org> + + Reviewed by Holger Freyther. + + Add Qt DRT hook for clearing the frame name. + + * Api/qwebframe.cpp: + (qt_drt_clearFrameName): + +2009-07-05 Simon Hausmann <hausmann@webkit.org> + + Reviewed by Holger Freyther. + + Fix two qdoc warnings. + + Added missing \property for QWebFrame::hasFocus and added \a + tag for pos of QWebPage::frameAt. + + * Api/qwebframe.cpp: + * Api/qwebpage.cpp: + +2009-07-04 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Simon Hausmann. + + Use the recently introduced FocusController::setFocused + + Use the recently introduced FocusController::setFocused + in the Qt platform. The SelectionController will be updated + from within the FocusController now. + + * Api/qwebpage.cpp: + (QWebPagePrivate::focusInEvent): + (QWebPagePrivate::focusOutEvent): + +2009-07-02 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Ariya Hidayat. + + Improve documentation of QWebFrame::setFocus and hasFocus() + Added missing Q_PROPERTY for QWebFrame::hasFocus. + + * Api/qwebframe.cpp: Clarify the docs. + * Api/qwebframe.h: add Q_PROPERTY(focus). + +2009-07-02 Joe Ligman <joseph.ligman@nokia.com> + + Reviewed by Simon Hausmann. + + Bug 26855: [Qt] New methods for QWebFrame to check and set focus. + + Added new public methods QWebFrame::hasFocus() and QWebFrame::setFocus() + Added auto test. + + * Api/qwebframe.cpp: + (QWebFrame::hasFocus): + (QWebFrame::setFocus): + * Api/qwebframe.h: + * tests/qwebframe/tst_qwebframe.cpp: + +2009-07-01 Robert Hogan <robert@roberthogan.net> + + Reviewed by NOBODY. + + Fix Qt segfault when javascript disabled. + If clients call addToJavaScriptWindowObject even though JavascriptEnabled is false + webkit will segfault on the assert: + ASSERTION FAILED: _rootObject + (../../../WebCore/bridge/runtime.cpp:52 + JSC::Bindings::Instance::Instance(WTF::PassRefPtr<JSC::Bindings::RootObject>)) + Fix is to ensure JavaScript is enabled when client calls addToJavaScriptWindowObject. + + https://bugs.webkit.org/show_bug.cgi?id=26906 + + * Api/qwebframe.cpp: + (QWebFrame::addToJavaScriptWindowObject): + +2009-07-01 Jakub Wieczorek <faw217@gmail.com> + + Reviewed by Simon Hausmann. + + [Qt] Move some API headers from WebCore.pro to headers.pri so that they + get installed when running make install from the build directory. + + * Api/headers.pri: + +2009-07-01 Balazs Kelemen <kelemen.balazs.3@stud.u-szeged.hu> + + Reviewed by Simon Hausmann. + + Fixed robotized QtLauncher to work when there is no index.html in the user's home. + + * QtLauncher/main.cpp: + (main): + +2009-06-30 Brian Weinstein <bweinstein@apple.com> + + Reviewed by Adam Roben. + + Renamed scrollbarUnderPoint to scrollbarAtPoint to follow conventions. + + * Api/qwebpage.cpp: + (QWebPage::swallowContextMenuEvent): + +2009-06-30 Joe Ligman <joseph.ligman@nokia.com> + + Reviewed by Adam Treat. + + Bug 26422: [Qt] QWebPagePrivate::frameAt calculates wrong frame + + Added a public method QWebPage::frameAt + Removed QWebPagePrivate::frameAt, which calcuated the wrong frame + Modified QWebPage::swallowContextMenuEvent to use the new frameAt method + New test case for frameAt added to tst_qwebpage.cpp + + * Api/qwebpage.cpp: + (QWebPage::frameAt): + (QWebPage::swallowContextMenuEvent): + * Api/qwebpage.h: + * Api/qwebpage_p.h: + * tests/qwebpage/frametest/iframe.html: Added. + * tests/qwebpage/frametest/iframe2.html: Added. + * tests/qwebpage/frametest/iframe3.html: Added. + * tests/qwebpage/tst_qwebpage.cpp: + (frameAtHelper): + (tst_QWebPage::frameAt): + * tests/qwebpage/tst_qwebpage.qrc: + +2009-06-30 Jakub Wieczorek <faw217@gmail.com> + + Reviewed by Simon Hausmann. + + Add QWebFrame::baseUrl() function that exposes the base URL of a frame. + Autotests included. + + * Api/qwebframe.cpp: + (QWebFrame::baseUrl): + * Api/qwebframe.h: + * tests/qwebframe/tst_qwebframe.cpp: + 2009-06-29 Simon Hausmann <simon.hausmann@nokia.com> Fix the Qt build, add missing isSpeaking() implementation to diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp index d001035..c169a9f 100644 --- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp +++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp @@ -228,7 +228,7 @@ void ChromeClientQt::setResizable(bool) notImplemented(); } -void ChromeClientQt::addMessageToConsole(MessageSource, MessageLevel, const String& message, +void ChromeClientQt::addMessageToConsole(MessageSource, MessageType, MessageLevel, const String& message, unsigned int lineNumber, const String& sourceID) { QString x = message; @@ -288,8 +288,9 @@ void ChromeClientQt::setStatusbarText(const String& msg) bool ChromeClientQt::shouldInterruptJavaScript() { - notImplemented(); - return false; + bool shouldInterrupt = false; + QMetaObject::invokeMethod(m_webPage, "shouldInterruptJavaScript", Qt::DirectConnection, Q_RETURN_ARG(bool, shouldInterrupt)); + return shouldInterrupt; } bool ChromeClientQt::tabsToLinks() const diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.h b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.h index 9f2c1b5..67663fb 100644 --- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.h +++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.h @@ -83,7 +83,7 @@ namespace WebCore { virtual void setResizable(bool); - virtual void addMessageToConsole(MessageSource, MessageLevel, const String& message, + virtual void addMessageToConsole(MessageSource, MessageType, MessageLevel, const String& message, unsigned int lineNumber, const String& sourceID); virtual bool canRunBeforeUnloadConfirmPanel(); diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp index 34d322f..8e6ffed 100644 --- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp +++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp @@ -144,10 +144,8 @@ FrameLoaderClientQt::FrameLoaderClientQt() , m_pluginView(0) , m_hasSentResponseToPlugin(false) , m_firstData(false) - , m_policyFunction(0) , m_loadSucceeded(false) { - connect(this, SIGNAL(sigCallPolicyFunction(int)), this, SLOT(slotCallPolicyFunction(int)), Qt::QueuedConnection); } @@ -166,10 +164,14 @@ void FrameLoaderClientQt::setFrame(QWebFrame* webFrame, Frame* frame) connect(this, SIGNAL(loadStarted()), m_webFrame->page(), SIGNAL(loadStarted())); + connect(this, SIGNAL(loadStarted()), + m_webFrame, SIGNAL(loadStarted())); connect(this, SIGNAL(loadProgress(int)), m_webFrame->page(), SIGNAL(loadProgress(int))); connect(this, SIGNAL(loadFinished(bool)), m_webFrame->page(), SIGNAL(loadFinished(bool))); + connect(this, SIGNAL(loadFinished(bool)), + m_webFrame, SIGNAL(loadFinished(bool))); connect(this, SIGNAL(titleChanged(const QString&)), m_webFrame, SIGNAL(titleChanged(const QString&))); } @@ -181,20 +183,7 @@ QWebFrame* FrameLoaderClientQt::webFrame() const void FrameLoaderClientQt::callPolicyFunction(FramePolicyFunction function, PolicyAction action) { - ASSERT(!m_policyFunction); - ASSERT(function); - - m_policyFunction = function; - emit sigCallPolicyFunction(action); -} - -void FrameLoaderClientQt::slotCallPolicyFunction(int action) -{ - if (!m_frame || !m_policyFunction) - return; - FramePolicyFunction function = m_policyFunction; - m_policyFunction = 0; - (m_frame->loader()->*function)(WebCore::PolicyAction(action)); + (m_frame->loader()->*function)(action); } bool FrameLoaderClientQt::hasWebView() const @@ -415,7 +404,6 @@ void FrameLoaderClientQt::dispatchShow() void FrameLoaderClientQt::cancelPolicyCheck() { // qDebug() << "FrameLoaderClientQt::cancelPolicyCheck"; - m_policyFunction = 0; } @@ -423,7 +411,6 @@ void FrameLoaderClientQt::dispatchWillSubmitForm(FramePolicyFunction function, PassRefPtr<FormState>) { notImplemented(); - Q_ASSERT(!m_policyFunction); // FIXME: This is surely too simple callPolicyFunction(function, PolicyUse); } @@ -892,19 +879,15 @@ WebCore::Frame* FrameLoaderClientQt::dispatchCreatePage() void FrameLoaderClientQt::dispatchDecidePolicyForMIMEType(FramePolicyFunction function, const WebCore::String& MIMEType, const WebCore::ResourceRequest&) { // we need to call directly here - Q_ASSERT(!m_policyFunction); - m_policyFunction = function; if (canShowMIMEType(MIMEType)) - slotCallPolicyFunction(PolicyUse); + callPolicyFunction(function, PolicyUse); else - slotCallPolicyFunction(PolicyDownload); + callPolicyFunction(function, PolicyDownload); } void FrameLoaderClientQt::dispatchDecidePolicyForNewWindowAction(FramePolicyFunction function, const WebCore::NavigationAction& action, const WebCore::ResourceRequest& request, PassRefPtr<WebCore::FormState>, const WebCore::String&) { - Q_ASSERT(!m_policyFunction); Q_ASSERT(m_webFrame); - m_policyFunction = function; #if QT_VERSION < 0x040400 QWebNetworkRequest r(request); #else @@ -921,17 +904,15 @@ void FrameLoaderClientQt::dispatchDecidePolicyForNewWindowAction(FramePolicyFunc m_frame->loader()->activeDocumentLoader()->setLastCheckedRequest(emptyRequest); } - slotCallPolicyFunction(PolicyIgnore); + callPolicyFunction(function, PolicyIgnore); return; } - slotCallPolicyFunction(PolicyUse); + callPolicyFunction(function, PolicyUse); } void FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction(FramePolicyFunction function, const WebCore::NavigationAction& action, const WebCore::ResourceRequest& request, PassRefPtr<WebCore::FormState>) { - Q_ASSERT(!m_policyFunction); Q_ASSERT(m_webFrame); - m_policyFunction = function; #if QT_VERSION < 0x040400 QWebNetworkRequest r(request); #else @@ -948,10 +929,10 @@ void FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction(FramePolicyFun m_frame->loader()->activeDocumentLoader()->setLastCheckedRequest(emptyRequest); } - slotCallPolicyFunction(PolicyIgnore); + callPolicyFunction(function, PolicyIgnore); return; } - slotCallPolicyFunction(PolicyUse); + callPolicyFunction(function, PolicyUse); } void FrameLoaderClientQt::dispatchUnableToImplementPolicy(const WebCore::ResourceError&) @@ -976,32 +957,35 @@ PassRefPtr<Frame> FrameLoaderClientQt::createFrame(const KURL& url, const String if (!m_webFrame) return 0; - QWebFrameData frameData; + QWebFrameData frameData(m_frame->page(), m_frame, ownerElement, name); frameData.url = url; - frameData.name = name; - frameData.ownerElement = ownerElement; frameData.referrer = referrer; frameData.allowsScrolling = allowsScrolling; frameData.marginWidth = marginWidth; frameData.marginHeight = marginHeight; - QWebFrame* webFrame = new QWebFrame(m_webFrame, &frameData); - emit m_webFrame->page()->frameCreated(webFrame); + QPointer<QWebFrame> webFrame = new QWebFrame(m_webFrame, &frameData); + // The creation of the frame may have run arbitrary JavaScript that removed it from the page already. + if (!webFrame->d->frame->page()) { + frameData.frame.release(); + ASSERT(webFrame.isNull()); + return 0; + } - RefPtr<Frame> childFrame = adoptRef(webFrame->d->frame); + emit m_webFrame->page()->frameCreated(webFrame); // ### set override encoding if we have one FrameLoadType loadType = m_frame->loader()->loadType(); FrameLoadType childLoadType = FrameLoadTypeRedirectWithLockedBackForwardList; - childFrame->loader()->loadURLIntoChildFrame(frameData.url, frameData.referrer, childFrame.get()); + frameData.frame->loader()->loadURLIntoChildFrame(frameData.url, frameData.referrer, frameData.frame.get()); // The frame's onload handler may have removed it from the document. - if (!childFrame->tree()->parent()) + if (!frameData.frame->tree()->parent()) return 0; - return childFrame.release(); + return frameData.frame.release(); } ObjectContentType FrameLoaderClientQt::objectContentType(const KURL& url, const String& _mimeType) @@ -1090,7 +1074,7 @@ public: } }; -Widget* FrameLoaderClientQt::createPlugin(const IntSize& pluginSize, HTMLPlugInElement* element, const KURL& url, const Vector<String>& paramNames, +PassRefPtr<Widget> FrameLoaderClientQt::createPlugin(const IntSize& pluginSize, HTMLPlugInElement* element, const KURL& url, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually) { // qDebug()<<"------ Creating plugin in FrameLoaderClientQt::createPlugin for "<<url.prettyURL() << mimeType; @@ -1154,7 +1138,7 @@ Widget* FrameLoaderClientQt::createPlugin(const IntSize& pluginSize, HTMLPlugInE QWidget* view = m_webFrame->page()->view(); if (view) widget->setParent(view); - QtPluginWidget* w = new QtPluginWidget(); + RefPtr<QtPluginWidget> w = adoptRef(new QtPluginWidget()); w->setPlatformWidget(widget); // Make sure it's invisible until properly placed into the layout w->setFrameRect(IntRect(0, 0, 0, 0)); @@ -1163,7 +1147,7 @@ Widget* FrameLoaderClientQt::createPlugin(const IntSize& pluginSize, HTMLPlugInE // FIXME: make things work for widgetless plugins as well delete object; } else { // NPAPI Plugins - PluginView* pluginView = PluginView::create(m_frame, pluginSize, element, url, + RefPtr<PluginView> pluginView = PluginView::create(m_frame, pluginSize, element, url, paramNames, paramValues, mimeType, loadManually); return pluginView; } @@ -1178,7 +1162,7 @@ void FrameLoaderClientQt::redirectDataToPlugin(Widget* pluginWidget) m_hasSentResponseToPlugin = false; } -Widget* FrameLoaderClientQt::createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, +PassRefPtr<Widget> FrameLoaderClientQt::createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues) { notImplemented(); diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h index 4d2dcbc..754d8bc 100644 --- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h +++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h @@ -59,10 +59,7 @@ namespace WebCore { friend class ::QWebFrame; void callPolicyFunction(FramePolicyFunction function, PolicyAction action); - private slots: - void slotCallPolicyFunction(int); signals: - void sigCallPolicyFunction(int); void loadStarted(); void loadProgress(int d); void loadFinished(bool); @@ -188,10 +185,10 @@ namespace WebCore { virtual PassRefPtr<Frame> createFrame(const KURL& url, const String& name, HTMLFrameOwnerElement* ownerElement, const String& referrer, bool allowsScrolling, int marginWidth, int marginHeight) ; - virtual Widget* createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool); + virtual PassRefPtr<Widget> createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool); virtual void redirectDataToPlugin(Widget* pluginWidget); - virtual Widget* createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues); + virtual PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues); virtual ObjectContentType objectContentType(const KURL& url, const String& mimeType); virtual String overrideMediaType() const; @@ -209,7 +206,6 @@ namespace WebCore { QWebFrame *m_webFrame; ResourceResponse m_response; bool m_firstData; - FramePolicyFunction m_policyFunction; // Plugin view to redirect data to WebCore::PluginView* m_pluginView; diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp b/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp index cc4d313..c0e72be 100644 --- a/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp +++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp @@ -582,6 +582,10 @@ private slots: void jsByteArray(); void ownership(); void nullValue(); + void baseUrl_data(); + void baseUrl(); + void hasSetFocus(); + private: QString evalJS(const QString&s) { // Convert an undefined return variant to the string "undefined" @@ -2413,5 +2417,61 @@ void tst_QWebFrame::nullValue() QVERIFY(v.isNull()); } +void tst_QWebFrame::baseUrl_data() +{ + QTest::addColumn<QString>("html"); + QTest::addColumn<QUrl>("loadUrl"); + QTest::addColumn<QUrl>("url"); + QTest::addColumn<QUrl>("baseUrl"); + + QTest::newRow("null") << QString() << QUrl() + << QUrl("about:blank") << QUrl("about:blank"); + + QTest::newRow("foo") << QString() << QUrl("http://foobar.baz/") + << QUrl("http://foobar.baz/") << QUrl("http://foobar.baz/"); + + QString html = "<html>" + "<head>" + "<base href=\"http://foobaz.bar/\" />" + "</head>" + "</html>"; + QTest::newRow("customBaseUrl") << html << QUrl("http://foobar.baz/") + << QUrl("http://foobar.baz/") << QUrl("http://foobaz.bar/"); +} + +void tst_QWebFrame::baseUrl() +{ + QFETCH(QString, html); + QFETCH(QUrl, loadUrl); + QFETCH(QUrl, url); + QFETCH(QUrl, baseUrl); + + m_page->mainFrame()->setHtml(html, loadUrl); + QCOMPARE(m_page->mainFrame()->url(), url); + QCOMPARE(m_page->mainFrame()->baseUrl(), baseUrl); +} + +void tst_QWebFrame::hasSetFocus() +{ + QSignalSpy loadSpy(m_page, SIGNAL(loadFinished(bool))); + QUrl url = QUrl("qrc:///frametest/iframe.html"); + m_page->mainFrame()->load(url); + + ::waitForSignal(m_page, SIGNAL(loadFinished(bool))); + + m_page->mainFrame()->setFocus(); + QVERIFY(m_page->mainFrame()->hasFocus()); + + QList<QWebFrame*> children = m_page->mainFrame()->childFrames(); + for (int i = 0; i < children.size(); ++i) { + children.at(i)->setFocus(); + QVERIFY(children.at(i)->hasFocus()); + QVERIFY(!m_page->mainFrame()->hasFocus()); + } + + m_page->mainFrame()->setFocus(); + QVERIFY(m_page->mainFrame()->hasFocus()); +} + QTEST_MAIN(tst_QWebFrame) #include "tst_qwebframe.moc" diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/frametest/iframe.html b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/frametest/iframe.html new file mode 100644 index 0000000..f17027c --- /dev/null +++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/frametest/iframe.html @@ -0,0 +1,6 @@ +<html> +<body> +<p>top</p> +<iframe src="iframe2.html" width="80%" height="30%"/> +</body> +</html> diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/frametest/iframe2.html b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/frametest/iframe2.html new file mode 100644 index 0000000..5017435 --- /dev/null +++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/frametest/iframe2.html @@ -0,0 +1,7 @@ +<html> +<body> +<p>another iframe</p> +<iframe src="iframe3.html" width="80%" height="30%"></iframe> +</body> +</html> + diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/frametest/iframe3.html b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/frametest/iframe3.html new file mode 100644 index 0000000..ed6ac5b --- /dev/null +++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/frametest/iframe3.html @@ -0,0 +1,5 @@ +<html> +<body> +<p>inner</p> +</body> +</html> diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp index 1d6a48e..6c3b296 100644 --- a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp +++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp @@ -92,6 +92,7 @@ private slots: void cleanupTestCase(); void acceptNavigationRequest(); + void infiniteLoopJS(); void loadFinished(); void acceptNavigationRequestWithNewWindow(); void userStyleSheet(); @@ -106,7 +107,7 @@ private slots: void textSelection(); void textEditing(); void backActionUpdate(); - + void frameAt(); void requestCache(); private: @@ -192,6 +193,26 @@ void tst_QWebPage::acceptNavigationRequest() m_view->setPage(0); } +class JSTestPage : public QWebPage +{ +Q_OBJECT +public: + JSTestPage(QObject* parent = 0) + : QWebPage(parent) {} + +public slots: + bool shouldInterruptJavaScript() { + return true; + } +}; + +void tst_QWebPage::infiniteLoopJS() +{ + JSTestPage* newPage = new JSTestPage(m_view); + m_view->setPage(newPage); + m_view->setHtml(QString("<html><bodytest</body></html>"), QUrl()); + m_view->page()->mainFrame()->evaluateJavaScript("var run = true;var a = 1;while(run){a++;}"); +} void tst_QWebPage::loadFinished() { @@ -1116,5 +1137,32 @@ void tst_QWebPage::backActionUpdate() QVERIFY(action->isEnabled()); } +void frameAtHelper(QWebPage* webPage, QWebFrame* webFrame, QPoint framePosition) +{ + if (!webFrame) + return; + + framePosition += QPoint(webFrame->pos()); + QList<QWebFrame*> children = webFrame->childFrames(); + for (int i = 0; i < children.size(); ++i) { + if (children.at(i)->childFrames().size() > 0) + frameAtHelper(webPage, children.at(i), framePosition); + + QRect frameRect(children.at(i)->pos() + framePosition, children.at(i)->geometry().size()); + QVERIFY(children.at(i) == webPage->frameAt(frameRect.topLeft())); + } +} + +void tst_QWebPage::frameAt() +{ + QWebView webView; + QWebPage* webPage = webView.page(); + QSignalSpy loadSpy(webPage, SIGNAL(loadFinished(bool))); + QUrl url = QUrl("qrc:///frametest/iframe.html"); + webPage->mainFrame()->load(url); + QTRY_COMPARE(loadSpy.count(), 1); + frameAtHelper(webPage, webPage->mainFrame(), webPage->mainFrame()->pos()); +} + QTEST_MAIN(tst_QWebPage) #include "tst_qwebpage.moc" diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.qrc b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.qrc index 38c5232..3085ce2 100644 --- a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.qrc +++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.qrc @@ -2,6 +2,9 @@ <qresource> <file>frametest/index.html</file> <file>frametest/frame_a.html</file> + <file>frametest/iframe.html</file> + <file>frametest/iframe2.html</file> + <file>frametest/iframe3.html</file> </qresource> </RCC> |