/tests/auto/qxmlnamepool/

it/atom/src?h=master' type='application/atom+xml'/>
summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2009-06-21 23:16:08 (GMT)
committerMartin Jones <martin.jones@nokia.com>2009-06-21 23:16:08 (GMT)
commit511d86e88b33380116f27d5f6a2a0754e8f62fa0 (patch)
tree6fdcb11b5270984112bc2563738c24d2891595d4 /src
parentaae3c899b10bee2dd64bb00bb2832620a47cff87 (diff)
parentfbf9db1fc6b500bfe05fdfca121986687d73d5c6 (diff)
downloadQt-511d86e88b33380116f27d5f6a2a0754e8f62fa0.zip
Qt-511d86e88b33380116f27d5f6a2a0754e8f62fa0.tar.gz
Qt-511d86e88b33380116f27d5f6a2a0754e8f62fa0.tar.bz2
Merge branch 'kinetic-declarativeui' of git@scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
Diffstat (limited to 'src')
-rw-r--r--src/3rdparty/phonon/phonon/volumeslider.cpp2
-rw-r--r--src/3rdparty/phonon/qt7/quicktimevideoplayer.mm3
-rw-r--r--src/3rdparty/sha1/sha1.cpp4
-rw-r--r--src/3rdparty/webkit/ChangeLog685
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/APICast.h34
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSBase.cpp10
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSBase.h10
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSBasePrivate.h2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSCallbackConstructor.cpp15
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSCallbackConstructor.h2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSCallbackFunction.cpp18
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSCallbackFunction.h4
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSCallbackObject.h16
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSCallbackObjectFunctions.h152
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSClassRef.cpp2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSContextRef.cpp4
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSContextRef.h10
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSObjectRef.cpp94
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSObjectRef.h8
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSStringRef.cpp3
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSStringRefCF.cpp9
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSValueRef.cpp176
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/WebKitAvailability.h85
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/ChangeLog13208
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/DerivedSources.make6
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/Info.plist2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.order3425
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pri111
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro11
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/JavaScriptCorePrefix.h9
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/assembler/AbstractMacroAssembler.h999
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/assembler/AssemblerBuffer.h2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssembler.h1814
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerCodeRef.h156
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerX86.h164
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerX86Common.h780
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerX86_64.h446
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/assembler/X86Assembler.h399
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.cpp174
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.h144
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/EvalCodeCache.h13
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/Instruction.h40
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/JumpTable.h13
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/Opcode.h10
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/SamplingTool.cpp224
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/SamplingTool.h226
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/StructureStubInfo.h16
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp327
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecompiler/BytecodeGenerator.h68
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/config.h10
-rwxr-xr-xsrc/3rdparty/webkit/JavaScriptCore/create_hash_table4
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/debugger/Debugger.cpp16
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/debugger/Debugger.h4
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/debugger/DebuggerActivation.cpp103
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/debugger/DebuggerActivation.h63
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/debugger/DebuggerCallFrame.cpp15
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/debugger/DebuggerCallFrame.h10
-rwxr-xr-xsrc/3rdparty/webkit/JavaScriptCore/docs/make-bytecode-docs.pl4
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/generated/ArrayPrototype.lut.h9
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/generated/DatePrototype.lut.h7
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/generated/Grammar.cpp1701
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/generated/Grammar.h109
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/generated/Lexer.lut.h5
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/generated/MathObject.lut.h5
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/generated/NumberConstructor.lut.h5
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/generated/RegExpConstructor.lut.h5
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/generated/RegExpObject.lut.h5
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/generated/StringPrototype.lut.h5
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/interpreter/CachedCall.h70
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/interpreter/CallFrame.cpp18
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/interpreter/CallFrame.h41
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/interpreter/CallFrameClosure.h60
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp3667
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.h279
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/interpreter/Register.h102
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/interpreter/RegisterFile.cpp11
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/interpreter/RegisterFile.h173
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/ExecutableAllocator.h75
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp447
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/ExecutableAllocatorPosix.cpp30
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/ExecutableAllocatorWin.cpp4
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JIT.cpp2161
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JIT.h521
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JITArithmetic.cpp1484
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JITCall.cpp220
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JITCode.h119
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JITInlineMethods.h237
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JITOpcodes.cpp1183
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JITPropertyAccess.cpp774
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JITStubCall.h170
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp2603
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.h319
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jsc.cpp212
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/Grammar.y447
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/Lexer.cpp1499
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/Lexer.h138
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/NodeConstructors.h911
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/NodeInfo.h4
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/Nodes.cpp1618
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/Nodes.h1973
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/Parser.cpp26
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/Parser.h35
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/ParserArena.cpp60
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/ParserArena.h64
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/ResultType.h77
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/parser/SourceProvider.h10
-rwxr-xr-xsrc/3rdparty/webkit/JavaScriptCore/pcre/dftables2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/pcre/pcre_compile.cpp23
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/pcre/pcre_exec.cpp5
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/pcre/pcre_internal.h36
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/CallIdentifier.h34
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/HeavyProfile.cpp115
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/HeavyProfile.h63
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/Profile.cpp3
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/Profile.h11
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/ProfileGenerator.cpp4
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/ProfileGenerator.h1
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/ProfileNode.cpp6
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/ProfileNode.h10
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/Profiler.cpp24
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/Profiler.h8
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/TreeProfile.cpp51
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/profiler/TreeProfile.h51
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ArgList.cpp17
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ArgList.h76
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Arguments.cpp68
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Arguments.h20
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ArrayConstructor.cpp11
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ArrayPrototype.cpp633
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/BooleanConstructor.cpp8
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/BooleanConstructor.h2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/BooleanObject.h4
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/BooleanPrototype.cpp19
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/CallData.cpp2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/CallData.h8
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp77
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Collector.h14
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/CommonIdentifiers.h5
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Completion.cpp12
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Completion.h10
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ConstructData.cpp2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ConstructData.h4
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/DateConstructor.cpp91
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/DateInstance.h6
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/DateMath.cpp146
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/DatePrototype.cpp410
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/DatePrototype.h2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Error.cpp3
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ErrorConstructor.cpp6
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ErrorPrototype.cpp19
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ExceptionHelpers.cpp51
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ExceptionHelpers.h14
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/FunctionConstructor.cpp27
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/FunctionConstructor.h4
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/FunctionPrototype.cpp100
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/FunctionPrototype.h6
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/GetterSetter.cpp8
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/GetterSetter.h8
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Identifier.cpp16
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/InitializeThreading.cpp2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/InternalFunction.cpp20
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/InternalFunction.h10
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSActivation.cpp14
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSActivation.h14
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSArray.cpp214
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSArray.h38
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSByteArray.cpp12
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSByteArray.h36
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSCell.cpp21
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSCell.h49
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSFunction.cpp82
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSFunction.h67
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalData.cpp138
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalData.h99
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObject.cpp138
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObject.h61
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp77
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObjectFunctions.h28
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSImmediate.cpp41
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSImmediate.h609
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSLock.cpp54
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSNotAnObject.cpp11
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSNotAnObject.h10
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSNumberCell.cpp33
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSNumberCell.h396
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSObject.cpp153
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSObject.h317
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSPropertyNameIterator.cpp6
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSPropertyNameIterator.h22
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSStaticScopeObject.cpp4
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSStaticScopeObject.h8
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSString.cpp10
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSString.h14
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSValue.cpp25
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSValue.h373
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSVariableObject.h10
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSWrapperObject.cpp4
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSWrapperObject.h11
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/LiteralParser.cpp306
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/LiteralParser.h112
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Lookup.cpp26
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Lookup.h42
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/MathObject.cpp112
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/MathObject.h2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/NativeErrorConstructor.cpp10
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/NativeFunctionWrapper.h39
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/NumberConstructor.cpp34
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/NumberConstructor.h4
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/NumberObject.cpp11
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/NumberObject.h7
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/NumberPrototype.cpp108
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ObjectConstructor.cpp9
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ObjectPrototype.cpp89
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ObjectPrototype.h2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Operations.cpp84
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Operations.h411
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/PropertyMapHashTable.h7
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/PropertyNameArray.cpp2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/PropertyNameArray.h10
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/PropertySlot.cpp2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/PropertySlot.h44
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Protect.h76
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/PutPropertySlot.h12
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.cpp156
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.h14
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/RegExpConstructor.cpp98
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/RegExpConstructor.h16
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/RegExpMatchesArray.h4
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/RegExpObject.cpp37
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/RegExpObject.h12
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/RegExpPrototype.cpp55
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/ScopeChain.h15
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/SmallStrings.cpp68
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/SmallStrings.h12
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/StringConstructor.cpp17
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/StringObject.cpp2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/StringObject.h10
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/StringObjectThatMasqueradesAsUndefined.h2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/StringPrototype.cpp535
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Structure.cpp263
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Structure.h61
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/StructureChain.cpp38
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/StructureChain.h7
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/StructureTransitionTable.h13
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/TimeoutChecker.cpp154
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/TimeoutChecker.h73
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/TypeInfo.h15
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/UString.cpp500
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/UString.h240
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wrec/WREC.cpp7
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wrec/WRECGenerator.cpp98
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wrec/WRECGenerator.h22
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wrec/WRECParser.cpp36
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/ASCIICType.h16
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/AVLTree.h2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/AlwaysInline.h12
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/Assertions.h2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/ByteArray.cpp (renamed from src/3rdparty/webkit/JavaScriptCore/runtime/ByteArray.cpp)2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/ByteArray.h (renamed from src/3rdparty/webkit/JavaScriptCore/runtime/ByteArray.h)14
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/CONTRIBUTORS.pthreads-win32137
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/CrossThreadRefCounted.h169
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/CurrentTime.cpp232
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/CurrentTime.h47
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/Deque.h121
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/FastAllocBase.h400
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.cpp417
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.h89
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/GOwnPtr.cpp6
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/GOwnPtr.h1
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/HashTraits.h43
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/MainThread.cpp73
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/MainThread.h4
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/MessageQueue.h53
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/NotFound.h2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/OwnFastMallocPtr.h52
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/OwnPtr.h93
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/OwnPtrCommon.h58
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/PassOwnPtr.h177
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/PassRefPtr.h2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h131
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/PtrAndFlags.h53
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/RandomNumber.cpp47
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/RandomNumber.h8
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/RandomNumberSeed.h9
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/RefCounted.h35
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/RetainPtr.h11
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/StdLibExtras.h25
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/StringExtras.h4
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/TCPageMap.h33
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/TCSystemAlloc.cpp56
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/TCSystemAlloc.h8
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/ThreadSpecific.h59
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/ThreadSpecificWin.cpp17
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/Threading.cpp24
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/Threading.h84
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/ThreadingGtk.cpp244
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/ThreadingNone.cpp7
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/ThreadingPthreads.cpp139
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/ThreadingWin.cpp355
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/TypeTraits.cpp120
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/TypeTraits.h339
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/VMTags.h55
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h25
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/VectorTraits.h19
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/dtoa.cpp900
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/dtoa.h3
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/qt/MainThreadQt.cpp5
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/qt/ThreadingQt.cpp (renamed from src/3rdparty/webkit/JavaScriptCore/wtf/ThreadingQt.cpp)20
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/unicode/Unicode.h4
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/unicode/glib/UnicodeGLib.cpp214
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/unicode/glib/UnicodeGLib.h238
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/unicode/glib/UnicodeMacrosFromICU.h69
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/unicode/icu/UnicodeIcu.h11
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/unicode/qt4/UnicodeQt4.h17
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/yarr/RegexCompiler.cpp728
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/yarr/RegexCompiler.h45
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/yarr/RegexInterpreter.cpp1638
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/yarr/RegexInterpreter.h337
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/yarr/RegexJIT.cpp1390
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/yarr/RegexJIT.h91
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/yarr/RegexParser.h854
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/yarr/RegexPattern.h356
-rw-r--r--src/3rdparty/webkit/VERSION4
-rw-r--r--src/3rdparty/webkit/WebCore/ChangeLog55084
-rw-r--r--src/3rdparty/webkit/WebCore/DerivedSources.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/debugger/Debugger.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/debugger/DebuggerActivation.h4
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/debugger/DebuggerCallFrame.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/interpreter/CallFrame.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/interpreter/Interpreter.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/jit/JITCode.h4
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/masm/X86Assembler.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/parser/Parser.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/parser/SourceCode.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/parser/SourceProvider.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/pcre/pcre.h4
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/profiler/Profile.h4
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/profiler/ProfileNode.h4
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/profiler/Profiler.h4
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/ArgList.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/ArrayPrototype.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/BooleanObject.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/ByteArray.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/CallData.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/Collector.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/CollectorHeapIterator.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/Completion.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/ConstructData.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/DateInstance.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/DateMath.h4
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/Error.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/FunctionConstructor.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/FunctionPrototype.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/Identifier.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/InitializeThreading.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/InternalFunction.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/JSArray.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/JSByteArray.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/JSFunction.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/JSGlobalData.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/JSGlobalObject.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/JSLock.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/JSNumberCell.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/JSObject.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/JSString.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/JSValue.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/Lookup.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/ObjectPrototype.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/Operations.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/PropertyMap.h4
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/PropertyNameArray.h4
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/Protect.h4
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/PrototypeFunction.h4
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/StringObject.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/StringObjectThatMasqueradesAsUndefined.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/StringPrototype.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/Structure.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/SymbolTable.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/runtime/UString.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wrec/WREC.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/ASCIICType.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/AlwaysInline.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/Assertions.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/ByteArray.h4
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/CrossThreadRefCounted.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/CurrentTime.h4
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/Deque.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/DisallowCType.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/FastMalloc.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/Forward.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/GetPtr.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/HashCountedSet.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/HashFunctions.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/HashMap.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/HashSet.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/HashTable.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/HashTraits.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/ListHashSet.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/ListRefPtr.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/Locker.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/MainThread.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/MathExtras.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/MessageQueue.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/Noncopyable.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/NotFound.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/OwnArrayPtr.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/OwnFastMallocPtr.h1
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/OwnPtr.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/OwnPtrCommon.h4
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/PassOwnPtr.h4
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/PassRefPtr.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/Platform.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/PtrAndFlags.h5
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/RandomNumber.h4
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/RefCounted.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/RefCountedLeakCounter.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/RefPtr.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/RetainPtr.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/StdLibExtras.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/StringExtras.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/ThreadSpecific.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/Threading.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/TypeTraits.h4
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/UnusedParam.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/VMTags.h4
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/Vector.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/VectorTraits.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/dtoa.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/unicode/Collator.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/unicode/UTF8.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/unicode/Unicode.h3
-rw-r--r--src/3rdparty/webkit/WebCore/ForwardingHeaders/wtf/unicode/icu/UnicodeIcu.h3
-rw-r--r--src/3rdparty/webkit/WebCore/Info.plist2
-rw-r--r--src/3rdparty/webkit/WebCore/Resources/panIcon.pngbin0 -> 175 bytes
-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.LP64.exp12
-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.NPAPI.exp7
-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.VideoProxy.exp4
-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.order34327
-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.pro531
-rw-r--r--src/3rdparty/webkit/WebCore/WebCorePrefix.h10
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AXObjectCache.cpp (renamed from src/3rdparty/webkit/WebCore/page/AXObjectCache.cpp)138
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AXObjectCache.h (renamed from src/3rdparty/webkit/WebCore/page/AXObjectCache.h)29
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityARIAGrid.cpp154
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityARIAGrid.h60
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityARIAGridCell.cpp96
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityARIAGridCell.h55
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityARIAGridRow.cpp75
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityARIAGridRow.h50
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityImageMapLink.cpp (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityImageMapLink.cpp)10
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityImageMapLink.h (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityImageMapLink.h)3
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityList.cpp (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityList.cpp)18
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityList.h (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityList.h)6
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityListBox.cpp (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityListBox.cpp)20
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityListBox.h (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityListBox.h)0
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityListBoxOption.cpp (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityListBoxOption.cpp)6
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityListBoxOption.h (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityListBoxOption.h)0
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityObject.cpp (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityObject.cpp)35
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityObject.h (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityObject.h)16
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityRenderObject.cpp (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityRenderObject.cpp)496
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityRenderObject.h (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityRenderObject.h)16
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityTable.cpp (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityTable.cpp)46
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityTable.h (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityTable.h)17
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityTableCell.cpp (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityTableCell.cpp)25
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityTableCell.h (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityTableCell.h)10
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityTableColumn.cpp (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityTableColumn.cpp)26
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityTableColumn.h (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityTableColumn.h)0
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityTableHeaderContainer.cpp (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityTableHeaderContainer.cpp)0
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityTableHeaderContainer.h (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityTableHeaderContainer.h)0
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityTableRow.cpp (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityTableRow.cpp)20
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/AccessibilityTableRow.h (renamed from src/3rdparty/webkit/WebCore/page/AccessibilityTableRow.h)8
-rw-r--r--src/3rdparty/webkit/WebCore/accessibility/qt/AccessibilityObjectQt.cpp (renamed from src/3rdparty/webkit/WebCore/page/qt/AccessibilityObjectQt.cpp)0
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/GCController.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSAttrCustom.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSAudioConstructor.cpp25
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSAudioConstructor.h6
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCDATASectionCustom.cpp43
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCSSRuleCustom.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCSSValueCustom.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp200
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSClipboardCustom.cpp24
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSConsoleCustom.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCoordinatesCustom.cpp67
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomPositionCallback.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomPositionErrorCallback.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomSQLStatementCallback.cpp17
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomSQLStatementCallback.h4
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp22
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomSQLStatementErrorCallback.h4
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomSQLTransactionCallback.cpp19
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomSQLTransactionCallback.h4
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomSQLTransactionErrorCallback.cpp45
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomSQLTransactionErrorCallback.h5
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomVoidCallback.cpp19
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomVoidCallback.h2
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomXPathNSResolver.cpp28
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSCustomXPathNSResolver.h2
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMApplicationCacheCustom.cpp64
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.cpp167
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.h53
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMGlobalObject.cpp82
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMGlobalObject.h35
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMStringListCustom.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowBase.cpp631
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowBase.h37
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowCustom.cpp461
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowCustom.h51
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowShell.cpp34
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowShell.h14
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDatabaseCustom.cpp33
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDocumentCustom.cpp24
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSElementCustom.cpp30
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSEventCustom.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSEventListener.cpp281
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSEventListener.h98
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSEventTarget.cpp60
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSEventTarget.h3
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSEventTargetBase.h92
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSGeolocationCustom.cpp49
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLAllCollection.h2
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLAppletElementCustom.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLCollectionCustom.cpp30
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLDocumentCustom.cpp63
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLEmbedElementCustom.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLFormElementCustom.cpp13
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLFrameElementCustom.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLFrameSetElementCustom.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLIFrameElementCustom.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLInputElementCustom.cpp82
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLObjectElementCustom.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp16
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLSelectElementCustom.cpp12
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHTMLSelectElementCustom.h2
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSHistoryCustom.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSImageConstructor.cpp27
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSImageConstructor.h6
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSImageDataCustom.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSInspectedObjectWrapper.cpp18
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSInspectedObjectWrapper.h6
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSInspectorCallbackWrapper.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSInspectorCallbackWrapper.h6
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSInspectorControllerCustom.cpp298
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSJavaScriptCallFrameCustom.cpp18
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSLazyEventListener.cpp129
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSLazyEventListener.h56
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSLocationCustom.cpp141
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSMessageChannelConstructor.cpp31
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSMessageChannelConstructor.h7
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSMessagePortCustom.cpp33
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSMimeTypeArrayCustom.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNamedNodeMapCustom.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNamedNodesCollection.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNamedNodesCollection.h10
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNavigatorCustom.cpp86
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNodeCustom.cpp77
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNodeFilterCondition.cpp16
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNodeFilterCondition.h6
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNodeFilterCustom.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNodeIteratorCustom.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNodeListCustom.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSOptionConstructor.cpp42
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSOptionConstructor.h6
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSPluginArrayCustom.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSPluginCustom.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSPluginElementFunctions.cpp16
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSPluginElementFunctions.h6
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSQuarantinedObjectWrapper.cpp49
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSQuarantinedObjectWrapper.h18
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSRGBColor.cpp16
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSRGBColor.h8
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSSQLResultSetRowListCustom.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSSQLTransactionCustom.cpp34
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSSVGElementInstanceCustom.cpp40
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSSVGLengthCustom.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSSVGMatrixCustom.cpp84
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSSVGPODTypeWrapper.h1
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSSVGPathSegCustom.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSSVGPathSegListCustom.cpp42
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSSVGPointListCustom.cpp36
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSSVGTransformListCustom.cpp36
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSStorageCustom.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSStyleSheetCustom.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSStyleSheetListCustom.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSTextCustom.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSTreeWalkerCustom.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSWebKitCSSMatrixConstructor.cpp63
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSWebKitCSSMatrixConstructor.h46
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSWebKitPointConstructor.cpp (renamed from src/3rdparty/webkit/WebCore/bindings/js/JSEventTargetNodeCustom.cpp)59
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSWebKitPointConstructor.h46
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSWorkerConstructor.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSWorkerContextBase.cpp40
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSWorkerContextBase.h6
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSWorkerContextCustom.cpp97
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSWorkerCustom.cpp27
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSXMLHttpRequestConstructor.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSXMLHttpRequestConstructor.h7
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp87
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSXMLHttpRequestUploadCustom.cpp39
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSXSLTProcessorConstructor.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSXSLTProcessorCustom.cpp46
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScheduledAction.cpp126
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScheduledAction.h29
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptCachedFrameData.cpp (renamed from src/3rdparty/webkit/WebCore/bindings/js/ScriptCachedPageData.cpp)22
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptCachedFrameData.h (renamed from src/3rdparty/webkit/WebCore/bindings/js/ScriptCachedPageData.h)17
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptCallFrame.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptCallFrame.h2
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptCallStack.cpp12
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptController.cpp133
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptController.h21
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptControllerMac.mm14
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptEventListener.cpp90
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptEventListener.h49
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptFunctionCall.cpp176
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptFunctionCall.h77
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptObject.cpp154
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptObject.h72
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptObjectQuarantine.cpp122
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptObjectQuarantine.h59
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptState.cpp60
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptState.h9
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptString.h5
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptValue.cpp18
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/ScriptValue.h12
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/WorkerScriptController.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/WorkerScriptController.h4
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/scripts/CodeGenerator.pm8
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/scripts/CodeGeneratorCOM.pm13
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/scripts/CodeGeneratorJS.pm331
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/scripts/CodeGeneratorObjC.pm464
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/scripts/InFilesParser.pm14
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/IdentifierRep.cpp111
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/IdentifierRep.h74
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/NP_jsobject.cpp109
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/c/c_class.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/c/c_class.h1
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/c/c_instance.cpp84
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/c/c_instance.h34
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/c/c_runtime.cpp22
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/c/c_runtime.h9
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/c/c_utility.cpp24
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/c/c_utility.h22
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_class.cpp12
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_class.h4
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_instance.cpp26
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_instance.h14
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_jsobject.h7
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_jsobject.mm44
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_objc.mm2
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_runtime.cpp30
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_runtime.h16
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_utility.cpp60
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/jni/jni_utility.h4
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/npapi.h49
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/npruntime.cpp96
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/qt/qt_class.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/qt/qt_class.h2
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/qt/qt_instance.cpp104
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/qt/qt_instance.h23
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp139
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.h29
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/runtime.cpp34
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/runtime.h50
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/runtime_array.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/runtime_array.h14
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/runtime_method.cpp12
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/runtime_method.h8
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/runtime_object.cpp51
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/runtime_object.h21
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/testbindings.mm2
-rw-r--r--src/3rdparty/webkit/WebCore/config.h24
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSCanvasValue.cpp7
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSCanvasValue.h5
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSCharsetRule.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSComputedStyleDeclaration.cpp346
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSComputedStyleDeclaration.h1
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSCursorImageValue.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSFontFaceSource.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSFontSelector.cpp30
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSGrammar.y27
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSMutableStyleDeclaration.cpp241
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSMutableStyleDeclaration.h4
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSParser.cpp253
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSParser.h12
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSParserValues.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSParserValues.h2
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSPrimitiveValue.cpp21
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSPrimitiveValue.h2
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSPrimitiveValue.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSPrimitiveValueMappings.h25
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSPropertyLonghand.cpp213
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSPropertyLonghand.h53
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSPropertyNames.in15
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSRule.idl4
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSSelector.cpp20
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSSelector.h4
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSSelectorList.cpp31
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSStyleDeclaration.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSStyleDeclaration.h1
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSStyleSelector.cpp832
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSStyleSelector.h19
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSStyleSheet.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSValue.idl4
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSValueKeywords.in15
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSVariablesDeclaration.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSVariablesDeclaration.h2
-rw-r--r--src/3rdparty/webkit/WebCore/css/MediaFeatureNames.h4
-rw-r--r--src/3rdparty/webkit/WebCore/css/MediaQueryEvaluator.cpp65
-rw-r--r--src/3rdparty/webkit/WebCore/css/MediaQueryExp.h6
-rw-r--r--src/3rdparty/webkit/WebCore/css/RGBColor.idl4
-rw-r--r--src/3rdparty/webkit/WebCore/css/SVGCSSComputedStyleDeclaration.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/css/SVGCSSParser.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/css/SVGCSSStyleSelector.cpp121
-rw-r--r--src/3rdparty/webkit/WebCore/css/StyleSheet.idl4
-rw-r--r--src/3rdparty/webkit/WebCore/css/WebKitCSSMatrix.cpp186
-rw-r--r--src/3rdparty/webkit/WebCore/css/WebKitCSSMatrix.h159
-rw-r--r--src/3rdparty/webkit/WebCore/css/WebKitCSSMatrix.idl86
-rw-r--r--src/3rdparty/webkit/WebCore/css/WebKitCSSTransformValue.cpp30
-rw-r--r--src/3rdparty/webkit/WebCore/css/WebKitCSSTransformValue.h12
-rw-r--r--src/3rdparty/webkit/WebCore/css/WebKitCSSTransformValue.idl10
-rw-r--r--src/3rdparty/webkit/WebCore/css/html4.css7
-rw-r--r--src/3rdparty/webkit/WebCore/css/maketokenizer7
-rw-r--r--src/3rdparty/webkit/WebCore/css/mediaControls.css23
-rw-r--r--src/3rdparty/webkit/WebCore/css/mediaControlsChromium.css165
-rw-r--r--src/3rdparty/webkit/WebCore/css/mediaControlsQT.css133
-rw-r--r--src/3rdparty/webkit/WebCore/css/themeWin.css38
-rw-r--r--src/3rdparty/webkit/WebCore/css/themeWinQuirks.css2
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Attr.h2
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Attr.idl4
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Attribute.h4
-rw-r--r--src/3rdparty/webkit/WebCore/dom/CharacterData.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/dom/CharacterData.h8
-rw-r--r--src/3rdparty/webkit/WebCore/dom/CharacterData.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/dom/CheckedRadioButtons.cpp86
-rw-r--r--src/3rdparty/webkit/WebCore/dom/CheckedRadioButtons.h (renamed from src/3rdparty/webkit/WebCore/rendering/RenderLegend.cpp)35
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ClassNames.h2
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ClientRect.cpp (renamed from src/3rdparty/webkit/WebCore/dom/WorkerTask.cpp)16
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ClientRect.h59
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ClientRect.idl (renamed from src/3rdparty/webkit/WebCore/dom/WorkerTask.h)34
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ClientRectList.cpp66
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ClientRectList.h57
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ClientRectList.idl38
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Clipboard.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ContainerNode.cpp217
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ContainerNode.h17
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DOMCoreException.idl9
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DOMImplementation.cpp34
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DOMImplementation.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Document.cpp946
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Document.h209
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Document.idl45
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DocumentFragment.idl7
-rw-r--r--src/3rdparty/webkit/WebCore/dom/DocumentMarker.h6
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Element.cpp281
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Element.h56
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Element.idl20
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ElementRareData.h13
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Event.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Event.h2
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Event.idl10
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventException.idl5
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventListener.h21
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventListener.idl1
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventNames.h9
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventTarget.cpp7
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventTarget.h8
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventTarget.idl6
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventTargetNode.cpp1166
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventTargetNode.h206
-rw-r--r--src/3rdparty/webkit/WebCore/dom/EventTargetNode.idl84
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ExceptionCode.cpp9
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ExceptionCode.h8
-rw-r--r--src/3rdparty/webkit/WebCore/dom/InputElement.cpp304
-rw-r--r--src/3rdparty/webkit/WebCore/dom/InputElement.h123
-rw-r--r--src/3rdparty/webkit/WebCore/dom/KeyboardEvent.idl6
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MessagePort.cpp56
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MessagePort.h21
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MessagePort.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MessagePortProxy.h54
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MouseEvent.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MouseEvent.h11
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MouseEvent.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MouseRelatedEvent.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/dom/MouseRelatedEvent.h11
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NamedAttrMap.cpp64
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NamedAttrMap.h74
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NamedMappedAttrMap.cpp7
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NamedMappedAttrMap.h24
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NamedNodeMap.h65
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Node.cpp1349
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Node.h206
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Node.idl73
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NodeFilter.h1
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NodeIterator.h1
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NodeRareData.h12
-rw-r--r--src/3rdparty/webkit/WebCore/dom/OptionElement.cpp150
-rw-r--r--src/3rdparty/webkit/WebCore/dom/OptionElement.h78
-rw-r--r--src/3rdparty/webkit/WebCore/dom/OptionGroupElement.cpp58
-rw-r--r--src/3rdparty/webkit/WebCore/dom/OptionGroupElement.h (renamed from src/3rdparty/webkit/WebCore/dom/FormControlElement.h)22
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Position.cpp338
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Position.h121
-rw-r--r--src/3rdparty/webkit/WebCore/dom/PositionIterator.cpp110
-rw-r--r--src/3rdparty/webkit/WebCore/dom/PositionIterator.h22
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ProcessingInstruction.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/dom/QualifiedName.cpp37
-rw-r--r--src/3rdparty/webkit/WebCore/dom/QualifiedName.h34
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Range.cpp110
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Range.h8
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Range.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/dom/RangeBoundaryPoint.h116
-rw-r--r--src/3rdparty/webkit/WebCore/dom/RangeException.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/dom/RegisteredEventListener.h22
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ScriptElement.cpp56
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ScriptElement.h8
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ScriptExecutionContext.cpp16
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ScriptExecutionContext.h21
-rw-r--r--src/3rdparty/webkit/WebCore/dom/SelectElement.cpp928
-rw-r--r--src/3rdparty/webkit/WebCore/dom/SelectElement.h176
-rw-r--r--src/3rdparty/webkit/WebCore/dom/StyleElement.cpp27
-rw-r--r--src/3rdparty/webkit/WebCore/dom/StyledElement.cpp29
-rw-r--r--src/3rdparty/webkit/WebCore/dom/StyledElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Text.cpp41
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Text.h1
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Tokenizer.h2
-rw-r--r--src/3rdparty/webkit/WebCore/dom/TreeWalker.h1
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WheelEvent.cpp11
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WheelEvent.h6
-rw-r--r--src/3rdparty/webkit/WebCore/dom/WheelEvent.idl4
-rw-r--r--src/3rdparty/webkit/WebCore/dom/XMLTokenizer.cpp80
-rw-r--r--src/3rdparty/webkit/WebCore/dom/XMLTokenizer.h15
-rw-r--r--src/3rdparty/webkit/WebCore/dom/XMLTokenizerLibxml2.cpp237
-rw-r--r--src/3rdparty/webkit/WebCore/dom/XMLTokenizerQt.cpp124
-rw-r--r--src/3rdparty/webkit/WebCore/dom/XMLTokenizerScope.cpp68
-rw-r--r--src/3rdparty/webkit/WebCore/dom/XMLTokenizerScope.h (renamed from src/3rdparty/webkit/WebCore/page/chromium/AccessibilityObjectWrapper.h)44
-rwxr-xr-xsrc/3rdparty/webkit/WebCore/dom/make_names.pl251
-rw-r--r--src/3rdparty/webkit/WebCore/editing/ApplyStyleCommand.cpp385
-rw-r--r--src/3rdparty/webkit/WebCore/editing/ApplyStyleCommand.h11
-rw-r--r--src/3rdparty/webkit/WebCore/editing/BreakBlockquoteCommand.cpp61
-rw-r--r--src/3rdparty/webkit/WebCore/editing/CompositeEditCommand.cpp158
-rw-r--r--src/3rdparty/webkit/WebCore/editing/CompositeEditCommand.h6
-rw-r--r--src/3rdparty/webkit/WebCore/editing/CreateLinkCommand.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/editing/DeleteButtonController.cpp112
-rw-r--r--src/3rdparty/webkit/WebCore/editing/DeleteButtonController.h4
-rw-r--r--src/3rdparty/webkit/WebCore/editing/DeleteSelectionCommand.cpp107
-rw-r--r--src/3rdparty/webkit/WebCore/editing/DeleteSelectionCommand.h8
-rw-r--r--src/3rdparty/webkit/WebCore/editing/EditCommand.cpp12
-rw-r--r--src/3rdparty/webkit/WebCore/editing/EditCommand.h14
-rw-r--r--src/3rdparty/webkit/WebCore/editing/Editor.cpp855
-rw-r--r--src/3rdparty/webkit/WebCore/editing/Editor.h38
-rw-r--r--src/3rdparty/webkit/WebCore/editing/EditorCommand.cpp103
-rw-r--r--src/3rdparty/webkit/WebCore/editing/FormatBlockCommand.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/editing/IndentOutdentCommand.cpp40
-rw-r--r--src/3rdparty/webkit/WebCore/editing/InsertLineBreakCommand.cpp41
-rw-r--r--src/3rdparty/webkit/WebCore/editing/InsertListCommand.cpp30
-rw-r--r--src/3rdparty/webkit/WebCore/editing/InsertListCommand.h7
-rw-r--r--src/3rdparty/webkit/WebCore/editing/InsertParagraphSeparatorCommand.cpp128
-rw-r--r--src/3rdparty/webkit/WebCore/editing/InsertTextCommand.cpp45
-rw-r--r--src/3rdparty/webkit/WebCore/editing/ModifySelectionListLevel.cpp24
-rw-r--r--src/3rdparty/webkit/WebCore/editing/MoveSelectionCommand.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/editing/RemoveCSSPropertyCommand.h1
-rw-r--r--src/3rdparty/webkit/WebCore/editing/RemoveFormatCommand.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/editing/RemoveNodeAttributeCommand.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/editing/RemoveNodeAttributeCommand.h1
-rw-r--r--src/3rdparty/webkit/WebCore/editing/RemoveNodePreservingChildrenCommand.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/editing/ReplaceNodeWithSpanCommand.cpp87
-rw-r--r--src/3rdparty/webkit/WebCore/editing/ReplaceNodeWithSpanCommand.h62
-rw-r--r--src/3rdparty/webkit/WebCore/editing/ReplaceSelectionCommand.cpp196
-rw-r--r--src/3rdparty/webkit/WebCore/editing/ReplaceSelectionCommand.h11
-rw-r--r--src/3rdparty/webkit/WebCore/editing/SelectionController.cpp230
-rw-r--r--src/3rdparty/webkit/WebCore/editing/SelectionController.h28
-rw-r--r--src/3rdparty/webkit/WebCore/editing/SmartReplaceCF.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/editing/SplitElementCommand.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/editing/TextAffinity.h14
-rw-r--r--src/3rdparty/webkit/WebCore/editing/TextIterator.cpp136
-rw-r--r--src/3rdparty/webkit/WebCore/editing/TextIterator.h21
-rw-r--r--src/3rdparty/webkit/WebCore/editing/TypingCommand.cpp178
-rw-r--r--src/3rdparty/webkit/WebCore/editing/TypingCommand.h4
-rw-r--r--src/3rdparty/webkit/WebCore/editing/VisiblePosition.cpp82
-rw-r--r--src/3rdparty/webkit/WebCore/editing/VisiblePosition.h8
-rw-r--r--src/3rdparty/webkit/WebCore/editing/VisibleSelection.cpp (renamed from src/3rdparty/webkit/WebCore/editing/Selection.cpp)200
-rw-r--r--src/3rdparty/webkit/WebCore/editing/VisibleSelection.h (renamed from src/3rdparty/webkit/WebCore/editing/Selection.h)77
-rw-r--r--src/3rdparty/webkit/WebCore/editing/android/EditorAndroid.cpp (renamed from src/3rdparty/webkit/WebCore/platform/qt/SystemTimeQt.cpp)23
-rw-r--r--src/3rdparty/webkit/WebCore/editing/chromium/EditorChromium.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/editing/gtk/SelectionControllerGtk.cpp (renamed from src/3rdparty/webkit/WebCore/rendering/ListMarkerBox.cpp)38
-rw-r--r--src/3rdparty/webkit/WebCore/editing/htmlediting.cpp163
-rw-r--r--src/3rdparty/webkit/WebCore/editing/htmlediting.h13
-rw-r--r--src/3rdparty/webkit/WebCore/editing/markup.cpp190
-rw-r--r--src/3rdparty/webkit/WebCore/editing/qt/EditorQt.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/editing/visible_units.cpp469
-rw-r--r--src/3rdparty/webkit/WebCore/editing/visible_units.h3
-rw-r--r--src/3rdparty/webkit/WebCore/generated/ArrayPrototype.lut.h9
-rw-r--r--src/3rdparty/webkit/WebCore/generated/CSSGrammar.cpp2361
-rw-r--r--src/3rdparty/webkit/WebCore/generated/CSSGrammar.h231
-rw-r--r--src/3rdparty/webkit/WebCore/generated/CSSPropertyNames.cpp1251
-rw-r--r--src/3rdparty/webkit/WebCore/generated/CSSPropertyNames.h359
-rw-r--r--src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.c2804
-rw-r--r--src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.h412
-rw-r--r--src/3rdparty/webkit/WebCore/generated/DatePrototype.lut.h7
-rw-r--r--src/3rdparty/webkit/WebCore/generated/Grammar.cpp1701
-rw-r--r--src/3rdparty/webkit/WebCore/generated/Grammar.h109
-rw-r--r--src/3rdparty/webkit/WebCore/generated/HTMLElementFactory.cpp546
-rw-r--r--src/3rdparty/webkit/WebCore/generated/HTMLElementFactory.h56
-rw-r--r--src/3rdparty/webkit/WebCore/generated/HTMLNames.cpp18
-rw-r--r--src/3rdparty/webkit/WebCore/generated/HTMLNames.h13
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSAttr.cpp45
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSAttr.h35
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSBarInfo.cpp20
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSBarInfo.h13
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCDATASection.cpp18
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCDATASection.h12
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSCharsetRule.cpp25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSCharsetRule.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSFontFaceRule.cpp21
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSFontFaceRule.h13
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSImportRule.cpp27
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSImportRule.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSMediaRule.cpp42
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSMediaRule.h21
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSPageRule.cpp28
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSPageRule.h19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSPrimitiveValue.cpp128
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSPrimitiveValue.h81
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSRule.cpp59
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSRule.h49
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSRuleList.cpp39
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSRuleList.h23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSStyleDeclaration.cpp114
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSStyleDeclaration.h49
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSStyleRule.cpp28
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSStyleRule.h19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSStyleSheet.cpp67
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSStyleSheet.h27
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSValue.cpp41
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSValue.h33
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSValueList.cpp32
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSValueList.h19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSVariablesDeclaration.cpp78
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSVariablesDeclaration.h37
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSVariablesRule.cpp24
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCSSVariablesRule.h15
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCanvasGradient.cpp26
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCanvasGradient.h13
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCanvasPattern.cpp17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCanvasPattern.h9
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCanvasRenderingContext2D.cpp511
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCanvasRenderingContext2D.h197
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCharacterData.cpp79
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCharacterData.h37
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSClientRect.cpp200
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSClientRect.h78
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSClientRectList.cpp222
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSClientRectList.h84
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSClipboard.cpp63
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSClipboard.h47
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSComment.cpp18
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSComment.h11
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSConsole.cpp109
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSConsole.h49
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCoordinates.cpp174
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCoordinates.h91
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCounter.cpp34
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSCounter.h21
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMApplicationCache.cpp219
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMApplicationCache.h79
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMCoreException.cpp116
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMCoreException.h64
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMImplementation.cpp82
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMImplementation.h27
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMParser.cpp36
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMParser.h19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMSelection.cpp231
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMSelection.h65
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMStringList.cpp42
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMStringList.h27
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMWindow.cpp2765
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMWindow.h1081
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDOMWindowBase.lut.h31
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDatabase.cpp35
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDatabase.h28
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDocument.cpp504
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDocument.h179
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDocumentFragment.cpp40
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDocumentFragment.h23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDocumentType.cpp41
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSDocumentType.h25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSElement.cpp331
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSElement.h129
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSEntity.cpp27
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSEntity.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSEntityReference.cpp18
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSEntityReference.h11
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSEvent.cpp124
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSEvent.h91
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSEventException.cpp59
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSEventException.h27
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSEventTargetNode.cpp944
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSEventTargetNode.h162
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSFile.cpp31
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSFile.h19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSFileList.cpp39
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSFileList.h23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSGeolocation.cpp37
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSGeolocation.h25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSGeoposition.cpp84
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSGeoposition.h25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLAnchorElement.cpp106
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLAnchorElement.h77
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLAppletElement.cpp75
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLAppletElement.h61
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLAreaElement.cpp78
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLAreaElement.h55
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLAudioElement.cpp18
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLAudioElement.h11
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLBRElement.cpp25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLBRElement.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLBaseElement.cpp30
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLBaseElement.h21
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLBaseFontElement.cpp37
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLBaseFontElement.h25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLBlockquoteElement.cpp25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLBlockquoteElement.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLBodyElement.cpp96
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLBodyElement.h43
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLButtonElement.cpp63
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLButtonElement.h43
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLCanvasElement.cpp52
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLCanvasElement.h27
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLCollection.cpp51
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLCollection.h33
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLDListElement.cpp27
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLDListElement.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLDirectoryElement.cpp27
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLDirectoryElement.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLDivElement.cpp25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLDivElement.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLDocument.cpp122
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLDocument.h89
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLElement.cpp146
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLElement.h73
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLEmbedElement.cpp57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLEmbedElement.h45
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLFieldSetElement.cpp24
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLFieldSetElement.h15
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLFontElement.cpp35
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLFontElement.h25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLFormElement.cpp90
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLFormElement.h58
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLFrameElement.cpp85
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLFrameElement.h65
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLFrameSetElement.cpp30
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLFrameSetElement.h23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLHRElement.cpp42
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLHRElement.h29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLHeadElement.cpp25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLHeadElement.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLHeadingElement.cpp25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLHeadingElement.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLHtmlElement.cpp25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLHtmlElement.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLIFrameElement.cpp82
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLIFrameElement.h63
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLImageElement.cpp110
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLImageElement.h75
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLInputElement.cpp207
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLInputElement.h122
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLIsIndexElement.cpp28
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLIsIndexElement.h19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLLIElement.cpp32
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLLIElement.h21
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLLabelElement.cpp33
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLLabelElement.h23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLLegendElement.cpp33
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLLegendElement.h23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLLinkElement.cpp70
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLLinkElement.h51
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLMapElement.cpp28
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLMapElement.h19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLMarqueeElement.cpp28
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLMarqueeElement.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLMediaElement.cpp319
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLMediaElement.h113
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLMenuElement.cpp27
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLMenuElement.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLMetaElement.cpp40
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLMetaElement.h29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLModElement.cpp30
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLModElement.h21
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLOListElement.cpp39
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLOListElement.h25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLObjectElement.cpp118
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLObjectElement.h89
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLOptGroupElement.cpp32
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLOptGroupElement.h21
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLOptionElement.cpp66
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLOptionElement.h43
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLOptionsCollection.cpp39
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLOptionsCollection.h37
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLParagraphElement.cpp25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLParagraphElement.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLParamElement.cpp40
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLParamElement.h29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLPreElement.cpp34
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLPreElement.h21
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLQuoteElement.cpp25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLQuoteElement.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLScriptElement.cpp57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLScriptElement.h41
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLSelectElement.cpp120
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLSelectElement.h71
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLSourceElement.cpp41
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLSourceElement.h25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLStyleElement.cpp40
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLStyleElement.h27
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableCaptionElement.cpp29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableCaptionElement.h19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableCellElement.cpp99
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableCellElement.h71
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableColElement.cpp52
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableColElement.h37
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableElement.cpp138
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableElement.h83
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableRowElement.cpp70
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableRowElement.h45
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableSectionElement.cpp63
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTableSectionElement.h39
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTextAreaElement.cpp112
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTextAreaElement.h69
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTitleElement.cpp25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLTitleElement.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLUListElement.cpp32
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLUListElement.h21
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLVideoElement.cpp45
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHTMLVideoElement.h29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHistory.cpp39
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSHistory.h25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSImageData.cpp29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSImageData.h19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSInspectorController.cpp773
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSInspectorController.h138
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSJavaScriptCallFrame.cpp45
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSJavaScriptCallFrame.h42
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSKeyboardEvent.cpp66
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSKeyboardEvent.h29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSLocation.cpp86
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSLocation.h85
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMediaError.cpp53
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMediaError.h26
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMediaList.cpp60
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMediaList.h33
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMessageChannel.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMessageChannel.h15
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMessageEvent.cpp54
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMessageEvent.h25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMessagePort.cpp101
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMessagePort.h49
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMimeType.cpp37
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMimeType.h23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMimeTypeArray.cpp48
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMimeTypeArray.h27
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMouseEvent.cpp105
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMouseEvent.h49
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMutationEvent.cpp60
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSMutationEvent.h31
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNamedNodeMap.cpp101
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNamedNodeMap.h37
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNavigator.cpp69
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNavigator.h46
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNode.cpp1165
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNode.h224
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNodeFilter.cpp58
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNodeFilter.h53
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNodeIterator.cpp58
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNodeIterator.h39
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNodeList.cpp39
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNodeList.h25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNotation.cpp24
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNotation.h15
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSOverflowEvent.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSOverflowEvent.h27
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSPlugin.cpp57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSPlugin.h33
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSPluginArray.cpp55
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSPluginArray.h29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSPositionError.cpp39
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSPositionError.h29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSProcessingInstruction.cpp31
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSProcessingInstruction.h21
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSProgressEvent.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSProgressEvent.h21
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSRGBColor.lut.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSRange.cpp244
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSRange.h91
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSRangeException.cpp45
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSRangeException.h29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSRect.cpp37
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSRect.h23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSQLError.cpp28
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSQLError.h20
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSQLResultSet.cpp32
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSQLResultSet.h22
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSQLResultSetRowList.cpp30
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSQLResultSetRowList.h24
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSQLTransaction.cpp27
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSQLTransaction.h20
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAElement.cpp107
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAElement.h53
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAltGlyphElement.cpp29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAltGlyphElement.h19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAngle.cpp75
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAngle.h47
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimateColorElement.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimateColorElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimateElement.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimateElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimateTransformElement.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimateTransformElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedAngle.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedAngle.h15
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedBoolean.cpp29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedBoolean.h19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedEnumeration.cpp29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedEnumeration.h19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedInteger.cpp29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedInteger.h19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedLength.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedLength.h15
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedLengthList.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedLengthList.h15
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedNumber.cpp29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedNumber.h19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedNumberList.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedNumberList.h15
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedPreserveAspectRatio.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedPreserveAspectRatio.h15
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedRect.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedRect.h15
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedString.cpp29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedString.h19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedTransformList.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimatedTransformList.h15
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimationElement.cpp87
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGAnimationElement.h35
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGCircleElement.cpp110
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGCircleElement.h55
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGClipPathElement.cpp104
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGClipPathElement.h51
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGColor.cpp59
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGColor.h31
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGComponentTransferFunctionElement.cpp55
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGComponentTransferFunctionElement.h43
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGCursorElement.cpp40
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGCursorElement.h25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGDefinitionSrcElement.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGDefinitionSrcElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGDefsElement.cpp101
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGDefsElement.h49
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGDescElement.cpp41
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGDescElement.h25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGDocument.cpp22
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGDocument.h13
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGElement.cpp32
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGElement.h23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGElementInstance.cpp624
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGElementInstance.h203
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGElementInstanceList.cpp29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGElementInstanceList.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGElementWrapperFactory.cpp184
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGEllipseElement.cpp113
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGEllipseElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGException.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGException.h31
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEBlendElement.cpp73
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEBlendElement.h51
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEColorMatrixElement.cpp71
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEColorMatrixElement.h49
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEComponentTransferElement.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEComponentTransferElement.h31
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFECompositeElement.cpp87
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFECompositeElement.h61
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEDiffuseLightingElement.cpp59
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEDiffuseLightingElement.h39
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEDisplacementMapElement.cpp77
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEDisplacementMapElement.h53
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEDistantLightElement.cpp20
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEDistantLightElement.h15
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEFloodElement.cpp106
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEFloodElement.h32
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncAElement.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncAElement.h9
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncBElement.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncBElement.h9
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncGElement.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncGElement.h9
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncRElement.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEFuncRElement.h9
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEGaussianBlurElement.cpp62
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEGaussianBlurElement.h37
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEImageElement.cpp66
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEImageElement.h43
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEMergeElement.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEMergeElement.h29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEMergeNodeElement.cpp17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEMergeNodeElement.h13
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEOffsetElement.cpp53
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEOffsetElement.h35
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEPointLightElement.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFEPointLightElement.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFESpecularLightingElement.cpp56
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFESpecularLightingElement.h37
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFESpotLightElement.cpp38
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFESpotLightElement.h27
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFETileElement.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFETileElement.h31
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFETurbulenceElement.cpp82
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFETurbulenceElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFilterElement.cpp84
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFilterElement.h51
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontElement.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceElement.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceFormatElement.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceFormatElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceNameElement.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceNameElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceSrcElement.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceSrcElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceUriElement.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGFontFaceUriElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGForeignObjectElement.cpp113
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGForeignObjectElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGGElement.cpp101
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGGElement.h49
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGGlyphElement.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGGlyphElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGGradientElement.cpp56
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGGradientElement.h37
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGHKernElement.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGHKernElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGImageElement.cpp119
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGImageElement.h61
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGLength.cpp84
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGLength.h63
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGLengthList.cpp83
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGLengthList.h29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGLineElement.cpp113
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGLineElement.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGLinearGradientElement.cpp22
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGLinearGradientElement.h15
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGMarkerElement.cpp103
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGMarkerElement.h65
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGMaskElement.cpp80
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGMaskElement.h47
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGMatrix.cpp189
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGMatrix.h74
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGMetadataElement.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGMetadataElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGMissingGlyphElement.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGMissingGlyphElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGNumber.cpp26
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGNumber.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGNumberList.cpp83
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGNumberList.h29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPaint.cpp64
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPaint.h41
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathElement.cpp390
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathElement.h103
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSeg.cpp69
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSeg.h61
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegArcAbs.cpp61
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegArcAbs.h37
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegArcRel.cpp61
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegArcRel.h37
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegClosePath.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegClosePath.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicAbs.cpp54
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicAbs.h33
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicRel.cpp54
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicRel.h33
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicSmoothAbs.cpp40
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicSmoothAbs.h25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicSmoothRel.cpp40
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoCubicSmoothRel.h25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticAbs.cpp40
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticAbs.h25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticRel.cpp40
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticRel.h25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticSmoothAbs.cpp26
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticSmoothAbs.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticSmoothRel.cpp26
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegCurvetoQuadraticSmoothRel.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoAbs.cpp26
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoAbs.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoHorizontalAbs.cpp19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoHorizontalAbs.h13
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoHorizontalRel.cpp19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoHorizontalRel.h13
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoRel.cpp26
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoRel.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoVerticalAbs.cpp19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoVerticalAbs.h13
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoVerticalRel.cpp19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegLinetoVerticalRel.h13
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegList.cpp55
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegList.h43
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegMovetoAbs.cpp26
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegMovetoAbs.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegMovetoRel.cpp26
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPathSegMovetoRel.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPatternElement.cpp92
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPatternElement.h55
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPoint.cpp42
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPoint.h25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPointList.cpp55
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPointList.h43
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPolygonElement.cpp107
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPolygonElement.h53
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPolylineElement.cpp107
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPolylineElement.h53
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPreserveAspectRatio.cpp69
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGPreserveAspectRatio.h55
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGRadialGradientElement.cpp25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGRadialGradientElement.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGRect.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGRect.h29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGRectElement.cpp119
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGRectElement.h61
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGRenderingIntent.cpp37
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGRenderingIntent.h29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGSVGElement.cpp339
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGSVGElement.h141
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGScriptElement.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGScriptElement.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGSetElement.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGSetElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGStopElement.cpp28
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGStopElement.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGStringList.cpp83
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGStringList.h29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGStyleElement.cpp40
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGStyleElement.h25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGSwitchElement.cpp101
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGSwitchElement.h49
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGSymbolElement.cpp50
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGSymbolElement.h31
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTRefElement.cpp13
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTRefElement.h9
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTSpanElement.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTSpanElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTextContentElement.cpp194
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTextContentElement.h67
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTextElement.cpp49
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTextElement.h23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTextPathElement.cpp42
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTextPathElement.h33
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTextPositioningElement.cpp25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTextPositioningElement.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTitleElement.cpp41
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTitleElement.h25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTransform.cpp98
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTransform.h49
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTransformList.cpp71
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGTransformList.h47
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGUnitTypes.cpp31
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGUnitTypes.h23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGUseElement.cpp122
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGUseElement.h63
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGViewElement.cpp37
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGViewElement.h29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGZoomEvent.cpp27
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSSVGZoomEvent.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSScreen.cpp41
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSScreen.h27
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSStorage.cpp69
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSStorage.h35
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSStorageEvent.cpp73
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSStorageEvent.h26
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSStyleSheet.cpp50
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSStyleSheet.h33
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSStyleSheetList.cpp39
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSStyleSheetList.h25
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSText.cpp39
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSText.h20
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSTextEvent.cpp36
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSTextEvent.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSTextMetrics.cpp28
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSTextMetrics.h17
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSTimeRanges.cpp38
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSTimeRanges.h19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSTreeWalker.cpp79
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSTreeWalker.h59
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSUIEvent.cpp60
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSUIEvent.h33
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSVoidCallback.cpp18
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSVoidCallback.h13
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitAnimationEvent.cpp39
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitAnimationEvent.h19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitCSSKeyframeRule.cpp30
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitCSSKeyframeRule.h19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitCSSKeyframesRule.cpp53
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitCSSKeyframesRule.h29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitCSSMatrix.cpp556
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitCSSMatrix.h130
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitCSSTransformValue.cpp121
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitCSSTransformValue.h47
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitPoint.cpp137
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitPoint.h75
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitTransitionEvent.cpp39
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWebKitTransitionEvent.h19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWheelEvent.cpp63
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWheelEvent.h41
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWorker.cpp78
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWorker.h37
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWorkerContext.cpp186
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWorkerContext.h57
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWorkerContextBase.lut.h18
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWorkerLocation.cpp56
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWorkerLocation.h35
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWorkerNavigator.cpp32
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSWorkerNavigator.h21
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequest.cpp226
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequest.h99
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestException.cpp61
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestException.h29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestProgressEvent.cpp38
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestProgressEvent.h15
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestUpload.cpp134
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXMLHttpRequestUpload.h49
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXMLSerializer.cpp34
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXMLSerializer.h19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXPathEvaluator.cpp66
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXPathEvaluator.h23
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXPathException.cpp45
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXPathException.h29
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXPathExpression.cpp38
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXPathExpression.h19
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXPathNSResolver.cpp26
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXPathNSResolver.h13
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXPathResult.cpp87
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXPathResult.h55
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXSLTProcessor.cpp177
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSXSLTProcessor.h89
-rw-r--r--src/3rdparty/webkit/WebCore/generated/Lexer.lut.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/MathObject.lut.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/NumberConstructor.lut.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/RegExpConstructor.lut.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/RegExpObject.lut.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/SVGElementFactory.cpp484
-rw-r--r--src/3rdparty/webkit/WebCore/generated/SVGElementFactory.h3
-rw-r--r--src/3rdparty/webkit/WebCore/generated/SVGNames.cpp94
-rw-r--r--src/3rdparty/webkit/WebCore/generated/SVGNames.h55
-rw-r--r--src/3rdparty/webkit/WebCore/generated/StringPrototype.lut.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/UserAgentStyleSheets.h4
-rw-r--r--src/3rdparty/webkit/WebCore/generated/UserAgentStyleSheetsData.cpp690
-rw-r--r--src/3rdparty/webkit/WebCore/generated/XLinkNames.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/XMLNames.h5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/XPathGrammar.cpp422
-rw-r--r--src/3rdparty/webkit/WebCore/generated/XPathGrammar.h64
-rw-r--r--src/3rdparty/webkit/WebCore/history/BackForwardList.h32
-rw-r--r--src/3rdparty/webkit/WebCore/history/BackForwardListChromium.cpp143
-rw-r--r--src/3rdparty/webkit/WebCore/history/CachedFrame.cpp158
-rw-r--r--src/3rdparty/webkit/WebCore/history/CachedFrame.h80
-rw-r--r--src/3rdparty/webkit/WebCore/history/CachedFramePlatformData.h (renamed from src/3rdparty/webkit/WebCore/history/CachedPagePlatformData.h)10
-rw-r--r--src/3rdparty/webkit/WebCore/history/CachedPage.cpp117
-rw-r--r--src/3rdparty/webkit/WebCore/history/CachedPage.h44
-rw-r--r--src/3rdparty/webkit/WebCore/history/HistoryItem.cpp214
-rw-r--r--src/3rdparty/webkit/WebCore/history/HistoryItem.h53
-rw-r--r--src/3rdparty/webkit/WebCore/history/PageCache.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/history/cf/HistoryPropertyList.cpp156
-rw-r--r--src/3rdparty/webkit/WebCore/history/cf/HistoryPropertyList.h (renamed from src/3rdparty/webkit/WebCore/page/win/AccessibilityObjectWrapperWin.h)57
-rw-r--r--src/3rdparty/webkit/WebCore/html/CanvasGradient.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/html/CanvasGradient.h5
-rw-r--r--src/3rdparty/webkit/WebCore/html/CanvasPixelArray.cpp (renamed from src/3rdparty/webkit/WebCore/storage/SQLStatementErrorCallback.idl)21
-rw-r--r--src/3rdparty/webkit/WebCore/html/CanvasPixelArray.h64
-rw-r--r--src/3rdparty/webkit/WebCore/html/CanvasPixelArray.idl (renamed from src/3rdparty/webkit/WebCore/storage/SQLTransactionErrorCallback.idl)16
-rw-r--r--src/3rdparty/webkit/WebCore/html/CanvasRenderingContext2D.cpp59
-rw-r--r--src/3rdparty/webkit/WebCore/html/CanvasRenderingContext2D.h3
-rw-r--r--src/3rdparty/webkit/WebCore/html/CanvasStyle.cpp21
-rw-r--r--src/3rdparty/webkit/WebCore/html/CollectionCache.cpp88
-rw-r--r--src/3rdparty/webkit/WebCore/html/CollectionCache.h64
-rw-r--r--src/3rdparty/webkit/WebCore/html/CollectionType.h67
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLAnchorElement.cpp42
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLAnchorElement.idl4
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLAppletElement.cpp12
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLAppletElement.idl4
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLAreaElement.cpp32
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLAreaElement.h27
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLAreaElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLAttributeNames.in8
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBRElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBaseElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBaseFontElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBaseFontElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBodyElement.cpp65
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBodyElement.h15
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLBodyElement.idl6
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLButtonElement.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLButtonElement.h2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLCanvasElement.cpp11
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLCanvasElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLCanvasElement.idl4
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLCollection.cpp74
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLCollection.h90
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLCollection.idl3
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLDivElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLDocument.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLDocument.h1
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLDocument.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLElement.cpp130
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLElement.h4
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLElement.idl4
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLElementFactory.cpp509
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLElementFactory.h47
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLElementsAllInOne.cpp101
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLEmbedElement.cpp16
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLEmbedElement.idl10
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFieldSetElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFieldSetElement.h2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFontElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFormCollection.cpp7
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFormCollection.h2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFormControlElement.cpp28
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFormControlElement.h31
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFormElement.cpp176
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFormElement.h28
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFormElement.idl4
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFrameElement.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFrameElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFrameElement.idl6
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFrameElementBase.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFrameElementBase.h2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFrameOwnerElement.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFrameOwnerElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLFrameSetElement.cpp17
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLHRElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLHtmlElement.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLIFrameElement.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLIFrameElement.h2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLIFrameElement.idl6
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLImageElement.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLImageElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLImageLoader.cpp18
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLInputElement.cpp579
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLInputElement.h96
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLInputElement.idl13
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLIsIndexElement.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLKeygenElement.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLKeygenElement.h2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLLIElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLLabelElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLLegendElement.cpp13
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLLegendElement.h3
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLLinkElement.cpp70
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLLinkElement.h2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLLinkElement.idl4
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMapElement.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMarqueeElement.cpp28
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMarqueeElement.h8
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMediaElement.cpp1418
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMediaElement.h199
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMediaElement.idl46
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMetaElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLNameCollection.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLNameCollection.h4
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLNoScriptElement.cpp85
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLNoScriptElement.h (renamed from src/3rdparty/webkit/WebCore/rendering/RenderLegend.h)36
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLOListElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLObjectElement.cpp22
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLObjectElement.idl8
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLOptGroupElement.cpp15
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLOptGroupElement.h7
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLOptionElement.cpp97
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLOptionElement.h26
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLOptionElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLOptionsCollection.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLParagraphElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLParamElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLParser.cpp446
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLParser.h35
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLParserQuirks.h49
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLPlugInElement.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLPreElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLQuoteElement.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLQuoteElement.h2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLScriptElement.cpp13
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLScriptElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLSelectElement.cpp881
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLSelectElement.h164
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLSelectElement.idl4
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLSourceElement.cpp22
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLSourceElement.h9
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLStyleElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLStyleElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableCaptionElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableCellElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableColElement.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableElement.cpp9
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTablePartElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableRowElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableRowsCollection.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTableSectionElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTagNames.in46
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTextAreaElement.cpp59
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTextAreaElement.h14
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTokenizer.cpp82
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLTokenizer.h6
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLUListElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLVideoElement.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLVideoElement.h3
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLViewSourceDocument.cpp35
-rw-r--r--src/3rdparty/webkit/WebCore/html/ImageData.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/html/ImageData.h8
-rw-r--r--src/3rdparty/webkit/WebCore/html/ImageData.idl5
-rw-r--r--src/3rdparty/webkit/WebCore/html/MediaError.h2
-rw-r--r--src/3rdparty/webkit/WebCore/html/MediaError.idl1
-rw-r--r--src/3rdparty/webkit/WebCore/html/PreloadScanner.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/html/TimeRanges.cpp56
-rw-r--r--src/3rdparty/webkit/WebCore/html/TimeRanges.h40
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/ConsoleMessage.cpp119
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/ConsoleMessage.h68
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/InspectorClient.h2
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/InspectorController.cpp2474
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/InspectorController.h173
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/InspectorController.idl94
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/InspectorDOMStorageResource.cpp83
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/InspectorDOMStorageResource.h76
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/InspectorDatabaseResource.cpp78
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/InspectorDatabaseResource.h72
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/InspectorFrontend.cpp298
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/InspectorFrontend.h105
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/InspectorResource.cpp325
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/InspectorResource.h163
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JSONObject.cpp95
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JSONObject.h60
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JavaScriptCallFrame.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JavaScriptCallFrame.h8
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JavaScriptCallFrame.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JavaScriptDebugListener.h5
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JavaScriptDebugServer.cpp38
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JavaScriptDebugServer.h4
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JavaScriptProfile.cpp125
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JavaScriptProfile.h6
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JavaScriptProfileNode.cpp51
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/JavaScriptProfileNode.h6
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/BottomUpProfileDataGridTree.js252
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Console.js223
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/DOMStorage.js72
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/DOMStorageDataGrid.js103
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/DOMStorageItemsView.js108
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/DataGrid.js79
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/DatabaseQueryView.js2
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/DatabaseTableView.js20
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/DatabasesPanel.js199
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/ElementsTreeOutline.js4
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/domStorage.pngbin0 -> 442 bytes
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/radioDot.pngbin0 -> 235 bytes
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/Images/userInputResultIcon.pngbin0 -> 259 bytes
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/PanelEnablerView.js21
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/ProfileDataGridTree.js398
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/ProfileView.js382
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/ProfilesPanel.js16
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/ResourcesPanel.js59
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/ScriptsPanel.js56
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/SourceFrame.js31
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/SourceView.js13
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/StylesSidebarPane.js4
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/TopDownProfileDataGridTree.js111
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/WebKit.qrc9
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/inspector.css172
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/inspector.html6
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/inspector.js148
-rw-r--r--src/3rdparty/webkit/WebCore/inspector/front-end/utilities.js38
-rw-r--r--src/3rdparty/webkit/WebCore/loader/Cache.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedCSSStyleSheet.cpp20
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedFont.cpp11
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedFont.h3
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedImage.cpp7
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedImage.h6
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedResource.cpp84
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedResource.h22
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedScript.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CachedScript.h4
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CrossOriginAccessControl.cpp116
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CrossOriginAccessControl.h41
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CrossOriginPreflightResultCache.cpp173
-rw-r--r--src/3rdparty/webkit/WebCore/loader/CrossOriginPreflightResultCache.h78
-rw-r--r--src/3rdparty/webkit/WebCore/loader/DocLoader.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/loader/DocLoader.h6
-rw-r--r--src/3rdparty/webkit/WebCore/loader/DocumentLoader.cpp66
-rw-r--r--src/3rdparty/webkit/WebCore/loader/DocumentLoader.h20
-rw-r--r--src/3rdparty/webkit/WebCore/loader/DocumentThreadableLoader.cpp199
-rw-r--r--src/3rdparty/webkit/WebCore/loader/DocumentThreadableLoader.h83
-rw-r--r--src/3rdparty/webkit/WebCore/loader/EmptyClients.h74
-rw-r--r--src/3rdparty/webkit/WebCore/loader/FTPDirectoryDocument.cpp37
-rw-r--r--src/3rdparty/webkit/WebCore/loader/FTPDirectoryParser.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/loader/FormState.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/loader/FormState.h16
-rw-r--r--src/3rdparty/webkit/WebCore/loader/FrameLoader.cpp1788
-rw-r--r--src/3rdparty/webkit/WebCore/loader/FrameLoader.h271
-rw-r--r--src/3rdparty/webkit/WebCore/loader/FrameLoaderClient.cpp92
-rw-r--r--src/3rdparty/webkit/WebCore/loader/FrameLoaderClient.h44
-rw-r--r--src/3rdparty/webkit/WebCore/loader/FrameLoaderTypes.h8
-rw-r--r--src/3rdparty/webkit/WebCore/loader/ImageDocument.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/loader/ImageLoader.cpp136
-rw-r--r--src/3rdparty/webkit/WebCore/loader/ImageLoader.h31
-rw-r--r--src/3rdparty/webkit/WebCore/loader/MainResourceLoader.cpp75
-rw-r--r--src/3rdparty/webkit/WebCore/loader/MainResourceLoader.h21
-rw-r--r--src/3rdparty/webkit/WebCore/loader/MediaDocument.cpp89
-rw-r--r--src/3rdparty/webkit/WebCore/loader/MediaDocument.h6
-rw-r--r--src/3rdparty/webkit/WebCore/loader/NetscapePlugInStreamLoader.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/loader/PluginDocument.cpp13
-rw-r--r--src/3rdparty/webkit/WebCore/loader/ProgressTracker.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/loader/ResourceLoader.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/loader/ResourceLoader.h6
-rw-r--r--src/3rdparty/webkit/WebCore/loader/SubresourceLoader.cpp9
-rw-r--r--src/3rdparty/webkit/WebCore/loader/SubresourceLoader.h2
-rw-r--r--src/3rdparty/webkit/WebCore/loader/SubresourceLoaderClient.h4
-rw-r--r--src/3rdparty/webkit/WebCore/loader/TextDocument.cpp27
-rw-r--r--src/3rdparty/webkit/WebCore/loader/TextResourceDecoder.cpp152
-rw-r--r--src/3rdparty/webkit/WebCore/loader/TextResourceDecoder.h36
-rw-r--r--src/3rdparty/webkit/WebCore/loader/ThreadableLoader.cpp72
-rw-r--r--src/3rdparty/webkit/WebCore/loader/ThreadableLoader.h80
-rw-r--r--src/3rdparty/webkit/WebCore/loader/ThreadableLoaderClient.h57
-rw-r--r--src/3rdparty/webkit/WebCore/loader/ThreadableLoaderClientWrapper.h117
-rw-r--r--src/3rdparty/webkit/WebCore/loader/WorkerThreadableLoader.cpp261
-rw-r--r--src/3rdparty/webkit/WebCore/loader/WorkerThreadableLoader.h147
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/ApplicationCache.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/ApplicationCache.h7
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/ApplicationCacheGroup.cpp756
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/ApplicationCacheGroup.h78
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/ApplicationCacheResource.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/ApplicationCacheResource.h2
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/ApplicationCacheStorage.cpp116
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/ApplicationCacheStorage.h11
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/DOMApplicationCache.cpp33
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/DOMApplicationCache.h8
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/DOMApplicationCache.idl8
-rw-r--r--src/3rdparty/webkit/WebCore/loader/appcache/ManifestParser.cpp41
-rw-r--r--src/3rdparty/webkit/WebCore/loader/archive/cf/LegacyWebArchive.cpp152
-rw-r--r--src/3rdparty/webkit/WebCore/loader/archive/cf/LegacyWebArchive.h27
-rw-r--r--src/3rdparty/webkit/WebCore/loader/archive/cf/LegacyWebArchiveMac.mm20
-rw-r--r--src/3rdparty/webkit/WebCore/loader/cf/ResourceLoaderCFNet.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/loader/icon/IconDatabase.cpp122
-rw-r--r--src/3rdparty/webkit/WebCore/loader/icon/IconDatabase.h10
-rw-r--r--src/3rdparty/webkit/WebCore/loader/icon/IconDatabaseNone.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/loader/icon/IconFetcher.cpp22
-rw-r--r--src/3rdparty/webkit/WebCore/loader/icon/IconLoader.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/loader/icon/IconRecord.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/loader/loader.cpp63
-rw-r--r--src/3rdparty/webkit/WebCore/loader/loader.h6
-rwxr-xr-xsrc/3rdparty/webkit/WebCore/make-generated-sources.sh2
-rw-r--r--src/3rdparty/webkit/WebCore/page/BarInfo.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/page/BarInfo.h3
-rw-r--r--src/3rdparty/webkit/WebCore/page/Chrome.cpp112
-rw-r--r--src/3rdparty/webkit/WebCore/page/Chrome.h9
-rw-r--r--src/3rdparty/webkit/WebCore/page/ChromeClient.h46
-rw-r--r--src/3rdparty/webkit/WebCore/page/Console.cpp59
-rw-r--r--src/3rdparty/webkit/WebCore/page/Console.h13
-rw-r--r--src/3rdparty/webkit/WebCore/page/Console.idl4
-rw-r--r--src/3rdparty/webkit/WebCore/page/ContextMenuController.cpp62
-rw-r--r--src/3rdparty/webkit/WebCore/page/Coordinates.cpp38
-rw-r--r--src/3rdparty/webkit/WebCore/page/Coordinates.h88
-rw-r--r--src/3rdparty/webkit/WebCore/page/Coordinates.idl41
-rw-r--r--src/3rdparty/webkit/WebCore/page/DOMSelection.cpp103
-rw-r--r--src/3rdparty/webkit/WebCore/page/DOMSelection.h8
-rw-r--r--src/3rdparty/webkit/WebCore/page/DOMSelection.idl40
-rw-r--r--src/3rdparty/webkit/WebCore/page/DOMTimer.cpp (renamed from src/3rdparty/webkit/WebCore/bindings/js/DOMTimer.cpp)22
-rw-r--r--src/3rdparty/webkit/WebCore/page/DOMTimer.h (renamed from src/3rdparty/webkit/WebCore/bindings/js/DOMTimer.h)7
-rw-r--r--src/3rdparty/webkit/WebCore/page/DOMWindow.cpp969
-rw-r--r--src/3rdparty/webkit/WebCore/page/DOMWindow.h139
-rw-r--r--src/3rdparty/webkit/WebCore/page/DOMWindow.idl207
-rw-r--r--src/3rdparty/webkit/WebCore/page/DragController.cpp162
-rw-r--r--src/3rdparty/webkit/WebCore/page/DragController.h33
-rw-r--r--src/3rdparty/webkit/WebCore/page/EditorClient.h44
-rw-r--r--src/3rdparty/webkit/WebCore/page/EventHandler.cpp684
-rw-r--r--src/3rdparty/webkit/WebCore/page/EventHandler.h76
-rw-r--r--src/3rdparty/webkit/WebCore/page/FocusController.cpp60
-rw-r--r--src/3rdparty/webkit/WebCore/page/Frame.cpp778
-rw-r--r--src/3rdparty/webkit/WebCore/page/Frame.h127
-rw-r--r--src/3rdparty/webkit/WebCore/page/FrameLoadRequest.h7
-rw-r--r--src/3rdparty/webkit/WebCore/page/FramePrivate.h99
-rw-r--r--src/3rdparty/webkit/WebCore/page/FrameTree.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/page/FrameTree.h4
-rw-r--r--src/3rdparty/webkit/WebCore/page/FrameView.cpp871
-rw-r--r--src/3rdparty/webkit/WebCore/page/FrameView.h137
-rw-r--r--src/3rdparty/webkit/WebCore/page/Geolocation.cpp95
-rw-r--r--src/3rdparty/webkit/WebCore/page/Geolocation.h41
-rw-r--r--src/3rdparty/webkit/WebCore/page/Geoposition.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/page/Geoposition.h31
-rw-r--r--src/3rdparty/webkit/WebCore/page/Geoposition.idl10
-rw-r--r--src/3rdparty/webkit/WebCore/page/History.idl9
-rw-r--r--src/3rdparty/webkit/WebCore/page/Location.cpp12
-rw-r--r--src/3rdparty/webkit/WebCore/page/Location.idl23
-rw-r--r--src/3rdparty/webkit/WebCore/page/Navigator.cpp16
-rw-r--r--src/3rdparty/webkit/WebCore/page/Navigator.idl5
-rw-r--r--src/3rdparty/webkit/WebCore/page/NavigatorBase.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/page/Page.cpp130
-rw-r--r--src/3rdparty/webkit/WebCore/page/Page.h26
-rw-r--r--src/3rdparty/webkit/WebCore/page/PageGroupLoadDeferrer.cpp72
-rw-r--r--src/3rdparty/webkit/WebCore/page/PageGroupLoadDeferrer.h (renamed from src/3rdparty/webkit/WebCore/rendering/ListMarkerBox.h)32
-rw-r--r--src/3rdparty/webkit/WebCore/page/PositionOptions.h8
-rw-r--r--src/3rdparty/webkit/WebCore/page/PrintContext.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/page/Screen.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/page/Screen.h2
-rw-r--r--src/3rdparty/webkit/WebCore/page/SecurityOrigin.cpp35
-rw-r--r--src/3rdparty/webkit/WebCore/page/SecurityOrigin.h6
-rw-r--r--src/3rdparty/webkit/WebCore/page/Settings.cpp69
-rw-r--r--src/3rdparty/webkit/WebCore/page/Settings.h67
-rw-r--r--src/3rdparty/webkit/WebCore/page/WebKitPoint.h63
-rw-r--r--src/3rdparty/webkit/WebCore/page/WebKitPoint.idl33
-rw-r--r--src/3rdparty/webkit/WebCore/page/android/DragControllerAndroid.cpp58
-rw-r--r--src/3rdparty/webkit/WebCore/page/android/EventHandlerAndroid.cpp129
-rw-r--r--src/3rdparty/webkit/WebCore/page/android/InspectorControllerAndroid.cpp106
-rw-r--r--src/3rdparty/webkit/WebCore/page/animation/AnimationBase.cpp420
-rw-r--r--src/3rdparty/webkit/WebCore/page/animation/AnimationBase.h44
-rw-r--r--src/3rdparty/webkit/WebCore/page/animation/AnimationController.cpp379
-rw-r--r--src/3rdparty/webkit/WebCore/page/animation/AnimationController.h27
-rw-r--r--src/3rdparty/webkit/WebCore/page/animation/AnimationControllerPrivate.h135
-rw-r--r--src/3rdparty/webkit/WebCore/page/animation/CompositeAnimation.cpp638
-rw-r--r--src/3rdparty/webkit/WebCore/page/animation/CompositeAnimation.h47
-rw-r--r--src/3rdparty/webkit/WebCore/page/animation/ImplicitAnimation.cpp89
-rw-r--r--src/3rdparty/webkit/WebCore/page/animation/ImplicitAnimation.h9
-rw-r--r--src/3rdparty/webkit/WebCore/page/animation/KeyframeAnimation.cpp190
-rw-r--r--src/3rdparty/webkit/WebCore/page/animation/KeyframeAnimation.h13
-rw-r--r--src/3rdparty/webkit/WebCore/page/qt/FrameQt.cpp18
-rw-r--r--src/3rdparty/webkit/WebCore/page/win/FrameCGWin.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/page/win/FrameWin.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Arena.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ContentType.cpp73
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ContentType.h (renamed from src/3rdparty/webkit/WebCore/platform/mac/WebCoreTextRenderer.h)35
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ContextMenu.cpp133
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ContextMenu.h1
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ContextMenuItem.h15
-rw-r--r--src/3rdparty/webkit/WebCore/platform/CookieJar.h2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/CrossThreadCopier.cpp62
-rw-r--r--src/3rdparty/webkit/WebCore/platform/CrossThreadCopier.h109
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Cursor.h7
-rw-r--r--src/3rdparty/webkit/WebCore/platform/DeprecatedPtrListImpl.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/FileSystem.h11
-rw-r--r--src/3rdparty/webkit/WebCore/platform/GeolocationService.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/platform/GeolocationService.h12
-rw-r--r--src/3rdparty/webkit/WebCore/platform/HostWindow.h7
-rw-r--r--src/3rdparty/webkit/WebCore/platform/KURL.cpp185
-rw-r--r--src/3rdparty/webkit/WebCore/platform/KURL.h40
-rw-r--r--src/3rdparty/webkit/WebCore/platform/KURLGoogle.cpp962
-rw-r--r--src/3rdparty/webkit/WebCore/platform/KURLGooglePrivate.h115
-rw-r--r--src/3rdparty/webkit/WebCore/platform/KeyboardCodes.h (renamed from src/3rdparty/webkit/WebCore/platform/qt/KeyboardCodes.h)13
-rw-r--r--src/3rdparty/webkit/WebCore/platform/LocalizedStrings.h13
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Logging.cpp30
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Logging.h3
-rw-r--r--src/3rdparty/webkit/WebCore/platform/MIMETypeRegistry.cpp120
-rw-r--r--src/3rdparty/webkit/WebCore/platform/MIMETypeRegistry.h4
-rw-r--r--src/3rdparty/webkit/WebCore/platform/NotImplemented.h2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/PlatformMouseEvent.h71
-rw-r--r--src/3rdparty/webkit/WebCore/platform/PlatformWheelEvent.h71
-rw-r--r--src/3rdparty/webkit/WebCore/platform/PopupMenuStyle.h10
-rw-r--r--src/3rdparty/webkit/WebCore/platform/RunLoopTimer.h79
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ScrollView.cpp186
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ScrollView.h17
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Scrollbar.cpp69
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Scrollbar.h8
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ScrollbarTheme.h1
-rw-r--r--src/3rdparty/webkit/WebCore/platform/SharedBuffer.h4
-rw-r--r--src/3rdparty/webkit/WebCore/platform/SharedTimer.h43
-rw-r--r--src/3rdparty/webkit/WebCore/platform/SuddenTermination.h43
-rw-r--r--src/3rdparty/webkit/WebCore/platform/SystemTime.h4
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ThemeTypes.h5
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ThreadCheck.h14
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ThreadGlobalData.cpp19
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ThreadGlobalData.h11
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ThreadTimers.cpp158
-rw-r--r--src/3rdparty/webkit/WebCore/platform/ThreadTimers.h69
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Timer.cpp177
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Timer.h18
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Widget.h4
-rw-r--r--src/3rdparty/webkit/WebCore/platform/android/ClipboardAndroid.cpp105
-rw-r--r--src/3rdparty/webkit/WebCore/platform/android/ClipboardAndroid.h (renamed from src/3rdparty/webkit/WebCore/platform/text/TextDecoder.h)58
-rw-r--r--src/3rdparty/webkit/WebCore/platform/animation/Animation.cpp39
-rw-r--r--src/3rdparty/webkit/WebCore/platform/animation/Animation.h25
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/BitmapImage.cpp31
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/BitmapImage.h26
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Color.cpp41
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Color.h7
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FloatPoint.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FloatPoint3D.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FloatPoint3D.h4
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FloatQuad.cpp39
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FloatQuad.h8
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Font.cpp71
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Font.h36
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FontCache.cpp43
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FontCache.h43
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FontDescription.h6
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FontFallbackList.cpp22
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FontFallbackList.h2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/FontFastPath.cpp22
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GeneratedImage.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GlyphBuffer.h14
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GlyphPageTreeNode.cpp28
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GlyphPageTreeNode.h67
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GlyphWidthMap.cpp37
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GlyphWidthMap.h43
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Gradient.cpp9
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Gradient.h10
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GraphicsContext.cpp85
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GraphicsContext.h72
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GraphicsContextPrivate.h18
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GraphicsLayer.cpp545
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GraphicsLayer.h409
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GraphicsLayerClient.h69
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/GraphicsTypes.h8
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Image.cpp24
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Image.h29
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/ImageBuffer.h14
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/ImageSource.h5
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/IntPoint.h1
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/IntSize.h6
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/MediaPlayer.cpp282
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/MediaPlayer.h103
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/MediaPlayerPrivate.h98
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Path.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Path.h17
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/Pattern.h6
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/SegmentedFontData.cpp17
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/SegmentedFontData.h12
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/SimpleFontData.cpp86
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/SimpleFontData.h52
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/WidthIterator.cpp27
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/WidthIterator.h5
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/FEBlend.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/FEBlend.h10
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/FEColorMatrix.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/FEColorMatrix.h10
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/FEComponentTransfer.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/FEComponentTransfer.h11
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/FEComposite.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/FEComposite.h10
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/Filter.h52
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/FilterEffect.cpp (renamed from src/3rdparty/webkit/WebCore/svg/FilterEffect.cpp)8
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/FilterEffect.h81
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/SourceAlpha.cpp54
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/SourceAlpha.h (renamed from src/3rdparty/webkit/WebCore/svg/graphics/qt/SVGResourceMaskerQt.cpp)35
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/SourceGraphic.cpp54
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/filters/SourceGraphic.h (renamed from src/3rdparty/webkit/WebCore/svg/Filter.h)40
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/opentype/OpenTypeUtilities.cpp408
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/opentype/OpenTypeUtilities.h58
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/FontCacheQt.cpp19
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/FontPlatformDataQt.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp50
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/GradientQt.cpp12
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsContextQt.cpp80
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/IconQt.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageBufferQt.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageQt.cpp33
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/ImageSourceQt.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.cpp58
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.h43
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/PathQt.cpp37
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/PatternQt.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/SimpleFontDataQt.cpp11
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/TransformationMatrixQt.cpp167
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/Matrix3DTransformOperation.cpp56
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/Matrix3DTransformOperation.h72
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/MatrixTransformOperation.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/MatrixTransformOperation.h19
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/PerspectiveTransformOperation.cpp58
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/PerspectiveTransformOperation.h71
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/RotateTransformOperation.cpp61
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/RotateTransformOperation.h29
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/ScaleTransformOperation.cpp9
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/ScaleTransformOperation.h23
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/TransformOperation.h26
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/TransformOperations.h10
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/TransformationMatrix.cpp1076
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/TransformationMatrix.h300
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/TranslateTransformOperation.cpp7
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/TranslateTransformOperation.h25
-rw-r--r--src/3rdparty/webkit/WebCore/platform/image-decoders/ImageDecoder.h270
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/ClipboardMac.mm129
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/CookieJar.mm5
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/DragDataMac.mm2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/DragImageMac.mm31
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/FoundationExtras.h3
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/GeolocationServiceMac.h75
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/GeolocationServiceMac.mm219
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/LocalCurrentGraphicsContext.h4
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/LocalizedStringsMac.mm104
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/PasteboardMac.mm23
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/PlatformMouseEventMac.mm40
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/PlatformScreenMac.mm6
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/RuntimeApplicationChecks.h (renamed from src/3rdparty/webkit/WebCore/storage/SQLTransactionCallback.idl)23
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/RuntimeApplicationChecks.mm (renamed from src/3rdparty/webkit/WebCore/storage/SQLStatementCallback.idl)29
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/ScrollbarThemeMac.mm28
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/SharedBufferMac.mm10
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/SharedTimerMac.mm10
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/SuddenTermination.mm45
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/SystemTimeMac.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/ThreadCheck.mm62
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WebCoreKeyGenerator.m9
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WebCoreObjCExtras.mm3
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WebCoreSystemInterface.h21
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WebCoreSystemInterface.mm14
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WebCoreTextRenderer.mm93
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WebFontCache.h5
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WebFontCache.mm24
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WheelEventMac.mm18
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/WidgetMac.mm26
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/FormData.cpp27
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/FormData.h9
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/HTTPHeaderMap.cpp63
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/HTTPHeaderMap.h14
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/HTTPParsers.cpp41
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ResourceErrorBase.cpp17
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ResourceErrorBase.h7
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ResourceHandle.cpp26
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ResourceHandle.h21
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ResourceHandleClient.h8
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ResourceHandleInternal.h25
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ResourceRequestBase.cpp104
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ResourceRequestBase.h46
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ResourceResponseBase.cpp261
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ResourceResponseBase.h102
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/chromium/ResourceResponse.h83
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.h1
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/qt/ResourceHandleQt.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/posix/FileSystemPOSIX.cpp12
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/ContextMenuQt.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/CookieJarQt.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/DragDataQt.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/FileSystemQt.cpp29
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/KURLQt.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/MenuEventProxy.h54
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/PlatformMouseEventQt.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/PopupMenuQt.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/QWebPopup.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/RenderThemeQt.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/ScrollViewQt.cpp20
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/SharedTimerQt.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/TemporaryLinkStubs.cpp33
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/WheelEventQt.cpp13
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/AtomicString.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/AtomicString.h20
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/Base64.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/BidiContext.cpp31
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/BidiContext.h33
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/BidiResolver.h21
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/CString.cpp25
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/CString.h17
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/CharacterNames.h2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/PlatformString.h19
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/RegularExpression.cpp121
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/RegularExpression.h14
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/String.cpp98
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/StringBuilder.cpp9
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/StringImpl.cpp253
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/StringImpl.h72
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextBoundaries.h5
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextBoundariesICU.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextBreakIterator.h12
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextBreakIteratorICU.cpp116
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextCodec.h3
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextCodecICU.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextCodecICU.h2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextCodecLatin1.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextCodecUTF16.cpp11
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextCodecUserDefined.cpp12
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextDecoder.cpp129
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextEncoding.cpp50
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextEncoding.h27
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextEncodingDetector.h48
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextEncodingDetectorICU.cpp129
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextEncodingDetectorNone.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextEncodingRegistry.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextEncodingRegistry.h10
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextStream.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextStream.h1
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/cf/StringImplCF.cpp131
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/mac/ShapeArabic.c9
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/mac/StringImplMac.mm8
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/mac/StringMac.mm1
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/mac/TextBoundaries.mm2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/mac/TextCodecMac.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/qt/TextBreakIteratorQt.cpp11
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/qt/TextCodecQt.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/win/TextBreakIteratorInternalICUWin.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/platform/win/SystemTimeWin.cpp9
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginDataNone.cpp (renamed from src/3rdparty/webkit/WebCore/page/win/AccessibilityObjectWin.cpp)20
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginPackage.cpp86
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginPackage.h1
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginPackageNone.cpp (renamed from src/3rdparty/webkit/WebCore/page/win/AXObjectCacheWin.cpp)52
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginStream.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginView.cpp31
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginView.h25
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginViewNone.cpp156
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/mac/PluginPackageMac.cpp73
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/npfunctions.h9
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/qt/PluginContainerQt.cpp149
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/qt/PluginContainerQt.h63
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/qt/PluginPackageQt.cpp72
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/qt/PluginViewQt.cpp149
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/win/PluginPackageWin.cpp58
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/win/PluginViewWin.cpp160
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/EllipsisBox.cpp20
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/EllipsisBox.h11
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/FixedTableLayout.cpp42
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/HitTestRequest.h34
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/HitTestResult.cpp20
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/HitTestResult.h1
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/InlineBox.cpp81
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/InlineBox.h124
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/InlineFlowBox.cpp570
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/InlineFlowBox.h62
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/InlineTextBox.cpp344
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/InlineTextBox.h59
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/LayoutState.cpp25
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/LayoutState.h11
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/MediaControlElements.cpp146
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/MediaControlElements.h36
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/OverlapTestRequestClient.h (renamed from src/3rdparty/webkit/WebCore/page/chromium/AccessibilityObjectChromium.cpp)20
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/PointerEventsHitRules.h2
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderApplet.cpp27
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderApplet.h9
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderArena.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderBR.cpp15
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderBR.h8
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderBlock.cpp2006
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderBlock.h234
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderBox.cpp1611
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderBox.h298
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderBoxModelObject.cpp1177
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderBoxModelObject.h135
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderButton.cpp36
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderButton.h22
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderContainer.cpp701
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderContainer.h75
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderCounter.cpp15
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderCounter.h1
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFieldset.cpp60
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFieldset.h5
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.cpp22
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.h2
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFlexibleBox.cpp248
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFlexibleBox.h4
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFlow.cpp883
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFlow.h146
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderForeignObject.cpp95
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderForeignObject.h19
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFrame.cpp39
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFrame.h14
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFrameSet.cpp45
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFrameSet.h12
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderHTMLCanvas.cpp16
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderImage.cpp91
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderImage.h16
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderImageGeneratedContent.h14
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderInline.cpp876
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderInline.h129
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderLayer.cpp1481
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderLayer.h220
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderLayerBacking.cpp1023
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderLayerBacking.h172
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderLayerCompositor.cpp827
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderLayerCompositor.h145
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderLineBoxList.cpp333
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderLineBoxList.h86
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderListBox.cpp121
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderListBox.h9
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderListItem.cpp32
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderListItem.h2
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderListMarker.cpp67
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderListMarker.h10
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderMarquee.cpp29
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderMarquee.h3
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderMedia.cpp180
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderMedia.h27
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderMediaControls.cpp152
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderMediaControls.h43
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderMenuList.cpp138
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderMenuList.h15
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderObject.cpp2386
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderObject.h775
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderObjectChildList.cpp426
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderObjectChildList.h67
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderPart.cpp86
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderPart.h24
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderPartObject.cpp158
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderPartObject.h10
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderPath.cpp186
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderPath.h46
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderReplaced.cpp140
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderReplaced.h16
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderReplica.cpp22
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderReplica.h2
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGBlock.h3
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGContainer.cpp356
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGContainer.h78
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGGradientStop.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGGradientStop.h16
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGHiddenContainer.cpp36
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGHiddenContainer.h29
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGImage.cpp103
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGImage.h38
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGInline.cpp57
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGInline.h18
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGInlineText.cpp92
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGInlineText.h17
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGModelObject.cpp97
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGModelObject.h71
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGRoot.cpp305
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGRoot.h53
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGTSpan.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGTSpan.h11
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGText.cpp145
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGText.h37
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGTextPath.cpp51
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGTextPath.h2
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGTransformableContainer.cpp21
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGTransformableContainer.h15
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGViewportContainer.cpp126
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSVGViewportContainer.h23
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderScrollbar.cpp20
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderScrollbar.h15
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderScrollbarPart.cpp38
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderScrollbarPart.h5
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSelectionInfo.h104
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSlider.cpp395
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSlider.h39
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTable.cpp233
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTable.h39
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTableCell.cpp174
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTableCell.h43
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTableCol.cpp13
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTableCol.h14
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTableRow.cpp44
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTableRow.h17
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTableSection.cpp263
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTableSection.h34
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderText.cpp428
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderText.h74
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTextControl.cpp175
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTextControl.h42
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTextControlMultiLine.cpp49
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTextControlMultiLine.h1
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTextControlSingleLine.cpp268
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTextControlSingleLine.h23
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTextFragment.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTheme.cpp172
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTheme.h66
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumLinux.cpp607
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumLinux.h138
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumMac.h215
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumMac.mm1997
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumSkia.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumSkia.h2
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumWin.cpp930
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderThemeChromiumWin.h158
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderThemeMac.h18
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderThemeSafari.cpp109
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderThemeWin.cpp298
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderThemeWin.h21
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTreeAsText.cpp124
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderVideo.cpp24
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderView.cpp281
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderView.h151
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderWidget.cpp146
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderWidget.h48
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RootInlineBox.cpp120
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RootInlineBox.h44
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGCharacterLayoutInfo.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGInlineFlowBox.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGInlineFlowBox.h9
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGInlineTextBox.cpp93
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGInlineTextBox.h12
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGRenderSupport.cpp112
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGRenderSupport.h53
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGRenderTreeAsText.cpp202
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGRenderTreeAsText.h6
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGRootInlineBox.cpp128
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/SVGRootInlineBox.h7
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/ScrollBehavior.cpp55
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/ScrollBehavior.h78
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/TextControlInnerElements.cpp37
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/TransformState.cpp169
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/TransformState.h133
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/bidi.cpp546
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/bidi.h2
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/break_lines.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/ContentData.cpp58
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/ContentData.h50
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/CounterContent.h8
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/RenderStyle.cpp324
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/RenderStyle.h177
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/RenderStyleConstants.h53
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/SVGRenderStyle.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleGeneratedImage.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleInheritedData.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleRareInheritedData.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleRareNonInheritedData.cpp50
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleRareNonInheritedData.h13
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleTransformData.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/style/StyleTransformData.h1
-rw-r--r--src/3rdparty/webkit/WebCore/storage/ChangeVersionWrapper.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/storage/ChangeVersionWrapper.h4
-rw-r--r--src/3rdparty/webkit/WebCore/storage/Database.cpp61
-rw-r--r--src/3rdparty/webkit/WebCore/storage/Database.h17
-rw-r--r--src/3rdparty/webkit/WebCore/storage/Database.idl4
-rw-r--r--src/3rdparty/webkit/WebCore/storage/DatabaseAuthorizer.cpp42
-rw-r--r--src/3rdparty/webkit/WebCore/storage/DatabaseAuthorizer.h8
-rw-r--r--src/3rdparty/webkit/WebCore/storage/DatabaseDetails.h4
-rw-r--r--src/3rdparty/webkit/WebCore/storage/DatabaseTask.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/storage/DatabaseTask.h2
-rw-r--r--src/3rdparty/webkit/WebCore/storage/DatabaseThread.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/storage/DatabaseThread.h9
-rw-r--r--src/3rdparty/webkit/WebCore/storage/DatabaseTracker.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/storage/DatabaseTracker.h3
-rw-r--r--src/3rdparty/webkit/WebCore/storage/DatabaseTrackerClient.h4
-rw-r--r--src/3rdparty/webkit/WebCore/storage/LocalStorage.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/storage/LocalStorage.h2
-rw-r--r--src/3rdparty/webkit/WebCore/storage/LocalStorageArea.cpp100
-rw-r--r--src/3rdparty/webkit/WebCore/storage/LocalStorageArea.h9
-rw-r--r--src/3rdparty/webkit/WebCore/storage/LocalStorageThread.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/storage/OriginQuotaManager.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/storage/OriginQuotaManager.h4
-rw-r--r--src/3rdparty/webkit/WebCore/storage/OriginUsageRecord.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/storage/OriginUsageRecord.h4
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLError.h4
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLError.idl6
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLResultSet.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLResultSet.h4
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLResultSet.idl8
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLResultSetRowList.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLResultSetRowList.h4
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLResultSetRowList.idl4
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLStatement.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLStatement.h10
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLStatementCallback.h6
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLStatementErrorCallback.h6
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLTransaction.cpp43
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLTransaction.h5
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLTransaction.idl4
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLTransactionCallback.h4
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SQLTransactionErrorCallback.h6
-rw-r--r--src/3rdparty/webkit/WebCore/storage/SessionStorageArea.cpp16
-rw-r--r--src/3rdparty/webkit/WebCore/storage/StorageArea.cpp20
-rw-r--r--src/3rdparty/webkit/WebCore/storage/StorageEvent.cpp11
-rw-r--r--src/3rdparty/webkit/WebCore/storage/StorageEvent.h21
-rw-r--r--src/3rdparty/webkit/WebCore/storage/StorageEvent.idl7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/Filter.cpp39
-rw-r--r--src/3rdparty/webkit/WebCore/svg/FilterEffect.h48
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAElement.cpp9
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAllInOne.cpp152
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimateMotionElement.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimateTransformElement.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimatedProperty.h2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGAnimationElement.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGCircleElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGClipPathElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGComponentTransferFunctionElement.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGComponentTransferFunctionElement.h4
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGComponentTransferFunctionElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGCursorElement.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGElement.cpp26
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGElementInstance.cpp164
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGElementInstance.h3
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGElementInstance.idl86
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGEllipseElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGException.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGExternalResourcesRequired.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEBlendElement.cpp19
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEBlendElement.h7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEBlendElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEColorMatrixElement.cpp17
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEColorMatrixElement.h7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEColorMatrixElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEComponentTransferElement.cpp25
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEComponentTransferElement.h7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEComponentTransferElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFECompositeElement.cpp20
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFECompositeElement.h7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFECompositeElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEDiffuseLightingElement.cpp20
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEDiffuseLightingElement.h7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEDiffuseLightingElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEDisplacementMapElement.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEDisplacementMapElement.h7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEDisplacementMapElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEDistantLightElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEDistantLightElement.h2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEDistantLightElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFloodElement.cpp28
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFloodElement.h9
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFloodElement.idl6
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncAElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncAElement.h2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncAElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncBElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncBElement.h2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncBElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncGElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncGElement.h2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncGElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncRElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncRElement.h2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEFuncRElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEGaussianBlurElement.cpp20
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEGaussianBlurElement.h7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEGaussianBlurElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEImageElement.cpp20
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEImageElement.h6
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEImageElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFELightElement.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFELightElement.h4
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEMergeElement.cpp16
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEMergeElement.h8
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEMergeElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEMergeNodeElement.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEMergeNodeElement.h2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEMergeNodeElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEOffsetElement.cpp17
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEOffsetElement.h7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEOffsetElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEPointLightElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEPointLightElement.h2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFEPointLightElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFESpecularLightingElement.cpp20
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFESpecularLightingElement.h7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFESpecularLightingElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFESpotLightElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFESpotLightElement.h2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFESpotLightElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFETileElement.cpp17
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFETileElement.h7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFETileElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFETurbulenceElement.cpp16
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFETurbulenceElement.h7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFETurbulenceElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFilterElement.cpp26
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFilterElement.h2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFilterElement.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp13
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h11
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFitToViewBox.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFont.cpp23
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontFaceElement.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontFaceUriElement.cpp42
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGFontFaceUriElement.h17
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGForeignObjectElement.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGGlyphElement.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGGlyphElement.h2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGGradientElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGHKernElement.h2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGImageElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGImageLoader.cpp16
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLangSpace.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLength.cpp9
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLineElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLinearGradientElement.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGList.h6
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGLocatable.cpp70
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGMarkerElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGMaskElement.cpp13
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGMaskElement.h3
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGMatrix.idl18
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGParserUtilities.cpp111
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSeg.idl4
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegCurvetoCubicSmooth.h2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPathSegList.idl14
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPatternElement.cpp20
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPointList.idl14
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPolyElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGPreserveAspectRatio.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGRadialGradientElement.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGRectElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGSVGElement.cpp57
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGScriptElement.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGScriptElement.h3
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStopElement.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStyleElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStyledElement.cpp11
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGStyledTransformableElement.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTests.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTextContentElement.cpp51
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTextContentElement.h16
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTextContentElement.idl16
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTextElement.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTextPathElement.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTextPositioningElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTransform.cpp12
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTransformDistance.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTransformList.idl14
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGTransformable.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGURIReference.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGUseElement.cpp40
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGViewElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/svg/SVGViewSpec.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/animation/SMILTime.h2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/animation/SMILTimeContainer.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/svg/animation/SVGSMILElement.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGImage.cpp117
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGImage.h14
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGPaintServer.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGPaintServer.h6
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGPaintServerGradient.cpp101
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGPaintServerGradient.h5
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGPaintServerPattern.cpp100
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGPaintServerPattern.h11
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGPaintServerSolid.cpp11
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGPaintServerSolid.h1
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGResourceClipper.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGResourceFilter.cpp98
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGResourceFilter.h51
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGResourceMarker.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/SVGResourceMasker.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGDistantLightSource.h4
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEConvolveMatrix.cpp7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEConvolveMatrix.h10
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEDiffuseLighting.cpp7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEDiffuseLighting.h9
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEDisplacementMap.cpp7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEDisplacementMap.h9
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEFlood.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEFlood.h14
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEGaussianBlur.cpp7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEGaussianBlur.h9
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEImage.cpp7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEImage.h9
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEMerge.cpp7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEMerge.h10
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEMorphology.cpp7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEMorphology.h9
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEOffset.cpp7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFEOffset.h9
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFESpecularLighting.cpp7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFESpecularLighting.h11
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFETile.cpp7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFETile.h9
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFETurbulence.cpp7
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFETurbulence.h9
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFilter.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFilter.h53
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFilterBuilder.cpp79
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFilterBuilder.h (renamed from src/3rdparty/webkit/WebCore/svg/FilterBuilder.h)35
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFilterEffect.cpp133
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGFilterEffect.h99
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGLightSource.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGLightSource.h4
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGPointLightSource.h4
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/filters/SVGSpotLightSource.h4
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/qt/RenderPathQt.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/qt/SVGPaintServerPatternQt.cpp90
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/qt/SVGPaintServerQt.cpp72
-rw-r--r--src/3rdparty/webkit/WebCore/svg/graphics/qt/SVGResourceFilterQt.cpp50
-rw-r--r--src/3rdparty/webkit/WebCore/svg/svgattrs.in4
-rw-r--r--src/3rdparty/webkit/WebCore/svg/svgtags.in8
-rw-r--r--src/3rdparty/webkit/WebCore/svg/xlinkattrs.in2
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLAElement.cpp19
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLAccessElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLAttributeNames.in2
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLBRElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLCardElement.cpp25
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLCardElement.h4
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLDoElement.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLDocument.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLDocument.h2
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLElement.h3
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLEventHandlingElement.cpp27
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLEventHandlingElement.h16
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLFieldSetElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLFormControlElement.cpp80
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLFormControlElement.h53
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLGoElement.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLImageElement.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLImageLoader.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLInputElement.cpp507
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLInputElement.h110
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLInsertedLegendElement.cpp7
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLInsertedLegendElement.h2
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLMetaElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLNoopElement.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLOnEventElement.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLOptGroupElement.cpp175
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLOptGroupElement.h69
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLOptionElement.cpp163
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLOptionElement.h69
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLPElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLPostfieldElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLSelectElement.cpp224
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLSelectElement.h94
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLSetvarElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLTableElement.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLTagNames.in11
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLTemplateElement.cpp7
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLTemplateElement.h5
-rw-r--r--src/3rdparty/webkit/WebCore/wml/WMLTimerElement.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/workers/GenericWorkerTask.h415
-rw-r--r--src/3rdparty/webkit/WebCore/workers/Worker.cpp (renamed from src/3rdparty/webkit/WebCore/dom/Worker.cpp)68
-rw-r--r--src/3rdparty/webkit/WebCore/workers/Worker.h (renamed from src/3rdparty/webkit/WebCore/dom/Worker.h)16
-rw-r--r--src/3rdparty/webkit/WebCore/workers/Worker.idl (renamed from src/3rdparty/webkit/WebCore/dom/Worker.idl)0
-rw-r--r--src/3rdparty/webkit/WebCore/workers/WorkerContext.cpp (renamed from src/3rdparty/webkit/WebCore/dom/WorkerContext.cpp)157
-rw-r--r--src/3rdparty/webkit/WebCore/workers/WorkerContext.h (renamed from src/3rdparty/webkit/WebCore/dom/WorkerContext.h)56
-rw-r--r--src/3rdparty/webkit/WebCore/workers/WorkerContext.idl (renamed from src/3rdparty/webkit/WebCore/dom/WorkerContext.idl)41
-rw-r--r--src/3rdparty/webkit/WebCore/workers/WorkerContextProxy.h64
-rw-r--r--src/3rdparty/webkit/WebCore/workers/WorkerImportScriptsClient.cpp96
-rw-r--r--src/3rdparty/webkit/WebCore/workers/WorkerImportScriptsClient.h77
-rw-r--r--src/3rdparty/webkit/WebCore/workers/WorkerLocation.cpp (renamed from src/3rdparty/webkit/WebCore/dom/WorkerLocation.cpp)4
-rw-r--r--src/3rdparty/webkit/WebCore/workers/WorkerLocation.h (renamed from src/3rdparty/webkit/WebCore/dom/WorkerLocation.h)0
-rw-r--r--src/3rdparty/webkit/WebCore/workers/WorkerLocation.idl (renamed from src/3rdparty/webkit/WebCore/dom/WorkerLocation.idl)0
-rw-r--r--src/3rdparty/webkit/WebCore/workers/WorkerMessagingProxy.cpp (renamed from src/3rdparty/webkit/WebCore/dom/WorkerMessagingProxy.cpp)119
-rw-r--r--src/3rdparty/webkit/WebCore/workers/WorkerMessagingProxy.h (renamed from src/3rdparty/webkit/WebCore/dom/WorkerMessagingProxy.h)51
-rw-r--r--src/3rdparty/webkit/WebCore/workers/WorkerObjectProxy.h64
-rw-r--r--src/3rdparty/webkit/WebCore/workers/WorkerRunLoop.cpp210
-rw-r--r--src/3rdparty/webkit/WebCore/workers/WorkerRunLoop.h82
-rw-r--r--src/3rdparty/webkit/WebCore/workers/WorkerThread.cpp (renamed from src/3rdparty/webkit/WebCore/dom/WorkerThread.cpp)33
-rw-r--r--src/3rdparty/webkit/WebCore/workers/WorkerThread.h (renamed from src/3rdparty/webkit/WebCore/dom/WorkerThread.h)21
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XMLHttpRequest.cpp539
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XMLHttpRequest.h54
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XMLHttpRequest.idl5
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XMLHttpRequestException.idl5
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XMLHttpRequestProgressEvent.idl3
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XMLHttpRequestUpload.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XMLHttpRequestUpload.h2
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XMLHttpRequestUpload.idl3
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathException.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathExpression.cpp21
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathExpressionNode.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathExpressionNode.h32
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathFunctions.cpp131
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathFunctions.h12
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathGrammar.y4
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathNodeSet.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathNodeSet.h16
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathPath.cpp92
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathPath.h14
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathPredicate.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathPredicate.h16
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathResult.cpp48
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathResult.h22
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathStep.cpp283
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathStep.h41
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathUtil.cpp20
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathValue.cpp22
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XPathVariableReference.h4
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XSLStyleSheet.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XSLTExtensions.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XSLTProcessor.cpp9
-rw-r--r--src/3rdparty/webkit/WebCore/xml/XSLTUnicodeSort.cpp54
-rw-r--r--src/3rdparty/webkit/WebKit.pri7
-rw-r--r--src/3rdparty/webkit/WebKit/ChangeLog317
-rw-r--r--src/3rdparty/webkit/WebKit/StringsNotToBeLocalized.txt179
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/headers.pri3
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebdatabase.cpp20
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebelement.cpp1603
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebelement.h153
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebframe.cpp279
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebframe.h17
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebframe_p.h10
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebkitglobal.h22
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp177
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebpage.h30
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebpage_p.h5
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebsecurityorigin.cpp23
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.cpp74
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.h8
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp121
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebview.h9
-rw-r--r--src/3rdparty/webkit/WebKit/qt/ChangeLog1469
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Plugins/ICOHandler.cpp1
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp25
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.h16
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/DragClientQt.cpp1
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditCommandQt.cpp1
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp15
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.h1
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp59
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h11
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp6
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.h2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/webelement/main.cpp69
-rw-r--r--src/3rdparty/webkit/WebKit/qt/docs/webkitsnippets/webelement/webelement.pro5
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebelement/qwebelement.pro7
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebelement/qwebelement.qrc6
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebelement/style.css1
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebelement/style2.css1
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp882
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebframe/qwebframe.qrc1
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebframe/style.css1
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp63
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebpage/frametest/frame_a.html2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebpage/frametest/index.html4
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebpage/qwebpage.pro1
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp99
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.qrc7
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebview/.gitignore1
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebview/qwebview.pro6
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp165
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/tests.pro2
-rw-r--r--src/activeqt/container/qaxbase.cpp2
-rw-r--r--src/activeqt/container/qaxbase.h2
-rw-r--r--src/activeqt/container/qaxdump.cpp2
-rw-r--r--src/activeqt/container/qaxobject.cpp2
-rw-r--r--src/activeqt/container/qaxobject.h2
-rw-r--r--src/activeqt/container/qaxscript.cpp2
-rw-r--r--src/activeqt/container/qaxscript.h2
-rw-r--r--src/activeqt/container/qaxscriptwrapper.cpp2
-rw-r--r--src/activeqt/container/qaxselect.cpp2
-rw-r--r--src/activeqt/container/qaxselect.h2
-rw-r--r--src/activeqt/container/qaxselect.ui2
-rw-r--r--src/activeqt/container/qaxwidget.cpp2
-rw-r--r--src/activeqt/container/qaxwidget.h2
-rw-r--r--src/activeqt/control/qaxaggregated.h2
-rw-r--r--src/activeqt/control/qaxbindable.cpp2
-rw-r--r--src/activeqt/control/qaxbindable.h2
-rw-r--r--src/activeqt/control/qaxfactory.cpp2
-rw-r--r--src/activeqt/control/qaxfactory.h2
-rw-r--r--src/activeqt/control/qaxmain.cpp2
-rw-r--r--src/activeqt/control/qaxserver.cpp2
-rw-r--r--src/activeqt/control/qaxserverbase.cpp2
-rw-r--r--src/activeqt/control/qaxserverdll.cpp2
-rw-r--r--src/activeqt/control/qaxservermain.cpp2
-rw-r--r--src/activeqt/shared/qaxtypes.cpp2
-rw-r--r--src/activeqt/shared/qaxtypes.h2
-rw-r--r--src/corelib/animation/qabstractanimation.cpp4
-rw-r--r--src/corelib/animation/qabstractanimation.h4
-rw-r--r--src/corelib/animation/qabstractanimation_p.h4
-rw-r--r--src/corelib/animation/qanimationgroup.cpp4
-rw-r--r--src/corelib/animation/qanimationgroup.h4
-rw-r--r--src/corelib/animation/qanimationgroup_p.h4
-rw-r--r--src/corelib/animation/qparallelanimationgroup.cpp4
-rw-r--r--src/corelib/animation/qparallelanimationgroup.h4
-rw-r--r--src/corelib/animation/qparallelanimationgroup_p.h4
-rw-r--r--src/corelib/animation/qpauseanimation.cpp4
-rw-r--r--src/corelib/animation/qpauseanimation.h4
-rw-r--r--src/corelib/animation/qpropertyanimation.cpp5
-rw-r--r--src/corelib/animation/qpropertyanimation.h4
-rw-r--r--src/corelib/animation/qpropertyanimation_p.h4
-rw-r--r--src/corelib/animation/qsequentialanimationgroup.cpp4
-rw-r--r--src/corelib/animation/qsequentialanimationgroup.h4
-rw-r--r--src/corelib/animation/qsequentialanimationgroup_p.h4
-rw-r--r--src/corelib/animation/qvariantanimation.cpp4
-rw-r--r--src/corelib/animation/qvariantanimation.h4
-rw-r--r--src/corelib/animation/qvariantanimation_p.h4
-rw-r--r--src/corelib/arch/arm/qatomic_arm.cpp4
-rw-r--r--src/corelib/arch/generic/qatomic_generic_unix.cpp4
-rw-r--r--src/corelib/arch/generic/qatomic_generic_windows.cpp4
-rw-r--r--src/corelib/arch/parisc/qatomic_parisc.cpp4
-rw-r--r--src/corelib/arch/qatomic_alpha.h4
-rw-r--r--src/corelib/arch/qatomic_arch.h4
-rw-r--r--src/corelib/arch/qatomic_arm.h4
-rw-r--r--src/corelib/arch/qatomic_armv6.h4
-rw-r--r--src/corelib/arch/qatomic_avr32.h4
-rw-r--r--src/corelib/arch/qatomic_bfin.h4
-rw-r--r--src/corelib/arch/qatomic_bootstrap.h4
-rw-r--r--src/corelib/arch/qatomic_generic.h4
-rw-r--r--src/corelib/arch/qatomic_i386.h4
-rw-r--r--src/corelib/arch/qatomic_ia64.h4
-rw-r--r--src/corelib/arch/qatomic_macosx.h4
-rw-r--r--src/corelib/arch/qatomic_mips.h4
-rw-r--r--src/corelib/arch/qatomic_parisc.h4
-rw-r--r--src/corelib/arch/qatomic_powerpc.h4
-rw-r--r--src/corelib/arch/qatomic_s390.h4
-rw-r--r--src/corelib/arch/qatomic_sh.h4
-rw-r--r--src/corelib/arch/qatomic_sh4a.h4
-rw-r--r--src/corelib/arch/qatomic_sparc.h4
-rw-r--r--src/corelib/arch/qatomic_windows.h4
-rw-r--r--src/corelib/arch/qatomic_windowsce.h4
-rw-r--r--src/corelib/arch/qatomic_x86_64.h4
-rw-r--r--src/corelib/arch/sh/qatomic_sh.cpp4
-rw-r--r--src/corelib/arch/sparc/qatomic_sparc.cpp4
-rw-r--r--src/corelib/codecs/qfontlaocodec.cpp4
-rw-r--r--src/corelib/codecs/qfontlaocodec_p.h4
-rw-r--r--src/corelib/codecs/qiconvcodec.cpp4
-rw-r--r--src/corelib/codecs/qiconvcodec_p.h4
-rw-r--r--src/corelib/codecs/qisciicodec.cpp4
-rw-r--r--src/corelib/codecs/qisciicodec_p.h4
-rw-r--r--src/corelib/codecs/qlatincodec.cpp4
-rw-r--r--src/corelib/codecs/qlatincodec_p.h4
-rw-r--r--src/corelib/codecs/qsimplecodec.cpp7
-rw-r--r--src/corelib/codecs/qsimplecodec_p.h4
-rw-r--r--src/corelib/codecs/qtextcodec.cpp61
-rw-r--r--src/corelib/codecs/qtextcodec.h4
-rw-r--r--src/corelib/codecs/qtextcodec_p.h4
-rw-r--r--src/corelib/codecs/qtextcodecplugin.cpp4
-rw-r--r--src/corelib/codecs/qtextcodecplugin.h4
-rw-r--r--src/corelib/codecs/qtsciicodec.cpp4
-rw-r--r--src/corelib/codecs/qtsciicodec_p.h4
-rw-r--r--src/corelib/codecs/qutfcodec.cpp22
-rw-r--r--src/corelib/codecs/qutfcodec_p.h4
-rw-r--r--src/corelib/concurrent/qfuture.cpp4
-rw-r--r--src/corelib/concurrent/qfuture.h4
-rw-r--r--src/corelib/concurrent/qfutureinterface.cpp4
-rw-r--r--src/corelib/concurrent/qfutureinterface.h4
-rw-r--r--src/corelib/concurrent/qfutureinterface_p.h4
-rw-r--r--src/corelib/concurrent/qfuturesynchronizer.cpp4
-rw-r--r--src/corelib/concurrent/qfuturesynchronizer.h4
-rw-r--r--src/corelib/concurrent/qfuturewatcher.cpp4
-rw-r--r--src/corelib/concurrent/qfuturewatcher.h4
-rw-r--r--src/corelib/concurrent/qfuturewatcher_p.h4
-rw-r--r--src/corelib/concurrent/qrunnable.cpp4
-rw-r--r--src/corelib/concurrent/qrunnable.h4
-rw-r--r--src/corelib/concurrent/qtconcurrentcompilertest.h4
-rw-r--r--src/corelib/concurrent/qtconcurrentexception.cpp4
-rw-r--r--src/corelib/concurrent/qtconcurrentexception.h4
-rw-r--r--src/corelib/concurrent/qtconcurrentfilter.cpp4
-rw-r--r--src/corelib/concurrent/qtconcurrentfilter.h4
-rw-r--r--src/corelib/concurrent/qtconcurrentfilterkernel.h4
-rw-r--r--src/corelib/concurrent/qtconcurrentfunctionwrappers.h4
-rw-r--r--src/corelib/concurrent/qtconcurrentiteratekernel.cpp4
-rw-r--r--src/corelib/concurrent/qtconcurrentiteratekernel.h4
-rw-r--r--src/corelib/concurrent/qtconcurrentmap.cpp4
-rw-r--r--src/corelib/concurrent/qtconcurrentmap.h4
-rw-r--r--src/corelib/concurrent/qtconcurrentmapkernel.h4
-rw-r--r--src/corelib/concurrent/qtconcurrentmedian.h4
-rw-r--r--src/corelib/concurrent/qtconcurrentreducekernel.h4
-rw-r--r--src/corelib/concurrent/qtconcurrentresultstore.cpp4
-rw-r--r--src/corelib/concurrent/qtconcurrentresultstore.h4
-rw-r--r--src/corelib/concurrent/qtconcurrentrun.cpp4
-rw-r--r--src/corelib/concurrent/qtconcurrentrun.h4
-rw-r--r--src/corelib/concurrent/qtconcurrentrunbase.h4
-rw-r--r--src/corelib/concurrent/qtconcurrentstoredfunctioncall.h4
-rw-r--r--src/corelib/concurrent/qtconcurrentthreadengine.cpp4
-rw-r--r--src/corelib/concurrent/qtconcurrentthreadengine.h4
-rw-r--r--src/corelib/concurrent/qthreadpool.cpp4
-rw-r--r--src/corelib/concurrent/qthreadpool.h4
-rw-r--r--src/corelib/concurrent/qthreadpool_p.h4
-rw-r--r--src/corelib/global/qconfig-dist.h4
-rw-r--r--src/corelib/global/qconfig-large.h4
-rw-r--r--src/corelib/global/qconfig-medium.h4
-rw-r--r--src/corelib/global/qconfig-minimal.h4
-rw-r--r--src/corelib/global/qconfig-small.h4
-rw-r--r--src/corelib/global/qendian.h4
-rw-r--r--src/corelib/global/qfeatures.h4
-rw-r--r--src/corelib/global/qglobal.cpp4
-rw-r--r--src/corelib/global/qglobal.h4
-rw-r--r--src/corelib/global/qlibraryinfo.cpp6
-rw-r--r--src/corelib/global/qlibraryinfo.h4
-rw-r--r--src/corelib/global/qmalloc.cpp4
-rw-r--r--src/corelib/global/qnamespace.h8
-rw-r--r--src/corelib/global/qnumeric.cpp4
-rw-r--r--src/corelib/global/qnumeric.h4
-rw-r--r--src/corelib/global/qnumeric_p.h4
-rw-r--r--src/corelib/global/qt_pch.h4
-rw-r--r--src/corelib/global/qt_windows.h4
-rw-r--r--src/corelib/io/qabstractfileengine.cpp6
-rw-r--r--src/corelib/io/qabstractfileengine.h7
-rw-r--r--src/corelib/io/qabstractfileengine_p.h4
-rw-r--r--src/corelib/io/qbuffer.cpp4
-rw-r--r--src/corelib/io/qbuffer.h4
-rw-r--r--src/corelib/io/qdatastream.cpp4
-rw-r--r--src/corelib/io/qdatastream.h4
-rw-r--r--src/corelib/io/qdebug.cpp4
-rw-r--r--src/corelib/io/qdebug.h4
-rw-r--r--src/corelib/io/qdir.cpp77
-rw-r--r--src/corelib/io/qdir.h4
-rw-r--r--src/corelib/io/qdiriterator.cpp121
-rw-r--r--src/corelib/io/qdiriterator.h4
-rw-r--r--src/corelib/io/qfile.cpp12
-rw-r--r--src/corelib/io/qfile.h4
-rw-r--r--src/corelib/io/qfile_p.h4
-rw-r--r--src/corelib/io/qfileinfo.cpp11
-rw-r--r--src/corelib/io/qfileinfo.h4
-rw-r--r--src/corelib/io/qfileinfo_p.h9
-rw-r--r--src/corelib/io/qfilesystemwatcher.cpp4
-rw-r--r--src/corelib/io/qfilesystemwatcher.h4
-rw-r--r--src/corelib/io/qfilesystemwatcher_dnotify.cpp4
-rw-r--r--src/corelib/io/qfilesystemwatcher_dnotify_p.h4
-rw-r--r--src/corelib/io/qfilesystemwatcher_inotify.cpp4
-rw-r--r--src/corelib/io/qfilesystemwatcher_inotify_p.h4
-rw-r--r--src/corelib/io/qfilesystemwatcher_kqueue.cpp4
-rw-r--r--src/corelib/io/qfilesystemwatcher_kqueue_p.h4
-rw-r--r--src/corelib/io/qfilesystemwatcher_p.h4
-rw-r--r--src/corelib/io/qfilesystemwatcher_win.cpp4
-rw-r--r--src/corelib/io/qfilesystemwatcher_win_p.h4
-rw-r--r--src/corelib/io/qfsfileengine.cpp4
-rw-r--r--src/corelib/io/qfsfileengine.h4
-rw-r--r--src/corelib/io/qfsfileengine_iterator.cpp4
-rw-r--r--src/corelib/io/qfsfileengine_iterator_p.h4
-rw-r--r--src/corelib/io/qfsfileengine_iterator_unix.cpp4
-rw-r--r--src/corelib/io/qfsfileengine_iterator_win.cpp4
-rw-r--r--src/corelib/io/qfsfileengine_p.h4
-rw-r--r--src/corelib/io/qfsfileengine_unix.cpp4
-rw-r--r--src/corelib/io/qfsfileengine_win.cpp4
-rw-r--r--src/corelib/io/qiodevice.cpp8
-rw-r--r--src/corelib/io/qiodevice.h4
-rw-r--r--src/corelib/io/qiodevice_p.h4
-rw-r--r--src/corelib/io/qnoncontiguousbytedevice.cpp4
-rw-r--r--src/corelib/io/qnoncontiguousbytedevice_p.h4
-rw-r--r--src/corelib/io/qprocess.cpp4
-rw-r--r--src/corelib/io/qprocess.h4
-rw-r--r--src/corelib/io/qprocess_p.h4
-rw-r--r--src/corelib/io/qprocess_unix.cpp4
-rw-r--r--src/corelib/io/qprocess_win.cpp4
-rw-r--r--src/corelib/io/qresource.cpp4
-rw-r--r--src/corelib/io/qresource.h4
-rw-r--r--src/corelib/io/qresource_iterator.cpp4
-rw-r--r--src/corelib/io/qresource_iterator_p.h4
-rw-r--r--src/corelib/io/qresource_p.h4
-rw-r--r--src/corelib/io/qsettings.cpp4
-rw-r--r--src/corelib/io/qsettings.h4
-rw-r--r--src/corelib/io/qsettings_mac.cpp4
-rw-r--r--src/corelib/io/qsettings_p.h6
-rw-r--r--src/corelib/io/qsettings_win.cpp4
-rw-r--r--src/corelib/io/qtemporaryfile.cpp4
-rw-r--r--src/corelib/io/qtemporaryfile.h4
-rw-r--r--src/corelib/io/qtextstream.cpp6
-rw-r--r--src/corelib/io/qtextstream.h4
-rw-r--r--src/corelib/io/qurl.cpp4
-rw-r--r--src/corelib/io/qurl.h11
-rw-r--r--src/corelib/io/qwindowspipewriter.cpp4
-rw-r--r--src/corelib/io/qwindowspipewriter_p.h4
-rw-r--r--src/corelib/kernel/qabstracteventdispatcher.cpp4
-rw-r--r--src/corelib/kernel/qabstracteventdispatcher.h4
-rw-r--r--src/corelib/kernel/qabstracteventdispatcher_p.h4
-rw-r--r--src/corelib/kernel/qabstractitemmodel.cpp4
-rw-r--r--src/corelib/kernel/qabstractitemmodel.h4
-rw-r--r--src/corelib/kernel/qabstractitemmodel_p.h4
-rw-r--r--src/corelib/kernel/qbasictimer.cpp4
-rw-r--r--src/corelib/kernel/qbasictimer.h4
-rw-r--r--src/corelib/kernel/qcore_mac.cpp4
-rw-r--r--src/corelib/kernel/qcore_mac_p.h4
-rw-r--r--src/corelib/kernel/qcoreapplication.cpp4
-rw-r--r--src/corelib/kernel/qcoreapplication.h4
-rw-r--r--src/corelib/kernel/qcoreapplication_mac.cpp4
-rw-r--r--src/corelib/kernel/qcoreapplication_p.h4
-rw-r--r--src/corelib/kernel/qcoreapplication_win.cpp4
-rw-r--r--src/corelib/kernel/qcorecmdlineargs_p.h4
-rw-r--r--src/corelib/kernel/qcoreevent.cpp4
-rw-r--r--src/corelib/kernel/qcoreevent.h4
-rw-r--r--src/corelib/kernel/qcoreglobaldata.cpp4
-rw-r--r--src/corelib/kernel/qcoreglobaldata_p.h4
-rw-r--r--src/corelib/kernel/qcrashhandler.cpp4
-rw-r--r--src/corelib/kernel/qcrashhandler_p.h4
-rw-r--r--src/corelib/kernel/qeventdispatcher_glib.cpp4
-rw-r--r--src/corelib/kernel/qeventdispatcher_glib_p.h4
-rw-r--r--src/corelib/kernel/qeventdispatcher_unix.cpp4
-rw-r--r--src/corelib/kernel/qeventdispatcher_unix_p.h4
-rw-r--r--src/corelib/kernel/qeventdispatcher_win.cpp4
-rw-r--r--src/corelib/kernel/qeventdispatcher_win_p.h4
-rw-r--r--src/corelib/kernel/qeventloop.cpp4
-rw-r--r--src/corelib/kernel/qeventloop.h4
-rw-r--r--src/corelib/kernel/qfunctions_p.h4
-rw-r--r--src/corelib/kernel/qfunctions_wince.cpp4
-rw-r--r--src/corelib/kernel/qfunctions_wince.h4
-rw-r--r--src/corelib/kernel/qmath.h4
-rw-r--r--src/corelib/kernel/qmetaobject.cpp4
-rw-r--r--src/corelib/kernel/qmetaobject.h4
-rw-r--r--src/corelib/kernel/qmetaobject_p.h4
-rw-r--r--src/corelib/kernel/qmetatype.cpp4
-rw-r--r--src/corelib/kernel/qmetatype.h6
-rw-r--r--src/corelib/kernel/qmimedata.cpp4
-rw-r--r--src/corelib/kernel/qmimedata.h4
-rw-r--r--src/corelib/kernel/qobject.cpp4
-rw-r--r--src/corelib/kernel/qobject.h4
-rw-r--r--src/corelib/kernel/qobject_p.h4
-rw-r--r--src/corelib/kernel/qobjectcleanuphandler.cpp4
-rw-r--r--src/corelib/kernel/qobjectcleanuphandler.h4
-rw-r--r--src/corelib/kernel/qobjectdefs.h4
-rw-r--r--src/corelib/kernel/qpointer.cpp4
-rw-r--r--src/corelib/kernel/qpointer.h4
-rw-r--r--src/corelib/kernel/qsharedmemory.cpp4
-rw-r--r--src/corelib/kernel/qsharedmemory.h4
-rw-r--r--src/corelib/kernel/qsharedmemory_p.h4
-rw-r--r--src/corelib/kernel/qsharedmemory_unix.cpp4
-rw-r--r--src/corelib/kernel/qsharedmemory_win.cpp4
-rw-r--r--src/corelib/kernel/qsignalmapper.cpp4
-rw-r--r--src/corelib/kernel/qsignalmapper.h4
-rw-r--r--src/corelib/kernel/qsocketnotifier.cpp4
-rw-r--r--src/corelib/kernel/qsocketnotifier.h4
-rw-r--r--src/corelib/kernel/qsystemsemaphore.cpp4
-rw-r--r--src/corelib/kernel/qsystemsemaphore.h4
-rw-r--r--src/corelib/kernel/qsystemsemaphore_p.h4
-rw-r--r--src/corelib/kernel/qsystemsemaphore_unix.cpp4
-rw-r--r--src/corelib/kernel/qsystemsemaphore_win.cpp4
-rw-r--r--src/corelib/kernel/qtimer.cpp4
-rw-r--r--src/corelib/kernel/qtimer.h4
-rw-r--r--src/corelib/kernel/qtranslator.cpp4
-rw-r--r--src/corelib/kernel/qtranslator.h4
-rw-r--r--src/corelib/kernel/qtranslator_p.h4
-rw-r--r--src/corelib/kernel/qvariant.cpp20
-rw-r--r--src/corelib/kernel/qvariant.h4
-rw-r--r--src/corelib/kernel/qvariant_p.h4
-rw-r--r--src/corelib/kernel/qwineventnotifier_p.cpp4
-rw-r--r--src/corelib/kernel/qwineventnotifier_p.h4
-rw-r--r--src/corelib/plugin/qfactoryinterface.h4
-rw-r--r--src/corelib/plugin/qfactoryloader.cpp4
-rw-r--r--src/corelib/plugin/qfactoryloader_p.h4
-rw-r--r--src/corelib/plugin/qlibrary.cpp4
-rw-r--r--src/corelib/plugin/qlibrary.h4
-rw-r--r--src/corelib/plugin/qlibrary_p.h4
-rw-r--r--src/corelib/plugin/qlibrary_unix.cpp4
-rw-r--r--src/corelib/plugin/qlibrary_win.cpp4
-rw-r--r--src/corelib/plugin/qplugin.h4
-rw-r--r--src/corelib/plugin/qpluginloader.cpp4
-rw-r--r--src/corelib/plugin/qpluginloader.h4
-rw-r--r--src/corelib/plugin/quuid.cpp4
-rw-r--r--src/corelib/plugin/quuid.h4
-rw-r--r--src/corelib/statemachine/qabstractstate.cpp7
-rw-r--r--src/corelib/statemachine/qabstractstate.h7
-rw-r--r--src/corelib/statemachine/qabstractstate_p.h4
-rw-r--r--src/corelib/statemachine/qabstracttransition.cpp25
-rw-r--r--src/corelib/statemachine/qabstracttransition.h10
-rw-r--r--src/corelib/statemachine/qabstracttransition_p.h5
-rw-r--r--src/corelib/statemachine/qeventtransition.cpp4
-rw-r--r--src/corelib/statemachine/qeventtransition.h4
-rw-r--r--src/corelib/statemachine/qeventtransition_p.h4
-rw-r--r--src/corelib/statemachine/qfinalstate.cpp4
-rw-r--r--src/corelib/statemachine/qfinalstate.h4
-rw-r--r--src/corelib/statemachine/qhistorystate.cpp4
-rw-r--r--src/corelib/statemachine/qhistorystate.h4
-rw-r--r--src/corelib/statemachine/qhistorystate_p.h4
-rw-r--r--src/corelib/statemachine/qsignalevent.h4
-rw-r--r--src/corelib/statemachine/qsignaleventgenerator_p.h4
-rw-r--r--src/corelib/statemachine/qsignaltransition.cpp4
-rw-r--r--src/corelib/statemachine/qsignaltransition.h4
-rw-r--r--src/corelib/statemachine/qsignaltransition_p.h4
-rw-r--r--src/corelib/statemachine/qstate.cpp4
-rw-r--r--src/corelib/statemachine/qstate.h4
-rw-r--r--src/corelib/statemachine/qstate_p.h4
-rw-r--r--src/corelib/statemachine/qstatemachine.cpp9
-rw-r--r--src/corelib/statemachine/qstatemachine.h4
-rw-r--r--src/corelib/statemachine/qstatemachine_p.h4
-rw-r--r--src/corelib/statemachine/qwrappedevent.h4
-rw-r--r--src/corelib/thread/qatomic.cpp4
-rw-r--r--src/corelib/thread/qatomic.h4
-rw-r--r--src/corelib/thread/qbasicatomic.h4
-rw-r--r--src/corelib/thread/qmutex.cpp4
-rw-r--r--src/corelib/thread/qmutex.h4
-rw-r--r--src/corelib/thread/qmutex_p.h4
-rw-r--r--src/corelib/thread/qmutex_unix.cpp4
-rw-r--r--src/corelib/thread/qmutex_win.cpp4
-rw-r--r--src/corelib/thread/qmutexpool.cpp4
-rw-r--r--src/corelib/thread/qmutexpool_p.h4
-rw-r--r--src/corelib/thread/qorderedmutexlocker_p.h4
-rw-r--r--src/corelib/thread/qreadwritelock.cpp4
-rw-r--r--src/corelib/thread/qreadwritelock.h4
-rw-r--r--src/corelib/thread/qreadwritelock_p.h4
-rw-r--r--src/corelib/thread/qsemaphore.cpp4
-rw-r--r--src/corelib/thread/qsemaphore.h4
-rw-r--r--src/corelib/thread/qthread.cpp4
-rw-r--r--src/corelib/thread/qthread.h4
-rw-r--r--src/corelib/thread/qthread_p.h4
-rw-r--r--src/corelib/thread/qthread_unix.cpp4
-rw-r--r--src/corelib/thread/qthread_win.cpp4
-rw-r--r--src/corelib/thread/qthreadstorage.cpp4
-rw-r--r--src/corelib/thread/qthreadstorage.h4
-rw-r--r--src/corelib/thread/qwaitcondition.h4
-rw-r--r--src/corelib/thread/qwaitcondition_unix.cpp4
-rw-r--r--src/corelib/thread/qwaitcondition_win.cpp4
-rw-r--r--src/corelib/tools/qalgorithms.h4
-rw-r--r--src/corelib/tools/qbitarray.cpp4
-rw-r--r--src/corelib/tools/qbitarray.h4
-rw-r--r--src/corelib/tools/qbytearray.cpp4
-rw-r--r--src/corelib/tools/qbytearray.h4
-rw-r--r--src/corelib/tools/qbytearraymatcher.cpp4
-rw-r--r--src/corelib/tools/qbytearraymatcher.h4
-rw-r--r--src/corelib/tools/qcache.h4
-rw-r--r--src/corelib/tools/qchar.cpp4
-rw-r--r--src/corelib/tools/qchar.h4
-rw-r--r--src/corelib/tools/qcontainerfwd.h4
-rw-r--r--src/corelib/tools/qcontiguouscache.cpp11
-rw-r--r--src/corelib/tools/qcontiguouscache.h4
-rw-r--r--src/corelib/tools/qcryptographichash.cpp4
-rw-r--r--src/corelib/tools/qcryptographichash.h4
-rw-r--r--src/corelib/tools/qdatetime.cpp4
-rw-r--r--src/corelib/tools/qdatetime.h4
-rw-r--r--src/corelib/tools/qdatetime_p.h4
-rw-r--r--src/corelib/tools/qeasingcurve.cpp4
-rw-r--r--src/corelib/tools/qeasingcurve.h4
-rw-r--r--src/corelib/tools/qharfbuzz.cpp4
-rw-r--r--src/corelib/tools/qharfbuzz_p.h4
-rw-r--r--src/corelib/tools/qhash.cpp4
-rw-r--r--src/corelib/tools/qhash.h4
-rw-r--r--src/corelib/tools/qiterator.h4
-rw-r--r--src/corelib/tools/qline.cpp4
-rw-r--r--src/corelib/tools/qline.h4
-rw-r--r--src/corelib/tools/qlinkedlist.cpp4
-rw-r--r--src/corelib/tools/qlinkedlist.h4
-rw-r--r--src/corelib/tools/qlist.h4
-rw-r--r--src/corelib/tools/qlistdata.cpp4
-rw-r--r--src/corelib/tools/qlocale.cpp10
-rw-r--r--src/corelib/tools/qlocale.h4
-rw-r--r--src/corelib/tools/qlocale_data_p.h4
-rw-r--r--src/corelib/tools/qlocale_p.h4
-rw-r--r--src/corelib/tools/qmap.cpp4
-rw-r--r--src/corelib/tools/qmap.h4
-rw-r--r--src/corelib/tools/qpair.h4
-rw-r--r--src/corelib/tools/qpodlist_p.h4
-rw-r--r--src/corelib/tools/qpoint.cpp4
-rw-r--r--src/corelib/tools/qpoint.h4
-rw-r--r--src/corelib/tools/qqueue.cpp4
-rw-r--r--src/corelib/tools/qqueue.h4
-rw-r--r--src/corelib/tools/qrect.cpp4
-rw-r--r--src/corelib/tools/qrect.h4
-rw-r--r--src/corelib/tools/qregexp.cpp4
-rw-r--r--src/corelib/tools/qregexp.h4
-rw-r--r--src/corelib/tools/qringbuffer_p.h4
-rw-r--r--src/corelib/tools/qset.h4
-rw-r--r--src/corelib/tools/qshareddata.cpp4
-rw-r--r--src/corelib/tools/qshareddata.h4
-rw-r--r--src/corelib/tools/qsharedpointer.cpp4
-rw-r--r--src/corelib/tools/qsharedpointer.h4
-rw-r--r--src/corelib/tools/qsharedpointer_impl.h4
-rw-r--r--src/corelib/tools/qsize.cpp4
-rw-r--r--src/corelib/tools/qsize.h4
-rw-r--r--src/corelib/tools/qstack.cpp4
-rw-r--r--src/corelib/tools/qstack.h4
-rw-r--r--src/corelib/tools/qstring.cpp92
-rw-r--r--src/corelib/tools/qstring.h7
-rw-r--r--src/corelib/tools/qstringbuilder.cpp64
-rw-r--r--src/corelib/tools/qstringbuilder.h15
-rw-r--r--src/corelib/tools/qstringlist.cpp4
-rw-r--r--src/corelib/tools/qstringlist.h4
-rw-r--r--src/corelib/tools/qstringmatcher.cpp4
-rw-r--r--src/corelib/tools/qstringmatcher.h4
-rw-r--r--src/corelib/tools/qtextboundaryfinder.cpp4
-rw-r--r--src/corelib/tools/qtextboundaryfinder.h4
-rw-r--r--src/corelib/tools/qtimeline.cpp4
-rw-r--r--src/corelib/tools/qtimeline.h4
-rw-r--r--src/corelib/tools/qtools_p.h4
-rw-r--r--src/corelib/tools/qunicodetables.cpp4
-rw-r--r--src/corelib/tools/qunicodetables_p.h4
-rw-r--r--src/corelib/tools/qvarlengtharray.h4
-rw-r--r--src/corelib/tools/qvector.cpp4
-rw-r--r--src/corelib/tools/qvector.h4
-rw-r--r--src/corelib/tools/qvsnprintf.cpp4
-rw-r--r--src/corelib/xml/qxmlstream.cpp4
-rw-r--r--src/corelib/xml/qxmlstream.g4
-rw-r--r--src/corelib/xml/qxmlstream.h4
-rw-r--r--src/corelib/xml/qxmlstream_p.h4
-rw-r--r--src/corelib/xml/qxmlutils.cpp4
-rw-r--r--src/corelib/xml/qxmlutils_p.h4
-rw-r--r--src/dbus/qdbus_symbols.cpp4
-rw-r--r--src/dbus/qdbus_symbols_p.h4
-rw-r--r--src/dbus/qdbusabstractadaptor.cpp4
-rw-r--r--src/dbus/qdbusabstractadaptor.h4
-rw-r--r--src/dbus/qdbusabstractadaptor_p.h4
-rw-r--r--src/dbus/qdbusabstractinterface.cpp4
-rw-r--r--src/dbus/qdbusabstractinterface.h4
-rw-r--r--src/dbus/qdbusabstractinterface_p.h4
-rw-r--r--src/dbus/qdbusargument.cpp4
-rw-r--r--src/dbus/qdbusargument.h4
-rw-r--r--src/dbus/qdbusargument_p.h4
-rw-r--r--src/dbus/qdbusconnection.cpp4
-rw-r--r--src/dbus/qdbusconnection.h4
-rw-r--r--src/dbus/qdbusconnection_p.h4
-rw-r--r--src/dbus/qdbusconnectioninterface.cpp4
-rw-r--r--src/dbus/qdbusconnectioninterface.h4
-rw-r--r--src/dbus/qdbuscontext.cpp4
-rw-r--r--src/dbus/qdbuscontext.h4
-rw-r--r--src/dbus/qdbuscontext_p.h4
-rw-r--r--src/dbus/qdbusdemarshaller.cpp4
-rw-r--r--src/dbus/qdbuserror.cpp4
-rw-r--r--src/dbus/qdbuserror.h4
-rw-r--r--src/dbus/qdbusextratypes.cpp4
-rw-r--r--src/dbus/qdbusextratypes.h4
-rw-r--r--src/dbus/qdbusintegrator.cpp4
-rw-r--r--src/dbus/qdbusintegrator_p.h4
-rw-r--r--src/dbus/qdbusinterface.cpp4
-rw-r--r--src/dbus/qdbusinterface.h4
-rw-r--r--src/dbus/qdbusinterface_p.h4
-rw-r--r--src/dbus/qdbusinternalfilters.cpp4
-rw-r--r--src/dbus/qdbusintrospection.cpp4
-rw-r--r--src/dbus/qdbusintrospection_p.h4
-rw-r--r--src/dbus/qdbusmacros.h4
-rw-r--r--src/dbus/qdbusmarshaller.cpp4
-rw-r--r--src/dbus/qdbusmessage.cpp4
-rw-r--r--src/dbus/qdbusmessage.h4
-rw-r--r--src/dbus/qdbusmessage_p.h4
-rw-r--r--src/dbus/qdbusmetaobject.cpp4
-rw-r--r--src/dbus/qdbusmetaobject_p.h4
-rw-r--r--src/dbus/qdbusmetatype.cpp4
-rw-r--r--src/dbus/qdbusmetatype.h4
-rw-r--r--src/dbus/qdbusmetatype_p.h4
-rw-r--r--src/dbus/qdbusmisc.cpp4
-rw-r--r--src/dbus/qdbuspendingcall.cpp4
-rw-r--r--src/dbus/qdbuspendingcall.h4
-rw-r--r--src/dbus/qdbuspendingcall_p.h4
-rw-r--r--src/dbus/qdbuspendingreply.cpp4
-rw-r--r--src/dbus/qdbuspendingreply.h4
-rw-r--r--src/dbus/qdbusreply.cpp4
-rw-r--r--src/dbus/qdbusreply.h4
-rw-r--r--src/dbus/qdbusserver.cpp4
-rw-r--r--src/dbus/qdbusserver.h4
-rw-r--r--src/dbus/qdbusthread.cpp4
-rw-r--r--src/dbus/qdbusthreaddebug_p.h4
-rw-r--r--src/dbus/qdbusutil.cpp4
-rw-r--r--src/dbus/qdbusutil_p.h4
-rw-r--r--src/dbus/qdbusxmlgenerator.cpp4
-rw-r--r--src/dbus/qdbusxmlparser.cpp4
-rw-r--r--src/dbus/qdbusxmlparser_p.h4
-rw-r--r--src/declarative/extra/qmlsqlconnection.cpp2
-rw-r--r--src/declarative/extra/qmlsqlquery.cpp142
-rw-r--r--src/declarative/extra/qmlsqlquery.h3
-rw-r--r--src/declarative/extra/qmlxmllistmodel.cpp31
-rw-r--r--src/declarative/extra/qmlxmllistmodel.h12
-rw-r--r--src/declarative/fx/fx.pri2
-rw-r--r--src/declarative/fx/qfxanchors.cpp14
-rw-r--r--src/declarative/fx/qfxanimatedimageitem.cpp2
-rw-r--r--src/declarative/fx/qfxanimatedimageitem.h2
-rw-r--r--src/declarative/fx/qfxblendedimage.cpp11
-rw-r--r--src/declarative/fx/qfxblendedimage.h1
-rw-r--r--src/declarative/fx/qfxflowview.cpp380
-rw-r--r--src/declarative/fx/qfxflowview.h106
-rw-r--r--src/declarative/fx/qfxhighlightfilter.cpp9
-rw-r--r--src/declarative/fx/qfximage.cpp17
-rw-r--r--src/declarative/fx/qfxitem.cpp6
-rw-r--r--src/declarative/fx/qfxparticles.cpp3
-rw-r--r--src/declarative/fx/qfxrect.cpp2
-rw-r--r--src/declarative/fx/qfxrect_p.h2
-rw-r--r--src/declarative/fx/qfxtextedit.cpp6
-rw-r--r--src/declarative/fx/qfxwebview.cpp2
-rw-r--r--src/declarative/qml/parser/parser.pri34
-rw-r--r--src/declarative/qml/parser/qmljs.g (renamed from src/declarative/qml/parser/javascript.g)47
-rw-r--r--src/declarative/qml/parser/qmljsast.cpp (renamed from src/declarative/qml/parser/javascriptast.cpp)8
-rw-r--r--src/declarative/qml/parser/qmljsast_p.h (renamed from src/declarative/qml/parser/javascriptast_p.h)190
-rw-r--r--src/declarative/qml/parser/qmljsastfwd_p.h (renamed from src/declarative/qml/parser/javascriptastfwd_p.h)6
-rw-r--r--src/declarative/qml/parser/qmljsastvisitor.cpp (renamed from src/declarative/qml/parser/javascriptastvisitor.cpp)6
-rw-r--r--src/declarative/qml/parser/qmljsastvisitor_p.h (renamed from src/declarative/qml/parser/javascriptastvisitor_p.h)12
-rw-r--r--src/declarative/qml/parser/qmljsengine_p.cpp (renamed from src/declarative/qml/parser/javascriptengine_p.cpp)10
-rw-r--r--src/declarative/qml/parser/qmljsengine_p.h (renamed from src/declarative/qml/parser/javascriptengine_p.h)22
-rw-r--r--src/declarative/qml/parser/qmljsgrammar.cpp (renamed from src/declarative/qml/parser/javascriptgrammar.cpp)18
-rw-r--r--src/declarative/qml/parser/qmljsgrammar_p.h (renamed from src/declarative/qml/parser/javascriptgrammar_p.h)8
-rw-r--r--src/declarative/qml/parser/qmljslexer.cpp (renamed from src/declarative/qml/parser/javascriptlexer.cpp)264
-rw-r--r--src/declarative/qml/parser/qmljslexer_p.h (renamed from src/declarative/qml/parser/javascriptlexer_p.h)8
-rw-r--r--src/declarative/qml/parser/qmljsmemorypool_p.h (renamed from src/declarative/qml/parser/javascriptmemorypool_p.h)8
-rw-r--r--src/declarative/qml/parser/qmljsnodepool_p.h (renamed from src/declarative/qml/parser/javascriptnodepool_p.h)10
-rw-r--r--src/declarative/qml/parser/qmljsparser.cpp (renamed from src/declarative/qml/parser/javascriptparser.cpp)20
-rw-r--r--src/declarative/qml/parser/qmljsparser_p.h (renamed from src/declarative/qml/parser/javascriptparser_p.h)20
-rw-r--r--src/declarative/qml/parser/qmljsprettypretty.cpp (renamed from src/declarative/qml/parser/javascriptprettypretty.cpp)14
-rw-r--r--src/declarative/qml/parser/qmljsprettypretty_p.h (renamed from src/declarative/qml/parser/javascriptprettypretty_p.h)10
-rw-r--r--src/declarative/qml/qml.h1
-rw-r--r--src/declarative/qml/qmlbasicscript.cpp40
-rw-r--r--src/declarative/qml/qmlbindablevalue.cpp9
-rw-r--r--src/declarative/qml/qmlcompiler.cpp72
-rw-r--r--src/declarative/qml/qmlcompiler_p.h1
-rw-r--r--src/declarative/qml/qmlcompositetypemanager.cpp4
-rw-r--r--src/declarative/qml/qmldeclarativedata_p.h94
-rw-r--r--src/declarative/qml/qmlengine.cpp55
-rw-r--r--src/declarative/qml/qmlinstruction_p.h8
-rw-r--r--src/declarative/qml/qmlmetaproperty.cpp10
-rw-r--r--src/declarative/qml/qmlmetatype.cpp5
-rw-r--r--src/declarative/qml/qmlparser.cpp4
-rw-r--r--src/declarative/qml/qmlparser_p.h8
-rw-r--r--src/declarative/qml/qmlprivate.h60
-rw-r--r--src/declarative/qml/qmlproxymetaobject.cpp28
-rw-r--r--src/declarative/qml/qmlproxymetaobject_p.h1
-rw-r--r--src/declarative/qml/qmlscriptparser.cpp18
-rw-r--r--src/declarative/qml/qmlvme.cpp69
-rw-r--r--src/declarative/qml/qmlvme_p.h4
-rw-r--r--src/declarative/qml/qmlvmemetaobject.cpp16
-rw-r--r--src/declarative/qml/qmlvmemetaobject_p.h1
-rw-r--r--src/declarative/qml/rewriter/rewriter.cpp8
-rw-r--r--src/declarative/qml/rewriter/rewriter_p.h6
-rw-r--r--src/declarative/qml/rewriter/textwriter.cpp2
-rw-r--r--src/declarative/qml/rewriter/textwriter_p.h4
-rw-r--r--src/declarative/timeline/qmltimeline.h2
-rw-r--r--src/declarative/util/qmlanimation.cpp26
-rw-r--r--src/declarative/util/qmlanimation.h7
-rw-r--r--src/declarative/util/qmlbehaviour.cpp32
-rw-r--r--src/declarative/util/qmlbehaviour.h6
-rw-r--r--src/declarative/util/qmlbind.h2
-rw-r--r--src/declarative/util/qmlconnection.h6
-rw-r--r--src/declarative/util/qmldatetimeformatter.h3
-rw-r--r--src/declarative/util/qmlfollow.h8
-rw-r--r--src/declarative/util/qmlfont.h4
-rw-r--r--src/declarative/util/qmllistaccessor.h4
-rw-r--r--src/declarative/util/qmlopenmetaobject.h3
-rw-r--r--src/declarative/util/qmlpackage.h7
-rw-r--r--src/declarative/util/qmlscript.cpp10
-rw-r--r--src/declarative/util/qmlstategroup.h9
-rw-r--r--src/gui/accessible/qaccessible.cpp4
-rw-r--r--src/gui/accessible/qaccessible.h4
-rw-r--r--src/gui/accessible/qaccessible2.cpp4
-rw-r--r--src/gui/accessible/qaccessible2.h4
-rw-r--r--src/gui/accessible/qaccessible_mac.mm4
-rw-r--r--src/gui/accessible/qaccessible_mac_carbon.cpp4
-rw-r--r--src/gui/accessible/qaccessible_mac_p.h4
-rw-r--r--src/gui/accessible/qaccessible_unix.cpp4
-rw-r--r--src/gui/accessible/qaccessible_win.cpp8
-rw-r--r--src/gui/accessible/qaccessiblebridge.cpp4
-rw-r--r--src/gui/accessible/qaccessiblebridge.h4
-rw-r--r--src/gui/accessible/qaccessibleobject.cpp18
-rw-r--r--src/gui/accessible/qaccessibleobject.h4
-rw-r--r--src/gui/accessible/qaccessibleplugin.cpp4
-rw-r--r--src/gui/accessible/qaccessibleplugin.h4
-rw-r--r--src/gui/accessible/qaccessiblewidget.cpp4
-rw-r--r--src/gui/accessible/qaccessiblewidget.h4
-rw-r--r--src/gui/animation/qguivariantanimation.cpp4
-rw-r--r--src/gui/dialogs/qabstractpagesetupdialog.cpp4
-rw-r--r--src/gui/dialogs/qabstractpagesetupdialog.h4
-rw-r--r--src/gui/dialogs/qabstractpagesetupdialog_p.h4
-rw-r--r--src/gui/dialogs/qabstractprintdialog.cpp4
-rw-r--r--src/gui/dialogs/qabstractprintdialog.h4
-rw-r--r--src/gui/dialogs/qabstractprintdialog_p.h4
-rw-r--r--src/gui/dialogs/qcolordialog.cpp6
-rw-r--r--src/gui/dialogs/qcolordialog.h4
-rw-r--r--src/gui/dialogs/qcolordialog_mac.mm4
-rw-r--r--src/gui/dialogs/qcolordialog_p.h4
-rw-r--r--src/gui/dialogs/qdialog.cpp4
-rw-r--r--src/gui/dialogs/qdialog.h4
-rw-r--r--src/gui/dialogs/qdialog_p.h4
-rw-r--r--src/gui/dialogs/qdialogsbinarycompat_win.cpp4
-rw-r--r--src/gui/dialogs/qerrormessage.cpp6
-rw-r--r--src/gui/dialogs/qerrormessage.h4
-rw-r--r--src/gui/dialogs/qfiledialog.cpp4
-rw-r--r--src/gui/dialogs/qfiledialog.h4
-rw-r--r--src/gui/dialogs/qfiledialog.ui4
-rw-r--r--src/gui/dialogs/qfiledialog_mac.mm4
-rw-r--r--src/gui/dialogs/qfiledialog_p.h7
-rw-r--r--src/gui/dialogs/qfiledialog_win.cpp10
-rw-r--r--src/gui/dialogs/qfiledialog_wince.ui2
-rw-r--r--src/gui/dialogs/qfileinfogatherer.cpp4
-rw-r--r--src/gui/dialogs/qfileinfogatherer_p.h4
-rw-r--r--src/gui/dialogs/qfilesystemmodel.cpp6
-rw-r--r--src/gui/dialogs/qfilesystemmodel.h4
-rw-r--r--src/gui/dialogs/qfilesystemmodel_p.h4
-rw-r--r--src/gui/dialogs/qfontdialog.cpp15
-rw-r--r--src/gui/dialogs/qfontdialog.h4
-rw-r--r--src/gui/dialogs/qfontdialog_mac.mm4
-rw-r--r--src/gui/dialogs/qfontdialog_p.h4
-rw-r--r--src/gui/dialogs/qinputdialog.cpp12
-rw-r--r--src/gui/dialogs/qinputdialog.h4
-rw-r--r--src/gui/dialogs/qmessagebox.cpp28
-rw-r--r--src/gui/dialogs/qmessagebox.h4
-rw-r--r--src/gui/dialogs/qnspanelproxy_mac.mm4
-rw-r--r--src/gui/dialogs/qpagesetupdialog.cpp4
-rw-r--r--src/gui/dialogs/qpagesetupdialog.h4
-rw-r--r--src/gui/dialogs/qpagesetupdialog_mac.mm4
-rw-r--r--src/gui/dialogs/qpagesetupdialog_unix.cpp4
-rw-r--r--src/gui/dialogs/qpagesetupdialog_unix_p.h4
-rw-r--r--src/gui/dialogs/qpagesetupdialog_win.cpp6
-rw-r--r--src/gui/dialogs/qprintdialog.h4
-rw-r--r--src/gui/dialogs/qprintdialog_mac.mm4
-rw-r--r--src/gui/dialogs/qprintdialog_qws.cpp4
-rw-r--r--src/gui/dialogs/qprintdialog_unix.cpp4
-rw-r--r--src/gui/dialogs/qprintdialog_win.cpp6
-rw-r--r--src/gui/dialogs/qprintpreviewdialog.cpp4
-rw-r--r--src/gui/dialogs/qprintpreviewdialog.h4
-rw-r--r--src/gui/dialogs/qprogressdialog.cpp6
-rw-r--r--src/gui/dialogs/qprogressdialog.h4
-rw-r--r--src/gui/dialogs/qsidebar.cpp4
-rw-r--r--src/gui/dialogs/qsidebar_p.h4
-rw-r--r--src/gui/dialogs/qwizard.cpp6
-rw-r--r--src/gui/dialogs/qwizard.h4
-rw-r--r--src/gui/dialogs/qwizard_win.cpp8
-rw-r--r--src/gui/dialogs/qwizard_win_p.h4
-rw-r--r--src/gui/embedded/qcopchannel_qws.cpp4
-rw-r--r--src/gui/embedded/qcopchannel_qws.h4
-rw-r--r--src/gui/embedded/qdecoration_qws.cpp4
-rw-r--r--src/gui/embedded/qdecoration_qws.h4
-rw-r--r--src/gui/embedded/qdecorationdefault_qws.cpp4
-rw-r--r--src/gui/embedded/qdecorationdefault_qws.h4
-rw-r--r--src/gui/embedded/qdecorationfactory_qws.cpp4
-rw-r--r--src/gui/embedded/qdecorationfactory_qws.h4
-rw-r--r--src/gui/embedded/qdecorationplugin_qws.cpp4
-rw-r--r--src/gui/embedded/qdecorationplugin_qws.h4
-rw-r--r--src/gui/embedded/qdecorationstyled_qws.cpp4
-rw-r--r--src/gui/embedded/qdecorationstyled_qws.h4
-rw-r--r--src/gui/embedded/qdecorationwindows_qws.cpp4
-rw-r--r--src/gui/embedded/qdecorationwindows_qws.h4
-rw-r--r--src/gui/embedded/qdirectpainter_qws.cpp4
-rw-r--r--src/gui/embedded/qdirectpainter_qws.h4
-rw-r--r--src/gui/embedded/qkbd_defaultmap_qws_p.h4
-rw-r--r--src/gui/embedded/qkbd_qws.cpp4
-rw-r--r--src/gui/embedded/qkbd_qws.h4
-rw-r--r--src/gui/embedded/qkbd_qws_p.h4
-rw-r--r--src/gui/embedded/qkbddriverfactory_qws.cpp4
-rw-r--r--src/gui/embedded/qkbddriverfactory_qws.h4
-rw-r--r--src/gui/embedded/qkbddriverplugin_qws.cpp4
-rw-r--r--src/gui/embedded/qkbddriverplugin_qws.h4
-rw-r--r--src/gui/embedded/qkbdlinuxinput_qws.cpp4
-rw-r--r--src/gui/embedded/qkbdlinuxinput_qws.h4
-rw-r--r--src/gui/embedded/qkbdsl5000_qws.cpp4
-rw-r--r--src/gui/embedded/qkbdsl5000_qws.h4
-rw-r--r--src/gui/embedded/qkbdtty_qws.cpp4
-rw-r--r--src/gui/embedded/qkbdtty_qws.h4
-rw-r--r--src/gui/embedded/qkbdum_qws.cpp4
-rw-r--r--src/gui/embedded/qkbdum_qws.h4
-rw-r--r--src/gui/embedded/qkbdvfb_qws.cpp4
-rw-r--r--src/gui/embedded/qkbdvfb_qws.h4
-rw-r--r--src/gui/embedded/qkbdvr41xx_qws.cpp4
-rw-r--r--src/gui/embedded/qkbdvr41xx_qws.h4
-rw-r--r--src/gui/embedded/qkbdyopy_qws.cpp4
-rw-r--r--src/gui/embedded/qkbdyopy_qws.h4
-rw-r--r--src/gui/embedded/qlock.cpp4
-rw-r--r--src/gui/embedded/qlock_p.h4
-rw-r--r--src/gui/embedded/qmouse_qws.cpp4
-rw-r--r--src/gui/embedded/qmouse_qws.h4
-rw-r--r--src/gui/embedded/qmousebus_qws.cpp4
-rw-r--r--src/gui/embedded/qmousebus_qws.h4
-rw-r--r--src/gui/embedded/qmousedriverfactory_qws.cpp4
-rw-r--r--src/gui/embedded/qmousedriverfactory_qws.h4
-rw-r--r--src/gui/embedded/qmousedriverplugin_qws.cpp4
-rw-r--r--src/gui/embedded/qmousedriverplugin_qws.h4
-rw-r--r--src/gui/embedded/qmouselinuxtp_qws.cpp4
-rw-r--r--src/gui/embedded/qmouselinuxtp_qws.h4
-rw-r--r--src/gui/embedded/qmousepc_qws.cpp4
-rw-r--r--src/gui/embedded/qmousepc_qws.h4
-rw-r--r--src/gui/embedded/qmousetslib_qws.cpp4
-rw-r--r--src/gui/embedded/qmousetslib_qws.h4
-rw-r--r--src/gui/embedded/qmousevfb_qws.cpp4
-rw-r--r--src/gui/embedded/qmousevfb_qws.h4
-rw-r--r--src/gui/embedded/qmousevr41xx_qws.cpp4
-rw-r--r--src/gui/embedded/qmousevr41xx_qws.h4
-rw-r--r--src/gui/embedded/qmouseyopy_qws.cpp4
-rw-r--r--src/gui/embedded/qmouseyopy_qws.h4
-rw-r--r--src/gui/embedded/qscreen_qws.cpp4
-rw-r--r--src/gui/embedded/qscreen_qws.h4
-rw-r--r--src/gui/embedded/qscreendriverfactory_qws.cpp4
-rw-r--r--src/gui/embedded/qscreendriverfactory_qws.h4
-rw-r--r--src/gui/embedded/qscreendriverplugin_qws.cpp4
-rw-r--r--src/gui/embedded/qscreendriverplugin_qws.h4
-rw-r--r--src/gui/embedded/qscreenlinuxfb_qws.cpp4
-rw-r--r--src/gui/embedded/qscreenlinuxfb_qws.h4
-rw-r--r--src/gui/embedded/qscreenmulti_qws.cpp4
-rw-r--r--src/gui/embedded/qscreenmulti_qws_p.h4
-rw-r--r--src/gui/embedded/qscreenproxy_qws.cpp4
-rw-r--r--src/gui/embedded/qscreenproxy_qws.h4
-rw-r--r--src/gui/embedded/qscreentransformed_qws.cpp4
-rw-r--r--src/gui/embedded/qscreentransformed_qws.h4
-rw-r--r--src/gui/embedded/qscreenvfb_qws.cpp4
-rw-r--r--src/gui/embedded/qscreenvfb_qws.h4
-rw-r--r--src/gui/embedded/qsoundqss_qws.cpp4
-rw-r--r--src/gui/embedded/qsoundqss_qws.h4
-rw-r--r--src/gui/embedded/qtransportauth_qws.cpp4
-rw-r--r--src/gui/embedded/qtransportauth_qws.h4
-rw-r--r--src/gui/embedded/qtransportauth_qws_p.h4
-rw-r--r--src/gui/embedded/qtransportauthdefs_qws.h4
-rw-r--r--src/gui/embedded/qunixsocket.cpp4
-rw-r--r--src/gui/embedded/qunixsocket_p.h4
-rw-r--r--src/gui/embedded/qunixsocketserver.cpp4
-rw-r--r--src/gui/embedded/qunixsocketserver_p.h4
-rw-r--r--src/gui/embedded/qvfbhdr.h4
-rw-r--r--src/gui/embedded/qwindowsystem_p.h4
-rw-r--r--src/gui/embedded/qwindowsystem_qws.cpp4
-rw-r--r--src/gui/embedded/qwindowsystem_qws.h4
-rw-r--r--src/gui/embedded/qwscommand_qws.cpp4
-rw-r--r--src/gui/embedded/qwscommand_qws_p.h4
-rw-r--r--src/gui/embedded/qwscursor_qws.cpp4
-rw-r--r--src/gui/embedded/qwscursor_qws.h4
-rw-r--r--src/gui/embedded/qwsdisplay_qws.h4
-rw-r--r--src/gui/embedded/qwsdisplay_qws_p.h4
-rw-r--r--src/gui/embedded/qwsembedwidget.cpp4
-rw-r--r--src/gui/embedded/qwsembedwidget.h4
-rw-r--r--src/gui/embedded/qwsevent_qws.cpp4
-rw-r--r--src/gui/embedded/qwsevent_qws.h4
-rw-r--r--src/gui/embedded/qwslock.cpp4
-rw-r--r--src/gui/embedded/qwslock_p.h4
-rw-r--r--src/gui/embedded/qwsmanager_p.h4
-rw-r--r--src/gui/embedded/qwsmanager_qws.cpp4
-rw-r--r--src/gui/embedded/qwsmanager_qws.h4
-rw-r--r--src/gui/embedded/qwsproperty_qws.cpp4
-rw-r--r--src/gui/embedded/qwsproperty_qws.h4
-rw-r--r--src/gui/embedded/qwsprotocolitem_qws.h4
-rw-r--r--src/gui/embedded/qwssharedmemory.cpp4
-rw-r--r--src/gui/embedded/qwssharedmemory_p.h4
-rw-r--r--src/gui/embedded/qwssignalhandler.cpp4
-rw-r--r--src/gui/embedded/qwssignalhandler_p.h4
-rw-r--r--src/gui/embedded/qwssocket_qws.cpp4
-rw-r--r--src/gui/embedded/qwssocket_qws.h4
-rw-r--r--src/gui/embedded/qwsutils_qws.h4
-rw-r--r--src/gui/graphicsview/graphicsview.pri77
-rw-r--r--src/gui/graphicsview/qgraphicsgridlayout.cpp6
-rw-r--r--src/gui/graphicsview/qgraphicsgridlayout.h4
-rw-r--r--src/gui/graphicsview/qgraphicsitem.cpp371
-rw-r--r--src/gui/graphicsview/qgraphicsitem.h46
-rw-r--r--src/gui/graphicsview/qgraphicsitem_p.h46
-rw-r--r--src/gui/graphicsview/qgraphicsitemanimation.cpp4
-rw-r--r--src/gui/graphicsview/qgraphicsitemanimation.h4
-rw-r--r--src/gui/graphicsview/qgraphicslayout.cpp4
-rw-r--r--src/gui/graphicsview/qgraphicslayout.h4
-rw-r--r--src/gui/graphicsview/qgraphicslayout_p.cpp4
-rw-r--r--src/gui/graphicsview/qgraphicslayout_p.h4
-rw-r--r--src/gui/graphicsview/qgraphicslayoutitem.cpp4
-rw-r--r--src/gui/graphicsview/qgraphicslayoutitem.h4
-rw-r--r--src/gui/graphicsview/qgraphicslayoutitem_p.h4
-rw-r--r--src/gui/graphicsview/qgraphicslinearlayout.cpp6
-rw-r--r--src/gui/graphicsview/qgraphicslinearlayout.h4
-rw-r--r--src/gui/graphicsview/qgraphicsproxywidget.cpp4
-rw-r--r--src/gui/graphicsview/qgraphicsproxywidget.h4
-rw-r--r--src/gui/graphicsview/qgraphicsproxywidget_p.h4
-rw-r--r--src/gui/graphicsview/qgraphicsscene.cpp182
-rw-r--r--src/gui/graphicsview/qgraphicsscene.h4
-rw-r--r--src/gui/graphicsview/qgraphicsscene_bsp.cpp4
-rw-r--r--src/gui/graphicsview/qgraphicsscene_bsp_p.h4
-rw-r--r--src/gui/graphicsview/qgraphicsscene_p.h9
-rw-r--r--src/gui/graphicsview/qgraphicssceneevent.cpp4
-rw-r--r--src/gui/graphicsview/qgraphicssceneevent.h4
-rw-r--r--src/gui/graphicsview/qgraphicsview.cpp199
-rw-r--r--src/gui/graphicsview/qgraphicsview.h4
-rw-r--r--src/gui/graphicsview/qgraphicsview_p.h17
-rw-r--r--src/gui/graphicsview/qgraphicswidget.cpp164
-rw-r--r--src/gui/graphicsview/qgraphicswidget.h10
-rw-r--r--src/gui/graphicsview/qgraphicswidget_p.cpp4
-rw-r--r--src/gui/graphicsview/qgraphicswidget_p.h4
-rw-r--r--src/gui/graphicsview/qgridlayoutengine.cpp4
-rw-r--r--src/gui/graphicsview/qgridlayoutengine_p.h4
-rw-r--r--src/gui/image/qbitmap.cpp4
-rw-r--r--src/gui/image/qbitmap.h4
-rw-r--r--src/gui/image/qbmphandler.cpp4
-rw-r--r--src/gui/image/qbmphandler_p.h4
-rw-r--r--src/gui/image/qicon.cpp6
-rw-r--r--src/gui/image/qicon.h4
-rw-r--r--src/gui/image/qiconengine.cpp4
-rw-r--r--src/gui/image/qiconengine.h4
-rw-r--r--src/gui/image/qiconengineplugin.cpp4
-rw-r--r--src/gui/image/qiconengineplugin.h4
-rw-r--r--src/gui/image/qimage.cpp21
-rw-r--r--src/gui/image/qimage.h4
-rw-r--r--src/gui/image/qimage_p.h4
-rw-r--r--src/gui/image/qimageiohandler.cpp4
-rw-r--r--src/gui/image/qimageiohandler.h4
-rw-r--r--src/gui/image/qimagereader.cpp4
-rw-r--r--src/gui/image/qimagereader.h4
-rw-r--r--src/gui/image/qimagewriter.cpp4
-rw-r--r--src/gui/image/qimagewriter.h4
-rw-r--r--src/gui/image/qmovie.cpp4
-rw-r--r--src/gui/image/qmovie.h4
-rw-r--r--src/gui/image/qnativeimage.cpp4
-rw-r--r--src/gui/image/qnativeimage_p.h4
-rw-r--r--src/gui/image/qpaintengine_pic.cpp4
-rw-r--r--src/gui/image/qpaintengine_pic_p.h4
-rw-r--r--src/gui/image/qpicture.cpp4
-rw-r--r--src/gui/image/qpicture.h4
-rw-r--r--src/gui/image/qpicture_p.h4
-rw-r--r--src/gui/image/qpictureformatplugin.cpp4
-rw-r--r--src/gui/image/qpictureformatplugin.h4
-rw-r--r--src/gui/image/qpixmap.cpp19
-rw-r--r--src/gui/image/qpixmap.h10
-rw-r--r--src/gui/image/qpixmap_mac.cpp9
-rw-r--r--src/gui/image/qpixmap_mac_p.h5
-rw-r--r--src/gui/image/qpixmap_qws.cpp4
-rw-r--r--src/gui/image/qpixmap_raster.cpp18
-rw-r--r--src/gui/image/qpixmap_raster_p.h4
-rw-r--r--src/gui/image/qpixmap_win.cpp4
-rw-r--r--src/gui/image/qpixmap_x11.cpp14
-rw-r--r--src/gui/image/qpixmap_x11_p.h6
-rw-r--r--src/gui/image/qpixmapcache.cpp4
-rw-r--r--src/gui/image/qpixmapcache.h4
-rw-r--r--src/gui/image/qpixmapcache_p.h4
-rw-r--r--src/gui/image/qpixmapdata.cpp16
-rw-r--r--src/gui/image/qpixmapdata_p.h17
-rw-r--r--src/gui/image/qpixmapdatafactory.cpp4
-rw-r--r--src/gui/image/qpixmapdatafactory_p.h4
-rw-r--r--src/gui/image/qpixmapfilter.cpp4
-rw-r--r--src/gui/image/qpixmapfilter_p.h4
-rw-r--r--src/gui/image/qpnghandler.cpp4
-rw-r--r--src/gui/image/qpnghandler_p.h4
-rw-r--r--src/gui/image/qppmhandler.cpp4
-rw-r--r--src/gui/image/qppmhandler_p.h4
-rw-r--r--src/gui/image/qxbmhandler.cpp4
-rw-r--r--src/gui/image/qxbmhandler_p.h4
-rw-r--r--src/gui/image/qxpmhandler.cpp4
-rw-r--r--src/gui/image/qxpmhandler_p.h4
-rw-r--r--src/gui/inputmethod/qinputcontext.cpp14
-rw-r--r--src/gui/inputmethod/qinputcontext.h4
-rw-r--r--src/gui/inputmethod/qinputcontext_p.h4
-rw-r--r--src/gui/inputmethod/qinputcontextfactory.cpp4
-rw-r--r--src/gui/inputmethod/qinputcontextfactory.h4
-rw-r--r--src/gui/inputmethod/qinputcontextplugin.cpp4
-rw-r--r--src/gui/inputmethod/qinputcontextplugin.h4
-rw-r--r--src/gui/inputmethod/qmacinputcontext_mac.cpp4
-rw-r--r--src/gui/inputmethod/qmacinputcontext_p.h4
-rw-r--r--src/gui/inputmethod/qwininputcontext_p.h4
-rw-r--r--src/gui/inputmethod/qwininputcontext_win.cpp8
-rw-r--r--src/gui/inputmethod/qwsinputcontext_p.h4
-rw-r--r--src/gui/inputmethod/qwsinputcontext_qws.cpp4
-rw-r--r--src/gui/inputmethod/qximinputcontext_p.h4
-rw-r--r--src/gui/inputmethod/qximinputcontext_x11.cpp4
-rw-r--r--src/gui/itemviews/qabstractitemdelegate.cpp4
-rw-r--r--src/gui/itemviews/qabstractitemdelegate.h4
-rw-r--r--src/gui/itemviews/qabstractitemview.cpp28
-rw-r--r--src/gui/itemviews/qabstractitemview.h4
-rw-r--r--src/gui/itemviews/qabstractitemview_p.h6
-rw-r--r--src/gui/itemviews/qabstractproxymodel.cpp4
-rw-r--r--src/gui/itemviews/qabstractproxymodel.h4
-rw-r--r--src/gui/itemviews/qabstractproxymodel_p.h4
-rw-r--r--src/gui/itemviews/qbsptree.cpp4
-rw-r--r--src/gui/itemviews/qbsptree_p.h4
-rw-r--r--src/gui/itemviews/qcolumnview.cpp44
-rw-r--r--src/gui/itemviews/qcolumnview.h4
-rw-r--r--src/gui/itemviews/qcolumnview_p.h4
-rw-r--r--src/gui/itemviews/qcolumnviewgrip.cpp4
-rw-r--r--src/gui/itemviews/qcolumnviewgrip_p.h4
-rw-r--r--src/gui/itemviews/qdatawidgetmapper.cpp4
-rw-r--r--src/gui/itemviews/qdatawidgetmapper.h4
-rw-r--r--src/gui/itemviews/qdirmodel.cpp4
-rw-r--r--src/gui/itemviews/qdirmodel.h4
-rw-r--r--src/gui/itemviews/qfileiconprovider.cpp4
-rw-r--r--src/gui/itemviews/qfileiconprovider.h4
-rw-r--r--src/gui/itemviews/qheaderview.cpp11
-rw-r--r--src/gui/itemviews/qheaderview.h4
-rw-r--r--src/gui/itemviews/qheaderview_p.h4
-rw-r--r--src/gui/itemviews/qitemdelegate.cpp4
-rw-r--r--src/gui/itemviews/qitemdelegate.h4
-rw-r--r--src/gui/itemviews/qitemeditorfactory.cpp20
-rw-r--r--src/gui/itemviews/qitemeditorfactory.h4
-rw-r--r--src/gui/itemviews/qitemeditorfactory_p.h4
-rw-r--r--src/gui/itemviews/qitemselectionmodel.cpp4
-rw-r--r--src/gui/itemviews/qitemselectionmodel.h4
-rw-r--r--src/gui/itemviews/qitemselectionmodel_p.h4
-rw-r--r--src/gui/itemviews/qlistview.cpp16
-rw-r--r--src/gui/itemviews/qlistview.h4
-rw-r--r--src/gui/itemviews/qlistview_p.h4
-rw-r--r--src/gui/itemviews/qlistwidget.cpp96
-rw-r--r--src/gui/itemviews/qlistwidget.h4
-rw-r--r--src/gui/itemviews/qlistwidget_p.h6
-rw-r--r--src/gui/itemviews/qproxymodel.cpp4
-rw-r--r--src/gui/itemviews/qproxymodel.h4
-rw-r--r--src/gui/itemviews/qproxymodel_p.h4
-rw-r--r--src/gui/itemviews/qsortfilterproxymodel.cpp4
-rw-r--r--src/gui/itemviews/qsortfilterproxymodel.h4
-rw-r--r--src/gui/itemviews/qstandarditemmodel.cpp40
-rw-r--r--src/gui/itemviews/qstandarditemmodel.h4
-rw-r--r--src/gui/itemviews/qstandarditemmodel_p.h4
-rw-r--r--src/gui/itemviews/qstringlistmodel.cpp4
-rw-r--r--src/gui/itemviews/qstringlistmodel.h4
-rw-r--r--src/gui/itemviews/qstyleditemdelegate.cpp4
-rw-r--r--src/gui/itemviews/qstyleditemdelegate.h4
-rw-r--r--src/gui/itemviews/qtableview.cpp4
-rw-r--r--src/gui/itemviews/qtableview.h4
-rw-r--r--src/gui/itemviews/qtableview_p.h4
-rw-r--r--src/gui/itemviews/qtablewidget.cpp122
-rw-r--r--src/gui/itemviews/qtablewidget.h4
-rw-r--r--src/gui/itemviews/qtablewidget_p.h6
-rw-r--r--src/gui/itemviews/qtreeview.cpp51
-rw-r--r--src/gui/itemviews/qtreeview.h4
-rw-r--r--src/gui/itemviews/qtreeview_p.h4
-rw-r--r--src/gui/itemviews/qtreewidget.cpp101
-rw-r--r--src/gui/itemviews/qtreewidget.h4
-rw-r--r--src/gui/itemviews/qtreewidget_p.h11
-rw-r--r--src/gui/itemviews/qtreewidgetitemiterator.cpp4
-rw-r--r--src/gui/itemviews/qtreewidgetitemiterator.h4
-rw-r--r--src/gui/itemviews/qtreewidgetitemiterator_p.h4
-rw-r--r--src/gui/itemviews/qwidgetitemdata_p.h4
-rw-r--r--src/gui/kernel/qaction.cpp4
-rw-r--r--src/gui/kernel/qaction.h4
-rw-r--r--src/gui/kernel/qaction_p.h4
-rw-r--r--src/gui/kernel/qactiongroup.cpp4
-rw-r--r--src/gui/kernel/qactiongroup.h4
-rw-r--r--src/gui/kernel/qapplication.cpp127
-rw-r--r--src/gui/kernel/qapplication.h4
-rw-r--r--src/gui/kernel/qapplication_mac.mm4
-rw-r--r--src/gui/kernel/qapplication_p.h8
-rw-r--r--src/gui/kernel/qapplication_qws.cpp8
-rw-r--r--src/gui/kernel/qapplication_win.cpp88
-rw-r--r--src/gui/kernel/qapplication_x11.cpp239
-rw-r--r--src/gui/kernel/qboxlayout.cpp4
-rw-r--r--src/gui/kernel/qboxlayout.h4
-rw-r--r--src/gui/kernel/qclipboard.cpp4
-rw-r--r--src/gui/kernel/qclipboard.h4
-rw-r--r--src/gui/kernel/qclipboard_mac.cpp4
-rw-r--r--src/gui/kernel/qclipboard_p.h4
-rw-r--r--src/gui/kernel/qclipboard_qws.cpp4
-rw-r--r--src/gui/kernel/qclipboard_win.cpp4
-rw-r--r--src/gui/kernel/qclipboard_x11.cpp18
-rw-r--r--src/gui/kernel/qcocoaapplication_mac.mm4
-rw-r--r--src/gui/kernel/qcocoaapplication_mac_p.h4
-rw-r--r--src/gui/kernel/qcocoaapplicationdelegate_mac.mm4
-rw-r--r--src/gui/kernel/qcocoaapplicationdelegate_mac_p.h4
-rw-r--r--src/gui/kernel/qcocoamenuloader_mac.mm4
-rw-r--r--src/gui/kernel/qcocoamenuloader_mac_p.h4
-rw-r--r--src/gui/kernel/qcocoapanel_mac.mm4
-rw-r--r--src/gui/kernel/qcocoapanel_mac_p.h4
-rw-r--r--src/gui/kernel/qcocoaview_mac.mm6
-rw-r--r--src/gui/kernel/qcocoaview_mac_p.h4
-rw-r--r--src/gui/kernel/qcocoawindow_mac.mm4
-rw-r--r--src/gui/kernel/qcocoawindow_mac_p.h4
-rw-r--r--src/gui/kernel/qcocoawindowcustomthemeframe_mac.mm4
-rw-r--r--src/gui/kernel/qcocoawindowcustomthemeframe_mac_p.h4
-rw-r--r--src/gui/kernel/qcocoawindowdelegate_mac.mm4
-rw-r--r--src/gui/kernel/qcocoawindowdelegate_mac_p.h4
-rw-r--r--src/gui/kernel/qcursor.cpp6
-rw-r--r--src/gui/kernel/qcursor.h7
-rw-r--r--src/gui/kernel/qcursor_mac.mm6
-rw-r--r--src/gui/kernel/qcursor_p.h5
-rw-r--r--src/gui/kernel/qcursor_qws.cpp4
-rw-r--r--src/gui/kernel/qcursor_win.cpp4
-rw-r--r--src/gui/kernel/qcursor_x11.cpp4
-rw-r--r--src/gui/kernel/qdesktopwidget.h4
-rw-r--r--src/gui/kernel/qdesktopwidget_mac.mm4
-rw-r--r--src/gui/kernel/qdesktopwidget_mac_p.h10
-rw-r--r--src/gui/kernel/qdesktopwidget_qws.cpp4
-rw-r--r--src/gui/kernel/qdesktopwidget_win.cpp4
-rw-r--r--src/gui/kernel/qdesktopwidget_x11.cpp4
-rw-r--r--src/gui/kernel/qdnd.cpp6
-rw-r--r--src/gui/kernel/qdnd_mac.mm4
-rw-r--r--src/gui/kernel/qdnd_p.h4
-rw-r--r--src/gui/kernel/qdnd_qws.cpp4
-rw-r--r--src/gui/kernel/qdnd_win.cpp6
-rw-r--r--src/gui/kernel/qdnd_x11.cpp4
-rw-r--r--src/gui/kernel/qdrag.cpp4
-rw-r--r--src/gui/kernel/qdrag.h4
-rw-r--r--src/gui/kernel/qevent.cpp4
-rw-r--r--src/gui/kernel/qevent.h4
-rw-r--r--src/gui/kernel/qevent_p.h4
-rw-r--r--src/gui/kernel/qeventdispatcher_glib_qws.cpp4
-rw-r--r--src/gui/kernel/qeventdispatcher_glib_qws_p.h4
-rw-r--r--src/gui/kernel/qeventdispatcher_mac.mm4
-rw-r--r--src/gui/kernel/qeventdispatcher_mac_p.h4
-rw-r--r--src/gui/kernel/qeventdispatcher_qws.cpp4
-rw-r--r--src/gui/kernel/qeventdispatcher_qws_p.h4
-rw-r--r--src/gui/kernel/qeventdispatcher_x11.cpp4
-rw-r--r--src/gui/kernel/qeventdispatcher_x11_p.h4
-rw-r--r--src/gui/kernel/qformlayout.cpp4
-rw-r--r--src/gui/kernel/qformlayout.h4
-rw-r--r--src/gui/kernel/qgridlayout.cpp4
-rw-r--r--src/gui/kernel/qgridlayout.h4
-rw-r--r--src/gui/kernel/qguieventdispatcher_glib.cpp4
-rw-r--r--src/gui/kernel/qguieventdispatcher_glib_p.h4
-rw-r--r--src/gui/kernel/qguifunctions_wince.cpp4
-rw-r--r--src/gui/kernel/qguifunctions_wince.h4
-rw-r--r--src/gui/kernel/qguivariant.cpp4
-rw-r--r--src/gui/kernel/qkeymapper.cpp4
-rw-r--r--src/gui/kernel/qkeymapper_mac.cpp4
-rw-r--r--src/gui/kernel/qkeymapper_p.h4
-rw-r--r--src/gui/kernel/qkeymapper_qws.cpp4
-rw-r--r--src/gui/kernel/qkeymapper_win.cpp4
-rw-r--r--src/gui/kernel/qkeymapper_x11.cpp4
-rw-r--r--src/gui/kernel/qkeymapper_x11_p.cpp4
-rw-r--r--src/gui/kernel/qkeysequence.cpp4
-rw-r--r--src/gui/kernel/qkeysequence.h4
-rw-r--r--src/gui/kernel/qkeysequence_p.h4
-rw-r--r--src/gui/kernel/qlayout.cpp4
-rw-r--r--src/gui/kernel/qlayout.h4
-rw-r--r--src/gui/kernel/qlayout_p.h4
-rw-r--r--src/gui/kernel/qlayoutengine.cpp4
-rw-r--r--src/gui/kernel/qlayoutengine_p.h4
-rw-r--r--src/gui/kernel/qlayoutitem.cpp4
-rw-r--r--src/gui/kernel/qlayoutitem.h4
-rw-r--r--src/gui/kernel/qmacdefines_mac.h4
-rw-r--r--src/gui/kernel/qmime.cpp4
-rw-r--r--src/gui/kernel/qmime.h4
-rw-r--r--src/gui/kernel/qmime_mac.cpp4
-rw-r--r--src/gui/kernel/qmime_win.cpp4
-rw-r--r--src/gui/kernel/qmotifdnd_x11.cpp4
-rw-r--r--src/gui/kernel/qnsframeview_mac_p.h4
-rw-r--r--src/gui/kernel/qnsthemeframe_mac_p.h4
-rw-r--r--src/gui/kernel/qnstitledframe_mac_p.h4
-rw-r--r--src/gui/kernel/qole_win.cpp4
-rw-r--r--src/gui/kernel/qpalette.cpp4
-rw-r--r--src/gui/kernel/qpalette.h4
-rw-r--r--src/gui/kernel/qsessionmanager.h4
-rw-r--r--src/gui/kernel/qsessionmanager_qws.cpp4
-rw-r--r--src/gui/kernel/qshortcut.cpp5
-rw-r--r--src/gui/kernel/qshortcut.h4
-rw-r--r--src/gui/kernel/qshortcutmap.cpp10
-rw-r--r--src/gui/kernel/qshortcutmap_p.h4
-rw-r--r--src/gui/kernel/qsizepolicy.h4
-rw-r--r--src/gui/kernel/qsound.cpp4
-rw-r--r--src/gui/kernel/qsound.h4
-rw-r--r--src/gui/kernel/qsound_mac.mm4
-rw-r--r--src/gui/kernel/qsound_p.h4
-rw-r--r--src/gui/kernel/qsound_qws.cpp4
-rw-r--r--src/gui/kernel/qsound_win.cpp4
-rw-r--r--src/gui/kernel/qsound_x11.cpp4
-rw-r--r--src/gui/kernel/qstackedlayout.cpp4
-rw-r--r--src/gui/kernel/qstackedlayout.h4
-rw-r--r--src/gui/kernel/qt_cocoa_helpers_mac.mm4
-rw-r--r--src/gui/kernel/qt_cocoa_helpers_mac_p.h4
-rw-r--r--src/gui/kernel/qt_gui_pch.h4
-rw-r--r--src/gui/kernel/qt_mac.cpp4
-rw-r--r--src/gui/kernel/qt_mac_p.h4
-rw-r--r--src/gui/kernel/qt_x11_p.h5
-rw-r--r--src/gui/kernel/qtooltip.cpp25
-rw-r--r--src/gui/kernel/qtooltip.h4
-rw-r--r--src/gui/kernel/qwhatsthis.cpp4
-rw-r--r--src/gui/kernel/qwhatsthis.h4
-rw-r--r--src/gui/kernel/qwidget.cpp48
-rw-r--r--src/gui/kernel/qwidget.h4
-rw-r--r--src/gui/kernel/qwidget_mac.mm4
-rw-r--r--src/gui/kernel/qwidget_p.h18
-rw-r--r--src/gui/kernel/qwidget_qws.cpp4
-rw-r--r--src/gui/kernel/qwidget_win.cpp10
-rw-r--r--src/gui/kernel/qwidget_wince.cpp4
-rw-r--r--src/gui/kernel/qwidget_x11.cpp4
-rw-r--r--src/gui/kernel/qwidgetaction.cpp4
-rw-r--r--src/gui/kernel/qwidgetaction.h4
-rw-r--r--src/gui/kernel/qwidgetaction_p.h4
-rw-r--r--src/gui/kernel/qwidgetcreate_x11.cpp4
-rw-r--r--src/gui/kernel/qwindowdefs.h4
-rw-r--r--src/gui/kernel/qwindowdefs_win.h4
-rw-r--r--src/gui/kernel/qx11embed_x11.cpp4
-rw-r--r--src/gui/kernel/qx11embed_x11.h4
-rw-r--r--src/gui/kernel/qx11info_x11.cpp4
-rw-r--r--src/gui/kernel/qx11info_x11.h4
-rw-r--r--src/gui/math3d/qgenericmatrix.cpp4
-rw-r--r--src/gui/math3d/qgenericmatrix.h4
-rw-r--r--src/gui/math3d/qmatrix4x4.cpp4
-rw-r--r--src/gui/math3d/qmatrix4x4.h4
-rw-r--r--src/gui/math3d/qquaternion.cpp4
-rw-r--r--src/gui/math3d/qquaternion.h4
-rw-r--r--src/gui/math3d/qvector2d.cpp4
-rw-r--r--src/gui/math3d/qvector2d.h4
-rw-r--r--src/gui/math3d/qvector3d.cpp4
-rw-r--r--src/gui/math3d/qvector3d.h4
-rw-r--r--src/gui/math3d/qvector4d.cpp4
-rw-r--r--src/gui/math3d/qvector4d.h4
-rw-r--r--src/gui/painting/qbackingstore.cpp8
-rw-r--r--src/gui/painting/qbackingstore_p.h4
-rw-r--r--src/gui/painting/qbezier.cpp4
-rw-r--r--src/gui/painting/qbezier_p.h4
-rw-r--r--src/gui/painting/qblendfunctions.cpp4
-rw-r--r--src/gui/painting/qbrush.cpp10
-rw-r--r--src/gui/painting/qbrush.h6
-rw-r--r--src/gui/painting/qcolor.cpp4
-rw-r--r--src/gui/painting/qcolor.h4
-rw-r--r--src/gui/painting/qcolor_p.cpp4
-rw-r--r--src/gui/painting/qcolor_p.h4
-rw-r--r--src/gui/painting/qcolormap.h4
-rw-r--r--src/gui/painting/qcolormap_mac.cpp4
-rw-r--r--src/gui/painting/qcolormap_qws.cpp4
-rw-r--r--src/gui/painting/qcolormap_win.cpp4
-rw-r--r--src/gui/painting/qcolormap_x11.cpp4
-rw-r--r--src/gui/painting/qcssutil.cpp4
-rw-r--r--src/gui/painting/qcssutil_p.h4
-rw-r--r--src/gui/painting/qcups.cpp4
-rw-r--r--src/gui/painting/qcups_p.h4
-rw-r--r--src/gui/painting/qdatabuffer_p.h4
-rw-r--r--src/gui/painting/qdrawhelper.cpp4
-rw-r--r--src/gui/painting/qdrawhelper_iwmmxt.cpp4
-rw-r--r--src/gui/painting/qdrawhelper_mmx.cpp4
-rw-r--r--src/gui/painting/qdrawhelper_mmx3dnow.cpp4
-rw-r--r--src/gui/painting/qdrawhelper_mmx_p.h4
-rw-r--r--src/gui/painting/qdrawhelper_p.h4
-rw-r--r--src/gui/painting/qdrawhelper_sse.cpp4
-rw-r--r--src/gui/painting/qdrawhelper_sse2.cpp4
-rw-r--r--src/gui/painting/qdrawhelper_sse3dnow.cpp4
-rw-r--r--src/gui/painting/qdrawhelper_sse_p.h4
-rw-r--r--src/gui/painting/qdrawhelper_x86_p.h4
-rw-r--r--src/gui/painting/qdrawutil.cpp60
-rw-r--r--src/gui/painting/qdrawutil.h20
-rw-r--r--src/gui/painting/qemulationpaintengine.cpp16
-rw-r--r--src/gui/painting/qemulationpaintengine_p.h4
-rw-r--r--src/gui/painting/qfixed_p.h4
-rw-r--r--src/gui/painting/qgraphicssystem.cpp4
-rw-r--r--src/gui/painting/qgraphicssystem_mac.cpp4
-rw-r--r--src/gui/painting/qgraphicssystem_mac_p.h4
-rw-r--r--src/gui/painting/qgraphicssystem_p.h4
-rw-r--r--src/gui/painting/qgraphicssystem_qws.cpp4
-rw-r--r--src/gui/painting/qgraphicssystem_qws_p.h4
-rw-r--r--src/gui/painting/qgraphicssystem_raster.cpp4
-rw-r--r--src/gui/painting/qgraphicssystem_raster_p.h4
-rw-r--r--src/gui/painting/qgraphicssystemfactory.cpp4
-rw-r--r--src/gui/painting/qgraphicssystemfactory_p.h4
-rw-r--r--src/gui/painting/qgraphicssystemplugin.cpp4
-rw-r--r--src/gui/painting/qgraphicssystemplugin_p.h4
-rw-r--r--src/gui/painting/qgrayraster.c2
-rw-r--r--src/gui/painting/qgrayraster_p.h4
-rw-r--r--src/gui/painting/qimagescale.cpp4
-rw-r--r--src/gui/painting/qimagescale_p.h4
-rw-r--r--src/gui/painting/qmath_p.h4
-rw-r--r--src/gui/painting/qmatrix.cpp19
-rw-r--r--src/gui/painting/qmatrix.h16
-rw-r--r--src/gui/painting/qmemrotate.cpp4
-rw-r--r--src/gui/painting/qmemrotate_p.h4
-rw-r--r--src/gui/painting/qoutlinemapper.cpp4
-rw-r--r--src/gui/painting/qoutlinemapper_p.h4
-rw-r--r--src/gui/painting/qpaintdevice.h4
-rw-r--r--src/gui/painting/qpaintdevice_mac.cpp4
-rw-r--r--src/gui/painting/qpaintdevice_qws.cpp4
-rw-r--r--src/gui/painting/qpaintdevice_win.cpp4
-rw-r--r--src/gui/painting/qpaintdevice_x11.cpp4
-rw-r--r--src/gui/painting/qpaintengine.cpp7
-rw-r--r--src/gui/painting/qpaintengine.h4
-rw-r--r--src/gui/painting/qpaintengine_alpha.cpp4
-rw-r--r--src/gui/painting/qpaintengine_alpha_p.h4
-rw-r--r--src/gui/painting/qpaintengine_mac.cpp28
-rw-r--r--src/gui/painting/qpaintengine_mac_p.h4
-rw-r--r--src/gui/painting/qpaintengine_p.h4
-rw-r--r--src/gui/painting/qpaintengine_preview.cpp4
-rw-r--r--src/gui/painting/qpaintengine_preview_p.h4
-rw-r--r--src/gui/painting/qpaintengine_raster.cpp13
-rw-r--r--src/gui/painting/qpaintengine_raster_p.h4
-rw-r--r--src/gui/painting/qpaintengine_x11.cpp4
-rw-r--r--src/gui/painting/qpaintengine_x11_p.h5
-rw-r--r--src/gui/painting/qpaintengineex.cpp27
-rw-r--r--src/gui/painting/qpaintengineex_p.h4
-rw-r--r--src/gui/painting/qpainter.cpp33
-rw-r--r--src/gui/painting/qpainter.h4
-rw-r--r--src/gui/painting/qpainter_p.h4
-rw-r--r--src/gui/painting/qpainterpath.cpp6
-rw-r--r--src/gui/painting/qpainterpath.h4
-rw-r--r--src/gui/painting/qpainterpath_p.h4
-rw-r--r--src/gui/painting/qpathclipper.cpp73
-rw-r--r--src/gui/painting/qpathclipper_p.h4
-rw-r--r--src/gui/painting/qpdf.cpp7
-rw-r--r--src/gui/painting/qpdf_p.h4
-rw-r--r--src/gui/painting/qpen.cpp4
-rw-r--r--src/gui/painting/qpen.h4
-rw-r--r--src/gui/painting/qpen_p.h4
-rw-r--r--src/gui/painting/qpolygon.cpp4
-rw-r--r--src/gui/painting/qpolygon.h4
-rw-r--r--src/gui/painting/qpolygonclipper_p.h4
-rw-r--r--src/gui/painting/qprintengine.h4
-rw-r--r--src/gui/painting/qprintengine_mac.mm4
-rw-r--r--src/gui/painting/qprintengine_mac_p.h4
-rw-r--r--src/gui/painting/qprintengine_pdf.cpp4
-rw-r--r--src/gui/painting/qprintengine_pdf_p.h4
-rw-r--r--src/gui/painting/qprintengine_ps.cpp4
-rw-r--r--src/gui/painting/qprintengine_ps_p.h4
-rw-r--r--src/gui/painting/qprintengine_qws.cpp4
-rw-r--r--src/gui/painting/qprintengine_qws_p.h4
-rw-r--r--src/gui/painting/qprintengine_win.cpp10
-rw-r--r--src/gui/painting/qprintengine_win_p.h4
-rw-r--r--src/gui/painting/qprinter.cpp4
-rw-r--r--src/gui/painting/qprinter.h4
-rw-r--r--src/gui/painting/qprinter_p.h4
-rw-r--r--src/gui/painting/qprinterinfo.h4
-rw-r--r--src/gui/painting/qprinterinfo_mac.cpp4
-rw-r--r--src/gui/painting/qprinterinfo_unix.cpp4
-rw-r--r--src/gui/painting/qprinterinfo_unix_p.h4
-rw-r--r--src/gui/painting/qprinterinfo_win.cpp4
-rw-r--r--src/gui/painting/qrasterdefs_p.h4
-rw-r--r--src/gui/painting/qrasterizer.cpp6
-rw-r--r--src/gui/painting/qrasterizer_p.h4
-rw-r--r--src/gui/painting/qregion.cpp8
-rw-r--r--src/gui/painting/qregion.h4
-rw-r--r--src/gui/painting/qregion_mac.cpp4
-rw-r--r--src/gui/painting/qregion_qws.cpp4
-rw-r--r--src/gui/painting/qregion_win.cpp4
-rw-r--r--src/gui/painting/qregion_wince.cpp4
-rw-r--r--src/gui/painting/qregion_x11.cpp4
-rw-r--r--src/gui/painting/qrgb.h4
-rw-r--r--src/gui/painting/qstroker.cpp4
-rw-r--r--src/gui/painting/qstroker_p.h4
-rw-r--r--src/gui/painting/qstylepainter.cpp4
-rw-r--r--src/gui/painting/qstylepainter.h4
-rw-r--r--src/gui/painting/qtessellator.cpp4
-rw-r--r--src/gui/painting/qtessellator_p.h4
-rw-r--r--src/gui/painting/qtextureglyphcache.cpp4
-rw-r--r--src/gui/painting/qtextureglyphcache_p.h4
-rw-r--r--src/gui/painting/qtransform.cpp78
-rw-r--r--src/gui/painting/qtransform.h19
-rw-r--r--src/gui/painting/qvectorpath_p.h6
-rw-r--r--src/gui/painting/qwindowsurface.cpp4
-rw-r--r--src/gui/painting/qwindowsurface_mac.cpp4
-rw-r--r--src/gui/painting/qwindowsurface_mac_p.h4
-rw-r--r--src/gui/painting/qwindowsurface_p.h4
-rw-r--r--src/gui/painting/qwindowsurface_qws.cpp4
-rw-r--r--src/gui/painting/qwindowsurface_qws_p.h4
-rw-r--r--src/gui/painting/qwindowsurface_raster.cpp4
-rw-r--r--src/gui/painting/qwindowsurface_raster_p.h4
-rw-r--r--src/gui/painting/qwindowsurface_x11.cpp4
-rw-r--r--src/gui/painting/qwindowsurface_x11_p.h4
-rw-r--r--src/gui/painting/qwmatrix.h4
-rw-r--r--src/gui/statemachine/qbasickeyeventtransition.cpp4
-rw-r--r--src/gui/statemachine/qbasickeyeventtransition_p.h4
-rw-r--r--src/gui/statemachine/qbasicmouseeventtransition.cpp4
-rw-r--r--src/gui/statemachine/qbasicmouseeventtransition_p.h4
-rw-r--r--src/gui/statemachine/qguistatemachine.cpp4
-rw-r--r--src/gui/statemachine/qkeyeventtransition.cpp4
-rw-r--r--src/gui/statemachine/qkeyeventtransition.h4
-rw-r--r--src/gui/statemachine/qmouseeventtransition.cpp4
-rw-r--r--src/gui/statemachine/qmouseeventtransition.h4
-rw-r--r--src/gui/styles/gtksymbols.cpp4
-rw-r--r--src/gui/styles/gtksymbols_p.h4
-rw-r--r--src/gui/styles/qcdestyle.cpp4
-rw-r--r--src/gui/styles/qcdestyle.h4
-rw-r--r--src/gui/styles/qcleanlooksstyle.cpp159
-rw-r--r--src/gui/styles/qcleanlooksstyle.h4
-rw-r--r--src/gui/styles/qcleanlooksstyle_p.h4
-rw-r--r--src/gui/styles/qcommonstyle.cpp549
-rw-r--r--src/gui/styles/qcommonstyle.h4
-rw-r--r--src/gui/styles/qcommonstyle_p.h4
-rw-r--r--src/gui/styles/qcommonstylepixmaps_p.h4
-rw-r--r--src/gui/styles/qgtkpainter.cpp4
-rw-r--r--src/gui/styles/qgtkpainter_p.h4
-rw-r--r--src/gui/styles/qgtkstyle.cpp140
-rw-r--r--src/gui/styles/qgtkstyle.h4
-rw-r--r--src/gui/styles/qmacstyle_mac.h4
-rw-r--r--src/gui/styles/qmacstyle_mac.mm96
-rw-r--r--src/gui/styles/qmacstylepixmaps_mac_p.h4
-rw-r--r--src/gui/styles/qmotifstyle.cpp160
-rw-r--r--src/gui/styles/qmotifstyle.h4
-rw-r--r--src/gui/styles/qmotifstyle_p.h4
-rw-r--r--src/gui/styles/qplastiquestyle.cpp109
-rw-r--r--src/gui/styles/qplastiquestyle.h4
-rw-r--r--src/gui/styles/qproxystyle.cpp420
-rw-r--r--src/gui/styles/qproxystyle.h114
-rw-r--r--src/gui/styles/qproxystyle_p.h79
-rw-r--r--src/gui/styles/qstyle.cpp63
-rw-r--r--src/gui/styles/qstyle.h9
-rw-r--r--src/gui/styles/qstyle_p.h18
-rw-r--r--src/gui/styles/qstylefactory.cpp6
-rw-r--r--src/gui/styles/qstylefactory.h4
-rw-r--r--src/gui/styles/qstylehelper.cpp4
-rw-r--r--src/gui/styles/qstylehelper_p.h4
-rw-r--r--src/gui/styles/qstyleoption.cpp4
-rw-r--r--src/gui/styles/qstyleoption.h4
-rw-r--r--src/gui/styles/qstyleplugin.cpp4
-rw-r--r--src/gui/styles/qstyleplugin.h4
-rw-r--r--src/gui/styles/qstylesheetstyle.cpp30
-rw-r--r--src/gui/styles/qstylesheetstyle_default.cpp4
-rw-r--r--src/gui/styles/qstylesheetstyle_p.h4
-rw-r--r--src/gui/styles/qwindowscestyle.cpp4
-rw-r--r--src/gui/styles/qwindowscestyle.h4
-rw-r--r--src/gui/styles/qwindowscestyle_p.h4
-rw-r--r--src/gui/styles/qwindowsmobilestyle.cpp4
-rw-r--r--src/gui/styles/qwindowsmobilestyle.h4
-rw-r--r--src/gui/styles/qwindowsmobilestyle_p.h4
-rw-r--r--src/gui/styles/qwindowsstyle.cpp98
-rw-r--r--src/gui/styles/qwindowsstyle.h4
-rw-r--r--src/gui/styles/qwindowsstyle_p.h4
-rw-r--r--src/gui/styles/qwindowsvistastyle.cpp84
-rw-r--r--src/gui/styles/qwindowsvistastyle.h4
-rw-r--r--src/gui/styles/qwindowsvistastyle_p.h4
-rw-r--r--src/gui/styles/qwindowsxpstyle.cpp154
-rw-r--r--src/gui/styles/qwindowsxpstyle.h4
-rw-r--r--src/gui/styles/qwindowsxpstyle_p.h4
-rw-r--r--src/gui/styles/styles.pri4
-rw-r--r--src/gui/text/qabstractfontengine_p.h4
-rw-r--r--src/gui/text/qabstractfontengine_qws.cpp4
-rw-r--r--src/gui/text/qabstractfontengine_qws.h4
-rw-r--r--src/gui/text/qabstracttextdocumentlayout.cpp4
-rw-r--r--src/gui/text/qabstracttextdocumentlayout.h4
-rw-r--r--src/gui/text/qabstracttextdocumentlayout_p.h4
-rw-r--r--src/gui/text/qcssparser.cpp4
-rw-r--r--src/gui/text/qcssparser_p.h4
-rw-r--r--src/gui/text/qcssscanner.cpp4
-rw-r--r--src/gui/text/qfont.cpp4
-rw-r--r--src/gui/text/qfont.h4
-rw-r--r--src/gui/text/qfont_mac.cpp4
-rw-r--r--src/gui/text/qfont_p.h4
-rw-r--r--src/gui/text/qfont_qws.cpp4
-rw-r--r--src/gui/text/qfont_win.cpp4
-rw-r--r--src/gui/text/qfont_x11.cpp4
-rw-r--r--src/gui/text/qfontdatabase.cpp40
-rw-r--r--src/gui/text/qfontdatabase.h4
-rw-r--r--src/gui/text/qfontdatabase_mac.cpp4
-rw-r--r--src/gui/text/qfontdatabase_qws.cpp4
-rw-r--r--src/gui/text/qfontdatabase_win.cpp4
-rw-r--r--src/gui/text/qfontdatabase_x11.cpp4
-rw-r--r--src/gui/text/qfontengine.cpp13
-rw-r--r--src/gui/text/qfontengine_ft.cpp4
-rw-r--r--src/gui/text/qfontengine_ft_p.h4
-rw-r--r--src/gui/text/qfontengine_mac.mm4
-rw-r--r--src/gui/text/qfontengine_p.h4
-rw-r--r--src/gui/text/qfontengine_qpf.cpp4
-rw-r--r--src/gui/text/qfontengine_qpf_p.h4
-rw-r--r--src/gui/text/qfontengine_qws.cpp4
-rw-r--r--src/gui/text/qfontengine_win.cpp4
-rw-r--r--src/gui/text/qfontengine_win_p.h4
-rw-r--r--src/gui/text/qfontengine_x11.cpp4
-rw-r--r--src/gui/text/qfontengine_x11_p.h4
-rw-r--r--src/gui/text/qfontengineglyphcache_p.h4
-rw-r--r--src/gui/text/qfontinfo.h4
-rw-r--r--src/gui/text/qfontmetrics.cpp4
-rw-r--r--src/gui/text/qfontmetrics.h4
-rw-r--r--src/gui/text/qfontsubset.cpp4
-rw-r--r--src/gui/text/qfontsubset_p.h4
-rw-r--r--src/gui/text/qfragmentmap.cpp4
-rw-r--r--src/gui/text/qfragmentmap_p.h4
-rw-r--r--src/gui/text/qpfutil.cpp4
-rw-r--r--src/gui/text/qsyntaxhighlighter.cpp4
-rw-r--r--src/gui/text/qsyntaxhighlighter.h4
-rw-r--r--src/gui/text/qtextcontrol.cpp8
-rw-r--r--src/gui/text/qtextcontrol_p.h4
-rw-r--r--src/gui/text/qtextcontrol_p_p.h4
-rw-r--r--src/gui/text/qtextcursor.cpp4
-rw-r--r--src/gui/text/qtextcursor.h4
-rw-r--r--src/gui/text/qtextcursor_p.h4
-rw-r--r--src/gui/text/qtextdocument.cpp4
-rw-r--r--src/gui/text/qtextdocument.h4
-rw-r--r--src/gui/text/qtextdocument_p.cpp4
-rw-r--r--src/gui/text/qtextdocument_p.h4
-rw-r--r--src/gui/text/qtextdocumentfragment.cpp4
-rw-r--r--src/gui/text/qtextdocumentfragment.h4
-rw-r--r--src/gui/text/qtextdocumentfragment_p.h4
-rw-r--r--src/gui/text/qtextdocumentlayout.cpp50
-rw-r--r--src/gui/text/qtextdocumentlayout_p.h4
-rw-r--r--src/gui/text/qtextdocumentwriter.cpp4
-rw-r--r--src/gui/text/qtextdocumentwriter.h4
-rw-r--r--src/gui/text/qtextengine.cpp4
-rw-r--r--src/gui/text/qtextengine_mac.cpp4
-rw-r--r--src/gui/text/qtextengine_p.h4
-rw-r--r--src/gui/text/qtextformat.cpp4
-rw-r--r--src/gui/text/qtextformat.h4
-rw-r--r--src/gui/text/qtextformat_p.h4
-rw-r--r--src/gui/text/qtexthtmlparser.cpp4
-rw-r--r--src/gui/text/qtexthtmlparser_p.h4
-rw-r--r--src/gui/text/qtextimagehandler.cpp4
-rw-r--r--src/gui/text/qtextimagehandler_p.h4
-rw-r--r--src/gui/text/qtextlayout.cpp4
-rw-r--r--src/gui/text/qtextlayout.h4
-rw-r--r--src/gui/text/qtextlist.cpp4
-rw-r--r--src/gui/text/qtextlist.h4
-rw-r--r--src/gui/text/qtextobject.cpp4
-rw-r--r--src/gui/text/qtextobject.h4
-rw-r--r--src/gui/text/qtextobject_p.h4
-rw-r--r--src/gui/text/qtextodfwriter.cpp55
-rw-r--r--src/gui/text/qtextodfwriter_p.h4
-rw-r--r--src/gui/text/qtextoption.cpp4
-rw-r--r--src/gui/text/qtextoption.h4
-rw-r--r--src/gui/text/qtexttable.cpp4
-rw-r--r--src/gui/text/qtexttable.h4
-rw-r--r--src/gui/text/qtexttable_p.h4
-rw-r--r--src/gui/text/qzip.cpp4
-rw-r--r--src/gui/text/qzipreader_p.h4
-rw-r--r--src/gui/text/qzipwriter_p.h4
-rw-r--r--src/gui/util/qcompleter.cpp10
-rw-r--r--src/gui/util/qcompleter.h4
-rw-r--r--src/gui/util/qcompleter_p.h4
-rw-r--r--src/gui/util/qdesktopservices.cpp4
-rw-r--r--src/gui/util/qdesktopservices.h4
-rw-r--r--src/gui/util/qdesktopservices_mac.cpp4
-rw-r--r--src/gui/util/qdesktopservices_qws.cpp4
-rw-r--r--src/gui/util/qdesktopservices_win.cpp4
-rw-r--r--src/gui/util/qdesktopservices_x11.cpp4
-rw-r--r--src/gui/util/qsystemtrayicon.cpp4
-rw-r--r--src/gui/util/qsystemtrayicon.h4
-rw-r--r--src/gui/util/qsystemtrayicon_mac.mm4
-rw-r--r--src/gui/util/qsystemtrayicon_p.h4
-rw-r--r--src/gui/util/qsystemtrayicon_qws.cpp4
-rw-r--r--src/gui/util/qsystemtrayicon_win.cpp6
-rw-r--r--src/gui/util/qsystemtrayicon_x11.cpp4
-rw-r--r--src/gui/util/qundogroup.cpp4
-rw-r--r--src/gui/util/qundogroup.h4
-rw-r--r--src/gui/util/qundostack.cpp4
-rw-r--r--src/gui/util/qundostack.h4
-rw-r--r--src/gui/util/qundostack_p.h4
-rw-r--r--src/gui/util/qundoview.cpp4
-rw-r--r--src/gui/util/qundoview.h4
-rw-r--r--src/gui/widgets/qabstractbutton.cpp26
-rw-r--r--src/gui/widgets/qabstractbutton.h4
-rw-r--r--src/gui/widgets/qabstractbutton_p.h4
-rw-r--r--src/gui/widgets/qabstractscrollarea.cpp4
-rw-r--r--src/gui/widgets/qabstractscrollarea.h4
-rw-r--r--src/gui/widgets/qabstractscrollarea_p.h4
-rw-r--r--src/gui/widgets/qabstractslider.cpp4
-rw-r--r--src/gui/widgets/qabstractslider.h4
-rw-r--r--src/gui/widgets/qabstractslider_p.h4
-rw-r--r--src/gui/widgets/qabstractspinbox.cpp4
-rw-r--r--src/gui/widgets/qabstractspinbox.h4
-rw-r--r--src/gui/widgets/qabstractspinbox_p.h4
-rw-r--r--src/gui/widgets/qbuttongroup.cpp4
-rw-r--r--src/gui/widgets/qbuttongroup.h4
-rw-r--r--src/gui/widgets/qcalendartextnavigator_p.h4
-rw-r--r--src/gui/widgets/qcalendarwidget.cpp4
-rw-r--r--src/gui/widgets/qcalendarwidget.h4
-rw-r--r--src/gui/widgets/qcheckbox.cpp4
-rw-r--r--src/gui/widgets/qcheckbox.h4
-rw-r--r--src/gui/widgets/qcocoamenu_mac.mm4
-rw-r--r--src/gui/widgets/qcocoamenu_mac_p.h4
-rw-r--r--src/gui/widgets/qcocoatoolbardelegate_mac.mm4
-rw-r--r--src/gui/widgets/qcocoatoolbardelegate_mac_p.h4
-rw-r--r--src/gui/widgets/qcombobox.cpp4
-rw-r--r--src/gui/widgets/qcombobox.h4
-rw-r--r--src/gui/widgets/qcombobox_p.h4
-rw-r--r--src/gui/widgets/qcommandlinkbutton.cpp4
-rw-r--r--src/gui/widgets/qcommandlinkbutton.h4
-rw-r--r--src/gui/widgets/qdatetimeedit.cpp4
-rw-r--r--src/gui/widgets/qdatetimeedit.h4
-rw-r--r--src/gui/widgets/qdatetimeedit_p.h4
-rw-r--r--src/gui/widgets/qdial.cpp4
-rw-r--r--src/gui/widgets/qdial.h4
-rw-r--r--src/gui/widgets/qdialogbuttonbox.cpp4
-rw-r--r--src/gui/widgets/qdialogbuttonbox.h4
-rw-r--r--src/gui/widgets/qdockarealayout.cpp4
-rw-r--r--src/gui/widgets/qdockarealayout_p.h4
-rw-r--r--src/gui/widgets/qdockwidget.cpp81
-rw-r--r--src/gui/widgets/qdockwidget.h4
-rw-r--r--src/gui/widgets/qdockwidget_p.h4
-rw-r--r--src/gui/widgets/qeffects.cpp12
-rw-r--r--src/gui/widgets/qeffects_p.h4
-rw-r--r--src/gui/widgets/qfocusframe.cpp4
-rw-r--r--src/gui/widgets/qfocusframe.h4
-rw-r--r--src/gui/widgets/qfontcombobox.cpp4
-rw-r--r--src/gui/widgets/qfontcombobox.h4
-rw-r--r--src/gui/widgets/qframe.cpp4
-rw-r--r--src/gui/widgets/qframe.h4
-rw-r--r--src/gui/widgets/qframe_p.h4
-rw-r--r--src/gui/widgets/qgroupbox.cpp4
-rw-r--r--src/gui/widgets/qgroupbox.h4
-rw-r--r--src/gui/widgets/qlabel.cpp4
-rw-r--r--src/gui/widgets/qlabel.h4
-rw-r--r--src/gui/widgets/qlabel_p.h4
-rw-r--r--src/gui/widgets/qlcdnumber.cpp4
-rw-r--r--src/gui/widgets/qlcdnumber.h4
-rw-r--r--src/gui/widgets/qlineedit.cpp4
-rw-r--r--src/gui/widgets/qlineedit.h4
-rw-r--r--src/gui/widgets/qlineedit_p.h4
-rw-r--r--src/gui/widgets/qmaccocoaviewcontainer_mac.h4
-rw-r--r--src/gui/widgets/qmaccocoaviewcontainer_mac.mm4
-rw-r--r--src/gui/widgets/qmacnativewidget_mac.h4
-rw-r--r--src/gui/widgets/qmacnativewidget_mac.mm4
-rw-r--r--src/gui/widgets/qmainwindow.cpp4
-rw-r--r--src/gui/widgets/qmainwindow.h4
-rw-r--r--src/gui/widgets/qmainwindowlayout.cpp4
-rw-r--r--src/gui/widgets/qmainwindowlayout_mac.mm4
-rw-r--r--src/gui/widgets/qmainwindowlayout_p.h4
-rw-r--r--src/gui/widgets/qmdiarea.cpp38
-rw-r--r--src/gui/widgets/qmdiarea.h4
-rw-r--r--src/gui/widgets/qmdiarea_p.h4
-rw-r--r--src/gui/widgets/qmdisubwindow.cpp40
-rw-r--r--src/gui/widgets/qmdisubwindow.h4
-rw-r--r--src/gui/widgets/qmdisubwindow_p.h8
-rw-r--r--src/gui/widgets/qmenu.cpp20
-rw-r--r--src/gui/widgets/qmenu.h4
-rw-r--r--src/gui/widgets/qmenu_mac.mm63
-rw-r--r--src/gui/widgets/qmenu_p.h11
-rw-r--r--src/gui/widgets/qmenu_wince.cpp4
-rw-r--r--src/gui/widgets/qmenu_wince_resource_p.h4
-rw-r--r--src/gui/widgets/qmenubar.cpp29
-rw-r--r--src/gui/widgets/qmenubar.h4
-rw-r--r--src/gui/widgets/qmenubar_p.h4
-rw-r--r--src/gui/widgets/qmenudata.cpp4
-rw-r--r--src/gui/widgets/qmenudata.h4
-rw-r--r--src/gui/widgets/qplaintextedit.cpp10
-rw-r--r--src/gui/widgets/qplaintextedit.h4
-rw-r--r--src/gui/widgets/qplaintextedit_p.h4
-rw-r--r--src/gui/widgets/qprintpreviewwidget.cpp4
-rw-r--r--src/gui/widgets/qprintpreviewwidget.h4
-rw-r--r--src/gui/widgets/qprogressbar.cpp4
-rw-r--r--src/gui/widgets/qprogressbar.h4
-rw-r--r--src/gui/widgets/qpushbutton.cpp10
-rw-r--r--src/gui/widgets/qpushbutton.h4
-rw-r--r--src/gui/widgets/qpushbutton_p.h4
-rw-r--r--src/gui/widgets/qradiobutton.cpp4
-rw-r--r--src/gui/widgets/qradiobutton.h4
-rw-r--r--src/gui/widgets/qrubberband.cpp4
-rw-r--r--src/gui/widgets/qrubberband.h4
-rw-r--r--src/gui/widgets/qscrollarea.cpp4
-rw-r--r--src/gui/widgets/qscrollarea.h4
-rw-r--r--src/gui/widgets/qscrollarea_p.h4
-rw-r--r--src/gui/widgets/qscrollbar.cpp4
-rw-r--r--src/gui/widgets/qscrollbar.h4
-rw-r--r--src/gui/widgets/qsizegrip.cpp6
-rw-r--r--src/gui/widgets/qsizegrip.h4
-rw-r--r--src/gui/widgets/qslider.cpp4
-rw-r--r--src/gui/widgets/qslider.h4
-rw-r--r--src/gui/widgets/qspinbox.cpp17
-rw-r--r--src/gui/widgets/qspinbox.h4
-rw-r--r--src/gui/widgets/qsplashscreen.cpp4
-rw-r--r--src/gui/widgets/qsplashscreen.h4
-rw-r--r--src/gui/widgets/qsplitter.cpp6
-rw-r--r--src/gui/widgets/qsplitter.h4
-rw-r--r--src/gui/widgets/qsplitter_p.h4
-rw-r--r--src/gui/widgets/qstackedwidget.cpp4
-rw-r--r--src/gui/widgets/qstackedwidget.h4
-rw-r--r--src/gui/widgets/qstatusbar.cpp4
-rw-r--r--src/gui/widgets/qstatusbar.h4
-rw-r--r--src/gui/widgets/qtabbar.cpp4
-rw-r--r--src/gui/widgets/qtabbar.h4
-rw-r--r--src/gui/widgets/qtabbar_p.h4
-rw-r--r--src/gui/widgets/qtabwidget.cpp6
-rw-r--r--src/gui/widgets/qtabwidget.h4
-rw-r--r--src/gui/widgets/qtextbrowser.cpp12
-rw-r--r--src/gui/widgets/qtextbrowser.h4
-rw-r--r--src/gui/widgets/qtextedit.cpp5
-rw-r--r--src/gui/widgets/qtextedit.h4
-rw-r--r--src/gui/widgets/qtextedit_p.h4
-rw-r--r--src/gui/widgets/qtoolbar.cpp16
-rw-r--r--src/gui/widgets/qtoolbar.h4
-rw-r--r--src/gui/widgets/qtoolbar_p.h4
-rw-r--r--src/gui/widgets/qtoolbararealayout.cpp11
-rw-r--r--src/gui/widgets/qtoolbararealayout_p.h4
-rw-r--r--src/gui/widgets/qtoolbarextension.cpp4
-rw-r--r--src/gui/widgets/qtoolbarextension_p.h4
-rw-r--r--src/gui/widgets/qtoolbarlayout.cpp4
-rw-r--r--src/gui/widgets/qtoolbarlayout_p.h4
-rw-r--r--src/gui/widgets/qtoolbarseparator.cpp4
-rw-r--r--src/gui/widgets/qtoolbarseparator_p.h4
-rw-r--r--src/gui/widgets/qtoolbox.cpp4
-rw-r--r--src/gui/widgets/qtoolbox.h4
-rw-r--r--src/gui/widgets/qtoolbutton.cpp14
-rw-r--r--src/gui/widgets/qtoolbutton.h4
-rw-r--r--src/gui/widgets/qvalidator.cpp4
-rw-r--r--src/gui/widgets/qvalidator.h4
-rw-r--r--src/gui/widgets/qwidgetanimator.cpp4
-rw-r--r--src/gui/widgets/qwidgetanimator_p.h4
-rw-r--r--src/gui/widgets/qwidgetresizehandler.cpp6
-rw-r--r--src/gui/widgets/qwidgetresizehandler_p.h4
-rw-r--r--src/gui/widgets/qworkspace.cpp4
-rw-r--r--src/gui/widgets/qworkspace.h4
-rw-r--r--src/network/access/qabstractnetworkcache.cpp4
-rw-r--r--src/network/access/qabstractnetworkcache.h4
-rw-r--r--src/network/access/qabstractnetworkcache_p.h4
-rw-r--r--src/network/access/qftp.cpp4
-rw-r--r--src/network/access/qftp.h4
-rw-r--r--src/network/access/qhttp.cpp12
-rw-r--r--src/network/access/qhttp.h4
-rw-r--r--src/network/access/qhttpnetworkconnection.cpp124
-rw-r--r--src/network/access/qhttpnetworkconnection_p.h17
-rw-r--r--src/network/access/qhttpnetworkheader.cpp4
-rw-r--r--src/network/access/qhttpnetworkheader_p.h4
-rw-r--r--src/network/access/qhttpnetworkreply.cpp6
-rw-r--r--src/network/access/qhttpnetworkreply_p.h5
-rw-r--r--src/network/access/qhttpnetworkrequest.cpp4
-rw-r--r--src/network/access/qhttpnetworkrequest_p.h4
-rw-r--r--src/network/access/qnetworkaccessbackend.cpp4
-rw-r--r--src/network/access/qnetworkaccessbackend_p.h4
-rw-r--r--src/network/access/qnetworkaccesscache.cpp4
-rw-r--r--src/network/access/qnetworkaccesscache_p.h7
-rw-r--r--src/network/access/qnetworkaccesscachebackend.cpp4
-rw-r--r--src/network/access/qnetworkaccesscachebackend_p.h4
-rw-r--r--src/network/access/qnetworkaccessdatabackend.cpp4
-rw-r--r--src/network/access/qnetworkaccessdatabackend_p.h4
-rw-r--r--src/network/access/qnetworkaccessdebugpipebackend.cpp4
-rw-r--r--src/network/access/qnetworkaccessdebugpipebackend_p.h4
-rw-r--r--src/network/access/qnetworkaccessfilebackend.cpp4
-rw-r--r--src/network/access/qnetworkaccessfilebackend_p.h4
-rw-r--r--src/network/access/qnetworkaccessftpbackend.cpp22
-rw-r--r--src/network/access/qnetworkaccessftpbackend_p.h8
-rw-r--r--src/network/access/qnetworkaccesshttpbackend.cpp24
-rw-r--r--src/network/access/qnetworkaccesshttpbackend_p.h8
-rw-r--r--src/network/access/qnetworkaccessmanager.cpp28
-rw-r--r--src/network/access/qnetworkaccessmanager.h4
-rw-r--r--src/network/access/qnetworkaccessmanager_p.h16
-rw-r--r--src/network/access/qnetworkcookie.cpp4
-rw-r--r--src/network/access/qnetworkcookie.h4
-rw-r--r--src/network/access/qnetworkcookie_p.h4
-rw-r--r--src/network/access/qnetworkdiskcache.cpp4
-rw-r--r--src/network/access/qnetworkdiskcache.h4
-rw-r--r--src/network/access/qnetworkdiskcache_p.h4
-rw-r--r--src/network/access/qnetworkreply.cpp4
-rw-r--r--src/network/access/qnetworkreply.h4
-rw-r--r--src/network/access/qnetworkreply_p.h4
-rw-r--r--src/network/access/qnetworkreplyimpl.cpp4
-rw-r--r--src/network/access/qnetworkreplyimpl_p.h4
-rw-r--r--src/network/access/qnetworkrequest.cpp4
-rw-r--r--src/network/access/qnetworkrequest.h4
-rw-r--r--src/network/access/qnetworkrequest_p.h4
-rw-r--r--src/network/kernel/qauthenticator.cpp4
-rw-r--r--src/network/kernel/qauthenticator.h4
-rw-r--r--src/network/kernel/qauthenticator_p.h4
-rw-r--r--src/network/kernel/qhostaddress.cpp4
-rw-r--r--src/network/kernel/qhostaddress.h4
-rw-r--r--src/network/kernel/qhostaddress_p.h4
-rw-r--r--src/network/kernel/qhostinfo.cpp4
-rw-r--r--src/network/kernel/qhostinfo.h4
-rw-r--r--src/network/kernel/qhostinfo_p.h4
-rw-r--r--src/network/kernel/qhostinfo_unix.cpp4
-rw-r--r--src/network/kernel/qhostinfo_win.cpp4
-rw-r--r--src/network/kernel/qnetworkinterface.cpp4
-rw-r--r--src/network/kernel/qnetworkinterface.h4
-rw-r--r--src/network/kernel/qnetworkinterface_p.h4
-rw-r--r--src/network/kernel/qnetworkinterface_unix.cpp4
-rw-r--r--src/network/kernel/qnetworkinterface_win.cpp4
-rw-r--r--src/network/kernel/qnetworkinterface_win_p.h4
-rw-r--r--src/network/kernel/qnetworkproxy.cpp4
-rw-r--r--src/network/kernel/qnetworkproxy.h4
-rw-r--r--src/network/kernel/qnetworkproxy_generic.cpp4
-rw-r--r--src/network/kernel/qnetworkproxy_mac.cpp4
-rw-r--r--src/network/kernel/qnetworkproxy_win.cpp4
-rw-r--r--src/network/kernel/qurlinfo.cpp4
-rw-r--r--src/network/kernel/qurlinfo.h4
-rw-r--r--src/network/socket/qabstractsocket.cpp8
-rw-r--r--src/network/socket/qabstractsocket.h4
-rw-r--r--src/network/socket/qabstractsocket_p.h4
-rw-r--r--src/network/socket/qabstractsocketengine.cpp4
-rw-r--r--src/network/socket/qabstractsocketengine_p.h4
-rw-r--r--src/network/socket/qhttpsocketengine.cpp4
-rw-r--r--src/network/socket/qhttpsocketengine_p.h4
-rw-r--r--src/network/socket/qlocalserver.cpp4
-rw-r--r--src/network/socket/qlocalserver.h4
-rw-r--r--src/network/socket/qlocalserver_p.h4
-rw-r--r--src/network/socket/qlocalserver_tcp.cpp4
-rw-r--r--src/network/socket/qlocalserver_unix.cpp4
-rw-r--r--src/network/socket/qlocalserver_win.cpp4
-rw-r--r--src/network/socket/qlocalsocket.cpp4
-rw-r--r--src/network/socket/qlocalsocket.h4
-rw-r--r--src/network/socket/qlocalsocket_p.h4
-rw-r--r--src/network/socket/qlocalsocket_tcp.cpp4
-rw-r--r--src/network/socket/qlocalsocket_unix.cpp4
-rw-r--r--src/network/socket/qlocalsocket_win.cpp4
-rw-r--r--src/network/socket/qnativesocketengine.cpp4
-rw-r--r--src/network/socket/qnativesocketengine_p.h4
-rw-r--r--src/network/socket/qnativesocketengine_unix.cpp4
-rw-r--r--src/network/socket/qnativesocketengine_win.cpp4
-rw-r--r--src/network/socket/qsocks5socketengine.cpp4
-rw-r--r--src/network/socket/qsocks5socketengine_p.h4
-rw-r--r--src/network/socket/qtcpserver.cpp4
-rw-r--r--src/network/socket/qtcpserver.h4
-rw-r--r--src/network/socket/qtcpsocket.cpp4
-rw-r--r--src/network/socket/qtcpsocket.h4
-rw-r--r--src/network/socket/qtcpsocket_p.h4
-rw-r--r--src/network/socket/qudpsocket.cpp4
-rw-r--r--src/network/socket/qudpsocket.h4
-rw-r--r--src/network/ssl/qssl.cpp4
-rw-r--r--src/network/ssl/qssl.h4
-rw-r--r--src/network/ssl/qsslcertificate.cpp33
-rw-r--r--src/network/ssl/qsslcertificate.h4
-rw-r--r--src/network/ssl/qsslcertificate_p.h4
-rw-r--r--src/network/ssl/qsslcipher.cpp4
-rw-r--r--src/network/ssl/qsslcipher.h4
-rw-r--r--src/network/ssl/qsslcipher_p.h4
-rw-r--r--src/network/ssl/qsslconfiguration.cpp4
-rw-r--r--src/network/ssl/qsslconfiguration.h4
-rw-r--r--src/network/ssl/qsslconfiguration_p.h4
-rw-r--r--src/network/ssl/qsslerror.cpp4
-rw-r--r--src/network/ssl/qsslerror.h4
-rw-r--r--src/network/ssl/qsslkey.cpp4
-rw-r--r--src/network/ssl/qsslkey.h4
-rw-r--r--src/network/ssl/qsslkey_p.h4
-rw-r--r--src/network/ssl/qsslsocket.cpp6
-rw-r--r--src/network/ssl/qsslsocket.h4
-rw-r--r--src/network/ssl/qsslsocket_openssl.cpp11
-rw-r--r--src/network/ssl/qsslsocket_openssl_p.h8
-rw-r--r--src/network/ssl/qsslsocket_openssl_symbols.cpp27
-rw-r--r--src/network/ssl/qsslsocket_openssl_symbols_p.h27
-rw-r--r--src/network/ssl/qsslsocket_p.h4
-rw-r--r--src/opengl/gl2paintengineex/qgl2pexvertexarray.cpp4
-rw-r--r--src/opengl/gl2paintengineex/qgl2pexvertexarray_p.h4
-rw-r--r--src/opengl/gl2paintengineex/qglengineshadermanager.cpp15
-rw-r--r--src/opengl/gl2paintengineex/qglengineshadermanager_p.h12
-rw-r--r--src/opengl/gl2paintengineex/qglengineshadersource_p.h21
-rw-r--r--src/opengl/gl2paintengineex/qglgradientcache.cpp4
-rw-r--r--src/opengl/gl2paintengineex/qglgradientcache_p.h4
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp61
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h6
-rw-r--r--src/opengl/qegl.cpp4
-rw-r--r--src/opengl/qegl_p.h4
-rw-r--r--src/opengl/qegl_qws.cpp4
-rw-r--r--src/opengl/qegl_wince.cpp4
-rw-r--r--src/opengl/qegl_x11egl.cpp4
-rw-r--r--src/opengl/qgl.cpp4
-rw-r--r--src/opengl/qgl.h4
-rw-r--r--src/opengl/qgl_cl_p.h4
-rw-r--r--src/opengl/qgl_egl.cpp4
-rw-r--r--src/opengl/qgl_egl_p.h4
-rw-r--r--src/opengl/qgl_mac.mm4
-rw-r--r--src/opengl/qgl_p.h4
-rw-r--r--src/opengl/qgl_qws.cpp4
-rw-r--r--src/opengl/qgl_win.cpp4
-rw-r--r--src/opengl/qgl_wince.cpp4
-rw-r--r--src/opengl/qgl_x11.cpp16
-rw-r--r--src/opengl/qgl_x11egl.cpp4
-rw-r--r--src/opengl/qglcolormap.cpp4
-rw-r--r--src/opengl/qglcolormap.h4
-rw-r--r--src/opengl/qglextensions.cpp4
-rw-r--r--src/opengl/qglextensions_p.h4
-rw-r--r--src/opengl/qglframebufferobject.cpp10
-rw-r--r--src/opengl/qglframebufferobject.h4
-rw-r--r--src/opengl/qglpaintdevice_qws.cpp4
-rw-r--r--src/opengl/qglpaintdevice_qws_p.h4
-rw-r--r--src/opengl/qglpixelbuffer.cpp4
-rw-r--r--src/opengl/qglpixelbuffer.h4
-rw-r--r--src/opengl/qglpixelbuffer_egl.cpp4
-rw-r--r--src/opengl/qglpixelbuffer_mac.mm4
-rw-r--r--src/opengl/qglpixelbuffer_p.h4
-rw-r--r--src/opengl/qglpixelbuffer_win.cpp4
-rw-r--r--src/opengl/qglpixelbuffer_x11.cpp4
-rw-r--r--src/opengl/qglpixmapfilter.cpp4
-rw-r--r--src/opengl/qglpixmapfilter_p.h4
-rw-r--r--src/opengl/qglscreen_qws.cpp4
-rw-r--r--src/opengl/qglscreen_qws.h4
-rw-r--r--src/opengl/qglshaderprogram.cpp4
-rw-r--r--src/opengl/qglshaderprogram.h4
-rw-r--r--src/opengl/qglwindowsurface_qws.cpp4
-rw-r--r--src/opengl/qglwindowsurface_qws_p.h4
-rw-r--r--src/opengl/qgraphicssystem_gl.cpp5
-rw-r--r--src/opengl/qgraphicssystem_gl_p.h4
-rw-r--r--src/opengl/qpaintengine_opengl.cpp36
-rw-r--r--src/opengl/qpaintengine_opengl_p.h5
-rw-r--r--src/opengl/qpixmapdata_gl.cpp133
-rw-r--r--src/opengl/qpixmapdata_gl_p.h13
-rw-r--r--src/opengl/qwindowsurface_gl.cpp43
-rw-r--r--src/opengl/qwindowsurface_gl_p.h10
-rw-r--r--src/opengl/util/fragmentprograms_p.h4
-rw-r--r--src/opengl/util/generator.cpp4
-rw-r--r--src/phonon/phonon.pro2
-rw-r--r--src/plugins/accessible/compat/main.cpp4
-rw-r--r--src/plugins/accessible/compat/q3complexwidgets.cpp4
-rw-r--r--src/plugins/accessible/compat/q3complexwidgets.h4
-rw-r--r--src/plugins/accessible/compat/q3simplewidgets.cpp4
-rw-r--r--src/plugins/accessible/compat/q3simplewidgets.h4
-rw-r--r--src/plugins/accessible/compat/qaccessiblecompat.cpp4
-rw-r--r--src/plugins/accessible/compat/qaccessiblecompat.h4
-rw-r--r--src/plugins/accessible/widgets/complexwidgets.cpp4
-rw-r--r--src/plugins/accessible/widgets/complexwidgets.h4
-rw-r--r--src/plugins/accessible/widgets/main.cpp4
-rw-r--r--src/plugins/accessible/widgets/qaccessiblemenu.cpp4
-rw-r--r--src/plugins/accessible/widgets/qaccessiblemenu.h4
-rw-r--r--src/plugins/accessible/widgets/qaccessiblewidgets.cpp4
-rw-r--r--src/plugins/accessible/widgets/qaccessiblewidgets.h4
-rw-r--r--src/plugins/accessible/widgets/rangecontrols.cpp4
-rw-r--r--src/plugins/accessible/widgets/rangecontrols.h4
-rw-r--r--src/plugins/accessible/widgets/simplewidgets.cpp4
-rw-r--r--src/plugins/accessible/widgets/simplewidgets.h4
-rw-r--r--src/plugins/codecs/cn/main.cpp4
-rw-r--r--src/plugins/codecs/cn/qgb18030codec.cpp4
-rw-r--r--src/plugins/codecs/cn/qgb18030codec.h4
-rw-r--r--src/plugins/codecs/jp/main.cpp4
-rw-r--r--src/plugins/codecs/jp/qeucjpcodec.cpp4
-rw-r--r--src/plugins/codecs/jp/qeucjpcodec.h4
-rw-r--r--src/plugins/codecs/jp/qfontjpcodec.cpp4
-rw-r--r--src/plugins/codecs/jp/qfontjpcodec.h4
-rw-r--r--src/plugins/codecs/jp/qjiscodec.cpp4
-rw-r--r--src/plugins/codecs/jp/qjiscodec.h4
-rw-r--r--src/plugins/codecs/jp/qjpunicode.cpp4
-rw-r--r--src/plugins/codecs/jp/qjpunicode.h4
-rw-r--r--src/plugins/codecs/jp/qsjiscodec.cpp4
-rw-r--r--src/plugins/codecs/jp/qsjiscodec.h4
-rw-r--r--src/plugins/codecs/kr/cp949codetbl.h4
-rw-r--r--src/plugins/codecs/kr/main.cpp4
-rw-r--r--src/plugins/codecs/kr/qeuckrcodec.cpp4
-rw-r--r--src/plugins/codecs/kr/qeuckrcodec.h4
-rw-r--r--src/plugins/codecs/tw/main.cpp4
-rw-r--r--src/plugins/codecs/tw/qbig5codec.cpp4
-rw-r--r--src/plugins/codecs/tw/qbig5codec.h4
-rw-r--r--src/plugins/decorations/default/main.cpp4
-rw-r--r--src/plugins/decorations/styled/main.cpp4
-rw-r--r--src/plugins/decorations/windows/main.cpp4
-rw-r--r--src/plugins/gfxdrivers/ahi/qscreenahi_qws.cpp4
-rw-r--r--src/plugins/gfxdrivers/ahi/qscreenahi_qws.h4
-rw-r--r--src/plugins/gfxdrivers/ahi/qscreenahiplugin.cpp4
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbkeyboard.cpp4
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbkeyboard.h4
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbmouse.cpp4
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbmouse.h4
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpaintdevice.cpp14
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpaintdevice.h4
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp14
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.h4
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp40
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpixmap.h4
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbscreen.cpp34
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbscreen.h9
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbscreenplugin.cpp4
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp21
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.h4
-rw-r--r--src/plugins/gfxdrivers/hybrid/hybridplugin.cpp4
-rw-r--r--src/plugins/gfxdrivers/hybrid/hybridscreen.cpp4
-rw-r--r--src/plugins/gfxdrivers/hybrid/hybridscreen.h4
-rw-r--r--src/plugins/gfxdrivers/hybrid/hybridsurface.cpp4
-rw-r--r--src/plugins/gfxdrivers/hybrid/hybridsurface.h4
-rw-r--r--src/plugins/gfxdrivers/linuxfb/main.cpp4
-rw-r--r--src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable.c4
-rw-r--r--src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable.h4
-rw-r--r--src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable_p.h4
-rw-r--r--src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c4
-rw-r--r--src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.cpp4
-rw-r--r--src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.h4
-rw-r--r--src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreenplugin.cpp4
-rw-r--r--src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglwindowsurface.cpp4
-rw-r--r--src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglwindowsurface.h4
-rw-r--r--src/plugins/gfxdrivers/qvfb/main.cpp4
-rw-r--r--src/plugins/gfxdrivers/transformed/main.cpp4
-rw-r--r--src/plugins/gfxdrivers/vnc/main.cpp4
-rw-r--r--src/plugins/gfxdrivers/vnc/qscreenvnc_p.h4
-rw-r--r--src/plugins/gfxdrivers/vnc/qscreenvnc_qws.cpp4
-rw-r--r--src/plugins/gfxdrivers/vnc/qscreenvnc_qws.h4
-rw-r--r--src/plugins/graphicssystems/opengl/main.cpp4
-rw-r--r--src/plugins/iconengines/svgiconengine/main.cpp4
-rw-r--r--src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp4
-rw-r--r--src/plugins/iconengines/svgiconengine/qsvgiconengine.h4
-rw-r--r--src/plugins/imageformats/gif/main.cpp4
-rw-r--r--src/plugins/imageformats/gif/qgifhandler.cpp4
-rw-r--r--src/plugins/imageformats/gif/qgifhandler.h4
-rw-r--r--src/plugins/imageformats/ico/main.cpp4
-rw-r--r--src/plugins/imageformats/ico/qicohandler.cpp4
-rw-r--r--src/plugins/imageformats/ico/qicohandler.h4
-rw-r--r--src/plugins/imageformats/jpeg/main.cpp4
-rw-r--r--src/plugins/imageformats/jpeg/qjpeghandler.cpp4
-rw-r--r--src/plugins/imageformats/jpeg/qjpeghandler.h4
-rw-r--r--src/plugins/imageformats/mng/main.cpp4
-rw-r--r--src/plugins/imageformats/mng/qmnghandler.cpp4
-rw-r--r--src/plugins/imageformats/mng/qmnghandler.h4
-rw-r--r--src/plugins/imageformats/svg/main.cpp4
-rw-r--r--src/plugins/imageformats/svg/qsvgiohandler.cpp39
-rw-r--r--src/plugins/imageformats/svg/qsvgiohandler.h4
-rw-r--r--src/plugins/imageformats/tiff/main.cpp4
-rw-r--r--src/plugins/imageformats/tiff/qtiffhandler.cpp4
-rw-r--r--src/plugins/imageformats/tiff/qtiffhandler.h4
-rw-r--r--src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp4
-rw-r--r--src/plugins/inputmethods/imsw-multi/qmultiinputcontext.h4
-rw-r--r--src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp4
-rw-r--r--src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.h4
-rw-r--r--src/plugins/kbddrivers/linuxinput/main.cpp4
-rw-r--r--src/plugins/kbddrivers/sl5000/main.cpp4
-rw-r--r--src/plugins/kbddrivers/vr41xx/main.cpp4
-rw-r--r--src/plugins/kbddrivers/yopy/main.cpp4
-rw-r--r--src/plugins/mousedrivers/bus/main.cpp4
-rw-r--r--src/plugins/mousedrivers/linuxis/linuxismousedriverplugin.cpp4
-rw-r--r--src/plugins/mousedrivers/linuxis/linuxismousedriverplugin.h4
-rw-r--r--src/plugins/mousedrivers/linuxis/linuxismousehandler.cpp4
-rw-r--r--src/plugins/mousedrivers/linuxis/linuxismousehandler.h4
-rw-r--r--src/plugins/mousedrivers/linuxtp/main.cpp4
-rw-r--r--src/plugins/mousedrivers/pc/main.cpp4
-rw-r--r--src/plugins/mousedrivers/tslib/main.cpp4
-rw-r--r--src/plugins/mousedrivers/vr41xx/main.cpp4
-rw-r--r--src/plugins/mousedrivers/yopy/main.cpp4
-rw-r--r--src/plugins/script/qtdbus/main.cpp4
-rw-r--r--src/plugins/script/qtdbus/main.h4
-rw-r--r--src/plugins/sqldrivers/db2/main.cpp4
-rw-r--r--src/plugins/sqldrivers/ibase/main.cpp4
-rw-r--r--src/plugins/sqldrivers/mysql/main.cpp4
-rw-r--r--src/plugins/sqldrivers/oci/main.cpp4
-rw-r--r--src/plugins/sqldrivers/odbc/main.cpp4
-rw-r--r--src/plugins/sqldrivers/psql/main.cpp4
-rw-r--r--src/plugins/sqldrivers/sqlite/smain.cpp4
-rw-r--r--src/plugins/sqldrivers/sqlite2/smain.cpp4
-rw-r--r--src/plugins/sqldrivers/tds/main.cpp4
-rw-r--r--src/qt3support/canvas/q3canvas.cpp4
-rw-r--r--src/qt3support/canvas/q3canvas.h4
-rw-r--r--src/qt3support/dialogs/q3filedialog.cpp4
-rw-r--r--src/qt3support/dialogs/q3filedialog.h4
-rw-r--r--src/qt3support/dialogs/q3filedialog_mac.cpp4
-rw-r--r--src/qt3support/dialogs/q3filedialog_win.cpp4
-rw-r--r--src/qt3support/dialogs/q3progressdialog.cpp4
-rw-r--r--src/qt3support/dialogs/q3progressdialog.h4
-rw-r--r--src/qt3support/dialogs/q3tabdialog.cpp4
-rw-r--r--src/qt3support/dialogs/q3tabdialog.h4
-rw-r--r--src/qt3support/dialogs/q3wizard.cpp4
-rw-r--r--src/qt3support/dialogs/q3wizard.h4
-rw-r--r--src/qt3support/itemviews/q3iconview.cpp4
-rw-r--r--src/qt3support/itemviews/q3iconview.h4
-rw-r--r--src/qt3support/itemviews/q3listbox.cpp4
-rw-r--r--src/qt3support/itemviews/q3listbox.h4
-rw-r--r--src/qt3support/itemviews/q3listview.cpp4
-rw-r--r--src/qt3support/itemviews/q3listview.h4
-rw-r--r--src/qt3support/itemviews/q3table.cpp4
-rw-r--r--src/qt3support/itemviews/q3table.h4
-rw-r--r--src/qt3support/network/q3dns.cpp4
-rw-r--r--src/qt3support/network/q3dns.h4
-rw-r--r--src/qt3support/network/q3ftp.cpp4
-rw-r--r--src/qt3support/network/q3ftp.h4
-rw-r--r--src/qt3support/network/q3http.cpp4
-rw-r--r--src/qt3support/network/q3http.h4
-rw-r--r--src/qt3support/network/q3localfs.cpp4
-rw-r--r--src/qt3support/network/q3localfs.h4
-rw-r--r--src/qt3support/network/q3network.cpp4
-rw-r--r--src/qt3support/network/q3network.h4
-rw-r--r--src/qt3support/network/q3networkprotocol.cpp4
-rw-r--r--src/qt3support/network/q3networkprotocol.h4
-rw-r--r--src/qt3support/network/q3serversocket.cpp4
-rw-r--r--src/qt3support/network/q3serversocket.h4
-rw-r--r--src/qt3support/network/q3socket.cpp4
-rw-r--r--src/qt3support/network/q3socket.h4
-rw-r--r--src/qt3support/network/q3socketdevice.cpp4
-rw-r--r--src/qt3support/network/q3socketdevice.h4
-rw-r--r--src/qt3support/network/q3socketdevice_unix.cpp4
-rw-r--r--src/qt3support/network/q3socketdevice_win.cpp4
-rw-r--r--src/qt3support/network/q3url.cpp4
-rw-r--r--src/qt3support/network/q3url.h4
-rw-r--r--src/qt3support/network/q3urloperator.cpp4
-rw-r--r--src/qt3support/network/q3urloperator.h4
-rw-r--r--src/qt3support/other/q3accel.cpp4
-rw-r--r--src/qt3support/other/q3accel.h4
-rw-r--r--src/qt3support/other/q3boxlayout.cpp4
-rw-r--r--src/qt3support/other/q3boxlayout.h4
-rw-r--r--src/qt3support/other/q3dragobject.cpp4
-rw-r--r--src/qt3support/other/q3dragobject.h4
-rw-r--r--src/qt3support/other/q3dropsite.cpp4
-rw-r--r--src/qt3support/other/q3dropsite.h4
-rw-r--r--src/qt3support/other/q3gridlayout.h4
-rw-r--r--src/qt3support/other/q3membuf.cpp4
-rw-r--r--src/qt3support/other/q3membuf_p.h4
-rw-r--r--src/qt3support/other/q3mimefactory.cpp4
-rw-r--r--src/qt3support/other/q3mimefactory.h4
-rw-r--r--src/qt3support/other/q3polygonscanner.cpp4
-rw-r--r--src/qt3support/other/q3polygonscanner.h4
-rw-r--r--src/qt3support/other/q3process.cpp4
-rw-r--r--src/qt3support/other/q3process.h4
-rw-r--r--src/qt3support/other/q3process_unix.cpp4
-rw-r--r--src/qt3support/other/q3process_win.cpp4
-rw-r--r--src/qt3support/other/qiconset.h4
-rw-r--r--src/qt3support/other/qt_compat_pch.h4
-rw-r--r--src/qt3support/painting/q3paintdevicemetrics.cpp4
-rw-r--r--src/qt3support/painting/q3paintdevicemetrics.h4
-rw-r--r--src/qt3support/painting/q3paintengine_svg.cpp4
-rw-r--r--src/qt3support/painting/q3paintengine_svg_p.h4
-rw-r--r--src/qt3support/painting/q3painter.cpp4
-rw-r--r--src/qt3support/painting/q3painter.h4
-rw-r--r--src/qt3support/painting/q3picture.cpp4
-rw-r--r--src/qt3support/painting/q3picture.h4
-rw-r--r--src/qt3support/painting/q3pointarray.cpp4
-rw-r--r--src/qt3support/painting/q3pointarray.h4
-rw-r--r--src/qt3support/sql/q3databrowser.cpp4
-rw-r--r--src/qt3support/sql/q3databrowser.h4
-rw-r--r--src/qt3support/sql/q3datatable.cpp4
-rw-r--r--src/qt3support/sql/q3datatable.h4
-rw-r--r--src/qt3support/sql/q3dataview.cpp4
-rw-r--r--src/qt3support/sql/q3dataview.h4
-rw-r--r--src/qt3support/sql/q3editorfactory.cpp4
-rw-r--r--src/qt3support/sql/q3editorfactory.h4
-rw-r--r--src/qt3support/sql/q3sqlcursor.cpp4
-rw-r--r--src/qt3support/sql/q3sqlcursor.h4
-rw-r--r--src/qt3support/sql/q3sqleditorfactory.cpp4
-rw-r--r--src/qt3support/sql/q3sqleditorfactory.h4
-rw-r--r--src/qt3support/sql/q3sqlfieldinfo.h4
-rw-r--r--src/qt3support/sql/q3sqlform.cpp4
-rw-r--r--src/qt3support/sql/q3sqlform.h4
-rw-r--r--src/qt3support/sql/q3sqlmanager_p.cpp4
-rw-r--r--src/qt3support/sql/q3sqlmanager_p.h4
-rw-r--r--src/qt3support/sql/q3sqlpropertymap.cpp4
-rw-r--r--src/qt3support/sql/q3sqlpropertymap.h4
-rw-r--r--src/qt3support/sql/q3sqlrecordinfo.h4
-rw-r--r--src/qt3support/sql/q3sqlselectcursor.cpp4
-rw-r--r--src/qt3support/sql/q3sqlselectcursor.h4
-rw-r--r--src/qt3support/text/q3multilineedit.cpp4
-rw-r--r--src/qt3support/text/q3multilineedit.h4
-rw-r--r--src/qt3support/text/q3richtext.cpp4
-rw-r--r--src/qt3support/text/q3richtext_p.cpp4
-rw-r--r--src/qt3support/text/q3richtext_p.h4
-rw-r--r--src/qt3support/text/q3simplerichtext.cpp4
-rw-r--r--src/qt3support/text/q3simplerichtext.h4
-rw-r--r--src/qt3support/text/q3stylesheet.cpp4
-rw-r--r--src/qt3support/text/q3stylesheet.h4
-rw-r--r--src/qt3support/text/q3syntaxhighlighter.cpp4
-rw-r--r--src/qt3support/text/q3syntaxhighlighter.h4
-rw-r--r--src/qt3support/text/q3syntaxhighlighter_p.h4
-rw-r--r--src/qt3support/text/q3textbrowser.cpp4
-rw-r--r--src/qt3support/text/q3textbrowser.h4
-rw-r--r--src/qt3support/text/q3textedit.cpp4
-rw-r--r--src/qt3support/text/q3textedit.h4
-rw-r--r--src/qt3support/text/q3textstream.cpp4
-rw-r--r--src/qt3support/text/q3textstream.h4
-rw-r--r--src/qt3support/text/q3textview.cpp4
-rw-r--r--src/qt3support/text/q3textview.h4
-rw-r--r--src/qt3support/tools/q3asciicache.h4
-rw-r--r--src/qt3support/tools/q3asciidict.h4
-rw-r--r--src/qt3support/tools/q3cache.h4
-rw-r--r--src/qt3support/tools/q3cleanuphandler.h4
-rw-r--r--src/qt3support/tools/q3cstring.cpp4
-rw-r--r--src/qt3support/tools/q3cstring.h4
-rw-r--r--src/qt3support/tools/q3deepcopy.cpp4
-rw-r--r--src/qt3support/tools/q3deepcopy.h4
-rw-r--r--src/qt3support/tools/q3dict.h4
-rw-r--r--src/qt3support/tools/q3garray.cpp4
-rw-r--r--src/qt3support/tools/q3garray.h4
-rw-r--r--src/qt3support/tools/q3gcache.cpp4
-rw-r--r--src/qt3support/tools/q3gcache.h4
-rw-r--r--src/qt3support/tools/q3gdict.cpp4
-rw-r--r--src/qt3support/tools/q3gdict.h4
-rw-r--r--src/qt3support/tools/q3glist.cpp4
-rw-r--r--src/qt3support/tools/q3glist.h4
-rw-r--r--src/qt3support/tools/q3gvector.cpp4
-rw-r--r--src/qt3support/tools/q3gvector.h4
-rw-r--r--src/qt3support/tools/q3intcache.h4
-rw-r--r--src/qt3support/tools/q3intdict.h4
-rw-r--r--src/qt3support/tools/q3memarray.h4
-rw-r--r--src/qt3support/tools/q3objectdict.h4
-rw-r--r--src/qt3support/tools/q3ptrcollection.cpp4
-rw-r--r--src/qt3support/tools/q3ptrcollection.h4
-rw-r--r--src/qt3support/tools/q3ptrdict.h4
-rw-r--r--src/qt3support/tools/q3ptrlist.h4
-rw-r--r--src/qt3support/tools/q3ptrqueue.h4
-rw-r--r--src/qt3support/tools/q3ptrstack.h4
-rw-r--r--src/qt3support/tools/q3ptrvector.h4
-rw-r--r--src/qt3support/tools/q3semaphore.cpp4
-rw-r--r--src/qt3support/tools/q3semaphore.h4
-rw-r--r--src/qt3support/tools/q3shared.cpp4
-rw-r--r--src/qt3support/tools/q3shared.h4
-rw-r--r--src/qt3support/tools/q3signal.cpp4
-rw-r--r--src/qt3support/tools/q3signal.h4
-rw-r--r--src/qt3support/tools/q3sortedlist.h4
-rw-r--r--src/qt3support/tools/q3strlist.h4
-rw-r--r--src/qt3support/tools/q3strvec.h4
-rw-r--r--src/qt3support/tools/q3tl.h4
-rw-r--r--src/qt3support/tools/q3valuelist.h4
-rw-r--r--src/qt3support/tools/q3valuestack.h4
-rw-r--r--src/qt3support/tools/q3valuevector.h4
-rw-r--r--src/qt3support/widgets/q3action.cpp4
-rw-r--r--src/qt3support/widgets/q3action.h4
-rw-r--r--src/qt3support/widgets/q3button.cpp4
-rw-r--r--src/qt3support/widgets/q3button.h4
-rw-r--r--src/qt3support/widgets/q3buttongroup.cpp4
-rw-r--r--src/qt3support/widgets/q3buttongroup.h4
-rw-r--r--src/qt3support/widgets/q3combobox.cpp4
-rw-r--r--src/qt3support/widgets/q3combobox.h4
-rw-r--r--src/qt3support/widgets/q3datetimeedit.cpp4
-rw-r--r--src/qt3support/widgets/q3datetimeedit.h4
-rw-r--r--src/qt3support/widgets/q3dockarea.cpp4
-rw-r--r--src/qt3support/widgets/q3dockarea.h4
-rw-r--r--src/qt3support/widgets/q3dockwindow.cpp4
-rw-r--r--src/qt3support/widgets/q3dockwindow.h4
-rw-r--r--src/qt3support/widgets/q3frame.cpp4
-rw-r--r--src/qt3support/widgets/q3frame.h4
-rw-r--r--src/qt3support/widgets/q3grid.cpp4
-rw-r--r--src/qt3support/widgets/q3grid.h4
-rw-r--r--src/qt3support/widgets/q3gridview.cpp4
-rw-r--r--src/qt3support/widgets/q3gridview.h4
-rw-r--r--src/qt3support/widgets/q3groupbox.cpp4
-rw-r--r--src/qt3support/widgets/q3groupbox.h4
-rw-r--r--src/qt3support/widgets/q3hbox.cpp4
-rw-r--r--src/qt3support/widgets/q3hbox.h4
-rw-r--r--src/qt3support/widgets/q3header.cpp4
-rw-r--r--src/qt3support/widgets/q3header.h4
-rw-r--r--src/qt3support/widgets/q3hgroupbox.cpp4
-rw-r--r--src/qt3support/widgets/q3hgroupbox.h4
-rw-r--r--src/qt3support/widgets/q3mainwindow.cpp4
-rw-r--r--src/qt3support/widgets/q3mainwindow.h4
-rw-r--r--src/qt3support/widgets/q3mainwindow_p.h4
-rw-r--r--src/qt3support/widgets/q3popupmenu.cpp4
-rw-r--r--src/qt3support/widgets/q3popupmenu.h4
-rw-r--r--src/qt3support/widgets/q3progressbar.cpp4
-rw-r--r--src/qt3support/widgets/q3progressbar.h4
-rw-r--r--src/qt3support/widgets/q3rangecontrol.cpp4
-rw-r--r--src/qt3support/widgets/q3rangecontrol.h4
-rw-r--r--src/qt3support/widgets/q3scrollview.cpp4
-rw-r--r--src/qt3support/widgets/q3scrollview.h4
-rw-r--r--src/qt3support/widgets/q3spinwidget.cpp4
-rw-r--r--src/qt3support/widgets/q3titlebar.cpp4
-rw-r--r--src/qt3support/widgets/q3titlebar_p.h4
-rw-r--r--src/qt3support/widgets/q3toolbar.cpp4
-rw-r--r--src/qt3support/widgets/q3toolbar.h4
-rw-r--r--src/qt3support/widgets/q3vbox.cpp4
-rw-r--r--src/qt3support/widgets/q3vbox.h4
-rw-r--r--src/qt3support/widgets/q3vgroupbox.cpp4
-rw-r--r--src/qt3support/widgets/q3vgroupbox.h4
-rw-r--r--src/qt3support/widgets/q3whatsthis.cpp4
-rw-r--r--src/qt3support/widgets/q3whatsthis.h4
-rw-r--r--src/qt3support/widgets/q3widgetstack.cpp4
-rw-r--r--src/qt3support/widgets/q3widgetstack.h4
-rw-r--r--src/script/qscript.g12
-rw-r--r--src/script/qscriptable.cpp4
-rw-r--r--src/script/qscriptable.h4
-rw-r--r--src/script/qscriptable_p.h4
-rw-r--r--src/script/qscriptarray_p.h4
-rw-r--r--src/script/qscriptasm.cpp4
-rw-r--r--src/script/qscriptasm_p.h4
-rw-r--r--src/script/qscriptast.cpp4
-rw-r--r--src/script/qscriptast_p.h4
-rw-r--r--src/script/qscriptastfwd_p.h4
-rw-r--r--src/script/qscriptastvisitor.cpp4
-rw-r--r--src/script/qscriptastvisitor_p.h4
-rw-r--r--src/script/qscriptbuffer_p.h4
-rw-r--r--src/script/qscriptclass.cpp4
-rw-r--r--src/script/qscriptclass.h4
-rw-r--r--src/script/qscriptclass_p.h4
-rw-r--r--src/script/qscriptclassdata.cpp4
-rw-r--r--src/script/qscriptclassdata_p.h4
-rw-r--r--src/script/qscriptclassinfo_p.h4
-rw-r--r--src/script/qscriptclasspropertyiterator.cpp4
-rw-r--r--src/script/qscriptclasspropertyiterator.h4
-rw-r--r--src/script/qscriptclasspropertyiterator_p.h4
-rw-r--r--src/script/qscriptcompiler.cpp4
-rw-r--r--src/script/qscriptcompiler_p.h4
-rw-r--r--src/script/qscriptcontext.cpp4
-rw-r--r--src/script/qscriptcontext.h4
-rw-r--r--src/script/qscriptcontext_p.cpp4
-rw-r--r--src/script/qscriptcontext_p.h4
-rw-r--r--src/script/qscriptcontextfwd_p.h4
-rw-r--r--src/script/qscriptcontextinfo.cpp4
-rw-r--r--src/script/qscriptcontextinfo.h4
-rw-r--r--src/script/qscriptcontextinfo_p.h4
-rw-r--r--src/script/qscriptecmaarray.cpp4
-rw-r--r--src/script/qscriptecmaarray_p.h4
-rw-r--r--src/script/qscriptecmaboolean.cpp4
-rw-r--r--src/script/qscriptecmaboolean_p.h4
-rw-r--r--src/script/qscriptecmacore.cpp4
-rw-r--r--src/script/qscriptecmacore_p.h4
-rw-r--r--src/script/qscriptecmadate.cpp4
-rw-r--r--src/script/qscriptecmadate_p.h4
-rw-r--r--src/script/qscriptecmaerror.cpp4
-rw-r--r--src/script/qscriptecmaerror_p.h4
-rw-r--r--src/script/qscriptecmafunction.cpp4
-rw-r--r--src/script/qscriptecmafunction_p.h4
-rw-r--r--src/script/qscriptecmaglobal.cpp4
-rw-r--r--src/script/qscriptecmaglobal_p.h4
-rw-r--r--src/script/qscriptecmamath.cpp4
-rw-r--r--src/script/qscriptecmamath_p.h4
-rw-r--r--src/script/qscriptecmanumber.cpp4
-rw-r--r--src/script/qscriptecmanumber_p.h4
-rw-r--r--src/script/qscriptecmaobject.cpp4
-rw-r--r--src/script/qscriptecmaobject_p.h4
-rw-r--r--src/script/qscriptecmaregexp.cpp4
-rw-r--r--src/script/qscriptecmaregexp_p.h4
-rw-r--r--src/script/qscriptecmastring.cpp4
-rw-r--r--src/script/qscriptecmastring_p.h4
-rw-r--r--src/script/qscriptengine.cpp4
-rw-r--r--src/script/qscriptengine.h4
-rw-r--r--src/script/qscriptengine_p.cpp4
-rw-r--r--src/script/qscriptengine_p.h4
-rw-r--r--src/script/qscriptengineagent.cpp4
-rw-r--r--src/script/qscriptengineagent.h4
-rw-r--r--src/script/qscriptengineagent_p.h4
-rw-r--r--src/script/qscriptenginefwd_p.h4
-rw-r--r--src/script/qscriptextensioninterface.h4
-rw-r--r--src/script/qscriptextensionplugin.cpp4
-rw-r--r--src/script/qscriptextensionplugin.h4
-rw-r--r--src/script/qscriptextenumeration.cpp4
-rw-r--r--src/script/qscriptextenumeration_p.h4
-rw-r--r--src/script/qscriptextqobject.cpp4
-rw-r--r--src/script/qscriptextqobject_p.h4
-rw-r--r--src/script/qscriptextvariant.cpp4
-rw-r--r--src/script/qscriptextvariant_p.h4
-rw-r--r--src/script/qscriptfunction.cpp4
-rw-r--r--src/script/qscriptfunction_p.h4
-rw-r--r--src/script/qscriptgc_p.h4
-rw-r--r--src/script/qscriptglobals_p.h4
-rw-r--r--src/script/qscriptgrammar.cpp4
-rw-r--r--src/script/qscriptgrammar_p.h4
-rw-r--r--src/script/qscriptlexer.cpp4
-rw-r--r--src/script/qscriptlexer_p.h4
-rw-r--r--src/script/qscriptmember_p.h4
-rw-r--r--src/script/qscriptmemberfwd_p.h4
-rw-r--r--src/script/qscriptmemorypool_p.h4
-rw-r--r--src/script/qscriptnameid_p.h4
-rw-r--r--src/script/qscriptnodepool_p.h4
-rw-r--r--src/script/qscriptobject_p.h4
-rw-r--r--src/script/qscriptobjectdata_p.h4
-rw-r--r--src/script/qscriptobjectfwd_p.h4
-rw-r--r--src/script/qscriptparser.cpp4
-rw-r--r--src/script/qscriptparser_p.h4
-rw-r--r--src/script/qscriptprettypretty.cpp4
-rw-r--r--src/script/qscriptprettypretty_p.h4
-rw-r--r--src/script/qscriptrepository_p.h4
-rw-r--r--src/script/qscriptstring.cpp4
-rw-r--r--src/script/qscriptstring.h4
-rw-r--r--src/script/qscriptstring_p.h4
-rw-r--r--src/script/qscriptsyntaxchecker.cpp4
-rw-r--r--src/script/qscriptsyntaxchecker_p.h4
-rw-r--r--src/script/qscriptsyntaxcheckresult_p.h4
-rw-r--r--src/script/qscriptvalue.cpp4
-rw-r--r--src/script/qscriptvalue.h4
-rw-r--r--src/script/qscriptvalue_p.h4
-rw-r--r--src/script/qscriptvaluefwd_p.h4
-rw-r--r--src/script/qscriptvalueimpl.cpp4
-rw-r--r--src/script/qscriptvalueimpl_p.h4
-rw-r--r--src/script/qscriptvalueimplfwd_p.h4
-rw-r--r--src/script/qscriptvalueiterator.cpp4
-rw-r--r--src/script/qscriptvalueiterator.h4
-rw-r--r--src/script/qscriptvalueiterator_p.h4
-rw-r--r--src/script/qscriptvalueiteratorimpl.cpp4
-rw-r--r--src/script/qscriptvalueiteratorimpl_p.h4
-rw-r--r--src/script/qscriptxmlgenerator.cpp4
-rw-r--r--src/script/qscriptxmlgenerator_p.h4
-rw-r--r--src/scripttools/debugging/debugging.pri6
-rw-r--r--src/scripttools/debugging/qscriptbreakpointdata.cpp4
-rw-r--r--src/scripttools/debugging/qscriptbreakpointdata_p.h4
-rw-r--r--src/scripttools/debugging/qscriptbreakpointsmodel.cpp4
-rw-r--r--src/scripttools/debugging/qscriptbreakpointsmodel_p.h4
-rw-r--r--src/scripttools/debugging/qscriptbreakpointswidget.cpp4
-rw-r--r--src/scripttools/debugging/qscriptbreakpointswidget_p.h4
-rw-r--r--src/scripttools/debugging/qscriptbreakpointswidgetinterface.cpp4
-rw-r--r--src/scripttools/debugging/qscriptbreakpointswidgetinterface_p.h4
-rw-r--r--src/scripttools/debugging/qscriptbreakpointswidgetinterface_p_p.h4
-rw-r--r--src/scripttools/debugging/qscriptcompletionproviderinterface_p.h4
-rw-r--r--src/scripttools/debugging/qscriptcompletiontask.cpp210
-rw-r--r--src/scripttools/debugging/qscriptcompletiontask_p.h13
-rw-r--r--src/scripttools/debugging/qscriptcompletiontaskinterface.cpp4
-rw-r--r--src/scripttools/debugging/qscriptcompletiontaskinterface_p.h4
-rw-r--r--src/scripttools/debugging/qscriptcompletiontaskinterface_p_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebugger.cpp259
-rw-r--r--src/scripttools/debugging/qscriptdebugger_p.h45
-rw-r--r--src/scripttools/debugging/qscriptdebuggeragent.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggeragent_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggeragent_p_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerbackend.cpp47
-rw-r--r--src/scripttools/debugging/qscriptdebuggerbackend_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerbackend_p_p.h10
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodefinderwidget.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodefinderwidget_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodefinderwidgetinterface.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodefinderwidgetinterface_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodefinderwidgetinterface_p_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodeview.cpp7
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodeview_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodeviewinterface.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodeviewinterface_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodeviewinterface_p_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodewidget.cpp17
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodewidget_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodewidgetinterface.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodewidgetinterface_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodewidgetinterface_p_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommand.cpp24
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommand_p.h9
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommandexecutor.cpp112
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommandexecutor_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommandschedulerfrontend.cpp15
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommandschedulerfrontend_p.h7
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommandschedulerinterface_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommandschedulerjob.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommandschedulerjob_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommandschedulerjob_p_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsole.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsole_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommand.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommand_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommand_p_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommandgroupdata.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommandgroupdata_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommandjob.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommandjob_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommandjob_p_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommandmanager.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommandmanager_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsoleglobalobject.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsoleglobalobject_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolehistorianinterface_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolewidget.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolewidget_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolewidgetinterface.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolewidgetinterface_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolewidgetinterface_p_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerevent.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerevent_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggereventhandlerinterface_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerfrontend.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerfrontend_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerfrontend_p_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerjob.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerjob_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerjob_p_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerjobschedulerinterface_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp20
-rw-r--r--src/scripttools/debugging/qscriptdebuggerlocalsmodel_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerlocalswidget.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerlocalswidget_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerlocalswidgetinterface.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerlocalswidgetinterface_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerlocalswidgetinterface_p_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerobjectsnapshotdelta_p.h9
-rw-r--r--src/scripttools/debugging/qscriptdebuggerresponse.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerresponse_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerresponsehandlerinterface_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptsmodel.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptsmodel_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptswidget.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptswidget_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptswidgetinterface.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptswidgetinterface_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptswidgetinterface_p_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerstackmodel.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerstackmodel_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerstackwidget.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerstackwidget_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerstackwidgetinterface.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerstackwidgetinterface_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerstackwidgetinterface_p_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerstandardwidgetfactory.cpp109
-rw-r--r--src/scripttools/debugging/qscriptdebuggerstandardwidgetfactory_p.h85
-rw-r--r--src/scripttools/debugging/qscriptdebuggervalue.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebuggervalue_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggervalueproperty.cpp21
-rw-r--r--src/scripttools/debugging/qscriptdebuggervalueproperty_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebuggerwidgetfactoryinterface_p.h14
-rw-r--r--src/scripttools/debugging/qscriptdebugoutputwidget.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebugoutputwidget_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebugoutputwidgetinterface.cpp4
-rw-r--r--src/scripttools/debugging/qscriptdebugoutputwidgetinterface_p.h4
-rw-r--r--src/scripttools/debugging/qscriptdebugoutputwidgetinterface_p_p.h4
-rw-r--r--src/scripttools/debugging/qscriptedit.cpp4
-rw-r--r--src/scripttools/debugging/qscriptedit_p.h4
-rw-r--r--src/scripttools/debugging/qscriptenginedebugger.cpp220
-rw-r--r--src/scripttools/debugging/qscriptenginedebugger.h11
-rw-r--r--src/scripttools/debugging/qscriptenginedebuggerfrontend.cpp4
-rw-r--r--src/scripttools/debugging/qscriptenginedebuggerfrontend_p.h4
-rw-r--r--src/scripttools/debugging/qscripterrorlogwidget.cpp4
-rw-r--r--src/scripttools/debugging/qscripterrorlogwidget_p.h4
-rw-r--r--src/scripttools/debugging/qscripterrorlogwidgetinterface.cpp4
-rw-r--r--src/scripttools/debugging/qscripterrorlogwidgetinterface_p.h4
-rw-r--r--src/scripttools/debugging/qscripterrorlogwidgetinterface_p_p.h4
-rw-r--r--src/scripttools/debugging/qscriptmessagehandlerinterface_p.h4
-rw-r--r--src/scripttools/debugging/qscriptobjectsnapshot.cpp4
-rw-r--r--src/scripttools/debugging/qscriptobjectsnapshot_p.h4
-rw-r--r--src/scripttools/debugging/qscriptscriptdata.cpp4
-rw-r--r--src/scripttools/debugging/qscriptscriptdata_p.h4
-rw-r--r--src/scripttools/debugging/qscriptstdmessagehandler.cpp4
-rw-r--r--src/scripttools/debugging/qscriptstdmessagehandler_p.h4
-rw-r--r--src/scripttools/debugging/qscriptsyntaxhighlighter.cpp4
-rw-r--r--src/scripttools/debugging/qscriptsyntaxhighlighter_p.h4
-rw-r--r--src/scripttools/debugging/qscripttooltipproviderinterface_p.h9
-rw-r--r--src/scripttools/debugging/qscriptvalueproperty.cpp4
-rw-r--r--src/scripttools/debugging/qscriptvalueproperty_p.h4
-rw-r--r--src/scripttools/debugging/qscriptxmlparser.cpp4
-rw-r--r--src/scripttools/debugging/qscriptxmlparser_p.h4
-rw-r--r--src/sql/drivers/db2/qsql_db2.cpp81
-rw-r--r--src/sql/drivers/db2/qsql_db2.h4
-rw-r--r--src/sql/drivers/ibase/qsql_ibase.cpp20
-rw-r--r--src/sql/drivers/ibase/qsql_ibase.h4
-rw-r--r--src/sql/drivers/mysql/qsql_mysql.cpp34
-rw-r--r--src/sql/drivers/mysql/qsql_mysql.h5
-rw-r--r--src/sql/drivers/oci/qsql_oci.cpp284
-rw-r--r--src/sql/drivers/oci/qsql_oci.h4
-rw-r--r--src/sql/drivers/odbc/qsql_odbc.cpp67
-rw-r--r--src/sql/drivers/odbc/qsql_odbc.h4
-rw-r--r--src/sql/drivers/psql/qsql_psql.cpp57
-rw-r--r--src/sql/drivers/psql/qsql_psql.h4
-rw-r--r--src/sql/drivers/sqlite/qsql_sqlite.cpp31
-rw-r--r--src/sql/drivers/sqlite/qsql_sqlite.h4
-rw-r--r--src/sql/drivers/sqlite2/qsql_sqlite2.cpp11
-rw-r--r--src/sql/drivers/sqlite2/qsql_sqlite2.h4
-rw-r--r--src/sql/drivers/tds/qsql_tds.cpp25
-rw-r--r--src/sql/drivers/tds/qsql_tds.h4
-rw-r--r--src/sql/kernel/qsql.h4
-rw-r--r--src/sql/kernel/qsqlcachedresult.cpp4
-rw-r--r--src/sql/kernel/qsqlcachedresult_p.h4
-rw-r--r--src/sql/kernel/qsqldatabase.cpp58
-rw-r--r--src/sql/kernel/qsqldatabase.h6
-rw-r--r--src/sql/kernel/qsqldriver.cpp31
-rw-r--r--src/sql/kernel/qsqldriver.h7
-rw-r--r--src/sql/kernel/qsqldriverplugin.cpp4
-rw-r--r--src/sql/kernel/qsqldriverplugin.h4
-rw-r--r--src/sql/kernel/qsqlerror.cpp4
-rw-r--r--src/sql/kernel/qsqlerror.h4
-rw-r--r--src/sql/kernel/qsqlfield.cpp4
-rw-r--r--src/sql/kernel/qsqlfield.h4
-rw-r--r--src/sql/kernel/qsqlindex.cpp4
-rw-r--r--src/sql/kernel/qsqlindex.h4
-rw-r--r--src/sql/kernel/qsqlnulldriver_p.h4
-rw-r--r--src/sql/kernel/qsqlquery.cpp27
-rw-r--r--src/sql/kernel/qsqlquery.h4
-rw-r--r--src/sql/kernel/qsqlrecord.cpp4
-rw-r--r--src/sql/kernel/qsqlrecord.h4
-rw-r--r--src/sql/kernel/qsqlresult.cpp21
-rw-r--r--src/sql/kernel/qsqlresult.h5
-rw-r--r--src/sql/models/qsqlquerymodel.cpp4
-rw-r--r--src/sql/models/qsqlquerymodel.h4
-rw-r--r--src/sql/models/qsqlquerymodel_p.h4
-rw-r--r--src/sql/models/qsqlrelationaldelegate.cpp4
-rw-r--r--src/sql/models/qsqlrelationaldelegate.h4
-rw-r--r--src/sql/models/qsqlrelationaltablemodel.cpp4
-rw-r--r--src/sql/models/qsqlrelationaltablemodel.h4
-rw-r--r--src/sql/models/qsqltablemodel.cpp24
-rw-r--r--src/sql/models/qsqltablemodel.h4
-rw-r--r--src/sql/models/qsqltablemodel_p.h4
-rw-r--r--src/svg/qgraphicssvgitem.cpp4
-rw-r--r--src/svg/qgraphicssvgitem.h4
-rw-r--r--src/svg/qsvgfont.cpp4
-rw-r--r--src/svg/qsvgfont_p.h4
-rw-r--r--src/svg/qsvggenerator.cpp4
-rw-r--r--src/svg/qsvggenerator.h4
-rw-r--r--src/svg/qsvggraphics.cpp4
-rw-r--r--src/svg/qsvggraphics_p.h4
-rw-r--r--src/svg/qsvghandler.cpp5
-rw-r--r--src/svg/qsvghandler_p.h4
-rw-r--r--src/svg/qsvgnode.cpp4
-rw-r--r--src/svg/qsvgnode_p.h4
-rw-r--r--src/svg/qsvgrenderer.cpp4
-rw-r--r--src/svg/qsvgrenderer.h4
-rw-r--r--src/svg/qsvgstructure.cpp4
-rw-r--r--src/svg/qsvgstructure_p.h4
-rw-r--r--src/svg/qsvgstyle.cpp4
-rw-r--r--src/svg/qsvgstyle_p.h4
-rw-r--r--src/svg/qsvgtinydocument.cpp4
-rw-r--r--src/svg/qsvgtinydocument_p.h4
-rw-r--r--src/svg/qsvgwidget.cpp4
-rw-r--r--src/svg/qsvgwidget.h4
-rw-r--r--src/testlib/qabstracttestlogger.cpp4
-rw-r--r--src/testlib/qabstracttestlogger_p.h4
-rw-r--r--src/testlib/qasciikey.cpp4
-rw-r--r--src/testlib/qbenchmark.cpp4
-rw-r--r--src/testlib/qbenchmark.h4
-rw-r--r--src/testlib/qbenchmark_p.h4
-rw-r--r--src/testlib/qbenchmarkevent.cpp4
-rw-r--r--src/testlib/qbenchmarkevent_p.h4
-rw-r--r--src/testlib/qbenchmarkmeasurement.cpp4
-rw-r--r--src/testlib/qbenchmarkmeasurement_p.h4
-rw-r--r--src/testlib/qbenchmarkvalgrind.cpp4
-rw-r--r--src/testlib/qbenchmarkvalgrind_p.h4
-rw-r--r--src/testlib/qplaintestlogger.cpp4
-rw-r--r--src/testlib/qplaintestlogger_p.h4
-rw-r--r--src/testlib/qsignaldumper.cpp4
-rw-r--r--src/testlib/qsignaldumper_p.h4
-rw-r--r--src/testlib/qsignalspy.h4
-rw-r--r--src/testlib/qtest.h4
-rw-r--r--src/testlib/qtest_global.h4
-rw-r--r--src/testlib/qtest_gui.h4
-rw-r--r--src/testlib/qtestaccessible.h4
-rw-r--r--src/testlib/qtestassert.h4
-rw-r--r--src/testlib/qtestbasicstreamer.cpp4
-rw-r--r--src/testlib/qtestbasicstreamer.h4
-rw-r--r--src/testlib/qtestcase.cpp4
-rw-r--r--src/testlib/qtestcase.h4
-rw-r--r--src/testlib/qtestcoreelement.h4
-rw-r--r--src/testlib/qtestcorelist.h4
-rw-r--r--src/testlib/qtestdata.cpp4
-rw-r--r--src/testlib/qtestdata.h4
-rw-r--r--src/testlib/qtestelement.cpp4
-rw-r--r--src/testlib/qtestelement.h4
-rw-r--r--src/testlib/qtestelementattribute.cpp64
-rw-r--r--src/testlib/qtestelementattribute.h4
-rw-r--r--src/testlib/qtestevent.h4
-rw-r--r--src/testlib/qtesteventloop.h4
-rw-r--r--src/testlib/qtestfilelogger.cpp4
-rw-r--r--src/testlib/qtestfilelogger.h4
-rw-r--r--src/testlib/qtestkeyboard.h4
-rw-r--r--src/testlib/qtestlightxmlstreamer.cpp4
-rw-r--r--src/testlib/qtestlightxmlstreamer.h4
-rw-r--r--src/testlib/qtestlog.cpp4
-rw-r--r--src/testlib/qtestlog_p.h4
-rw-r--r--src/testlib/qtestlogger.cpp4
-rw-r--r--src/testlib/qtestlogger_p.h4
-rw-r--r--src/testlib/qtestmouse.h4
-rw-r--r--src/testlib/qtestresult.cpp4
-rw-r--r--src/testlib/qtestresult_p.h4
-rw-r--r--src/testlib/qtestspontaneevent.h4
-rw-r--r--src/testlib/qtestsystem.h4
-rw-r--r--src/testlib/qtesttable.cpp4
-rw-r--r--src/testlib/qtesttable_p.h4
-rw-r--r--src/testlib/qtestxmlstreamer.cpp4
-rw-r--r--src/testlib/qtestxmlstreamer.h4
-rw-r--r--src/testlib/qtestxunitstreamer.cpp4
-rw-r--r--src/testlib/qtestxunitstreamer.h4
-rw-r--r--src/testlib/qxmltestlogger.cpp4
-rw-r--r--src/testlib/qxmltestlogger_p.h4
-rw-r--r--src/tools/idc/main.cpp7
-rw-r--r--src/tools/moc/generator.cpp4
-rw-r--r--src/tools/moc/generator.h4
-rw-r--r--src/tools/moc/keywords.cpp4
-rw-r--r--src/tools/moc/main.cpp4
-rw-r--r--src/tools/moc/moc.cpp12
-rw-r--r--src/tools/moc/moc.h7
-rw-r--r--src/tools/moc/mwerks_mac.cpp4
-rw-r--r--src/tools/moc/mwerks_mac.h4
-rw-r--r--src/tools/moc/outputrevision.h4
-rw-r--r--src/tools/moc/parser.cpp4
-rw-r--r--src/tools/moc/parser.h4
-rw-r--r--src/tools/moc/ppkeywords.cpp4
-rw-r--r--src/tools/moc/preprocessor.cpp4
-rw-r--r--src/tools/moc/preprocessor.h4
-rw-r--r--src/tools/moc/symbols.h4
-rw-r--r--src/tools/moc/token.cpp4
-rw-r--r--src/tools/moc/token.h4
-rw-r--r--src/tools/moc/util/generate_keywords.cpp4
-rw-r--r--src/tools/moc/util/licenseheader.txt4
-rw-r--r--src/tools/moc/utils.h4
-rw-r--r--src/tools/rcc/main.cpp4
-rw-r--r--src/tools/rcc/rcc.cpp4
-rw-r--r--src/tools/rcc/rcc.h4
-rw-r--r--src/tools/uic/cpp/cppextractimages.cpp4
-rw-r--r--src/tools/uic/cpp/cppextractimages.h4
-rw-r--r--src/tools/uic/cpp/cppwritedeclaration.cpp4
-rw-r--r--src/tools/uic/cpp/cppwritedeclaration.h4
-rw-r--r--src/tools/uic/cpp/cppwriteicondata.cpp4
-rw-r--r--src/tools/uic/cpp/cppwriteicondata.h4
-rw-r--r--src/tools/uic/cpp/cppwriteicondeclaration.cpp4
-rw-r--r--src/tools/uic/cpp/cppwriteicondeclaration.h4
-rw-r--r--src/tools/uic/cpp/cppwriteiconinitialization.cpp4
-rw-r--r--src/tools/uic/cpp/cppwriteiconinitialization.h4
-rw-r--r--src/tools/uic/cpp/cppwriteincludes.cpp4
-rw-r--r--src/tools/uic/cpp/cppwriteincludes.h4
-rw-r--r--src/tools/uic/cpp/cppwriteinitialization.cpp26
-rw-r--r--src/tools/uic/cpp/cppwriteinitialization.h4
-rw-r--r--src/tools/uic/customwidgetsinfo.cpp4
-rw-r--r--src/tools/uic/customwidgetsinfo.h4
-rw-r--r--src/tools/uic/databaseinfo.cpp4
-rw-r--r--src/tools/uic/databaseinfo.h4
-rw-r--r--src/tools/uic/driver.cpp4
-rw-r--r--src/tools/uic/driver.h4
-rw-r--r--src/tools/uic/globaldefs.h4
-rw-r--r--src/tools/uic/main.cpp4
-rw-r--r--src/tools/uic/option.h4
-rw-r--r--src/tools/uic/treewalker.cpp4
-rw-r--r--src/tools/uic/treewalker.h4
-rw-r--r--src/tools/uic/ui4.cpp4
-rw-r--r--src/tools/uic/ui4.h4
-rw-r--r--src/tools/uic/uic.cpp4
-rw-r--r--src/tools/uic/uic.h4
-rw-r--r--src/tools/uic/utils.h4
-rw-r--r--src/tools/uic/validator.cpp4
-rw-r--r--src/tools/uic/validator.h4
-rw-r--r--src/tools/uic3/converter.cpp21
-rw-r--r--src/tools/uic3/deps.cpp4
-rw-r--r--src/tools/uic3/domtool.cpp4
-rw-r--r--src/tools/uic3/domtool.h4
-rw-r--r--src/tools/uic3/embed.cpp4
-rw-r--r--src/tools/uic3/form.cpp4
-rw-r--r--src/tools/uic3/main.cpp4
-rw-r--r--src/tools/uic3/object.cpp4
-rw-r--r--src/tools/uic3/parser.cpp4
-rw-r--r--src/tools/uic3/parser.h4
-rw-r--r--src/tools/uic3/qt3to4.cpp4
-rw-r--r--src/tools/uic3/qt3to4.h4
-rw-r--r--src/tools/uic3/subclassing.cpp4
-rw-r--r--src/tools/uic3/ui3reader.cpp4
-rw-r--r--src/tools/uic3/ui3reader.h4
-rw-r--r--src/tools/uic3/uic.cpp4
-rw-r--r--src/tools/uic3/uic.h4
-rw-r--r--src/tools/uic3/widgetinfo.cpp4
-rw-r--r--src/tools/uic3/widgetinfo.h4
-rw-r--r--src/winmain/qtmain_win.cpp2
-rw-r--r--src/xml/dom/qdom.cpp4
-rw-r--r--src/xml/dom/qdom.h4
-rw-r--r--src/xml/sax/qxml.cpp4
-rw-r--r--src/xml/sax/qxml.h4
-rw-r--r--src/xml/stream/qxmlstream.h4
-rw-r--r--src/xmlpatterns/Mainpage.dox4
-rw-r--r--src/xmlpatterns/acceltree/qacceliterators.cpp4
-rw-r--r--src/xmlpatterns/acceltree/qacceliterators_p.h4
-rw-r--r--src/xmlpatterns/acceltree/qacceltree.cpp4
-rw-r--r--src/xmlpatterns/acceltree/qacceltree_p.h4
-rw-r--r--src/xmlpatterns/acceltree/qacceltreebuilder.cpp4
-rw-r--r--src/xmlpatterns/acceltree/qacceltreebuilder_p.h4
-rw-r--r--src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp4
-rw-r--r--src/xmlpatterns/acceltree/qacceltreeresourceloader_p.h4
-rw-r--r--src/xmlpatterns/acceltree/qcompressedwhitespace.cpp4
-rw-r--r--src/xmlpatterns/acceltree/qcompressedwhitespace_p.h4
-rw-r--r--src/xmlpatterns/api/qabstractmessagehandler.cpp4
-rw-r--r--src/xmlpatterns/api/qabstractmessagehandler.h4
-rw-r--r--src/xmlpatterns/api/qabstracturiresolver.cpp4
-rw-r--r--src/xmlpatterns/api/qabstracturiresolver.h4
-rw-r--r--src/xmlpatterns/api/qabstractxmlforwarditerator.cpp4
-rw-r--r--src/xmlpatterns/api/qabstractxmlforwarditerator_p.h4
-rw-r--r--src/xmlpatterns/api/qabstractxmlnodemodel.cpp4
-rw-r--r--src/xmlpatterns/api/qabstractxmlnodemodel.h4
-rw-r--r--src/xmlpatterns/api/qabstractxmlnodemodel_p.h4
-rw-r--r--src/xmlpatterns/api/qabstractxmlreceiver.cpp4
-rw-r--r--src/xmlpatterns/api/qabstractxmlreceiver.h4
-rw-r--r--src/xmlpatterns/api/qabstractxmlreceiver_p.h4
-rw-r--r--src/xmlpatterns/api/qdeviceresourceloader_p.h4
-rw-r--r--src/xmlpatterns/api/qiodevicedelegate.cpp4
-rw-r--r--src/xmlpatterns/api/qiodevicedelegate_p.h4
-rw-r--r--src/xmlpatterns/api/qnetworkaccessdelegator.cpp4
-rw-r--r--src/xmlpatterns/api/qnetworkaccessdelegator_p.h4
-rw-r--r--src/xmlpatterns/api/qreferencecountedvalue_p.h4
-rw-r--r--src/xmlpatterns/api/qresourcedelegator.cpp4
-rw-r--r--src/xmlpatterns/api/qresourcedelegator_p.h4
-rw-r--r--src/xmlpatterns/api/qsimplexmlnodemodel.cpp4
-rw-r--r--src/xmlpatterns/api/qsimplexmlnodemodel.h4
-rw-r--r--src/xmlpatterns/api/qsourcelocation.cpp4
-rw-r--r--src/xmlpatterns/api/qsourcelocation.h4
-rw-r--r--src/xmlpatterns/api/quriloader.cpp4
-rw-r--r--src/xmlpatterns/api/quriloader_p.h4
-rw-r--r--src/xmlpatterns/api/qvariableloader.cpp4
-rw-r--r--src/xmlpatterns/api/qvariableloader_p.h4
-rw-r--r--src/xmlpatterns/api/qxmlformatter.cpp4
-rw-r--r--src/xmlpatterns/api/qxmlformatter.h4
-rw-r--r--src/xmlpatterns/api/qxmlname.cpp4
-rw-r--r--src/xmlpatterns/api/qxmlname.h4
-rw-r--r--src/xmlpatterns/api/qxmlnamepool.cpp4
-rw-r--r--src/xmlpatterns/api/qxmlnamepool.h4
-rw-r--r--src/xmlpatterns/api/qxmlquery.cpp4
-rw-r--r--src/xmlpatterns/api/qxmlquery.h4
-rw-r--r--src/xmlpatterns/api/qxmlquery_p.h4
-rw-r--r--src/xmlpatterns/api/qxmlresultitems.cpp4
-rw-r--r--src/xmlpatterns/api/qxmlresultitems.h4
-rw-r--r--src/xmlpatterns/api/qxmlresultitems_p.h4
-rw-r--r--src/xmlpatterns/api/qxmlserializer.cpp4
-rw-r--r--src/xmlpatterns/api/qxmlserializer.h4
-rw-r--r--src/xmlpatterns/api/qxmlserializer_p.h4
-rw-r--r--src/xmlpatterns/data/qabstractdatetime.cpp4
-rw-r--r--src/xmlpatterns/data/qabstractdatetime_p.h4
-rw-r--r--src/xmlpatterns/data/qabstractduration.cpp4
-rw-r--r--src/xmlpatterns/data/qabstractduration_p.h4
-rw-r--r--src/xmlpatterns/data/qabstractfloat.cpp4
-rw-r--r--src/xmlpatterns/data/qabstractfloat_p.h4
-rw-r--r--src/xmlpatterns/data/qabstractfloatcasters.cpp4
-rw-r--r--src/xmlpatterns/data/qabstractfloatcasters_p.h4
-rw-r--r--src/xmlpatterns/data/qabstractfloatmathematician.cpp4
-rw-r--r--src/xmlpatterns/data/qabstractfloatmathematician_p.h4
-rw-r--r--src/xmlpatterns/data/qanyuri.cpp4
-rw-r--r--src/xmlpatterns/data/qanyuri_p.h4
-rw-r--r--src/xmlpatterns/data/qatomiccaster.cpp4
-rw-r--r--src/xmlpatterns/data/qatomiccaster_p.h4
-rw-r--r--src/xmlpatterns/data/qatomiccasters.cpp4
-rw-r--r--src/xmlpatterns/data/qatomiccasters_p.h4
-rw-r--r--src/xmlpatterns/data/qatomiccomparator.cpp4
-rw-r--r--src/xmlpatterns/data/qatomiccomparator_p.h4
-rw-r--r--src/xmlpatterns/data/qatomiccomparators.cpp4
-rw-r--r--src/xmlpatterns/data/qatomiccomparators_p.h4
-rw-r--r--src/xmlpatterns/data/qatomicmathematician.cpp4
-rw-r--r--src/xmlpatterns/data/qatomicmathematician_p.h4
-rw-r--r--src/xmlpatterns/data/qatomicmathematicians.cpp4
-rw-r--r--src/xmlpatterns/data/qatomicmathematicians_p.h4
-rw-r--r--src/xmlpatterns/data/qatomicstring.cpp4
-rw-r--r--src/xmlpatterns/data/qatomicstring_p.h4
-rw-r--r--src/xmlpatterns/data/qatomicvalue.cpp4
-rw-r--r--src/xmlpatterns/data/qbase64binary.cpp4
-rw-r--r--src/xmlpatterns/data/qbase64binary_p.h4
-rw-r--r--src/xmlpatterns/data/qboolean.cpp4
-rw-r--r--src/xmlpatterns/data/qboolean_p.h4
-rw-r--r--src/xmlpatterns/data/qcommonvalues.cpp4
-rw-r--r--src/xmlpatterns/data/qcommonvalues_p.h4
-rw-r--r--src/xmlpatterns/data/qdate.cpp4
-rw-r--r--src/xmlpatterns/data/qdate_p.h4
-rw-r--r--src/xmlpatterns/data/qdaytimeduration.cpp4
-rw-r--r--src/xmlpatterns/data/qdaytimeduration_p.h4
-rw-r--r--src/xmlpatterns/data/qdecimal.cpp4
-rw-r--r--src/xmlpatterns/data/qdecimal_p.h4
-rw-r--r--src/xmlpatterns/data/qderivedinteger_p.h4
-rw-r--r--src/xmlpatterns/data/qderivedstring_p.h4
-rw-r--r--src/xmlpatterns/data/qduration.cpp4
-rw-r--r--src/xmlpatterns/data/qduration_p.h4
-rw-r--r--src/xmlpatterns/data/qgday.cpp4
-rw-r--r--src/xmlpatterns/data/qgday_p.h4
-rw-r--r--src/xmlpatterns/data/qgmonth.cpp4
-rw-r--r--src/xmlpatterns/data/qgmonth_p.h4
-rw-r--r--src/xmlpatterns/data/qgmonthday.cpp4
-rw-r--r--src/xmlpatterns/data/qgmonthday_p.h4
-rw-r--r--src/xmlpatterns/data/qgyear.cpp4
-rw-r--r--src/xmlpatterns/data/qgyear_p.h4
-rw-r--r--src/xmlpatterns/data/qgyearmonth.cpp4
-rw-r--r--src/xmlpatterns/data/qgyearmonth_p.h4
-rw-r--r--src/xmlpatterns/data/qhexbinary.cpp4
-rw-r--r--src/xmlpatterns/data/qhexbinary_p.h4
-rw-r--r--src/xmlpatterns/data/qinteger.cpp4
-rw-r--r--src/xmlpatterns/data/qinteger_p.h4
-rw-r--r--src/xmlpatterns/data/qitem.cpp4
-rw-r--r--src/xmlpatterns/data/qitem_p.h4
-rw-r--r--src/xmlpatterns/data/qnodebuilder.cpp4
-rw-r--r--src/xmlpatterns/data/qnodebuilder_p.h4
-rw-r--r--src/xmlpatterns/data/qnodemodel.cpp4
-rw-r--r--src/xmlpatterns/data/qqnamevalue.cpp4
-rw-r--r--src/xmlpatterns/data/qqnamevalue_p.h4
-rw-r--r--src/xmlpatterns/data/qresourceloader.cpp4
-rw-r--r--src/xmlpatterns/data/qresourceloader_p.h4
-rw-r--r--src/xmlpatterns/data/qschemadatetime.cpp4
-rw-r--r--src/xmlpatterns/data/qschemadatetime_p.h4
-rw-r--r--src/xmlpatterns/data/qschemanumeric.cpp4
-rw-r--r--src/xmlpatterns/data/qschemanumeric_p.h4
-rw-r--r--src/xmlpatterns/data/qschematime.cpp4
-rw-r--r--src/xmlpatterns/data/qschematime_p.h4
-rw-r--r--src/xmlpatterns/data/qsequencereceiver.cpp4
-rw-r--r--src/xmlpatterns/data/qsequencereceiver_p.h4
-rw-r--r--src/xmlpatterns/data/qsorttuple.cpp4
-rw-r--r--src/xmlpatterns/data/qsorttuple_p.h4
-rw-r--r--src/xmlpatterns/data/quntypedatomic.cpp4
-rw-r--r--src/xmlpatterns/data/quntypedatomic_p.h4
-rw-r--r--src/xmlpatterns/data/qvalidationerror.cpp4
-rw-r--r--src/xmlpatterns/data/qvalidationerror_p.h4
-rw-r--r--src/xmlpatterns/data/qyearmonthduration.cpp4
-rw-r--r--src/xmlpatterns/data/qyearmonthduration_p.h4
-rw-r--r--src/xmlpatterns/documentationGroups.dox4
-rw-r--r--src/xmlpatterns/environment/createReportContext.xsl8
-rw-r--r--src/xmlpatterns/environment/qcurrentitemcontext.cpp4
-rw-r--r--src/xmlpatterns/environment/qcurrentitemcontext_p.h4
-rw-r--r--src/xmlpatterns/environment/qdelegatingdynamiccontext.cpp4
-rw-r--r--src/xmlpatterns/environment/qdelegatingdynamiccontext_p.h4
-rw-r--r--src/xmlpatterns/environment/qdelegatingstaticcontext.cpp4
-rw-r--r--src/xmlpatterns/environment/qdelegatingstaticcontext_p.h4
-rw-r--r--src/xmlpatterns/environment/qdynamiccontext.cpp4
-rw-r--r--src/xmlpatterns/environment/qdynamiccontext_p.h4
-rw-r--r--src/xmlpatterns/environment/qfocus.cpp4
-rw-r--r--src/xmlpatterns/environment/qfocus_p.h4
-rw-r--r--src/xmlpatterns/environment/qgenericdynamiccontext.cpp4
-rw-r--r--src/xmlpatterns/environment/qgenericdynamiccontext_p.h4
-rw-r--r--src/xmlpatterns/environment/qgenericstaticcontext.cpp4
-rw-r--r--src/xmlpatterns/environment/qgenericstaticcontext_p.h4
-rw-r--r--src/xmlpatterns/environment/qreceiverdynamiccontext.cpp4
-rw-r--r--src/xmlpatterns/environment/qreceiverdynamiccontext_p.h4
-rw-r--r--src/xmlpatterns/environment/qreportcontext.cpp4
-rw-r--r--src/xmlpatterns/environment/qreportcontext_p.h4
-rw-r--r--src/xmlpatterns/environment/qstackcontextbase.cpp4
-rw-r--r--src/xmlpatterns/environment/qstackcontextbase_p.h4
-rw-r--r--src/xmlpatterns/environment/qstaticbaseuricontext.cpp4
-rw-r--r--src/xmlpatterns/environment/qstaticbaseuricontext_p.h4
-rw-r--r--src/xmlpatterns/environment/qstaticcompatibilitycontext.cpp4
-rw-r--r--src/xmlpatterns/environment/qstaticcompatibilitycontext_p.h4
-rw-r--r--src/xmlpatterns/environment/qstaticcontext.cpp4
-rw-r--r--src/xmlpatterns/environment/qstaticcontext_p.h4
-rw-r--r--src/xmlpatterns/environment/qstaticcurrentcontext.cpp4
-rw-r--r--src/xmlpatterns/environment/qstaticcurrentcontext_p.h4
-rw-r--r--src/xmlpatterns/environment/qstaticfocuscontext.cpp4
-rw-r--r--src/xmlpatterns/environment/qstaticfocuscontext_p.h4
-rw-r--r--src/xmlpatterns/environment/qstaticnamespacecontext.cpp4
-rw-r--r--src/xmlpatterns/environment/qstaticnamespacecontext_p.h4
-rw-r--r--src/xmlpatterns/expr/qandexpression.cpp4
-rw-r--r--src/xmlpatterns/expr/qandexpression_p.h4
-rw-r--r--src/xmlpatterns/expr/qapplytemplate.cpp4
-rw-r--r--src/xmlpatterns/expr/qapplytemplate_p.h4
-rw-r--r--src/xmlpatterns/expr/qargumentreference.cpp4
-rw-r--r--src/xmlpatterns/expr/qargumentreference_p.h4
-rw-r--r--src/xmlpatterns/expr/qarithmeticexpression.cpp4
-rw-r--r--src/xmlpatterns/expr/qarithmeticexpression_p.h4
-rw-r--r--src/xmlpatterns/expr/qattributeconstructor.cpp4
-rw-r--r--src/xmlpatterns/expr/qattributeconstructor_p.h4
-rw-r--r--src/xmlpatterns/expr/qattributenamevalidator.cpp4
-rw-r--r--src/xmlpatterns/expr/qattributenamevalidator_p.h4
-rw-r--r--src/xmlpatterns/expr/qaxisstep.cpp4
-rw-r--r--src/xmlpatterns/expr/qaxisstep_p.h4
-rw-r--r--src/xmlpatterns/expr/qcachecells_p.h4
-rw-r--r--src/xmlpatterns/expr/qcallsite.cpp4
-rw-r--r--src/xmlpatterns/expr/qcallsite_p.h4
-rw-r--r--src/xmlpatterns/expr/qcalltargetdescription.cpp4
-rw-r--r--src/xmlpatterns/expr/qcalltargetdescription_p.h4
-rw-r--r--src/xmlpatterns/expr/qcalltemplate.cpp4
-rw-r--r--src/xmlpatterns/expr/qcalltemplate_p.h4
-rw-r--r--src/xmlpatterns/expr/qcastableas.cpp4
-rw-r--r--src/xmlpatterns/expr/qcastableas_p.h4
-rw-r--r--src/xmlpatterns/expr/qcastas.cpp4
-rw-r--r--src/xmlpatterns/expr/qcastas_p.h4
-rw-r--r--src/xmlpatterns/expr/qcastingplatform.cpp4
-rw-r--r--src/xmlpatterns/expr/qcastingplatform_p.h4
-rw-r--r--src/xmlpatterns/expr/qcollationchecker.cpp4
-rw-r--r--src/xmlpatterns/expr/qcollationchecker_p.h4
-rw-r--r--src/xmlpatterns/expr/qcombinenodes.cpp4
-rw-r--r--src/xmlpatterns/expr/qcombinenodes_p.h4
-rw-r--r--src/xmlpatterns/expr/qcommentconstructor.cpp4
-rw-r--r--src/xmlpatterns/expr/qcommentconstructor_p.h4
-rw-r--r--src/xmlpatterns/expr/qcomparisonplatform.cpp4
-rw-r--r--src/xmlpatterns/expr/qcomparisonplatform_p.h4
-rw-r--r--src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp4
-rw-r--r--src/xmlpatterns/expr/qcomputednamespaceconstructor_p.h4
-rw-r--r--src/xmlpatterns/expr/qcontextitem.cpp4
-rw-r--r--src/xmlpatterns/expr/qcontextitem_p.h4
-rw-r--r--src/xmlpatterns/expr/qcopyof.cpp4
-rw-r--r--src/xmlpatterns/expr/qcopyof_p.h4
-rw-r--r--src/xmlpatterns/expr/qcurrentitemstore.cpp4
-rw-r--r--src/xmlpatterns/expr/qcurrentitemstore_p.h4
-rw-r--r--src/xmlpatterns/expr/qdocumentconstructor.cpp4
-rw-r--r--src/xmlpatterns/expr/qdocumentconstructor_p.h4
-rw-r--r--src/xmlpatterns/expr/qdocumentcontentvalidator.cpp4
-rw-r--r--src/xmlpatterns/expr/qdocumentcontentvalidator_p.h4
-rw-r--r--src/xmlpatterns/expr/qdynamiccontextstore.cpp4
-rw-r--r--src/xmlpatterns/expr/qdynamiccontextstore_p.h4
-rw-r--r--src/xmlpatterns/expr/qelementconstructor.cpp4
-rw-r--r--src/xmlpatterns/expr/qelementconstructor_p.h4
-rw-r--r--src/xmlpatterns/expr/qemptycontainer.cpp4
-rw-r--r--src/xmlpatterns/expr/qemptycontainer_p.h4
-rw-r--r--src/xmlpatterns/expr/qemptysequence.cpp4
-rw-r--r--src/xmlpatterns/expr/qemptysequence_p.h4
-rw-r--r--src/xmlpatterns/expr/qevaluationcache.cpp4
-rw-r--r--src/xmlpatterns/expr/qevaluationcache_p.h4
-rw-r--r--src/xmlpatterns/expr/qexpression.cpp4
-rw-r--r--src/xmlpatterns/expr/qexpression_p.h4
-rw-r--r--src/xmlpatterns/expr/qexpressiondispatch_p.h4
-rw-r--r--src/xmlpatterns/expr/qexpressionfactory.cpp4
-rw-r--r--src/xmlpatterns/expr/qexpressionfactory_p.h4
-rw-r--r--src/xmlpatterns/expr/qexpressionsequence.cpp4
-rw-r--r--src/xmlpatterns/expr/qexpressionsequence_p.h4
-rw-r--r--src/xmlpatterns/expr/qexpressionvariablereference.cpp4
-rw-r--r--src/xmlpatterns/expr/qexpressionvariablereference_p.h4
-rw-r--r--src/xmlpatterns/expr/qexternalvariableloader.cpp4
-rw-r--r--src/xmlpatterns/expr/qexternalvariableloader_p.h4
-rw-r--r--src/xmlpatterns/expr/qexternalvariablereference.cpp4
-rw-r--r--src/xmlpatterns/expr/qexternalvariablereference_p.h4
-rw-r--r--src/xmlpatterns/expr/qfirstitempredicate.cpp4
-rw-r--r--src/xmlpatterns/expr/qfirstitempredicate_p.h4
-rw-r--r--src/xmlpatterns/expr/qforclause.cpp4
-rw-r--r--src/xmlpatterns/expr/qforclause_p.h4
-rw-r--r--src/xmlpatterns/expr/qgeneralcomparison.cpp4
-rw-r--r--src/xmlpatterns/expr/qgeneralcomparison_p.h4
-rw-r--r--src/xmlpatterns/expr/qgenericpredicate.cpp4
-rw-r--r--src/xmlpatterns/expr/qgenericpredicate_p.h4
-rw-r--r--src/xmlpatterns/expr/qifthenclause.cpp4
-rw-r--r--src/xmlpatterns/expr/qifthenclause_p.h4
-rw-r--r--src/xmlpatterns/expr/qinstanceof.cpp4
-rw-r--r--src/xmlpatterns/expr/qinstanceof_p.h4
-rw-r--r--src/xmlpatterns/expr/qletclause.cpp4
-rw-r--r--src/xmlpatterns/expr/qletclause_p.h4
-rw-r--r--src/xmlpatterns/expr/qliteral.cpp4
-rw-r--r--src/xmlpatterns/expr/qliteral_p.h4
-rw-r--r--src/xmlpatterns/expr/qliteralsequence.cpp4
-rw-r--r--src/xmlpatterns/expr/qliteralsequence_p.h4
-rw-r--r--src/xmlpatterns/expr/qnamespaceconstructor.cpp4
-rw-r--r--src/xmlpatterns/expr/qnamespaceconstructor_p.h4
-rw-r--r--src/xmlpatterns/expr/qncnameconstructor.cpp4
-rw-r--r--src/xmlpatterns/expr/qncnameconstructor_p.h4
-rw-r--r--src/xmlpatterns/expr/qnodecomparison.cpp4
-rw-r--r--src/xmlpatterns/expr/qnodecomparison_p.h4
-rw-r--r--src/xmlpatterns/expr/qnodesort.cpp4
-rw-r--r--src/xmlpatterns/expr/qnodesort_p.h4
-rw-r--r--src/xmlpatterns/expr/qoperandsiterator_p.h4
-rw-r--r--src/xmlpatterns/expr/qoptimizationpasses.cpp4
-rw-r--r--src/xmlpatterns/expr/qoptimizationpasses_p.h4
-rw-r--r--src/xmlpatterns/expr/qoptimizerblocks.cpp4
-rw-r--r--src/xmlpatterns/expr/qoptimizerblocks_p.h4
-rw-r--r--src/xmlpatterns/expr/qoptimizerframework.cpp4
-rw-r--r--src/xmlpatterns/expr/qoptimizerframework_p.h4
-rw-r--r--src/xmlpatterns/expr/qorderby.cpp4
-rw-r--r--src/xmlpatterns/expr/qorderby_p.h4
-rw-r--r--src/xmlpatterns/expr/qorexpression.cpp4
-rw-r--r--src/xmlpatterns/expr/qorexpression_p.h4
-rw-r--r--src/xmlpatterns/expr/qpaircontainer.cpp4
-rw-r--r--src/xmlpatterns/expr/qpaircontainer_p.h4
-rw-r--r--src/xmlpatterns/expr/qparentnodeaxis.cpp4
-rw-r--r--src/xmlpatterns/expr/qparentnodeaxis_p.h4
-rw-r--r--src/xmlpatterns/expr/qpath.cpp4
-rw-r--r--src/xmlpatterns/expr/qpath_p.h4
-rw-r--r--src/xmlpatterns/expr/qpositionalvariablereference.cpp4
-rw-r--r--src/xmlpatterns/expr/qpositionalvariablereference_p.h4
-rw-r--r--src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp4
-rw-r--r--src/xmlpatterns/expr/qprocessinginstructionconstructor_p.h4
-rw-r--r--src/xmlpatterns/expr/qqnameconstructor.cpp4
-rw-r--r--src/xmlpatterns/expr/qqnameconstructor_p.h4
-rw-r--r--src/xmlpatterns/expr/qquantifiedexpression.cpp4
-rw-r--r--src/xmlpatterns/expr/qquantifiedexpression_p.h4
-rw-r--r--src/xmlpatterns/expr/qrangeexpression.cpp4
-rw-r--r--src/xmlpatterns/expr/qrangeexpression_p.h4
-rw-r--r--src/xmlpatterns/expr/qrangevariablereference.cpp4
-rw-r--r--src/xmlpatterns/expr/qrangevariablereference_p.h4
-rw-r--r--src/xmlpatterns/expr/qreturnorderby.cpp4
-rw-r--r--src/xmlpatterns/expr/qreturnorderby_p.h4
-rw-r--r--src/xmlpatterns/expr/qsimplecontentconstructor.cpp4
-rw-r--r--src/xmlpatterns/expr/qsimplecontentconstructor_p.h4
-rw-r--r--src/xmlpatterns/expr/qsinglecontainer.cpp4
-rw-r--r--src/xmlpatterns/expr/qsinglecontainer_p.h4
-rw-r--r--src/xmlpatterns/expr/qsourcelocationreflection.cpp4
-rw-r--r--src/xmlpatterns/expr/qsourcelocationreflection_p.h4
-rw-r--r--src/xmlpatterns/expr/qstaticbaseuristore.cpp4
-rw-r--r--src/xmlpatterns/expr/qstaticbaseuristore_p.h4
-rw-r--r--src/xmlpatterns/expr/qstaticcompatibilitystore.cpp4
-rw-r--r--src/xmlpatterns/expr/qstaticcompatibilitystore_p.h4
-rw-r--r--src/xmlpatterns/expr/qtemplate.cpp4
-rw-r--r--src/xmlpatterns/expr/qtemplate_p.h4
-rw-r--r--src/xmlpatterns/expr/qtemplateinvoker.cpp4
-rw-r--r--src/xmlpatterns/expr/qtemplateinvoker_p.h4
-rw-r--r--src/xmlpatterns/expr/qtemplatemode.cpp4
-rw-r--r--src/xmlpatterns/expr/qtemplatemode_p.h4
-rw-r--r--src/xmlpatterns/expr/qtemplateparameterreference.cpp4
-rw-r--r--src/xmlpatterns/expr/qtemplateparameterreference_p.h4
-rw-r--r--src/xmlpatterns/expr/qtemplatepattern_p.h4
-rw-r--r--src/xmlpatterns/expr/qtextnodeconstructor.cpp4
-rw-r--r--src/xmlpatterns/expr/qtextnodeconstructor_p.h4
-rw-r--r--src/xmlpatterns/expr/qtreatas.cpp4
-rw-r--r--src/xmlpatterns/expr/qtreatas_p.h4
-rw-r--r--src/xmlpatterns/expr/qtriplecontainer.cpp4
-rw-r--r--src/xmlpatterns/expr/qtriplecontainer_p.h4
-rw-r--r--src/xmlpatterns/expr/qtruthpredicate.cpp4
-rw-r--r--src/xmlpatterns/expr/qtruthpredicate_p.h4
-rw-r--r--src/xmlpatterns/expr/qunaryexpression.cpp4
-rw-r--r--src/xmlpatterns/expr/qunaryexpression_p.h4
-rw-r--r--src/xmlpatterns/expr/qunlimitedcontainer.cpp4
-rw-r--r--src/xmlpatterns/expr/qunlimitedcontainer_p.h4
-rw-r--r--src/xmlpatterns/expr/qunresolvedvariablereference.cpp4
-rw-r--r--src/xmlpatterns/expr/qunresolvedvariablereference_p.h4
-rw-r--r--src/xmlpatterns/expr/quserfunction.cpp4
-rw-r--r--src/xmlpatterns/expr/quserfunction_p.h4
-rw-r--r--src/xmlpatterns/expr/quserfunctioncallsite.cpp4
-rw-r--r--src/xmlpatterns/expr/quserfunctioncallsite_p.h4
-rw-r--r--src/xmlpatterns/expr/qvalidate.cpp4
-rw-r--r--src/xmlpatterns/expr/qvalidate_p.h4
-rw-r--r--src/xmlpatterns/expr/qvaluecomparison.cpp4
-rw-r--r--src/xmlpatterns/expr/qvaluecomparison_p.h4
-rw-r--r--src/xmlpatterns/expr/qvariabledeclaration.cpp4
-rw-r--r--src/xmlpatterns/expr/qvariabledeclaration_p.h4
-rw-r--r--src/xmlpatterns/expr/qvariablereference.cpp4
-rw-r--r--src/xmlpatterns/expr/qvariablereference_p.h4
-rw-r--r--src/xmlpatterns/expr/qwithparam_p.h4
-rw-r--r--src/xmlpatterns/expr/qxsltsimplecontentconstructor.cpp4
-rw-r--r--src/xmlpatterns/expr/qxsltsimplecontentconstructor_p.h4
-rw-r--r--src/xmlpatterns/functions/qabstractfunctionfactory.cpp4
-rw-r--r--src/xmlpatterns/functions/qabstractfunctionfactory_p.h4
-rw-r--r--src/xmlpatterns/functions/qaccessorfns.cpp4
-rw-r--r--src/xmlpatterns/functions/qaccessorfns_p.h4
-rw-r--r--src/xmlpatterns/functions/qaggregatefns.cpp4
-rw-r--r--src/xmlpatterns/functions/qaggregatefns_p.h4
-rw-r--r--src/xmlpatterns/functions/qaggregator.cpp4
-rw-r--r--src/xmlpatterns/functions/qaggregator_p.h4
-rw-r--r--src/xmlpatterns/functions/qassemblestringfns.cpp4
-rw-r--r--src/xmlpatterns/functions/qassemblestringfns_p.h4
-rw-r--r--src/xmlpatterns/functions/qbooleanfns.cpp4
-rw-r--r--src/xmlpatterns/functions/qbooleanfns_p.h4
-rw-r--r--src/xmlpatterns/functions/qcomparescaseaware.cpp4
-rw-r--r--src/xmlpatterns/functions/qcomparescaseaware_p.h4
-rw-r--r--src/xmlpatterns/functions/qcomparestringfns.cpp4
-rw-r--r--src/xmlpatterns/functions/qcomparestringfns_p.h4
-rw-r--r--src/xmlpatterns/functions/qcomparingaggregator.cpp4
-rw-r--r--src/xmlpatterns/functions/qcomparingaggregator_p.h4
-rw-r--r--src/xmlpatterns/functions/qconstructorfunctionsfactory.cpp4
-rw-r--r--src/xmlpatterns/functions/qconstructorfunctionsfactory_p.h4
-rw-r--r--src/xmlpatterns/functions/qcontextfns.cpp4
-rw-r--r--src/xmlpatterns/functions/qcontextfns_p.h4
-rw-r--r--src/xmlpatterns/functions/qcontextnodechecker.cpp4
-rw-r--r--src/xmlpatterns/functions/qcontextnodechecker_p.h4
-rw-r--r--src/xmlpatterns/functions/qcurrentfn.cpp4
-rw-r--r--src/xmlpatterns/functions/qcurrentfn_p.h4
-rw-r--r--src/xmlpatterns/functions/qdatetimefn.cpp4
-rw-r--r--src/xmlpatterns/functions/qdatetimefn_p.h4
-rw-r--r--src/xmlpatterns/functions/qdatetimefns.cpp4
-rw-r--r--src/xmlpatterns/functions/qdatetimefns_p.h4
-rw-r--r--src/xmlpatterns/functions/qdeepequalfn.cpp4
-rw-r--r--src/xmlpatterns/functions/qdeepequalfn_p.h4
-rw-r--r--src/xmlpatterns/functions/qdocumentfn.cpp4
-rw-r--r--src/xmlpatterns/functions/qdocumentfn_p.h4
-rw-r--r--src/xmlpatterns/functions/qelementavailablefn.cpp4
-rw-r--r--src/xmlpatterns/functions/qelementavailablefn_p.h4
-rw-r--r--src/xmlpatterns/functions/qerrorfn.cpp4
-rw-r--r--src/xmlpatterns/functions/qerrorfn_p.h4
-rw-r--r--src/xmlpatterns/functions/qfunctionargument.cpp4
-rw-r--r--src/xmlpatterns/functions/qfunctionargument_p.h4
-rw-r--r--src/xmlpatterns/functions/qfunctionavailablefn.cpp4
-rw-r--r--src/xmlpatterns/functions/qfunctionavailablefn_p.h4
-rw-r--r--src/xmlpatterns/functions/qfunctioncall.cpp4
-rw-r--r--src/xmlpatterns/functions/qfunctioncall_p.h4
-rw-r--r--src/xmlpatterns/functions/qfunctionfactory.cpp4
-rw-r--r--src/xmlpatterns/functions/qfunctionfactory_p.h4
-rw-r--r--src/xmlpatterns/functions/qfunctionfactorycollection.cpp4
-rw-r--r--src/xmlpatterns/functions/qfunctionfactorycollection_p.h4
-rw-r--r--src/xmlpatterns/functions/qfunctionsignature.cpp4
-rw-r--r--src/xmlpatterns/functions/qfunctionsignature_p.h4
-rw-r--r--src/xmlpatterns/functions/qgenerateidfn.cpp4
-rw-r--r--src/xmlpatterns/functions/qgenerateidfn_p.h4
-rw-r--r--src/xmlpatterns/functions/qnodefns.cpp4
-rw-r--r--src/xmlpatterns/functions/qnodefns_p.h4
-rw-r--r--src/xmlpatterns/functions/qnumericfns.cpp4
-rw-r--r--src/xmlpatterns/functions/qnumericfns_p.h4
-rw-r--r--src/xmlpatterns/functions/qpatternmatchingfns.cpp4
-rw-r--r--src/xmlpatterns/functions/qpatternmatchingfns_p.h4
-rw-r--r--src/xmlpatterns/functions/qpatternplatform.cpp4
-rw-r--r--src/xmlpatterns/functions/qpatternplatform_p.h4
-rw-r--r--src/xmlpatterns/functions/qqnamefns.cpp4
-rw-r--r--src/xmlpatterns/functions/qqnamefns_p.h4
-rw-r--r--src/xmlpatterns/functions/qresolveurifn.cpp4
-rw-r--r--src/xmlpatterns/functions/qresolveurifn_p.h4
-rw-r--r--src/xmlpatterns/functions/qsequencefns.cpp4
-rw-r--r--src/xmlpatterns/functions/qsequencefns_p.h4
-rw-r--r--src/xmlpatterns/functions/qsequencegeneratingfns.cpp4
-rw-r--r--src/xmlpatterns/functions/qsequencegeneratingfns_p.h4
-rw-r--r--src/xmlpatterns/functions/qstaticbaseuricontainer_p.h4
-rw-r--r--src/xmlpatterns/functions/qstaticnamespacescontainer.cpp4
-rw-r--r--src/xmlpatterns/functions/qstaticnamespacescontainer_p.h4
-rw-r--r--src/xmlpatterns/functions/qstringvaluefns.cpp4
-rw-r--r--src/xmlpatterns/functions/qstringvaluefns_p.h4
-rw-r--r--src/xmlpatterns/functions/qsubstringfns.cpp4
-rw-r--r--src/xmlpatterns/functions/qsubstringfns_p.h4
-rw-r--r--src/xmlpatterns/functions/qsystempropertyfn.cpp4
-rw-r--r--src/xmlpatterns/functions/qsystempropertyfn_p.h4
-rw-r--r--src/xmlpatterns/functions/qtimezonefns.cpp4
-rw-r--r--src/xmlpatterns/functions/qtimezonefns_p.h4
-rw-r--r--src/xmlpatterns/functions/qtracefn.cpp4
-rw-r--r--src/xmlpatterns/functions/qtracefn_p.h4
-rw-r--r--src/xmlpatterns/functions/qtypeavailablefn.cpp4
-rw-r--r--src/xmlpatterns/functions/qtypeavailablefn_p.h4
-rw-r--r--src/xmlpatterns/functions/qunparsedentitypublicidfn.cpp4
-rw-r--r--src/xmlpatterns/functions/qunparsedentitypublicidfn_p.h4
-rw-r--r--src/xmlpatterns/functions/qunparsedentityurifn.cpp4
-rw-r--r--src/xmlpatterns/functions/qunparsedentityurifn_p.h4
-rw-r--r--src/xmlpatterns/functions/qunparsedtextavailablefn.cpp4
-rw-r--r--src/xmlpatterns/functions/qunparsedtextavailablefn_p.h4
-rw-r--r--src/xmlpatterns/functions/qunparsedtextfn.cpp4
-rw-r--r--src/xmlpatterns/functions/qunparsedtextfn_p.h4
-rw-r--r--src/xmlpatterns/functions/qxpath10corefunctions.cpp4
-rw-r--r--src/xmlpatterns/functions/qxpath10corefunctions_p.h4
-rw-r--r--src/xmlpatterns/functions/qxpath20corefunctions.cpp4
-rw-r--r--src/xmlpatterns/functions/qxpath20corefunctions_p.h4
-rw-r--r--src/xmlpatterns/functions/qxslt20corefunctions.cpp4
-rw-r--r--src/xmlpatterns/functions/qxslt20corefunctions_p.h4
-rw-r--r--src/xmlpatterns/iterators/qcachingiterator.cpp4
-rw-r--r--src/xmlpatterns/iterators/qcachingiterator_p.h4
-rw-r--r--src/xmlpatterns/iterators/qdeduplicateiterator.cpp4
-rw-r--r--src/xmlpatterns/iterators/qdeduplicateiterator_p.h4
-rw-r--r--src/xmlpatterns/iterators/qdistinctiterator.cpp4
-rw-r--r--src/xmlpatterns/iterators/qdistinctiterator_p.h4
-rw-r--r--src/xmlpatterns/iterators/qemptyiterator_p.h4
-rw-r--r--src/xmlpatterns/iterators/qexceptiterator.cpp4
-rw-r--r--src/xmlpatterns/iterators/qexceptiterator_p.h4
-rw-r--r--src/xmlpatterns/iterators/qindexofiterator.cpp4
-rw-r--r--src/xmlpatterns/iterators/qindexofiterator_p.h4
-rw-r--r--src/xmlpatterns/iterators/qinsertioniterator.cpp4
-rw-r--r--src/xmlpatterns/iterators/qinsertioniterator_p.h4
-rw-r--r--src/xmlpatterns/iterators/qintersectiterator.cpp4
-rw-r--r--src/xmlpatterns/iterators/qintersectiterator_p.h4
-rw-r--r--src/xmlpatterns/iterators/qitemmappingiterator_p.h4
-rw-r--r--src/xmlpatterns/iterators/qrangeiterator.cpp4
-rw-r--r--src/xmlpatterns/iterators/qrangeiterator_p.h4
-rw-r--r--src/xmlpatterns/iterators/qremovaliterator.cpp4
-rw-r--r--src/xmlpatterns/iterators/qremovaliterator_p.h4
-rw-r--r--src/xmlpatterns/iterators/qsequencemappingiterator_p.h4
-rw-r--r--src/xmlpatterns/iterators/qsingletoniterator_p.h4
-rw-r--r--src/xmlpatterns/iterators/qsubsequenceiterator.cpp4
-rw-r--r--src/xmlpatterns/iterators/qsubsequenceiterator_p.h4
-rw-r--r--src/xmlpatterns/iterators/qtocodepointsiterator.cpp4
-rw-r--r--src/xmlpatterns/iterators/qtocodepointsiterator_p.h4
-rw-r--r--src/xmlpatterns/iterators/qunioniterator.cpp4
-rw-r--r--src/xmlpatterns/iterators/qunioniterator_p.h4
-rw-r--r--src/xmlpatterns/janitors/qargumentconverter.cpp4
-rw-r--r--src/xmlpatterns/janitors/qargumentconverter_p.h4
-rw-r--r--src/xmlpatterns/janitors/qatomizer.cpp4
-rw-r--r--src/xmlpatterns/janitors/qatomizer_p.h4
-rw-r--r--src/xmlpatterns/janitors/qcardinalityverifier.cpp4
-rw-r--r--src/xmlpatterns/janitors/qcardinalityverifier_p.h4
-rw-r--r--src/xmlpatterns/janitors/qebvextractor.cpp4
-rw-r--r--src/xmlpatterns/janitors/qebvextractor_p.h4
-rw-r--r--src/xmlpatterns/janitors/qitemverifier.cpp4
-rw-r--r--src/xmlpatterns/janitors/qitemverifier_p.h4
-rw-r--r--src/xmlpatterns/janitors/quntypedatomicconverter.cpp4
-rw-r--r--src/xmlpatterns/janitors/quntypedatomicconverter_p.h4
-rw-r--r--src/xmlpatterns/parser/TokenLookup.gperf4
-rw-r--r--src/xmlpatterns/parser/qmaintainingreader.cpp4
-rw-r--r--src/xmlpatterns/parser/qmaintainingreader_p.h4
-rw-r--r--src/xmlpatterns/parser/qparsercontext.cpp4
-rw-r--r--src/xmlpatterns/parser/qparsercontext_p.h4
-rw-r--r--src/xmlpatterns/parser/qquerytransformparser.cpp8
-rw-r--r--src/xmlpatterns/parser/qquerytransformparser_p.h4
-rw-r--r--src/xmlpatterns/parser/qtokenizer_p.h4
-rw-r--r--src/xmlpatterns/parser/qtokenrevealer.cpp4
-rw-r--r--src/xmlpatterns/parser/qtokenrevealer_p.h4
-rw-r--r--src/xmlpatterns/parser/qtokensource.cpp4
-rw-r--r--src/xmlpatterns/parser/qtokensource_p.h4
-rw-r--r--src/xmlpatterns/parser/querytransformparser.ypp8
-rw-r--r--src/xmlpatterns/parser/qxquerytokenizer.cpp4
-rw-r--r--src/xmlpatterns/parser/qxquerytokenizer_p.h4
-rw-r--r--src/xmlpatterns/parser/qxslttokenizer.cpp4
-rw-r--r--src/xmlpatterns/parser/qxslttokenizer_p.h4
-rw-r--r--src/xmlpatterns/parser/qxslttokenlookup.cpp4
-rw-r--r--src/xmlpatterns/parser/qxslttokenlookup.xml4
-rw-r--r--src/xmlpatterns/parser/qxslttokenlookup_p.h4
-rw-r--r--src/xmlpatterns/parser/trolltechHeader.txt4
-rw-r--r--src/xmlpatterns/projection/qdocumentprojector.cpp4
-rw-r--r--src/xmlpatterns/projection/qdocumentprojector_p.h4
-rw-r--r--src/xmlpatterns/projection/qprojectedexpression_p.h4
-rw-r--r--src/xmlpatterns/qtokenautomaton/exampleFile.xml4
-rw-r--r--src/xmlpatterns/type/qabstractnodetest.cpp4
-rw-r--r--src/xmlpatterns/type/qabstractnodetest_p.h4
-rw-r--r--src/xmlpatterns/type/qanyitemtype.cpp4
-rw-r--r--src/xmlpatterns/type/qanyitemtype_p.h4
-rw-r--r--src/xmlpatterns/type/qanynodetype.cpp4
-rw-r--r--src/xmlpatterns/type/qanynodetype_p.h4
-rw-r--r--src/xmlpatterns/type/qanysimpletype.cpp4
-rw-r--r--src/xmlpatterns/type/qanysimpletype_p.h4
-rw-r--r--src/xmlpatterns/type/qanytype.cpp4
-rw-r--r--src/xmlpatterns/type/qanytype_p.h4
-rw-r--r--src/xmlpatterns/type/qatomiccasterlocator.cpp4
-rw-r--r--src/xmlpatterns/type/qatomiccasterlocator_p.h4
-rw-r--r--src/xmlpatterns/type/qatomiccasterlocators.cpp4
-rw-r--r--src/xmlpatterns/type/qatomiccasterlocators_p.h4
-rw-r--r--src/xmlpatterns/type/qatomiccomparatorlocator.cpp4
-rw-r--r--src/xmlpatterns/type/qatomiccomparatorlocator_p.h4
-rw-r--r--src/xmlpatterns/type/qatomiccomparatorlocators.cpp4
-rw-r--r--src/xmlpatterns/type/qatomiccomparatorlocators_p.h4
-rw-r--r--src/xmlpatterns/type/qatomicmathematicianlocator.cpp4
-rw-r--r--src/xmlpatterns/type/qatomicmathematicianlocator_p.h4
-rw-r--r--src/xmlpatterns/type/qatomicmathematicianlocators.cpp4
-rw-r--r--src/xmlpatterns/type/qatomicmathematicianlocators_p.h4
-rw-r--r--src/xmlpatterns/type/qatomictype.cpp4
-rw-r--r--src/xmlpatterns/type/qatomictype_p.h4
-rw-r--r--src/xmlpatterns/type/qatomictypedispatch_p.h4
-rw-r--r--src/xmlpatterns/type/qbasictypesfactory.cpp4
-rw-r--r--src/xmlpatterns/type/qbasictypesfactory_p.h4
-rw-r--r--src/xmlpatterns/type/qbuiltinatomictype.cpp4
-rw-r--r--src/xmlpatterns/type/qbuiltinatomictype_p.h4
-rw-r--r--src/xmlpatterns/type/qbuiltinatomictypes.cpp4
-rw-r--r--src/xmlpatterns/type/qbuiltinatomictypes_p.h4
-rw-r--r--src/xmlpatterns/type/qbuiltinnodetype.cpp4
-rw-r--r--src/xmlpatterns/type/qbuiltinnodetype_p.h4
-rw-r--r--src/xmlpatterns/type/qbuiltintypes.cpp4
-rw-r--r--src/xmlpatterns/type/qbuiltintypes_p.h4
-rw-r--r--src/xmlpatterns/type/qcardinality.cpp4
-rw-r--r--src/xmlpatterns/type/qcardinality_p.h4
-rw-r--r--src/xmlpatterns/type/qcommonsequencetypes.cpp4
-rw-r--r--src/xmlpatterns/type/qcommonsequencetypes_p.h4
-rw-r--r--src/xmlpatterns/type/qebvtype.cpp4
-rw-r--r--src/xmlpatterns/type/qebvtype_p.h4
-rw-r--r--src/xmlpatterns/type/qemptysequencetype.cpp4
-rw-r--r--src/xmlpatterns/type/qemptysequencetype_p.h4
-rw-r--r--src/xmlpatterns/type/qgenericsequencetype.cpp4
-rw-r--r--src/xmlpatterns/type/qgenericsequencetype_p.h4
-rw-r--r--src/xmlpatterns/type/qitemtype.cpp4
-rw-r--r--src/xmlpatterns/type/qitemtype_p.h4
-rw-r--r--src/xmlpatterns/type/qlocalnametest.cpp4
-rw-r--r--src/xmlpatterns/type/qlocalnametest_p.h4
-rw-r--r--src/xmlpatterns/type/qmultiitemtype.cpp4
-rw-r--r--src/xmlpatterns/type/qmultiitemtype_p.h4
-rw-r--r--src/xmlpatterns/type/qnamespacenametest.cpp4
-rw-r--r--src/xmlpatterns/type/qnamespacenametest_p.h4
-rw-r--r--src/xmlpatterns/type/qnonetype.cpp4
-rw-r--r--src/xmlpatterns/type/qnonetype_p.h4
-rw-r--r--src/xmlpatterns/type/qnumerictype.cpp4
-rw-r--r--src/xmlpatterns/type/qnumerictype_p.h4
-rw-r--r--src/xmlpatterns/type/qprimitives_p.h4
-rw-r--r--src/xmlpatterns/type/qqnametest.cpp4
-rw-r--r--src/xmlpatterns/type/qqnametest_p.h4
-rw-r--r--src/xmlpatterns/type/qschemacomponent.cpp4
-rw-r--r--src/xmlpatterns/type/qschemacomponent_p.h4
-rw-r--r--src/xmlpatterns/type/qschematype.cpp4
-rw-r--r--src/xmlpatterns/type/qschematype_p.h4
-rw-r--r--src/xmlpatterns/type/qschematypefactory.cpp4
-rw-r--r--src/xmlpatterns/type/qschematypefactory_p.h4
-rw-r--r--src/xmlpatterns/type/qsequencetype.cpp4
-rw-r--r--src/xmlpatterns/type/qsequencetype_p.h4
-rw-r--r--src/xmlpatterns/type/qtypechecker.cpp4
-rw-r--r--src/xmlpatterns/type/qtypechecker_p.h4
-rw-r--r--src/xmlpatterns/type/quntyped.cpp4
-rw-r--r--src/xmlpatterns/type/quntyped_p.h4
-rw-r--r--src/xmlpatterns/type/qxsltnodetest.cpp4
-rw-r--r--src/xmlpatterns/type/qxsltnodetest_p.h4
-rw-r--r--src/xmlpatterns/utils/qautoptr.cpp4
-rw-r--r--src/xmlpatterns/utils/qautoptr_p.h4
-rw-r--r--src/xmlpatterns/utils/qcommonnamespaces_p.h4
-rw-r--r--src/xmlpatterns/utils/qcppcastinghelper_p.h4
-rw-r--r--src/xmlpatterns/utils/qdebug_p.h4
-rw-r--r--src/xmlpatterns/utils/qdelegatingnamespaceresolver.cpp4
-rw-r--r--src/xmlpatterns/utils/qdelegatingnamespaceresolver_p.h4
-rw-r--r--src/xmlpatterns/utils/qgenericnamespaceresolver.cpp4
-rw-r--r--src/xmlpatterns/utils/qgenericnamespaceresolver_p.h4
-rw-r--r--src/xmlpatterns/utils/qnamepool.cpp4
-rw-r--r--src/xmlpatterns/utils/qnamepool_p.h4
-rw-r--r--src/xmlpatterns/utils/qnamespacebinding_p.h4
-rw-r--r--src/xmlpatterns/utils/qnamespaceresolver.cpp4
-rw-r--r--src/xmlpatterns/utils/qnamespaceresolver_p.h4
-rw-r--r--src/xmlpatterns/utils/qnodenamespaceresolver.cpp4
-rw-r--r--src/xmlpatterns/utils/qnodenamespaceresolver_p.h4
-rw-r--r--src/xmlpatterns/utils/qoutputvalidator.cpp4
-rw-r--r--src/xmlpatterns/utils/qoutputvalidator_p.h4
-rw-r--r--src/xmlpatterns/utils/qpatternistlocale.cpp4
-rw-r--r--src/xmlpatterns/utils/qpatternistlocale_p.h4
-rw-r--r--src/xmlpatterns/utils/qxpathhelper.cpp4
-rw-r--r--src/xmlpatterns/utils/qxpathhelper_p.h4
5980 files changed, 249832 insertions, 102644 deletions
diff --git a/src/3rdparty/phonon/phonon/volumeslider.cpp b/src/3rdparty/phonon/phonon/volumeslider.cpp
index b59f689..1888cb6 100644
--- a/src/3rdparty/phonon/phonon/volumeslider.cpp
+++ b/src/3rdparty/phonon/phonon/volumeslider.cpp
@@ -85,7 +85,7 @@ VolumeSlider::~VolumeSlider()
bool VolumeSlider::isMuteVisible() const
{
- return k_ptr->muteButton.isVisible();
+ return !k_ptr->muteButton.isHidden();
}
void VolumeSlider::setMuteVisible(bool visible)
diff --git a/src/3rdparty/phonon/qt7/quicktimevideoplayer.mm b/src/3rdparty/phonon/qt7/quicktimevideoplayer.mm
index 9a3c811..23c76e3 100644
--- a/src/3rdparty/phonon/qt7/quicktimevideoplayer.mm
+++ b/src/3rdparty/phonon/qt7/quicktimevideoplayer.mm
@@ -1106,7 +1106,8 @@ NSString* QuickTimeVideoPlayer::pathToCompactDisc()
{
PhononAutoReleasePool pool;
NSArray *devices = [[NSWorkspace sharedWorkspace] mountedRemovableMedia];
- for (NSString *dev in devices) {
+ for (unsigned int i=0; i<[devices count]; ++i) {
+ NSString *dev = [devices objectAtIndex:i];
if (isCompactDisc(dev))
return [dev retain];
}
diff --git a/src/3rdparty/sha1/sha1.cpp b/src/3rdparty/sha1/sha1.cpp
index d270c60..03c2773 100644
--- a/src/3rdparty/sha1/sha1.cpp
+++ b/src/3rdparty/sha1/sha1.cpp
@@ -1,7 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Qt Software Information (qt-info@nokia.com)
+** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the Qt Toolkit.
**
@@ -34,7 +34,7 @@
** met: http://www.gnu.org/copyleft/gpl.html.
**
** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
+** contact the sales department at http://www.qtsoftware.com/contact.
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/src/3rdparty/webkit/ChangeLog b/src/3rdparty/webkit/ChangeLog
index 76cfc80..1946d56 100644
--- a/src/3rdparty/webkit/ChangeLog
+++ b/src/3rdparty/webkit/ChangeLog
@@ -1,3 +1,303 @@
+2009-05-29 Gustavo Noronha Silva <gns@gnome.org>
+
+ Reviewed by Jan Alonzo.
+
+ Add a test-case for our HTTP backend, currently checking the
+ ref-counting of the SoupMessage.
+
+ * GNUmakefile.am:
+
+2009-05-28 Dirk Schulze <krit@webkit.org>
+
+ Reviewed by Nikolas Zimmermann.
+
+ Enable the new build flag --filters for Gtk. More details in WebCore/ChangeLog.
+
+ * configure.ac:
+
+2009-05-19 Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Jan Alonzo and Gustavo Noronha.
+
+ https://bugs.webkit.org/show_bug.cgi?id=25415
+ [GTK][ATK] Please implement support for get_text_at_offset
+
+ Add new test file for ATK.
+
+ * GNUmakefile.am:
+
+2009-05-28 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
+
+ Rubber-stamped by Xan Lopez.
+
+ Fix webkitgtk_cleanfiles to clean gtk-doc-related files in the
+ correct directory, so that we pass make distcheck.
+
+ * GNUmakefile.am:
+
+2009-05-28 Xan Lopez <xlopez@igalia.com>
+
+ Bump version numbers in preparation for 1.1.8 release.
+
+ * configure.ac:
+
+2009-05-23 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Unreviewed build fix. Add gstreamer-video-0.10 libs to
+ GSTREAMER_LIBS to resolve an undefined reference to gst_video_get_size
+ - symbol used in MediaPlayerPrivateGstreamer.
+
+ * configure.ac:
+
+2009-05-23 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Reviewed by Xan Lopez.
+
+ [Gtk] Various autotools build refactoring and fixes
+ https://bugs.webkit.org/show_bug.cgi?id=25286
+
+ Refactor library LIBS. Move third-party libs in libwebkit instead
+ of libWebCore.
+
+ * GNUmakefile.am:
+
+2009-05-22 Antonio Gomes <antonio.gomes@openbossa.org>
+
+ Reviewed by Gustavo Noronha.
+
+ Make Gtk build not bail out if gtk-doc-tools is not installed.
+
+ Warning message shown instead.
+
+ * autogen.sh:
+
+2009-05-22 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
+
+ Reviewed by Xan Lopez.
+
+ Add big warnings about the glib unicode backend being slow and
+ incomplete, since it is a work in progress.
+
+ * autotools/webkit.m4:
+ * configure.ac:
+
+2009-05-22 Dominik Röttsches <dominik.roettsches@access-company.com>
+
+ Reviewed by Gustavo Noronha.
+
+ https://bugs.webkit.org/show_bug.cgi?id=15914
+ [GTK] Implement Unicode functionality using GLib
+
+ Initial version of this patch by Jürg Billeter.
+
+ Adding options for --with-unicode-backend=icu|glib
+ and checking for pango version >= 1.21.0 if GLib backend
+ is selected. Temporarily, until remaining parts of
+ this patch are committed, introduce WTF_USE_GLIB_ICU_UNICODE_HYBRID
+ macro to allow for a mixed compilation with WTF Unicode
+ backend based on GLib while text codecs and TextBreakIterator
+ remain ICU dependent.
+
+ * GNUmakefile.am:
+ * configure.ac:
+
+2009-05-18 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
+
+ Reviewed by Gavin Barraclough.
+
+ Enable YARR, and disable WREC for GTK+.
+
+ * configure.ac:
+
+2009-05-18 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Reviewed by Xan Lopez.
+
+ [Gtk] Various autotools build refactoring and fixes
+ https://bugs.webkit.org/show_bug.cgi?id=25286
+
+ Add support for running unit tests. Also run the tests whenever
+ the 'check' target runs.
+
+ * GNUmakefile.am:
+
+2009-05-18 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Reviewed by Xan Lopez.
+
+ [Gtk] Various autotools build refactoring and fixes
+ https://bugs.webkit.org/show_bug.cgi?id=25286
+
+ Style fixes
+
+ * GNUmakefile.am:
+
+2009-05-18 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Reviewed by Xan Lopez.
+
+ [Gtk] Various autotools build refactoring and fixes
+ https://bugs.webkit.org/show_bug.cgi?id=25286
+
+ Add -no-install and -no-fast-install to programs and tests that we
+ don't install. Also remove -O2 since this is already handled at
+ configure time.
+
+ * GNUmakefile.am:
+
+2009-05-17 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Reviewed by Xan Lopez.
+
+ [Gtk] Various autotools build refactoring and fixes
+ https://bugs.webkit.org/show_bug.cgi?id=25286
+
+ Refactor library cflags
+
+ * GNUmakefile.am:
+
+2009-05-15 Fridrich Strba <fridrich.strba@bluewin.ch>
+
+ Reviewed by Jan Alonzo.
+
+ Use AC_CANONICAL_HOST instead of AC_CANONICAL_SYSTEM, since
+ the JIT compiler is not a cross-compiler
+
+ * configure.ac:
+
+2009-05-13 Xan Lopez <xlopez@igalia.com>
+
+ Unreviewed: bump versions in preparation for 1.1.7 release.
+
+ * configure.ac:
+
+2009-05-13 Xan Lopez <xlopez@igalia.com>
+
+ Rubber-stamped by Gustavo Noronha.
+
+ Revert commit r43563, since it breaks WebKitGTK+ when compiled
+ with gcc 4.4.
+
+ * GNUmakefile.am:
+
+2009-05-12 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Reviewed by Holger Freyther.
+
+ [Gtk] Various autotools build refactoring and fixes
+ https://bugs.webkit.org/show_bug.cgi?id=25286
+
+ Refactor use of CFLAGS, CXXFLAGS, LIBADD and LDFLAGS.
+
+ * GNUmakefile.am:
+
+2009-05-09 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Reviewed by Gustavo Noronha.
+
+ WebKit-r43163 won't build for gtk-directfb
+ https://bugs.webkit.org/show_bug.cgi?id=25538
+
+ Move the ENCHANT check out of the with_target conditional since it
+ applies to all targets
+
+ * configure.ac:
+
+2009-05-09 Mike Hommey <glandium@debian.org>
+
+ Reviewed by Geoffrey Garen. Landed by Jan Alonzo.
+
+ Enable JIT on x86-64 gtk+
+ https://bugs.webkit.org/show_bug.cgi?id=24724
+
+ * configure.ac:
+
+2009-05-08 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
+
+ Reviewed by Xan Lopez.
+
+ Ship the gtk-doc.make file, so as to not depend on gtkdoc-tools.
+
+ * GNUmakefile.am:
+ * autogen.sh:
+
+2009-05-06 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ Build QtWebKit as a framework on Mac
+
+ This implies both debug and release build by default, unless
+ one of the --debug or --release config options are passed to
+ the build-webkit script.
+
+ Frameworks can be disabled by passing CONFIG+=webkit_no_framework
+ to the build-webkit script.
+
+ To be able to build both debug and release targets in parallel
+ we have to use separate output directories for the generated
+ sources, which is not optimal, but required to avoid race conditions.
+
+ An optimization would be to only require this spit-up on Mac.
+
+ * WebKit.pri:
+
+2009-04-30 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Unreviewed build GTK build fix
+
+ * configure.ac: typo fix - javascript_debugger should be enable_javascript_debugger
+
+2009-04-30 Dimitri Glazkov <dglazkov@chromium.org>
+
+ Unreviewed, build fix.
+
+ https://bugs.webkit.org/show_bug.cgi?id=25470
+ Extend the cover of ENABLE_JAVASCRIPT_DEBUGGER to profiler.
+
+ * configure.ac: Add autoconfig options, missed in the first commit.
+
+2009-04-28 Xan Lopez <xlopez@igalia.com>
+
+ Unreviewed: bump versions in preparation for 1.1.6 release.
+
+ * configure.ac:
+
+2009-04-25 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Reviewed by Xan Lopez.
+
+ [GTK] Error reporting
+ https://bugs.webkit.org/show_bug.cgi?id=18344
+
+ Add webkiterror to the build.
+
+ * GNUmakefile.am:
+
+2009-04-25 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Reviewed by Xan Lopez.
+
+ [GTK] Error reporting
+ https://bugs.webkit.org/show_bug.cgi?id=18344
+
+ Add the default error page for installation.
+
+ * GNUmakefile.am:
+
+2009-04-24 Diego Escalante Urrelo <diegoe@gnome.org>
+
+ Reviewed by Gustavo Noronha.
+
+ https://bugs.webkit.org/show_bug.cgi?id=15616
+ [GTK] Add spell checking
+
+ Add enchant support for spell-checking-languages property to work
+ properly.
+
+ * GNUmakefile.am:
+ * configure.ac:
+
2009-04-24 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Ariya Hidayat.
@@ -6,6 +306,375 @@
* WebKit.pro: Include docs.pri for "make docs" target.
+2009-04-14 Xan Lopez <xlopez@igalia.com>
+
+ Unreviewed version bump in preparation for 1.1.5 release.
+
+ * configure.ac:
+
+2009-04-06 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
+
+ Rubber-stamped by Sam Weinig.
+
+ Added rules to maintain the localization support. We cannot simply
+ use whatever gettextize gives us because our build system is
+ non-recursive.
+
+ * GNUmakefile.am:
+ * configure.ac:
+
+2009-04-05 Mike Hommey <glandium@debian.org>
+
+ Reviewed by Holger Freyther.
+
+ Filter out all C++ symbols
+ https://bugs.webkit.org/show_bug.cgi?id=24960
+
+ Considering the public API is all C, we can just filter out all
+ C++ mangled symbols, which will avoid exporting symbols in some
+ corner cases such as gcc bugs on specific architectures, etc.
+
+ * autotools/symbols.filter:
+
+2009-04-03 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
+
+ Reviewed by Holger Freyther.
+
+ Require GTK+ >= 2.10; 2.8 is already very old, and some very
+ useful APIs are only available since 2.10.
+
+ * configure.ac:
+
+2009-04-01 Christian Dywan <christian@twotoasts.de>
+
+ Reviewed by Holger Freyther.
+
+ Unit test WebKitDownload
+ http://bugs.webkit.org/show_bug.cgi?id=24844
+
+ * GNUmakefile.am: Add a unit test for downloading.
+
+2009-04-01 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
+
+ Unreviewed build fix. Fix make distcheck, after the gtk-doc
+ integration.
+
+ * GNUmakefile.am:
+
+2009-03-30 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
+
+ Reviewed by Holger Freyther.
+
+ Integrate gtk-doc into the Gtk+ buildsystem.
+
+ * autogen.sh:
+ * configure.ac:
+
+2009-03-30 Xan Lopez <xlopez@igalia.com>
+
+ Unreviewed: bump version to 1.1.4 for release.
+
+ * configure.ac:
+
+2009-03-21 Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Holger Freyther.
+
+ Require gnome-keyring 2.26.0, since we were depending on an
+ unreleased trunk revision between 2.25.91 and 2.26.0.
+
+ * configure.ac:
+
+2009-03-20 Jan Michael Alonzo <jmalonzo@gmail.com>
+
+ Reviewed by Holger Freyther.
+
+ [GTK] Misc patches for WebKitWebHistoryItem
+ https://bugs.webkit.org/show_bug.cgi?id=24493
+
+ Added build support for build the WebKitWebHistoryItem unit test.
+
+ * GNUmakefile.am:
+
+2009-03-20 Jan Michael Alonzo <jmalonzo@gmail.com>
+
+ Reviewed by Holger Freyther.
+
+ Separate gtk unit tests
+ https://bugs.webkit.org/show_bug.cgi?id=24039
+
+ Build the unit tests accordingly.
+
+ * GNUmakefile.am:
+
+2009-03-17 Gustavo Noronha Silva <gns@gnome.org>
+
+ Reviewed by Mark Rowe.
+
+ Enable HTML5 media elements support by default in the GTK+ port.
+
+ * configure.ac:
+
+2009-03-17 Mike Hommey <glandium@debian.org>
+
+ Reviewed by Holger Freyther.
+
+ Do not export cti* symbols.
+ See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=519924.
+
+ * autotools/symbols.filter:
+
+2009-03-15 Xan Lopez <xlopez@igalia.com>
+
+ Bump version to 1.1.3 for release and fix soversion
+ calculation (oops). Thanks to Frederik Himpe for pointing this
+ out.
+
+ * configure.ac:
+
+2009-03-15 Xan Lopez <xlopez@igalia.com>
+
+ Bump version and libtool version for release.
+
+ * configure.ac:
+
+2009-03-14 Xan Lopez <xlopez@igalia.com>
+
+ No review, build fix.
+
+ Split clean rules to make distcheck pass.
+
+ * GNUmakefile.am:
+
+2009-03-13 Mark Rowe <mrowe@apple.com>
+
+ Reviewed by Dan Bernstein.
+
+ Remove rarely used Makefile targets from the Makefile.
+
+ There are many situations in which the targets don't work as expected,
+ and their primary use is addressed by having the build system default
+ to building the appropriate architecture.
+
+ * Makefile.shared:
+
+2009-03-11 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Reviewed by Holger Freyther.
+
+ [Gtk] Fix make clean targets
+ https://bugs.webkit.org/show_bug.cgi?id=24450
+
+ Fix 'make' clean targets. We shouldn't be removing DerivedSources
+ if it's only clean. Only remove it if it's distclean or
+ maintainer-clean. Also remove build-related auxillary files on
+ dist/maintainer clean.
+
+ * GNUmakefile.am:
+
+2009-03-11 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Reviewed by Holger Freyther
+
+ [GTK]DumpRenderTree doesn't compile for non-X11 GTK ports anymore
+ https://bugs.webkit.org/show_bug.cgi?id=2260
+
+ pangoft2 is also used in directfb builds so use it for all targets
+
+ * configure.ac:
+
+2009-03-02 Xan Lopez <xan@gnome.org>
+
+ Reviewed by Mark Rowe.
+
+ https://bugs.webkit.org/show_bug.cgi?id=24287
+ [GTK] Move auth dialog feature to WebKit/
+
+ Add WebKitSoupAuthDialog files to build.
+
+ * GNUmakefile.am:
+
+2009-03-03 Gustavo Noronha Silva <gns@gnome.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ https://bugs.webkit.org/show_bug.cgi?id=16826
+ [Gtk] Implement WebKitDownload
+
+ Adding new files related to WebKitDownload to the GTK+ port.
+
+ * GNUmakefile.am:
+
+2009-03-02 Gustavo Noronha Silva <gns@gnome.org>
+
+ Unreviewed build fix; adding missing files to EXTRA_DIST, so that
+ they show up in the tarball.
+
+ * GNUmakefile.am:
+
+2009-03-01 Christian Dywan <christian@twotoasts.de>
+
+ * configure.ac: Bump GTK port version to 1.1.1.
+
+2009-02-27 Gustavo Noronha Silva <gns@gnome.org>
+
+ Unreviewed build fix. Adding the WebKit/gtk/webkitmarshal.list
+ file to EXTRA_DIST to fix make dist.
+
+ * GNUmakefile.am:
+
+2009-02-26 Xan Lopez <xan@gnome.org>
+
+ Reviewed by Holger Freyther.
+
+ https://bugs.webkit.org/show_bug.cgi?id=16947
+ [GTK] Missing HTTP Auth challenge
+
+ Add HTTP authentication dialog with optional GNOME Keyring
+ storage.
+
+ * GNUmakefile.am:
+ * configure.ac:
+
+2009-02-26 Xan Lopez <xan@gnome.org>
+
+ Reviewed by Holger Freyther.
+
+ https://bugs.webkit.org/show_bug.cgi?id=16947
+ [GTK] Missing HTTP Auth challenge
+
+ Take marshallers to be built from a manually maintained list
+ instead of grepping the sources.
+
+ It's much faster, especially so now that we want to add
+ marshallers from WebCore too. A system to only take into account
+ the modified files when generating the marshallers from sources
+ could be hacked, but I think it's overkill considering how rarely
+ a new marshaller is added.
+
+ * GNUmakefile.am:
+
+2009-02-24 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ [Gtk] add options for 3D transforms and HTML5 channel messaging to the build
+ https://bugs.webkit.org/show_bug.cgi?id=24072
+
+ Add options for toggling 3D transforms and HTML5 channel messaging
+ support on or off.
+
+ Also fix the web-workers option. It should be web-workers and not workers.
+
+ * configure.ac:
+
+2009-02-23 Xan Lopez <xan@gnome.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ https://bugs.webkit.org/show_bug.cgi?id=22624
+ [SOUP][GTK] Need API to get SoupSession from WebKit.
+
+ Remove CURL support, the only supported HTTP backend is SOUP now.
+
+ * GNUmakefile.am:
+ * configure.ac:
+
+2009-02-19 Christian Dywan <christian@twotoasts.de>
+
+ Rubber-stamped by Holger Freyther.
+
+ http://bugs.webkit.org/show_bug.cgi?id=22811
+ Underlinking in Programs_UnitTests (GTK+ build)
+
+ * GNUmakefile.am: Add GLIB_LIBS to unit test library flags.
+
+2009-02-18 Gustavo Noronha Silva <gns@gnome.org>
+
+ Reviewed by Holger Freyther.
+
+ Fix symbols.filter location, and add other missing files to the
+ autotools build, so that make dist works.
+
+ * GNUmakefile.am:
+
+2009-02-17 Gustavo Noronha Silva <gns@gnome.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23939
+ Release build being built with debugging symbols
+
+ * configure.ac: Revert change done in revision 40790, since we
+ already have a AC_PROG_CXX macro call as part of WEBKIT_INIT
+
+2009-02-12 Gustavo Noronha Silva <gns@gnome.org>
+
+ Reviewed by Eric Seidel.
+
+ * configure.ac: Make soup the default HTTP backend for the Gtk port.
+
+2009-02-09 Calvin Walton <calvin.walton@gmail.com>
+
+ Reviewed by Holger Freyther.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23823
+
+ [Gtk] Fix build with recent autotools
+
+ Current versions of automake/libtool don't assume you want C++ enabled
+ by default any more, so explicitly check for a C++ compiler.
+
+ * configure.ac: Add AC_PROG_CXX macro
+
+2009-02-02 Christian Dywan <christian@twotoasts.de>
+
+ Rubber-stamped by Holger Freyther.
+
+ Don't require Geolocation by default.
+
+ * configure.ac:
+
+2009-01-30 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Reviewed by Nikolas Zimmermann.
+
+ [Gtk] Refactor autoconf/configure.ac in preparation for jsc and webkit build splits
+ https://bugs.webkit.org/show_bug.cgi?id=22136
+
+ * GNUmakefile.am:
+ * acinclude.m4: Removed.
+ * autogen.sh:
+ * autotools/acinclude.m4: Added.
+ * autotools/dolt.m4: Added.
+ * autotools/symbols.filter: Renamed from symbols.filter.
+ * autotools/webkit.m4: Added.
+ * configure.ac:
+
+2009-01-30 Holger Hans Peter Freyther <zecke@selfish.org>
+
+ Reviewed by Nikolas Zimmermann.
+
+ [GTK] Implement GeolocationService using the Geoclue library
+
+ https://bugs.webkit.org/show_bug.cgi?id=22022
+
+ Untested implementation of the GeolocationService using the geoclue
+ library. Velocity handling is completely missing and the accuracy
+ handling might be wrong.
+
+ * GNUmakefile.am:
+ * configure.ac:
+
+2009-01-11 Xan Lopez <xan@gnome.org>
+
+ Reviewed by Holger Freyther.
+
+ Bump version to 1.1.0 since we are breaking ABI and adding new
+ major features.
+
+ * configure.ac:
+
2008-12-19 Marco Barisione <marco.barisione@collabora.co.uk>
Reviewed by Holger Freyther.
@@ -203,7 +872,7 @@
2008-11-16 Geoffrey Garen <ggaren@apple.com>
Not reviewed.
-
+
Try to fix gtk build.
* configure.ac:
@@ -801,7 +1470,7 @@
Reviewed by Mark.
Add x86_64 rule.
-
+
* Makefile:
2008-05-09 Simon Hausmann <hausmann@webkit.org>
@@ -809,11 +1478,11 @@
Reviewed by Holger.
Removed explicit linkage against libxml and libxslt on Qt/Mac builds.
-
+
This dependency is completely unnecessary here and creates only problems by
propagating through WebCore.pro over libQtWebKit.prl right now customer
applications.
-
+
* WebKit.pri:
@@ -822,7 +1491,7 @@
Reviewed by Mark.
Add an "x86_64" make rule.
-
+
* Makefile.shared:
2008-05-02 Jan Michael Alonzo <jmalonzo@unpluggable.com>
@@ -973,7 +1642,7 @@
http://bugs.webkit.org/show_bug.cgi?id=16476
Add support for multiple http backends, and add soup backend (off by default).
-
+
* GNUmakefile.am:
* configure.ac:
@@ -1060,7 +1729,7 @@
Add separator '\' after libJavaScriptCore_la_LIBADD and cleanup
whitespaces introduced in the previous commit.
- * GNUmakefile.am:
+ * GNUmakefile.am:
2008-02-23 Jan Michael Alonzo <jmalonzo@unpluggable.com>
@@ -2452,7 +3121,7 @@
Reviewed by Lars.
Don't compile the ICO plugin when building against Qt >= 4.4
-
+
* WebKit.pro:
diff --git a/src/3rdparty/webkit/JavaScriptCore/API/APICast.h b/src/3rdparty/webkit/JavaScriptCore/API/APICast.h
index d356bca..762a15e 100644
--- a/src/3rdparty/webkit/JavaScriptCore/API/APICast.h
+++ b/src/3rdparty/webkit/JavaScriptCore/API/APICast.h
@@ -26,7 +26,10 @@
#ifndef APICast_h
#define APICast_h
+#include "JSNumberCell.h"
#include "JSValue.h"
+#include <wtf/Platform.h>
+#include <wtf/UnusedParam.h>
namespace JSC {
class ExecState;
@@ -34,7 +37,6 @@ namespace JSC {
class JSGlobalData;
class JSObject;
class JSValue;
- class JSValuePtr;
}
typedef const struct OpaqueJSContextGroup* JSContextGroupRef;
@@ -56,9 +58,18 @@ inline JSC::ExecState* toJS(JSGlobalContextRef c)
return reinterpret_cast<JSC::ExecState*>(c);
}
-inline JSC::JSValuePtr toJS(JSValueRef v)
+inline JSC::JSValue toJS(JSC::ExecState* exec, JSValueRef v)
{
- return JSC::JSValuePtr::decode(reinterpret_cast<JSC::JSValueEncodedAsPointer*>(const_cast<OpaqueJSValue*>(v)));
+ JSC::JSValue jsValue = JSC::JSValue::decode(reinterpret_cast<JSC::EncodedJSValue>(const_cast<OpaqueJSValue*>(v)));
+#if USE(ALTERNATE_JSIMMEDIATE)
+ UNUSED_PARAM(exec);
+#else
+ if (jsValue && jsValue.isNumber()) {
+ ASSERT(jsValue.isAPIMangledNumber());
+ return JSC::jsNumber(exec, jsValue.uncheckedGetNumber());
+ }
+#endif
+ return jsValue;
}
inline JSC::JSObject* toJS(JSObjectRef o)
@@ -76,14 +87,17 @@ inline JSC::JSGlobalData* toJS(JSContextGroupRef g)
return reinterpret_cast<JSC::JSGlobalData*>(const_cast<OpaqueJSContextGroup*>(g));
}
-inline JSValueRef toRef(JSC::JSValuePtr v)
+inline JSValueRef toRef(JSC::ExecState* exec, JSC::JSValue v)
{
- return reinterpret_cast<JSValueRef>(JSC::JSValuePtr::encode(v));
-}
-
-inline JSValueRef* toRef(JSC::JSValuePtr* v)
-{
- return reinterpret_cast<JSValueRef*>(v);
+#if USE(ALTERNATE_JSIMMEDIATE)
+ UNUSED_PARAM(exec);
+#else
+ if (v && v.isNumber()) {
+ ASSERT(!v.isAPIMangledNumber());
+ return reinterpret_cast<JSValueRef>(JSC::JSValue::encode(JSC::jsAPIMangledNumber(exec, v.uncheckedGetNumber())));
+ }
+#endif
+ return reinterpret_cast<JSValueRef>(JSC::JSValue::encode(v));
}
inline JSObjectRef toRef(JSC::JSObject* o)
diff --git a/src/3rdparty/webkit/JavaScriptCore/API/JSBase.cpp b/src/3rdparty/webkit/JavaScriptCore/API/JSBase.cpp
index 2ffe345..fc3d0fe 100644
--- a/src/3rdparty/webkit/JavaScriptCore/API/JSBase.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/API/JSBase.cpp
@@ -55,15 +55,15 @@ JSValueRef JSEvaluateScript(JSContextRef ctx, JSStringRef script, JSObjectRef th
if (completion.complType() == Throw) {
if (exception)
- *exception = toRef(completion.value());
+ *exception = toRef(exec, completion.value());
return 0;
}
-
+
if (completion.value())
- return toRef(completion.value());
+ return toRef(exec, completion.value());
// happens, for example, when the only statement is an empty (';') statement
- return toRef(jsUndefined());
+ return toRef(exec, jsUndefined());
}
bool JSCheckScriptSyntax(JSContextRef ctx, JSStringRef script, JSStringRef sourceURL, int startingLineNumber, JSValueRef* exception)
@@ -76,7 +76,7 @@ bool JSCheckScriptSyntax(JSContextRef ctx, JSStringRef script, JSStringRef sourc
Completion completion = checkSyntax(exec->dynamicGlobalObject()->globalExec(), source);
if (completion.complType() == Throw) {
if (exception)
- *exception = toRef(completion.value());
+ *exception = toRef(exec, completion.value());
return false;
}
diff --git a/src/3rdparty/webkit/JavaScriptCore/API/JSBase.h b/src/3rdparty/webkit/JavaScriptCore/API/JSBase.h
index f44d4ad..6f012ca 100644
--- a/src/3rdparty/webkit/JavaScriptCore/API/JSBase.h
+++ b/src/3rdparty/webkit/JavaScriptCore/API/JSBase.h
@@ -65,14 +65,20 @@ typedef struct OpaqueJSValue* JSObjectRef;
/* JavaScript symbol exports */
#undef JS_EXPORT
-#if defined(__GNUC__)
+#if defined(BUILDING_WX__)
+ #define JS_EXPORT
+#elif defined(__GNUC__)
#define JS_EXPORT __attribute__((visibility("default")))
#elif defined(WIN32) || defined(_WIN32)
/*
* TODO: Export symbols with JS_EXPORT when using MSVC.
* See http://bugs.webkit.org/show_bug.cgi?id=16227
*/
- #define JS_EXPORT
+ #if defined(BUILDING_JavaScriptCore) || defined(BUILDING_WTF)
+ #define JS_EXPORT __declspec(dllexport)
+ #else
+ #define JS_EXPORT __declspec(dllimport)
+ #endif
#else
#define JS_EXPORT
#endif
diff --git a/src/3rdparty/webkit/JavaScriptCore/API/JSBasePrivate.h b/src/3rdparty/webkit/JavaScriptCore/API/JSBasePrivate.h
index 6beacda..befa316 100644
--- a/src/3rdparty/webkit/JavaScriptCore/API/JSBasePrivate.h
+++ b/src/3rdparty/webkit/JavaScriptCore/API/JSBasePrivate.h
@@ -43,7 +43,7 @@ owns a large non-GC memory region. Calling this function will encourage the
garbage collector to collect soon, hoping to reclaim that large non-GC memory
region.
*/
-JS_EXPORT void JSReportExtraMemoryCost(JSContextRef ctx, size_t size) AVAILABLE_AFTER_WEBKIT_VERSION_3_1;
+JS_EXPORT void JSReportExtraMemoryCost(JSContextRef ctx, size_t size) AVAILABLE_IN_WEBKIT_VERSION_4_0;
#ifdef __cplusplus
}
diff --git a/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackConstructor.cpp b/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackConstructor.cpp
index e10733e..64c83cb 100644
--- a/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackConstructor.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackConstructor.cpp
@@ -61,10 +61,17 @@ static JSObject* constructJSCallback(ExecState* exec, JSObject* constructor, con
int argumentCount = static_cast<int>(args.size());
Vector<JSValueRef, 16> arguments(argumentCount);
for (int i = 0; i < argumentCount; i++)
- arguments[i] = toRef(args.at(exec, i));
-
- JSLock::DropAllLocks dropAllLocks(exec);
- return toJS(callback(ctx, constructorRef, argumentCount, arguments.data(), toRef(exec->exceptionSlot())));
+ arguments[i] = toRef(exec, args.at(i));
+
+ JSValueRef exception = 0;
+ JSObjectRef result;
+ {
+ JSLock::DropAllLocks dropAllLocks(exec);
+ result = callback(ctx, constructorRef, argumentCount, arguments.data(), &exception);
+ }
+ if (exception)
+ exec->setException(toJS(exec, exception));
+ return toJS(result);
}
return toJS(JSObjectMake(ctx, static_cast<JSCallbackConstructor*>(constructor)->classRef(), 0));
diff --git a/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackConstructor.h b/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackConstructor.h
index cb8307f..1f06249 100644
--- a/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackConstructor.h
+++ b/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackConstructor.h
@@ -39,7 +39,7 @@ public:
JSObjectCallAsConstructorCallback callback() const { return m_callback; }
static const ClassInfo info;
- static PassRefPtr<Structure> createStructure(JSValuePtr proto)
+ static PassRefPtr<Structure> createStructure(JSValue proto)
{
return Structure::create(proto, TypeInfo(ObjectType, ImplementsHasInstance | HasStandardGetOwnPropertySlot));
}
diff --git a/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackFunction.cpp b/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackFunction.cpp
index b82932e..1b3217b 100644
--- a/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackFunction.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackFunction.cpp
@@ -46,19 +46,27 @@ JSCallbackFunction::JSCallbackFunction(ExecState* exec, JSObjectCallAsFunctionCa
{
}
-JSValuePtr JSCallbackFunction::call(ExecState* exec, JSObject* functionObject, JSValuePtr thisValue, const ArgList& args)
+JSValue JSCallbackFunction::call(ExecState* exec, JSObject* functionObject, JSValue thisValue, const ArgList& args)
{
JSContextRef execRef = toRef(exec);
JSObjectRef functionRef = toRef(functionObject);
- JSObjectRef thisObjRef = toRef(thisValue->toThisObject(exec));
+ JSObjectRef thisObjRef = toRef(thisValue.toThisObject(exec));
int argumentCount = static_cast<int>(args.size());
Vector<JSValueRef, 16> arguments(argumentCount);
for (int i = 0; i < argumentCount; i++)
- arguments[i] = toRef(args.at(exec, i));
+ arguments[i] = toRef(exec, args.at(i));
- JSLock::DropAllLocks dropAllLocks(exec);
- return toJS(static_cast<JSCallbackFunction*>(functionObject)->m_callback(execRef, functionRef, thisObjRef, argumentCount, arguments.data(), toRef(exec->exceptionSlot())));
+ JSValueRef exception = 0;
+ JSValueRef result;
+ {
+ JSLock::DropAllLocks dropAllLocks(exec);
+ result = static_cast<JSCallbackFunction*>(functionObject)->m_callback(execRef, functionRef, thisObjRef, argumentCount, arguments.data(), &exception);
+ }
+ if (exception)
+ exec->setException(toJS(exec, exception));
+
+ return toJS(exec, result);
}
CallType JSCallbackFunction::getCallData(CallData& callData)
diff --git a/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackFunction.h b/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackFunction.h
index 46f6fcc..7dd87b5 100644
--- a/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackFunction.h
+++ b/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackFunction.h
@@ -39,7 +39,7 @@ public:
// InternalFunction mish-mashes constructor and function behavior -- we should
// refactor the code so this override isn't necessary
- static PassRefPtr<Structure> createStructure(JSValuePtr proto)
+ static PassRefPtr<Structure> createStructure(JSValue proto)
{
return Structure::create(proto, TypeInfo(ObjectType, HasStandardGetOwnPropertySlot));
}
@@ -48,7 +48,7 @@ private:
virtual CallType getCallData(CallData&);
virtual const ClassInfo* classInfo() const { return &info; }
- static JSValuePtr call(ExecState*, JSObject*, JSValuePtr, const ArgList&);
+ static JSValue JSC_HOST_CALL call(ExecState*, JSObject*, JSValue, const ArgList&);
JSObjectCallAsFunctionCallback m_callback;
};
diff --git a/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackObject.h b/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackObject.h
index 9001c43..9d22ad9 100644
--- a/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackObject.h
+++ b/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackObject.h
@@ -48,7 +48,7 @@ public:
JSClassRef classRef() const { return m_callbackObjectData->jsClass; }
bool inherits(JSClassRef) const;
- static PassRefPtr<Structure> createStructure(JSValuePtr proto)
+ static PassRefPtr<Structure> createStructure(JSValue proto)
{
return Structure::create(proto, TypeInfo(ObjectType, ImplementsHasInstance | OverridesHasInstance));
}
@@ -59,12 +59,12 @@ private:
virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
virtual bool getOwnPropertySlot(ExecState*, unsigned, PropertySlot&);
- virtual void put(ExecState*, const Identifier&, JSValuePtr, PutPropertySlot&);
+ virtual void put(ExecState*, const Identifier&, JSValue, PutPropertySlot&);
virtual bool deleteProperty(ExecState*, const Identifier&);
virtual bool deleteProperty(ExecState*, unsigned);
- virtual bool hasInstance(ExecState* exec, JSValuePtr value, JSValuePtr proto);
+ virtual bool hasInstance(ExecState* exec, JSValue value, JSValue proto);
virtual void getPropertyNames(ExecState*, PropertyNameArray&);
@@ -77,14 +77,14 @@ private:
void init(ExecState*);
- static JSCallbackObject* asCallbackObject(JSValuePtr);
+ static JSCallbackObject* asCallbackObject(JSValue);
- static JSValuePtr call(ExecState*, JSObject* functionObject, JSValuePtr thisValue, const ArgList&);
+ static JSValue JSC_HOST_CALL call(ExecState*, JSObject* functionObject, JSValue thisValue, const ArgList&);
static JSObject* construct(ExecState*, JSObject* constructor, const ArgList&);
- static JSValuePtr staticValueGetter(ExecState*, const Identifier&, const PropertySlot&);
- static JSValuePtr staticFunctionGetter(ExecState*, const Identifier&, const PropertySlot&);
- static JSValuePtr callbackGetter(ExecState*, const Identifier&, const PropertySlot&);
+ static JSValue staticValueGetter(ExecState*, const Identifier&, const PropertySlot&);
+ static JSValue staticFunctionGetter(ExecState*, const Identifier&, const PropertySlot&);
+ static JSValue callbackGetter(ExecState*, const Identifier&, const PropertySlot&);
struct JSCallbackObjectData {
JSCallbackObjectData(void* privateData, JSClassRef jsClass)
diff --git a/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackObjectFunctions.h b/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackObjectFunctions.h
index fdbafbc..987c59f 100644
--- a/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackObjectFunctions.h
+++ b/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackObjectFunctions.h
@@ -40,7 +40,7 @@
namespace JSC {
template <class Base>
-inline JSCallbackObject<Base>* JSCallbackObject<Base>::asCallbackObject(JSValuePtr value)
+inline JSCallbackObject<Base>* JSCallbackObject<Base>::asCallbackObject(JSValue value)
{
ASSERT(asObject(value)->inherits(&info));
return static_cast<JSCallbackObject*>(asObject(value));
@@ -99,7 +99,7 @@ template <class Base>
UString JSCallbackObject<Base>::className() const
{
UString thisClassName = classRef()->className();
- if (!thisClassName.isNull())
+ if (!thisClassName.isEmpty())
return thisClassName;
return Base::className();
@@ -125,9 +125,19 @@ bool JSCallbackObject<Base>::getOwnPropertySlot(ExecState* exec, const Identifie
} else if (JSObjectGetPropertyCallback getProperty = jsClass->getProperty) {
if (!propertyNameRef)
propertyNameRef = OpaqueJSString::create(propertyName.ustring());
- JSLock::DropAllLocks dropAllLocks(exec);
- if (JSValueRef value = getProperty(ctx, thisRef, propertyNameRef.get(), toRef(exec->exceptionSlot()))) {
- slot.setValue(toJS(value));
+ JSValueRef exception = 0;
+ JSValueRef value;
+ {
+ JSLock::DropAllLocks dropAllLocks(exec);
+ value = getProperty(ctx, thisRef, propertyNameRef.get(), &exception);
+ }
+ exec->setException(toJS(exec, exception));
+ if (value) {
+ slot.setValue(toJS(exec, value));
+ return true;
+ }
+ if (exception) {
+ slot.setValue(jsUndefined());
return true;
}
}
@@ -157,19 +167,25 @@ bool JSCallbackObject<Base>::getOwnPropertySlot(ExecState* exec, unsigned proper
}
template <class Base>
-void JSCallbackObject<Base>::put(ExecState* exec, const Identifier& propertyName, JSValuePtr value, PutPropertySlot& slot)
+void JSCallbackObject<Base>::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
{
JSContextRef ctx = toRef(exec);
JSObjectRef thisRef = toRef(this);
RefPtr<OpaqueJSString> propertyNameRef;
- JSValueRef valueRef = toRef(value);
+ JSValueRef valueRef = toRef(exec, value);
for (JSClassRef jsClass = classRef(); jsClass; jsClass = jsClass->parentClass) {
if (JSObjectSetPropertyCallback setProperty = jsClass->setProperty) {
if (!propertyNameRef)
propertyNameRef = OpaqueJSString::create(propertyName.ustring());
- JSLock::DropAllLocks dropAllLocks(exec);
- if (setProperty(ctx, thisRef, propertyNameRef.get(), valueRef, toRef(exec->exceptionSlot())))
+ JSValueRef exception = 0;
+ bool result;
+ {
+ JSLock::DropAllLocks dropAllLocks(exec);
+ result = setProperty(ctx, thisRef, propertyNameRef.get(), valueRef, &exception);
+ }
+ exec->setException(toJS(exec, exception));
+ if (result || exception)
return;
}
@@ -180,8 +196,14 @@ void JSCallbackObject<Base>::put(ExecState* exec, const Identifier& propertyName
if (JSObjectSetPropertyCallback setProperty = entry->setProperty) {
if (!propertyNameRef)
propertyNameRef = OpaqueJSString::create(propertyName.ustring());
- JSLock::DropAllLocks dropAllLocks(exec);
- if (setProperty(ctx, thisRef, propertyNameRef.get(), valueRef, toRef(exec->exceptionSlot())))
+ JSValueRef exception = 0;
+ bool result;
+ {
+ JSLock::DropAllLocks dropAllLocks(exec);
+ result = setProperty(ctx, thisRef, propertyNameRef.get(), valueRef, &exception);
+ }
+ exec->setException(toJS(exec, exception));
+ if (result || exception)
return;
} else
throwError(exec, ReferenceError, "Attempt to set a property that is not settable.");
@@ -212,8 +234,14 @@ bool JSCallbackObject<Base>::deleteProperty(ExecState* exec, const Identifier& p
if (JSObjectDeletePropertyCallback deleteProperty = jsClass->deleteProperty) {
if (!propertyNameRef)
propertyNameRef = OpaqueJSString::create(propertyName.ustring());
- JSLock::DropAllLocks dropAllLocks(exec);
- if (deleteProperty(ctx, thisRef, propertyNameRef.get(), toRef(exec->exceptionSlot())))
+ JSValueRef exception = 0;
+ bool result;
+ {
+ JSLock::DropAllLocks dropAllLocks(exec);
+ result = deleteProperty(ctx, thisRef, propertyNameRef.get(), &exception);
+ }
+ exec->setException(toJS(exec, exception));
+ if (result || exception)
return true;
}
@@ -266,9 +294,15 @@ JSObject* JSCallbackObject<Base>::construct(ExecState* exec, JSObject* construct
int argumentCount = static_cast<int>(args.size());
Vector<JSValueRef, 16> arguments(argumentCount);
for (int i = 0; i < argumentCount; i++)
- arguments[i] = toRef(args.at(exec, i));
- JSLock::DropAllLocks dropAllLocks(exec);
- return toJS(callAsConstructor(execRef, constructorRef, argumentCount, arguments.data(), toRef(exec->exceptionSlot())));
+ arguments[i] = toRef(exec, args.at(i));
+ JSValueRef exception = 0;
+ JSObject* result;
+ {
+ JSLock::DropAllLocks dropAllLocks(exec);
+ result = toJS(callAsConstructor(execRef, constructorRef, argumentCount, arguments.data(), &exception));
+ }
+ exec->setException(toJS(exec, exception));
+ return result;
}
}
@@ -277,15 +311,21 @@ JSObject* JSCallbackObject<Base>::construct(ExecState* exec, JSObject* construct
}
template <class Base>
-bool JSCallbackObject<Base>::hasInstance(ExecState* exec, JSValuePtr value, JSValuePtr)
+bool JSCallbackObject<Base>::hasInstance(ExecState* exec, JSValue value, JSValue)
{
JSContextRef execRef = toRef(exec);
JSObjectRef thisRef = toRef(this);
for (JSClassRef jsClass = classRef(); jsClass; jsClass = jsClass->parentClass) {
if (JSObjectHasInstanceCallback hasInstance = jsClass->hasInstance) {
- JSLock::DropAllLocks dropAllLocks(exec);
- return hasInstance(execRef, thisRef, toRef(value), toRef(exec->exceptionSlot()));
+ JSValueRef exception = 0;
+ bool result;
+ {
+ JSLock::DropAllLocks dropAllLocks(exec);
+ result = hasInstance(execRef, thisRef, toRef(exec, value), &exception);
+ }
+ exec->setException(toJS(exec, exception));
+ return result;
}
}
return false;
@@ -304,25 +344,31 @@ CallType JSCallbackObject<Base>::getCallData(CallData& callData)
}
template <class Base>
-JSValuePtr JSCallbackObject<Base>::call(ExecState* exec, JSObject* functionObject, JSValuePtr thisValue, const ArgList& args)
+JSValue JSCallbackObject<Base>::call(ExecState* exec, JSObject* functionObject, JSValue thisValue, const ArgList& args)
{
JSContextRef execRef = toRef(exec);
JSObjectRef functionRef = toRef(functionObject);
- JSObjectRef thisObjRef = toRef(thisValue->toThisObject(exec));
+ JSObjectRef thisObjRef = toRef(thisValue.toThisObject(exec));
for (JSClassRef jsClass = static_cast<JSCallbackObject<Base>*>(functionObject)->classRef(); jsClass; jsClass = jsClass->parentClass) {
if (JSObjectCallAsFunctionCallback callAsFunction = jsClass->callAsFunction) {
int argumentCount = static_cast<int>(args.size());
Vector<JSValueRef, 16> arguments(argumentCount);
for (int i = 0; i < argumentCount; i++)
- arguments[i] = toRef(args.at(exec, i));
- JSLock::DropAllLocks dropAllLocks(exec);
- return toJS(callAsFunction(execRef, functionRef, thisObjRef, argumentCount, arguments.data(), toRef(exec->exceptionSlot())));
+ arguments[i] = toRef(exec, args.at(i));
+ JSValueRef exception = 0;
+ JSValue result;
+ {
+ JSLock::DropAllLocks dropAllLocks(exec);
+ result = toJS(exec, callAsFunction(execRef, functionRef, thisObjRef, argumentCount, arguments.data(), &exception));
+ }
+ exec->setException(toJS(exec, exception));
+ return result;
}
}
ASSERT_NOT_REACHED(); // getCallData should prevent us from reaching here
- return noValue();
+ return JSValue();
}
template <class Base>
@@ -376,9 +422,17 @@ double JSCallbackObject<Base>::toNumber(ExecState* exec) const
for (JSClassRef jsClass = classRef(); jsClass; jsClass = jsClass->parentClass)
if (JSObjectConvertToTypeCallback convertToType = jsClass->convertToType) {
- JSLock::DropAllLocks dropAllLocks(exec);
- if (JSValueRef value = convertToType(ctx, thisRef, kJSTypeNumber, toRef(exec->exceptionSlot())))
- return toJS(value)->getNumber();
+ JSValueRef exception = 0;
+ JSValueRef value;
+ {
+ JSLock::DropAllLocks dropAllLocks(exec);
+ value = convertToType(ctx, thisRef, kJSTypeNumber, &exception);
+ }
+ exec->setException(toJS(exec, exception));
+ if (value) {
+ double dValue;
+ return toJS(exec, value).getNumber(dValue) ? dValue : NaN;
+ }
}
return Base::toNumber(exec);
@@ -392,13 +446,17 @@ UString JSCallbackObject<Base>::toString(ExecState* exec) const
for (JSClassRef jsClass = classRef(); jsClass; jsClass = jsClass->parentClass)
if (JSObjectConvertToTypeCallback convertToType = jsClass->convertToType) {
+ JSValueRef exception = 0;
JSValueRef value;
{
JSLock::DropAllLocks dropAllLocks(exec);
- value = convertToType(ctx, thisRef, kJSTypeString, toRef(exec->exceptionSlot()));
+ value = convertToType(ctx, thisRef, kJSTypeString, &exception);
}
+ exec->setException(toJS(exec, exception));
if (value)
- return toJS(value)->getString();
+ return toJS(exec, value).getString();
+ if (exception)
+ return "";
}
return Base::toString(exec);
@@ -427,7 +485,7 @@ bool JSCallbackObject<Base>::inherits(JSClassRef c) const
}
template <class Base>
-JSValuePtr JSCallbackObject<Base>::staticValueGetter(ExecState* exec, const Identifier& propertyName, const PropertySlot& slot)
+JSValue JSCallbackObject<Base>::staticValueGetter(ExecState* exec, const Identifier& propertyName, const PropertySlot& slot)
{
JSCallbackObject* thisObj = asCallbackObject(slot.slotBase());
@@ -440,16 +498,24 @@ JSValuePtr JSCallbackObject<Base>::staticValueGetter(ExecState* exec, const Iden
if (JSObjectGetPropertyCallback getProperty = entry->getProperty) {
if (!propertyNameRef)
propertyNameRef = OpaqueJSString::create(propertyName.ustring());
- JSLock::DropAllLocks dropAllLocks(exec);
- if (JSValueRef value = getProperty(toRef(exec), thisRef, propertyNameRef.get(), toRef(exec->exceptionSlot())))
- return toJS(value);
+ JSValueRef exception = 0;
+ JSValueRef value;
+ {
+ JSLock::DropAllLocks dropAllLocks(exec);
+ value = getProperty(toRef(exec), thisRef, propertyNameRef.get(), &exception);
+ }
+ exec->setException(toJS(exec, exception));
+ if (value)
+ return toJS(exec, value);
+ if (exception)
+ return jsUndefined();
}
return throwError(exec, ReferenceError, "Static value property defined with NULL getProperty callback.");
}
template <class Base>
-JSValuePtr JSCallbackObject<Base>::staticFunctionGetter(ExecState* exec, const Identifier& propertyName, const PropertySlot& slot)
+JSValue JSCallbackObject<Base>::staticFunctionGetter(ExecState* exec, const Identifier& propertyName, const PropertySlot& slot)
{
JSCallbackObject* thisObj = asCallbackObject(slot.slotBase());
@@ -474,7 +540,7 @@ JSValuePtr JSCallbackObject<Base>::staticFunctionGetter(ExecState* exec, const I
}
template <class Base>
-JSValuePtr JSCallbackObject<Base>::callbackGetter(ExecState* exec, const Identifier& propertyName, const PropertySlot& slot)
+JSValue JSCallbackObject<Base>::callbackGetter(ExecState* exec, const Identifier& propertyName, const PropertySlot& slot)
{
JSCallbackObject* thisObj = asCallbackObject(slot.slotBase());
@@ -485,9 +551,17 @@ JSValuePtr JSCallbackObject<Base>::callbackGetter(ExecState* exec, const Identif
if (JSObjectGetPropertyCallback getProperty = jsClass->getProperty) {
if (!propertyNameRef)
propertyNameRef = OpaqueJSString::create(propertyName.ustring());
- JSLock::DropAllLocks dropAllLocks(exec);
- if (JSValueRef value = getProperty(toRef(exec), thisRef, propertyNameRef.get(), toRef(exec->exceptionSlot())))
- return toJS(value);
+ JSValueRef exception = 0;
+ JSValueRef value;
+ {
+ JSLock::DropAllLocks dropAllLocks(exec);
+ value = getProperty(toRef(exec), thisRef, propertyNameRef.get(), &exception);
+ }
+ exec->setException(toJS(exec, exception));
+ if (value)
+ return toJS(exec, value);
+ if (exception)
+ return jsUndefined();
}
return throwError(exec, ReferenceError, "hasProperty callback returned true for a property that doesn't exist.");
diff --git a/src/3rdparty/webkit/JavaScriptCore/API/JSClassRef.cpp b/src/3rdparty/webkit/JavaScriptCore/API/JSClassRef.cpp
index 77a33f0..afde7ce 100644
--- a/src/3rdparty/webkit/JavaScriptCore/API/JSClassRef.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/API/JSClassRef.cpp
@@ -111,7 +111,7 @@ PassRefPtr<OpaqueJSClass> OpaqueJSClass::createNoAutomaticPrototype(const JSClas
return adoptRef(new OpaqueJSClass(definition, 0));
}
-void clearReferenceToPrototype(JSObjectRef prototype)
+static void clearReferenceToPrototype(JSObjectRef prototype)
{
OpaqueJSClassContextData* jsClassData = static_cast<OpaqueJSClassContextData*>(JSObjectGetPrivate(prototype));
ASSERT(jsClassData);
diff --git a/src/3rdparty/webkit/JavaScriptCore/API/JSContextRef.cpp b/src/3rdparty/webkit/JavaScriptCore/API/JSContextRef.cpp
index 40c45d3..a3bdc69 100644
--- a/src/3rdparty/webkit/JavaScriptCore/API/JSContextRef.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/API/JSContextRef.cpp
@@ -44,6 +44,7 @@ using namespace JSC;
JSContextGroupRef JSContextGroupCreate()
{
+ initializeThreading();
return toRef(JSGlobalData::create().releaseRef());
}
@@ -60,6 +61,7 @@ void JSContextGroupRelease(JSContextGroupRef group)
JSGlobalContextRef JSGlobalContextCreate(JSClassRef globalObjectClass)
{
+ initializeThreading();
#if PLATFORM(DARWIN)
// When running on Tiger or Leopard, or if the application was linked before JSGlobalContextCreate was changed
// to use a unique JSGlobalData, we use a shared one for compatibility.
@@ -95,7 +97,7 @@ JSGlobalContextRef JSGlobalContextCreateInGroup(JSContextGroupRef group, JSClass
JSGlobalObject* globalObject = new (globalData.get()) JSCallbackObject<JSGlobalObject>(globalObjectClass);
ExecState* exec = globalObject->globalExec();
- JSValuePtr prototype = globalObjectClass->prototype(exec);
+ JSValue prototype = globalObjectClass->prototype(exec);
if (!prototype)
prototype = jsNull();
globalObject->resetPrototype(prototype);
diff --git a/src/3rdparty/webkit/JavaScriptCore/API/JSContextRef.h b/src/3rdparty/webkit/JavaScriptCore/API/JSContextRef.h
index bc89511..c5c8a71 100644
--- a/src/3rdparty/webkit/JavaScriptCore/API/JSContextRef.h
+++ b/src/3rdparty/webkit/JavaScriptCore/API/JSContextRef.h
@@ -48,7 +48,7 @@ extern "C" {
synchronization is required.
@result The created JSContextGroup.
*/
-JS_EXPORT JSContextGroupRef JSContextGroupCreate() AVAILABLE_AFTER_WEBKIT_VERSION_3_1;
+JS_EXPORT JSContextGroupRef JSContextGroupCreate() AVAILABLE_IN_WEBKIT_VERSION_4_0;
/*!
@function
@@ -56,14 +56,14 @@ JS_EXPORT JSContextGroupRef JSContextGroupCreate() AVAILABLE_AFTER_WEBKIT_VERSIO
@param group The JSContextGroup to retain.
@result A JSContextGroup that is the same as group.
*/
-JS_EXPORT JSContextGroupRef JSContextGroupRetain(JSContextGroupRef group) AVAILABLE_AFTER_WEBKIT_VERSION_3_1;
+JS_EXPORT JSContextGroupRef JSContextGroupRetain(JSContextGroupRef group) AVAILABLE_IN_WEBKIT_VERSION_4_0;
/*!
@function
@abstract Releases a JavaScript context group.
@param group The JSContextGroup to release.
*/
-JS_EXPORT void JSContextGroupRelease(JSContextGroupRef group) AVAILABLE_AFTER_WEBKIT_VERSION_3_1;
+JS_EXPORT void JSContextGroupRelease(JSContextGroupRef group) AVAILABLE_IN_WEBKIT_VERSION_4_0;
/*!
@function
@@ -92,7 +92,7 @@ JS_EXPORT JSGlobalContextRef JSGlobalContextCreate(JSClassRef globalObjectClass)
@result A JSGlobalContext with a global object of class globalObjectClass and a context
group equal to group.
*/
-JS_EXPORT JSGlobalContextRef JSGlobalContextCreateInGroup(JSContextGroupRef group, JSClassRef globalObjectClass) AVAILABLE_AFTER_WEBKIT_VERSION_3_1;
+JS_EXPORT JSGlobalContextRef JSGlobalContextCreateInGroup(JSContextGroupRef group, JSClassRef globalObjectClass) AVAILABLE_IN_WEBKIT_VERSION_4_0;
/*!
@function
@@ -123,7 +123,7 @@ JS_EXPORT JSObjectRef JSContextGetGlobalObject(JSContextRef ctx);
@param ctx The JSContext whose group you want to get.
@result ctx's group.
*/
-JS_EXPORT JSContextGroupRef JSContextGetGroup(JSContextRef ctx) AVAILABLE_AFTER_WEBKIT_VERSION_3_1;
+JS_EXPORT JSContextGroupRef JSContextGetGroup(JSContextRef ctx) AVAILABLE_IN_WEBKIT_VERSION_4_0;
#ifdef __cplusplus
}
diff --git a/src/3rdparty/webkit/JavaScriptCore/API/JSObjectRef.cpp b/src/3rdparty/webkit/JavaScriptCore/API/JSObjectRef.cpp
index c08b8b0..50ee635 100644
--- a/src/3rdparty/webkit/JavaScriptCore/API/JSObjectRef.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/API/JSObjectRef.cpp
@@ -32,6 +32,7 @@
#include "ErrorConstructor.h"
#include "FunctionConstructor.h"
#include "Identifier.h"
+#include "InitializeThreading.h"
#include "JSArray.h"
#include "JSCallbackConstructor.h"
#include "JSCallbackFunction.h"
@@ -52,6 +53,7 @@ using namespace JSC;
JSClassRef JSClassCreate(const JSClassDefinition* definition)
{
+ initializeThreading();
RefPtr<OpaqueJSClass> jsClass = (definition->attributes & kJSClassAttributeNoAutomaticPrototype)
? OpaqueJSClass::createNoAutomaticPrototype(definition)
: OpaqueJSClass::create(definition);
@@ -103,10 +105,10 @@ JSObjectRef JSObjectMakeConstructor(JSContextRef ctx, JSClassRef jsClass, JSObje
exec->globalData().heap.registerThread();
JSLock lock(exec);
- JSValuePtr jsPrototype = jsClass
- ? jsClass->prototype(exec)
- : exec->lexicalGlobalObject()->objectPrototype();
-
+ JSValue jsPrototype = jsClass ? jsClass->prototype(exec) : 0;
+ if (!jsPrototype)
+ jsPrototype = exec->lexicalGlobalObject()->objectPrototype();
+
JSCallbackConstructor* constructor = new (exec) JSCallbackConstructor(exec->lexicalGlobalObject()->callbackConstructorStructure(), jsClass, callAsConstructor);
constructor->putDirect(exec->propertyNames().prototype, jsPrototype, DontEnum | DontDelete | ReadOnly);
return toRef(constructor);
@@ -120,7 +122,7 @@ JSObjectRef JSObjectMakeFunction(JSContextRef ctx, JSStringRef name, unsigned pa
Identifier nameID = name ? name->identifier(&exec->globalData()) : Identifier(exec, "anonymous");
- ArgList args;
+ MarkedArgumentBuffer args;
for (unsigned i = 0; i < parameterCount; i++)
args.append(jsString(exec, parameterNames[i]->ustring()));
args.append(jsString(exec, body->ustring()));
@@ -128,7 +130,7 @@ JSObjectRef JSObjectMakeFunction(JSContextRef ctx, JSStringRef name, unsigned pa
JSObject* result = constructFunction(exec, args, nameID, sourceURL->ustring(), startingLineNumber);
if (exec->hadException()) {
if (exception)
- *exception = toRef(exec->exception());
+ *exception = toRef(exec, exec->exception());
exec->clearException();
result = 0;
}
@@ -143,9 +145,9 @@ JSObjectRef JSObjectMakeArray(JSContextRef ctx, size_t argumentCount, const JSVa
JSObject* result;
if (argumentCount) {
- ArgList argList;
+ MarkedArgumentBuffer argList;
for (size_t i = 0; i < argumentCount; ++i)
- argList.append(toJS(arguments[i]));
+ argList.append(toJS(exec, arguments[i]));
result = constructArray(exec, argList);
} else
@@ -153,7 +155,7 @@ JSObjectRef JSObjectMakeArray(JSContextRef ctx, size_t argumentCount, const JSVa
if (exec->hadException()) {
if (exception)
- *exception = toRef(exec->exception());
+ *exception = toRef(exec, exec->exception());
exec->clearException();
result = 0;
}
@@ -167,14 +169,14 @@ JSObjectRef JSObjectMakeDate(JSContextRef ctx, size_t argumentCount, const JSVal
exec->globalData().heap.registerThread();
JSLock lock(exec);
- ArgList argList;
+ MarkedArgumentBuffer argList;
for (size_t i = 0; i < argumentCount; ++i)
- argList.append(toJS(arguments[i]));
+ argList.append(toJS(exec, arguments[i]));
JSObject* result = constructDate(exec, argList);
if (exec->hadException()) {
if (exception)
- *exception = toRef(exec->exception());
+ *exception = toRef(exec, exec->exception());
exec->clearException();
result = 0;
}
@@ -188,14 +190,14 @@ JSObjectRef JSObjectMakeError(JSContextRef ctx, size_t argumentCount, const JSVa
exec->globalData().heap.registerThread();
JSLock lock(exec);
- ArgList argList;
+ MarkedArgumentBuffer argList;
for (size_t i = 0; i < argumentCount; ++i)
- argList.append(toJS(arguments[i]));
+ argList.append(toJS(exec, arguments[i]));
JSObject* result = constructError(exec, argList);
if (exec->hadException()) {
if (exception)
- *exception = toRef(exec->exception());
+ *exception = toRef(exec, exec->exception());
exec->clearException();
result = 0;
}
@@ -209,14 +211,14 @@ JSObjectRef JSObjectMakeRegExp(JSContextRef ctx, size_t argumentCount, const JSV
exec->globalData().heap.registerThread();
JSLock lock(exec);
- ArgList argList;
+ MarkedArgumentBuffer argList;
for (size_t i = 0; i < argumentCount; ++i)
- argList.append(toJS(arguments[i]));
+ argList.append(toJS(exec, arguments[i]));
JSObject* result = constructRegExp(exec, argList);
if (exec->hadException()) {
if (exception)
- *exception = toRef(exec->exception());
+ *exception = toRef(exec, exec->exception());
exec->clearException();
result = 0;
}
@@ -224,18 +226,26 @@ JSObjectRef JSObjectMakeRegExp(JSContextRef ctx, size_t argumentCount, const JSV
return toRef(result);
}
-JSValueRef JSObjectGetPrototype(JSContextRef, JSObjectRef object)
+JSValueRef JSObjectGetPrototype(JSContextRef ctx, JSObjectRef object)
{
+ ExecState* exec = toJS(ctx);
+ exec->globalData().heap.registerThread();
+ JSLock lock(exec);
+
JSObject* jsObject = toJS(object);
- return toRef(jsObject->prototype());
+ return toRef(exec, jsObject->prototype());
}
-void JSObjectSetPrototype(JSContextRef, JSObjectRef object, JSValueRef value)
+void JSObjectSetPrototype(JSContextRef ctx, JSObjectRef object, JSValueRef value)
{
+ ExecState* exec = toJS(ctx);
+ exec->globalData().heap.registerThread();
+ JSLock lock(exec);
+
JSObject* jsObject = toJS(object);
- JSValuePtr jsValue = toJS(value);
+ JSValue jsValue = toJS(exec, value);
- jsObject->setPrototype(jsValue->isObject() ? jsValue : jsNull());
+ jsObject->setPrototype(jsValue.isObject() ? jsValue : jsNull());
}
bool JSObjectHasProperty(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName)
@@ -257,13 +267,13 @@ JSValueRef JSObjectGetProperty(JSContextRef ctx, JSObjectRef object, JSStringRef
JSObject* jsObject = toJS(object);
- JSValuePtr jsValue = jsObject->get(exec, propertyName->identifier(&exec->globalData()));
+ JSValue jsValue = jsObject->get(exec, propertyName->identifier(&exec->globalData()));
if (exec->hadException()) {
if (exception)
- *exception = toRef(exec->exception());
+ *exception = toRef(exec, exec->exception());
exec->clearException();
}
- return toRef(jsValue);
+ return toRef(exec, jsValue);
}
void JSObjectSetProperty(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef value, JSPropertyAttributes attributes, JSValueRef* exception)
@@ -274,7 +284,7 @@ void JSObjectSetProperty(JSContextRef ctx, JSObjectRef object, JSStringRef prope
JSObject* jsObject = toJS(object);
Identifier name(propertyName->identifier(&exec->globalData()));
- JSValuePtr jsValue = toJS(value);
+ JSValue jsValue = toJS(exec, value);
if (attributes && !jsObject->hasProperty(exec, name))
jsObject->putWithAttributes(exec, name, jsValue, attributes);
@@ -285,7 +295,7 @@ void JSObjectSetProperty(JSContextRef ctx, JSObjectRef object, JSStringRef prope
if (exec->hadException()) {
if (exception)
- *exception = toRef(exec->exception());
+ *exception = toRef(exec, exec->exception());
exec->clearException();
}
}
@@ -298,13 +308,13 @@ JSValueRef JSObjectGetPropertyAtIndex(JSContextRef ctx, JSObjectRef object, unsi
JSObject* jsObject = toJS(object);
- JSValuePtr jsValue = jsObject->get(exec, propertyIndex);
+ JSValue jsValue = jsObject->get(exec, propertyIndex);
if (exec->hadException()) {
if (exception)
- *exception = toRef(exec->exception());
+ *exception = toRef(exec, exec->exception());
exec->clearException();
}
- return toRef(jsValue);
+ return toRef(exec, jsValue);
}
@@ -315,12 +325,12 @@ void JSObjectSetPropertyAtIndex(JSContextRef ctx, JSObjectRef object, unsigned p
JSLock lock(exec);
JSObject* jsObject = toJS(object);
- JSValuePtr jsValue = toJS(value);
+ JSValue jsValue = toJS(exec, value);
jsObject->put(exec, propertyIndex, jsValue);
if (exec->hadException()) {
if (exception)
- *exception = toRef(exec->exception());
+ *exception = toRef(exec, exec->exception());
exec->clearException();
}
}
@@ -336,7 +346,7 @@ bool JSObjectDeleteProperty(JSContextRef ctx, JSObjectRef object, JSStringRef pr
bool result = jsObject->deleteProperty(exec, propertyName->identifier(&exec->globalData()));
if (exec->hadException()) {
if (exception)
- *exception = toRef(exec->exception());
+ *exception = toRef(exec, exec->exception());
exec->clearException();
}
return result;
@@ -387,19 +397,19 @@ JSValueRef JSObjectCallAsFunction(JSContextRef ctx, JSObjectRef object, JSObject
if (!jsThisObject)
jsThisObject = exec->globalThisValue();
- ArgList argList;
+ MarkedArgumentBuffer argList;
for (size_t i = 0; i < argumentCount; i++)
- argList.append(toJS(arguments[i]));
+ argList.append(toJS(exec, arguments[i]));
CallData callData;
CallType callType = jsObject->getCallData(callData);
if (callType == CallTypeNone)
return 0;
- JSValueRef result = toRef(call(exec, jsObject, callType, callData, jsThisObject, argList));
+ JSValueRef result = toRef(exec, call(exec, jsObject, callType, callData, jsThisObject, argList));
if (exec->hadException()) {
if (exception)
- *exception = toRef(exec->exception());
+ *exception = toRef(exec, exec->exception());
exec->clearException();
result = 0;
}
@@ -426,13 +436,13 @@ JSObjectRef JSObjectCallAsConstructor(JSContextRef ctx, JSObjectRef object, size
if (constructType == ConstructTypeNone)
return 0;
- ArgList argList;
+ MarkedArgumentBuffer argList;
for (size_t i = 0; i < argumentCount; i++)
- argList.append(toJS(arguments[i]));
+ argList.append(toJS(exec, arguments[i]));
JSObjectRef result = toRef(construct(exec, jsObject, constructType, constructData, argList));
if (exec->hadException()) {
if (exception)
- *exception = toRef(exec->exception());
+ *exception = toRef(exec, exec->exception());
exec->clearException();
result = 0;
}
@@ -465,7 +475,7 @@ JSPropertyNameArrayRef JSObjectCopyPropertyNames(JSContextRef ctx, JSObjectRef o
jsObject->getPropertyNames(exec, array);
size_t size = array.size();
- propertyNames->array.reserveCapacity(size);
+ propertyNames->array.reserveInitialCapacity(size);
for (size_t i = 0; i < size; ++i)
propertyNames->array.append(JSRetainPtr<JSStringRef>(Adopt, OpaqueJSString::create(array[i].ustring()).releaseRef()));
diff --git a/src/3rdparty/webkit/JavaScriptCore/API/JSObjectRef.h b/src/3rdparty/webkit/JavaScriptCore/API/JSObjectRef.h
index 461764c..3e8b0eb 100644
--- a/src/3rdparty/webkit/JavaScriptCore/API/JSObjectRef.h
+++ b/src/3rdparty/webkit/JavaScriptCore/API/JSObjectRef.h
@@ -441,7 +441,7 @@ JS_EXPORT JSObjectRef JSObjectMakeConstructor(JSContextRef ctx, JSClassRef jsCla
@discussion The behavior of this function does not exactly match the behavior of the built-in Array constructor. Specifically, if one argument
is supplied, this function returns an array with one element.
*/
-JS_EXPORT JSObjectRef JSObjectMakeArray(JSContextRef ctx, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) AVAILABLE_AFTER_WEBKIT_VERSION_3_1;
+JS_EXPORT JSObjectRef JSObjectMakeArray(JSContextRef ctx, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) AVAILABLE_IN_WEBKIT_VERSION_4_0;
/*!
@function
@@ -452,7 +452,7 @@ JS_EXPORT JSObjectRef JSObjectMakeArray(JSContextRef ctx, size_t argumentCount,
@param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
@result A JSObject that is a Date.
*/
-JS_EXPORT JSObjectRef JSObjectMakeDate(JSContextRef ctx, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) AVAILABLE_AFTER_WEBKIT_VERSION_3_1;
+JS_EXPORT JSObjectRef JSObjectMakeDate(JSContextRef ctx, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) AVAILABLE_IN_WEBKIT_VERSION_4_0;
/*!
@function
@@ -463,7 +463,7 @@ JS_EXPORT JSObjectRef JSObjectMakeDate(JSContextRef ctx, size_t argumentCount, c
@param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
@result A JSObject that is a Error.
*/
-JS_EXPORT JSObjectRef JSObjectMakeError(JSContextRef ctx, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) AVAILABLE_AFTER_WEBKIT_VERSION_3_1;
+JS_EXPORT JSObjectRef JSObjectMakeError(JSContextRef ctx, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) AVAILABLE_IN_WEBKIT_VERSION_4_0;
/*!
@function
@@ -474,7 +474,7 @@ JS_EXPORT JSObjectRef JSObjectMakeError(JSContextRef ctx, size_t argumentCount,
@param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
@result A JSObject that is a RegExp.
*/
-JS_EXPORT JSObjectRef JSObjectMakeRegExp(JSContextRef ctx, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) AVAILABLE_AFTER_WEBKIT_VERSION_3_1;
+JS_EXPORT JSObjectRef JSObjectMakeRegExp(JSContextRef ctx, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) AVAILABLE_IN_WEBKIT_VERSION_4_0;
/*!
@function
diff --git a/src/3rdparty/webkit/JavaScriptCore/API/JSStringRef.cpp b/src/3rdparty/webkit/JavaScriptCore/API/JSStringRef.cpp
index 6452ffc..8e236e4 100644
--- a/src/3rdparty/webkit/JavaScriptCore/API/JSStringRef.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/API/JSStringRef.cpp
@@ -26,6 +26,7 @@
#include "config.h"
#include "JSStringRef.h"
+#include "InitializeThreading.h"
#include "OpaqueJSString.h"
#include <wtf/unicode/UTF8.h>
@@ -34,11 +35,13 @@ using namespace WTF::Unicode;
JSStringRef JSStringCreateWithCharacters(const JSChar* chars, size_t numChars)
{
+ initializeThreading();
return OpaqueJSString::create(chars, numChars).releaseRef();
}
JSStringRef JSStringCreateWithUTF8CString(const char* string)
{
+ initializeThreading();
if (string) {
size_t length = strlen(string);
Vector<UChar, 1024> buffer(length);
diff --git a/src/3rdparty/webkit/JavaScriptCore/API/JSStringRefCF.cpp b/src/3rdparty/webkit/JavaScriptCore/API/JSStringRefCF.cpp
index 65edd09..d1f6fe3 100644
--- a/src/3rdparty/webkit/JavaScriptCore/API/JSStringRefCF.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/API/JSStringRefCF.cpp
@@ -27,6 +27,7 @@
#include "JSStringRefCF.h"
#include "APICast.h"
+#include "InitializeThreading.h"
#include "JSStringRef.h"
#include "OpaqueJSString.h"
#include <runtime/UString.h>
@@ -35,7 +36,11 @@
JSStringRef JSStringCreateWithCFString(CFStringRef string)
{
- CFIndex length = CFStringGetLength(string);
+ JSC::initializeThreading();
+
+ // We cannot use CFIndex here since CFStringGetLength can return values larger than
+ // it can hold. (<rdar://problem/6806478>)
+ size_t length = CFStringGetLength(string);
if (length) {
OwnArrayPtr<UniChar> buffer(new UniChar[length]);
CFStringGetCharacters(string, CFRangeMake(0, length), buffer.get());
@@ -44,7 +49,7 @@ JSStringRef JSStringCreateWithCFString(CFStringRef string)
} else {
return OpaqueJSString::create(0, 0).releaseRef();
}
- }
+}
CFStringRef JSStringCopyCFString(CFAllocatorRef alloc, JSStringRef string)
{
diff --git a/src/3rdparty/webkit/JavaScriptCore/API/JSValueRef.cpp b/src/3rdparty/webkit/JavaScriptCore/API/JSValueRef.cpp
index 351a105..2207181 100644
--- a/src/3rdparty/webkit/JavaScriptCore/API/JSValueRef.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/API/JSValueRef.cpp
@@ -41,66 +41,99 @@
#include <algorithm> // for std::min
-JSType JSValueGetType(JSContextRef, JSValueRef value)
+JSType JSValueGetType(JSContextRef ctx, JSValueRef value)
{
- JSC::JSValuePtr jsValue = toJS(value);
- if (jsValue->isUndefined())
+ JSC::ExecState* exec = toJS(ctx);
+ exec->globalData().heap.registerThread();
+ JSC::JSLock lock(exec);
+
+ JSC::JSValue jsValue = toJS(exec, value);
+
+ if (jsValue.isUndefined())
return kJSTypeUndefined;
- if (jsValue->isNull())
+ if (jsValue.isNull())
return kJSTypeNull;
- if (jsValue->isBoolean())
+ if (jsValue.isBoolean())
return kJSTypeBoolean;
- if (jsValue->isNumber())
+ if (jsValue.isNumber())
return kJSTypeNumber;
- if (jsValue->isString())
+ if (jsValue.isString())
return kJSTypeString;
- ASSERT(jsValue->isObject());
+ ASSERT(jsValue.isObject());
return kJSTypeObject;
}
using namespace JSC; // placed here to avoid conflict between JSC::JSType and JSType, above.
-bool JSValueIsUndefined(JSContextRef, JSValueRef value)
+bool JSValueIsUndefined(JSContextRef ctx, JSValueRef value)
{
- JSValuePtr jsValue = toJS(value);
- return jsValue->isUndefined();
+ ExecState* exec = toJS(ctx);
+ exec->globalData().heap.registerThread();
+ JSLock lock(exec);
+
+ JSValue jsValue = toJS(exec, value);
+ return jsValue.isUndefined();
}
-bool JSValueIsNull(JSContextRef, JSValueRef value)
+bool JSValueIsNull(JSContextRef ctx, JSValueRef value)
{
- JSValuePtr jsValue = toJS(value);
- return jsValue->isNull();
+ ExecState* exec = toJS(ctx);
+ exec->globalData().heap.registerThread();
+ JSLock lock(exec);
+
+ JSValue jsValue = toJS(exec, value);
+ return jsValue.isNull();
}
-bool JSValueIsBoolean(JSContextRef, JSValueRef value)
+bool JSValueIsBoolean(JSContextRef ctx, JSValueRef value)
{
- JSValuePtr jsValue = toJS(value);
- return jsValue->isBoolean();
+ ExecState* exec = toJS(ctx);
+ exec->globalData().heap.registerThread();
+ JSLock lock(exec);
+
+ JSValue jsValue = toJS(exec, value);
+ return jsValue.isBoolean();
}
-bool JSValueIsNumber(JSContextRef, JSValueRef value)
+bool JSValueIsNumber(JSContextRef ctx, JSValueRef value)
{
- JSValuePtr jsValue = toJS(value);
- return jsValue->isNumber();
+ ExecState* exec = toJS(ctx);
+ exec->globalData().heap.registerThread();
+ JSLock lock(exec);
+
+ JSValue jsValue = toJS(exec, value);
+ return jsValue.isNumber();
}
-bool JSValueIsString(JSContextRef, JSValueRef value)
+bool JSValueIsString(JSContextRef ctx, JSValueRef value)
{
- JSValuePtr jsValue = toJS(value);
- return jsValue->isString();
+ ExecState* exec = toJS(ctx);
+ exec->globalData().heap.registerThread();
+ JSLock lock(exec);
+
+ JSValue jsValue = toJS(exec, value);
+ return jsValue.isString();
}
-bool JSValueIsObject(JSContextRef, JSValueRef value)
+bool JSValueIsObject(JSContextRef ctx, JSValueRef value)
{
- JSValuePtr jsValue = toJS(value);
- return jsValue->isObject();
+ ExecState* exec = toJS(ctx);
+ exec->globalData().heap.registerThread();
+ JSLock lock(exec);
+
+ JSValue jsValue = toJS(exec, value);
+ return jsValue.isObject();
}
-bool JSValueIsObjectOfClass(JSContextRef, JSValueRef value, JSClassRef jsClass)
+bool JSValueIsObjectOfClass(JSContextRef ctx, JSValueRef value, JSClassRef jsClass)
{
- JSValuePtr jsValue = toJS(value);
+ ExecState* exec = toJS(ctx);
+ exec->globalData().heap.registerThread();
+ JSLock lock(exec);
+
+ JSValue jsValue = toJS(exec, value);
- if (JSObject* o = jsValue->getObject()) {
+ if (JSObject* o = jsValue.getObject()) {
if (o->inherits(&JSCallbackObject<JSGlobalObject>::info))
return static_cast<JSCallbackObject<JSGlobalObject>*>(o)->inherits(jsClass);
else if (o->inherits(&JSCallbackObject<JSObject>::info))
@@ -115,25 +148,28 @@ bool JSValueIsEqual(JSContextRef ctx, JSValueRef a, JSValueRef b, JSValueRef* ex
exec->globalData().heap.registerThread();
JSLock lock(exec);
- JSValuePtr jsA = toJS(a);
- JSValuePtr jsB = toJS(b);
+ JSValue jsA = toJS(exec, a);
+ JSValue jsB = toJS(exec, b);
- bool result = equal(exec, jsA, jsB); // false if an exception is thrown
+ bool result = JSValue::equal(exec, jsA, jsB); // false if an exception is thrown
if (exec->hadException()) {
if (exception)
- *exception = toRef(exec->exception());
+ *exception = toRef(exec, exec->exception());
exec->clearException();
}
return result;
}
-bool JSValueIsStrictEqual(JSContextRef, JSValueRef a, JSValueRef b)
+bool JSValueIsStrictEqual(JSContextRef ctx, JSValueRef a, JSValueRef b)
{
- JSValuePtr jsA = toJS(a);
- JSValuePtr jsB = toJS(b);
-
- bool result = strictEqual(jsA, jsB);
- return result;
+ ExecState* exec = toJS(ctx);
+ exec->globalData().heap.registerThread();
+ JSLock lock(exec);
+
+ JSValue jsA = toJS(exec, a);
+ JSValue jsB = toJS(exec, b);
+
+ return JSValue::strictEqual(jsA, jsB);
}
bool JSValueIsInstanceOfConstructor(JSContextRef ctx, JSValueRef value, JSObjectRef constructor, JSValueRef* exception)
@@ -142,32 +178,45 @@ bool JSValueIsInstanceOfConstructor(JSContextRef ctx, JSValueRef value, JSObject
exec->globalData().heap.registerThread();
JSLock lock(exec);
- JSValuePtr jsValue = toJS(value);
+ JSValue jsValue = toJS(exec, value);
+
JSObject* jsConstructor = toJS(constructor);
if (!jsConstructor->structure()->typeInfo().implementsHasInstance())
return false;
bool result = jsConstructor->hasInstance(exec, jsValue, jsConstructor->get(exec, exec->propertyNames().prototype)); // false if an exception is thrown
if (exec->hadException()) {
if (exception)
- *exception = toRef(exec->exception());
+ *exception = toRef(exec, exec->exception());
exec->clearException();
}
return result;
}
-JSValueRef JSValueMakeUndefined(JSContextRef)
+JSValueRef JSValueMakeUndefined(JSContextRef ctx)
{
- return toRef(jsUndefined());
+ ExecState* exec = toJS(ctx);
+ exec->globalData().heap.registerThread();
+ JSLock lock(exec);
+
+ return toRef(exec, jsUndefined());
}
-JSValueRef JSValueMakeNull(JSContextRef)
+JSValueRef JSValueMakeNull(JSContextRef ctx)
{
- return toRef(jsNull());
+ ExecState* exec = toJS(ctx);
+ exec->globalData().heap.registerThread();
+ JSLock lock(exec);
+
+ return toRef(exec, jsNull());
}
-JSValueRef JSValueMakeBoolean(JSContextRef, bool value)
+JSValueRef JSValueMakeBoolean(JSContextRef ctx, bool value)
{
- return toRef(jsBoolean(value));
+ ExecState* exec = toJS(ctx);
+ exec->globalData().heap.registerThread();
+ JSLock lock(exec);
+
+ return toRef(exec, jsBoolean(value));
}
JSValueRef JSValueMakeNumber(JSContextRef ctx, double value)
@@ -176,7 +225,7 @@ JSValueRef JSValueMakeNumber(JSContextRef ctx, double value)
exec->globalData().heap.registerThread();
JSLock lock(exec);
- return toRef(jsNumber(exec, value));
+ return toRef(exec, jsNumber(exec, value));
}
JSValueRef JSValueMakeString(JSContextRef ctx, JSStringRef string)
@@ -185,14 +234,17 @@ JSValueRef JSValueMakeString(JSContextRef ctx, JSStringRef string)
exec->globalData().heap.registerThread();
JSLock lock(exec);
- return toRef(jsString(exec, string->ustring()));
+ return toRef(exec, jsString(exec, string->ustring()));
}
bool JSValueToBoolean(JSContextRef ctx, JSValueRef value)
{
ExecState* exec = toJS(ctx);
- JSValuePtr jsValue = toJS(value);
- return jsValue->toBoolean(exec);
+ exec->globalData().heap.registerThread();
+ JSLock lock(exec);
+
+ JSValue jsValue = toJS(exec, value);
+ return jsValue.toBoolean(exec);
}
double JSValueToNumber(JSContextRef ctx, JSValueRef value, JSValueRef* exception)
@@ -201,12 +253,12 @@ double JSValueToNumber(JSContextRef ctx, JSValueRef value, JSValueRef* exception
exec->globalData().heap.registerThread();
JSLock lock(exec);
- JSValuePtr jsValue = toJS(value);
+ JSValue jsValue = toJS(exec, value);
- double number = jsValue->toNumber(exec);
+ double number = jsValue.toNumber(exec);
if (exec->hadException()) {
if (exception)
- *exception = toRef(exec->exception());
+ *exception = toRef(exec, exec->exception());
exec->clearException();
number = NaN;
}
@@ -219,12 +271,12 @@ JSStringRef JSValueToStringCopy(JSContextRef ctx, JSValueRef value, JSValueRef*
exec->globalData().heap.registerThread();
JSLock lock(exec);
- JSValuePtr jsValue = toJS(value);
+ JSValue jsValue = toJS(exec, value);
- RefPtr<OpaqueJSString> stringRef(OpaqueJSString::create(jsValue->toString(exec)));
+ RefPtr<OpaqueJSString> stringRef(OpaqueJSString::create(jsValue.toString(exec)));
if (exec->hadException()) {
if (exception)
- *exception = toRef(exec->exception());
+ *exception = toRef(exec, exec->exception());
exec->clearException();
stringRef.clear();
}
@@ -237,12 +289,12 @@ JSObjectRef JSValueToObject(JSContextRef ctx, JSValueRef value, JSValueRef* exce
exec->globalData().heap.registerThread();
JSLock lock(exec);
- JSValuePtr jsValue = toJS(value);
+ JSValue jsValue = toJS(exec, value);
- JSObjectRef objectRef = toRef(jsValue->toObject(exec));
+ JSObjectRef objectRef = toRef(jsValue.toObject(exec));
if (exec->hadException()) {
if (exception)
- *exception = toRef(exec->exception());
+ *exception = toRef(exec, exec->exception());
exec->clearException();
objectRef = 0;
}
@@ -255,7 +307,7 @@ void JSValueProtect(JSContextRef ctx, JSValueRef value)
exec->globalData().heap.registerThread();
JSLock lock(exec);
- JSValuePtr jsValue = toJS(value);
+ JSValue jsValue = toJS(exec, value);
gcProtect(jsValue);
}
@@ -265,6 +317,6 @@ void JSValueUnprotect(JSContextRef ctx, JSValueRef value)
exec->globalData().heap.registerThread();
JSLock lock(exec);
- JSValuePtr jsValue = toJS(value);
+ JSValue jsValue = toJS(exec, value);
gcUnprotect(jsValue);
}
diff --git a/src/3rdparty/webkit/JavaScriptCore/API/WebKitAvailability.h b/src/3rdparty/webkit/JavaScriptCore/API/WebKitAvailability.h
index 1273360..8402528 100644
--- a/src/3rdparty/webkit/JavaScriptCore/API/WebKitAvailability.h
+++ b/src/3rdparty/webkit/JavaScriptCore/API/WebKitAvailability.h
@@ -38,6 +38,7 @@
#define WEBKIT_VERSION_2_0 0x0200
#define WEBKIT_VERSION_3_0 0x0300
#define WEBKIT_VERSION_3_1 0x0310
+#define WEBKIT_VERSION_4_0 0x0400
#define WEBKIT_VERSION_LATEST 0x9999
#ifdef __APPLE__
@@ -640,123 +641,123 @@
/*
- * AVAILABLE_AFTER_WEBKIT_VERSION_3_1
+ * AVAILABLE_IN_WEBKIT_VERSION_4_0
*
- * Used on declarations introduced after WebKit 3.1
+ * Used on declarations introduced in WebKit 4.0
*/
#if WEBKIT_VERSION_MAX_ALLOWED < WEBKIT_VERSION_LATEST
- #define AVAILABLE_AFTER_WEBKIT_VERSION_3_1 UNAVAILABLE_ATTRIBUTE
+ #define AVAILABLE_IN_WEBKIT_VERSION_4_0 UNAVAILABLE_ATTRIBUTE
#elif WEBKIT_VERSION_MIN_REQUIRED < WEBKIT_VERSION_LATEST
- #define AVAILABLE_AFTER_WEBKIT_VERSION_3_1 WEAK_IMPORT_ATTRIBUTE
+ #define AVAILABLE_IN_WEBKIT_VERSION_4_0 WEAK_IMPORT_ATTRIBUTE
#else
- #define AVAILABLE_AFTER_WEBKIT_VERSION_3_1
+ #define AVAILABLE_IN_WEBKIT_VERSION_4_0
#endif
/*
- * AVAILABLE_AFTER_WEBKIT_VERSION_3_1_BUT_DEPRECATED
+ * AVAILABLE_IN_WEBKIT_VERSION_4_0_BUT_DEPRECATED
*
- * Used on declarations introduced after WebKit 3.1,
- * and deprecated after WebKit 3.1
+ * Used on declarations introduced in WebKit 4.0,
+ * and deprecated in WebKit 4.0
*/
#if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
- #define AVAILABLE_AFTER_WEBKIT_VERSION_3_1_BUT_DEPRECATED DEPRECATED_ATTRIBUTE
+ #define AVAILABLE_IN_WEBKIT_VERSION_4_0_BUT_DEPRECATED DEPRECATED_ATTRIBUTE
#else
- #define AVAILABLE_AFTER_WEBKIT_VERSION_3_1_BUT_DEPRECATED AVAILABLE_AFTER_WEBKIT_VERSION_3_1
+ #define AVAILABLE_IN_WEBKIT_VERSION_4_0_BUT_DEPRECATED AVAILABLE_IN_WEBKIT_VERSION_4_0
#endif
/*
- * AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_3_1
+ * AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0
*
* Used on declarations introduced in WebKit 1.0,
- * but later deprecated after WebKit 3.1
+ * but later deprecated in WebKit 4.0
*/
#if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
- #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_3_1 DEPRECATED_ATTRIBUTE
+ #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0 DEPRECATED_ATTRIBUTE
#else
- #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_3_1 AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER
+ #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0 AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER
#endif
/*
- * AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_3_1
+ * AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0
*
* Used on declarations introduced in WebKit 1.1,
- * but later deprecated after WebKit 3.1
+ * but later deprecated in WebKit 4.0
*/
#if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
- #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_3_1 DEPRECATED_ATTRIBUTE
+ #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0 DEPRECATED_ATTRIBUTE
#else
- #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_3_1 AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER
+ #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0 AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER
#endif
/*
- * AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_3_1
+ * AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0
*
* Used on declarations introduced in WebKit 1.2,
- * but later deprecated after WebKit 3.1
+ * but later deprecated in WebKit 4.0
*/
#if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
- #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_3_1 DEPRECATED_ATTRIBUTE
+ #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0 DEPRECATED_ATTRIBUTE
#else
- #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_3_1 AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER
+ #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0 AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER
#endif
/*
- * AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_3_1
+ * AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0
*
* Used on declarations introduced in WebKit 1.3,
- * but later deprecated after WebKit 3.1
+ * but later deprecated in WebKit 4.0
*/
#if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
- #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_3_1 DEPRECATED_ATTRIBUTE
+ #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0 DEPRECATED_ATTRIBUTE
#else
- #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_3_1 AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER
+ #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0 AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER
#endif
/*
- * AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_3_1
+ * AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0
*
* Used on declarations introduced in WebKit 2.0,
- * but later deprecated after WebKit 3.1
+ * but later deprecated in WebKit 4.0
*/
#if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
- #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_3_1 DEPRECATED_ATTRIBUTE
+ #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0 DEPRECATED_ATTRIBUTE
#else
- #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_3_1 AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER
+ #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0 AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER
#endif
/*
- * AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_3_1
+ * AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0
*
* Used on declarations introduced in WebKit 3.0,
- * but later deprecated after WebKit 3.1
+ * but later deprecated in WebKit 4.0
*/
#if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
- #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_3_1 DEPRECATED_ATTRIBUTE
+ #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0 DEPRECATED_ATTRIBUTE
#else
- #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_3_1 AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER
+ #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0 AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER
#endif
/*
- * AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_3_1
+ * AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0
*
* Used on declarations introduced in WebKit 3.1,
- * but later deprecated after WebKit 3.1
+ * but later deprecated in WebKit 4.0
*/
#if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
- #define AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_3_1 DEPRECATED_ATTRIBUTE
+ #define AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0 DEPRECATED_ATTRIBUTE
#else
- #define AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_3_1 AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER
+ #define AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0 AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER
#endif
/*
- * DEPRECATED_AFTER_WEBKIT_VERSION_3_1
+ * DEPRECATED_IN_WEBKIT_VERSION_4_0
*
- * Used on types deprecated after WebKit 3.1
+ * Used on types deprecated in WebKit 4.0
*/
#if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
- #define DEPRECATED_AFTER_WEBKIT_VERSION_3_1 DEPRECATED_ATTRIBUTE
+ #define DEPRECATED_IN_WEBKIT_VERSION_4_0 DEPRECATED_ATTRIBUTE
#else
- #define DEPRECATED_AFTER_WEBKIT_VERSION_3_1
+ #define DEPRECATED_IN_WEBKIT_VERSION_4_0
#endif
diff --git a/src/3rdparty/webkit/JavaScriptCore/ChangeLog b/src/3rdparty/webkit/JavaScriptCore/ChangeLog
index 3321570..fbda515 100644
--- a/src/3rdparty/webkit/JavaScriptCore/ChangeLog
+++ b/src/3rdparty/webkit/JavaScriptCore/ChangeLog
@@ -1,59 +1,10236 @@
-2009-01-22 Oliver Hunt <oliver@apple.com>
+2009-06-08 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Use $QMAKE_PATH_SEP instead of hardcoded / to fix Windows build
+
+ * JavaScriptCore.pri:
+ * JavaScriptCore.pro:
+ * jsc.pro:
+
+2009-06-07 Gavin Barraclough <barraclough@apple.com>
+
+ RS by Sam Weinig.
+
+ Remove bonus bogus \n from last commit.
+
+ * jit/JITStubs.cpp:
+ (JSC::):
+
+2009-06-07 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Change the implementation of op_throw so the stub function always modifies its
+ return address - if it doesn't find a 'catch' it will switch to a trampoline
+ to force a return from JIT execution. This saves memory, by avoiding the need
+ for a unique return for every op_throw.
+
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::emit_op_throw):
+ JITStubs::cti_op_throw now always changes its return address,
+ remove return code generated after the stub call (this is now
+ handled by ctiOpThrowNotCaught).
+ * jit/JITStubs.cpp:
+ (JSC::):
+ Add ctiOpThrowNotCaught definitions.
+ (JSC::JITStubs::DEFINE_STUB_FUNCTION):
+ Change cti_op_throw to always change its return address.
+ * jit/JITStubs.h:
+ Add ctiOpThrowNotCaught declaration.
+
+2009-06-05 Gavin Barraclough <barraclough@apple.com>
+
+ Rudder stamped by Sam Weinig.
+
+ Add missing ASSERT.
+
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::getRelocatedAddress):
+
+2009-06-05 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Switch storePtrWithPatch to take the initial immediate value as an argument.
+
+ * assembler/MacroAssemblerX86.h:
+ (JSC::MacroAssemblerX86::storePtrWithPatch):
+ * assembler/MacroAssemblerX86_64.h:
+ (JSC::MacroAssemblerX86_64::storePtrWithPatch):
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::emit_op_jsr):
+
+2009-06-05 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Remove patchLength..tByIdExternalLoadPrefix magic numbers from JIT.h.
+
+ These aren't really suitable values to be tracking within common code
+ of the JIT, since they are not (and realistically cannot) be checked
+ by ASSERTs, as the other repatch offsets are. Move this functionality
+ (skipping the REX prefix when patching load instructions to LEAs on
+ x86-64) into the X86Assembler.
+
+ * assembler/AbstractMacroAssembler.h:
+ (JSC::AbstractMacroAssembler::CodeLocationInstruction::repatchLoadPtrToLEA):
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::repatchLoadPtrToLEA):
+ * jit/JIT.h:
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::patchGetByIdSelf):
+ (JSC::JIT::patchPutByIdReplace):
+
+2009-06-05 Shinichiro Hamaji <hamaji@chromium.org>
+
+ Bug 26160: Compile fails in MacOSX when GNU fileutils are installed
+
+ <https://bugs.webkit.org/show_bug.cgi?id=26160>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Use /bin/ln instead of ln for cases where this command is used with -h option.
+ As this option is not supported by GNU fileutils, this change helps users
+ who have GNU fileutils in their PATH.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+
+2009-06-05 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Remove DoubleNotEqual floating point comparison condition for now -
+ it is not used, and it is unclear the semantics are correct (I think
+ this comparison would actually give you not-equal-or-unordered, which
+ might be what is wanted... we can revisit this interface & get it
+ right when required).
+
+ Also, fix asserts in branchArith32 ops. All adds & subs can check
+ for Signed, multiply only sets OF so can only check for overflow.
+
+ * assembler/MacroAssemblerX86Common.h:
+ (JSC::MacroAssemblerX86Common::):
+ (JSC::MacroAssemblerX86Common::branchAdd32):
+ (JSC::MacroAssemblerX86Common::branchMul32):
+ (JSC::MacroAssemblerX86Common::branchSub32):
+
+2009-06-05 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Minor tidy up in JITStubs.
+
+ * jit/JITStubs.cpp:
+ (JSC::StackHack::StackHack):
+ * jit/JITStubs.h:
+
+2009-06-05 Koen Kooi <koen@dominion.thruhere.net>
+
+ Reviewed by Xan Lopez.
+
+ Build fix for glib unicode backend.
+
+ * wtf/unicode/glib/UnicodeMacrosFromICU.h:
+
+2009-06-05 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ 3 tiny cleanups:
+
+ * assembler/MacroAssemblerX86.h:
+ * assembler/MacroAssemblerX86_64.h:
+ (JSC::MacroAssemblerX86_64::storePtrWithPatch):
+ store*() methods should take an ImplicitAddress, rather than an Address.
+ * assembler/X86Assembler.h:
+ Make patchPointer private.
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::emit_op_ret):
+ Remove empty line at end of function.
+
+2009-06-05 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Encapsulate many uses of void* in the assembler & jit with types that provide
+ more semantic information. The new types are:
+
+ * MacroAssemblerCodePtr - this wraps a pointer into JIT generated code.
+ * FunctionPtr - this wraps a pointer to a C/C++ function in JSC.
+ * ReturnAddressPtr - this wraps a return address resulting from a 'call' instruction.
+
+ Wrapping these types allows for stronger type-checking than is possible with everything
+ represented a void*. For example, it is now enforced by the type system that near
+ calls can only be linked to JIT code and not to C functions in JSC (this was previously
+ required, but could not be enforced on the interface).
+
+ * assembler/AbstractMacroAssembler.h:
+ (JSC::AbstractMacroAssembler::CodeLocationCommon::CodeLocationCommon):
+ (JSC::AbstractMacroAssembler::CodeLocationCommon::dataLocation):
+ (JSC::AbstractMacroAssembler::CodeLocationCommon::executableAddress):
+ (JSC::AbstractMacroAssembler::CodeLocationCommon::reset):
+ (JSC::AbstractMacroAssembler::CodeLocationInstruction::repatchLoadToLEA):
+ (JSC::AbstractMacroAssembler::CodeLocationInstruction::CodeLocationInstruction):
+ (JSC::AbstractMacroAssembler::CodeLocationLabel::addressForSwitch):
+ (JSC::AbstractMacroAssembler::CodeLocationLabel::addressForExceptionHandler):
+ (JSC::AbstractMacroAssembler::CodeLocationLabel::addressForJSR):
+ (JSC::AbstractMacroAssembler::CodeLocationLabel::operator!):
+ (JSC::AbstractMacroAssembler::CodeLocationLabel::reset):
+ (JSC::AbstractMacroAssembler::CodeLocationLabel::CodeLocationLabel):
+ (JSC::AbstractMacroAssembler::CodeLocationLabel::getJumpDestination):
+ (JSC::AbstractMacroAssembler::CodeLocationJump::relink):
+ (JSC::AbstractMacroAssembler::CodeLocationJump::CodeLocationJump):
+ (JSC::AbstractMacroAssembler::CodeLocationCall::relink):
+ (JSC::AbstractMacroAssembler::CodeLocationCall::calleeReturnAddressValue):
+ (JSC::AbstractMacroAssembler::CodeLocationCall::CodeLocationCall):
+ (JSC::AbstractMacroAssembler::CodeLocationNearCall::relink):
+ (JSC::AbstractMacroAssembler::CodeLocationNearCall::calleeReturnAddressValue):
+ (JSC::AbstractMacroAssembler::CodeLocationNearCall::CodeLocationNearCall):
+ (JSC::AbstractMacroAssembler::CodeLocationDataLabel32::repatch):
+ (JSC::AbstractMacroAssembler::CodeLocationDataLabel32::CodeLocationDataLabel32):
+ (JSC::AbstractMacroAssembler::CodeLocationDataLabelPtr::repatch):
+ (JSC::AbstractMacroAssembler::CodeLocationDataLabelPtr::CodeLocationDataLabelPtr):
+ (JSC::AbstractMacroAssembler::ProcessorReturnAddress::relinkCallerToTrampoline):
+ (JSC::AbstractMacroAssembler::ProcessorReturnAddress::relinkCallerToFunction):
+ (JSC::AbstractMacroAssembler::ProcessorReturnAddress::relinkNearCallerToTrampoline):
+ (JSC::AbstractMacroAssembler::ProcessorReturnAddress::addressForLookup):
+ (JSC::AbstractMacroAssembler::trampolineAt):
+ (JSC::AbstractMacroAssembler::PatchBuffer::link):
+ (JSC::AbstractMacroAssembler::PatchBuffer::performFinalization):
+ (JSC::::CodeLocationCommon::instructionAtOffset):
+ (JSC::::CodeLocationCommon::labelAtOffset):
+ (JSC::::CodeLocationCommon::jumpAtOffset):
+ (JSC::::CodeLocationCommon::callAtOffset):
+ (JSC::::CodeLocationCommon::nearCallAtOffset):
+ (JSC::::CodeLocationCommon::dataLabelPtrAtOffset):
+ (JSC::::CodeLocationCommon::dataLabel32AtOffset):
+ * assembler/MacroAssemblerCodeRef.h:
+ (JSC::FunctionPtr::FunctionPtr):
+ (JSC::FunctionPtr::value):
+ (JSC::FunctionPtr::executableAddress):
+ (JSC::ReturnAddressPtr::ReturnAddressPtr):
+ (JSC::ReturnAddressPtr::value):
+ (JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr):
+ (JSC::MacroAssemblerCodePtr::executableAddress):
+ (JSC::MacroAssemblerCodePtr::dataLocation):
+ (JSC::MacroAssemblerCodeRef::MacroAssemblerCodeRef):
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::patchPointerForCall):
+ * jit/JIT.cpp:
+ (JSC::ctiPatchNearCallByReturnAddress):
+ (JSC::ctiPatchCallByReturnAddress):
+ (JSC::JIT::privateCompile):
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ * jit/JIT.h:
+ (JSC::JIT::compileCTIMachineTrampolines):
+ * jit/JITCall.cpp:
+ (JSC::JIT::compileOpCall):
+ * jit/JITCode.h:
+ (JSC::JITCode::operator !):
+ (JSC::JITCode::addressForCall):
+ (JSC::JITCode::offsetOf):
+ (JSC::JITCode::execute):
+ (JSC::JITCode::size):
+ (JSC::JITCode::HostFunction):
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::emitNakedCall):
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::privateCompilePutByIdTransition):
+ (JSC::JIT::patchGetByIdSelf):
+ (JSC::JIT::patchPutByIdReplace):
+ (JSC::JIT::privateCompilePatchGetArrayLength):
+ (JSC::JIT::privateCompileGetByIdProto):
+ (JSC::JIT::privateCompileGetByIdChain):
+ * jit/JITStubs.cpp:
+ (JSC::JITThunks::JITThunks):
+ (JSC::JITThunks::tryCachePutByID):
+ (JSC::JITThunks::tryCacheGetByID):
+ (JSC::JITStubs::DEFINE_STUB_FUNCTION):
+ * jit/JITStubs.h:
+ (JSC::JITThunks::ctiArrayLengthTrampoline):
+ (JSC::JITThunks::ctiStringLengthTrampoline):
+ (JSC::JITThunks::ctiVirtualCallPreLink):
+ (JSC::JITThunks::ctiVirtualCallLink):
+ (JSC::JITThunks::ctiVirtualCall):
+ (JSC::JITThunks::ctiNativeCallThunk):
+ * yarr/RegexJIT.h:
+ (JSC::Yarr::RegexCodeBlock::operator!):
+ (JSC::Yarr::RegexCodeBlock::execute):
+
+2009-06-05 Antti Koivisto <antti@apple.com>
+
+ Try to unbreak Windows build.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+
+2009-06-03 Antti Koivisto <antti@apple.com>
+
+ Reviewed by Dave Kilzer.
+
+ https://bugs.webkit.org/show_bug.cgi?id=13128
+ Safari not obeying cache header
+
+ Export JSC::parseDate()
+
+ * JavaScriptCore.exp:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+
+2009-06-04 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Bug in property caching of getters and setters.
+
+ Make sure that the transition logic accounts for getters and setters.
+ If we don't we end up screwing up the transition tables so that some
+ transitions will start incorrectly believing that they need to check
+ for getters and setters.
+
+ * runtime/JSObject.cpp:
+ (JSC::JSObject::defineGetter):
+ (JSC::JSObject::defineSetter):
+ * runtime/JSObject.h:
+ (JSC::):
+ * runtime/Structure.h:
+
+2009-06-04 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Minor tweak to PatchBuffer, change it so it no longer holds a CodeRef, and instead
+ holds a separate code pointer and executable pool. Since it now always holds its
+ own copy of the code size, and to simplify the construction sequence, it's neater
+ this way.
+
+ * assembler/AbstractMacroAssembler.h:
+ (JSC::AbstractMacroAssembler::PatchBuffer::PatchBuffer):
+ (JSC::AbstractMacroAssembler::PatchBuffer::finalizeCode):
+ (JSC::AbstractMacroAssembler::PatchBuffer::code):
+ (JSC::AbstractMacroAssembler::PatchBuffer::performFinalization):
+
+2009-06-04 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Remove 'JIT_STUB_ARGUMENT_STACK' this is unused and untested.
+
+ This just leaves JIT_STUB_ARGUMENT_REGISTER and JIT_STUB_ARGUMENT_VA_LIST.
+ Since JIT_STUB_ARGUMENT_REGISTER is the sensible configuration on most platforms,
+ remove this define and make this the default behaviour.
+ Platforms must now define JIT_STUB_ARGUMENT_VA_LIST to get crazy va_list voodoo,
+ if they so desire.
+
+ (Refactoring of #ifdefs only, no functional change, no performance impact.)
+
+ * jit/JIT.h:
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::restoreArgumentReference):
+ (JSC::JIT::restoreArgumentReferenceForTrampoline):
+ * jit/JITStubs.cpp:
+ (JSC::):
+ * jit/JITStubs.h:
+ * wtf/Platform.h:
+
+2009-06-04 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam Weinig.
+
+ * jit/JITArithmetic.cpp:
+ Remove some redundant typedefs, unused since arithmetic was added to the MacroAssembler interface.
+
+2009-06-04 Brent Fulgham <bfulgham@webkit.org>
+
+ Build fix due to header include problem.
+
+ * interpreter/Interpreter.h: Remove wtf from includes so that
+ compile can find the headers in expected places.
+
+2009-06-04 Zoltan Horvath <hzoltan@inf.u-szeged.hu>
+
+ Reviewed by Darin Adler.
+
+ HashTable class (JavaScriptCore/wtf/HashTable.h) doesn't instantiated by 'new', so
+ inheritance was removed. HashTable struct has been instantiated by operator new in
+ JSGlobalData.cpp:106.
+ HashTable couldn't inherited from FastAllocBase since struct with inheritance is
+ no longer POD, so HashTable struct has been instantiated by fastNew, destroyed by
+ fastDelete.
+
+ * interpreter/Interpreter.h:
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::JSGlobalData):
+ (JSC::JSGlobalData::~JSGlobalData):
+ * wtf/HashTable.h:
+
+2009-06-04 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Wrap the code that plants pushes/pops planted by JIT in explanatorily named
+ methods; move property storage reallocation into a standard stub function.
+
+ ~No performance impact (possible <1% progression on x86-64, likely just noise).
+
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompile):
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ Wrap calls to push/pop.
+ * jit/JIT.h:
+ Declare the new wrapper methods.
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::preverveReturnAddressAfterCall):
+ (JSC::JIT::restoreReturnAddressBeforeReturn):
+ Define the new wrapper methods.
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::emit_op_end):
+ (JSC::JIT::emit_op_ret):
+ Wrap calls to push/pop.
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::privateCompilePutByIdTransition):
+ Move property storage reallocation into a standard stub function.
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::DEFINE_STUB_FUNCTION):
+ * jit/JITStubs.h:
+ (JSC::JITStubs::):
+
+2009-06-04 Laszlo Gombos <laszlo.1.gombos@nokia.com>
+
+ Reviewed by Ariya Hidayat.
+
+ [Qt] Single-threaded QtWebKit configuration
+ <https://bugs.webkit.org/show_bug.cgi?id=26015>
+
+ * JavaScriptCore.pri: Use ThreadingNone.cpp instead of
+ ThreadingQt.cpp and make sure ENABLE_JSC_MULTIPLE_THREADS is turned off
+ when ENABLE_SINGLE_THREADED is tuned on
+ * wtf/ThreadingNone.cpp:
+ (WTF::ThreadCondition::wait): Fix compilation warning.
+ (WTF::ThreadCondition::timedWait): Ditto.
+
+2009-06-02 Mark Rowe <mrowe@apple.com>
+
+ Reviewed by Anders Carlsson.
+
+ Remove workaround that was added to address <rdar://problem/5488678> as it no longer affects our Tiger builds.
+
+ * Configurations/Base.xcconfig:
+
+2009-06-02 Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Sam Weinig.
+
+ Use C-style comments in Platform.h so it can be included from C
+ files.
+
+ * wtf/Platform.h:
+
+2009-06-02 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ Rubber-stamped by Simon Hausmann.
+
+ Use File::Spec->tmpdir instead of hardcoded paths for tempfile() dir
+
+ This fixes the Windows-build if the user does not have a /tmp directory.
+
+ * pcre/dftables:
+
+2009-06-02 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver ">>" Hunt.
+
+ emitSlow_op_rshift is linking the wrong number of slow cases, if !supportsFloatingPoint().
+ Fixerate, and refactor/comment the code a little to make it clearer what is going on.
+
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::emit_op_rshift):
+ (JSC::JIT::emitSlow_op_rshift):
+
+2009-06-01 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by NOBODY - speculative windows build fix (errm, for the other patch!).
+
+ * jit/JITStubs.cpp:
+ (JSC::):
+
+2009-06-01 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by NOBODY - speculative windows build fix.
+
+ * assembler/AbstractMacroAssembler.h:
+ (JSC::::CodeLocationCall::CodeLocationCall):
+ (JSC::::CodeLocationNearCall::CodeLocationNearCall):
+
+2009-06-01 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Olliej Hunt.
+
+ Change JITStub functions from being static members on the JITStub class to be
+ global extern "C" functions, and switch their the function signature declaration
+ in the definition of the functions to be C-macro generated. This makes it easier
+ to work with the stub functions from assembler code (since the names no longer
+ require mangling), and by delaring the functions with a macro we can look at
+ also auto-generating asm thunks to wrap the JITStub functions to perform the
+ work currently in 'restoreArgumentReference' (as a memory saving).
+
+ Making this change also forces us to be a bit more realistic about what is private
+ on the Register and CallFrame objects. Presently most everything on these classes
+ is private, and the classes have plenty of friends. We could befriend all the
+ global functions to perpetuate the delusion of encapsulation, but using friends is
+ a bit of a sledgehammer solution here - since friends can poke around with all of
+ the class's privates, and since all the major classes taht operate on Regsiters are
+ currently friends, right there is currently in practice very little protection at
+ all. Better to start removing friend delclarations, and exposing just the parts
+ that need to be exposed.
+
+ * interpreter/CallFrame.h:
+ (JSC::ExecState::returnPC):
+ (JSC::ExecState::setCallerFrame):
+ (JSC::ExecState::returnValueRegister):
+ (JSC::ExecState::setArgumentCount):
+ (JSC::ExecState::setCallee):
+ (JSC::ExecState::setCodeBlock):
+ * interpreter/Interpreter.h:
+ * interpreter/Register.h:
+ (JSC::Register::Register):
+ (JSC::Register::i):
+ * jit/JITStubs.cpp:
+ (JSC::):
+ (JSC::JITThunks::JITThunks):
+ (JSC::JITThunks::tryCachePutByID):
+ (JSC::JITThunks::tryCacheGetByID):
+ (JSC::JITStubs::DEFINE_STUB_FUNCTION):
+ * jit/JITStubs.h:
+ (JSC::JITStubs::):
+ * runtime/JSFunction.h:
+ (JSC::JSFunction::nativeFunction):
+ (JSC::JSFunction::classInfo):
+ * runtime/JSGlobalData.h:
+
+2009-06-01 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Tidy up the literal parser.
+
+ Make the number lexing in the LiteralParser exactly match the JSON spec, which
+ makes us cover more cases, but also more strict. Also made string lexing only
+ allow double-quoted strings.
+
+ * runtime/LiteralParser.cpp:
+ (JSC::LiteralParser::Lexer::lex):
+ (JSC::LiteralParser::Lexer::lexString):
+ (JSC::LiteralParser::Lexer::lexNumber):
+
+2009-06-01 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Sam "WX" Weinig.
+
+ Allow the JIT to operate without relying on use of RWX memory, on platforms where this is supported.
+
+ This patch adds a switch to Platform.h (ENABLE_ASSEMBLER_WX_EXCLUSIVE) which enables this mode of operation.
+ When this flag is set, all executable memory will be allocated RX, and switched to RW only whilst being
+ modified. Upon completion of code generation the protection is switched back to RX to allow execution.
+
+ Further optimization will be required before it is desirable to enable this mode of operation by default;
+ enabling this presently incurs a 5%-10% regression.
+
+ (Submitting disabled - no performance impact).
+
+ * assembler/AbstractMacroAssembler.h:
+ (JSC::AbstractMacroAssembler::CodeLocationInstruction::repatchLoadToLEA):
+ (JSC::AbstractMacroAssembler::CodeLocationLabel::fromFunctionPointer):
+ (JSC::AbstractMacroAssembler::CodeLocationJump::relink):
+ (JSC::AbstractMacroAssembler::CodeLocationCall::relink):
+ (JSC::AbstractMacroAssembler::CodeLocationNearCall::relink):
+ (JSC::AbstractMacroAssembler::CodeLocationDataLabel32::repatch):
+ (JSC::AbstractMacroAssembler::CodeLocationDataLabelPtr::repatch):
+ (JSC::AbstractMacroAssembler::ProcessorReturnAddress::relinkCallerToTrampoline):
+ (JSC::AbstractMacroAssembler::ProcessorReturnAddress::relinkCallerToFunction):
+ (JSC::AbstractMacroAssembler::ProcessorReturnAddress::relinkNearCallerToTrampoline):
+ (JSC::AbstractMacroAssembler::ProcessorReturnAddress::relinkNearCallerToFunction):
+ (JSC::AbstractMacroAssembler::PatchBuffer::PatchBuffer):
+ (JSC::AbstractMacroAssembler::PatchBuffer::~PatchBuffer):
+ (JSC::AbstractMacroAssembler::PatchBuffer::link):
+ (JSC::AbstractMacroAssembler::PatchBuffer::patch):
+ (JSC::AbstractMacroAssembler::PatchBuffer::performFinalization):
+ (JSC::::CodeLocationCommon::nearCallAtOffset):
+ (JSC::::CodeLocationCall::CodeLocationCall):
+ (JSC::::CodeLocationNearCall::CodeLocationNearCall):
+ * assembler/AssemblerBuffer.h:
+ (JSC::AssemblerBuffer::executableCopy):
+ * assembler/X86Assembler.h:
+ (JSC::CAN_SIGN_EXTEND_U32_64):
+ (JSC::X86Assembler::linkJump):
+ (JSC::X86Assembler::linkCall):
+ (JSC::X86Assembler::patchPointer):
+ (JSC::X86Assembler::relinkJump):
+ (JSC::X86Assembler::relinkCall):
+ (JSC::X86Assembler::repatchInt32):
+ (JSC::X86Assembler::repatchPointer):
+ (JSC::X86Assembler::repatchLoadToLEA):
+ (JSC::X86Assembler::patchInt32):
+ (JSC::X86Assembler::patchRel32):
+ * jit/ExecutableAllocator.h:
+ (JSC::ExecutableAllocator::):
+ (JSC::ExecutableAllocator::makeWritable):
+ (JSC::ExecutableAllocator::makeExecutable):
+ * jit/ExecutableAllocatorFixedVMPool.cpp:
+ (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
+ * jit/ExecutableAllocatorPosix.cpp:
+ (JSC::ExecutablePool::systemAlloc):
+ (JSC::ExecutablePool::systemRelease):
+ (JSC::ExecutableAllocator::reprotectRegion):
+ * jit/ExecutableAllocatorWin.cpp:
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::patchGetByIdSelf):
+ (JSC::JIT::patchPutByIdReplace):
+ * wtf/Platform.h:
+
+2009-05-29 Zoltan Horvath <hzoltan@inf.u-szeged.hu>
+
+ Reviewed by Darin Adler.
+
+ Inherits Interpreter class from FastAllocBase because it has been
+ instantiated by 'new' in JavaScriptCore/runtime/JSGlobalData.cpp.
+
+ * interpreter/Interpreter.h:
+
+2009-06-01 David Levin <levin@chromium.org>
+
+ Reviewed by NOBODY (windows build fix).
+
+ Add exports for windows (corresponding to the JavaScriptCore.exp modification
+ in the previous change).
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+
+2009-06-01 David Levin <levin@chromium.org>
+
+ Reviewed by Darin Alder and Maciej Stachowiak.
+
+ Bug 26057: StringImpl should share buffers with UString.
+ https://bugs.webkit.org/show_bug.cgi?id=26057
+
+ * JavaScriptCore.exp:
+ * runtime/UString.cpp:
+ (JSC::UString::Rep::create):
+ (JSC::UString::BaseString::sharedBuffer): Only do the sharing when
+ the buffer exceeds a certain size. The size was tuned by running
+ various dom benchmarks with numbers ranging from 20 to 800 and finding
+ a place that seemed to do the best overall.
+ * runtime/UString.h:
+
+2009-05-31 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Olliej "you just need to change NativeFunctionWrapper.h" Hunt.
+
+ Add ENABLE_JIT_OPTIMIZE_NATIVE_CALL switch to allow JIT to operate without native call optimizations.
+
+ * runtime/NativeFunctionWrapper.h:
+ * wtf/Platform.h:
+
+2009-05-30 Darin Adler <darin@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ <rdar://problem/6935193> REGRESSION (r42734): Celtic Kane JavaScript benchmark does not run:
+ "Maximum call stack size exceeded"
+
+ * runtime/ArrayPrototype.cpp:
+ (JSC::arrayProtoFuncToString): Use the same recursion limit as the other recursion checks.
+ We need a limit of at least 100 to run the benchmark above.
+ (JSC::arrayProtoFuncToLocaleString): Ditto.
+ (JSC::arrayProtoFuncJoin): Ditto.
+
+2009-05-28 Dirk Schulze <krit@webkit.org>
+
+ Reviewed by Nikolas Zimmermann.
+
+ Added new build flag --filters for Mac. More details in WebCore/ChangeLog.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2009-05-27 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Mark Rowe.
+
+ <rdar://problem/6928025> Stack overflow in JSC::stringProtoFuncReplace() running jsFunFuzz
+
+ We should always check for exceptions after creating a CachedCall, this wasn't being done in
+ the string replace logic.
+
+ * runtime/StringPrototype.cpp:
+ (JSC::stringProtoFuncReplace):
+
+2009-05-27 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
+
+ Unreviewed (make distcheck) build fix; adding missing headers.
+
+ * GNUmakefile.am:
+
+2009-05-27 Jessie Berlin <jberlin@apple.com>
+
+ Reviewed by Adam Roben
+
+ Fix the Windows build.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+
+2009-05-27 Fridrich Strba <fridrich.strba@bluewin.ch>
+
+ Reviewed by Gustavo Noronha.
+
+ When building on Windows, consider Windows specific files.
+
+ * GNUmakefile.am:
+
+2009-05-27 Fridrich Strba <fridrich.strba@bluewin.ch>
+
+ Reviewed by Maciej Stachowiak.
+
+ When building with MinGW, don't use the __declspec(dl{import,export})
+ decorations and rely on the linker to use its nifty auto-import feature.
+ It is extremely hard to get the decorations right with MinGW in general
+ and impossible in WebKit, where the resulting shared library is linking
+ together some static libraries.
+
+ * config.h:
+
+2009-05-26 Holger Hans Peter Freyther <zecke@selfish.org>
+
+ Reviewed by Xan Lopez.
+
+ https://bugs.webkit.org/show_bug.cgi?id=25613
+
+ Be able to use GOwnPtr for GHashTable as well. The assumption
+ is that the hash table has been created with g_hash_table_new_full
+ and has proper destruction functions.
+
+ * wtf/GOwnPtr.cpp:
+ (WTF::GHashTable):
+ * wtf/GOwnPtr.h:
+
+2009-05-26 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ <rdar://problem/6924033> REGRESSION: Assertion failure due to forward references
+
+ Add a pattern type for forward references to ensure that we don't confuse the
+ quantifier alternatives assertion.
+
+ * yarr/RegexCompiler.cpp:
+ (JSC::Yarr::RegexPatternConstructor::atomBackReference):
+ (JSC::Yarr::RegexPatternConstructor::setupAlternativeOffsets):
+ * yarr/RegexInterpreter.cpp:
+ (JSC::Yarr::ByteCompiler::emitDisjunction):
+ * yarr/RegexJIT.cpp:
+ (JSC::Yarr::RegexGenerator::generateTerm):
+ * yarr/RegexPattern.h:
+ (JSC::Yarr::PatternTerm::):
+ (JSC::Yarr::PatternTerm::PatternTerm):
+ (JSC::Yarr::PatternTerm::ForwardReference):
+
+2009-05-26 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Fix for: <rdar://problem/6918095> REGRESSION: jQuery load() issue (25981),
+ and also an ASSERT failure on http://ihasahotdog.com/.
+
+ When overwriting a property on a dictionary with a cached specific value,
+ clear the cache if new value being written is different.
+
+ * JavaScriptCore.exp:
+ Export the new symbols.
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::cti_op_get_by_id_method_check_second):
+ Close dictionary prototypes upon caching a method access, as would happen when caching
+ a regular get_by_id.
+ * runtime/JSObject.h:
+ (JSC::JSObject::propertyStorage):
+ (JSC::JSObject::locationForOffset):
+ Make these methods private.
+ (JSC::JSObject::putDirectInternal):
+ When overwriting a property on a dictionary with a cached specific value,
+ clear the cache if new value being written is different.
+ * runtime/Structure.cpp:
+ (JSC::Structure::despecifyDictionaryFunction):
+ Reset the specific value field for a given property in a dictionary.
+ (JSC::Structure::despecifyFunctionTransition):
+ Rename of 'changeFunctionTransition' (this was already internally refered to as a despecification).
+ * runtime/Structure.h:
+ Declare new method.
+
+2009-05-26 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver "pieces of eight" Hunt.
+
+ When reseting RegexPattern class, should fully reset the class, not just bits of it.
+ In particular, we delete the cached character classes (for wordchars, etc), but do
+ not reset the set of pointers to the cached classes. In the case of a repeated parse
+ due to an illegal back-reference we will continue to use the deleted character class.
+
+ * yarr/RegexPattern.h:
+ (JSC::Yarr::RegexPattern::reset):
+
+2009-05-26 Brent Fulgham <bfulgham@webkit.org>
+
+ Build fix to correct r44161.
+
+ * wtf/FastAllocBase.h:
+
+2009-05-26 Zoltan Horvath <horvath.zoltan.6@stud.u-szeged.hu>
+
+ Reviewed by Maciej Stachowiak.
+
+ Inherite HashTable from FastAllocBase, because it has been instantiated by
+ 'new' in JavaScriptCore/runtime/JSGlobalData.cpp.
+
+ * wtf/HashTable.h:
+ * wtf/FastAllocBase.h: Remove 'wtf' path from TypeTraits.h to allow use outside of wtf.
+
+2009-05-25 David Levin <levin@chromium.org>
+
+ Reviewed by Maciej Stachowiak and Oliver Hunt.
+
+ https://bugs.webkit.org/show_bug.cgi?id=25126
+ Allow the buffer underlying UString to be shared.
+
+ In order to not grow the underlying size of any structure,
+ there is a union in the Rep string which holds
+ + m_sharedBuffer -- a pointer to the shared ref counted buffer
+ if the class is BaseString and the buffer is being shared OR
+ + m_baseString -- the BaseString if the class is only UString::Rep
+ but not a UString::BaseString
+
+ Ideally, m_sharedBuffer would be a RefPtr, but it cannot be because
+ it is in a union.
+
+ No change in sunspider perf.
+
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * runtime/UString.cpp:
+ (JSC::UString::Rep::share):
+ (JSC::UString::Rep::destroy):
+ (JSC::UString::BaseString::sharedBuffer):
+ (JSC::UString::BaseString::setSharedBuffer):
+ (JSC::UString::BaseString::slowIsBufferReadOnly):
+ (JSC::expandCapacity):
+ (JSC::UString::Rep::reserveCapacity):
+ (JSC::UString::expandPreCapacity):
+ (JSC::concatenate):
+ (JSC::UString::append):
+ * runtime/UString.h:
+ (JSC::UString::Rep::Rep):
+ (JSC::UString::Rep::):
+ (JSC::UString::BaseString::isShared):
+ (JSC::UString::BaseString::isBufferReadOnly):
+ (JSC::UString::Rep::baseString):
+ * wtf/CrossThreadRefCounted.h:
+ (WTF::CrossThreadRefCounted::isShared):
+ * wtf/OwnFastMallocPtr.h: Added.
+ (WTF::OwnFastMallocPtr::OwnFastMallocPtr):
+ (WTF::OwnFastMallocPtr::~OwnFastMallocPtr):
+ (WTF::OwnFastMallocPtr::get):
+ (WTF::OwnFastMallocPtr::release):
+
+2009-05-25 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ Re-add interpreter logic to jit-enabled builds as GCC mysteriously regresses without it
+
+ * wtf/Platform.h:
+
+2009-05-25 Fridrich Strba <fridrich.strba@bluewin.ch>
+
+ Reviewed by Maciej Stachowiak.
+
+ The functions written in assembly need to have a leading
+ underscore on Windows too.
+
+ * jit/JITStubs.cpp:
+
+2009-05-24 Steve Falkenburg <sfalken@apple.com>
+
+ Build fix for experimental PGO Windows target.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+
+2009-05-23 David Kilzer <ddkilzer@apple.com>
+
+ Part 1 of 2: Bug 25495: Implement PassOwnPtr and replace uses of std::auto_ptr
+
+ <https://bugs.webkit.org/show_bug.cgi?id=25495>
+
+ Reviewed by Oliver Hunt.
+
+ * GNUmakefile.am: Added OwnPtrCommon.h and PassOwnPtr.h.
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj: Ditto.
+ * JavaScriptCore.xcodeproj/project.pbxproj: Ditto.
+
+ * wtf/OwnPtr.h:
+ (WTF::OwnPtr::OwnPtr): Added constructors that take a
+ PassOwnPtr. Also added a copy constructor declaration that's
+ required when assigning a PassOwnPtr to a stack-based OwnPtr.
+ (WTF::operator=): Added assignment operator methods that take a
+ PassOwnPtr.
+ (WTF::swap): Reformatted.
+ (WTF::operator==): Whitespace changes.
+ (WTF::operator!=): Ditto.
+
+ * wtf/OwnPtrCommon.h: Added.
+ (WTF::deleteOwnedPtr):
+
+ * wtf/PassOwnPtr.h: Added.
+ (WTF::PassOwnPtr::PassOwnPtr):
+ (WTF::PassOwnPtr::~PassOwnPtr):
+ (WTF::PassOwnPtr::get):
+ (WTF::PassOwnPtr::clear):
+ (WTF::PassOwnPtr::release):
+ (WTF::PassOwnPtr::operator*):
+ (WTF::PassOwnPtr::operator->):
+ (WTF::PassOwnPtr::operator!):
+ (WTF::PassOwnPtr::operator UnspecifiedBoolType):
+ (WTF::::operator):
+ (WTF::operator==):
+ (WTF::operator!=):
+ (WTF::static_pointer_cast):
+ (WTF::const_pointer_cast):
+ (WTF::getPtr):
+
+2009-05-23 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ Remove interpreter specific logic from the JIT builds.
+
+ This saves ~100k in JSC release builds.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+ * interpreter/Interpreter.h:
+ * wtf/Platform.h:
+
+2009-05-22 Mark Rowe <mrowe@apple.com>
+
+ Part two of an attempted Windows build fix.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+
+2009-05-22 Mark Rowe <mrowe@apple.com>
+
+ Part one of an attempted Windows build fix.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+
+2009-05-21 Gavin Barraclough <barraclough@apple.com>
Reviewed by Geoff Garen.
- <rdar://problem/6516853> (r39682-r39736) JSFunFuzz: crash on "(function(){({ x2: x }), })()"
- <https://bugs.webkit.org/show_bug.cgi?id=23479>
+ op_method_check
+
+ Optimize method calls, by caching specific function values within the Structure.
+ The new opcode is used almost like an x86 opcode prefix byte to optimize op_get_by_id,
+ where the property access is being used to read a function to be passed to op-call (i.e.
+ 'foo.bar();'). This patch modifies the Structure class such that when a property is
+ put to an object for the first time we will check if the value is a function. If it is,
+ we will cache the function value on the Structure. A Structure in such a state guarantees
+ that not only does a property with the given identifier exist on the object, but also that
+ its value is unchanged. Upon any further attempt to put a property with the same identifier
+ (but a different value) to the object, it will transition back to a normal Structure (where
+ it will guarantee the presence but not the value of the property).
+
+ op_method_check makes use of the new information made available by the Structure, by
+ augmenting the functionality of op_get_by_id. Upon generating a FunctionCallDotNode a
+ check will be emitted prior to the property access reading the function value, and the JIT
+ will generate an extra (initially unlinked but patchable) set of checks prior to the regular
+ JIT code for get_by_id. The new code will do inline structure and prototype structure check
+ (unlike a regular get_by_id, which can only handle 'self' accesses inline), and then performs
+ an immediate load of the function value, rather than using memory accesses to load the value
+ from the obejct's property storage array. If the method check fails it will revert, or if
+ the access is polymorphic, the op_get_by_id will continue to operate - and optimize itself -
+ just as any other regular op_get_by_id would.
+
+ ~2.5% on v8-tests, due to a ~9% progression on richards.
- Automatic semicolon insertion was resulting in this being accepted in the initial
- nodeless parsing, but subsequent reparsing for code generation would fail, leading
- to a crash. The solution is to ensure that reparsing a function performs parsing
- in the same state as the initial parse. We do this by modifying the saved source
- ranges to include rather than exclude the opening and closing braces.
+ * API/JSCallbackObjectFunctions.h:
+ (JSC::::put):
+ (JSC::::staticFunctionGetter):
+ * API/JSObjectRef.cpp:
+ (JSObjectMakeConstructor):
+ * JavaScriptCore.exp:
+ * assembler/AbstractMacroAssembler.h:
+ (JSC::AbstractMacroAssembler::differenceBetween):
+ * assembler/MacroAssemblerX86.h:
+ (JSC::MacroAssemblerX86::moveWithPatch):
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::dump):
+ * bytecode/CodeBlock.h:
+ (JSC::getMethodCallLinkInfoReturnLocation):
+ (JSC::CodeBlock::getMethodCallLinkInfo):
+ (JSC::CodeBlock::addMethodCallLinkInfos):
+ (JSC::CodeBlock::methodCallLinkInfo):
+ * bytecode/Opcode.h:
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::emitMethodCheck):
+ * bytecompiler/BytecodeGenerator.h:
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ (JSC::JIT::privateCompileSlowCases):
+ (JSC::JIT::privateCompile):
+ * jit/JIT.h:
+ (JSC::MethodCallCompilationInfo::MethodCallCompilationInfo):
+ * jit/JITOpcodes.cpp:
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::emit_op_method_check):
+ (JSC::JIT::emitSlow_op_method_check):
+ (JSC::JIT::emit_op_get_by_id):
+ (JSC::JIT::emitSlow_op_get_by_id):
+ (JSC::JIT::emit_op_put_by_id):
+ (JSC::JIT::emitSlow_op_put_by_id):
+ (JSC::JIT::compileGetByIdHotPath):
+ (JSC::JIT::compileGetByIdSlowCase):
+ (JSC::JIT::patchMethodCallProto):
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::cti_op_get_by_id_method_check):
+ (JSC::JITStubs::cti_op_get_by_id_method_check_second):
+ * jit/JITStubs.h:
+ * jsc.cpp:
+ (GlobalObject::GlobalObject):
+ * parser/Nodes.cpp:
+ (JSC::FunctionCallDotNode::emitBytecode):
+ * runtime/Arguments.cpp:
+ (JSC::Arguments::put):
+ * runtime/ArrayConstructor.cpp:
+ (JSC::ArrayConstructor::ArrayConstructor):
+ * runtime/BooleanConstructor.cpp:
+ (JSC::BooleanConstructor::BooleanConstructor):
+ * runtime/DateConstructor.cpp:
+ (JSC::DateConstructor::DateConstructor):
+ * runtime/ErrorConstructor.cpp:
+ (JSC::ErrorConstructor::ErrorConstructor):
+ (JSC::constructError):
+ * runtime/ErrorPrototype.cpp:
+ (JSC::ErrorPrototype::ErrorPrototype):
+ * runtime/FunctionConstructor.cpp:
+ (JSC::FunctionConstructor::FunctionConstructor):
+ * runtime/FunctionPrototype.cpp:
+ (JSC::FunctionPrototype::FunctionPrototype):
+ * runtime/InternalFunction.cpp:
+ (JSC::InternalFunction::InternalFunction):
+ * runtime/JSActivation.cpp:
+ (JSC::JSActivation::put):
+ (JSC::JSActivation::putWithAttributes):
+ * runtime/JSByteArray.cpp:
+ (JSC::JSByteArray::JSByteArray):
+ * runtime/JSFunction.cpp:
+ (JSC::JSFunction::JSFunction):
+ (JSC::JSFunction::getOwnPropertySlot):
+ * runtime/JSGlobalObject.cpp:
+ (JSC::JSGlobalObject::putWithAttributes):
+ (JSC::JSGlobalObject::reset):
+ (JSC::JSGlobalObject::mark):
+ * runtime/JSGlobalObject.h:
+ (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
+ (JSC::JSGlobalObject::methodCallDummy):
+ * runtime/JSObject.cpp:
+ (JSC::JSObject::put):
+ (JSC::JSObject::putWithAttributes):
+ (JSC::JSObject::deleteProperty):
+ (JSC::JSObject::defineGetter):
+ (JSC::JSObject::defineSetter):
+ (JSC::JSObject::getPropertyAttributes):
+ (JSC::JSObject::getPropertySpecificFunction):
+ (JSC::JSObject::putDirectFunction):
+ (JSC::JSObject::putDirectFunctionWithoutTransition):
+ * runtime/JSObject.h:
+ (JSC::getJSFunction):
+ (JSC::JSObject::getDirectLocation):
+ (JSC::JSObject::putDirect):
+ (JSC::JSObject::putDirectWithoutTransition):
+ * runtime/LiteralParser.cpp:
+ (JSC::LiteralParser::parseObject):
+ * runtime/Lookup.cpp:
+ (JSC::setUpStaticFunctionSlot):
+ * runtime/Lookup.h:
+ (JSC::lookupPut):
+ * runtime/MathObject.cpp:
+ (JSC::MathObject::MathObject):
+ * runtime/NativeErrorConstructor.cpp:
+ (JSC::NativeErrorConstructor::NativeErrorConstructor):
+ (JSC::NativeErrorConstructor::construct):
+ * runtime/NativeErrorPrototype.cpp:
+ (JSC::NativeErrorPrototype::NativeErrorPrototype):
+ * runtime/NumberConstructor.cpp:
+ (JSC::NumberConstructor::NumberConstructor):
+ * runtime/ObjectConstructor.cpp:
+ (JSC::ObjectConstructor::ObjectConstructor):
+ * runtime/PropertyMapHashTable.h:
+ (JSC::PropertyMapEntry::PropertyMapEntry):
+ * runtime/PrototypeFunction.cpp:
+ (JSC::PrototypeFunction::PrototypeFunction):
+ * runtime/PutPropertySlot.h:
+ (JSC::PutPropertySlot::):
+ (JSC::PutPropertySlot::PutPropertySlot):
+ (JSC::PutPropertySlot::setNewProperty):
+ (JSC::PutPropertySlot::setDespecifyFunctionProperty):
+ (JSC::PutPropertySlot::isCacheable):
+ (JSC::PutPropertySlot::cachedOffset):
+ * runtime/RegExpConstructor.cpp:
+ (JSC::RegExpConstructor::RegExpConstructor):
+ * runtime/StringConstructor.cpp:
+ (JSC::StringConstructor::StringConstructor):
+ * runtime/StringPrototype.cpp:
+ (JSC::StringPrototype::StringPrototype):
+ * runtime/Structure.cpp:
+ (JSC::Structure::Structure):
+ (JSC::Structure::~Structure):
+ (JSC::Structure::materializePropertyMap):
+ (JSC::Structure::addPropertyTransitionToExistingStructure):
+ (JSC::Structure::addPropertyTransition):
+ (JSC::Structure::changeFunctionTransition):
+ (JSC::Structure::addPropertyWithoutTransition):
+ (JSC::Structure::get):
+ (JSC::Structure::despecifyFunction):
+ (JSC::Structure::put):
+ (JSC::Structure::remove):
+ * runtime/Structure.h:
+ (JSC::Structure::get):
+ (JSC::Structure::specificFunction):
+ * runtime/StructureTransitionTable.h:
+ (JSC::StructureTransitionTableHashTraits::emptyValue):
+ * wtf/Platform.h:
+
+2009-05-22 Brent Fulgham <bfulgham@webkit.org>
+ Reviewed by Steve Falkenburg.
+
+ https://bugs.webkit.org/show_bug.cgi?id=25950
+ JavaScriptCore Fails to build on Windows (Cairo) due to CoreFoundation
+ link requirement.
+
+ Modify project to add new Debug_CFLite and Release_CFLite targets. These
+ use the new JavaScriptCoreCFLite.vsprops to link against CFLite.dll.
+ Existing projects are changed to use the new JavaScriptCoreCF.vsprops
+ to link against CoreFoundation.dll.
+
+ The JavaScriptCoreCommon.vsprops is modified to remove the link
+ against CoreFoundation.dll.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCF.vsprops: Added.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCFLite.vsprops: Added.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
+
+2009-05-22 Dominik Röttsches <dominik.roettsches@access-company.com>
+
+ Reviewed by Gustavo Noronha.
+
+ https://bugs.webkit.org/show_bug.cgi?id=15914
+ [GTK] Implement Unicode functionality using GLib
+
+ Original patch by Jürg Billeter and Naiem Shaik.
+ Implementing WTF Unicode functionality based on GLib.
+
+ * GNUmakefile.am:
+ * wtf/unicode/Unicode.h:
+ * wtf/unicode/glib: Added.
+ * wtf/unicode/glib/UnicodeGLib.cpp: Added.
+ (WTF::Unicode::foldCase):
+ (WTF::Unicode::toLower):
+ (WTF::Unicode::toUpper):
+ (WTF::Unicode::direction):
+ (WTF::Unicode::umemcasecmp):
+ * wtf/unicode/glib/UnicodeGLib.h: Added.
+ (WTF::Unicode::):
+ (WTF::Unicode::toLower):
+ (WTF::Unicode::toUpper):
+ (WTF::Unicode::toTitleCase):
+ (WTF::Unicode::isArabicChar):
+ (WTF::Unicode::isFormatChar):
+ (WTF::Unicode::isSeparatorSpace):
+ (WTF::Unicode::isPrintableChar):
+ (WTF::Unicode::isDigit):
+ (WTF::Unicode::isPunct):
+ (WTF::Unicode::mirroredChar):
+ (WTF::Unicode::category):
+ (WTF::Unicode::isLower):
+ (WTF::Unicode::digitValue):
+ (WTF::Unicode::combiningClass):
+ (WTF::Unicode::decompositionType):
+ * wtf/unicode/glib/UnicodeMacrosFromICU.h: Added.
+
+2009-05-21 Xan Lopez <xlopez@igalia.com>
+
+ Unreviewed build fix.
+
+ Add MacroAssemblerCodeRef.h to file list.
+
+ * GNUmakefile.am:
+
+2009-05-21 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Darin Adler.
+ Addition of MacroAssemblerCodeRef.h rubber stamped by Geoff Garen.
+
+ Refactor JIT code-handle objects. The representation of generated code is currently
+ a bit of a mess. We have a class JITCode which wraps the pointer to a block of
+ generated code, but this object does not reference the executable pool meaning that
+ external events (the pool being derefed) could make the pointer become invalid.
+ To overcome this both the JIT and Yarr implement further (and similar) objects to
+ wrap the code pointer with a RefPtr to the pool. To add to the mire, as well as the
+ CodeBlock containing a handle onto the code the FunctionBodyNode also contains a
+ copy of the code pointer which is used almost (but not entirely) uniquely to access
+ the JIT code for a function.
+
+ Rationalization of all this:
+
+ * Add a new type 'MacroAssembler::CodeRef' as a handle for a block of JIT generated code.
+ * Change the JIT & Yarr to internally handle code using CodeRefs.
+ * Move the CodeRef (formerly anow defunct JITCodeRef) from CodeBlock to its owner node.
+ * Remove the (now) redundant code pointer from FunctionBodyNode.
+
+ While tidying this up I've made the PatchBuffer return code in new allocations using a CodeRef,
+ and have enforced an interface that the PatchBuffer will always be used, and 'finalizeCode()' or
+ 'finalizeCodeAddendum()' will always be called exactly once on the PatchBuffer to complete code generation.
+
+ This gives us a potentially useful hook ('PatchBuffer::performFinalization()') at the end of generation,
+ which may have a number of uses. It may be helpful should we wish to switch our generation
+ model to allow RW/RX exclusive memory, and it may be useful on non-cache-coherent platforms to
+ give us an oportunity to cache flush as necessary.
+
+ No performance impact.
+
+ * assembler/AbstractMacroAssembler.h:
+ (JSC::AbstractMacroAssembler::ProcessorReturnAddress::relinkCallerToTrampoline):
+ (JSC::AbstractMacroAssembler::CodeRef::CodeRef):
+ (JSC::AbstractMacroAssembler::CodeRef::trampolineAt):
+ (JSC::AbstractMacroAssembler::PatchBuffer::PatchBuffer):
+ (JSC::AbstractMacroAssembler::PatchBuffer::~PatchBuffer):
+ (JSC::AbstractMacroAssembler::PatchBuffer::link):
+ (JSC::AbstractMacroAssembler::PatchBuffer::linkTailRecursive):
+ (JSC::AbstractMacroAssembler::PatchBuffer::patch):
+ (JSC::AbstractMacroAssembler::PatchBuffer::complete):
+ (JSC::AbstractMacroAssembler::PatchBuffer::finalize):
+ (JSC::AbstractMacroAssembler::PatchBuffer::entry):
* bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::reparseForExceptionInfoIfNecessary): add an assertion for successful recompile
- * parser/Lexer.h:
- (JSC::Lexer::sourceCode): include rather than exclude braces.
+ (JSC::CodeBlock::CodeBlock):
+ (JSC::CodeBlock::reparseForExceptionInfoIfNecessary):
+ (JSC::CodeBlock::setJITCode):
+ * bytecode/CodeBlock.h:
+ (JSC::CodeBlock::getBytecodeIndex):
+ (JSC::CodeBlock::executablePool):
+ * interpreter/CallFrameClosure.h:
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::execute):
+ (JSC::Interpreter::prepareForRepeatCall):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompile):
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ (JSC::JIT::linkCall):
+ * jit/JIT.h:
+ * jit/JITCode.h:
+ (JSC::JITCode::JITCode):
+ (JSC::JITCode::operator bool):
+ (JSC::JITCode::addressForCall):
+ (JSC::JITCode::offsetOf):
+ (JSC::JITCode::execute):
+ (JSC::JITCode::size):
+ (JSC::JITCode::executablePool):
+ (JSC::JITCode::HostFunction):
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::privateCompilePutByIdTransition):
+ (JSC::JIT::privateCompilePatchGetArrayLength):
+ (JSC::JIT::privateCompileGetByIdProto):
+ (JSC::JIT::privateCompileGetByIdSelfList):
+ (JSC::JIT::privateCompileGetByIdProtoList):
+ (JSC::JIT::privateCompileGetByIdChainList):
+ (JSC::JIT::privateCompileGetByIdChain):
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::cti_vm_dontLazyLinkCall):
+ (JSC::JITStubs::cti_vm_lazyLinkCall):
+ * parser/Nodes.cpp:
+ (JSC::ProgramNode::generateJITCode):
+ (JSC::EvalNode::generateJITCode):
+ (JSC::FunctionBodyNode::FunctionBodyNode):
+ (JSC::FunctionBodyNode::createNativeThunk):
+ (JSC::FunctionBodyNode::generateJITCode):
* parser/Nodes.h:
- (JSC::FunctionBodyNode::toSourceString): No need to append braces anymore.
+ (JSC::ScopeNode::generatedJITCode):
+ (JSC::ScopeNode::getExecutablePool):
+ (JSC::ScopeNode::setJITCode):
+ (JSC::ProgramNode::jitCode):
+ (JSC::EvalNode::jitCode):
+ (JSC::FunctionBodyNode::jitCode):
+ * runtime/RegExp.cpp:
+ (JSC::RegExp::match):
+ * yarr/RegexJIT.cpp:
+ (JSC::Yarr::RegexGenerator::compile):
+ (JSC::Yarr::jitCompileRegex):
+ (JSC::Yarr::executeRegex):
+ * yarr/RegexJIT.h:
+ (JSC::Yarr::RegexCodeBlock::RegexCodeBlock):
+ (JSC::Yarr::RegexCodeBlock::pcreFallback):
+ (JSC::Yarr::RegexCodeBlock::setFallback):
+ (JSC::Yarr::RegexCodeBlock::operator bool):
+ (JSC::Yarr::RegexCodeBlock::set):
+ (JSC::Yarr::RegexCodeBlock::execute):
+
+2009-05-21 Oliver Hunt <oliver@apple.com>
-2009-01-21 Alexey Proskuryakov <ap@webkit.org>
+ Reviewed by Maciej Stachowiak.
- Suggested by Oliver Hunt. Reviewed by Oliver Hunt.
+ <rdar://problem/6910264> REGRESSION: Cached DOM global object property access fails in browser (25921)
+ <https://bugs.webkit.org/show_bug.cgi?id=25921>
- https://bugs.webkit.org/show_bug.cgi?id=23456
- Function argument names leak
+ When caching properties on the global object we need to ensure that we're
+ not attempting to cache through a shell object.
- * parser/Nodes.cpp: (JSC::FunctionBodyNode::~FunctionBodyNode): Destruct parameter names.
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::resolveGlobal):
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::cti_op_resolve_global):
-2009-01-22 Beth Dakin <bdakin@apple.com>
+2009-05-21 Steve Falkenburg <sfalken@apple.com>
+
+ Windows build fix.
+
+ * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
+
+2009-05-21 Cameron Zwarich <zwarich@apple.com>
+
+ Reviewed by Mark Rowe.
+
+ Bug 25945: Add support for MADV_FREE to TCMalloc
+ <https://bugs.webkit.org/show_bug.cgi?id=25945>
+ <rdar://problem/6910754>
+
+ Add support for MADV_FREE to TCMalloc_SystemRelease for platforms that
+ don't also support MADV_FREE_REUSE. The code is identical to the MADV_DONTNEED
+ case except for the advice passed to madvise(), so combining the two cases
+ makes the most sense.
+
+ * wtf/Platform.h: Only define HAVE_MADV_FREE when not building on Tiger or
+ Leopard, because while it is defined on these platforms it actually does
+ nothing.
+ * wtf/TCSystemAlloc.cpp:
+ (TCMalloc_SystemRelease): use MADV_FREE if it is available; otherwise use
+ MADV_DONTNEED.
+
+2009-05-21 Mark Rowe <mrowe@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Fix <https://bugs.webkit.org/show_bug.cgi?id=25917> / <rdar://problem/6910066>.
+ Bug 25917: REGRESSION (r43559?): Javascript debugger crashes when pausing page
+
+ The debugger currently retrieves the arguments object from an activation rather than pulling
+ it from a call frame. This is unreliable to due to the recent optimization to lazily create
+ the arguments object. In the long-term it should stop doing that (<rdar://problem/6911886>),
+ but for now we force eager creation of the arguments object when debugging.
+
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::BytecodeGenerator):
+
+2009-05-21 Cameron Zwarich <zwarich@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ Bug 25912: Harden NumberPrototype.cpp by removing use of strcpy()
+ <https://bugs.webkit.org/show_bug.cgi?id=25912>
+
+ This causes no change on SunSpider.
+
+ * runtime/NumberPrototype.cpp:
+ (JSC::integerPartNoExp): replace strcpy() with memcpy(), ASSERT that the
+ temporary buffer has sufficient space to store the result, and move the
+ explicit null-termination closer to the memcpy() for easier visual inspection
+ of the code.
+ (JSC::fractionalPartToString): replace strcpy() with memcpy(), and ASSERT
+ that the temporary buffer has sufficient space to store the result. There
+ is no explicit null-termination because this is done by the caller. The
+ same is already true for exponentialPartToString().
+ (JSC::numberProtoFuncToExponential): replace strcpy() with memcpy(), explicitly
+ null-terminate the result, and ASSERT that the temporary buffer has sufficient
+ space to store the result.
+
+2009-05-20 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Cameron Zwarich.
+
+ Cleanup the JSGlobalData when exiting early with the usage statement in jsc.
+
+ * jsc.cpp:
+ (printUsageStatement):
+ (parseArguments):
+ (jscmain):
+
+2009-05-20 Stephanie Lewis <slewis@apple.com>
+
+ Update the order files. <rdar://problem/6881750> Generate new order files.
+
+ * JavaScriptCore.order:
+
+2009-05-19 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org>
+
+ Reviewed by Simon Hausmann.
+
+ Replace WREC with YARR + YARR_JIT for the Qt port. This is only
+ used when compiled with JIT support for now, so it is a drop-in
+ replacement for the WREC usage. Still including the wrec headers
+ as they are being referred from RegExp.h, though the contents of
+ that header it protected by "#if ENABLE(WREC)".
+
+ * JavaScriptCore.pri:
+
+2009-05-20 Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Eric Seidel.
+
+ Fix GTK debug build.
+
+ The function dumpDisjunction, compiled with debug enabled, uses
+ printf, which needs stdio.h to be included.
+
+ * yarr/RegexInterpreter.cpp:
+
+2009-05-20 Laszlo Gombos <laszlo.1.gombos@nokia.com>
+
+ Reviewed by George Staikos.
+
+ BUG 25843: [Qt] Remove qt-port build flag
+ <https://bugs.webkit.org/show_bug.cgi?id=25843>
+
+ * JavaScriptCore.pro:
+
+
+2009-05-19 Geoffrey Garen <ggaren@apple.com>
+
+ Windows build fix.
+
+ * interpreter/RegisterFile.cpp:
+ (JSC::RegisterFile::releaseExcessCapacity): Copy-paste typo.
+
+2009-05-19 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
+
+ Fixed <rdar://problem/6885680> CrashTracer: [USER] 1 crash in Install
+ Mac OS X at <unknown binary> • 0x9274241c
+
+ (Original patch by Joe Sokol and Ronnie Misra.)
+
+ SunSpider says 1.004x faster.
- Fix for https://bugs.webkit.org/show_bug.cgi?id=23461 LayoutTests/
- fast/js/numeric-conversion.html is broken, and corresponding
- <rdar://problem/6514842>
+ * interpreter/RegisterFile.cpp:
+ (JSC::RegisterFile::releaseExcessCapacity): Instead of doing complicated
+ math that sometimes used to overflow, just release the full range of the
+ register file.
- The basic problem here is that parseInt(Infinity) should be NaN,
- but we were returning 0. NaN matches Safari 3.2.1 and Firefox.
+ * interpreter/RegisterFile.h:
+ (JSC::isPageAligned):
+ (JSC::RegisterFile::RegisterFile): Added ASSERTs to verify that it's
+ safe to release the full range of the register file.
+
+ (JSC::RegisterFile::shrink): No need to releaseExcessCapacity() if the
+ new end is not smaller than the old end. (Also, doing so used to cause
+ numeric overflow, unmapping basically the whole process from memory.)
+
+2009-05-19 Oliver Hunt <oliver@apple.com>
+
+ RS=Mark Rowe.
+
+ <rdar://problem/6888393> REGRESSION: Start Debugging JavaScript crashes browser (nightly builds only?)
+ <https://bugs.webkit.org/show_bug.cgi?id=25717>
+
+ Remove JSC_FAST_CALL as it wasn't gaining us anything, and was
+ resulting in weird bugs in the nightly builds.
+
+ * parser/Nodes.cpp:
+ * parser/Nodes.h:
+ (JSC::ExpressionNode::isNumber):
+ (JSC::ExpressionNode::isString):
+ (JSC::ExpressionNode::isNull):
+ (JSC::ExpressionNode::isPure):
+ (JSC::ExpressionNode::isLocation):
+ (JSC::ExpressionNode::isResolveNode):
+ (JSC::ExpressionNode::isBracketAccessorNode):
+ (JSC::ExpressionNode::isDotAccessorNode):
+ (JSC::ExpressionNode::isFuncExprNode):
+ (JSC::ExpressionNode::isSimpleArray):
+ (JSC::ExpressionNode::isAdd):
+ (JSC::ExpressionNode::resultDescriptor):
+ (JSC::StatementNode::firstLine):
+ (JSC::StatementNode::lastLine):
+ (JSC::StatementNode::isEmptyStatement):
+ (JSC::StatementNode::isReturnNode):
+ (JSC::StatementNode::isExprStatement):
+ (JSC::StatementNode::isBlock):
+ (JSC::NullNode::isNull):
+ (JSC::BooleanNode::isPure):
+ (JSC::NumberNode::value):
+ (JSC::NumberNode::setValue):
+ (JSC::NumberNode::isNumber):
+ (JSC::NumberNode::isPure):
+ (JSC::StringNode::isPure):
+ (JSC::StringNode::isString):
+ (JSC::ResolveNode::identifier):
+ (JSC::ResolveNode::isLocation):
+ (JSC::ResolveNode::isResolveNode):
+ (JSC::BracketAccessorNode::isLocation):
+ (JSC::BracketAccessorNode::isBracketAccessorNode):
+ (JSC::DotAccessorNode::base):
+ (JSC::DotAccessorNode::identifier):
+ (JSC::DotAccessorNode::isLocation):
+ (JSC::DotAccessorNode::isDotAccessorNode):
+ (JSC::TypeOfResolveNode::identifier):
+ (JSC::AddNode::isAdd):
+ (JSC::BlockNode::isBlock):
+ (JSC::EmptyStatementNode::isEmptyStatement):
+ (JSC::ExprStatementNode::isExprStatement):
+ (JSC::ReturnNode::isReturnNode):
+ (JSC::ScopeNode::sourceURL):
+ (JSC::ProgramNode::bytecode):
+ (JSC::EvalNode::bytecode):
+ (JSC::FunctionBodyNode::parameters):
+ (JSC::FunctionBodyNode::toSourceString):
+ (JSC::FunctionBodyNode::bytecode):
+ (JSC::FuncExprNode::isFuncExprNode):
+
+2009-05-19 Maciej Stachowiak <mjs@apple.com>
+ Reviewed by Gavin Barraclough.
+
+ - speed up string comparison, especially for short strings
+
+ ~1% on SunSpider
+
+ * JavaScriptCore.exp:
+ * runtime/UString.cpp:
+ * runtime/UString.h:
+ (JSC::operator==): Inline UString's operator==, since it is called from
+ hot places in the runtime. Also, specialize 2-char strings in a similar way to
+ 1-char, since we're taking the hit of a switch anyway.
+
+2009-05-18 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ - for polymorphic prototype lookups, increase the number of slots from 4 to 8
+
+ ~4% faster on v8 raytrace benchmark
+
+ * bytecode/Instruction.h:
+
+2009-05-18 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ - tighten up the code for the load_varargs stub
+
+ ~1-2% on v8-raytrace
+
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::cti_op_load_varargs): Hoist some loop invariants that
+ the compiler didn't feel like hoisting for us. Remove unneeded exception check.
+
+2009-05-18 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ - Improve code generation for access to prototype properties
+
+ ~0.4% speedup on SunSpider.
+
+ Based on a suggestion from Geoff Garen.
+
+ * jit/JIT.h:
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::compileGetDirectOffset):
+ (JSC::JIT::privateCompileGetByIdProto):
+ (JSC::JIT::privateCompileGetByIdProtoList):
+ (JSC::JIT::privateCompileGetByIdChainList):
+ (JSC::JIT::privateCompileGetByIdChain):
+
+2009-05-18 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
+
+ Reviewed by Gavin Barraclough.
+
+ Enable YARR, and disable WREC for GTK+.
+
+ * GNUmakefile.am:
+ * yarr/RegexParser.h:
+
+2009-05-18 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Reviewed by Xan Lopez.
+
+ [Gtk] Various autotools build refactoring and fixes
+ https://bugs.webkit.org/show_bug.cgi?id=25286
+
+ Add -no-install and -no-fast-install to programs and tests that we
+ don't install. Also remove -O2 since this is already handled at
+ configure time.
+
+ * GNUmakefile.am:
+
+2009-05-17 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Reviewed by Xan Lopez.
+
+ [Gtk] Various autotools build refactoring and fixes
+ https://bugs.webkit.org/show_bug.cgi?id=25286
+
+ Add JavaScriptCore/ to JSC include path only since it's not
+ required when building WebCore.
+
+ * GNUmakefile.am:
+
+2009-05-17 Steve Falkenburg <sfalken@apple.com>
+
+ Windows build fix
+
+ * JavaScriptCore.vcproj/JavaScriptCore.make:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+
+2009-05-15 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Looking like MSVC doesn't like static variables in inline methods?
+ Make the state of the SSE2 check a static variable on the class
+ MacroAssemblerX86Common as a speculative build fix for Windows.
+
+ * assembler/MacroAssemblerX86Common.h:
+ (JSC::MacroAssemblerX86Common::convertInt32ToDouble):
+ (JSC::MacroAssemblerX86Common::branchDouble):
+ (JSC::MacroAssemblerX86Common::branchTruncateDoubleToInt32):
+ (JSC::MacroAssemblerX86Common::isSSE2Present):
+ (JSC::MacroAssemblerX86Common::):
+ * jit/JIT.cpp:
+
+2009-05-15 Adam Roben <aroben@apple.com>
+
+ Add some assembler headers to JavaScriptCore.vcproj
+
+ This is just a convenience for Windows developers.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+
+2009-05-15 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Add FP support to the MacroAssembler, port JITArithmetic over to make use of this. Also add
+ API to determine whether FP support is available 'MacroAssembler::supportsFloatingPoint()',
+ FP is presently only supported on SSE2 platforms, not x87. On platforms where a suitable
+ hardware FPU is not available 'supportsFloatingPoint()' may simply return false, and all
+ other methods ASSERT_NOT_REACHED().
+
+ * assembler/AbstractMacroAssembler.h:
+ * assembler/MacroAssemblerX86.h:
+ (JSC::MacroAssemblerX86::MacroAssemblerX86):
+ (JSC::MacroAssemblerX86::branch32):
+ (JSC::MacroAssemblerX86::branchPtrWithPatch):
+ (JSC::MacroAssemblerX86::supportsFloatingPoint):
+ * assembler/MacroAssemblerX86Common.h:
+ (JSC::MacroAssemblerX86Common::):
+ (JSC::MacroAssemblerX86Common::loadDouble):
+ (JSC::MacroAssemblerX86Common::storeDouble):
+ (JSC::MacroAssemblerX86Common::addDouble):
+ (JSC::MacroAssemblerX86Common::subDouble):
+ (JSC::MacroAssemblerX86Common::mulDouble):
+ (JSC::MacroAssemblerX86Common::convertInt32ToDouble):
+ (JSC::MacroAssemblerX86Common::branchDouble):
+ (JSC::MacroAssemblerX86Common::branchTruncateDoubleToInt32):
+ (JSC::MacroAssemblerX86Common::branch32):
+ (JSC::MacroAssemblerX86Common::branch16):
+ (JSC::MacroAssemblerX86Common::branchTest32):
+ (JSC::MacroAssemblerX86Common::branchAdd32):
+ (JSC::MacroAssemblerX86Common::branchMul32):
+ (JSC::MacroAssemblerX86Common::branchSub32):
+ (JSC::MacroAssemblerX86Common::set32):
+ (JSC::MacroAssemblerX86Common::setTest32):
+ (JSC::MacroAssemblerX86Common::x86Condition):
+ (JSC::MacroAssemblerX86Common::isSSE2Present):
+ * assembler/MacroAssemblerX86_64.h:
+ (JSC::MacroAssemblerX86_64::movePtrToDouble):
+ (JSC::MacroAssemblerX86_64::moveDoubleToPtr):
+ (JSC::MacroAssemblerX86_64::setPtr):
+ (JSC::MacroAssemblerX86_64::branchPtr):
+ (JSC::MacroAssemblerX86_64::branchTestPtr):
+ (JSC::MacroAssemblerX86_64::branchAddPtr):
+ (JSC::MacroAssemblerX86_64::branchSubPtr):
+ (JSC::MacroAssemblerX86_64::supportsFloatingPoint):
+ * assembler/X86Assembler.h:
+ * jit/JIT.cpp:
+ (JSC::JIT::JIT):
+ * jit/JIT.h:
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::emit_op_rshift):
+ (JSC::JIT::emitSlow_op_rshift):
+ (JSC::JIT::emitSlow_op_jnless):
+ (JSC::JIT::emitSlow_op_jnlesseq):
+ (JSC::JIT::compileBinaryArithOp):
+ (JSC::JIT::compileBinaryArithOpSlowCase):
+ (JSC::JIT::emit_op_add):
+ (JSC::JIT::emitSlow_op_add):
+ (JSC::JIT::emit_op_mul):
+ (JSC::JIT::emitSlow_op_mul):
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::privateCompilePutByIdTransition):
+
+2009-05-15 Francisco Tolmasky <francisco@280north.com>
+
+ BUG 25467: JavaScript debugger should use function.displayName as the function's name in the call stack
+ <https://bugs.webkit.org/show_bug.cgi?id=25467>
+
+ Reviewed by Adam Roben.
+
+ * JavaScriptCore.exp: Added calculatedFunctionName
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: Added calculatedFunctionName
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Added calculatedFunctionName
+ * debugger/DebuggerCallFrame.cpp: Added calculatedFunctionName to match existing one in ProfileNode.
+ (JSC::DebuggerCallFrame::calculatedFunctionName):
+ * debugger/DebuggerCallFrame.h: Added calculatedFunctionName to match existing one in ProfileNode.
+
+2009-05-14 Gavin Barraclough <barraclough@apple.com>
+
+ Build fix, not reviewed.
+
+ Quick fixes for JIT builds with OPTIMIZE flags disabled.
+
+ * jit/JITCall.cpp:
+ (JSC::JIT::compileOpCall):
+ (JSC::JIT::compileOpCallSlowCase):
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::compilePutByIdHotPath):
+
+2009-05-14 Steve Falkenburg <sfalken@apple.com>
+
+ Back out incorrect Windows build fix
+
+ * JavaScriptCore.vcproj/JavaScriptCore.make:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+
+2009-05-14 Steve Falkenburg <sfalken@apple.com>
+
+ Windows build fix
+
+ * JavaScriptCore.vcproj/JavaScriptCore.make:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+
+2009-05-14 Adam Roben <aroben@apple.com>
+
+ Windows jsc build fix
+
+ r43648 modified jsc.vcproj's post-build event not to try to copy files
+ that aren't present. Then r43661 mistakenly un-did that modification.
+ This patch restores the modification from r43648, but puts the code in
+ jscCommon.vsprops (where it should have been added in r43648).
+
+ * JavaScriptCore.vcproj/jsc/jsc.vcproj: Restored empty
+ VCPostBuildEventTool tags.
+ * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: Modified the post-build
+ event command line to match the one in jsc.vcproj from r43648.
+
+2009-05-14 Laszlo Gombos <laszlo.1.gombos@nokia.com>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=25325
+
+ Make sure pthread_self() is declared before it gets called in Collector.cpp
+
+ * runtime/Collector.cpp: Include pthread.h in most Unix-like platforms
+ (not just for OPENBSD)
+
+2009-05-14 Mark Rowe <mrowe@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Fix <https://bugs.webkit.org/show_bug.cgi?id=25785>.
+ Bug 25785: Segfault in mark when using JSObjectMakeConstructor
+
+ * API/JSObjectRef.cpp:
+ (JSObjectMakeConstructor): OpaqueJSClass::prototype can return 0. We need to use the default object prototype when it does.
+ * API/tests/testapi.c:
+ (main): Add a test case.
+ * runtime/JSObject.h:
+ (JSC::JSObject::putDirect): Add a clearer assertion for a null value. The assertion on the next line does catch this,
+ but the cause of the failure is not clear from the assertion itself.
+
+2009-05-14 Mark Rowe <mrowe@apple.com>
+
+ Rubber-stamped by Darin Adler.
+
+ <rdar://problem/6681868> When building with Xcode 3.1.3 should be using gcc 4.2
+
+ The meaning of XCODE_VERSION_ACTUAL is more sensible in newer versions of Xcode.
+ Update our logic to select the compiler version to use the more appropriate XCODE_VERSION_MINOR
+ if the version of Xcode supports it, and fall back to XCODE_VERSION_ACTUAL if not.
+
+ * Configurations/Base.xcconfig:
+
+2009-05-14 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ Checking register file bounds should be a ptr comparison (m_end is a Register*).
+ Also, the compare should be unsigned, pointers don'ts go negative.
+
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompile):
+
+2009-05-13 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Fix <rdar://problem/6882919> REGRESSION: page at Metroauto site crashes in cti_op_loop_if_less (25730)
+
+ op_loop_if_less (imm < op) was loading op into regT1, but in the slow path spills regT0.
+ This leads to bad happen.
+
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::emit_op_loop_if_less):
+ (JSC::JIT::emitSlow_op_loop_if_less):
+
+2009-05-13 Dmitry Titov <dimich@chromium.org>
+
+ Rubber-stamped by Mark Rowe.
+
+ https://bugs.webkit.org/show_bug.cgi?id=25746
+ Revert http://trac.webkit.org/changeset/43507 which caused crash in PPC nightlies with Safari 4.
+
+ * JavaScriptCore.exp:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+ * bytecode/SamplingTool.cpp:
+ (JSC::SamplingThread::start):
+ (JSC::SamplingThread::stop):
+ * bytecode/SamplingTool.h:
+ * wtf/CrossThreadRefCounted.h:
+ (WTF::CrossThreadRefCounted::CrossThreadRefCounted):
+ (WTF::::ref):
+ (WTF::::deref):
+ * wtf/Threading.h:
+ * wtf/ThreadingNone.cpp:
+ * wtf/ThreadingPthreads.cpp:
+ (WTF::threadMapMutex):
+ (WTF::initializeThreading):
+ (WTF::threadMap):
+ (WTF::identifierByPthreadHandle):
+ (WTF::establishIdentifierForPthreadHandle):
+ (WTF::pthreadHandleForIdentifier):
+ (WTF::clearPthreadHandleForIdentifier):
+ (WTF::createThreadInternal):
+ (WTF::waitForThreadCompletion):
+ (WTF::detachThread):
+ (WTF::currentThread):
+ * wtf/ThreadingWin.cpp:
+ (WTF::threadMapMutex):
+ (WTF::initializeThreading):
+ (WTF::threadMap):
+ (WTF::storeThreadHandleByIdentifier):
+ (WTF::threadHandleForIdentifier):
+ (WTF::clearThreadHandleForIdentifier):
+ (WTF::createThreadInternal):
+ (WTF::waitForThreadCompletion):
+ (WTF::detachThread):
+ (WTF::currentThread):
+ * wtf/gtk/ThreadingGtk.cpp:
+ (WTF::threadMapMutex):
+ (WTF::initializeThreading):
+ (WTF::threadMap):
+ (WTF::identifierByGthreadHandle):
+ (WTF::establishIdentifierForThread):
+ (WTF::threadForIdentifier):
+ (WTF::clearThreadForIdentifier):
+ (WTF::createThreadInternal):
+ (WTF::waitForThreadCompletion):
+ (WTF::currentThread):
+ * wtf/qt/ThreadingQt.cpp:
+ (WTF::threadMapMutex):
+ (WTF::threadMap):
+ (WTF::identifierByQthreadHandle):
+ (WTF::establishIdentifierForThread):
+ (WTF::clearThreadForIdentifier):
+ (WTF::threadForIdentifier):
+ (WTF::initializeThreading):
+ (WTF::createThreadInternal):
+ (WTF::waitForThreadCompletion):
+ (WTF::currentThread):
+
+2009-05-13 Darin Adler <darin@apple.com>
+
+ Revert the parser arena change. It was a slowdown, not a speedup.
+ Better luck next time (I'll break it up into pieces).
+
+2009-05-13 Darin Adler <darin@apple.com>
+
+ Tiger build fix.
+
+ * parser/Grammar.y: Add back empty code blocks, needed by older
+ versions of bison on certain rules.
+
+2009-05-13 Steve Falkenburg <sfalken@apple.com>
+
+ Windows build fix.
+
+ * JavaScriptCore.vcproj/jsc/jsc.vcproj:
+
+2009-05-13 Adam Roben <aroben@apple.com>
+
+ Windows build fixes after r43642
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+ Updated.
+
+ * debugger/Debugger.cpp:
+ * runtime/ArrayConstructor.cpp:
+ * runtime/JSArray.cpp:
+ * runtime/RegExp.cpp:
+ * runtime/RegExpConstructor.cpp:
+ * runtime/RegExpPrototype.cpp:
+ * runtime/StringPrototype.cpp:
+ Added missing #includes.
+
+2009-05-13 Darin Adler <darin@apple.com>
+
+ Reviewed by Cameron Zwarich.
+
+ Bug 25674: syntax tree nodes should use arena allocation
+ https://bugs.webkit.org/show_bug.cgi?id=25674
+
+ Step 3: Add some actual arena allocation. About 1% SunSpider speedup.
+
+ * JavaScriptCore.exp: Updated.
+
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::BytecodeGenerator): Updated since VarStack
+ contains const Identifier* now.
+ (JSC::BytecodeGenerator::emitPushNewScope): Updated to take a const
+ Identifier&.
+ * bytecompiler/BytecodeGenerator.h: Ditto
+
+ * bytecompiler/SegmentedVector.h: Added isEmpty.
+
+ * debugger/Debugger.cpp:
+ (JSC::Debugger::recompileAllJSFunctions): Moved this function here from
+ WebCore so WebCore doesn't need the details of FunctionBodyNode.
+ * debugger/Debugger.h: Ditto.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::execute): Updated since VarStack contains const
+ Identifier* now.
+
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::cti_vm_lazyLinkCall): Call isHostFunction on the body
+ rather than on the function object, since we can't easily have inlined
+ access to the FunctionBodyNode in JSFunction.h since WebCore needs
+ access to that header.
+ (JSC::JITStubs::cti_op_construct_JSConstruct): Ditto.
+ * profiler/Profiler.cpp:
+ (JSC::Profiler::createCallIdentifier): Ditto.
+
+ * parser/Grammar.y: Use JSGlobalData* to pass the global data pointer
+ around whenever possible instead of using void*. Changed
+ SET_EXCEPTION_LOCATION from a macro to an inline function. Marked
+ the structure-creating functions inline. Changed the VarStack to use
+ identifier pointers instead of actual identifiers. This takes
+ advantage of the fact that all identifier pointers come from the
+ arena and avoids reference count churn. Changed Identifier* to
+ const Identifier* to make sure we don't modify any by accident.
+ Used identifiers for regular expression strings too, using the new
+ scanRegExp that has out parameters instead of the old one that relied
+ on side effects in the Lexer. Move the creation of numeric identifiers
+ out of this file and into the PropertyNode constructor.
+
+ * parser/Lexer.cpp:
+ (JSC::Lexer::setCode): Pass in ParserArena, used for identifiers.
+ (JSC::Lexer::makeIdentifier): Changed return type to const Identifier*
+ and changed to call ParserArena.
+ (JSC::Lexer::scanRegExp): Added out arguments that are const Identifier*
+ as well as a prefix character argument so we can handle the /= case
+ without a string append.
+ (JSC::Lexer::skipRegExp): Added. Skips a regular expression without
+ allocating Identifier objects.
+ (JSC::Lexer::clear): Removed the code to manage m_identifiers, m_pattern,
+ and m_flags, and added code to set m_arena to 0.
+ * parser/Lexer.h: Updated for changes above.
+
+ * parser/NodeConstructors.h:
+ (JSC::ParserArenaFreeable::operator new): Added. Calls allocateFreeable
+ on the arena.
+ (JSC::ParserArenaDeletable::operator new): Changed to call the
+ allocateDeletable function on the arena instead of deleteWithArena.
+ (JSC::RegExpNode::RegExpNode): Changed arguments to Identifier instead
+ of UString since these come from the parser which makes identifiers.
+ (JSC::PropertyNode::PropertyNode): Added new constructor that makes
+ numeric identifiers. Some day we might want to optimize this for
+ integers so it doesn't create a string for each one.
+ (JSC::ContinueNode::ContinueNode): Initialize m_ident to nullIdentifier
+ since it's now a const Identifier& so it can't be left uninitialized.
+ (JSC::BreakNode::BreakNode): Ditto.
+ (JSC::CaseClauseNode::CaseClauseNode): Updated to use SourceElements*
+ to keep track of the statements rather than a separate statement vector.
+ (JSC::BlockNode::BlockNode): Ditto.
+ (JSC::ForInNode::ForInNode): Initialize m_ident to nullIdentifier.
+
+ * parser/Nodes.cpp: Moved the comment explaining emitBytecode in here.
+ It seemed strangely out of place in the header.
+ (JSC::ThrowableExpressionData::emitThrowError): Added an overload for
+ UString as well as Identifier.
+ (JSC::SourceElements::singleStatement): Added.
+ (JSC::SourceElements::lastStatement): Added.
+ (JSC::RegExpNode::emitBytecode): Updated since the pattern and flags
+ are now Identifier instead of UString. Also changed the throwError code
+ to use the substitution mechanism instead of doing a string append.
+ (JSC::SourceElements::emitBytecode): Added. Replaces the old
+ statementListEmitCode function, since we now keep the SourceElements
+ objects around.
+ (JSC::BlockNode::lastStatement): Added.
+ (JSC::BlockNode::emitBytecode): Changed to use emitBytecode instead of
+ statementListEmitCode.
+ (JSC::CaseClauseNode::emitBytecode): Added.
+ (JSC::CaseBlockNode::emitBytecodeForBlock): Changed to use emitBytecode
+ instead of statementListEmitCode.
+ (JSC::ScopeNodeData::ScopeNodeData): Changed to store the
+ SourceElements* instead of using releaseContentsIntoVector.
+ (JSC::ScopeNode::emitStatementsBytecode): Added.
+ (JSC::ScopeNode::singleStatement): Added.
+ (JSC::ProgramNode::emitBytecode): Call emitStatementsBytecode instead
+ of statementListEmitCode.
+ (JSC::EvalNode::emitBytecode): Ditto.
+ (JSC::EvalNode::generateBytecode): Removed code to clear the children
+ vector. This optimization is no longer possible since everything is in
+ a single arena.
+ (JSC::FunctionBodyNode::emitBytecode): Call emitStatementsBytecode
+ insetad of statementListEmitCode and check for the return node using
+ the new functions.
+
+ * parser/Nodes.h: Changed VarStack to store const Identifier* instead
+ of Identifier and rely on the arena to control lifetime. Added a new
+ ParserArenaFreeable class. Made ParserArenaDeletable inherit from
+ FastAllocBase instead of having its own operator new. Base the Node
+ class on ParserArenaFreeable. Changed the various Node classes
+ to use const Identifier& instead of Identifier to avoid the need to
+ call their destructors and allow them to function as "freeable" in the
+ arena. Removed extraneous JSC_FAST_CALL on definitions of inline functions.
+ Changed ElementNode, PropertyNode, ArgumentsNode, ParameterNode,
+ CaseClauseNode, ClauseListNode, and CaseBlockNode to use ParserArenaFreeable
+ as a base class since they do not descend from Node. Eliminated the
+ StatementVector type and instead have various classes use SourceElements*
+ instead of StatementVector. This prevents those classes from having th
+ use ParserArenaDeletable to make sure the vector destructor is called.
+
+ * parser/Parser.cpp:
+ (JSC::Parser::parse): Pass the arena to the lexer.
+
+ * parser/Parser.h: Added an include of ParserArena.h, which is no longer
+ included by Nodes.h.
+
+ * parser/ParserArena.cpp:
+ (JSC::ParserArena::ParserArena): Added. Initializes the new members,
+ m_freeableMemory, m_freeablePoolEnd, and m_identifiers.
+ (JSC::ParserArena::freeablePool): Added. Computes the pool pointer,
+ since we store only the current pointer and the end of pool pointer.
+ (JSC::ParserArena::deallocateObjects): Added. Contains the common
+ memory-deallocation logic used by both the destructor and the
+ reset function.
+ (JSC::ParserArena::~ParserArena): Changed to call deallocateObjects.
+ (JSC::ParserArena::reset): Ditto. Also added code to zero out the
+ new structures, and switched to use clear() instead of shrink(0) since
+ we don't really reuse arenas.
+ (JSC::ParserArena::makeNumericIdentifier): Added.
+ (JSC::ParserArena::allocateFreeablePool): Added. Used when the pool
+ is empty.
+ (JSC::ParserArena::isEmpty): Added. No longer inline, which is fine
+ since this is used only for assertions at the moment.
+
+ * parser/ParserArena.h: Added an actual arena of "freeable" objects,
+ ones that don't need destructors to be called. Also added the segmented
+ vector of identifiers that used to be in the Lexer.
+
+ * runtime/FunctionConstructor.cpp:
+ (JSC::extractFunctionBody): Use singleStatement function rather than
+ getting at a StatementVector.
+
+ * runtime/FunctionPrototype.cpp:
+ (JSC::functionProtoFuncToString): Call isHostFunction on the body
+ rather than the function object.
+
+ * runtime/JSFunction.cpp:
+ (JSC::JSFunction::JSFunction): Moved the structure version of this in
+ here from the header. It's not hot enough that it needs to be inlined.
+ (JSC::JSFunction::isHostFunction): Moved this in here from the header.
+ It's now a helper to be used only within the class.
+ (JSC::JSFunction::setBody): Moved this in here. It's not hot enough that
+ it needs to be inlined, and we want to be able to compile the header
+ without the definition of FunctionBodyNode.
+
+ * runtime/JSFunction.h: Eliminated the include of "Nodes.h". This was
+ exposing too much JavaScriptCore dependency to WebCore. Because of this
+ change and some changes made to WebCore, we could now export a lot fewer
+ headers from JavaScriptCore, but I have not done that yet in this check-in.
+ Made a couple functions non-inline. Removes some isHostFunction() assertions.
+
+ * wtf/FastAllocBase.h: Added the conventional using statements we use in
+ WTF so we can use identifiers from the WTF namespace without explicit
+ namespace qualification or namespace directive. This is the usual WTF style,
+ although it's unconventional in the C++ world. We use the namespace primarily
+ for link-time disambiguation, not compile-time.
+
+ * wtf/FastMalloc.cpp: Fixed an incorrect comment.
+
+2009-05-13 Xan Lopez <xlopez@igalia.com>
+
+ Unreviewed build fix: add JITStubCall.h to files list.
+
+ * GNUmakefile.am:
+
+2009-05-13 Ariya Hidayat <ariya.hidayat@nokia.com>
+
+ Unreviewed build fix, as suggested by Yael Aharon <yael.aharon@nokia.com>.
+
+ * wtf/qt/ThreadingQt.cpp:
+ (WTF::waitForThreadCompletion): renamed IsValid to isValid.
+
+2009-05-13 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Revert r43562 - [Gtk] WTF_USE_JSC is already defined in
+ WebCore/config.h.
+
+ * wtf/Platform.h:
+
+2009-05-12 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Add SamplingCounter tool to provide a simple mechanism for counting events in JSC
+ (enabled using ENABLE(SAMPLING_COUNTERS)). To count events within a single function
+ use the class 'SamplingCounter', where the counter may be incremented from multiple
+ functions 'GlobalSamplingCounter' may be convenient; all other counters (stack or
+ heap allocated, rather than statically declared) should use the DeletableSamplingCounter.
+ Further description of these classes is provided alongside their definition in
+ SamplingTool.h.
+
+ Counters may be incremented from c++ by calling the 'count()' method on the counter,
+ or may be incremented by JIT code by using the 'emitCount()' method within the JIT.
+
+ This patch also fixes CODEBLOCK_SAMPLING, which was missing a null pointer check.
+
+ * JavaScriptCore.exp:
+ * assembler/MacroAssemblerX86.h:
+ (JSC::MacroAssemblerX86::addWithCarry32):
+ (JSC::MacroAssemblerX86::and32):
+ (JSC::MacroAssemblerX86::or32):
+ * assembler/MacroAssemblerX86Common.h:
+ (JSC::MacroAssemblerX86Common::and32):
+ (JSC::MacroAssemblerX86Common::or32):
+ * assembler/MacroAssemblerX86_64.h:
+ (JSC::MacroAssemblerX86_64::and32):
+ (JSC::MacroAssemblerX86_64::or32):
+ (JSC::MacroAssemblerX86_64::addPtr):
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::):
+ (JSC::X86Assembler::adcl_im):
+ (JSC::X86Assembler::addq_im):
+ (JSC::X86Assembler::andl_im):
+ (JSC::X86Assembler::orl_im):
+ * bytecode/SamplingTool.cpp:
+ (JSC::AbstractSamplingCounter::dump):
+ * bytecode/SamplingTool.h:
+ (JSC::AbstractSamplingCounter::count):
+ (JSC::GlobalSamplingCounter::name):
+ (JSC::SamplingCounter::SamplingCounter):
+ * jit/JIT.h:
+ * jit/JITCall.cpp:
+ (JSC::):
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::setSamplingFlag):
+ (JSC::JIT::clearSamplingFlag):
+ (JSC::JIT::emitCount):
+ * jsc.cpp:
+ (runWithScripts):
+ * parser/Nodes.cpp:
+ (JSC::ScopeNode::ScopeNode):
+ * wtf/Platform.h:
+
+2009-05-13 Steve Falkenburg <sfalken@apple.com>
+
+ Windows build fix.
+
+ * JavaScriptCore.vcproj/JavaScriptCore.make:
+
+2009-05-12 Steve Falkenburg <sfalken@apple.com>
+
+ Windows build fix.
+
+ * JavaScriptCore.vcproj/JavaScriptCore.make:
+
+2009-05-12 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ <rdar://problem/6881457> Crash occurs at JSC::Interpreter::execute() when loading http://www.sears.com
+
+ We created the arguments objects before an op_push_scope but not
+ before op_push_new_scope, this meant a null arguments object could
+ be resolved inside catch blocks.
+
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::emitPushNewScope):
+
+2009-05-12 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ <rdar://problem/6879881> Crash occurs at JSC::JSActivation::mark() when loading http://www.monster.com; http://www.cnet.com
+ <https://bugs.webkit.org/show_bug.cgi?id=25736> Crash loading www.google.dk/ig (and other igoogle's as well)
+
+ Following on from the lazy arguments creation patch, it's now
+ possible for an activation to to have a null register in the callframe
+ so we can't just blindly mark the local registers in an activation,
+ and must null check first instead.
+
+ * API/tests/testapi.c:
+ (functionGC):
+ * API/tests/testapi.js:
+ (bludgeonArguments.return.g):
+ (bludgeonArguments):
+ * runtime/JSActivation.cpp:
+ (JSC::JSActivation::mark):
+
+2009-05-12 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Geoff Garen.
+
+ WTF_USE_CTI_REPATCH_PIC is no longer used, remove.
+
+ * jit/JIT.h:
+ * jit/JITStubCall.h:
+
+2009-05-12 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ We've run into some problems where changing the size of the class JIT leads to
+ performance fluctuations. Try forcing alignment in an attempt to stabalize this.
+
+ * jit/JIT.h:
+
+2009-05-12 Kevin Ollivier <kevino@theolliviers.com>
+
+ wx build fix. Add ParserArena.cpp to the build.
+
+ * JavaScriptCoreSources.bkl:
+
+2009-05-12 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ Unsigned underflow on 64bit cannot be treated as a negative number
+
+ This code included some placeswhere we deliberately create negative offsets
+ from unsigned values, on 32bit this is "safe", but in 64bit builds much
+ badness occurs. Solution is to use signed types as nature intended.
+
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::cti_op_load_varargs):
+
+2009-05-12 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Reviewed by Holger Freyther.
+
+ [Gtk] Various autotools build refactoring and fixes
+ https://bugs.webkit.org/show_bug.cgi?id=25286
+
+ Define WTF_USE_JSC for the Gtk port.
+
+ * wtf/Platform.h:
+
+2009-05-12 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ - allow all of strictEqual to be inlined into cti_op_stricteq once again
+
+ We had this optimization once but accidentally lost it at some point.
+
+ * runtime/Operations.h:
+ (JSC::JSValue::strictEqualSlowCaseInline):
+ (JSC::JSValue::strictEqual):
+
+2009-05-12 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ instanceof should throw if the constructor being tested does not implement
+ 'HasInstance" (i.e. is a function). Instead we were returning false.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::isInvalidParamForIn):
+ (JSC::isInvalidParamForInstanceOf):
+ (JSC::Interpreter::privateExecute):
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::cti_op_instanceof):
+ * tests/mozilla/ecma_2/instanceof/instanceof-003.js:
+ Fix broken test case.
+ * tests/mozilla/ecma_2/instanceof/regress-7635.js:
+ Remove broken test case (was an exact duplicate of a test in instanceof-003.js).
+
+2009-05-12 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Improve function call forwarding performance
+
+ Make creation of the Arguments object occur lazily, so it
+ is not necessarily created for every function that references
+ it. Then add logic to Function.apply to allow it to avoid
+ allocating the Arguments object at all. Helps a lot with
+ the function forwarding/binding logic in jQuery, Prototype,
+ and numerous other JS libraries.
+
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::dump):
+ * bytecode/Opcode.h:
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::BytecodeGenerator):
+ (JSC::BytecodeGenerator::registerFor):
+ (JSC::BytecodeGenerator::willResolveToArguments):
+ (JSC::BytecodeGenerator::uncheckedRegisterForArguments):
+ (JSC::BytecodeGenerator::createArgumentsIfNecessary):
+ (JSC::BytecodeGenerator::emitCallEval):
+ (JSC::BytecodeGenerator::emitPushScope):
+ * bytecompiler/BytecodeGenerator.h:
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+ (JSC::Interpreter::retrieveArguments):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ * jit/JIT.h:
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::emit_op_create_arguments):
+ (JSC::JIT::emit_op_init_arguments):
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::cti_op_tear_off_arguments):
+ (JSC::JITStubs::cti_op_load_varargs):
+ * parser/Nodes.cpp:
+ (JSC::ApplyFunctionCallDotNode::emitBytecode):
+
+2009-05-11 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Enable use of SamplingFlags directly from JIT code.
+
+ * bytecode/SamplingTool.h:
+ * jit/JIT.h:
+ (JSC::JIT::sampleCodeBlock):
+ (JSC::JIT::sampleInstruction):
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::setSamplingFlag):
+ (JSC::JIT::clearSamplingFlag):
+
+2009-05-11 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Cameron Zwarich.
+
+ Implement JIT generation for instanceof for non-objects (always returns false).
+ Also fixes the sequencing of the prototype and value isObject checks, to no match the spec.
+
+ 0.5% progression on v8 tests overall, due to 3.5% on early-boyer.
+
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ (JSC::JIT::privateCompileSlowCases):
+ * runtime/JSObject.cpp:
+ (JSC::JSObject::hasInstance):
+ * runtime/TypeInfo.h:
+ (JSC::TypeInfo::TypeInfo):
+
+2009-05-11 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ A little more JIT refactoring.
+
+ Rearranged code to more clearly indicate what's conditionally compiled
+ and why. Now, all shared code is at the top of our JIT files, and all
+ #if'd code is at the bottom. #if'd code is delineated by large comments.
+
+ Moved functions that relate to the JIT but don't explicitly do codegen
+ into JIT.cpp. Refactored SSE2 check to store its result as a data member
+ in the JIT.
+
+ * jit/JIT.cpp:
+ (JSC::isSSE2Present):
+ (JSC::JIT::JIT):
+ (JSC::JIT::unlinkCall):
+ (JSC::JIT::linkCall):
+ * jit/JIT.h:
+ (JSC::JIT::isSSE2Present):
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::emit_op_mod):
+ (JSC::JIT::emitSlow_op_mod):
+ * jit/JITCall.cpp:
+ (JSC::JIT::compileOpCallVarargs):
+ (JSC::JIT::compileOpCallVarargsSlowCase):
+
+2009-05-11 Holger Hans Peter Freyther <zecke@selfish.org>
+
+ Build fix.
+
+ * JavaScriptCore.pri: Build the new JITOpcodes.cpp
+
+2009-05-11 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Geoffrey Garen.
+
+ More re-factoring of JIT code generation. Use a macro to
+ forward the main switch-statement cases to the helper functions.
+
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ (JSC::JIT::privateCompileSlowCases):
+
+2009-05-11 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Geoffrey Garen.
+
+ More re-factoring of JIT code generation to move opcode generation
+ to helper functions outside the main switch-statement and gave those
+ helper functions standardized names. This patch covers the remaining
+ slow cases.
+
+ * jit/JIT.cpp:
+ * jit/JIT.h:
+ * jit/JITOpcodes.cpp:
+
+2009-05-11 Geoffrey Garen <ggaren@apple.com>
+
+ Build fix.
+
+ * GNUmakefile.am: Added JITOpcodes.cpp and JITStubCall.h to the project.
+
+2009-05-11 Geoffrey Garen <ggaren@apple.com>
+
+ Build fix.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Added
+ JITOpcodes.cpp and JITStubCall.h to the project.
+
+2009-05-11 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Some JIT refactoring.
+
+ Moved JITStubCall* into its own header.
+
+ Modified JITStubCall to ASSERT that its return value is handled correctly.
+ Also, replaced function template with explicit instantiations to resolve
+ some confusion.
+
+ Replaced all uses of emit{Get,Put}CTIArgument with explicit peeks, pokes,
+ and calls to killLastResultRegister().
+
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ (JSC::JIT::privateCompile):
+ * jit/JIT.h:
+ * jit/JITArithmetic.cpp:
+ * jit/JITCall.cpp:
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::restoreArgumentReference):
+ * jit/JITPropertyAccess.cpp:
+ * jit/JITStubCall.h: Copied from jit/JIT.h.
+ (JSC::JITStubCall::JITStubCall):
+ (JSC::JITStubCall::addArgument):
+ (JSC::JITStubCall::call):
+ (JSC::JITStubCall::):
+
+2009-05-11 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Geoffrey Garen.
+
+ Start re-factoring JIT code generation to move opcode generation
+ to helper functions outside the main switch-statement and gave those
+ helper functions standardized names. This patch only covers the main
+ pass and all the arithmetic opcodes in the slow path.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ (JSC::JIT::privateCompileSlowCases):
+ * jit/JIT.h:
+ * jit/JITArithmetic.cpp:
+ * jit/JITOpcodes.cpp: Copied from jit/JIT.cpp.
+ * jit/JITPropertyAccess.cpp:
+
+2009-05-11 Steve Falkenburg <sfalken@apple.com>
+
+ Re-add experimental PGO configs.
+
+ Reviewed by Adam Roben.
+
+ * JavaScriptCore.vcproj/JavaScriptCore.make:
+ * JavaScriptCore.vcproj/JavaScriptCore.sln:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln:
+ * JavaScriptCore.vcproj/jsc/jsc.vcproj:
+
+2009-05-11 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Geoffrey "1" Garen.
+
+ Rip out the !USE(CTI_REPATCH_PIC) code. It was untested and unused.
+
+ * jit/JIT.h:
+ (JSC::JIT::compileGetByIdChainList):
+ (JSC::JIT::compileGetByIdChain):
+ (JSC::JIT::compileCTIMachineTrampolines):
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::privateCompileGetByIdProto):
+ (JSC::JIT::privateCompileGetByIdChainList):
+ (JSC::JIT::privateCompileGetByIdChain):
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::tryCachePutByID):
+ (JSC::JITStubs::tryCacheGetByID):
+
+2009-05-11 Dmitry Titov <dimich@chromium.org>
+
+ GTK build fix - the deprecated waitForThreadCompletion is not needed on GTK.
+
+ * wtf/ThreadingPthreads.cpp: used #ifdef PLATFORM(DARWIN) around waitForThreadCompletion().
+
+2009-05-11 Adam Roben <aroben@apple.com>
+
+ Build fix for newer versions of GCC
+
+ * wtf/ThreadingPthreads.cpp: Added a declaration of
+ waitForThreadCompletion before its definition to silence a warning.
+
+2009-05-11 Dmitry Titov <dimich@chromium.org>
+
+ Reviewed by Alexey Proskuryakov and Adam Roben.
+
+ https://bugs.webkit.org/show_bug.cgi?id=25348
+ Change WTF::ThreadIdentifier to be an actual (but wrapped) thread id, remove ThreadMap.
+
+ * wtf/Threading.h:
+ (WTF::ThreadIdentifier::ThreadIdentifier):
+ (WTF::ThreadIdentifier::isValid):
+ (WTF::ThreadIdentifier::invalidate):
+ (WTF::ThreadIdentifier::platformId):
+ ThreadIdentifier is now a class, containing a PlatformThreadIdentifier and
+ methods that are used across the code on thread ids: construction, comparisons,
+ check for 'valid' state etc. '0' is used as invalid id, which happens to just work
+ with all platform-specific thread id implementations.
+
+ All the following files repeatedly reflect the new ThreadIdentifier for each platform.
+ We remove ThreadMap and threadMapMutex from all of them, remove the functions that
+ populated/searched/cleared the map and add platform-specific comparison operators
+ for ThreadIdentifier.
+
+ There are specific temporary workarounds for Safari 4 beta on OSX and Win32 since the
+ public build uses WTF threading functions with old type of ThreadingIdentifier.
+ The next time Safari 4 is rebuilt, it will 'automatically' pick up the new type and new
+ functions so the deprecated ones can be removed.
+
+ * wtf/gtk/ThreadingGtk.cpp:
+ (WTF::ThreadIdentifier::operator==):
+ (WTF::ThreadIdentifier::operator!=):
+ (WTF::initializeThreading):
+ (WTF::createThreadInternal):
+ (WTF::waitForThreadCompletion):
+ (WTF::currentThread):
+
+ * wtf/ThreadingNone.cpp:
+ (WTF::ThreadIdentifier::operator==):
+ (WTF::ThreadIdentifier::operator!=):
+
+ * wtf/ThreadingPthreads.cpp:
+ (WTF::ThreadIdentifier::operator==):
+ (WTF::ThreadIdentifier::operator!=):
+ (WTF::initializeThreading):
+ (WTF::createThreadInternal):
+ (WTF::waitForThreadCompletion):
+ (WTF::detachThread):
+ (WTF::currentThread):
+ (WTF::waitForThreadCompletion): This is a workaround for Safari 4 beta on Mac.
+ Safari 4 is linked against old definition of ThreadIdentifier so it treats it as uint32_t.
+ This 'old' variant of waitForThreadCompletion takes uint32_t and has the old decorated name, so Safari can
+ load it from JavaScriptCore library. The other functions (CurrentThread() etc) happen to match their previous
+ decorated names and, while they return pthread_t now, it is a pointer which round-trips through a uint32_t.
+ This function will be removed as soon as Safari 4 will release next public build.
+
+ * wtf/qt/ThreadingQt.cpp:
+ (WTF::ThreadIdentifier::operator==):
+ (WTF::ThreadIdentifier::operator!=):
+ (WTF::initializeThreading):
+ (WTF::createThreadInternal):
+ (WTF::waitForThreadCompletion):
+ (WTF::currentThread):
+
+ * wtf/ThreadingWin.cpp:
+ (WTF::ThreadIdentifier::operator==):
+ (WTF::ThreadIdentifier::operator!=):
+ (WTF::initializeThreading):
+ (WTF::createThreadInternal): All the platforms (except Windows) used a sequential
+ counter as a thread ID and mapped it into platform ID. Windows was using native thread
+ id and mapped it into thread handle. Since we can always obtain a thread handle
+ by thread id, createThread now closes the handle.
+ (WTF::waitForThreadCompletion): obtains another one using OpenThread(id) API. If can not obtain a handle,
+ it means the thread already exited.
+ (WTF::detachThread):
+ (WTF::currentThread):
+ (WTF::detachThreadDeprecated): old function, renamed (for Win Safari 4 beta which uses it for now).
+ (WTF::waitForThreadCompletionDeprecated): same.
+ (WTF::currentThreadDeprecated): same.
+ (WTF::createThreadDeprecated): same.
+
+ * bytecode/SamplingTool.h:
+ * bytecode/SamplingTool.cpp: Use DEFINE_STATIC_LOCAL for a static ThreadIdentifier variable, to avoid static constructor.
+
+ * JavaScriptCore.exp: export lists - updated decorated names of the WTF threading functions
+ since they now take a different type as a parameter.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: ditto for Windows, plus added "deprecated" functions
+ that take old parameter type - turns out public beta of Safari 4 uses those, so they need to be kept along for a while.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: ditto.
+
+2009-05-11 Darin Adler <darin@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Bug 25560: REGRESSION (r34821): "string value".__proto__ gets the wrong object.
+ https://bugs.webkit.org/show_bug.cgi?id=25560
+ rdar://problem/6861069
+
+ I missed this case back a year ago when I sped up handling
+ of JavaScript wrappers. Easy to fix.
+
+ * runtime/JSObject.h:
+ (JSC::JSValue::get): Return the prototype itself if the property name
+ is __proto__.
+ * runtime/JSString.cpp:
+ (JSC::JSString::getOwnPropertySlot): Ditto.
+
+2009-05-09 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ Rename emitGetFromCallFrameHeader to emitGetFromCallFrameHeaderPtr
+
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ * jit/JIT.h:
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::emitGetFromCallFrameHeaderPtr):
+ (JSC::JIT::emitGetFromCallFrameHeader32):
+
+2009-05-11 Holger Hans Peter Freyther <zecke@selfish.org>
+
+ Unreviewed build fix. Build ParserAreana.cpp for Qt
+
+ * JavaScriptCore.pri:
+
+2009-05-11 Norbert Leser <norbert.leser@nokia.com>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=24536
+
+ Symbian compilers cannot resolve WTF::PassRefPtr<JSC::Profile>
+ unless Profile.h is included.
+
+ * profiler/ProfileGenerator.h:
+
+2009-05-11 Csaba Osztrogonac <oszi@inf.u-szeged.hu>
+
+ Reviewed by Holger Freyther.
+
+ https://bugs.webkit.org/show_bug.cgi?id=24284
+
+ * JavaScriptCore.pri: coding style modified
+ * jsc.pro: duplicated values removed from INCLUDEPATH, DEFINES
+
+2009-05-11 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
+
+ Reviewed by NOBODY (build fix).
+
+ Also add ParserArena, in addition to AllInOne, for release builds,
+ since adding it to AllInOne breaks Mac.
+
+ * GNUmakefile.am:
+
+2009-05-11 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
+
+ Unreviewed build fix. Adding ParserArena to the autotools build.
+
+ * GNUmakefile.am:
+
+2009-05-11 Adam Roben <aroben@apple.com>
+
+ More Windows build fixes after r43479
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+ Export ParserArena::reset.
+
+2009-05-11 Adam Roben <aroben@apple.com>
+
+ Windows build fixes after r43479
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Added
+ ParserArena to the project.
+
+ * parser/NodeConstructors.h: Added a missing include.
+ (JSC::ParserArenaDeletable::operator new): Marked these as inline.
+
+2009-05-10 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ - fixed REGRESSION(r43432): Many JavaScriptCore tests crash in 64-bit
+ https://bugs.webkit.org/show_bug.cgi?id=25680
+
+ Accound for the 64-bit instruction prefix when rewriting mov to lea on 64-bit.
+
+ * jit/JIT.h:
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::patchGetByIdSelf):
+ (JSC::JIT::patchPutByIdReplace):
+
+2009-05-10 Darin Adler <darin@apple.com>
+
+ Reviewed by Cameron Zwarich.
+
+ Bug 25674: syntax tree nodes should use arena allocation
+ https://bugs.webkit.org/show_bug.cgi?id=25674
+
+ Part two: Remove reference counting from most nodes.
+
+ * JavaScriptCore.exp: Updated.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj: Added ParserArena.h and .cpp.
+
+ * parser/Grammar.y: Replaced uses of ParserRefCountedData with uses of
+ ParserArenaData. Took out now-nonfunctional code that tries to manually
+ release declaration list. Changed the new calls that create FuncDeclNode
+ and FuncExprNode so that they use the proper version of operator new for
+ the reference-counted idiom, not the deletion idiom.
+
+ * parser/NodeConstructors.h:
+ (JSC::ParserArenaDeletable::operator new): Added.
+ (JSC::ParserArenaRefCounted::ParserArenaRefCounted): Added.
+ (JSC::Node::Node): Removed ParserRefCounted initializer.
+ (JSC::ElementNode::ElementNode): Ditto.
+ (JSC::PropertyNode::PropertyNode): Ditto.
+ (JSC::ArgumentsNode::ArgumentsNode): Ditto.
+ (JSC::SourceElements::SourceElements): Ditto.
+ (JSC::ParameterNode::ParameterNode): Ditto.
+ (JSC::FuncExprNode::FuncExprNode): Added ParserArenaRefCounted initializer.
+ (JSC::FuncDeclNode::FuncDeclNode): Ditto.
+ (JSC::CaseClauseNode::CaseClauseNode): Removed ParserRefCounted initializer.
+ (JSC::ClauseListNode::ClauseListNode): Ditto.
+ (JSC::CaseBlockNode::CaseBlockNode): Ditto.
+
+ * parser/NodeInfo.h: Replaced uses of ParserRefCountedData with uses of
+ ParserArenaData.
+
+ * parser/Nodes.cpp:
+ (JSC::ScopeNode::ScopeNode): Added ParserArenaRefCounted initializer.
+ (JSC::ProgramNode::create): Use the proper version of operator new for
+ the reference-counted idiom, not the deletion idiom. Use the arena
+ contains function instead of the vecctor find function.
+ (JSC::EvalNode::create): Use the proper version of operator new for
+ the reference-counted idiom, not the deletion idiom. Use the arena
+ reset function instead of the vector shrink function.
+ (JSC::FunctionBodyNode::createNativeThunk): Use the proper version
+ of operator new for the reference-counted idiom, not the deletion idiom.
+ (JSC::FunctionBodyNode::create): More of the same.
+
+ * parser/Nodes.h: Added ParserArenaDeletable and ParserArenaRefCounted
+ to replace ParserRefCounted. Fixed inheritance so only the classes that
+ need reference counting inherit from ParserArenaRefCounted.
+
+ * parser/Parser.cpp:
+ (JSC::Parser::parse): Set m_sourceElements to 0 since it now starts
+ uninitialized. Just set it to 0 again in the failure case, since it's
+ now just a raw pointer, not an owning one.
+ (JSC::Parser::reparseInPlace): Removed now-unneeded get() function.
+ (JSC::Parser::didFinishParsing): Replaced uses of ParserRefCountedData
+ with uses of ParserArenaData.
+
+ * parser/Parser.h: Less RefPtr, more arena.
+
+ * parser/ParserArena.cpp: Added.
+ * parser/ParserArena.h: Added.
+
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::~JSGlobalData): Removed arena-related code, since it's
+ now in the Parser.
+ (JSC::JSGlobalData::createLeaked): Removed unneeded #ifndef.
+ (JSC::JSGlobalData::createNativeThunk): Tweaked #if a bit.
+
+ * runtime/JSGlobalData.h: Removed parserArena, which is now in Parser.
+
+ * wtf/RefCounted.h: Added deletionHasBegun function, for use in
+ assertions to catch deletion not done by the deref function.
+
+2009-05-10 David Kilzer <ddkilzer@apple.com>
+
+ Part 2: Try to fix the Windows build by adding a symbol which is really just a re-mangling of a changed method signature
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+
+2009-05-10 David Kilzer <ddkilzer@apple.com>
+
+ Try to fix the Windows build by removing an unknown symbol
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+
+2009-05-10 David Kilzer <ddkilzer@apple.com>
+
+ Touch Nodes.cpp to try to fix Windows build
+
+ * parser/Nodes.cpp: Removed whitespace.
+
+2009-05-10 Darin Adler <darin@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ Quick fix for failures seen on buildbot. Maciej plans a better fix later.
+
+ * wtf/dtoa.cpp: Change the hardcoded number of 32-bit words in a BigInt
+ from 32 to 64. Parsing "1e500", for example, requires more than 32 words.
+
+2009-05-10 Darin Adler <darin@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Bug 25674: syntax tree nodes should use arena allocation
+ Part one: Change lifetimes so we won't have to use reference
+ counting so much, but don't eliminate the reference counts
+ entirely yet.
+
+ * JavaScriptCore.exp: Updated.
+
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::BytecodeGenerator): Update for use of raw pointers
+ instead of RefPtr.
+ (JSC::BytecodeGenerator::emitCall): Ditto.
+ (JSC::BytecodeGenerator::emitConstruct): Ditto.
+
+ * parser/Grammar.y: Update node creating code to use new (JSGlobalData*)
+ instead of the plain new. At the moment this is just a hook for future
+ arena allocation; it's inline and JSGlobalData* is not used.
+
+ * parser/NodeConstructors.h: Updated for name change of parserObjects to
+ parserArena. Also added explicit initialization for raw pointers that used
+ to be RefPtr. Also removed some uses of get() that aren't needed now that
+ the pointers are raw pointers. Also eliminated m_parameter from FuncExprNode
+ and FuncDeclNode. Also changed node-creating code to use new (JSGlobalData*)
+ as above.
+
+ * parser/Nodes.cpp: Eliminated NodeReleaser and all use of it.
+ (JSC::ParserRefCounted::ParserRefCounted): Updated for name change of
+ parserObjects to parserArena.
+ (JSC::SourceElements::append): Use raw pointers.
+ (JSC::ArrayNode::emitBytecode): Ditto.
+ (JSC::ArrayNode::isSimpleArray): Ditto.
+ (JSC::ArrayNode::toArgumentList): Ditto.
+ (JSC::ObjectLiteralNode::emitBytecode): Ditto.
+ (JSC::PropertyListNode::emitBytecode): Ditto.
+ (JSC::BracketAccessorNode::emitBytecode): Ditto.
+ (JSC::DotAccessorNode::emitBytecode): Ditto.
+ (JSC::ArgumentListNode::emitBytecode): Ditto.
+ (JSC::NewExprNode::emitBytecode): Ditto.
+ (JSC::EvalFunctionCallNode::emitBytecode): Ditto.
+ (JSC::FunctionCallValueNode::emitBytecode): Ditto.
+ (JSC::FunctionCallResolveNode::emitBytecode): Ditto.
+ (JSC::FunctionCallBracketNode::emitBytecode): Ditto.
+ (JSC::FunctionCallDotNode::emitBytecode): Ditto.
+ (JSC::CallFunctionCallDotNode::emitBytecode): Ditto.
+ (JSC::ApplyFunctionCallDotNode::emitBytecode): Ditto.
+ (JSC::PostfixBracketNode::emitBytecode): Ditto.
+ (JSC::PostfixDotNode::emitBytecode): Ditto.
+ (JSC::DeleteBracketNode::emitBytecode): Ditto.
+ (JSC::DeleteDotNode::emitBytecode): Ditto.
+ (JSC::DeleteValueNode::emitBytecode): Ditto.
+ (JSC::VoidNode::emitBytecode): Ditto.
+ (JSC::TypeOfValueNode::emitBytecode): Ditto.
+ (JSC::PrefixBracketNode::emitBytecode): Ditto.
+ (JSC::PrefixDotNode::emitBytecode): Ditto.
+ (JSC::UnaryOpNode::emitBytecode): Ditto.
+ (JSC::BinaryOpNode::emitStrcat): Ditto.
+ (JSC::BinaryOpNode::emitBytecode): Ditto.
+ (JSC::EqualNode::emitBytecode): Ditto.
+ (JSC::StrictEqualNode::emitBytecode): Ditto.
+ (JSC::ReverseBinaryOpNode::emitBytecode): Ditto.
+ (JSC::ThrowableBinaryOpNode::emitBytecode): Ditto.
+ (JSC::InstanceOfNode::emitBytecode): Ditto.
+ (JSC::LogicalOpNode::emitBytecode): Ditto.
+ (JSC::ConditionalNode::emitBytecode): Ditto.
+ (JSC::ReadModifyResolveNode::emitBytecode): Ditto.
+ (JSC::AssignResolveNode::emitBytecode): Ditto.
+ (JSC::AssignDotNode::emitBytecode): Ditto.
+ (JSC::ReadModifyDotNode::emitBytecode): Ditto.
+ (JSC::AssignBracketNode::emitBytecode): Ditto.
+ (JSC::ReadModifyBracketNode::emitBytecode): Ditto.
+ (JSC::CommaNode::emitBytecode): Ditto.
+ (JSC::ConstDeclNode::emitCodeSingle): Ditto.
+ (JSC::ConstDeclNode::emitBytecode): Ditto.
+ (JSC::ConstStatementNode::emitBytecode): Ditto.
+ (JSC::statementListEmitCode): Ditto.
+ (JSC::BlockNode::emitBytecode): Ditto.
+ (JSC::ExprStatementNode::emitBytecode): Ditto.
+ (JSC::VarStatementNode::emitBytecode): Ditto.
+ (JSC::IfNode::emitBytecode): Ditto.
+ (JSC::IfElseNode::emitBytecode): Ditto.
+ (JSC::DoWhileNode::emitBytecode): Ditto.
+ (JSC::WhileNode::emitBytecode): Ditto.
+ (JSC::ForNode::emitBytecode): Ditto.
+ (JSC::ForInNode::emitBytecode): Ditto.
+ (JSC::ReturnNode::emitBytecode): Ditto.
+ (JSC::WithNode::emitBytecode): Ditto.
+ (JSC::CaseBlockNode::tryOptimizedSwitch): Ditto.
+ (JSC::CaseBlockNode::emitBytecodeForBlock): Ditto.
+ (JSC::SwitchNode::emitBytecode): Ditto.
+ (JSC::LabelNode::emitBytecode): Ditto.
+ (JSC::ThrowNode::emitBytecode): Ditto.
+ (JSC::TryNode::emitBytecode): Ditto.
+ (JSC::ScopeNodeData::ScopeNodeData): Use swap to transfer ownership
+ of the arena, varStack and functionStack.
+ (JSC::ScopeNode::ScopeNode): Pass in the arena when creating the
+ ScopeNodeData.
+ (JSC::ProgramNode::ProgramNode): Made this inline since it's used
+ in only one place.
+ (JSC::ProgramNode::create): Changed this to return a PassRefPtr since
+ we plan to have the scope nodes be outside the arena, so they will need
+ some kind of ownership transfer (maybe auto_ptr instead of PassRefPtr
+ in the future, though). Remove the node from the newly-created arena to
+ avoid a circular reference. Later we'll keep the node out of the arena
+ by using a different operator new, but for now it's the ParserRefCounted
+ constructor that puts the node into the arena, and there's no way to
+ bypass that.
+ (JSC::EvalNode::EvalNode): Ditto.
+ (JSC::EvalNode::create): Ditto.
+ (JSC::FunctionBodyNode::FunctionBodyNode): Ditto.
+ (JSC::FunctionBodyNode::createNativeThunk): Moved the code that
+ reseets the arena here instead of the caller.
+ (JSC::FunctionBodyNode::create): Same change as the other create
+ functions above.
+ (JSC::FunctionBodyNode::emitBytecode): Use raw pointers.
+
+ * parser/Nodes.h: Removed NodeReleaser. Changed FunctionStack to
+ use raw pointers. Removed the releaseNodes function. Added an override
+ of operator new that takes a JSGlobalData* to prepare for future arena use.
+ Use raw pointers instead of RefPtr everywhere possible.
+
+ * parser/Parser.cpp:
+ (JSC::Parser::reparseInPlace): Pass the arena in.
+
+ * parser/Parser.h:
+ (JSC::Parser::parse): Updated for name change of parserObjects to parserArena.
+ (JSC::Parser::reparse): Ditto.
+ * runtime/FunctionConstructor.cpp:
+ (JSC::extractFunctionBody): Ditto.
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::~JSGlobalData): Ditto.
+ (JSC::JSGlobalData::createNativeThunk): Moved arena manipulation into the
+ FunctionBodyNode::createNativeThunk function.
+
+ * runtime/JSGlobalData.h: Tweaked formatting and renamed parserObjects to
+ parserArena.
+
+ * wtf/NotFound.h: Added the usual "using WTF" to this header to match the
+ rest of WTF.
+
+2009-05-10 Dimitri Glazkov <dglazkov@chromium.org>
+
+ Reviewed by Geoffrey Garen.
+
+ https://bugs.webkit.org/show_bug.cgi?id=25670
+ Remove no longer valid chunk of code from dtoa.
+
+ * wtf/dtoa.cpp:
+ (WTF::dtoa): Removed invalid code.
+
+2009-05-10 Alexey Proskuryakov <ap@webkit.org>
+
+ Reviewed by Geoff Garen.
+
+ "Class const *" is the same as "const Class*", use the latter syntax consistently.
+
+ See <http://www.parashift.com/c++-faq-lite/const-correctness.html#faq-18.9>.
+
+ * pcre/pcre_compile.cpp:
+ (calculateCompiledPatternLength):
+ * runtime/JSObject.h:
+ (JSC::JSObject::offsetForLocation):
+ (JSC::JSObject::locationForOffset):
+
+2009-05-10 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Alexey Proskuryakov.
+
+ - speedup dtoa/strtod
+
+ Added a bunch of inlining, and replaced malloc with stack allocation.
+
+ 0.5% SunSpider speedup (7% on string-tagcloud).
+
+ * runtime/NumberPrototype.cpp:
+ (JSC::integerPartNoExp):
+ (JSC::numberProtoFuncToExponential):
+ * runtime/UString.cpp:
+ (JSC::concatenate):
+ (JSC::UString::from):
+ * wtf/dtoa.cpp:
+ (WTF::BigInt::BigInt):
+ (WTF::BigInt::operator=):
+ (WTF::Balloc):
+ (WTF::Bfree):
+ (WTF::multadd):
+ (WTF::s2b):
+ (WTF::i2b):
+ (WTF::mult):
+ (WTF::pow5mult):
+ (WTF::lshift):
+ (WTF::cmp):
+ (WTF::diff):
+ (WTF::b2d):
+ (WTF::d2b):
+ (WTF::ratio):
+ (WTF::strtod):
+ (WTF::quorem):
+ (WTF::freedtoa):
+ (WTF::dtoa):
+ * wtf/dtoa.h:
+
+2009-05-09 Mike Hommey <glandium@debian.org>
+
+ Reviewed by Geoffrey Garen. Landed by Jan Alonzo.
+
+ Enable JIT on x86-64 gtk+
+ https://bugs.webkit.org/show_bug.cgi?id=24724
+
+ * GNUmakefile.am:
+
+2009-05-09 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Cameron Zwarich.
+
+ Removed the last non-call-related manually managed JIT stub call.
+
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileFastArithSlow_op_rshift): Fully use the JITStubCall
+ abstraction, instead of emitPutJITStubArg.
+
+2009-05-09 Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
+
+ Reviewed by Gustavo Noronha.
+
+ https://bugs.webkit.org/show_bug.cgi?id=25653
+ PLATFORM(X86_64) inherits ia64
+
+ __ia64__ is defined by gcc in an IA64 arch and has completely
+ nothing in common with X86-64 exept both are from Intel and have
+ an 64bit address space. That's it. Since code seems to expect x86
+ here, ia64 has to go.
+
+ * wtf/Platform.h:
+
+2009-05-09 Gustavo Noronha Silva <gns@gnome.org>
+
+ Suggested by Geoffrey Garen.
+
+ Assume SSE2 is present on X86-64 and on MAC X86-32. This fixes a
+ build breakage on non-Mac X86-64 when JIT is enabled.
+
+ * jit/JITArithmetic.cpp:
+
+2009-05-09 Gustavo Noronha Silva <gns@gnome.org>
+
+ Build fix, adding missing files to make dist.
+
+ * GNUmakefile.am:
+
+2009-05-09 Geoffrey Garen <ggaren@apple.com>
+
+ Windows build fix.
+
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::patchLoadToLEA):
+
+2009-05-09 Geoffrey Garen <ggaren@apple.com>
+
+ Windows build fix.
+
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::patchLoadToLEA):
+
+2009-05-09 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Original patch by John McCall. Updated by Cameron Zwarich. Further refined by me.
+
+ - Assorted speedups to property access
+
+ ~.3%-1% speedup on SunSpider
+
+ 1) When we know from the structure ID that an object is using inline storage, plant direct
+ loads and stores against it; no need to indirect through storage pointer.
+
+ 2) Also because of the above, union the property storage pointer with the first inline property
+ slot and add an extra inline property slot.
+
+ * assembler/AbstractMacroAssembler.h:
+ (JSC::AbstractMacroAssembler::CodeLocationInstruction::CodeLocationInstruction):
+ (JSC::AbstractMacroAssembler::CodeLocationInstruction::patchLoadToLEA):
+ (JSC::::CodeLocationCommon::instructionAtOffset):
+ * assembler/MacroAssembler.h:
+ (JSC::MacroAssembler::storePtr):
+ * assembler/MacroAssemblerX86.h:
+ (JSC::MacroAssemblerX86::store32):
+ * assembler/MacroAssemblerX86_64.h:
+ (JSC::MacroAssemblerX86_64::storePtr):
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::movq_EAXm):
+ (JSC::X86Assembler::movl_rm):
+ (JSC::X86Assembler::patchLoadToLEA):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ * jit/JIT.h:
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::compileGetByIdHotPath):
+ (JSC::JIT::compilePutByIdHotPath):
+ (JSC::JIT::compilePutDirectOffset):
+ (JSC::JIT::compileGetDirectOffset):
+ (JSC::JIT::privateCompilePutByIdTransition):
+ (JSC::JIT::patchGetByIdSelf):
+ (JSC::JIT::patchPutByIdReplace):
+ (JSC::JIT::privateCompileGetByIdSelf):
+ (JSC::JIT::privateCompileGetByIdProto):
+ (JSC::JIT::privateCompileGetByIdSelfList):
+ (JSC::JIT::privateCompileGetByIdProtoList):
+ (JSC::JIT::privateCompileGetByIdChainList):
+ (JSC::JIT::privateCompileGetByIdChain):
+ (JSC::JIT::privateCompilePutByIdReplace):
+ * runtime/JSObject.cpp:
+ (JSC::JSObject::mark):
+ (JSC::JSObject::removeDirect):
+ * runtime/JSObject.h:
+ (JSC::JSObject::propertyStorage):
+ (JSC::JSObject::getDirect):
+ (JSC::JSObject::getOffset):
+ (JSC::JSObject::offsetForLocation):
+ (JSC::JSObject::locationForOffset):
+ (JSC::JSObject::getDirectOffset):
+ (JSC::JSObject::putDirectOffset):
+ (JSC::JSObject::isUsingInlineStorage):
+ (JSC::JSObject::):
+ (JSC::JSObject::JSObject):
+ (JSC::JSObject::~JSObject):
+ (JSC::Structure::isUsingInlineStorage):
+ (JSC::JSObject::putDirect):
+ (JSC::JSObject::putDirectWithoutTransition):
+ (JSC::JSObject::allocatePropertyStorageInline):
+ * runtime/Structure.h:
+
+2009-05-09 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Changed all our JIT stubs so that they return a maximum of 1 JS value or
+ two non-JS pointers, and do all other value returning through out
+ parameters, in preparation for 64bit JS values on a 32bit system.
+
+ Stubs that used to return two JSValues now return one JSValue and take
+ and out parameter specifying where in the register array the second
+ value should go.
+
+ SunSpider reports no change.
+
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileFastArithSlow_op_post_inc):
+ (JSC::JIT::compileFastArithSlow_op_post_dec):
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::cti_op_call_arityCheck):
+ (JSC::JITStubs::cti_op_resolve_func):
+ (JSC::JITStubs::cti_op_post_inc):
+ (JSC::JITStubs::cti_op_resolve_with_base):
+ (JSC::JITStubs::cti_op_post_dec):
+ * jit/JITStubs.h:
+ (JSC::):
+
+2009-05-08 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Cameron Zwarich.
+
+ Fixed <rdar://problem/6634956> CrashTracer: [REGRESSION] >400 crashes
+ in Safari at com.apple.JavaScriptCore • JSC::BytecodeGenerator::emitComplexJumpScopes + 468
+ https://bugs.webkit.org/show_bug.cgi?id=25658
+
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::emitComplexJumpScopes): Guard the whole loop
+ with a bounds check. The old loop logic would decrement and read topScope
+ without a bounds check, which could cause crashes on page boundaries.
+
+2009-05-08 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Reviewed by NOBODY (BuildFix).
+
+ Gtk fix: add LiteralParser to the build script per r43424.
+
+ Add LiteralParser to the Qt and Wx build scripts too.
+
+ * GNUmakefile.am:
+ * JavaScriptCore.pri:
+ * JavaScriptCoreSources.bkl:
+
+2009-05-08 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough and Darin Adler.
+
+ Add a limited literal parser for eval to handle object and array literals fired at eval
+
+ This is a simplified parser and lexer that we can throw at strings passed to eval
+ in case a site is using eval to parse JSON (eg. json2.js). The lexer is intentionally
+ limited (in effect it's whitelisting a limited "common" subset of the JSON grammar)
+ as this decreases the likelihood of us wating time attempting to parse any significant
+ amount of non-JSON content.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::callEval):
* runtime/JSGlobalObjectFunctions.cpp:
+ (JSC::globalFuncEval):
+ * runtime/LiteralParser.cpp: Added.
+ (JSC::isStringCharacter):
+ (JSC::LiteralParser::Lexer::lex):
+ (JSC::LiteralParser::Lexer::lexString):
+ (JSC::LiteralParser::Lexer::lexNumber):
+ (JSC::LiteralParser::parseStatement):
+ (JSC::LiteralParser::parseExpression):
+ (JSC::LiteralParser::parseArray):
+ (JSC::LiteralParser::parseObject):
+ (JSC::LiteralParser::StackGuard::StackGuard):
+ (JSC::LiteralParser::StackGuard::~StackGuard):
+ (JSC::LiteralParser::StackGuard::isSafe):
+ * runtime/LiteralParser.h: Added.
+ (JSC::LiteralParser::LiteralParser):
+ (JSC::LiteralParser::attemptJSONParse):
+ (JSC::LiteralParser::):
+ (JSC::LiteralParser::Lexer::Lexer):
+ (JSC::LiteralParser::Lexer::next):
+ (JSC::LiteralParser::Lexer::currentToken):
+ (JSC::LiteralParser::abortParse):
+
+2009-05-08 Geoffrey Garen <ggaren@apple.com>
+
+ Not reviewed.
+
+ Restored a Mozilla JS test I accidentally gutted.
+
+ * tests/mozilla/ecma/Array/15.4.4.2.js:
+ (getTestCases):
+ (test):
+
+2009-05-08 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ More abstraction for JITStub calls from JITed code.
+
+ Added a JITStubCall class that automatically handles things like assigning
+ arguments to different stack slots and storing return values. Deployed
+ the class in about a billion places. A bunch more places remain to be
+ fixed up, but this is a good stopping point for now.
+
+ * jit/JIT.cpp:
+ (JSC::JIT::emitTimeoutCheck):
+ (JSC::JIT::privateCompileMainPass):
+ (JSC::JIT::privateCompileSlowCases):
+ (JSC::JIT::privateCompile):
+ * jit/JIT.h:
+ (JSC::JIT::JSRInfo::JSRInfo):
+ (JSC::JITStubCall::JITStubCall):
+ (JSC::JITStubCall::addArgument):
+ (JSC::JITStubCall::call):
+ (JSC::JITStubCall::):
+ (JSC::CallEvalJITStub::CallEvalJITStub):
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileFastArithSlow_op_lshift):
+ (JSC::JIT::compileFastArithSlow_op_rshift):
+ (JSC::JIT::compileFastArithSlow_op_jnless):
+ (JSC::JIT::compileFastArithSlow_op_bitand):
+ (JSC::JIT::compileFastArithSlow_op_mod):
+ (JSC::JIT::compileFastArith_op_mod):
+ (JSC::JIT::compileFastArithSlow_op_post_inc):
+ (JSC::JIT::compileFastArithSlow_op_post_dec):
+ (JSC::JIT::compileFastArithSlow_op_pre_inc):
+ (JSC::JIT::compileFastArithSlow_op_pre_dec):
+ (JSC::JIT::compileFastArith_op_add):
+ (JSC::JIT::compileFastArith_op_mul):
+ (JSC::JIT::compileFastArith_op_sub):
+ (JSC::JIT::compileBinaryArithOpSlowCase):
+ (JSC::JIT::compileFastArithSlow_op_add):
+ (JSC::JIT::compileFastArithSlow_op_mul):
+ * jit/JITCall.cpp:
+ (JSC::JIT::compileOpCall):
+ (JSC::):
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::compileGetByIdHotPath):
+ (JSC::JIT::compilePutByIdHotPath):
+ (JSC::JIT::compileGetByIdSlowCase):
+ (JSC::JIT::compilePutByIdSlowCase):
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::cti_op_resolve_func):
+ (JSC::JITStubs::cti_op_resolve_with_base):
+
+2009-05-08 Cameron Zwarich <cwzwarich@uwaterloo.ca>
+
+ Reviewed by Maciej Stachowiak.
+
+ Add a new opcode jnlesseq, and optimize its compilation in the JIT using
+ techniques similar to what were used to optimize jnless in r43363.
+
+ This gives a 0.7% speedup on SunSpider, particularly on the tests 3d-cube,
+ control-flow-recursive, date-format-xparb, and string-base64.
+
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::dump): Add support for dumping op_jnlesseq.
+ * bytecode/Opcode.h: Add op_jnlesseq to the list of opcodes.
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::emitJumpIfFalse): Add a peephole optimization
+ for op_jnlesseq when emitting lesseq followed by a jump.
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute): Add case for op_jnlesseq.
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass): Add case for op_jnlesseq.
+ (JSC::JIT::privateCompileSlowCases): Add case for op_jnlesseq.
+ * jit/JIT.h:
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileFastArith_op_jnlesseq): Added.
+ (JSC::JIT::compileFastArithSlow_op_jnlesseq): Added.
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::cti_op_jlesseq): Added.
+ * jit/JITStubs.h:
+
+2009-05-08 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Cameron Zwarich.
+
+ - fix test failures on 64-bit
+
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileFastArithSlow_op_jnless): Avoid accidentaly treating an
+ immediate int as an immediate float in the 64-bit value representation.
+
+2009-05-08 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Oliver Hunt.
+
+ Removing an empty constructor and an uncalled, empty function seems to be a
+ pretty solid 1% regeression on my machine, so I'm going to put them back.
+ Um. Yeah, this this pretty pointles and makes no sense at all. I officially
+ lose the will to live in 3... 2...
+
+ * bytecode/SamplingTool.cpp:
+ (JSC::SamplingTool::notifyOfScope):
+ * bytecode/SamplingTool.h:
+ (JSC::SamplingTool::~SamplingTool):
+
+2009-05-08 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver "I see lots of ifdefs" Hunt.
+
+ Fix (kinda) for sampling tool breakage. The codeblock sampling tool has become
+ b0rked due to recent changes in native function calling. The initialization of
+ a ScopeNode appears to now occur before the sampling tool (or possibly the
+ interpreter has been brought into existence, wihich leads to crashyness).
+
+ This patch doesn't fix the problem. The crash occurs when tracking a Scope, but
+ we shouldn't need to track scopes when we're just sampling opcodes, not
+ codeblocks. Not retaining Scopes when just opcode sampling will reduce sampling
+ overhead reducing any instrumentation skew, which is a good thing. As a side
+ benefit this patch also gets the opcode sampling going again, albeit in a bit of
+ a lame way. Will come back later with a proper fix from codeblock sampling.
+
+ * JavaScriptCore.exp:
+ * bytecode/SamplingTool.cpp:
+ (JSC::compareLineCountInfoSampling):
+ (JSC::SamplingTool::dump):
+ * bytecode/SamplingTool.h:
+ (JSC::SamplingTool::SamplingTool):
+ * parser/Nodes.cpp:
+ (JSC::ScopeNode::ScopeNode):
+
+2009-05-07 Mark Rowe <mrowe@apple.com>
+
+ Rubber-stamped by Oliver Hunt.
+
+ Fix <https://bugs.webkit.org/show_bug.cgi?id=25640>.
+ Bug 25640: Crash on quit in r43384 nightly build on Leopard w/ Safari 4 beta installed
+
+ Roll out r43366 as it removed symbols that Safari 4 Beta uses.
+
+ * JavaScriptCore.exp:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+ * bytecode/SamplingTool.cpp:
+ (JSC::SamplingThread::start):
+ (JSC::SamplingThread::stop):
+ * bytecode/SamplingTool.h:
+ * wtf/CrossThreadRefCounted.h:
+ (WTF::CrossThreadRefCounted::CrossThreadRefCounted):
+ (WTF::::ref):
+ (WTF::::deref):
+ * wtf/Threading.h:
+ * wtf/ThreadingNone.cpp:
+ * wtf/ThreadingPthreads.cpp:
+ (WTF::threadMapMutex):
+ (WTF::initializeThreading):
+ (WTF::threadMap):
+ (WTF::identifierByPthreadHandle):
+ (WTF::establishIdentifierForPthreadHandle):
+ (WTF::pthreadHandleForIdentifier):
+ (WTF::clearPthreadHandleForIdentifier):
+ (WTF::createThreadInternal):
+ (WTF::waitForThreadCompletion):
+ (WTF::detachThread):
+ (WTF::currentThread):
+ * wtf/ThreadingWin.cpp:
+ (WTF::threadMapMutex):
+ (WTF::initializeThreading):
+ (WTF::threadMap):
+ (WTF::storeThreadHandleByIdentifier):
+ (WTF::threadHandleForIdentifier):
+ (WTF::clearThreadHandleForIdentifier):
+ (WTF::createThreadInternal):
+ (WTF::waitForThreadCompletion):
+ (WTF::detachThread):
+ (WTF::currentThread):
+ * wtf/gtk/ThreadingGtk.cpp:
+ (WTF::threadMapMutex):
+ (WTF::initializeThreading):
+ (WTF::threadMap):
+ (WTF::identifierByGthreadHandle):
+ (WTF::establishIdentifierForThread):
+ (WTF::threadForIdentifier):
+ (WTF::clearThreadForIdentifier):
+ (WTF::createThreadInternal):
+ (WTF::waitForThreadCompletion):
+ (WTF::currentThread):
+ * wtf/qt/ThreadingQt.cpp:
+ (WTF::threadMapMutex):
+ (WTF::threadMap):
+ (WTF::identifierByQthreadHandle):
+ (WTF::establishIdentifierForThread):
+ (WTF::clearThreadForIdentifier):
+ (WTF::threadForIdentifier):
+ (WTF::initializeThreading):
+ (WTF::createThreadInternal):
+ (WTF::waitForThreadCompletion):
+ (WTF::currentThread):
+
+2009-05-07 Gustavo Noronha Silva <gns@gnome.org>
+
+ Suggested by Oliver Hunt.
+
+ Also check for Linux for the special-cased calling convention.
+
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ * wtf/Platform.h:
+
+2009-05-07 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ Previously, when appending to an existing string and growing the underlying buffer,
+ we would actually allocate 110% of the required size in order to give us some space
+ to expand into. Now we treat strings differently based on their size:
+
+ Small Strings (up to 4 pages):
+ Expand the allocation size to 112.5% of the amount requested. This is largely sicking
+ to our previous policy, however 112.5% is cheaper to calculate.
+
+ Medium Strings (up to 128 pages):
+ For pages covering multiple pages over-allocation is less of a concern - any unused
+ space will not be paged in if it is not used, so this is purely a VM overhead. For
+ these strings allocate 2x the requested size.
+
+ Large Strings (to infinity and beyond!):
+ Revert to our 112.5% policy - probably best to limit the amount of unused VM we allow
+ any individual string be responsible for.
+
+ Additionally, round small allocations up to a multiple of 16 bytes, and medium and
+ large allocations up to a multiple of page size.
+
+ ~1.5% progression on Sunspider, due to 5% improvement on tagcloud & 15% on validate.
+
+ * runtime/UString.cpp:
+ (JSC::expandedSize):
+
+2009-05-07 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Cameron Zwarich.
+
+ Fixed a minor sequencing error introduced by recent Parser speedups.
+
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::createNativeThunk): Missed a spot in my last patch.
+
+2009-05-07 Geoffrey Garen <ggaren@apple.com>
+
+ Not reviewed.
+
+ * wtf/Platform.h: Reverted an accidental (and performance-catastrophic)
+ change.
+
+2009-05-07 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Cameron Zwarich.
+
+ Fixed a minor sequencing error introduced by recent Parser speedups.
+
+ * parser/Parser.cpp:
+ (JSC::Parser::reparseInPlace): Missed a spot in my last patch.
+
+2009-05-07 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Cameron Zwarich.
+
+ Fixed a minor sequencing error introduced by recent Parser speedups.
+
+ * parser/Parser.cpp:
+ (JSC::Parser::parse):
+ * parser/Parser.h:
+ (JSC::Parser::parse):
+ (JSC::Parser::reparse): Shrink the parsedObjects vector after allocating
+ the root node, to avoid leaving a stray node in the vector, since that's
+ a slight memory leak, and it causes problems during JSGlobalData teardown.
+
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::~JSGlobalData): ASSERT that we're not being torn
+ down while we think we're still parsing, since that would cause lots of
+ bad memory references during our destruction.
+
+2009-05-07 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Cameron Zwarich.
+
+ Replaced two more macros with references to the JITStackFrame structure.
+
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::restoreArgumentReference):
+ * jit/JITStubs.cpp:
+ (JSC::):
+ * jit/JITStubs.h:
+
+2009-05-07 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Improve native call performance
+
+ Fix the windows build by adding calling convention declarations everywhere,
+ chose fastcall as that seemed most sensible given we were having to declare
+ the convention explicitly. In addition switched to fastcall on mac in the
+ deluded belief that documented fastcall behavior on windows would match
+ actual its actual behavior.
+
+ * API/JSCallbackFunction.h:
+ * API/JSCallbackObject.h:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+ * interpreter/CallFrame.h:
+ (JSC::ExecState::argumentCount):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ * jsc.cpp:
+ (functionPrint):
+ (functionDebug):
+ (functionGC):
+ (functionVersion):
+ (functionRun):
+ (functionLoad):
+ (functionSetSamplingFlags):
+ (functionClearSamplingFlags):
+ (functionReadline):
+ (functionQuit):
+ * runtime/ArrayConstructor.cpp:
+ (JSC::callArrayConstructor):
+ * runtime/ArrayPrototype.cpp:
+ (JSC::arrayProtoFuncToString):
+ (JSC::arrayProtoFuncToLocaleString):
+ (JSC::arrayProtoFuncJoin):
+ (JSC::arrayProtoFuncConcat):
+ (JSC::arrayProtoFuncPop):
+ (JSC::arrayProtoFuncPush):
+ (JSC::arrayProtoFuncReverse):
+ (JSC::arrayProtoFuncShift):
+ (JSC::arrayProtoFuncSlice):
+ (JSC::arrayProtoFuncSort):
+ (JSC::arrayProtoFuncSplice):
+ (JSC::arrayProtoFuncUnShift):
+ (JSC::arrayProtoFuncFilter):
+ (JSC::arrayProtoFuncMap):
+ (JSC::arrayProtoFuncEvery):
+ (JSC::arrayProtoFuncForEach):
+ (JSC::arrayProtoFuncSome):
+ (JSC::arrayProtoFuncReduce):
+ (JSC::arrayProtoFuncReduceRight):
+ (JSC::arrayProtoFuncIndexOf):
+ (JSC::arrayProtoFuncLastIndexOf):
+ * runtime/BooleanConstructor.cpp:
+ (JSC::callBooleanConstructor):
+ * runtime/BooleanPrototype.cpp:
+ (JSC::booleanProtoFuncToString):
+ (JSC::booleanProtoFuncValueOf):
+ * runtime/CallData.h:
+ * runtime/DateConstructor.cpp:
+ (JSC::callDate):
+ (JSC::dateParse):
+ (JSC::dateNow):
+ (JSC::dateUTC):
+ * runtime/DatePrototype.cpp:
+ (JSC::dateProtoFuncToString):
+ (JSC::dateProtoFuncToUTCString):
+ (JSC::dateProtoFuncToDateString):
+ (JSC::dateProtoFuncToTimeString):
+ (JSC::dateProtoFuncToLocaleString):
+ (JSC::dateProtoFuncToLocaleDateString):
+ (JSC::dateProtoFuncToLocaleTimeString):
+ (JSC::dateProtoFuncGetTime):
+ (JSC::dateProtoFuncGetFullYear):
+ (JSC::dateProtoFuncGetUTCFullYear):
+ (JSC::dateProtoFuncToGMTString):
+ (JSC::dateProtoFuncGetMonth):
+ (JSC::dateProtoFuncGetUTCMonth):
+ (JSC::dateProtoFuncGetDate):
+ (JSC::dateProtoFuncGetUTCDate):
+ (JSC::dateProtoFuncGetDay):
+ (JSC::dateProtoFuncGetUTCDay):
+ (JSC::dateProtoFuncGetHours):
+ (JSC::dateProtoFuncGetUTCHours):
+ (JSC::dateProtoFuncGetMinutes):
+ (JSC::dateProtoFuncGetUTCMinutes):
+ (JSC::dateProtoFuncGetSeconds):
+ (JSC::dateProtoFuncGetUTCSeconds):
+ (JSC::dateProtoFuncGetMilliSeconds):
+ (JSC::dateProtoFuncGetUTCMilliseconds):
+ (JSC::dateProtoFuncGetTimezoneOffset):
+ (JSC::dateProtoFuncSetTime):
+ (JSC::dateProtoFuncSetMilliSeconds):
+ (JSC::dateProtoFuncSetUTCMilliseconds):
+ (JSC::dateProtoFuncSetSeconds):
+ (JSC::dateProtoFuncSetUTCSeconds):
+ (JSC::dateProtoFuncSetMinutes):
+ (JSC::dateProtoFuncSetUTCMinutes):
+ (JSC::dateProtoFuncSetHours):
+ (JSC::dateProtoFuncSetUTCHours):
+ (JSC::dateProtoFuncSetDate):
+ (JSC::dateProtoFuncSetUTCDate):
+ (JSC::dateProtoFuncSetMonth):
+ (JSC::dateProtoFuncSetUTCMonth):
+ (JSC::dateProtoFuncSetFullYear):
+ (JSC::dateProtoFuncSetUTCFullYear):
+ (JSC::dateProtoFuncSetYear):
+ (JSC::dateProtoFuncGetYear):
+ * runtime/ErrorConstructor.cpp:
+ (JSC::callErrorConstructor):
+ * runtime/ErrorPrototype.cpp:
+ (JSC::errorProtoFuncToString):
+ * runtime/FunctionConstructor.cpp:
+ (JSC::callFunctionConstructor):
+ * runtime/FunctionPrototype.cpp:
+ (JSC::callFunctionPrototype):
+ (JSC::functionProtoFuncToString):
+ (JSC::functionProtoFuncApply):
+ (JSC::functionProtoFuncCall):
+ * runtime/JSFunction.h:
+ (JSC::JSFunction::nativeFunction):
+ (JSC::JSFunction::setScopeChain):
+ * runtime/JSGlobalObjectFunctions.cpp:
+ (JSC::globalFuncEval):
(JSC::globalFuncParseInt):
+ (JSC::globalFuncParseFloat):
+ (JSC::globalFuncIsNaN):
+ (JSC::globalFuncIsFinite):
+ (JSC::globalFuncDecodeURI):
+ (JSC::globalFuncDecodeURIComponent):
+ (JSC::globalFuncEncodeURI):
+ (JSC::globalFuncEncodeURIComponent):
+ (JSC::globalFuncEscape):
+ (JSC::globalFuncUnescape):
+ (JSC::globalFuncJSCPrint):
+ * runtime/JSGlobalObjectFunctions.h:
+ * runtime/MathObject.cpp:
+ (JSC::mathProtoFuncAbs):
+ (JSC::mathProtoFuncACos):
+ (JSC::mathProtoFuncASin):
+ (JSC::mathProtoFuncATan):
+ (JSC::mathProtoFuncATan2):
+ (JSC::mathProtoFuncCeil):
+ (JSC::mathProtoFuncCos):
+ (JSC::mathProtoFuncExp):
+ (JSC::mathProtoFuncFloor):
+ (JSC::mathProtoFuncLog):
+ (JSC::mathProtoFuncMax):
+ (JSC::mathProtoFuncMin):
+ (JSC::mathProtoFuncPow):
+ (JSC::mathProtoFuncRandom):
+ (JSC::mathProtoFuncRound):
+ (JSC::mathProtoFuncSin):
+ (JSC::mathProtoFuncSqrt):
+ (JSC::mathProtoFuncTan):
+ * runtime/NativeErrorConstructor.cpp:
+ (JSC::callNativeErrorConstructor):
+ * runtime/NativeFunctionWrapper.h:
+ * runtime/NumberConstructor.cpp:
+ (JSC::callNumberConstructor):
+ * runtime/NumberPrototype.cpp:
+ (JSC::numberProtoFuncToString):
+ (JSC::numberProtoFuncToLocaleString):
+ (JSC::numberProtoFuncValueOf):
+ (JSC::numberProtoFuncToFixed):
+ (JSC::numberProtoFuncToExponential):
+ (JSC::numberProtoFuncToPrecision):
+ * runtime/ObjectConstructor.cpp:
+ (JSC::callObjectConstructor):
+ * runtime/ObjectPrototype.cpp:
+ (JSC::objectProtoFuncValueOf):
+ (JSC::objectProtoFuncHasOwnProperty):
+ (JSC::objectProtoFuncIsPrototypeOf):
+ (JSC::objectProtoFuncDefineGetter):
+ (JSC::objectProtoFuncDefineSetter):
+ (JSC::objectProtoFuncLookupGetter):
+ (JSC::objectProtoFuncLookupSetter):
+ (JSC::objectProtoFuncPropertyIsEnumerable):
+ (JSC::objectProtoFuncToLocaleString):
+ (JSC::objectProtoFuncToString):
+ * runtime/ObjectPrototype.h:
+ * runtime/RegExpConstructor.cpp:
+ (JSC::callRegExpConstructor):
+ * runtime/RegExpObject.cpp:
+ (JSC::callRegExpObject):
+ * runtime/RegExpPrototype.cpp:
+ (JSC::regExpProtoFuncTest):
+ (JSC::regExpProtoFuncExec):
+ (JSC::regExpProtoFuncCompile):
+ (JSC::regExpProtoFuncToString):
+ * runtime/StringConstructor.cpp:
+ (JSC::stringFromCharCode):
+ (JSC::callStringConstructor):
+ * runtime/StringPrototype.cpp:
+ (JSC::stringProtoFuncReplace):
+ (JSC::stringProtoFuncToString):
+ (JSC::stringProtoFuncCharAt):
+ (JSC::stringProtoFuncCharCodeAt):
+ (JSC::stringProtoFuncConcat):
+ (JSC::stringProtoFuncIndexOf):
+ (JSC::stringProtoFuncLastIndexOf):
+ (JSC::stringProtoFuncMatch):
+ (JSC::stringProtoFuncSearch):
+ (JSC::stringProtoFuncSlice):
+ (JSC::stringProtoFuncSplit):
+ (JSC::stringProtoFuncSubstr):
+ (JSC::stringProtoFuncSubstring):
+ (JSC::stringProtoFuncToLowerCase):
+ (JSC::stringProtoFuncToUpperCase):
+ (JSC::stringProtoFuncLocaleCompare):
+ (JSC::stringProtoFuncBig):
+ (JSC::stringProtoFuncSmall):
+ (JSC::stringProtoFuncBlink):
+ (JSC::stringProtoFuncBold):
+ (JSC::stringProtoFuncFixed):
+ (JSC::stringProtoFuncItalics):
+ (JSC::stringProtoFuncStrike):
+ (JSC::stringProtoFuncSub):
+ (JSC::stringProtoFuncSup):
+ (JSC::stringProtoFuncFontcolor):
+ (JSC::stringProtoFuncFontsize):
+ (JSC::stringProtoFuncAnchor):
+ (JSC::stringProtoFuncLink):
+ * wtf/Platform.h:
-2009-01-13 Beth Dakin <bdakin@apple.com>
+2009-05-07 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Darin Adler and Oliver Hunt.
+ Not reviewed.
+
+ Rolled out a portion of r43352 because it broke 64bit.
- <rdar://problem/6489314> REGRESSION: Business widget's front side
- fails to render correctly when flipping widget
+ * jit/JITStubs.h:
- The problem here is that parseInt was parsing NaN as 0. This patch
- corrects that by parsing NaN as NaN. This matches our old behavior
- and Firefox.
+2009-05-07 Kevin Ollivier <kevino@theolliviers.com>
+
+ Build fix for functions reaturning ThreadIdentifier.
+
+ * wtf/ThreadingNone.cpp:
+ (WTF::createThreadInternal):
+ (WTF::currentThread):
+
+2009-05-07 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by John Honeycutt.
+
+ - enable optimization case im the last patch that I accidentally had disabled.
+
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileFastArithSlow_op_jnless):
+
+2009-05-07 Dmitry Titov <dimich@chromium.org>
+
+ Attempt to fix Win build.
+
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileFastArithSlow_op_jnless):
+
+2009-05-07 Dmitry Titov <dimich@chromium.org>
+
+ Reviewed by Alexey Proskuryakov and Adam Roben.
+
+ https://bugs.webkit.org/show_bug.cgi?id=25348
+ Change WTF::ThreadIdentifier to be an actual (but wrapped) thread id, remove ThreadMap.
+
+ * wtf/Threading.h:
+ (WTF::ThreadIdentifier::ThreadIdentifier):
+ (WTF::ThreadIdentifier::isValid):
+ (WTF::ThreadIdentifier::invalidate):
+ (WTF::ThreadIdentifier::platformId):
+ ThreadIdentifier is now a class, containing a PlatformThreadIdentifier and
+ methods that are used across the code on thread ids: construction, comparisons,
+ check for 'valid' state etc. '0' is used as invalid id, which happens to just work
+ with all platform-specific thread id implementations.
+
+ All the following files repeatedly reflect the new ThreadIdentifier for each platform.
+ We remove ThreadMap and threadMapMutex from all of them, remove the functions that
+ populated/searched/cleared the map and add platform-specific comparison operators
+ for ThreadIdentifier.
+
+ * wtf/gtk/ThreadingGtk.cpp:
+ (WTF::ThreadIdentifier::operator==):
+ (WTF::ThreadIdentifier::operator!=):
+ (WTF::initializeThreading):
+ (WTF::createThreadInternal):
+ (WTF::waitForThreadCompletion):
+ (WTF::currentThread):
+
+ * wtf/ThreadingNone.cpp:
+ (WTF::ThreadIdentifier::operator==):
+ (WTF::ThreadIdentifier::operator!=):
+
+ * wtf/ThreadingPthreads.cpp:
+ (WTF::ThreadIdentifier::operator==):
+ (WTF::ThreadIdentifier::operator!=):
+ (WTF::initializeThreading):
+ (WTF::createThreadInternal):
+ (WTF::waitForThreadCompletion):
+ (WTF::detachThread):
+ (WTF::currentThread):
+
+ * wtf/qt/ThreadingQt.cpp:
+ (WTF::ThreadIdentifier::operator==):
+ (WTF::ThreadIdentifier::operator!=):
+ (WTF::initializeThreading):
+ (WTF::createThreadInternal):
+ (WTF::waitForThreadCompletion):
+ (WTF::currentThread):
+
+ * wtf/ThreadingWin.cpp:
+ (WTF::ThreadIdentifier::operator==):
+ (WTF::ThreadIdentifier::operator!=):
+ (WTF::initializeThreading):
+ (WTF::createThreadInternal): All the platforms (except Windows) used a sequential
+ counter as a thread ID and mapped it into platform ID. Windows was using native thread
+ id and mapped it into thread handle. Since we can always obtain a thread handle
+ by thread id, createThread now closes the handle.
+ (WTF::waitForThreadCompletion): obtains another one using OpenThread(id) API. If can not obtain a handle,
+ it means the thread already exited.
+ (WTF::detachThread):
+ (WTF::currentThread):
+ (WTF::detachThreadDeprecated): old function, renamed (for Win Safari 4 beta which uses it for now).
+ (WTF::waitForThreadCompletionDeprecated): same.
+ (WTF::currentThreadDeprecated): same.
+ (WTF::createThreadDeprecated): same.
+
+ * bytecode/SamplingTool.h:
+ * bytecode/SamplingTool.cpp: Use DEFINE_STATIC_LOCAL for a static ThreadIdentifier variable, to avoid static constructor.
+
+ * JavaScriptCore.exp: export lists - updated the WTF threading functions decorated names
+ since they now take a different type as a parameter.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: ditto for Windows, plus added "deprecated" functions
+ that take old parameter type - turns out public beta of Safari 4 uses those, so they need to be kept along for a while.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: ditto.
+
+2009-05-07 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ - optimize various cases of branch-fused less
+
+ 1% speedup on SunSpider overall
+ 13% speedup on math-cordic
+
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ op_loop_if_less: Optimize case of constant as first operand, just as case of constant as
+ second operand.
+ op_jnless: Factored out into compileFastArith_op_jnless.
+ (JSC::JIT::privateCompileSlowCases):
+ op_jnless: Factored out into compileFastArithSlow_op_jnless.
+ * jit/JIT.h:
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileFastArith_op_jnless): Factored out from main compile loop.
+ - Generate inline code for comparison of constant immediate int as first operand to another
+ immediate int, as for loop_if_less
+
+ (JSC::JIT::compileFastArithSlow_op_jnless):
+ - Generate inline code for comparing two floating point numbers.
+ - Generate code for both cases of comparing a floating point number to a constant immediate
+ int.
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::dump): Fix dumping of op_jnless (tangentially related bugfix).
+
+2009-05-07 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Added the return address of a stub function to the JITStackFrame abstraction.
+
+ * jit/JIT.cpp:
+ * jit/JIT.h:
+ * jit/JITStubs.cpp:
+ (JSC::):
+ (JSC::StackHack::StackHack):
+ (JSC::StackHack::~StackHack):
+ (JSC::returnToThrowTrampoline):
+ (JSC::JITStubs::cti_op_convert_this):
+ (JSC::JITStubs::cti_op_end):
+ (JSC::JITStubs::cti_op_add):
+ (JSC::JITStubs::cti_op_pre_inc):
+ (JSC::JITStubs::cti_timeout_check):
+ (JSC::JITStubs::cti_register_file_check):
+ (JSC::JITStubs::cti_op_loop_if_less):
+ (JSC::JITStubs::cti_op_loop_if_lesseq):
+ (JSC::JITStubs::cti_op_new_object):
+ (JSC::JITStubs::cti_op_put_by_id_generic):
+ (JSC::JITStubs::cti_op_get_by_id_generic):
+ (JSC::JITStubs::cti_op_put_by_id):
+ (JSC::JITStubs::cti_op_put_by_id_second):
+ (JSC::JITStubs::cti_op_put_by_id_fail):
+ (JSC::JITStubs::cti_op_get_by_id):
+ (JSC::JITStubs::cti_op_get_by_id_second):
+ (JSC::JITStubs::cti_op_get_by_id_self_fail):
+ (JSC::JITStubs::cti_op_get_by_id_proto_list):
+ (JSC::JITStubs::cti_op_get_by_id_proto_list_full):
+ (JSC::JITStubs::cti_op_get_by_id_proto_fail):
+ (JSC::JITStubs::cti_op_get_by_id_array_fail):
+ (JSC::JITStubs::cti_op_get_by_id_string_fail):
+ (JSC::JITStubs::cti_op_instanceof):
+ (JSC::JITStubs::cti_op_del_by_id):
+ (JSC::JITStubs::cti_op_mul):
+ (JSC::JITStubs::cti_op_new_func):
+ (JSC::JITStubs::cti_op_call_JSFunction):
+ (JSC::JITStubs::cti_op_call_arityCheck):
+ (JSC::JITStubs::cti_vm_dontLazyLinkCall):
+ (JSC::JITStubs::cti_vm_lazyLinkCall):
+ (JSC::JITStubs::cti_op_push_activation):
+ (JSC::JITStubs::cti_op_call_NotJSFunction):
+ (JSC::JITStubs::cti_op_create_arguments):
+ (JSC::JITStubs::cti_op_create_arguments_no_params):
+ (JSC::JITStubs::cti_op_tear_off_activation):
+ (JSC::JITStubs::cti_op_tear_off_arguments):
+ (JSC::JITStubs::cti_op_profile_will_call):
+ (JSC::JITStubs::cti_op_profile_did_call):
+ (JSC::JITStubs::cti_op_ret_scopeChain):
+ (JSC::JITStubs::cti_op_new_array):
+ (JSC::JITStubs::cti_op_resolve):
+ (JSC::JITStubs::cti_op_construct_JSConstruct):
+ (JSC::JITStubs::cti_op_construct_NotJSConstruct):
+ (JSC::JITStubs::cti_op_get_by_val):
+ (JSC::JITStubs::cti_op_get_by_val_string):
+ (JSC::JITStubs::cti_op_get_by_val_byte_array):
+ (JSC::JITStubs::cti_op_resolve_func):
+ (JSC::JITStubs::cti_op_sub):
+ (JSC::JITStubs::cti_op_put_by_val):
+ (JSC::JITStubs::cti_op_put_by_val_array):
+ (JSC::JITStubs::cti_op_put_by_val_byte_array):
+ (JSC::JITStubs::cti_op_lesseq):
+ (JSC::JITStubs::cti_op_loop_if_true):
+ (JSC::JITStubs::cti_op_load_varargs):
+ (JSC::JITStubs::cti_op_negate):
+ (JSC::JITStubs::cti_op_resolve_base):
+ (JSC::JITStubs::cti_op_resolve_skip):
+ (JSC::JITStubs::cti_op_resolve_global):
+ (JSC::JITStubs::cti_op_div):
+ (JSC::JITStubs::cti_op_pre_dec):
+ (JSC::JITStubs::cti_op_jless):
+ (JSC::JITStubs::cti_op_not):
+ (JSC::JITStubs::cti_op_jtrue):
+ (JSC::JITStubs::cti_op_post_inc):
+ (JSC::JITStubs::cti_op_eq):
+ (JSC::JITStubs::cti_op_lshift):
+ (JSC::JITStubs::cti_op_bitand):
+ (JSC::JITStubs::cti_op_rshift):
+ (JSC::JITStubs::cti_op_bitnot):
+ (JSC::JITStubs::cti_op_resolve_with_base):
+ (JSC::JITStubs::cti_op_new_func_exp):
+ (JSC::JITStubs::cti_op_mod):
+ (JSC::JITStubs::cti_op_less):
+ (JSC::JITStubs::cti_op_neq):
+ (JSC::JITStubs::cti_op_post_dec):
+ (JSC::JITStubs::cti_op_urshift):
+ (JSC::JITStubs::cti_op_bitxor):
+ (JSC::JITStubs::cti_op_new_regexp):
+ (JSC::JITStubs::cti_op_bitor):
+ (JSC::JITStubs::cti_op_call_eval):
+ (JSC::JITStubs::cti_op_throw):
+ (JSC::JITStubs::cti_op_get_pnames):
+ (JSC::JITStubs::cti_op_next_pname):
+ (JSC::JITStubs::cti_op_push_scope):
+ (JSC::JITStubs::cti_op_pop_scope):
+ (JSC::JITStubs::cti_op_typeof):
+ (JSC::JITStubs::cti_op_is_undefined):
+ (JSC::JITStubs::cti_op_is_boolean):
+ (JSC::JITStubs::cti_op_is_number):
+ (JSC::JITStubs::cti_op_is_string):
+ (JSC::JITStubs::cti_op_is_object):
+ (JSC::JITStubs::cti_op_is_function):
+ (JSC::JITStubs::cti_op_stricteq):
+ (JSC::JITStubs::cti_op_to_primitive):
+ (JSC::JITStubs::cti_op_strcat):
+ (JSC::JITStubs::cti_op_nstricteq):
+ (JSC::JITStubs::cti_op_to_jsnumber):
+ (JSC::JITStubs::cti_op_in):
+ (JSC::JITStubs::cti_op_push_new_scope):
+ (JSC::JITStubs::cti_op_jmp_scopes):
+ (JSC::JITStubs::cti_op_put_by_index):
+ (JSC::JITStubs::cti_op_switch_imm):
+ (JSC::JITStubs::cti_op_switch_char):
+ (JSC::JITStubs::cti_op_switch_string):
+ (JSC::JITStubs::cti_op_del_by_val):
+ (JSC::JITStubs::cti_op_put_getter):
+ (JSC::JITStubs::cti_op_put_setter):
+ (JSC::JITStubs::cti_op_new_error):
+ (JSC::JITStubs::cti_op_debug):
+ (JSC::JITStubs::cti_vm_throw):
+ * jit/JITStubs.h:
+ (JSC::JITStackFrame::returnAddressSlot):
+
+2009-05-07 Darin Adler <darin@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ * parser/Lexer.cpp:
+ (JSC::Lexer::lex): Fix missing braces. This would make us always
+ take the slower case for string parsing and Visual Studio correctly
+ noticed unreachable code.
+
+2009-05-07 Darin Adler <darin@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Bug 25589: goto instead of state machine in lexer
+ https://bugs.webkit.org/show_bug.cgi?id=25589
+
+ SunSpider is 0.8% faster.
+
+ * parser/Lexer.cpp:
+ (JSC::Lexer::currentCharacter): Added.
+ (JSC::Lexer::currentOffset): Changed to call currentCharacter for clarity.
+ (JSC::Lexer::setCode): Removed code to set now-obsolete m_skipLineEnd.
+ (JSC::Lexer::shiftLineTerminator): Added. Handles line numbers and the
+ two-character line terminators.
+ (JSC::Lexer::makeIdentifier): Changed to take characters and length rather
+ than a vector, since we now make these directly out of the source buffer
+ when possible.
+ (JSC::Lexer::lastTokenWasRestrKeyword): Added.
+ (JSC::isNonASCIIIdentStart): Broke out the non-inline part.
+ (JSC::isIdentStart): Moved here.
+ (JSC::isNonASCIIIdentPart): Broke out the non-inline part.
+ (JSC::isIdentPart): Moved here.
+ (JSC::singleEscape): Moved here, and removed some unneeded cases.
+ (JSC::Lexer::record8): Moved here.
+ (JSC::Lexer::record16): Moved here.
+ (JSC::Lexer::lex): Rewrote this whole function to use goto and not use
+ a state machine. Got rid of most of the local variables. Also rolled the
+ matchPunctuator function in here.
+ (JSC::Lexer::scanRegExp): Changed to use the new version of isLineTerminator.
+ Clear m_buffer16 after using it instead of before.
+
+ * parser/Lexer.h: Removed State enum, setDone function, nextLine function,
+ lookupKeywordFunction, one of the isLineTerminator functions, m_done data member,
+ m_skipLineEnd data member, and m_state data member. Added shiftLineTerminator
+ function, currentCharacter function, and changed the arguments to the makeIdentifier
+ function. Removed one branch from the isLineTerminator function.
+
+ * runtime/StringPrototype.cpp:
+ (JSC::stringProtoFuncReplace): Streamlined the case where we don't replace anything.
+
+2009-05-07 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Removed a few more special constants, and replaced them with uses of
+ the JITStackFrame struct.
+
+ Removed one of the two possible definitions of VoidPtrPair. The Mac
+ definition was more elegant, but SunSpider doesn't think it's any
+ faster, and it's net less elegant to have two ways of doing things.
+
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ (JSC::JIT::privateCompile):
+ * jit/JITStubs.h:
+ (JSC::):
+
+2009-05-07 Darin Adler <darin@apple.com>
+
+ * runtime/ScopeChain.h:
+ (JSC::ScopeChainNode::~ScopeChainNode): Tweak formatting.
+
+2009-05-07 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Reviewed by Tor Arne Vestbø.
+
+ Fix the build thread stack base determination build on Symbian,
+ by moving the code block before PLATFORM(UNIX), which is also
+ enabled on Symbian builds.
+
+ * runtime/Collector.cpp:
+ (JSC::currentThreadStackBase):
+
+2009-05-07 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Fix crash due to incorrectly using an invalid scopechain
+
+ stringProtoFuncReplace was checking for an exception on a CachedCall
+ by asking for the cached callframes exception. Unfortunately this
+ could crash in certain circumstances as CachedCall does not guarantee
+ a valid callframe following a call. Even more unfortunately the check
+ was entirely unnecessary as there is only a single exception slot per
+ global data, so it was already checked via the initial exec->hadException()
+ check.
+
+ To make bugs like this more obvious, i've added a debug only destructor
+ to ScopeChainNode that 0's all of its fields. This exposed a crash in
+ the standard javascriptcore tests.
+
+ * runtime/ScopeChain.h:
+ (JSC::ScopeChainNode::~ScopeChainNode):
+ (JSC::ScopeChain::~ScopeChain):
+ * runtime/StringPrototype.cpp:
+ (JSC::stringProtoFuncReplace):
+
+2009-05-07 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ Enable op_strcat across += assignments. This patch allows the lhs of a read/modify node
+ to be included within the concatenation operation, and also modifies the implementation
+ of the concatenation to attempt to reuse and cat onto the leftmost string, rather than
+ always allocating a new empty output string to copy into (as was previously the behaviour).
+
+ ~0.5% progression, due to a 3%-3.5% progression on the string tests (particularly validate).
+
+ * parser/Nodes.cpp:
+ (JSC::BinaryOpNode::emitStrcat):
+ (JSC::emitReadModifyAssignment):
+ (JSC::ReadModifyResolveNode::emitBytecode):
+ (JSC::ReadModifyDotNode::emitBytecode):
+ (JSC::ReadModifyBracketNode::emitBytecode):
+ * parser/Nodes.h:
+ * runtime/Operations.h:
+ (JSC::concatenateStrings):
+ * runtime/UString.cpp:
+ (JSC::UString::reserveCapacity):
+ * runtime/UString.h:
+
+2009-05-07 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Reviewed by Oliver Hunt.
+
+ Fix the build on Windows without JIT: interpreter/RegisterFile.h needs
+ roundUpAllocationSize, which is protected by #if ENABLED(ASSEMBLER).
+ Moved the #ifdef down and always offer the function.
+
+ * jit/ExecutableAllocator.h:
+
+2009-05-06 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Gavin "++" Barraclough.
+
+ Added some abstraction around the JIT stub calling convention by creating
+ a struct to represent the persistent stack frame JIT code shares with
+ JIT stubs.
+
+ SunSpider reports no change.
+
+ * jit/JIT.h:
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::cti_op_convert_this):
+ (JSC::JITStubs::cti_op_end):
+ (JSC::JITStubs::cti_op_add):
+ (JSC::JITStubs::cti_op_pre_inc):
+ (JSC::JITStubs::cti_timeout_check):
+ (JSC::JITStubs::cti_register_file_check):
+ (JSC::JITStubs::cti_op_loop_if_less):
+ (JSC::JITStubs::cti_op_loop_if_lesseq):
+ (JSC::JITStubs::cti_op_new_object):
+ (JSC::JITStubs::cti_op_put_by_id_generic):
+ (JSC::JITStubs::cti_op_get_by_id_generic):
+ (JSC::JITStubs::cti_op_put_by_id):
+ (JSC::JITStubs::cti_op_put_by_id_second):
+ (JSC::JITStubs::cti_op_put_by_id_fail):
+ (JSC::JITStubs::cti_op_get_by_id):
+ (JSC::JITStubs::cti_op_get_by_id_second):
+ (JSC::JITStubs::cti_op_get_by_id_self_fail):
+ (JSC::JITStubs::cti_op_get_by_id_proto_list):
+ (JSC::JITStubs::cti_op_get_by_id_proto_list_full):
+ (JSC::JITStubs::cti_op_get_by_id_proto_fail):
+ (JSC::JITStubs::cti_op_get_by_id_array_fail):
+ (JSC::JITStubs::cti_op_get_by_id_string_fail):
+ (JSC::JITStubs::cti_op_instanceof):
+ (JSC::JITStubs::cti_op_del_by_id):
+ (JSC::JITStubs::cti_op_mul):
+ (JSC::JITStubs::cti_op_new_func):
+ (JSC::JITStubs::cti_op_call_JSFunction):
+ (JSC::JITStubs::cti_op_call_arityCheck):
+ (JSC::JITStubs::cti_vm_dontLazyLinkCall):
+ (JSC::JITStubs::cti_vm_lazyLinkCall):
+ (JSC::JITStubs::cti_op_push_activation):
+ (JSC::JITStubs::cti_op_call_NotJSFunction):
+ (JSC::JITStubs::cti_op_create_arguments):
+ (JSC::JITStubs::cti_op_create_arguments_no_params):
+ (JSC::JITStubs::cti_op_tear_off_activation):
+ (JSC::JITStubs::cti_op_tear_off_arguments):
+ (JSC::JITStubs::cti_op_profile_will_call):
+ (JSC::JITStubs::cti_op_profile_did_call):
+ (JSC::JITStubs::cti_op_ret_scopeChain):
+ (JSC::JITStubs::cti_op_new_array):
+ (JSC::JITStubs::cti_op_resolve):
+ (JSC::JITStubs::cti_op_construct_JSConstruct):
+ (JSC::JITStubs::cti_op_construct_NotJSConstruct):
+ (JSC::JITStubs::cti_op_get_by_val):
+ (JSC::JITStubs::cti_op_get_by_val_string):
+ (JSC::JITStubs::cti_op_get_by_val_byte_array):
+ (JSC::JITStubs::cti_op_resolve_func):
+ (JSC::JITStubs::cti_op_sub):
+ (JSC::JITStubs::cti_op_put_by_val):
+ (JSC::JITStubs::cti_op_put_by_val_array):
+ (JSC::JITStubs::cti_op_put_by_val_byte_array):
+ (JSC::JITStubs::cti_op_lesseq):
+ (JSC::JITStubs::cti_op_loop_if_true):
+ (JSC::JITStubs::cti_op_load_varargs):
+ (JSC::JITStubs::cti_op_negate):
+ (JSC::JITStubs::cti_op_resolve_base):
+ (JSC::JITStubs::cti_op_resolve_skip):
+ (JSC::JITStubs::cti_op_resolve_global):
+ (JSC::JITStubs::cti_op_div):
+ (JSC::JITStubs::cti_op_pre_dec):
+ (JSC::JITStubs::cti_op_jless):
+ (JSC::JITStubs::cti_op_not):
+ (JSC::JITStubs::cti_op_jtrue):
+ (JSC::JITStubs::cti_op_post_inc):
+ (JSC::JITStubs::cti_op_eq):
+ (JSC::JITStubs::cti_op_lshift):
+ (JSC::JITStubs::cti_op_bitand):
+ (JSC::JITStubs::cti_op_rshift):
+ (JSC::JITStubs::cti_op_bitnot):
+ (JSC::JITStubs::cti_op_resolve_with_base):
+ (JSC::JITStubs::cti_op_new_func_exp):
+ (JSC::JITStubs::cti_op_mod):
+ (JSC::JITStubs::cti_op_less):
+ (JSC::JITStubs::cti_op_neq):
+ (JSC::JITStubs::cti_op_post_dec):
+ (JSC::JITStubs::cti_op_urshift):
+ (JSC::JITStubs::cti_op_bitxor):
+ (JSC::JITStubs::cti_op_new_regexp):
+ (JSC::JITStubs::cti_op_bitor):
+ (JSC::JITStubs::cti_op_call_eval):
+ (JSC::JITStubs::cti_op_throw):
+ (JSC::JITStubs::cti_op_get_pnames):
+ (JSC::JITStubs::cti_op_next_pname):
+ (JSC::JITStubs::cti_op_push_scope):
+ (JSC::JITStubs::cti_op_pop_scope):
+ (JSC::JITStubs::cti_op_typeof):
+ (JSC::JITStubs::cti_op_is_undefined):
+ (JSC::JITStubs::cti_op_is_boolean):
+ (JSC::JITStubs::cti_op_is_number):
+ (JSC::JITStubs::cti_op_is_string):
+ (JSC::JITStubs::cti_op_is_object):
+ (JSC::JITStubs::cti_op_is_function):
+ (JSC::JITStubs::cti_op_stricteq):
+ (JSC::JITStubs::cti_op_to_primitive):
+ (JSC::JITStubs::cti_op_strcat):
+ (JSC::JITStubs::cti_op_nstricteq):
+ (JSC::JITStubs::cti_op_to_jsnumber):
+ (JSC::JITStubs::cti_op_in):
+ (JSC::JITStubs::cti_op_push_new_scope):
+ (JSC::JITStubs::cti_op_jmp_scopes):
+ (JSC::JITStubs::cti_op_put_by_index):
+ (JSC::JITStubs::cti_op_switch_imm):
+ (JSC::JITStubs::cti_op_switch_char):
+ (JSC::JITStubs::cti_op_switch_string):
+ (JSC::JITStubs::cti_op_del_by_val):
+ (JSC::JITStubs::cti_op_put_getter):
+ (JSC::JITStubs::cti_op_put_setter):
+ (JSC::JITStubs::cti_op_new_error):
+ (JSC::JITStubs::cti_op_debug):
+ (JSC::JITStubs::cti_vm_throw):
+ * jit/JITStubs.h:
+ (JSC::):
+
+2009-05-06 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Maciej Stachowiak & Darin Adler.
+
+ Improve string concatenation (as coded in JS as a sequence of adds).
+
+ Detect patterns corresponding to string concatenation, and change the bytecode
+ generation to emit a new op_strcat instruction. By handling the full set of
+ additions within a single function we do not need allocate JSString wrappers
+ for intermediate results, and we can calculate the size of the output string
+ prior to allocating storage, in order to prevent reallocation of the buffer.
+
+ 1.5%-2% progression on Sunspider, largely due to a 30% progression on date-format-xparb.
+
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::dump):
+ Add new opcodes.
+ * bytecode/Opcode.h:
+ Add new opcodes.
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::emitStrcat):
+ (JSC::BytecodeGenerator::emitToPrimitive):
+ Add generation of new opcodes.
+ * bytecompiler/BytecodeGenerator.h:
+ Add generation of new opcodes.
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+ Add implmentation of new opcodes.
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ (JSC::JIT::privateCompileSlowCases):
+ Add implmentation of new opcodes.
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::cti_op_to_primitive):
+ (JSC::JITStubs::cti_op_strcat):
+ Add implmentation of new opcodes.
+ * jit/JITStubs.h:
+ Add implmentation of new opcodes.
+ * parser/Nodes.cpp:
+ (JSC::BinaryOpNode::emitStrcat):
+ (JSC::BinaryOpNode::emitBytecode):
+ (JSC::ReadModifyResolveNode::emitBytecode):
+ Add generation of new opcodes.
+ * parser/Nodes.h:
+ (JSC::ExpressionNode::):
+ (JSC::AddNode::):
+ Add methods to allow identification of add nodes.
+ * parser/ResultType.h:
+ (JSC::ResultType::definitelyIsString):
+ (JSC::ResultType::forAdd):
+ Fix error in detection of adds that will produce string results.
+ * runtime/Operations.h:
+ (JSC::concatenateStrings):
+ Add implmentation of new opcodes.
+ * runtime/UString.cpp:
+ (JSC::UString::appendNumeric):
+ Add methods to append numbers to an existing string.
+ * runtime/UString.h:
+ (JSC::UString::Rep::createEmptyBuffer):
+ (JSC::UString::BaseString::BaseString):
+ Add support for creating an empty string with a non-zero capacity available in the BaseString.
+
+2009-05-06 Darin Adler <darin@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Made RefCounted::m_refCount private.
+
+ * runtime/Structure.h: Removed addressOfCount.
+ * wtf/RefCounted.h: Made m_refCount private.
+ Added addressOfCount.
+
+2009-05-06 Darin Adler <darin@apple.com>
+
+ Fixed assertion seen a lot!
+
+ * parser/Nodes.cpp:
+ (JSC::FunctionBodyNode::~FunctionBodyNode): Removed now-bogus assertion.
+
+2009-05-06 Darin Adler <darin@apple.com>
+
+ Working with Sam Weinig.
+
+ Redo parse tree constructor optimization without breaking the Windows
+ build the way I did yesterday. The previous try broke the build by adding
+ an include of Lexer.h and all its dependencies that had to work outside
+ the JavaScriptCore project.
+
+ * GNUmakefile.am: Added NodeConstructors.h.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Ditto.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
+ Removed byteocde directory -- we no longer are trying to include Lexer.h
+ outside JavaScriptCore.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj: Change SegmentedVector.h
+ and Lexer.h back to internal files. Added NodeConstructors.h.
+
+ * parser/Grammar.y: Added include of NodeConstructors.h.
+ Changed use of ConstDeclNode to use public functions.
+
+ * parser/NodeConstructors.h: Copied from parser/Nodes.h.
+ Just contains the inlined constructors now.
+
+ * parser/Nodes.cpp: Added include of NodeConstructors.h.
+ Moved node constructors into the header.
+ (JSC::FunctionBodyNode::FunctionBodyNode): Removed m_refCount
+ initialization.
+
+ * parser/Nodes.h: Removed all the constructor definitions, and also
+ removed the JSC_FAST_CALL from them since these are all inlined, so the
+ calling convention is irrelevant. Made more things private. Used a data
+ member for operator opcodes instead of a virtual function. Removed the
+ special FunctionBodyNode::ref/deref functions since the default functions
+ are now just as fast.
+
+ * runtime/FunctionConstructor.cpp:
+ (JSC::extractFunctionBody): Fixed types here so we don't typecast until
+ after we do type checking.
+
+2009-05-06 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Reviewed by Ariya Hidayat.
+
+ Fix the Qt build on Windows.
+
+ * JavaScriptCore.pri: Define BUILDING_JavaScriptCore/WTF to get the meaning
+ of the JS_EXPORTDATA macros correct
+
+2009-05-06 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Reviewed by Ariya Hidayat.
+
+ Enable the JIT for the Qt build on Windows.
+
+ * JavaScriptCore.pri:
+
+2009-05-06 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Reviewed by Tor Arne Vestbø.
+
+ Tweak JavaScriptCore.pri for being able to override the generated sources dir for the
+ generated_files target.
+
+ * JavaScriptCore.pri:
+
+2009-05-06 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ Build QtWebKit as a framework on Mac
+
+ This implies both debug and release build by default, unless
+ one of the --debug or --release config options are passed to
+ the build-webkit script.
+
+ Frameworks can be disabled by passing CONFIG+=webkit_no_framework
+ to the build-webkit script.
+
+ To be able to build both debug and release targets in parallel
+ we have to use separate output directories for the generated
+ sources, which is not optimal, but required to avoid race conditions.
+
+ An optimization would be to only require this spit-up on Mac.
+
+ * JavaScriptCore.pri:
+ * JavaScriptCore.pro:
+ * jsc.pro:
+
+2009-05-06 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Use $$GENERATED_SOURCES_DIR as output when running bison
+
+ A couple of the generators left the bison output file in the source
+ tree, and then moved it into $$GENERATED_SOURCES_DIR, which did not
+ work well when building release and debug configurations in parallel.
+
+ * JavaScriptCore.pri:
+
+2009-05-05 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ Simplified a bit of codegen.
+
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+
+2009-05-05 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Cameron Zwarich.
+
+ Moved all the JIT stub related code into one place.
+
+ * jit/JIT.cpp:
+ * jit/JIT.h:
+ * jit/JITCode.h:
+ * jit/JITStubs.cpp:
+ (JSC::):
+ * jit/JITStubs.h:
+
+2009-05-05 Sam Weinig <sam@webkit.org>
+
+ Try to fix Windows build.
+
+ Move Node constructor to the .cpp file.
+
+ * parser/Nodes.cpp:
+ * parser/Nodes.h:
+
+2009-05-05 Darin Adler <darin@apple.com>
+
+ Try to fix Windows build.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+
+ Try to fix Mac build.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj: Made SegmentedVector.h private.
+
+2009-05-05 Darin Adler <darin@apple.com>
+
+ Try to fix Mac build.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj: Made Lexer.h private.
+
+2009-05-05 Darin Adler <darin@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Bug 25569: make ParserRefCounted use conventional reference counting
+ https://bugs.webkit.org/show_bug.cgi?id=25569
+
+ SunSpider speedup of about 1.6%.
+
+ * JavaScriptCore.exp: Updated.
+
+ * parser/Nodes.cpp:
+ (JSC::NodeReleaser::releaseAllNodes): ALWAYS_INLINE.
+ (JSC::NodeReleaser::adopt): Ditto.
+ (JSC::ParserRefCounted::ParserRefCounted): Removed most of the code.
+ Add the object to a Vector<RefPtr> that gets cleared after parsing.
+ (JSC::ParserRefCounted::~ParserRefCounted): Removed most of the code.
+
+ * parser/Nodes.h: Made ParserRefCounted inherit from RefCounted and
+ made inline versions of the constructor and destructor. Made the
+ Node constructor inline.
+
+ * parser/Parser.cpp:
+ (JSC::Parser::parse): Call globalData->parserObjects.shrink(0) after
+ parsing, where it used to call ParserRefCounted::deleteNewObjects.
+
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::JSGlobalData): Eliminated code to manage the
+ newParserObjects and parserObjectExtraRefCounts.
+ (JSC::JSGlobalData::~JSGlobalData): Ditto.
+
+ * runtime/JSGlobalData.h: Replaced the HashSet and HashCountedSet
+ with a Vector.
+
+ * wtf/PassRefPtr.h:
+ (WTF::PassRefPtr::~PassRefPtr): The most common thing to do with a
+ PassRefPtr in hot code is to pass it and then destroy it once it's
+ set to zero. Help the optimizer by telling it that's true.
+
+2009-05-05 Xan Lopez <xlopez@igalia.com> and Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
+
+ Reviewed by Oliver Hunt.
+
+ Disable the NativeFunctionWrapper for all non-Mac ports for now,
+ as it is also crashing on Linux/x86.
+
+ * runtime/NativeFunctionWrapper.h:
+
+2009-05-05 Steve Falkenburg <sfalken@apple.com>
+
+ Fix build.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+
+2009-05-05 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ Expose toThisObject for the DOM Window
+
+ * JavaScriptCore.exp:
+
+2009-05-05 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (Make windows go again until i work out the
+ accursed calling convention).
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * jit/JIT.cpp:
+ * runtime/NativeFunctionWrapper.h:
+
+2009-05-05 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (Fix windows debug builds).
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+
+2009-05-05 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (Hopefully the last fix).
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+
+2009-05-05 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (Fix the build fix caused by a different build fix).
+
+ * parser/Nodes.cpp:
+ * parser/Nodes.h:
+
+2009-05-05 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (No idea how my changes could have broken these).
+
+ * runtime/DatePrototype.cpp:
+ * runtime/RegExpObject.cpp:
+
+2009-05-05 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (Why should i expect msvc to list all the errors in a file?).
+
+ * parser/Nodes.cpp:
+
+2009-05-05 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (Fix warning, and another missing include).
+
+ * jit/JIT.cpp:
+ * parser/Nodes.h:
+
+2009-05-05 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (More build fixes).
+
+ * runtime/ErrorPrototype.cpp:
+ * runtime/JSGlobalObject.cpp:
+ * runtime/NumberPrototype.cpp:
+ * runtime/ObjectPrototype.cpp:
+ * runtime/StringConstructor.cpp:
+
+2009-05-05 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (Will the fixes never end?).
+
+ * runtime/FunctionPrototype.h:
+ * runtime/Lookup.cpp:
+
+2009-05-05 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (More build fixes).
+
+ * jit/JIT.cpp:
+
+2009-05-05 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (More build fixing).
+
+ * runtime/CallData.h:
+
+2009-05-05 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (Build fix).
+
+ * runtime/ArrayConstructor.cpp:
+ * runtime/BooleanPrototype.cpp:
+ * runtime/DateConstructor.cpp:
+ * runtime/Error.cpp:
+ * runtime/ObjectConstructor.cpp:
+ * runtime/RegExpPrototype.cpp:
+
+2009-05-05 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (Buildfix).
+
+ Add missing file
+
+ * runtime/NativeFunctionWrapper.h: Copied from JavaScriptCore/jit/ExecutableAllocator.cpp.
+
+2009-05-05 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Bug 25559: Improve native function call performance
+ <https://bugs.webkit.org/show_bug.cgi?id=25559>
+
+ In order to cache calls to native functions we now make the standard
+ prototype functions use a small assembly thunk that converts the JS
+ calling convention into the native calling convention. As this is
+ only beneficial in the JIT we use the NativeFunctionWrapper typedef
+ to alternate between PrototypeFunction and JSFunction to keep the
+ code sane. This change from PrototypeFunction to NativeFunctionWrapper
+ is the bulk of this patch.
+
+ * JavaScriptCore.exp:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * assembler/MacroAssemblerX86Common.h:
+ (JSC::MacroAssemblerX86Common::call):
+ * assembler/MacroAssemblerX86_64.h:
+ (JSC::MacroAssemblerX86_64::addPtr):
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::leaq_mr):
+ (JSC::X86Assembler::call_m):
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::execute):
+ (JSC::Interpreter::prepareForRepeatCall):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ * jit/JIT.h:
+ (JSC::JIT::compileCTIMachineTrampolines):
+ * jit/JITCall.cpp:
+ (JSC::JIT::linkCall):
+ (JSC::JIT::compileOpCallInitializeCallFrame):
+ (JSC::JIT::compileOpCall):
+ * jit/JITCode.h:
+ (JSC::JITCode::operator bool):
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::emitGetFromCallFrameHeader):
+ (JSC::JIT::emitGetFromCallFrameHeader32):
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::JITStubs):
+ (JSC::JITStubs::cti_op_call_JSFunction):
+ (JSC::JITStubs::cti_vm_dontLazyLinkCall):
+ (JSC::JITStubs::cti_vm_lazyLinkCall):
+ (JSC::JITStubs::cti_op_construct_JSConstruct):
+ * jit/JITStubs.h:
+ (JSC::JITStubs::ctiNativeCallThunk):
+ * jsc.cpp:
+ (GlobalObject::GlobalObject):
+ * parser/Nodes.cpp:
+ (JSC::FunctionBodyNode::FunctionBodyNode):
+ (JSC::FunctionBodyNode::createNativeThunk):
+ (JSC::FunctionBodyNode::generateJITCode):
+ * parser/Nodes.h:
+ (JSC::FunctionBodyNode::):
+ (JSC::FunctionBodyNode::generatedJITCode):
+ (JSC::FunctionBodyNode::jitCode):
+ * profiler/Profiler.cpp:
+ (JSC::Profiler::createCallIdentifier):
+ * runtime/ArgList.h:
+ * runtime/ArrayPrototype.cpp:
+ (JSC::isNumericCompareFunction):
+ * runtime/BooleanPrototype.cpp:
+ (JSC::BooleanPrototype::BooleanPrototype):
+ * runtime/DateConstructor.cpp:
+ (JSC::DateConstructor::DateConstructor):
+ * runtime/ErrorPrototype.cpp:
+ (JSC::ErrorPrototype::ErrorPrototype):
+ * runtime/FunctionPrototype.cpp:
+ (JSC::FunctionPrototype::addFunctionProperties):
+ (JSC::functionProtoFuncToString):
+ * runtime/FunctionPrototype.h:
+ * runtime/JSFunction.cpp:
+ (JSC::JSFunction::JSFunction):
+ (JSC::JSFunction::~JSFunction):
+ (JSC::JSFunction::mark):
+ (JSC::JSFunction::getCallData):
+ (JSC::JSFunction::call):
+ (JSC::JSFunction::argumentsGetter):
+ (JSC::JSFunction::callerGetter):
+ (JSC::JSFunction::lengthGetter):
+ (JSC::JSFunction::getOwnPropertySlot):
+ (JSC::JSFunction::put):
+ (JSC::JSFunction::deleteProperty):
+ (JSC::JSFunction::getConstructData):
+ (JSC::JSFunction::construct):
+ * runtime/JSFunction.h:
+ (JSC::JSFunction::JSFunction):
+ (JSC::JSFunction::setScope):
+ (JSC::JSFunction::scope):
+ (JSC::JSFunction::isHostFunction):
+ (JSC::JSFunction::scopeChain):
+ (JSC::JSFunction::clearScopeChain):
+ (JSC::JSFunction::setScopeChain):
+ (JSC::JSFunction::nativeFunction):
+ (JSC::JSFunction::setNativeFunction):
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::~JSGlobalData):
+ (JSC::JSGlobalData::createNativeThunk):
+ * runtime/JSGlobalData.h:
+ (JSC::JSGlobalData::nativeFunctionThunk):
+ * runtime/JSGlobalObject.cpp:
+ (JSC::JSGlobalObject::reset):
+ * runtime/JSGlobalObject.h:
+ * runtime/Lookup.cpp:
+ (JSC::setUpStaticFunctionSlot):
+ * runtime/Lookup.h:
+ * runtime/NumberPrototype.cpp:
+ (JSC::NumberPrototype::NumberPrototype):
+ * runtime/ObjectPrototype.cpp:
+ (JSC::ObjectPrototype::ObjectPrototype):
+ * runtime/RegExpPrototype.cpp:
+ (JSC::RegExpPrototype::RegExpPrototype):
+ * runtime/StringConstructor.cpp:
+ (JSC::StringConstructor::StringConstructor):
+
+2009-05-05 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ For convenience, let the sampling flags tool clear multiple flags at once.
+
+ * jsc.cpp:
+ (GlobalObject::GlobalObject):
+ (functionSetSamplingFlags):
+ (functionClearSamplingFlags):
+
+2009-05-04 Maciej Stachowiak <mjs@apple.com>
+
+ Rubber stamped by Gavin.
+
+ - inline Vector::resize for a ~1.5% speedup on string-tagcloud
+
+ * wtf/Vector.h:
+ (WTF::Vector::resize): Inline
+
+2009-05-03 Steve Falkenburg <sfalken@apple.com>
+
+ Windows build fix.
+
+ * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln:
+
+2009-05-03 Mark Rowe <mrowe@apple.com>
+
+ Fix the 64-bit build.
+
+ * API/APICast.h:
+ (toJS):
+ (toRef):
+ * runtime/JSNumberCell.cpp:
+ (JSC::jsAPIMangledNumber):
+ * runtime/JSNumberCell.h:
+
+2009-05-02 Sam Weinig <sam@webkit.org>
+
+ Roll JSC API number marshaling back in one last time (I hope).
+
+2009-05-03 Sam Weinig <sam@webkit.org>
+
+ Roll JSC API number marshaling back out. It still breaks windows.
+
+2009-05-03 Sam Weinig <sam@webkit.org>
+
+ Roll JSC API number marshaling back in.
+
+2009-05-02 Darin Adler <darin@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ Bug 25519: streamline lexer by handling BOMs differently
+ https://bugs.webkit.org/show_bug.cgi?id=25519
+
+ Roughly 1% faster SunSpider.
+
+ * parser/Grammar.y: Tweak formatting a bit.
+
+ * parser/Lexer.cpp:
+ (JSC::Lexer::Lexer): Remove unnnecessary initialization of data members
+ that are set up by setCode.
+ (JSC::Lexer::currentOffset): Added. Used where the old code would look at
+ m_currentOffset.
+ (JSC::Lexer::shift1): Replaces the old shift function. No longer does anything
+ to handle BOM characters.
+ (JSC::Lexer::shift2): Ditto.
+ (JSC::Lexer::shift3): Ditto.
+ (JSC::Lexer::shift4): Ditto.
+ (JSC::Lexer::setCode): Updated for name change from yylineno to m_line.
+ Removed now-unused m_eatNextIdentifier, m_stackToken, and m_restrKeyword.
+ Replaced m_skipLF and m_skipCR with m_skipLineEnd. Replaced the old
+ m_length with m_codeEnd and m_currentOffset with m_codeStart. Added code
+ to scan for a BOM character and call copyCodeWithoutBOMs() if we find any.
+ (JSC::Lexer::copyCodeWithoutBOMs): Added.
+ (JSC::Lexer::nextLine): Updated for name change from yylineno to m_line.
+ (JSC::Lexer::makeIdentifier): Moved up higher in the file.
+ (JSC::Lexer::matchPunctuator): Moved up higher in the file and changed to
+ use a switch statement instead of just if statements.
+ (JSC::Lexer::isLineTerminator): Moved up higher in the file and changed to
+ have fewer branches.
+ (JSC::Lexer::lastTokenWasRestrKeyword): Added. This replaces the old
+ m_restrKeyword boolean.
+ (JSC::Lexer::isIdentStart): Moved up higher in the file. Changed to use
+ fewer branches in the ASCII but not identifier case.
+ (JSC::Lexer::isIdentPart): Ditto.
+ (JSC::Lexer::singleEscape): Moved up higher in the file.
+ (JSC::Lexer::convertOctal): Moved up higher in the file.
+ (JSC::Lexer::convertHex): Moved up higher in the file. Changed to use
+ toASCIIHexValue instead of rolling our own here.
+ (JSC::Lexer::convertUnicode): Ditto.
+ (JSC::Lexer::record8): Moved up higher in the file.
+ (JSC::Lexer::record16): Moved up higher in the file.
+ (JSC::Lexer::lex): Changed type of stringType to int. Replaced m_skipLF
+ and m_skipCR with m_skipLineEnd, which requires fewer branches in the
+ main lexer loop. Use currentOffset instead of m_currentOffset. Removed
+ unneeded m_stackToken. Use isASCIIDigit instead of isDecimalDigit.
+ Split out the two cases for InIdentifierOrKeyword and InIdentifier.
+ Added special case tight loops for identifiers and other simple states.
+ Removed a branch from the code that sets m_atLineStart to false using goto.
+ Streamlined the number-handling code so we don't check for the same types
+ twice for non-numeric cases and don't add a null to m_buffer8 when it's
+ not being used. Removed m_eatNextIdentifier, which wasn't working anyway,
+ and m_restrKeyword, which is redundant with m_lastToken. Set the
+ m_delimited flag without using a branch.
+ (JSC::Lexer::scanRegExp): Tweaked style a bit.
+ (JSC::Lexer::clear): Clear m_codeWithoutBOMs so we don't use memory after
+ parsing. Clear out UString objects in the more conventional way.
+ (JSC::Lexer::sourceCode): Made this no-longer inline since it has more
+ work to do in the case where we stripped BOMs.
+
+ * parser/Lexer.h: Renamed yylineno to m_lineNumber. Removed convertHex
+ function, which is the same as toASCIIHexValue. Removed isHexDigit
+ function, which is the same as isASCIIHedDigit. Replaced shift with four
+ separate shift functions. Removed isWhiteSpace function that passes
+ m_current, instead just passing m_current explicitly. Removed isOctalDigit,
+ which is the same as isASCIIOctalDigit. Eliminated unused arguments from
+ matchPunctuator. Added copyCoodeWithoutBOMs and currentOffset. Moved the
+ makeIdentifier function out of the header. Added lastTokenWasRestrKeyword
+ function. Added new constants for m_skipLineEnd. Removed unused yycolumn,
+ m_restrKeyword, m_skipLF, m_skipCR, m_eatNextIdentifier, m_stackToken,
+ m_position, m_length, m_currentOffset, m_nextOffset1, m_nextOffset2,
+ m_nextOffset3. Added m_skipLineEnd, m_codeStart, m_codeEnd, and
+ m_codeWithoutBOMs.
+
+ * parser/SourceProvider.h: Added hasBOMs function. In the future this can
+ be used to tell the lexer about strings known not to have BOMs.
+
+ * runtime/JSGlobalObjectFunctions.cpp:
+ (JSC::globalFuncUnescape): Changed to use isASCIIHexDigit.
+
+ * wtf/ASCIICType.h: Added using statements to match the design of the
+ other WTF headers.
+
+2009-05-02 Ada Chan <adachan@apple.com>
+
+ Fix windows build (when doing a clean build)
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+
+2009-05-02 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Sam Weinig.
+ Simplified null-ish JSValues.
+
+ Replaced calls to noValue() with calls to JSValue() (which is what
+ noValue() returned). Removed noValue().
+
+ Replaced almost all uses of jsImpossibleValue() with uses of JSValue().
+ Its one remaining use is for construction of hash table deleted values.
+ For that specific task, I made a new, private constructor with a special
+ tag. Removed jsImpossibleValue().
+
+ Removed "JSValue()" initialiazers, since default construction happens...
+ by default.
+
+ * API/JSCallbackObjectFunctions.h:
+ (JSC::::call):
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::emitLoad):
+ * bytecompiler/BytecodeGenerator.h:
+ * debugger/DebuggerCallFrame.cpp:
+ (JSC::DebuggerCallFrame::evaluate):
+ * debugger/DebuggerCallFrame.h:
+ (JSC::DebuggerCallFrame::DebuggerCallFrame):
+ * interpreter/CallFrame.h:
+ (JSC::ExecState::clearException):
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+ (JSC::Interpreter::retrieveLastCaller):
+ * interpreter/Register.h:
+ (JSC::Register::Register):
+ * jit/JITCall.cpp:
+ (JSC::JIT::unlinkCall):
+ (JSC::JIT::compileOpCallInitializeCallFrame):
+ (JSC::JIT::compileOpCall):
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::cti_op_call_eval):
+ (JSC::JITStubs::cti_vm_throw):
+ * profiler/Profiler.cpp:
+ (JSC::Profiler::willExecute):
+ (JSC::Profiler::didExecute):
+ * runtime/ArrayPrototype.cpp:
+ (JSC::getProperty):
+ * runtime/Completion.cpp:
+ (JSC::evaluate):
+ * runtime/Completion.h:
+ (JSC::Completion::Completion):
+ * runtime/GetterSetter.cpp:
+ (JSC::GetterSetter::getPrimitiveNumber):
+ * runtime/JSArray.cpp:
+ (JSC::JSArray::putSlowCase):
+ (JSC::JSArray::deleteProperty):
+ (JSC::JSArray::increaseVectorLength):
+ (JSC::JSArray::setLength):
+ (JSC::JSArray::pop):
+ (JSC::JSArray::sort):
+ (JSC::JSArray::compactForSorting):
+ * runtime/JSCell.cpp:
+ (JSC::JSCell::getJSNumber):
+ * runtime/JSCell.h:
+ (JSC::JSValue::getJSNumber):
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::JSGlobalData):
+ * runtime/JSImmediate.h:
+ (JSC::JSImmediate::fromNumberOutsideIntegerRange):
+ (JSC::JSImmediate::from):
+ * runtime/JSNumberCell.cpp:
+ (JSC::jsNumberCell):
+ * runtime/JSObject.cpp:
+ (JSC::callDefaultValueFunction):
+ * runtime/JSObject.h:
+ (JSC::JSObject::getDirect):
+ * runtime/JSPropertyNameIterator.cpp:
+ (JSC::JSPropertyNameIterator::toPrimitive):
+ * runtime/JSPropertyNameIterator.h:
+ (JSC::JSPropertyNameIterator::next):
+ * runtime/JSValue.h:
+ (JSC::JSValue::):
+ (JSC::JSValueHashTraits::constructDeletedValue):
+ (JSC::JSValueHashTraits::isDeletedValue):
+ (JSC::JSValue::JSValue):
+ * runtime/JSWrapperObject.h:
+ (JSC::JSWrapperObject::JSWrapperObject):
+ * runtime/Operations.h:
+ (JSC::resolveBase):
+ * runtime/PropertySlot.h:
+ (JSC::PropertySlot::clearBase):
+ (JSC::PropertySlot::clearValue):
+
+2009-05-02 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Cameron Zwarich.
+
+ - speed up the lexer in various ways
+
+ ~2% command-line SunSpider speedup
+
+ * parser/Lexer.cpp:
+ (JSC::Lexer::setCode): Moved below shift() so it can inline.
+ (JSC::Lexer::scanRegExp): Use resize(0) instead of clear() on Vectors, since the intent
+ here is not to free the underlying buffer.
+ (JSC::Lexer::lex): ditto; also, change the loop logic a bit for the main lexing loop
+ to avoid branching on !m_done twice per iteration. Now we only check it once.
+ (JSC::Lexer::shift): Make this ALWAYS_INLINE and tag an unusual branch as UNLIKELY
+ * parser/Lexer.h:
+ (JSC::Lexer::makeIdentifier): force to be ALWAYS_INLINE
+ * wtf/Vector.h:
+ (WTF::::append): force to be ALWAYS_INLINE (may have helped in ways other than parsing but it wasn't
+ getting inlined in a hot code path in the lexer)
+
+2009-05-01 Steve Falkenburg <sfalken@apple.com>
+
+ Windows build fix.
+
+ * JavaScriptCore.vcproj/JavaScriptCore.make:
+
+2009-05-01 Sam Weinig <sam@webkit.org>
+
+ Fix 64bit build.
+
+ * runtime/JSNumberCell.h:
+ (JSC::JSValue::JSValue):
+ * runtime/JSValue.h:
+ (JSC::jsNumber):
+
+2009-05-01 Sam Weinig <sam@webkit.org>
+
+ Roll out JavaScriptCore API number marshaling.
+
+ * API/APICast.h:
+ (toJS):
+ (toRef):
+ * API/JSBase.cpp:
+ (JSEvaluateScript):
+ (JSCheckScriptSyntax):
+ * API/JSCallbackConstructor.cpp:
+ (JSC::constructJSCallback):
+ * API/JSCallbackFunction.cpp:
+ (JSC::JSCallbackFunction::call):
+ * API/JSCallbackObjectFunctions.h:
+ (JSC::::getOwnPropertySlot):
+ (JSC::::put):
+ (JSC::::deleteProperty):
+ (JSC::::construct):
+ (JSC::::hasInstance):
+ (JSC::::call):
+ (JSC::::toNumber):
+ (JSC::::toString):
+ (JSC::::staticValueGetter):
+ (JSC::::callbackGetter):
+ * API/JSObjectRef.cpp:
+ (JSObjectMakeFunction):
+ (JSObjectMakeArray):
+ (JSObjectMakeDate):
+ (JSObjectMakeError):
+ (JSObjectMakeRegExp):
+ (JSObjectGetPrototype):
+ (JSObjectSetPrototype):
+ (JSObjectGetProperty):
+ (JSObjectSetProperty):
+ (JSObjectGetPropertyAtIndex):
+ (JSObjectSetPropertyAtIndex):
+ (JSObjectDeleteProperty):
+ (JSObjectCallAsFunction):
+ (JSObjectCallAsConstructor):
+ * API/JSValueRef.cpp:
+ (JSValueGetType):
+ (JSValueIsUndefined):
+ (JSValueIsNull):
+ (JSValueIsBoolean):
+ (JSValueIsNumber):
+ (JSValueIsString):
+ (JSValueIsObject):
+ (JSValueIsObjectOfClass):
+ (JSValueIsEqual):
+ (JSValueIsStrictEqual):
+ (JSValueIsInstanceOfConstructor):
+ (JSValueMakeUndefined):
+ (JSValueMakeNull):
+ (JSValueMakeBoolean):
+ (JSValueMakeNumber):
+ (JSValueMakeString):
+ (JSValueToBoolean):
+ (JSValueToNumber):
+ (JSValueToStringCopy):
+ (JSValueToObject):
+ (JSValueProtect):
+ (JSValueUnprotect):
+ * JavaScriptCore.exp:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+ * runtime/JSNumberCell.cpp:
+ * runtime/JSNumberCell.h:
+ * runtime/JSValue.h:
+
+2009-05-01 Sam Weinig <sam@webkit.org>
+
+ Fix windows build.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+
+2009-05-01 Sam Weinig <sam@webkit.org>
+
+ Fix the build.
+
+ * JavaScriptCore.exp:
+
+2009-05-01 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Geoffrey "Too Far!" Garen.
+
+ Move JS number construction into JSValue.
+
+ * runtime/JSImmediate.h:
+ * runtime/JSNumberCell.h:
+ (JSC::JSValue::JSValue):
+ * runtime/JSValue.h:
+ (JSC::jsNumber):
+
+2009-05-01 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Geoff "The Minneapolis" Garen.
+
+ Add mechanism to vend heap allocated JS numbers to JavaScriptCore API clients with a
+ representation that is independent of the number representation in the VM.
+ - Numbers leaving the interpreter are converted to a tagged JSNumberCell.
+ - The numbers coming into the interpreter (asserted to be the tagged JSNumberCell) are
+ converted back to the VM's internal number representation.
+
+ * API/APICast.h:
+ (toJS):
+ (toRef):
+ * API/JSBase.cpp:
+ (JSEvaluateScript):
+ (JSCheckScriptSyntax):
+ * API/JSCallbackConstructor.cpp:
+ (JSC::constructJSCallback):
+ * API/JSCallbackFunction.cpp:
+ (JSC::JSCallbackFunction::call):
+ * API/JSCallbackObjectFunctions.h:
+ (JSC::::getOwnPropertySlot):
+ (JSC::::put):
+ (JSC::::deleteProperty):
+ (JSC::::construct):
+ (JSC::::hasInstance):
+ (JSC::::call):
+ (JSC::::toNumber):
+ (JSC::::toString):
+ (JSC::::staticValueGetter):
+ (JSC::::callbackGetter):
+ * API/JSObjectRef.cpp:
+ (JSObjectMakeFunction):
+ (JSObjectMakeArray):
+ (JSObjectMakeDate):
+ (JSObjectMakeError):
+ (JSObjectMakeRegExp):
+ (JSObjectGetPrototype):
+ (JSObjectSetPrototype):
+ (JSObjectGetProperty):
+ (JSObjectSetProperty):
+ (JSObjectGetPropertyAtIndex):
+ (JSObjectSetPropertyAtIndex):
+ (JSObjectDeleteProperty):
+ (JSObjectCallAsFunction):
+ (JSObjectCallAsConstructor):
+ * API/JSValueRef.cpp:
+ (JSValueGetType):
+ (JSValueIsUndefined):
+ (JSValueIsNull):
+ (JSValueIsBoolean):
+ (JSValueIsNumber):
+ (JSValueIsString):
+ (JSValueIsObject):
+ (JSValueIsObjectOfClass):
+ (JSValueIsEqual):
+ (JSValueIsStrictEqual):
+ (JSValueIsInstanceOfConstructor):
+ (JSValueMakeUndefined):
+ (JSValueMakeNull):
+ (JSValueMakeBoolean):
+ (JSValueMakeNumber):
+ (JSValueMakeString):
+ (JSValueToBoolean):
+ (JSValueToNumber):
+ (JSValueToStringCopy):
+ (JSValueToObject):
+ (JSValueProtect):
+ (JSValueUnprotect):
+ * runtime/JSNumberCell.cpp:
+ (JSC::jsAPIMangledNumber):
+ * runtime/JSNumberCell.h:
+ (JSC::JSNumberCell::isAPIMangledNumber):
+ (JSC::JSNumberCell::):
+ (JSC::JSNumberCell::JSNumberCell):
+ (JSC::JSValue::isAPIMangledNumber):
+ * runtime/JSValue.h:
+
+2009-05-01 Geoffrey Garen <ggaren@apple.com>
+
+ Windows build fix take 6.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+
+2009-05-01 Geoffrey Garen <ggaren@apple.com>
+
+ Windows build fix take 5.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+
+2009-05-01 Geoffrey Garen <ggaren@apple.com>
+
+ Windows build fix take 4.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+
+2009-05-01 Geoffrey Garen <ggaren@apple.com>
+
+ Windows build fix take 3.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+
+2009-05-01 Geoffrey Garen <ggaren@apple.com>
+
+ Windows build fix take 2.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+
+2009-05-01 Geoffrey Garen <ggaren@apple.com>
+
+ Windows build fix take 1.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+
+2009-05-01 Geoffrey Garen <ggaren@apple.com>
+
+ Rubber Stamped by Sam Weinig.
+
+ Renamed JSValuePtr => JSValue.
+
+ * API/APICast.h:
+ (toJS):
+ (toRef):
+ * API/JSCallbackConstructor.h:
+ (JSC::JSCallbackConstructor::createStructure):
+ * API/JSCallbackFunction.cpp:
+ (JSC::JSCallbackFunction::call):
+ * API/JSCallbackFunction.h:
+ (JSC::JSCallbackFunction::createStructure):
+ * API/JSCallbackObject.h:
+ (JSC::JSCallbackObject::createStructure):
+ * API/JSCallbackObjectFunctions.h:
+ (JSC::::asCallbackObject):
+ (JSC::::put):
+ (JSC::::hasInstance):
+ (JSC::::call):
+ (JSC::::staticValueGetter):
+ (JSC::::staticFunctionGetter):
+ (JSC::::callbackGetter):
+ * API/JSContextRef.cpp:
+ * API/JSObjectRef.cpp:
+ (JSObjectMakeConstructor):
+ (JSObjectSetPrototype):
+ (JSObjectGetProperty):
+ (JSObjectSetProperty):
+ (JSObjectGetPropertyAtIndex):
+ (JSObjectSetPropertyAtIndex):
+ * API/JSValueRef.cpp:
+ (JSValueGetType):
+ (JSValueIsUndefined):
+ (JSValueIsNull):
+ (JSValueIsBoolean):
+ (JSValueIsNumber):
+ (JSValueIsString):
+ (JSValueIsObject):
+ (JSValueIsObjectOfClass):
+ (JSValueIsEqual):
+ (JSValueIsStrictEqual):
+ (JSValueIsInstanceOfConstructor):
+ (JSValueToBoolean):
+ (JSValueToNumber):
+ (JSValueToStringCopy):
+ (JSValueToObject):
+ (JSValueProtect):
+ (JSValueUnprotect):
+ * JavaScriptCore.exp:
+ * bytecode/CodeBlock.cpp:
+ (JSC::valueToSourceString):
+ (JSC::constantName):
+ (JSC::CodeBlock::dump):
+ * bytecode/CodeBlock.h:
+ (JSC::CodeBlock::getConstant):
+ (JSC::CodeBlock::addUnexpectedConstant):
+ (JSC::CodeBlock::unexpectedConstant):
+ * bytecode/EvalCodeCache.h:
+ (JSC::EvalCodeCache::get):
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::addConstant):
+ (JSC::BytecodeGenerator::addUnexpectedConstant):
+ (JSC::BytecodeGenerator::emitLoad):
+ (JSC::BytecodeGenerator::emitGetScopedVar):
+ (JSC::BytecodeGenerator::emitPutScopedVar):
+ (JSC::BytecodeGenerator::emitNewError):
+ (JSC::keyForImmediateSwitch):
+ * bytecompiler/BytecodeGenerator.h:
+ (JSC::BytecodeGenerator::JSValueHashTraits::constructDeletedValue):
+ (JSC::BytecodeGenerator::JSValueHashTraits::isDeletedValue):
+ * debugger/Debugger.cpp:
+ (JSC::evaluateInGlobalCallFrame):
+ * debugger/Debugger.h:
+ * debugger/DebuggerActivation.cpp:
+ (JSC::DebuggerActivation::put):
+ (JSC::DebuggerActivation::putWithAttributes):
+ (JSC::DebuggerActivation::lookupGetter):
+ (JSC::DebuggerActivation::lookupSetter):
+ * debugger/DebuggerActivation.h:
+ (JSC::DebuggerActivation::createStructure):
+ * debugger/DebuggerCallFrame.cpp:
+ (JSC::DebuggerCallFrame::evaluate):
+ * debugger/DebuggerCallFrame.h:
+ (JSC::DebuggerCallFrame::DebuggerCallFrame):
+ (JSC::DebuggerCallFrame::exception):
+ * interpreter/CachedCall.h:
+ (JSC::CachedCall::CachedCall):
+ (JSC::CachedCall::call):
+ (JSC::CachedCall::setThis):
+ (JSC::CachedCall::setArgument):
+ * interpreter/CallFrame.cpp:
+ (JSC::CallFrame::thisValue):
+ (JSC::CallFrame::dumpCaller):
+ * interpreter/CallFrame.h:
+ (JSC::ExecState::setException):
+ (JSC::ExecState::exception):
+ (JSC::ExecState::exceptionSlot):
+ * interpreter/CallFrameClosure.h:
+ (JSC::CallFrameClosure::setArgument):
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::resolve):
+ (JSC::Interpreter::resolveSkip):
+ (JSC::Interpreter::resolveGlobal):
+ (JSC::Interpreter::resolveBase):
+ (JSC::Interpreter::resolveBaseAndProperty):
+ (JSC::Interpreter::resolveBaseAndFunc):
+ (JSC::isNotObject):
+ (JSC::Interpreter::callEval):
+ (JSC::Interpreter::unwindCallFrame):
+ (JSC::Interpreter::throwException):
+ (JSC::Interpreter::execute):
+ (JSC::Interpreter::prepareForRepeatCall):
+ (JSC::Interpreter::createExceptionScope):
+ (JSC::Interpreter::tryCachePutByID):
+ (JSC::Interpreter::tryCacheGetByID):
+ (JSC::Interpreter::privateExecute):
+ (JSC::Interpreter::retrieveArguments):
+ (JSC::Interpreter::retrieveCaller):
+ (JSC::Interpreter::retrieveLastCaller):
+ * interpreter/Interpreter.h:
+ * interpreter/Register.h:
+ (JSC::Register::):
+ (JSC::Register::Register):
+ (JSC::Register::jsValue):
+ * jit/JIT.cpp:
+ (JSC::):
+ (JSC::JIT::privateCompileMainPass):
+ * jit/JIT.h:
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileFastArith_op_mod):
+ * jit/JITCall.cpp:
+ (JSC::JIT::unlinkCall):
+ (JSC::JIT::compileOpCallInitializeCallFrame):
+ (JSC::JIT::compileOpCall):
+ * jit/JITCode.h:
+ (JSC::):
+ (JSC::JITCode::execute):
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::emitGetVirtualRegister):
+ (JSC::JIT::getConstantOperand):
+ (JSC::JIT::emitPutJITStubArgFromVirtualRegister):
+ (JSC::JIT::emitInitRegister):
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::privateCompilePutByIdTransition):
+ (JSC::JIT::patchGetByIdSelf):
+ (JSC::JIT::patchPutByIdReplace):
+ (JSC::JIT::privateCompileGetByIdSelf):
+ (JSC::JIT::privateCompileGetByIdProto):
+ (JSC::JIT::privateCompileGetByIdSelfList):
+ (JSC::JIT::privateCompileGetByIdProtoList):
+ (JSC::JIT::privateCompileGetByIdChainList):
+ (JSC::JIT::privateCompileGetByIdChain):
+ (JSC::JIT::privateCompilePutByIdReplace):
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::tryCachePutByID):
+ (JSC::JITStubs::tryCacheGetByID):
+ (JSC::JITStubs::cti_op_convert_this):
+ (JSC::JITStubs::cti_op_add):
+ (JSC::JITStubs::cti_op_pre_inc):
+ (JSC::JITStubs::cti_op_loop_if_less):
+ (JSC::JITStubs::cti_op_loop_if_lesseq):
+ (JSC::JITStubs::cti_op_get_by_id_generic):
+ (JSC::JITStubs::cti_op_get_by_id):
+ (JSC::JITStubs::cti_op_get_by_id_second):
+ (JSC::JITStubs::cti_op_get_by_id_self_fail):
+ (JSC::JITStubs::cti_op_get_by_id_proto_list):
+ (JSC::JITStubs::cti_op_get_by_id_proto_list_full):
+ (JSC::JITStubs::cti_op_get_by_id_proto_fail):
+ (JSC::JITStubs::cti_op_get_by_id_array_fail):
+ (JSC::JITStubs::cti_op_get_by_id_string_fail):
+ (JSC::JITStubs::cti_op_instanceof):
+ (JSC::JITStubs::cti_op_del_by_id):
+ (JSC::JITStubs::cti_op_mul):
+ (JSC::JITStubs::cti_op_call_NotJSFunction):
+ (JSC::JITStubs::cti_op_resolve):
+ (JSC::JITStubs::cti_op_construct_NotJSConstruct):
+ (JSC::JITStubs::cti_op_get_by_val):
+ (JSC::JITStubs::cti_op_get_by_val_string):
+ (JSC::JITStubs::cti_op_get_by_val_byte_array):
+ (JSC::JITStubs::cti_op_resolve_func):
+ (JSC::JITStubs::cti_op_sub):
+ (JSC::JITStubs::cti_op_put_by_val):
+ (JSC::JITStubs::cti_op_put_by_val_array):
+ (JSC::JITStubs::cti_op_put_by_val_byte_array):
+ (JSC::JITStubs::cti_op_lesseq):
+ (JSC::JITStubs::cti_op_loop_if_true):
+ (JSC::JITStubs::cti_op_load_varargs):
+ (JSC::JITStubs::cti_op_negate):
+ (JSC::JITStubs::cti_op_resolve_base):
+ (JSC::JITStubs::cti_op_resolve_skip):
+ (JSC::JITStubs::cti_op_resolve_global):
+ (JSC::JITStubs::cti_op_div):
+ (JSC::JITStubs::cti_op_pre_dec):
+ (JSC::JITStubs::cti_op_jless):
+ (JSC::JITStubs::cti_op_not):
+ (JSC::JITStubs::cti_op_jtrue):
+ (JSC::JITStubs::cti_op_post_inc):
+ (JSC::JITStubs::cti_op_eq):
+ (JSC::JITStubs::cti_op_lshift):
+ (JSC::JITStubs::cti_op_bitand):
+ (JSC::JITStubs::cti_op_rshift):
+ (JSC::JITStubs::cti_op_bitnot):
+ (JSC::JITStubs::cti_op_resolve_with_base):
+ (JSC::JITStubs::cti_op_mod):
+ (JSC::JITStubs::cti_op_less):
+ (JSC::JITStubs::cti_op_neq):
+ (JSC::JITStubs::cti_op_post_dec):
+ (JSC::JITStubs::cti_op_urshift):
+ (JSC::JITStubs::cti_op_bitxor):
+ (JSC::JITStubs::cti_op_bitor):
+ (JSC::JITStubs::cti_op_call_eval):
+ (JSC::JITStubs::cti_op_throw):
+ (JSC::JITStubs::cti_op_next_pname):
+ (JSC::JITStubs::cti_op_typeof):
+ (JSC::JITStubs::cti_op_is_undefined):
+ (JSC::JITStubs::cti_op_is_boolean):
+ (JSC::JITStubs::cti_op_is_number):
+ (JSC::JITStubs::cti_op_is_string):
+ (JSC::JITStubs::cti_op_is_object):
+ (JSC::JITStubs::cti_op_is_function):
+ (JSC::JITStubs::cti_op_stricteq):
+ (JSC::JITStubs::cti_op_nstricteq):
+ (JSC::JITStubs::cti_op_to_jsnumber):
+ (JSC::JITStubs::cti_op_in):
+ (JSC::JITStubs::cti_op_switch_imm):
+ (JSC::JITStubs::cti_op_switch_char):
+ (JSC::JITStubs::cti_op_switch_string):
+ (JSC::JITStubs::cti_op_del_by_val):
+ (JSC::JITStubs::cti_op_new_error):
+ (JSC::JITStubs::cti_vm_throw):
+ * jit/JITStubs.h:
+ * jsc.cpp:
+ (functionPrint):
+ (functionDebug):
+ (functionGC):
+ (functionVersion):
+ (functionRun):
+ (functionLoad):
+ (functionSetSamplingFlag):
+ (functionClearSamplingFlag):
+ (functionReadline):
+ (functionQuit):
+ * parser/Nodes.cpp:
+ (JSC::processClauseList):
+ * profiler/ProfileGenerator.cpp:
+ (JSC::ProfileGenerator::addParentForConsoleStart):
+ * profiler/Profiler.cpp:
+ (JSC::Profiler::willExecute):
+ (JSC::Profiler::didExecute):
+ (JSC::Profiler::createCallIdentifier):
+ * profiler/Profiler.h:
+ * runtime/ArgList.cpp:
+ (JSC::MarkedArgumentBuffer::slowAppend):
+ * runtime/ArgList.h:
+ (JSC::MarkedArgumentBuffer::at):
+ (JSC::MarkedArgumentBuffer::append):
+ (JSC::ArgList::ArgList):
+ (JSC::ArgList::at):
+ * runtime/Arguments.cpp:
+ (JSC::Arguments::put):
+ * runtime/Arguments.h:
+ (JSC::Arguments::createStructure):
+ (JSC::asArguments):
+ * runtime/ArrayConstructor.cpp:
+ (JSC::callArrayConstructor):
+ * runtime/ArrayPrototype.cpp:
+ (JSC::getProperty):
+ (JSC::putProperty):
+ (JSC::arrayProtoFuncToString):
+ (JSC::arrayProtoFuncToLocaleString):
+ (JSC::arrayProtoFuncJoin):
+ (JSC::arrayProtoFuncConcat):
+ (JSC::arrayProtoFuncPop):
+ (JSC::arrayProtoFuncPush):
+ (JSC::arrayProtoFuncReverse):
+ (JSC::arrayProtoFuncShift):
+ (JSC::arrayProtoFuncSlice):
+ (JSC::arrayProtoFuncSort):
+ (JSC::arrayProtoFuncSplice):
+ (JSC::arrayProtoFuncUnShift):
+ (JSC::arrayProtoFuncFilter):
+ (JSC::arrayProtoFuncMap):
+ (JSC::arrayProtoFuncEvery):
+ (JSC::arrayProtoFuncForEach):
+ (JSC::arrayProtoFuncSome):
+ (JSC::arrayProtoFuncReduce):
+ (JSC::arrayProtoFuncReduceRight):
+ (JSC::arrayProtoFuncIndexOf):
+ (JSC::arrayProtoFuncLastIndexOf):
+ * runtime/BooleanConstructor.cpp:
+ (JSC::callBooleanConstructor):
+ (JSC::constructBooleanFromImmediateBoolean):
+ * runtime/BooleanConstructor.h:
+ * runtime/BooleanObject.h:
+ (JSC::asBooleanObject):
+ * runtime/BooleanPrototype.cpp:
+ (JSC::booleanProtoFuncToString):
+ (JSC::booleanProtoFuncValueOf):
+ * runtime/CallData.cpp:
+ (JSC::call):
+ * runtime/CallData.h:
+ * runtime/Collector.cpp:
+ (JSC::Heap::protect):
+ (JSC::Heap::unprotect):
+ (JSC::Heap::heap):
+ * runtime/Collector.h:
+ * runtime/Completion.cpp:
+ (JSC::evaluate):
+ * runtime/Completion.h:
+ (JSC::Completion::Completion):
+ (JSC::Completion::value):
+ (JSC::Completion::setValue):
+ * runtime/ConstructData.cpp:
+ (JSC::construct):
+ * runtime/ConstructData.h:
+ * runtime/DateConstructor.cpp:
+ (JSC::constructDate):
+ (JSC::callDate):
+ (JSC::dateParse):
+ (JSC::dateNow):
+ (JSC::dateUTC):
+ * runtime/DateInstance.h:
+ (JSC::asDateInstance):
+ * runtime/DatePrototype.cpp:
+ (JSC::dateProtoFuncToString):
+ (JSC::dateProtoFuncToUTCString):
+ (JSC::dateProtoFuncToDateString):
+ (JSC::dateProtoFuncToTimeString):
+ (JSC::dateProtoFuncToLocaleString):
+ (JSC::dateProtoFuncToLocaleDateString):
+ (JSC::dateProtoFuncToLocaleTimeString):
+ (JSC::dateProtoFuncGetTime):
+ (JSC::dateProtoFuncGetFullYear):
+ (JSC::dateProtoFuncGetUTCFullYear):
+ (JSC::dateProtoFuncToGMTString):
+ (JSC::dateProtoFuncGetMonth):
+ (JSC::dateProtoFuncGetUTCMonth):
+ (JSC::dateProtoFuncGetDate):
+ (JSC::dateProtoFuncGetUTCDate):
+ (JSC::dateProtoFuncGetDay):
+ (JSC::dateProtoFuncGetUTCDay):
+ (JSC::dateProtoFuncGetHours):
+ (JSC::dateProtoFuncGetUTCHours):
+ (JSC::dateProtoFuncGetMinutes):
+ (JSC::dateProtoFuncGetUTCMinutes):
+ (JSC::dateProtoFuncGetSeconds):
+ (JSC::dateProtoFuncGetUTCSeconds):
+ (JSC::dateProtoFuncGetMilliSeconds):
+ (JSC::dateProtoFuncGetUTCMilliseconds):
+ (JSC::dateProtoFuncGetTimezoneOffset):
+ (JSC::dateProtoFuncSetTime):
+ (JSC::setNewValueFromTimeArgs):
+ (JSC::setNewValueFromDateArgs):
+ (JSC::dateProtoFuncSetMilliSeconds):
+ (JSC::dateProtoFuncSetUTCMilliseconds):
+ (JSC::dateProtoFuncSetSeconds):
+ (JSC::dateProtoFuncSetUTCSeconds):
+ (JSC::dateProtoFuncSetMinutes):
+ (JSC::dateProtoFuncSetUTCMinutes):
+ (JSC::dateProtoFuncSetHours):
+ (JSC::dateProtoFuncSetUTCHours):
+ (JSC::dateProtoFuncSetDate):
+ (JSC::dateProtoFuncSetUTCDate):
+ (JSC::dateProtoFuncSetMonth):
+ (JSC::dateProtoFuncSetUTCMonth):
+ (JSC::dateProtoFuncSetFullYear):
+ (JSC::dateProtoFuncSetUTCFullYear):
+ (JSC::dateProtoFuncSetYear):
+ (JSC::dateProtoFuncGetYear):
+ * runtime/DatePrototype.h:
+ (JSC::DatePrototype::createStructure):
+ * runtime/ErrorConstructor.cpp:
+ (JSC::callErrorConstructor):
+ * runtime/ErrorPrototype.cpp:
+ (JSC::errorProtoFuncToString):
+ * runtime/ExceptionHelpers.cpp:
+ (JSC::createInterruptedExecutionException):
+ (JSC::createError):
+ (JSC::createStackOverflowError):
+ (JSC::createUndefinedVariableError):
+ (JSC::createErrorMessage):
+ (JSC::createInvalidParamError):
+ (JSC::createNotAConstructorError):
+ (JSC::createNotAFunctionError):
+ * runtime/ExceptionHelpers.h:
+ * runtime/FunctionConstructor.cpp:
+ (JSC::callFunctionConstructor):
+ * runtime/FunctionPrototype.cpp:
+ (JSC::callFunctionPrototype):
+ (JSC::functionProtoFuncToString):
+ (JSC::functionProtoFuncApply):
+ (JSC::functionProtoFuncCall):
+ * runtime/FunctionPrototype.h:
+ (JSC::FunctionPrototype::createStructure):
+ * runtime/GetterSetter.cpp:
+ (JSC::GetterSetter::toPrimitive):
+ (JSC::GetterSetter::getPrimitiveNumber):
+ * runtime/GetterSetter.h:
+ (JSC::asGetterSetter):
+ * runtime/InternalFunction.cpp:
+ (JSC::InternalFunction::displayName):
+ * runtime/InternalFunction.h:
+ (JSC::InternalFunction::createStructure):
+ (JSC::asInternalFunction):
+ * runtime/JSActivation.cpp:
+ (JSC::JSActivation::getOwnPropertySlot):
+ (JSC::JSActivation::put):
+ (JSC::JSActivation::putWithAttributes):
+ (JSC::JSActivation::argumentsGetter):
+ * runtime/JSActivation.h:
+ (JSC::JSActivation::createStructure):
+ (JSC::asActivation):
+ * runtime/JSArray.cpp:
+ (JSC::storageSize):
+ (JSC::JSArray::JSArray):
+ (JSC::JSArray::getOwnPropertySlot):
+ (JSC::JSArray::put):
+ (JSC::JSArray::putSlowCase):
+ (JSC::JSArray::deleteProperty):
+ (JSC::JSArray::setLength):
+ (JSC::JSArray::pop):
+ (JSC::JSArray::push):
+ (JSC::JSArray::mark):
+ (JSC::compareNumbersForQSort):
+ (JSC::JSArray::sortNumeric):
+ (JSC::JSArray::sort):
+ (JSC::JSArray::compactForSorting):
+ (JSC::JSArray::checkConsistency):
+ (JSC::constructArray):
+ * runtime/JSArray.h:
+ (JSC::JSArray::getIndex):
+ (JSC::JSArray::setIndex):
+ (JSC::JSArray::createStructure):
+ (JSC::asArray):
+ (JSC::isJSArray):
+ * runtime/JSByteArray.cpp:
+ (JSC::JSByteArray::createStructure):
+ (JSC::JSByteArray::put):
+ * runtime/JSByteArray.h:
+ (JSC::JSByteArray::getIndex):
+ (JSC::JSByteArray::setIndex):
+ (JSC::asByteArray):
+ (JSC::isJSByteArray):
+ * runtime/JSCell.cpp:
+ (JSC::JSCell::put):
+ (JSC::JSCell::getJSNumber):
+ * runtime/JSCell.h:
+ (JSC::asCell):
+ (JSC::JSValue::asCell):
+ (JSC::JSValue::isString):
+ (JSC::JSValue::isGetterSetter):
+ (JSC::JSValue::isObject):
+ (JSC::JSValue::getString):
+ (JSC::JSValue::getObject):
+ (JSC::JSValue::getCallData):
+ (JSC::JSValue::getConstructData):
+ (JSC::JSValue::getUInt32):
+ (JSC::JSValue::getTruncatedInt32):
+ (JSC::JSValue::getTruncatedUInt32):
+ (JSC::JSValue::mark):
+ (JSC::JSValue::marked):
+ (JSC::JSValue::toPrimitive):
+ (JSC::JSValue::getPrimitiveNumber):
+ (JSC::JSValue::toBoolean):
+ (JSC::JSValue::toNumber):
+ (JSC::JSValue::toString):
+ (JSC::JSValue::toObject):
+ (JSC::JSValue::toThisObject):
+ (JSC::JSValue::needsThisConversion):
+ (JSC::JSValue::toThisString):
+ (JSC::JSValue::getJSNumber):
+ * runtime/JSFunction.cpp:
+ (JSC::JSFunction::call):
+ (JSC::JSFunction::argumentsGetter):
+ (JSC::JSFunction::callerGetter):
+ (JSC::JSFunction::lengthGetter):
+ (JSC::JSFunction::getOwnPropertySlot):
+ (JSC::JSFunction::put):
+ (JSC::JSFunction::construct):
+ * runtime/JSFunction.h:
+ (JSC::JSFunction::createStructure):
+ (JSC::asFunction):
+ * runtime/JSGlobalData.h:
+ * runtime/JSGlobalObject.cpp:
+ (JSC::markIfNeeded):
+ (JSC::JSGlobalObject::put):
+ (JSC::JSGlobalObject::putWithAttributes):
+ (JSC::JSGlobalObject::reset):
+ (JSC::JSGlobalObject::resetPrototype):
+ * runtime/JSGlobalObject.h:
+ (JSC::JSGlobalObject::createStructure):
+ (JSC::JSGlobalObject::GlobalPropertyInfo::GlobalPropertyInfo):
+ (JSC::asGlobalObject):
+ (JSC::Structure::prototypeForLookup):
+ (JSC::Structure::prototypeChain):
+ (JSC::Structure::isValid):
* runtime/JSGlobalObjectFunctions.cpp:
+ (JSC::encode):
+ (JSC::decode):
+ (JSC::globalFuncEval):
(JSC::globalFuncParseInt):
+ (JSC::globalFuncParseFloat):
+ (JSC::globalFuncIsNaN):
+ (JSC::globalFuncIsFinite):
+ (JSC::globalFuncDecodeURI):
+ (JSC::globalFuncDecodeURIComponent):
+ (JSC::globalFuncEncodeURI):
+ (JSC::globalFuncEncodeURIComponent):
+ (JSC::globalFuncEscape):
+ (JSC::globalFuncUnescape):
+ (JSC::globalFuncJSCPrint):
+ * runtime/JSGlobalObjectFunctions.h:
+ * runtime/JSImmediate.cpp:
+ (JSC::JSImmediate::toThisObject):
+ (JSC::JSImmediate::toObject):
+ (JSC::JSImmediate::prototype):
+ (JSC::JSImmediate::toString):
+ * runtime/JSImmediate.h:
+ (JSC::JSImmediate::isImmediate):
+ (JSC::JSImmediate::isNumber):
+ (JSC::JSImmediate::isIntegerNumber):
+ (JSC::JSImmediate::isDoubleNumber):
+ (JSC::JSImmediate::isPositiveIntegerNumber):
+ (JSC::JSImmediate::isBoolean):
+ (JSC::JSImmediate::isUndefinedOrNull):
+ (JSC::JSImmediate::isEitherImmediate):
+ (JSC::JSImmediate::areBothImmediate):
+ (JSC::JSImmediate::areBothImmediateIntegerNumbers):
+ (JSC::JSImmediate::makeValue):
+ (JSC::JSImmediate::makeInt):
+ (JSC::JSImmediate::makeDouble):
+ (JSC::JSImmediate::makeBool):
+ (JSC::JSImmediate::makeUndefined):
+ (JSC::JSImmediate::makeNull):
+ (JSC::JSImmediate::doubleValue):
+ (JSC::JSImmediate::intValue):
+ (JSC::JSImmediate::uintValue):
+ (JSC::JSImmediate::boolValue):
+ (JSC::JSImmediate::rawValue):
+ (JSC::JSImmediate::trueImmediate):
+ (JSC::JSImmediate::falseImmediate):
+ (JSC::JSImmediate::undefinedImmediate):
+ (JSC::JSImmediate::nullImmediate):
+ (JSC::JSImmediate::zeroImmediate):
+ (JSC::JSImmediate::oneImmediate):
+ (JSC::JSImmediate::impossibleValue):
+ (JSC::JSImmediate::toBoolean):
+ (JSC::JSImmediate::getTruncatedUInt32):
+ (JSC::JSImmediate::fromNumberOutsideIntegerRange):
+ (JSC::JSImmediate::from):
+ (JSC::JSImmediate::getTruncatedInt32):
+ (JSC::JSImmediate::toDouble):
+ (JSC::JSImmediate::getUInt32):
+ (JSC::JSValue::JSValue):
+ (JSC::JSValue::isUndefinedOrNull):
+ (JSC::JSValue::isBoolean):
+ (JSC::JSValue::getBoolean):
+ (JSC::JSValue::toInt32):
+ (JSC::JSValue::toUInt32):
+ (JSC::JSValue::isCell):
+ (JSC::JSValue::isInt32Fast):
+ (JSC::JSValue::getInt32Fast):
+ (JSC::JSValue::isUInt32Fast):
+ (JSC::JSValue::getUInt32Fast):
+ (JSC::JSValue::makeInt32Fast):
+ (JSC::JSValue::areBothInt32Fast):
+ (JSC::JSFastMath::canDoFastBitwiseOperations):
+ (JSC::JSFastMath::equal):
+ (JSC::JSFastMath::notEqual):
+ (JSC::JSFastMath::andImmediateNumbers):
+ (JSC::JSFastMath::xorImmediateNumbers):
+ (JSC::JSFastMath::orImmediateNumbers):
+ (JSC::JSFastMath::canDoFastRshift):
+ (JSC::JSFastMath::canDoFastUrshift):
+ (JSC::JSFastMath::rightShiftImmediateNumbers):
+ (JSC::JSFastMath::canDoFastAdditiveOperations):
+ (JSC::JSFastMath::addImmediateNumbers):
+ (JSC::JSFastMath::subImmediateNumbers):
+ (JSC::JSFastMath::incImmediateNumber):
+ (JSC::JSFastMath::decImmediateNumber):
+ * runtime/JSNotAnObject.cpp:
+ (JSC::JSNotAnObject::toPrimitive):
+ (JSC::JSNotAnObject::getPrimitiveNumber):
+ (JSC::JSNotAnObject::put):
+ * runtime/JSNotAnObject.h:
+ (JSC::JSNotAnObject::createStructure):
+ * runtime/JSNumberCell.cpp:
+ (JSC::JSNumberCell::toPrimitive):
+ (JSC::JSNumberCell::getPrimitiveNumber):
+ (JSC::JSNumberCell::getJSNumber):
+ (JSC::jsNumberCell):
+ * runtime/JSNumberCell.h:
+ (JSC::JSNumberCell::createStructure):
+ (JSC::isNumberCell):
+ (JSC::asNumberCell):
+ (JSC::jsNumber):
+ (JSC::JSValue::isDoubleNumber):
+ (JSC::JSValue::getDoubleNumber):
+ (JSC::JSValue::isNumber):
+ (JSC::JSValue::uncheckedGetNumber):
+ (JSC::jsNaN):
+ (JSC::JSValue::toJSNumber):
+ (JSC::JSValue::getNumber):
+ (JSC::JSValue::numberToInt32):
+ (JSC::JSValue::numberToUInt32):
+ * runtime/JSObject.cpp:
+ (JSC::JSObject::mark):
+ (JSC::JSObject::put):
+ (JSC::JSObject::putWithAttributes):
+ (JSC::callDefaultValueFunction):
+ (JSC::JSObject::getPrimitiveNumber):
+ (JSC::JSObject::defaultValue):
+ (JSC::JSObject::defineGetter):
+ (JSC::JSObject::defineSetter):
+ (JSC::JSObject::lookupGetter):
+ (JSC::JSObject::lookupSetter):
+ (JSC::JSObject::hasInstance):
+ (JSC::JSObject::toNumber):
+ (JSC::JSObject::toString):
+ (JSC::JSObject::fillGetterPropertySlot):
+ * runtime/JSObject.h:
+ (JSC::JSObject::getDirect):
+ (JSC::JSObject::getDirectLocation):
+ (JSC::JSObject::offsetForLocation):
+ (JSC::JSObject::locationForOffset):
+ (JSC::JSObject::getDirectOffset):
+ (JSC::JSObject::putDirectOffset):
+ (JSC::JSObject::createStructure):
+ (JSC::asObject):
+ (JSC::JSObject::prototype):
+ (JSC::JSObject::setPrototype):
+ (JSC::JSValue::isObject):
+ (JSC::JSObject::inlineGetOwnPropertySlot):
+ (JSC::JSObject::getOwnPropertySlotForWrite):
+ (JSC::JSObject::getPropertySlot):
+ (JSC::JSObject::get):
+ (JSC::JSObject::putDirect):
+ (JSC::JSObject::putDirectWithoutTransition):
+ (JSC::JSObject::toPrimitive):
+ (JSC::JSValue::get):
+ (JSC::JSValue::put):
+ (JSC::JSObject::allocatePropertyStorageInline):
+ * runtime/JSPropertyNameIterator.cpp:
+ (JSC::JSPropertyNameIterator::toPrimitive):
+ (JSC::JSPropertyNameIterator::getPrimitiveNumber):
+ * runtime/JSPropertyNameIterator.h:
+ (JSC::JSPropertyNameIterator::create):
+ (JSC::JSPropertyNameIterator::next):
+ * runtime/JSStaticScopeObject.cpp:
+ (JSC::JSStaticScopeObject::put):
+ (JSC::JSStaticScopeObject::putWithAttributes):
+ * runtime/JSStaticScopeObject.h:
+ (JSC::JSStaticScopeObject::JSStaticScopeObject):
+ (JSC::JSStaticScopeObject::createStructure):
+ * runtime/JSString.cpp:
+ (JSC::JSString::toPrimitive):
+ (JSC::JSString::getPrimitiveNumber):
+ (JSC::JSString::getOwnPropertySlot):
+ * runtime/JSString.h:
+ (JSC::JSString::createStructure):
+ (JSC::asString):
+ (JSC::isJSString):
+ (JSC::JSValue::toThisJSString):
+ * runtime/JSValue.cpp:
+ (JSC::JSValue::toInteger):
+ (JSC::JSValue::toIntegerPreserveNaN):
+ * runtime/JSValue.h:
+ (JSC::JSValue::makeImmediate):
+ (JSC::JSValue::asValue):
+ (JSC::noValue):
+ (JSC::jsImpossibleValue):
+ (JSC::jsNull):
+ (JSC::jsUndefined):
+ (JSC::jsBoolean):
+ (JSC::operator==):
+ (JSC::operator!=):
+ (JSC::JSValue::encode):
+ (JSC::JSValue::decode):
+ (JSC::JSValue::JSValue):
+ (JSC::JSValue::operator bool):
+ (JSC::JSValue::operator==):
+ (JSC::JSValue::operator!=):
+ (JSC::JSValue::isUndefined):
+ (JSC::JSValue::isNull):
+ * runtime/JSVariableObject.h:
+ (JSC::JSVariableObject::symbolTablePut):
+ (JSC::JSVariableObject::symbolTablePutWithAttributes):
+ * runtime/JSWrapperObject.h:
+ (JSC::JSWrapperObject::internalValue):
+ (JSC::JSWrapperObject::setInternalValue):
+ * runtime/Lookup.cpp:
+ (JSC::setUpStaticFunctionSlot):
+ * runtime/Lookup.h:
+ (JSC::lookupPut):
+ * runtime/MathObject.cpp:
+ (JSC::mathProtoFuncAbs):
+ (JSC::mathProtoFuncACos):
+ (JSC::mathProtoFuncASin):
+ (JSC::mathProtoFuncATan):
+ (JSC::mathProtoFuncATan2):
+ (JSC::mathProtoFuncCeil):
+ (JSC::mathProtoFuncCos):
+ (JSC::mathProtoFuncExp):
+ (JSC::mathProtoFuncFloor):
+ (JSC::mathProtoFuncLog):
+ (JSC::mathProtoFuncMax):
+ (JSC::mathProtoFuncMin):
+ (JSC::mathProtoFuncPow):
+ (JSC::mathProtoFuncRandom):
+ (JSC::mathProtoFuncRound):
+ (JSC::mathProtoFuncSin):
+ (JSC::mathProtoFuncSqrt):
+ (JSC::mathProtoFuncTan):
+ * runtime/MathObject.h:
+ (JSC::MathObject::createStructure):
+ * runtime/NativeErrorConstructor.cpp:
+ (JSC::callNativeErrorConstructor):
+ * runtime/NumberConstructor.cpp:
+ (JSC::numberConstructorNaNValue):
+ (JSC::numberConstructorNegInfinity):
+ (JSC::numberConstructorPosInfinity):
+ (JSC::numberConstructorMaxValue):
+ (JSC::numberConstructorMinValue):
+ (JSC::callNumberConstructor):
+ * runtime/NumberConstructor.h:
+ (JSC::NumberConstructor::createStructure):
+ * runtime/NumberObject.cpp:
+ (JSC::NumberObject::getJSNumber):
+ (JSC::constructNumber):
+ * runtime/NumberObject.h:
+ * runtime/NumberPrototype.cpp:
+ (JSC::numberProtoFuncToString):
+ (JSC::numberProtoFuncToLocaleString):
+ (JSC::numberProtoFuncValueOf):
+ (JSC::numberProtoFuncToFixed):
+ (JSC::numberProtoFuncToExponential):
+ (JSC::numberProtoFuncToPrecision):
+ * runtime/ObjectConstructor.cpp:
+ (JSC::constructObject):
+ (JSC::callObjectConstructor):
+ * runtime/ObjectPrototype.cpp:
+ (JSC::objectProtoFuncValueOf):
+ (JSC::objectProtoFuncHasOwnProperty):
+ (JSC::objectProtoFuncIsPrototypeOf):
+ (JSC::objectProtoFuncDefineGetter):
+ (JSC::objectProtoFuncDefineSetter):
+ (JSC::objectProtoFuncLookupGetter):
+ (JSC::objectProtoFuncLookupSetter):
+ (JSC::objectProtoFuncPropertyIsEnumerable):
+ (JSC::objectProtoFuncToLocaleString):
+ (JSC::objectProtoFuncToString):
+ * runtime/ObjectPrototype.h:
+ * runtime/Operations.cpp:
+ (JSC::JSValue::equalSlowCase):
+ (JSC::JSValue::strictEqualSlowCase):
+ (JSC::throwOutOfMemoryError):
+ (JSC::jsAddSlowCase):
+ (JSC::jsTypeStringForValue):
+ (JSC::jsIsObjectType):
+ (JSC::jsIsFunctionType):
+ * runtime/Operations.h:
+ (JSC::JSValue::equal):
+ (JSC::JSValue::equalSlowCaseInline):
+ (JSC::JSValue::strictEqual):
+ (JSC::JSValue::strictEqualSlowCaseInline):
+ (JSC::jsLess):
+ (JSC::jsLessEq):
+ (JSC::jsAdd):
+ (JSC::countPrototypeChainEntriesAndCheckForProxies):
+ (JSC::resolveBase):
+ * runtime/PropertySlot.cpp:
+ (JSC::PropertySlot::functionGetter):
+ * runtime/PropertySlot.h:
+ (JSC::PropertySlot::PropertySlot):
+ (JSC::PropertySlot::getValue):
+ (JSC::PropertySlot::putValue):
+ (JSC::PropertySlot::setValueSlot):
+ (JSC::PropertySlot::setValue):
+ (JSC::PropertySlot::setCustom):
+ (JSC::PropertySlot::setCustomIndex):
+ (JSC::PropertySlot::slotBase):
+ (JSC::PropertySlot::setBase):
+ (JSC::PropertySlot::):
+ * runtime/Protect.h:
+ (JSC::gcProtect):
+ (JSC::gcUnprotect):
+ (JSC::ProtectedPtr::operator JSValue):
+ (JSC::ProtectedJSValue::ProtectedJSValue):
+ (JSC::ProtectedJSValue::get):
+ (JSC::ProtectedJSValue::operator JSValue):
+ (JSC::ProtectedJSValue::operator->):
+ (JSC::ProtectedJSValue::~ProtectedJSValue):
+ (JSC::ProtectedJSValue::operator=):
+ (JSC::operator==):
+ (JSC::operator!=):
+ * runtime/RegExpConstructor.cpp:
+ (JSC::RegExpConstructor::getBackref):
+ (JSC::RegExpConstructor::getLastParen):
+ (JSC::RegExpConstructor::getLeftContext):
+ (JSC::RegExpConstructor::getRightContext):
+ (JSC::regExpConstructorDollar1):
+ (JSC::regExpConstructorDollar2):
+ (JSC::regExpConstructorDollar3):
+ (JSC::regExpConstructorDollar4):
+ (JSC::regExpConstructorDollar5):
+ (JSC::regExpConstructorDollar6):
+ (JSC::regExpConstructorDollar7):
+ (JSC::regExpConstructorDollar8):
+ (JSC::regExpConstructorDollar9):
+ (JSC::regExpConstructorInput):
+ (JSC::regExpConstructorMultiline):
+ (JSC::regExpConstructorLastMatch):
+ (JSC::regExpConstructorLastParen):
+ (JSC::regExpConstructorLeftContext):
+ (JSC::regExpConstructorRightContext):
+ (JSC::RegExpConstructor::put):
+ (JSC::setRegExpConstructorInput):
+ (JSC::setRegExpConstructorMultiline):
+ (JSC::constructRegExp):
+ (JSC::callRegExpConstructor):
+ * runtime/RegExpConstructor.h:
+ (JSC::RegExpConstructor::createStructure):
+ (JSC::asRegExpConstructor):
+ * runtime/RegExpMatchesArray.h:
+ (JSC::RegExpMatchesArray::put):
+ * runtime/RegExpObject.cpp:
+ (JSC::regExpObjectGlobal):
+ (JSC::regExpObjectIgnoreCase):
+ (JSC::regExpObjectMultiline):
+ (JSC::regExpObjectSource):
+ (JSC::regExpObjectLastIndex):
+ (JSC::RegExpObject::put):
+ (JSC::setRegExpObjectLastIndex):
+ (JSC::RegExpObject::test):
+ (JSC::RegExpObject::exec):
+ (JSC::callRegExpObject):
+ * runtime/RegExpObject.h:
+ (JSC::RegExpObject::createStructure):
+ (JSC::asRegExpObject):
+ * runtime/RegExpPrototype.cpp:
+ (JSC::regExpProtoFuncTest):
+ (JSC::regExpProtoFuncExec):
+ (JSC::regExpProtoFuncCompile):
+ (JSC::regExpProtoFuncToString):
+ * runtime/StringConstructor.cpp:
+ (JSC::stringFromCharCodeSlowCase):
+ (JSC::stringFromCharCode):
+ (JSC::callStringConstructor):
+ * runtime/StringObject.cpp:
+ (JSC::StringObject::put):
+ * runtime/StringObject.h:
+ (JSC::StringObject::createStructure):
+ (JSC::asStringObject):
+ * runtime/StringObjectThatMasqueradesAsUndefined.h:
+ (JSC::StringObjectThatMasqueradesAsUndefined::createStructure):
+ * runtime/StringPrototype.cpp:
+ (JSC::stringProtoFuncReplace):
+ (JSC::stringProtoFuncToString):
+ (JSC::stringProtoFuncCharAt):
+ (JSC::stringProtoFuncCharCodeAt):
+ (JSC::stringProtoFuncConcat):
+ (JSC::stringProtoFuncIndexOf):
+ (JSC::stringProtoFuncLastIndexOf):
+ (JSC::stringProtoFuncMatch):
+ (JSC::stringProtoFuncSearch):
+ (JSC::stringProtoFuncSlice):
+ (JSC::stringProtoFuncSplit):
+ (JSC::stringProtoFuncSubstr):
+ (JSC::stringProtoFuncSubstring):
+ (JSC::stringProtoFuncToLowerCase):
+ (JSC::stringProtoFuncToUpperCase):
+ (JSC::stringProtoFuncLocaleCompare):
+ (JSC::stringProtoFuncBig):
+ (JSC::stringProtoFuncSmall):
+ (JSC::stringProtoFuncBlink):
+ (JSC::stringProtoFuncBold):
+ (JSC::stringProtoFuncFixed):
+ (JSC::stringProtoFuncItalics):
+ (JSC::stringProtoFuncStrike):
+ (JSC::stringProtoFuncSub):
+ (JSC::stringProtoFuncSup):
+ (JSC::stringProtoFuncFontcolor):
+ (JSC::stringProtoFuncFontsize):
+ (JSC::stringProtoFuncAnchor):
+ (JSC::stringProtoFuncLink):
+ * runtime/Structure.cpp:
+ (JSC::Structure::Structure):
+ (JSC::Structure::changePrototypeTransition):
+ * runtime/Structure.h:
+ (JSC::Structure::create):
+ (JSC::Structure::setPrototypeWithoutTransition):
+ (JSC::Structure::storedPrototype):
+
+2009-05-01 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Sam "That doesn't look like what I thought it looks like" Weinig.
+
+ Beefed up the JSValuePtr class and removed some non-JSValuePtr dependencies
+ on JSImmediate, in prepapration for making JSImmediate an implementation
+ detail of JSValuePtr.
+
+ SunSpider reports no change.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileFastArith_op_mod):
+ * runtime/JSGlobalObjectFunctions.cpp:
+ (JSC::globalFuncParseInt): Updated for interface changes.
+
+ * runtime/JSImmediate.h:
+ (JSC::JSValuePtr::JSValuePtr):
+ * runtime/JSValue.h:
+ (JSC::JSValuePtr::):
+ (JSC::jsImpossibleValue):
+ (JSC::jsNull):
+ (JSC::jsUndefined):
+ (JSC::jsBoolean):
+ (JSC::JSValuePtr::encode):
+ (JSC::JSValuePtr::decode):
+ (JSC::JSValuePtr::JSValuePtr):
+ (JSC::JSValuePtr::operator bool):
+ (JSC::JSValuePtr::operator==):
+ (JSC::JSValuePtr::operator!=):
+ (JSC::JSValuePtr::isUndefined):
+ (JSC::JSValuePtr::isNull): Changed jsImpossibleValue(), jsNull(),
+ jsUndefined(), and jsBoolean() to operate in terms of JSValuePtr instead
+ of JSImmediate.
+
+ * wtf/StdLibExtras.h:
+ (WTF::bitwise_cast): Fixed up for clarity.
+
+2009-04-30 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ Bug fix for rdar:/6845379. If a case-insensitive regex contains
+ a character class containing a range with an upper bound of \uFFFF
+ the parser will infinite-loop whist adding other-case characters
+ for characters in the range that do have another case.
+
+ * yarr/RegexCompiler.cpp:
+ (JSC::Yarr::CharacterClassConstructor::putRange):
+
+2009-04-30 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ OPCODE_SAMPLING without CODEBLOCK_SAMPLING is currently broken,
+ since SamplingTool::Sample::isNull() checks the m_codeBlock
+ member (which is always null without CODEBLOCK_SAMPLING).
+
+ Restructure the checks so make this work again.
+
+ * bytecode/SamplingTool.cpp:
+ (JSC::SamplingTool::doRun):
+ * bytecode/SamplingTool.h:
+ (JSC::SamplingTool::Sample::isNull):
+
+2009-04-30 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ - Concatenate final three strings in simple replace case at one go
+
+ ~0.2% SunSpider speedup
+
+ * runtime/StringPrototype.cpp:
+ (JSC::stringProtoFuncReplace): Use new replaceRange helper instead of
+ taking substrings and concatenating three strings.
+ * runtime/UString.cpp:
+ (JSC::UString::replaceRange): New helper function.
+ * runtime/UString.h:
+
+2009-04-30 Geoffrey Garen <ggaren@apple.com>
+
+ Rubber Stamped by Gavin Barraclough.
+
+ Changed JSValueEncodedAsPtr* => EncodedJSValuePtr to support a non-pointer
+ encoding for JSValuePtrs.
+
+ * API/APICast.h:
+ (toJS):
+ * bytecompiler/BytecodeGenerator.h:
+ (JSC::BytecodeGenerator::JSValueHashTraits::constructDeletedValue):
+ (JSC::BytecodeGenerator::JSValueHashTraits::isDeletedValue):
+ * interpreter/Register.h:
+ (JSC::Register::):
+ * jit/JIT.cpp:
+ (JSC::):
+ * jit/JIT.h:
+ * jit/JITCode.h:
+ (JSC::):
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::cti_op_add):
+ (JSC::JITStubs::cti_op_pre_inc):
+ (JSC::JITStubs::cti_op_get_by_id_generic):
+ (JSC::JITStubs::cti_op_get_by_id):
+ (JSC::JITStubs::cti_op_get_by_id_second):
+ (JSC::JITStubs::cti_op_get_by_id_self_fail):
+ (JSC::JITStubs::cti_op_get_by_id_proto_list):
+ (JSC::JITStubs::cti_op_get_by_id_proto_list_full):
+ (JSC::JITStubs::cti_op_get_by_id_proto_fail):
+ (JSC::JITStubs::cti_op_get_by_id_array_fail):
+ (JSC::JITStubs::cti_op_get_by_id_string_fail):
+ (JSC::JITStubs::cti_op_instanceof):
+ (JSC::JITStubs::cti_op_del_by_id):
+ (JSC::JITStubs::cti_op_mul):
+ (JSC::JITStubs::cti_op_call_NotJSFunction):
+ (JSC::JITStubs::cti_op_resolve):
+ (JSC::JITStubs::cti_op_construct_NotJSConstruct):
+ (JSC::JITStubs::cti_op_get_by_val):
+ (JSC::JITStubs::cti_op_get_by_val_string):
+ (JSC::JITStubs::cti_op_get_by_val_byte_array):
+ (JSC::JITStubs::cti_op_sub):
+ (JSC::JITStubs::cti_op_lesseq):
+ (JSC::JITStubs::cti_op_negate):
+ (JSC::JITStubs::cti_op_resolve_base):
+ (JSC::JITStubs::cti_op_resolve_skip):
+ (JSC::JITStubs::cti_op_resolve_global):
+ (JSC::JITStubs::cti_op_div):
+ (JSC::JITStubs::cti_op_pre_dec):
+ (JSC::JITStubs::cti_op_not):
+ (JSC::JITStubs::cti_op_eq):
+ (JSC::JITStubs::cti_op_lshift):
+ (JSC::JITStubs::cti_op_bitand):
+ (JSC::JITStubs::cti_op_rshift):
+ (JSC::JITStubs::cti_op_bitnot):
+ (JSC::JITStubs::cti_op_mod):
+ (JSC::JITStubs::cti_op_less):
+ (JSC::JITStubs::cti_op_neq):
+ (JSC::JITStubs::cti_op_urshift):
+ (JSC::JITStubs::cti_op_bitxor):
+ (JSC::JITStubs::cti_op_bitor):
+ (JSC::JITStubs::cti_op_call_eval):
+ (JSC::JITStubs::cti_op_throw):
+ (JSC::JITStubs::cti_op_next_pname):
+ (JSC::JITStubs::cti_op_typeof):
+ (JSC::JITStubs::cti_op_is_undefined):
+ (JSC::JITStubs::cti_op_is_boolean):
+ (JSC::JITStubs::cti_op_is_number):
+ (JSC::JITStubs::cti_op_is_string):
+ (JSC::JITStubs::cti_op_is_object):
+ (JSC::JITStubs::cti_op_is_function):
+ (JSC::JITStubs::cti_op_stricteq):
+ (JSC::JITStubs::cti_op_nstricteq):
+ (JSC::JITStubs::cti_op_to_jsnumber):
+ (JSC::JITStubs::cti_op_in):
+ (JSC::JITStubs::cti_op_del_by_val):
+ (JSC::JITStubs::cti_vm_throw):
+ * jit/JITStubs.h:
+ * runtime/JSValue.h:
+ (JSC::JSValuePtr::encode):
+ (JSC::JSValuePtr::decode):
+
+2009-04-30 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver "Abandon Ship!" Hunt.
+
+ Fix a leak in Yarr.
+
+ All Disjunctions should be recorded in RegexPattern::m_disjunctions,
+ so that they can be freed at the end of compilation - copyDisjunction
+ is failing to do so.
+
+ * yarr/RegexCompiler.cpp:
+ (JSC::Yarr::RegexPatternConstructor::copyDisjunction):
+
+2009-04-30 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Add function to CallFrame for dumping the current JS caller
+
+ Added debug only method CallFrame::dumpCaller() that provide the call location
+ of the deepest currently executing JS function.
+
+ * interpreter/CallFrame.cpp:
+ (JSC::CallFrame::dumpCaller):
+ * interpreter/CallFrame.h:
+
+2009-04-30 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ - make BaseStrings have themselves as a base, instead of nothing, to remove common branches
+
+ ~0.7% SunSpider speedup
+
+ * runtime/UString.h:
+ (JSC::UString::Rep::Rep): For the constructor without a base, set self as base instead of null.
+ (JSC::UString::Rep::baseString): Just read m_baseString - no more branching.
+
+2009-04-30 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Two quick improvements to SamplingFlags mechanism.
+
+ SamplingFlags::ScopedFlag class to provide support for automagically
+ clearing a flag as it goes out of scope, and add a little more detail
+ to the output generated by the tool.
+
+ * bytecode/SamplingTool.cpp:
+ (JSC::SamplingFlags::stop):
+ * bytecode/SamplingTool.h:
+ (JSC::SamplingFlags::ScopedFlag::ScopedFlag):
+ (JSC::SamplingFlags::ScopedFlag::~ScopedFlag):
+
+2009-04-30 Adam Roben <aroben@apple.com>
+
+ Restore build event steps that were truncated in r43082
+
+ Rubber-stamped by Steve Falkenburg.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
+ * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
+ * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops:
+ Re-copied the command lines for the build events from the pre-r43082
+ .vcproj files.
+
+ * JavaScriptCore.vcproj/jsc/jsc.vcproj: Removed an unnecessary
+ attribute.
+
+2009-04-30 Adam Roben <aroben@apple.com>
+
+ Move settings from .vcproj files to .vsprops files within the
+ JavaScriptCore directory
+
+ Moving the settings to a .vsprops file means that we will only have to
+ change a single setting to affect all configurations, instead of one
+ setting per configuration.
+
+ Reviewed by Steve Falkenburg.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj:
+ * JavaScriptCore.vcproj/jsc/jsc.vcproj:
+ * JavaScriptCore.vcproj/testapi/testapi.vcproj:
+ Moved settings from these files to the new .vsprops files. Note that
+ testapi.vcproj had a lot of overrides of default settings that were
+ the same as the defaults, which I've removed.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: Added.
+ * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops: Added.
+ * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: Added.
+ * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops: Added.
+
+2009-04-30 Dimitri Glazkov <dglazkov@chromium.org>
+
+ Reviewed by Timothy Hatcher.
+
+ https://bugs.webkit.org/show_bug.cgi?id=25470
+ Extend the cover of ENABLE_JAVASCRIPT_DEBUGGER to profiler.
+
+ * Configurations/FeatureDefines.xcconfig: Added ENABLE_JAVASCRIPT_DEBUGGER define.
+
+2009-04-30 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Alexey Proskuryakov.
+
+ - speed up string concatenation by reorganizing some simple cases
+
+ 0.7% SunSpider speedup
+
+ * runtime/UString.cpp:
+ (JSC::concatenate): Put fast case for appending a single character
+ before the empty string special cases; streamline code a bit to
+ delay computing values that are not needed in the fast path.
+
+2009-04-30 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ Add SamplingFlags mechanism.
+
+ This mechanism allows fine-grained JSC and JavaScript program aware
+ performance measurement. The mechanism provides a set of 32 flags,
+ numbered #1..#32. Flag #16 is initially set, and all other flags
+ are cleared. Flags may be set and cleared from within
+
+ Enable by setting ENABLE_SAMPLING_FLAGS to 1 in wtf/Platform.h.
+ Disabled by default, no performance impact. Flags may be modified
+ by calling SamplingFlags::setFlag() and SamplingFlags::clearFlag()
+ from within JSC implementation, or by calling setSamplingFlag() and
+ clearSamplingFlag() from JavaScript.
+
+ The flags are sampled with a frequency of 10000Hz, and the highest
+ set flag in recorded, allowing multiple events to be measured (with
+ the highest flag number representing the highest priority).
+
+ Disabled by default; no performance impact.
+
+ * JavaScriptCore.exp:
+ * bytecode/SamplingTool.cpp:
+ (JSC::SamplingFlags::sample):
+ (JSC::SamplingFlags::start):
+ (JSC::SamplingFlags::stop):
+ (JSC::SamplingThread::threadStartFunc):
+ (JSC::SamplingThread::start):
+ (JSC::SamplingThread::stop):
+ (JSC::ScopeSampleRecord::sample):
+ (JSC::SamplingTool::doRun):
+ (JSC::SamplingTool::sample):
+ (JSC::SamplingTool::start):
+ (JSC::SamplingTool::stop):
+ * bytecode/SamplingTool.h:
+ (JSC::SamplingFlags::setFlag):
+ (JSC::SamplingFlags::clearFlag):
+ (JSC::SamplingTool::SamplingTool):
+ * jsc.cpp:
+ (GlobalObject::GlobalObject):
+ (functionSetSamplingFlag):
+ (functionClearSamplingFlag):
+ (runWithScripts):
+ * wtf/Platform.h:
+
+2009-04-29 Sam Weinig <sam@webkit.org>
+
+ Another attempt to fix the windows build.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+
+2009-04-29 Sam Weinig <sam@webkit.org>
+
+ Try and fix the windows build.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+
+2009-04-29 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver "Peg-Leg" Hunt.
+
+ Coallesce input checking and reduce futzing with the index position
+ between alternatives and iterations of the main loop of a regex,
+ when run in YARR.
+
+ Consider the following regex: /foo|bar/
+
+ Prior to this patch, this will be implemented something like this pseudo-code description:
+
+ loop:
+ check_for_available_input(3) // this increments the index by 3, for the first alterantive.
+ if (available) { test "foo" }
+ decrement_index(3)
+ check_for_available_input(3) // this increments the index by 3, for the second alterantive.
+ if (available) { test "bar" }
+ decrement_index(3)
+ check_for_available_input(1) // can we loop again?
+ if (available) { goto loop }
+
+ With these changes it will look more like this:
+
+ check_for_available_input(3) // this increments the index by 3, for the first alterantive.
+ if (!available) { goto fail }
+ loop:
+ test "foo"
+ test "bar"
+ check_for_available_input(1) // can we loop again?
+ if (available) { goto loop }
+ fail:
+
+
+ This gives about a 5% gain on v8-regex, no change on Sunspider.
+
+ * yarr/RegexJIT.cpp:
+ (JSC::Yarr::RegexGenerator::TermGenerationState::linkAlternativeBacktracksTo):
+ (JSC::Yarr::RegexGenerator::generateDisjunction):
+
+2009-04-29 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Clean up ArgList to be a trivial type
+
+ Separate out old ArgList logic to handle buffering and marking arguments
+ into a distinct MarkedArgumentBuffer type. ArgList becomes a trivial
+ struct of a pointer and length.
+
+ * API/JSObjectRef.cpp:
+ (JSObjectMakeFunction):
+ (JSObjectMakeArray):
+ (JSObjectMakeDate):
+ (JSObjectMakeError):
+ (JSObjectMakeRegExp):
+ (JSObjectCallAsFunction):
+ (JSObjectCallAsConstructor):
+ * JavaScriptCore.exp:
+ * interpreter/CallFrame.h:
+ (JSC::ExecState::emptyList):
+ * runtime/ArgList.cpp:
+ (JSC::ArgList::getSlice):
+ (JSC::MarkedArgumentBuffer::markLists):
+ (JSC::MarkedArgumentBuffer::slowAppend):
+ * runtime/ArgList.h:
+ (JSC::MarkedArgumentBuffer::MarkedArgumentBuffer):
+ (JSC::MarkedArgumentBuffer::~MarkedArgumentBuffer):
+ (JSC::ArgList::ArgList):
+ (JSC::ArgList::at):
+ (JSC::ArgList::isEmpty):
+ (JSC::ArgList::size):
+ (JSC::ArgList::begin):
+ (JSC::ArgList::end):
+ * runtime/Arguments.cpp:
+ (JSC::Arguments::fillArgList):
+ * runtime/Arguments.h:
+ * runtime/ArrayPrototype.cpp:
+ (JSC::arrayProtoFuncConcat):
+ (JSC::arrayProtoFuncPush):
+ (JSC::arrayProtoFuncSort):
+ (JSC::arrayProtoFuncFilter):
+ (JSC::arrayProtoFuncMap):
+ (JSC::arrayProtoFuncEvery):
+ (JSC::arrayProtoFuncForEach):
+ (JSC::arrayProtoFuncSome):
+ (JSC::arrayProtoFuncReduce):
+ (JSC::arrayProtoFuncReduceRight):
+ * runtime/Collector.cpp:
+ (JSC::Heap::collect):
+ * runtime/Collector.h:
+ (JSC::Heap::markListSet):
+ * runtime/CommonIdentifiers.h:
+ * runtime/Error.cpp:
+ (JSC::Error::create):
+ * runtime/FunctionPrototype.cpp:
+ (JSC::functionProtoFuncApply):
+ * runtime/JSArray.cpp:
+ (JSC::JSArray::JSArray):
+ (JSC::AVLTreeAbstractorForArrayCompare::compare_key_key):
+ (JSC::JSArray::fillArgList):
+ (JSC::constructArray):
+ * runtime/JSArray.h:
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::JSGlobalData):
+ * runtime/JSGlobalData.h:
+ * runtime/JSObject.cpp:
+ (JSC::JSObject::put):
+ * runtime/StringConstructor.cpp:
+ (JSC::stringFromCharCodeSlowCase):
+ * runtime/StringPrototype.cpp:
+ (JSC::stringProtoFuncReplace):
+ (JSC::stringProtoFuncConcat):
+ (JSC::stringProtoFuncMatch):
+
+2009-04-29 Laszlo Gombos <laszlo.1.gombos@nokia.com>
+
+ Reviewed by Sam Weinig.
+
+ https://bugs.webkit.org/show_bug.cgi?id=25334
+
+ Fix Qt build when ENABLE_JIT is explicitly set to 1
+ to overrule defaults.
+
+ * JavaScriptCore.pri:
+
+2009-04-29 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Steve Falkenburg.
+
+ Crash in profiler due to incorrect assuming displayName would be a string.
+
+ Fixed by adding a type guard.
+
+ * runtime/InternalFunction.cpp:
+ (JSC::InternalFunction::displayName):
+
+2009-04-28 Geoffrey Garen <ggaren@apple.com>
+
+ Rubber stamped by Beth Dakin.
+
+ Removed scaffolding supporting dynamically converting between 32bit and
+ 64bit value representations.
+
+ * API/JSCallbackConstructor.cpp:
+ (JSC::constructJSCallback):
+ * API/JSCallbackFunction.cpp:
+ (JSC::JSCallbackFunction::call):
+ * API/JSCallbackObjectFunctions.h:
+ (JSC::::construct):
+ (JSC::::call):
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::dump):
+ * bytecode/CodeBlock.h:
+ (JSC::CodeBlock::getConstant):
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::emitEqualityOp):
+ * interpreter/CallFrame.cpp:
+ (JSC::CallFrame::thisValue):
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::callEval):
+ (JSC::Interpreter::throwException):
+ (JSC::Interpreter::createExceptionScope):
+ (JSC::Interpreter::privateExecute):
+ (JSC::Interpreter::retrieveArguments):
+ * interpreter/Register.h:
+ (JSC::Register::):
+ (JSC::Register::Register):
+ (JSC::Register::jsValue):
+ (JSC::Register::marked):
+ (JSC::Register::mark):
+ (JSC::Register::i):
+ (JSC::Register::activation):
+ (JSC::Register::arguments):
+ (JSC::Register::callFrame):
+ (JSC::Register::codeBlock):
+ (JSC::Register::function):
+ (JSC::Register::propertyNameIterator):
+ (JSC::Register::scopeChain):
+ (JSC::Register::vPC):
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::cti_op_call_NotJSFunction):
+ (JSC::JITStubs::cti_op_load_varargs):
+ (JSC::JITStubs::cti_op_call_eval):
+ * jsc.cpp:
+ (functionPrint):
+ (functionDebug):
+ (functionRun):
+ (functionLoad):
+ * runtime/ArgList.h:
+ (JSC::ArgList::at):
+ * runtime/Arguments.cpp:
+ (JSC::Arguments::copyToRegisters):
+ (JSC::Arguments::fillArgList):
+ (JSC::Arguments::getOwnPropertySlot):
+ * runtime/ArrayConstructor.cpp:
+ (JSC::constructArrayWithSizeQuirk):
+ * runtime/ArrayPrototype.cpp:
+ (JSC::arrayProtoFuncJoin):
+ (JSC::arrayProtoFuncConcat):
+ (JSC::arrayProtoFuncPush):
+ (JSC::arrayProtoFuncSlice):
+ (JSC::arrayProtoFuncSort):
+ (JSC::arrayProtoFuncSplice):
+ (JSC::arrayProtoFuncUnShift):
+ (JSC::arrayProtoFuncFilter):
+ (JSC::arrayProtoFuncMap):
+ (JSC::arrayProtoFuncEvery):
+ (JSC::arrayProtoFuncForEach):
+ (JSC::arrayProtoFuncSome):
+ (JSC::arrayProtoFuncReduce):
+ (JSC::arrayProtoFuncReduceRight):
+ (JSC::arrayProtoFuncIndexOf):
+ (JSC::arrayProtoFuncLastIndexOf):
+ * runtime/BooleanConstructor.cpp:
+ (JSC::constructBoolean):
+ (JSC::callBooleanConstructor):
+ * runtime/DateConstructor.cpp:
+ (JSC::constructDate):
+ (JSC::dateParse):
+ (JSC::dateUTC):
+ * runtime/DatePrototype.cpp:
+ (JSC::formatLocaleDate):
+ (JSC::fillStructuresUsingTimeArgs):
+ (JSC::fillStructuresUsingDateArgs):
+ (JSC::dateProtoFuncSetTime):
+ (JSC::dateProtoFuncSetYear):
+ * runtime/ErrorConstructor.cpp:
+ (JSC::constructError):
+ * runtime/FunctionConstructor.cpp:
+ (JSC::constructFunction):
+ * runtime/FunctionPrototype.cpp:
+ (JSC::functionProtoFuncApply):
+ (JSC::functionProtoFuncCall):
+ * runtime/JSArray.cpp:
+ (JSC::JSArray::JSArray):
+ (JSC::constructArray):
+ * runtime/JSArray.h:
+ * runtime/JSGlobalObjectFunctions.cpp:
+ (JSC::encode):
+ (JSC::decode):
+ (JSC::globalFuncEval):
+ (JSC::globalFuncParseInt):
+ (JSC::globalFuncParseFloat):
+ (JSC::globalFuncIsNaN):
+ (JSC::globalFuncIsFinite):
+ (JSC::globalFuncEscape):
+ (JSC::globalFuncUnescape):
+ (JSC::globalFuncJSCPrint):
+ * runtime/MathObject.cpp:
+ (JSC::mathProtoFuncAbs):
+ (JSC::mathProtoFuncACos):
+ (JSC::mathProtoFuncASin):
+ (JSC::mathProtoFuncATan):
+ (JSC::mathProtoFuncATan2):
+ (JSC::mathProtoFuncCeil):
+ (JSC::mathProtoFuncCos):
+ (JSC::mathProtoFuncExp):
+ (JSC::mathProtoFuncFloor):
+ (JSC::mathProtoFuncLog):
+ (JSC::mathProtoFuncMax):
+ (JSC::mathProtoFuncMin):
+ (JSC::mathProtoFuncPow):
+ (JSC::mathProtoFuncRound):
+ (JSC::mathProtoFuncSin):
+ (JSC::mathProtoFuncSqrt):
+ (JSC::mathProtoFuncTan):
+ * runtime/NativeErrorConstructor.cpp:
+ (JSC::NativeErrorConstructor::construct):
+ * runtime/NumberConstructor.cpp:
+ (JSC::constructWithNumberConstructor):
+ (JSC::callNumberConstructor):
+ * runtime/NumberPrototype.cpp:
+ (JSC::numberProtoFuncToString):
+ (JSC::numberProtoFuncToFixed):
+ (JSC::numberProtoFuncToExponential):
+ (JSC::numberProtoFuncToPrecision):
+ * runtime/ObjectConstructor.cpp:
+ (JSC::constructObject):
+ * runtime/ObjectPrototype.cpp:
+ (JSC::objectProtoFuncHasOwnProperty):
+ (JSC::objectProtoFuncIsPrototypeOf):
+ (JSC::objectProtoFuncDefineGetter):
+ (JSC::objectProtoFuncDefineSetter):
+ (JSC::objectProtoFuncLookupGetter):
+ (JSC::objectProtoFuncLookupSetter):
+ (JSC::objectProtoFuncPropertyIsEnumerable):
+ * runtime/PropertySlot.h:
+ (JSC::PropertySlot::getValue):
+ * runtime/RegExpConstructor.cpp:
+ (JSC::constructRegExp):
+ * runtime/RegExpObject.cpp:
+ (JSC::RegExpObject::match):
+ * runtime/RegExpPrototype.cpp:
+ (JSC::regExpProtoFuncCompile):
+ * runtime/StringConstructor.cpp:
+ (JSC::stringFromCharCodeSlowCase):
+ (JSC::stringFromCharCode):
+ (JSC::constructWithStringConstructor):
+ (JSC::callStringConstructor):
+ * runtime/StringPrototype.cpp:
+ (JSC::stringProtoFuncReplace):
+ (JSC::stringProtoFuncCharAt):
+ (JSC::stringProtoFuncCharCodeAt):
+ (JSC::stringProtoFuncConcat):
+ (JSC::stringProtoFuncIndexOf):
+ (JSC::stringProtoFuncLastIndexOf):
+ (JSC::stringProtoFuncMatch):
+ (JSC::stringProtoFuncSearch):
+ (JSC::stringProtoFuncSlice):
+ (JSC::stringProtoFuncSplit):
+ (JSC::stringProtoFuncSubstr):
+ (JSC::stringProtoFuncSubstring):
+ (JSC::stringProtoFuncLocaleCompare):
+ (JSC::stringProtoFuncFontcolor):
+ (JSC::stringProtoFuncFontsize):
+ (JSC::stringProtoFuncAnchor):
+ (JSC::stringProtoFuncLink):
+
+2009-04-28 David Kilzer <ddkilzer@apple.com>
+
+ A little more hardening for UString
+
+ Reviewed by Maciej Stachowiak.
+
+ Revised fix for <rdar://problem/5861045> in r42644.
+
+ * runtime/UString.cpp:
+ (JSC::newCapacityWithOverflowCheck): Added.
+ (JSC::concatenate): Used newCapacityWithOverflowCheck().
+ (JSC::UString::append): Ditto.
+
+2009-04-28 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Bring back r42969, this time with correct codegen
+
+ Add logic to the codegen for right shift to avoid jumping to a helper function
+ when shifting a small floating point value.
+
+ * jit/JITArithmetic.cpp:
+ (isSSE2Present):
+ (JSC::JIT::compileFastArith_op_rshift):
+ (JSC::JIT::compileFastArithSlow_op_rshift):
+
+2009-04-28 Kevin Ollivier <kevino@theolliviers.com>
+
+ wxMSW build fix. Switch JSCore build back to static.
+
+ * API/JSBase.h:
+ * config.h:
+ * jscore.bkl:
+
+2009-04-28 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (Build fix).
+
+ Roll out r42969, due to hangs in build bot.
+
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileFastArith_op_rshift):
+ (JSC::JIT::compileFastArithSlow_op_rshift):
+ (JSC::isSSE2Present):
+
+2009-04-28 Xan Lopez <xlopez@igalia.com>
+
+ Unreviewed: fix distcheck build, add (even more) missing files to list.
+
+ * GNUmakefile.am:
+
+2009-04-28 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ Improve performance of string indexing
+
+ Add a cti_get_by_val_string function to specialise indexing into a string object.
+ This gives us a slight performance win on a number of string tests.
+
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::cti_op_get_by_val):
+ (JSC::JITStubs::cti_op_get_by_val_string):
+ * jit/JITStubs.h:
+
+2009-04-28 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ Improve performance of right shifts of large or otherwise floating point values.
+
+ Add logic to the codegen for right shift to avoid jumping to a helper function
+ when shifting a small floating point value.
+
+ * jit/JITArithmetic.cpp:
+ (isSSE2Present): Moved to the head of file.
+ (JSC::JIT::compileFastArith_op_rshift):
+ (JSC::JIT::compileFastArithSlow_op_rshift):
+
+2009-04-28 Xan Lopez <xlopez@igalia.com>
+
+ Unreviewed: fix distcheck build, add (more) missing files to list.
+
+ * GNUmakefile.am:
+
+2009-04-28 Xan Lopez <xlopez@igalia.com>
+
+ Unreviewed: fix distcheck build, add missing header to file list.
+
+ * GNUmakefile.am:
+
+2009-04-28 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Maciej "Henry Morgan" Stachowiak.
+
+ Enable YARR.
+ (Again.)
+
+ * wtf/Platform.h:
+
+2009-04-27 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ Tweak a loop condition to keep GCC happy,
+ some GCCs seem to be having issues with this. :-/
+
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::breakTarget):
+ * wtf/Platform.h:
+
+2009-04-27 Adam Roben <aroben@apple.com>
+
+ Windows Debug build fix
+
+ Not sure why the buildbots weren't affected by this problem.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Let VS
+ re-order the file list, and added JavaScriptCore[_debug].def to the
+ project. This was not necessary for the fix, but made making the fix
+ easier.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+ Removed a function that no longer exists.
+
+2009-04-26 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Weinig Sam.
+
+ Fix for https://bugs.webkit.org/show_bug.cgi?id=25416
+ "Cached prototype accesses unsafely hoist property storage load above structure checks."
+
+ Do not hoist the load of the pointer to the property storage array.
+
+ No performance impact.
+
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::privateCompileGetByIdProto):
+ (JSC::JIT::privateCompileGetByIdProtoList):
+
+2009-04-26 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Geoffrey "Gaffe or energy?" Garen.
+
+ Randomize address requested by ExecutableAllocatorFixedVMPool.
+
+ * jit/ExecutableAllocatorFixedVMPool.cpp:
+ (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
+
+2009-04-26 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ Remove scons-based build system.
+
+ * JavaScriptCore.scons: Removed.
+
+2009-04-25 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (Buildfix).
+
+ Make HAVE_MADV_FREE darwin only for now
+
+ * wtf/Platform.h:
+
+2009-04-25 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Reviewed by Oliver Hunt.
+
+ Gtk build fix - check if we have MADV_FREE before using it.
+
+ * interpreter/RegisterFile.cpp:
+ (JSC::RegisterFile::releaseExcessCapacity):
+ * wtf/Platform.h:
+
+2009-04-24 Kevin Ollivier <kevino@theolliviers.com>
+
+ wx build fix. Switching JSCore from a static lib to a dynamic lib
+ to match the Apple build and fix symbol exports.
+
+ * jscore.bkl:
+
+2009-04-24 Laszlo Gombos <laszlo.1.gombos@nokia.com>
+
+ Rubber-stamped by Mark Rowe.
+
+ https://bugs.webkit.org/show_bug.cgi?id=25337
+ Move ThreadingQt.cpp under the qt directory.
+
+ * JavaScriptCore.pri:
+ * wtf/ThreadingQt.cpp: Removed.
+ * wtf/qt/ThreadingQt.cpp: Copied from JavaScriptCore/wtf/ThreadingQt.cpp.
+
+2009-04-24 Laszlo Gombos <laszlo.1.gombos@nokia.com>
+
+ Rubber-stamped by Mark Rowe.
+
+ https://bugs.webkit.org/show_bug.cgi?id=25338
+ Move ThreadingGtk.cpp under the gtk directory.
+
+ * GNUmakefile.am:
+ * wtf/ThreadingGtk.cpp: Removed.
+ * wtf/gtk/ThreadingGtk.cpp: Copied from JavaScriptCore/wtf/ThreadingGtk.cpp.
+
+2009-04-24 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Sam "Wesley" Weinig.
+
+ Improve performance to YARR interpreter.
+ (From about 3x slower than PCRE on regex-dna to about 30% slower).
+
+ * yarr/RegexCompiler.cpp:
+ (JSC::Yarr::RegexPatternConstructor::setupAlternativeOffsets):
+ * yarr/RegexInterpreter.cpp:
+ (JSC::Yarr::Interpreter::checkCharacter):
+ (JSC::Yarr::Interpreter::checkCasedCharacter):
+ (JSC::Yarr::Interpreter::backtrackPatternCharacter):
+ (JSC::Yarr::Interpreter::backtrackPatternCasedCharacter):
+ (JSC::Yarr::Interpreter::matchParentheticalAssertionBegin):
+ (JSC::Yarr::Interpreter::matchParentheticalAssertionEnd):
+ (JSC::Yarr::Interpreter::backtrackParentheticalAssertionBegin):
+ (JSC::Yarr::Interpreter::backtrackParentheticalAssertionEnd):
+ (JSC::Yarr::Interpreter::matchDisjunction):
+ (JSC::Yarr::Interpreter::interpret):
+ (JSC::Yarr::ByteCompiler::atomPatternCharacter):
+ (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternBegin):
+ (JSC::Yarr::ByteCompiler::atomParentheticalAssertionBegin):
+ (JSC::Yarr::ByteCompiler::closeAlternative):
+ (JSC::Yarr::ByteCompiler::closeBodyAlternative):
+ (JSC::Yarr::ByteCompiler::atomParenthesesEnd):
+ (JSC::Yarr::ByteCompiler::regexBegin):
+ (JSC::Yarr::ByteCompiler::regexEnd):
+ (JSC::Yarr::ByteCompiler::alterantiveBodyDisjunction):
+ (JSC::Yarr::ByteCompiler::alterantiveDisjunction):
+ (JSC::Yarr::ByteCompiler::emitDisjunction):
+ * yarr/RegexInterpreter.h:
+ (JSC::Yarr::ByteTerm::):
+ (JSC::Yarr::ByteTerm::ByteTerm):
+ (JSC::Yarr::ByteTerm::BodyAlternativeBegin):
+ (JSC::Yarr::ByteTerm::BodyAlternativeDisjunction):
+ (JSC::Yarr::ByteTerm::BodyAlternativeEnd):
+ (JSC::Yarr::ByteTerm::AlternativeBegin):
+ (JSC::Yarr::ByteTerm::AlternativeDisjunction):
+ (JSC::Yarr::ByteTerm::AlternativeEnd):
+ (JSC::Yarr::ByteTerm::SubpatternBegin):
+ (JSC::Yarr::ByteTerm::SubpatternEnd):
+ * yarr/RegexJIT.cpp:
+ (JSC::Yarr::RegexGenerator::generateParentheticalAssertion):
+ * yarr/RegexPattern.h:
+
+2009-04-24 Rob Raguet-Schofield <ragfield@gmail.com>
+
+ Rubber-stamped by Mark Rowe.
+
+ * wtf/CurrentTime.h: Fix a typo in a comment.
+
+2009-04-24 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (Build fix).
+
+ Add reinterpret_cast
+
+ * interpreter/RegisterFile.cpp:
+ (JSC::RegisterFile::releaseExcessCapacity):
+
+2009-04-23 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ <rdar://problem/6050421> JavaScript register file should remap to release physical pages accumulated during deep recursion
+
+ We now track the maximum extent of the RegisterFile, and when we reach the final
+ return from JS (so the stack portion of the registerfile becomes empty) we see
+ if that extent is greater than maxExcessCapacity. If it is we use madvise or
+ VirtualFree to release the physical pages that were backing the excess.
+
+ * interpreter/RegisterFile.cpp:
+ (JSC::RegisterFile::releaseExcessCapacity):
+ * interpreter/RegisterFile.h:
+ (JSC::RegisterFile::RegisterFile):
+ (JSC::RegisterFile::shrink):
+ (JSC::RegisterFile::grow):
+
+2009-04-23 Mark Rowe <mrowe@apple.com>
+
+ With great sadness and a heavy heart I switch us back from YARR to WREC in
+ order to restore greenness to the world once more.
+
+ * wtf/Platform.h:
+
+2009-04-23 Mark Rowe <mrowe@apple.com>
+
+ More Windows build fixage.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
+
+2009-04-23 Mark Rowe <mrowe@apple.com>
+
+ Attempt to fix the Windows build.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Remove a symbol that no longer exists.
+
+2009-04-23 Francisco Tolmasky <francisco@280north.com>
+
+ BUG 24604: WebKit profiler reports incorrect total times
+ <https://bugs.webkit.org/show_bug.cgi?id=24604>
+
+ Reviewed by Timothy Hatcher and Kevin McCullough.
+
+ * JavaScriptCore.exp:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * profiler/CallIdentifier.h:
+ (JSC::CallIdentifier::Hash::hash):
+ (JSC::CallIdentifier::Hash::equal):
+ (JSC::CallIdentifier::hash):
+ (WTF::):
+ * profiler/HeavyProfile.cpp: Removed.
+ * profiler/HeavyProfile.h: Removed.
+ * profiler/Profile.cpp: No more need for TreeProfile/HeavyProfile
+ (JSC::Profile::create):
+ * profiler/Profile.h:
+ * profiler/ProfileNode.cpp:
+ * profiler/ProfileNode.h:
+ * profiler/TreeProfile.cpp: Removed.
+ * profiler/TreeProfile.h: Removed.
+
+2009-04-23 Gavin Barraclough <barraclough@apple.com>
+
+ Not Reviewed.
+
+ Speculative Windows build fix II.
+
+ * yarr/RegexInterpreter.cpp:
+
+2009-04-23 Gavin Barraclough <barraclough@apple.com>
+
+ Not Reviewed.
+
+ Speculative Windows build fix.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * runtime/RegExp.cpp:
+
+2009-04-23 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by salty sea dogs Sam & Geoff.
+
+ Enable YARR_JIT by default (where supported), replacing WREC.
+
+ * wtf/Platform.h:
+
+2009-04-23 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Geoff "Dread Pirate Roberts" Garen.
+
+ Various small fixes to YARR JIT, in preparation for enabling it by default.
+
+ * Correctly index into the callframe when storing restart addresses for
+ nested alternatives.
+ * Allow backtracking back into matched alternatives of parentheses.
+ * Fix callframe offset calculation for parenthetical assertions.
+ * When a set of parenthese are quantified with a fixed and variable portion,
+ and the variable portion is quantified once, this should not reset the
+ pattern match on failure to match (the last match from the firxed portion
+ should be preserved).
+ * Up the pattern size limit to match PCRE's new limit.
+ * Unlclosed parentheses should be reported with the message "missing )".
+
+ * wtf/Platform.h:
+ * yarr/RegexCompiler.cpp:
+ (JSC::Yarr::RegexPatternConstructor::quantifyAtom):
+ (JSC::Yarr::RegexPatternConstructor::setupAlternativeOffsets):
+ * yarr/RegexInterpreter.cpp:
+ (JSC::Yarr::Interpreter::matchParentheses):
+ (JSC::Yarr::Interpreter::backtrackParentheses):
+ (JSC::Yarr::ByteCompiler::emitDisjunction):
+ * yarr/RegexJIT.cpp:
+ (JSC::Yarr::RegexGenerator::loadFromFrameAndJump):
+ (JSC::Yarr::RegexGenerator::generateParenthesesDisjunction):
+ (JSC::Yarr::RegexGenerator::generateParentheticalAssertion):
+ (JSC::Yarr::RegexGenerator::generateTerm):
+ (JSC::Yarr::executeRegex):
+ * yarr/RegexParser.h:
+ (JSC::Yarr::Parser::):
+ (JSC::Yarr::Parser::parseTokens):
+ (JSC::Yarr::Parser::parse):
+ * yarr/RegexPattern.h:
+ (JSC::Yarr::PatternTerm::):
+ (JSC::Yarr::PatternTerm::PatternTerm):
+
+2009-04-22 Mark Rowe <mrowe@apple.com>
+
+ Rubber-stamped by Gavin Barraclough.
+
+ Add the m_ prefix on FixedVMPoolAllocator's member variables, and fix typos in a few comments.
+
+ * jit/ExecutableAllocatorFixedVMPool.cpp:
+ (JSC::FixedVMPoolAllocator::addToFreeList):
+ (JSC::FixedVMPoolAllocator::coalesceFreeSpace):
+ (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
+ (JSC::FixedVMPoolAllocator::alloc):
+ (JSC::FixedVMPoolAllocator::free):
+ (JSC::FixedVMPoolAllocator::isWithinVMPool):
+
+2009-04-22 Mark Rowe <mrowe@apple.com>
+
+ Rubber-stamped by Gavin Barraclough.
+
+ Add some assertions to FixedVMPoolAllocator to guard against cases where we
+ attempt to free memory that didn't originate from the pool, or we attempt to
+ hand out a bogus address from alloc.
+
+ * jit/ExecutableAllocatorFixedVMPool.cpp:
+ (JSC::FixedVMPoolAllocator::release):
+ (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
+ (JSC::FixedVMPoolAllocator::alloc):
+ (JSC::FixedVMPoolAllocator::free):
+ (JSC::FixedVMPoolAllocator::isWithinVMPool):
+
+2009-04-22 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam "Blackbeard" Weinig.
+
+ Although pirates do spell the word 'generate' as 'genertate',
+ webkit developers do not. Fixertate.
+
+ * yarr/RegexJIT.cpp:
+ (JSC::Yarr::RegexGenerator::generateAssertionBOL):
+ (JSC::Yarr::RegexGenerator::generateAssertionEOL):
+ (JSC::Yarr::RegexGenerator::generateAssertionWordBoundary):
+ (JSC::Yarr::RegexGenerator::generatePatternCharacterSingle):
+ (JSC::Yarr::RegexGenerator::generatePatternCharacterPair):
+ (JSC::Yarr::RegexGenerator::generatePatternCharacterFixed):
+ (JSC::Yarr::RegexGenerator::generatePatternCharacterGreedy):
+ (JSC::Yarr::RegexGenerator::generatePatternCharacterNonGreedy):
+ (JSC::Yarr::RegexGenerator::generateCharacterClassSingle):
+ (JSC::Yarr::RegexGenerator::generateCharacterClassFixed):
+ (JSC::Yarr::RegexGenerator::generateCharacterClassGreedy):
+ (JSC::Yarr::RegexGenerator::generateCharacterClassNonGreedy):
+ (JSC::Yarr::RegexGenerator::generateTerm):
+
+2009-04-22 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Sam "Blackbeard" Weinig.
+
+ Improvements to YARR JIT. This patch expands support in three key areas:
+ * Add (temporary) support for falling back to PCRE for expressions not supported.
+ * Add support for x86_64 and Windows.
+ * Add support for singly quantified parentheses (? and ??), alternatives within
+ parentheses, and parenthetical assertions.
+
+ * runtime/RegExp.cpp:
+ (JSC::RegExp::match):
+ * yarr/RegexJIT.cpp:
+ (JSC::Yarr::RegexGenerator::storeToFrame):
+ (JSC::Yarr::RegexGenerator::storeToFrameWithPatch):
+ (JSC::Yarr::RegexGenerator::loadFromFrameAndJump):
+ (JSC::Yarr::RegexGenerator::AlternativeBacktrackRecord::AlternativeBacktrackRecord):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::resetAlternative):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::resetTerm):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::jumpToBacktrack):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::plantJumpToBacktrackIfExists):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::addBacktrackJump):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::linkAlternativeBacktracks):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::propagateBacktrackingFrom):
+ (JSC::Yarr::RegexGenerator::genertateAssertionBOL):
+ (JSC::Yarr::RegexGenerator::genertateAssertionEOL):
+ (JSC::Yarr::RegexGenerator::matchAssertionWordchar):
+ (JSC::Yarr::RegexGenerator::genertateAssertionWordBoundary):
+ (JSC::Yarr::RegexGenerator::genertatePatternCharacterSingle):
+ (JSC::Yarr::RegexGenerator::genertatePatternCharacterPair):
+ (JSC::Yarr::RegexGenerator::genertatePatternCharacterFixed):
+ (JSC::Yarr::RegexGenerator::genertatePatternCharacterGreedy):
+ (JSC::Yarr::RegexGenerator::genertatePatternCharacterNonGreedy):
+ (JSC::Yarr::RegexGenerator::genertateCharacterClassSingle):
+ (JSC::Yarr::RegexGenerator::genertateCharacterClassFixed):
+ (JSC::Yarr::RegexGenerator::genertateCharacterClassGreedy):
+ (JSC::Yarr::RegexGenerator::genertateCharacterClassNonGreedy):
+ (JSC::Yarr::RegexGenerator::generateParenthesesDisjunction):
+ (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
+ (JSC::Yarr::RegexGenerator::generateParentheticalAssertion):
+ (JSC::Yarr::RegexGenerator::generateTerm):
+ (JSC::Yarr::RegexGenerator::generateDisjunction):
+ (JSC::Yarr::RegexGenerator::generateEnter):
+ (JSC::Yarr::RegexGenerator::generateReturn):
+ (JSC::Yarr::RegexGenerator::RegexGenerator):
+ (JSC::Yarr::RegexGenerator::generate):
+ (JSC::Yarr::RegexGenerator::compile):
+ (JSC::Yarr::RegexGenerator::generationFailed):
+ (JSC::Yarr::jitCompileRegex):
+ (JSC::Yarr::executeRegex):
+ * yarr/RegexJIT.h:
+ (JSC::Yarr::RegexCodeBlock::RegexCodeBlock):
+ (JSC::Yarr::RegexCodeBlock::~RegexCodeBlock):
+
+2009-04-22 Sam Weinig <sam@webkit.org>
+
+ Rubber-stamped by Darin Adler.
+
+ Fix for <rdar://problem/6816957>
+ Turn off Geolocation by default
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2009-04-22 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (Buildfix).
+
+ * interpreter/CachedCall.h:
+
+2009-04-21 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (Build fix).
+
+ * runtime/StringPrototype.cpp:
+
+2009-04-21 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ Improve String.replace performance slightly
+
+ Apply our vm reentry caching logic to String.replace with global
+ regexes.
+
+ * runtime/StringPrototype.cpp:
+ (JSC::stringProtoFuncReplace):
+
+2009-04-21 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Cameron Zwarich and Oliver Hunt.
+
+ Re-Fixed <rdar://problem/6406045> REGRESSION: Stack overflow on PowerPC on
+ fast/workers/use-machine-stack.html (22531)
+
+ SunSpider reports no change.
+
+ Use a larger recursion limit on the main thread (because we can, and
+ there's some evidence that it may improve compatibility), and a smaller
+ recursion limit on secondary threads (because they tend to have smaller
+ stacks).
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::execute):
+ (JSC::Interpreter::prepareForRepeatCall):
+ * interpreter/Interpreter.h:
+ (JSC::): Ditto. I wrote the recursion test slightly funny, so that the
+ common case remains a simple compare to constant.
+
+ * runtime/ArrayPrototype.cpp:
+ (JSC::arrayProtoFuncToString):
+ (JSC::arrayProtoFuncToLocaleString):
+ (JSC::arrayProtoFuncJoin): Conservatively, set the array recursion limits
+ to the lower, secondary thread limit. We can do something fancier if
+ compatibility moves us, but this seems sufficient for now.
+
+2009-04-21 Geoffrey Garen <ggaren@apple.com>
+
+ Rubber-stamped by Adam Roben.
+
+ Disabled one more Mozilla JS test because it fails intermittently on Windows.
+ (See https://bugs.webkit.org/show_bug.cgi?id=25160.)
+
+ * tests/mozilla/expected.html:
+
+2009-04-21 Adam Roben <aroben@apple.com>
+
+ Rename JavaScriptCore_debug.dll to JavaScriptCore.dll in the Debug
+ configuration
+
+ This matches the naming scheme for WebKit.dll, and will be necessary
+ once Safari links against JavaScriptCore.dll. This change also causes
+ run-safari not to fail (because the launcher printed by FindSafari was
+ always looking for JavaScriptCore.dll, never
+ JavaScriptCore_debug.dll).
+
+ Part of Bug 25305: can't run safari or drt on windows
+ <https://bugs.webkit.org/show_bug.cgi?id=25305>
+
+ Reviewed by Steve Falkenburg and Sam Weinig.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * JavaScriptCore.vcproj/jsc/jsc.vcproj:
+ * JavaScriptCore.vcproj/testapi/testapi.vcproj:
+ Use $(WebKitDLLConfigSuffix) for naming JavaScriptCore.{dll,lib}.
+
+2009-04-21 Adam Roben <aroben@apple.com>
+
+ Fix JavaScriptCore build on VC++ Express
+
+ Reviewed by Steve Falkenburg and Sam Weinig.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Link
+ explicitly against gdi32.lib and oleaut32.lib.
+
+2009-04-21 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Mark Rowe.
+
+ Tiger crash fix: Put VM tags in their own header file, and fixed up the
+ #ifdefs so they're not used on Tiger.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * interpreter/RegisterFile.h:
+ (JSC::RegisterFile::RegisterFile):
+ * jit/ExecutableAllocatorFixedVMPool.cpp:
+ (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
+ * jit/ExecutableAllocatorPosix.cpp:
+ (JSC::ExecutablePool::systemAlloc):
+ * runtime/Collector.cpp:
+ (JSC::allocateBlock):
+ * wtf/VMTags.h: Added.
+
+2009-04-20 Steve Falkenburg <sfalken@apple.com>
+
+ More Windows build fixes.
+
+ * JavaScriptCore.vcproj/JavaScriptCore.make: Copy DLLs, PDBs.
+ * JavaScriptCore.vcproj/JavaScriptCore.resources: Added.
+ * JavaScriptCore.vcproj/JavaScriptCore.resources/Info.plist: Added.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.rc: Added.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Add version stamping, resource copying.
+
+2009-04-20 Steve Falkenburg <sfalken@apple.com>
+
+ Separate JavaScriptCore.dll from WebKit.dll.
+ Slight performance improvement or no change on benchmarks.
+
+ Allows us to break a circular dependency between CFNetwork and WebKit on Windows,
+ and simplifies standalone JavaScriptCore builds.
+
+ Reviewed by Oliver Hunt.
+
+ * API/JSBase.h: Export symbols with JS_EXPORT when using MSVC.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj: Build JavaScriptCore as a DLL instead of a static library.
+ * config.h: Specify __declspec(dllexport/dllimport) appropriately when exporting data.
+ * runtime/InternalFunction.h: Specify JS_EXPORTDATA on exported data.
+ * runtime/JSArray.h: Specify JS_EXPORTDATA on exported data.
+ * runtime/JSFunction.h: Specify JS_EXPORTDATA on exported data.
+ * runtime/StringObject.h: Specify JS_EXPORTDATA on exported data.
+ * runtime/UString.h: Specify JS_EXPORTDATA on exported data.
+
+2009-04-20 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Kevin McCullough.
+
+ Always tag mmaped memory on darwin and clean up #defines
+ now that they are a little bigger.
+
+ * interpreter/RegisterFile.h:
+ (JSC::RegisterFile::RegisterFile):
+ * jit/ExecutableAllocatorFixedVMPool.cpp:
+ (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
+ * jit/ExecutableAllocatorPosix.cpp:
+ (JSC::ExecutablePool::systemAlloc):
+ * runtime/Collector.cpp:
+ (JSC::allocateBlock):
+
+2009-04-20 Sam Weinig <sam@webkit.org>
+
+ Rubber-stamped by Tim Hatcher.
+
+ Add licenses for xcconfig files.
+
+ * Configurations/Base.xcconfig:
+ * Configurations/DebugRelease.xcconfig:
+ * Configurations/FeatureDefines.xcconfig:
+ * Configurations/JavaScriptCore.xcconfig:
+ * Configurations/Version.xcconfig:
+
+2009-04-20 Ariya Hidayat <ariya.hidayat@nokia.com>
+
+ Build fix for Qt port (after r42646). Not reviewed.
+
+ * wtf/unicode/qt4/UnicodeQt4.h: Added U16_PREV.
+
+2009-04-19 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Darin Adler.
+
+ Better fix for JSStringCreateWithCFString hardening.
+
+ * API/JSStringRefCF.cpp:
+ (JSStringCreateWithCFString):
+
+2009-04-19 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Dan Bernstein.
+
+ Fix for <rdar://problem/5860954>
+ Harden JSStringCreateWithCFString against malformed CFStringRefs.
+
+ * API/JSStringRefCF.cpp:
+ (JSStringCreateWithCFString):
+
+2009-04-19 David Kilzer <ddkilzer@apple.com>
+
+ Make FEATURE_DEFINES completely dynamic
+
+ Reviewed by Darin Adler.
+
+ Make FEATURE_DEFINES depend on individual ENABLE_FEATURE_NAME
+ variables for each feature, making it possible to remove all
+ knowledge of FEATURE_DEFINES from build-webkit.
+
+ * Configurations/FeatureDefines.xcconfig: Extract a variable
+ from FEATURE_DEFINES for each feature setting.
+
+2009-04-18 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Dan Bernstein.
+
+ Fix typo. s/VM_MEMORY_JAVASCRIPT_JIT_REGISTER_FILE/VM_MEMORY_JAVASCRIPT_CORE/
+
+ * runtime/Collector.cpp:
+ (JSC::allocateBlock): Fix bozo typo.
+
+2009-04-18 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Anders Carlsson.
+
+ Fix for <rdar://problem/6801555> Tag JavaScript memory on SnowLeopard
+
+ * interpreter/RegisterFile.h:
+ (JSC::RegisterFile::RegisterFile):
+ * jit/ExecutableAllocatorFixedVMPool.cpp:
+ (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
+ * jit/ExecutableAllocatorPosix.cpp:
+ (JSC::ExecutablePool::systemAlloc):
+ * runtime/Collector.cpp:
+ (JSC::allocateBlock):
+
+2009-04-18 Drew Wilson <amw@apple.com>
+
+ <rdar://problem/6781407> VisiblePosition.characterAfter should return UChar32
+
+ Reviewed by Dan Bernstein.
+
+ * wtf/unicode/icu/UnicodeIcu.h:
+ (WTF::Unicode::hasLineBreakingPropertyComplexContextOrIdeographic): Added.
+
+2009-04-18 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Mark Rowe.
+
+ Fix for <rdar://problem/5861045>
+ A little bit of hardening for UString.
+
+ * runtime/UString.cpp:
+ (JSC::concatenate):
+ (JSC::UString::append):
+
+2009-04-18 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Mark Rowe and Dan Bernstein.
+
+ Fix for <rdar://problem/5861188>
+ A little bit of hardening for Vector.
+
+ * wtf/Vector.h:
+ (WTF::Vector<T, inlineCapacity>::append):
+ (WTF::Vector<T, inlineCapacity>::insert):
+
+2009-04-17 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ On x86_64, make all JIT-code allocations from a new heap, managed
+ by FixedVMPoolAllocator. This class allocates a single large (2Gb)
+ pool of virtual memory from which all further allocations take place.
+ Since all JIT code is allocated from this pool, we can continue to
+ safely assume (as is already asserted) that it will always be possible
+ to link any JIT-code to JIT-code jumps and calls.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ Add new file.
+ * jit/ExecutableAllocatorFixedVMPool.cpp: Added.
+ (JSC::FreeListEntry::FreeListEntry):
+ (JSC::AVLTreeAbstractorForFreeList::get_less):
+ (JSC::AVLTreeAbstractorForFreeList::set_less):
+ (JSC::AVLTreeAbstractorForFreeList::get_greater):
+ (JSC::AVLTreeAbstractorForFreeList::set_greater):
+ (JSC::AVLTreeAbstractorForFreeList::get_balance_factor):
+ (JSC::AVLTreeAbstractorForFreeList::set_balance_factor):
+ (JSC::AVLTreeAbstractorForFreeList::null):
+ (JSC::AVLTreeAbstractorForFreeList::compare_key_key):
+ (JSC::AVLTreeAbstractorForFreeList::compare_key_node):
+ (JSC::AVLTreeAbstractorForFreeList::compare_node_node):
+ (JSC::sortFreeListEntriesByPointer):
+ (JSC::sortCommonSizedAllocations):
+ (JSC::FixedVMPoolAllocator::release):
+ (JSC::FixedVMPoolAllocator::reuse):
+ (JSC::FixedVMPoolAllocator::addToFreeList):
+ (JSC::FixedVMPoolAllocator::coalesceFreeSpace):
+ (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
+ (JSC::FixedVMPoolAllocator::alloc):
+ (JSC::FixedVMPoolAllocator::free):
+ (JSC::ExecutableAllocator::intializePageSize):
+ (JSC::ExecutablePool::systemAlloc):
+ (JSC::ExecutablePool::systemRelease):
+ The new 2Gb heap class!
+ * jit/ExecutableAllocatorPosix.cpp:
+ Disable use of this implementation on x86_64.
+ * wtf/AVLTree.h:
+ Add missing variable initialization.
+ (WTF::::remove):
+
+2009-04-17 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Fix bug where the VM reentry cache would not correctly unroll the cached callframe
+
+ Fix a check that was intended to mark a cached call as invalid when the callframe could
+ not be constructed. Instead it was just checking that there was a place to put the
+ exception. This eventually results in a non-recoverable RegisterFile starvation.
+
+ * interpreter/CachedCall.h:
+ (JSC::CachedCall::CachedCall):
+ (JSC::CachedCall::call): add assertion to ensure we don't use a bad callframe
+
+2009-04-17 David Kilzer <ddkilzer@apple.com>
+
+ Simplify FEATURE_DEFINES definition
+
+ Reviewed by Darin Adler.
+
+ This moves FEATURE_DEFINES and its related ENABLE_FEATURE_NAME
+ variables to their own FeatureDefines.xcconfig file. It also
+ extracts a new ENABLE_GEOLOCATION variable so that
+ FEATURE_DEFINES only needs to be defined once.
+
+ * Configurations/FeatureDefines.xcconfig: Added.
+ * Configurations/JavaScriptCore.xcconfig: Removed definition of
+ ENABLE_SVG_DOM_OBJC_BINDINGS and FEATURE_DEFINES. Added include
+ of FeatureDefines.xcconfig.
+ * JavaScriptCore.xcodeproj/project.pbxproj: Added
+ FeatureDefines.xcconfig file.
+
+2009-04-08 Mihnea Ovidenie <mihnea@adobe.com>
+
+ Reviewed by Oliver Hunt.
+
+ Bug 25027: JavaScript parseInt wrong on negative numbers
+ <https://bugs.webkit.org/show_bug.cgi?id=25027>
+
+ When dealing with negative numbers, parseInt should use ceil instead of floor.
+
+ * runtime/JSGlobalObjectFunctions.cpp:
+ (JSC::globalFuncParseInt):
+
+2009-04-16 Stephanie Lewis <slewis@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ <rdar://problem/6744652> 32-bit to 64-bit: Javascript hash tables double in size
+
+ Remove perfect hash optimization which removes 1 MB of overhead on 32-bit and almost 2 MB on 64-bit. Removing the optimization was not a regression on SunSpider and the acid 3 test still passes.
+
+ * create_hash_table:
+ * runtime/Lookup.cpp:
+ (JSC::HashTable::createTable):
+ (JSC::HashTable::deleteTable):
+ * runtime/Lookup.h:
+ (JSC::HashEntry::initialize):
+ (JSC::HashEntry::next):
+ (JSC::HashTable::entry):
+ * runtime/Structure.cpp:
+ (JSC::Structure::getEnumerableNamesFromClassInfoTable):
+
+2009-04-16 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Fix subtle error in optimised VM reentry in Array.sort
+
+ Basically to ensure we don't accidentally invalidate the cached callframe
+ we should be using the cached callframe rather than our own exec state.
+ While the old behaviour was wrong i have been unable to actually create a
+ test case where anything actually ends up going wrong.
+
+ * interpreter/CachedCall.h:
+ (JSC::CachedCall::newCallFrame):
+ * runtime/JSArray.cpp:
+ (JSC::AVLTreeAbstractorForArrayCompare::compare_key_key):
+
+2009-04-16 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Optimise op_resolve_base
+
+ If we can statically find a property we are trying to resolve
+ the base of, the base is guaranteed to be the global object.
+
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::emitResolveBase):
+
+2009-04-16 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Improve performance of read-write-modify operators
+
+ Implement cross scope optimisation for read-write-modify
+ operators, to avoid unnecessary calls to property resolve
+ helper functions.
+
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::BytecodeGenerator):
+ (JSC::BytecodeGenerator::emitLoadGlobalObject):
+ (JSC::BytecodeGenerator::emitResolveWithBase):
+ * bytecompiler/BytecodeGenerator.h:
+
+2009-04-16 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Improve performance of remaining array enumeration functions
+
+ Make use of function entry cache for remaining Array enumeration functions.
+
+ * runtime/ArrayPrototype.cpp:
+ (JSC::arrayProtoFuncMap):
+ (JSC::arrayProtoFuncEvery):
+ (JSC::arrayProtoFuncForEach):
+ (JSC::arrayProtoFuncSome):
+
+2009-04-15 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Improve performance of Array.sort
+
+ Cache the VM entry for Array.sort when using a JS comparison function.
+
+ * runtime/JSArray.cpp:
+ (JSC::AVLTreeAbstractorForArrayCompare::compare_key_key):
+ (JSC::JSArray::sort):
+
+2009-04-15 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Bug 25229: Need support for Array.prototype.reduceRight
+ <https://bugs.webkit.org/show_bug.cgi?id=25229>
+
+ Implement Array.reduceRight
+
+ * runtime/ArrayPrototype.cpp:
+ (JSC::arrayProtoFuncReduceRight):
+
+2009-04-15 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Bug 25227: Array.filter triggers an assertion when the target array shrinks while being filtered
+ <https://bugs.webkit.org/show_bug.cgi?id=25227>
+
+ We correct this simply by making the fast array path fall back on the slow path if
+ we ever discover the fast access is unsafe.
+
+ * runtime/ArrayPrototype.cpp:
+ (JSC::arrayProtoFuncFilter):
+
+2009-04-13 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Bug 25159: Support Array.prototype.reduce
+ <https://bugs.webkit.org/show_bug.cgi?id=25159>
+
+ Implement Array.prototype.reduce
+
+ * runtime/ArrayPrototype.cpp:
+ (JSC::arrayProtoFuncReduce):
+
+2009-04-15 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (Build fix).
+
+ Move CallFrameClosure from inside the Interpreter class to its own file.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * interpreter/CachedCall.h:
+ * interpreter/CallFrameClosure.h: Copied from JavaScriptCore/yarr/RegexJIT.h.
+ (JSC::CallFrameClosure::setArgument):
+ (JSC::CallFrameClosure::resetCallFrame):
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::prepareForRepeatCall):
+ * interpreter/Interpreter.h:
+
+2009-04-14 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Cameron Zwarich.
+
+ Bug 25202: Improve performance of repeated callbacks into the VM
+
+ Add the concept of a CachedCall to native code for use in Array
+ prototype and similar functions where a single callback function
+ is called repeatedly with the same number of arguments.
+
+ Used Array.prototype.filter as the test function and got a 50% win
+ over a naive non-caching specialised version. This makes the native
+ implementation of Array.prototype.filter faster than the JS one once
+ more.
+
+ * JavaScriptCore.vcproj/JavaScriptCore.sln:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * interpreter/CachedCall.h: Added.
+ (JSC::CachedCall::CachedCall):
+ (JSC::CachedCall::call):
+ (JSC::CachedCall::setThis):
+ (JSC::CachedCall::setArgument):
+ (JSC::CachedCall::~CachedCall):
+ CachedCall is a wrapper that automates the calling and teardown
+ for a CallFrameClosure
+ * interpreter/CallFrame.h:
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::prepareForRepeatCall):
+ Create the basic entry closure for a function
+ (JSC::Interpreter::execute):
+ A new ::execute method to enter the interpreter from a closure
+ (JSC::Interpreter::endRepeatCall):
+ Clear the entry closure
+ * interpreter/Interpreter.h:
+ (JSC::Interpreter::CallFrameClosure::setArgument):
+ (JSC::Interpreter::CallFrameClosure::resetCallFrame):
+ Helper functions to simplify setting up the closure's callframe
+ * runtime/ArrayPrototype.cpp:
+ (JSC::arrayProtoFuncFilter):
+
+2009-04-14 Xan Lopez <xlopez@igalia.com>
+
+ Fix the build.
+
+ Add the yarr headers (and only the headers) to the build, so that
+ RegExp.cpp can compile. The headers are ifdefed out with yarr
+ disabled, so we don't need anything else for now.
+
+ * GNUmakefile.am:
+
+2009-04-14 Adam Roben <aroben@apple.com>
+
+ Remove support for profile-guided optimization on Windows
+
+ Rubber-stamped by Steve Falkenburg.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Removed
+ the Release_PGO configuration. Also let VS re-order the source files
+ list.
+
+2009-04-14 Xan Lopez <xlopez@igalia.com>
+
+ Unreviewed build fix.
+
+ * GNUmakefile.am:
+
+2009-04-14 Jan Michael Alonzo <jmalonzo@webkit.org>
+
+ Gtk build fix when building minidom. Not reviewed.
+
+ Use C-style comment instead of C++ style since autotools builds
+ minidom using gcc and not g++.
+
+ * wtf/Platform.h:
+
+2009-04-14 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by NOBODY - speculative build fix.
+
+ * runtime/RegExp.h:
+
+2009-04-13 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Cap'n Geoff Garen.
+
+ Yarr!
+ (Yet another regex runtime).
+
+ Currently disabled by default since the interpreter, whilst awesomely
+ functional, has not been optimized and is likely slower than PCRE, and
+ the JIT, whilst faster than WREC, is presently incomplete and does not
+ fallback to using an interpreter for the cases it cannot handle.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * assembler/MacroAssemblerX86Common.h:
+ (JSC::MacroAssemblerX86Common::move):
+ (JSC::MacroAssemblerX86Common::swap):
+ (JSC::MacroAssemblerX86Common::signExtend32ToPtr):
+ (JSC::MacroAssemblerX86Common::zeroExtend32ToPtr):
+ (JSC::MacroAssemblerX86Common::branch32):
+ (JSC::MacroAssemblerX86Common::branch16):
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::cmpw_im):
+ (JSC::X86Assembler::testw_rr):
+ (JSC::X86Assembler::X86InstructionFormatter::immediate16):
+ * runtime/RegExp.cpp:
+ (JSC::RegExp::RegExp):
+ (JSC::RegExp::~RegExp):
+ (JSC::RegExp::create):
+ (JSC::RegExp::compile):
+ (JSC::RegExp::match):
+ * runtime/RegExp.h:
+ * wtf/Platform.h:
+ * yarr: Added.
+ * yarr/RegexCompiler.cpp: Added.
+ (JSC::Yarr::CharacterClassConstructor::CharacterClassConstructor):
+ (JSC::Yarr::CharacterClassConstructor::reset):
+ (JSC::Yarr::CharacterClassConstructor::append):
+ (JSC::Yarr::CharacterClassConstructor::putChar):
+ (JSC::Yarr::CharacterClassConstructor::isUnicodeUpper):
+ (JSC::Yarr::CharacterClassConstructor::isUnicodeLower):
+ (JSC::Yarr::CharacterClassConstructor::putRange):
+ (JSC::Yarr::CharacterClassConstructor::charClass):
+ (JSC::Yarr::CharacterClassConstructor::addSorted):
+ (JSC::Yarr::CharacterClassConstructor::addSortedRange):
+ (JSC::Yarr::newlineCreate):
+ (JSC::Yarr::digitsCreate):
+ (JSC::Yarr::spacesCreate):
+ (JSC::Yarr::wordcharCreate):
+ (JSC::Yarr::nondigitsCreate):
+ (JSC::Yarr::nonspacesCreate):
+ (JSC::Yarr::nonwordcharCreate):
+ (JSC::Yarr::RegexPatternConstructor::RegexPatternConstructor):
+ (JSC::Yarr::RegexPatternConstructor::~RegexPatternConstructor):
+ (JSC::Yarr::RegexPatternConstructor::reset):
+ (JSC::Yarr::RegexPatternConstructor::assertionBOL):
+ (JSC::Yarr::RegexPatternConstructor::assertionEOL):
+ (JSC::Yarr::RegexPatternConstructor::assertionWordBoundary):
+ (JSC::Yarr::RegexPatternConstructor::atomPatternCharacter):
+ (JSC::Yarr::RegexPatternConstructor::atomBuiltInCharacterClass):
+ (JSC::Yarr::RegexPatternConstructor::atomCharacterClassBegin):
+ (JSC::Yarr::RegexPatternConstructor::atomCharacterClassAtom):
+ (JSC::Yarr::RegexPatternConstructor::atomCharacterClassRange):
+ (JSC::Yarr::RegexPatternConstructor::atomCharacterClassBuiltIn):
+ (JSC::Yarr::RegexPatternConstructor::atomCharacterClassEnd):
+ (JSC::Yarr::RegexPatternConstructor::atomParenthesesSubpatternBegin):
+ (JSC::Yarr::RegexPatternConstructor::atomParentheticalAssertionBegin):
+ (JSC::Yarr::RegexPatternConstructor::atomParenthesesEnd):
+ (JSC::Yarr::RegexPatternConstructor::atomBackReference):
+ (JSC::Yarr::RegexPatternConstructor::copyDisjunction):
+ (JSC::Yarr::RegexPatternConstructor::copyTerm):
+ (JSC::Yarr::RegexPatternConstructor::quantifyAtom):
+ (JSC::Yarr::RegexPatternConstructor::disjunction):
+ (JSC::Yarr::RegexPatternConstructor::regexBegin):
+ (JSC::Yarr::RegexPatternConstructor::regexEnd):
+ (JSC::Yarr::RegexPatternConstructor::regexError):
+ (JSC::Yarr::RegexPatternConstructor::setupAlternativeOffsets):
+ (JSC::Yarr::RegexPatternConstructor::setupDisjunctionOffsets):
+ (JSC::Yarr::RegexPatternConstructor::setupOffsets):
+ (JSC::Yarr::compileRegex):
+ * yarr/RegexCompiler.h: Added.
+ * yarr/RegexInterpreter.cpp: Added.
+ (JSC::Yarr::Interpreter::appendParenthesesDisjunctionContext):
+ (JSC::Yarr::Interpreter::popParenthesesDisjunctionContext):
+ (JSC::Yarr::Interpreter::DisjunctionContext::DisjunctionContext):
+ (JSC::Yarr::Interpreter::DisjunctionContext::operator new):
+ (JSC::Yarr::Interpreter::allocDisjunctionContext):
+ (JSC::Yarr::Interpreter::freeDisjunctionContext):
+ (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::ParenthesesDisjunctionContext):
+ (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::operator new):
+ (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::restoreOutput):
+ (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::getDisjunctionContext):
+ (JSC::Yarr::Interpreter::allocParenthesesDisjunctionContext):
+ (JSC::Yarr::Interpreter::freeParenthesesDisjunctionContext):
+ (JSC::Yarr::Interpreter::InputStream::InputStream):
+ (JSC::Yarr::Interpreter::InputStream::next):
+ (JSC::Yarr::Interpreter::InputStream::rewind):
+ (JSC::Yarr::Interpreter::InputStream::read):
+ (JSC::Yarr::Interpreter::InputStream::readChecked):
+ (JSC::Yarr::Interpreter::InputStream::reread):
+ (JSC::Yarr::Interpreter::InputStream::prev):
+ (JSC::Yarr::Interpreter::InputStream::getPos):
+ (JSC::Yarr::Interpreter::InputStream::setPos):
+ (JSC::Yarr::Interpreter::InputStream::atStart):
+ (JSC::Yarr::Interpreter::InputStream::atEnd):
+ (JSC::Yarr::Interpreter::InputStream::checkInput):
+ (JSC::Yarr::Interpreter::InputStream::uncheckInput):
+ (JSC::Yarr::Interpreter::testCharacterClass):
+ (JSC::Yarr::Interpreter::tryConsumeCharacter):
+ (JSC::Yarr::Interpreter::checkCharacter):
+ (JSC::Yarr::Interpreter::tryConsumeCharacterClass):
+ (JSC::Yarr::Interpreter::checkCharacterClass):
+ (JSC::Yarr::Interpreter::tryConsumeBackReference):
+ (JSC::Yarr::Interpreter::matchAssertionBOL):
+ (JSC::Yarr::Interpreter::matchAssertionEOL):
+ (JSC::Yarr::Interpreter::matchAssertionWordBoundary):
+ (JSC::Yarr::Interpreter::matchPatternCharacter):
+ (JSC::Yarr::Interpreter::backtrackPatternCharacter):
+ (JSC::Yarr::Interpreter::matchCharacterClass):
+ (JSC::Yarr::Interpreter::backtrackCharacterClass):
+ (JSC::Yarr::Interpreter::matchBackReference):
+ (JSC::Yarr::Interpreter::backtrackBackReference):
+ (JSC::Yarr::Interpreter::recordParenthesesMatch):
+ (JSC::Yarr::Interpreter::resetMatches):
+ (JSC::Yarr::Interpreter::resetAssertionMatches):
+ (JSC::Yarr::Interpreter::parenthesesDoBacktrack):
+ (JSC::Yarr::Interpreter::matchParenthesesOnceBegin):
+ (JSC::Yarr::Interpreter::matchParenthesesOnceEnd):
+ (JSC::Yarr::Interpreter::backtrackParenthesesOnceBegin):
+ (JSC::Yarr::Interpreter::backtrackParenthesesOnceEnd):
+ (JSC::Yarr::Interpreter::matchParentheticalAssertionOnceBegin):
+ (JSC::Yarr::Interpreter::matchParentheticalAssertionOnceEnd):
+ (JSC::Yarr::Interpreter::backtrackParentheticalAssertionOnceBegin):
+ (JSC::Yarr::Interpreter::backtrackParentheticalAssertionOnceEnd):
+ (JSC::Yarr::Interpreter::matchParentheses):
+ (JSC::Yarr::Interpreter::backtrackParentheses):
+ (JSC::Yarr::Interpreter::matchTerm):
+ (JSC::Yarr::Interpreter::backtrackTerm):
+ (JSC::Yarr::Interpreter::matchAlternative):
+ (JSC::Yarr::Interpreter::matchDisjunction):
+ (JSC::Yarr::Interpreter::matchNonZeroDisjunction):
+ (JSC::Yarr::Interpreter::interpret):
+ (JSC::Yarr::Interpreter::Interpreter):
+ (JSC::Yarr::ByteCompiler::ParenthesesStackEntry::ParenthesesStackEntry):
+ (JSC::Yarr::ByteCompiler::ByteCompiler):
+ (JSC::Yarr::ByteCompiler::compile):
+ (JSC::Yarr::ByteCompiler::checkInput):
+ (JSC::Yarr::ByteCompiler::assertionBOL):
+ (JSC::Yarr::ByteCompiler::assertionEOL):
+ (JSC::Yarr::ByteCompiler::assertionWordBoundary):
+ (JSC::Yarr::ByteCompiler::atomPatternCharacter):
+ (JSC::Yarr::ByteCompiler::atomCharacterClass):
+ (JSC::Yarr::ByteCompiler::atomBackReference):
+ (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternBegin):
+ (JSC::Yarr::ByteCompiler::atomParentheticalAssertionBegin):
+ (JSC::Yarr::ByteCompiler::popParenthesesStack):
+ (JSC::Yarr::ByteCompiler::dumpDisjunction):
+ (JSC::Yarr::ByteCompiler::closeAlternative):
+ (JSC::Yarr::ByteCompiler::atomParenthesesEnd):
+ (JSC::Yarr::ByteCompiler::regexBegin):
+ (JSC::Yarr::ByteCompiler::regexEnd):
+ (JSC::Yarr::ByteCompiler::alterantiveDisjunction):
+ (JSC::Yarr::ByteCompiler::emitDisjunction):
+ (JSC::Yarr::byteCompileRegex):
+ (JSC::Yarr::interpretRegex):
+ * yarr/RegexInterpreter.h: Added.
+ (JSC::Yarr::ByteTerm::):
+ (JSC::Yarr::ByteTerm::ByteTerm):
+ (JSC::Yarr::ByteTerm::BOL):
+ (JSC::Yarr::ByteTerm::CheckInput):
+ (JSC::Yarr::ByteTerm::EOL):
+ (JSC::Yarr::ByteTerm::WordBoundary):
+ (JSC::Yarr::ByteTerm::BackReference):
+ (JSC::Yarr::ByteTerm::AlternativeBegin):
+ (JSC::Yarr::ByteTerm::AlternativeDisjunction):
+ (JSC::Yarr::ByteTerm::AlternativeEnd):
+ (JSC::Yarr::ByteTerm::PatternEnd):
+ (JSC::Yarr::ByteTerm::invert):
+ (JSC::Yarr::ByteTerm::capture):
+ (JSC::Yarr::ByteDisjunction::ByteDisjunction):
+ (JSC::Yarr::BytecodePattern::BytecodePattern):
+ (JSC::Yarr::BytecodePattern::~BytecodePattern):
+ * yarr/RegexJIT.cpp: Added.
+ (JSC::Yarr::RegexGenerator::optimizeAlternative):
+ (JSC::Yarr::RegexGenerator::matchCharacterClassRange):
+ (JSC::Yarr::RegexGenerator::matchCharacterClass):
+ (JSC::Yarr::RegexGenerator::jumpIfNoAvailableInput):
+ (JSC::Yarr::RegexGenerator::jumpIfAvailableInput):
+ (JSC::Yarr::RegexGenerator::checkInput):
+ (JSC::Yarr::RegexGenerator::atEndOfInput):
+ (JSC::Yarr::RegexGenerator::notAtEndOfInput):
+ (JSC::Yarr::RegexGenerator::jumpIfCharEquals):
+ (JSC::Yarr::RegexGenerator::jumpIfCharNotEquals):
+ (JSC::Yarr::RegexGenerator::readCharacter):
+ (JSC::Yarr::RegexGenerator::storeToFrame):
+ (JSC::Yarr::RegexGenerator::loadFromFrame):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::TermGenerationState):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::resetAlternative):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::alternativeValid):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::nextAlternative):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::alternative):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::resetTerm):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::termValid):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::nextTerm):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::term):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::lookaheadTerm):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::isSinglePatternCharacterLookaheadTerm):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::inputOffset):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::jumpToBacktrack):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::setBacktrackGenerated):
+ (JSC::Yarr::RegexGenerator::jumpToBacktrackCheckEmitPending):
+ (JSC::Yarr::RegexGenerator::genertateAssertionBOL):
+ (JSC::Yarr::RegexGenerator::genertateAssertionEOL):
+ (JSC::Yarr::RegexGenerator::matchAssertionWordchar):
+ (JSC::Yarr::RegexGenerator::genertateAssertionWordBoundary):
+ (JSC::Yarr::RegexGenerator::genertatePatternCharacterSingle):
+ (JSC::Yarr::RegexGenerator::genertatePatternCharacterPair):
+ (JSC::Yarr::RegexGenerator::genertatePatternCharacterFixed):
+ (JSC::Yarr::RegexGenerator::genertatePatternCharacterGreedy):
+ (JSC::Yarr::RegexGenerator::genertatePatternCharacterNonGreedy):
+ (JSC::Yarr::RegexGenerator::genertateCharacterClassSingle):
+ (JSC::Yarr::RegexGenerator::genertateCharacterClassFixed):
+ (JSC::Yarr::RegexGenerator::genertateCharacterClassGreedy):
+ (JSC::Yarr::RegexGenerator::genertateCharacterClassNonGreedy):
+ (JSC::Yarr::RegexGenerator::generateParenthesesSingleDisjunctionOneAlternative):
+ (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
+ (JSC::Yarr::RegexGenerator::generateTerm):
+ (JSC::Yarr::RegexGenerator::generateDisjunction):
+ (JSC::Yarr::RegexGenerator::RegexGenerator):
+ (JSC::Yarr::RegexGenerator::generate):
+ (JSC::Yarr::jitCompileRegex):
+ (JSC::Yarr::executeRegex):
+ * yarr/RegexJIT.h: Added.
+ (JSC::Yarr::RegexCodeBlock::RegexCodeBlock):
+ * yarr/RegexParser.h: Added.
+ (JSC::Yarr::):
+ (JSC::Yarr::Parser::):
+ (JSC::Yarr::Parser::CharacterClassParserDelegate::CharacterClassParserDelegate):
+ (JSC::Yarr::Parser::CharacterClassParserDelegate::begin):
+ (JSC::Yarr::Parser::CharacterClassParserDelegate::atomPatternCharacterUnescaped):
+ (JSC::Yarr::Parser::CharacterClassParserDelegate::atomPatternCharacter):
+ (JSC::Yarr::Parser::CharacterClassParserDelegate::atomBuiltInCharacterClass):
+ (JSC::Yarr::Parser::CharacterClassParserDelegate::end):
+ (JSC::Yarr::Parser::CharacterClassParserDelegate::assertionWordBoundary):
+ (JSC::Yarr::Parser::CharacterClassParserDelegate::atomBackReference):
+ (JSC::Yarr::Parser::CharacterClassParserDelegate::flush):
+ (JSC::Yarr::Parser::CharacterClassParserDelegate::):
+ (JSC::Yarr::Parser::Parser):
+ (JSC::Yarr::Parser::parseEscape):
+ (JSC::Yarr::Parser::parseAtomEscape):
+ (JSC::Yarr::Parser::parseCharacterClassEscape):
+ (JSC::Yarr::Parser::parseCharacterClass):
+ (JSC::Yarr::Parser::parseParenthesesBegin):
+ (JSC::Yarr::Parser::parseParenthesesEnd):
+ (JSC::Yarr::Parser::parseQuantifier):
+ (JSC::Yarr::Parser::parseTokens):
+ (JSC::Yarr::Parser::parse):
+ (JSC::Yarr::Parser::saveState):
+ (JSC::Yarr::Parser::restoreState):
+ (JSC::Yarr::Parser::atEndOfPattern):
+ (JSC::Yarr::Parser::peek):
+ (JSC::Yarr::Parser::peekIsDigit):
+ (JSC::Yarr::Parser::peekDigit):
+ (JSC::Yarr::Parser::consume):
+ (JSC::Yarr::Parser::consumeDigit):
+ (JSC::Yarr::Parser::consumeNumber):
+ (JSC::Yarr::Parser::consumeOctal):
+ (JSC::Yarr::Parser::tryConsume):
+ (JSC::Yarr::Parser::tryConsumeHex):
+ (JSC::Yarr::parse):
+ * yarr/RegexPattern.h: Added.
+ (JSC::Yarr::CharacterRange::CharacterRange):
+ (JSC::Yarr::):
+ (JSC::Yarr::PatternTerm::):
+ (JSC::Yarr::PatternTerm::PatternTerm):
+ (JSC::Yarr::PatternTerm::BOL):
+ (JSC::Yarr::PatternTerm::EOL):
+ (JSC::Yarr::PatternTerm::WordBoundary):
+ (JSC::Yarr::PatternTerm::invert):
+ (JSC::Yarr::PatternTerm::capture):
+ (JSC::Yarr::PatternTerm::quantify):
+ (JSC::Yarr::PatternAlternative::PatternAlternative):
+ (JSC::Yarr::PatternAlternative::lastTerm):
+ (JSC::Yarr::PatternAlternative::removeLastTerm):
+ (JSC::Yarr::PatternDisjunction::PatternDisjunction):
+ (JSC::Yarr::PatternDisjunction::~PatternDisjunction):
+ (JSC::Yarr::PatternDisjunction::addNewAlternative):
+ (JSC::Yarr::RegexPattern::RegexPattern):
+ (JSC::Yarr::RegexPattern::~RegexPattern):
+ (JSC::Yarr::RegexPattern::reset):
+ (JSC::Yarr::RegexPattern::containsIllegalBackReference):
+ (JSC::Yarr::RegexPattern::newlineCharacterClass):
+ (JSC::Yarr::RegexPattern::digitsCharacterClass):
+ (JSC::Yarr::RegexPattern::spacesCharacterClass):
+ (JSC::Yarr::RegexPattern::wordcharCharacterClass):
+ (JSC::Yarr::RegexPattern::nondigitsCharacterClass):
+ (JSC::Yarr::RegexPattern::nonspacesCharacterClass):
+ (JSC::Yarr::RegexPattern::nonwordcharCharacterClass):
+
+2009-04-13 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (Missed code from last patch).
+
+ * runtime/InternalFunction.cpp:
+ (JSC::InternalFunction::displayName):
+ (JSC::InternalFunction::calculatedDisplayName):
+ * runtime/InternalFunction.h:
+
+2009-04-13 Francisco Tolmasky <francisco@280north.com>
+
+ Reviewed by Oliver Hunt.
+
+ BUG 25171: It should be possible to manually set the name of an anonymous function
+ <https://bugs.webkit.org/show_bug.cgi?id=25171>
+
+ This change adds the displayName property to functions, which when set overrides the
+ normal name when appearing in the console.
+
+ * profiler/Profiler.cpp:
+ (JSC::createCallIdentifierFromFunctionImp): Changed call to InternalFunction::name to InternalFunction::calculatedDisplayName
+ * runtime/CommonIdentifiers.h: Added displayName common identifier.
+ * runtime/InternalFunction.cpp:
+ (JSC::InternalFunction::displayName): Access to user settable displayName property
+ (JSC::InternalFunction::calculatedDisplayName): Returns displayName if it exists, if not then the natural name
+
+2009-04-13 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Disabled another JavaScriptCore test because it fails on Windows but
+ not Mac, so it makes the bots red.
+
+ * tests/mozilla/expected.html:
+
+2009-04-13 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Disabled two JavaScriptCore tests because they fail on Window or Mac but
+ not both, so they make the bots red.
+
+ * tests/mozilla/expected.html: Updated expected results.
+
+2009-04-09 Ben Murdoch <benm@google.com>
+
+ Reviewed by Alexey Proskuryakov.
+
+ https://bugs.webkit.org/show_bug.cgi?id=25091
+ The Android platform requires threads to be registered with the VM.
+ This patch implements this behaviour inside ThreadingPthreads.cpp.
+
+ * wtf/ThreadingPthreads.cpp: Add a level above threadEntryPoint that takes care of (un)registering threads with the VM.
+ (WTF::runThreadWithRegistration): register the thread and run entryPoint. Unregister the thread afterwards.
+ (WTF::createThreadInternal): call runThreadWithRegistration instead of entryPoint directly.
+
+2009-04-09 David Kilzer <ddkilzer@apple.com>
+
+ Reinstating <rdar://problem/6718589> Option to turn off SVG DOM Objective-C bindings
+
+ Rolled r42345 back in. The build failure was caused by an
+ internal script which had not been updated the same way that
+ build-webkit was updated.
+
+ * Configurations/JavaScriptCore.xcconfig:
+
+2009-04-09 Alexey Proskuryakov <ap@webkit.org>
+
+ Reverting <rdar://problem/6718589> Option to turn off SVG DOM Objective-C bindings.
+ It broke Mac build, and I don't know how to fix it.
+
+ * Configurations/JavaScriptCore.xcconfig:
+
+2009-04-09 Xan Lopez <xlopez@igalia.com>
+
+ Unreviewed build fix.
+
+ Checking for __GLIBCXX__ being bigger than some date is not enough
+ to get std::tr1, C++0x has to be in use too. Add another check for
+ __GXX_EXPERIMENTAL_CXX0X__.
+
+ * wtf/TypeTraits.h:
+
+2009-04-08 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Adam Roben.
+
+ Fix assertion failure in function.apply
+
+ The result of excess arguments to function.apply is irrelevant
+ so we don't need to provide a result register. We were providing
+ temporary result register but not ref'ing it resulting in an
+ assertion failure.
+
+ * parser/Nodes.cpp:
+ (JSC::ApplyFunctionCallDotNode::emitBytecode):
+
+2009-04-08 David Kilzer <ddkilzer@apple.com>
+
+ <rdar://problem/6718589> Option to turn off SVG DOM Objective-C bindings
+
+ Reviewed by Darin Adler and Maciej Stachowiak.
+
+ Introduce the ENABLE_SVG_DOM_OBJC_BINDINGS feature define so
+ that SVG DOM Objective-C bindings may be optionally disabled.
+
+ * Configurations/JavaScriptCore.xcconfig: Added
+ ENABLE_SVG_DOM_OBJC_BINDINGS variable and use it in
+ FEATURE_DEFINES.
+
+2009-04-08 Paul Pedriana <ppedriana@ea.com>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=20422
+ Allow custom memory allocation control.
+
+ * wtf/FastAllocBase.h:
+ New added file. Implements allocation base class.
+ * wtf/TypeTraits.h:
+ Augments existing type traits support as needed by FastAllocBase.
+ * wtf/FastMalloc.h:
+ Changed to support FastMalloc match validation.
+ * wtf/FastMalloc.cpp:
+ Changed to support FastMalloc match validation.
+ * wtf/Platform.h:
+ Added ENABLE_FAST_MALLOC_MATCH_VALIDATION; defaults to 0.
+ * GNUmakefile.am:
+ Updated to include added FastAllocBase.h.
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ Updated to include added FastAllocBase.h.
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj:
+ Updated to include added FastAllocBase.h.
+
+2009-04-07 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ Improve function.apply performance
+
+ Jump through a few hoops to improve performance of function.apply in the general case.
+
+ In the case of zero or one arguments, or if there are only two arguments and the
+ second is an array literal we treat function.apply as function.call.
+
+ Otherwise we use the new opcodes op_load_varargs and op_call_varargs to do the .apply call
+ without re-entering the virtual machine.
+
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::dump):
+ * bytecode/Opcode.h:
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
+ (JSC::BytecodeGenerator::emitLoadVarargs):
+ (JSC::BytecodeGenerator::emitCallVarargs):
+ * bytecompiler/BytecodeGenerator.h:
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ (JSC::JIT::privateCompileSlowCases):
+ * jit/JIT.h:
+ * jit/JITCall.cpp:
+ (JSC::JIT::compileOpCallSetupArgs):
+ (JSC::JIT::compileOpCallVarargsSetupArgs):
+ (JSC::JIT::compileOpCallVarargs):
+ (JSC::JIT::compileOpCallVarargsSlowCase):
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::cti_op_load_varargs):
+ * jit/JITStubs.h:
+ * parser/Grammar.y:
+ * parser/Nodes.cpp:
+ (JSC::ArrayNode::isSimpleArray):
+ (JSC::ArrayNode::toArgumentList):
+ (JSC::CallFunctionCallDotNode::emitBytecode):
+ (JSC::ApplyFunctionCallDotNode::emitBytecode):
+ * parser/Nodes.h:
+ (JSC::ExpressionNode::):
+ (JSC::ApplyFunctionCallDotNode::):
+ * runtime/Arguments.cpp:
+ (JSC::Arguments::copyToRegisters):
+ (JSC::Arguments::fillArgList):
+ * runtime/Arguments.h:
+ (JSC::Arguments::numProvidedArguments):
+ * runtime/FunctionPrototype.cpp:
+ (JSC::FunctionPrototype::addFunctionProperties):
+ * runtime/FunctionPrototype.h:
+ * runtime/JSArray.cpp:
+ (JSC::JSArray::copyToRegisters):
+ * runtime/JSArray.h:
+ * runtime/JSGlobalObject.cpp:
+ (JSC::JSGlobalObject::reset):
+ (JSC::JSGlobalObject::mark):
+ * runtime/JSGlobalObject.h:
+
+2009-04-08 Alexey Proskuryakov <ap@webkit.org>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=25073
+ JavaScriptCore tests don't run if time zone is not PST
+
+ * API/tests/testapi.c:
+ (timeZoneIsPST): Added a function that checks whether the time zone is PST, using the same
+ method as functions in DateMath.cpp do for formatting the result.
+ (main): Skip date string format test if the time zone is not PST.
+
+2009-04-07 David Levin <levin@chromium.org>
+
+ Reviewed by Sam Weinig and Geoff Garen.
+
+ https://bugs.webkit.org/show_bug.cgi?id=25039
+ UString refactoring to support UChar* sharing.
+
+ No change in sunspider perf.
+
+ * runtime/SmallStrings.cpp:
+ (JSC::SmallStringsStorage::SmallStringsStorage):
+ * runtime/UString.cpp:
+ (JSC::initializeStaticBaseString):
+ (JSC::initializeUString):
+ (JSC::UString::BaseString::isShared):
+ Encapsulate the meaning behind the refcount == 1 checks because
+ this needs to do slightly more when sharing is added.
+ (JSC::concatenate):
+ (JSC::UString::append):
+ (JSC::UString::operator=):
+ * runtime/UString.h:
+ Make m_baseString part of a union to get rid of casts, but make it protected because
+ it is tricky to use it correctly since it is only valid when the Rep is not a BaseString.
+ The void* will be filled in when sharing is added.
+
+ Add constructors due to the making members protected and it make ensuring proper
+ initialization work better (like in SmallStringsStorage).
+ (JSC::UString::Rep::create):
+ (JSC::UString::Rep::Rep):
+ (JSC::UString::Rep::):
+ (JSC::UString::BaseString::BaseString):
+ (JSC::UString::Rep::setBaseString):
+ (JSC::UString::Rep::baseString):
+
+2009-04-04 Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Alexey Proskuryakov.
+
+ https://bugs.webkit.org/show_bug.cgi?id=25033
+ dtoa.cpp segfaults with g++ 4.4.0
+
+ g++ 4.4.0 seems to be more strict about aliasing rules, so it
+ produces incorrect code if dtoa.cpp is compiled with
+ -fstrict-aliasing (it also emits a ton of warnings, so fair enough
+ I guess). The problem was that we were only casting variables to
+ union types in order to do type punning, but GCC and the C
+ standard require that we actually use a union to store the value.
+
+ This patch does just that, the code is mostly copied from the dtoa
+ version in GCC:
+ http://gcc.gnu.org/viewcvs/trunk/libjava/classpath/native/fdlibm/dtoa.c?view=markup.
+
+ * wtf/dtoa.cpp:
+ (WTF::ulp):
+ (WTF::b2d):
+ (WTF::ratio):
+ (WTF::hexnan):
+ (WTF::strtod):
+ (WTF::dtoa):
+
+2009-04-04 Kevin Ollivier <kevino@theolliviers.com>
+
+ wx build fix for Win port. Build the assembler sources to get missing functions.
+
+ * JavaScriptCoreSources.bkl:
+ * jscore.bkl:
+ * wtf/Platform.h:
+
+2009-04-02 Darin Adler <darin@apple.com>
+
+ Reviewed by Kevin Decker.
+
+ <rdar://problem/6744471> crash in GC due to uninitialized callFunction pointer
+
+ * runtime/JSGlobalObject.h:
+ (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData): Initialize
+ callFunction as we do the other data members that are used in the mark function.
+
+2009-04-02 Yael Aharon <yael.aharon@nokia.com>
+
+ Reviewed by Simon Hausmann
+
+ https://bugs.webkit.org/show_bug.cgi?id=24490
+
+ Implement WTF::ThreadSpecific in the Qt build using
+ QThreadStorage.
+
+ * wtf/ThreadSpecific.h:
+
+2009-04-01 Greg Bolsinga <bolsinga@apple.com>
+
+ Reviewed by Mark Rowe.
+
+ https://bugs.webkit.org/show_bug.cgi?id=24990
+ Put SECTORDER_FLAGS into xcconfig files.
+
+ * Configurations/Base.xcconfig:
+ * Configurations/DebugRelease.xcconfig:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+
+2009-03-27 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (Build fix).
+
+ Fix non-AllInOneFile builds.
+
+ * bytecompiler/BytecodeGenerator.cpp:
+
+2009-03-27 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Improve performance of Function.prototype.call
+ <https://bugs.webkit.org/show_bug.cgi?id=24907>
+
+ Optimistically assume that expression.call(..) is going to be a call to
+ Function.prototype.call, and handle it specially to attempt to reduce the
+ degree of VM reentrancy.
+
+ When everything goes right this removes the vm reentry improving .call()
+ by around a factor of 10.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::dump):
+ * bytecode/Opcode.h:
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
+ * bytecompiler/BytecodeGenerator.h:
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ * parser/Grammar.y:
+ * parser/Nodes.cpp:
+ (JSC::CallFunctionCallDotNode::emitBytecode):
+ * parser/Nodes.h:
+ (JSC::CallFunctionCallDotNode::):
+ * runtime/FunctionPrototype.cpp:
+ (JSC::FunctionPrototype::addFunctionProperties):
+ * runtime/FunctionPrototype.h:
+ * runtime/JSGlobalObject.cpp:
+ (JSC::JSGlobalObject::reset):
+ (JSC::JSGlobalObject::mark):
+ * runtime/JSGlobalObject.h:
+
+2009-03-27 Laszlo Gombos <laszlo.1.gombos@nokia.com>
+
+ Reviewed by Darin Adler.
+
+ Bug 24884: Include strings.h for strcasecmp()
+ https://bugs.webkit.org/show_bug.cgi?id=24884
+
+ * runtime/DateMath.cpp: Reversed previous change including strings.h
+ * wtf/StringExtras.h: Include strings.h here is available
+
+2009-03-26 Adam Roben <aroben@apple.com>
+
+ Copy testapi.js to $WebKitOutputDir on Windows
+
+ Part of Bug 24856: run-javascriptcore-tests should run testapi on
+ Windows
+ <https://bugs.webkit.org/show_bug.cgi?id=24856>
+
+ This matches what Mac does, which will help once we enable running
+ testapi from run-javascriptcore-tests on Windows.
+
+ Reviewed by Steve Falkenburg.
+
+ * JavaScriptCore.vcproj/testapi/testapi.vcproj: Copy testapi.js next
+ to testapi.exe.
+
+2009-03-25 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ Fix exception handling for instanceof in the interpreter.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+
+2009-03-25 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Cameron Zwarich.
+
+ Fixed <rdar://problem/6724011> Write to freed memory in JSC::Label::deref
+ when reloading http://helpme.att.net/speedtest/
+
+ * bytecompiler/BytecodeGenerator.h: Reversed the declaration order for
+ m_labelScopes and m_labels to reverse their destruction order.
+ m_labelScopes has references to memory within m_labels, so its destructor
+ needs to run first.
+
+2009-03-24 Eli Fidler <eli.fidler@torchmobile.com>
+
+ Reviewed by George Staikos.
+
+ Correct warnings which in some environments are treated as errors.
+
+ * wtf/dtoa.cpp:
+ (WTF::b2d):
+ (WTF::d2b):
+ (WTF::strtod):
+ (WTF::dtoa):
+
+2009-03-24 Kevin Ollivier <kevino@theolliviers.com>
+
+ Reviewed by Darin Adler.
+
+ Explicitly define HAVE_LANGINFO_H on Darwin. Fixes the wx build bot jscore
+ test failure.
+
+ https://bugs.webkit.org/show_bug.cgi?id=24780
+
+ * wtf/Platform.h:
+
+2009-03-23 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Cameron Zwarich.
+
+ Fix className() for API defined class
+
+ * API/JSCallbackObjectFunctions.h:
+ (JSC::::className):
+ * API/tests/testapi.c:
+ (EmptyObject_class):
+ (main):
+ * API/tests/testapi.js:
+
+2009-03-23 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ Make testapi assertions run in release builds, so that testapi actually
+ works in a release build.
+
+ Many of the testapi assertions have side effects that are necessary, and
+ given testapi is a testing program, perf impact of an assertion is not
+ important, so it makes sense to apply the assertions in release builds
+ anyway.
+
+ * API/tests/testapi.c:
+ (EvilExceptionObject_hasInstance):
+
+2009-03-23 David Kilzer <ddkilzer@apple.com>
+
+ Provide JavaScript exception information after slow script timeout
+
+ Reviewed by Oliver Hunt.
+
+ * runtime/Completion.cpp:
+ (JSC::evaluate): Set the exception object as the Completion
+ object's value for slow script timeouts. This is used in
+ WebCore when reporting the exception.
+ * runtime/ExceptionHelpers.cpp:
+ (JSC::InterruptedExecutionError::toString): Added. Provides a
+ description message for the exception when it is reported.
+
+2009-03-23 Gustavo Noronha Silva <gns@gnome.org> and Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
+
+ Reviewed by Adam Roben.
+
+ https://bugs.webkit.org/show_bug.cgi?id=24674
+ Crashes in !PLATFORM(MAC)'s formatLocaleDate, in very specific situations
+
+ Make sure strftime never returns 2-digits years to avoid ambiguity
+ and a crash. We wrap this new code option in HAVE_LANGINFO_H,
+ since it is apparently not available in all platforms.
+
+ * runtime/DatePrototype.cpp:
+ (JSC::formatLocaleDate):
+ * wtf/Platform.h:
+
+2009-03-22 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Cameron Zwarich.
+
+ Fix exception handling in API
+
+ We can't just use the ExecState exception slot for returning exceptions
+ from class introspection functions provided through the API as many JSC
+ functions will explicitly clear the ExecState exception when returning.
+
+ * API/JSCallbackObjectFunctions.h:
+ (JSC::JSCallbackObject<Base>::getOwnPropertySlot):
+ (JSC::JSCallbackObject<Base>::put):
+ (JSC::JSCallbackObject<Base>::deleteProperty):
+ (JSC::JSCallbackObject<Base>::construct):
+ (JSC::JSCallbackObject<Base>::hasInstance):
+ (JSC::JSCallbackObject<Base>::call):
+ (JSC::JSCallbackObject<Base>::toNumber):
+ (JSC::JSCallbackObject<Base>::toString):
+ (JSC::JSCallbackObject<Base>::staticValueGetter):
+ (JSC::JSCallbackObject<Base>::callbackGetter):
+ * API/tests/testapi.c:
+ (MyObject_hasProperty):
+ (MyObject_getProperty):
+ (MyObject_setProperty):
+ (MyObject_deleteProperty):
+ (MyObject_callAsFunction):
+ (MyObject_callAsConstructor):
+ (MyObject_hasInstance):
+ (EvilExceptionObject_hasInstance):
+ (EvilExceptionObject_convertToType):
+ (EvilExceptionObject_class):
+ (main):
+ * API/tests/testapi.js:
+ (EvilExceptionObject.hasInstance):
+ (EvilExceptionObject.toNumber):
+ (EvilExceptionObject.toStringExplicit):
+
+2009-03-21 Cameron Zwarich <cwzwarich@uwaterloo.ca>
+
+ Reviewed by Oliver Hunt.
+
+ Bug 20049: testapi failure: MyObject - 0 should be NaN but instead is 1.
+ <https://bugs.webkit.org/show_bug.cgi?id=20049>
+ <rdar://problem/6079127>
+
+ In this case, the test is wrong. According to the ECMA spec, subtraction
+ uses ToNumber, not ToPrimitive. Change the test to match the spec.
+
+ * API/tests/testapi.js:
+
+2009-03-21 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Cameron Zwarich.
+
+ Ensure that JSObjectMakeFunction doesn't produce incorrect line numbers.
+
+ Also make test api correctly propagate failures.
+
+ * API/tests/testapi.c:
+ (main):
+ * runtime/FunctionConstructor.cpp:
+ (JSC::constructFunction):
+
+2009-03-21 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Mark Rowe.
+
+ Improve testapi by making it report failures in a way we can pick up
+ from our test scripts.
+
+ * API/tests/testapi.c:
+ (assertEqualsAsBoolean):
+ (assertEqualsAsNumber):
+ (assertEqualsAsUTF8String):
+ (assertEqualsAsCharactersPtr):
+ (main):
+ * API/tests/testapi.js:
+ (pass):
+ (fail):
+ (shouldBe):
+ (shouldThrow):
+
+2009-03-20 Norbert Leser <norbert.leser@nokia.com>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=24535
+
+ Fixes missing line terminator character (;) after macro call.
+ It is common practice to add the trailing ";" where macros are substituted
+ and not where they are defined with #define.
+ This change is consistent with other macro declarations across webkit,
+ and it also solves compilation failure with symbian compilers.
+
+ * runtime/UString.cpp:
+ * wtf/Assertions.h:
+
+2009-03-20 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Fixed a JavaScriptCore crash on the Windows buildbot.
+
+ * bytecompiler/BytecodeGenerator.h: Reduced the AST recursion limit.
+ Apparently, Windows has small stacks.
+
+2009-03-20 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ A little cleanup in the RegisterFile code.
+
+ Moved large inline functions out of the class declaration, to make it
+ more readable.
+
+ Switched over to using the roundUpAllocationSize function to avoid
+ duplicate code and subtle bugs.
+
+ Renamed m_maxCommitted to m_commitEnd, to match m_end.
+
+ Renamed allocationSize to commitSize because it's the chunk size for
+ committing memory, not allocating memory.
+
+ SunSpider reports no change.
+
+ * interpreter/RegisterFile.h:
+ (JSC::RegisterFile::RegisterFile):
+ (JSC::RegisterFile::shrink):
+ (JSC::RegisterFile::grow):
+ * jit/ExecutableAllocator.h:
+ (JSC::roundUpAllocationSize):
+
+2009-03-19 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Fixed <rdar://problem/6033712> -- a little bit of hardening in the Collector.
+
+ SunSpider reports no change. I also verified in the disassembly that
+ we end up with a single compare to constant.
+
+ * runtime/Collector.cpp:
+ (JSC::Heap::heapAllocate):
+
+2009-03-19 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Cameron Zwarich and Oliver Hunt.
+
+ Fixed <rdar://problem/6406045> REGRESSION: Stack overflow on PowerPC on
+ fast/workers/use-machine-stack.html (22531)
+
+ Dialed down the re-entry allowance to 64 (from 128).
+
+ On a 512K stack, this leaves about 64K for other code on the stack while
+ JavaScript is running. Not perfect, but it solves our crash on PPC.
+
+ Different platforms may want to dial this down even more.
+
+ Also, substantially shrunk BytecodeGenerator. Since we allocate one on
+ the stack in order to throw a stack overflow exception -- well, let's
+ just say the old code had an appreciation for irony.
+
+ SunSpider reports no change.
+
+ * bytecompiler/BytecodeGenerator.h:
+ * interpreter/Interpreter.h:
+ (JSC::):
+
+2009-03-19 Cameron Zwarich <cwzwarich@uwaterloo.ca>
+
+ Reviewed by Oliver Hunt.
+
+ Bug 24350: REGRESSION: Safari 4 breaks SPAW wysiwyg editor multiple instances
+ <https://bugs.webkit.org/show_bug.cgi?id=24350>
+ <rdar://problem/6674182>
+
+ The SPAW editor's JavaScript assumes that toString() on a function
+ constructed with the Function constructor produces a function with
+ a newline after the opening brace.
+
+ * runtime/FunctionConstructor.cpp:
+ (JSC::constructFunction): Add a newline after the opening brace of the
+ function's source code.
+
+2009-03-19 Cameron Zwarich <cwzwarich@uwaterloo.ca>
+
+ Reviewed by Geoff Garen.
+
+ Bug 23771: REGRESSION (r36016): JSObjectHasProperty freezes on global class without kJSClassAttributeNoAutomaticPrototype
+ <https://bugs.webkit.org/show_bug.cgi?id=23771>
+ <rdar://problem/6561016>
+
+ * API/tests/testapi.c:
+ (main): Add a test for this bug.
+ * runtime/JSGlobalObject.cpp:
+ (JSC::JSGlobalObject::resetPrototype): Don't set the prototype of the
+ last object in the prototype chain to the object prototype when the
+ object prototype is already the last object in the prototype chain.
+
+2009-03-19 Timothy Hatcher <timothy@apple.com>
+
+ <rdar://problem/6687342> -[WebView scheduleInRunLoop:forMode:] has no affect on timers
+
+ Reviewed by Darin Adler.
+
+ * wtf/Platform.h: Added HAVE_RUNLOOP_TIMER for PLATFORM(MAC).
+
+2009-03-19 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Fixed <rdar://problem/6279213> Regular expression run-time complexity
+ limit too low for long inputs (21485)
+
+ I raised PCRE's "matchLimit" (limit on backtracking) by an order of
+ magnitude. This fixes all the reported examples of timing out on legitimate
+ regular expression matches.
+
+ In my testing on a Core Duo MacBook Pro, the longest you can get stuck
+ trying to match a string is still under 1s, so this seems like a safe change.
+
+ I can think of a number of better solutions that are more complicated,
+ but this is a good improvement for now.
+
+ * pcre/pcre_exec.cpp:
+
+2009-03-19 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Fixed <rdar://problem/6603562> REGRESSION (Safari 4): regular expression
+ pattern size limit lower than Safari 3.2, other browsers, breaks SAP (14873)
+
+ Bumped the pattern size limit to 1MB, and standardized it between PCRE
+ and WREC. (Empirical testing says that we can easily compile a 1MB regular
+ expression without risking a hang. Other browsers support bigger regular
+ expressions, but also hang.)
+
+ SunSpider reports no change.
+
+ I started with a patch posted to Bugzilla by Erik Corry (erikcorry@google.com).
+
+ * pcre/pcre_internal.h:
+ (put3ByteValue):
+ (get3ByteValue):
+ (put3ByteValueAndAdvance):
+ (putLinkValueAllowZero):
+ (getLinkValueAllowZero): Made PCRE's "LINK_SIZE" (the number of bytes
+ used to record jumps between bytecodes) 3, to accomodate larger potential
+ jumps. Bumped PCRE's "MAX_PATTERN_SIZE" to 1MB. (Technically, at this
+ LINK_SIZE, we can support even larger patterns, but we risk a hang during
+ compilation, and it's not clear that such large patterns are important
+ on the web.)
+
+ * wrec/WREC.cpp:
+ (JSC::WREC::Generator::compileRegExp): Match PCRE's maximum pattern size,
+ to avoid quirks between platforms.
+
+2009-03-18 Ada Chan <adachan@apple.com>
+
+ Rolling out r41818 since it broke the windows build.
+ Error: ..\..\runtime\DatePrototype.cpp(30) : fatal error C1083: Cannot open include file: 'langinfo.h': No such file or directory
+
+ * runtime/DatePrototype.cpp:
+ (JSC::formatLocaleDate):
+
+2009-03-17 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Cameron Zwarich.
+
+ <rdar://problem/6692138> REGRESSION (Safari 4): Incorrect function return value when using IE "try ... finally" memory leak work-around (24654)
+ <https://bugs.webkit.org/show_bug.cgi?id=24654>
+
+ If the return value for a function is in a local register we need
+ to copy it before executing any finalisers, otherwise it is possible
+ for the finaliser to clobber the result.
+
+ * bytecompiler/BytecodeGenerator.h:
+ (JSC::BytecodeGenerator::hasFinaliser):
+ * parser/Nodes.cpp:
+ (JSC::ReturnNode::emitBytecode):
+
+2009-03-17 Kevin Ollivier <kevino@theolliviers.com>
+
+ Reviewed by Mark Rowe.
+
+ Move BUILDING_ON_* defines into Platform.h to make them available to other ports.
+ Also tweak the defines so that they work with the default values set by
+ AvailabilityMacros.h.
+
+ https://bugs.webkit.org/show_bug.cgi?id=24630
+
+ * JavaScriptCorePrefix.h:
+ * wtf/Platform.h:
+
+2009-03-15 Simon Fraser <simon.fraser@apple.com>
+
+ Revert r41718 because it broke DumpRenderTree on Tiger.
+
+ * JavaScriptCorePrefix.h:
+ * wtf/Platform.h:
+
+2009-03-15 Kevin Ollivier <kevino@theolliviers.com>
+
+ Non-Apple Mac ports build fix. Move defines for the BUILDING_ON_ macros into
+ Platform.h so that they're defined for all ports building on Mac, and tweak
+ the definitions of those macros based on Mark Rowe's suggestions to accomodate
+ cases where the values may not be <= to the .0 release for that version.
+
+ * JavaScriptCorePrefix.h:
+ * wtf/Platform.h:
+
+2009-03-13 Mark Rowe <mrowe@apple.com>
+
+ Rubber-stamped by Dan Bernstein.
+
+ Take advantage of the ability of recent versions of Xcode to easily switch the active
+ architecture.
+
+ * Configurations/DebugRelease.xcconfig:
+
+2009-03-13 Mark Rowe <mrowe@apple.com>
+
+ Reviewed by David Kilzer.
+
+ Prevent AllInOneFile.cpp and ProfileGenerator.cpp from rebuilding unnecessarily when
+ switching between building in Xcode and via build-webkit.
+
+ build-webkit passes FEATURE_DEFINES to xcodebuild, resulting in it being present in the
+ Derived Sources build settings. When building in Xcode, this setting isn't present so
+ Xcode reruns the script build phases. This results in a new version of TracingDtrace.h
+ being generated, and the files that include it being rebuilt.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj: Don't regenerate TracingDtrace.h if it is
+ already newer than the input file.
+
+2009-03-13 Norbert Leser <norbert.leser@nokia.com>
+
+ Reviewed by Darin Adler.
+
+ Resolved name conflict with globally defined tzname in Symbian.
+ Replaced with different name instead of using namespace qualifier
+ (appeared to be less clumsy).
+
+ * runtime/DateMath.cpp:
+
+2009-03-12 Mark Rowe <mrowe@apple.com>
+
+ Reviewed by Darin Adler.
+
+ <rdar://problem/6548446> TCMalloc_SystemRelease should use madvise rather than re-mmaping span of pages
+
+ * wtf/FastMalloc.cpp:
+ (WTF::mergeDecommittedStates): If either of the spans has been released to the system, release the other
+ span as well so that the flag in the merged span is accurate.
+ * wtf/Platform.h:
+ * wtf/TCSystemAlloc.cpp: Track decommitted spans when using MADV_FREE_REUSABLE / MADV_FREE_REUSE.
+ (TCMalloc_SystemRelease): Use madvise with MADV_FREE_REUSABLE when it is available.
+ (TCMalloc_SystemCommit): Use madvise with MADV_FREE_REUSE when it is available.
+ * wtf/TCSystemAlloc.h:
+
+2009-03-12 Adam Treat <adam.treat@torchmobile.com>
+
+ Reviewed by NOBODY (Build fix).
+
+ Include string.h for strlen usage.
+
+ * wtf/Threading.cpp:
+
+2009-03-12 David Kilzer <ddkilzer@apple.com>
+
+ Add NO_RETURN attribute to runInteractive() when not using readline
+
+ Reviewed by Darin Adler.
+
+ * jsc.cpp:
+ (runInteractive): If the readline library is not used, this method
+ will never return, thus the NO_RETURN attribute is needed to prevent
+ a gcc warning.
+
+2009-03-12 Adam Roben <aroben@apple.com>
+
+ Adopt setThreadNameInternal on Windows
+
+ Also changed a Windows-only assertion about thread name length to an
+ all-platform log message.
+
+ Reviewed by Adam Treat.
+
+ * wtf/Threading.cpp:
+ (WTF::createThread): Warn if the thread name is longer than 31
+ characters, as Visual Studio will truncate names longer than that
+ length.
+
+ * wtf/ThreadingWin.cpp:
+ (WTF::setThreadNameInternal): Renamed from setThreadName and changed
+ to always operate on the current thread.
+ (WTF::initializeThreading): Changed to use setThreadNameInternal.
+ (WTF::createThreadInternal): Removed call to setThreadName. This is
+ now handled by threadEntryPoint and setThreadNameInternal.
+
+2009-03-11 David Kilzer <ddkilzer@apple.com>
+
+ Clarify comments regarding order of FEATURE_DEFINES
+
+ Rubber-stamped by Mark Rowe.
+
+ * Configurations/JavaScriptCore.xcconfig: Added warning about
+ the consequences when FEATURE_DEFINES are not kept in sync.
+
+2009-03-11 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Darin Adler.
+
+ - WTF support for fixing <rdar://problem/3919124> Thai text selection
+ in Safari is incorrect
+
+ * wtf/unicode/icu/UnicodeIcu.h:
+ (WTF::Unicode::hasLineBreakingPropertyComplexContext): Added. Returns
+ whether the character has Unicode line breaking property value SA
+ ("Complex Context").
+ * wtf/unicode/qt4/UnicodeQt4.h:
+ (WTF::Unicode::hasLineBreakingPropertyComplexContext): Added an
+ implementation that always returns false.
+
+2009-03-11 Darin Adler <darin@apple.com>
+
+ Reviewed by Mark Rowe.
+
+ Give threads names on platforms with pthread_setname_np.
+
+ * wtf/Threading.cpp:
+ (WTF::NewThreadContext::NewThreadContext): Initialize thread name.
+ (WTF::threadEntryPoint): Call setThreadNameInternal.
+ (WTF::createThread): Pass thread name.
+
+ * wtf/Threading.h: Added new comments, setThreadNameInternal.
+
+ * wtf/ThreadingGtk.cpp:
+ (WTF::setThreadNameInternal): Added. Empty.
+ * wtf/ThreadingNone.cpp:
+ (WTF::setThreadNameInternal): Added. Empty.
+ * wtf/ThreadingPthreads.cpp:
+ (WTF::setThreadNameInternal): Call pthread_setname_np when available.
+ * wtf/ThreadingQt.cpp:
+ (WTF::setThreadNameInternal): Added. Empty.
+ * wtf/ThreadingWin.cpp:
+ (WTF::setThreadNameInternal): Added. Empty.
+
+2009-03-11 Adam Roben <aroben@apple.com>
+
+ Change the Windows implementation of ThreadSpecific to use functions
+ instead of extern globals
+
+ This will make it easier to export ThreadSpecific from WebKit.
+
+ Reviewed by John Sullivan.
+
+ * API/JSBase.cpp:
+ (JSEvaluateScript):
+ Touched this file to force ThreadSpecific.h to be copied into
+ $WebKitOutputDir.
+
+ * wtf/ThreadSpecific.h: Replaced g_tls_key_count with tlsKeyCount()
+ and g_tls_keys with tlsKeys().
+
+ (WTF::::ThreadSpecific):
+ (WTF::::~ThreadSpecific):
+ (WTF::::get):
+ (WTF::::set):
+ (WTF::::destroy):
+ Updated to use the new functions.
+
+ * wtf/ThreadSpecificWin.cpp:
+ (WTF::tlsKeyCount):
+ (WTF::tlsKeys):
+ Added.
+
+ (WTF::ThreadSpecificThreadExit): Changed to use the new functions.
+
+2009-03-10 Cameron Zwarich <cwzwarich@uwaterloo.ca>
+
+ Reviewed by Geoff Garen.
+
+ Bug 24291: REGRESSION (r38635): Single line JavaScript comment prevents HTML button click handler execution
+ <https://bugs.webkit.org/show_bug.cgi?id=24291>
+ <rdar://problem/6663472>
+
+ Add an extra newline to the end of the body of the program text constructed
+ by the Function constructor for parsing. This allows single line comments to
+ be handled correctly by the parser.
+
+ * runtime/FunctionConstructor.cpp:
+ (JSC::constructFunction):
+
+2009-03-09 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Bug 24447: REGRESSION (r41508): Google Maps does not complete initialization
+ <rdar://problem/6657774>
+
+ r41508 actually exposed a pre-existing bug where we were not invalidating the result
+ register cache at jump targets. This causes problems when condition loads occur in an
+ expression -- namely through the ?: and || operators. This patch corrects these issues
+ by marking the target of all forward jumps as being a jump target, and then clears the
+ result register cache when ever it starts generating code for a targeted instruction.
+
+ I do not believe it is possible to cause this class of failure outside of a single
+ expression, and expressions only provide forward branches, so this should resolve this
+ entire class of bug. That said i've included a test case that gets as close as possible
+ to hitting this bug with a back branch, to hopefully prevent anyone from introducing the
+ problem in future.
+
+ * assembler/AbstractMacroAssembler.h:
+ (JSC::AbstractMacroAssembler::Label::isUsed):
+ (JSC::AbstractMacroAssembler::Label::used):
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::JmpDst::JmpDst):
+ (JSC::X86Assembler::JmpDst::isUsed):
+ (JSC::X86Assembler::JmpDst::used):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+
+2009-03-09 David Levin <levin@chromium.org>
+
+ Reviewed by Darin Adler.
+
+ Bug 23175: String and UString should be able to share a UChar* buffer.
+ <https://bugs.webkit.org/show_bug.cgi?id=23175>
+
+ Add CrossThreadRefCounted.
+
+ * wtf/CrossThreadRefCounted.h: Added.
+ (WTF::CrossThreadRefCounted::create):
+ (WTF::CrossThreadRefCounted::isShared):
+ (WTF::CrossThreadRefCounted::dataAccessMustBeThreadSafe):
+ (WTF::CrossThreadRefCounted::mayBePassedToAnotherThread):
+ (WTF::CrossThreadRefCounted::CrossThreadRefCounted):
+ (WTF::CrossThreadRefCounted::~CrossThreadRefCounted):
+ (WTF::CrossThreadRefCounted::ref):
+ (WTF::CrossThreadRefCounted::deref):
+ (WTF::CrossThreadRefCounted::release):
+ (WTF::CrossThreadRefCounted::copy):
+ (WTF::CrossThreadRefCounted::threadSafeDeref):
+ * wtf/RefCounted.h:
+ * wtf/Threading.h:
+ (WTF::ThreadSafeSharedBase::ThreadSafeSharedBase):
+ (WTF::ThreadSafeSharedBase::derefBase):
+ (WTF::ThreadSafeShared::ThreadSafeShared):
+ (WTF::ThreadSafeShared::deref):
+
+2009-03-09 Laszlo Gombos <laszlo.1.gombos@nokia.com>
+
+ Reviewed by George Staikos.
+
+ https://bugs.webkit.org/show_bug.cgi?id=24353
+ Allow to overrule default build options for Qt build.
+
+ * JavaScriptCore.pri: Allow to overrule ENABLE_JIT
+
+2009-03-08 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (build fix).
+
+ Build fix.
+
+ * runtime/ArrayPrototype.cpp:
+ (JSC::arrayProtoFuncConcat):
+
+2009-03-01 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Cameron Zwarich.
+
+ Bug 24268: RuntimeArray is not a fully implemented JSArray
+ <https://bugs.webkit.org/show_bug.cgi?id=24268>
+
+ Don't cast a type to JSArray, just because it reportsArray as a supertype
+ in the JS type system. Doesn't appear feasible to create a testcase
+ unfortunately as setting up the failure conditions requires internal access
+ to JSC not present in DRT.
+
+ * runtime/ArrayPrototype.cpp:
+ (JSC::arrayProtoFuncConcat):
+
+2009-03-06 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ When preforming an op_mov, preserve any existing register mapping.
+
+ ~0.5% progression on v8 tests x86-64.
+
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+
+2009-03-05 Simone Fiorentino <simone.fiorentino@consulenti.fastweb.it>
+
+ Bug 24382: request to add SH4 platform
+
+ <https://bugs.webkit.org/show_bug.cgi?id=24382>
+
+ Reviewed by David Kilzer.
+
+ * wtf/Platform.h: Added support for SH4 platform.
+
+2009-03-05 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Writes of constant values to SF registers should be made with direct memory
+ writes where possible, rather than moving the value via a hardware register.
+
+ ~3% win on SunSpider tests on x86, ~1.5% win on v8 tests on x86-64.
+
+ * assembler/MacroAssemblerX86_64.h:
+ (JSC::MacroAssemblerX86_64::storePtr):
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::movq_i32m):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+
+2009-03-05 Mark Rowe <mrowe@apple.com>
+
+ Fix the build.
+
+ Sprinkle "static" around NumberConstructor.cpp in order to please the compiler.
+
+ * runtime/NumberConstructor.cpp:
+ (JSC::numberConstructorNaNValue):
+ (JSC::numberConstructorNegInfinity):
+ (JSC::numberConstructorPosInfinity):
+ (JSC::numberConstructorMaxValue):
+ (JSC::numberConstructorMinValue):
+
+2009-03-04 Mark Rowe <mrowe@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ <rdar://problem/6354858> FastMallocZone's enumeration code reports fragmented administration space
+
+ The handling of MALLOC_ADMIN_REGION_RANGE_TYPE in FastMalloc's zone was incorrect. It was attempting
+ to record the memory containing and individual span as an administrative region, when all memory
+ allocated via MetaDataAlloc should in fact be recorded. This was causing memory regions allocated
+ via MetaDataAlloc to appear as "VM_ALLOCATE ?" in vmmap output. They are now correctly reported as
+ "MALLOC_OTHER" regions associated with the JavaScriptCore FastMalloc zone.
+
+ Memory is allocated via MetaDataAlloc from two locations: PageHeapAllocator, and TCMalloc_PageMap{2,3}.
+ These two cases are handled differently.
+
+ PageHeapAllocator is extended to keep a linked list of memory regions that it has allocated. The
+ first object in an allocated region contains the link to the previously allocated region. To record
+ the administrative regions of a PageHeapAllocator we can simply walk the linked list and record
+ each allocated region we encounter.
+
+ TCMalloc_PageMaps allocate memory via MetaDataAlloc to store each level of the radix tree. To record
+ the administrative regions of a TCMalloc_PageMap we walk the tree and record the storage used for nodes
+ at each position rather than the nodes themselves.
+
+ A small performance improvement is achieved by coalescing adjacent memory regions inside the PageMapMemoryUsageRecorder
+ so that fewer calls in to the range recorder are necessary. We further reduce the number of calls to the
+ range recorder by aggregating the in-use ranges of a given memory region into a local buffer before recording
+ them with a single call. A similar approach is also used by AdminRegionRecorder.
+
+ * wtf/FastMalloc.cpp:
+ (WTF::PageHeapAllocator::Init):
+ (WTF::PageHeapAllocator::New):
+ (WTF::PageHeapAllocator::recordAdministrativeRegions):
+ (WTF::TCMallocStats::FreeObjectFinder::isFreeObject):
+ (WTF::TCMallocStats::PageMapMemoryUsageRecorder::~PageMapMemoryUsageRecorder):
+ (WTF::TCMallocStats::PageMapMemoryUsageRecorder::recordPendingRegions):
+ (WTF::TCMallocStats::PageMapMemoryUsageRecorder::visit):
+ (WTF::TCMallocStats::AdminRegionRecorder::AdminRegionRecorder):
+ (WTF::TCMallocStats::AdminRegionRecorder::recordRegion):
+ (WTF::TCMallocStats::AdminRegionRecorder::visit):
+ (WTF::TCMallocStats::AdminRegionRecorder::recordPendingRegions):
+ (WTF::TCMallocStats::AdminRegionRecorder::~AdminRegionRecorder):
+ (WTF::TCMallocStats::FastMallocZone::enumerate):
+ (WTF::TCMallocStats::FastMallocZone::FastMallocZone):
+ (WTF::TCMallocStats::FastMallocZone::init):
+ * wtf/TCPageMap.h:
+ (TCMalloc_PageMap2::visitValues):
+ (TCMalloc_PageMap2::visitAllocations):
+ (TCMalloc_PageMap3::visitValues):
+ (TCMalloc_PageMap3::visitAllocations):
+
+2009-03-04 Antti Koivisto <antti@apple.com>
+
+ Reviewed by Dave Hyatt.
+
+ https://bugs.webkit.org/show_bug.cgi?id=24359
+ Repaint throttling mechanism
+
+ Set ENABLE_REPAINT_THROTTLING to 0 by default.
+
+ * wtf/Platform.h:
+
+2009-03-03 David Kilzer <ddkilzer@apple.com>
+
+ <rdar://problem/6581203> WebCore and WebKit should install the same set of headers during installhdrs phase as build phase
+
+ Reviewed by Mark Rowe.
+
+ * Configurations/Base.xcconfig: Defined REAL_PLATFORM_NAME based
+ on PLATFORM_NAME to work around the missing definition on Tiger.
+ Updated HAVE_DTRACE to use REAL_PLATFORM_NAME.
+
+2009-03-03 Kevin McCullough <kmccullough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ <rdar://problem/6639110> console.profile() doesn't work without a title
+
+ * profiler/Profiler.cpp:
+ (JSC::Profiler::startProfiling): assert if there is not title to ensure
+ we don't start profiling without one.
+
+2009-03-02 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Mark Rowe.
+
+ Enable Geolocation (except on Tiger and Leopard).
+
+ * Configurations/JavaScriptCore.xcconfig:
+
+2009-03-01 David Kilzer <ddkilzer@apple.com>
+
+ <rdar://problem/6635688> Move HAVE_DTRACE check to Base.xcconfig
+
+ Reviewed by Mark Rowe.
+
+ * Configurations/Base.xcconfig: Set HAVE_DTRACE Xcode variable
+ based on PLATFORM_NAME and MAC_OS_X_VERSION_MAJOR. Also define
+ it as a preprocessor macro by modifying
+ GCC_PREPROCESSOR_DEFINITIONS.
+ * JavaScriptCore.xcodeproj/project.pbxproj: Changed "Generate
+ DTrace header" script phase to check for HAVE_DTRACE instead of
+ MACOSX_DEPLOYMENT_TARGET.
+ * wtf/Platform.h: Removed definition of HAVE_DTRACE macro since
+ it's defined in Base.xcconfig now.
+
+2009-03-01 Horia Olaru <olaru@adobe.com>
+
+ By looking in grammar.y there are only a few types of statement nodes
+ on which the debugger should stop.
+
+ Removed isBlock and isLoop virtual calls. No need to emit debug hooks in
+ the "statementListEmitCode" method as long as the necessary hooks can be
+ added in each "emitCode".
+
+ https://bugs.webkit.org/show_bug.cgi?id=21073
+
+ Reviewed by Kevin McCullough.
+
+ * parser/Nodes.cpp:
+ (JSC::ConstStatementNode::emitBytecode):
+ (JSC::statementListEmitCode):
+ (JSC::EmptyStatementNode::emitBytecode):
+ (JSC::ExprStatementNode::emitBytecode):
+ (JSC::VarStatementNode::emitBytecode):
+ (JSC::IfNode::emitBytecode):
+ (JSC::IfElseNode::emitBytecode):
+ (JSC::DoWhileNode::emitBytecode):
+ (JSC::WhileNode::emitBytecode):
+ (JSC::ForNode::emitBytecode):
+ (JSC::ForInNode::emitBytecode):
+ (JSC::ContinueNode::emitBytecode):
+ (JSC::BreakNode::emitBytecode):
+ (JSC::ReturnNode::emitBytecode):
+ (JSC::WithNode::emitBytecode):
+ (JSC::SwitchNode::emitBytecode):
+ (JSC::LabelNode::emitBytecode):
+ (JSC::ThrowNode::emitBytecode):
+ (JSC::TryNode::emitBytecode):
+ * parser/Nodes.h:
+
+2009-02-26 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ Fix bug #23614. Switches on double precision values were incorrectly
+ truncating the scrutinee value. E.g.:
+
+ switch (1.1) { case 1: print("FAIL"); }
+
+ Was resulting in FAIL.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::cti_op_switch_imm):
+
+2009-02-26 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Integer Immediate representation need not be canonical in x86 JIT code.
+ On x86-64 we already have loosened the requirement that the int immediate
+ representation in canonical, we should bring x86 into line.
+
+ This patch is a minor (~0.5%) improvement on sunspider & v8-tests, and
+ should reduce memory footoprint (reduces JIT code size).
+
+ * jit/JIT.cpp:
+ (JSC::JIT::compileOpStrictEq):
+ (JSC::JIT::privateCompileSlowCases):
+ * jit/JIT.h:
+ (JSC::JIT::emitJumpIfImmediateNumber):
+ (JSC::JIT::emitJumpIfNotImmediateNumber):
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::putDoubleResultToJSNumberCellOrJSImmediate):
+ (JSC::JIT::compileBinaryArithOp):
+
+2009-02-26 Carol Szabo <carol.szabo@nokia.com>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=24099
+ ARM Compiler Warnings in pcre_exec.cpp
+
+ * pcre/pcre_exec.cpp:
+ (match):
+
+2009-02-25 Cameron Zwarich <cwzwarich@uwaterloo.ca>
+
+ Reviewed by Gavin Barraclough.
+
+ Bug 24086: Regression (r40993): WebKit crashes after logging in to lists.zenbe
+ <https://bugs.webkit.org/show_bug.cgi?id=24086>
+ <rdar://problem/6625111>
+
+ The numeric sort optimization in r40993 generated bytecode for a function
+ without generating JIT code. This breaks an assumption in some parts of
+ the JIT's function calling logic that the presence of a CodeBlock implies
+ the existence of JIT code.
+
+ In order to fix this, we simply generate JIT code whenever we check whether
+ a function is a numeric sort function. This only incurs an additional cost
+ in the case when the function is a numeric sort function, in which case it
+ is not expensive to generate JIT code for it.
+
+ * runtime/ArrayPrototype.cpp:
+ (JSC::isNumericCompareFunction):
+
+2009-02-25 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ Fixed <rdar://problem/6611174> REGRESSION (r36701): Unable to select
+ messages on hotmail (24052)
+
+ The bug was that for-in enumeration used a cached prototype chain without
+ validating that it was up-to-date.
+
+ This led me to refactor prototype chain caching so it was easier to work
+ with and harder to get wrong.
+
+ After a bit of inlining, this patch is performance-neutral on SunSpider
+ and the v8 benchmarks.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::tryCachePutByID):
+ (JSC::Interpreter::tryCacheGetByID):
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::tryCachePutByID):
+ (JSC::JITStubs::tryCacheGetByID):
+ (JSC::JITStubs::cti_op_get_by_id_proto_list): Use the new refactored goodness. See
+ lines beginning with "-" and smile.
+
+ * runtime/JSGlobalObject.h:
+ (JSC::Structure::prototypeForLookup): A shout out to const.
+
+ * runtime/JSPropertyNameIterator.h:
+ (JSC::JSPropertyNameIterator::next): We can use a pointer comparison to
+ see if our cached structure chain is equal to the object's structure chain,
+ since in the case of a cache hit, we share references to the same structure
+ chain.
+
+ * runtime/Operations.h:
+ (JSC::countPrototypeChainEntriesAndCheckForProxies): Use the new refactored
+ goodness.
+
+ * runtime/PropertyNameArray.h:
+ (JSC::PropertyNameArray::PropertyNameArray):
+ (JSC::PropertyNameArray::setShouldCache):
+ (JSC::PropertyNameArray::shouldCache): Renamed "cacheable" to "shouldCache"
+ to communicate that the client is specifying a recommendation, not a
+ capability.
+
+ * runtime/Structure.cpp:
+ (JSC::Structure::Structure): No need to initialize a RefPtr.
+ (JSC::Structure::getEnumerablePropertyNames): Moved some code into helper
+ functions.
+
+ (JSC::Structure::prototypeChain): New centralized accessor for a prototype
+ chain. Revalidates on every access, since the objects in the prototype
+ chain may have mutated.
+
+ (JSC::Structure::isValid): Helper function for revalidating a cached
+ prototype chain.
+
+ (JSC::Structure::getEnumerableNamesFromPropertyTable):
+ (JSC::Structure::getEnumerableNamesFromClassInfoTable): Factored out of
+ getEnumerablePropertyNames.
+
+ * runtime/Structure.h:
+
+ * runtime/StructureChain.cpp:
+ (JSC::StructureChain::StructureChain):
+ * runtime/StructureChain.h:
+ (JSC::StructureChain::create): No need for structureChainsAreEqual, since
+ we use pointer equality now. Refactored StructureChain to make a little
+ more sense and eliminate special cases for null prototypes.
+
+2009-02-25 Steve Falkenburg <sfalken@apple.com>
+
+ Use timeBeginPeriod to enable timing resolution greater than 16ms in command line jsc for Windows.
+ Allows more accurate reporting of benchmark times via command line jsc.exe. Doesn't affect WebKit's use of JavaScriptCore.
+
+ Reviewed by Adam Roben.
+
+ * jsc.cpp:
+ (main):
+
+2009-02-24 Geoffrey Garen <ggaren@apple.com>
+
+ Build fix?
+
+ * GNUmakefile.am:
+
+2009-02-24 Mark Rowe <mrowe@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ <rdar://problem/6259220> Rename AVAILABLE_AFTER_WEBKIT_VERSION_3_1 (etc.) to match the other macros
+
+ * API/JSBasePrivate.h:
+ * API/JSContextRef.h:
+ * API/JSObjectRef.h:
+ * API/WebKitAvailability.h:
+
+2009-02-23 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Next step in splitting JIT functionality out of the Interpreter class:
+ Moved vptr storage from Interpreter to JSGlobalData, so it could be shared
+ between Interpreter and JITStubs, and moved the *Trampoline JIT stubs
+ into the JITStubs class. Also added a VPtrSet class to encapsulate vptr
+ hacks during JSGlobalData initialization.
+
+ SunSpider says 0.4% faster. Meh.
+
+ * JavaScriptCore.exp:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::Interpreter):
+ (JSC::Interpreter::tryCacheGetByID):
+ (JSC::Interpreter::privateExecute):
+ * interpreter/Interpreter.h:
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ (JSC::JIT::privateCompile):
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ * jit/JIT.h:
+ (JSC::JIT::compileCTIMachineTrampolines):
+ * jit/JITCall.cpp:
+ (JSC::JIT::compileOpCall):
+ (JSC::JIT::compileOpCallSlowCase):
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::privateCompilePatchGetArrayLength):
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::JITStubs):
+ (JSC::JITStubs::tryCacheGetByID):
+ (JSC::JITStubs::cti_vm_dontLazyLinkCall):
+ (JSC::JITStubs::cti_op_get_by_val):
+ (JSC::JITStubs::cti_op_get_by_val_byte_array):
+ (JSC::JITStubs::cti_op_put_by_val):
+ (JSC::JITStubs::cti_op_put_by_val_array):
+ (JSC::JITStubs::cti_op_put_by_val_byte_array):
+ (JSC::JITStubs::cti_op_is_string):
+ * jit/JITStubs.h:
+ (JSC::JITStubs::ctiArrayLengthTrampoline):
+ (JSC::JITStubs::ctiStringLengthTrampoline):
+ (JSC::JITStubs::ctiVirtualCallPreLink):
+ (JSC::JITStubs::ctiVirtualCallLink):
+ (JSC::JITStubs::ctiVirtualCall):
+ * runtime/ArrayPrototype.cpp:
+ (JSC::arrayProtoFuncPop):
+ (JSC::arrayProtoFuncPush):
+ * runtime/FunctionPrototype.cpp:
+ (JSC::functionProtoFuncApply):
+ * runtime/JSArray.h:
+ (JSC::isJSArray):
+ * runtime/JSByteArray.h:
+ (JSC::asByteArray):
+ (JSC::isJSByteArray):
+ * runtime/JSCell.h:
+ * runtime/JSFunction.h:
+ * runtime/JSGlobalData.cpp:
+ (JSC::VPtrSet::VPtrSet):
+ (JSC::JSGlobalData::JSGlobalData):
+ (JSC::JSGlobalData::create):
+ (JSC::JSGlobalData::sharedInstance):
+ * runtime/JSGlobalData.h:
+ * runtime/JSString.h:
+ (JSC::isJSString):
+ * runtime/Operations.h:
+ (JSC::jsLess):
+ (JSC::jsLessEq):
+ * wrec/WREC.cpp:
+ (JSC::WREC::Generator::compileRegExp):
+
+2009-02-23 Csaba Osztrogonac <oszi@inf.u-szeged.hu>
+
+ Reviewed by Oliver Hunt.
+
+ Bug 23787: Allow JIT to generate SSE2 code if using GCC
+ <https://bugs.webkit.org/show_bug.cgi?id=23787>
+
+ GCC version of the cpuid check.
+
+ * jit/JITArithmetic.cpp:
+ (JSC::isSSE2Present): previous assembly code fixed.
+
+2009-02-23 David Levin <levin@chromium.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Bug 24047: Need to simplify nested if's in WorkerRunLoop::runInMode
+ <https://bugs.webkit.org/show_bug.cgi?id=24047>
+
+ * wtf/MessageQueue.h:
+ (WTF::MessageQueue::infiniteTime):
+ Allows for one to call waitForMessageFilteredWithTimeout and wait forever.
+
+ (WTF::MessageQueue::alwaysTruePredicate):
+ (WTF::MessageQueue::waitForMessage):
+ Made waitForMessage call waitForMessageFilteredWithTimeout, so that there is less
+ duplicate code.
+
+ (WTF::MessageQueue::waitForMessageFilteredWithTimeout):
+
+ * wtf/ThreadingQt.cpp:
+ (WTF::ThreadCondition::timedWait):
+ * wtf/ThreadingWin.cpp:
+ (WTF::ThreadCondition::timedWait):
+ Made these two implementations consistent with the pthread and gtk implementations.
+ Currently, the time calculations would overflow when passed large values.
+
+2009-02-23 Jeremy Moskovich <jeremy@chromium.org>
+
+ Reviewed by Adam Roben.
+
+ https://bugs.webkit.org/show_bug.cgi?id=24096
+ PLATFORM(MAC)->PLATFORM(CF) since we want to use the CF functions in Chrome on OS X.
+
+ * wtf/CurrentTime.cpp:
+
+2009-02-22 Geoffrey Garen <ggaren@apple.com>
+
+ Build fix?
+
+ * GNUmakefile.am:
+
+2009-02-22 Geoffrey Garen <ggaren@apple.com>
+
+ Build fix.
+
+ * GNUmakefile.am:
+
+2009-02-22 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Next step in splitting JIT functionality out of the Interpreter class:
+ Created a JITStubs class and renamed Interpreter::cti_* to JITStubs::cti_*.
+
+ Also, moved timeout checking into its own class, located in JSGlobalData,
+ so both the Interpreter and the JIT could have access to it.
+
+ * JavaScriptCore.exp:
+ * JavaScriptCore.pri:
+ * JavaScriptCore.scons:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * JavaScriptCoreSources.bkl:
+ * interpreter/CallFrame.h:
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::Interpreter):
+ (JSC::Interpreter::privateExecute):
+ * interpreter/Interpreter.h:
+ * interpreter/Register.h:
+ * jit/JIT.cpp:
+ (JSC::):
+ (JSC::JIT::emitTimeoutCheck):
+ (JSC::JIT::privateCompileMainPass):
+ (JSC::JIT::privateCompileSlowCases):
+ (JSC::JIT::privateCompile):
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ * jit/JIT.h:
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileFastArithSlow_op_lshift):
+ (JSC::JIT::compileFastArithSlow_op_rshift):
+ (JSC::JIT::compileFastArithSlow_op_bitand):
+ (JSC::JIT::compileFastArithSlow_op_mod):
+ (JSC::JIT::compileFastArith_op_mod):
+ (JSC::JIT::compileFastArithSlow_op_post_inc):
+ (JSC::JIT::compileFastArithSlow_op_post_dec):
+ (JSC::JIT::compileFastArithSlow_op_pre_inc):
+ (JSC::JIT::compileFastArithSlow_op_pre_dec):
+ (JSC::JIT::compileFastArith_op_add):
+ (JSC::JIT::compileFastArith_op_mul):
+ (JSC::JIT::compileFastArith_op_sub):
+ (JSC::JIT::compileBinaryArithOpSlowCase):
+ (JSC::JIT::compileFastArithSlow_op_add):
+ (JSC::JIT::compileFastArithSlow_op_mul):
+ * jit/JITCall.cpp:
+ (JSC::JIT::compileOpCall):
+ (JSC::JIT::compileOpCallSlowCase):
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::compileGetByIdHotPath):
+ (JSC::JIT::compilePutByIdHotPath):
+ (JSC::JIT::compileGetByIdSlowCase):
+ (JSC::JIT::compilePutByIdSlowCase):
+ (JSC::JIT::privateCompilePutByIdTransition):
+ (JSC::JIT::patchGetByIdSelf):
+ (JSC::JIT::patchPutByIdReplace):
+ (JSC::JIT::privateCompilePatchGetArrayLength):
+ (JSC::JIT::privateCompileGetByIdSelf):
+ (JSC::JIT::privateCompileGetByIdProto):
+ (JSC::JIT::privateCompileGetByIdChain):
+ (JSC::JIT::privateCompilePutByIdReplace):
+ * jit/JITStubs.cpp:
+ (JSC::JITStubs::tryCachePutByID):
+ (JSC::JITStubs::tryCacheGetByID):
+ (JSC::JITStubs::cti_op_convert_this):
+ (JSC::JITStubs::cti_op_end):
+ (JSC::JITStubs::cti_op_add):
+ (JSC::JITStubs::cti_op_pre_inc):
+ (JSC::JITStubs::cti_timeout_check):
+ (JSC::JITStubs::cti_register_file_check):
+ (JSC::JITStubs::cti_op_loop_if_less):
+ (JSC::JITStubs::cti_op_loop_if_lesseq):
+ (JSC::JITStubs::cti_op_new_object):
+ (JSC::JITStubs::cti_op_put_by_id_generic):
+ (JSC::JITStubs::cti_op_get_by_id_generic):
+ (JSC::JITStubs::cti_op_put_by_id):
+ (JSC::JITStubs::cti_op_put_by_id_second):
+ (JSC::JITStubs::cti_op_put_by_id_fail):
+ (JSC::JITStubs::cti_op_get_by_id):
+ (JSC::JITStubs::cti_op_get_by_id_second):
+ (JSC::JITStubs::cti_op_get_by_id_self_fail):
+ (JSC::JITStubs::cti_op_get_by_id_proto_list):
+ (JSC::JITStubs::cti_op_get_by_id_proto_list_full):
+ (JSC::JITStubs::cti_op_get_by_id_proto_fail):
+ (JSC::JITStubs::cti_op_get_by_id_array_fail):
+ (JSC::JITStubs::cti_op_get_by_id_string_fail):
+ (JSC::JITStubs::cti_op_instanceof):
+ (JSC::JITStubs::cti_op_del_by_id):
+ (JSC::JITStubs::cti_op_mul):
+ (JSC::JITStubs::cti_op_new_func):
+ (JSC::JITStubs::cti_op_call_JSFunction):
+ (JSC::JITStubs::cti_op_call_arityCheck):
+ (JSC::JITStubs::cti_vm_dontLazyLinkCall):
+ (JSC::JITStubs::cti_vm_lazyLinkCall):
+ (JSC::JITStubs::cti_op_push_activation):
+ (JSC::JITStubs::cti_op_call_NotJSFunction):
+ (JSC::JITStubs::cti_op_create_arguments):
+ (JSC::JITStubs::cti_op_create_arguments_no_params):
+ (JSC::JITStubs::cti_op_tear_off_activation):
+ (JSC::JITStubs::cti_op_tear_off_arguments):
+ (JSC::JITStubs::cti_op_profile_will_call):
+ (JSC::JITStubs::cti_op_profile_did_call):
+ (JSC::JITStubs::cti_op_ret_scopeChain):
+ (JSC::JITStubs::cti_op_new_array):
+ (JSC::JITStubs::cti_op_resolve):
+ (JSC::JITStubs::cti_op_construct_JSConstruct):
+ (JSC::JITStubs::cti_op_construct_NotJSConstruct):
+ (JSC::JITStubs::cti_op_get_by_val):
+ (JSC::JITStubs::cti_op_get_by_val_byte_array):
+ (JSC::JITStubs::cti_op_resolve_func):
+ (JSC::JITStubs::cti_op_sub):
+ (JSC::JITStubs::cti_op_put_by_val):
+ (JSC::JITStubs::cti_op_put_by_val_array):
+ (JSC::JITStubs::cti_op_put_by_val_byte_array):
+ (JSC::JITStubs::cti_op_lesseq):
+ (JSC::JITStubs::cti_op_loop_if_true):
+ (JSC::JITStubs::cti_op_negate):
+ (JSC::JITStubs::cti_op_resolve_base):
+ (JSC::JITStubs::cti_op_resolve_skip):
+ (JSC::JITStubs::cti_op_resolve_global):
+ (JSC::JITStubs::cti_op_div):
+ (JSC::JITStubs::cti_op_pre_dec):
+ (JSC::JITStubs::cti_op_jless):
+ (JSC::JITStubs::cti_op_not):
+ (JSC::JITStubs::cti_op_jtrue):
+ (JSC::JITStubs::cti_op_post_inc):
+ (JSC::JITStubs::cti_op_eq):
+ (JSC::JITStubs::cti_op_lshift):
+ (JSC::JITStubs::cti_op_bitand):
+ (JSC::JITStubs::cti_op_rshift):
+ (JSC::JITStubs::cti_op_bitnot):
+ (JSC::JITStubs::cti_op_resolve_with_base):
+ (JSC::JITStubs::cti_op_new_func_exp):
+ (JSC::JITStubs::cti_op_mod):
+ (JSC::JITStubs::cti_op_less):
+ (JSC::JITStubs::cti_op_neq):
+ (JSC::JITStubs::cti_op_post_dec):
+ (JSC::JITStubs::cti_op_urshift):
+ (JSC::JITStubs::cti_op_bitxor):
+ (JSC::JITStubs::cti_op_new_regexp):
+ (JSC::JITStubs::cti_op_bitor):
+ (JSC::JITStubs::cti_op_call_eval):
+ (JSC::JITStubs::cti_op_throw):
+ (JSC::JITStubs::cti_op_get_pnames):
+ (JSC::JITStubs::cti_op_next_pname):
+ (JSC::JITStubs::cti_op_push_scope):
+ (JSC::JITStubs::cti_op_pop_scope):
+ (JSC::JITStubs::cti_op_typeof):
+ (JSC::JITStubs::cti_op_is_undefined):
+ (JSC::JITStubs::cti_op_is_boolean):
+ (JSC::JITStubs::cti_op_is_number):
+ (JSC::JITStubs::cti_op_is_string):
+ (JSC::JITStubs::cti_op_is_object):
+ (JSC::JITStubs::cti_op_is_function):
+ (JSC::JITStubs::cti_op_stricteq):
+ (JSC::JITStubs::cti_op_nstricteq):
+ (JSC::JITStubs::cti_op_to_jsnumber):
+ (JSC::JITStubs::cti_op_in):
+ (JSC::JITStubs::cti_op_push_new_scope):
+ (JSC::JITStubs::cti_op_jmp_scopes):
+ (JSC::JITStubs::cti_op_put_by_index):
+ (JSC::JITStubs::cti_op_switch_imm):
+ (JSC::JITStubs::cti_op_switch_char):
+ (JSC::JITStubs::cti_op_switch_string):
+ (JSC::JITStubs::cti_op_del_by_val):
+ (JSC::JITStubs::cti_op_put_getter):
+ (JSC::JITStubs::cti_op_put_setter):
+ (JSC::JITStubs::cti_op_new_error):
+ (JSC::JITStubs::cti_op_debug):
+ (JSC::JITStubs::cti_vm_throw):
+ * jit/JITStubs.h:
+ (JSC::):
+ * runtime/JSFunction.h:
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::JSGlobalData):
+ * runtime/JSGlobalData.h:
+ * runtime/JSGlobalObject.cpp:
+ * runtime/JSGlobalObject.h:
+ * runtime/TimeoutChecker.cpp: Copied from interpreter/Interpreter.cpp.
+ (JSC::TimeoutChecker::TimeoutChecker):
+ (JSC::TimeoutChecker::reset):
+ (JSC::TimeoutChecker::didTimeOut):
+ * runtime/TimeoutChecker.h: Copied from interpreter/Interpreter.h.
+ (JSC::TimeoutChecker::setTimeoutInterval):
+ (JSC::TimeoutChecker::ticksUntilNextCheck):
+ (JSC::TimeoutChecker::start):
+ (JSC::TimeoutChecker::stop):
+
+2009-02-20 Gustavo Noronha Silva <gns@gnome.org>
+
+ Unreviewed build fix after r41100.
+
+ * GNUmakefile.am:
+
+2009-02-20 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Mark Rowe.
+
+ <rdar://problem/6606660> 2==null returns true in 64bit jit
+
+ Code for op_eq_null and op_neq_null was incorrectly performing
+ a 32bit compare, which truncated the type tag from an integer
+ immediate, leading to incorrect behaviour.
+
+ * assembler/MacroAssembler.h:
+ (JSC::MacroAssembler::setPtr):
+ * assembler/MacroAssemblerX86_64.h:
+ (JSC::MacroAssemblerX86_64::setPtr):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+
+2009-02-19 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ First step in splitting JIT functionality out of the Interpreter class:
+ Created JITStubs.h/.cpp, and moved Interpreter::cti_* into JITStubs.cpp.
+
+ Functions that the Interpreter and JITStubs share moved to Operations.h/.cpp.
+
+ * GNUmakefile.am:
+ * JavaScriptCore.pri:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::resolveBase):
+ (JSC::Interpreter::checkTimeout):
+ (JSC::Interpreter::privateExecute):
+ * interpreter/Interpreter.h:
+ * jit/JITStubs.cpp: Copied from interpreter/Interpreter.cpp.
+ (JSC::Interpreter::cti_op_resolve_base):
+ * jit/JITStubs.h: Copied from interpreter/Interpreter.h.
+ * runtime/Operations.cpp:
+ (JSC::jsAddSlowCase):
+ (JSC::jsTypeStringForValue):
+ (JSC::jsIsObjectType):
+ (JSC::jsIsFunctionType):
+ * runtime/Operations.h:
+ (JSC::jsLess):
+ (JSC::jsLessEq):
+ (JSC::jsAdd):
+ (JSC::cachePrototypeChain):
+ (JSC::countPrototypeChainEntriesAndCheckForProxies):
+ (JSC::resolveBase):
+
+2009-02-19 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Fix for x86-64. Where the JavaScriptCore text segment lies outside
+ a 2gb range of the heap containing JIT generated code, callbacks
+ from JIT code to the stub functions in Interpreter will be incorrectly
+ linked.
+
+ No performance impact on Sunspider, 1% regression on v8-tests,
+ due to a 3% regression on richards.
+
+ * assembler/AbstractMacroAssembler.h:
+ (JSC::AbstractMacroAssembler::Call::Call):
+ (JSC::AbstractMacroAssembler::Jump::link):
+ (JSC::AbstractMacroAssembler::Jump::linkTo):
+ (JSC::AbstractMacroAssembler::CodeLocationJump::relink):
+ (JSC::AbstractMacroAssembler::CodeLocationCall::relink):
+ (JSC::AbstractMacroAssembler::ProcessorReturnAddress::relinkCallerToFunction):
+ (JSC::AbstractMacroAssembler::PatchBuffer::link):
+ (JSC::AbstractMacroAssembler::PatchBuffer::linkTailRecursive):
+ (JSC::AbstractMacroAssembler::differenceBetween):
+ * assembler/MacroAssembler.h:
+ (JSC::MacroAssembler::tailRecursiveCall):
+ (JSC::MacroAssembler::makeTailRecursiveCall):
+ * assembler/MacroAssemblerX86.h:
+ (JSC::MacroAssemblerX86::call):
+ * assembler/MacroAssemblerX86Common.h:
+ * assembler/MacroAssemblerX86_64.h:
+ (JSC::MacroAssemblerX86_64::call):
+ (JSC::MacroAssemblerX86_64::moveWithPatch):
+ (JSC::MacroAssemblerX86_64::branchPtrWithPatch):
+ (JSC::MacroAssemblerX86_64::storePtrWithPatch):
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::jmp_r):
+ (JSC::X86Assembler::linkJump):
+ (JSC::X86Assembler::patchJump):
+ (JSC::X86Assembler::patchCall):
+ (JSC::X86Assembler::linkCall):
+ (JSC::X86Assembler::patchAddress):
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::tryCTICachePutByID):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompile):
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ * jit/JIT.h:
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::putDoubleResultToJSNumberCellOrJSImmediate):
+ (JSC::JIT::compileBinaryArithOp):
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::privateCompilePutByIdTransition):
+ (JSC::JIT::privateCompileGetByIdSelf):
+ (JSC::JIT::privateCompilePutByIdReplace):
+
+2009-02-18 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Simplified .call and .apply in preparation for optimizing them. Also,
+ a little cleanup.
+
+ * runtime/FunctionPrototype.cpp:
+ (JSC::functionProtoFuncApply):
+ (JSC::functionProtoFuncCall): No need to do any specific conversion on
+ 'this' -- op_convert_this will do it if necessary.
+
+ * runtime/JSImmediate.cpp:
+ (JSC::JSImmediate::toThisObject): Slightly relaxed the rules on
+ toThisObject to allow for 'undefined', which can be passed through
+ .call and .apply.
+
+2009-02-19 David Levin <levin@chromium.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Bug 23976: MessageQueue needs a way to wait for a message that satisfies an arbitrary criteria.
+ <https://bugs.webkit.org/show_bug.cgi?id=23976>
+
+ * wtf/Deque.h:
+ (WTF::Deque<T>::findIf):
+ * wtf/MessageQueue.h:
+ (WTF::MessageQueue<T>::waitForMessageFiltered):
+
+2009-02-18 David Levin <levin@chromium.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Bug 23974: Deque::Remove would be a useful method.
+ <https://bugs.webkit.org/show_bug.cgi?id=23974>
+
+ Add Deque::remove and DequeIteratorBase<T>::operator=.
+
+ Why was operator= added? Every concrete iterator (DequeIterator..DequeConstReverseIterator)
+ was calling DequeIteratorBase::assign(), which called Base::operator=(). Base::operator=()
+ was not implemented. This went unnoticed because the iterator copy code has been unused.
+
+ * wtf/Deque.h:
+ (WTF::Deque<T>::remove):
+ (WTF::DequeIteratorBase<T>::removeFromIteratorsList):
+ (WTF::DequeIteratorBase<T>::operator=):
+ (WTF::DequeIteratorBase<T>::~DequeIteratorBase):
+
+2009-02-18 Gustavo Noronha Silva <gns@gnome.org>
+
+ Reviewed by Holger Freyther.
+
+ Fix symbols.filter location, and add other missing files to the
+ autotools build, so that make dist works.
+
+ * GNUmakefile.am:
+
+2009-02-17 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Fixed failure in js1_5/Regress/regress-168347.js, as seen on the Oliver
+ bot.
+
+ Technically, both behaviors are OK, but we might as well keep this test
+ passing.
+
+ * runtime/FunctionPrototype.cpp:
+ (JSC::insertSemicolonIfNeeded): No need to add a trailing semicolon
+ after a trailing '}', since '}' ends a block, indicating the end of a
+ statement.
+
+2009-02-17 Geoffrey Garen <ggaren@apple.com>
+
+ Build fix.
+
+ * runtime/FunctionPrototype.cpp:
+
+2009-02-17 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ Add assertion to guard against oversized pc relative calls.
+
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::link):
+
+2009-02-17 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Fixed <rdar://problem/6595040> REGRESSION: http://www.amnestyusa.org/
+ fails to load.
+
+ amnestyusa.org uses the Optimist JavaScript library, which adds event
+ listeners by concatenating string-ified functions. This is only sure to
+ be syntactically valid if the string-ified functions end in semicolons.
+
+ * parser/Lexer.cpp:
+ (JSC::Lexer::isWhiteSpace):
+ * parser/Lexer.h:
+ (JSC::Lexer::isWhiteSpace):
+ (JSC::Lexer::isLineTerminator): Added some helper functions for examining
+ whitespace.
+
+ * runtime/FunctionPrototype.cpp:
+ (JSC::appendSemicolonIfNeeded):
+ (JSC::functionProtoFuncToString): When string-ifying a function, insert
+ a semicolon in the last non-whitespace position, if one doesn't already exist.
+
+2009-02-16 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (Build fix).
+
+ Roll out r41022 as it breaks qt and gtk builds
+
+ * jit/JITArithmetic.cpp:
+ (JSC::isSSE2Present):
+
+2009-02-16 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Geoffrey Garen.
+
+ Fix for <rdar://problem/6468156>
+ REGRESSION (r36779): Adding link, images, flash in TinyMCE blocks entire page (21382)
+
+ No performance regression.
+
+ * runtime/Arguments.cpp:
+ (JSC::Arguments::fillArgList): Add codepath for when the "length" property has been
+ overridden.
+
+2009-02-16 Mark Rowe <mrowe@apple.com>
+
+ Build fix.
+
+ * wtf/FastMalloc.cpp:
+ (WTF::TCMallocStats::):
+ (WTF::TCMallocStats::FastMallocZone::FastMallocZone):
+
+2009-02-16 Csaba Osztrogonac <oszi@inf.u-szeged.hu>
+
+ Reviewed by Oliver Hunt.
+
+ Bug 23787: Allow JIT to generate SSE2 code if using GCC
+ <https://bugs.webkit.org/show_bug.cgi?id=23787>
+
+ GCC version of the cpuid check.
+
+ * jit/JITArithmetic.cpp:
+ (JSC::isSSE2Present): GCC assembly code added.
+ 6.6% progression on x86 Linux with JIT and WREC on SunSpider if using SSE2 capable machine.
2009-02-13 Adam Treat <adam.treat@torchmobile.com>
@@ -72,6 +10249,294 @@
* wtf/ThreadingQt.cpp:
(WTF::isMainThread):
+2009-02-13 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Some data in the instruction stream is potentially uninitialized - fix this.
+
+ Change the OperandTypes constructor so that uninitialized memory in the int
+ is zeroed, and modify the Instruction constructor taking an Opcode so that
+ if !HAVE(COMPUTED_GOTO) (i.e. when Opcode is an enum, and is potentially only
+ a byte) it zeros the Instruction first before writing the opcode.
+
+ * bytecode/Instruction.h:
+ (JSC::Instruction::Instruction):
+ * parser/ResultType.h:
+ (JSC::OperandTypes::OperandTypes):
+
+2009-02-13 Geoffrey Garen <ggaren@apple.com>
+
+ Build fix for non_JIT platforms.
+
+ * bytecode/CodeBlock.h:
+ (JSC::CodeBlock::setIsNumericCompareFunction):
+ (JSC::CodeBlock::isNumericCompareFunction):
+
+2009-02-13 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Fixed <rdar://problem/6584057> Optimize sort by JS numeric comparison
+ function not to run the comparison function
+
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::CodeBlock):
+ * bytecode/CodeBlock.h:
+ (JSC::CodeBlock::setIsNumericCompareFunction):
+ (JSC::CodeBlock::isNumericCompareFunction): Added the ability to track
+ whether a CodeBlock performs a sort-like numeric comparison.
+
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::generate): Set the isNumericCompareFunction bit
+ after compiling.
+
+ * parser/Nodes.cpp:
+ (JSC::FunctionBodyNode::emitBytecode): Fixed a bug that caused us to
+ codegen an extra return at the end of all functions (eek!), since this
+ made it harder / weirder to detect the numeric comparison pattern in
+ bytecode.
+
+ * runtime/ArrayPrototype.cpp:
+ (JSC::arrayProtoFuncSort): Use the isNumericCompareFunction bit to do
+ a faster sort if we can.
+
+ * runtime/FunctionConstructor.cpp:
+ (JSC::extractFunctionBody):
+ (JSC::constructFunction):
+ * runtime/FunctionConstructor.h: Renamed and exported extractFunctionBody for
+ use in initializing lazyNumericCompareFunction.
+
+ * runtime/JSArray.cpp:
+ (JSC::compareNumbersForQSort):
+ (JSC::compareByStringPairForQSort):
+ (JSC::JSArray::sortNumeric):
+ (JSC::JSArray::sort):
+ * runtime/JSArray.h: Added a fast numeric sort. Renamed ArrayQSortPair
+ to be more specific since we do different kinds of qsort now.
+
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::JSGlobalData):
+ (JSC::JSGlobalData::numericCompareFunction):
+ (JSC::JSGlobalData::ClientData::~ClientData):
+ * runtime/JSGlobalData.h: Added helper data for computing the
+ isNumericCompareFunction bit.
+
+2009-02-13 Darin Adler <darin@apple.com>
+
+ * Configurations/JavaScriptCore.xcconfig: Undo accidental commit of this file.
+
+2009-02-12 Darin Adler <darin@apple.com>
+
+ Reviewed by Oliver Hunt and Alexey Proskuryakov.
+
+ Speed up a couple string functions.
+
+ * runtime/StringPrototype.cpp:
+ (JSC::stringProtoFuncIndexOf): Added a fast path for cases where the second
+ argument is either missing or an integer.
+ (JSC::stringProtoFuncBig): Use jsNontrivialString since the string is guaranteed
+ to be 2 or more characters long.
+ (JSC::stringProtoFuncSmall): Ditto.
+ (JSC::stringProtoFuncBlink): Ditto.
+ (JSC::stringProtoFuncBold): Ditto.
+ (JSC::stringProtoFuncItalics): Ditto.
+ (JSC::stringProtoFuncStrike): Ditto.
+ (JSC::stringProtoFuncSub): Ditto.
+ (JSC::stringProtoFuncSup): Ditto.
+ (JSC::stringProtoFuncFontcolor): Ditto.
+ (JSC::stringProtoFuncFontsize): Make the fast path Sam recently added even faster
+ by avoiding all but the minimum memory allocation.
+ (JSC::stringProtoFuncAnchor): Use jsNontrivialString.
+ (JSC::stringProtoFuncLink): Added a fast path.
+
+ * runtime/UString.cpp:
+ (JSC::UString::find): Added a fast path for single-character search strings.
+
+2009-02-13 David Levin <levin@chromium.org>
+
+ Reviewed by Darin Adler.
+
+ Bug 23926: Race condition in callOnMainThreadAndWait
+ <https://bugs.webkit.org/show_bug.cgi?id=23926>
+
+ * wtf/MainThread.cpp:
+ Removed callOnMainThreadAndWait since it isn't used.
+
+2009-02-13 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Jon Honeycutt.
+
+ Math.random is really slow on windows.
+
+ Math.random calls WTF::randomNumber which is implemented as
+ the secure rand_s on windows. Unfortunately rand_s is an order
+ of magnitude slower than arc4random. For this reason I've
+ added "weakRandomNumber" for use by JavaScript's Math Object.
+ In the long term we should look at using our own secure PRNG
+ in place of the system, but this will do for now.
+
+ 30% win on SunSpider on Windows, resolving most of the remaining
+ disparity vs. Mac.
+
+ * runtime/MathObject.cpp:
+ (JSC::MathObject::MathObject):
+ (JSC::mathProtoFuncRandom):
+ * wtf/RandomNumber.cpp:
+ (WTF::weakRandomNumber):
+ (WTF::randomNumber):
+ * wtf/RandomNumber.h:
+ * wtf/RandomNumberSeed.h:
+ (WTF::initializeWeakRandomNumberGenerator):
+
+2009-02-12 Mark Rowe <mrowe@apple.com>
+
+ Fix the build for other platforms.
+
+ * wtf/RandomNumber.cpp:
+ (WTF::randomNumber):
+
+2009-02-12 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Remove (/reduce) use of hard-wired register names from the JIT.
+ Currently there is no abstraction of registers used in the JIT,
+ which has a number of negative consequences. Hard-wiring x86
+ register names makes the JIT less portable to other platforms,
+ and prevents us from performing dynamic register allocation to
+ attempt to maintain more temporary values in machine registers.
+ (The latter will be more important on x86-64, where we have more
+ registers to make use of).
+
+ Also, remove MacroAssembler::mod32. This was not providing a
+ useful abstraction, and was not in keeping with the rest of the
+ MacroAssembler interface, in having specific register requirements.
+
+ * assembler/MacroAssemblerX86Common.h:
+ * jit/JIT.cpp:
+ (JSC::JIT::compileOpStrictEq):
+ (JSC::JIT::emitSlowScriptCheck):
+ (JSC::JIT::privateCompileMainPass):
+ (JSC::JIT::privateCompileSlowCases):
+ (JSC::JIT::privateCompile):
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ * jit/JIT.h:
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileFastArith_op_lshift):
+ (JSC::JIT::compileFastArithSlow_op_lshift):
+ (JSC::JIT::compileFastArith_op_rshift):
+ (JSC::JIT::compileFastArithSlow_op_rshift):
+ (JSC::JIT::compileFastArith_op_bitand):
+ (JSC::JIT::compileFastArithSlow_op_bitand):
+ (JSC::JIT::compileFastArith_op_mod):
+ (JSC::JIT::compileFastArithSlow_op_mod):
+ (JSC::JIT::compileFastArith_op_post_inc):
+ (JSC::JIT::compileFastArithSlow_op_post_inc):
+ (JSC::JIT::compileFastArith_op_post_dec):
+ (JSC::JIT::compileFastArithSlow_op_post_dec):
+ (JSC::JIT::compileFastArith_op_pre_inc):
+ (JSC::JIT::compileFastArithSlow_op_pre_inc):
+ (JSC::JIT::compileFastArith_op_pre_dec):
+ (JSC::JIT::compileFastArithSlow_op_pre_dec):
+ (JSC::JIT::compileFastArith_op_add):
+ (JSC::JIT::compileFastArith_op_mul):
+ (JSC::JIT::compileFastArith_op_sub):
+ (JSC::JIT::compileBinaryArithOp):
+ * jit/JITCall.cpp:
+ (JSC::JIT::compileOpCallInitializeCallFrame):
+ (JSC::JIT::compileOpCallSetupArgs):
+ (JSC::JIT::compileOpCallEvalSetupArgs):
+ (JSC::JIT::compileOpConstructSetupArgs):
+ (JSC::JIT::compileOpCall):
+ (JSC::JIT::compileOpCallSlowCase):
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::emitGetVirtualRegister):
+ (JSC::JIT::emitPutVirtualRegister):
+ (JSC::JIT::emitNakedCall):
+ (JSC::JIT::restoreArgumentReference):
+ (JSC::JIT::restoreArgumentReferenceForTrampoline):
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::compileGetByIdHotPath):
+ (JSC::JIT::compilePutByIdHotPath):
+ (JSC::JIT::compileGetByIdSlowCase):
+ (JSC::JIT::compilePutByIdSlowCase):
+ (JSC::JIT::privateCompilePutByIdTransition):
+ (JSC::JIT::privateCompilePatchGetArrayLength):
+ (JSC::JIT::privateCompileGetByIdSelf):
+ (JSC::JIT::privateCompileGetByIdProto):
+ (JSC::JIT::privateCompileGetByIdSelfList):
+ (JSC::JIT::privateCompileGetByIdProtoList):
+ (JSC::JIT::privateCompileGetByIdChainList):
+ (JSC::JIT::privateCompileGetByIdChain):
+ (JSC::JIT::privateCompilePutByIdReplace):
+
+2009-02-12 Horia Olaru <olaru@adobe.com>
+
+ Reviewed by Oliver Hunt.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23400
+
+ When throwing an exception within an eval argument string, the dst parameter was
+ modified in the functions below and the return value for eval was altered. Changed
+ the emitNode call in JSC::ThrowNode::emitBytecode to use a temporary register
+ to store its results instead of dst. The JSC::FunctionCallResolveNode::emitBytecode
+ would load the function within the dst registry, also altering the result returned
+ by eval. Replaced it with another temporary.
+
+ * parser/Nodes.cpp:
+ (JSC::FunctionCallResolveNode::emitBytecode):
+ (JSC::ThrowNode::emitBytecode):
+
+2009-02-12 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Geoffrey Garen.
+
+ Speed up String.prototype.fontsize.
+
+ * runtime/StringPrototype.cpp:
+ (JSC::stringProtoFuncFontsize): Specialize for defined/commonly used values.
+
+2009-02-12 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Correctness fix.
+
+ * wtf/RandomNumber.cpp:
+ (WTF::randomNumber): Divide by the maximum representable value, which
+ is different on each platform now, to get values between 0 and 1.
+
+2009-02-12 Geoffrey Garen <ggaren@apple.com>
+
+ Build fix.
+
+ * wtf/RandomNumber.cpp:
+ (WTF::randomNumber):
+
+2009-02-12 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Fixed <rdar://problem/6582048>.
+
+ * wtf/RandomNumber.cpp:
+ (WTF::randomNumber): Make only one call to the random number generator
+ on platforms where the generator is cryptographically secure. The value
+ of randomness over and above cryptographically secure randomness is not
+ clear, and it caused some performance problems.
+
+2009-02-12 Adam Roben <aroben@apple.com>
+
+ Fix lots of Perl warnings when building JavaScriptCoreGenerated on
+ Windows
+
+ Reviewed by John Sullivan.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh:
+ Create the docs/ directory so that we can write bytecode.html into it.
+ This matches what JavaScriptCore.xcodeproj does.
+
2009-02-12 Simon Hausmann <simon.hausmann@nokia.com>
Rubber-stamped by Lars.
@@ -80,6 +10545,615 @@
* JavaScriptCore.pri:
+2009-02-11 Dmitry Titov <dimich@chromium.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23705
+ Fix the UI freeze caused by Worker generating a flood of messages.
+ Measure time we spend in executing posted work items. If too much time is spent
+ without returning to the run loop, exit and reschedule.
+
+ * wtf/MainThread.h:
+ Added initializeMainThreadPlatform() to initialize low-level mechanism for posting
+ work items from thread to thread. This removes #ifdefs for WIN and CHROMIUM from platform-independent code.
+
+ * wtf/MainThread.cpp:
+ (WTF::initializeMainThread):
+ (WTF::dispatchFunctionsFromMainThread):
+ Instead of dispatching all work items in the queue, dispatch them one by one
+ and measure elapsed time. After a threshold, reschedule and quit.
+
+ (WTF::callOnMainThread):
+ (WTF::callOnMainThreadAndWait):
+ Only schedule dispatch if the queue was empty - to avoid many posted messages in the run loop queue.
+
+ * wtf/mac/MainThreadMac.mm:
+ (WTF::scheduleDispatchFunctionsOnMainThread):
+ Use static instance of the mainThreadCaller instead of allocating and releasing it each time.
+ (WTF::initializeMainThreadPlatform):
+ * wtf/gtk/MainThreadChromium.cpp:
+ (WTF::initializeMainThreadPlatform):
+ * wtf/gtk/MainThreadGtk.cpp:
+ (WTF::initializeMainThreadPlatform):
+ * wtf/qt/MainThreadQt.cpp:
+ (WTF::initializeMainThreadPlatform):
+ * wtf/win/MainThreadWin.cpp:
+ (WTF::initializeMainThreadPlatform):
+ * wtf/wx/MainThreadWx.cpp:
+ (WTF::initializeMainThreadPlatform):
+
+2009-02-11 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Gavin Barraclough.
+
+ Style cleanup.
+
+ * assembler/AbstractMacroAssembler.h:
+ (JSC::AbstractMacroAssembler::CodeLocationCommon::CodeLocationCommon):
+ (JSC::AbstractMacroAssembler::CodeLocationCommon::operator bool):
+ (JSC::AbstractMacroAssembler::CodeLocationCommon::reset):
+ (JSC::AbstractMacroAssembler::CodeLocationLabel::addressForSwitch):
+ (JSC::AbstractMacroAssembler::CodeLocationLabel::addressForExceptionHandler):
+ (JSC::AbstractMacroAssembler::CodeLocationLabel::addressForJSR):
+ (JSC::AbstractMacroAssembler::CodeLocationLabel::getJumpDestination):
+ (JSC::AbstractMacroAssembler::CodeLocationJump::relink):
+ (JSC::AbstractMacroAssembler::CodeLocationJump::CodeLocationJump):
+ (JSC::AbstractMacroAssembler::CodeLocationCall::relink):
+ (JSC::AbstractMacroAssembler::CodeLocationCall::calleeReturnAddressValue):
+ (JSC::AbstractMacroAssembler::CodeLocationCall::CodeLocationCall):
+ (JSC::AbstractMacroAssembler::CodeLocationDataLabel32::repatch):
+ (JSC::AbstractMacroAssembler::CodeLocationDataLabel32::CodeLocationDataLabel32):
+ (JSC::AbstractMacroAssembler::CodeLocationDataLabelPtr::repatch):
+ (JSC::AbstractMacroAssembler::CodeLocationDataLabelPtr::CodeLocationDataLabelPtr):
+ (JSC::AbstractMacroAssembler::ProcessorReturnAddress::ProcessorReturnAddress):
+ (JSC::AbstractMacroAssembler::ProcessorReturnAddress::relinkCallerToFunction):
+ (JSC::AbstractMacroAssembler::ProcessorReturnAddress::operator void*):
+ (JSC::AbstractMacroAssembler::PatchBuffer::link):
+ (JSC::::CodeLocationCommon::labelAtOffset):
+ (JSC::::CodeLocationCommon::jumpAtOffset):
+ (JSC::::CodeLocationCommon::callAtOffset):
+ (JSC::::CodeLocationCommon::dataLabelPtrAtOffset):
+ (JSC::::CodeLocationCommon::dataLabel32AtOffset):
+
+2009-02-11 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Gavin Barraclough.
+
+ * assembler/AbstractMacroAssembler.h: Fix comments.
+
+2009-02-11 Alexey Proskuryakov <ap@webkit.org>
+
+ Trying to fix wx build.
+
+ * bytecode/JumpTable.h: Include "MacroAssembler.h", not <MacroAssembler.h>.
+ * jscore.bkl: Added assembler directory to search paths.
+
+2009-02-10 Gavin Barraclough <barraclough@apple.com>
+
+ Build
+ fix.
+ (Narrow
+ changelog
+ for
+ dhyatt).
+
+ * bytecode/Instruction.h:
+ (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
+ (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
+
+2009-02-10 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Reduce use of void* / reinterpret_cast in JIT repatching code,
+ add strong types for Calls and for the various types of pointers
+ we retain into the JIT generated instruction stream.
+
+ No performance impact.
+
+ * assembler/AbstractMacroAssembler.h:
+ (JSC::AbstractMacroAssembler::ImmPtr::ImmPtr):
+ (JSC::AbstractMacroAssembler::ImmPtr::asIntptr):
+ (JSC::AbstractMacroAssembler::Imm32::Imm32):
+ (JSC::AbstractMacroAssembler::Label::Label):
+ (JSC::AbstractMacroAssembler::DataLabelPtr::DataLabelPtr):
+ (JSC::AbstractMacroAssembler::Call::Call):
+ (JSC::AbstractMacroAssembler::Call::link):
+ (JSC::AbstractMacroAssembler::Call::linkTo):
+ (JSC::AbstractMacroAssembler::Jump::Jump):
+ (JSC::AbstractMacroAssembler::Jump::linkTo):
+ (JSC::AbstractMacroAssembler::CodeLocationCommon::CodeLocationCommon):
+ (JSC::AbstractMacroAssembler::CodeLocationCommon::operator bool):
+ (JSC::AbstractMacroAssembler::CodeLocationCommon::reset):
+ (JSC::AbstractMacroAssembler::CodeLocationLabel::CodeLocationLabel):
+ (JSC::AbstractMacroAssembler::CodeLocationLabel::addressForSwitch):
+ (JSC::AbstractMacroAssembler::CodeLocationLabel::addressForExceptionHandler):
+ (JSC::AbstractMacroAssembler::CodeLocationLabel::addressForJSR):
+ (JSC::AbstractMacroAssembler::CodeLocationLabel::getJumpDestination):
+ (JSC::AbstractMacroAssembler::CodeLocationJump::CodeLocationJump):
+ (JSC::AbstractMacroAssembler::CodeLocationJump::relink):
+ (JSC::AbstractMacroAssembler::CodeLocationCall::CodeLocationCall):
+ (JSC::AbstractMacroAssembler::CodeLocationCall::relink):
+ (JSC::AbstractMacroAssembler::CodeLocationCall::calleeReturnAddressValue):
+ (JSC::AbstractMacroAssembler::CodeLocationDataLabel32::CodeLocationDataLabel32):
+ (JSC::AbstractMacroAssembler::CodeLocationDataLabel32::repatch):
+ (JSC::AbstractMacroAssembler::CodeLocationDataLabelPtr::CodeLocationDataLabelPtr):
+ (JSC::AbstractMacroAssembler::CodeLocationDataLabelPtr::repatch):
+ (JSC::AbstractMacroAssembler::ProcessorReturnAddress::ProcessorReturnAddress):
+ (JSC::AbstractMacroAssembler::ProcessorReturnAddress::relinkCallerToFunction):
+ (JSC::AbstractMacroAssembler::ProcessorReturnAddress::operator void*):
+ (JSC::AbstractMacroAssembler::PatchBuffer::entry):
+ (JSC::AbstractMacroAssembler::PatchBuffer::trampolineAt):
+ (JSC::AbstractMacroAssembler::PatchBuffer::link):
+ (JSC::AbstractMacroAssembler::PatchBuffer::linkTailRecursive):
+ (JSC::AbstractMacroAssembler::PatchBuffer::patch):
+ (JSC::AbstractMacroAssembler::PatchBuffer::locationOf):
+ (JSC::AbstractMacroAssembler::PatchBuffer::returnAddressOffset):
+ (JSC::AbstractMacroAssembler::differenceBetween):
+ (JSC::::CodeLocationCommon::labelAtOffset):
+ (JSC::::CodeLocationCommon::jumpAtOffset):
+ (JSC::::CodeLocationCommon::callAtOffset):
+ (JSC::::CodeLocationCommon::dataLabelPtrAtOffset):
+ (JSC::::CodeLocationCommon::dataLabel32AtOffset):
+ * assembler/MacroAssemblerX86Common.h:
+ (JSC::MacroAssemblerX86Common::call):
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::getCallReturnOffset):
+ * bytecode/CodeBlock.h:
+ (JSC::CallLinkInfo::CallLinkInfo):
+ (JSC::getStructureStubInfoReturnLocation):
+ (JSC::getCallLinkInfoReturnLocation):
+ * bytecode/Instruction.h:
+ (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
+ (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
+ * bytecode/JumpTable.h:
+ (JSC::StringJumpTable::ctiForValue):
+ (JSC::SimpleJumpTable::ctiForValue):
+ * bytecode/StructureStubInfo.h:
+ (JSC::StructureStubInfo::StructureStubInfo):
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::emitCatch):
+ (JSC::prepareJumpTableForStringSwitch):
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::cti_op_get_by_id_self_fail):
+ (JSC::getPolymorphicAccessStructureListSlot):
+ (JSC::Interpreter::cti_op_throw):
+ (JSC::Interpreter::cti_op_switch_imm):
+ (JSC::Interpreter::cti_op_switch_char):
+ (JSC::Interpreter::cti_op_switch_string):
+ (JSC::Interpreter::cti_vm_throw):
+ * jit/JIT.cpp:
+ (JSC::ctiSetReturnAddress):
+ (JSC::ctiPatchCallByReturnAddress):
+ (JSC::JIT::privateCompile):
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ * jit/JIT.h:
+ (JSC::CallRecord::CallRecord):
+ (JSC::JIT::compileGetByIdSelf):
+ (JSC::JIT::compileGetByIdProto):
+ (JSC::JIT::compileGetByIdChain):
+ (JSC::JIT::compilePutByIdReplace):
+ (JSC::JIT::compilePutByIdTransition):
+ (JSC::JIT::compilePatchGetArrayLength):
+ (JSC::JIT::emitCTICall):
+ * jit/JITCall.cpp:
+ (JSC::JIT::unlinkCall):
+ (JSC::JIT::linkCall):
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::emitNakedCall):
+ (JSC::JIT::emitCTICall_internal):
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::compileGetByIdSlowCase):
+ (JSC::JIT::compilePutByIdSlowCase):
+ (JSC::JIT::privateCompilePutByIdTransition):
+ (JSC::JIT::patchGetByIdSelf):
+ (JSC::JIT::patchPutByIdReplace):
+ (JSC::JIT::privateCompilePatchGetArrayLength):
+ (JSC::JIT::privateCompileGetByIdSelf):
+ (JSC::JIT::privateCompileGetByIdProto):
+ (JSC::JIT::privateCompileGetByIdSelfList):
+ (JSC::JIT::privateCompileGetByIdProtoList):
+ (JSC::JIT::privateCompileGetByIdChainList):
+ (JSC::JIT::privateCompileGetByIdChain):
+ (JSC::JIT::privateCompilePutByIdReplace):
+
+2009-02-10 Adam Roben <aroben@apple.com>
+
+ Windows build fix after r40813
+
+ * JavaScriptCore.vcproj/jsc/jsc.vcproj: Added profiler/ to the include
+ path so that Profiler.h can be found.
+
+2009-02-09 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Provide a class type for a generated block of JIT code.
+ Also changes the return address -> bytecode index map to
+ track the return addess as an unsigned offset into the code
+ instead of a ptrdiff_t in terms of void**s - the latter is
+ equal to the actual offset / sizeof(void*), making it a
+ potentially lossy representation.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * assembler/AbstractMacroAssembler.h:
+ (JSC::AbstractMacroAssembler::PatchBuffer::returnAddressOffset):
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::getCallReturnOffset):
+ * bytecode/CodeBlock.h:
+ (JSC::CallReturnOffsetToBytecodeIndex::CallReturnOffsetToBytecodeIndex):
+ (JSC::getCallReturnOffset):
+ (JSC::CodeBlock::getBytecodeIndex):
+ (JSC::CodeBlock::jitCode):
+ (JSC::CodeBlock::callReturnIndexVector):
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::execute):
+ (JSC::Interpreter::cti_vm_dontLazyLinkCall):
+ (JSC::Interpreter::cti_vm_lazyLinkCall):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompile):
+ * jit/JIT.h:
+ (JSC::):
+ * jit/JITCall.cpp:
+ (JSC::JIT::linkCall):
+ * jit/JITCode.h: Added.
+ (JSC::):
+ (JSC::JITCode::JITCode):
+ (JSC::JITCode::operator bool):
+ (JSC::JITCode::addressForCall):
+ (JSC::JITCode::offsetOf):
+ (JSC::JITCode::execute):
+
+2009-02-09 John Grabowski <jrg@chromium.org>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23856
+ Change the definition of "main thread" for Chromium on OSX.
+ It does not match the DARWIN definition.
+
+ * wtf/ThreadingPthreads.cpp:
+ (WTF::initializeThreading):
+ (WTF::isMainThread):
+
+2009-02-09 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Minor bugfix, incorrect check meant that subtraction causing integer overflow
+ would be missed on x86-64 JIT.
+
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileBinaryArithOp):
+
+2009-02-09 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ A more sensible register allocation for x86-64.
+
+ When WREC was ported to x86-64 it stuck with the same register allocation as x86.
+ This requires registers to be reordered on entry into WREC generated code, since
+ argument passing is different on x86-64 and x86 (regparm(3)). This patch switches
+ x86-64 to use a native register allocation, that does not require argument registers
+ to be reordered.
+
+ * wrec/WRECGenerator.cpp:
+ (JSC::WREC::Generator::generateEnter):
+ (JSC::WREC::Generator::generateReturnSuccess):
+ (JSC::WREC::Generator::generateReturnFailure):
+ * wrec/WRECGenerator.h:
+
+2009-02-05 Adam Roben <aroben@apple.com>
+
+ Build fix
+
+ Rubberstamped by Sam Weinig.
+
+ * wtf/TypeTraits.h: Include Platform.h, since this header uses macros
+ defined there.
+
+2009-02-05 Dimitri Glazkov <dglazkov@chromium.org>
+
+ Reviewed by Eric Seidel.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23747
+ Add Chromium threading-related files.
+
+ * wtf/MainThread.cpp: Added platform guard to initializeMainThread.
+ * wtf/chromium/ChromiumThreading.h: Added.
+ * wtf/chromium/MainThreadChromium.cpp: Added.
+ (WTF::initializeMainThread):
+ (WTF::scheduleDispatchFunctionsOnMainThread):
+
+2009-02-05 David Levin <levin@chromium.org>
+
+ Reviewed by Darin Adler.
+
+ Bug 23713: COMPILE_ASSERTS should be moved out of TypeTraits.h and into .cpp file
+ <https://bugs.webkit.org/show_bug.cgi?id=23713>
+
+ * GNUmakefile.am:
+ * JavaScriptCore.pri:
+ * JavaScriptCore.scons:
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * JavaScriptCoreSources.bkl:
+
+ * wtf/HashTraits.h:
+ Remove unnecessary header file that I missed when moving out the type traits form this file.
+
+ * wtf/TypeTraits.cpp: Added.
+ (WTF::):
+ * wtf/TypeTraits.h:
+ Moved the compile asserts into TypeTraits.cpp file.
+
+2009-02-04 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver 'the nun' Hunt.
+
+ Add -e switch to jsc to enable evaluation of scripts passed on the command line.
+
+ * jsc.cpp:
+ (Script::Script):
+ (runWithScripts):
+ (printUsageStatement):
+ (parseArguments):
+ (jscmain):
+
+2009-02-04 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam 'Big Mac' Weinig.
+
+ * assembler/AbstractMacroAssembler.h: Copied from assembler/MacroAssembler.h.
+ * assembler/MacroAssemblerX86.h: Copied from assembler/MacroAssembler.h.
+ * assembler/MacroAssemblerX86Common.h: Copied from assembler/MacroAssembler.h.
+ * assembler/MacroAssemblerX86_64.h: Copied from assembler/MacroAssembler.h.
+
+2009-02-04 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ This patch tidies up the MacroAssembler, cleaning up the code and refactoring out the
+ platform-specific parts. The MacroAssembler gets split up like a beef burger, with the
+ platform-agnostic data types being the lower bun (in the form of the class AbstractMacroAssembler),
+ the plaform-specific code generation forming a big meaty patty of methods like 'add32',
+ 'branch32', etc (MacroAssemblerX86), and finally topped off with the bun-lid of the
+ MacroAssembler class itself, providing covenience methods such as the stack peek & poke,
+ and backwards branch methods, all of which can be described in a platform independent
+ way using methods from the base class. The AbstractMacroAssembler is templated on the
+ type of the assembler class that will be used for code generation, and the three layers
+ are held together with the cocktail stick of inheritance.
+
+ The above description is a slight simplification since the MacroAssemblerX86 is actually
+ formed from two layers (in effect giving us a kind on bacon double cheeseburger) - with the
+ bulk of methods that are common between x86 & x86-64 implemented in MacroAssemblerX86Common,
+ which forms a base class for MacroAssemblerX86 and MacroAssemblerX86_64 (which add the methods
+ specific to the given platform).
+
+ I'm landing these changes first without splitting the classes across multiple files,
+ I will follow up with a second patch to split up the file MacroAssembler.h.
+
+ * assembler/MacroAssembler.h:
+ (JSC::AbstractMacroAssembler::):
+ (JSC::AbstractMacroAssembler::DataLabelPtr::DataLabelPtr):
+ (JSC::AbstractMacroAssembler::DataLabelPtr::patch):
+ (JSC::AbstractMacroAssembler::DataLabel32::DataLabel32):
+ (JSC::AbstractMacroAssembler::DataLabel32::patch):
+ (JSC::AbstractMacroAssembler::Label::Label):
+ (JSC::AbstractMacroAssembler::Jump::Jump):
+ (JSC::AbstractMacroAssembler::Jump::link):
+ (JSC::AbstractMacroAssembler::Jump::linkTo):
+ (JSC::AbstractMacroAssembler::Jump::patch):
+ (JSC::AbstractMacroAssembler::JumpList::link):
+ (JSC::AbstractMacroAssembler::JumpList::linkTo):
+ (JSC::AbstractMacroAssembler::PatchBuffer::link):
+ (JSC::AbstractMacroAssembler::PatchBuffer::addressOf):
+ (JSC::AbstractMacroAssembler::PatchBuffer::setPtr):
+ (JSC::AbstractMacroAssembler::size):
+ (JSC::AbstractMacroAssembler::copyCode):
+ (JSC::AbstractMacroAssembler::label):
+ (JSC::AbstractMacroAssembler::align):
+ (JSC::AbstractMacroAssembler::differenceBetween):
+ (JSC::MacroAssemblerX86Common::xor32):
+ (JSC::MacroAssemblerX86Common::load32WithAddressOffsetPatch):
+ (JSC::MacroAssemblerX86Common::store32WithAddressOffsetPatch):
+ (JSC::MacroAssemblerX86Common::move):
+ (JSC::MacroAssemblerX86Common::swap):
+ (JSC::MacroAssemblerX86Common::signExtend32ToPtr):
+ (JSC::MacroAssemblerX86Common::zeroExtend32ToPtr):
+ (JSC::MacroAssemblerX86Common::branch32):
+ (JSC::MacroAssemblerX86Common::jump):
+ (JSC::MacroAssemblerX86_64::add32):
+ (JSC::MacroAssemblerX86_64::sub32):
+ (JSC::MacroAssemblerX86_64::load32):
+ (JSC::MacroAssemblerX86_64::store32):
+ (JSC::MacroAssemblerX86_64::addPtr):
+ (JSC::MacroAssemblerX86_64::andPtr):
+ (JSC::MacroAssemblerX86_64::orPtr):
+ (JSC::MacroAssemblerX86_64::rshiftPtr):
+ (JSC::MacroAssemblerX86_64::subPtr):
+ (JSC::MacroAssemblerX86_64::xorPtr):
+ (JSC::MacroAssemblerX86_64::loadPtr):
+ (JSC::MacroAssemblerX86_64::loadPtrWithAddressOffsetPatch):
+ (JSC::MacroAssemblerX86_64::storePtr):
+ (JSC::MacroAssemblerX86_64::storePtrWithAddressOffsetPatch):
+ (JSC::MacroAssemblerX86_64::branchPtr):
+ (JSC::MacroAssemblerX86_64::branchTestPtr):
+ (JSC::MacroAssemblerX86_64::branchAddPtr):
+ (JSC::MacroAssemblerX86_64::branchSubPtr):
+ (JSC::MacroAssemblerX86_64::branchPtrWithPatch):
+ (JSC::MacroAssemblerX86_64::storePtrWithPatch):
+ (JSC::MacroAssemblerX86::add32):
+ (JSC::MacroAssemblerX86::sub32):
+ (JSC::MacroAssemblerX86::load32):
+ (JSC::MacroAssemblerX86::store32):
+ (JSC::MacroAssemblerX86::branch32):
+ (JSC::MacroAssemblerX86::branchPtrWithPatch):
+ (JSC::MacroAssemblerX86::storePtrWithPatch):
+ (JSC::MacroAssembler::pop):
+ (JSC::MacroAssembler::peek):
+ (JSC::MacroAssembler::poke):
+ (JSC::MacroAssembler::branchPtr):
+ (JSC::MacroAssembler::branch32):
+ (JSC::MacroAssembler::branch16):
+ (JSC::MacroAssembler::branchTestPtr):
+ (JSC::MacroAssembler::addPtr):
+ (JSC::MacroAssembler::andPtr):
+ (JSC::MacroAssembler::orPtr):
+ (JSC::MacroAssembler::rshiftPtr):
+ (JSC::MacroAssembler::subPtr):
+ (JSC::MacroAssembler::xorPtr):
+ (JSC::MacroAssembler::loadPtr):
+ (JSC::MacroAssembler::loadPtrWithAddressOffsetPatch):
+ (JSC::MacroAssembler::storePtr):
+ (JSC::MacroAssembler::storePtrWithAddressOffsetPatch):
+ (JSC::MacroAssembler::branchAddPtr):
+ (JSC::MacroAssembler::branchSubPtr):
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileBinaryArithOp):
+
+2009-02-04 Alexey Proskuryakov <ap@webkit.org>
+
+ Reviewed by Sam Weinig.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23681
+ Worker tests crash in debug builds if run --singly
+
+ The crash happened because worker threads continued running while debug-only static objects
+ were already being destroyed on main thread.
+
+ * runtime/Structure.cpp: Create static debug-only sets in heap, so that they don't get
+ destroyed.
+
+ * wtf/ThreadingPthreads.cpp: Changed assertions to conventional form.
+
+2009-02-03 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23715
+
+ Simplify MacroAssembler interface, by combining comparison methods.
+ Seprate operations are combined as follows:
+ jz32/jnz32/jzPtr/jnzPtr -> branchTest32/branchTestPtr,
+ j*(Add|Mul|Sub)32/j*(Add|Mul|Sub)Ptr -> branch(Add|Mul|Sub)32/branch(Add|Mul|Sub)Ptr
+ j*32/j*Ptr (all other two op combparisons) -> branch32/brnachPtr
+ set*32 -> set32
+
+ Also, represent the Scale of BaseIndex addresses as a plain enum (0,1,2,3),
+ instead of as multiplicands (1,2,4,8).
+
+ This patch singificantly reduces replication of code, and increases functionality supported
+ by the MacroAssembler. No performance impact.
+
+ * assembler/MacroAssembler.h:
+ (JSC::MacroAssembler::):
+ (JSC::MacroAssembler::branchPtr):
+ (JSC::MacroAssembler::branchPtrWithPatch):
+ (JSC::MacroAssembler::branch32):
+ (JSC::MacroAssembler::branch16):
+ (JSC::MacroAssembler::branchTestPtr):
+ (JSC::MacroAssembler::branchTest32):
+ (JSC::MacroAssembler::branchAddPtr):
+ (JSC::MacroAssembler::branchAdd32):
+ (JSC::MacroAssembler::branchMul32):
+ (JSC::MacroAssembler::branchSubPtr):
+ (JSC::MacroAssembler::branchSub32):
+ (JSC::MacroAssembler::set32):
+ (JSC::MacroAssembler::setTest32):
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::):
+ (JSC::X86Assembler::jccRel32):
+ (JSC::X86Assembler::setccOpcode):
+ (JSC::X86Assembler::cmpq_mr):
+ (JSC::X86Assembler::setcc_r):
+ (JSC::X86Assembler::sete_r):
+ (JSC::X86Assembler::setne_r):
+ (JSC::X86Assembler::jne):
+ (JSC::X86Assembler::je):
+ (JSC::X86Assembler::jl):
+ (JSC::X86Assembler::jb):
+ (JSC::X86Assembler::jle):
+ (JSC::X86Assembler::jbe):
+ (JSC::X86Assembler::jge):
+ (JSC::X86Assembler::jg):
+ (JSC::X86Assembler::ja):
+ (JSC::X86Assembler::jae):
+ (JSC::X86Assembler::jo):
+ (JSC::X86Assembler::jp):
+ (JSC::X86Assembler::js):
+ (JSC::X86Assembler::jcc):
+ (JSC::X86Assembler::X86InstructionFormatter::putModRmSib):
+ * jit/JIT.cpp:
+ (JSC::JIT::compileOpStrictEq):
+ (JSC::JIT::emitSlowScriptCheck):
+ (JSC::JIT::privateCompileMainPass):
+ (JSC::JIT::privateCompileSlowCases):
+ (JSC::JIT::privateCompile):
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileFastArith_op_lshift):
+ (JSC::JIT::compileFastArith_op_mod):
+ (JSC::JIT::compileFastArith_op_post_inc):
+ (JSC::JIT::compileFastArith_op_post_dec):
+ (JSC::JIT::compileFastArith_op_pre_inc):
+ (JSC::JIT::compileFastArith_op_pre_dec):
+ (JSC::JIT::compileBinaryArithOp):
+ (JSC::JIT::compileFastArith_op_add):
+ (JSC::JIT::compileFastArith_op_mul):
+ * jit/JITCall.cpp:
+ (JSC::JIT::compileOpCall):
+ (JSC::JIT::compileOpCallSlowCase):
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::checkStructure):
+ (JSC::JIT::emitJumpIfJSCell):
+ (JSC::JIT::emitJumpIfNotJSCell):
+ (JSC::JIT::emitJumpIfImmediateNumber):
+ (JSC::JIT::emitJumpIfNotImmediateNumber):
+ (JSC::JIT::emitJumpIfImmediateInteger):
+ (JSC::JIT::emitJumpIfNotImmediateInteger):
+ (JSC::JIT::emitFastArithDeTagImmediateJumpIfZero):
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::compileGetByIdHotPath):
+ (JSC::JIT::compilePutByIdHotPath):
+ (JSC::JIT::privateCompilePutByIdTransition):
+ (JSC::JIT::privateCompilePatchGetArrayLength):
+ (JSC::JIT::privateCompileGetByIdProto):
+ (JSC::JIT::privateCompileGetByIdProtoList):
+ (JSC::JIT::privateCompileGetByIdChainList):
+ (JSC::JIT::privateCompileGetByIdChain):
+ * runtime/RegExp.cpp:
+ (JSC::RegExp::match):
+ * wrec/WRECGenerator.cpp:
+ (JSC::WREC::Generator::generateEnter):
+ (JSC::WREC::Generator::generateIncrementIndex):
+ (JSC::WREC::Generator::generateLoadCharacter):
+ (JSC::WREC::Generator::generateJumpIfNotEndOfInput):
+ (JSC::WREC::Generator::generateBackreferenceQuantifier):
+ (JSC::WREC::Generator::generateNonGreedyQuantifier):
+ (JSC::WREC::Generator::generateGreedyQuantifier):
+ (JSC::WREC::Generator::generatePatternCharacterPair):
+ (JSC::WREC::Generator::generatePatternCharacter):
+ (JSC::WREC::Generator::generateCharacterClassInvertedRange):
+ (JSC::WREC::Generator::generateCharacterClassInverted):
+ (JSC::WREC::Generator::generateAssertionBOL):
+ (JSC::WREC::Generator::generateAssertionEOL):
+ (JSC::WREC::Generator::generateAssertionWordBoundary):
+ (JSC::WREC::Generator::generateBackreference):
+
+2009-02-03 David Hyatt <hyatt@apple.com>
+
+ Fix a bug in Vector's shrinkCapacity method. It did not properly copy elements into the inline buffer
+ when shrinking down from a size that was greater than the inline capacity.
+
+ Reviewed by Maciej
+
+ * wtf/Vector.h:
+ (WTF::VectorBuffer::VectorBuffer):
+ (WTF::VectorBuffer::allocateBuffer):
+
2009-02-03 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Tor Arne Vestbø.
@@ -89,6 +11163,79 @@
* runtime/JSByteArray.h:
(JSC::JSByteArray::storage):
+2009-02-03 Dmitry Titov <dimich@chromium.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23560
+ Implement SharedTimer on WorkerRunLoop
+
+ * JavaScriptCore.exp:
+ Forgot to expose ThreadCondition::timedWait() in one of previous patches.
+
+2009-02-02 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ <https://bugs.webkit.org/show_bug.cgi?id=21414> REGRESSION: Regular Expressions and character classes, shorthands and ranges
+ <rdar://problem/6543487>
+
+ In certain circumstances when WREC::Generator::generateCharacterClassInvertedRange invokes
+ itself recursively, it will incorrectly emit (and thus consume) the next single character
+ match in the current character class. As WREC uses a binary search this out of sequence
+ codegen could result in a character match being missed and so cause the regex to produce
+ incorrect results.
+
+ * wrec/WRECGenerator.cpp:
+ (JSC::WREC::Generator::generateCharacterClassInvertedRange):
+
+2009-02-02 Darin Adler <darin@apple.com>
+
+ Reviewed by Dave Hyatt.
+
+ Bug 23676: Speed up uses of reserveCapacity on new vectors by adding a new reserveInitialCapacity
+ https://bugs.webkit.org/show_bug.cgi?id=23676
+
+ * API/JSObjectRef.cpp:
+ (JSObjectCopyPropertyNames): Use reserveInitialCapacity.
+ * parser/Lexer.cpp:
+ (JSC::Lexer::Lexer): Ditto.
+ (JSC::Lexer::clear): Ditto.
+
+ * wtf/Vector.h: Added reserveInitialCapacity, a more efficient version of
+ reserveCapacity for use when the vector is brand new (still size 0 with no
+ capacity other than the inline capacity).
+
+2009-01-30 Mark Rowe <mrowe@apple.com>
+
+ Rubber-stamped by Oliver Hunt.
+
+ <rdar://problem/6391501> Enable the JIT on Mac OS X x86_64 as it passes all tests.
+
+ * wtf/Platform.h:
+
+2009-01-30 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Mark Rowe and Sam Weinig.
+
+ Finally fix load() to propagate exceptions correctly.
+
+ * jsc.cpp:
+ (functionLoad):
+
+2009-01-30 David Levin <levin@chromium.org>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23618
+ Templated worker tasks should be more error proof to use.
+ Fix Chromium build.
+
+ * wtf/TypeTraits.h:
+ (WTF::IsConvertibleToInteger::IsConvertibleToDouble):
+ Avoid "possible loss of data" warning when using Microsoft's C++ compiler
+ by avoiding an implicit conversion of int types to doubles.
+
2009-01-30 Laszlo Gombos <laszlo.1.gombos@nokia.com>
Reviewed by Simon Hausmann.
@@ -101,24 +11248,2007 @@
(WTF::TCMallocStats::):
* wtf/Platform.h: Don't define COMPILER(GCC) with RVCT --gnu.
-2008-11-28 George Staikos <staikos@kde.org>
+2009-01-30 David Levin <levin@chromium.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Bug 23618: Templated worker tasks should be more error proof to use
+ <https://bugs.webkit.org/show_bug.cgi?id=23618>
+
+ Add the type traits needed for the generic worker tasks
+ and compile asserts for them.
+
+ Add a summary header to the TypeTraits.h file to explain what is in there.
+
+ Add a note to explain IsPod's deficiencies.
+
+ * wtf/TypeTraits.h:
+
+2009-01-30 David Levin <levin@chromium.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Bug 23616: Various "template helpers" should be consolidated from isolated files in JavaScriptCore.
+ <https://bugs.webkit.org/show_bug.cgi?id=23616>
+
+ * wtf/TypeTraits.h: Moved RemovePointer, IsPod, IsInteger to this file.
+
+ * wtf/OwnPtr.h: Use RemovePointer from TypeTraits.h.
+ * wtf/RetainPtr.h: Ditto.
+
+ * wtf/HashTraits.h: Use IsInteger from TypeTraits.h.
+
+ * wtf/VectorTraits.h: Use IsPod from TypeTraits.h.
+
+ * GNUmakefile.am:
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ Added TypeTraits.h.
+
+2009-01-29 Stephanie Lewis <slewis@apple.com>
+
+ RS by Oliver Hunt.
+
+ Update the order files.
+
+ * JavaScriptCore.order:
+
+2009-01-29 Cameron Zwarich <cwzwarich@uwaterloo.ca>
+
+ Reviewed by Oliver Hunt.
+
+ Bug 23551: Crash on page load with profiler enabled and running
+ <https://bugs.webkit.org/show_bug.cgi?id=23551>
+ <rdar://problem/6529521>
+
+ Interpreter::execute(FunctionBodyNode*, ...) calls Profiler::didExecute()
+ with a stale CallFrame. If some part of the scope chain has already been
+ freed, Profiler::didExecute() will crash when attempting to get the lexical
+ global object. The fix is to make the didExecute() call use the caller's
+ CallFrame, not the one made for the function call. In this case, the
+ willExecute() call should also be changed to match.
+
+ Since this occurs in the actual inspector JS, it is difficult to reduce.
+ I couldn't make a layout test.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::execute):
+
+2009-01-28 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Gavin Barraclough.
+
+ Fix for <rdar://problem/6525537>
+ Hang occurs when closing Installer window (iTunes, Aperture)
+
+ * JavaScriptCore.exp: Export JSGlobalData::sharedInstance.
+
+2009-01-28 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Geoff Garen.
+
+ Initial patch by Mark Rowe.
+
+ <rdar://problem/6519356>
+ REGRESSION (r36006): "out of memory" alert running dromaeo on Windows
+
+ Report the cost of the ArrayStorage vector more accurately/often.
+
+ * runtime/JSArray.cpp:
+ (JSC::JSArray::JSArray): Report the extra cost even for a filled array
+ because JSString using the single character optimization and immediates
+ wont increase the cost themselves.
+ (JSC::JSArray::putSlowCase): Update the cost when increasing the size of
+ the array.
+ (JSC::JSArray::increaseVectorLength): Ditto.
+
+2009-01-28 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Geoff Garen.
+
+ Fix for <rdar://problem/6129678>
+ REGRESSION (Safari 3-4): Local variable not accessible from Dashcode console or variables view
+
+ Iterating the properties of activation objects accessed through the WebKit debugging
+ APIs was broken by forced conversion of JSActivation to the global object. To fix this,
+ we use a proxy activation object that acts more like a normal JSObject.
+
+ * debugger/DebuggerActivation.cpp: Added.
+ (JSC::DebuggerActivation::DebuggerActivation):
+ (JSC::DebuggerActivation::mark):
+ (JSC::DebuggerActivation::className):
+ (JSC::DebuggerActivation::getOwnPropertySlot):
+ (JSC::DebuggerActivation::put):
+ (JSC::DebuggerActivation::putWithAttributes):
+ (JSC::DebuggerActivation::deleteProperty):
+ (JSC::DebuggerActivation::getPropertyNames):
+ (JSC::DebuggerActivation::getPropertyAttributes):
+ (JSC::DebuggerActivation::defineGetter):
+ (JSC::DebuggerActivation::defineSetter):
+ (JSC::DebuggerActivation::lookupGetter):
+ (JSC::DebuggerActivation::lookupSetter):
+ * debugger/DebuggerActivation.h: Added.
+ Proxy JSActivation object for Debugging.
+
+ * runtime/JSActivation.h:
+ (JSC::JSActivation::isActivationObject): Added.
+ * runtime/JSObject.h:
+ (JSC::JSObject::isActivationObject): Added.
+
+2009-01-28 David Kilzer <ddkilzer@apple.com>
+
+ Bug 23490: Remove initialRefCount argument from RefCounted class
+
+ <https://bugs.webkit.org/show_bug.cgi?id=23490>
+
+ Reviewed by Darin Adler.
+
+ RefCountedBase now always starts with a ref count of 1, so there
+ is no need to pass the initialRefCount into the class anymore.
+
+ * wtf/ByteArray.h:
+ (WTF::ByteArray::ByteArray): Removed call to RefCounted(1).
+ * wtf/RefCounted.h:
+ (WTF::RefCountedBase::RefCountedBase): Changed to start with a
+ ref count of 1.
+ (WTF::RefCounted::RefCounted): Removed initialRefCount argument
+ and removed call to RefCounted(1).
+
+2009-01-26 Adele Peterson <adele@apple.com>
+
+ Build fix.
+
+ * debugger/Debugger.cpp:
+
+2009-01-26 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Fixes for eq null & neq null, on 64-bit JIT.
+ https://bugs.webkit.org/show_bug.cgi?id=23559
+
+ This patch degrades 64-bit JIT performance on some benchmarks,
+ due to the whole not-being-incorrect thing.
+
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+
+2009-01-26 Cameron Zwarich <cwzwarich@uwaterloo.ca>
+
+ Reviewed by Gavin Barraclough.
+
+ Bug 23552: Dashcode evaluator no longer works after making ExecStates actual call frames
+ <https://bugs.webkit.org/show_bug.cgi?id=23552>
+ <rdar://problem/6398839>
+
+ * JavaScriptCore.exp:
+ * debugger/Debugger.cpp:
+ (JSC::evaluateInGlobalCallFrame): Added so that WebScriptCallFrame can
+ evaluate JS starting from a global call frame.
+ * debugger/Debugger.h:
+
+2009-01-25 Mark Rowe <mrowe@apple.com>
+
+ Rubber-stamped by Dan Bernstein.
+
+ Improve the consistency of settings in our .xcconfig files.
+
+ * Configurations/Base.xcconfig: Enable GCC_OBJC_CALL_CXX_CDTORS to match other projects.
+
+2009-01-25 Darin Adler <darin@apple.com>
+
+ Reviewed by Mark Rowe.
+
+ Bug 23352: Turn on more compiler warnings in the Mac build
+ https://bugs.webkit.org/show_bug.cgi?id=23352
+
+ Turn on the following warnings:
+
+ -Wcast-qual
+ -Wextra-tokens
+ -Wformat=2
+ -Winit-self
+ -Wmissing-noreturn
+ -Wpacked
+ -Wrendundant-decls
+
+ * Configurations/Base.xcconfig: Added the new warnings. Switched to -Wextra instead of
+ -W for clarity since we don't have to support the older versions of gcc that require the
+ old -W syntax. Since we now use -Wformat=2, removed -Wformat-security. Also removed
+ -Wno-format-y2k since we can have that one on now.
+
+2009-01-25 Judit Jasz <jasy@inf.u-szeged.hu>
+
+ Reviewed by Darin Adler.
+
+ Compilation problem fixing
+ http://bugs.webkit.org/show_bug.cgi?id=23497
+
+ * jit/JITCall.cpp:
+ (JSC::JIT::compileOpCall): Use JSValuePtr::encode.
+
+2009-01-25 Darin Adler <darin@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Bug 23352: Turn on more compiler warnings in the Mac build
+ https://bugs.webkit.org/show_bug.cgi?id=23352
+
+ Fourth patch: Deal with the last few stray warnings.
- Reviewed by NOBODY (OOPS!).
+ * parser/Parser.cpp: Only declare jscyyparse if it's not already declared.
+ This makes both separate compilation and all-in-one compilation work with the
+ -Wredundant-decls warning.
- Implement currentThreadStackBase() on Windows CE.
+2009-01-25 Darin Adler <darin@apple.com>
- Coding style fixes by Joerg Bornemann <joerg.bornemann@trolltech.com>.
+ Reviewed by Sam Weinig.
+
+ Bug 23352: Turn on more compiler warnings in the Mac build
+ https://bugs.webkit.org/show_bug.cgi?id=23352
+
+ Third patch: Use the noreturn attribute on functions that don't
+ return to prepare for the use of the -Wmissing-noreturn warning.
+
+ * jit/JITCall.cpp:
+ (JSC::unreachable): Added NO_RETURN.
+ * jsc.cpp:
+ (functionQuit): Ditto.
+ (printUsageStatement): Ditto.
+ * wtf/AlwaysInline.h: Added definition of NO_RETURN.
+2009-01-24 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ Force inlining of Lexer::matchPunctuator
+
+ 2.2% win when parsing jQuery, Mootools, Prototype, etc
+
+ * parser/Lexer.h:
+
+2009-01-23 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ Fix for <rdar://problem/6126212>
+ Ensure that callbacks out from the JSC interface are only allowed
+ to return in reverse-chronological order to that in which they were
+ made. If we allow earlier callbacks to return first, then this may
+ result in setions of the RegisterFile in use by another thread
+ being trampled.
+
+ See uber-comment in JSLock.h for details.
+
+ * runtime/JSLock.cpp:
+ (JSC::JSLock::DropAllLocks::DropAllLocks):
+ (JSC::JSLock::DropAllLocks::~DropAllLocks):
+
+2009-01-23 Darin Adler <darin@apple.com>
+
+ Try to fix WX build.
+
+ * runtime/JSGlobalObjectFunctions.h: Include <wtf/unicode/Unicode.h>
+ for the definition of UChar.
+
+2009-01-23 Anders Carlsson <andersca@apple.com>
+
+ * Configurations/Base.xcconfig:
+ GCC 4.0 build fix.
+
+ * runtime/JSNumberCell.h:
+ 64-bit build fix.
+
+2009-01-23 Anders Carlsson <andersca@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Turn on -Wmissing-prototypes and fix the warnings.
+
+ * API/JSClassRef.cpp:
+ (clearReferenceToPrototype):
+ * Configurations/Base.xcconfig:
* runtime/Collector.cpp:
- (JSC::numberOfWritableBytes):
- (JSC::systemPageSize):
- (JSC::currentThreadStackBaseWinCE):
- (JSC::currentThreadStackBase):
+ (JSC::getPlatformThreadRegisters):
+ * runtime/ExceptionHelpers.cpp:
+ (JSC::createError):
+ * runtime/JSGlobalObjectFunctions.h:
+ * runtime/JSNumberCell.h:
+ * runtime/UString.cpp:
+ (JSC::initializeStaticBaseString):
+ (JSC::createRep):
+ * wtf/FastMalloc.cpp:
+ * wtf/Threading.cpp:
-2009-01-08 Gavin Barraclough <barraclough@apple.com>
+2009-01-22 Mark Rowe <mrowe@apple.com>
+
+ Rubber-stamped by Anders Carlsson.
+
+ Disable GCC_WARN_ABOUT_MISSING_PROTOTYPES temporarily.
+
+ Current versions of Xcode only respect it for C and Objective-C files,
+ and our code doesn't currently compile if it is applied to C++ and
+ Objective-C++ files.
+
+ * Configurations/Base.xcconfig:
+
+2009-01-22 Steve Falkenburg <sfalken@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=23489
+
+ Return currentTime() in correct units for the two early return cases.
+
+ Reviewed by Mark Rowe.
+
+ * wtf/CurrentTime.cpp:
+ (WTF::currentTime):
+
+2009-01-22 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Mark Rowe.
+
+ Fix for <rdar://problem/6439247>
+ FastMalloc allocating an extra 4MB of meta-data on 64-bit
+
+ Rely on the fact that on all known x86-64 platforms only use 48 bits of
+ address space to shrink the initial size of the PageMap from ~4MB to 120K.
+ For 64-bit we still use a 3-level radix tree, but now each level is only 12
+ bits wide.
+
+ No performance change.
+
+ * wtf/FastMalloc.cpp:
+ (WTF::MapSelector): Add specialization for 64 bit that takes into account the
+ 16 bits of unused address space on x86-64.
+
+2009-01-22 Beth Dakin <bdakin@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Fix for https://bugs.webkit.org/show_bug.cgi?id=23461 LayoutTests/
+ fast/js/numeric-conversion.html is broken, and corresponding
+ <rdar://problem/6514842>
+
+ The basic problem here is that parseInt(Infinity) should be NaN,
+ but we were returning 0. NaN matches Safari 3.2.1 and Firefox.
+
+ * runtime/JSGlobalObjectFunctions.cpp:
+ (JSC::globalFuncParseInt):
+
+2009-01-22 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ <rdar://problem/6516853> (r39682-r39736) JSFunFuzz: crash on "(function(){({ x2: x }), })()"
+ <https://bugs.webkit.org/show_bug.cgi?id=23479>
+
+ Automatic semicolon insertion was resulting in this being accepted in the initial
+ nodeless parsing, but subsequent reparsing for code generation would fail, leading
+ to a crash. The solution is to ensure that reparsing a function performs parsing
+ in the same state as the initial parse. We do this by modifying the saved source
+ ranges to include rather than exclude the opening and closing braces.
+
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::reparseForExceptionInfoIfNecessary): add an assertion for successful recompile
+ * parser/Lexer.h:
+ (JSC::Lexer::sourceCode): include rather than exclude braces.
+ * parser/Nodes.h:
+ (JSC::FunctionBodyNode::toSourceString): No need to append braces anymore.
+
+2009-01-22 Dmitry Titov <dimich@chromium.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23373
+
+ Implement ThreadCondition::timedWait().
+ Since we borrow the code for condition variables from other sources,
+ I did the same for timedWait(). See comments in ThreadingWin.cpp for
+ rationale and more info.
+
+ * wtf/CONTRIBUTORS.pthreads-win32:
+ Added. A list of Pthreads-win32 contributors mentioned in their license. The license itself
+ is included into wtf/ThreadingWin32.cpp.
+
+ * wtf/Threading.h:
+ * wtf/ThreadingWin.cpp:
+ Additional info and Pthreads-win32 license at the beginning.
+ (WTF::PlatformCondition::timedWait): new method, derived from Pthreads-win32.
+ (WTF::PlatformCondition::signal): same
+ (WTF::ThreadCondition::ThreadCondition):
+ (WTF::ThreadCondition::~ThreadCondition):
+ (WTF::ThreadCondition::wait): this now calls PlatformCondition::timedWait.
+ (WTF::ThreadCondition::timedWait): same
+ (WTF::ThreadCondition::signal): this now calls PlatformCondition::signal.
+ (WTF::ThreadCondition::broadcast): same
+
+2009-01-21 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Fix for https://bugs.webkit.org/show_bug.cgi?id=23469.
+
+ We need to check all numbers in integer switches, not just those
+ represented as integer JSImmediates.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+ (JSC::Interpreter::cti_op_switch_imm):
+
+2009-01-21 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ Fix for https://bugs.webkit.org/show_bug.cgi?id=23468.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+
+2009-01-21 Alexey Proskuryakov <ap@webkit.org>
+
+ Suggested by Oliver Hunt. Reviewed by Oliver Hunt.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23456
+ Function argument names leak
+
+ * parser/Nodes.cpp: (JSC::FunctionBodyNode::~FunctionBodyNode): Destruct parameter names.
+
+2009-01-20 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (Build fix).
+
+ Windows build fix
+
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj:
+
+2009-01-20 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Mark Rowe.
+
+ Structure property table deleted offset maps are being leaked.
+ Probably shouldn't be doing that.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23442
+
+ * runtime/Structure.cpp:
+ (JSC::Structure::~Structure):
+
+2009-01-20 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (build fix).
+
+ Attempt to fix gtk build
+
+ * GNUmakefile.am:
+
+2009-01-20 Darin Adler <darin@apple.com>
+
+ * runtime/StringPrototype.cpp:
+ (JSC::substituteBackreferences): Add back the initialization to fix the build.
+
+2009-01-20 Darin Adler <darin@apple.com>
+
+ Reviewed by Mark Rowe.
+
+ Bug 23352: Turn on more compiler warnings in the Mac build
+ https://bugs.webkit.org/show_bug.cgi?id=23352
+
+ First patch: Fix some simple cases of various warnings.
+
+ * pcre/pcre_compile.cpp:
+ (jsRegExpCompile): Use const_cast to change const-ness.
+
+ * runtime/StringPrototype.cpp:
+ (JSC::substituteBackreferences): Remove unneeded initialization and
+ use UChar instead of unsigned short for UTF-16 values.
+
+ * wtf/dtoa.cpp:
+ (WTF::strtod): Use const_cast to change const-ness.
+
+2009-01-20 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (build fix).
+
+ Whoops, remove runtime/ByteArray references from .pri and .scons builds, update .bkl
+
+ * JavaScriptCore.pri:
+ * JavaScriptCore.scons:
+ * JavaScriptCoreSources.bkl:
+
+2009-01-20 Oliver Hunt <oliver@apple.com>
+
+ RS=Dan Bernstein.
+
+ Move runtime/ByteArray to wtf/ByteArray
+
+ * GNUmakefile.am:
+ * JavaScriptCore.exp:
+ * JavaScriptCore.pri:
+ * JavaScriptCore.scons:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * runtime/JSByteArray.cpp:
+ * runtime/JSByteArray.h:
+ * wtf/ByteArray.cpp: Renamed from JavaScriptCore/runtime/ByteArray.cpp.
+ (WTF::ByteArray::create):
+ * wtf/ByteArray.h: Renamed from JavaScriptCore/runtime/ByteArray.h.
+ (WTF::ByteArray::length):
+ (WTF::ByteArray::set):
+ (WTF::ByteArray::get):
+ (WTF::ByteArray::data):
+ (WTF::ByteArray::deref):
+ (WTF::ByteArray::ByteArray):
+
+2009-01-19 Sam Weinig <sam@webkit.org>
+
+ Rubber-stamped by Gavin Barraclough.
+
+ Remove temporary operator-> from JSValuePtr.
+
+ * API/JSCallbackFunction.cpp:
+ (JSC::JSCallbackFunction::call):
+ * API/JSCallbackObjectFunctions.h:
+ (JSC::::call):
+ (JSC::::toNumber):
+ (JSC::::toString):
+ * API/JSObjectRef.cpp:
+ (JSObjectSetPrototype):
+ * API/JSValueRef.cpp:
+ (JSValueGetType):
+ (JSValueIsUndefined):
+ (JSValueIsNull):
+ (JSValueIsBoolean):
+ (JSValueIsNumber):
+ (JSValueIsString):
+ (JSValueIsObject):
+ (JSValueIsObjectOfClass):
+ (JSValueToBoolean):
+ (JSValueToNumber):
+ (JSValueToStringCopy):
+ (JSValueToObject):
+ * bytecode/CodeBlock.cpp:
+ (JSC::valueToSourceString):
+ (JSC::CodeBlock::mark):
+ * bytecode/CodeBlock.h:
+ (JSC::CodeBlock::isKnownNotImmediate):
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::emitEqualityOp):
+ (JSC::keyForImmediateSwitch):
+ * interpreter/Interpreter.cpp:
+ (JSC::jsLess):
+ (JSC::jsLessEq):
+ (JSC::jsAddSlowCase):
+ (JSC::jsAdd):
+ (JSC::jsTypeStringForValue):
+ (JSC::jsIsObjectType):
+ (JSC::jsIsFunctionType):
+ (JSC::isNotObject):
+ (JSC::Interpreter::callEval):
+ (JSC::Interpreter::throwException):
+ (JSC::cachePrototypeChain):
+ (JSC::Interpreter::tryCachePutByID):
+ (JSC::countPrototypeChainEntriesAndCheckForProxies):
+ (JSC::Interpreter::tryCacheGetByID):
+ (JSC::Interpreter::privateExecute):
+ (JSC::Interpreter::tryCTICachePutByID):
+ (JSC::Interpreter::tryCTICacheGetByID):
+ (JSC::Interpreter::cti_op_convert_this):
+ (JSC::Interpreter::cti_op_add):
+ (JSC::Interpreter::cti_op_pre_inc):
+ (JSC::Interpreter::cti_op_put_by_id_generic):
+ (JSC::Interpreter::cti_op_get_by_id_generic):
+ (JSC::Interpreter::cti_op_put_by_id):
+ (JSC::Interpreter::cti_op_put_by_id_second):
+ (JSC::Interpreter::cti_op_put_by_id_fail):
+ (JSC::Interpreter::cti_op_get_by_id):
+ (JSC::Interpreter::cti_op_get_by_id_second):
+ (JSC::Interpreter::cti_op_get_by_id_self_fail):
+ (JSC::Interpreter::cti_op_get_by_id_proto_list):
+ (JSC::Interpreter::cti_op_get_by_id_proto_list_full):
+ (JSC::Interpreter::cti_op_get_by_id_proto_fail):
+ (JSC::Interpreter::cti_op_get_by_id_array_fail):
+ (JSC::Interpreter::cti_op_get_by_id_string_fail):
+ (JSC::Interpreter::cti_op_instanceof):
+ (JSC::Interpreter::cti_op_del_by_id):
+ (JSC::Interpreter::cti_op_mul):
+ (JSC::Interpreter::cti_op_call_JSFunction):
+ (JSC::Interpreter::cti_op_call_NotJSFunction):
+ (JSC::Interpreter::cti_op_construct_JSConstruct):
+ (JSC::Interpreter::cti_op_construct_NotJSConstruct):
+ (JSC::Interpreter::cti_op_get_by_val):
+ (JSC::Interpreter::cti_op_get_by_val_byte_array):
+ (JSC::Interpreter::cti_op_sub):
+ (JSC::Interpreter::cti_op_put_by_val):
+ (JSC::Interpreter::cti_op_put_by_val_array):
+ (JSC::Interpreter::cti_op_put_by_val_byte_array):
+ (JSC::Interpreter::cti_op_loop_if_true):
+ (JSC::Interpreter::cti_op_negate):
+ (JSC::Interpreter::cti_op_div):
+ (JSC::Interpreter::cti_op_pre_dec):
+ (JSC::Interpreter::cti_op_not):
+ (JSC::Interpreter::cti_op_jtrue):
+ (JSC::Interpreter::cti_op_post_inc):
+ (JSC::Interpreter::cti_op_lshift):
+ (JSC::Interpreter::cti_op_bitand):
+ (JSC::Interpreter::cti_op_rshift):
+ (JSC::Interpreter::cti_op_bitnot):
+ (JSC::Interpreter::cti_op_mod):
+ (JSC::Interpreter::cti_op_post_dec):
+ (JSC::Interpreter::cti_op_urshift):
+ (JSC::Interpreter::cti_op_bitxor):
+ (JSC::Interpreter::cti_op_bitor):
+ (JSC::Interpreter::cti_op_push_scope):
+ (JSC::Interpreter::cti_op_is_undefined):
+ (JSC::Interpreter::cti_op_is_boolean):
+ (JSC::Interpreter::cti_op_is_number):
+ (JSC::Interpreter::cti_op_to_jsnumber):
+ (JSC::Interpreter::cti_op_in):
+ (JSC::Interpreter::cti_op_put_by_index):
+ (JSC::Interpreter::cti_op_switch_imm):
+ (JSC::Interpreter::cti_op_switch_char):
+ (JSC::Interpreter::cti_op_switch_string):
+ (JSC::Interpreter::cti_op_del_by_val):
+ (JSC::Interpreter::cti_op_put_getter):
+ (JSC::Interpreter::cti_op_put_setter):
+ (JSC::Interpreter::cti_op_new_error):
+ * interpreter/Interpreter.h:
+ (JSC::Interpreter::isJSArray):
+ (JSC::Interpreter::isJSString):
+ (JSC::Interpreter::isJSByteArray):
+ * interpreter/Register.h:
+ (JSC::Register::marked):
+ (JSC::Register::mark):
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::getConstantOperandImmediateInt):
+ (JSC::JIT::isOperandConstantImmediateInt):
+ * jsc.cpp:
+ (functionPrint):
+ (functionDebug):
+ (functionRun):
+ (functionLoad):
+ (runWithScripts):
+ (runInteractive):
+ * parser/Nodes.cpp:
+ (JSC::processClauseList):
+ * profiler/ProfileGenerator.cpp:
+ (JSC::ProfileGenerator::addParentForConsoleStart):
+ * profiler/Profiler.cpp:
+ (JSC::Profiler::createCallIdentifier):
+ * runtime/ArrayConstructor.cpp:
+ (JSC::constructArrayWithSizeQuirk):
+ * runtime/ArrayPrototype.cpp:
+ (JSC::arrayProtoFuncToString):
+ (JSC::arrayProtoFuncToLocaleString):
+ (JSC::arrayProtoFuncJoin):
+ (JSC::arrayProtoFuncConcat):
+ (JSC::arrayProtoFuncPop):
+ (JSC::arrayProtoFuncPush):
+ (JSC::arrayProtoFuncReverse):
+ (JSC::arrayProtoFuncShift):
+ (JSC::arrayProtoFuncSlice):
+ (JSC::arrayProtoFuncSort):
+ (JSC::arrayProtoFuncSplice):
+ (JSC::arrayProtoFuncUnShift):
+ (JSC::arrayProtoFuncFilter):
+ (JSC::arrayProtoFuncMap):
+ (JSC::arrayProtoFuncEvery):
+ (JSC::arrayProtoFuncForEach):
+ (JSC::arrayProtoFuncSome):
+ (JSC::arrayProtoFuncIndexOf):
+ (JSC::arrayProtoFuncLastIndexOf):
+ * runtime/BooleanConstructor.cpp:
+ (JSC::constructBoolean):
+ (JSC::callBooleanConstructor):
+ * runtime/BooleanPrototype.cpp:
+ (JSC::booleanProtoFuncToString):
+ (JSC::booleanProtoFuncValueOf):
+ * runtime/Collector.cpp:
+ (JSC::Heap::protect):
+ (JSC::Heap::unprotect):
+ (JSC::Heap::heap):
+ (JSC::Heap::collect):
+ (JSC::typeName):
+ * runtime/Completion.cpp:
+ (JSC::evaluate):
+ * runtime/DateConstructor.cpp:
+ (JSC::constructDate):
+ (JSC::dateParse):
+ (JSC::dateUTC):
+ * runtime/DateInstance.h:
+ (JSC::DateInstance::internalNumber):
+ * runtime/DatePrototype.cpp:
+ (JSC::formatLocaleDate):
+ (JSC::fillStructuresUsingTimeArgs):
+ (JSC::fillStructuresUsingDateArgs):
+ (JSC::dateProtoFuncToString):
+ (JSC::dateProtoFuncToUTCString):
+ (JSC::dateProtoFuncToDateString):
+ (JSC::dateProtoFuncToTimeString):
+ (JSC::dateProtoFuncToLocaleString):
+ (JSC::dateProtoFuncToLocaleDateString):
+ (JSC::dateProtoFuncToLocaleTimeString):
+ (JSC::dateProtoFuncGetTime):
+ (JSC::dateProtoFuncGetFullYear):
+ (JSC::dateProtoFuncGetUTCFullYear):
+ (JSC::dateProtoFuncToGMTString):
+ (JSC::dateProtoFuncGetMonth):
+ (JSC::dateProtoFuncGetUTCMonth):
+ (JSC::dateProtoFuncGetDate):
+ (JSC::dateProtoFuncGetUTCDate):
+ (JSC::dateProtoFuncGetDay):
+ (JSC::dateProtoFuncGetUTCDay):
+ (JSC::dateProtoFuncGetHours):
+ (JSC::dateProtoFuncGetUTCHours):
+ (JSC::dateProtoFuncGetMinutes):
+ (JSC::dateProtoFuncGetUTCMinutes):
+ (JSC::dateProtoFuncGetSeconds):
+ (JSC::dateProtoFuncGetUTCSeconds):
+ (JSC::dateProtoFuncGetMilliSeconds):
+ (JSC::dateProtoFuncGetUTCMilliseconds):
+ (JSC::dateProtoFuncGetTimezoneOffset):
+ (JSC::dateProtoFuncSetTime):
+ (JSC::setNewValueFromTimeArgs):
+ (JSC::setNewValueFromDateArgs):
+ (JSC::dateProtoFuncSetYear):
+ (JSC::dateProtoFuncGetYear):
+ * runtime/ErrorConstructor.cpp:
+ (JSC::constructError):
+ * runtime/ErrorPrototype.cpp:
+ (JSC::errorProtoFuncToString):
+ * runtime/ExceptionHelpers.cpp:
+ (JSC::createError):
+ (JSC::createErrorMessage):
+ * runtime/FunctionConstructor.cpp:
+ (JSC::constructFunction):
+ * runtime/FunctionPrototype.cpp:
+ (JSC::functionProtoFuncToString):
+ (JSC::functionProtoFuncApply):
+ (JSC::functionProtoFuncCall):
+ * runtime/GetterSetter.cpp:
+ (JSC::GetterSetter::toObject):
+ * runtime/JSActivation.cpp:
+ (JSC::JSActivation::getOwnPropertySlot):
+ * runtime/JSArray.cpp:
+ (JSC::JSArray::put):
+ (JSC::JSArray::mark):
+ (JSC::JSArray::sort):
+ (JSC::AVLTreeAbstractorForArrayCompare::compare_key_key):
+ (JSC::JSArray::compactForSorting):
+ * runtime/JSByteArray.h:
+ (JSC::JSByteArray::setIndex):
+ * runtime/JSCell.h:
+ (JSC::asCell):
+ * runtime/JSFunction.cpp:
+ (JSC::JSFunction::call):
+ (JSC::JSFunction::construct):
+ * runtime/JSGlobalObject.cpp:
+ (JSC::markIfNeeded):
+ (JSC::lastInPrototypeChain):
+ * runtime/JSGlobalObjectFunctions.cpp:
+ (JSC::encode):
+ (JSC::decode):
+ (JSC::globalFuncEval):
+ (JSC::globalFuncParseInt):
+ (JSC::globalFuncParseFloat):
+ (JSC::globalFuncIsNaN):
+ (JSC::globalFuncIsFinite):
+ (JSC::globalFuncEscape):
+ (JSC::globalFuncUnescape):
+ (JSC::globalFuncJSCPrint):
+ * runtime/JSImmediate.cpp:
+ (JSC::JSImmediate::toThisObject):
+ (JSC::JSImmediate::toObject):
+ (JSC::JSImmediate::prototype):
+ (JSC::JSImmediate::toString):
+ * runtime/JSImmediate.h:
+ * runtime/JSObject.cpp:
+ (JSC::JSObject::mark):
+ (JSC::JSObject::put):
+ (JSC::callDefaultValueFunction):
+ (JSC::JSObject::getPrimitiveNumber):
+ (JSC::JSObject::defineGetter):
+ (JSC::JSObject::defineSetter):
+ (JSC::JSObject::lookupGetter):
+ (JSC::JSObject::lookupSetter):
+ (JSC::JSObject::hasInstance):
+ (JSC::JSObject::toNumber):
+ (JSC::JSObject::toString):
+ * runtime/JSObject.h:
+ (JSC::JSObject::JSObject):
+ (JSC::JSObject::inlineGetOwnPropertySlot):
+ (JSC::JSObject::getOwnPropertySlotForWrite):
+ (JSC::JSObject::getPropertySlot):
+ (JSC::JSValuePtr::get):
+ * runtime/JSPropertyNameIterator.h:
+ (JSC::JSPropertyNameIterator::create):
+ * runtime/JSString.cpp:
+ (JSC::JSString::getOwnPropertySlot):
+ * runtime/JSValue.h:
+ * runtime/JSWrapperObject.cpp:
+ (JSC::JSWrapperObject::mark):
+ * runtime/JSWrapperObject.h:
+ (JSC::JSWrapperObject::setInternalValue):
+ * runtime/MathObject.cpp:
+ (JSC::mathProtoFuncAbs):
+ (JSC::mathProtoFuncACos):
+ (JSC::mathProtoFuncASin):
+ (JSC::mathProtoFuncATan):
+ (JSC::mathProtoFuncATan2):
+ (JSC::mathProtoFuncCeil):
+ (JSC::mathProtoFuncCos):
+ (JSC::mathProtoFuncExp):
+ (JSC::mathProtoFuncFloor):
+ (JSC::mathProtoFuncLog):
+ (JSC::mathProtoFuncMax):
+ (JSC::mathProtoFuncMin):
+ (JSC::mathProtoFuncPow):
+ (JSC::mathProtoFuncRound):
+ (JSC::mathProtoFuncSin):
+ (JSC::mathProtoFuncSqrt):
+ (JSC::mathProtoFuncTan):
+ * runtime/NativeErrorConstructor.cpp:
+ (JSC::NativeErrorConstructor::NativeErrorConstructor):
+ (JSC::NativeErrorConstructor::construct):
+ * runtime/NumberConstructor.cpp:
+ (JSC::constructWithNumberConstructor):
+ (JSC::callNumberConstructor):
+ * runtime/NumberPrototype.cpp:
+ (JSC::numberProtoFuncToString):
+ (JSC::numberProtoFuncToLocaleString):
+ (JSC::numberProtoFuncValueOf):
+ (JSC::numberProtoFuncToFixed):
+ (JSC::numberProtoFuncToExponential):
+ (JSC::numberProtoFuncToPrecision):
+ * runtime/ObjectConstructor.cpp:
+ (JSC::constructObject):
+ * runtime/ObjectPrototype.cpp:
+ (JSC::objectProtoFuncValueOf):
+ (JSC::objectProtoFuncHasOwnProperty):
+ (JSC::objectProtoFuncIsPrototypeOf):
+ (JSC::objectProtoFuncDefineGetter):
+ (JSC::objectProtoFuncDefineSetter):
+ (JSC::objectProtoFuncLookupGetter):
+ (JSC::objectProtoFuncLookupSetter):
+ (JSC::objectProtoFuncPropertyIsEnumerable):
+ (JSC::objectProtoFuncToLocaleString):
+ (JSC::objectProtoFuncToString):
+ * runtime/Operations.h:
+ (JSC::JSValuePtr::equalSlowCaseInline):
+ (JSC::JSValuePtr::strictEqual):
+ (JSC::JSValuePtr::strictEqualSlowCaseInline):
+ * runtime/Protect.h:
+ (JSC::gcProtect):
+ (JSC::gcUnprotect):
+ * runtime/RegExpConstructor.cpp:
+ (JSC::setRegExpConstructorInput):
+ (JSC::setRegExpConstructorMultiline):
+ (JSC::constructRegExp):
+ * runtime/RegExpObject.cpp:
+ (JSC::setRegExpObjectLastIndex):
+ (JSC::RegExpObject::match):
+ * runtime/RegExpPrototype.cpp:
+ (JSC::regExpProtoFuncTest):
+ (JSC::regExpProtoFuncExec):
+ (JSC::regExpProtoFuncCompile):
+ (JSC::regExpProtoFuncToString):
+ * runtime/StringConstructor.cpp:
+ (JSC::stringFromCharCodeSlowCase):
+ (JSC::stringFromCharCode):
+ (JSC::constructWithStringConstructor):
+ (JSC::callStringConstructor):
+ * runtime/StringPrototype.cpp:
+ (JSC::stringProtoFuncReplace):
+ (JSC::stringProtoFuncToString):
+ (JSC::stringProtoFuncCharAt):
+ (JSC::stringProtoFuncCharCodeAt):
+ (JSC::stringProtoFuncConcat):
+ (JSC::stringProtoFuncIndexOf):
+ (JSC::stringProtoFuncLastIndexOf):
+ (JSC::stringProtoFuncMatch):
+ (JSC::stringProtoFuncSearch):
+ (JSC::stringProtoFuncSlice):
+ (JSC::stringProtoFuncSplit):
+ (JSC::stringProtoFuncSubstr):
+ (JSC::stringProtoFuncSubstring):
+ (JSC::stringProtoFuncToLowerCase):
+ (JSC::stringProtoFuncToUpperCase):
+ (JSC::stringProtoFuncLocaleCompare):
+ (JSC::stringProtoFuncBig):
+ (JSC::stringProtoFuncSmall):
+ (JSC::stringProtoFuncBlink):
+ (JSC::stringProtoFuncBold):
+ (JSC::stringProtoFuncFixed):
+ (JSC::stringProtoFuncItalics):
+ (JSC::stringProtoFuncStrike):
+ (JSC::stringProtoFuncSub):
+ (JSC::stringProtoFuncSup):
+ (JSC::stringProtoFuncFontcolor):
+ (JSC::stringProtoFuncFontsize):
+ (JSC::stringProtoFuncAnchor):
+ (JSC::stringProtoFuncLink):
+ * runtime/Structure.cpp:
+ (JSC::Structure::Structure):
+ (JSC::Structure::getEnumerablePropertyNames):
+ (JSC::Structure::createCachedPrototypeChain):
+ * runtime/Structure.h:
+ (JSC::Structure::mark):
+ * runtime/StructureChain.cpp:
+ (JSC::StructureChain::StructureChain):
+
+2009-01-19 Darin Adler <darin@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Bug 23409: REGRESSION: RegExp 'replace()' function improperly processes '$$'
+ <https://bugs.webkit.org/show_bug.cgi?id=23409>
+ <rdar://problem/6505723>
+
+ Test: fast/js/string-replace-3.html
+
+ * runtime/StringPrototype.cpp:
+ (JSC::substituteBackreferences): Remove code that adds an extra $ -- not sure
+ how this ever worked.
+
+2009-01-16 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ On x86-64 jit, cache JSImmedate::TagMask & JSImmedate::TagTypeNumber in
+ registers, save reloading them every time they're used.
+
+ Draws x86-64 jit performance close to that of i386 jit.
+
+ * assembler/MacroAssembler.h:
+ (JSC::MacroAssembler::subPtr):
+ (JSC::MacroAssembler::jnzPtr):
+ (JSC::MacroAssembler::jzPtr):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ * jit/JIT.h:
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileBinaryArithOpSlowCase):
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::emitJumpIfJSCell):
+ (JSC::JIT::emitJumpIfNotJSCell):
+ (JSC::JIT::emitJumpIfImmediateNumber):
+ (JSC::JIT::emitJumpIfNotImmediateNumber):
+ (JSC::JIT::emitJumpIfImmediateInteger):
+ (JSC::JIT::emitJumpIfNotImmediateInteger):
+ (JSC::JIT::emitFastArithIntToImmNoCheck):
+
+2009-01-16 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Add support to x86-64 JIT for inline double precision arithmetic ops.
+ +5/6% on x86-64, JIT enabled, sunspider.
+
+ * assembler/MacroAssembler.h:
+ (JSC::MacroAssembler::addPtr):
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::movq_rr):
+ * jit/JIT.h:
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileFastArith_op_pre_inc):
+ (JSC::JIT::compileBinaryArithOp):
+ (JSC::JIT::compileBinaryArithOpSlowCase):
+ (JSC::JIT::compileFastArith_op_add):
+ (JSC::JIT::compileFastArithSlow_op_add):
+ (JSC::JIT::compileFastArith_op_mul):
+ (JSC::JIT::compileFastArithSlow_op_mul):
+ (JSC::JIT::compileFastArith_op_sub):
+ (JSC::JIT::compileFastArithSlow_op_sub):
+ * parser/ResultType.h:
+ (JSC::ResultType::isReusable):
+ (JSC::ResultType::isInt32):
+ (JSC::ResultType::definitelyIsNumber):
+ (JSC::ResultType::mightBeNumber):
+ (JSC::ResultType::isNotNumber):
+ (JSC::ResultType::unknownType):
+
+2009-01-16 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ Fixes for SamplingTool.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23390
+
+ * assembler/MacroAssembler.h:
+ (JSC::MacroAssembler::storePtr):
+ * bytecode/SamplingTool.cpp:
+ (JSC::SamplingTool::run):
+ (JSC::SamplingTool::dump):
+ * bytecode/SamplingTool.h:
+ (JSC::SamplingTool::encodeSample):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ (JSC::JIT::privateCompile):
+ * jit/JIT.h:
+ (JSC::JIT::samplingToolTrackCodeBlock):
+ * jit/JITCall.cpp:
+ (JSC::JIT::compileOpCall):
+ (JSC::JIT::compileOpCallSlowCase):
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::emitCTICall_internal):
+
+2009-01-16 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Fixed <rdar://problem/6452301> REGRESSION: Latest WebKit nightlies
+ turn "c" into "" when stripping \\c_ character
+
+ * wrec/WRECParser.cpp:
+ (JSC::WREC::Parser::consumeEscape): Mimic a Firefox quirk when parsing
+ control escapes inside character classes.
+
+2009-01-16 Adam Roben <aroben@apple.com>
+
+ Windows build fix
+
+ * wrec/WRECParser.cpp:
+ (JSC::WREC::Parser::parseParentheses): Removed unreachable code.
+
+2009-01-15 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Cameron Zwarich.
+
+ Fixed <rdar://problem/6471394> REGRESSION (r39164): Discarding quantifier
+ on assertion gives incorrect result (23075)
+
+ https://bugs.webkit.org/show_bug.cgi?id=23075
+
+ * pcre/pcre_compile.cpp:
+ (compileBranch): Throw away an assertion if it's followed by a quantifier
+ with a 0 minimum, to match SpiderMonkey, v8, and the ECMA spec.
+
+ * wrec/WRECParser.cpp:
+ (JSC::WREC::Parser::parseParentheses): Fall back on PCRE for the rare
+ case of an assertion with a quantifier with a 0 minimum, since we
+ don't handle quantified subexpressions yet, and in this special case,
+ we can't just throw away the quantifier.
+
+2009-01-15 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Add support in ResultType to track that the results of bitops
+ are always of type int32_t.
+
+ * parser/Nodes.cpp:
+ (JSC::ReadModifyResolveNode::emitBytecode):
+ (JSC::ReadModifyDotNode::emitBytecode):
+ (JSC::ReadModifyBracketNode::emitBytecode):
+ * parser/Nodes.h:
+ (JSC::ExpressionNode::):
+ (JSC::BooleanNode::):
+ (JSC::NumberNode::):
+ (JSC::StringNode::):
+ (JSC::PrePostResolveNode::):
+ (JSC::TypeOfResolveNode::):
+ (JSC::TypeOfValueNode::):
+ (JSC::UnaryPlusNode::):
+ (JSC::NegateNode::):
+ (JSC::BitwiseNotNode::):
+ (JSC::LogicalNotNode::):
+ (JSC::MultNode::):
+ (JSC::DivNode::):
+ (JSC::ModNode::):
+ (JSC::SubNode::):
+ (JSC::LeftShiftNode::):
+ (JSC::RightShiftNode::):
+ (JSC::UnsignedRightShiftNode::):
+ (JSC::LessNode::):
+ (JSC::GreaterNode::):
+ (JSC::LessEqNode::):
+ (JSC::GreaterEqNode::):
+ (JSC::InstanceOfNode::):
+ (JSC::EqualNode::):
+ (JSC::NotEqualNode::):
+ (JSC::StrictEqualNode::):
+ (JSC::NotStrictEqualNode::):
+ (JSC::BitAndNode::):
+ (JSC::BitOrNode::):
+ (JSC::BitXOrNode::):
+ (JSC::LogicalOpNode::):
+ * parser/ResultType.h:
+ (JSC::ResultType::isInt32):
+ (JSC::ResultType::isNotNumber):
+ (JSC::ResultType::booleanType):
+ (JSC::ResultType::numberType):
+ (JSC::ResultType::numberTypeCanReuse):
+ (JSC::ResultType::numberTypeCanReuseIsInt32):
+ (JSC::ResultType::stringOrNumberTypeCanReuse):
+ (JSC::ResultType::stringType):
+ (JSC::ResultType::unknownType):
+ (JSC::ResultType::forAdd):
+ (JSC::ResultType::forBitOp):
+ (JSC::OperandTypes::OperandTypes):
+
+2009-01-15 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Add support for integer addition, subtraction and multiplication
+ in JIT code on x86-64.
+
+ * assembler/MacroAssembler.h:
+ (JSC::MacroAssembler::mul32):
+ (JSC::MacroAssembler::sub32):
+ (JSC::MacroAssembler::joMul32):
+ (JSC::MacroAssembler::joSub32):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ (JSC::JIT::privateCompileSlowCases):
+ * jit/JIT.h:
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileFastArith_op_add):
+ (JSC::JIT::compileFastArithSlow_op_add):
+ (JSC::JIT::compileFastArith_op_mul):
+ (JSC::JIT::compileFastArithSlow_op_mul):
+ (JSC::JIT::compileFastArith_op_sub):
+ (JSC::JIT::compileFastArithSlow_op_sub):
+
+2009-01-15 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ On x86-64 allow JSImmediate to encode 64-bit double precision values.
+ This patch only affects builds that set USE(ALTERNATE_JSIMMEDIATE).
+ Updates the implementation of JSValuePtr:: and JSImmediate:: methods
+ that operate on neumeric values to be be aware of the new representation.
+ When this representation is in use, the class JSNumberCell is redundant
+ and is compiled out.
+
+ The format of the new immediate representation is documented in JSImmediate.h.
+
+ * JavaScriptCore.exp:
+ * assembler/MacroAssembler.h:
+ (JSC::MacroAssembler::subPtr):
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::):
+ (JSC::X86Assembler::subq_rr):
+ (JSC::X86Assembler::movq_rr):
+ (JSC::X86Assembler::ucomisd_rr):
+ (JSC::X86Assembler::X86InstructionFormatter::twoByteOp64):
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::cti_op_stricteq):
+ (JSC::Interpreter::cti_op_nstricteq):
+ * jit/JIT.cpp:
+ (JSC::JIT::compileOpStrictEq):
+ (JSC::JIT::privateCompileMainPass):
+ (JSC::JIT::privateCompileSlowCases):
+ * jit/JIT.h:
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileFastArith_op_lshift):
+ (JSC::JIT::compileFastArith_op_rshift):
+ (JSC::JIT::compileFastArith_op_bitand):
+ (JSC::JIT::compileFastArith_op_mod):
+ (JSC::JIT::compileFastArith_op_add):
+ (JSC::JIT::compileFastArith_op_mul):
+ (JSC::JIT::compileFastArith_op_post_inc):
+ (JSC::JIT::compileFastArith_op_post_dec):
+ (JSC::JIT::compileFastArith_op_pre_inc):
+ (JSC::JIT::compileFastArith_op_pre_dec):
+ (JSC::JIT::putDoubleResultToJSNumberCellOrJSImmediate):
+ (JSC::JIT::compileBinaryArithOp):
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::emitJumpIfBothJSCells):
+ (JSC::JIT::emitJumpIfEitherNumber):
+ (JSC::JIT::emitJumpIfNotEitherNumber):
+ (JSC::JIT::emitJumpIfImmediateIntegerNumber):
+ (JSC::JIT::emitJumpIfNotImmediateIntegerNumber):
+ (JSC::JIT::emitJumpIfNotImmediateIntegerNumbers):
+ (JSC::JIT::emitJumpSlowCaseIfNotImmediateIntegerNumber):
+ (JSC::JIT::emitJumpSlowCaseIfNotImmediateIntegerNumbers):
+ (JSC::JIT::emitFastArithDeTagImmediate):
+ (JSC::JIT::emitFastArithDeTagImmediateJumpIfZero):
+ (JSC::JIT::emitFastArithReTagImmediate):
+ (JSC::JIT::emitFastArithIntToImmNoCheck):
+ * runtime/JSCell.h:
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::JSGlobalData):
+ * runtime/JSImmediate.cpp:
+ (JSC::JSImmediate::toThisObject):
+ (JSC::JSImmediate::toObject):
+ (JSC::JSImmediate::toString):
+ * runtime/JSImmediate.h:
+ (JSC::wtf_reinterpret_cast):
+ (JSC::JSImmediate::isNumber):
+ (JSC::JSImmediate::isIntegerNumber):
+ (JSC::JSImmediate::isDoubleNumber):
+ (JSC::JSImmediate::isPositiveIntegerNumber):
+ (JSC::JSImmediate::areBothImmediateIntegerNumbers):
+ (JSC::JSImmediate::makeInt):
+ (JSC::JSImmediate::makeDouble):
+ (JSC::JSImmediate::doubleValue):
+ (JSC::doubleToBoolean):
+ (JSC::JSImmediate::toBoolean):
+ (JSC::JSImmediate::getTruncatedUInt32):
+ (JSC::JSImmediate::makeOutOfIntegerRange):
+ (JSC::JSImmediate::from):
+ (JSC::JSImmediate::getTruncatedInt32):
+ (JSC::JSImmediate::toDouble):
+ (JSC::JSImmediate::getUInt32):
+ (JSC::JSValuePtr::isInt32Fast):
+ (JSC::JSValuePtr::isUInt32Fast):
+ (JSC::JSValuePtr::areBothInt32Fast):
+ (JSC::JSFastMath::canDoFastBitwiseOperations):
+ (JSC::JSFastMath::xorImmediateNumbers):
+ (JSC::JSFastMath::canDoFastRshift):
+ (JSC::JSFastMath::canDoFastUrshift):
+ (JSC::JSFastMath::rightShiftImmediateNumbers):
+ (JSC::JSFastMath::canDoFastAdditiveOperations):
+ (JSC::JSFastMath::addImmediateNumbers):
+ (JSC::JSFastMath::subImmediateNumbers):
+ * runtime/JSNumberCell.cpp:
+ (JSC::jsNumberCell):
+ * runtime/JSNumberCell.h:
+ (JSC::createNumberStructure):
+ (JSC::isNumberCell):
+ (JSC::asNumberCell):
+ (JSC::jsNumber):
+ (JSC::JSValuePtr::isDoubleNumber):
+ (JSC::JSValuePtr::getDoubleNumber):
+ (JSC::JSValuePtr::isNumber):
+ (JSC::JSValuePtr::uncheckedGetNumber):
+ (JSC::jsNaN):
+ (JSC::JSValuePtr::getNumber):
+ (JSC::JSValuePtr::numberToInt32):
+ (JSC::JSValuePtr::numberToUInt32):
+ * runtime/JSValue.h:
+ * runtime/NumberConstructor.cpp:
+ (JSC::numberConstructorNegInfinity):
+ (JSC::numberConstructorPosInfinity):
+ (JSC::numberConstructorMaxValue):
+ (JSC::numberConstructorMinValue):
+ * runtime/NumberObject.cpp:
+ (JSC::constructNumber):
+ * runtime/NumberObject.h:
+ * runtime/Operations.h:
+ (JSC::JSValuePtr::equal):
+ (JSC::JSValuePtr::equalSlowCaseInline):
+ (JSC::JSValuePtr::strictEqual):
+ (JSC::JSValuePtr::strictEqualSlowCaseInline):
+ * wtf/Platform.h:
+
+2009-01-15 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Geoffrey Garen.
+
+ <rdar://problem/6045018>
+ REGRESSION (r34838): JavaScript objects appear to be leaked after loading google.com
+
+ Subtract the number of JSStrings cached in SmallStrings when calculating the
+ number of live JSObjects.
+
+ * runtime/Collector.cpp:
+ (JSC::Heap::objectCount):
+ * runtime/SmallStrings.cpp:
+ (JSC::SmallStrings::count):
+ * runtime/SmallStrings.h:
+
+2009-01-15 Sam Weinig <sam@webkit.org>
+
+ Fix Qt build.
+
+ * runtime/Collector.cpp:
+
+2009-01-15 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Gavin Barraclough.
+
+ Fix crash seen running fast/canvas.
+
+ Make sure to mark the ScopeNode and CodeBlock being created
+ in the re-parse for exception information.
+
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::reparseForExceptionInfoIfNecessary):
+ * parser/Nodes.h:
+ (JSC::ScopeNode::mark):
+ * runtime/Collector.cpp:
+ (JSC::Heap::collect):
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::JSGlobalData):
+ * runtime/JSGlobalData.h:
+
+2009-01-15 Craig Schlenter <craig.schlenter@gmail.com>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23347
+ Compilation of JavaScriptCore/wtf/ThreadingPthreads.cpp fails on Linux
+
+ * wtf/ThreadingPthreads.cpp: included limits.h as INT_MAX is defined there.
+
+2009-01-15 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ Bug 23225: REGRESSION: Assertion failure in reparseInPlace() (m_sourceElements) at sfgate.com
+ <https://bugs.webkit.org/show_bug.cgi?id=23225> <rdar://problem/6487432>
+
+ Character position for open and closing brace was incorrectly referencing m_position to
+ record their position in a source document, however this is unsafe as BOMs may lead to
+ m_position being an arbitrary position from the real position of the current character.
+
+ * parser/Lexer.cpp:
+ (JSC::Lexer::matchPunctuator):
+
+2009-01-14 David Kilzer <ddkilzer@apple.com>
+
+ Bug 23153: JSC build always touches JavaScriptCore/docs/bytecode.html
+
+ <https://bugs.webkit.org/show_bug.cgi?id=23153>
+
+ Reviewed by Darin Adler.
+
+ Instead of building bytecode.html into ${SRCROOT}/docs/bytecode.html, build it
+ into ${BUILT_PRODUCTS_DIR}/DerivedSources/JavaScriptCore/docs/bytecode.html.
+
+ Also fixes make-bytecode-docs.pl to actually generate documentation.
+
+ * DerivedSources.make: Changed bytecode.html to be built into local docs
+ directory in ${BUILT_PRODUCTS_DIR}/DerivedSources/JavaScriptCore.
+ * JavaScriptCore.xcodeproj/project.pbxproj: Added "/docs" to the end of the
+ "mkdir -p" command so that the docs subdirectory is automatically created.
+ * docs/make-bytecode-docs.pl: Changed BEGIN_OPCODE to DEFINE_OPCODE so that
+ documentation is actually generated.
+
+2009-01-14 Adam Treat <adam.treat@torchmobile.com>
+
+ Build fix for Qt from Dmitry Titov.
+
+ * wtf/ThreadingQt.cpp:
+ (WTF::ThreadCondition::timedWait):
+
+2009-01-14 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Cameron Zwarich.
+
+ Bug 22903: REGRESSION (r36267): visiting this site reliably crashes WebKit nightly
+
+ EvalCodeBlock's do not reference the functions that are declared inside the eval
+ code, this means that simply marking the EvalCodeBlock through the global object
+ is insufficient to mark the declared functions. This patch corrects this by
+ explicitly marking the CodeBlocks of all the functions declared in the cached
+ EvalNode.
+
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::mark):
+ * bytecode/CodeBlock.h:
+ (JSC::CodeBlock::hasFunctions):
+ * bytecode/EvalCodeCache.h:
+ (JSC::EvalCodeCache::mark):
+ * parser/Nodes.cpp:
+ (JSC::ScopeNodeData::mark):
+ (JSC::EvalNode::mark):
+ * parser/Nodes.h:
+
+2009-01-14 Dmitry Titov <dimich@chromium.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23312
+ Implement MessageQueue::waitForMessageTimed()
+ Also fixed ThreadCondition::timedWait() to take absolute time, as discussed on webkit-dev.
+ Win32 version of timedWait still has to be implemented.
+
+ * wtf/MessageQueue.h:
+ (WTF::MessageQueueWaitResult: new enum for the result of MessageQueue::waitForMessageTimed.
+ (WTF::MessageQueue::waitForMessage):
+ (WTF::MessageQueue::waitForMessageTimed): New method.
+ * wtf/Threading.h:
+ * wtf/ThreadingGtk.cpp:
+ (WTF::ThreadCondition::timedWait): changed to use absolute time instead of interval.
+ * wtf/ThreadingNone.cpp:
+ (WTF::ThreadCondition::timedWait): ditto.
+ * wtf/ThreadingPthreads.cpp:
+ (WTF::ThreadCondition::timedWait): ditto.
+ * wtf/ThreadingQt.cpp:
+ (WTF::ThreadCondition::timedWait): ditto.
+ * wtf/ThreadingWin.cpp:
+ (WTF::ThreadCondition::timedWait): ditto. The actual Win32 code is still to be implemented.
+
+2009-01-14 Dean McNamee <deanm@chromium.org>
+
+ Reviewed by Darin Adler and Oliver hunt.
+
+ Correctly match allocation functions by implementing a custom deref().
+
+ https://bugs.webkit.org/show_bug.cgi?id=23315
+
+ * runtime/ByteArray.h:
+ (JSC::ByteArray::deref):
+ (JSC::ByteArray::ByteArray):
+
+2009-01-14 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by John Sullivan.
+
+ - update copyright
+
+ * Info.plist:
+
+2009-01-13 Beth Dakin <bdakin@apple.com>
+
+ Reviewed by Darin Adler and Oliver Hunt.
+
+ <rdar://problem/6489314> REGRESSION: Business widget's front side
+ fails to render correctly when flipping widget
+
+ The problem here is that parseInt was parsing NaN as 0. This patch
+ corrects that by parsing NaN as NaN. This matches our old behavior
+ and Firefox.
+
+ * runtime/JSGlobalObjectFunctions.cpp:
+ (JSC::globalFuncParseInt):
+
+2009-01-13 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Fix for: https://bugs.webkit.org/show_bug.cgi?id=23292
+
+ Implementation of two argument canDoFastAdditiveOperations does not correlate well with reality.
+
+ * runtime/JSImmediate.h:
+ (JSC::JSFastMath::canDoFastAdditiveOperations):
+
+2009-01-13 Zalan Bujtas <zbujtas@gmail.com>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23290
+ Fix JSImmediate::isImmediate(src) to !src->isCell()
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+
+2009-01-13 Dmitry Titov <dimich@chromium.org>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23281
+ Fix the Chromium Win build.
+ Need to use PLATFORM(WIN_OS) instead of PLATFORM(WIN).
+ Moved GTK and WX up in #if sequence because they could come with WIN_OS too,
+ while they have their own implementation even on Windows.
+
+ * wtf/CurrentTime.cpp:
+ (WTF::currentTime):
+
+2009-01-12 Gavin Barraclough <barraclough@apple.com>
Reviewed by Oliver Hunt.
+ Make the JSImmediate interface private.
+
+ All manipulation of JS values should be through the JSValuePtr class, not by using JSImmediate
+ directly. The key missing methods on JSValuePtr are:
+
+ * isCell() - check for values that are JSCell*s, and as such where asCell() may be used.
+ * isInt32Fast() getInt32Fast() - fast check/access for integer immediates.
+ * isUInt32Fast() getUInt32Fast() - ditto for unsigned integer immediates.
+
+ The JIT is allowed full access to JSImmediate, since it needs to be able to directly
+ manipulate JSValuePtrs. The Interpreter is provided access to perform operations directly
+ on JSValuePtrs through the new JSFastMath interface.
+
+ No performance impact.
+
+ * API/JSCallbackObjectFunctions.h:
+ (JSC::::toNumber):
+ * API/JSValueRef.cpp:
+ (JSValueIsEqual):
+ (JSValueIsStrictEqual):
+ * JavaScriptCore.exp:
+ * bytecode/CodeBlock.h:
+ (JSC::CodeBlock::isKnownNotImmediate):
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::keyForImmediateSwitch):
+ * bytecompiler/BytecodeGenerator.h:
+ (JSC::BytecodeGenerator::JSValueHashTraits::constructDeletedValue):
+ (JSC::BytecodeGenerator::JSValueHashTraits::isDeletedValue):
+ * interpreter/Interpreter.cpp:
+ (JSC::jsLess):
+ (JSC::jsLessEq):
+ (JSC::jsAdd):
+ (JSC::jsIsObjectType):
+ (JSC::cachePrototypeChain):
+ (JSC::Interpreter::tryCachePutByID):
+ (JSC::Interpreter::tryCacheGetByID):
+ (JSC::Interpreter::privateExecute):
+ (JSC::Interpreter::tryCTICachePutByID):
+ (JSC::Interpreter::tryCTICacheGetByID):
+ (JSC::Interpreter::cti_op_add):
+ (JSC::Interpreter::cti_op_get_by_id_self_fail):
+ (JSC::Interpreter::cti_op_get_by_id_proto_list):
+ (JSC::Interpreter::cti_op_instanceof):
+ (JSC::Interpreter::cti_op_mul):
+ (JSC::Interpreter::cti_op_get_by_val):
+ (JSC::Interpreter::cti_op_get_by_val_byte_array):
+ (JSC::Interpreter::cti_op_sub):
+ (JSC::Interpreter::cti_op_put_by_val):
+ (JSC::Interpreter::cti_op_put_by_val_array):
+ (JSC::Interpreter::cti_op_put_by_val_byte_array):
+ (JSC::Interpreter::cti_op_negate):
+ (JSC::Interpreter::cti_op_div):
+ (JSC::Interpreter::cti_op_eq):
+ (JSC::Interpreter::cti_op_lshift):
+ (JSC::Interpreter::cti_op_bitand):
+ (JSC::Interpreter::cti_op_rshift):
+ (JSC::Interpreter::cti_op_bitnot):
+ (JSC::Interpreter::cti_op_neq):
+ (JSC::Interpreter::cti_op_urshift):
+ (JSC::Interpreter::cti_op_call_eval):
+ (JSC::Interpreter::cti_op_throw):
+ (JSC::Interpreter::cti_op_is_undefined):
+ (JSC::Interpreter::cti_op_stricteq):
+ (JSC::Interpreter::cti_op_nstricteq):
+ (JSC::Interpreter::cti_op_switch_imm):
+ (JSC::Interpreter::cti_vm_throw):
+ * interpreter/Interpreter.h:
+ (JSC::Interpreter::isJSArray):
+ (JSC::Interpreter::isJSString):
+ (JSC::Interpreter::isJSByteArray):
+ * jit/JIT.cpp:
+ (JSC::JIT::compileOpStrictEq):
+ (JSC::JIT::privateCompileMainPass):
+ * jit/JIT.h:
+ (JSC::JIT::isStrictEqCaseHandledInJITCode):
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileFastArith_op_rshift):
+ (JSC::JIT::compileFastArith_op_bitand):
+ (JSC::JIT::compileFastArith_op_mod):
+ * jit/JITCall.cpp:
+ (JSC::JIT::unlinkCall):
+ (JSC::JIT::compileOpCall):
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::getConstantOperandImmediateInt):
+ (JSC::JIT::isOperandConstantImmediateInt):
+ * parser/Nodes.cpp:
+ (JSC::processClauseList):
+ * runtime/ArrayPrototype.cpp:
+ (JSC::arrayProtoFuncIndexOf):
+ (JSC::arrayProtoFuncLastIndexOf):
+ * runtime/BooleanPrototype.cpp:
+ (JSC::booleanProtoFuncValueOf):
+ * runtime/Collector.cpp:
+ (JSC::Heap::protect):
+ (JSC::Heap::unprotect):
+ (JSC::Heap::heap):
+ * runtime/JSByteArray.cpp:
+ (JSC::JSByteArray::getOwnPropertySlot):
+ * runtime/JSByteArray.h:
+ (JSC::JSByteArray::getIndex):
+ * runtime/JSCell.cpp:
+ * runtime/JSCell.h:
+ (JSC::JSValuePtr::isNumberCell):
+ (JSC::JSValuePtr::asCell):
+ (JSC::JSValuePtr::isNumber):
+ * runtime/JSGlobalObjectFunctions.cpp:
+ (JSC::globalFuncParseInt):
+ * runtime/JSImmediate.h:
+ (JSC::js0):
+ (JSC::jsImpossibleValue):
+ (JSC::JSValuePtr::toInt32):
+ (JSC::JSValuePtr::toUInt32):
+ (JSC::JSValuePtr::isCell):
+ (JSC::JSValuePtr::isInt32Fast):
+ (JSC::JSValuePtr::getInt32Fast):
+ (JSC::JSValuePtr::isUInt32Fast):
+ (JSC::JSValuePtr::getUInt32Fast):
+ (JSC::JSValuePtr::makeInt32Fast):
+ (JSC::JSValuePtr::areBothInt32Fast):
+ (JSC::JSFastMath::canDoFastBitwiseOperations):
+ (JSC::JSFastMath::equal):
+ (JSC::JSFastMath::notEqual):
+ (JSC::JSFastMath::andImmediateNumbers):
+ (JSC::JSFastMath::xorImmediateNumbers):
+ (JSC::JSFastMath::orImmediateNumbers):
+ (JSC::JSFastMath::canDoFastRshift):
+ (JSC::JSFastMath::canDoFastUrshift):
+ (JSC::JSFastMath::rightShiftImmediateNumbers):
+ (JSC::JSFastMath::canDoFastAdditiveOperations):
+ (JSC::JSFastMath::addImmediateNumbers):
+ (JSC::JSFastMath::subImmediateNumbers):
+ (JSC::JSFastMath::incImmediateNumber):
+ (JSC::JSFastMath::decImmediateNumber):
+ * runtime/JSNumberCell.h:
+ (JSC::JSValuePtr::asNumberCell):
+ (JSC::jsNumber):
+ (JSC::JSValuePtr::uncheckedGetNumber):
+ (JSC::JSNumberCell::toInt32):
+ (JSC::JSNumberCell::toUInt32):
+ (JSC::JSValuePtr::toJSNumber):
+ (JSC::JSValuePtr::getNumber):
+ (JSC::JSValuePtr::numberToInt32):
+ (JSC::JSValuePtr::numberToUInt32):
+ * runtime/JSObject.h:
+ (JSC::JSValuePtr::isObject):
+ (JSC::JSValuePtr::get):
+ (JSC::JSValuePtr::put):
+ * runtime/JSValue.cpp:
+ (JSC::JSValuePtr::toInteger):
+ (JSC::JSValuePtr::toIntegerPreserveNaN):
+ * runtime/JSValue.h:
+ * runtime/Operations.cpp:
+ (JSC::JSValuePtr::equalSlowCase):
+ (JSC::JSValuePtr::strictEqualSlowCase):
+ * runtime/Operations.h:
+ (JSC::JSValuePtr::equal):
+ (JSC::JSValuePtr::equalSlowCaseInline):
+ (JSC::JSValuePtr::strictEqual):
+ (JSC::JSValuePtr::strictEqualSlowCaseInline):
+ * runtime/Protect.h:
+ (JSC::gcProtect):
+ (JSC::gcUnprotect):
+ * runtime/StringPrototype.cpp:
+ (JSC::stringProtoFuncCharAt):
+ (JSC::stringProtoFuncCharCodeAt):
+ * runtime/Structure.cpp:
+ (JSC::Structure::createCachedPrototypeChain):
+
+2009-01-12 Kevin Ollivier <kevino@theolliviers.com>
+
+ Since date time functions have moved here, now the wx port JSC
+ needs to depend on wx.
+
+ * jscore.bkl:
+
+2009-01-11 David Levin <levin@chromium.org>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23245
+
+ Add initializeThreading to key places in JS API to ensure that
+ UString is properly initialized.
+
+ * API/JSContextRef.cpp:
+ (JSContextGroupCreate):
+ (JSGlobalContextCreate):
+ * API/JSObjectRef.cpp:
+ (JSClassCreate):
+ * API/JSStringRef.cpp:
+ (JSStringCreateWithCharacters):
+ (JSStringCreateWithUTF8CString):
+ * API/JSStringRefCF.cpp:
+ (JSStringCreateWithCFString):
+
+2009-01-11 David Levin <levin@chromium.org>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23175
+
+ Separate out BaseString information from UString::Rep and make all baseString access go through
+ a member function, so that it may be used for something else (in the future) in the BaseString
+ case.
+
+ * runtime/SmallStrings.cpp:
+ (JSC::SmallStringsStorage::rep):
+ (JSC::SmallStringsStorage::SmallStringsStorage):
+ (JSC::SmallStrings::SmallStrings):
+ (JSC::SmallStrings::mark):
+ Adjust to account for the changes in UString and put the UString in place in
+ SmallStringsStorage to aid in locality of reference among the UChar[] and UString::Rep's.
+
+ * runtime/SmallStrings.h:
+ * runtime/UString.cpp:
+ (JSC::initializeStaticBaseString):
+ (JSC::initializeUString):
+ (JSC::UString::Rep::create):
+ (JSC::UString::Rep::destroy):
+ (JSC::UString::Rep::checkConsistency):
+ (JSC::expandCapacity):
+ (JSC::UString::expandPreCapacity):
+ (JSC::concatenate):
+ (JSC::UString::append):
+ (JSC::UString::operator=):
+ * runtime/UString.h:
+ (JSC::UString::Rep::baseIsSelf):
+ (JSC::UString::Rep::setBaseString):
+ (JSC::UString::Rep::baseString):
+ (JSC::UString::Rep::):
+ (JSC::UString::Rep::null):
+ (JSC::UString::Rep::empty):
+ (JSC::UString::Rep::data):
+ (JSC::UString::cost):
+ Separate out the items out used by base strings from those used in Rep's that only
+ point to base strings. (This potentially saves 24 bytes per Rep.)
+
+2009-01-11 Darin Adler <darin@apple.com>
+
+ Reviewed by Dan Bernstein.
+
+ Bug 23239: improve handling of unused arguments in JavaScriptCore
+ https://bugs.webkit.org/show_bug.cgi?id=23239
+
+ * runtime/DatePrototype.cpp: Moved LocaleDateTimeFormat enum outside #if
+ so we can use this on all platforms. Changed valueOf to share the same
+ function with getTime, since the contents of the two are identical. Removed
+ a FIXME since the idea isn't really specific enough or helpful enough to
+ need to sit here in the source code.
+ (JSC::formatLocaleDate): Changed the Mac version of this function to take
+ the same arguments as the non-Mac version so the caller doesn't have to
+ special-case the two platforms. Also made the formatString array be const;
+ before the characters were, but the array was a modifiable global variable.
+ (JSC::dateProtoFuncToLocaleString): Changed to call the new unified
+ version of formatLocaleDate and remove the ifdef.
+ (JSC::dateProtoFuncToLocaleDateString): Ditto.
+ (JSC::dateProtoFuncToLocaleTimeString): Ditto.
+
+ * runtime/JSNotAnObject.cpp:
+ (JSC::JSNotAnObject::toObject): Use the new ASSERT_UNUSED instead of the
+ old UNUSED_PARAM.
+
+ * runtime/RegExp.cpp:
+ (JSC::RegExp::RegExp): Changed to only use UNUSED_PARAM when the parameter
+ is actually unused.
+
+ * wtf/TCSystemAlloc.cpp:
+ (TCMalloc_SystemRelease): Changed to only use UNUSED_PARAM when the parameter
+ is actually unused.
+ (TCMalloc_SystemCommit): Changed to omit the argument names instead of using
+ UNUSED_PARAM.
+
+2009-01-11 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by NOBODY (Build fix).
+
+ Fix the build (whoops)
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::cti_op_get_by_val):
+
+2009-01-11 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Darin Adler and Anders Carlsson
+
+ Bug 23128: get/put_by_val need to respecialise in the face of ByteArray
+
+ Restructure the code slightly, and add comments per Darin's suggestions
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::cti_op_get_by_val):
+ (JSC::Interpreter::cti_op_get_by_val_byte_array):
+ (JSC::Interpreter::cti_op_put_by_val):
+ (JSC::Interpreter::cti_op_put_by_val_byte_array):
+
+2009-01-11 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Anders Carlsson.
+
+ Whoops, I accidentally removed an exception check from fast the
+ fast path for string indexing when i originally landed the
+ byte array logic.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::cti_op_get_by_val):
+
+2009-01-11 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Anders Carlsson.
+
+ Bug 23128: get/put_by_val need to respecialise in the face of ByteArray
+ <https://bugs.webkit.org/show_bug.cgi?id=23128>
+
+ Fairly simple patch, add specialised versions of cti_op_get/put_by_val
+ that assume ByteArray, thus avoiding a few branches in the case of bytearray
+ manipulation.
+
+ No effect on SunSpider. 15% win on the original testcase.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::cti_op_get_by_val):
+ (JSC::Interpreter::cti_op_get_by_val_byte_array):
+ (JSC::Interpreter::cti_op_put_by_val):
+ (JSC::Interpreter::cti_op_put_by_val_byte_array):
+ * interpreter/Interpreter.h:
+
+2009-01-11 Alexey Proskuryakov <ap@webkit.org>
+
+ Try to fix Windows build.
+
+ * wtf/CurrentTime.cpp: Added a definition of msPerSecond (previously, this code was in
+ DateMath.cpp, with constant definition in DateTime.h)
+
+2009-01-11 Alexey Proskuryakov <ap@webkit.org>
+
+ Try to fix Windows build.
+
+ * wtf/CurrentTime.cpp: Include <sys/types.h> and <sys/timeb.h>, as MSDN says to.
+
+2009-01-11 Dmitry Titov <dimich@chromium.org>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23207
+ Moved currentTime() to from WebCore to WTF.
+
+ * GNUmakefile.am:
+ * JavaScriptCore.exp: added export for WTF::currentTime()
+ * JavaScriptCore.pri:
+ * JavaScriptCore.scons:
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * JavaScriptCoreSources.bkl:
+ * runtime/DateMath.cpp:
+ (JSC::getCurrentUTCTimeWithMicroseconds): This function had another implementation of currentTime(), essentially. Now uses WTF version.
+ * wtf/CurrentTime.cpp: Added.
+ (WTF::currentTime):
+ (WTF::highResUpTime):
+ (WTF::lowResUTCTime):
+ (WTF::qpcAvailable):
+ * wtf/CurrentTime.h: Added.
+
+2009-01-09 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Stage two of converting JSValue from a pointer to a class type.
+ Remove the class JSValue. The functionallity has been transitioned
+ into the wrapper class type JSValuePtr.
+
+ The last stage will be to rename JSValuePtr to JSValue, remove the
+ overloaded -> operator, and switch operations on JSValuePtrs from
+ using '->' to use '.' instead.
+
+ * API/APICast.h:
+ * JavaScriptCore.exp:
+ * runtime/JSCell.h:
+ (JSC::asCell):
+ (JSC::JSValuePtr::asCell):
+ (JSC::JSValuePtr::isNumber):
+ (JSC::JSValuePtr::isString):
+ (JSC::JSValuePtr::isGetterSetter):
+ (JSC::JSValuePtr::isObject):
+ (JSC::JSValuePtr::getNumber):
+ (JSC::JSValuePtr::getString):
+ (JSC::JSValuePtr::getObject):
+ (JSC::JSValuePtr::getCallData):
+ (JSC::JSValuePtr::getConstructData):
+ (JSC::JSValuePtr::getUInt32):
+ (JSC::JSValuePtr::getTruncatedInt32):
+ (JSC::JSValuePtr::getTruncatedUInt32):
+ (JSC::JSValuePtr::mark):
+ (JSC::JSValuePtr::marked):
+ (JSC::JSValuePtr::toPrimitive):
+ (JSC::JSValuePtr::getPrimitiveNumber):
+ (JSC::JSValuePtr::toBoolean):
+ (JSC::JSValuePtr::toNumber):
+ (JSC::JSValuePtr::toString):
+ (JSC::JSValuePtr::toObject):
+ (JSC::JSValuePtr::toThisObject):
+ (JSC::JSValuePtr::needsThisConversion):
+ (JSC::JSValuePtr::toThisString):
+ (JSC::JSValuePtr::getJSNumber):
+ * runtime/JSImmediate.h:
+ (JSC::JSValuePtr::isUndefined):
+ (JSC::JSValuePtr::isNull):
+ (JSC::JSValuePtr::isUndefinedOrNull):
+ (JSC::JSValuePtr::isBoolean):
+ (JSC::JSValuePtr::getBoolean):
+ (JSC::JSValuePtr::toInt32):
+ (JSC::JSValuePtr::toUInt32):
+ * runtime/JSNumberCell.h:
+ (JSC::JSValuePtr::uncheckedGetNumber):
+ (JSC::JSValuePtr::toJSNumber):
+ * runtime/JSObject.h:
+ (JSC::JSValuePtr::isObject):
+ (JSC::JSValuePtr::get):
+ (JSC::JSValuePtr::put):
+ * runtime/JSString.h:
+ (JSC::JSValuePtr::toThisJSString):
+ * runtime/JSValue.cpp:
+ (JSC::JSValuePtr::toInteger):
+ (JSC::JSValuePtr::toIntegerPreserveNaN):
+ (JSC::JSValuePtr::toInt32SlowCase):
+ (JSC::JSValuePtr::toUInt32SlowCase):
+ * runtime/JSValue.h:
+ (JSC::JSValuePtr::makeImmediate):
+ (JSC::JSValuePtr::immediateValue):
+ (JSC::JSValuePtr::JSValuePtr):
+ (JSC::JSValuePtr::operator->):
+ (JSC::JSValuePtr::operator bool):
+ (JSC::JSValuePtr::operator==):
+ (JSC::JSValuePtr::operator!=):
+ (JSC::JSValuePtr::encode):
+ (JSC::JSValuePtr::decode):
+ (JSC::JSValuePtr::toFloat):
+ (JSC::JSValuePtr::asValue):
+ (JSC::operator==):
+ (JSC::operator!=):
+
+2009-01-09 David Levin <levin@chromium.org>
+
+ Reviewed by Oliver Hunt.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23175
+
+ Adjustment to previous patch. Remove call to initilizeThreading from JSGlobalCreate
+ and fix jsc.cpp instead.
+
+ * jsc.cpp:
+ (main):
+ (jscmain):
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::create):
+
+2009-01-09 Sam Weinig <sam@webkit.org>
+
+ Roll r39720 back in with a working interpreted mode.
+
+2009-01-09 David Levin <levin@chromium.org>
+
+ Reviewed by Oliver Hunt.
+
+ https://bugs.webkit.org/show_bug.cgi?id=23175
+
+ Added a template to make the pointer and flags combination
+ in UString more readable and less error prone.
+
+ * GNUmakefile.am:
+ * JavaScriptCore.exp:
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ Added PtrAndFlags.h (and sorted the xcode project file).
+
+ * runtime/Identifier.cpp:
+ (JSC::Identifier::add):
+ (JSC::Identifier::addSlowCase):
+ * runtime/InitializeThreading.cpp:
+ (JSC::initializeThreadingOnce):
+ Made the init threading initialize the UString globals. Before
+ these were initilized using {} but that became harder due to the
+ addition of this tempalte class.
+
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::create):
+ * runtime/PropertyNameArray.cpp:
+ (JSC::PropertyNameArray::add):
+ * runtime/UString.cpp:
+ (JSC::initializeStaticBaseString):
+ (JSC::initializeUString):
+ (JSC::UString::Rep::create):
+ (JSC::UString::Rep::createFromUTF8):
+ (JSC::createRep):
+ (JSC::UString::UString):
+ (JSC::concatenate):
+ (JSC::UString::operator=):
+ (JSC::UString::makeNull):
+ (JSC::UString::nullRep):
+ * runtime/UString.h:
+ (JSC::UString::Rep::identifierTable):
+ (JSC::UString::Rep::setIdentifierTable):
+ (JSC::UString::Rep::isStatic):
+ (JSC::UString::Rep::setStatic):
+ (JSC::UString::Rep::):
+ (JSC::UString::Rep::null):
+ (JSC::UString::Rep::empty):
+ (JSC::UString::isNull):
+ (JSC::UString::null):
+ (JSC::UString::UString):
+
+ * wtf/PtrAndFlags.h: Added.
+ (WTF::PtrAndFlags::PtrAndFlags):
+ (WTF::PtrAndFlags::isFlagSet):
+ (WTF::PtrAndFlags::setFlag):
+ (WTF::PtrAndFlags::clearFlag):
+ (WTF::PtrAndFlags::get):
+ (WTF::PtrAndFlags::set):
+ A simple way to layer together a pointer and 2 flags. It relies on the pointer being 4 byte aligned,
+ which should happen for all allocators (due to aligning pointers, int's, etc. on 4 byte boundaries).
+
+2009-01-08 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by -O-l-i-v-e-r- -H-u-n-t- Sam Weinig (sorry, Sam!).
+
Encode immediates in the low word of JSValuePtrs, on x86-64.
On 32-bit platforms a JSValuePtr may represent a 31-bit signed integer.
diff --git a/src/3rdparty/webkit/JavaScriptCore/DerivedSources.make b/src/3rdparty/webkit/JavaScriptCore/DerivedSources.make
index 865ba7c..4b33682 100644
--- a/src/3rdparty/webkit/JavaScriptCore/DerivedSources.make
+++ b/src/3rdparty/webkit/JavaScriptCore/DerivedSources.make
@@ -1,4 +1,4 @@
-# Copyright (C) 2006, 2007, 2008 2009 Apple Inc. All rights reserved.
+# Copyright (C) 2006, 2007, 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
@@ -46,7 +46,7 @@ all : \
RegExpConstructor.lut.h \
RegExpObject.lut.h \
StringPrototype.lut.h \
- $(JavaScriptCore)/docs/bytecode.html \
+ docs/bytecode.html \
#
# lookup tables for classes
@@ -71,5 +71,5 @@ Grammar.cpp: Grammar.y
chartables.c : dftables
$^ $@
-$(JavaScriptCore)/docs/bytecode.html: make-bytecode-docs.pl Interpreter.cpp
+docs/bytecode.html: make-bytecode-docs.pl Interpreter.cpp
perl $^ $@
diff --git a/src/3rdparty/webkit/JavaScriptCore/Info.plist b/src/3rdparty/webkit/JavaScriptCore/Info.plist
index 55537af..17949b0 100644
--- a/src/3rdparty/webkit/JavaScriptCore/Info.plist
+++ b/src/3rdparty/webkit/JavaScriptCore/Info.plist
@@ -7,7 +7,7 @@
<key>CFBundleExecutable</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundleGetInfoString</key>
- <string>${BUNDLE_VERSION}, Copyright 2003-2007 Apple Inc.; Copyright 1999-2001 Harri Porten &lt;porten@kde.org&gt;; Copyright 2001 Peter Kelly &lt;pmk@post.com&gt;; Copyright 1997-2005 University of Cambridge; Copyright 1991, 2000, 2001 by Lucent Technologies.</string>
+ <string>${BUNDLE_VERSION}, Copyright 2003-2009 Apple Inc.; Copyright 1999-2001 Harri Porten &lt;porten@kde.org&gt;; Copyright 2001 Peter Kelly &lt;pmk@post.com&gt;; Copyright 1997-2005 University of Cambridge; Copyright 1991, 2000, 2001 by Lucent Technologies.</string>
<key>CFBundleIdentifier</key>
<string>com.apple.${PRODUCT_NAME}</string>
<key>CFBundleInfoDictionaryVersion</key>
diff --git a/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.order b/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.order
index 9f7cb30..bb56e98 100644
--- a/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.order
+++ b/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.order
@@ -1,1526 +1,1965 @@
__ZN3WTF10fastMallocEm
+__ZN3WTF10fastMallocILb1EEEPvm
__ZN3WTF20TCMalloc_ThreadCache10InitModuleEv
-__ZN3WTF15InitSizeClassesEv
+__ZN3WTFL15InitSizeClassesEv
__Z20TCMalloc_SystemAllocmPmm
-__ZN3WTF17TCMalloc_PageHeap4initEv
+__ZN3WTFL13MetaDataAllocEm
__ZN3WTF20TCMalloc_ThreadCache22CreateCacheIfNecessaryEv
__ZN3WTF25TCMalloc_Central_FreeList11RemoveRangeEPPvS2_Pi
__ZN3WTF25TCMalloc_Central_FreeList18FetchFromSpansSafeEv
__ZN3WTF17TCMalloc_PageHeap10AllocLargeEm
__ZN3WTF17TCMalloc_PageHeap8GrowHeapEm
-__ZN3WTF13MetaDataAllocEm
-__ZN3WTF17TCMalloc_PageHeap19IncrementalScavengeEm
+__ZN3WTF19initializeThreadingEv
+__ZN3WTF20initializeMainThreadEv
+__ZN3WTF5MutexC1Ev
+__ZN3WTF28initializeMainThreadPlatformEv
+__ZN3WTF36lockAtomicallyInitializedStaticMutexEv
__ZN3WTF8fastFreeEPv
+__ZN3WTF38unlockAtomicallyInitializedStaticMutexEv
+__ZN3JSC19initializeThreadingEv
+__ZN3JSCL23initializeThreadingOnceEv
+__ZN3JSC17initializeUStringEv
+__ZN3JSC12initDateMathEv
+__ZN3WTF11currentTimeEv
+__ZN3WTF15ThreadConditionC1Ev
+__ZN3WTF5Mutex4lockEv
+__ZN3WTF5Mutex6unlockEv
+__ZN3WTF12createThreadEPFPvS0_ES0_PKc
+__ZN3WTF20createThreadInternalEPFPvS0_ES0_PKc
+__ZN3WTFL35establishIdentifierForPthreadHandleERP17_opaque_pthread_t
+__ZN3WTF9HashTableIjSt4pairIjP17_opaque_pthread_tENS_18PairFirstExtractorIS4_EENS_7IntHashIjEENS_14PairHashTraitsINS_10HashTrai
+__ZN3WTFL16threadEntryPointEPv
__ZN3WTF16fastZeroedMallocEm
+__ZN3WTF21setThreadNameInternalEPKc
+__ZN3WTF5MutexD1Ev
+__ZN3WTF25TCMalloc_Central_FreeList11InsertRangeEPvS1_i
+__ZN3WTF25TCMalloc_Central_FreeList18ReleaseListToSpansEPv
+__ZN3WTF12isMainThreadEv
__ZN3WTF14FastMallocZone4sizeEP14_malloc_zone_tPKv
-__ZN3KJS8Bindings10RootObject19setCreateRootObjectEPFN3WTF10PassRefPtrIS1_EEPvE
-__ZN3KJS8Bindings8Instance21setDidExecuteFunctionEPFvPNS_9ExecStateEPNS_8JSObjectEE
-_kjs_strtod
-__Z15jsRegExpCompilePKti24JSRegExpIgnoreCaseOption23JSRegExpMultilineOptionPjPPKc
-__Z30calculateCompiledPatternLengthPKti24JSRegExpIgnoreCaseOptionR11CompileDataR9ErrorCode
-__Z11checkEscapePPKtS0_P9ErrorCodeib
-__Z13compileBranchiPiPPhPPKtS3_P9ErrorCodeS_S_R11CompileData
-__Z15jsRegExpExecutePK8JSRegExpPKtiiPii
+__ZN3WTF13currentThreadEv
+__ZN3WTF16callOnMainThreadEPFvPvES0_
+__ZN3WTF5DequeINS_19FunctionWithContextEE14expandCapacityEv
+__ZN3WTF37scheduleDispatchFunctionsOnMainThreadEv
+__ZN3WTF15ThreadCondition4waitERNS_5MutexE
+__ZN3JSC8DebuggerC2Ev
+__ZN3WTF6strtodEPKcPPc
+__ZN3WTF15ThreadCondition6signalEv
+__ZN3WTF15ThreadCondition9timedWaitERNS_5MutexEd
+__ZN3WTF15ThreadCondition9broadcastEv
+-[WTFMainThreadCaller call]
+__ZN3WTF31dispatchFunctionsFromMainThreadEv
+__ZN3WTF14FastMallocZone9forceLockEP14_malloc_zone_t
__ZN3WTF11fastReallocEPvm
-__ZN3KJS20createDidLockJSMutexEv
-__ZN3KJS9Collector14registerThreadEv
-__ZN3KJS29initializeRegisteredThreadKeyEv
-__ZN3KJS15SavedPropertiesC1Ev
-__ZN3KJS6JSCellnwEm
-__ZN3KJS9Collector12heapAllocateILNS0_8HeapTypeE0EEEPvm
-__ZN3KJS15GlobalExecStateC1EPNS_14JSGlobalObjectE
-__ZN3KJS17CommonIdentifiers6sharedEv
-__ZN3KJS17CommonIdentifiersC2Ev
-__ZN3KJS10IdentifierC1EPKc
-__ZN3KJS10Identifier3addEPKc
-__ZN3WTF7HashSetIPN3KJS7UString3RepENS_7StrHashIS4_EENS_10HashTraitsIS4_EEE3addINS1_11UCharBufferENS1_21UCharBufferTranslatorEEESt4pairINS_24HashTableIteratorAdapterINS_9HashTableIS4_S4_NS_17IdentityExtractorIS4_EES6_S8_S8_EES4_EEbERKT_
-__ZN3WTF9HashTableIPN3KJS7UString3RepES4_NS_17IdentityExtractorIS4_EENS_7StrHashIS4_EENS_10HashTraitsIS4_EESA_E6rehashEi
-__ZN3KJS14JSGlobalObject4initEv
-__ZN3KJS14JSGlobalObject5resetEPNS_7JSValueE
-__ZN3KJS11PropertyMap5clearEv
-__ZN3KJS17FunctionPrototypeC2EPNS_9ExecStateE
-__ZN3KJS11PropertyMap3putERKNS_10IdentifierEPNS_7JSValueEjb
-__ZN3KJS17PrototypeFunctionC1EPNS_9ExecStateEPNS_17FunctionPrototypeEiRKNS_10IdentifierEPFPNS_7JSValueES2_PNS_8JSObjectERKNS_4ListEE
-__ZN3KJS19InternalFunctionImpC2EPNS_17FunctionPrototypeERKNS_10IdentifierE
-__ZN3KJS11PropertyMap11createTableEv
-__ZN3KJS15ObjectPrototypeC2EPNS_9ExecStateEPNS_17FunctionPrototypeE
-__ZN3KJS11PropertyMap6rehashEj
-__ZN3KJS14ArrayPrototypeC1EPNS_9ExecStateEPNS_15ObjectPrototypeE
-__ZN3KJS13ArrayInstanceC2EPNS_8JSObjectEj
-__ZN3KJS15StringPrototypeC2EPNS_9ExecStateEPNS_15ObjectPrototypeE
-__ZN3KJS8jsStringEPKc
-__ZN3KJS16BooleanPrototypeC2EPNS_9ExecStateEPNS_15ObjectPrototypeEPNS_17FunctionPrototypeE
-__ZN3KJS15NumberPrototypeC2EPNS_9ExecStateEPNS_15ObjectPrototypeEPNS_17FunctionPrototypeE
-__ZN3KJS13DatePrototypeC1EPNS_9ExecStateEPNS_15ObjectPrototypeE
-__ZN3KJS12jsNumberCellEd
-__ZN3KJS9Collector12heapAllocateILNS0_8HeapTypeE1EEEPvm
-__ZN3KJS15RegExpPrototypeC2EPNS_9ExecStateEPNS_15ObjectPrototypeEPNS_17FunctionPrototypeE
-__ZN3WTF9HashTableIPN3KJS7UString3RepES4_NS_17IdentityExtractorIS4_EENS_7StrHashIS4_EENS_10HashTraitsIS4_EESA_E4findIS4_NS_22IdentityHashTranslatorIS4_S4_S8_EEEENS_17HashTableIteratorIS4_S4_S6_S8_SA_SA_EERKT_
-__ZN3KJS14ErrorPrototypeC2EPNS_9ExecStateEPNS_15ObjectPrototypeEPNS_17FunctionPrototypeE
-__ZN3KJS7UStringC1EPKc
-__ZN3KJS20NativeErrorPrototypeC1EPNS_9ExecStateEPNS_14ErrorPrototypeERKNS_7UStringES7_
-__ZN3KJS8jsStringERKNS_7UStringE
-__ZN3KJS15ObjectObjectImpC2EPNS_9ExecStateEPNS_15ObjectPrototypeEPNS_17FunctionPrototypeE
-__ZN3KJS17FunctionObjectImpC2EPNS_9ExecStateEPNS_17FunctionPrototypeE
-__ZNK3KJS19InternalFunctionImp9classInfoEv
-__ZN3KJS14ArrayObjectImpC2EPNS_9ExecStateEPNS_17FunctionPrototypeEPNS_14ArrayPrototypeE
-__ZNK3KJS14ArrayPrototype9classInfoEv
-__ZN3KJS15StringObjectImpC2EPNS_9ExecStateEPNS_17FunctionPrototypeEPNS_15StringPrototypeE
-__ZNK3KJS15StringPrototype9classInfoEv
-__ZN3KJS19StringObjectFuncImpC2EPNS_9ExecStateEPNS_17FunctionPrototypeERKNS_10IdentifierE
-__ZN3KJS16BooleanObjectImpC2EPNS_9ExecStateEPNS_17FunctionPrototypeEPNS_16BooleanPrototypeE
-__ZNK3KJS15BooleanInstance9classInfoEv
-__ZN3KJS15NumberObjectImpC2EPNS_9ExecStateEPNS_17FunctionPrototypeEPNS_15NumberPrototypeE
-__ZNK3KJS14NumberInstance9classInfoEv
-__ZN3KJS13DateObjectImpC2EPNS_9ExecStateEPNS_17FunctionPrototypeEPNS_13DatePrototypeE
-__ZNK3KJS13DatePrototype9classInfoEv
-__ZN3KJS15RegExpObjectImpC2EPNS_9ExecStateEPNS_17FunctionPrototypeEPNS_15RegExpPrototypeE
-__ZN3KJS14ErrorObjectImpC2EPNS_9ExecStateEPNS_17FunctionPrototypeEPNS_14ErrorPrototypeE
-__ZNK3KJS13ErrorInstance9classInfoEv
-__ZN3KJS14NativeErrorImpC1EPNS_9ExecStateEPNS_17FunctionPrototypeEPNS_20NativeErrorPrototypeE
-__ZNK3KJS11PropertyMap3getERKNS_10IdentifierE
-__ZNK3KJS9StringImp4typeEv
-__ZN3KJS10Identifier11addSlowCaseEPNS_7UString3RepE
-__ZN3WTF9HashTableIPN3KJS7UString3RepES4_NS_17IdentityExtractorIS4_EENS_7StrHashIS4_EENS_10HashTraitsIS4_EESA_E3addIS4_S4_NS_17HashSetTranslatorILb1ES4_SA_SA_S8_EEEESt4pairINS_17HashTableIteratorIS4_S4_S6_S8_SA_SA_EEbERKT_RKT0_
-__ZN3KJS8JSObject9putDirectERKNS_10IdentifierEPNS_7JSValueEi
-__ZN3KJS13MathObjectImpC1EPNS_9ExecStateEPNS_15ObjectPrototypeE
-__ZN3KJS8JSObject17putDirectFunctionEPNS_19InternalFunctionImpEi
-__ZNK3KJS8JSObject4typeEv
-__ZN3KJS9Collector23collectOnMainThreadOnlyEPNS_7JSValueE
-__ZN3KJS9Collector7protectEPNS_7JSValueE
-__ZN3WTF9HashTableIiSt4pairIiiENS_18PairFirstExtractorIS2_EENS_7IntHashIiEENS_14PairHashTraitsINS_10HashTraitsIiEES9_EES9_E3addIPN3KJS8JSObjectEjNS_17HashMapTranslatorILb1ES1_ISF_jENS_18PairBaseHashTraitsINS8_ISF_EENS8_IjEEEESA_NS_7PtrHashISF_EEEEEES1_INS_17HashTableIteratorIiS2_S4_S6_SA_S9_EEbERKT_RKT0_
-__ZN3WTF9HashTableIiSt4pairIiiENS_18PairFirstExtractorIS2_EENS_7IntHashIiEENS_14PairHashTraitsINS_10HashTraitsIiEES9_EES9_E6rehashEi
-__ZN3KJS6JSCell9getObjectEv
-__ZN3KJS8Bindings10RootObject6createEPKvPNS_14JSGlobalObjectE
-__ZN3KJS8Bindings10RootObjectC2EPKvPNS_14JSGlobalObjectE
-__ZN3WTF9HashTableIiiNS_17IdentityExtractorIiEENS_7IntHashIiEENS_10HashTraitsIiEES6_E6rehashEi
-__ZN3KJS8Bindings10RootObject9gcProtectEPNS_8JSObjectE
-__ZNK3KJS14JSGlobalObject12saveBuiltinsERNS_13SavedBuiltinsE
-__ZN3KJS21SavedBuiltinsInternalC2Ev
-__ZNK3KJS11PropertyMap4saveERNS_15SavedPropertiesE
-__ZN3KJS30comparePropertyMapEntryIndicesEPKvS1_
-__ZN3WTF9HashTableIiSt4pairIiiENS_18PairFirstExtractorIS2_EENS_7IntHashIiEENS_14PairHashTraitsINS_10HashTraitsIiEES9_EES9_E4findIiNS_22IdentityHashTranslatorIiS2_S6_EEEENS_17HashTableIteratorIiS2_S4_S6_SA_S9_EERKT_
-__ZNK3KJS16JSVariableObject16saveLocalStorageERNS_15SavedPropertiesE
-__ZN3KJS13ActivationImpD0Ev
-__ZN3KJS8JSObject12removeDirectERKNS_10IdentifierE
-__ZN3KJS11PropertyMap6removeERKNS_10IdentifierE
-__ZN3KJS7UString3Rep7destroyEv
-__ZN3KJS10Identifier6removeEPNS_7UString3RepE
-__ZN3KJS8Bindings10RootObject10invalidateEv
-__ZN3KJS9Collector9unprotectEPNS_7JSValueE
-__ZN3WTF9HashTableIiiNS_17IdentityExtractorIiEENS_7IntHashIiEENS_10HashTraitsIiEES6_E4findIiNS_22IdentityHashTranslatorIiiS4_EEEENS_17HashTableIteratorIiiS2_S4_S6_S6_EERKT_
-__ZN3KJS8Bindings10RootObjectD1Ev
-__ZN3KJS14JSGlobalObject10globalExecEv
-__ZN3KJS14JSGlobalObject17startTimeoutCheckEv
-__ZN3KJS7UStringC1EPKNS_5UCharEi
-__ZN3KJS11Interpreter8evaluateEPNS_9ExecStateERKNS_7UStringEiPKNS_5UCharEiPNS_7JSValueE
-__ZN3KJS6ParserC2Ev
-__ZN3KJS6Parser5parseINS_11ProgramNodeEEEN3WTF10PassRefPtrIT_EERKNS_7UStringEiPKNS_5UCharEjPiSD_PS7_
-__ZN3KJS6Parser5parseEiPKNS_5UCharEjPiS4_PNS_7UStringE
-__ZN3KJS7UStringaSEPKc
-__ZN3KJS5LexerC2Ev
-__ZN3WTF6VectorIcLm0EE15reserveCapacityEm
-__ZN3WTF6VectorIN3KJS5UCharELm0EE15reserveCapacityEm
-__ZN3WTF6VectorIPN3KJS7UStringELm0EE15reserveCapacityEm
-__ZN3WTF6VectorIPN3KJS10IdentifierELm0EE15reserveCapacityEm
-__Z10kjsyyparsev
-__Z8kjsyylexv
-__ZN3KJS5Lexer3lexEv
-__ZN3KJS5Lexer14makeIdentifierERKN3WTF6VectorINS_5UCharELm0EEE
-__ZN3KJS10Identifier3addEPKNS_5UCharEi
-__ZN3KJS5Lexer15matchPunctuatorEiiii
-__ZN3KJS7UStringC2ERKN3WTF6VectorINS_5UCharELm0EEE
-__ZN3KJS14ExpressionNodeC2ENS_6JSTypeE
-__ZN3KJS16ParserRefCountedC2Ev
-__ZN3KJS7UStringC1ERKS0_
-__ZN3KJS4NodeC2Ev
-__ZN3KJS10IdentifierC1ERKS0_
-__ZN3WTF6RefPtrIN3KJS14ExpressionNodeEEC1EPS2_
-__ZN3KJS16ParserRefCounted3refEv
-__ZN3WTF6RefPtrIN3KJS12PropertyNodeEEC1EPS2_
-__ZN3WTF10ListRefPtrIN3KJS16PropertyListNodeEEC1Ev
-__ZN3KJS11ResolveNodeC1ERKNS_10IdentifierE
-__ZN3KJS14ExpressionNodeC2Ev
-__ZN3WTF10ListRefPtrIN3KJS16ArgumentListNodeEEC1Ev
-__Z20makeFunctionCallNodePN3KJS14ExpressionNodeEPNS_13ArgumentsNodeE
-__ZNK3KJS15DotAccessorNode10isLocationEv
-__ZNK3KJS14ExpressionNode13isResolveNodeEv
-__ZNK3KJS14ExpressionNode21isBracketAccessorNodeEv
-__Z14makeNumberNoded
-__Z14makeNegateNodePN3KJS14ExpressionNodeE
-__ZNK3KJS10NumberNode8isNumberEv
-__ZN3KJS19ImmediateNumberNode8setValueEd
-__ZN3KJS5lexerEv
-__ZN3KJS5Lexer10scanRegExpEv
-__ZN3KJS6RegExp6createERKNS_7UStringES3_
-__ZNK3KJS7UString4findENS_5UCharEi
-__ZN3KJS17ObjectLiteralNodeC1EPNS_16PropertyListNodeE
-__Z14compileBracketiPiPPhPPKtS3_P9ErrorCodeiS_S_R11CompileData
-__ZN3KJS16FunctionBodyNode6createEPNS_14SourceElementsEPN3WTF6VectorISt4pairINS_10IdentifierEjELm16EEEPNS4_IPNS_12FuncDeclNodeELm16EEE
-__ZN3KJS16FunctionBodyNodeC2EPNS_14SourceElementsEPN3WTF6VectorISt4pairINS_10IdentifierEjELm16EEEPNS4_IPNS_12FuncDeclNodeELm16EEE
-__ZN3KJS9ScopeNodeC2EPNS_14SourceElementsEPN3WTF6VectorISt4pairINS_10IdentifierEjELm16EEEPNS4_IPNS_12FuncDeclNodeELm16EEE
-__ZN3KJS9BlockNodeC1EPNS_14SourceElementsE
-__ZN3KJS13StatementNodeC2Ev
-__ZN3WTF6RefPtrIN3KJS13ParameterNodeEEC1EPS2_
-__ZN3WTF6RefPtrIN3KJS16FunctionBodyNodeEEC1EPS2_
-__ZN3KJS12FuncExprNode9addParamsEv
-__ZN3WTF10ListRefPtrIN3KJS13ParameterNodeEEC1Ev
-__ZN3KJS10ReturnNodeC1EPNS_14ExpressionNodeE
-__Z23allowAutomaticSemicolonv
-__ZN3KJS14SourceElementsC1Ev
-__ZN3WTF10PassRefPtrIN3KJS13StatementNodeEEC1EPS2_
-__ZN3KJS14SourceElements6appendEN3WTF10PassRefPtrINS_13StatementNodeEEE
-__ZNK3KJS13StatementNode16isEmptyStatementEv
-__ZN3WTF6VectorINS_6RefPtrIN3KJS13StatementNodeEEELm0EE14expandCapacityEm
-__ZN3WTF6VectorINS_6RefPtrIN3KJS13StatementNodeEEELm0EE15reserveCapacityEm
-__ZN3WTF6VectorIN3KJS10IdentifierELm0EE14expandCapacityEmPKS2_
-__ZN3WTF6VectorIN3KJS10IdentifierELm0EE14expandCapacityEm
-__ZN3WTF6VectorIN3KJS10IdentifierELm0EE15reserveCapacityEm
-__ZN3KJS20ParserRefCountedDataIN3WTF6VectorISt4pairINS_10IdentifierEjELm16EEEEC1Ev
-__Z26appendToVarDeclarationListRPN3KJS20ParserRefCountedDataIN3WTF6VectorISt4pairINS_10IdentifierEjELm16EEEEERKS4_j
-__Z20makeVarStatementNodePN3KJS14ExpressionNodeE
-__Z14makeAssignNodePN3KJS14ExpressionNodeENS_8OperatorES1_
-__ZN3KJS17ExprStatementNodeC1EPNS_14ExpressionNodeE
-__ZN3KJS6IfNodeC2EPNS_14ExpressionNodeEPNS_13StatementNodeE
-__Z21mergeDeclarationListsIPN3KJS20ParserRefCountedDataIN3WTF6VectorISt4pairINS0_10IdentifierEjELm16EEEEEET_SA_SA_
-__Z21mergeDeclarationListsIPN3KJS20ParserRefCountedDataIN3WTF6VectorIPNS0_12FuncDeclNodeELm16EEEEEET_S9_S9_
-__ZNK3KJS11ResolveNode10isLocationEv
-__ZNK3KJS11ResolveNode13isResolveNodeEv
-__Z22combineVarInitializersPN3KJS14ExpressionNodeEPNS_17AssignResolveNodeE
-__ZN3KJS14ExpressionNode28optimizeForUnnecessaryResultEv
-__ZN3WTF6VectorIPN3KJS10IdentifierELm0EE14expandCapacityEmPKS3_
-__ZN3WTF6VectorIPN3KJS10IdentifierELm0EE14expandCapacityEm
-__ZN3KJS12FuncDeclNode9addParamsEv
-__ZN3WTF6VectorIPN3KJS12FuncDeclNodeELm16EEC1Ev
-__ZN3WTF6VectorISt4pairIN3KJS10IdentifierEjELm16EE6appendIS4_EEvPKT_m
-__ZN3KJS16ParserRefCounted5derefEv
-__ZN3KJS20ParserRefCountedDataIN3WTF6VectorISt4pairINS_10IdentifierEjELm16EEEED1Ev
-__Z12makeLessNodePN3KJS14ExpressionNodeES1_
-__Z15makePostfixNodePN3KJS14ExpressionNodeENS_8OperatorE
-__ZN3WTF6RefPtrIN3KJS13StatementNodeEEC1EPS2_
-__ZN3KJS18PostIncResolveNode28optimizeForUnnecessaryResultEv
-__ZN3WTF6VectorISt4pairIN3KJS10IdentifierEjELm16EEaSERKS5_
-__ZN3WTF6VectorIPN3KJS12FuncDeclNodeELm16EEaSERKS4_
-__ZNK3KJS14ExpressionNode10isLocationEv
-__ZNK3KJS19BracketAccessorNode10isLocationEv
-__ZNK3KJS19BracketAccessorNode21isBracketAccessorNodeEv
-__ZN3KJS9ForInNodeC1ERKNS_10IdentifierEPNS_14ExpressionNodeES5_PNS_13StatementNodeE
-__ZN3KJS9ThrowNodeC1EPNS_14ExpressionNodeE
-__Z14makeTypeOfNodePN3KJS14ExpressionNodeE
-__ZN3WTF6VectorINS_6RefPtrIN3KJS13StatementNodeEEELm0EEC1Ev
-__ZN3WTF6RefPtrIN3KJS14CaseClauseNodeEEC1EPS2_
-__ZN3WTF10ListRefPtrIN3KJS14ClauseListNodeEEC1Ev
-__ZN3KJS13CaseBlockNodeC2EPNS_14ClauseListNodeEPNS_14CaseClauseNodeES2_
-__Z11makeAddNodePN3KJS14ExpressionNodeES1_
-__ZN3WTF10ListRefPtrIN3KJS11ElementNodeEEC1Ev
-__ZN3WTF6RefPtrIN3KJS11ElementNodeEEC1EPS2_
-__ZNK3KJS18EmptyStatementNode16isEmptyStatementEv
-__ZN3KJS9BreakNodeC1Ev
-__Z32branchFindFirstAssertedCharacterPKhb
-__Z20branchNeedsLineStartPKhjj
-__ZN3KJS10IdentifierC1ERKNS_7UStringE
-__ZN3WTF6RefPtrIN3KJS7UString3RepEED1Ev
-__ZN3KJS9CommaNodeC2EPNS_14ExpressionNodeES2_
-__Z14makePrefixNodePN3KJS14ExpressionNodeENS_8OperatorE
-__ZN3WTF6RefPtrIN3KJS13ArgumentsNodeEEC1EPS2_
-__ZN3WTF6VectorIPN3KJS7UStringELm0EE14expandCapacityEmPKS3_
-__ZN3WTF6VectorIPN3KJS7UStringELm0EE14expandCapacityEm
-__ZN3WTF6VectorIN3KJS5UCharELm0EE14expandCapacityEmPKS2_
-__ZN3WTF6VectorIN3KJS5UCharELm0EE14expandCapacityEm
-__ZNK3KJS14ExpressionNode8isNumberEv
-__ZN3KJS19PlaceholderTrueNodeC1Ev
-__ZN3KJS18EmptyStatementNodeC1Ev
-__Z14makeDeleteNodePN3KJS14ExpressionNodeE
-__Z15isCountedRepeatPKtS0_
-__ZN3KJS12ContinueNodeC1Ev
-__ZN3KJS9ForInNodeC1EPNS_14ExpressionNodeES2_PNS_13StatementNodeE
-__ZN3KJS18PostDecResolveNode28optimizeForUnnecessaryResultEv
-__Z17bracketIsAnchoredPKh
-__ZN3WTF6VectorISt4pairIN3KJS10IdentifierEjELm16EE14expandCapacityEmPKS4_
-__ZN3WTF6VectorISt4pairIN3KJS10IdentifierEjELm16EE14expandCapacityEm
-__ZN3WTF6VectorISt4pairIN3KJS10IdentifierEjELm16EE15reserveCapacityEm
-__ZN3KJS7UString4fromEd
-_kjs_dtoa
-_d2b
-_Balloc
-__ZN3KJS6parserEv
-__ZN3KJS6Parser16didFinishParsingEPNS_14SourceElementsEPNS_20ParserRefCountedDataIN3WTF6VectorISt4pairINS_10IdentifierEjELm16EEEEEPNS3_INS5_IPNS_12FuncDeclNodeELm16EEEEEi
-__ZN3KJS5Lexer5clearEv
-__ZN3WTF25TCMalloc_Central_FreeList11InsertRangeEPvS1_i
+__ZN3WTF11fastReallocILb1EEEPvS1_m
+__ZN3JSC7UStringC1EPKti
+__ZN3JSC7UStringC2EPKti
+__ZN3JSC12JSGlobalData12createLeakedEv
+__ZN3JSC9Structure18startIgnoringLeaksEv
+__ZN3JSC7VPtrSetC2Ev
+__ZN3JSC9StructureC1ENS_7JSValueERKNS_8TypeInfoE
+__ZN3JSC7JSArrayC1EN3WTF10PassRefPtrINS_9StructureEEE
+__ZN3JSC7JSArrayD1Ev
+__ZN3JSC7JSArrayD2Ev
+__ZN3WTF10RefCountedIN3JSC9StructureEE5derefEv
+__ZN3JSC9StructureD1Ev
+__ZN3JSC9StructureD2Ev
+__ZN3JSC11JSByteArray15createStructureENS_7JSValueE
+__ZN3JSC11JSByteArrayD1Ev
+__ZN3JSC8JSStringD1Ev
+__ZN3JSC10JSFunctionD1Ev
+__ZN3JSC10JSFunctionD2Ev
+__ZN3JSC8JSObjectD2Ev
+__ZN3JSC12JSGlobalDataC2EbRKNS_7VPtrSetE
+__ZN3JSC21createIdentifierTableEv
+__ZN3JSC17CommonIdentifiersC1EPNS_12JSGlobalDataE
+__ZN3JSC17CommonIdentifiersC2EPNS_12JSGlobalDataE
+__ZN3JSC10Identifier3addEPNS_12JSGlobalDataEPKc
+__ZN3WTF7HashSetIPN3JSC7UString3RepENS_7StrHashIS4_EENS_10HashTraitsIS4_EEE3addIPKcNS1_17CStringTranslatorEEESt4pairINS_24HashT
+__ZN3WTF9HashTableIPN3JSC7UString3RepES4_NS_17IdentityExtractorIS4_EENS_7StrHashIS4_EENS_10HashTraitsIS4_EESA_E6rehashEi
+__ZN3WTF9HashTableIPKcSt4pairIS2_NS_6RefPtrIN3JSC7UString3RepEEEENS_18PairFirstExtractorIS9_EENS_7PtrHashIS2_EENS_14PairHashTra
+__ZN3WTF6RefPtrIN3JSC7UString3RepEED1Ev
+__ZN3JSC12SmallStringsC1Ev
+__ZN3JSC19ExecutableAllocator17intializePageSizeEv
+__ZN3JSC14ExecutablePool11systemAllocEm
+__ZN3JSC5LexerC1EPNS_12JSGlobalDataE
+__ZN3JSC5LexerC2EPNS_12JSGlobalDataE
+__ZN3JSC11InterpreterC1Ev
+__ZN3JSC11InterpreterC2Ev
+__ZN3JSC11Interpreter14privateExecuteENS0_13ExecutionFlagEPNS_12RegisterFileEPNS_9ExecStateEPNS_7JSValueE
+__ZN3WTF7HashMapIPvN3JSC8OpcodeIDENS_7PtrHashIS1_EENS_10HashTraitsIS1_EENS6_IS3_EEE3addERKS1_RKS3_
+__ZN3WTF9HashTableIPvSt4pairIS1_N3JSC8OpcodeIDEENS_18PairFirstExtractorIS5_EENS_7PtrHashIS1_EENS_14PairHashTraitsINS_10HashTrai
+__ZN3JSC8JITStubsC1EPNS_12JSGlobalDataE
+__ZN3JSC3JITC1EPNS_12JSGlobalDataEPNS_9CodeBlockE
+__ZN3JSC3JITC2EPNS_12JSGlobalDataEPNS_9CodeBlockE
+__ZN3JSC3JIT35privateCompileCTIMachineTrampolinesEPN3WTF6RefPtrINS_14ExecutablePoolEEEPNS_12JSGlobalDataEPPvS9_S9_S9_S9_S9_
+__ZN3JSC12X86Assembler23X86InstructionFormatter11oneByteOp64ENS0_15OneByteOpcodeIDEiNS_3X8610RegisterIDE
+__ZN3JSC12X86Assembler3jCCENS0_9ConditionE
+__ZN3JSC23MacroAssemblerX86Common4moveENS_22AbstractMacroAssemblerINS_12X86AssemblerEE6ImmPtrENS_3X8610RegisterIDE
+__ZN3JSC12X86Assembler23X86InstructionFormatter11oneByteOp64ENS0_15OneByteOpcodeIDEiNS_3X8610RegisterIDEi
+__ZN3JSC12X86Assembler23X86InstructionFormatter9oneByteOpENS0_15OneByteOpcodeIDEiNS_3X8610RegisterIDE
+__ZN3JSC15AssemblerBuffer11ensureSpaceEi
+__ZN3JSC20MacroAssemblerX86_6413branchTestPtrENS_23MacroAssemblerX86Common9ConditionENS_3X8610RegisterIDENS_22AbstractMacroAsse
+__ZN3JSC12X86Assembler23X86InstructionFormatter9oneByteOpENS0_15OneByteOpcodeIDENS_3X8610RegisterIDE
+__ZN3JSC20MacroAssemblerX86_644callEv
+__ZN3JSC12X86Assembler23X86InstructionFormatter9oneByteOpENS0_15OneByteOpcodeIDEiNS_3X8610RegisterIDEi
+__ZN3JSC3JIT32compileOpCallInitializeCallFrameEv
+__ZN3JSC12X86Assembler23X86InstructionFormatter11memoryModRMEiNS_3X8610RegisterIDEi
+__ZN3JSC20MacroAssemblerX86_6421makeTailRecursiveCallENS_22AbstractMacroAssemblerINS_12X86AssemblerEE4JumpE
+__ZN3JSC14TimeoutCheckerC1Ev
+__ZN3JSC4HeapC1EPNS_12JSGlobalDataE
+__ZN3JSC27startProfilerServerIfNeededEv
++[ProfilerServer sharedProfileServer]
+-[ProfilerServer init]
+__ZN3JSC9Structure17stopIgnoringLeaksEv
+__ZN3JSC4Heap8allocateEm
+__ZN3JSCL13allocateBlockILNS_8HeapTypeE0EEEPNS_14CollectorBlockEv
+__ZN3JSC4Heap4heapENS_7JSValueE
+__ZN3JSC4Heap7protectENS_7JSValueE
+__ZN3WTF7HashMapIPN3JSC6JSCellEjNS_7PtrHashIS3_EENS_10HashTraitsIS3_EENS6_IjEEE3addERKS3_RKj
+__ZN3WTF9HashTableIPN3JSC6JSCellESt4pairIS3_jENS_18PairFirstExtractorIS5_EENS_7PtrHashIS3_EENS_14PairHashTraitsINS_10HashTraits
+__ZN3JSC14JSGlobalObjectnwEmPNS_12JSGlobalDataE
+__ZN3JSC14JSGlobalObject4initEPNS_8JSObjectE
+__ZN3JSC14JSGlobalObject5resetENS_7JSValueE
+__ZN3JSC4Heap12heapAllocateILNS_8HeapTypeE0EEEPvm
+__ZN3JSC8jsStringEPNS_12JSGlobalDataERKNS_7UStringE
+__ZN3JSC12SmallStrings17createEmptyStringEPNS_12JSGlobalDataE
+__ZN3JSC7UStringC1EPKc
+__ZN3JSCL9createRepEPKc
+__ZN3JSC8JSObject9putDirectERKNS_10IdentifierENS_7JSValueEjbRNS_15PutPropertySlotE
+__ZN3JSC9Structure40addPropertyTransitionToExistingStructureEPS0_RKNS_10IdentifierEjRm
+__ZN3JSC9Structure3getERKNS_10IdentifierERj
+__ZN3JSC9Structure21addPropertyTransitionEPS0_RKNS_10IdentifierEjRm
+__ZN3JSC9Structure3putERKNS_10IdentifierEj
+__ZN3JSC8JSObject26putDirectWithoutTransitionERKNS_10IdentifierENS_7JSValueEj
+__ZN3JSC9Structure28addPropertyWithoutTransitionERKNS_10IdentifierEj
+__ZN3JSC17FunctionPrototype21addFunctionPropertiesEPNS_9ExecStateEPNS_9StructureEPPNS_10JSFunctionES7_
+__ZN3JSC10JSFunctionC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEEiRKNS_10IdentifierEPFNS_7JSValueES2_PNS_8JSObjectESA_RK
+__ZN3JSC12JSGlobalData17createNativeThunkEv
+__ZN3JSC16FunctionBodyNode17createNativeThunkEPNS_12JSGlobalDataE
+__ZN3WTF6VectorINS_6RefPtrIN3JSC21ParserArenaRefCountedEEELm0EE15reserveCapacityEm
+__ZN3JSC11ParserArena5resetEv
+__ZN3JSC8JSObject34putDirectFunctionWithoutTransitionEPNS_9ExecStateEPNS_16InternalFunctionEj
+__ZN3JSC15ObjectPrototypeC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEEPS5_
+__ZN3JSC9Structure26rehashPropertyMapHashTableEj
+__ZN3JSC15StringPrototypeC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEE
+__ZN3JSC16BooleanPrototypeC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEEPS5_
+__ZN3JSC15NumberPrototypeC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEEPS5_
+__ZN3JSC15RegExpPrototypeC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEEPS5_
+__ZN3JSC14ErrorPrototypeC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEEPS5_
+__ZN3JSC20NativeErrorPrototypeC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEERKNS_7UStringES9_
+__ZN3JSC17ObjectConstructorC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEEPNS_15ObjectPrototypeE
+__ZN3JSC19FunctionConstructorC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEEPNS_17FunctionPrototypeE
+__ZNK3JSC16InternalFunction9classInfoEv
+__ZN3JSC16ArrayConstructorC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEEPNS_14ArrayPrototypeE
+__ZNK3JSC14ArrayPrototype9classInfoEv
+__ZN3JSC17StringConstructorC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEEPS5_PNS_15StringPrototypeE
+__ZNK3JSC15StringPrototype9classInfoEv
+__ZN3JSC18BooleanConstructorC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEEPNS_16BooleanPrototypeE
+__ZNK3JSC13BooleanObject9classInfoEv
+__ZN3JSC17NumberConstructorC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEEPNS_15NumberPrototypeE
+__ZN3JSC15DateConstructorC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEEPS5_PNS_13DatePrototypeE
+__ZNK3JSC13DatePrototype9classInfoEv
+__ZN3JSC17RegExpConstructorC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEEPNS_15RegExpPrototypeE
+__ZN3JSC16ErrorConstructorC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEEPNS_14ErrorPrototypeE
+__ZNK3JSC13ErrorInstance9classInfoEv
+__ZN3JSC22NativeErrorConstructorC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEEPNS_20NativeErrorPrototypeE
+__ZN3JSC10Identifier11addSlowCaseEPNS_12JSGlobalDataEPNS_7UString3RepE
+__ZN3WTF7HashSetIPN3JSC7UString3RepENS_7StrHashIS4_EENS_10HashTraitsIS4_EEE3addERKS4_
+__ZN3JSC10MathObjectC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEE
+__ZN3JSC12SmallStrings24singleCharacterStringRepEh
+__ZN3WTF7HashMapINS_6RefPtrIN3JSC7UString3RepEEENS2_16SymbolTableEntryENS2_17IdentifierRepHashENS_10HashTraitsIS5_EENS2_26Symbo
+__ZN3WTF9HashTableINS_6RefPtrIN3JSC7UString3RepEEESt4pairIS5_NS2_16SymbolTableEntryEENS_18PairFirstExtractorIS8_EENS2_17Identif
+__ZN3JSC17PrototypeFunctionC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEEiRKNS_10IdentifierEPFNS_7JSValueES2_PNS_8JSObjec
+__ZN3JSC9Structure25changePrototypeTransitionEPS0_NS_7JSValueE
+__ZN3JSC9Structure17copyPropertyTableEv
+__ZN3JSC14JSGlobalObject10globalExecEv
+__ZN3JSC10Identifier3addEPNS_9ExecStateEPKc
+__ZN3JSC4Heap9unprotectENS_7JSValueE
+__ZN3JSC6JSCellnwEmPNS_9ExecStateE
+__ZN3JSC14TimeoutChecker5resetEv
+__ZN3JSC8evaluateEPNS_9ExecStateERNS_10ScopeChainERKNS_10SourceCodeENS_7JSValueE
+__ZN3JSC6JSLock4lockEb
+__ZN3JSC6Parser5parseINS_11ProgramNodeEEEN3WTF10PassRefPtrIT_EEPNS_9ExecStateEPNS_8DebuggerERKNS_10SourceCodeEPiPNS_7UStringE
+__ZN3JSC6Parser5parseEPNS_12JSGlobalDataEPiPNS_7UStringE
+__ZN3JSC7UStringaSEPKc
+__Z10jscyyparsePv
+__ZN3JSC5Lexer3lexEPvS1_
+__ZN3JSC10Identifier3addEPNS_12JSGlobalDataEPKti
+__ZN3WTF7HashSetIPN3JSC7UString3RepENS_7StrHashIS4_EENS_10HashTraitsIS4_EEE3addINS1_11UCharBufferENS1_21UCharBufferTranslatorEE
+__ZN3JSC15SegmentedVectorINS_10IdentifierELm64EE6appendIS1_EEvRKT_
+__ZNK3JSC9HashTable11createTableEPNS_12JSGlobalDataE
+__ZN3JSC20ParserArenaDeletablenwEmPNS_12JSGlobalDataE
+__ZN3WTF6VectorIPN3JSC20ParserArenaDeletableELm0EE15reserveCapacityEm
+__ZN3JSC5Lexer10sourceCodeEiii
+__ZN3JSC16FunctionBodyNode13finishParsingERKNS_10SourceCodeEPNS_13ParameterNodeE
+__ZN3WTF6VectorIN3JSC10IdentifierELm0EE14expandCapacityEm
+__ZN3WTF6VectorIPN3JSC12FuncDeclNodeELm0EE14expandCapacityEm
+__ZN3JSC14SourceElements6appendEPNS_13StatementNodeE
+__ZNK3JSC13StatementNode16isEmptyStatementEv
+__ZN3WTF6VectorIPN3JSC13StatementNodeELm0EE14expandCapacityEm
+__ZL20makeFunctionCallNodePvN3JSC8NodeInfoIPNS0_14ExpressionNodeEEENS1_IPNS0_13ArgumentsNodeEEEiii
+__ZNK3JSC11ResolveNode10isLocationEv
+__ZNK3JSC11ResolveNode13isResolveNodeEv
+__ZN3JSC5Lexer7record8Ei
+__ZN3JSC5Lexer10scanRegExpEv
+__ZN3JSC7UStringC2ERKN3WTF6VectorItLm0EEE
+__ZN3JSC7UString3Rep7destroyEv
+__ZN3JSC5Lexer5clearEv
+__ZN3JSC10Identifier6removeEPNS_7UString3RepE
+__ZN3WTF6VectorIN3JSC10IdentifierELm64EE14shrinkCapacityEm
+__ZN3JSC9ScopeNodeC2EPNS_12JSGlobalDataERKNS_10SourceCodeEPNS_14SourceElementsEPN3WTF6VectorISt4pairINS_10IdentifierEjELm0EEEPN
+__ZN3WTF6VectorIPN3JSC13StatementNodeELm0EE14shrinkCapacityEm
+__ZN3JSC11ParserArena10removeLastEv
+__ZNK3JSC8JSObject8toObjectEPNS_9ExecStateE
+__ZN3JSC11Interpreter7executeEPNS_11ProgramNodeEPNS_9ExecStateEPNS_14ScopeChainNodeEPNS_8JSObjectEPNS_7JSValueE
+__ZN3JSC11ProgramNode16generateBytecodeEPNS_14ScopeChainNodeE
+__ZN3JSC9CodeBlockC2EPNS_9ScopeNodeENS_8CodeTypeEN3WTF10PassRefPtrINS_14SourceProviderEEEj
+__ZN3WTF7HashSetIPN3JSC16ProgramCodeBlockENS_7PtrHashIS3_EENS_10HashTraitsIS3_EEE3addERKS3_
+__ZN3WTF9HashTableIPN3JSC16ProgramCodeBlockES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES9_E6rehashEi
+__ZN3JSC17BytecodeGeneratorC2EPNS_11ProgramNodeEPKNS_8DebuggerERKNS_10ScopeChainEPN3WTF7HashMapINS9_6RefPtrINS_7UString3RepEEEN
+__ZN3WTF6VectorIN3JSC11InstructionELm0EE14expandCapacityEm
+__ZN3JSC9Structure22toDictionaryTransitionEPS0_
+__ZN3JSC8JSObject12removeDirectERKNS_10IdentifierE
+__ZN3JSC9Structure31removePropertyWithoutTransitionERKNS_10IdentifierE
+__ZN3JSC9Structure6removeERKNS_10IdentifierE
+__ZN3JSC17BytecodeGenerator12addGlobalVarERKNS_10IdentifierEbRPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator15emitNewFunctionEPNS_10RegisterIDEPNS_12FuncDeclNodeE
+__ZN3JSC9CodeBlock25createRareDataIfNecessaryEv
+__ZN3JSC17BytecodeGenerator11newRegisterEv
+__ZN3JSC9Structure24fromDictionaryTransitionEPS0_
+__ZN3JSC17BytecodeGenerator8generateEv
+__ZN3JSC11ProgramNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator13emitDebugHookENS_11DebugHookIDEii
+__ZN3JSC17BytecodeGenerator11addConstantENS_7JSValueE
+__ZN3WTF9HashTableIPvSt4pairIS1_jENS_18PairFirstExtractorIS3_EENS_7PtrHashIS1_EENS_14PairHashTraitsIN3JSC17JSValueHashTraitsENS
+__ZN3WTF6VectorIN3JSC8RegisterELm0EE14expandCapacityEm
+__ZN3JSC17BytecodeGenerator8emitMoveEPNS_10RegisterIDES2_
+__ZN3JSC17BytecodeGenerator8emitNodeEPNS_10RegisterIDEPNS_4NodeE
+__ZN3WTF6VectorIN3JSC8LineInfoELm0EE14expandCapacityEm
+__ZN3JSC12FuncDeclNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17ExprStatementNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC23FunctionCallResolveNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator11registerForERKNS_10IdentifierE
+__ZN3JSC17BytecodeGenerator8emitCallENS_8OpcodeIDEPNS_10RegisterIDES3_S3_PNS_13ArgumentsNodeEjjj
+__ZN3JSC16ArgumentListNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC12FuncExprNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator25emitNewFunctionExpressionEPNS_10RegisterIDEPNS_12FuncExprNodeE
+__ZN3WTF6VectorIN3JSC19ExpressionRangeInfoELm0EE14expandCapacityEm
+__ZN3WTF6VectorIN3JSC12CallLinkInfoELm0EE14expandCapacityEm
+__ZN3JSC11ResolveNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC12JSGlobalData22numericCompareFunctionEPNS_9ExecStateE
+__ZNK3JSC21UStringSourceProvider6lengthEv
+__ZNK3JSC21UStringSourceProvider4dataEv
+__ZN3JSC19extractFunctionBodyEPNS_11ProgramNodeE
+__ZNK3JSC17ExprStatementNode15isExprStatementEv
+__ZNK3JSC12FuncExprNode14isFuncExprNodeEv
+__ZN3JSC16FunctionBodyNode16generateBytecodeEPNS_14ScopeChainNodeE
+__ZN3JSC6Parser14reparseInPlaceEPNS_12JSGlobalDataEPNS_16FunctionBodyNodeE
+__ZL11makeSubNodePvPN3JSC14ExpressionNodeES2_b
+__ZN3JSC14ExpressionNode14stripUnaryPlusEv
+__ZNK3JSC14ExpressionNode8isNumberEv
+__ZN3JSC9CodeBlockC1EPNS_9ScopeNodeENS_8CodeTypeEN3WTF10PassRefPtrINS_14SourceProviderEEEj
+__ZN3JSC17BytecodeGeneratorC2EPNS_16FunctionBodyNodeEPKNS_8DebuggerERKNS_10ScopeChainEPN3WTF7HashMapINS9_6RefPtrINS_7UString3Re
+__ZN3JSC17BytecodeGenerator12addParameterERKNS_10IdentifierE
+__ZN3JSC16FunctionBodyNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC9BlockNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC10ReturnNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC12BinaryOpNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZNK3JSC11ResolveNode6isPureERNS_17BytecodeGeneratorE
+__ZN3JSC17BytecodeGenerator12newTemporaryEv
+__ZN3JSC17BytecodeGenerator12emitBinaryOpENS_8OpcodeIDEPNS_10RegisterIDES3_S3_NS_12OperandTypesE
+__ZN3JSC17BytecodeGenerator10emitReturnEPNS_10RegisterIDE
+__ZNK3JSC9BlockNode7isBlockEv
+__ZNK3JSC10ReturnNode12isReturnNodeEv
+__ZN3JSC9CodeBlock11shrinkToFitEv
+__ZN3WTF6VectorIN3JSC11InstructionELm0EE14shrinkCapacityEm
+__ZN3WTF6VectorIN3JSC17StructureStubInfoELm0EE14shrinkCapacityEm
+__ZN3WTF6VectorIPN3JSC12CallLinkInfoELm0EE14shrinkCapacityEm
+__ZN3WTF6VectorIN3JSC10IdentifierELm0EE14shrinkCapacityEm
+__ZN3JSC11ParserArenaD1Ev
+__ZN3JSC11ResolveNodeD0Ev
+__ZN3JSC7SubNodeD0Ev
+__ZN3JSC10ReturnNodeD0Ev
+__ZN3JSC14SourceElementsD0Ev
+__ZN3JSC9BlockNodeD0Ev
+__ZN3JSC17BytecodeGeneratorD2Ev
+__ZN3WTF6VectorIN3JSC11InstructionELm0EEaSERKS3_
+__ZThn16_N3JSC11ProgramNodeD0Ev
+__ZN3JSC11ProgramNodeD0Ev
+__ZN3JSC13ParameterNodeD0Ev
+__ZN3JSC17ExprStatementNodeD0Ev
+__ZThn16_N3JSC12FuncExprNodeD0Ev
+__ZN3JSC12FuncExprNodeD0Ev
+__ZThn16_N3JSC16FunctionBodyNodeD0Ev
+__ZN3JSC16FunctionBodyNodeD0Ev
+__ZN3JSC9CodeBlockD1Ev
+__ZN3JSC9CodeBlockD2Ev
+__ZN3JSC21UStringSourceProviderD0Ev
+__ZN3WTF6VectorIN3JSC19ExpressionRangeInfoELm0EE14shrinkCapacityEm
+__ZN3WTF6VectorIN3JSC8LineInfoELm0EE14shrinkCapacityEm
+__ZN3WTF6VectorINS_6RefPtrIN3JSC12FuncDeclNodeEEELm0EE14shrinkCapacityEm
+__ZN3WTF6VectorIN3JSC15SimpleJumpTableELm0EE14shrinkCapacityEm
+__ZN3WTF6VectorIN3JSC15StringJumpTableELm0EE14shrinkCapacityEm
+__ZN3JSC15ParserArenaDataIN3WTF6VectorIPNS_12FuncDeclNodeELm0EEEED0Ev
+__ZN3JSC16ArgumentListNodeD0Ev
+__ZN3JSC13ArgumentsNodeD0Ev
+__ZN3JSC23FunctionCallResolveNodeD0Ev
+__ZN3JSC14JSGlobalObject13copyGlobalsToERNS_12RegisterFileE
+__ZN3JSC3JIT14privateCompileEv
+__ZN3JSC3JIT22privateCompileMainPassEv
+__ZN3JSC3JIT13emit_op_enterEPNS_11InstructionE
+__ZN3JSC3JIT16emit_op_new_funcEPNS_11InstructionE
+__ZN3JSC20MacroAssemblerX86_648storePtrENS_22AbstractMacroAssemblerINS_12X86AssemblerEE6ImmPtrENS3_15ImplicitAddressE
+__ZN3JSC11JITStubCall4callEj
+__ZN3WTF6VectorIN3JSC10CallRecordELm0EE14expandCapacityEm
+__ZN3JSC3JIT11emit_op_movEPNS_11InstructionE
+__ZN3JSC3JIT20emit_op_new_func_expEPNS_11InstructionE
+__ZN3JSC3JIT12emit_op_callEPNS_11InstructionE
+__ZN3JSC3JIT13compileOpCallENS_8OpcodeIDEPNS_11InstructionEj
+__ZN3WTF6VectorIN3JSC13SlowCaseEntryELm0EE14expandCapacityEm
+__ZN3JSC3JIT11emit_op_endEPNS_11InstructionE
+__ZN3JSC11JITStubCall4callEv
+__ZN3WTF6VectorIN3JSC9JumpTableELm0EE14shrinkCapacityEm
+__ZN3JSC3JIT23privateCompileSlowCasesEv
+__ZN3JSC3JIT16emitSlow_op_callEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC3JIT21compileOpCallSlowCaseEPNS_11InstructionERPNS_13SlowCaseEntryEjNS_8OpcodeIDE
+__ZN3JSC3JIT22compileOpCallSetupArgsEPNS_11InstructionE
+__ZN3JSC9CodeBlock10setJITCodeERNS_10JITCodeRefE
+__ZN3JSC17BytecodeGenerator18dumpsGeneratedCodeEv
+__ZN3WTF10RefCountedIN3JSC14ExecutablePoolEE5derefEv
+_ctiTrampoline
+__ZN3JSC8JITStubs15cti_op_new_funcEPPv
+__ZN3JSC12FuncDeclNode12makeFunctionEPNS_9ExecStateEPNS_14ScopeChainNodeE
+__ZN3JSC8JITStubs19cti_op_new_func_expEPPv
+__ZN3JSC12FuncExprNode12makeFunctionEPNS_9ExecStateEPNS_14ScopeChainNodeE
+__ZN3JSC8JITStubs22cti_op_call_JSFunctionEPPv
+__ZN3JSC16FunctionBodyNode15generateJITCodeEPNS_14ScopeChainNodeE
+__ZN3JSC10IfElseNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator8newLabelEv
+__ZN3JSC15DotAccessorNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator11emitResolveEPNS_10RegisterIDERKNS_10IdentifierE
+__ZN3JSC17BytecodeGenerator18findScopedPropertyERKNS_10IdentifierERiRmbRPNS_8JSObjectE
+__ZNK3JSC16JSVariableObject16isVariableObjectEv
+__ZN3JSC17BytecodeGenerator16emitGetScopedVarEPNS_10RegisterIDEmiNS_7JSValueE
+__ZN3JSC17BytecodeGenerator11emitGetByIdEPNS_10RegisterIDES2_RKNS_10IdentifierE
+__ZN3WTF6VectorIN3JSC17StructureStubInfoELm0EE14expandCapacityEm
+__ZN3JSC17BytecodeGenerator11addConstantERKNS_10IdentifierE
+__ZN3WTF7HashMapINS_6RefPtrIN3JSC7UString3RepEEEiNS2_17IdentifierRepHashENS_10HashTraitsIS5_EENS2_17BytecodeGenerator28Identifi
+__ZN3WTF9HashTableINS_6RefPtrIN3JSC7UString3RepEEESt4pairIS5_iENS_18PairFirstExtractorIS7_EENS2_17IdentifierRepHashENS_14PairHa
+__ZN3JSC17BytecodeGenerator15emitJumpIfFalseEPNS_10RegisterIDEPNS_5LabelE
+__ZNK3JSC14JSGlobalObject14isDynamicScopeEv
+__ZN3JSC17BytecodeGenerator19emitResolveFunctionEPNS_10RegisterIDES2_RKNS_10IdentifierE
+__ZN3JSC10StringNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator8emitLoadEPNS_10RegisterIDERKNS_10IdentifierE
+__ZN3WTF9HashTableIPN3JSC7UString3RepESt4pairIS4_PNS1_8JSStringEENS_18PairFirstExtractorIS8_EENS1_17IdentifierRepHashENS_14Pair
+__ZN3JSC11BooleanNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator8emitJumpEPNS_5LabelE
+__ZN3JSC17BytecodeGenerator9emitLabelEPNS_5LabelE
+__ZN3WTF6VectorIjLm0EE15reserveCapacityEm
+__ZN3JSC6IfNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZNK3JSC13StatementNode12isReturnNodeEv
+__ZN3JSC15DotAccessorNodeD0Ev
+__ZN3JSC10StringNodeD0Ev
+__ZN3JSC11BooleanNodeD0Ev
+__ZN3JSC6IfNodeD0Ev
+__ZN3JSC10IfElseNodeD0Ev
+__ZN3JSC3JIT22emit_op_get_global_varEPNS_11InstructionE
+__ZN3JSC3JIT29emitGetVariableObjectRegisterENS_3X8610RegisterIDEiS2_
+__ZN3JSC3JIT17emit_op_get_by_idEPNS_11InstructionE
+__ZN3JSC3JIT21compileGetByIdHotPathEiiPNS_10IdentifierEj
+__ZN3WTF6VectorIN3JSC13SlowCaseEntryELm0EE14expandCapacityEmPKS2_
+__ZN3JSC3JIT14emit_op_jfalseEPNS_11InstructionE
+__ZN3JSC20MacroAssemblerX86_649branchPtrENS_23MacroAssemblerX86Common9ConditionENS_3X8610RegisterIDENS_22AbstractMacroAssembler
+__ZN3JSC20MacroAssemblerX86_649branchPtrENS_23MacroAssemblerX86Common9ConditionENS_3X8610RegisterIDES4_
+__ZN3WTF6VectorIN3JSC9JumpTableELm0EE14expandCapacityEmPKS2_
+__ZN3WTF6VectorIN3JSC9JumpTableELm0EE14expandCapacityEm
+__ZN3JSC3JIT20emit_op_resolve_funcEPNS_11InstructionE
+__ZN3JSC3JIT11emit_op_jmpEPNS_11InstructionE
+__ZN3JSC3JIT11emit_op_retEPNS_11InstructionE
+__ZN3JSC3JIT21emitSlow_op_get_by_idEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC3JIT22compileGetByIdSlowCaseEiiPNS_10IdentifierERPNS_13SlowCaseEntryEj
+__ZN3JSC3JIT18emitSlow_op_jfalseEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC23MacroAssemblerX86Common12branchTest32ENS0_9ConditionENS_3X8610RegisterIDENS_22AbstractMacroAssemblerINS_12X86Assemble
+__ZN3JSC8JITStubs23cti_vm_dontLazyLinkCallEPPv
+__ZN3JSC31ctiPatchNearCallByReturnAddressENS_22AbstractMacroAssemblerINS_12X86AssemblerEE22ProcessorReturnAddressEPv
+__ZN3JSC8JITStubs23cti_register_file_checkEPPv
+__ZN3JSC8JITStubs16cti_op_get_by_idEPPv
+__ZNK3JSC7JSValue3getEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
+__ZN3JSC23setUpStaticFunctionSlotEPNS_9ExecStateEPKNS_9HashEntryEPNS_8JSObjectERKNS_10IdentifierERNS_12PropertySlotE
+__ZN3JSC27ctiPatchCallByReturnAddressENS_22AbstractMacroAssemblerINS_12X86AssemblerEE22ProcessorReturnAddressEPv
+__ZN3JSC8JITStubs12cti_op_jtrueEPPv
+__ZNK3JSC8JSObject9toBooleanEPNS_9ExecStateE
+__ZN3JSC8JITStubs19cti_op_resolve_funcEPPv
+__ZNK3JSC8JSObject12toThisObjectEPNS_9ExecStateE
+__ZNK3JSC8JSString8toStringEPNS_9ExecStateE
+__ZN3JSC8JITStubs23cti_op_get_by_id_secondEPPv
+__ZN3JSC8JITStubs15tryCacheGetByIDEPNS_9ExecStateEPNS_9CodeBlockEPvNS_7JSValueERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSC3JIT26privateCompileGetByIdProtoEPNS_17StructureStubInfoEPNS_9StructureES4_mNS_22AbstractMacroAssemblerINS_12X86Assembl
+__ZN3JSC3JIT22compileGetDirectOffsetEPNS_8JSObjectENS_3X8610RegisterIDES4_m
+__ZN3JSC8JITStubs19cti_vm_lazyLinkCallEPPv
+__ZN3JSC3JIT8linkCallEPNS_10JSFunctionEPNS_9CodeBlockENS_7JITCodeEPNS_12CallLinkInfoEi
+__ZN3JSC8JITStubs10cti_op_endEPPv
+__ZThn16_N3JSC12FuncDeclNodeD0Ev
+__ZN3JSC12FuncDeclNodeD0Ev
__ZN3WTF25TCMalloc_Central_FreeList11ShrinkCacheEib
-__ZN3WTF25TCMalloc_Central_FreeList18ReleaseListToSpansEPv
-__ZN3WTF15deleteAllValuesIPN3KJS16ParserRefCountedEKNS_9HashTableIiiNS_17IdentityExtractorIiEENS_7IntHashIiEENS_10HashTraitsIiEESA_EEEEvRT0_
-__ZN3KJS19BracketAccessorNodeD1Ev
-__ZN3KJS11ProgramNodeC2EPNS_14SourceElementsEPN3WTF6VectorISt4pairINS_10IdentifierEjELm16EEEPNS4_IPNS_12FuncDeclNodeELm16EEE
-__ZNK3KJS8JSObject8toObjectEPNS_9ExecStateE
-__ZN3KJS11ProgramNode7executeEPNS_9ExecStateE
-__ZN3KJS11ProgramNode21initializeSymbolTableEPNS_9ExecStateE
-__ZN3WTF6VectorImLm0EE6resizeEm
-__ZN3WTF6VectorImLm0EE14expandCapacityEm
-__ZN3WTF6VectorImLm0EE15reserveCapacityEm
-__ZN3WTF9HashTableINS_6RefPtrIN3KJS7UString3RepEEESt4pairIS5_mENS_18PairFirstExtractorIS7_EENS2_17IdentifierRepHashENS_14PairHashTraitsINS2_23IdentifierRepHashTraitsENS2_26SymbolTableIndexHashTraitsEEESC_E3addIS5_mNS_17HashMapTranslatorILb1ES7_NS_18PairBaseHashTraitsISC_SD_EESE_SA_EEEES6_INS_17HashTableIteratorIS5_S7_S9_SA_SE_SC_EEbERKT_RKT0_
-__ZN3WTF9HashTableINS_6RefPtrIN3KJS7UString3RepEEESt4pairIS5_mENS_18PairFirstExtractorIS7_EENS2_17IdentifierRepHashENS_14PairHashTraitsINS2_23IdentifierRepHashTraitsENS2_26SymbolTableIndexHashTraitsEEESC_E6rehashEi
-__ZN3KJS14JSGlobalObject18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
-__ZNK3WTF7HashMapINS_6RefPtrIN3KJS7UString3RepEEEmNS2_17IdentifierRepHashENS2_23IdentifierRepHashTraitsENS2_26SymbolTableIndexHashTraitsEE3getEPS4_
-__ZN3KJS11PropertyMap11getLocationERKNS_10IdentifierE
-__ZN3KJS6Lookup9findEntryEPKNS_9HashTableERKNS_10IdentifierE
-__ZNK3KJS7UString14toStrictUInt32EPb
-__ZN3KJS8JSObject18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
-__ZN3WTF6VectorIN3KJS17LocalStorageEntryELm32EE15reserveCapacityEm
-__ZN3KJS11FunctionImpC2EPNS_9ExecStateERKNS_10IdentifierEPNS_16FunctionBodyNodeERKNS_10ScopeChainE
-__ZN3KJS15ObjectObjectImp9constructEPNS_9ExecStateERKNS_4ListE
-__ZN3KJS9ScopeNode22optimizeVariableAccessEPNS_9ExecStateE
-__ZN3WTF6VectorIPN3KJS4NodeELm16EE14expandCapacityEm
-__ZN3WTF6VectorIPN3KJS4NodeELm16EE15reserveCapacityEm
-__ZN3KJS16VarStatementNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS17AssignResolveNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS17ObjectLiteralNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS16PropertyListNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS12PropertyNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS4Node22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPS0_Lm16EEE
-__ZN3KJS14LogicalNotNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS14LogicalAndNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS15DotAccessorNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS11ResolveNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS11GreaterNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS19FunctionCallDotNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS13ArgumentsNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS16ArgumentListNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS9EqualNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS18NotStrictEqualNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS6IfNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS17ExprStatementNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS13AssignDotNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS13LogicalOrNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS8WithNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS9BlockNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS23FunctionCallResolveNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS21FunctionCallValueNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS9ArrayNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS11ElementNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS10IfElseNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS7AddNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS6InNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS11NewExprNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS16VarStatementNode7executeEPNS_9ExecStateE
-__ZN3KJS18AssignLocalVarNode8evaluateEPNS_9ExecStateE
-__ZN3KJS17ObjectLiteralNode8evaluateEPNS_9ExecStateE
-__ZN3KJS16PropertyListNode8evaluateEPNS_9ExecStateE
-__ZN3KJS10StringNode8evaluateEPNS_9ExecStateE
-__ZN3KJS13jsOwnedStringERKNS_7UStringE
-__ZN3KJS8JSObject3putEPNS_9ExecStateERKNS_10IdentifierEPNS_7JSValueEi
-__ZN3KJS14LogicalNotNode8evaluateEPNS_9ExecStateE
-__ZN3KJS14LogicalNotNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS14LogicalAndNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS15DotAccessorNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS11ResolveNode8evaluateEPNS_9ExecStateE
-__ZN3KJS11GreaterNode8evaluateEPNS_9ExecStateE
-__ZN3KJS19FunctionCallDotNode8evaluateEPNS_9ExecStateE
-__ZN3KJS15DotAccessorNode8evaluateEPNS_9ExecStateE
-__ZNK3KJS9ExecState19lexicalGlobalObjectEv
-__ZNK3KJS9StringImp8toObjectEPNS_9ExecStateE
-__ZN3KJS14StringInstance18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
-__ZN3KJS15StringPrototype18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
-__ZN3KJS20staticFunctionGetterEPNS_9ExecStateEPNS_8JSObjectERKNS_10IdentifierERKNS_12PropertySlotE
-__ZN3KJS17PrototypeFunctionC1EPNS_9ExecStateEiRKNS_10IdentifierEPFPNS_7JSValueES2_PNS_8JSObjectERKNS_4ListEE
-__ZNK3KJS19InternalFunctionImp14implementsCallEv
-__ZN3KJS16ArgumentListNode12evaluateListEPNS_9ExecStateERNS_4ListE
-__ZN3KJS17PrototypeFunction14callAsFunctionEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS22stringProtoFuncIndexOfEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS14StringInstance9classInfoEv
-__ZNK3KJS9StringImp8toStringEPNS_9ExecStateE
-__ZNK3KJS7JSValue9toIntegerEPNS_9ExecStateE
-__ZNK3KJS7UString4findERKS0_i
-__ZN3KJS19ImmediateNumberNode8evaluateEPNS_9ExecStateE
-__ZN3KJS14LogicalAndNode8evaluateEPNS_9ExecStateE
-__ZN3KJS9EqualNode8evaluateEPNS_9ExecStateE
-__ZN3KJS5equalEPNS_9ExecStateEPNS_7JSValueES3_
-__ZN3KJS19FunctionCallDotNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS10RegExpNode8evaluateEPNS_9ExecStateE
-__ZN3KJS15RegExpObjectImp15createRegExpImpEPNS_9ExecStateEN3WTF10PassRefPtrINS_6RegExpEEE
-__ZN3KJS20stringProtoFuncMatchEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS9RegExpImp9classInfoEv
-__ZN3KJS15RegExpObjectImp12performMatchEPNS_6RegExpERKNS_7UStringEiRiS6_PPi
-__ZN3KJS6RegExp5matchERKNS_7UStringEiPN3WTF11OwnArrayPtrIiEE
-__Z5matchPKtPKhiR9MatchData
-__ZNK3KJS8JSObject9toBooleanEPNS_9ExecStateE
-__ZN3KJS18NotStrictEqualNode8evaluateEPNS_9ExecStateE
-__ZNK3KJS7UString8toUInt32EPbb
-__ZNK3KJS7UString8toDoubleEbb
-__ZN3KJS11strictEqualEPNS_9ExecStateEPNS_7JSValueES3_
-__ZN3KJS12FuncExprNode8evaluateEPNS_9ExecStateE
-__ZN3KJS14JSGlobalObject17tearOffActivationEPNS_9ExecStateEb
-__ZN3KJS6IfNode7executeEPNS_9ExecStateE
-__ZN3KJS18LocalVarAccessNode8evaluateEPNS_9ExecStateE
-__ZN3KJS17ExprStatementNode7executeEPNS_9ExecStateE
-__ZN3KJS13AssignDotNode8evaluateEPNS_9ExecStateE
-__ZN3KJS11FunctionImp14callAsFunctionEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS17FunctionExecStateC1EPNS_14JSGlobalObjectEPNS_8JSObjectEPNS_16FunctionBodyNodeEPNS_9ExecStateEPNS_11FunctionImpERKNS_4ListE
-__ZN3KJS14JSGlobalObject14pushActivationEPNS_9ExecStateE
-__ZN3KJS13ActivationImp4initEPNS_9ExecStateE
-__ZN3KJS16FunctionBodyNode7executeEPNS_9ExecStateE
-__ZN3KJS16FunctionBodyNode21initializeSymbolTableEPNS_9ExecStateE
-__ZN3KJS9ForInNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS17AssignBracketNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS19BracketAccessorNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS10ReturnNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS9ForInNode7executeEPNS_9ExecStateE
-__ZN3KJS8JSObject16getPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayE
-__ZNK3KJS11PropertyMap26getEnumerablePropertyNamesERNS_17PropertyNameArrayE
-__ZNK3KJS8JSObject9classInfoEv
-__ZN3KJS13ActivationImp18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
-__ZN3KJS13ActivationImp3putEPNS_9ExecStateERKNS_10IdentifierEPNS_7JSValueEi
-__ZN3KJS17AssignBracketNode8evaluateEPNS_9ExecStateE
-__ZNK3KJS6JSCell9getUInt32ERj
-__ZN3KJS19BracketAccessorNode8evaluateEPNS_9ExecStateE
-__ZN3KJS10ReturnNode7executeEPNS_9ExecStateE
-__ZN3KJS14JSGlobalObject13popActivationEv
-__ZN3KJS11FunctionImp18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
-__ZN3KJS10NumberNode8evaluateEPNS_9ExecStateE
-__ZN3KJS9CommaNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS13ActivationImpC1ERKNS0_14ActivationDataEb
-__ZN3WTF6VectorIN3KJS17LocalStorageEntryELm32EEC2ERKS3_
-__ZN3KJS13ActivationImp15argumentsGetterEPNS_9ExecStateEPNS_8JSObjectERKNS_10IdentifierERKNS_12PropertySlotE
-__ZN3KJS13ActivationImp21createArgumentsObjectEPNS_9ExecStateE
-__ZN3KJS9ArgumentsC2EPNS_9ExecStateEPNS_11FunctionImpERKNS_4ListEPNS_13ActivationImpE
-__ZN3KJS14IndexToNameMapC2EPNS_11FunctionImpERKNS_4ListE
-__ZN3KJS11FunctionImp16getParameterNameEi
-__ZN3KJS7UString4fromEj
-__ZN3KJS9Arguments18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
-__ZN3KJS9CommaNode8evaluateEPNS_9ExecStateE
-__ZN3KJS8ThisNode8evaluateEPNS_9ExecStateE
-__ZN3KJS23FunctionCallResolveNode8evaluateEPNS_9ExecStateE
-__ZN3KJS9WhileNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS18PostDecResolveNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS18LocalVarAccessNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS13LogicalOrNode8evaluateEPNS_9ExecStateE
-__ZN3KJS11NewExprNode8evaluateEPNS_9ExecStateE
-__ZNK3KJS14ArrayObjectImp19implementsConstructEv
-__ZN3KJS14ArrayObjectImp9constructEPNS_9ExecStateERKNS_4ListE
-__ZN3KJS9WhileNode7executeEPNS_9ExecStateE
-__ZN3KJS19PostDecLocalVarNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS8JSObject18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
-__ZN3KJS13ArrayInstance3putEPNS_9ExecStateEjPNS_7JSValueEi
-__ZN3KJS15RegExpObjectImp18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
-__ZN3KJS15RegExpObjectImp3putEPNS_9ExecStateERKNS_10IdentifierEPNS_7JSValueEi
-__ZN3KJS7ForNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS8LessNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS17PreIncResolveNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS8NullNode8evaluateEPNS_9ExecStateE
-__ZN3KJS13ArrayInstance18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
-__ZN3KJS17TypeOfResolveNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS18LocalVarTypeOfNode8evaluateEPNS_9ExecStateE
-__ZN3KJS18typeStringForValueEPNS_7JSValueE
-__ZNK3KJS8JSObject21masqueradeAsUndefinedEv
-__ZNK3KJS8JSObject14implementsCallEv
-__ZN3KJS12FuncDeclNode7executeEPNS_9ExecStateE
-__ZN3KJS11FunctionImp3putEPNS_9ExecStateERKNS_10IdentifierEPNS_7JSValueEi
-__ZN3KJS9ArrayNode8evaluateEPNS_9ExecStateE
-__ZN3KJS13ArrayInstanceC2EPNS_8JSObjectERKNS_4ListE
-__ZN3KJS13ArrayInstance3putEPNS_9ExecStateERKNS_10IdentifierEPNS_7JSValueEi
-__ZN3KJS13ArrayInstance9setLengthEj
-__ZN3KJS7ForNode7executeEPNS_9ExecStateE
-__ZN3KJS8LessNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS13ArrayInstance18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
-__ZN3KJS13ArrayInstance12lengthGetterEPNS_9ExecStateEPNS_8JSObjectERKNS_10IdentifierERKNS_12PropertySlotE
-__ZN3KJS14ArrayPrototype18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
-__ZN3KJS18arrayProtoFuncPushEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS8TrueNode8evaluateEPNS_9ExecStateE
-__ZN3KJS9BlockNode7executeEPNS_9ExecStateE
-__ZN3KJS18PreIncLocalVarNode8evaluateEPNS_9ExecStateE
-__ZN3KJS14StringInstance3putEPNS_9ExecStateERKNS_10IdentifierEPNS_7JSValueEi
-__ZN3KJS13LogicalOrNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS8WithNode7executeEPNS_9ExecStateE
-__ZN3KJS15NumberObjectImp18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
-__ZN3KJS24LocalVarFunctionCallNode8evaluateEPNS_9ExecStateE
-__ZN3KJS15ConditionalNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS22stringProtoFuncReplaceEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS7replaceEPNS_9ExecStateEPNS_9StringImpEPNS_7JSValueES5_
-__ZNK3KJS7UString30spliceSubstringsWithSeparatorsEPKNS0_5RangeEiPKS0_i
-__ZN3KJS15ConditionalNode8evaluateEPNS_9ExecStateE
-__ZNK3KJS9StringImp9toBooleanEPNS_9ExecStateE
-__ZN3KJS20stringProtoFuncSplitEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS7UString6substrEii
-__ZN3KJS7UString3Rep6createEN3WTF10PassRefPtrIS1_EEii
-__ZN3KJS7TryNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS15LessNumbersNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS15DotAccessorNode16evaluateToNumberEPNS_9ExecStateE
-__ZN3KJS10NumberNode16evaluateToNumberEPNS_9ExecStateE
-__ZN3KJS7TryNode7executeEPNS_9ExecStateE
-__ZN3KJS21arrayProtoFuncForEachEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS18PostIncResolveNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS18PostIncResolveNode8evaluateEPNS_9ExecStateE
-__ZN3KJS13ActivationImp18isActivationObjectEv
-__ZN3KJS13MathObjectImp18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
-__ZN3KJS21FunctionCallValueNode8evaluateEPNS_9ExecStateE
-__ZN3KJS12NotEqualNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS9FalseNode8evaluateEPNS_9ExecStateE
-__ZN3KJS19arrayProtoFuncShiftEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS13ArrayInstance14deletePropertyEPNS_9ExecStateEj
-__ZNK3KJS11FunctionImp19implementsConstructEv
-__ZN3KJS11FunctionImp9constructEPNS_9ExecStateERKNS_4ListE
-__ZN3KJS9EqualNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS25functionProtoFuncToStringEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS11FunctionImp9classInfoEv
-__ZNK3KJS4Node8toStringEv
-__ZNK3KJS9ScopeNode8streamToERNS_12SourceStreamE
-__ZN3KJS7UString6appendEt
-__ZN3KJS7UString6appendERKS0_
-__ZN3KJS7UString6appendEPKc
-__ZN3KJS7UString14expandCapacityEi
-__ZN3KJS12SourceStreamlsEPKNS_4NodeE
-__ZNK3KJS17ExprStatementNode8streamToERNS_12SourceStreamE
-__ZNK3KJS4Node21needsParensIfLeftmostEv
-__ZNK3KJS23FunctionCallResolveNode8streamToERNS_12SourceStreamE
-__ZNK3KJS13ArgumentsNode8streamToERNS_12SourceStreamE
-__ZNK3KJS16ArgumentListNode8streamToERNS_12SourceStreamE
-__ZNK3KJS11ResolveNode10precedenceEv
-__ZNK3KJS11ResolveNode8streamToERNS_12SourceStreamE
-__ZNK3KJS13AssignDotNode8streamToERNS_12SourceStreamE
-__ZNK3KJS8ThisNode10precedenceEv
-__ZNK3KJS8ThisNode8streamToERNS_12SourceStreamE
-__ZNK3KJS19FunctionCallDotNode10precedenceEv
-__ZNK3KJS19FunctionCallDotNode8streamToERNS_12SourceStreamE
-__ZNK3KJS16FunctionBodyNode11paramStringEv
-__ZNK3KJS15RegExpObjectImp14arrayOfMatchesEPNS_9ExecStateE
-__ZN3KJS9Arguments17mappedIndexGetterEPNS_9ExecStateEPNS_8JSObjectERKNS_10IdentifierERKNS_12PropertySlotE
-__ZN3KJS19arrayProtoFuncSliceEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS22functionProtoFuncApplyEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS13ArrayInstance9classInfoEv
-__ZN3KJS24substituteBackreferencesERKNS_7UStringES2_PiPNS_6RegExpE
-__ZNK3KJS15DotAccessorNode10precedenceEv
-__ZNK3KJS15DotAccessorNode8streamToERNS_12SourceStreamE
-__ZNK3KJS16VarStatementNode8streamToERNS_12SourceStreamE
-__ZNK3KJS17AssignResolveNode8streamToERNS_12SourceStreamE
-__ZNK3KJS6IfNode8streamToERNS_12SourceStreamE
-__ZNK3KJS14LogicalNotNode8streamToERNS_12SourceStreamE
-__ZNK3KJS9ArrayNode10precedenceEv
-__ZNK3KJS9ArrayNode8streamToERNS_12SourceStreamE
-__ZNK3KJS11ElementNode8streamToERNS_12SourceStreamE
-__ZNK3KJS10StringNode10precedenceEv
-__ZNK3KJS10StringNode8streamToERNS_12SourceStreamE
-__ZN3KJS29escapeStringForPrettyPrintingERKNS_7UStringE
-__ZNK3KJS9BlockNode8streamToERNS_12SourceStreamE
-__ZNK3KJS17AssignBracketNode8streamToERNS_12SourceStreamE
-__ZNK3KJS10IfElseNode8streamToERNS_12SourceStreamE
-__ZNK3KJS9EqualNode8streamToERNS_12SourceStreamE
-__ZNK3KJS9EqualNode10precedenceEv
-__ZN3KJS35streamLeftAssociativeBinaryOperatorERNS_12SourceStreamENS_10PrecedenceEPKcPKNS_4NodeES7_
-__ZNK3KJS17ReadModifyDotNode8streamToERNS_12SourceStreamE
-__ZNK3KJS7AddNode10precedenceEv
-__ZNK3KJS7AddNode8streamToERNS_12SourceStreamE
-__ZNK3KJS15ConditionalNode10precedenceEv
-__ZNK3KJS15ConditionalNode8streamToERNS_12SourceStreamE
-__ZNK3KJS10RegExpNode10precedenceEv
-__ZNK3KJS10RegExpNode8streamToERNS_12SourceStreamE
-__ZNK3KJS21ReadModifyResolveNode8streamToERNS_12SourceStreamE
-__ZNK3KJS7TryNode8streamToERNS_12SourceStreamE
-__ZNK3KJS11NewExprNode10precedenceEv
-__ZNK3KJS11NewExprNode8streamToERNS_12SourceStreamE
-__ZNK3KJS10NumberNode10precedenceEv
-__ZNK3KJS10NumberNode8streamToERNS_12SourceStreamE
-__ZN3KJS12SourceStreamlsEd
-__ZNK3KJS13LogicalOrNode10precedenceEv
-__ZNK3KJS13LogicalOrNode8streamToERNS_12SourceStreamE
-__ZNK3KJS8NullNode10precedenceEv
-__ZNK3KJS8NullNode8streamToERNS_12SourceStreamE
-__ZNK3KJS14LogicalAndNode8streamToERNS_12SourceStreamE
-__ZNK3KJS14LogicalAndNode10precedenceEv
-__ZNK3KJS14LogicalNotNode10precedenceEv
-__ZN3KJS7UString17expandPreCapacityEi
-__ZN3KJS19BracketAccessorNode17evaluateToBooleanEPNS_9ExecStateE
-__ZNK3KJS11GreaterNode10precedenceEv
-__ZNK3KJS11GreaterNode8streamToERNS_12SourceStreamE
-__ZNK3KJS17ObjectLiteralNode10precedenceEv
-__ZNK3KJS17ObjectLiteralNode8streamToERNS_12SourceStreamE
-__ZNK3KJS16PropertyListNode8streamToERNS_12SourceStreamE
-__ZNK3KJS12PropertyNode8streamToERNS_12SourceStreamE
-__ZNK3KJS8LessNode10precedenceEv
-__ZNK3KJS8LessNode8streamToERNS_12SourceStreamE
-__ZNK3KJS19BracketAccessorNode10precedenceEv
-__ZNK3KJS19BracketAccessorNode8streamToERNS_12SourceStreamE
-__ZNK3KJS15TypeOfValueNode10precedenceEv
-__ZNK3KJS15TypeOfValueNode8streamToERNS_12SourceStreamE
-__ZNK3KJS7ForNode8streamToERNS_12SourceStreamE
-__ZNK3KJS9CommaNode8streamToERNS_12SourceStreamE
-__ZNK3KJS17AssignResolveNode10precedenceEv
-__ZNK3KJS23FunctionCallResolveNode10precedenceEv
-__ZNK3KJS12FuncExprNode10precedenceEv
-__ZNK3KJS12FuncExprNode8streamToERNS_12SourceStreamE
-__ZNK3KJS13ParameterNode8streamToERNS_12SourceStreamE
-__ZNK3KJS9ForInNode8streamToERNS_12SourceStreamE
-__ZNK3KJS10ReturnNode8streamToERNS_12SourceStreamE
-__ZNK3KJS13GreaterEqNode10precedenceEv
-__ZNK3KJS13GreaterEqNode8streamToERNS_12SourceStreamE
-__ZNK3KJS8TrueNode10precedenceEv
-__ZNK3KJS8TrueNode8streamToERNS_12SourceStreamE
-__ZNK3KJS21FunctionCallValueNode8streamToERNS_12SourceStreamE
-__ZN3KJS11ElementNode8evaluateEPNS_9ExecStateE
-__ZNK3KJS8MultNode10precedenceEv
-__ZNK3KJS8MultNode8streamToERNS_12SourceStreamE
-__ZN3KJS21functionProtoFuncCallEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS4List8getSliceEiRS0_
-__ZN3KJS10IfElseNode7executeEPNS_9ExecStateE
-__ZN3KJS6InNode17evaluateToBooleanEPNS_9ExecStateE
-__ZNK3KJS12NotEqualNode10precedenceEv
-__ZNK3KJS12NotEqualNode8streamToERNS_12SourceStreamE
-__ZN3KJS17AssignResolveNode8evaluateEPNS_9ExecStateE
-__ZN3KJS13DeleteDotNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS12ContinueNode7executeEPNS_9ExecStateE
-__ZN3KJS13DeleteDotNode8evaluateEPNS_9ExecStateE
-__ZN3KJS11FunctionImp14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
-__ZN3KJS8JSObject14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
-__ZNK3KJS11PropertyMap3getERKNS_10IdentifierERj
-__ZN3KJS11GreaterNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS13PrefixDotNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS13PreIncDotNode8evaluateEPNS_9ExecStateE
-__ZN3KJS14JSGlobalObject3putEPNS_9ExecStateERKNS_10IdentifierEPNS_7JSValueEi
-__ZNK3KJS8JSObject8toStringEPNS_9ExecStateE
-__ZNK3KJS8JSObject11toPrimitiveEPNS_9ExecStateENS_6JSTypeE
-__ZNK3KJS8JSObject12defaultValueEPNS_9ExecStateENS_6JSTypeE
-__ZN3KJS22arrayProtoFuncToStringEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3WTF9HashTableIiiNS_17IdentityExtractorIiEENS_7IntHashIiEENS_10HashTraitsIiEES6_E3addIPN3KJS16RuntimeObjectImpESB_NS_17HashSetTranslatorILb1ESB_NS5_ISB_EES6_NS_7PtrHashISB_EEEEEESt4pairINS_17HashTableIteratorIiiS2_S4_S6_S6_EEbERKT_RKT0_
-__ZN3KJS11JSImmediate8toStringEPKNS_7JSValueE
-__ZN3KJS12NotEqualNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS21arrayProtoFuncIndexOfEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS14ErrorObjectImp19implementsConstructEv
-__ZN3KJS14ErrorObjectImp9constructEPNS_9ExecStateERKNS_4ListE
-__ZN3KJS9Collector7collectEv
-__ZN3KJS9Collector31markCurrentThreadConservativelyEv
-__ZN3KJS9Collector30markStackObjectsConservativelyEPvS1_
-__ZN3KJS6JSCell4markEv
-__ZN3KJS8JSObject4markEv
-__ZNK3KJS11PropertyMap4markEv
-__ZN3KJS11FunctionImp4markEv
-__ZN3KJS14JSGlobalObject4markEv
-__ZN3KJS16JSVariableObject4markEv
-__ZN3KJS13ArrayInstance4markEv
-__ZN3KJS15JSWrapperObject4markEv
-__ZN3KJS13ActivationImp4markEv
-__ZN3KJS13ActivationImp12markChildrenEv
-__ZN3KJS14NativeErrorImp4markEv
-__ZN3KJS9Arguments4markEv
-__ZN3KJS9Collector20markProtectedObjectsEv
-__ZN3KJS9Collector5sweepILNS0_8HeapTypeE0EEEmb
-__ZN3KJS11PropertyMapD1Ev
-__ZN3KJS11FunctionImpD0Ev
-__ZN3KJS9StringImpD0Ev
-__ZN3KJS9RegExpImpD0Ev
-__ZN3KJS13ArrayInstanceD0Ev
-__ZN3KJS9ArgumentsD0Ev
-__ZN3KJS9Collector5sweepILNS0_8HeapTypeE1EEEmb
-__ZN3KJS14AddStringsNode8evaluateEPNS_9ExecStateE
-__ZN3KJS17AddStringLeftNode8evaluateEPNS_9ExecStateE
-__ZNK3KJS9StringImp11toPrimitiveEPNS_9ExecStateENS_6JSTypeE
-__ZN3KJS7AddNode8evaluateEPNS_9ExecStateE
-__ZN3KJS21stringProtoFuncCharAtEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS26stringProtoFuncToUpperCaseEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS24stringProtoFuncSubstringEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS26stringProtoFuncToLowerCaseEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS7UString8toUInt32EPb
-__ZN3KJS22ReadModifyLocalVarNode8evaluateEPNS_9ExecStateE
-__ZN3KJS19PostIncLocalVarNode8evaluateEPNS_9ExecStateE
-__ZN3KJS17PreDecResolveNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS18PreDecLocalVarNode8evaluateEPNS_9ExecStateE
-__ZN3KJS8MultNode16evaluateToNumberEPNS_9ExecStateE
-__ZNK3KJS9NumberImp4typeEv
-__ZN3KJS20dateProtoFuncSetTimeEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS7SubNode16evaluateToNumberEPNS_9ExecStateE
-__ZNK3KJS9StringImp8toNumberEPNS_9ExecStateE
-__ZN3KJS18globalFuncParseIntEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS7JSValue15toInt32SlowCaseEPNS_9ExecStateERb
-__ZN3KJS24dateProtoFuncToGMTStringEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS10formatTimeERKNS_17GregorianDateTimeEb
-__ZNK3KJS15RegExpObjectImp19implementsConstructEv
-__ZN3KJS15RegExpObjectImp9constructEPNS_9ExecStateERKNS_4ListE
-__ZN3KJS19regExpProtoFuncExecEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS14StringInstance18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
-__ZN3KJS35stringInstanceNumericPropertyGetterEPNS_9ExecStateEPNS_8JSObjectEjRKNS_12PropertySlotE
-__ZN3KJS23FunctionCallResolveNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS15globalFuncIsNaNEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS20dateProtoFuncSetYearEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS21gregorianDateTimeToMSERKNS_17GregorianDateTimeEdb
-__ZN3KJS15dateToDayInYearEiii
-__ZN3KJS21ReadModifyBracketNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZNK3KJS15ObjectObjectImp19implementsConstructEv
-__ZN3KJS21ReadModifyBracketNode8evaluateEPNS_9ExecStateE
-__ZNK3KJS9ExecState12hadExceptionEv
-__ZNK3KJS7JSValue8toObjectEPNS_9ExecStateE
-__ZNK3KJS7JSValue8toStringEPNS_9ExecStateE
-__ZN3KJS7UStringD1Ev
-__ZN3KJS8JSObject15getPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
-__ZNK3KJS12PropertySlot8getValueEPNS_9ExecStateEPNS_8JSObjectERKNS_10IdentifierE
-__ZNK3WTF6RefPtrIN3KJS14ExpressionNodeEE3getEv
-__ZN3KJS3addEPNS_9ExecStateEPNS_7JSValueES3_
-__ZN3KJS10IdentifierD1Ev
-__ZNK3KJS8JSObject3getEPNS_9ExecStateERKNS_10IdentifierE
-__ZN3KJS20arrayProtoFuncConcatEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS14ExpressionNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS9BreakNode7executeEPNS_9ExecStateE
-__ZN3KJS18arrayProtoFuncJoinEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS11JSImmediate8toObjectEPKNS_7JSValueEPNS_9ExecStateE
-__ZN3KJS10throwErrorEPNS_9ExecStateENS_9ErrorTypeEPKc
-__ZN3KJS5Error6createEPNS_9ExecStateENS_9ErrorTypeERKNS_7UStringEiiS6_
-__ZN3KJS14NativeErrorImp9constructEPNS_9ExecStateERKNS_4ListE
-__ZNK3KJS6JSCell17getTruncatedInt32ERi
-__ZN3KJS15StringObjectImp14callAsFunctionEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS9Collector15recordExtraCostEm
-__ZN3KJS22objectProtoFuncValueOfEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS23objectProtoFuncToStringEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS8JSObject9classNameEv
-__ZN3KJS14PostDecDotNode8evaluateEPNS_9ExecStateE
-__ZN3KJS9CommaNodeD1Ev
-__ZN3KJS28globalFuncDecodeURIComponentEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS6decodeEPNS_9ExecStateERKNS_4ListEPKcb
-__ZN3KJS19BracketAccessorNode16evaluateToNumberEPNS_9ExecStateE
-__ZN3KJS15TypeOfValueNodeD1Ev
-__ZN3KJS17PrototypeFunctionD0Ev
-__ZN3KJS13ErrorInstanceD0Ev
-__ZN3KJS18mathProtoFuncRoundEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS23FunctionCallResolveNode16evaluateToNumberEPNS_9ExecStateE
-__ZN3KJS13GreaterEqNodeD1Ev
-__ZN3KJS7ModNodeD1Ev
-__ZN3KJS24LocalVarFunctionCallNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS4List15expandAndAppendEPNS_7JSValueE
-__ZN3WTF6VectorIPN3KJS7JSValueELm8EE15reserveCapacityEm
-__ZN3KJS10SwitchNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS13CaseBlockNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS14ClauseListNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS14CaseClauseNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS10SwitchNode7executeEPNS_9ExecStateE
-__ZN3KJS13CaseBlockNode12executeBlockEPNS_9ExecStateEPNS_7JSValueE
-__ZN3KJS18NotStrictEqualNode17evaluateToBooleanEPNS_9ExecStateE
-__Z23_NPN_CreateScriptObjectP4_NPPPN3KJS8JSObjectEN3WTF10PassRefPtrINS1_8Bindings10RootObjectEEE
-__NPN_CreateObject
-__Z10jsAllocateP4_NPPP7NPClass
-__NPN_RetainObject
-__NPN_Evaluate
-__ZNK3KJS8Bindings10RootObject12globalObjectEv
-__ZN3KJS8Bindings22convertNPStringToUTF16EPK9_NPStringPPtPj
-__ZN3KJS8Bindings36convertUTF8ToUTF16WithLatin1FallbackEPKciPPtPj
-__ZN3WTF7Unicode18convertUTF8ToUTF16EPPKcS2_PPtS4_b
-__ZN3KJS11Interpreter8evaluateEPNS_9ExecStateERKNS_7UStringEiS5_PNS_7JSValueE
-__ZN3KJS8Bindings23convertValueToNPVariantEPNS_9ExecStateEPNS_7JSValueEP10_NPVariant
-__ZN3KJS11JSImmediate4typeEPKNS_7JSValueE
-__NPN_GetStringIdentifier
-__ZN3KJS8Bindings26identifierFromNPIdentifierEPKc
-__NPN_Invoke
-__ZN3KJS8Bindings14findRootObjectEPNS_14JSGlobalObjectE
-__NPN_ReleaseVariantValue
-__ZNK3KJS7UString10UTF8StringEb
+__ZN3JSC10JSFunction18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
+__ZN3JSC10JSFunction11getCallDataERNS_8CallDataE
+__ZN3JSC4callEPNS_9ExecStateENS_7JSValueENS_8CallTypeERKNS_8CallDataES2_RKNS_7ArgListE
+__ZN3JSC11Interpreter7executeEPNS_16FunctionBodyNodeEPNS_9ExecStateEPNS_10JSFunctionEPNS_8JSObjectERKNS_7ArgListEPNS_14ScopeCha
+__ZNK3JSC15DotAccessorNode10isLocationEv
+__ZNK3JSC14ExpressionNode13isResolveNodeEv
+__ZNK3JSC14ExpressionNode21isBracketAccessorNodeEv
+__ZN3JSC19FunctionCallDotNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC19FunctionCallDotNodeD0Ev
+__ZL26appendToVarDeclarationListPvRPN3JSC15ParserArenaDataIN3WTF6VectorISt4pairINS0_10IdentifierEjELm0EEEEERKS5_j
+__ZN3WTF6VectorISt4pairIN3JSC10IdentifierEjELm0EE14expandCapacityEm
+__ZL14makeAssignNodePvPN3JSC14ExpressionNodeENS0_8OperatorES2_bbiii
+__ZL11makeAddNodePvPN3JSC14ExpressionNodeES2_b
+__ZN3JSC16VarStatementNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17AssignResolveNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC11UnaryOpNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC10RegExpNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC6RegExp6createEPNS_12JSGlobalDataERKNS_7UStringES5_
+__ZN3JSC4Yarr15jitCompileRegexEPNS_12JSGlobalDataERNS0_14RegexCodeBlockERKNS_7UStringERjRPKcbb
+__ZN3JSC4Yarr12compileRegexERKNS_7UStringERNS0_12RegexPatternE
+__ZN3JSC4Yarr18PatternDisjunction17addNewAlternativeEv
+__ZN3WTF6VectorIPN3JSC4Yarr18PatternAlternativeELm0EE14expandCapacityEm
+__ZN3JSC4Yarr6ParserINS0_23RegexPatternConstructorEE11parseTokensEv
+__ZN3WTF6VectorIN3JSC4Yarr11PatternTermELm0EE14expandCapacityEmPKS3_
+__ZN3WTF6VectorIN3JSC4Yarr11PatternTermELm0EE14expandCapacityEm
+__ZN3JSC4Yarr6ParserINS0_23RegexPatternConstructorEE11parseEscapeILb0ES2_EEbRT0_
+__ZN3JSC4Yarr23RegexPatternConstructor25atomBuiltInCharacterClassENS0_23BuiltInCharacterClassIDEb
+__ZN3JSC4Yarr14wordcharCreateEv
+__ZN3WTF6VectorItLm0EE14expandCapacityEm
+__ZN3WTF6VectorIN3JSC4Yarr14CharacterRangeELm0EE14expandCapacityEmPKS3_
+__ZN3WTF6VectorIN3JSC4Yarr14CharacterRangeELm0EE14expandCapacityEm
+__ZN3WTF6VectorIPN3JSC4Yarr14CharacterClassELm0EE14expandCapacityEmPKS4_
+__ZN3WTF6VectorIPN3JSC4Yarr14CharacterClassELm0EE14expandCapacityEm
+__ZN3JSC4Yarr14RegexGenerator19generateDisjunctionEPNS0_18PatternDisjunctionE
+__ZN3JSC12X86Assembler7addl_irEiNS_3X8610RegisterIDE
+__ZN3JSC23MacroAssemblerX86Common8branch32ENS0_9ConditionENS_3X8610RegisterIDES3_
+__ZN3JSC22AbstractMacroAssemblerINS_12X86AssemblerEE8JumpList6appendENS2_4JumpE
+__ZN3JSC4Yarr14RegexGenerator12generateTermERNS1_19TermGenerationStateE
+__ZN3JSC23MacroAssemblerX86Common8branch32ENS0_9ConditionENS_3X8610RegisterIDENS_22AbstractMacroAssemblerINS_12X86AssemblerEE5I
+__ZN3JSC4Yarr14RegexGenerator19TermGenerationState15jumpToBacktrackENS_22AbstractMacroAssemblerINS_12X86AssemblerEE4JumpEPNS_14
+__ZN3JSC4Yarr14RegexGenerator13readCharacterEiNS_3X8610RegisterIDE
+__ZN3JSC4Yarr14RegexGenerator19matchCharacterClassENS_3X8610RegisterIDERNS_22AbstractMacroAssemblerINS_12X86AssemblerEE8JumpLis
+__ZN3JSC4Yarr14RegexGenerator24matchCharacterClassRangeENS_3X8610RegisterIDERNS_22AbstractMacroAssemblerINS_12X86AssemblerEE8Ju
+__ZN3JSC22AbstractMacroAssemblerINS_12X86AssemblerEE8JumpList4linkEPS2_
+__ZN3JSC23MacroAssemblerX86Common4jumpEv
+__ZN3WTF6VectorIN3JSC22AbstractMacroAssemblerINS1_12X86AssemblerEE4JumpELm16EED1Ev
+__ZN3JSC4Yarr14RegexGenerator28generateCharacterClassGreedyERNS1_19TermGenerationStateE
+__ZN3JSC12X86Assembler7subl_irEiNS_3X8610RegisterIDE
+__ZN3JSC15AssemblerBuffer4growEv
+__ZN3WTF15deleteAllValuesIPN3JSC4Yarr14CharacterClassELm0EEEvRKNS_6VectorIT_XT0_EEE
+__ZN3JSC17BytecodeGenerator13emitNewRegExpEPNS_10RegisterIDEPNS_6RegExpE
+__ZN3JSC15ConditionalNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC9EqualNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZNK3JSC14ExpressionNode6isNullEv
+__ZNK3JSC10StringNode6isPureERNS_17BytecodeGeneratorE
+__ZN3JSC19BracketAccessorNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZNK3JSC10NumberNode6isPureERNS_17BytecodeGeneratorE
+__ZN3JSC10NumberNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator8emitLoadEPNS_10RegisterIDEd
+__ZN3JSC17BytecodeGenerator12emitGetByValEPNS_10RegisterIDES2_S2_
+__ZN3JSC17BytecodeGenerator14emitEqualityOpENS_8OpcodeIDEPNS_10RegisterIDES3_S3_
+__ZN3JSC19ReverseBinaryOpNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZNK3JSC14ExpressionNode5isAddEv
+__ZN3JSC12SmallStrings27createSingleCharacterStringEPNS_12JSGlobalDataEh
+__ZN3JSC13AssignDotNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator11emitPutByIdEPNS_10RegisterIDERKNS_10IdentifierES2_
+__ZN3JSC17AssignResolveNodeD0Ev
+__ZN3JSC15ParserArenaDataIN3WTF6VectorISt4pairINS_10IdentifierEjELm0EEEED0Ev
+__ZN3JSC16VarStatementNodeD0Ev
+__ZN3JSC14LogicalNotNodeD0Ev
+__ZN3JSC10RegExpNodeD0Ev
+__ZN3JSC10NumberNodeD0Ev
+__ZN3JSC19BracketAccessorNodeD0Ev
+__ZN3JSC9EqualNodeD0Ev
+__ZN3JSC15ConditionalNodeD0Ev
+__ZN3JSC7AddNodeD0Ev
+__ZN3JSC13GreaterEqNodeD0Ev
+__ZN3JSC13AssignDotNodeD0Ev
+__ZN3JSC3JIT13emit_op_jtrueEPNS_11InstructionE
+__ZN3JSC3JIT18emit_op_new_regexpEPNS_11InstructionE
+__ZN3JSC3JIT18emit_op_get_by_valEPNS_11InstructionE
+__ZN3JSC3JIT10emit_op_eqEPNS_11InstructionE
+__ZN3JSC3JIT11emit_op_addEPNS_11InstructionE
+__ZN3JSC11JITStubCall11addArgumentEjNS_3X8610RegisterIDE
+__ZN3JSC3JIT16emit_op_jnlesseqEPNS_11InstructionE
+__ZN3JSC3JIT17emit_op_put_by_idEPNS_11InstructionE
+__ZN3JSC3JIT21compilePutByIdHotPathEiPNS_10IdentifierEij
+__ZN3JSC3JIT17emitSlow_op_jtrueEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC3JIT22emitSlow_op_get_by_valEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC3JIT14emitSlow_op_eqEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC3JIT20emitSlow_op_jnlesseqEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC20MacroAssemblerX86_6413branchTestPtrENS_23MacroAssemblerX86Common9ConditionENS_3X8610RegisterIDES4_
+__ZN3JSC12X86Assembler23X86InstructionFormatter9twoByteOpENS0_15TwoByteOpcodeIDEiNS_3X8610RegisterIDE
+__ZN3JSC23MacroAssemblerX86Common12branchDoubleENS0_15DoubleConditionENS_3X8613XMMRegisterIDES3_
+__ZN3JSC3JIT21emitSlow_op_put_by_idEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC3JIT22compilePutByIdSlowCaseEiPNS_10IdentifierEiRPNS_13SlowCaseEntryEj
+__ZN3JSC13LogicalOpNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3WTF6VectorIN3JSC17GlobalResolveInfoELm0EE14expandCapacityEm
+__ZN3JSC17BytecodeGenerator14emitJumpIfTrueEPNS_10RegisterIDEPNS_5LabelE
+__ZN3JSC13LogicalOpNodeD0Ev
+__ZN3JSC3JIT22emit_op_resolve_globalEPNS_11InstructionE
+__ZN3JSC8JITStubs21cti_op_resolve_globalEPPv
+__ZNK3JSC8JSString9toBooleanEPNS_9ExecStateE
+__ZN3JSC8JSString18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
+__ZN3JSC15StringPrototype18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
+__ZN3JSC12StringObject18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
+__ZN3JSCL20stringProtoFuncMatchEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC8JSString12toThisStringEPNS_9ExecStateE
+__ZNK3JSC6JSCell8isObjectEPKNS_9ClassInfoE
+__ZNK3JSC6JSCell9classInfoEv
+__ZN3JSC4Yarr23RegexPatternConstructor20atomPatternCharacterEt
+__ZN3JSC4Yarr25CharacterClassConstructor7putCharEt
+__ZN3JSC4Yarr25CharacterClassConstructor9addSortedERN3WTF6VectorItLm0EEEt
+__ZN3JSC4Yarr23RegexPatternConstructor21atomCharacterClassEndEv
+__ZN3JSC4Yarr23RegexPatternConstructor23setupDisjunctionOffsetsEPNS0_18PatternDisjunctionEjj
+__ZN3JSC4Yarr14RegexGenerator25generateParenthesesSingleERNS1_19TermGenerationStateE
+__ZN3JSC4Yarr14RegexGenerator30generateParenthesesDisjunctionERNS0_11PatternTermERNS1_19TermGenerationStateEj
+__ZN3WTF6VectorIN3JSC4Yarr14RegexGenerator26AlternativeBacktrackRecordELm0EE14expandCapacityEm
+__ZN3JSC4Yarr14RegexGenerator19jumpIfCharNotEqualsEti
+__ZN3JSC12X86Assembler23X86InstructionFormatter9oneByteOpENS0_15OneByteOpcodeIDEiNS_3X8610RegisterIDES4_ii
+__ZN3JSC4Yarr14RegexGenerator19TermGenerationState15jumpToBacktrackERNS_22AbstractMacroAssemblerINS_12X86AssemblerEE8JumpListEP
+__ZN3JSC17RegExpConstructor12performMatchEPNS_6RegExpERKNS_7UStringEiRiS6_PPi
+__ZN3JSC6RegExp5matchERKNS_7UStringEiPN3WTF11OwnArrayPtrIiEE
+__ZN3JSC4Yarr12executeRegexERNS0_14RegexCodeBlockEPKtjjPii
+__ZN3JSC8JITStubs17cti_op_new_regexpEPPv
+__ZN3JSC12RegExpObjectC1EN3WTF10PassRefPtrINS_9StructureEEENS2_INS_6RegExpEEE
+__ZNK3JSC12RegExpObject9classInfoEv
+__ZN3JSC18RegExpMatchesArrayC2EPNS_9ExecStateEPNS_24RegExpConstructorPrivateE
+__ZN3JSC8JITStubs17cti_op_get_by_valEPPv
+__ZN3JSC18RegExpMatchesArray18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
+__ZN3JSC18RegExpMatchesArray17fillArrayInstanceEPNS_9ExecStateE
+__ZN3JSC11jsSubstringEPNS_12JSGlobalDataERKNS_7UStringEjj
+__ZN3JSC7JSArray3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
+__ZN3JSC8JSObject3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
+__ZN3JSC7JSArray18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
+__ZN3JSC8JITStubs9cti_op_eqEPPv
+__ZN3JSCeqERKNS_7UStringES2_
+__ZN3JSC8JITStubs10cti_op_addEPPv
+__ZN3JSC11concatenateEPNS_7UString3RepES2_
+__ZN3JSCL22stringProtoFuncIndexOfEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC7UString4findERKS0_i
+__ZN3JSC8JITStubs16cti_op_put_by_idEPPv
+__ZNK3JSC7UString8toUInt32EPbb
+__ZNK3JSC7UString8toDoubleEbb
+__ZNK3JSC7UString10getCStringERN3WTF6VectorIcLm32EEE
+__ZN3WTF14FastMallocZone11forceUnlockEP14_malloc_zone_t
+__Z15jsRegExpCompilePKti24JSRegExpIgnoreCaseOption23JSRegExpMultilineOptionPjPPKc
+__ZL30calculateCompiledPatternLengthPKti24JSRegExpIgnoreCaseOptionR11CompileDataR9ErrorCode
+__ZL11checkEscapePPKtS0_P9ErrorCodeib
+__ZL13compileBranchiPiPPhPPKtS3_P9ErrorCodeS_S_R11CompileData
+__Z15jsRegExpExecutePK8JSRegExpPKtiiPii
+__ZL5matchPKtPKhiR9MatchData
+__ZNK3JSC7UString14toStrictUInt32EPb
+__ZN3JSC17ObjectLiteralNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC16PropertyListNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC7TryNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator9emitCatchEPNS_10RegisterIDEPNS_5LabelES4_
+__ZN3WTF6VectorIN3JSC11HandlerInfoELm0EE14expandCapacityEm
+__ZN3JSC17BytecodeGenerator16emitPushNewScopeEPNS_10RegisterIDERNS_10IdentifierES2_
+__ZN3WTF6VectorIN3JSC18ControlFlowContextELm0EE14expandCapacityEm
+__ZNK3JSC14ExpressionNode6isPureERNS_17BytecodeGeneratorE
+__ZN3JSC12PropertyNodeD0Ev
+__ZN3JSC16PropertyListNodeD0Ev
+__ZN3JSC17ObjectLiteralNodeD0Ev
+__ZN3JSC7TryNodeD0Ev
+__ZN3JSC3JIT18emit_op_new_objectEPNS_11InstructionE
+__ZN3JSC3JIT13emit_op_catchEPNS_11InstructionE
+__ZN3JSC3JIT22emit_op_push_new_scopeEPNS_11InstructionE
+__ZN3JSC3JIT15emit_op_resolveEPNS_11InstructionE
+__ZN3JSC3JIT17emit_op_pop_scopeEPNS_11InstructionE
+__ZN3JSC8JITStubs17cti_op_new_objectEPPv
+__ZN3JSC20constructEmptyObjectEPNS_9ExecStateE
+__ZN3JSC17StructureStubInfo5derefEv
+__ZN3WTF9HashTableINS_6RefPtrIN3JSC7UString3RepEEES5_NS_17IdentityExtractorIS5_EENS2_17IdentifierRepHashENS_10HashTraitsIS5_EES
+__ZN3JSC8ThisNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC21ThrowableBinaryOpNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC8ThisNodeD0Ev
+__ZN3JSC6InNodeD0Ev
+__ZN3JSC3JIT29emit_op_enter_with_activationEPNS_11InstructionE
+__ZN3JSC3JIT20emit_op_convert_thisEPNS_11InstructionE
+__ZN3JSC3JIT27emit_op_tear_off_activationEPNS_11InstructionE
+__ZN3JSC3JIT24emitSlow_op_convert_thisEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC8JITStubs22cti_op_push_activationEPPv
+__ZN3JSC12JSActivationC1EPNS_9ExecStateEN3WTF10PassRefPtrINS_16FunctionBodyNodeEEE
+__ZN3JSC12JSActivationC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_16FunctionBodyNodeEEE
+__ZN3JSC4Yarr6ParserINS0_23RegexPatternConstructorEE11parseEscapeILb1ENS3_28CharacterClassParserDelegateEEEbRT0_
+__ZN3JSC4Yarr12digitsCreateEv
+__ZN3JSC4Yarr25CharacterClassConstructor6appendEPKNS0_14CharacterClassE
+__ZN3JSC4Yarr25CharacterClassConstructor14addSortedRangeERN3WTF6VectorINS0_14CharacterRangeELm0EEEtt
+__ZN3JSC4Yarr6ParserINS0_23RegexPatternConstructorEE28CharacterClassParserDelegate20atomPatternCharacterEt
+__ZN3JSC11GreaterNodeD0Ev
+__ZN3JSCL26stringProtoFuncToLowerCaseEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC8JSString14toThisJSStringEPNS_9ExecStateE
+__ZN3JSC7UStringC2EPtib
+__ZN3JSC18globalFuncParseIntEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC11JSImmediate12nonInlineNaNEv
+__ZN3JSC8JITStubs11cti_op_lessEPPv
+__ZN3JSC8JITStubs9cti_op_inEPPv
+__ZNK3JSC6JSCell9getUInt32ERj
+__ZNK3JSC8JSObject11hasPropertyEPNS_9ExecStateERKNS_10IdentifierE
+__ZL14makePrefixNodePvPN3JSC14ExpressionNodeENS0_8OperatorEiii
+__ZN3JSC7ForNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator13newLabelScopeENS_10LabelScope4TypeEPKNS_10IdentifierE
+__ZN3JSC12ContinueNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator14continueTargetERKNS_10IdentifierE
+__ZN3JSC17BytecodeGenerator14emitJumpScopesEPNS_5LabelEi
+__ZN3JSC17PrefixResolveNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC21ReadModifyResolveNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC11NewExprNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator13emitConstructEPNS_10RegisterIDES2_PNS_13ArgumentsNodeEjjj
+__ZN3WTF6VectorIN3JSC20GetByIdExceptionInfoELm0EE14expandCapacityEm
+__ZN3JSC8LessNodeD0Ev
+__ZN3JSC17PrefixResolveNodeD0Ev
+__ZN3JSC12ContinueNodeD0Ev
+__ZN3JSC7ForNodeD0Ev
+__ZN3JSC21ReadModifyResolveNodeD0Ev
+__ZN3JSC11NewExprNodeD0Ev
+__ZN3JSC3JIT11emit_op_notEPNS_11InstructionE
+__ZN3JSC3JIT15emit_op_pre_incEPNS_11InstructionE
+__ZN3JSC3JIT20emit_op_loop_if_lessEPNS_11InstructionE
+__ZN3JSC3JIT16emitTimeoutCheckEv
+__ZN3JSC3JIT20compileBinaryArithOpENS_8OpcodeIDEjjjNS_12OperandTypesE
+__ZN3JSC3JIT11emit_op_subEPNS_11InstructionE
+__ZN3JSC3JIT17emit_op_constructEPNS_11InstructionE
+__ZN3JSC3JIT24emit_op_construct_verifyEPNS_11InstructionE
+__ZN3JSC3JIT15emitSlow_op_notEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC3JIT19emitSlow_op_pre_incEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC3JIT24emitSlow_op_loop_if_lessEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC3JIT15emitSlow_op_addEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC3JIT28compileBinaryArithOpSlowCaseENS_8OpcodeIDERPNS_13SlowCaseEntryEjjjNS_12OperandTypesE
+__ZN3JSC15AssemblerBuffer7putByteEi
+__ZN3JSC12X86Assembler23X86InstructionFormatter11twoByteOp64ENS0_15TwoByteOpcodeIDEiNS_3X8610RegisterIDE
+__ZN3JSC3JIT15emitSlow_op_subEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC3JIT21emitSlow_op_constructEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC3JIT27compileOpConstructSetupArgsEPNS_11InstructionE
+__ZN3JSC3JIT28emitSlow_op_construct_verifyEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC7UString4fromEj
+__ZN3JSC10Identifier11addSlowCaseEPNS_9ExecStateEPNS_7UString3RepE
+__ZN3JSC8JITStubs10cti_op_notEPPv
+__ZN3JSC8JITStubs24cti_op_get_by_id_genericEPPv
+__ZN3JSC7JSArrayC2EN3WTF10PassRefPtrINS_9StructureEEERKNS_7ArgListE
+__ZN3JSC7JSArray18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
+__ZN3JSCL24stringProtoFuncSubstringEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC8JITStubs31cti_op_construct_NotJSConstructEPPv
+__ZN3JSC3JIT33privateCompilePatchGetArrayLengthENS_22AbstractMacroAssemblerINS_12X86AssemblerEE22ProcessorReturnAddressE
+__ZN3JSC8JITStubs27cti_op_get_by_id_proto_listEPPv
+__ZN3JSC3JIT30privateCompileGetByIdProtoListEPNS_17StructureStubInfoEPNS_30PolymorphicAccessStructureListEiPNS_9StructureES6_mP
+__ZN3JSC3JIT16patchGetByIdSelfEPNS_17StructureStubInfoEPNS_9StructureEmNS_22AbstractMacroAssemblerINS_12X86AssemblerEE22Process
+__ZN3JSC14StructureChainC1EPNS_9StructureE
+__ZN3JSC14StructureChainC2EPNS_9StructureE
+__ZN3JSC3JIT26privateCompileGetByIdChainEPNS_17StructureStubInfoEPNS_9StructureEPNS_14StructureChainEmmNS_22AbstractMacroAssemb
+__ZN3JSC8JITStubs23cti_op_put_by_id_secondEPPv
+__ZN3JSC8JITStubs15tryCachePutByIDEPNS_9ExecStateEPNS_9CodeBlockEPvNS_7JSValueERKNS_15PutPropertySlotE
+__ZN3JSC8JITStubs24cti_op_put_by_id_genericEPPv
+__ZN3JSC8JITStubs26cti_op_tear_off_activationEPPv
+__ZN3JSC8JITStubs21cti_op_ret_scopeChainEPPv
+__ZN3JSC17BytecodeGenerator16emitPutScopedVarEmiPNS_10RegisterIDENS_7JSValueE
+__ZN3JSC3JIT22emit_op_get_scoped_varEPNS_11InstructionE
+__ZN3JSC3JIT22emit_op_put_scoped_varEPNS_11InstructionE
+__ZN3JSC3JIT29emitPutVariableObjectRegisterENS_3X8610RegisterIDES2_i
+__ZN3JSC12X86Assembler7movq_rrENS_3X8610RegisterIDENS1_13XMMRegisterIDE
+__ZN3WTF20TCMalloc_ThreadCache18DestroyThreadCacheEPv
+__ZN3WTF20TCMalloc_ThreadCache11DeleteCacheEPS0_
+__ZN3JSC15StrictEqualNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC15StrictEqualNodeD0Ev
+__ZN3JSC3JIT16emit_op_stricteqEPNS_11InstructionE
+__ZN3JSC3JIT17compileOpStrictEqEPNS_11InstructionENS0_21CompileOpStrictEqTypeE
+__ZN3JSC3JIT20emitSlow_op_stricteqEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC8JITStubs15cti_op_stricteqEPPv
+__ZN3WTF12detachThreadEj
+__ZN3WTFL26pthreadHandleForIdentifierEj
+__ZN3WTFL31clearPthreadHandleForIdentifierEj
+__ZN3WTF6VectorIPNS0_IN3JSC10IdentifierELm64EEELm32EE14expandCapacityEmPKS4_
+__ZN3WTF6VectorIPNS0_IN3JSC10IdentifierELm64EEELm32EE15reserveCapacityEm
+__ZN3JSC8NullNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC8NullNodeD0Ev
+__ZN3WTF7HashMapISt4pairINS_6RefPtrIN3JSC7UString3RepEEEjEPNS3_9StructureENS3_28StructureTransitionTableHashENS3_34StructureTra
+__ZN3WTF9HashTableISt4pairINS_6RefPtrIN3JSC7UString3RepEEEjES1_IS7_PNS3_9StructureEENS_18PairFirstExtractorISA_EENS3_28Structur
+__ZN3JSC9Structure22materializePropertyMapEv
+__ZN3JSC15TypeOfValueNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC15TypeOfValueNodeD0Ev
+__ZN3JSC12NotEqualNodeD0Ev
+__ZN3JSC3JIT11emit_op_neqEPNS_11InstructionE
+__ZN3JSC3JIT15emitSlow_op_neqEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC8JITStubs13cti_op_typeofEPPv
+__ZN3JSC20jsTypeStringForValueEPNS_9ExecStateENS_7JSValueE
+__ZN3JSC8JITStubs10cti_op_neqEPPv
+__ZN3JSC14ExecutablePool13systemReleaseERKNS0_10AllocationE
+__ZN3WTF6VectorItLm0EE14expandCapacityEmPKt
+__ZNK3JSC10NumberNode8isNumberEv
+__ZNK3JSC14ExpressionNode10isLocationEv
+__ZN3WTF6VectorIPN3JSC10RegisterIDELm32EE14expandCapacityEm
+__ZNK3JSC11BooleanNode6isPureERNS_17BytecodeGeneratorE
+__ZN3JSC4Yarr13newlineCreateEv
+__ZN3JSC12X86Assembler23X86InstructionFormatter15emitRexIfNeededEiii
+__ZN3JSC12X86Assembler23X86InstructionFormatter11memoryModRMEiNS_3X8610RegisterIDES3_ii
+__ZN3JSC17TypeOfResolveNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator15emitResolveBaseEPNS_10RegisterIDERKNS_10IdentifierE
+__ZN3JSC17BytecodeGenerator20emitLoadGlobalObjectEPNS_10RegisterIDEPNS_8JSObjectE
+__ZN3WTF6VectorIN3JSC7JSValueELm0EE14expandCapacityEm
+__ZNK3JSC7AddNode5isAddEv
+__ZN3JSC12BinaryOpNode10emitStrcatERNS_17BytecodeGeneratorEPNS_10RegisterIDES4_PNS_21ReadModifyResolveNodeE
+__ZNK3JSC10StringNode8isStringEv
+__ZNK3JSC14ExpressionNode8isStringEv
+__ZN3JSC17BytecodeGenerator10emitStrcatEPNS_10RegisterIDES2_i
+__ZN3JSC4Yarr12spacesCreateEv
+__ZN3JSC4Yarr15nonspacesCreateEv
+__ZN3JSC8WithNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator13emitPushScopeEPNS_10RegisterIDE
+__ZN3JSC23MacroAssemblerX86Common4moveENS_22AbstractMacroAssemblerINS_12X86AssemblerEE5Imm32ENS_3X8610RegisterIDE
+__ZN3JSC14MacroAssembler4peekENS_3X8610RegisterIDEi
+__ZN3JSC4Yarr14RegexGenerator12atEndOfInputEv
+__ZN3JSC22AbstractMacroAssemblerINS_12X86AssemblerEE8JumpList6linkToENS2_5LabelEPS2_
+__ZN3JSC14MacroAssembler4pokeENS_3X8610RegisterIDEi
+__ZN3JSC21FunctionCallValueNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC9ArrayNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator12emitNewArrayEPNS_10RegisterIDEPNS_11ElementNodeE
+__ZN3JSC23CallFunctionCallDotNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator25emitJumpIfNotFunctionCallEPNS_10RegisterIDEPNS_5LabelE
+__ZN3JSC4Yarr14RegexGenerator29generateAssertionWordBoundaryERNS1_19TermGenerationStateE
+__ZN3JSC4Yarr14RegexGenerator22matchAssertionWordcharERNS1_19TermGenerationStateERNS_22AbstractMacroAssemblerINS_12X86Assembler
+__ZN3WTF6VectorIPN3JSC4Yarr18PatternDisjunctionELm4EE14expandCapacityEm
+__ZL14compileBracketiPiPPhPPKtS3_P9ErrorCodeiS_S_R11CompileData
+__ZN3JSC9ThrowNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC9CommaNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3WTF9HashTableIdSt4pairIdN3JSC7JSValueEENS_18PairFirstExtractorIS4_EENS_9FloatHashIdEENS_14PairHashTraitsINS_10HashTraitsId
+__ZN3JSC17TypeOfResolveNodeD0Ev
+__ZN3JSC18NotStrictEqualNodeD0Ev
+__ZN3JSC8WithNodeD0Ev
+__ZN3JSC21FunctionCallValueNodeD0Ev
+__ZN3JSC9ArrayNodeD0Ev
+__ZN3JSC11ElementNodeD0Ev
+__ZN3JSC23CallFunctionCallDotNodeD0Ev
+__ZN3JSC9ThrowNodeD0Ev
+__ZN3JSC9CommaNodeD0Ev
+__ZN3JSC3JIT23emit_op_unexpected_loadEPNS_11InstructionE
+__ZN3JSC3JIT20emit_op_to_primitiveEPNS_11InstructionE
+__ZN3JSC3JIT14emit_op_strcatEPNS_11InstructionE
+__ZN3JSC3JIT17emit_op_nstricteqEPNS_11InstructionE
+__ZN3JSC3JIT18emit_op_push_scopeEPNS_11InstructionE
+__ZN3JSC3JIT17emit_op_new_arrayEPNS_11InstructionE
+__ZN3JSC3JIT16emit_op_jneq_ptrEPNS_11InstructionE
+__ZN3JSC3JIT13emit_op_throwEPNS_11InstructionE
+__ZN3JSC3JIT14emit_op_jnlessEPNS_11InstructionE
+__ZN3JSC3JIT24emitSlow_op_to_primitiveEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC3JIT21emitSlow_op_nstricteqEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC3JIT18emitSlow_op_jnlessEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZL15makePostfixNodePvPN3JSC14ExpressionNodeENS0_8OperatorEiii
+__ZN3JSC18PostfixResolveNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC18PostfixResolveNodeD0Ev
+__ZN3JSC8JITStubs22cti_op_call_arityCheckEPPv
+__ZN3JSC19FunctionConstructor16getConstructDataERNS_13ConstructDataE
+__ZN3JSCL32constructWithFunctionConstructorEPNS_9ExecStateEPNS_8JSObjectERKNS_7ArgListE
+__ZN3JSC17constructFunctionEPNS_9ExecStateERKNS_7ArgListERKNS_10IdentifierERKNS_7UStringEi
+__ZN3JSCplERKNS_7UStringES2_
+__ZN3JSC7UString6appendERKS0_
+__ZN3JSC7UString17expandPreCapacityEi
+__ZN3WTF11fastReallocILb0EEEPvS1_m
+__ZN3JSC14JSGlobalObject3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
+__ZL11makeDivNodePvPN3JSC14ExpressionNodeES2_b
+__ZL12makeMultNodePvPN3JSC14ExpressionNodeES2_b
+__ZN3JSC9WhileNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC7ModNodeD0Ev
+__ZN3JSC7DivNodeD0Ev
+__ZN3JSC8MultNodeD0Ev
+__ZN3JSC9WhileNodeD0Ev
+__ZN3JSC3JIT11emit_op_modEPNS_11InstructionE
+__ZN3JSC3JIT11emit_op_mulEPNS_11InstructionE
+__ZN3JSC3JIT20emit_op_loop_if_trueEPNS_11InstructionE
+__ZN3JSC3JIT15emitSlow_op_modEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC3JIT15emitSlow_op_mulEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC3JIT24emitSlow_op_loop_if_trueEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSCL26stringProtoFuncLastIndexOfEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC7JSValue20toIntegerPreserveNaNEPNS_9ExecStateE
+__ZN3JSC8JITStubs10cti_op_divEPPv
+__ZN3JSC3JIT22emit_op_loop_if_lesseqEPNS_11InstructionE
+__ZN3JSC3JIT26emitSlow_op_loop_if_lesseqEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC8JITStubs13cti_op_lesseqEPPv
+__ZN3JSCL20stringProtoFuncSplitEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC19constructEmptyArrayEPNS_9ExecStateE
+__ZN3JSC7JSArray3putEPNS_9ExecStateEjNS_7JSValueE
+__ZN3JSC7JSArray11putSlowCaseEPNS_9ExecStateEjNS_7JSValueE
+__ZN3JSC14ArrayPrototype18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
+__ZN3JSCL18arrayProtoFuncJoinEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3WTF7HashSetIPN3JSC8JSObjectENS_7PtrHashIS3_EENS_10HashTraitsIS3_EEE3addERKS3_
+__ZN3WTF9HashTableIPN3JSC8JSObjectES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES9_E6rehashEi
+__ZN3WTF6VectorItLm256EE6appendItEEvPKT_m
+__ZN3WTF6VectorItLm256EE14expandCapacityEm
+__ZN3WTF6VectorIPN3JSC12CallLinkInfoELm0EE15reserveCapacityEm
+__ZN3JSC4Heap7collectEv
+__ZN3JSC4Heap30markStackObjectsConservativelyEv
+__ZN3JSC4Heap31markCurrentThreadConservativelyEv
+__ZN3JSC4Heap39markCurrentThreadConservativelyInternalEv
+__ZN3JSC4Heap18markConservativelyEPvS1_
+__ZN3JSC7JSArray4markEv
+__ZN3JSC8JSObject4markEv
+__ZN3JSC10JSFunction4markEv
+__ZN3JSC6JSCell4markEv
+__ZN3JSC14JSGlobalObject4markEv
+__ZN3JSC15JSWrapperObject4markEv
+__ZN3JSC18GlobalEvalFunction4markEv
+__ZN3JSC16FunctionBodyNode4markEv
+__ZN3JSC9CodeBlock4markEv
+__ZN3JSC4Heap20markProtectedObjectsEv
+__ZN3JSC12SmallStrings4markEv
+__ZN3JSC4Heap5sweepILNS_8HeapTypeE0EEEmv
+__ZN3JSC14JSGlobalObjectD2Ev
+__ZN3JSC17FunctionPrototypeD1Ev
+__ZN3JSC15ObjectPrototypeD1Ev
+__ZN3JSC14ArrayPrototypeD1Ev
+__ZN3JSC15StringPrototypeD1Ev
+__ZN3JSC16BooleanPrototypeD1Ev
+__ZN3JSC15NumberPrototypeD1Ev
+__ZN3JSC13DatePrototypeD1Ev
+__ZN3JSC12DateInstanceD2Ev
+__ZN3JSC15RegExpPrototypeD1Ev
+__ZN3JSC14ErrorPrototypeD1Ev
+__ZN3JSC20NativeErrorPrototypeD1Ev
+__ZN3JSC17ObjectConstructorD1Ev
+__ZN3JSC19FunctionConstructorD1Ev
+__ZN3JSC16ArrayConstructorD1Ev
+__ZN3JSC17StringConstructorD1Ev
+__ZN3JSC18BooleanConstructorD1Ev
+__ZN3JSC17NumberConstructorD1Ev
+__ZN3JSC15DateConstructorD1Ev
+__ZN3JSC17RegExpConstructorD1Ev
+__ZN3JSC16ErrorConstructorD1Ev
+__ZN3JSC22NativeErrorConstructorD1Ev
+__ZN3JSC10MathObjectD1Ev
+__ZN3JSC18GlobalEvalFunctionD1Ev
+__ZN3JSC8JSObjectD1Ev
+__ZN3JSC9CodeBlock13unlinkCallersEv
+__ZN3WTF6VectorINS_6RefPtrIN3JSC6RegExpEEELm0EE6shrinkEm
+__ZN3JSC12JSActivationD1Ev
+__ZN3JSC12JSActivationD2Ev
+__ZN3JSC12RegExpObjectD1Ev
+__ZN3JSC18RegExpMatchesArrayD1Ev
+__ZN3JSC4Heap5sweepILNS_8HeapTypeE1EEEmv
+__ZN3JSC20globalFuncParseFloatEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3WTF17TCMalloc_PageHeap3NewEm
+__ZN3JSC8JITStubs28cti_op_construct_JSConstructEPPv
+__ZN3JSC8JSObject17createInheritorIDEv
+__ZNK3JSC19BracketAccessorNode10isLocationEv
+__ZNK3JSC19BracketAccessorNode21isBracketAccessorNodeEv
+__ZN3JSC17AssignBracketNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator12emitPutByValEPNS_10RegisterIDES2_S2_
+__ZN3JSC14PostfixDotNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17ReadModifyDotNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17AssignBracketNodeD0Ev
+__ZN3JSC14PostfixDotNodeD0Ev
+__ZN3JSC17ReadModifyDotNodeD0Ev
+__ZN3JSC3JIT18emit_op_put_by_valEPNS_11InstructionE
+__ZN3JSC3JIT22emitSlow_op_put_by_valEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC16ArrayConstructor16getConstructDataERNS_13ConstructDataE
+__ZN3JSCL29constructWithArrayConstructorEPNS_9ExecStateEPNS_8JSObjectERKNS_7ArgListE
+__ZN3JSCL27constructArrayWithSizeQuirkEPNS_9ExecStateERKNS_7ArgListE
+__ZN3JSC8JITStubs23cti_op_put_by_val_arrayEPPv
+__ZN3JSC8JITStubs13cti_op_strcatEPPv
+__ZN3JSC7UString3Rep15reserveCapacityEi
+__ZN3JSC7UString13appendNumericEi
+__ZN3JSC11concatenateEPNS_7UString3RepEi
+__ZN3JSC12JSActivation18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
+__ZN3JSCL18stringFromCharCodeEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC16globalFuncEscapeEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL26stringProtoFuncToUpperCaseEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC12JSActivation14isDynamicScopeEv
+__ZN3WTF6VectorINS_6RefPtrIN3JSC10RegisterIDEEELm16EE14expandCapacityEm
+__ZN3JSC17ObjectConstructor16getConstructDataERNS_13ConstructDataE
+__ZN3JSCL30constructWithObjectConstructorEPNS_9ExecStateEPNS_8JSObjectERKNS_7ArgListE
+__ZN3JSC8JITStubs17cti_op_put_by_valEPPv
+__ZN3JSC15DateConstructor16getConstructDataERNS_13ConstructDataE
+__ZN3JSCL28constructWithDateConstructorEPNS_9ExecStateEPNS_8JSObjectERKNS_7ArgListE
+__ZN3JSC13constructDateEPNS_9ExecStateERKNS_7ArgListE
+__ZN3JSC8JITStubs18cti_op_is_functionEPPv
+__ZN3JSC16jsIsFunctionTypeENS_7JSValueE
+__ZN3JSC10Identifier5equalEPKNS_7UString3RepEPKc
+__ZN3JSC11JSImmediate8toStringENS_7JSValueE
+__ZN3JSC7UString4fromEi
+__ZN3JSC7UString3Rep11computeHashEPKti
+__ZNK3JSC8NullNode6isNullEv
+__ZN3JSC9BreakNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator11breakTargetERKNS_10IdentifierE
+__ZN3JSC9BreakNodeD0Ev
+__ZN3JSC3JIT15emit_op_eq_nullEPNS_11InstructionE
+__ZN3JSC8JITStubs19cti_op_is_undefinedEPPv
+__ZN3JSC12JSActivation4markEv
+__ZN3JSC12DateInstanceD1Ev
+__ZNK3JSC18EmptyStatementNode16isEmptyStatementEv
+__ZN3JSC18EmptyStatementNodeD0Ev
+__ZN3JSC3JIT15emit_op_pre_decEPNS_11InstructionE
+__ZN3JSC3JIT19emitSlow_op_pre_decEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3WTF13tryFastMallocEm
+__ZN3JSC8JITStubs17cti_timeout_checkEPPv
+__ZN3JSC14TimeoutChecker10didTimeOutEPNS_9ExecStateE
+__ZN3JSC8JITStubs14cti_op_pre_decEPPv
+__ZN3JSC13jsAddSlowCaseEPNS_9ExecStateENS_7JSValueES2_
+__ZNK3JSC8JSString11toPrimitiveEPNS_9ExecStateENS_22PreferredPrimitiveTypeE
+__ZNK3JSC8JSObject11toPrimitiveEPNS_9ExecStateENS_22PreferredPrimitiveTypeE
+__ZNK3JSC8JSObject12defaultValueEPNS_9ExecStateENS_22PreferredPrimitiveTypeE
+__ZN3JSCL22objectProtoFuncValueOfEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL25functionProtoFuncToStringEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC10JSFunction9classInfoEv
+__ZNK3JSC21UStringSourceProvider8getRangeEii
+__ZNK3JSC7UString6substrEii
+__ZN3JSC8JITStubs26cti_op_get_by_id_self_failEPPv
+__ZN3JSC3JIT29privateCompileGetByIdSelfListEPNS_17StructureStubInfoEPNS_30PolymorphicAccessStructureListEiPNS_9StructureEm
+__ZN3JSC8JITStubs16cti_op_nstricteqEPPv
+__ZN3JSC9ForInNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator20emitNextPropertyNameEPNS_10RegisterIDES2_PNS_5LabelE
+__ZN3JSC9ForInNodeD0Ev
+__ZN3JSC3JIT18emit_op_next_pnameEPNS_11InstructionE
+__ZN3JSC8JITStubs17cti_op_get_pnamesEPPv
+__ZN3JSC8JSObject16getPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayE
+__ZN3JSC9Structure26getEnumerablePropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayEPNS_8JSObjectE
+__ZN3JSC9Structure35getEnumerableNamesFromPropertyTableERNS_17PropertyNameArrayE
+__ZN3JSC8JITStubs17cti_op_next_pnameEPPv
+__ZN3JSC13jsOwnedStringEPNS_12JSGlobalDataERKNS_7UStringE
+__ZN3JSC22JSPropertyNameIterator10invalidateEv
+__ZN3JSC3JIT22emit_op_init_argumentsEPNS_11InstructionE
+__ZN3JSC3JIT24emit_op_create_argumentsEPNS_11InstructionE
+__ZN3JSC8JITStubs33cti_op_create_arguments_no_paramsEPPv
+__ZN3JSC9Arguments18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
+__ZN3JSC3JIT16emit_op_post_decEPNS_11InstructionE
+__ZN3JSC3JIT20emitSlow_op_post_decEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC8JITStubs15cti_op_post_decEPPv
+__ZN3JSC9Arguments18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
+__ZN3JSC17RegExpConstructor18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
+__ZN3JSC17RegExpConstructor3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
+__ZN3JSC6JSCell11getCallDataERNS_8CallDataE
+__ZN3JSC10JSFunction3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
+__ZN3JSC8JITStubs16cti_op_new_arrayEPPv
+__ZN3JSC14constructArrayEPNS_9ExecStateERKNS_7ArgListE
+__ZN3JSCL18arrayProtoFuncPushEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL30comparePropertyMapEntryIndicesEPKvS1_
+__ZN3WTF6VectorIN3JSC10IdentifierELm20EE15reserveCapacityEm
+__ZN3JSC12StringObject3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
+__ZN3JSC8JITStubs17cti_op_push_scopeEPPv
+__ZN3JSC8JITStubs14cti_op_resolveEPPv
+__ZN3JSC8JITStubs16cti_op_pop_scopeEPPv
+__ZN3JSC3JIT31privateCompilePutByIdTransitionEPNS_17StructureStubInfoEPNS_9StructureES4_mPNS_14StructureChainENS_22AbstractMacr
+__ZN3JSC20MacroAssemblerX86_649branchPtrENS_23MacroAssemblerX86Common9ConditionENS_22AbstractMacroAssemblerINS_12X86AssemblerEE
+__ZN3JSC3JIT19patchPutByIdReplaceEPNS_17StructureStubInfoEPNS_9StructureEmNS_22AbstractMacroAssemblerINS_12X86AssemblerEE22Proc
+__ZN3JSC17NumberConstructor18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
+__ZN3JSC8JITStubs16cti_op_is_stringEPPv
+__ZN3JSC8JITStubs19cti_op_convert_thisEPPv
+__ZNK3JSC8JSString12toThisObjectEPNS_9ExecStateE
+__ZN3JSCL22stringProtoFuncReplaceEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC12StringObject14toThisJSStringEPNS_9ExecStateE
+__ZN3JSCL21arrayProtoFuncForEachEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC11Interpreter20prepareForRepeatCallEPNS_16FunctionBodyNodeEPNS_9ExecStateEPNS_10JSFunctionEiPNS_14ScopeChainNodeEPNS_7J
+__ZN3JSC3JIT16emit_op_post_incEPNS_11InstructionE
+__ZN3JSC3JIT20emitSlow_op_post_incEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC11Interpreter7executeERNS_16CallFrameClosureEPNS_7JSValueE
+__ZN3JSC10MathObject18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
+__ZN3JSC11Interpreter13endRepeatCallERNS_16CallFrameClosureE
+__ZN3JSCL21resizePropertyStorageEPNS_8JSObjectEii
+__ZN3JSC8JSObject23allocatePropertyStorageEmm
+__ZN3JSC14ExecutablePool12poolAllocateEm
+__ZN3JSC9Arguments4markEv
+__ZN3JSC22JSPropertyNameIterator4markEv
+__ZN3JSC3JIT10unlinkCallEPNS_12CallLinkInfoE
+__ZN3JSC22JSPropertyNameIteratorD1Ev
+__ZN3JSC9ArgumentsD1Ev
+__ZN3JSC9ArgumentsD2Ev
+__ZN3JSC12StringObjectD1Ev
+__ZN3WTF6VectorIPN3JSC9StructureELm8EE14expandCapacityEmPKS3_
+__ZN3WTF6VectorIPN3JSC9StructureELm8EE15reserveCapacityEm
+__ZN3JSCL19arrayProtoFuncShiftEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL11getPropertyEPNS_9ExecStateEPNS_8JSObjectEj
+__ZN3JSC7JSArray14deletePropertyEPNS_9ExecStateEj
+__ZN3JSC7JSArray9setLengthEj
+__ZN3JSC7UString6appendEPKc
+__ZN3JSC8JITStubs23cti_op_create_argumentsEPPv
+__ZN3JSCL19arrayProtoFuncSliceEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC7JSValue9toIntegerEPNS_9ExecStateE
+__ZN3JSC24ApplyFunctionCallDotNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZNK3JSC14ExpressionNode13isSimpleArrayEv
+__ZN3JSC17BytecodeGenerator26emitJumpIfNotFunctionApplyEPNS_10RegisterIDEPNS_5LabelE
+__ZN3JSC17BytecodeGenerator15emitCallVarargsEPNS_10RegisterIDES2_S2_S2_jjj
+__ZN3JSC24ApplyFunctionCallDotNodeD0Ev
+__ZN3JSC3JIT20emit_op_load_varargsEPNS_11InstructionE
+__ZN3JSC3JIT20emit_op_call_varargsEPNS_11InstructionE
+__ZN3JSC3JIT20compileOpCallVarargsEPNS_11InstructionE
+__ZN3JSC3JIT29compileOpCallVarargsSetupArgsEPNS_11InstructionE
+__ZN3JSC3JIT24emitSlow_op_call_varargsEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC3JIT28compileOpCallVarargsSlowCaseEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC8JITStubs19cti_op_load_varargsEPPv
+__ZNK3JSC7JSArray9classInfoEv
+__ZN3JSC7JSArray15copyToRegistersEPNS_9ExecStateEPNS_8RegisterEj
+__ZNK3JSC7UString30spliceSubstringsWithSeparatorsEPKNS0_5RangeEiPKS0_i
+__ZN3JSC8JSObject18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
+__ZN3JSC8JSObject18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
+__ZN3JSC7UString4fromEd
+__ZN3WTF4dtoaEPcdiPiS1_PS0_
+__ZN3JSC8JITStubs21cti_op_put_by_id_failEPPv
+__ZN3JSC13DeleteDotNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator14emitDeleteByIdEPNS_10RegisterIDES2_RKNS_10IdentifierE
+__ZN3JSC13DeleteDotNodeD0Ev
+__ZN3JSC3JIT17emit_op_del_by_idEPNS_11InstructionE
+__ZN3JSC8JITStubs16cti_op_del_by_idEPPv
+__ZN3JSC10JSFunction14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
+__ZN3JSC8JSObject14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
+__ZNK3JSC7ArgList8getSliceEiRS0_
+__ZN3JSC3JIT26emit_op_tear_off_argumentsEPNS_11InstructionE
+__ZN3JSC8JITStubs25cti_op_tear_off_argumentsEPPv
+__ZNK3JSC12StringObject12toThisStringEPNS_9ExecStateE
+__ZN3JSC13PrefixDotNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC13PrefixDotNodeD0Ev
+__ZNK3JSC8JSObject8toStringEPNS_9ExecStateE
+__ZN3JSCL22arrayProtoFuncToStringEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL21arrayProtoFuncIndexOfEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC16ErrorConstructor16getConstructDataERNS_13ConstructDataE
+__ZN3JSCL29constructWithErrorConstructorEPNS_9ExecStateEPNS_8JSObjectERKNS_7ArgListE
+__ZN3JSC14constructErrorEPNS_9ExecStateERKNS_7ArgListE
+__ZN3JSCL21stringProtoFuncCharAtEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC8JITStubs32cti_op_get_by_id_proto_list_fullEPPv
+__ZN3JSC14InstanceOfNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator14emitInstanceOfEPNS_10RegisterIDES2_S2_S2_
+__ZN3JSC14InstanceOfNodeD0Ev
+__ZN3JSC3JIT18emit_op_instanceofEPNS_11InstructionE
+__ZN3JSC3JIT22emitSlow_op_instanceofEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC12X86Assembler6orl_irEiNS_3X8610RegisterIDE
+__ZN3JSC17RegExpConstructor16getConstructDataERNS_13ConstructDataE
+__ZN3JSCL30constructWithRegExpConstructorEPNS_9ExecStateEPNS_8JSObjectERKNS_7ArgListE
+__ZN3JSC15constructRegExpEPNS_9ExecStateERKNS_7ArgListE
+__ZN3JSC13DatePrototype18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
+__ZN3JSCL20dateProtoFuncGetTimeEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC12DateInstance9classInfoEv
+__ZN3JSC12RegExpObject18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
+__ZN3JSCL19regExpProtoFuncTestEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC12RegExpObject5matchEPNS_9ExecStateERKNS_7ArgListE
+__ZN3JSC3JIT18emit_op_jmp_scopesEPNS_11InstructionE
+__ZN3JSC3JIT30privateCompileGetByIdChainListEPNS_17StructureStubInfoEPNS_30PolymorphicAccessStructureListEiPNS_9StructureEPNS_1
+__ZN3JSC18globalFuncUnescapeEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC7UString6appendEt
+__ZN3JSC8JSObject3putEPNS_9ExecStateEjNS_7JSValueE
+__ZN3JSC17PropertyNameArray3addEPNS_7UString3RepE
+__ZN3WTF7HashSetIPN3JSC7UString3RepENS_7PtrHashIS4_EENS_10HashTraitsIS4_EEE3addERKS4_
+__ZN3WTF9HashTableIPN3JSC7UString3RepES4_NS_17IdentityExtractorIS4_EENS_7PtrHashIS4_EENS_10HashTraitsIS4_EESA_E6rehashEi
+__ZN3WTF6VectorIN3JSC10IdentifierELm20EE14expandCapacityEm
+__ZN3JSCL20arrayProtoFuncConcatEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC9ArrayNode13isSimpleArrayEv
+__ZN3JSC8JITStubs10cti_op_mulEPPv
+__ZN3JSC8JITStubs16cti_op_is_objectEPPv
+__ZN3JSC14jsIsObjectTypeENS_7JSValueE
+__ZNK3JSC11Interpreter18retrieveLastCallerEPNS_9ExecStateERiRlRNS_7UStringERNS_7JSValueE
+__ZN3JSC9CodeBlock34reparseForExceptionInfoIfNecessaryEPNS_9ExecStateE
+__ZNK3JSC10ScopeChain10localDepthEv
+__ZNK3JSC12JSActivation9classInfoEv
+__ZN3JSC6Parser7reparseINS_16FunctionBodyNodeEEEN3WTF10PassRefPtrIT_EEPNS_12JSGlobalDataEPS5_
+__ZN3JSC16FunctionBodyNode6createEPNS_12JSGlobalDataEPNS_14SourceElementsEPN3WTF6VectorISt4pairINS_10IdentifierEjELm0EEEPNS6_IP
+__ZN3JSC13StatementNode6setLocEii
+__ZN3JSC16FunctionBodyNode14copyParametersEv
+__ZN3JSC16FunctionBodyNode13finishParsingEPNS_10IdentifierEm
+__ZN3JSC16FunctionBodyNode31bytecodeForExceptionInfoReparseEPNS_14ScopeChainNodeEPNS_9CodeBlockE
+__ZN3JSC9CodeBlock36hasGlobalResolveInfoAtBytecodeOffsetEj
+__ZN3JSC9CodeBlock27lineNumberForBytecodeOffsetEPNS_9ExecStateEj
+__ZN3WTF6VectorIPvLm0EE14expandCapacityEmPKS1_
+__ZN3WTF6VectorIPvLm0EE15reserveCapacityEm
+__ZN3JSC3JIT16emit_op_jeq_nullEPNS_11InstructionE
+__ZN3JSC8JITStubs16cti_op_is_numberEPPv
+__ZN3JSCL23stringProtoFuncToStringEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC12StringObject9classInfoEv
+__ZN3JSC8JITStubs28cti_op_get_by_id_string_failEPPv
+__ZN3JSC11JSImmediate9prototypeENS_7JSValueEPNS_9ExecStateE
+__ZN3JSCL23numberProtoFuncToStringEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC3JIT16emit_op_neq_nullEPNS_11InstructionE
+__ZN3JSC4Yarr23RegexPatternConstructor8copyTermERNS0_11PatternTermE
+__ZL17bracketIsAnchoredPKh
+__ZL32branchFindFirstAssertedCharacterPKhb
+__ZL20branchNeedsLineStartPKhjj
+__ZN3JSC18RegExpMatchesArray18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
+__ZN3JSCL20stringProtoFuncSliceEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC3JIT17emit_op_jneq_nullEPNS_11InstructionE
+__ZN3JSC8JITStubs25cti_op_call_NotJSFunctionEPPv
+__ZN3JSC17StringConstructor11getCallDataERNS_8CallDataE
+__ZN3JSCL21callStringConstructorEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC12StringObject8toStringEPNS_9ExecStateE
+__ZN3JSC23FunctionCallBracketNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC20EvalFunctionCallNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator19emitResolveWithBaseEPNS_10RegisterIDES2_RKNS_10IdentifierE
+__ZN3JSC23FunctionCallBracketNodeD0Ev
+__ZN3JSC20EvalFunctionCallNodeD0Ev
+__ZN3JSC3JIT25emit_op_resolve_with_baseEPNS_11InstructionE
+__ZN3JSC3JIT17emit_op_call_evalEPNS_11InstructionE
+__ZN3JSC3JIT21emitSlow_op_call_evalEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC14MacroAssembler4jumpENS_22AbstractMacroAssemblerINS_12X86AssemblerEE5LabelE
+__ZN3JSCL19regExpProtoFuncExecEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC7UString12replaceRangeEiiRKS0_
+__ZN3JSC8JITStubs17cti_op_is_booleanEPPv
+__ZN3JSC3JIT22emit_op_put_global_varEPNS_11InstructionE
+__ZN3JSCL23regExpProtoFuncToStringEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL18regExpObjectSourceEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSCL18regExpObjectGlobalEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSCL22regExpObjectIgnoreCaseEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSCL21regExpObjectMultilineEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSC4Yarr14RegexGenerator30generatePatternCharacterGreedyERNS1_19TermGenerationStateE
+__ZN3JSC8JITStubs27cti_op_get_by_id_proto_failEPPv
+__ZN3JSC17DeleteResolveNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17DeleteResolveNodeD0Ev
+__ZN3JSC3JIT20emit_op_resolve_baseEPNS_11InstructionE
+__ZN3JSC8JITStubs19cti_op_resolve_baseEPPv
+__ZN3JSC12JSActivation14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
+__ZN3JSC16JSVariableObject14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
+__ZNK3JSC8JSString8toNumberEPNS_9ExecStateE
+__ZN3JSC8JITStubs24cti_op_resolve_with_baseEPPv
+__ZN3JSC8JITStubs16cti_op_call_evalEPPv
+__ZN3JSC11Interpreter8callEvalEPNS_9ExecStateEPNS_12RegisterFileEPNS_8RegisterEiiRNS_7JSValueE
+__ZN3JSC13LiteralParser5Lexer3lexERNS1_18LiteralParserTokenE
+__ZN3JSC13LiteralParser14parseStatementEv
+__ZN3JSC13LiteralParser15parseExpressionEv
+__ZN3JSC13LiteralParser10parseArrayEv
+__ZN3JSC13LiteralParser11parseObjectEv
+__ZN3JSC10Identifier3addEPNS_9ExecStateEPKti
+__ZN3JSC7JSArray4pushEPNS_9ExecStateENS_7JSValueE
+__ZN3JSCL19mathProtoFuncRandomEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3WTF16weakRandomNumberEv
+__ZN3JSCL18mathProtoFuncFloorEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC4Heap15recordExtraCostEm
+__ZN3JSC6Parser5parseINS_8EvalNodeEEEN3WTF10PassRefPtrIT_EEPNS_9ExecStateEPNS_8DebuggerERKNS_10SourceCodeEPiPNS_7UStringE
+__ZN3JSC9ExecState9thisValueEv
+__ZN3JSC11Interpreter7executeEPNS_8EvalNodeEPNS_9ExecStateEPNS_8JSObjectEiPNS_14ScopeChainNodeEPNS_7JSValueE
+__ZN3JSC8EvalNode16generateBytecodeEPNS_14ScopeChainNodeE
+__ZN3JSC17BytecodeGeneratorC2EPNS_8EvalNodeEPKNS_8DebuggerERKNS_10ScopeChainEPN3WTF7HashMapINS9_6RefPtrINS_7UString3RepEEENS_16
+__ZN3JSC8EvalNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZThn16_N3JSC8EvalNodeD0Ev
+__ZN3JSC8EvalNodeD0Ev
+__ZN3JSC23objectProtoFuncToStringEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC8JSObject9classNameEv
+__ZN3JSC11JSImmediate12toThisObjectENS_7JSValueEPNS_9ExecStateE
+__ZNK3JSC6JSCell17getTruncatedInt32ERi
+__ZN3JSC15toInt32SlowCaseEdRb
+__ZN3JSCL20dateProtoFuncSetYearEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC12DateInstance21msToGregorianDateTimeEdbRNS_17GregorianDateTimeE
+__ZN3JSC21msToGregorianDateTimeEdbRNS_17GregorianDateTimeE
+__ZN3JSCL12getDSTOffsetEdd
+__ZN3JSC21gregorianDateTimeToMSERKNS_17GregorianDateTimeEdb
+__ZN3JSCL15dateToDayInYearEiii
+__ZN3JSC8JITStubs19cti_op_to_primitiveEPPv
+__ZN3JSCL21dateProtoFuncToStringEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC10formatTimeERKNS_17GregorianDateTimeEb
+__ZN3JSCL24dateProtoFuncToGMTStringEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC7UString13appendNumericEd
+__ZN3JSC11concatenateEPNS_7UString3RepEd
+__ZN3JSCL20dateProtoFuncGetYearEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL20dateProtoFuncGetDateEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL21dateProtoFuncGetMonthEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL21dateProtoFuncGetHoursEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL23dateProtoFuncGetMinutesEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL23dateProtoFuncGetSecondsEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL19dateProtoFuncGetDayEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL30dateProtoFuncGetTimezoneOffsetEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC28createUndefinedVariableErrorEPNS_9ExecStateERKNS_10IdentifierEjPNS_9CodeBlockE
+__ZN3JSC9CodeBlock32expressionRangeForBytecodeOffsetEPNS_9ExecStateEjRiS3_S3_
+__ZN3JSC5Error6createEPNS_9ExecStateENS_9ErrorTypeERKNS_7UStringEilS6_
+__ZN3JSC22NativeErrorConstructor16getConstructDataERNS_13ConstructDataE
+__ZN3JSCL35constructWithNativeErrorConstructorEPNS_9ExecStateEPNS_8JSObjectERKNS_7ArgListE
+__ZN3JSC22NativeErrorConstructor9constructEPNS_9ExecStateERKNS_7ArgListE
+__ZN3JSC8JSObject17putWithAttributesEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueEj
+__ZN3JSCL23returnToThrowTrampolineEPNS_12JSGlobalDataEPvRS2_
+_ctiVMThrowTrampoline
+__ZN3JSC8JITStubs12cti_vm_throwEPPv
+__ZN3JSC11Interpreter14throwExceptionERPNS_9ExecStateERNS_7JSValueEjb
+__ZNK3JSC8JSObject22isNotAnObjectErrorStubEv
+__ZNK3JSC8JSObject19isWatchdogExceptionEv
+__ZN3JSC9CodeBlock24handlerForBytecodeOffsetEj
+__ZN3JSC8JITStubs21cti_op_push_new_scopeEPPv
+__ZN3WTF6VectorIN3JSC22AbstractMacroAssemblerINS1_12X86AssemblerEE4JumpELm16EE14expandCapacityEm
+__ZN3JSCL20dateProtoFuncSetTimeEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3WTF7HashMapINS_6RefPtrIN3JSC7UString3RepEEENS1_INS2_8EvalNodeEEENS_7StrHashIS5_EENS_10HashTraitsIS5_EENSA_IS7_EEE3getEPS4
+__ZN3WTF7HashMapINS_6RefPtrIN3JSC7UString3RepEEENS1_INS2_8EvalNodeEEENS_7StrHashIS5_EENS_10HashTraitsIS5_EENSA_IS7_EEE3setEPS4_
+__ZN3WTF9HashTableINS_6RefPtrIN3JSC7UString3RepEEESt4pairIS5_NS1_INS2_8EvalNodeEEEENS_18PairFirstExtractorIS9_EENS_7StrHashIS5_
+__ZN3JSC10LessEqNodeD0Ev
+__ZN3JSC8JITStubs14cti_op_jlesseqEPPv
+__ZN3JSC8JSString18getPrimitiveNumberEPNS_9ExecStateERdRNS_7JSValueE
+__ZL18makeRightShiftNodePvPN3JSC14ExpressionNodeES2_b
+__ZN3JSC14RightShiftNodeD0Ev
+__ZN3JSC3JIT14emit_op_rshiftEPNS_11InstructionE
+__ZN3JSC3JIT18emitSlow_op_rshiftEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC18PostfixBracketNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC18PostfixBracketNodeD0Ev
+__ZN3JSC21ReadModifyBracketNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC21ReadModifyBracketNodeD0Ev
+__ZN3JSC11Interpreter15unwindCallFrameERPNS_9ExecStateENS_7JSValueERjRPNS_9CodeBlockE
+__ZN3JSCL22errorProtoFuncToStringEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3WTF23waitForThreadCompletionEjPPv
+__ZN3WTF15ThreadConditionD1Ev
+__ZN3JSC9Structure24removePropertyTransitionEPS0_RKNS_10IdentifierERm
+__ZN3JSC12JSActivation3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
+__ZN3JSC26createNotAnObjectErrorStubEPNS_9ExecStateEb
+__ZN3JSC13JSNotAnObject18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
+__ZNK3JSC22JSNotAnObjectErrorStub22isNotAnObjectErrorStubEv
+__ZN3JSC22createNotAnObjectErrorEPNS_9ExecStateEPNS_22JSNotAnObjectErrorStubEjPNS_9CodeBlockE
+__ZN3JSC9CodeBlock37getByIdExceptionInfoForBytecodeOffsetEPNS_9ExecStateEjRNS_8OpcodeIDE
+__ZN3JSCL18createErrorMessageEPNS_9ExecStateEPNS_9CodeBlockEiiiNS_7JSValueENS_7UStringE
+__ZN3JSC13ErrorInstanceD1Ev
+__ZN3JSC22JSNotAnObjectErrorStubD1Ev
+__ZN3JSC13JSNotAnObjectD1Ev
+__ZN3JSC19JSStaticScopeObjectD1Ev
+__ZN3JSC19JSStaticScopeObjectD2Ev
+__ZN3JSC17DeleteBracketNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17BytecodeGenerator15emitDeleteByValEPNS_10RegisterIDES2_S2_
+__ZN3JSC17DeleteBracketNodeD0Ev
+__ZN3JSC8JITStubs17cti_op_del_by_valEPPv
+__ZN3JSC8JSObject14deletePropertyEPNS_9ExecStateEj
+__ZN3JSC28globalFuncEncodeURIComponentEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL6encodeEPNS_9ExecStateERKNS_7ArgListEPKc
+__ZNK3JSC7UString10UTF8StringEb
__ZN3WTF7Unicode18convertUTF16ToUTF8EPPKtS2_PPcS4_b
-__Z35NPN_InitializeVariantWithStringCopyP10_NPVariantPK9_NPString
-__ZN3KJS7CStringD1Ev
-__NPN_ReleaseObject
-__Z12jsDeallocateP8NPObject
-__ZN3KJS8Bindings10RootObject11gcUnprotectEPNS_8JSObjectE
-_pow5mult
-_quorem
-_diff
-__ZN3WTF6VectorIPN3KJS12FuncDeclNodeELm16EE14expandCapacityEmPKS3_
-__ZN3WTF6VectorIPN3KJS12FuncDeclNodeELm16EE14expandCapacityEm
-__ZN3WTF6VectorIPN3KJS12FuncDeclNodeELm16EE15reserveCapacityEm
-__ZN3KJS10NumberNode8setValueEd
-__ZN3KJS11ResolveNode16evaluateToNumberEPNS_9ExecStateE
-__ZN3KJS21dateProtoFuncToStringEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS24dateProtoFuncGetFullYearEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS12NotEqualNode8evaluateEPNS_9ExecStateE
-__ZN3KJS14InstanceOfNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS17PreIncResolveNode8evaluateEPNS_9ExecStateE
-__ZNK3KJS9NumberImp9toBooleanEPNS_9ExecStateE
-__ZN3KJS10LessEqNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS29objectProtoFuncHasOwnPropertyEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS10LessEqNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS13UnaryPlusNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS17DeleteBracketNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS17DeleteBracketNode8evaluateEPNS_9ExecStateE
-__ZN3KJS20arrayProtoFuncSpliceEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS17staticValueGetterINS_13MathObjectImpEEEPNS_7JSValueEPNS_9ExecStateEPNS_8JSObjectERKNS_10IdentifierERKNS_12PropertySlotE
-__ZNK3KJS13MathObjectImp16getValuePropertyEPNS_9ExecStateEi
-__NPN_DeallocateObject
-__ZN3KJS14PostIncDotNodeD1Ev
-__ZN3KJS22ReadModifyLocalVarNodeD1Ev
-__ZN3KJS10LessEqNodeD1Ev
-__ZN3KJS18PostDecResolveNodeD1Ev
-__ZN3KJS17DeleteBracketNodeD1Ev
-__ZN3KJS18PostIncResolveNodeD1Ev
-__ZN3KJS14InstanceOfNodeD1Ev
-__ZN3KJS10NegateNodeD1Ev
-__ZN3KJS17PreDecResolveNodeD1Ev
-__ZN3KJS21ReadModifyBracketNodeD1Ev
-__ZN3KJS10BitAndNodeD1Ev
-__ZN3KJS9BitOrNodeD1Ev
-__ZN3KJS14RightShiftNodeD1Ev
-__ZN3KJS13LeftShiftNodeD1Ev
-__ZN3KJS13UnaryPlusNodeD1Ev
-__ZN3KJS13MathObjectImpD0Ev
-__ZN3KJS14NativeErrorImpD0Ev
-__ZN3KJS14ErrorObjectImpD0Ev
-__ZN3KJS15RegExpObjectImpD0Ev
-__ZN3KJS17DateObjectFuncImpD0Ev
-__ZN3KJS13DateObjectImpD0Ev
-__ZN3KJS15NumberObjectImpD0Ev
-__ZN3KJS16BooleanObjectImpD0Ev
-__ZN3KJS19StringObjectFuncImpD0Ev
-__ZN3KJS15StringObjectImpD0Ev
-__ZN3KJS14ArrayObjectImpD0Ev
-__ZN3KJS17FunctionObjectImpD0Ev
-__ZN3KJS15ObjectObjectImpD0Ev
-__ZN3KJS20NativeErrorPrototypeD0Ev
-__ZN3KJS15RegExpPrototypeD0Ev
-__ZN3KJS15NumberPrototypeD0Ev
-__ZN3KJS16BooleanPrototypeD0Ev
-__ZN3KJS15StringPrototypeD0Ev
-__ZN3KJS15ObjectPrototypeD0Ev
-__ZN3KJS17FunctionPrototypeD0Ev
-__ZN3KJS13PreIncDotNodeD1Ev
-__ZN3KJS17staticValueGetterINS_15RegExpObjectImpEEEPNS_7JSValueEPNS_9ExecStateEPNS_8JSObjectERKNS_10IdentifierERKNS_12PropertySlotE
-__ZNK3KJS15RegExpObjectImp16getValuePropertyEPNS_9ExecStateEi
-__ZNK3KJS15RegExpObjectImp10getBackrefEj
-__ZN3KJS16mathProtoFuncMaxEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS17staticValueGetterINS_15NumberObjectImpEEEPNS_7JSValueEPNS_9ExecStateEPNS_8JSObjectERKNS_10IdentifierERKNS_12PropertySlotE
-__ZNK3KJS15NumberObjectImp16getValuePropertyEPNS_9ExecStateEi
-__ZN3KJS10NegateNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS10NegateNode8evaluateEPNS_9ExecStateE
-__ZN3KJS25stringProtoFuncCharCodeAtEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS21arrayProtoFuncUnShiftEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS10LessEqNode8evaluateEPNS_9ExecStateE
-__ZN3KJS8JSObject15getPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
-__ZNK3KJS12PropertySlot8getValueEPNS_9ExecStateEPNS_8JSObjectEj
-__ZN3KJS16mathProtoFuncMinEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS10Identifier5equalEPKNS_7UString3RepEPKc
-__ZN3KJS11addSlowCaseEPNS_9ExecStateEPNS_7JSValueES3_
-__ZN3KJS8LessNode8evaluateEPNS_9ExecStateE
-__ZN3KJS7DivNode16evaluateToNumberEPNS_9ExecStateE
-__ZN3KJS10NegateNode16evaluateToNumberEPNS_9ExecStateE
-__ZN3KJS7AddNode16evaluateToNumberEPNS_9ExecStateE
-__ZN3KJS16mathProtoFuncSinEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS16mathProtoFuncLogEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS16mathProtoFuncAbsEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3WTF6VectorIPN3KJS9ExecStateELm16EE14expandCapacityEm
-__ZN3WTF6VectorIPN3KJS9ExecStateELm16EE15reserveCapacityEm
-__ZN3KJS17arrayProtoFuncPopEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS21stringProtoFuncSubstrEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS28globalFuncEncodeURIComponentEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS6encodeEPNS_9ExecStateERKNS_4ListEPKc
-__ZN3KJS17PrefixBracketNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS17PreIncBracketNode8evaluateEPNS_9ExecStateE
-__ZN3KJS16mathProtoFuncExpEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS17mathProtoFuncATanEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS17mathProtoFuncCeilEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS14AddNumbersNode8evaluateEPNS_9ExecStateE
-__ZN3KJS18arrayProtoFuncSortEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS13ArrayInstance4sortEPNS_9ExecStateEPNS_8JSObjectE
-__ZN3KJS13ArrayInstance17compactForSortingEv
-__ZN3KJS34compareWithCompareFunctionForQSortEPKvS1_
-__ZN3KJS13ArrayInstance4sortEPNS_9ExecStateE
-__ZN3KJS16mathProtoFuncPowEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS15NumberObjectImp9constructEPNS_9ExecStateERKNS_4ListE
-__ZN3KJS23numberProtoFuncToStringEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS9NumberImp8toObjectEPNS_9ExecStateE
-__ZN3KJS16mathProtoFuncCosEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS17mathProtoFuncSqrtEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS17mathProtoFuncASinEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS14ExpressionNode16evaluateToNumberEPNS_9ExecStateE
-__ZN3KJS11DoWhileNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS21stringProtoFuncSearchEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS13PreDecDotNode8evaluateEPNS_9ExecStateE
-__ZN3KJS18PostfixBracketNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS18PostIncBracketNode8evaluateEPNS_9ExecStateE
-__ZN3KJS13LeftShiftNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
+__ZN3JSC10NegateNodeD0Ev
+__ZN3JSC8JITStubs13cti_op_negateEPPv
+__ZN3JSCL17mathProtoFuncSqrtEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL16mathProtoFuncAbsEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL18mathProtoFuncRoundEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL16mathProtoFuncCosEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL16mathProtoFuncSinEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC8JITStubs10cti_op_subEPPv
+__ZNK3JSC8JSObject8toNumberEPNS_9ExecStateE
+__ZN3JSC16ArrayConstructor11getCallDataERNS_8CallDataE
+__ZN3JSCL20callArrayConstructorEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC8JITStubs10cti_op_modEPPv
+__ZN3JSC8JITStubs12cti_op_jlessEPPv
+__ZL17makeLeftShiftNodePvPN3JSC14ExpressionNodeES2_b
+__ZN3JSC13LeftShiftNodeD0Ev
+__ZN3JSC3JIT14emit_op_lshiftEPNS_11InstructionE
+__ZN3JSC3JIT18emitSlow_op_lshiftEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC11JITStubCall11addArgumentENS_3X8610RegisterIDE
+__ZN3JSCL16mathProtoFuncMaxEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC10BitAndNodeD0Ev
+__ZN3JSC3JIT14emit_op_bitandEPNS_11InstructionE
+__ZN3JSC3JIT18emitSlow_op_bitandEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC8JITStubs13cti_op_bitandEPPv
+__ZN3JSC14BitwiseNotNodeD0Ev
+__ZN3JSC3JIT14emit_op_bitnotEPNS_11InstructionE
+__ZN3JSC3JIT18emitSlow_op_bitnotEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC22UnsignedRightShiftNodeD0Ev
+__ZN3JSC10BitXOrNodeD0Ev
+__ZN3JSC3JIT14emit_op_bitxorEPNS_11InstructionE
+__ZN3JSC3JIT18emitSlow_op_bitxorEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSCL25stringProtoFuncCharCodeAtEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC8JITStubs14cti_op_urshiftEPPv
+__ZN3JSC16toUInt32SlowCaseEdRb
+__ZN3JSCL17mathProtoFuncCeilEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC6JSCell18getTruncatedUInt32ERj
+__ZN3JSC3JIT13emit_op_bitorEPNS_11InstructionE
+__ZN3JSC3JIT17emitSlow_op_bitorEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC8JITStubs12cti_op_bitorEPPv
+__ZN3JSC9BitOrNodeD0Ev
+__ZN3JSC8JITStubs13cti_op_rshiftEPPv
+__ZN3JSC8JITStubs13cti_op_bitxorEPPv
+__ZN3JSC9parseDateERKNS_7UStringE
+__ZN3WTF6VectorIN3JSC10CallRecordELm0EE14expandCapacityEmPKS2_
+__ZNK3JSC12JSActivation12toThisObjectEPNS_9ExecStateE
+__ZN3JSC3JIT20emit_op_resolve_skipEPNS_11InstructionE
+__ZN3JSC8JITStubs19cti_op_resolve_skipEPPv
+__ZN3JSCL24dateProtoFuncGetFullYearEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC17StringConstructor16getConstructDataERNS_13ConstructDataE
+__ZN3JSCL30constructWithStringConstructorEPNS_9ExecStateEPNS_8JSObjectERKNS_7ArgListE
+__ZN3JSC5equalEPKNS_7UString3RepES3_
+__ZN3JSC8EvalNode4markEv
+__ZN3JSC10SwitchNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC13CaseBlockNode20emitBytecodeForBlockERNS_17BytecodeGeneratorEPNS_10RegisterIDES4_
+__ZN3JSC13CaseBlockNode18tryOptimizedSwitchERN3WTF6VectorIPNS_14ExpressionNodeELm8EEERiS7_
+__ZN3JSCL17processClauseListEPNS_14ClauseListNodeERN3WTF6VectorIPNS_14ExpressionNodeELm8EEERNS_10SwitchKindERbRiSB_
+__ZN3WTF6VectorIPN3JSC14ExpressionNodeELm8EE14expandCapacityEm
+__ZN3WTF6VectorINS_6RefPtrIN3JSC5LabelEEELm8EE14expandCapacityEm
+__ZN3JSC17BytecodeGenerator11beginSwitchEPNS_10RegisterIDENS_10SwitchInfo10SwitchTypeE
+__ZN3WTF6VectorIN3JSC10SwitchInfoELm0EE14expandCapacityEm
+__ZN3JSC17BytecodeGenerator9endSwitchEjPN3WTF6RefPtrINS_5LabelEEEPPNS_14ExpressionNodeEPS3_ii
+__ZN3WTF6VectorIN3JSC15SimpleJumpTableELm0EE14expandCapacityEm
+__ZN3WTF6VectorIiLm0EE15reserveCapacityEm
+__ZN3JSC14CaseClauseNodeD0Ev
+__ZN3JSC14ClauseListNodeD0Ev
+__ZN3JSC13CaseBlockNodeD0Ev
+__ZN3JSC10SwitchNodeD0Ev
+__ZN3JSC3JIT19emit_op_switch_charEPNS_11InstructionE
+__ZN3WTF6VectorIN3JSC12SwitchRecordELm0EE14expandCapacityEm
+__ZN3WTF6VectorIN3JSC22AbstractMacroAssemblerINS1_12X86AssemblerEE17CodeLocationLabelELm0EE4growEm
+__ZN3JSC8JITStubs18cti_op_switch_charEPPv
+__ZN3JSCL16mathProtoFuncPowEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3WTF6VectorIcLm0EE14expandCapacityEm
+__ZN3WTF6VectorIN3JSC7UString5RangeELm16EE14expandCapacityEm
+__ZN3WTF6VectorIN3JSC7UStringELm16EE14expandCapacityEmPKS2_
+__ZN3WTF6VectorIN3JSC7UStringELm16EE15reserveCapacityEm
+__ZN3JSC7JSArray16getPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayE
+__ZN3JSC9ExecState10arrayTableEPS0_
+__ZN3JSC20MarkedArgumentBuffer10slowAppendENS_7JSValueE
+__ZN3WTF9HashTableIPN3JSC20MarkedArgumentBufferES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES9_E6rehas
+__ZN3JSC8JITStubs24cti_op_get_by_val_stringEPPv
+__ZN3JSCL16mathProtoFuncLogEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC7UString8toDoubleEv
+__ZN3WTF9HashTableIPN3JSC7UString3RepES4_NS_17IdentityExtractorIS4_EENS_7PtrHashIS4_EENS_10HashTraitsIS4_EESA_E4findIS4_NS_22Id
+__ZN3JSCL29objectProtoFuncHasOwnPropertyEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL18arrayProtoFuncSortEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC7JSArray4sortEPNS_9ExecStateENS_7JSValueENS_8CallTypeERKNS_8CallDataE
+__ZN3WTF7AVLTreeIN3JSC32AVLTreeAbstractorForArrayCompareELj44ENS_18AVLTreeDefaultBSetILj44EEEE6insertEi
+__ZN3JSCltERKNS_7UStringES2_
+__ZN3WTF7AVLTreeIN3JSC32AVLTreeAbstractorForArrayCompareELj44ENS_18AVLTreeDefaultBSetILj44EEEE7balanceEi
+__Z12jsRegExpFreeP8JSRegExp
+__ZN3JSCL21stringProtoFuncConcatEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC19globalFuncEncodeURIEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC19globalFuncDecodeURIEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL6decodeEPNS_9ExecStateERKNS_7ArgListEPKcb
__ZN3WTF7Unicode18UTF8SequenceLengthEc
__ZN3WTF7Unicode18decodeUTF8SequenceEPKc
-__ZN3KJS9StringImp18getPrimitiveNumberEPNS_9ExecStateERdRPNS_7JSValueE
-__ZN3KJSltERKNS_7UStringES2_
-__ZN3KJS15ConditionalNode16evaluateToNumberEPNS_9ExecStateE
-__ZN3KJS10BitAndNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS10BitAndNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS15DotAccessorNode15evaluateToInt32EPNS_9ExecStateE
-__ZN3KJS19ImmediateNumberNode15evaluateToInt32EPNS_9ExecStateE
-__ZN3KJS13ArrayInstance16getPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayE
-__ZN3KJS18LocalVarAccessNode15evaluateToInt32EPNS_9ExecStateE
-__ZN3KJS13LeftShiftNode16evaluateToNumberEPNS_9ExecStateE
-__ZN3KJS19BracketAccessorNode16evaluateToUInt32EPNS_9ExecStateE
-__ZN3KJS14RightShiftNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS14RightShiftNode8evaluateEPNS_9ExecStateE
-__ZN3KJS7AddNode15evaluateToInt32EPNS_9ExecStateE
-__ZN3KJS19ImmediateNumberNode16evaluateToUInt32EPNS_9ExecStateE
-__ZN3KJS13LeftShiftNode8evaluateEPNS_9ExecStateE
-__ZN3KJS18LocalVarAccessNode16evaluateToUInt32EPNS_9ExecStateE
-__ZNK3KJS9NumberImp17getTruncatedInt32ERi
-__ZN3KJS19BracketAccessorNode15evaluateToInt32EPNS_9ExecStateE
-__ZN3KJS16BooleanObjectImp9constructEPNS_9ExecStateERKNS_4ListE
-__ZN3KJS24booleanProtoFuncToStringEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS14BitwiseNotNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS9BitOrNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS9BitOrNode8evaluateEPNS_9ExecStateE
-__ZN3KJS10BitAndNode8evaluateEPNS_9ExecStateE
-__ZN3KJS14BitwiseNotNode8evaluateEPNS_9ExecStateE
-__ZN3KJS15NumberObjectImp14callAsFunctionEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS8Bindings8Instance32createBindingForLanguageInstanceENS1_15BindingLanguageEPvN3WTF10PassRefPtrINS0_10RootObjectEEE
-__ZN3KJS8Bindings9CInstanceC2EP8NPObjectN3WTF10PassRefPtrINS0_10RootObjectEEE
-__ZN3KJS8Bindings8InstanceC2EN3WTF10PassRefPtrINS0_10RootObjectEEE
-__ZNK3KJS8Bindings8Instance10rootObjectEv
-__ZN3KJS8Bindings8Instance19createRuntimeObjectEPS1_
-__ZN3KJS16RuntimeObjectImpC2EPNS_8Bindings8InstanceE
-__ZN3KJS8Bindings10RootObject16addRuntimeObjectEPNS_16RuntimeObjectImpE
-__ZN3KJS16RuntimeObjectImp18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
-__ZN3KJS8Bindings9CInstance5beginEv
-__ZNK3KJS8Bindings9CInstance8getClassEv
-__ZN3KJS8Bindings6CClass11classForIsAEP7NPClass
-__ZN3KJS8Bindings6CClassC2EP7NPClass
-__ZNK3KJS8Bindings6CClass10fieldNamedERKNS_10IdentifierEPNS0_8InstanceE
-__ZNK3KJS7UString5asciiEv
-__ZNK3KJS8Bindings6CClass12methodsNamedERKNS_10IdentifierEPNS0_8InstanceE
-__NPN_UTF8FromIdentifier
-__ZN3KJS8Bindings5Class14fallbackObjectEPNS_9ExecStateEPNS0_8InstanceERKNS_10IdentifierE
-__ZN3KJS8Bindings9CInstance3endEv
-__ZN3WTF6VectorIPN3KJS8Bindings6MethodELm0EE14expandCapacityEmPKS4_
-__ZN3WTF6VectorIPN3KJS8Bindings6MethodELm0EE14expandCapacityEm
-__ZN3WTF6VectorIPN3KJS8Bindings6MethodELm0EE15reserveCapacityEm
-__ZN3KJS16RuntimeObjectImp12methodGetterEPNS_9ExecStateEPNS_8JSObjectERKNS_10IdentifierERKNS_12PropertySlotE
-__ZN3KJS13RuntimeMethodC2EPNS_9ExecStateERKNS_10IdentifierERN3WTF6VectorIPNS_8Bindings6MethodELm0EEE
-__ZN3WTF6VectorIPN3KJS8Bindings6MethodELm0EEC2ERKS5_
-__ZN3KJS13RuntimeMethod14callAsFunctionEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS16RuntimeObjectImp9classInfoEv
-__ZN3KJS8Bindings9CInstance12invokeMethodEPNS_9ExecStateERKN3WTF6VectorIPNS0_6MethodELm0EEERKNS_4ListE
-__ZNK3KJS8Bindings7CMethod4nameEv
-__ZN3KJS8Bindings23convertNPVariantToValueEPNS_9ExecStateEPK10_NPVariantPNS0_10RootObjectE
-__ZN3KJS16RuntimeObjectImpD2Ev
-__ZN3KJS8Bindings10RootObject19removeRuntimeObjectEPNS_16RuntimeObjectImpE
-__ZN3KJS4Node10throwErrorEPNS_9ExecStateENS_9ErrorTypeEPKcPNS_7JSValueEPS0_RKNS_10IdentifierE
-__ZN3KJS10substituteERNS_7UStringERKS0_
-__ZN3KJS4Node16rethrowExceptionEPNS_9ExecStateE
-__ZN3KJS4Node15handleExceptionEPNS_9ExecStateEPNS_7JSValueE
-__ZN3KJS16RuntimeObjectImp10invalidateEv
-__ZN3KJS16JSVariableObject14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
-__ZN3KJS14JSGlobalObjectD2Ev
-__ZN3KJS15GlobalExecStateD1Ev
-__ZN3KJS14BitwiseNotNodeD1Ev
-__ZN3KJSplERKNS_7UStringES2_
-__ZN3KJS5Lexer14convertUnicodeEiiii
-__ZN3KJS14ArrayObjectImp14callAsFunctionEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS9Arguments3putEPNS_9ExecStateERKNS_10IdentifierEPNS_7JSValueEi
-__ZN3WTF9HashTableIjSt4pairIjiENS_18PairFirstExtractorIS2_EENS_7IntHashIjEENS_14PairHashTraitsINS_10HashTraitsIjEENS8_IiEEEES9_E3addIjS2_NS_22IdentityHashTranslatorIjS2_S6_EEEES1_INS_17HashTableIteratorIjS2_S4_S6_SB_S9_EEbERKT_RKT0_
-__ZN3WTF9HashTableIjSt4pairIjiENS_18PairFirstExtractorIS2_EENS_7IntHashIjEENS_14PairHashTraitsINS_10HashTraitsIjEENS8_IiEEEES9_EC2ERKSC_
-__ZN3KJS23stringProtoFuncToStringEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3WTF9HashTableIjSt4pairIjiENS_18PairFirstExtractorIS2_EENS_7IntHashIjEENS_14PairHashTraitsINS_10HashTraitsIjEENS8_IiEEEES9_E4findIjNS_22IdentityHashTranslatorIjS2_S6_EEEENS_17HashTableIteratorIjS2_S4_S6_SB_S9_EERKT_
-__ZN3KJS10BitXOrNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS10BitXOrNode8evaluateEPNS_9ExecStateE
-__ZN3KJS14RightShiftNode15evaluateToInt32EPNS_9ExecStateE
-__ZN3KJS10BitXOrNodeD1Ev
-__ZN3KJS17DateObjectFuncImp14callAsFunctionEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS9parseDateERKNS_7UStringE
-__ZN3KJS6RegExp6createERKNS_7UStringE
-__ZN3KJS7ModNode16evaluateToNumberEPNS_9ExecStateE
-__ZNK3KJS16RuntimeObjectImp14implementsCallEv
-__ZNK3KJS8Bindings9CInstance14implementsCallEv
-__ZN3KJS11Interpreter21shouldPrintExceptionsEv
-__ZN3KJS4Node10throwErrorEPNS_9ExecStateENS_9ErrorTypeEPKcRKNS_10IdentifierE
-__ZN3KJS12PropertySlot15undefinedGetterEPNS_9ExecStateEPNS_8JSObjectERKNS_10IdentifierERKS0_
-__ZN3KJS15SavedPropertiesD1Ev
-__ZN3KJS8JSObject18isActivationObjectEv
-__ZN3KJS19globalFuncDecodeURIEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS14JSGlobalObject15restoreBuiltinsERKNS_13SavedBuiltinsE
-__ZN3KJS11PropertyMap7restoreERKNS_15SavedPropertiesE
-__ZN3KJS16JSVariableObject19restoreLocalStorageERKNS_15SavedPropertiesE
-__ZN3WTF6VectorIN3KJS17LocalStorageEntryELm32EE6resizeEm
-__ZNK3KJS23FunctionCallBracketNode8streamToERNS_12SourceStreamE
-__ZNK3KJS17TypeOfResolveNode10precedenceEv
-__ZNK3KJS17TypeOfResolveNode8streamToERNS_12SourceStreamE
-__ZNK3KJS13AssignDotNode10precedenceEv
-__ZNK3KJS12ContinueNode8streamToERNS_12SourceStreamE
-__ZN3KJS11FunctionImp12callerGetterEPNS_9ExecStateEPNS_8JSObjectERKNS_10IdentifierERKNS_12PropertySlotE
-__ZN3KJS9BreakNodeC1ERKNS_10IdentifierE
-__ZN3KJS13StatementNode9pushLabelERKNS_10IdentifierE
-__ZN3KJS9ThrowNode7executeEPNS_9ExecStateE
-__ZNK3KJS15NumberObjectImp19implementsConstructEv
-__ZN3KJS22numberProtoFuncValueOfEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS8VoidNodeD1Ev
-__ZN3KJS14ErrorObjectImp14callAsFunctionEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS18globalFuncIsFiniteEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS21ReadModifyResolveNode8evaluateEPNS_9ExecStateE
-__ZN3KJS15StrictEqualNode8evaluateEPNS_9ExecStateE
-__ZN3KJS27compareByStringPairForQSortEPKvS1_
-__ZN3KJS7compareERKNS_7UStringES2_
-__ZN3KJS4Node10throwErrorEPNS_9ExecStateENS_9ErrorTypeEPKcPNS_7JSValueEPS0_S8_
-__ZN3KJS21arrayProtoFuncReverseEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS20stringProtoFuncSliceEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS15StringObjectImp19implementsConstructEv
-__ZN3KJS15StringObjectImp9constructEPNS_9ExecStateERKNS_4ListE
-__ZN3KJS18PostDecResolveNode8evaluateEPNS_9ExecStateE
-__ZN3KJS21dateProtoFuncSetMonthEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS23setNewValueFromDateArgsEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListEib
-__ZN3KJS20dateProtoFuncSetDateEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS21dateProtoFuncSetHoursEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS23setNewValueFromTimeArgsEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListEib
-__ZN3KJS23dateProtoFuncSetMinutesEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS24dateProtoFuncSetFullYearEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS8JSObject18getPrimitiveNumberEPNS_9ExecStateERdRPNS_7JSValueE
-__ZN3KJS20dateProtoFuncValueOfEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS27dateProtoFuncGetUTCFullYearEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS27dateProtoFuncSetUTCFullYearEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS24dateProtoFuncGetUTCMonthEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS24dateProtoFuncSetUTCMonthEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS23dateProtoFuncGetUTCDateEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS23dateProtoFuncSetUTCDateEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS24dateProtoFuncGetUTCHoursEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS24dateProtoFuncSetUTCHoursEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS26dateProtoFuncGetUTCMinutesEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS26dateProtoFuncSetUTCMinutesEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS26dateProtoFuncGetUTCSecondsEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS26dateProtoFuncSetUTCSecondsEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS22numberProtoFuncToFixedEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS18integer_part_noexpEd
-__ZN3KJS14AddNumbersNode16evaluateToNumberEPNS_9ExecStateE
-__ZNK3KJS14InstanceOfNode10precedenceEv
-__ZNK3KJS14InstanceOfNode8streamToERNS_12SourceStreamE
-__ZNK3KJS8JSObject8toNumberEPNS_9ExecStateE
-__Z15kjs_pcre_xclassiPKh
-__ZN3KJS10NumberNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS18PostDecBracketNodeD1Ev
-__ZN3KJS17PropertyNameArray3addERKNS_10IdentifierE
-__ZN3KJS22errorProtoFuncToStringEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS13LeftShiftNode15evaluateToInt32EPNS_9ExecStateE
-__ZNK3KJS9RegExpImp14implementsCallEv
-__ZN3KJS22stringProtoFuncValueOfEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS15ConditionalNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS16JSVariableObject16getPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayE
-__ZN3KJS11DoWhileNode7executeEPNS_9ExecStateE
-__ZN3KJS8Bindings23convertObjcValueToValueEPNS_9ExecStateEPvNS0_13ObjcValueTypeEPNS0_10RootObjectE
-__ZN3KJS8Bindings17webUndefinedClassEv
-__ZN3KJS8Bindings20webScriptObjectClassEv
-__ZN3KJS8Bindings8Instance19createRuntimeObjectENS1_15BindingLanguageEPvN3WTF10PassRefPtrINS0_10RootObjectEEE
-__ZN3KJS8Bindings12ObjcInstanceC2EP11objc_objectN3WTF10PassRefPtrINS0_10RootObjectEEE
-__ZN3KJS8Bindings8Instance18didExecuteFunctionEv
-__ZN3KJS8Bindings12ObjcInstance5beginEv
-__ZNK3KJS8Bindings12ObjcInstance8getClassEv
-__ZN3KJS8Bindings9ObjcClass11classForIsAEP10objc_class
-__ZN3KJS8Bindings9ObjcClassC2EP10objc_class
-__ZNK3KJS8Bindings9ObjcClass10fieldNamedERKNS_10IdentifierEPNS0_8InstanceE
-__ZNK3KJS8Bindings9ObjcClass12methodsNamedERKNS_10IdentifierEPNS0_8InstanceE
-__ZN3KJS8Bindings25convertJSMethodNameToObjcEPKcPcm
-__ZN3KJS8Bindings10ObjcMethodC2EP10objc_classPKc
-__ZN3KJS8Bindings12ObjcInstance3endEv
-__ZN3KJS8Bindings12ObjcInstance12invokeMethodEPNS_9ExecStateERKN3WTF6VectorIPNS0_6MethodELm0EEERKNS_4ListE
-__ZNK3KJS8Bindings10ObjcMethod18getMethodSignatureEv
-__ZNK3KJS8Bindings10ObjcMethod4nameEv
-__ZN3KJS8Bindings20objcValueTypeForTypeEPKc
-__ZN3KJS8Bindings23convertValueToObjcValueEPNS_9ExecStateEPNS_7JSValueENS0_13ObjcValueTypeE
-__ZNK3KJS6JSCell9getStringEv
-__ZN3KJS8Bindings23convertNSStringToStringEP8NSString
-__ZN3KJS8Bindings12ObjcInstanceD1Ev
-__ZN3KJS9LabelNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS9LabelNode7executeEPNS_9ExecStateE
-__ZN3KJS12ContinueNodeC1ERKNS_10IdentifierE
-__ZN3KJS11FunctionImp12lengthGetterEPNS_9ExecStateEPNS_8JSObjectERKNS_10IdentifierERKNS_12PropertySlotE
-__ZN3KJS9BitOrNode15evaluateToInt32EPNS_9ExecStateE
-__ZN3KJS18EmptyStatementNode7executeEPNS_9ExecStateE
-__ZN3KJS22UnsignedRightShiftNodeD1Ev
-__ZN3KJS7ModNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS20arrayProtoFuncFilterEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS6InNode8evaluateEPNS_9ExecStateE
-__ZN3KJS17arrayProtoFuncMapEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS10LessEqNode10precedenceEv
-__ZNK3KJS10LessEqNode8streamToERNS_12SourceStreamE
-__ZNK3KJS18NotStrictEqualNode10precedenceEv
-__ZNK3KJS18NotStrictEqualNode8streamToERNS_12SourceStreamE
-__ZN3KJS14StringInstance16getPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayE
-__ZN3KJS7UString4fromEi
-__ZN3KJS14StringInstance11indexGetterEPNS_9ExecStateEPNS_8JSObjectERKNS_10IdentifierERKNS_12PropertySlotE
-__ZN3KJS21stringProtoFuncConcatEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS22UnsignedRightShiftNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS11ResolveNode15evaluateToInt32EPNS_9ExecStateE
-__ZN3KJS19FunctionCallDotNode15evaluateToInt32EPNS_9ExecStateE
-__ZN3KJS22UnsignedRightShiftNode15evaluateToInt32EPNS_9ExecStateE
-__ZN3KJS11ResolveNode16evaluateToUInt32EPNS_9ExecStateE
-__ZNK3KJS9NumberImp18getTruncatedUInt32ERj
-__ZN3KJS10NumberNode15evaluateToInt32EPNS_9ExecStateE
-__ZN3KJS7SubNode16evaluateToUInt32EPNS_9ExecStateE
-__ZN3KJS14BitwiseNotNode15evaluateToInt32EPNS_9ExecStateE
-__ZN3KJS10BitAndNode15evaluateToInt32EPNS_9ExecStateE
-__ZN3KJS7AddNode16evaluateToUInt32EPNS_9ExecStateE
-__ZN3KJS7SubNode15evaluateToInt32EPNS_9ExecStateE
-__ZN3KJS8VoidNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS8VoidNode8evaluateEPNS_9ExecStateE
-__ZN3KJS17DeleteResolveNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS18LocalVarDeleteNodeD1Ev
-__ZN3KJS11FunctionImp15argumentsGetterEPNS_9ExecStateEPNS_8JSObjectERKNS_10IdentifierERKNS_12PropertySlotE
-__ZN3KJS18LocalVarDeleteNode8evaluateEPNS_9ExecStateE
-__ZN3KJS17DeleteResolveNode8evaluateEPNS_9ExecStateE
-__ZNK3KJS16RuntimeObjectImp6canPutEPNS_9ExecStateERKNS_10IdentifierE
-__ZN3KJS13UnaryPlusNode8evaluateEPNS_9ExecStateE
-__ZN3KJS24dateProtoFuncToUTCStringEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS23booleanProtoFuncValueOfEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS11NewExprNode16evaluateToNumberEPNS_9ExecStateE
-__Z22kjs_pcre_ucp_othercasej
-__ZN3KJS17PreDecResolveNode8evaluateEPNS_9ExecStateE
-__ZNK3KJS7JSValue7toFloatEPNS_9ExecStateE
-__ZN3KJS14ExpressionNode15evaluateToInt32EPNS_9ExecStateE
-__ZN3KJS4List26markProtectedListsSlowCaseEv
-__ZNK3KJS6JSCell9getStringERNS_7UStringE
-__ZN3KJS8TrueNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS9RegExpImp3putEPNS_9ExecStateERKNS_10IdentifierEPNS_7JSValueEi
-__ZNK3KJS9NumberImp9getUInt32ERj
-__ZN3KJS4Node10throwErrorEPNS_9ExecStateENS_9ErrorTypeEPKcPNS_7JSValueEPS0_
-__ZN3KJS23FunctionCallResolveNode15evaluateToInt32EPNS_9ExecStateE
-__ZNK3KJS6JSCell18getTruncatedUInt32ERj
-__ZNK3KJS9LabelNode8streamToERNS_12SourceStreamE
-__ZNK3KJS17ObjectLiteralNode21needsParensIfLeftmostEv
-__ZNK3KJS11DoWhileNode8streamToERNS_12SourceStreamE
-__ZNK3KJS17PreDecResolveNode8streamToERNS_12SourceStreamE
-__ZNK3KJS13PreIncDotNode8streamToERNS_12SourceStreamE
-__ZNK3KJS13PreDecDotNode8streamToERNS_12SourceStreamE
-__ZNK3KJS17DeleteResolveNode8streamToERNS_12SourceStreamE
-__ZN3KJS9FalseNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS23dateProtoFuncSetSecondsEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS14PostIncDotNode8streamToERNS_12SourceStreamE
-__ZNK3KJS8Bindings12ObjcInstance14implementsCallEv
-__ZN3KJS8Bindings9ObjcClass14fallbackObjectEPNS_9ExecStateEPNS0_8InstanceERKNS_10IdentifierE
-__ZN3KJS16BooleanObjectImp14callAsFunctionEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS11jsUndefinedEv
-___tcf_2
-___tcf_6
-___tcf_0
-___tcf_5
-___tcf_3
-___tcf_4
-__Z12jsRegExpFreeP8JSRegExp
-__ZN3KJS25CollectorHeapIntrospector4sizeEP14_malloc_zone_tPKv
-__ZN3WTF9HashTableINS_6RefPtrIN3KJS7UString3RepEEESt4pairIS5_mENS_18PairFirstExtractorIS7_EENS2_17IdentifierRepHashENS_14PairHashTraitsINS2_23IdentifierRepHashTraitsENS2_26SymbolTableIndexHashTraitsEEESC_E4findIS5_NS_22IdentityHashTranslatorIS5_S7_SA_EEEENS_17HashTableIteratorIS5_S7_S9_SA_SE_SC_EERKT_
-__ZN3KJS18AssignLocalVarNodeD1Ev
-__ZN3KJS8TrueNodeD1Ev
-__ZN3KJS11NewExprNodeD1Ev
-__ZN3KJS19ImmediateNumberNodeD1Ev
-__ZN3KJS17AssignBracketNodeD1Ev
-__ZN3KJS18LocalVarAccessNodeD1Ev
-__ZN3KJS16ParserRefCounted8refcountEv
-__ZN3KJS14JSGlobalObject16stopTimeoutCheckEv
-__ZN3KJS11GreaterNodeD1Ev
-__ZN3KJS16ArgumentListNodeD1Ev
-__ZN3KJS17FunctionObjectImp9constructEPNS_9ExecStateERKNS_4ListERKNS_10IdentifierERKNS_7UStringEi
-__ZN3KJS6Parser5parseINS_16FunctionBodyNodeEEEN3WTF10PassRefPtrIT_EERKNS_7UStringEiPKNS_5UCharEjPiSD_PS7_
-__ZN3KJS8JSObject4callEPNS_9ExecStateEPS0_RKNS_4ListE
-__ZN3KJS18AddStringRightNode8evaluateEPNS_9ExecStateE
-__ZN3KJS16globalFuncEscapeEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS13DateObjectImp19implementsConstructEv
-__ZN3KJS13DateObjectImp9constructEPNS_9ExecStateERKNS_4ListE
-__ZN3KJS13DatePrototype18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
-__ZN3KJS20dateProtoFuncGetTimeEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS12DateInstance9classInfoEv
-__ZNK3KJS9NumberImp8toNumberEPNS_9ExecStateE
-__ZNK3KJS9NumberImp8toStringEPNS_9ExecStateE
-__ZN3KJS9BlockNodeD1Ev
-__ZN3KJS21dateProtoFuncGetMonthEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS21msToGregorianDateTimeEdbRNS_17GregorianDateTimeE
-__ZN3KJS12getUTCOffsetEv
-__ZN3KJS12getDSTOffsetEdd
-__ZN3KJS15ConditionalNodeD1Ev
-__ZN3KJS7DivNodeD1Ev
-__ZN3KJS9EqualNodeD1Ev
-__ZN3KJS8NullNodeD1Ev
-__ZN3KJS9FalseNodeD1Ev
-__ZN3KJS12NotEqualNodeD1Ev
-__ZN3KJS7SubNodeD1Ev
-__ZN3KJS7SubNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS24LocalVarFunctionCallNode16evaluateToNumberEPNS_9ExecStateE
-__ZN3KJS21ReadModifyResolveNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS14StringInstance12lengthGetterEPNS_9ExecStateEPNS_8JSObjectERKNS_10IdentifierERKNS_12PropertySlotE
-__ZN3KJS18globalFuncUnescapeEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS7DivNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS7DivNode8evaluateEPNS_9ExecStateE
-__ZN3KJS18LocalVarAccessNode16evaluateToNumberEPNS_9ExecStateE
-__ZN3KJS8MultNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS8MultNode8evaluateEPNS_9ExecStateE
-__ZN3KJS19FunctionCallDotNode16evaluateToNumberEPNS_9ExecStateE
-__ZN3KJS7SubNode8evaluateEPNS_9ExecStateE
-__ZNK3KJS9NumberImp11toPrimitiveEPNS_9ExecStateENS_6JSTypeE
-__ZN3KJS18AddStringRightNodeD1Ev
-__ZN3KJS7AddNodeD1Ev
-__ZN3KJS13LogicalOrNodeD1Ev
-__ZN3KJS17PreIncResolveNodeD1Ev
-__ZN3KJS8MultNodeD1Ev
-__ZN3KJS8LessNodeD1Ev
-__ZN3KJS14LogicalAndNodeD1Ev
-__ZN3KJS10NumberNodeD1Ev
-__ZN3KJS13GreaterEqNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS14LogicalNotNodeD1Ev
-__ZN3KJS7ModNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS14JSGlobalObject12checkTimeoutEv
-__ZN3KJS7ModNode8evaluateEPNS_9ExecStateE
-__ZN3KJS15LessNumbersNode8evaluateEPNS_9ExecStateE
-__ZN3KJS20dateProtoFuncGetYearEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS8ThisNodeD1Ev
-__ZN3KJS19mathProtoFuncRandomEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS20globalFuncParseFloatEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS13GreaterEqNode8evaluateEPNS_9ExecStateE
-__ZN3KJS20dateProtoFuncGetDateEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS18mathProtoFuncFloorEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS23stringProtoFuncFontsizeEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS11ResolveNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS13GreaterEqNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS9NumberImp18getPrimitiveNumberEPNS_9ExecStateERdRPNS_7JSValueE
-__ZN3KJS19stringProtoFuncLinkEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS19dateProtoFuncGetDayEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS21dateProtoFuncGetHoursEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS23dateProtoFuncGetMinutesEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS23dateProtoFuncGetSecondsEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS9ArrayNodeD1Ev
-__ZN3KJS11ElementNodeD1Ev
-__ZN3KJS17ObjectLiteralNodeD1Ev
-__ZN3KJS14PostfixDotNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS14PostIncDotNode8evaluateEPNS_9ExecStateE
-__ZN3KJS19PlaceholderTrueNodeD1Ev
-__ZN3KJS19PostDecLocalVarNode8evaluateEPNS_9ExecStateE
-__ZN3KJS17ReadModifyDotNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS17ReadModifyDotNode8evaluateEPNS_9ExecStateE
-__ZN3KJS21FunctionCallValueNodeD1Ev
-__ZN3KJS10BitAndNode16evaluateToUInt32EPNS_9ExecStateE
-__ZN3KJS14AddNumbersNode15evaluateToInt32EPNS_9ExecStateE
-__ZN3KJS10BitXOrNode15evaluateToInt32EPNS_9ExecStateE
-__ZN3KJS22UnsignedRightShiftNode8evaluateEPNS_9ExecStateE
-__ZN3KJS8MultNode16evaluateToUInt32EPNS_9ExecStateE
-__ZN3KJS7DivNode16evaluateToUInt32EPNS_9ExecStateE
-__ZN3KJS19StringObjectFuncImp14callAsFunctionEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS7ModNode16evaluateToUInt32EPNS_9ExecStateE
-__ZN3KJS10BitAndNode16evaluateToNumberEPNS_9ExecStateE
-__ZN3KJS14RightShiftNode16evaluateToNumberEPNS_9ExecStateE
-__ZN3KJS14AddNumbersNode16evaluateToUInt32EPNS_9ExecStateE
-__ZN3KJS14globalFuncEvalEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS6Parser5parseINS_8EvalNodeEEEN3WTF10PassRefPtrIT_EERKNS_7UStringEiPKNS_5UCharEjPiSD_PS7_
-__ZN3KJS13EvalExecStateC1EPNS_14JSGlobalObjectEPNS_8EvalNodeEPNS_9ExecStateE
-__ZN3KJS8EvalNode7executeEPNS_9ExecStateE
-__ZN3KJS8EvalNodeD1Ev
-__ZN3KJS23FunctionCallBracketNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS23FunctionCallBracketNode8evaluateEPNS_9ExecStateE
-__ZN3KJS16PropertyListNodeD1Ev
-__ZN3KJS12PropertyNodeD1Ev
-__ZN3KJS13CaseBlockNodeD1Ev
-__ZN3KJS14CaseClauseNodeD1Ev
-__ZN3KJS14ClauseListNodeD1Ev
-__ZN3KJS9RegExpImp18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
-__ZN3KJS17staticValueGetterINS_9RegExpImpEEEPNS_7JSValueEPNS_9ExecStateEPNS_8JSObjectERKNS_10IdentifierERKNS_12PropertySlotE
-__ZNK3KJS9RegExpImp16getValuePropertyEPNS_9ExecStateEi
-__ZN3KJS9ThrowNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS15StrictEqualNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS19regExpProtoFuncTestEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS9RegExpImp5matchEPNS_9ExecStateERKNS_4ListE
-__ZN3KJS15StrictEqualNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS18NotStrictEqualNodeD1Ev
-__ZN3KJS15StrictEqualNodeD1Ev
-__ZN3KJS18LocalVarTypeOfNodeD1Ev
-__ZN3KJS19globalFuncEncodeURIEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS17TypeOfResolveNode8evaluateEPNS_9ExecStateE
-__ZN3KJS26stringProtoFuncLastIndexOfEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS7JSValue20toIntegerPreserveNaNEPNS_9ExecStateE
-__ZNK3KJS7UString5rfindERKS0_i
-__ZN3KJS15TypeOfValueNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS15TypeOfValueNode8evaluateEPNS_9ExecStateE
-__ZNK3KJS17FunctionObjectImp19implementsConstructEv
-__ZN3KJS17FunctionObjectImp9constructEPNS_9ExecStateERKNS_4ListE
-__ZNK3KJS8JSObject11hasPropertyEPNS_9ExecStateERKNS_10IdentifierE
-__ZN3KJS30dateProtoFuncGetTimezoneOffsetEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS8JSObject3putEPNS_9ExecStateEjPNS_7JSValueEi
-__ZN3KJS6InNodeD1Ev
-__ZNK3KJS9Arguments9classInfoEv
-__ZN3KJS10BitXOrNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS19addSlowCaseToNumberEPNS_9ExecStateEPNS_7JSValueES3_
-__ZN3KJS8JSObject14deletePropertyEPNS_9ExecStateEj
-__ZNK3KJS9WhileNode8streamToERNS_12SourceStreamE
-__ZNK3KJS9FalseNode8streamToERNS_12SourceStreamE
-__ZNK3KJS7DivNode8streamToERNS_12SourceStreamE
-__ZNK3KJS7DivNode10precedenceEv
-__ZNK3KJS15StrictEqualNode8streamToERNS_12SourceStreamE
-__ZNK3KJS15StrictEqualNode10precedenceEv
-__ZNK3KJS16VarDeclCommaNode10precedenceEv
-__ZNK3KJS17PreIncResolveNode8streamToERNS_12SourceStreamE
-__ZNK3KJS9FalseNode10precedenceEv
-__ZN3KJS14InstanceOfNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZNK3KJS19InternalFunctionImp21implementsHasInstanceEv
-__ZN3KJS8JSObject11hasInstanceEPNS_9ExecStateEPNS_7JSValueE
-__ZN3WTF14FastMallocZone9forceLockEP14_malloc_zone_t
-__ZN3KJS25CollectorHeapIntrospector9forceLockEP14_malloc_zone_t
-__ZN3WTF14FastMallocZone11forceUnlockEP14_malloc_zone_t
-__ZN3KJS25CollectorHeapIntrospector11forceUnlockEP14_malloc_zone_t
-__ZNK3KJS23FunctionCallBracketNode10precedenceEv
-__ZN3KJS14InstanceOfNode8evaluateEPNS_9ExecStateE
-__ZNK3KJS9ThrowNode8streamToERNS_12SourceStreamE
-__ZNK3KJS7SubNode10precedenceEv
-__ZNK3KJS7SubNode8streamToERNS_12SourceStreamE
-__ZNK3KJS10NegateNode10precedenceEv
-__ZNK3KJS10NegateNode8streamToERNS_12SourceStreamE
-__ZNK3KJS12FuncDeclNode8streamToERNS_12SourceStreamE
-__ZNK3KJS18PostDecResolveNode8streamToERNS_12SourceStreamE
-__ZNK3KJS9BreakNode8streamToERNS_12SourceStreamE
-__ZNK3KJS6InNode10precedenceEv
-__ZNK3KJS6InNode8streamToERNS_12SourceStreamE
-__ZN3KJS14StringInstanceC2EPNS_8JSObjectERKNS_7UStringE
-__ZN3KJS18PostDecBracketNode8evaluateEPNS_9ExecStateE
-__ZN3KJS28dateProtoFuncGetMilliSecondsEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS18PostIncResolveNode8streamToERNS_12SourceStreamE
-__ZN3KJS13ArrayInstance14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
-__ZN3KJS14StringInstance14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
-__ZN3KJS15AssignErrorNodeD1Ev
-__ZN3WTF6VectorIcLm0EE14expandCapacityEmPKc
-__ZN3WTF6VectorIcLm0EE14expandCapacityEm
+__ZN3JSCL22numberProtoFuncToFixedEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL16integerPartNoExpEd
+__ZN3WTF14FastMallocZone10statisticsEP14_malloc_zone_tP19malloc_statistics_t
+__ZN3JSC4Heap26protectedGlobalObjectCountEv
+__ZN3JSC10JSFunction15argumentsGetterEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZNK3JSC11Interpreter17retrieveArgumentsEPNS_9ExecStateEPNS_10JSFunctionE
+__ZN3JSCL21dateProtoFuncSetMonthEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL23setNewValueFromDateArgsEPNS_9ExecStateENS_7JSValueERKNS_7ArgListEib
+__ZN3JSCL20dateProtoFuncSetDateEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3WTF6VectorIPNS0_IN3JSC10RegisterIDELm32EEELm32EE14expandCapacityEm
+__ZN3JSC8JITStubs14cti_op_pre_incEPPv
+__ZN3WTF6VectorIPN3JSC14ExpressionNodeELm16EE14expandCapacityEm
+__ZN3JSC13UnaryPlusNodeD0Ev
+__ZN3JSC3JIT19emit_op_to_jsnumberEPNS_11InstructionE
+__ZN3JSC3JIT23emitSlow_op_to_jsnumberEPNS_11InstructionERPNS_13SlowCaseEntryE
+__ZN3JSC8JITStubs18cti_op_to_jsnumberEPPv
+__ZN3JSC6JSLock12DropAllLocksC1Eb
+__ZN3JSCL17createJSLockCountEv
+__ZN3JSC6JSLock12DropAllLocksD1Ev
+__ZN3JSCL24dateProtoFuncSetFullYearEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3WTF6VectorIN3JSC15StringJumpTableELm0EE15reserveCapacityEm
+__ZN3WTF7HashMapINS_6RefPtrIN3JSC7UString3RepEEENS2_14OffsetLocationENS_7StrHashIS5_EENS_10HashTraitsIS5_EENS9_IS6_EEE3addEPS4_
+__ZN3WTF9HashTableINS_6RefPtrIN3JSC7UString3RepEEESt4pairIS5_NS2_14OffsetLocationEENS_18PairFirstExtractorIS8_EENS_7StrHashIS5_
+__ZN3JSC3JIT21emit_op_switch_stringEPNS_11InstructionE
+__ZN3JSC8JITStubs20cti_op_switch_stringEPPv
+__ZN3WTF6VectorIN3JSC14ExecutablePool10AllocationELm2EE14expandCapacityEm
+__ZN3JSC12JSGlobalData6createEb
+__ZN3JSCL13allocateBlockILNS_8HeapTypeE1EEEPNS_14CollectorBlockEv
+__ZN3JSC7JSValueC1EPNS_9ExecStateEd
+__ZN3JSC10JSFunctionC1EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEEiRKNS_10IdentifierEPFNS_7JSValueES2_PNS_8JSObjectESA_RK
+__ZN3JSC8JSObject17putDirectFunctionEPNS_9ExecStateEPNS_16InternalFunctionEj
+__ZN3JSC7CStringD1Ev
+__ZN3WTF7HashMapIPvjNS_7PtrHashIS1_EEN3JSC17JSValueHashTraitsENS_10HashTraitsIjEEE3addERKS1_RKj
+__ZN3WTF6VectorINS_6RefPtrIN3JSC12FuncExprNodeEEELm0EE14shrinkCapacityEm
+__ZN3JSC14ExpressionNodeD2Ev
+__ZThn12_N3JSC11ProgramNodeD0Ev
+__ZThn12_N3JSC12FuncExprNodeD0Ev
+__ZThn12_N3JSC16FunctionBodyNodeD0Ev
+__ZN3JSC8JITStubs16cti_op_new_arrayEPvz
+__ZN3WTF6VectorIN3JSC17StructureStubInfoELm0EE15reserveCapacityEm
+__ZN3JSC17BytecodeGenerator10emitOpcodeENS_8OpcodeIDE
+__ZN3JSC23MacroAssemblerX86Common4moveENS_3X8610RegisterIDES2_
+__ZN3JSC8JITStubs15cti_op_new_funcEPvz
+__ZN3JSC8JITStubs21cti_op_resolve_globalEPvz
+__ZN3JSC8JITStubs16cti_op_get_by_idEPvz
+__ZN3JSC8JITStubs31cti_op_construct_NotJSConstructEPvz
+__ZN3JSC8JITStubs16cti_op_put_by_idEPvz
+__ZN3JSC8JITStubs13cti_op_strcatEPvz
+__ZN3JSC8JITStubs19cti_op_resolve_funcEPvz
+__ZN3JSC8JITStubs23cti_vm_dontLazyLinkCallEPvz
+__ZN3JSC8JITStubs22cti_op_call_JSFunctionEPvz
+__ZN3JSC8JITStubs23cti_register_file_checkEPvz
+__ZN3JSC8JITStubs13cti_op_negateEPvz
+__ZN3JSC8JITStubs28cti_op_construct_JSConstructEPvz
+__ZN3JSC23MacroAssemblerX86Common12branchTest32ENS0_9ConditionENS_22AbstractMacroAssemblerINS_12X86AssemblerEE7AddressENS4_5Imm
+__ZN3JSC8JITStubs23cti_op_put_by_val_arrayEPvz
+__ZN3JSC8JITStubs23cti_op_put_by_id_secondEPvz
+__ZN3JSC15AssemblerBuffer14executableCopyEPNS_14ExecutablePoolE
+__ZN3JSC12X86Assembler8sarl_i8rEiNS_3X8610RegisterIDE
+__ZN3JSC12X86Assembler23X86InstructionFormatter9twoByteOpENS0_15TwoByteOpcodeIDEiNS_3X8610RegisterIDEi
+__ZN3JSC8JITStubs10cti_op_mulEPvz
+__ZN3JSC12jsNumberCellEPNS_12JSGlobalDataEd
+__ZN3JSC8JITStubs10cti_op_subEPvz
+__ZN3JSC8JITStubs10cti_op_divEPvz
+__ZN3JSC8JITStubs23cti_op_get_by_id_secondEPvz
+__ZN3JSC8JITStubs19cti_vm_lazyLinkCallEPvz
+__ZN3WTF6VectorIPN3JSC12CallLinkInfoELm0EE14expandCapacityEm
+__ZN3JSC8JITStubs19cti_op_convert_thisEPvz
+__ZN3JSC8JITStubs21cti_op_put_by_id_failEPvz
+__ZN3JSC8JITStubs10cti_op_addEPvz
+__ZN3JSC8JITStubs17cti_timeout_checkEPvz
+__ZN3JSC9jsBooleanEb
+__ZN3JSC9CodeBlock19isKnownNotImmediateEi
+__ZN3JSC12X86Assembler8movsd_mrEiNS_3X8610RegisterIDENS1_13XMMRegisterIDE
+__ZN3JSC8JITStubs25cti_op_call_NotJSFunctionEPvz
+__ZNK3JSC12JSNumberCell8toNumberEPNS_9ExecStateE
+__ZN3JSC8JITStubs26cti_op_get_by_id_self_failEPvz
+__ZN3JSC8JITStubs10cti_op_endEPvz
+__ZThn12_N3JSC12FuncDeclNodeD0Ev
+__ZN3JSC8JITStubs24cti_op_resolve_with_baseEPvz
+__ZN3JSC8JITStubs19cti_op_new_func_expEPvz
+__ZN3JSC8JITStubs22cti_op_push_activationEPvz
+__ZN3JSC8JITStubs17cti_op_get_by_valEPvz
+__ZN3JSC8JITStubs22cti_op_call_arityCheckEPvz
+__ZN3JSC8JITStubs11cti_op_lessEPvz
+__ZN3JSC12JSNumberCell18getPrimitiveNumberEPNS_9ExecStateERdRNS_7JSValueE
+__ZN3JSC12X86Assembler23X86InstructionFormatter9oneByteOpENS0_15OneByteOpcodeIDE
+__ZN3JSC8JITStubs27cti_op_get_by_id_proto_listEPvz
+__ZN3JSC8JITStubs12cti_op_jtrueEPvz
+__ZN3JSC8JITStubs10cti_op_modEPvz
+__ZN3JSC8JITStubs10cti_op_neqEPvz
+__ZN3JSC8JITStubs12cti_op_jlessEPvz
+__ZN3JSC8JITStubs24cti_op_get_by_id_genericEPvz
+__ZN3JSC8JITStubs14cti_op_jlesseqEPvz
+__ZN3JSC8JITStubs26cti_op_tear_off_activationEPvz
+__ZN3JSC8JITStubs21cti_op_ret_scopeChainEPvz
+__ZN3JSC8JITStubs19cti_op_to_primitiveEPvz
+__ZNK3JSC12JSNumberCell8toStringEPNS_9ExecStateE
+__ZN3JSC8JITStubs13cti_op_bitandEPvz
+__ZN3JSC8JITStubs13cti_op_lshiftEPvz
+__ZN3JSC8JITStubs13cti_op_bitnotEPvz
+__ZNK3JSC12JSNumberCell9toBooleanEPNS_9ExecStateE
+__ZN3JSC8JITStubs14cti_op_urshiftEPvz
+__ZNK3JSC12JSNumberCell18getTruncatedUInt32ERj
+__ZN3JSC4Yarr14RegexGenerator28generateCharacterClassSingleERNS1_19TermGenerationStateE
+__ZN3WTF15deleteAllValuesIPN3JSC4Yarr18PatternDisjunctionELm4EEEvRKNS_6VectorIT_XT0_EEE
+__ZN3JSC8JITStubs17cti_op_new_regexpEPvz
+__ZN3JSC8JITStubs12cti_op_bitorEPvz
+__ZNK3JSC12JSNumberCell17getTruncatedInt32ERi
+__ZN3JSC8JITStubs13cti_op_rshiftEPvz
+__ZN3JSC8JITStubs13cti_op_bitxorEPvz
+__ZN3WTF7HashSetINS_6RefPtrIN3JSC7UString3RepEEENS2_17IdentifierRepHashENS_10HashTraitsIS5_EEE3addERKS5_
+__ZN3JSC8JITStubs9cti_op_eqEPvz
+__ZN3JSC8JITStubs16cti_op_call_evalEPvz
+__ZN3JSC8JITStubs19cti_op_resolve_skipEPvz
+__ZN3JSC8JITStubs17cti_op_new_objectEPvz
+__ZN3JSC8JITStubs14cti_op_resolveEPvz
+__ZN3JSC8JITStubs17cti_op_put_by_valEPvz
+__ZN3JSC8JITStubs18cti_op_switch_charEPvz
+__ZN3JSC8JITStubs28cti_op_get_by_id_string_failEPvz
+__ZThn12_N3JSC8EvalNodeD0Ev
+__ZN3WTF6VectorIN3JSC7UStringELm16EE14expandCapacityEm
+__ZN3JSC8JITStubs17cti_op_get_pnamesEPvz
+__ZN3JSC8JITStubs17cti_op_next_pnameEPvz
+__ZN3WTF7HashSetIPN3JSC20MarkedArgumentBufferENS_7PtrHashIS3_EENS_10HashTraitsIS3_EEE3addERKS3_
+__ZN3WTF9HashTableIPN3JSC20MarkedArgumentBufferES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES9_E4findI
+__ZN3JSC8JITStubs24cti_op_get_by_val_stringEPvz
+__ZN3JSC4Yarr6ParserINS0_23RegexPatternConstructorEE28CharacterClassParserDelegate25atomBuiltInCharacterClassENS0_23BuiltInChar
+__ZN3JSC12jsNumberCellEPNS_9ExecStateEd
+__ZN3JSC8JITStubs18cti_op_is_functionEPvz
+__ZN3JSC8JITStubs16cti_op_is_objectEPvz
+__ZN3JSC8JITStubs16cti_op_nstricteqEPvz
+__ZN3JSC8JITStubs13cti_op_lesseqEPvz
+__ZNK3JSC12JSNumberCell11toPrimitiveEPNS_9ExecStateENS_22PreferredPrimitiveTypeE
+__ZN3JSC4Yarr14RegexGenerator27generateCharacterClassFixedERNS1_19TermGenerationStateE
+__ZN3JSC4Heap7destroyEv
+__ZN3JSC12JSGlobalDataD1Ev
+__ZN3JSC12JSGlobalDataD2Ev
+__ZN3JSC12RegisterFileD1Ev
+__ZNK3JSC9HashTable11deleteTableEv
+__ZN3JSC5LexerD1Ev
+__ZN3JSC5LexerD2Ev
+__ZN3WTF20deleteAllPairSecondsIP24OpaqueJSClassContextDataKNS_7HashMapIP13OpaqueJSClassS2_NS_7PtrHashIS5_EENS_10HashTraitsIS5_E
+__ZN3JSC17CommonIdentifiersD2Ev
+__ZN3JSC21deleteIdentifierTableEPNS_15IdentifierTableE
+__ZN3JSC4HeapD1Ev
+__ZN3JSC12SmallStringsD1Ev
+__ZN3JSCL16mathProtoFuncMinEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL17arrayProtoFuncPopEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC7JSArray3popEv
+__ZN3JSC11DoWhileNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC11DoWhileNodeD0Ev
+__ZN3JSC3JIT18emit_op_switch_immEPNS_11InstructionE
+__ZN3JSC8JITStubs17cti_op_switch_immEPPv
+__ZN3JSC13UnaryPlusNode14stripUnaryPlusEv
+__ZN3JSC15globalFuncIsNaNEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC17NumberConstructor11getCallDataERNS_8CallDataE
+__ZN3JSCL21callNumberConstructorEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3WTF6VectorIPNS0_IN3JSC10IdentifierELm64EEELm32EE14expandCapacityEm
+__ZN3JSC8JITStubs19cti_op_is_undefinedEPvz
+__ZN3JSC8JITStubs13cti_op_typeofEPvz
+__ZN3JSC8JITStubs33cti_op_create_arguments_no_paramsEPvz
+__ZN3JSC8JITStubs19cti_op_load_varargsEPvz
+__ZN3JSC8JITStubs10cti_op_notEPvz
+__ZN3JSC8JITStubs16cti_op_is_stringEPvz
+__ZN3JSCL24regExpConstructorDollar1EPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3WTF6VectorIN3JSC15StringJumpTableELm0EE14expandCapacityEm
+__ZN3JSC8JITStubs20cti_op_switch_stringEPvz
+__ZN3JSC9Arguments3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
+__ZN3JSC8JITStubs18cti_op_to_jsnumberEPvz
+__ZN3JSC8JITStubs19cti_op_loop_if_lessEPvz
+__ZN3JSC9LabelNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC9LabelNodeD0Ev
+__ZNK3JSC7UString5asciiEv
+__ZN3JSC8JITStubs27cti_op_get_by_id_array_failEPvz
+__ZN3JSC12X86Assembler23X86InstructionFormatter9oneByteOpENS0_15OneByteOpcodeIDEiPv
+__ZN3JSC8JITStubs23cti_op_create_argumentsEPvz
+__ZN3JSCL21arrayProtoFuncUnShiftEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC8JITStubs25cti_op_tear_off_argumentsEPvz
+__ZN3JSC7JSArray11sortNumericEPNS_9ExecStateENS_7JSValueENS_8CallTypeERKNS_8CallDataE
+__ZN3JSC7JSArray17compactForSortingEv
+__ZN3JSCL22compareNumbersForQSortEPKvS1_
+__ZN3JSC8JITStubs15cti_op_post_incEPPv
+__ZN3JSC8JITStubs24cti_op_put_by_id_genericEPvz
+__ZN3JSCL24regExpConstructorDollar2EPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSCL24regExpConstructorDollar3EPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSCL24regExpConstructorDollar4EPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSCL24regExpConstructorDollar5EPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSCL24regExpConstructorDollar6EPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSCL21stringProtoFuncSubstrEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL23stringProtoFuncFontsizeEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL24dateProtoFuncToUTCStringEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL19stringProtoFuncLinkEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL9dateParseEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC8JITStubs21cti_op_loop_if_lesseqEPPv
+__ZN3JSCL16mathProtoFuncExpEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC4Yarr17nonwordcharCreateEv
+__ZN3WTF6VectorIPN3JSC4Yarr18PatternDisjunctionELm4EE14expandCapacityEmPKS4_
+__Z15jsc_pcre_xclassiPKh
+__ZN3JSC18RegExpMatchesArray3putEPNS_9ExecStateEjNS_7JSValueE
+__ZN3JSC28globalFuncDecodeURIComponentEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC8JITStubs27cti_op_get_by_id_array_failEPPv
+__ZNK3JSC9Arguments9classInfoEv
+__ZN3JSC9Arguments15copyToRegistersEPNS_9ExecStateEPNS_8RegisterEj
+__ZN3JSC19JSStaticScopeObject4markEv
+__ZN3JSC8JITStubs19cti_op_loop_if_lessEPPv
+__ZN3JSC8JITStubs16cti_op_del_by_idEPvz
+__ZN3JSC7JSArray14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
+__ZN3JSC7UString6appendEPKti
+__ZN3JSC8JITStubs17cti_op_push_scopeEPvz
+__ZN3JSC8JITStubs19cti_op_resolve_baseEPvz
+__ZN3JSC8JITStubs16cti_op_pop_scopeEPvz
+__ZN3JSC8JITStubs17cti_op_is_booleanEPvz
+__ZN3JSCL20arrayProtoFuncSpliceEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC8JITStubs17cti_op_jmp_scopesEPvz
+__ZN3JSC8JITStubs9cti_op_inEPvz
+__ZN3JSC8JITStubs15cti_op_stricteqEPvz
+__ZN3JSC8JITStubs32cti_op_get_by_id_proto_list_fullEPvz
+__ZN3WTF6VectorIiLm8EE14expandCapacityEm
+__ZN3JSCL21stringProtoFuncSearchEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC8JITStubs12cti_vm_throwEPvz
+__ZN3JSC8JITStubs21cti_op_push_new_scopeEPvz
+__ZN3JSC8JITStubs16cti_op_is_numberEPvz
+__ZN3JSC16JSVariableObject16getPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayE
+__ZNK3JSC8JSString8toObjectEPNS_9ExecStateE
+__ZN3JSC12StringObject16getPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayE
+__ZN3JSC9ExecState11stringTableEPS0_
+__ZN3JSC11JSImmediate8toObjectENS_7JSValueEPNS_9ExecStateE
+__ZN3JSC36constructBooleanFromImmediateBooleanEPNS_9ExecStateENS_7JSValueE
+__ZN3JSC13BooleanObjectD1Ev
+__ZN3JSCL17arrayProtoFuncMapEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC7JSArrayC2EN3WTF10PassRefPtrINS_9StructureEEEj
+__ZN3JSC8JITStubs17cti_op_del_by_valEPvz
+__ZN3JSC8JITStubs27cti_op_get_by_id_proto_failEPvz
+__ZN3JSC10JSFunction12callerGetterEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZNK3JSC11Interpreter14retrieveCallerEPNS_9ExecStateEPNS_16InternalFunctionE
+__ZN3JSC18globalFuncIsFiniteEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC6JSCell18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
+__ZNK3JSC12JSNumberCell8toObjectEPNS_9ExecStateE
+__ZN3JSC15constructNumberEPNS_9ExecStateENS_7JSValueE
+__ZN3JSC12NumberObject11getJSNumberEv
+__ZN3JSCL7dateNowEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC12NumberObjectD1Ev
+__ZN3JSC8JSObject18getPrimitiveNumberEPNS_9ExecStateERdRNS_7JSValueE
+__ZN3JSCL22numberProtoFuncValueOfEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC13JSNotAnObject18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
+__ZN3JSC19JSStaticScopeObject18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
+__ZN3JSC16InternalFunction4nameEPNS_12JSGlobalDataE
+__ZN3JSCL18arrayProtoFuncSomeEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC8JSString18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
+__ZN3JSC12JSNumberCell11getJSNumberEv
+__ZN3JSC23createNotAFunctionErrorEPNS_9ExecStateENS_7JSValueEjPNS_9CodeBlockE
+__ZN3JSC17PrefixBracketNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC17PrefixBracketNodeD0Ev
+__ZN3JSC17RegExpConstructor11getCallDataERNS_8CallDataE
+__ZN3JSCL21callRegExpConstructorEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC7JSArray4sortEPNS_9ExecStateE
+__ZN3JSCL27dateProtoFuncSetUTCFullYearEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL24dateProtoFuncSetUTCHoursEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL23setNewValueFromTimeArgsEPNS_9ExecStateENS_7JSValueERKNS_7ArgListEib
+__ZN3JSC8JITStubs17cti_op_switch_immEPvz
+__ZN3JSC12RegExpObject3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
+__ZN3JSCL24setRegExpObjectLastIndexEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueE
+__ZN3JSCL28regExpConstructorLeftContextEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSC18RegExpMatchesArray14deletePropertyEPNS_9ExecStateEj
+__ZN3JSC18RegExpMatchesArray3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
+__ZN3JSC10JSFunction12lengthGetterEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZNK3JSC12NumberObject9classInfoEv
+__ZN3JSC8JITStubs12cti_op_throwEPvz
+__ZN3JSCL19isNonASCIIIdentPartEi
+__ZN3JSCL27dateProtoFuncToLocaleStringEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL16formatLocaleDateEPNS_9ExecStateEPNS_12DateInstanceEdNS_20LocaleDateTimeFormatERKNS_7ArgListE
+__ZN3JSCL21dateProtoFuncSetHoursEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL23dateProtoFuncSetMinutesEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL23dateProtoFuncSetSecondsEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL28dateProtoFuncSetMilliSecondsEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC12JSNumberCell12toThisObjectEPNS_9ExecStateE
+__ZN3JSC16ErrorConstructor11getCallDataERNS_8CallDataE
+__ZN3JSCL20callErrorConstructorEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC17PrototypeFunctionC1EPNS_9ExecStateEiRKNS_10IdentifierEPFNS_7JSValueES2_PNS_8JSObjectES6_RKNS_7ArgListEE
+__ZN3JSC17PrototypeFunctionC2EPNS_9ExecStateEiRKNS_10IdentifierEPFNS_7JSValueES2_PNS_8JSObjectES6_RKNS_7ArgListEE
+__ZN3JSC17PrototypeFunction11getCallDataERNS_8CallDataE
+__ZN3JSC17PrototypeFunctionD1Ev
+__ZN3JSCL24booleanProtoFuncToStringEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC17BytecodeGenerator18emitJumpSubroutineEPNS_10RegisterIDEPNS_5LabelE
+__ZN3JSC3JIT11emit_op_jsrEPNS_11InstructionE
+__ZN3WTF6VectorIN3JSC3JIT7JSRInfoELm0EE14expandCapacityEm
+__ZN3JSC3JIT12emit_op_sretEPNS_11InstructionE
+__ZN3JSC6Parser7reparseINS_8EvalNodeEEEN3WTF10PassRefPtrIT_EEPNS_12JSGlobalDataEPS5_
+__ZN3JSC8EvalNode6createEPNS_12JSGlobalDataEPNS_14SourceElementsEPN3WTF6VectorISt4pairINS_10IdentifierEjELm0EEEPNS6_IPNS_12Func
+__ZN3JSC8EvalNode31bytecodeForExceptionInfoReparseEPNS_14ScopeChainNodeEPNS_9CodeBlockE
+__ZN3JSC20FixedVMPoolAllocator17coalesceFreeSpaceEv
+__ZN3WTF6VectorIPN3JSC13FreeListEntryELm0EE15reserveCapacityEm
+__ZN3JSCL35reverseSortFreeListEntriesByPointerEPKvS1_
+__ZN3JSC14globalFuncEvalEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL21functionProtoFuncCallEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL22functionProtoFuncApplyEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC9Arguments11fillArgListEPNS_9ExecStateERNS_20MarkedArgumentBufferE
+__ZNK3JSC7JSValue12toThisObjectEPNS_9ExecStateE
+__ZN3JSC8VoidNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC8VoidNodeD0Ev
+__ZN3JSC16InternalFunctionC2EPNS_12JSGlobalDataEN3WTF10PassRefPtrINS_9StructureEEERKNS_10IdentifierE
+__ZN3JSC20MarkedArgumentBuffer9markListsERN3WTF7HashSetIPS0_NS1_7PtrHashIS3_EENS1_10HashTraitsIS3_EEEE
+__ZN3JSC7CStringaSERKS0_
+__ZNK3JSC19JSStaticScopeObject14isDynamicScopeEv
+__ZN3JSCL33reverseSortCommonSizedAllocationsEPKvS1_
+__ZN3JSCL20arrayProtoFuncFilterEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC17NumberConstructor16getConstructDataERNS_13ConstructDataE
+__ZN3JSCL30constructWithNumberConstructorEPNS_9ExecStateEPNS_8JSObjectERKNS_7ArgListE
+__ZN3JSC17BytecodeGenerator18emitUnexpectedLoadEPNS_10RegisterIDEb
+__ZN3JSC8JITStubs12cti_op_throwEPPv
+__ZN3JSC6JSCell9getObjectEv
+__ZN3JSCL21arrayProtoFuncReverseEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC8JSObject16isVariableObjectEv
+__ZN3JSC18EmptyStatementNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSCL27compareByStringPairForQSortEPKvS1_
+__Z22jsc_pcre_ucp_othercasej
+__ZN3JSCL35objectProtoFuncPropertyIsEnumerableEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC8JSObject21getPropertyAttributesEPNS_9ExecStateERKNS_10IdentifierERj
+__ZN3WTF7HashMapIjN3JSC7JSValueENS_7IntHashIjEENS_10HashTraitsIjEENS5_IS2_EEE3setERKjRKS2_
+__ZN3WTF9HashTableIjSt4pairIjN3JSC7JSValueEENS_18PairFirstExtractorIS4_EENS_7IntHashIjEENS_14PairHashTraitsINS_10HashTraitsIjEE
+__ZN3JSC12RegisterFile21releaseExcessCapacityEv
+__ZN3JSCL20isNonASCIIIdentStartEi
+__ZN3JSC17BytecodeGenerator14emitPutByIndexEPNS_10RegisterIDEjS2_
+__ZN3JSC3JIT20emit_op_put_by_indexEPNS_11InstructionE
+__ZN3JSC8JITStubs19cti_op_put_by_indexEPPv
+__ZN3JSCL25numberConstructorMaxValueEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSCL28numberConstructorPosInfinityEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSCL28numberConstructorNegInfinityEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSC18BooleanConstructor11getCallDataERNS_8CallDataE
+__ZN3JSCL22callBooleanConstructorEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL17mathProtoFuncATanEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC8JITStubs17cti_op_jmp_scopesEPPv
+__ZNK3JSC8JSObject11hasPropertyEPNS_9ExecStateEj
+__ZN3JSCL17mathProtoFuncASinEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC11Interpreter7executeEPNS_8EvalNodeEPNS_9ExecStateEPNS_8JSObjectEPNS_14ScopeChainNodeEPNS_7JSValueE
_JSContextGetGlobalObject
+__ZN3JSC4Heap14registerThreadEv
+__ZN3JSC6JSLockC1EPNS_9ExecStateE
+_JSStringCreateWithUTF8CString
+__ZN3WTF7Unicode18convertUTF8ToUTF16EPPKcS2_PPtS4_b
_JSClassCreate
__ZN13OpaqueJSClass6createEPK17JSClassDefinition
__ZN13OpaqueJSClassC2EPK17JSClassDefinitionPS_
+__ZN3JSC7UString3Rep14createFromUTF8EPKc
+__ZN3WTF7HashMapINS_6RefPtrIN3JSC7UString3RepEEEP19StaticFunctionEntryNS_7StrHashIS5_EENS_10HashTraitsIS5_EENSA_IS7_EEE3addERKS
+__ZN3WTF9HashTableINS_6RefPtrIN3JSC7UString3RepEEESt4pairIS5_P19StaticFunctionEntryENS_18PairFirstExtractorIS9_EENS_7StrHashIS5
+__ZN3WTF7HashMapINS_6RefPtrIN3JSC7UString3RepEEEP16StaticValueEntryNS_7StrHashIS5_EENS_10HashTraitsIS5_EENSA_IS7_EEE3addERKS5_R
_JSClassRetain
_JSObjectMake
-__ZN13OpaqueJSClass9prototypeEPK15OpaqueJSContext
-__ZN3KJS16JSCallbackObjectINS_8JSObjectEE4initEPNS_9ExecStateE
-_JSStringCreateWithUTF8CString
+__ZN3JSC16JSCallbackObjectINS_8JSObjectEE4initEPNS_9ExecStateE
+__ZN13OpaqueJSClass9prototypeEPN3JSC9ExecStateE
+__ZN13OpaqueJSClass11contextDataEPN3JSC9ExecStateE
+__ZN3WTF9HashTableIP13OpaqueJSClassSt4pairIS2_P24OpaqueJSClassContextDataENS_18PairFirstExtractorIS6_EENS_7PtrHashIS2_EENS_14Pa
+__ZN24OpaqueJSClassContextDataC2EP13OpaqueJSClass
+__ZN3JSC7UString3Rep13createCopyingEPKti
_JSObjectSetProperty
+__ZNK14OpaqueJSString10identifierEPN3JSC12JSGlobalDataE
+__ZN3JSC14JSGlobalObject17putWithAttributesEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueEj
_JSStringRelease
-__Z30makeGetterOrSetterPropertyNodeRKN3KJS10IdentifierES2_PNS_13ParameterNodeEPNS_16FunctionBodyNodeE
-__ZN3KJS8JSObject12defineGetterEPNS_9ExecStateERKNS_10IdentifierEPS0_
-__ZN3KJS8JSObject12defineSetterEPNS_9ExecStateERKNS_10IdentifierEPS0_
-__ZNK3KJS15GetterSetterImp4typeEv
-__ZNK3KJS8JSObject6canPutEPNS_9ExecStateERKNS_10IdentifierE
-__ZN3KJS13ConstDeclNodeC1ERKNS_10IdentifierEPNS_14ExpressionNodeE
-__Z26appendToVarDeclarationListRPN3KJS20ParserRefCountedDataIN3WTF6VectorISt4pairINS_10IdentifierEjELm16EEEEEPNS_13ConstDeclNodeE
-__ZN3KJS18ConstStatementNodeC1EPNS_13ConstDeclNodeE
-__ZN3KJS16JSCallbackObjectINS_8JSObjectEE18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
-__ZN3KJS16JSCallbackObjectINS_8JSObjectEE20staticFunctionGetterEPNS_9ExecStateEPS1_RKNS_10IdentifierERKNS_12PropertySlotE
-__ZN3KJS18JSCallbackFunctionC1EPNS_9ExecStateEPFPK13OpaqueJSValuePK15OpaqueJSContextPS3_S9_mPKS5_PS5_ERKNS_10IdentifierE
-__ZN3KJS18JSCallbackFunction14callAsFunctionEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
+__ZN3JSC16JSCallbackObjectINS_8JSObjectEE18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
+__ZN3JSC16JSCallbackObjectINS_8JSObjectEE20staticFunctionGetterEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSC18JSCallbackFunctionC1EPNS_9ExecStateEPFPK13OpaqueJSValuePK15OpaqueJSContextPS3_S9_mPKS5_PS5_ERKNS_10IdentifierE
+__ZN3JSC18JSCallbackFunction11getCallDataERNS_8CallDataE
+__ZN3JSC18JSCallbackFunction4callEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC6JSLock12DropAllLocksC1EPNS_9ExecStateE
_JSObjectGetPrivate
-__ZNK3KJS16JSCallbackObjectINS_8JSObjectEE9classInfoEv
+__ZNK3JSC16JSCallbackObjectINS_8JSObjectEE9classInfoEv
+_JSValueMakeUndefined
+__ZN3JSC16JSCallbackObjectINS_8JSObjectEE17staticValueGetterEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN14OpaqueJSString6createERKN3JSC7UStringE
_JSStringCreateWithCharacters
_JSValueMakeString
-__ZN3KJS12PropertySlot14functionGetterEPNS_9ExecStateEPNS_8JSObjectERKNS_10IdentifierERKS0_
-__ZN3WTF10fastCallocEmm
+__ZNK14OpaqueJSString7ustringEv
+__ZN3JSC7UStringC1EPtib
+__ZN3JSC16JSCallbackObjectINS_8JSObjectEED1Ev
+_JSClassRelease
+__ZL25clearReferenceToPrototypeP13OpaqueJSValue
_JSObjectGetProperty
_JSValueToObject
-_JSValueProtect
-_JSObjectCallAsFunction
-_JSValueMakeNumber
+__ZN3JSCL22dateProtoFuncGetUTCDayEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL24dateProtoFuncGetUTCMonthEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL23dateProtoFuncGetUTCDateEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL27dateProtoFuncGetUTCFullYearEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC7UString8toUInt32EPb
+__ZN3JSCL24dateProtoFuncGetUTCHoursEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL26dateProtoFuncGetUTCMinutesEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL26dateProtoFuncGetUTCSecondsEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL7dateUTCEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC12RegExpObject11getCallDataERNS_8CallDataE
+__ZN3JSC9Arguments14deletePropertyEPNS_9ExecStateEj
_JSValueMakeBoolean
-_JSObjectCallAsConstructor
-__ZN3KJS15GetterSetterImp4markEv
-_JSValueMakeUndefined
-_JSValueUnprotect
-_JSValueIsNumber
_JSValueToNumber
-__ZN3KJS16JSCallbackObjectINS_8JSObjectEED0Ev
-__Z25clearReferenceToPrototypeP13OpaqueJSValue
-_JSClassRelease
-_JSStringIsEqualToUTF8CString
-_JSStringIsEqual
-__ZN3KJSeqERKNS_7UStringES2_
-__ZN3KJS16JSCallbackObjectINS_8JSObjectEE14callbackGetterEPNS_9ExecStateEPS1_RKNS_10IdentifierERKNS_12PropertySlotE
_JSStringCreateWithCFString
-__ZN3KJS7UStringC2EPNS_5UCharEib
-__ZN3KJS16JSCallbackObjectINS_8JSObjectEE3putEPNS_9ExecStateERKNS_10IdentifierEPNS_7JSValueEi
+__ZN3WTF13tryFastCallocEmm
+_JSValueMakeNumber
+__ZN3JSC18JSCallbackFunctionD1Ev
+_JSValueToStringCopy
+_JSStringCopyCFString
+__ZN3JSC18ConstStatementNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC13ConstDeclNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC13ConstDeclNode14emitCodeSingleERNS_17BytecodeGeneratorE
+__ZN3JSC13ConstDeclNodeD0Ev
+__ZN3JSC18ConstStatementNodeD0Ev
+__ZN3JSC18BooleanConstructor16getConstructDataERNS_13ConstructDataE
+__ZN3JSCL31constructWithBooleanConstructorEPNS_9ExecStateEPNS_8JSObjectERKNS_7ArgListE
+__ZN3JSC16constructBooleanEPNS_9ExecStateERKNS_7ArgListE
+__ZN3JSCL31dateProtoFuncGetUTCMillisecondsEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL28dateProtoFuncGetMilliSecondsEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL31dateProtoFuncToLocaleTimeStringEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL21regExpObjectLastIndexEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSC21DebuggerStatementNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC21DebuggerStatementNodeD0Ev
+__ZN3JSC4Yarr12RegexPattern21newlineCharacterClassEv
+__ZN3JSC17ObjectConstructor11getCallDataERNS_8CallDataE
+__ZN3JSCL23dateProtoFuncSetUTCDateEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL26stringFromCharCodeSlowCaseEPNS_9ExecStateERKNS_7ArgListE
+__ZN3JSCL21callObjectConstructorEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL27objectProtoFuncDefineGetterEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC8JSObject12defineGetterEPNS_9ExecStateERKNS_10IdentifierEPS0_
+__ZN3JSC12GetterSetter4markEv
+__ZN3JSC12GetterSetterD1Ev
+__ZN3JSCL22regExpProtoFuncCompileEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC17NumberConstructor9classInfoEv
+__ZNK3JSC17RegExpConstructor9classInfoEv
+__ZN3JSCL31dateProtoFuncToLocaleDateStringEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC8JSObject14isGlobalObjectEv
+_JSValueToBoolean
+__ZN3JSC8JITStubs13cti_op_lshiftEPPv
+__ZN3JSC8JITStubs13cti_op_bitnotEPPv
+__ZN3JSC6JSCell3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
+__ZN3JSC19FunctionConstructor11getCallDataERNS_8CallDataE
+__ZN3WTF9ByteArray6createEm
+__ZNK3JSC6JSCell9getStringERNS_7UStringE
+__ZN3JSC3JIT12emit_op_loopEPNS_11InstructionE
+__ZN3JSC10throwErrorEPNS_9ExecStateENS_9ErrorTypeE
+__ZN3JSC11JSByteArrayC1EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEEPNS3_9ByteArrayEPKNS_9ClassInfoE
+__ZN3JSC11JSByteArrayC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEEPNS3_9ByteArrayEPKNS_9ClassInfoE
+__ZN3JSC11JSByteArray18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
+__ZN3JSC11JSByteArray3putEPNS_9ExecStateEjNS_7JSValueE
+__ZN3JSC11JSByteArray3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
+__ZN3JSC11JSByteArray18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE
+__ZN3JSC8JITStubs28cti_op_get_by_val_byte_arrayEPPv
+__ZN3JSC8JITStubs28cti_op_put_by_val_byte_arrayEPPv
+__ZL30makeGetterOrSetterPropertyNodePvRKN3JSC10IdentifierES3_PNS0_13ParameterNodeEPNS0_16FunctionBodyNodeERKNS0_10SourceCodeE
+__ZN3JSC17BytecodeGenerator13emitPutGetterEPNS_10RegisterIDERKNS_10IdentifierES2_
+__ZN3JSC17BytecodeGenerator13emitPutSetterEPNS_10RegisterIDERKNS_10IdentifierES2_
+__ZN3JSC3JIT18emit_op_put_getterEPNS_11InstructionE
+__ZN3JSC3JIT18emit_op_put_setterEPNS_11InstructionE
+__ZN3JSC8JITStubs17cti_op_put_getterEPPv
+__ZN3JSC8JITStubs17cti_op_put_setterEPPv
+__ZN3JSC8JSObject12defineSetterEPNS_9ExecStateERKNS_10IdentifierEPS0_
+__ZNK3JSC12GetterSetter14isGetterSetterEv
+__ZNK3JSC6JSCell14isGetterSetterEv
+__ZN3JSCL29regExpConstructorRightContextEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSC5Lexer19copyCodeWithoutBOMsEv
+__ZN3JSC13JSNotAnObject3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
+__ZN3JSC6JSCell16getConstructDataERNS_13ConstructDataE
+__ZN3JSC26createNotAConstructorErrorEPNS_9ExecStateENS_7JSValueEjPNS_9CodeBlockE
+__ZN3JSC15isStrWhiteSpaceEt
+__ZN3JSC10throwErrorEPNS_9ExecStateENS_9ErrorTypeEPKc
+__ZNK3JSC22NativeErrorConstructor9classInfoEv
+__ZNK3JSC16JSCallbackObjectINS_8JSObjectEE9classNameEv
+__ZN3JSC4Heap11objectCountEv
+__ZNK3JSC12SmallStrings5countEv
+__ZN3JSC14JSGlobalObject12defineGetterEPNS_9ExecStateERKNS_10IdentifierEPNS_8JSObjectE
+__ZN3JSCL27objectProtoFuncLookupGetterEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC8JSObject12lookupGetterEPNS_9ExecStateERKNS_10IdentifierE
+__ZN3JSCL27objectProtoFuncDefineSetterEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC14JSGlobalObject12defineSetterEPNS_9ExecStateERKNS_10IdentifierEPNS_8JSObjectE
+__ZN3JSC9Structure22getterSetterTransitionEPS0_
+__ZN3JSC8JSObject22fillGetterPropertySlotERNS_12PropertySlotEPNS_7JSValueE
+__ZN3JSC12PropertySlot14functionGetterEPNS_9ExecStateERKNS_10IdentifierERKS0_
+__ZN3JSCL28objectProtoFuncIsPrototypeOfEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC12StringObjectC2EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEERKNS_7UStringE
+__ZNK3JSC7UString6is8BitEv
+__ZN3JSC8JSObject15unwrappedObjectEv
+__ZN3JSC22NativeErrorConstructor11getCallDataERNS_8CallDataE
+__ZN3JSC16JSCallbackObjectINS_8JSObjectEE11getCallDataERNS_8CallDataE
+__ZN3JSC17BytecodeGenerator21emitComplexJumpScopesEPNS_5LabelEPNS_18ControlFlowContextES4_
+__ZN3JSC23ThrowableExpressionData14emitThrowErrorERNS_17BytecodeGeneratorENS_9ErrorTypeEPKc
+__ZN3JSC17BytecodeGenerator12emitNewErrorEPNS_10RegisterIDENS_9ErrorTypeENS_7JSValueE
+__ZN3JSC3JIT17emit_op_new_errorEPNS_11InstructionE
+__ZN3JSC23MacroAssemblerX86Common8branch16ENS0_9ConditionENS_22AbstractMacroAssemblerINS_12X86AssemblerEE9BaseIndexENS4_5Imm32E
+_JSStringRetain
+__ZN3JSCL19arrayProtoFuncEveryEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL20arrayProtoFuncReduceEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL25arrayProtoFuncReduceRightEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL28arrayProtoFuncToLocaleStringEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL25arrayProtoFuncLastIndexOfEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC15AssignErrorNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC8JITStubs16cti_op_new_errorEPPv
+__ZN3JSC15AssignErrorNodeD0Ev
+__ZN3JSC17BytecodeGenerator18emitUnexpectedLoadEPNS_10RegisterIDEd
+__ZN3JSC19JSStaticScopeObject3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
+__ZN3JSC9ExecState9dateTableEPS0_
+__ZNK3JSC15RegExpPrototype9classInfoEv
+__ZN3JSC12StringObject14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
+__ZN3JSCL25dateProtoFuncToDateStringEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL25dateProtoFuncToTimeStringEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL25numberConstructorNaNValueEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSCL31dateProtoFuncSetUTCMillisecondsEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL26dateProtoFuncSetUTCSecondsEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL26dateProtoFuncSetUTCMinutesEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL24dateProtoFuncSetUTCMonthEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL23throwStackOverflowErrorEPNS_9ExecStateEPNS_12JSGlobalDataEPvRS4_
+__ZN3JSC24createStackOverflowErrorEPNS_9ExecStateE
+__ZN3JSC15DeleteValueNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC15DeleteValueNodeD0Ev
+__ZN3JSC16PostfixErrorNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC15PrefixErrorNode12emitBytecodeERNS_17BytecodeGeneratorEPNS_10RegisterIDE
+__ZN3JSC16PostfixErrorNodeD0Ev
+__ZN3JSC15PrefixErrorNodeD0Ev
+__ZN3JSC23createInvalidParamErrorEPNS_9ExecStateEPKcNS_7JSValueEjPNS_9CodeBlockE
+__ZNK3JSC15DotAccessorNode17isDotAccessorNodeEv
+__ZNK3JSC14ExpressionNode17isDotAccessorNodeEv
+__ZN3JSC13JSNotAnObject3putEPNS_9ExecStateEjNS_7JSValueE
+__ZN3JSC4Heap24setGCProtectNeedsLockingEv
+__ZN3JSCL23callFunctionConstructorEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZNK3JSC16JSCallbackObjectINS_8JSObjectEE8toStringEPNS_9ExecStateE
+__ZN3JSC8JITStubs17cti_op_instanceofEPPv
+__ZN3JSC17BytecodeGenerator35emitThrowExpressionTooDeepExceptionEv
+__ZN3JSCL25numberConstructorMinValueEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSCL17mathProtoFuncACosEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL18mathProtoFuncATan2EPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL16mathProtoFuncTanEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL28numberProtoFuncToExponentialEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL26numberProtoFuncToPrecisionEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL12charSequenceEci
+__ZN3JSCL29objectProtoFuncToLocaleStringEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC6JSCell14toThisJSStringEPNS_9ExecStateE
+__ZNK3JSC6JSCell12toThisStringEPNS_9ExecStateE
+__ZN3JSCL27objectProtoFuncLookupSetterEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC8JSObject12lookupSetterEPNS_9ExecStateERKNS_10IdentifierE
+__ZNK3JSC16JSVariableObject21getPropertyAttributesEPNS_9ExecStateERKNS_10IdentifierERj
+__ZN3JSC9ExecState22regExpConstructorTableEPS0_
+__ZN3JSCL24regExpConstructorDollar7EPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSCL24regExpConstructorDollar8EPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSCL24regExpConstructorDollar9EPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSCL22regExpConstructorInputEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSCL25setRegExpConstructorInputEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueE
+__ZN3JSCL26regExpConstructorLastMatchEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSCL26regExpConstructorLastParenEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSCL26regExpConstructorMultilineEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSCL29setRegExpConstructorMultilineEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueE
+__ZN3JSC4Yarr15nondigitsCreateEv
+__ZNK3JSC19JSStaticScopeObject12toThisObjectEPNS_9ExecStateE
+__ZN3JSC12JSActivation18getArgumentsGetterEv
+__ZN3JSC12JSActivation15argumentsGetterEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
+__ZN3JSCL23booleanProtoFuncValueOfEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSCL28stringProtoFuncLocaleCompareEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3WTF8Collator11userDefaultEv
+__ZNK3WTF8Collator7collateEPKtmS2_m
+__ZNK3WTF8Collator14createCollatorEv
+__ZN3WTF8CollatorD1Ev
+__ZN3WTF8Collator15releaseCollatorEv
+__ZNK3JSC10MathObject9classInfoEv
+__ZN3JSC9ExecState9mathTableEPS0_
+__ZN3WTF6VectorIN3JSC20FunctionRegisterInfoELm0EE14expandCapacityEm
+__ZN3JSC3JIT25emit_op_profile_will_callEPNS_11InstructionE
+__ZN3JSC3JIT24emit_op_profile_did_callEPNS_11InstructionE
+__ZN3JSC8Profiler8profilerEv
+__ZN3JSC8Profiler14startProfilingEPNS_9ExecStateERKNS_7UStringE
+__ZN3JSC16ProfileGenerator6createERKNS_7UStringEPNS_9ExecStateEj
+__ZN3JSC16ProfileGeneratorC2ERKNS_7UStringEPNS_9ExecStateEj
+__ZN3JSC7Profile6createERKNS_7UStringEj
+__ZN3JSC7ProfileC2ERKNS_7UStringEj
+__ZN3JSC11ProfileNodeC1ERKNS_14CallIdentifierEPS0_S4_
+__ZN3JSC33getCurrentUTCTimeWithMicrosecondsEv
+__ZN3JSC16ProfileGenerator24addParentForConsoleStartEPNS_9ExecStateE
+__ZN3JSC8Profiler20createCallIdentifierEPNS_12JSGlobalDataENS_7JSValueERKNS_7UStringEi
+__ZN3JSC16InternalFunction21calculatedDisplayNameEPNS_12JSGlobalDataE
+__ZN3JSC11ProfileNode10insertNodeEN3WTF10PassRefPtrIS0_EE
+__ZN3WTF6VectorINS_6RefPtrIN3JSC11ProfileNodeEEELm0EE14expandCapacityEm
+__ZN3WTF6VectorINS_6RefPtrIN3JSC16ProfileGeneratorEEELm0EE14expandCapacityEm
+__ZN3JSC8JITStubs23cti_op_profile_did_callEPPv
+__ZN3JSC8Profiler10didExecuteEPNS_9ExecStateENS_7JSValueE
+__ZN3JSC16ProfileGenerator10didExecuteERKNS_14CallIdentifierE
+__ZN3JSC11ProfileNode10didExecuteEv
+__ZN3JSC8JITStubs24cti_op_profile_will_callEPPv
+__ZN3JSC8Profiler11willExecuteEPNS_9ExecStateENS_7JSValueE
+__ZN3JSC16ProfileGenerator11willExecuteERKNS_14CallIdentifierE
+__ZN3JSC11ProfileNode11willExecuteERKNS_14CallIdentifierE
+__ZN3JSC8Profiler13stopProfilingEPNS_9ExecStateERKNS_7UStringE
+__ZN3JSC16ProfileGenerator13stopProfilingEv
+__ZN3JSC7Profile7forEachEMNS_11ProfileNodeEFvvE
+__ZNK3JSC11ProfileNode25traverseNextNodePostOrderEv
+__ZN3JSC11ProfileNode13stopProfilingEv
+__ZN3JSCeqERKNS_7UStringEPKc
+__ZN3JSC11ProfileNode11removeChildEPS0_
+__ZN3JSC11ProfileNode8addChildEN3WTF10PassRefPtrIS0_EE
+_JSValueIsObjectOfClass
+_JSObjectCallAsConstructor
+__ZN3JSC9constructEPNS_9ExecStateENS_7JSValueENS_13ConstructTypeERKNS_13ConstructDataERKNS_7ArgListE
+_JSObjectCallAsFunction
+__ZN3JSC4Heap14primaryHeapEndEv
+__ZN3JSC4Heap16primaryHeapBeginEv
+__ZNK3JSC18JSCallbackFunction9classInfoEv
+__ZN3JSC8Profiler11willExecuteEPNS_9ExecStateERKNS_7UStringEi
+__ZN3JSC8Profiler10didExecuteEPNS_9ExecStateERKNS_7UStringEi
+__ZNK3JSC16ProfileGenerator5titleEv
+__ZN3JSC7ProfileD0Ev
+__ZN3WTF10RefCountedIN3JSC11ProfileNodeEE5derefEv
+__ZN3JSC4Yarr14RegexGenerator33generatePatternCharacterNonGreedyERNS1_19TermGenerationStateE
+__ZN3JSC35createInterruptedExecutionExceptionEPNS_12JSGlobalDataE
+__ZNK3JSC25InterruptedExecutionError19isWatchdogExceptionEv
+__ZN3JSC25InterruptedExecutionErrorD1Ev
+__ZN3JSC12JSGlobalData10ClientDataD2Ev
+__ZN3JSC18RegExpMatchesArray16getPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayE
+__ZN3WTF8CollatorC1EPKc
+__ZN3WTF8Collator18setOrderLowerFirstEb
+__ZN3WTF12randomNumberEv
+__ZN3JSC16JSCallbackObjectINS_8JSObjectEE3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE
+__ZNK3JSC6JSCell9getStringEv
+__ZNK3JSC12DateInstance7getTimeERdRi
+__ZN3JSC10throwErrorEPNS_9ExecStateENS_9ErrorTypeERKNS_7UStringE
+_JSGlobalContextCreate
+_JSGlobalContextCreateInGroup
+__ZN3JSC4Heap29makeUsableFromMultipleThreadsEv
+_JSGlobalContextRetain
+__ZN3JSC6JSLock6unlockEb
+_JSEvaluateScript
+__ZNK3JSC14JSGlobalObject17supportsProfilingEv
+_JSGlobalContextRelease
+__ZN3JSC14JSGlobalObjectD1Ev
+__ZN3JSC14JSGlobalObject18JSGlobalObjectDataD0Ev
+__ZN3JSC17FunctionPrototype11getCallDataERNS_8CallDataE
+__ZN3JSC15DateConstructor11getCallDataERNS_8CallDataE
+__ZN3JSCL8callDateEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE
+__ZN3JSC13JSNotAnObject4markEv
+_JSObjectIsFunction
+__ZN3JSC4Heap17globalObjectCountEv
+__ZN3JSC4Heap20protectedObjectCountEv
+__ZN3JSC4Heap25protectedObjectTypeCountsEv
+__ZN3WTF9HashTableIPKcSt4pairIS2_jENS_18PairFirstExtractorIS4_EENS_7PtrHashIS2_EENS_14PairHashTraitsINS_10HashTraitsIS2_EENSA_I
+__ZN3WTF20fastMallocStatisticsEv
+__ZNK3JSC4Heap10statisticsEv
+__ZN3WTF27releaseFastMallocFreeMemoryEv
+__ZN3JSC10JSFunction16getConstructDataERNS_13ConstructDataE
+__ZN3JSC10JSFunction9constructEPNS_9ExecStateERKNS_7ArgListE
+__ZN3JSC8Debugger6attachEPNS_14JSGlobalObjectE
+__ZN3WTF7HashSetIPN3JSC14JSGlobalObjectENS_7PtrHashIS3_EENS_10HashTraitsIS3_EEE3addERKS3_
+__ZN3WTF9HashTableIPN3JSC14JSGlobalObjectES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES9_E6rehashEi
+__ZN3JSC3JIT13emit_op_debugEPNS_11InstructionE
+__ZN3JSC8JITStubs12cti_op_debugEPPv
+__ZN3JSC11Interpreter5debugEPNS_9ExecStateENS_11DebugHookIDEii
+__ZN3JSC8Debugger6detachEPNS_14JSGlobalObjectE
+__ZN3JSC9CodeBlock33functionRegisterForBytecodeOffsetEjRi
+_JSStringIsEqualToUTF8CString
+__ZN3JSC16JSCallbackObjectINS_8JSObjectEE14callbackGetterEPNS_9ExecStateERKNS_10IdentifierERKNS_12PropertySlotE
_JSObjectSetPrivate
-__ZN3KJS15GetterSetterImpD0Ev
-__ZN3KJS27objectProtoFuncLookupGetterEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS17PreIncResolveNode10precedenceEv
-__ZNK3KJS10SwitchNode8streamToERNS_12SourceStreamE
-__ZNK3KJS13CaseBlockNode8streamToERNS_12SourceStreamE
-__ZNK3KJS14CaseClauseNode8streamToERNS_12SourceStreamE
-__ZN3KJS18ConstStatementNodeD1Ev
-__ZN3KJS17PreDecBracketNodeD1Ev
-__ZN3KJS11Interpreter24setShouldPrintExceptionsEb
-__ZN3KJS9Collector26protectedGlobalObjectCountEv
-__ZN3KJS9Collector4sizeEv
-__ZN3KJS9Collector17globalObjectCountEv
-__ZN3KJS9Collector20protectedObjectCountEv
-__ZN3KJS9Collector25protectedObjectTypeCountsEv
-__ZNK3KJS15NumberObjectImp9classInfoEv
-__ZNK3KJS15RegExpPrototype9classInfoEv
-__ZNK3KJS15RegExpObjectImp9classInfoEv
-__ZNK3KJS14NativeErrorImp9classInfoEv
-__ZNK3KJS13MathObjectImp9classInfoEv
-__ZN3WTF6VectorIPN3KJS7JSValueELm8EE14expandCapacityEmPKS3_
-__ZN3WTF6VectorIPN3KJS7JSValueELm8EE14expandCapacityEm
-__ZN3KJS15ConditionalNode15evaluateToInt32EPNS_9ExecStateE
-__ZN3KJS9Arguments14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
-__ZNK3KJS17DeleteBracketNode8streamToERNS_12SourceStreamE
-__ZNK3KJS9BitOrNode10precedenceEv
-__ZNK3KJS9BitOrNode8streamToERNS_12SourceStreamE
-__ZNK3KJS7ModNode10precedenceEv
-__ZNK3KJS7ModNode8streamToERNS_12SourceStreamE
-__ZN3KJS31dateProtoFuncToLocaleTimeStringEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS16formatLocaleDateEPNS_9ExecStateEdbbRKNS_4ListE
-__ZN3KJS31dateProtoFuncToLocaleDateStringEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS9BitOrNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS7DivNode15evaluateToInt32EPNS_9ExecStateE
-__ZN3KJS14BitwiseNotNode16evaluateToUInt32EPNS_9ExecStateE
-__ZN3KJS13ActivationImp14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
-__ZN3KJS27objectProtoFuncDefineGetterEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS17PreDecBracketNode8evaluateEPNS_9ExecStateE
-__ZNK3KJS16BooleanObjectImp19implementsConstructEv
-__ZN3KJS27objectProtoFuncDefineSetterEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS8JSObject22fillGetterPropertySlotERNS_12PropertySlotEPPNS_7JSValueE
-__ZN3KJS10StringNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS13UnaryPlusNode16evaluateToNumberEPNS_9ExecStateE
-__ZN3KJS31dateProtoFuncGetUTCMillisecondsEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS17FunctionObjectImp14callAsFunctionEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS15DeleteValueNodeD1Ev
-__ZN3KJS15RegExpObjectImp14callAsFunctionEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS22dateProtoFuncGetUTCDayEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS8MultNode15evaluateToInt32EPNS_9ExecStateE
-__ZN3KJS4Node18setErrorCompletionEPNS_9ExecStateENS_9ErrorTypeEPKc
-__ZN3KJS10StringNode16evaluateToNumberEPNS_9ExecStateE
-__ZN3KJS27dateProtoFuncToLocaleStringEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS22UnsignedRightShiftNode16evaluateToNumberEPNS_9ExecStateE
-__ZNK3KJS18PostIncResolveNode10precedenceEv
-__ZNK3KJS21ReadModifyResolveNode10precedenceEv
-__ZNK3KJS21FunctionCallValueNode10precedenceEv
-__ZN3KJS4Node15handleExceptionEPNS_9ExecStateE
-__ZNK3KJS13UnaryPlusNode10precedenceEv
-__ZNK3KJS13UnaryPlusNode8streamToERNS_12SourceStreamE
-__ZN3KJS4Node10throwErrorEPNS_9ExecStateENS_9ErrorTypeEPKcPNS_7JSValueERKNS_10IdentifierE
-__ZNK3KJS15DotAccessorNode17isDotAccessorNodeEv
-__ZNK3KJS14PostfixDotNode10precedenceEv
-__ZN3KJS23regExpProtoFuncToStringEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS14PostDecDotNode8streamToERNS_12SourceStreamE
-__ZNK3KJS9CommaNode10precedenceEv
-__ZNK3KJS17ReadModifyDotNode10precedenceEv
-__ZNK3KJS13DeleteDotNode8streamToERNS_12SourceStreamE
-__ZNK3KJS19PlaceholderTrueNode8streamToERNS_12SourceStreamE
-__ZNK3KJS17AssignBracketNode10precedenceEv
-__ZNK3KJS8WithNode8streamToERNS_12SourceStreamE
-__ZNK3KJS17DeleteBracketNode10precedenceEv
-__ZN3KJS15ObjectObjectImp14callAsFunctionEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-_KJS_JSCreateNativeJSObject
-__ZN3KJS8Bindings12JavaJSObject6invokeEPNS0_19JSObjectCallContextE
-__ZN3KJS8Bindings12JavaJSObject12createNativeEx
-__ZN3KJS8Bindings24findProtectingRootObjectEPNS_8JSObjectE
-_KJS_JSObject_JSObjectEval
-__ZN3KJS8Bindings12JavaJSObjectC1Ex
-__ZNK3KJS8Bindings12JavaJSObject4evalEP8_jstring
-__ZN3KJS8Bindings9getJNIEnvEv
-__ZN3KJS8Bindings9getJavaVMEv
-__ZN3KJS8Bindings30getUCharactersFromJStringInEnvEP7JNIEnv_P8_jstring
-__ZN3KJS8Bindings33releaseUCharactersForJStringInEnvEP7JNIEnv_P8_jstringPKt
-__ZNK3KJS8Bindings12JavaJSObject21convertValueToJObjectEPNS_7JSValueE
-__ZN7JNIEnv_9NewObjectEP7_jclassP10_jmethodIDz
-_KJS_JSObject_JSFinalize
-__ZN3KJS19stringProtoFuncBoldEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS15RegExpObjectImp15getRightContextEv
-__ZNK3KJS15RegExpObjectImp14getLeftContextEv
-__ZN3KJS13LeftShiftNode16evaluateToUInt32EPNS_9ExecStateE
-__ZN3KJS7ModNode15evaluateToInt32EPNS_9ExecStateE
-__ZNK3KJS18PostDecResolveNode10precedenceEv
-__ZN3KJS28dateProtoFuncSetMilliSecondsEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS32stringProtoFuncToLocaleLowerCaseEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__NPN_SetException
-__ZN3KJS18mathProtoFuncATan2EPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS8Bindings12JavaInstanceC2EP8_jobjectN3WTF10PassRefPtrINS0_10RootObjectEEE
-__ZN3KJS8Bindings12JavaInstance5beginEv
-__ZNK3KJS8Bindings12JavaInstance8getClassEv
-__ZN3KJS8Bindings9JavaClassC2EP8_jobject
-__ZN3KJS8Bindings19callJNIObjectMethodEP8_jobjectPKcS4_z
-__ZN3KJS8Bindings13callJNIMethodE7JNITypeP8_jobjectPKcS5_Pc
-__ZN3KJS8Bindings24getCharactersFromJStringEP8_jstring
-__ZN3KJS8Bindings27releaseCharactersForJStringEP8_jstringPKc
-__ZN3KJS8Bindings9JavaFieldC2EP7JNIEnv_P8_jobject
-__ZN3KJS7CStringaSERKS0_
-__ZN3KJS8Bindings20JNITypeFromClassNameEPKc
-__ZN3KJS8Bindings14JObjectWrapperC1EP8_jobject
-__ZNK3KJS8Bindings9JavaField4nameEv
-__ZN3KJS8Bindings10JavaMethodC2EP7JNIEnv_P8_jobject
-__ZN3KJS8Bindings16callJNIIntMethodEP8_jobjectPKcS4_z
-__ZN3KJS8Bindings26callJNIStaticBooleanMethodEP7_jclassPKcS4_z
-__ZN3KJS8Bindings19callJNIStaticMethodE7JNITypeP7_jclassPKcS5_Pc
-__ZNK3KJS8Bindings10JavaMethod4nameEv
-__ZN3KJS8Bindings13JavaParameterC2EP7JNIEnv_P8_jstring
-__ZNK3KJS8Bindings9JavaClass10fieldNamedERKNS_10IdentifierEPNS0_8InstanceE
-__ZNK3KJS8Bindings9JavaClass12methodsNamedERKNS_10IdentifierEPNS0_8InstanceE
-__ZN3KJS8Bindings12JavaInstance3endEv
-__ZN3KJS8Bindings12JavaInstanceD1Ev
-__ZN3KJS8Bindings9JavaClassD1Ev
-__ZN3WTF20deleteAllPairSecondsIPN3KJS8Bindings5FieldEKNS_7HashMapINS_6RefPtrINS1_7UString3RepEEES4_NS_7PtrHashIS9_EENS_10HashTraitsIS9_EENSC_IS4_EEEEEEvRT0_
-__ZN3KJS8Bindings14JObjectWrapperD1Ev
-__ZN3KJS35objectProtoFuncPropertyIsEnumerableEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS31dateProtoFuncSetUTCMillisecondsEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS12FuncExprNode21needsParensIfLeftmostEv
-__ZN3KJS13DateObjectImp14callAsFunctionEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS11NewExprNode17evaluateToBooleanEPNS_9ExecStateE
-__ZN3KJS29numberProtoFuncToLocaleStringEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS25dateProtoFuncToDateStringEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS9BitOrNode16evaluateToNumberEPNS_9ExecStateE
-__ZNK3KJS7JSValue8toUInt32EPNS_9ExecStateE
-__ZNK3KJS8JSObject3getEPNS_9ExecStateEj
-__ZNK3KJS7JSValue16toUInt32SlowCaseEPNS_9ExecStateERb
-__ZN3KJS9Collector29markOtherThreadConservativelyEPNS0_6ThreadE
-__ZN3WTF20TCMalloc_ThreadCache18DestroyThreadCacheEPv
-__ZN3WTF20TCMalloc_ThreadCache11DeleteCacheEPS0_
-__ZN3KJS23destroyRegisteredThreadEPv
-__ZN3KJS28numberProtoFuncToExponentialEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS26numberProtoFuncToPrecisionEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS15RegExpObjectImp16putValuePropertyEPNS_9ExecStateEiPNS_7JSValueEi
-__ZNK3KJS15RegExpObjectImp12getLastParenEv
-__ZN3KJS10throwErrorEPNS_9ExecStateENS_9ErrorTypeE
-__ZN3KJS18arrayProtoFuncSomeEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS9LabelNode9pushLabelERKNS_10IdentifierE
-__ZN3KJS9Collector32reportOutOfMemoryToAllExecStatesEv
-__ZN3KJS5Error6createEPNS_9ExecStateENS_9ErrorTypeEPKc
-__ZNK3KJS17PreDecResolveNode10precedenceEv
-__ZN3KJS17mathProtoFuncACosEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS16mathProtoFuncTanEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS16PostfixErrorNode8streamToERNS_12SourceStreamE
-__ZNK3KJS15PrefixErrorNode8streamToERNS_12SourceStreamE
-__ZNK3KJS15AssignErrorNode8streamToERNS_12SourceStreamE
-__ZN3KJS16PostfixErrorNode8evaluateEPNS_9ExecStateE
-__ZN3KJS4Node10throwErrorEPNS_9ExecStateENS_9ErrorTypeEPKcS5_
-__ZN3KJS16PostfixErrorNodeD1Ev
-__ZNK3KJS13LeftShiftNode8streamToERNS_12SourceStreamE
-__ZNK3KJS13LeftShiftNode10precedenceEv
-__ZNK3KJS14RightShiftNode8streamToERNS_12SourceStreamE
-__ZNK3KJS14RightShiftNode10precedenceEv
-__ZNK3KJS22UnsignedRightShiftNode8streamToERNS_12SourceStreamE
-__ZNK3KJS22UnsignedRightShiftNode10precedenceEv
-__ZNK3KJS10BitAndNode8streamToERNS_12SourceStreamE
-__ZNK3KJS10BitAndNode10precedenceEv
-__ZNK3KJS10BitXOrNode8streamToERNS_12SourceStreamE
-__ZNK3KJS10BitXOrNode10precedenceEv
-__ZN3KJS15AssignErrorNode8evaluateEPNS_9ExecStateE
-__ZN3KJS4Node10throwErrorEPNS_9ExecStateENS_9ErrorTypeEPKc
-__ZN3KJS13char_sequenceEci
-__ZN3KJS15LessStringsNode8evaluateEPNS_9ExecStateE
-__ZN3KJS15LessStringsNodeD1Ev
-__ZN3KJS15DeleteValueNode8evaluateEPNS_9ExecStateE
-__ZN3KJS22regExpProtoFuncCompileEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS15PrefixErrorNode8evaluateEPNS_9ExecStateE
-__ZN3KJS28objectProtoFuncIsPrototypeOfEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS15PrefixErrorNodeD1Ev
-__ZN3KJS19arrayProtoFuncEveryEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS29objectProtoFuncToLocaleStringEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS25arrayProtoFuncLastIndexOfEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3WTF6VectorItLm0EE6resizeEm
-__ZN3WTF6VectorItLm0EE14expandCapacityEm
-__ZN3WTF6VectorItLm0EE15reserveCapacityEm
-__ZN3KJS28arrayProtoFuncToLocaleStringEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS18ConstStatementNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS13ConstDeclNode22optimizeVariableAccessERKN3WTF7HashMapINS1_6RefPtrINS_7UString3RepEEEmNS_17IdentifierRepHashENS_23IdentifierRepHashTraitsENS_26SymbolTableIndexHashTraitsEEERKNS1_6VectorINS_17LocalStorageEntryELm32EEERNSD_IPNS_4NodeELm16EEE
-__ZN3KJS18ConstStatementNode7executeEPNS_9ExecStateE
-__ZN3KJS13ConstDeclNode8evaluateEPNS_9ExecStateE
-__ZN3KJS15AssignConstNode8evaluateEPNS_9ExecStateE
-__ZN3KJS16PostIncConstNode8evaluateEPNS_9ExecStateE
-__ZN3KJS16PostDecConstNode8evaluateEPNS_9ExecStateE
-__ZN3KJS15PreIncConstNode8evaluateEPNS_9ExecStateE
-__ZN3KJS15PreDecConstNode8evaluateEPNS_9ExecStateE
-__ZN3KJS19ReadModifyConstNode8evaluateEPNS_9ExecStateE
-__ZNK3KJS13ActivationImp9classInfoEv
-__ZN3KJS16PostIncConstNodeD1Ev
-__ZN3KJS15PreIncConstNodeD1Ev
-__ZN3KJS15PreDecConstNodeD1Ev
-__ZNK3KJS13DeleteDotNode10precedenceEv
-__ZN3KJS28stringProtoFuncLocaleCompareEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZN3KJS10NumberNode16evaluateToUInt32EPNS_9ExecStateE
-__ZN3KJS19FunctionCallDotNode16evaluateToUInt32EPNS_9ExecStateE
-__ZNK3KJS21ReadModifyBracketNode8streamToERNS_12SourceStreamE
-__ZN3KJS10BitXOrNode16evaluateToNumberEPNS_9ExecStateE
-___tcf_1
-__ZNK3KJS7UString6is8BitEv
-__ZN3KJS15DotAccessorNode16evaluateToUInt32EPNS_9ExecStateE
-__ZN3KJS24stringProtoFuncFontcolorEPNS_9ExecStateEPNS_8JSObjectERKNS_4ListE
-__ZNK3KJS14NativeErrorImp19implementsConstructEv
-__ZN3KJS19PostDecLocalVarNode16evaluateToNumberEPNS_9ExecStateE
-__ZN3KJS19PostDecLocalVarNode15evaluateToInt32EPNS_9ExecStateE
-__ZN3KJS13UnaryPlusNode17evaluateToBooleanEPNS_9ExecStateE
+__ZN3JSC7UString3Rep11computeHashEPKci
+__ZN3JSC16JSCallbackObjectINS_8JSObjectEE14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE
+_JSGarbageCollect
+__ZN3JSC4Heap6isBusyEv
+__ZN3JSCL18styleFromArgStringERKNS_7UStringEl
diff --git a/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pri b/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pri
index dca9355..a7da71c 100644
--- a/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pri
+++ b/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pri
@@ -1,30 +1,68 @@
# JavaScriptCore - Qt4 build info
VPATH += $$PWD
-INCLUDEPATH += tmp
-INCLUDEPATH += $$PWD $$PWD/parser $$PWD/bytecompiler $$PWD/debugger $$PWD/runtime $$PWD/wtf $$PWD/wtf/unicode $$PWD/interpreter $$PWD/jit $$PWD/profiler $$PWD/wrec $$PWD/API $$PWD/.. \
- $$PWD/ForwardingHeaders $$PWD/bytecode $$PWD/assembler
-DEFINES += BUILDING_QT__
+CONFIG(debug, debug|release) {
+ isEmpty(GENERATED_SOURCES_DIR):GENERATED_SOURCES_DIR = generated$${QMAKE_DIR_SEP}debug
+ OBJECTS_DIR = obj/debug
+} else { # Release
+ isEmpty(GENERATED_SOURCES_DIR):GENERATED_SOURCES_DIR = generated$${QMAKE_DIR_SEP}release
+ OBJECTS_DIR = obj/release
+}
+
+INCLUDEPATH += $$GENERATED_SOURCES_DIR \
+ $$PWD \
+ $$PWD/parser \
+ $$PWD/bytecompiler \
+ $$PWD/debugger \
+ $$PWD/runtime \
+ $$PWD/wtf \
+ $$PWD/wtf/unicode \
+ $$PWD/interpreter \
+ $$PWD/jit \
+ $$PWD/profiler \
+ $$PWD/wrec \
+ $$PWD/yarr \
+ $$PWD/API \
+ $$PWD/.. \
+ $$PWD/ForwardingHeaders \
+ $$PWD/bytecode \
+ $$PWD/assembler \
-isEmpty(GENERATED_SOURCES_DIR):GENERATED_SOURCES_DIR = tmp
-GENERATED_SOURCES_DIR_SLASH = $$GENERATED_SOURCES_DIR/
+DEFINES += BUILDING_QT__ BUILDING_JavaScriptCore BUILDING_WTF
+
+GENERATED_SOURCES_DIR_SLASH = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}
win32-* {
- GENERATED_SOURCES_DIR_SLASH ~= s|/|\|
LIBS += -lwinmm
}
-# Disable the JIT due to numerous observed miscompilations :(
-CONFIG(release):isEqual(QT_ARCH,i386) {
- JIT_DEFINES = ENABLE_JIT ENABLE_WREC ENABLE_JIT_OPTIMIZE_CALL ENABLE_JIT_OPTIMIZE_PROPERTY_ACCESS ENABLE_JIT_OPTIMIZE_ARITHMETIC
- # Require gcc >= 4.1
- linux-g++*:greaterThan(QT_GCC_MAJOR_VERSION,3):greaterThan(QT_GCC_MINOR_VERSION,0) {
- DEFINES += $$JIT_DEFINES WTF_USE_JIT_STUB_ARGUMENT_VA_LIST
- QMAKE_CXXFLAGS += -fno-stack-protector
- QMAKE_CFLAGS += -fno-stack-protector
- }
- win32-msvc* {
- DEFINES += $$JIT_DEFINES WTF_USE_JIT_STUB_ARGUMENT_REGISTER
- }
+# Default rules to turn JIT on/off
+!contains(DEFINES, ENABLE_JIT=.) {
+ isEqual(QT_ARCH,i386)|isEqual(QT_ARCH,windows) {
+ # Require gcc >= 4.1
+ CONFIG(release):linux-g++*:greaterThan(QT_GCC_MAJOR_VERSION,3):greaterThan(QT_GCC_MINOR_VERSION,0) {
+ DEFINES += ENABLE_JIT=1
+ }
+ win32-msvc* {
+ DEFINES += ENABLE_JIT=1
+ }
+ }
+}
+
+# Rules when JIT enabled
+contains(DEFINES, ENABLE_JIT=1) {
+ !contains(DEFINES, ENABLE_YARR=.): DEFINES += ENABLE_YARR=1
+ !contains(DEFINES, ENABLE_YARR_JIT=.): DEFINES += ENABLE_YARR_JIT=1
+ !contains(DEFINES, ENABLE_JIT_OPTIMIZE_CALL=.): DEFINES += ENABLE_JIT_OPTIMIZE_CALL=1
+ !contains(DEFINES, ENABLE_JIT_OPTIMIZE_PROPERTY_ACCESS=.): DEFINES += ENABLE_JIT_OPTIMIZE_PROPERTY_ACCESS=1
+ !contains(DEFINES, ENABLE_JIT_OPTIMIZE_ARITHMETIC=.): DEFINES += ENABLE_JIT_OPTIMIZE_ARITHMETIC=1
+ linux-g++* {
+ !contains(DEFINES, WTF_USE_JIT_STUB_ARGUMENT_VA_LIST=.): DEFINES += WTF_USE_JIT_STUB_ARGUMENT_VA_LIST=1
+ QMAKE_CXXFLAGS += -fno-stack-protector
+ QMAKE_CFLAGS += -fno-stack-protector
+ }
+ win32-msvc* {
+ !contains(DEFINES, WTF_USE_JIT_STUB_ARGUMENT_REGISTER=.): DEFINES += WTF_USE_JIT_STUB_ARGUMENT_REGISTER=1
+ }
}
win32-msvc*: INCLUDEPATH += $$PWD/os-win32
@@ -53,10 +91,12 @@ JSCBISON += \
SOURCES += \
wtf/Assertions.cpp \
+ wtf/ByteArray.cpp \
wtf/HashTable.cpp \
wtf/MainThread.cpp \
wtf/RandomNumber.cpp \
wtf/RefCountedLeakCounter.cpp \
+ wtf/TypeTraits.cpp \
wtf/unicode/CollatorDefault.cpp \
wtf/unicode/icu/CollatorICU.cpp \
wtf/unicode/UTF8.cpp \
@@ -77,26 +117,27 @@ SOURCES += \
runtime/JSVariableObject.cpp \
runtime/JSActivation.cpp \
runtime/JSNotAnObject.cpp \
+ runtime/LiteralParser.cpp \
+ runtime/TimeoutChecker.cpp \
bytecode/CodeBlock.cpp \
bytecode/StructureStubInfo.cpp \
bytecode/JumpTable.cpp \
jit/JIT.cpp \
jit/JITCall.cpp \
jit/JITArithmetic.cpp \
+ jit/JITOpcodes.cpp \
jit/JITPropertyAccess.cpp \
jit/ExecutableAllocator.cpp \
+ jit/JITStubs.cpp \
bytecompiler/BytecodeGenerator.cpp \
runtime/ExceptionHelpers.cpp \
runtime/JSPropertyNameIterator.cpp \
interpreter/Interpreter.cpp \
bytecode/Opcode.cpp \
bytecode/SamplingTool.cpp \
- wrec/CharacterClass.cpp \
- wrec/CharacterClassConstructor.cpp \
- wrec/WREC.cpp \
- wrec/WRECFunctors.cpp \
- wrec/WRECGenerator.cpp \
- wrec/WRECParser.cpp \
+ yarr/RegexCompiler.cpp \
+ yarr/RegexInterpreter.cpp \
+ yarr/RegexJIT.cpp \
interpreter/RegisterFile.cpp
win32-*: SOURCES += jit/ExecutableAllocatorWin.cpp
@@ -112,17 +153,18 @@ SOURCES += \
runtime/BooleanConstructor.cpp \
runtime/BooleanObject.cpp \
runtime/BooleanPrototype.cpp \
- runtime/ByteArray.cpp \
runtime/CallData.cpp \
runtime/Collector.cpp \
runtime/CommonIdentifiers.cpp \
runtime/ConstructData.cpp \
+ wtf/CurrentTime.cpp \
runtime/DateConstructor.cpp \
runtime/DateInstance.cpp \
runtime/DateMath.cpp \
runtime/DatePrototype.cpp \
debugger/Debugger.cpp \
debugger/DebuggerCallFrame.cpp \
+ debugger/DebuggerActivation.cpp \
wtf/dtoa.cpp \
runtime/Error.cpp \
runtime/ErrorConstructor.cpp \
@@ -161,6 +203,7 @@ SOURCES += \
runtime/ObjectPrototype.cpp \
runtime/Operations.cpp \
parser/Parser.cpp \
+ parser/ParserArena.cpp \
runtime/PropertyNameArray.cpp \
runtime/PropertySlot.cpp \
runtime/PrototypeFunction.cpp \
@@ -184,11 +227,17 @@ SOURCES += \
profiler/TreeProfile.cpp \
wtf/FastMalloc.cpp \
wtf/Threading.cpp \
- wtf/ThreadingQt.cpp \
wtf/qt/MainThreadQt.cpp
+!contains(DEFINES, ENABLE_SINGLE_THREADED=1) {
+ SOURCES += wtf/qt/ThreadingQt.cpp
+} else {
+ DEFINES += ENABLE_JSC_MULTIPLE_THREADS=0
+ SOURCES += wtf/ThreadingNone.cpp
+}
+
# GENERATOR 1-A: LUT creator
-lut.output = $$GENERATED_SOURCES_DIR/${QMAKE_FILE_BASE}.lut.h
+lut.output = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.lut.h
lut.commands = perl $$PWD/create_hash_table ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
lut.depend = ${QMAKE_FILE_NAME}
lut.input = LUT_FILES
@@ -196,7 +245,7 @@ lut.CONFIG += no_link
addExtraCompiler(lut)
# GENERATOR 1-B: particular LUT creator (for 1 file only)
-keywordlut.output = $$GENERATED_SOURCES_DIR/Lexer.lut.h
+keywordlut.output = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}Lexer.lut.h
keywordlut.commands = perl $$PWD/create_hash_table ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
keywordlut.depend = ${QMAKE_FILE_NAME}
keywordlut.input = KEYWORDLUT_FILES
@@ -204,8 +253,8 @@ keywordlut.CONFIG += no_link
addExtraCompiler(keywordlut)
# GENERATOR 2: bison grammar
-jscbison.output = $$GENERATED_SOURCES_DIR/${QMAKE_FILE_BASE}.cpp
-jscbison.commands = bison -d -p jscyy ${QMAKE_FILE_NAME} -o ${QMAKE_FILE_BASE}.tab.c && $(MOVE) ${QMAKE_FILE_BASE}.tab.c ${QMAKE_FILE_OUT} && $(MOVE) ${QMAKE_FILE_BASE}.tab.h $$GENERATED_SOURCES_DIR/${QMAKE_FILE_BASE}.h
+jscbison.output = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.cpp
+jscbison.commands = bison -d -p jscyy ${QMAKE_FILE_NAME} -o $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.tab.c && $(MOVE) $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.tab.c ${QMAKE_FILE_OUT} && $(MOVE) $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.tab.h $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.h
jscbison.depend = ${QMAKE_FILE_NAME}
jscbison.input = JSCBISON
jscbison.variable_out = GENERATED_SOURCES
diff --git a/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro b/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro
index 56dae05..28f0e6b 100644
--- a/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro
+++ b/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro
@@ -21,13 +21,16 @@ CONFIG(QTDIR_build) {
}
isEmpty(GENERATED_SOURCES_DIR):GENERATED_SOURCES_DIR = tmp
-GENERATED_SOURCES_DIR_SLASH = $$GENERATED_SOURCES_DIR/
-win32-*: GENERATED_SOURCES_DIR_SLASH ~= s|/|\|
+GENERATED_SOURCES_DIR_SLASH = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}
INCLUDEPATH += $$GENERATED_SOURCES_DIR
!CONFIG(QTDIR_build) {
- OBJECTS_DIR = tmp
+ CONFIG(debug, debug|release) {
+ OBJECTS_DIR = obj/debug
+ } else { # Release
+ OBJECTS_DIR = obj/release
+ }
}
include($$OUTPUT_DIR/config.pri)
@@ -64,7 +67,7 @@ include(JavaScriptCore.pri)
QMAKE_EXTRA_TARGETS += generated_files
-qt-port: lessThan(QT_MINOR_VERSION, 4) {
+lessThan(QT_MINOR_VERSION, 4) {
DEFINES += QT_BEGIN_NAMESPACE="" QT_END_NAMESPACE=""
}
diff --git a/src/3rdparty/webkit/JavaScriptCore/JavaScriptCorePrefix.h b/src/3rdparty/webkit/JavaScriptCore/JavaScriptCorePrefix.h
index e71c8a8..13b21bb 100644
--- a/src/3rdparty/webkit/JavaScriptCore/JavaScriptCorePrefix.h
+++ b/src/3rdparty/webkit/JavaScriptCore/JavaScriptCorePrefix.h
@@ -25,15 +25,6 @@
#endif
-#if defined(__APPLE__)
-#import <AvailabilityMacros.h>
-#if MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_4
-#define BUILDING_ON_TIGER 1
-#elif MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_5
-#define BUILDING_ON_LEOPARD 1
-#endif
-#endif
-
#ifdef __cplusplus
#define new ("if you use new/delete make sure to include config.h at the top of the file"())
#define delete ("if you use new/delete make sure to include config.h at the top of the file"())
diff --git a/src/3rdparty/webkit/JavaScriptCore/assembler/AbstractMacroAssembler.h b/src/3rdparty/webkit/JavaScriptCore/assembler/AbstractMacroAssembler.h
new file mode 100644
index 0000000..5def60f
--- /dev/null
+++ b/src/3rdparty/webkit/JavaScriptCore/assembler/AbstractMacroAssembler.h
@@ -0,0 +1,999 @@
+/*
+ * 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 AbstractMacroAssembler_h
+#define AbstractMacroAssembler_h
+
+#include <wtf/Platform.h>
+
+#include <MacroAssemblerCodeRef.h>
+#include <wtf/Noncopyable.h>
+#include <wtf/UnusedParam.h>
+
+#if ENABLE(ASSEMBLER)
+
+// FIXME: keep transitioning this out into MacroAssemblerX86_64.
+#if PLATFORM(X86_64)
+#define REPTACH_OFFSET_CALL_R11 3
+#endif
+
+namespace JSC {
+
+template <class AssemblerType>
+class AbstractMacroAssembler {
+public:
+ typedef MacroAssemblerCodePtr CodePtr;
+ typedef MacroAssemblerCodeRef CodeRef;
+
+ class Jump;
+ class PatchBuffer;
+ class CodeLocationInstruction;
+ class CodeLocationLabel;
+ class CodeLocationJump;
+ class CodeLocationCall;
+ class CodeLocationNearCall;
+ class CodeLocationDataLabel32;
+ class CodeLocationDataLabelPtr;
+ class ProcessorReturnAddress;
+
+ typedef typename AssemblerType::RegisterID RegisterID;
+ typedef typename AssemblerType::FPRegisterID FPRegisterID;
+ typedef typename AssemblerType::JmpSrc JmpSrc;
+ typedef typename AssemblerType::JmpDst JmpDst;
+
+
+ // Section 1: MacroAssembler operand types
+ //
+ // The following types are used as operands to MacroAssembler operations,
+ // describing immediate and memory operands to the instructions to be planted.
+
+
+ enum Scale {
+ TimesOne,
+ TimesTwo,
+ TimesFour,
+ TimesEight,
+ };
+
+ // Address:
+ //
+ // Describes a simple base-offset address.
+ struct Address {
+ explicit Address(RegisterID base, int32_t offset = 0)
+ : base(base)
+ , offset(offset)
+ {
+ }
+
+ RegisterID base;
+ int32_t offset;
+ };
+
+ // ImplicitAddress:
+ //
+ // This class is used for explicit 'load' and 'store' operations
+ // (as opposed to situations in which a memory operand is provided
+ // to a generic operation, such as an integer arithmetic instruction).
+ //
+ // In the case of a load (or store) operation we want to permit
+ // addresses to be implicitly constructed, e.g. the two calls:
+ //
+ // load32(Address(addrReg), destReg);
+ // load32(addrReg, destReg);
+ //
+ // Are equivalent, and the explicit wrapping of the Address in the former
+ // is unnecessary.
+ struct ImplicitAddress {
+ ImplicitAddress(RegisterID base)
+ : base(base)
+ , offset(0)
+ {
+ }
+
+ ImplicitAddress(Address address)
+ : base(address.base)
+ , offset(address.offset)
+ {
+ }
+
+ RegisterID base;
+ int32_t offset;
+ };
+
+ // BaseIndex:
+ //
+ // Describes a complex addressing mode.
+ struct BaseIndex {
+ BaseIndex(RegisterID base, RegisterID index, Scale scale, int32_t offset = 0)
+ : base(base)
+ , index(index)
+ , scale(scale)
+ , offset(offset)
+ {
+ }
+
+ RegisterID base;
+ RegisterID index;
+ Scale scale;
+ int32_t offset;
+ };
+
+ // AbsoluteAddress:
+ //
+ // Describes an memory operand given by a pointer. For regular load & store
+ // operations an unwrapped void* will be used, rather than using this.
+ struct AbsoluteAddress {
+ explicit AbsoluteAddress(void* ptr)
+ : m_ptr(ptr)
+ {
+ }
+
+ void* m_ptr;
+ };
+
+ // ImmPtr:
+ //
+ // A pointer sized immediate operand to an instruction - this is wrapped
+ // in a class requiring explicit construction in order to differentiate
+ // from pointers used as absolute addresses to memory operations
+ struct ImmPtr {
+ explicit ImmPtr(void* value)
+ : m_value(value)
+ {
+ }
+
+ intptr_t asIntptr()
+ {
+ return reinterpret_cast<intptr_t>(m_value);
+ }
+
+ void* m_value;
+ };
+
+ // Imm32:
+ //
+ // A 32bit immediate operand to an instruction - this is wrapped in a
+ // class requiring explicit construction in order to prevent RegisterIDs
+ // (which are implemented as an enum) from accidentally being passed as
+ // immediate values.
+ struct Imm32 {
+ explicit Imm32(int32_t value)
+ : m_value(value)
+ {
+ }
+
+#if !PLATFORM(X86_64)
+ explicit Imm32(ImmPtr ptr)
+ : m_value(ptr.asIntptr())
+ {
+ }
+#endif
+
+ int32_t m_value;
+ };
+
+
+ // Section 2: MacroAssembler code buffer handles
+ //
+ // The following types are used to reference items in the code buffer
+ // during JIT code generation. For example, the type Jump is used to
+ // track the location of a jump instruction so that it may later be
+ // linked to a label marking its destination.
+
+
+ // Label:
+ //
+ // A Label records a point in the generated instruction stream, typically such that
+ // it may be used as a destination for a jump.
+ class Label {
+ template<class TemplateAssemblerType>
+ friend class AbstractMacroAssembler;
+ friend class Jump;
+ friend class MacroAssemblerCodeRef;
+ friend class PatchBuffer;
+
+ public:
+ Label()
+ {
+ }
+
+ Label(AbstractMacroAssembler<AssemblerType>* masm)
+ : m_label(masm->m_assembler.label())
+ {
+ }
+
+ bool isUsed() const { return m_label.isUsed(); }
+ void used() { m_label.used(); }
+ private:
+ JmpDst m_label;
+ };
+
+ // DataLabelPtr:
+ //
+ // A DataLabelPtr is used to refer to a location in the code containing a pointer to be
+ // patched after the code has been generated.
+ class DataLabelPtr {
+ template<class TemplateAssemblerType>
+ friend class AbstractMacroAssembler;
+ friend class PatchBuffer;
+ public:
+ DataLabelPtr()
+ {
+ }
+
+ DataLabelPtr(AbstractMacroAssembler<AssemblerType>* masm)
+ : m_label(masm->m_assembler.label())
+ {
+ }
+
+ private:
+ JmpDst m_label;
+ };
+
+ // DataLabel32:
+ //
+ // A DataLabelPtr is used to refer to a location in the code containing a pointer to be
+ // patched after the code has been generated.
+ class DataLabel32 {
+ template<class TemplateAssemblerType>
+ friend class AbstractMacroAssembler;
+ friend class PatchBuffer;
+ public:
+ DataLabel32()
+ {
+ }
+
+ DataLabel32(AbstractMacroAssembler<AssemblerType>* masm)
+ : m_label(masm->m_assembler.label())
+ {
+ }
+
+ private:
+ JmpDst m_label;
+ };
+
+ // Call:
+ //
+ // A Call object is a reference to a call instruction that has been planted
+ // into the code buffer - it is typically used to link the call, setting the
+ // relative offset such that when executed it will call to the desired
+ // destination.
+ class Call {
+ template<class TemplateAssemblerType>
+ friend class AbstractMacroAssembler;
+ friend class PatchBuffer;
+ public:
+ enum Flags {
+ None = 0x0,
+ Linkable = 0x1,
+ Near = 0x2,
+ LinkableNear = 0x3,
+ };
+
+ Call()
+ : m_flags(None)
+ {
+ }
+
+ Call(JmpSrc jmp, Flags flags)
+ : m_jmp(jmp)
+ , m_flags(flags)
+ {
+ }
+
+ bool isFlagSet(Flags flag)
+ {
+ return m_flags & flag;
+ }
+
+ static Call fromTailJump(Jump jump)
+ {
+ return Call(jump.m_jmp, Linkable);
+ }
+
+ private:
+ JmpSrc m_jmp;
+ Flags m_flags;
+ };
+
+ // Jump:
+ //
+ // A jump object is a reference to a jump instruction that has been planted
+ // into the code buffer - it is typically used to link the jump, setting the
+ // relative offset such that when executed it will jump to the desired
+ // destination.
+ class Jump {
+ template<class TemplateAssemblerType>
+ friend class AbstractMacroAssembler;
+ friend class Call;
+ friend class PatchBuffer;
+ public:
+ Jump()
+ {
+ }
+
+ Jump(JmpSrc jmp)
+ : m_jmp(jmp)
+ {
+ }
+
+ void link(AbstractMacroAssembler<AssemblerType>* masm)
+ {
+ masm->m_assembler.linkJump(m_jmp, masm->m_assembler.label());
+ }
+
+ void linkTo(Label label, AbstractMacroAssembler<AssemblerType>* masm)
+ {
+ masm->m_assembler.linkJump(m_jmp, label.m_label);
+ }
+
+ private:
+ JmpSrc m_jmp;
+ };
+
+ // JumpList:
+ //
+ // A JumpList is a set of Jump objects.
+ // All jumps in the set will be linked to the same destination.
+ class JumpList {
+ friend class PatchBuffer;
+
+ public:
+ void link(AbstractMacroAssembler<AssemblerType>* masm)
+ {
+ size_t size = m_jumps.size();
+ for (size_t i = 0; i < size; ++i)
+ m_jumps[i].link(masm);
+ m_jumps.clear();
+ }
+
+ void linkTo(Label label, AbstractMacroAssembler<AssemblerType>* masm)
+ {
+ size_t size = m_jumps.size();
+ for (size_t i = 0; i < size; ++i)
+ m_jumps[i].linkTo(label, masm);
+ m_jumps.clear();
+ }
+
+ void append(Jump jump)
+ {
+ m_jumps.append(jump);
+ }
+
+ void append(JumpList& other)
+ {
+ m_jumps.append(other.m_jumps.begin(), other.m_jumps.size());
+ }
+
+ bool empty()
+ {
+ return !m_jumps.size();
+ }
+
+ private:
+ Vector<Jump, 16> m_jumps;
+ };
+
+
+ // Section 3: MacroAssembler JIT instruction stream handles.
+ //
+ // The MacroAssembler supported facilities to modify a JIT generated
+ // instruction stream after it has been generated (relinking calls and
+ // jumps, and repatching data values). The following types are used
+ // to store handles into the underlying instruction stream, the type
+ // providing semantic information as to what it is that is in the
+ // instruction stream at this point, and thus what operations may be
+ // performed on it.
+
+
+ // CodeLocationCommon:
+ //
+ // Base type for other CodeLocation* types. A postion in the JIT genertaed
+ // instruction stream, without any semantic information.
+ class CodeLocationCommon {
+ public:
+ CodeLocationCommon()
+ {
+ }
+
+ // In order to avoid the need to store multiple handles into the
+ // instructions stream, where the code generation is deterministic
+ // and the labels will always be a fixed distance apart, these
+ // methods may be used to recover a handle that has nopw been
+ // retained, based on a known fixed relative offset from one that has.
+ CodeLocationInstruction instructionAtOffset(int offset);
+ CodeLocationLabel labelAtOffset(int offset);
+ CodeLocationJump jumpAtOffset(int offset);
+ CodeLocationCall callAtOffset(int offset);
+ CodeLocationNearCall nearCallAtOffset(int offset);
+ CodeLocationDataLabelPtr dataLabelPtrAtOffset(int offset);
+ CodeLocationDataLabel32 dataLabel32AtOffset(int offset);
+
+ protected:
+ explicit CodeLocationCommon(CodePtr location)
+ : m_location(location)
+ {
+ }
+
+ void* dataLocation() { return m_location.dataLocation(); }
+ void* executableAddress() { return m_location.executableAddress(); }
+
+ void reset()
+ {
+ m_location = CodePtr();
+ }
+
+ private:
+ CodePtr m_location;
+ };
+
+ // CodeLocationInstruction:
+ //
+ // An arbitrary instruction in the JIT code.
+ class CodeLocationInstruction : public CodeLocationCommon {
+ friend class CodeLocationCommon;
+ public:
+ CodeLocationInstruction()
+ {
+ }
+
+ void repatchLoadPtrToLEA()
+ {
+ AssemblerType::repatchLoadPtrToLEA(this->dataLocation());
+ }
+
+ private:
+ explicit CodeLocationInstruction(void* location)
+ : CodeLocationCommon(CodePtr(location))
+ {
+ }
+ };
+
+ // CodeLocationLabel:
+ //
+ // A point in the JIT code maked with a label.
+ class CodeLocationLabel : public CodeLocationCommon {
+ friend class CodeLocationCommon;
+ friend class CodeLocationJump;
+ friend class CodeLocationCall;
+ friend class CodeLocationNearCall;
+ friend class PatchBuffer;
+ friend class ProcessorReturnAddress;
+
+ public:
+ CodeLocationLabel()
+ {
+ }
+
+ void* addressForSwitch() { return this->executableAddress(); }
+ void* addressForExceptionHandler() { return this->executableAddress(); }
+ void* addressForJSR() { return this->executableAddress(); }
+
+ bool operator!()
+ {
+ return !this->executableAddress();
+ }
+
+ void reset()
+ {
+ CodeLocationCommon::reset();
+ }
+
+ private:
+ explicit CodeLocationLabel(CodePtr location)
+ : CodeLocationCommon(location)
+ {
+ }
+
+ explicit CodeLocationLabel(void* location)
+ : CodeLocationCommon(CodePtr(location))
+ {
+ }
+
+ void* getJumpDestination() { return this->executableAddress(); }
+ };
+
+ // CodeLocationJump:
+ //
+ // A point in the JIT code at which there is a jump instruction.
+ class CodeLocationJump : public CodeLocationCommon {
+ friend class CodeLocationCommon;
+ friend class PatchBuffer;
+ public:
+ CodeLocationJump()
+ {
+ }
+
+ void relink(CodeLocationLabel destination)
+ {
+ AssemblerType::relinkJump(this->dataLocation(), destination.executableAddress());
+ }
+
+ private:
+ explicit CodeLocationJump(void* location)
+ : CodeLocationCommon(CodePtr(location))
+ {
+ }
+ };
+
+ // CodeLocationCall:
+ //
+ // A point in the JIT code at which there is a call instruction.
+ class CodeLocationCall : public CodeLocationCommon {
+ friend class CodeLocationCommon;
+ friend class PatchBuffer;
+ friend class ProcessorReturnAddress;
+ public:
+ CodeLocationCall()
+ {
+ }
+
+ void relink(CodeLocationLabel destination)
+ {
+#if PLATFORM(X86_64)
+ CodeLocationCommon::dataLabelPtrAtOffset(-REPTACH_OFFSET_CALL_R11).repatch(destination.executableAddress());
+#else
+ AssemblerType::relinkCall(this->dataLocation(), destination.executableAddress());
+#endif
+ }
+
+ void relink(FunctionPtr destination)
+ {
+#if PLATFORM(X86_64)
+ CodeLocationCommon::dataLabelPtrAtOffset(-REPTACH_OFFSET_CALL_R11).repatch(destination.executableAddress());
+#else
+ AssemblerType::relinkCall(this->dataLocation(), destination.executableAddress());
+#endif
+ }
+
+ // This methods returns the value that will be set as the return address
+ // within a function that has been called from this call instruction.
+ void* calleeReturnAddressValue()
+ {
+ return this->executableAddress();
+ }
+
+ private:
+ explicit CodeLocationCall(CodePtr location)
+ : CodeLocationCommon(location)
+ {
+ }
+
+ explicit CodeLocationCall(void* location)
+ : CodeLocationCommon(CodePtr(location))
+ {
+ }
+ };
+
+ // CodeLocationNearCall:
+ //
+ // A point in the JIT code at which there is a call instruction with near linkage.
+ class CodeLocationNearCall : public CodeLocationCommon {
+ friend class CodeLocationCommon;
+ friend class PatchBuffer;
+ friend class ProcessorReturnAddress;
+ public:
+ CodeLocationNearCall()
+ {
+ }
+
+ void relink(CodePtr destination)
+ {
+ AssemblerType::relinkCall(this->dataLocation(), destination.executableAddress());
+ }
+
+ void relink(CodeLocationLabel destination)
+ {
+ AssemblerType::relinkCall(this->dataLocation(), destination.executableAddress());
+ }
+
+ void relink(FunctionPtr destination)
+ {
+ AssemblerType::relinkCall(this->dataLocation(), destination.executableAddress());
+ }
+
+ // This methods returns the value that will be set as the return address
+ // within a function that has been called from this call instruction.
+ void* calleeReturnAddressValue()
+ {
+ return this->executableAddress();
+ }
+
+ private:
+ explicit CodeLocationNearCall(CodePtr location)
+ : CodeLocationCommon(location)
+ {
+ }
+
+ explicit CodeLocationNearCall(void* location)
+ : CodeLocationCommon(CodePtr(location))
+ {
+ }
+ };
+
+ // CodeLocationDataLabel32:
+ //
+ // A point in the JIT code at which there is an int32_t immediate that may be repatched.
+ class CodeLocationDataLabel32 : public CodeLocationCommon {
+ friend class CodeLocationCommon;
+ friend class PatchBuffer;
+ public:
+ CodeLocationDataLabel32()
+ {
+ }
+
+ void repatch(int32_t value)
+ {
+ AssemblerType::repatchInt32(this->dataLocation(), value);
+ }
+
+ private:
+ explicit CodeLocationDataLabel32(void* location)
+ : CodeLocationCommon(CodePtr(location))
+ {
+ }
+ };
+
+ // CodeLocationDataLabelPtr:
+ //
+ // A point in the JIT code at which there is a void* immediate that may be repatched.
+ class CodeLocationDataLabelPtr : public CodeLocationCommon {
+ friend class CodeLocationCommon;
+ friend class PatchBuffer;
+ public:
+ CodeLocationDataLabelPtr()
+ {
+ }
+
+ void repatch(void* value)
+ {
+ AssemblerType::repatchPointer(this->dataLocation(), value);
+ }
+
+ private:
+ explicit CodeLocationDataLabelPtr(void* location)
+ : CodeLocationCommon(CodePtr(location))
+ {
+ }
+ };
+
+ // ProcessorReturnAddress:
+ //
+ // This class can be used to relink a call identified by its return address.
+ class ProcessorReturnAddress {
+ friend class CodeLocationCall;
+ friend class CodeLocationNearCall;
+ public:
+ ProcessorReturnAddress(void* location)
+ : m_location(location)
+ {
+ }
+
+ void relinkCallerToTrampoline(CodeLocationLabel label)
+ {
+ CodeLocationCall(CodePtr(m_location)).relink(label);
+ }
+
+ void relinkCallerToTrampoline(CodePtr newCalleeFunction)
+ {
+ relinkCallerToTrampoline(CodeLocationLabel(newCalleeFunction));
+ }
+
+ void relinkCallerToFunction(FunctionPtr function)
+ {
+ CodeLocationCall(CodePtr(m_location)).relink(function);
+ }
+
+ void relinkNearCallerToTrampoline(CodeLocationLabel label)
+ {
+ CodeLocationNearCall(CodePtr(m_location)).relink(label);
+ }
+
+ void relinkNearCallerToTrampoline(CodePtr newCalleeFunction)
+ {
+ relinkNearCallerToTrampoline(CodeLocationLabel(newCalleeFunction));
+ }
+
+ void* addressForLookup()
+ {
+ return m_location.value();
+ }
+
+ private:
+ ReturnAddressPtr m_location;
+ };
+
+
+ // Section 4: PatchBuffer - utility to finalize code generation.
+
+ static CodePtr trampolineAt(CodeRef ref, Label label)
+ {
+ return CodePtr(AssemblerType::getRelocatedAddress(ref.m_code.dataLocation(), label.m_label));
+ }
+
+ // PatchBuffer:
+ //
+ // This class assists in linking code generated by the macro assembler, once code generation
+ // has been completed, and the code has been copied to is final location in memory. At this
+ // time pointers to labels within the code may be resolved, and relative offsets to external
+ // addresses may be fixed.
+ //
+ // Specifically:
+ // * Jump objects may be linked to external targets,
+ // * The address of Jump objects may taken, such that it can later be relinked.
+ // * The return address of a Jump object representing a call may be acquired.
+ // * The address of a Label pointing into the code may be resolved.
+ // * The value referenced by a DataLabel may be fixed.
+ //
+ // FIXME: distinguish between Calls & Jumps (make a specific call to obtain the return
+ // address of calls, as opposed to a point that can be used to later relink a Jump -
+ // possibly wrap the later up in an object that can do just that).
+ class PatchBuffer : public Noncopyable {
+ public:
+ // Note: Initialization sequence is significant, since executablePool is a PassRefPtr.
+ // First, executablePool is copied into m_executablePool, then the initialization of
+ // m_code uses m_executablePool, *not* executablePool, since this is no longer valid.
+ PatchBuffer(AbstractMacroAssembler<AssemblerType>* masm, PassRefPtr<ExecutablePool> executablePool)
+ : m_executablePool(executablePool)
+ , m_code(masm->m_assembler.executableCopy(m_executablePool.get()))
+ , m_size(masm->m_assembler.size())
+#ifndef NDEBUG
+ , m_completed(false)
+#endif
+ {
+ }
+
+ ~PatchBuffer()
+ {
+ ASSERT(m_completed);
+ }
+
+ // These methods are used to link or set values at code generation time.
+
+ void link(Call call, FunctionPtr function)
+ {
+ ASSERT(call.isFlagSet(Call::Linkable));
+#if PLATFORM(X86_64)
+ if (!call.isFlagSet(Call::Near)) {
+ char* callLocation = reinterpret_cast<char*>(AssemblerType::getRelocatedAddress(code(), call.m_jmp)) - REPTACH_OFFSET_CALL_R11;
+ AssemblerType::patchPointerForCall(callLocation, function.value());
+ } else
+#endif
+ AssemblerType::linkCall(code(), call.m_jmp, function.value());
+ }
+
+ void link(Jump jump, CodeLocationLabel label)
+ {
+ AssemblerType::linkJump(code(), jump.m_jmp, label.executableAddress());
+ }
+
+ void link(JumpList list, CodeLocationLabel label)
+ {
+ for (unsigned i = 0; i < list.m_jumps.size(); ++i)
+ AssemblerType::linkJump(code(), list.m_jumps[i].m_jmp, label.executableAddress());
+ }
+
+ void patch(DataLabelPtr label, void* value)
+ {
+ AssemblerType::patchPointer(code(), label.m_label, value);
+ }
+
+ void patch(DataLabelPtr label, CodeLocationLabel value)
+ {
+ AssemblerType::patchPointer(code(), label.m_label, value.getJumpDestination());
+ }
+
+ // These methods are used to obtain handles to allow the code to be relinked / repatched later.
+
+ CodeLocationCall locationOf(Call call)
+ {
+ ASSERT(call.isFlagSet(Call::Linkable));
+ ASSERT(!call.isFlagSet(Call::Near));
+ return CodeLocationCall(AssemblerType::getRelocatedAddress(code(), call.m_jmp));
+ }
+
+ CodeLocationNearCall locationOfNearCall(Call call)
+ {
+ ASSERT(call.isFlagSet(Call::Linkable));
+ ASSERT(call.isFlagSet(Call::Near));
+ return CodeLocationNearCall(AssemblerType::getRelocatedAddress(code(), call.m_jmp));
+ }
+
+ CodeLocationLabel locationOf(Label label)
+ {
+ return CodeLocationLabel(AssemblerType::getRelocatedAddress(code(), label.m_label));
+ }
+
+ CodeLocationDataLabelPtr locationOf(DataLabelPtr label)
+ {
+ return CodeLocationDataLabelPtr(AssemblerType::getRelocatedAddress(code(), label.m_label));
+ }
+
+ CodeLocationDataLabel32 locationOf(DataLabel32 label)
+ {
+ return CodeLocationDataLabel32(AssemblerType::getRelocatedAddress(code(), label.m_label));
+ }
+
+ // This method obtains the return address of the call, given as an offset from
+ // the start of the code.
+ unsigned returnAddressOffset(Call call)
+ {
+ return AssemblerType::getCallReturnOffset(call.m_jmp);
+ }
+
+ // Upon completion of all patching either 'finalizeCode()' or 'finalizeCodeAddendum()' should be called
+ // once to complete generation of the code. 'finalizeCode()' is suited to situations
+ // where the executable pool must also be retained, the lighter-weight 'finalizeCodeAddendum()' is
+ // suited to adding to an existing allocation.
+ CodeRef finalizeCode()
+ {
+ performFinalization();
+
+ return CodeRef(m_code, m_executablePool, m_size);
+ }
+ CodeLocationLabel finalizeCodeAddendum()
+ {
+ performFinalization();
+
+ return CodeLocationLabel(code());
+ }
+
+ private:
+ // Keep this private! - the underlying code should only be obtained externally via
+ // finalizeCode() or finalizeCodeAddendum().
+ void* code()
+ {
+ return m_code;
+ }
+
+ void performFinalization()
+ {
+#ifndef NDEBUG
+ ASSERT(!m_completed);
+ m_completed = true;
+#endif
+
+ ExecutableAllocator::makeExecutable(code(), m_size);
+ }
+
+ RefPtr<ExecutablePool> m_executablePool;
+ void* m_code;
+ size_t m_size;
+#ifndef NDEBUG
+ bool m_completed;
+#endif
+ };
+
+
+ // Section 5: Misc admin methods
+
+ size_t size()
+ {
+ return m_assembler.size();
+ }
+
+ Label label()
+ {
+ return Label(this);
+ }
+
+ Label align()
+ {
+ m_assembler.align(16);
+ return Label(this);
+ }
+
+ ptrdiff_t differenceBetween(Label from, Jump to)
+ {
+ return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_jmp);
+ }
+
+ ptrdiff_t differenceBetween(Label from, Call to)
+ {
+ return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_jmp);
+ }
+
+ ptrdiff_t differenceBetween(Label from, Label to)
+ {
+ return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_label);
+ }
+
+ ptrdiff_t differenceBetween(Label from, DataLabelPtr to)
+ {
+ return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_label);
+ }
+
+ ptrdiff_t differenceBetween(Label from, DataLabel32 to)
+ {
+ return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_label);
+ }
+
+ ptrdiff_t differenceBetween(DataLabelPtr from, Jump to)
+ {
+ return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_jmp);
+ }
+
+ ptrdiff_t differenceBetween(DataLabelPtr from, DataLabelPtr to)
+ {
+ return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_label);
+ }
+
+ ptrdiff_t differenceBetween(DataLabelPtr from, Call to)
+ {
+ return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_jmp);
+ }
+
+protected:
+ AssemblerType m_assembler;
+};
+
+
+template <class AssemblerType>
+typename AbstractMacroAssembler<AssemblerType>::CodeLocationInstruction AbstractMacroAssembler<AssemblerType>::CodeLocationCommon::instructionAtOffset(int offset)
+{
+ return typename AbstractMacroAssembler::CodeLocationInstruction(reinterpret_cast<char*>(dataLocation()) + offset);
+}
+
+template <class AssemblerType>
+typename AbstractMacroAssembler<AssemblerType>::CodeLocationLabel AbstractMacroAssembler<AssemblerType>::CodeLocationCommon::labelAtOffset(int offset)
+{
+ return typename AbstractMacroAssembler::CodeLocationLabel(reinterpret_cast<char*>(dataLocation()) + offset);
+}
+
+template <class AssemblerType>
+typename AbstractMacroAssembler<AssemblerType>::CodeLocationJump AbstractMacroAssembler<AssemblerType>::CodeLocationCommon::jumpAtOffset(int offset)
+{
+ return typename AbstractMacroAssembler::CodeLocationJump(reinterpret_cast<char*>(dataLocation()) + offset);
+}
+
+template <class AssemblerType>
+typename AbstractMacroAssembler<AssemblerType>::CodeLocationCall AbstractMacroAssembler<AssemblerType>::CodeLocationCommon::callAtOffset(int offset)
+{
+ return typename AbstractMacroAssembler::CodeLocationCall(reinterpret_cast<char*>(dataLocation()) + offset);
+}
+
+template <class AssemblerType>
+typename AbstractMacroAssembler<AssemblerType>::CodeLocationNearCall AbstractMacroAssembler<AssemblerType>::CodeLocationCommon::nearCallAtOffset(int offset)
+{
+ return typename AbstractMacroAssembler::CodeLocationNearCall(reinterpret_cast<char*>(dataLocation()) + offset);
+}
+
+template <class AssemblerType>
+typename AbstractMacroAssembler<AssemblerType>::CodeLocationDataLabelPtr AbstractMacroAssembler<AssemblerType>::CodeLocationCommon::dataLabelPtrAtOffset(int offset)
+{
+ return typename AbstractMacroAssembler::CodeLocationDataLabelPtr(reinterpret_cast<char*>(dataLocation()) + offset);
+}
+
+template <class AssemblerType>
+typename AbstractMacroAssembler<AssemblerType>::CodeLocationDataLabel32 AbstractMacroAssembler<AssemblerType>::CodeLocationCommon::dataLabel32AtOffset(int offset)
+{
+ return typename AbstractMacroAssembler::CodeLocationDataLabel32(reinterpret_cast<char*>(dataLocation()) + offset);
+}
+
+} // namespace JSC
+
+#endif // ENABLE(ASSEMBLER)
+
+#endif // AbstractMacroAssembler_h
diff --git a/src/3rdparty/webkit/JavaScriptCore/assembler/AssemblerBuffer.h b/src/3rdparty/webkit/JavaScriptCore/assembler/AssemblerBuffer.h
index e1f53d8..7a5a8d3 100644
--- a/src/3rdparty/webkit/JavaScriptCore/assembler/AssemblerBuffer.h
+++ b/src/3rdparty/webkit/JavaScriptCore/assembler/AssemblerBuffer.h
@@ -132,6 +132,8 @@ namespace JSC {
if (!result)
return 0;
+ ExecutableAllocator::makeWritable(result, m_size);
+
return memcpy(result, m_buffer, m_size);
}
diff --git a/src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssembler.h b/src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssembler.h
index 9f8d474..f341267 100644
--- a/src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssembler.h
+++ b/src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssembler.h
@@ -30,1896 +30,306 @@
#if ENABLE(ASSEMBLER)
-#include "X86Assembler.h"
-
-namespace JSC {
+#if PLATFORM(X86)
+#include "MacroAssemblerX86.h"
+namespace JSC { typedef MacroAssemblerX86 MacroAssemblerBase; };
-class MacroAssembler {
-protected:
- X86Assembler m_assembler;
+#elif PLATFORM(X86_64)
+#include "MacroAssemblerX86_64.h"
+namespace JSC { typedef MacroAssemblerX86_64 MacroAssemblerBase; };
-#if PLATFORM(X86_64)
- static const X86::RegisterID scratchRegister = X86::r11;
+#else
+#error "The MacroAssembler is not supported on this platform."
#endif
+
+namespace JSC {
+
+class MacroAssembler : public MacroAssemblerBase {
public:
- typedef X86::RegisterID RegisterID;
-
- // Note: do not rely on values in this enum, these will change (to 0..3).
- enum Scale {
- TimesOne = 1,
- TimesTwo = 2,
- TimesFour = 4,
- TimesEight = 8,
-#if PLATFORM(X86)
- ScalePtr = TimesFour
-#endif
+
+ using MacroAssemblerBase::pop;
+ using MacroAssemblerBase::jump;
+ using MacroAssemblerBase::branch32;
+ using MacroAssemblerBase::branch16;
#if PLATFORM(X86_64)
- ScalePtr = TimesEight
+ using MacroAssemblerBase::branchPtr;
+ using MacroAssemblerBase::branchTestPtr;
#endif
- };
- MacroAssembler()
+
+ // Platform agnostic onvenience functions,
+ // described in terms of other macro assembly methods.
+ void pop()
{
+ addPtr(Imm32(sizeof(void*)), stackPointerRegister);
}
- size_t size() { return m_assembler.size(); }
- void* copyCode(ExecutablePool* allocator)
+ void peek(RegisterID dest, int index = 0)
{
- return m_assembler.executableCopy(allocator);
+ loadPtr(Address(stackPointerRegister, (index * sizeof(void*))), dest);
}
-
- // Address:
- //
- // Describes a simple base-offset address.
- struct Address {
- explicit Address(RegisterID base, int32_t offset = 0)
- : base(base)
- , offset(offset)
- {
- }
-
- RegisterID base;
- int32_t offset;
- };
-
- // ImplicitAddress:
- //
- // This class is used for explicit 'load' and 'store' operations
- // (as opposed to situations in which a memory operand is provided
- // to a generic operation, such as an integer arithmetic instruction).
- //
- // In the case of a load (or store) operation we want to permit
- // addresses to be implicitly constructed, e.g. the two calls:
- //
- // load32(Address(addrReg), destReg);
- // load32(addrReg, destReg);
- //
- // Are equivalent, and the explicit wrapping of the Address in the former
- // is unnecessary.
- struct ImplicitAddress {
- ImplicitAddress(RegisterID base)
- : base(base)
- , offset(0)
- {
- }
-
- ImplicitAddress(Address address)
- : base(address.base)
- , offset(address.offset)
- {
- }
-
- RegisterID base;
- int32_t offset;
- };
-
- // BaseIndex:
- //
- // Describes a complex addressing mode.
- struct BaseIndex {
- BaseIndex(RegisterID base, RegisterID index, Scale scale, int32_t offset = 0)
- : base(base)
- , index(index)
- , scale(scale)
- , offset(offset)
- {
- }
-
- RegisterID base;
- RegisterID index;
- Scale scale;
- int32_t offset;
- };
-
- // AbsoluteAddress:
- //
- // Describes an memory operand given by a pointer. For regular load & store
- // operations an unwrapped void* will be used, rather than using this.
- struct AbsoluteAddress {
- explicit AbsoluteAddress(void* ptr)
- : m_ptr(ptr)
- {
- }
-
- void* m_ptr;
- };
-
-
- class Jump;
- class PatchBuffer;
-
- // DataLabelPtr:
- //
- // A DataLabelPtr is used to refer to a location in the code containing a pointer to be
- // patched after the code has been generated.
- class DataLabelPtr {
- friend class MacroAssembler;
- friend class PatchBuffer;
-
- public:
- DataLabelPtr()
- {
- }
-
- DataLabelPtr(MacroAssembler* masm)
- : m_label(masm->m_assembler.label())
- {
- }
-
- static void patch(void* address, void* value)
- {
- X86Assembler::patchPointer(reinterpret_cast<intptr_t>(address), reinterpret_cast<intptr_t>(value));
- }
-
- private:
- X86Assembler::JmpDst m_label;
- };
-
- // DataLabel32:
- //
- // A DataLabelPtr is used to refer to a location in the code containing a pointer to be
- // patched after the code has been generated.
- class DataLabel32 {
- friend class MacroAssembler;
- friend class PatchBuffer;
-
- public:
- DataLabel32()
- {
- }
-
- DataLabel32(MacroAssembler* masm)
- : m_label(masm->m_assembler.label())
- {
- }
-
- static void patch(void* address, int32_t value)
- {
- X86Assembler::patchImmediate(reinterpret_cast<intptr_t>(address), value);
- }
-
- private:
- X86Assembler::JmpDst m_label;
- };
-
- // Label:
- //
- // A Label records a point in the generated instruction stream, typically such that
- // it may be used as a destination for a jump.
- class Label {
- friend class Jump;
- friend class MacroAssembler;
- friend class PatchBuffer;
-
- public:
- Label()
- {
- }
-
- Label(MacroAssembler* masm)
- : m_label(masm->m_assembler.label())
- {
- }
-
- // FIXME: transitionary method, while we replace JmpSrces with Jumps.
- operator X86Assembler::JmpDst()
- {
- return m_label;
- }
-
- private:
- X86Assembler::JmpDst m_label;
- };
-
-
- // Jump:
- //
- // A jump object is a reference to a jump instruction that has been planted
- // into the code buffer - it is typically used to link the jump, setting the
- // relative offset such that when executed it will jump to the desired
- // destination.
- //
- // Jump objects retain a pointer to the assembler for syntactic purposes -
- // to allow the jump object to be able to link itself, e.g.:
- //
- // Jump forwardsBranch = jne32(Imm32(0), reg1);
- // // ...
- // forwardsBranch.link();
- //
- // Jumps may also be linked to a Label.
- class Jump {
- friend class PatchBuffer;
- friend class MacroAssembler;
-
- public:
- Jump()
- {
- }
-
- // FIXME: transitionary method, while we replace JmpSrces with Jumps.
- Jump(X86Assembler::JmpSrc jmp)
- : m_jmp(jmp)
- {
- }
-
- void link(MacroAssembler* masm)
- {
- masm->m_assembler.link(m_jmp, masm->m_assembler.label());
- }
-
- void linkTo(Label label, MacroAssembler* masm)
- {
- masm->m_assembler.link(m_jmp, label.m_label);
- }
-
- // FIXME: transitionary method, while we replace JmpSrces with Jumps.
- operator X86Assembler::JmpSrc()
- {
- return m_jmp;
- }
-
- static void patch(void* address, void* destination)
- {
- X86Assembler::patchBranchOffset(reinterpret_cast<intptr_t>(address), destination);
- }
-
- private:
- X86Assembler::JmpSrc m_jmp;
- };
-
- // JumpList:
- //
- // A JumpList is a set of Jump objects.
- // All jumps in the set will be linked to the same destination.
- class JumpList {
- friend class PatchBuffer;
-
- public:
- void link(MacroAssembler* masm)
- {
- size_t size = m_jumps.size();
- for (size_t i = 0; i < size; ++i)
- m_jumps[i].link(masm);
- m_jumps.clear();
- }
-
- void linkTo(Label label, MacroAssembler* masm)
- {
- size_t size = m_jumps.size();
- for (size_t i = 0; i < size; ++i)
- m_jumps[i].linkTo(label, masm);
- m_jumps.clear();
- }
-
- void append(Jump jump)
- {
- m_jumps.append(jump);
- }
-
- void append(JumpList& other)
- {
- m_jumps.append(other.m_jumps.begin(), other.m_jumps.size());
- }
-
- bool empty()
- {
- return !m_jumps.size();
- }
-
- private:
- Vector<Jump, 16> m_jumps;
- };
-
-
- // PatchBuffer:
- //
- // This class assists in linking code generated by the macro assembler, once code generation
- // has been completed, and the code has been copied to is final location in memory. At this
- // time pointers to labels within the code may be resolved, and relative offsets to external
- // addresses may be fixed.
- //
- // Specifically:
- // * Jump objects may be linked to external targets,
- // * The address of Jump objects may taken, such that it can later be relinked.
- // * The return address of a Jump object representing a call may be acquired.
- // * The address of a Label pointing into the code may be resolved.
- // * The value referenced by a DataLabel may be fixed.
- //
- // FIXME: distinguish between Calls & Jumps (make a specific call to obtain the return
- // address of calls, as opposed to a point that can be used to later relink a Jump -
- // possibly wrap the later up in an object that can do just that).
- class PatchBuffer {
- public:
- PatchBuffer(void* code)
- : m_code(code)
- {
- }
-
- void link(Jump jump, void* target)
- {
- X86Assembler::link(m_code, jump.m_jmp, target);
- }
-
- void link(JumpList list, void* target)
- {
- for (unsigned i = 0; i < list.m_jumps.size(); ++i)
- X86Assembler::link(m_code, list.m_jumps[i], target);
- }
-
- void* addressOf(Jump jump)
- {
- return X86Assembler::getRelocatedAddress(m_code, jump.m_jmp);
- }
-
- void* addressOf(Label label)
- {
- return X86Assembler::getRelocatedAddress(m_code, label.m_label);
- }
-
- void* addressOf(DataLabelPtr label)
- {
- return X86Assembler::getRelocatedAddress(m_code, label.m_label);
- }
-
- void* addressOf(DataLabel32 label)
- {
- return X86Assembler::getRelocatedAddress(m_code, label.m_label);
- }
-
- void setPtr(DataLabelPtr label, void* value)
- {
- X86Assembler::patchAddress(m_code, label.m_label, value);
- }
-
- private:
- void* m_code;
- };
-
-
- // ImmPtr:
- //
- // A pointer sized immediate operand to an instruction - this is wrapped
- // in a class requiring explicit construction in order to differentiate
- // from pointers used as absolute addresses to memory operations
- struct ImmPtr {
- explicit ImmPtr(void* value)
- : m_value(value)
- {
- }
-
- intptr_t asIntptr()
- {
- return reinterpret_cast<intptr_t>(m_value);
- }
-
- void* m_value;
- };
-
-
- // Imm32:
- //
- // A 32bit immediate operand to an instruction - this is wrapped in a
- // class requiring explicit construction in order to prevent RegisterIDs
- // (which are implemented as an enum) from accidentally being passed as
- // immediate values.
- struct Imm32 {
- explicit Imm32(int32_t value)
- : m_value(value)
- {
- }
-
-#if PLATFORM(X86)
- explicit Imm32(ImmPtr ptr)
- : m_value(ptr.asIntptr())
- {
- }
-#endif
-
- int32_t m_value;
- };
-
- // Integer arithmetic operations:
- //
- // Operations are typically two operand - operation(source, srcDst)
- // For many operations the source may be an Imm32, the srcDst operand
- // may often be a memory location (explictly described using an Address
- // object).
-
- void addPtr(RegisterID src, RegisterID dest)
+ void poke(RegisterID src, int index = 0)
{
-#if PLATFORM(X86_64)
- m_assembler.addq_rr(src, dest);
-#else
- add32(src, dest);
-#endif
+ storePtr(src, Address(stackPointerRegister, (index * sizeof(void*))));
}
- void addPtr(Imm32 imm, RegisterID srcDest)
+ void poke(Imm32 value, int index = 0)
{
-#if PLATFORM(X86_64)
- m_assembler.addq_ir(imm.m_value, srcDest);
-#else
- add32(imm, srcDest);
-#endif
+ store32(value, Address(stackPointerRegister, (index * sizeof(void*))));
}
- void addPtr(Imm32 imm, RegisterID src, RegisterID dest)
+ void poke(ImmPtr imm, int index = 0)
{
- m_assembler.leal_mr(imm.m_value, src, dest);
+ storePtr(imm, Address(stackPointerRegister, (index * sizeof(void*))));
}
- void add32(RegisterID src, RegisterID dest)
+
+ // Backwards banches, these are currently all implemented using existing forwards branch mechanisms.
+ void branchPtr(Condition cond, RegisterID op1, ImmPtr imm, Label target)
{
- m_assembler.addl_rr(src, dest);
+ branchPtr(cond, op1, imm).linkTo(target, this);
}
- void add32(Imm32 imm, Address address)
+ void branch32(Condition cond, RegisterID op1, RegisterID op2, Label target)
{
- m_assembler.addl_im(imm.m_value, address.offset, address.base);
+ branch32(cond, op1, op2).linkTo(target, this);
}
- void add32(Imm32 imm, RegisterID dest)
+ void branch32(Condition cond, RegisterID op1, Imm32 imm, Label target)
{
- m_assembler.addl_ir(imm.m_value, dest);
+ branch32(cond, op1, imm).linkTo(target, this);
}
-
- void add32(Imm32 imm, AbsoluteAddress address)
+
+ void branch32(Condition cond, RegisterID left, Address right, Label target)
{
-#if PLATFORM(X86_64)
- move(ImmPtr(address.m_ptr), scratchRegister);
- add32(imm, Address(scratchRegister));
-#else
- m_assembler.addl_im(imm.m_value, address.m_ptr);
-#endif
+ branch32(cond, left, right).linkTo(target, this);
}
-
- void add32(Address src, RegisterID dest)
+
+ void branch16(Condition cond, BaseIndex left, RegisterID right, Label target)
{
- m_assembler.addl_mr(src.offset, src.base, dest);
+ branch16(cond, left, right).linkTo(target, this);
}
- void andPtr(RegisterID src, RegisterID dest)
+ void branchTestPtr(Condition cond, RegisterID reg, Label target)
{
-#if PLATFORM(X86_64)
- m_assembler.andq_rr(src, dest);
-#else
- and32(src, dest);
-#endif
+ branchTestPtr(cond, reg).linkTo(target, this);
}
- void andPtr(Imm32 imm, RegisterID srcDest)
+ void jump(Label target)
{
-#if PLATFORM(X86_64)
- m_assembler.andq_ir(imm.m_value, srcDest);
-#else
- and32(imm, srcDest);
-#endif
+ jump().linkTo(target, this);
}
- void and32(RegisterID src, RegisterID dest)
- {
- m_assembler.andl_rr(src, dest);
- }
- void and32(Imm32 imm, RegisterID dest)
+ // Ptr methods
+ // On 32-bit platforms (i.e. x86), these methods directly map onto their 32-bit equivalents.
+#if !PLATFORM(X86_64)
+ void addPtr(RegisterID src, RegisterID dest)
{
- m_assembler.andl_ir(imm.m_value, dest);
+ add32(src, dest);
}
- void lshift32(Imm32 imm, RegisterID dest)
+ void addPtr(Imm32 imm, RegisterID srcDest)
{
- m_assembler.shll_i8r(imm.m_value, dest);
+ add32(imm, srcDest);
}
-
- void lshift32(RegisterID shift_amount, RegisterID dest)
+
+ void addPtr(ImmPtr imm, RegisterID dest)
{
- // On x86 we can only shift by ecx; if asked to shift by another register we'll
- // need rejig the shift amount into ecx first, and restore the registers afterwards.
- if (shift_amount != X86::ecx) {
- swap(shift_amount, X86::ecx);
-
- // E.g. transform "shll %eax, %eax" -> "xchgl %eax, %ecx; shll %ecx, %ecx; xchgl %eax, %ecx"
- if (dest == shift_amount)
- m_assembler.shll_CLr(X86::ecx);
- // E.g. transform "shll %eax, %ecx" -> "xchgl %eax, %ecx; shll %ecx, %eax; xchgl %eax, %ecx"
- else if (dest == X86::ecx)
- m_assembler.shll_CLr(shift_amount);
- // E.g. transform "shll %eax, %ebx" -> "xchgl %eax, %ecx; shll %ecx, %ebx; xchgl %eax, %ecx"
- else
- m_assembler.shll_CLr(dest);
-
- swap(shift_amount, X86::ecx);
- } else
- m_assembler.shll_CLr(dest);
+ add32(Imm32(imm), dest);
}
-
- // Take the value from dividend, divide it by divisor, and put the remainder in remainder.
- // For now, this operation has specific register requirements, and the three register must
- // be unique. It is unfortunate to expose this in the MacroAssembler interface, however
- // given the complexity to fix, the fact that it is not uncommmon for processors to have
- // specific register requirements on this operation (e.g. Mips result in 'hi'), or to not
- // support a hardware divide at all, it may not be
- void mod32(RegisterID divisor, RegisterID dividend, RegisterID remainder)
- {
-#ifdef NDEBUG
-#pragma unused(dividend,remainder)
-#else
- ASSERT((dividend == X86::eax) && (remainder == X86::edx));
- ASSERT((dividend != divisor) && (remainder != divisor));
-#endif
- m_assembler.cdq();
- m_assembler.idivl_r(divisor);
+ void addPtr(Imm32 imm, RegisterID src, RegisterID dest)
+ {
+ add32(imm, src, dest);
}
- void mul32(Imm32 imm, RegisterID src, RegisterID dest)
+ void andPtr(RegisterID src, RegisterID dest)
{
- m_assembler.imull_i32r(src, imm.m_value, dest);
+ and32(src, dest);
}
-
- void not32(RegisterID srcDest)
+
+ void andPtr(Imm32 imm, RegisterID srcDest)
{
- m_assembler.notl_r(srcDest);
+ and32(imm, srcDest);
}
-
+
void orPtr(RegisterID src, RegisterID dest)
{
-#if PLATFORM(X86_64)
- m_assembler.orq_rr(src, dest);
-#else
or32(src, dest);
-#endif
}
void orPtr(ImmPtr imm, RegisterID dest)
{
-#if PLATFORM(X86_64)
- move(imm, scratchRegister);
- m_assembler.orq_rr(scratchRegister, dest);
-#else
or32(Imm32(imm), dest);
-#endif
}
void orPtr(Imm32 imm, RegisterID dest)
{
-#if PLATFORM(X86_64)
- m_assembler.orq_ir(imm.m_value, dest);
-#else
or32(imm, dest);
-#endif
- }
-
- void or32(RegisterID src, RegisterID dest)
- {
- m_assembler.orl_rr(src, dest);
- }
-
- void or32(Imm32 imm, RegisterID dest)
- {
- m_assembler.orl_ir(imm.m_value, dest);
}
void rshiftPtr(RegisterID shift_amount, RegisterID dest)
{
-#if PLATFORM(X86_64)
- // On x86 we can only shift by ecx; if asked to shift by another register we'll
- // need rejig the shift amount into ecx first, and restore the registers afterwards.
- if (shift_amount != X86::ecx) {
- swap(shift_amount, X86::ecx);
-
- // E.g. transform "shll %eax, %eax" -> "xchgl %eax, %ecx; shll %ecx, %ecx; xchgl %eax, %ecx"
- if (dest == shift_amount)
- m_assembler.sarq_CLr(X86::ecx);
- // E.g. transform "shll %eax, %ecx" -> "xchgl %eax, %ecx; shll %ecx, %eax; xchgl %eax, %ecx"
- else if (dest == X86::ecx)
- m_assembler.sarq_CLr(shift_amount);
- // E.g. transform "shll %eax, %ebx" -> "xchgl %eax, %ecx; shll %ecx, %ebx; xchgl %eax, %ecx"
- else
- m_assembler.sarq_CLr(dest);
-
- swap(shift_amount, X86::ecx);
- } else
- m_assembler.sarq_CLr(dest);
-#else
rshift32(shift_amount, dest);
-#endif
}
void rshiftPtr(Imm32 imm, RegisterID dest)
{
-#if PLATFORM(X86_64)
- m_assembler.sarq_i8r(imm.m_value, dest);
-#else
rshift32(imm, dest);
-#endif
- }
-
- void rshift32(RegisterID shift_amount, RegisterID dest)
- {
- // On x86 we can only shift by ecx; if asked to shift by another register we'll
- // need rejig the shift amount into ecx first, and restore the registers afterwards.
- if (shift_amount != X86::ecx) {
- swap(shift_amount, X86::ecx);
-
- // E.g. transform "shll %eax, %eax" -> "xchgl %eax, %ecx; shll %ecx, %ecx; xchgl %eax, %ecx"
- if (dest == shift_amount)
- m_assembler.sarl_CLr(X86::ecx);
- // E.g. transform "shll %eax, %ecx" -> "xchgl %eax, %ecx; shll %ecx, %eax; xchgl %eax, %ecx"
- else if (dest == X86::ecx)
- m_assembler.sarl_CLr(shift_amount);
- // E.g. transform "shll %eax, %ebx" -> "xchgl %eax, %ecx; shll %ecx, %ebx; xchgl %eax, %ecx"
- else
- m_assembler.sarl_CLr(dest);
-
- swap(shift_amount, X86::ecx);
- } else
- m_assembler.sarl_CLr(dest);
}
- void rshift32(Imm32 imm, RegisterID dest)
+ void subPtr(RegisterID src, RegisterID dest)
{
- m_assembler.sarl_i8r(imm.m_value, dest);
+ sub32(src, dest);
}
-
+
void subPtr(Imm32 imm, RegisterID dest)
{
-#if PLATFORM(X86_64)
- m_assembler.subq_ir(imm.m_value, dest);
-#else
sub32(imm, dest);
-#endif
}
- void sub32(Imm32 imm, RegisterID dest)
- {
- m_assembler.subl_ir(imm.m_value, dest);
- }
-
- void sub32(Imm32 imm, Address address)
- {
- m_assembler.subl_im(imm.m_value, address.offset, address.base);
- }
-
- void sub32(Imm32 imm, AbsoluteAddress address)
- {
-#if PLATFORM(X86_64)
- move(ImmPtr(address.m_ptr), scratchRegister);
- sub32(imm, Address(scratchRegister));
-#else
- m_assembler.subl_im(imm.m_value, address.m_ptr);
-#endif
- }
-
- void sub32(Address src, RegisterID dest)
+ void subPtr(ImmPtr imm, RegisterID dest)
{
- m_assembler.subl_mr(src.offset, src.base, dest);
+ sub32(Imm32(imm), dest);
}
void xorPtr(RegisterID src, RegisterID dest)
{
-#if PLATFORM(X86_64)
- m_assembler.xorq_rr(src, dest);
-#else
xor32(src, dest);
-#endif
}
void xorPtr(Imm32 imm, RegisterID srcDest)
{
-#if PLATFORM(X86_64)
- m_assembler.xorq_ir(imm.m_value, srcDest);
-#else
xor32(imm, srcDest);
-#endif
- }
-
- void xor32(RegisterID src, RegisterID dest)
- {
- m_assembler.xorl_rr(src, dest);
}
- void xor32(Imm32 imm, RegisterID srcDest)
- {
- m_assembler.xorl_ir(imm.m_value, srcDest);
- }
-
-
- // Memory access operations:
- //
- // Loads are of the form load(address, destination) and stores of the form
- // store(source, address). The source for a store may be an Imm32. Address
- // operand objects to loads and store will be implicitly constructed if a
- // register is passed.
void loadPtr(ImplicitAddress address, RegisterID dest)
{
-#if PLATFORM(X86_64)
- m_assembler.movq_mr(address.offset, address.base, dest);
-#else
load32(address, dest);
-#endif
- }
-
- DataLabel32 loadPtrWithAddressOffsetPatch(Address address, RegisterID dest)
- {
-#if PLATFORM(X86_64)
- m_assembler.movq_mr_disp32(address.offset, address.base, dest);
- return DataLabel32(this);
-#else
- m_assembler.movl_mr_disp32(address.offset, address.base, dest);
- return DataLabel32(this);
-#endif
}
void loadPtr(BaseIndex address, RegisterID dest)
{
-#if PLATFORM(X86_64)
- m_assembler.movq_mr(address.offset, address.base, address.index, address.scale, dest);
-#else
load32(address, dest);
-#endif
}
void loadPtr(void* address, RegisterID dest)
{
-#if PLATFORM(X86_64)
- if (dest == X86::eax)
- m_assembler.movq_mEAX(address);
- else {
- move(X86::eax, dest);
- m_assembler.movq_mEAX(address);
- swap(X86::eax, dest);
- }
-#else
load32(address, dest);
-#endif
- }
-
- void load32(ImplicitAddress address, RegisterID dest)
- {
- m_assembler.movl_mr(address.offset, address.base, dest);
- }
-
- void load32(BaseIndex address, RegisterID dest)
- {
- m_assembler.movl_mr(address.offset, address.base, address.index, address.scale, dest);
}
- void load32(void* address, RegisterID dest)
+ DataLabel32 loadPtrWithAddressOffsetPatch(Address address, RegisterID dest)
{
-#if PLATFORM(X86_64)
- if (dest == X86::eax)
- m_assembler.movl_mEAX(address);
- else {
- move(X86::eax, dest);
- m_assembler.movl_mEAX(address);
- swap(X86::eax, dest);
- }
-#else
- m_assembler.movl_mr(address, dest);
-#endif
+ return load32WithAddressOffsetPatch(address, dest);
}
- void load16(BaseIndex address, RegisterID dest)
+ void setPtr(Condition cond, RegisterID left, Imm32 right, RegisterID dest)
{
- m_assembler.movzwl_mr(address.offset, address.base, address.index, address.scale, dest);
+ set32(cond, left, right, dest);
}
void storePtr(RegisterID src, ImplicitAddress address)
{
-#if PLATFORM(X86_64)
- m_assembler.movq_rm(src, address.offset, address.base);
-#else
store32(src, address);
-#endif
- }
-
- DataLabel32 storePtrWithAddressOffsetPatch(RegisterID src, Address address)
- {
-#if PLATFORM(X86_64)
- m_assembler.movq_rm_disp32(src, address.offset, address.base);
- return DataLabel32(this);
-#else
- m_assembler.movl_rm_disp32(src, address.offset, address.base);
- return DataLabel32(this);
-#endif
}
void storePtr(RegisterID src, BaseIndex address)
{
-#if PLATFORM(X86_64)
- m_assembler.movq_rm(src, address.offset, address.base, address.index, address.scale);
-#else
store32(src, address);
-#endif
- }
-
- void storePtr(ImmPtr imm, ImplicitAddress address)
- {
-#if PLATFORM(X86_64)
- move(imm, scratchRegister);
- storePtr(scratchRegister, address);
-#else
- m_assembler.movl_i32m(imm.asIntptr(), address.offset, address.base);
-#endif
- }
-
- DataLabelPtr storePtrWithPatch(Address address)
- {
-#if PLATFORM(X86_64)
- m_assembler.movq_i64r(0, scratchRegister);
- DataLabelPtr label(this);
- storePtr(scratchRegister, address);
- return label;
-#else
- m_assembler.movl_i32m(0, address.offset, address.base);
- return DataLabelPtr(this);
-#endif
- }
-
- void store32(RegisterID src, ImplicitAddress address)
- {
- m_assembler.movl_rm(src, address.offset, address.base);
- }
-
- void store32(RegisterID src, BaseIndex address)
- {
- m_assembler.movl_rm(src, address.offset, address.base, address.index, address.scale);
- }
-
- void store32(Imm32 imm, ImplicitAddress address)
- {
- m_assembler.movl_i32m(imm.m_value, address.offset, address.base);
- }
-
- void store32(Imm32 imm, void* address)
- {
-#if PLATFORM(X86_64)
- move(X86::eax, scratchRegister);
- move(imm, X86::eax);
- m_assembler.movl_EAXm(address);
- move(scratchRegister, X86::eax);
-#else
- m_assembler.movl_i32m(imm.m_value, address);
-#endif
- }
-
-
- // Stack manipulation operations:
- //
- // The ABI is assumed to provide a stack abstraction to memory,
- // containing machine word sized units of data. Push and pop
- // operations add and remove a single register sized unit of data
- // to or from the stack. Peek and poke operations read or write
- // values on the stack, without moving the current stack position.
-
- void pop(RegisterID dest)
- {
- m_assembler.pop_r(dest);
- }
-
- void push(RegisterID src)
- {
- m_assembler.push_r(src);
- }
-
- void push(Address address)
- {
- m_assembler.push_m(address.offset, address.base);
- }
-
- void push(Imm32 imm)
- {
- m_assembler.push_i32(imm.m_value);
- }
-
- void pop()
- {
- addPtr(Imm32(sizeof(void*)), X86::esp);
- }
-
- void peek(RegisterID dest, int index = 0)
- {
- loadPtr(Address(X86::esp, (index * sizeof(void *))), dest);
- }
-
- void poke(RegisterID src, int index = 0)
- {
- storePtr(src, Address(X86::esp, (index * sizeof(void *))));
- }
-
- void poke(Imm32 value, int index = 0)
- {
- store32(value, Address(X86::esp, (index * sizeof(void *))));
- }
-
- void poke(ImmPtr imm, int index = 0)
- {
- storePtr(imm, Address(X86::esp, (index * sizeof(void *))));
- }
-
- // Register move operations:
- //
- // Move values in registers.
-
- void move(Imm32 imm, RegisterID dest)
- {
- // Note: on 64-bit the Imm32 value is zero extended into the register, it
- // may be useful to have a separate version that sign extends the value?
- if (!imm.m_value)
- m_assembler.xorl_rr(dest, dest);
- else
- m_assembler.movl_i32r(imm.m_value, dest);
- }
-
- void move(RegisterID src, RegisterID dest)
- {
- // Note: on 64-bit this is is a full register move; perhaps it would be
- // useful to have separate move32 & movePtr, with move32 zero extending?
-#if PLATFORM(X86_64)
- m_assembler.movq_rr(src, dest);
-#else
- m_assembler.movl_rr(src, dest);
-#endif
- }
-
- void move(ImmPtr imm, RegisterID dest)
- {
-#if PLATFORM(X86_64)
- if (CAN_SIGN_EXTEND_U32_64(imm.asIntptr()))
- m_assembler.movl_i32r(static_cast<int32_t>(imm.asIntptr()), dest);
- else
- m_assembler.movq_i64r(imm.asIntptr(), dest);
-#else
- m_assembler.movl_i32r(imm.asIntptr(), dest);
-#endif
- }
-
- void swap(RegisterID reg1, RegisterID reg2)
- {
-#if PLATFORM(X86_64)
- m_assembler.xchgq_rr(reg1, reg2);
-#else
- m_assembler.xchgl_rr(reg1, reg2);
-#endif
- }
-
- void signExtend32ToPtr(RegisterID src, RegisterID dest)
- {
-#if PLATFORM(X86_64)
- m_assembler.movsxd_rr(src, dest);
-#else
- if (src != dest)
- move(src, dest);
-#endif
- }
-
- void zeroExtend32ToPtr(RegisterID src, RegisterID dest)
- {
-#if PLATFORM(X86_64)
- m_assembler.movl_rr(src, dest);
-#else
- if (src != dest)
- move(src, dest);
-#endif
- }
-
-
- // Forwards / external control flow operations:
- //
- // This set of jump and conditional branch operations return a Jump
- // object which may linked at a later point, allow forwards jump,
- // or jumps that will require external linkage (after the code has been
- // relocated).
- //
- // For branches, signed <, >, <= and >= are denoted as l, g, le, and ge
- // respecitvely, for unsigned comparisons the names b, a, be, and ae are
- // used (representing the names 'below' and 'above').
- //
- // Operands to the comparision are provided in the expected order, e.g.
- // jle32(reg1, Imm32(5)) will branch if the value held in reg1, when
- // treated as a signed 32bit value, is less than or equal to 5.
- //
- // jz and jnz test whether the first operand is equal to zero, and take
- // an optional second operand of a mask under which to perform the test.
-
-private:
- void compareImm32ForBranch(RegisterID left, int32_t right)
- {
- m_assembler.cmpl_ir(right, left);
- }
-
- void compareImm32ForBranchEquality(RegisterID reg, int32_t imm)
- {
- if (!imm)
- m_assembler.testl_rr(reg, reg);
- else
- m_assembler.cmpl_ir(imm, reg);
- }
-
- void compareImm32ForBranchEquality(Address address, int32_t imm)
- {
- m_assembler.cmpl_im(imm, address.offset, address.base);
- }
-
- void testImm32(RegisterID reg, Imm32 mask)
- {
- // if we are only interested in the low seven bits, this can be tested with a testb
- if (mask.m_value == -1)
- m_assembler.testl_rr(reg, reg);
- else if ((mask.m_value & ~0x7f) == 0)
- m_assembler.testb_i8r(mask.m_value, reg);
- else
- m_assembler.testl_i32r(mask.m_value, reg);
- }
-
- void testImm32(Address address, Imm32 mask)
- {
- if (mask.m_value == -1)
- m_assembler.cmpl_im(0, address.offset, address.base);
- else
- m_assembler.testl_i32m(mask.m_value, address.offset, address.base);
- }
-
- void testImm32(BaseIndex address, Imm32 mask)
- {
- if (mask.m_value == -1)
- m_assembler.cmpl_im(0, address.offset, address.base, address.index, address.scale);
- else
- m_assembler.testl_i32m(mask.m_value, address.offset, address.base, address.index, address.scale);
- }
-
-#if PLATFORM(X86_64)
- void compareImm64ForBranch(RegisterID left, int32_t right)
- {
- m_assembler.cmpq_ir(right, left);
- }
-
- void compareImm64ForBranchEquality(RegisterID reg, int32_t imm)
- {
- if (!imm)
- m_assembler.testq_rr(reg, reg);
- else
- m_assembler.cmpq_ir(imm, reg);
- }
-
- void testImm64(RegisterID reg, Imm32 mask)
- {
- // if we are only interested in the low seven bits, this can be tested with a testb
- if (mask.m_value == -1)
- m_assembler.testq_rr(reg, reg);
- else if ((mask.m_value & ~0x7f) == 0)
- m_assembler.testb_i8r(mask.m_value, reg);
- else
- m_assembler.testq_i32r(mask.m_value, reg);
- }
-
- void testImm64(Address address, Imm32 mask)
- {
- if (mask.m_value == -1)
- m_assembler.cmpq_im(0, address.offset, address.base);
- else
- m_assembler.testq_i32m(mask.m_value, address.offset, address.base);
- }
-
- void testImm64(BaseIndex address, Imm32 mask)
- {
- if (mask.m_value == -1)
- m_assembler.cmpq_im(0, address.offset, address.base, address.index, address.scale);
- else
- m_assembler.testq_i32m(mask.m_value, address.offset, address.base, address.index, address.scale);
- }
-#endif
-
-public:
- Jump ja32(RegisterID left, Imm32 right)
- {
- compareImm32ForBranch(left, right.m_value);
- return Jump(m_assembler.ja());
- }
-
- Jump jaePtr(RegisterID left, RegisterID right)
- {
-#if PLATFORM(X86_64)
- m_assembler.cmpq_rr(right, left);
- return Jump(m_assembler.jae());
-#else
- return jae32(left, right);
-#endif
- }
-
- Jump jaePtr(RegisterID reg, ImmPtr ptr)
- {
-#if PLATFORM(X86_64)
- intptr_t imm = ptr.asIntptr();
- if (CAN_SIGN_EXTEND_32_64(imm)) {
- compareImm64ForBranch(reg, imm);
- return Jump(m_assembler.jae());
- } else {
- move(ptr, scratchRegister);
- return jaePtr(reg, scratchRegister);
- }
-#else
- return jae32(reg, Imm32(ptr));
-#endif
- }
-
- Jump jae32(RegisterID left, RegisterID right)
- {
- m_assembler.cmpl_rr(right, left);
- return Jump(m_assembler.jae());
}
- Jump jae32(RegisterID left, Imm32 right)
+ void storePtr(RegisterID src, void* address)
{
- compareImm32ForBranch(left, right.m_value);
- return Jump(m_assembler.jae());
- }
-
- Jump jae32(RegisterID left, Address right)
- {
- m_assembler.cmpl_mr(right.offset, right.base, left);
- return Jump(m_assembler.jae());
- }
-
- Jump jae32(Address left, RegisterID right)
- {
- m_assembler.cmpl_rm(right, left.offset, left.base);
- return Jump(m_assembler.jae());
- }
-
- Jump jbPtr(RegisterID left, RegisterID right)
- {
-#if PLATFORM(X86_64)
- m_assembler.cmpq_rr(right, left);
- return Jump(m_assembler.jb());
-#else
- return jb32(left, right);
-#endif
- }
-
- Jump jbPtr(RegisterID reg, ImmPtr ptr)
- {
-#if PLATFORM(X86_64)
- intptr_t imm = ptr.asIntptr();
- if (CAN_SIGN_EXTEND_32_64(imm)) {
- compareImm64ForBranch(reg, imm);
- return Jump(m_assembler.jb());
- } else {
- move(ptr, scratchRegister);
- return jbPtr(reg, scratchRegister);
- }
-#else
- return jb32(reg, Imm32(ptr));
-#endif
- }
-
- Jump jb32(RegisterID left, RegisterID right)
- {
- m_assembler.cmpl_rr(right, left);
- return Jump(m_assembler.jb());
- }
-
- Jump jb32(RegisterID left, Imm32 right)
- {
- compareImm32ForBranch(left, right.m_value);
- return Jump(m_assembler.jb());
- }
-
- Jump jb32(RegisterID left, Address right)
- {
- m_assembler.cmpl_mr(right.offset, right.base, left);
- return Jump(m_assembler.jb());
- }
-
- Jump jePtr(RegisterID op1, RegisterID op2)
- {
-#if PLATFORM(X86_64)
- m_assembler.cmpq_rr(op1, op2);
- return Jump(m_assembler.je());
-#else
- return je32(op1, op2);
-#endif
- }
-
- Jump jePtr(RegisterID reg, Address address)
- {
-#if PLATFORM(X86_64)
- m_assembler.cmpq_rm(reg, address.offset, address.base);
-#else
- m_assembler.cmpl_rm(reg, address.offset, address.base);
-#endif
- return Jump(m_assembler.je());
- }
-
- Jump jePtr(RegisterID reg, ImmPtr ptr)
- {
-#if PLATFORM(X86_64)
- intptr_t imm = ptr.asIntptr();
- if (CAN_SIGN_EXTEND_32_64(imm)) {
- compareImm64ForBranchEquality(reg, imm);
- return Jump(m_assembler.je());
- } else {
- move(ptr, scratchRegister);
- return jePtr(scratchRegister, reg);
- }
-#else
- return je32(reg, Imm32(ptr));
-#endif
- }
-
- Jump jePtr(Address address, ImmPtr imm)
- {
-#if PLATFORM(X86_64)
- move(imm, scratchRegister);
- return jePtr(scratchRegister, address);
-#else
- return je32(address, Imm32(imm));
-#endif
- }
-
- Jump je32(RegisterID op1, RegisterID op2)
- {
- m_assembler.cmpl_rr(op1, op2);
- return Jump(m_assembler.je());
- }
-
- Jump je32(Address op1, RegisterID op2)
- {
- m_assembler.cmpl_mr(op1.offset, op1.base, op2);
- return Jump(m_assembler.je());
- }
-
- Jump je32(RegisterID reg, Imm32 imm)
- {
- compareImm32ForBranchEquality(reg, imm.m_value);
- return Jump(m_assembler.je());
- }
-
- Jump je32(Address address, Imm32 imm)
- {
- compareImm32ForBranchEquality(address, imm.m_value);
- return Jump(m_assembler.je());
- }
-
- Jump je16(RegisterID op1, BaseIndex op2)
- {
- m_assembler.cmpw_rm(op1, op2.offset, op2.base, op2.index, op2.scale);
- return Jump(m_assembler.je());
- }
-
- Jump jg32(RegisterID left, RegisterID right)
- {
- m_assembler.cmpl_rr(right, left);
- return Jump(m_assembler.jg());
- }
-
- Jump jg32(RegisterID reg, Address address)
- {
- m_assembler.cmpl_mr(address.offset, address.base, reg);
- return Jump(m_assembler.jg());
- }
-
- Jump jgePtr(RegisterID left, RegisterID right)
- {
-#if PLATFORM(X86_64)
- m_assembler.cmpq_rr(right, left);
- return Jump(m_assembler.jge());
-#else
- return jge32(left, right);
-#endif
- }
-
- Jump jgePtr(RegisterID reg, ImmPtr ptr)
- {
-#if PLATFORM(X86_64)
- intptr_t imm = ptr.asIntptr();
- if (CAN_SIGN_EXTEND_32_64(imm)) {
- compareImm64ForBranch(reg, imm);
- return Jump(m_assembler.jge());
- } else {
- move(ptr, scratchRegister);
- return jgePtr(reg, scratchRegister);
- }
-#else
- return jge32(reg, Imm32(ptr));
-#endif
- }
-
- Jump jge32(RegisterID left, RegisterID right)
- {
- m_assembler.cmpl_rr(right, left);
- return Jump(m_assembler.jge());
- }
-
- Jump jge32(RegisterID left, Imm32 right)
- {
- compareImm32ForBranch(left, right.m_value);
- return Jump(m_assembler.jge());
- }
-
- Jump jlPtr(RegisterID left, RegisterID right)
- {
-#if PLATFORM(X86_64)
- m_assembler.cmpq_rr(right, left);
- return Jump(m_assembler.jl());
-#else
- return jl32(left, right);
-#endif
- }
-
- Jump jlPtr(RegisterID reg, ImmPtr ptr)
- {
-#if PLATFORM(X86_64)
- intptr_t imm = ptr.asIntptr();
- if (CAN_SIGN_EXTEND_32_64(imm)) {
- compareImm64ForBranch(reg, imm);
- return Jump(m_assembler.jl());
- } else {
- move(ptr, scratchRegister);
- return jlPtr(reg, scratchRegister);
- }
-#else
- return jl32(reg, Imm32(ptr));
-#endif
- }
-
- Jump jl32(RegisterID left, RegisterID right)
- {
- m_assembler.cmpl_rr(right, left);
- return Jump(m_assembler.jl());
- }
-
- Jump jl32(RegisterID left, Imm32 right)
- {
- compareImm32ForBranch(left, right.m_value);
- return Jump(m_assembler.jl());
- }
-
- Jump jlePtr(RegisterID left, RegisterID right)
- {
-#if PLATFORM(X86_64)
- m_assembler.cmpq_rr(right, left);
- return Jump(m_assembler.jle());
-#else
- return jle32(left, right);
-#endif
- }
-
- Jump jlePtr(RegisterID reg, ImmPtr ptr)
- {
-#if PLATFORM(X86_64)
- intptr_t imm = ptr.asIntptr();
- if (CAN_SIGN_EXTEND_32_64(imm)) {
- compareImm64ForBranch(reg, imm);
- return Jump(m_assembler.jle());
- } else {
- move(ptr, scratchRegister);
- return jlePtr(reg, scratchRegister);
- }
-#else
- return jle32(reg, Imm32(ptr));
-#endif
- }
-
- Jump jle32(RegisterID left, RegisterID right)
- {
- m_assembler.cmpl_rr(right, left);
- return Jump(m_assembler.jle());
- }
-
- Jump jle32(RegisterID left, Imm32 right)
- {
- compareImm32ForBranch(left, right.m_value);
- return Jump(m_assembler.jle());
+ store32(src, address);
}
- Jump jnePtr(RegisterID op1, RegisterID op2)
+ void storePtr(ImmPtr imm, ImplicitAddress address)
{
-#if PLATFORM(X86_64)
- m_assembler.cmpq_rr(op1, op2);
- return Jump(m_assembler.jne());
-#else
- return jne32(op1, op2);
-#endif
+ store32(Imm32(imm), address);
}
- Jump jnePtr(RegisterID reg, Address address)
+ void storePtr(ImmPtr imm, void* address)
{
-#if PLATFORM(X86_64)
- m_assembler.cmpq_rm(reg, address.offset, address.base);
-#else
- m_assembler.cmpl_rm(reg, address.offset, address.base);
-#endif
- return Jump(m_assembler.jne());
+ store32(Imm32(imm), address);
}
- Jump jnePtr(RegisterID reg, AbsoluteAddress address)
+ DataLabel32 storePtrWithAddressOffsetPatch(RegisterID src, Address address)
{
-#if PLATFORM(X86_64)
- move(ImmPtr(address.m_ptr), scratchRegister);
- return jnePtr(reg, Address(scratchRegister));
-#else
- m_assembler.cmpl_rm(reg, address.m_ptr);
- return Jump(m_assembler.jne());
-#endif
+ return store32WithAddressOffsetPatch(src, address);
}
- Jump jnePtr(RegisterID reg, ImmPtr ptr)
- {
-#if PLATFORM(X86_64)
- intptr_t imm = ptr.asIntptr();
- if (CAN_SIGN_EXTEND_32_64(imm)) {
- compareImm64ForBranchEquality(reg, imm);
- return Jump(m_assembler.jne());
- } else {
- move(ptr, scratchRegister);
- return jnePtr(scratchRegister, reg);
- }
-#else
- return jne32(reg, Imm32(ptr));
-#endif
- }
- Jump jnePtr(Address address, ImmPtr imm)
+ Jump branchPtr(Condition cond, RegisterID left, RegisterID right)
{
-#if PLATFORM(X86_64)
- move(imm, scratchRegister);
- return jnePtr(scratchRegister, address);
-#else
- return jne32(address, Imm32(imm));
-#endif
+ return branch32(cond, left, right);
}
-#if !PLATFORM(X86_64)
- Jump jnePtr(AbsoluteAddress address, ImmPtr imm)
+ Jump branchPtr(Condition cond, RegisterID left, ImmPtr right)
{
- m_assembler.cmpl_im(imm.asIntptr(), address.m_ptr);
- return Jump(m_assembler.jne());
+ return branch32(cond, left, Imm32(right));
}
-#endif
- Jump jnePtrWithPatch(RegisterID reg, DataLabelPtr& dataLabel, ImmPtr initialValue = ImmPtr(0))
+ Jump branchPtr(Condition cond, RegisterID left, Address right)
{
-#if PLATFORM(X86_64)
- m_assembler.movq_i64r(initialValue.asIntptr(), scratchRegister);
- dataLabel = DataLabelPtr(this);
- return jnePtr(scratchRegister, reg);
-#else
- m_assembler.cmpl_ir_force32(initialValue.asIntptr(), reg);
- dataLabel = DataLabelPtr(this);
- return Jump(m_assembler.jne());
-#endif
+ return branch32(cond, left, right);
}
- Jump jnePtrWithPatch(Address address, DataLabelPtr& dataLabel, ImmPtr initialValue = ImmPtr(0))
+ Jump branchPtr(Condition cond, Address left, RegisterID right)
{
-#if PLATFORM(X86_64)
- m_assembler.movq_i64r(initialValue.asIntptr(), scratchRegister);
- dataLabel = DataLabelPtr(this);
- return jnePtr(scratchRegister, address);
-#else
- m_assembler.cmpl_im_force32(initialValue.asIntptr(), address.offset, address.base);
- dataLabel = DataLabelPtr(this);
- return Jump(m_assembler.jne());
-#endif
+ return branch32(cond, left, right);
}
- Jump jne32(RegisterID op1, RegisterID op2)
+ Jump branchPtr(Condition cond, AbsoluteAddress left, RegisterID right)
{
- m_assembler.cmpl_rr(op1, op2);
- return Jump(m_assembler.jne());
+ return branch32(cond, left, right);
}
- Jump jne32(RegisterID reg, Imm32 imm)
+ Jump branchPtr(Condition cond, Address left, ImmPtr right)
{
- compareImm32ForBranchEquality(reg, imm.m_value);
- return Jump(m_assembler.jne());
+ return branch32(cond, left, Imm32(right));
}
- Jump jne32(Address address, Imm32 imm)
- {
- compareImm32ForBranchEquality(address, imm.m_value);
- return Jump(m_assembler.jne());
- }
-
- Jump jne32(Address address, RegisterID reg)
- {
- m_assembler.cmpl_rm(reg, address.offset, address.base);
- return Jump(m_assembler.jne());
- }
-
- Jump jnzPtr(RegisterID reg, Imm32 mask = Imm32(-1))
+ Jump branchPtr(Condition cond, AbsoluteAddress left, ImmPtr right)
{
-#if PLATFORM(X86_64)
- testImm64(reg, mask);
- return Jump(m_assembler.jne());
-#else
- return jnz32(reg, mask);
-#endif
+ return branch32(cond, left, Imm32(right));
}
- Jump jnzPtr(RegisterID reg, ImmPtr mask)
+ Jump branchTestPtr(Condition cond, RegisterID reg, RegisterID mask)
{
-#if PLATFORM(X86_64)
- move(mask, scratchRegister);
- m_assembler.testq_rr(scratchRegister, reg);
- return Jump(m_assembler.jne());
-#else
- return jnz32(reg, Imm32(mask));
-#endif
+ return branchTest32(cond, reg, mask);
}
- Jump jnzPtr(Address address, Imm32 mask = Imm32(-1))
+ Jump branchTestPtr(Condition cond, RegisterID reg, Imm32 mask = Imm32(-1))
{
-#if PLATFORM(X86_64)
- testImm64(address, mask);
- return Jump(m_assembler.jne());
-#else
- return jnz32(address, mask);
-#endif
+ return branchTest32(cond, reg, mask);
}
- Jump jnz32(RegisterID reg, Imm32 mask = Imm32(-1))
+ Jump branchTestPtr(Condition cond, Address address, Imm32 mask = Imm32(-1))
{
- testImm32(reg, mask);
- return Jump(m_assembler.jne());
+ return branchTest32(cond, address, mask);
}
- Jump jnz32(Address address, Imm32 mask = Imm32(-1))
+ Jump branchTestPtr(Condition cond, BaseIndex address, Imm32 mask = Imm32(-1))
{
- testImm32(address, mask);
- return Jump(m_assembler.jne());
+ return branchTest32(cond, address, mask);
}
- Jump jzPtr(RegisterID reg, Imm32 mask = Imm32(-1))
- {
-#if PLATFORM(X86_64)
- testImm64(reg, mask);
- return Jump(m_assembler.je());
-#else
- return jz32(reg, mask);
-#endif
- }
- Jump jzPtr(RegisterID reg, ImmPtr mask)
+ Jump branchAddPtr(Condition cond, RegisterID src, RegisterID dest)
{
-#if PLATFORM(X86_64)
- move(mask, scratchRegister);
- m_assembler.testq_rr(scratchRegister, reg);
- return Jump(m_assembler.je());
-#else
- return jz32(reg, Imm32(mask));
-#endif
+ return branchAdd32(cond, src, dest);
}
- Jump jzPtr(Address address, Imm32 mask = Imm32(-1))
+ Jump branchSubPtr(Condition cond, Imm32 imm, RegisterID dest)
{
-#if PLATFORM(X86_64)
- testImm64(address, mask);
- return Jump(m_assembler.je());
-#else
- return jz32(address, mask);
-#endif
+ return branchSub32(cond, imm, dest);
}
-
- Jump jzPtr(BaseIndex address, Imm32 mask = Imm32(-1))
- {
-#if PLATFORM(X86_64)
- testImm64(address, mask);
- return Jump(m_assembler.je());
-#else
- return jz32(address, mask);
#endif
- }
-
- Jump jz32(RegisterID reg, Imm32 mask = Imm32(-1))
- {
- testImm32(reg, mask);
- return Jump(m_assembler.je());
- }
-
- Jump jz32(Address address, Imm32 mask = Imm32(-1))
- {
- testImm32(address, mask);
- return Jump(m_assembler.je());
- }
-
- Jump jz32(BaseIndex address, Imm32 mask = Imm32(-1))
- {
- testImm32(address, mask);
- return Jump(m_assembler.je());
- }
-
- Jump jump()
- {
- return Jump(m_assembler.jmp());
- }
-
-
- // Backwards, local control flow operations:
- //
- // These operations provide a shorter notation for local
- // backwards branches, which may be both more convenient
- // for the user, and for the programmer, and for the
- // assembler (allowing shorter values to be used in
- // relative offsets).
- //
- // The code sequence:
- //
- // Label topOfLoop(this);
- // // ...
- // jne32(reg1, reg2, topOfLoop);
- //
- // Is equivalent to the longer, potentially less efficient form:
- //
- // Label topOfLoop(this);
- // // ...
- // jne32(reg1, reg2).linkTo(topOfLoop);
-
- void jae32(RegisterID left, Address right, Label target)
- {
- jae32(left, right).linkTo(target, this);
- }
-
- void je32(RegisterID op1, Imm32 imm, Label target)
- {
- je32(op1, imm).linkTo(target, this);
- }
-
- void je16(RegisterID op1, BaseIndex op2, Label target)
- {
- je16(op1, op2).linkTo(target, this);
- }
-
- void jl32(RegisterID left, Imm32 right, Label target)
- {
- jl32(left, right).linkTo(target, this);
- }
-
- void jle32(RegisterID left, RegisterID right, Label target)
- {
- jle32(left, right).linkTo(target, this);
- }
-
- void jnePtr(RegisterID op1, ImmPtr imm, Label target)
- {
- jnePtr(op1, imm).linkTo(target, this);
- }
-
- void jne32(RegisterID op1, RegisterID op2, Label target)
- {
- jne32(op1, op2).linkTo(target, this);
- }
-
- void jne32(RegisterID op1, Imm32 imm, Label target)
- {
- jne32(op1, imm).linkTo(target, this);
- }
-
- void jzPtr(RegisterID reg, Label target)
- {
- jzPtr(reg).linkTo(target, this);
- }
-
- void jump(Label target)
- {
- m_assembler.link(m_assembler.jmp(), target.m_label);
- }
-
- void jump(RegisterID target)
- {
- m_assembler.jmp_r(target);
- }
-
- // Address is a memory location containing the address to jump to
- void jump(Address address)
- {
- m_assembler.jmp_m(address.offset, address.base);
- }
-
-
- // Arithmetic control flow operations:
- //
- // This set of conditional branch operations branch based
- // on the result of an arithmetic operation. The operation
- // is performed as normal, storing the result.
- //
- // * jz operations branch if the result is zero.
- // * jo operations branch if the (signed) arithmetic
- // operation caused an overflow to occur.
-
- Jump jnzSubPtr(Imm32 imm, RegisterID dest)
- {
- subPtr(imm, dest);
- return Jump(m_assembler.jne());
- }
-
- Jump jnzSub32(Imm32 imm, RegisterID dest)
- {
- sub32(imm, dest);
- return Jump(m_assembler.jne());
- }
-
- Jump joAddPtr(RegisterID src, RegisterID dest)
- {
- addPtr(src, dest);
- return Jump(m_assembler.jo());
- }
-
- Jump joAdd32(RegisterID src, RegisterID dest)
- {
- add32(src, dest);
- return Jump(m_assembler.jo());
- }
-
- Jump joAdd32(Imm32 imm, RegisterID dest)
- {
- add32(imm, dest);
- return Jump(m_assembler.jo());
- }
-
- Jump joMul32(Imm32 imm, RegisterID src, RegisterID dest)
- {
- mul32(imm, src, dest);
- return Jump(m_assembler.jo());
- }
-
- Jump joSub32(Imm32 imm, RegisterID dest)
- {
- sub32(imm, dest);
- return Jump(m_assembler.jo());
- }
-
- Jump jzSubPtr(Imm32 imm, RegisterID dest)
- {
- subPtr(imm, dest);
- return Jump(m_assembler.je());
- }
-
- Jump jzSub32(Imm32 imm, RegisterID dest)
- {
- sub32(imm, dest);
- return Jump(m_assembler.je());
- }
-
-
- // Miscellaneous operations:
-
- void breakpoint()
- {
- m_assembler.int3();
- }
-
- Jump call()
- {
- return Jump(m_assembler.call());
- }
-
- // FIXME: why does this return a Jump object? - it can't be linked.
- // This may be to get a reference to the return address of the call.
- //
- // This should probably be handled by a separate label type to a regular
- // jump. Todo: add a CallLabel type, for the regular call - can be linked
- // like a jump (possibly a subclass of jump?, or possibly casts to a Jump).
- // Also add a CallReturnLabel type for this to return (just a more JmpDsty
- // form of label, can get the void* after the code has been linked, but can't
- // try to link it like a Jump object), and let the CallLabel be cast into a
- // CallReturnLabel.
- Jump call(RegisterID target)
- {
- return Jump(m_assembler.call(target));
- }
-
- Label label()
- {
- return Label(this);
- }
-
- Label align()
- {
- m_assembler.align(16);
- return Label(this);
- }
-
- ptrdiff_t differenceBetween(Label from, Jump to)
- {
- return X86Assembler::getDifferenceBetweenLabels(from.m_label, to.m_jmp);
- }
-
- ptrdiff_t differenceBetween(Label from, Label to)
- {
- return X86Assembler::getDifferenceBetweenLabels(from.m_label, to.m_label);
- }
-
- ptrdiff_t differenceBetween(Label from, DataLabelPtr to)
- {
- return X86Assembler::getDifferenceBetweenLabels(from.m_label, to.m_label);
- }
-
- ptrdiff_t differenceBetween(Label from, DataLabel32 to)
- {
- return X86Assembler::getDifferenceBetweenLabels(from.m_label, to.m_label);
- }
-
- ptrdiff_t differenceBetween(DataLabelPtr from, Jump to)
- {
- return X86Assembler::getDifferenceBetweenLabels(from.m_label, to.m_jmp);
- }
- void ret()
- {
- m_assembler.ret();
- }
-
- void sete32(RegisterID src, RegisterID srcDest)
- {
- m_assembler.cmpl_rr(srcDest, src);
- m_assembler.sete_r(srcDest);
- m_assembler.movzbl_rr(srcDest, srcDest);
- }
-
- void sete32(Imm32 imm, RegisterID srcDest)
- {
- compareImm32ForBranchEquality(srcDest, imm.m_value);
- m_assembler.sete_r(srcDest);
- m_assembler.movzbl_rr(srcDest, srcDest);
- }
-
- void setne32(RegisterID src, RegisterID srcDest)
- {
- m_assembler.cmpl_rr(srcDest, src);
- m_assembler.setne_r(srcDest);
- m_assembler.movzbl_rr(srcDest, srcDest);
- }
-
- void setne32(Imm32 imm, RegisterID srcDest)
- {
- compareImm32ForBranchEquality(srcDest, imm.m_value);
- m_assembler.setne_r(srcDest);
- m_assembler.movzbl_rr(srcDest, srcDest);
- }
-
- // FIXME:
- // The mask should be optional... paerhaps the argument order should be
- // dest-src, operations always have a dest? ... possibly not true, considering
- // asm ops like test, or pseudo ops like pop().
- void setnz32(Address address, Imm32 mask, RegisterID dest)
- {
- testImm32(address, mask);
- m_assembler.setnz_r(dest);
- m_assembler.movzbl_rr(dest, dest);
- }
-
- void setz32(Address address, Imm32 mask, RegisterID dest)
- {
- testImm32(address, mask);
- m_assembler.setz_r(dest);
- m_assembler.movzbl_rr(dest, dest);
- }
};
} // namespace JSC
diff --git a/src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerCodeRef.h b/src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerCodeRef.h
new file mode 100644
index 0000000..0603060
--- /dev/null
+++ b/src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerCodeRef.h
@@ -0,0 +1,156 @@
+/*
+ * 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 MacroAssemblerCodeRef_h
+#define MacroAssemblerCodeRef_h
+
+#include <wtf/Platform.h>
+
+#include "ExecutableAllocator.h"
+#include "PassRefPtr.h"
+#include "RefPtr.h"
+#include "UnusedParam.h"
+
+#if ENABLE(ASSEMBLER)
+
+namespace JSC {
+
+// FunctionPtr:
+//
+// FunctionPtr should be used to wrap pointers to C/C++ functions in JSC
+// (particularly, the stub functions).
+class FunctionPtr {
+public:
+ FunctionPtr()
+ : m_value(0)
+ {
+ }
+
+ template<typename FunctionType>
+ explicit FunctionPtr(FunctionType* value)
+ : m_value(reinterpret_cast<void*>(value))
+ {
+ ASSERT(m_value);
+ }
+
+ void* value() const { return m_value; }
+ void* executableAddress() const { return m_value; }
+
+
+private:
+ void* m_value;
+};
+
+// ReturnAddressPtr:
+//
+// ReturnAddressPtr should be used to wrap return addresses generated by processor
+// 'call' instructions exectued in JIT code. We use return addresses to look up
+// exception and optimization information, and to repatch the call instruction
+// that is the source of the return address.
+class ReturnAddressPtr {
+public:
+ ReturnAddressPtr()
+ : m_value(0)
+ {
+ }
+
+ explicit ReturnAddressPtr(void* value)
+ : m_value(value)
+ {
+ ASSERT(m_value);
+ }
+
+ void* value() const { return m_value; }
+
+private:
+ void* m_value;
+};
+
+// MacroAssemblerCodePtr:
+//
+// MacroAssemblerCodePtr should be used to wrap pointers to JIT generated code.
+class MacroAssemblerCodePtr {
+public:
+ MacroAssemblerCodePtr()
+ : m_value(0)
+ {
+ }
+
+ explicit MacroAssemblerCodePtr(void* value)
+ : m_value(value)
+ {
+ ASSERT(m_value);
+ }
+
+ explicit MacroAssemblerCodePtr(ReturnAddressPtr ra)
+ : m_value(ra.value())
+ {
+ ASSERT(m_value);
+ }
+
+ void* executableAddress() const { return m_value; }
+ void* dataLocation() const { ASSERT(m_value); return m_value; }
+
+private:
+ void* m_value;
+};
+
+// MacroAssemblerCodeRef:
+//
+// A reference to a section of JIT generated code. A CodeRef consists of a
+// pointer to the code, and a ref pointer to the pool from within which it
+// was allocated.
+class MacroAssemblerCodeRef {
+public:
+ MacroAssemblerCodeRef()
+#ifndef NDEBUG
+ : m_size(0)
+#endif
+ {
+ }
+
+ MacroAssemblerCodeRef(void* code, PassRefPtr<ExecutablePool> executablePool, size_t size)
+ : m_code(code)
+ , m_executablePool(executablePool)
+ {
+#ifndef NDEBUG
+ m_size = size;
+#else
+ UNUSED_PARAM(size);
+#endif
+ }
+
+ MacroAssemblerCodePtr m_code;
+ RefPtr<ExecutablePool> m_executablePool;
+#ifndef NDEBUG
+ size_t m_size;
+#endif
+};
+
+} // namespace JSC
+
+#endif // ENABLE(ASSEMBLER)
+
+#endif // MacroAssemblerCodeRef_h
diff --git a/src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerX86.h b/src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerX86.h
new file mode 100644
index 0000000..801bf61
--- /dev/null
+++ b/src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerX86.h
@@ -0,0 +1,164 @@
+/*
+ * 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 MacroAssemblerX86_h
+#define MacroAssemblerX86_h
+
+#include <wtf/Platform.h>
+
+#if ENABLE(ASSEMBLER) && PLATFORM(X86)
+
+#include "MacroAssemblerX86Common.h"
+
+namespace JSC {
+
+class MacroAssemblerX86 : public MacroAssemblerX86Common {
+public:
+ MacroAssemblerX86()
+ : m_isSSE2Present(isSSE2Present())
+ {
+ }
+
+ static const Scale ScalePtr = TimesFour;
+
+ using MacroAssemblerX86Common::add32;
+ using MacroAssemblerX86Common::and32;
+ using MacroAssemblerX86Common::sub32;
+ using MacroAssemblerX86Common::or32;
+ using MacroAssemblerX86Common::load32;
+ using MacroAssemblerX86Common::store32;
+ using MacroAssemblerX86Common::branch32;
+ using MacroAssemblerX86Common::call;
+
+ void add32(Imm32 imm, RegisterID src, RegisterID dest)
+ {
+ m_assembler.leal_mr(imm.m_value, src, dest);
+ }
+
+ void add32(Imm32 imm, AbsoluteAddress address)
+ {
+ m_assembler.addl_im(imm.m_value, address.m_ptr);
+ }
+
+ void addWithCarry32(Imm32 imm, AbsoluteAddress address)
+ {
+ m_assembler.adcl_im(imm.m_value, address.m_ptr);
+ }
+
+ void and32(Imm32 imm, AbsoluteAddress address)
+ {
+ m_assembler.andl_im(imm.m_value, address.m_ptr);
+ }
+
+ void or32(Imm32 imm, AbsoluteAddress address)
+ {
+ m_assembler.orl_im(imm.m_value, address.m_ptr);
+ }
+
+ void sub32(Imm32 imm, AbsoluteAddress address)
+ {
+ m_assembler.subl_im(imm.m_value, address.m_ptr);
+ }
+
+ void load32(void* address, RegisterID dest)
+ {
+ m_assembler.movl_mr(address, dest);
+ }
+
+ void store32(Imm32 imm, void* address)
+ {
+ m_assembler.movl_i32m(imm.m_value, address);
+ }
+
+ void store32(RegisterID src, void* address)
+ {
+ m_assembler.movl_rm(src, address);
+ }
+
+ Jump branch32(Condition cond, AbsoluteAddress left, RegisterID right)
+ {
+ m_assembler.cmpl_rm(right, left.m_ptr);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branch32(Condition cond, AbsoluteAddress left, Imm32 right)
+ {
+ m_assembler.cmpl_im(right.m_value, left.m_ptr);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Call call()
+ {
+ return Call(m_assembler.call(), Call::Linkable);
+ }
+
+ Call tailRecursiveCall()
+ {
+ return Call::fromTailJump(jump());
+ }
+
+ Call makeTailRecursiveCall(Jump oldJump)
+ {
+ return Call::fromTailJump(oldJump);
+ }
+
+
+ DataLabelPtr moveWithPatch(ImmPtr initialValue, RegisterID dest)
+ {
+ m_assembler.movl_i32r(initialValue.asIntptr(), dest);
+ return DataLabelPtr(this);
+ }
+
+ Jump branchPtrWithPatch(Condition cond, RegisterID left, DataLabelPtr& dataLabel, ImmPtr initialRightValue = ImmPtr(0))
+ {
+ m_assembler.cmpl_ir_force32(initialRightValue.asIntptr(), left);
+ dataLabel = DataLabelPtr(this);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branchPtrWithPatch(Condition cond, Address left, DataLabelPtr& dataLabel, ImmPtr initialRightValue = ImmPtr(0))
+ {
+ m_assembler.cmpl_im_force32(initialRightValue.asIntptr(), left.offset, left.base);
+ dataLabel = DataLabelPtr(this);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ DataLabelPtr storePtrWithPatch(ImmPtr initialValue, ImplicitAddress address)
+ {
+ m_assembler.movl_i32m(initialValue.asIntptr(), address.offset, address.base);
+ return DataLabelPtr(this);
+ }
+
+ bool supportsFloatingPoint() const { return m_isSSE2Present; }
+
+private:
+ const bool m_isSSE2Present;
+};
+
+} // namespace JSC
+
+#endif // ENABLE(ASSEMBLER)
+
+#endif // MacroAssemblerX86_h
diff --git a/src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerX86Common.h b/src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerX86Common.h
new file mode 100644
index 0000000..cea691e
--- /dev/null
+++ b/src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerX86Common.h
@@ -0,0 +1,780 @@
+/*
+ * 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 MacroAssemblerX86Common_h
+#define MacroAssemblerX86Common_h
+
+#include <wtf/Platform.h>
+
+#if ENABLE(ASSEMBLER)
+
+#include "X86Assembler.h"
+#include "AbstractMacroAssembler.h"
+
+namespace JSC {
+
+class MacroAssemblerX86Common : public AbstractMacroAssembler<X86Assembler> {
+public:
+
+ enum Condition {
+ Equal = X86Assembler::ConditionE,
+ NotEqual = X86Assembler::ConditionNE,
+ Above = X86Assembler::ConditionA,
+ AboveOrEqual = X86Assembler::ConditionAE,
+ Below = X86Assembler::ConditionB,
+ BelowOrEqual = X86Assembler::ConditionBE,
+ GreaterThan = X86Assembler::ConditionG,
+ GreaterThanOrEqual = X86Assembler::ConditionGE,
+ LessThan = X86Assembler::ConditionL,
+ LessThanOrEqual = X86Assembler::ConditionLE,
+ Overflow = X86Assembler::ConditionO,
+ Signed = X86Assembler::ConditionS,
+ Zero = X86Assembler::ConditionE,
+ NonZero = X86Assembler::ConditionNE
+ };
+
+ enum DoubleCondition {
+ DoubleEqual = X86Assembler::ConditionE,
+ DoubleGreaterThan = X86Assembler::ConditionA,
+ DoubleGreaterThanOrEqual = X86Assembler::ConditionAE,
+ DoubleLessThan = X86Assembler::ConditionB,
+ DoubleLessThanOrEqual = X86Assembler::ConditionBE,
+ };
+
+ static const RegisterID stackPointerRegister = X86::esp;
+
+ // Integer arithmetic operations:
+ //
+ // Operations are typically two operand - operation(source, srcDst)
+ // For many operations the source may be an Imm32, the srcDst operand
+ // may often be a memory location (explictly described using an Address
+ // object).
+
+ void add32(RegisterID src, RegisterID dest)
+ {
+ m_assembler.addl_rr(src, dest);
+ }
+
+ void add32(Imm32 imm, Address address)
+ {
+ m_assembler.addl_im(imm.m_value, address.offset, address.base);
+ }
+
+ void add32(Imm32 imm, RegisterID dest)
+ {
+ m_assembler.addl_ir(imm.m_value, dest);
+ }
+
+ void add32(Address src, RegisterID dest)
+ {
+ m_assembler.addl_mr(src.offset, src.base, dest);
+ }
+
+ void and32(RegisterID src, RegisterID dest)
+ {
+ m_assembler.andl_rr(src, dest);
+ }
+
+ void and32(Imm32 imm, RegisterID dest)
+ {
+ m_assembler.andl_ir(imm.m_value, dest);
+ }
+
+ void and32(Imm32 imm, Address address)
+ {
+ m_assembler.andl_im(imm.m_value, address.offset, address.base);
+ }
+
+ void lshift32(Imm32 imm, RegisterID dest)
+ {
+ m_assembler.shll_i8r(imm.m_value, dest);
+ }
+
+ void lshift32(RegisterID shift_amount, RegisterID dest)
+ {
+ // On x86 we can only shift by ecx; if asked to shift by another register we'll
+ // need rejig the shift amount into ecx first, and restore the registers afterwards.
+ if (shift_amount != X86::ecx) {
+ swap(shift_amount, X86::ecx);
+
+ // E.g. transform "shll %eax, %eax" -> "xchgl %eax, %ecx; shll %ecx, %ecx; xchgl %eax, %ecx"
+ if (dest == shift_amount)
+ m_assembler.shll_CLr(X86::ecx);
+ // E.g. transform "shll %eax, %ecx" -> "xchgl %eax, %ecx; shll %ecx, %eax; xchgl %eax, %ecx"
+ else if (dest == X86::ecx)
+ m_assembler.shll_CLr(shift_amount);
+ // E.g. transform "shll %eax, %ebx" -> "xchgl %eax, %ecx; shll %ecx, %ebx; xchgl %eax, %ecx"
+ else
+ m_assembler.shll_CLr(dest);
+
+ swap(shift_amount, X86::ecx);
+ } else
+ m_assembler.shll_CLr(dest);
+ }
+
+ void mul32(RegisterID src, RegisterID dest)
+ {
+ m_assembler.imull_rr(src, dest);
+ }
+
+ void mul32(Imm32 imm, RegisterID src, RegisterID dest)
+ {
+ m_assembler.imull_i32r(src, imm.m_value, dest);
+ }
+
+ void not32(RegisterID srcDest)
+ {
+ m_assembler.notl_r(srcDest);
+ }
+
+ void or32(RegisterID src, RegisterID dest)
+ {
+ m_assembler.orl_rr(src, dest);
+ }
+
+ void or32(Imm32 imm, RegisterID dest)
+ {
+ m_assembler.orl_ir(imm.m_value, dest);
+ }
+
+ void or32(Imm32 imm, Address address)
+ {
+ m_assembler.orl_im(imm.m_value, address.offset, address.base);
+ }
+
+ void rshift32(RegisterID shift_amount, RegisterID dest)
+ {
+ // On x86 we can only shift by ecx; if asked to shift by another register we'll
+ // need rejig the shift amount into ecx first, and restore the registers afterwards.
+ if (shift_amount != X86::ecx) {
+ swap(shift_amount, X86::ecx);
+
+ // E.g. transform "shll %eax, %eax" -> "xchgl %eax, %ecx; shll %ecx, %ecx; xchgl %eax, %ecx"
+ if (dest == shift_amount)
+ m_assembler.sarl_CLr(X86::ecx);
+ // E.g. transform "shll %eax, %ecx" -> "xchgl %eax, %ecx; shll %ecx, %eax; xchgl %eax, %ecx"
+ else if (dest == X86::ecx)
+ m_assembler.sarl_CLr(shift_amount);
+ // E.g. transform "shll %eax, %ebx" -> "xchgl %eax, %ecx; shll %ecx, %ebx; xchgl %eax, %ecx"
+ else
+ m_assembler.sarl_CLr(dest);
+
+ swap(shift_amount, X86::ecx);
+ } else
+ m_assembler.sarl_CLr(dest);
+ }
+
+ void rshift32(Imm32 imm, RegisterID dest)
+ {
+ m_assembler.sarl_i8r(imm.m_value, dest);
+ }
+
+ void sub32(RegisterID src, RegisterID dest)
+ {
+ m_assembler.subl_rr(src, dest);
+ }
+
+ void sub32(Imm32 imm, RegisterID dest)
+ {
+ m_assembler.subl_ir(imm.m_value, dest);
+ }
+
+ void sub32(Imm32 imm, Address address)
+ {
+ m_assembler.subl_im(imm.m_value, address.offset, address.base);
+ }
+
+ void sub32(Address src, RegisterID dest)
+ {
+ m_assembler.subl_mr(src.offset, src.base, dest);
+ }
+
+ void xor32(RegisterID src, RegisterID dest)
+ {
+ m_assembler.xorl_rr(src, dest);
+ }
+
+ void xor32(Imm32 imm, RegisterID srcDest)
+ {
+ m_assembler.xorl_ir(imm.m_value, srcDest);
+ }
+
+
+ // Memory access operations:
+ //
+ // Loads are of the form load(address, destination) and stores of the form
+ // store(source, address). The source for a store may be an Imm32. Address
+ // operand objects to loads and store will be implicitly constructed if a
+ // register is passed.
+
+ void load32(ImplicitAddress address, RegisterID dest)
+ {
+ m_assembler.movl_mr(address.offset, address.base, dest);
+ }
+
+ void load32(BaseIndex address, RegisterID dest)
+ {
+ m_assembler.movl_mr(address.offset, address.base, address.index, address.scale, dest);
+ }
+
+ DataLabel32 load32WithAddressOffsetPatch(Address address, RegisterID dest)
+ {
+ m_assembler.movl_mr_disp32(address.offset, address.base, dest);
+ return DataLabel32(this);
+ }
+
+ void load16(BaseIndex address, RegisterID dest)
+ {
+ m_assembler.movzwl_mr(address.offset, address.base, address.index, address.scale, dest);
+ }
+
+ DataLabel32 store32WithAddressOffsetPatch(RegisterID src, Address address)
+ {
+ m_assembler.movl_rm_disp32(src, address.offset, address.base);
+ return DataLabel32(this);
+ }
+
+ void store32(RegisterID src, ImplicitAddress address)
+ {
+ m_assembler.movl_rm(src, address.offset, address.base);
+ }
+
+ void store32(RegisterID src, BaseIndex address)
+ {
+ m_assembler.movl_rm(src, address.offset, address.base, address.index, address.scale);
+ }
+
+ void store32(Imm32 imm, ImplicitAddress address)
+ {
+ m_assembler.movl_i32m(imm.m_value, address.offset, address.base);
+ }
+
+
+ // Floating-point operation:
+ //
+ // Presently only supports SSE, not x87 floating point.
+
+ void loadDouble(ImplicitAddress address, FPRegisterID dest)
+ {
+ ASSERT(isSSE2Present());
+ m_assembler.movsd_mr(address.offset, address.base, dest);
+ }
+
+ void storeDouble(FPRegisterID src, ImplicitAddress address)
+ {
+ ASSERT(isSSE2Present());
+ m_assembler.movsd_rm(src, address.offset, address.base);
+ }
+
+ void addDouble(FPRegisterID src, FPRegisterID dest)
+ {
+ ASSERT(isSSE2Present());
+ m_assembler.addsd_rr(src, dest);
+ }
+
+ void addDouble(Address src, FPRegisterID dest)
+ {
+ ASSERT(isSSE2Present());
+ m_assembler.addsd_mr(src.offset, src.base, dest);
+ }
+
+ void subDouble(FPRegisterID src, FPRegisterID dest)
+ {
+ ASSERT(isSSE2Present());
+ m_assembler.subsd_rr(src, dest);
+ }
+
+ void subDouble(Address src, FPRegisterID dest)
+ {
+ ASSERT(isSSE2Present());
+ m_assembler.subsd_mr(src.offset, src.base, dest);
+ }
+
+ void mulDouble(FPRegisterID src, FPRegisterID dest)
+ {
+ ASSERT(isSSE2Present());
+ m_assembler.mulsd_rr(src, dest);
+ }
+
+ void mulDouble(Address src, FPRegisterID dest)
+ {
+ ASSERT(isSSE2Present());
+ m_assembler.mulsd_mr(src.offset, src.base, dest);
+ }
+
+ void convertInt32ToDouble(RegisterID src, FPRegisterID dest)
+ {
+ ASSERT(isSSE2Present());
+ m_assembler.cvtsi2sd_rr(src, dest);
+ }
+
+ Jump branchDouble(DoubleCondition cond, FPRegisterID left, FPRegisterID right)
+ {
+ ASSERT(isSSE2Present());
+ m_assembler.ucomisd_rr(right, left);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ // Truncates 'src' to an integer, and places the resulting 'dest'.
+ // If the result is not representable as a 32 bit value, branch.
+ // May also branch for some values that are representable in 32 bits
+ // (specifically, in this case, INT_MIN).
+ Jump branchTruncateDoubleToInt32(FPRegisterID src, RegisterID dest)
+ {
+ ASSERT(isSSE2Present());
+ m_assembler.cvttsd2si_rr(src, dest);
+ return branch32(Equal, dest, Imm32(0x80000000));
+ }
+
+
+ // Stack manipulation operations:
+ //
+ // The ABI is assumed to provide a stack abstraction to memory,
+ // containing machine word sized units of data. Push and pop
+ // operations add and remove a single register sized unit of data
+ // to or from the stack. Peek and poke operations read or write
+ // values on the stack, without moving the current stack position.
+
+ void pop(RegisterID dest)
+ {
+ m_assembler.pop_r(dest);
+ }
+
+ void push(RegisterID src)
+ {
+ m_assembler.push_r(src);
+ }
+
+ void push(Address address)
+ {
+ m_assembler.push_m(address.offset, address.base);
+ }
+
+ void push(Imm32 imm)
+ {
+ m_assembler.push_i32(imm.m_value);
+ }
+
+
+ // Register move operations:
+ //
+ // Move values in registers.
+
+ void move(Imm32 imm, RegisterID dest)
+ {
+ // Note: on 64-bit the Imm32 value is zero extended into the register, it
+ // may be useful to have a separate version that sign extends the value?
+ if (!imm.m_value)
+ m_assembler.xorl_rr(dest, dest);
+ else
+ m_assembler.movl_i32r(imm.m_value, dest);
+ }
+
+#if PLATFORM(X86_64)
+ void move(RegisterID src, RegisterID dest)
+ {
+ // Note: on 64-bit this is is a full register move; perhaps it would be
+ // useful to have separate move32 & movePtr, with move32 zero extending?
+ m_assembler.movq_rr(src, dest);
+ }
+
+ void move(ImmPtr imm, RegisterID dest)
+ {
+ if (CAN_SIGN_EXTEND_U32_64(imm.asIntptr()))
+ m_assembler.movl_i32r(static_cast<int32_t>(imm.asIntptr()), dest);
+ else
+ m_assembler.movq_i64r(imm.asIntptr(), dest);
+ }
+
+ void swap(RegisterID reg1, RegisterID reg2)
+ {
+ m_assembler.xchgq_rr(reg1, reg2);
+ }
+
+ void signExtend32ToPtr(RegisterID src, RegisterID dest)
+ {
+ m_assembler.movsxd_rr(src, dest);
+ }
+
+ void zeroExtend32ToPtr(RegisterID src, RegisterID dest)
+ {
+ m_assembler.movl_rr(src, dest);
+ }
+#else
+ void move(RegisterID src, RegisterID dest)
+ {
+ if (src != dest)
+ m_assembler.movl_rr(src, dest);
+ }
+
+ void move(ImmPtr imm, RegisterID dest)
+ {
+ m_assembler.movl_i32r(imm.asIntptr(), dest);
+ }
+
+ void swap(RegisterID reg1, RegisterID reg2)
+ {
+ if (reg1 != reg2)
+ m_assembler.xchgl_rr(reg1, reg2);
+ }
+
+ void signExtend32ToPtr(RegisterID src, RegisterID dest)
+ {
+ move(src, dest);
+ }
+
+ void zeroExtend32ToPtr(RegisterID src, RegisterID dest)
+ {
+ move(src, dest);
+ }
+#endif
+
+
+ // Forwards / external control flow operations:
+ //
+ // This set of jump and conditional branch operations return a Jump
+ // object which may linked at a later point, allow forwards jump,
+ // or jumps that will require external linkage (after the code has been
+ // relocated).
+ //
+ // For branches, signed <, >, <= and >= are denoted as l, g, le, and ge
+ // respecitvely, for unsigned comparisons the names b, a, be, and ae are
+ // used (representing the names 'below' and 'above').
+ //
+ // Operands to the comparision are provided in the expected order, e.g.
+ // jle32(reg1, Imm32(5)) will branch if the value held in reg1, when
+ // treated as a signed 32bit value, is less than or equal to 5.
+ //
+ // jz and jnz test whether the first operand is equal to zero, and take
+ // an optional second operand of a mask under which to perform the test.
+
+public:
+ Jump branch32(Condition cond, RegisterID left, RegisterID right)
+ {
+ m_assembler.cmpl_rr(right, left);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branch32(Condition cond, RegisterID left, Imm32 right)
+ {
+ if (((cond == Equal) || (cond == NotEqual)) && !right.m_value)
+ m_assembler.testl_rr(left, left);
+ else
+ m_assembler.cmpl_ir(right.m_value, left);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branch32(Condition cond, RegisterID left, Address right)
+ {
+ m_assembler.cmpl_mr(right.offset, right.base, left);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branch32(Condition cond, Address left, RegisterID right)
+ {
+ m_assembler.cmpl_rm(right, left.offset, left.base);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branch32(Condition cond, Address left, Imm32 right)
+ {
+ m_assembler.cmpl_im(right.m_value, left.offset, left.base);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branch32(Condition cond, BaseIndex left, Imm32 right)
+ {
+ m_assembler.cmpl_im(right.m_value, left.offset, left.base, left.index, left.scale);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branch16(Condition cond, BaseIndex left, RegisterID right)
+ {
+ m_assembler.cmpw_rm(right, left.offset, left.base, left.index, left.scale);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branch16(Condition cond, BaseIndex left, Imm32 right)
+ {
+ ASSERT(!(right.m_value & 0xFFFF0000));
+
+ m_assembler.cmpw_im(right.m_value, left.offset, left.base, left.index, left.scale);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branchTest32(Condition cond, RegisterID reg, RegisterID mask)
+ {
+ ASSERT((cond == Zero) || (cond == NonZero));
+ m_assembler.testl_rr(reg, mask);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branchTest32(Condition cond, RegisterID reg, Imm32 mask = Imm32(-1))
+ {
+ ASSERT((cond == Zero) || (cond == NonZero));
+ // if we are only interested in the low seven bits, this can be tested with a testb
+ if (mask.m_value == -1)
+ m_assembler.testl_rr(reg, reg);
+ else if ((mask.m_value & ~0x7f) == 0)
+ m_assembler.testb_i8r(mask.m_value, reg);
+ else
+ m_assembler.testl_i32r(mask.m_value, reg);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branchTest32(Condition cond, Address address, Imm32 mask = Imm32(-1))
+ {
+ ASSERT((cond == Zero) || (cond == NonZero));
+ if (mask.m_value == -1)
+ m_assembler.cmpl_im(0, address.offset, address.base);
+ else
+ m_assembler.testl_i32m(mask.m_value, address.offset, address.base);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branchTest32(Condition cond, BaseIndex address, Imm32 mask = Imm32(-1))
+ {
+ ASSERT((cond == Zero) || (cond == NonZero));
+ if (mask.m_value == -1)
+ m_assembler.cmpl_im(0, address.offset, address.base, address.index, address.scale);
+ else
+ m_assembler.testl_i32m(mask.m_value, address.offset, address.base, address.index, address.scale);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump jump()
+ {
+ return Jump(m_assembler.jmp());
+ }
+
+ void jump(RegisterID target)
+ {
+ m_assembler.jmp_r(target);
+ }
+
+ // Address is a memory location containing the address to jump to
+ void jump(Address address)
+ {
+ m_assembler.jmp_m(address.offset, address.base);
+ }
+
+
+ // Arithmetic control flow operations:
+ //
+ // This set of conditional branch operations branch based
+ // on the result of an arithmetic operation. The operation
+ // is performed as normal, storing the result.
+ //
+ // * jz operations branch if the result is zero.
+ // * jo operations branch if the (signed) arithmetic
+ // operation caused an overflow to occur.
+
+ Jump branchAdd32(Condition cond, RegisterID src, RegisterID dest)
+ {
+ ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
+ add32(src, dest);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branchAdd32(Condition cond, Imm32 imm, RegisterID dest)
+ {
+ ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
+ add32(imm, dest);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branchMul32(Condition cond, RegisterID src, RegisterID dest)
+ {
+ ASSERT(cond == Overflow);
+ mul32(src, dest);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branchMul32(Condition cond, Imm32 imm, RegisterID src, RegisterID dest)
+ {
+ ASSERT(cond == Overflow);
+ mul32(imm, src, dest);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branchSub32(Condition cond, RegisterID src, RegisterID dest)
+ {
+ ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
+ sub32(src, dest);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branchSub32(Condition cond, Imm32 imm, RegisterID dest)
+ {
+ ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
+ sub32(imm, dest);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+
+ // Miscellaneous operations:
+
+ void breakpoint()
+ {
+ m_assembler.int3();
+ }
+
+ Call nearCall()
+ {
+ return Call(m_assembler.call(), Call::LinkableNear);
+ }
+
+ Call call(RegisterID target)
+ {
+ return Call(m_assembler.call(target), Call::None);
+ }
+
+ void call(Address address)
+ {
+ m_assembler.call_m(address.offset, address.base);
+ }
+
+ void ret()
+ {
+ m_assembler.ret();
+ }
+
+ void set32(Condition cond, RegisterID left, RegisterID right, RegisterID dest)
+ {
+ m_assembler.cmpl_rr(right, left);
+ m_assembler.setCC_r(x86Condition(cond), dest);
+ m_assembler.movzbl_rr(dest, dest);
+ }
+
+ void set32(Condition cond, RegisterID left, Imm32 right, RegisterID dest)
+ {
+ if (((cond == Equal) || (cond == NotEqual)) && !right.m_value)
+ m_assembler.testl_rr(left, left);
+ else
+ m_assembler.cmpl_ir(right.m_value, left);
+ m_assembler.setCC_r(x86Condition(cond), dest);
+ m_assembler.movzbl_rr(dest, dest);
+ }
+
+ // FIXME:
+ // The mask should be optional... paerhaps the argument order should be
+ // dest-src, operations always have a dest? ... possibly not true, considering
+ // asm ops like test, or pseudo ops like pop().
+ void setTest32(Condition cond, Address address, Imm32 mask, RegisterID dest)
+ {
+ if (mask.m_value == -1)
+ m_assembler.cmpl_im(0, address.offset, address.base);
+ else
+ m_assembler.testl_i32m(mask.m_value, address.offset, address.base);
+ m_assembler.setCC_r(x86Condition(cond), dest);
+ m_assembler.movzbl_rr(dest, dest);
+ }
+
+protected:
+ X86Assembler::Condition x86Condition(Condition cond)
+ {
+ return static_cast<X86Assembler::Condition>(cond);
+ }
+
+ X86Assembler::Condition x86Condition(DoubleCondition cond)
+ {
+ return static_cast<X86Assembler::Condition>(cond);
+ }
+
+private:
+ // Only MacroAssemblerX86 should be using the following method; SSE2 is always available on
+ // x86_64, and clients & subclasses of MacroAssembler should be using 'supportsFloatingPoint()'.
+ friend class MacroAssemblerX86;
+
+#if PLATFORM(X86)
+#if PLATFORM(MAC)
+
+ // All X86 Macs are guaranteed to support at least SSE2,
+ static bool isSSE2Present()
+ {
+ return true;
+ }
+
+#else // PLATFORM(MAC)
+
+ enum SSE2CheckState {
+ NotCheckedSSE2,
+ HasSSE2,
+ NoSSE2
+ };
+
+ static bool isSSE2Present()
+ {
+ if (s_sse2CheckState == NotCheckedSSE2) {
+ // Default the flags value to zero; if the compiler is
+ // not MSVC or GCC we will read this as SSE2 not present.
+ int flags = 0;
+#if COMPILER(MSVC)
+ _asm {
+ mov eax, 1 // cpuid function 1 gives us the standard feature set
+ cpuid;
+ mov flags, edx;
+ }
+#elif COMPILER(GCC)
+ asm (
+ "movl $0x1, %%eax;"
+ "pushl %%ebx;"
+ "cpuid;"
+ "popl %%ebx;"
+ "movl %%edx, %0;"
+ : "=g" (flags)
+ :
+ : "%eax", "%ecx", "%edx"
+ );
+#endif
+ static const int SSE2FeatureBit = 1 << 26;
+ s_sse2CheckState = (flags & SSE2FeatureBit) ? HasSSE2 : NoSSE2;
+ }
+ // Only check once.
+ ASSERT(s_sse2CheckState != NotCheckedSSE2);
+
+ return s_sse2CheckState == HasSSE2;
+ }
+
+ static SSE2CheckState s_sse2CheckState;
+
+#endif // PLATFORM(MAC)
+#elif !defined(NDEBUG) // PLATFORM(X86)
+
+ // On x86-64 we should never be checking for SSE2 in a non-debug build,
+ // but non debug add this method to keep the asserts above happy.
+ static bool isSSE2Present()
+ {
+ return true;
+ }
+
+#endif
+};
+
+} // namespace JSC
+
+#endif // ENABLE(ASSEMBLER)
+
+#endif // MacroAssemblerX86Common_h
diff --git a/src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerX86_64.h b/src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerX86_64.h
new file mode 100644
index 0000000..4da7fe6
--- /dev/null
+++ b/src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerX86_64.h
@@ -0,0 +1,446 @@
+/*
+ * 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 MacroAssemblerX86_64_h
+#define MacroAssemblerX86_64_h
+
+#include <wtf/Platform.h>
+
+#if ENABLE(ASSEMBLER) && PLATFORM(X86_64)
+
+#include "MacroAssemblerX86Common.h"
+
+namespace JSC {
+
+class MacroAssemblerX86_64 : public MacroAssemblerX86Common {
+protected:
+ static const X86::RegisterID scratchRegister = X86::r11;
+
+public:
+ static const Scale ScalePtr = TimesEight;
+
+ using MacroAssemblerX86Common::add32;
+ using MacroAssemblerX86Common::and32;
+ using MacroAssemblerX86Common::or32;
+ using MacroAssemblerX86Common::sub32;
+ using MacroAssemblerX86Common::load32;
+ using MacroAssemblerX86Common::store32;
+ using MacroAssemblerX86Common::call;
+
+ void add32(Imm32 imm, AbsoluteAddress address)
+ {
+ move(ImmPtr(address.m_ptr), scratchRegister);
+ add32(imm, Address(scratchRegister));
+ }
+
+ void and32(Imm32 imm, AbsoluteAddress address)
+ {
+ move(ImmPtr(address.m_ptr), scratchRegister);
+ and32(imm, Address(scratchRegister));
+ }
+
+ void or32(Imm32 imm, AbsoluteAddress address)
+ {
+ move(ImmPtr(address.m_ptr), scratchRegister);
+ or32(imm, Address(scratchRegister));
+ }
+
+ void sub32(Imm32 imm, AbsoluteAddress address)
+ {
+ move(ImmPtr(address.m_ptr), scratchRegister);
+ sub32(imm, Address(scratchRegister));
+ }
+
+ void load32(void* address, RegisterID dest)
+ {
+ if (dest == X86::eax)
+ m_assembler.movl_mEAX(address);
+ else {
+ move(X86::eax, dest);
+ m_assembler.movl_mEAX(address);
+ swap(X86::eax, dest);
+ }
+ }
+
+ void store32(Imm32 imm, void* address)
+ {
+ move(X86::eax, scratchRegister);
+ move(imm, X86::eax);
+ m_assembler.movl_EAXm(address);
+ move(scratchRegister, X86::eax);
+ }
+
+ Call call()
+ {
+ DataLabelPtr label = moveWithPatch(ImmPtr(0), scratchRegister);
+ Call result = Call(m_assembler.call(scratchRegister), Call::Linkable);
+ ASSERT(differenceBetween(label, result) == REPTACH_OFFSET_CALL_R11);
+ return result;
+ }
+
+ Call tailRecursiveCall()
+ {
+ DataLabelPtr label = moveWithPatch(ImmPtr(0), scratchRegister);
+ Jump newJump = Jump(m_assembler.jmp_r(scratchRegister));
+ ASSERT(differenceBetween(label, newJump) == REPTACH_OFFSET_CALL_R11);
+ return Call::fromTailJump(newJump);
+ }
+
+ Call makeTailRecursiveCall(Jump oldJump)
+ {
+ oldJump.link(this);
+ DataLabelPtr label = moveWithPatch(ImmPtr(0), scratchRegister);
+ Jump newJump = Jump(m_assembler.jmp_r(scratchRegister));
+ ASSERT(differenceBetween(label, newJump) == REPTACH_OFFSET_CALL_R11);
+ return Call::fromTailJump(newJump);
+ }
+
+
+ void addPtr(RegisterID src, RegisterID dest)
+ {
+ m_assembler.addq_rr(src, dest);
+ }
+
+ void addPtr(Imm32 imm, RegisterID srcDest)
+ {
+ m_assembler.addq_ir(imm.m_value, srcDest);
+ }
+
+ void addPtr(ImmPtr imm, RegisterID dest)
+ {
+ move(imm, scratchRegister);
+ m_assembler.addq_rr(scratchRegister, dest);
+ }
+
+ void addPtr(Imm32 imm, RegisterID src, RegisterID dest)
+ {
+ m_assembler.leaq_mr(imm.m_value, src, dest);
+ }
+
+ void addPtr(Imm32 imm, Address address)
+ {
+ m_assembler.addq_im(imm.m_value, address.offset, address.base);
+ }
+
+ void addPtr(Imm32 imm, AbsoluteAddress address)
+ {
+ move(ImmPtr(address.m_ptr), scratchRegister);
+ addPtr(imm, Address(scratchRegister));
+ }
+
+ void andPtr(RegisterID src, RegisterID dest)
+ {
+ m_assembler.andq_rr(src, dest);
+ }
+
+ void andPtr(Imm32 imm, RegisterID srcDest)
+ {
+ m_assembler.andq_ir(imm.m_value, srcDest);
+ }
+
+ void orPtr(RegisterID src, RegisterID dest)
+ {
+ m_assembler.orq_rr(src, dest);
+ }
+
+ void orPtr(ImmPtr imm, RegisterID dest)
+ {
+ move(imm, scratchRegister);
+ m_assembler.orq_rr(scratchRegister, dest);
+ }
+
+ void orPtr(Imm32 imm, RegisterID dest)
+ {
+ m_assembler.orq_ir(imm.m_value, dest);
+ }
+
+ void rshiftPtr(RegisterID shift_amount, RegisterID dest)
+ {
+ // On x86 we can only shift by ecx; if asked to shift by another register we'll
+ // need rejig the shift amount into ecx first, and restore the registers afterwards.
+ if (shift_amount != X86::ecx) {
+ swap(shift_amount, X86::ecx);
+
+ // E.g. transform "shll %eax, %eax" -> "xchgl %eax, %ecx; shll %ecx, %ecx; xchgl %eax, %ecx"
+ if (dest == shift_amount)
+ m_assembler.sarq_CLr(X86::ecx);
+ // E.g. transform "shll %eax, %ecx" -> "xchgl %eax, %ecx; shll %ecx, %eax; xchgl %eax, %ecx"
+ else if (dest == X86::ecx)
+ m_assembler.sarq_CLr(shift_amount);
+ // E.g. transform "shll %eax, %ebx" -> "xchgl %eax, %ecx; shll %ecx, %ebx; xchgl %eax, %ecx"
+ else
+ m_assembler.sarq_CLr(dest);
+
+ swap(shift_amount, X86::ecx);
+ } else
+ m_assembler.sarq_CLr(dest);
+ }
+
+ void rshiftPtr(Imm32 imm, RegisterID dest)
+ {
+ m_assembler.sarq_i8r(imm.m_value, dest);
+ }
+
+ void subPtr(RegisterID src, RegisterID dest)
+ {
+ m_assembler.subq_rr(src, dest);
+ }
+
+ void subPtr(Imm32 imm, RegisterID dest)
+ {
+ m_assembler.subq_ir(imm.m_value, dest);
+ }
+
+ void subPtr(ImmPtr imm, RegisterID dest)
+ {
+ move(imm, scratchRegister);
+ m_assembler.subq_rr(scratchRegister, dest);
+ }
+
+ void xorPtr(RegisterID src, RegisterID dest)
+ {
+ m_assembler.xorq_rr(src, dest);
+ }
+
+ void xorPtr(Imm32 imm, RegisterID srcDest)
+ {
+ m_assembler.xorq_ir(imm.m_value, srcDest);
+ }
+
+
+ void loadPtr(ImplicitAddress address, RegisterID dest)
+ {
+ m_assembler.movq_mr(address.offset, address.base, dest);
+ }
+
+ void loadPtr(BaseIndex address, RegisterID dest)
+ {
+ m_assembler.movq_mr(address.offset, address.base, address.index, address.scale, dest);
+ }
+
+ void loadPtr(void* address, RegisterID dest)
+ {
+ if (dest == X86::eax)
+ m_assembler.movq_mEAX(address);
+ else {
+ move(X86::eax, dest);
+ m_assembler.movq_mEAX(address);
+ swap(X86::eax, dest);
+ }
+ }
+
+ DataLabel32 loadPtrWithAddressOffsetPatch(Address address, RegisterID dest)
+ {
+ m_assembler.movq_mr_disp32(address.offset, address.base, dest);
+ return DataLabel32(this);
+ }
+
+ void storePtr(RegisterID src, ImplicitAddress address)
+ {
+ m_assembler.movq_rm(src, address.offset, address.base);
+ }
+
+ void storePtr(RegisterID src, BaseIndex address)
+ {
+ m_assembler.movq_rm(src, address.offset, address.base, address.index, address.scale);
+ }
+
+ void storePtr(RegisterID src, void* address)
+ {
+ if (src == X86::eax)
+ m_assembler.movq_EAXm(address);
+ else {
+ swap(X86::eax, src);
+ m_assembler.movq_EAXm(address);
+ swap(X86::eax, src);
+ }
+ }
+
+ void storePtr(ImmPtr imm, ImplicitAddress address)
+ {
+ intptr_t ptr = imm.asIntptr();
+ if (CAN_SIGN_EXTEND_32_64(ptr))
+ m_assembler.movq_i32m(static_cast<int>(ptr), address.offset, address.base);
+ else {
+ move(imm, scratchRegister);
+ storePtr(scratchRegister, address);
+ }
+ }
+
+ DataLabel32 storePtrWithAddressOffsetPatch(RegisterID src, Address address)
+ {
+ m_assembler.movq_rm_disp32(src, address.offset, address.base);
+ return DataLabel32(this);
+ }
+
+ void movePtrToDouble(RegisterID src, FPRegisterID dest)
+ {
+ m_assembler.movq_rr(src, dest);
+ }
+
+ void moveDoubleToPtr(FPRegisterID src, RegisterID dest)
+ {
+ m_assembler.movq_rr(src, dest);
+ }
+
+ void setPtr(Condition cond, RegisterID left, Imm32 right, RegisterID dest)
+ {
+ if (((cond == Equal) || (cond == NotEqual)) && !right.m_value)
+ m_assembler.testq_rr(left, left);
+ else
+ m_assembler.cmpq_ir(right.m_value, left);
+ m_assembler.setCC_r(x86Condition(cond), dest);
+ m_assembler.movzbl_rr(dest, dest);
+ }
+
+ Jump branchPtr(Condition cond, RegisterID left, RegisterID right)
+ {
+ m_assembler.cmpq_rr(right, left);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branchPtr(Condition cond, RegisterID left, ImmPtr right)
+ {
+ intptr_t imm = right.asIntptr();
+ if (CAN_SIGN_EXTEND_32_64(imm)) {
+ if (!imm)
+ m_assembler.testq_rr(left, left);
+ else
+ m_assembler.cmpq_ir(imm, left);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ } else {
+ move(right, scratchRegister);
+ return branchPtr(cond, left, scratchRegister);
+ }
+ }
+
+ Jump branchPtr(Condition cond, RegisterID left, Address right)
+ {
+ m_assembler.cmpq_mr(right.offset, right.base, left);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branchPtr(Condition cond, AbsoluteAddress left, RegisterID right)
+ {
+ move(ImmPtr(left.m_ptr), scratchRegister);
+ return branchPtr(cond, Address(scratchRegister), right);
+ }
+
+ Jump branchPtr(Condition cond, Address left, RegisterID right)
+ {
+ m_assembler.cmpq_rm(right, left.offset, left.base);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branchPtr(Condition cond, Address left, ImmPtr right)
+ {
+ move(right, scratchRegister);
+ return branchPtr(cond, left, scratchRegister);
+ }
+
+ Jump branchTestPtr(Condition cond, RegisterID reg, RegisterID mask)
+ {
+ m_assembler.testq_rr(reg, mask);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branchTestPtr(Condition cond, RegisterID reg, Imm32 mask = Imm32(-1))
+ {
+ // if we are only interested in the low seven bits, this can be tested with a testb
+ if (mask.m_value == -1)
+ m_assembler.testq_rr(reg, reg);
+ else if ((mask.m_value & ~0x7f) == 0)
+ m_assembler.testb_i8r(mask.m_value, reg);
+ else
+ m_assembler.testq_i32r(mask.m_value, reg);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branchTestPtr(Condition cond, Address address, Imm32 mask = Imm32(-1))
+ {
+ if (mask.m_value == -1)
+ m_assembler.cmpq_im(0, address.offset, address.base);
+ else
+ m_assembler.testq_i32m(mask.m_value, address.offset, address.base);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branchTestPtr(Condition cond, BaseIndex address, Imm32 mask = Imm32(-1))
+ {
+ if (mask.m_value == -1)
+ m_assembler.cmpq_im(0, address.offset, address.base, address.index, address.scale);
+ else
+ m_assembler.testq_i32m(mask.m_value, address.offset, address.base, address.index, address.scale);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+
+ Jump branchAddPtr(Condition cond, RegisterID src, RegisterID dest)
+ {
+ ASSERT((cond == Overflow) || (cond == Zero) || (cond == NonZero));
+ addPtr(src, dest);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ Jump branchSubPtr(Condition cond, Imm32 imm, RegisterID dest)
+ {
+ ASSERT((cond == Overflow) || (cond == Zero) || (cond == NonZero));
+ subPtr(imm, dest);
+ return Jump(m_assembler.jCC(x86Condition(cond)));
+ }
+
+ DataLabelPtr moveWithPatch(ImmPtr initialValue, RegisterID dest)
+ {
+ m_assembler.movq_i64r(initialValue.asIntptr(), dest);
+ return DataLabelPtr(this);
+ }
+
+ Jump branchPtrWithPatch(Condition cond, RegisterID left, DataLabelPtr& dataLabel, ImmPtr initialRightValue = ImmPtr(0))
+ {
+ dataLabel = moveWithPatch(initialRightValue, scratchRegister);
+ return branchPtr(cond, left, scratchRegister);
+ }
+
+ Jump branchPtrWithPatch(Condition cond, Address left, DataLabelPtr& dataLabel, ImmPtr initialRightValue = ImmPtr(0))
+ {
+ dataLabel = moveWithPatch(initialRightValue, scratchRegister);
+ return branchPtr(cond, left, scratchRegister);
+ }
+
+ DataLabelPtr storePtrWithPatch(ImmPtr initialValue, ImplicitAddress address)
+ {
+ DataLabelPtr label = moveWithPatch(initialValue, scratchRegister);
+ storePtr(scratchRegister, address);
+ return label;
+ }
+
+ bool supportsFloatingPoint() const { return true; }
+};
+
+} // namespace JSC
+
+#endif // ENABLE(ASSEMBLER)
+
+#endif // MacroAssemblerX86_64_h
diff --git a/src/3rdparty/webkit/JavaScriptCore/assembler/X86Assembler.h b/src/3rdparty/webkit/JavaScriptCore/assembler/X86Assembler.h
index 3b0ce65..7a8b58d 100644
--- a/src/3rdparty/webkit/JavaScriptCore/assembler/X86Assembler.h
+++ b/src/3rdparty/webkit/JavaScriptCore/assembler/X86Assembler.h
@@ -82,8 +82,32 @@ class X86Assembler {
public:
typedef X86::RegisterID RegisterID;
typedef X86::XMMRegisterID XMMRegisterID;
+ typedef XMMRegisterID FPRegisterID;
typedef enum {
+ ConditionO,
+ ConditionNO,
+ ConditionB,
+ ConditionAE,
+ ConditionE,
+ ConditionNE,
+ ConditionBE,
+ ConditionA,
+ ConditionS,
+ ConditionNS,
+ ConditionP,
+ ConditionNP,
+ ConditionL,
+ ConditionGE,
+ ConditionLE,
+ ConditionG,
+
+ ConditionC = ConditionB,
+ ConditionNC = ConditionAE,
+ } Condition;
+
+private:
+ typedef enum {
OP_ADD_EvGv = 0x01,
OP_ADD_GvEv = 0x03,
OP_OR_EvGv = 0x09,
@@ -145,31 +169,30 @@ public:
OP2_ADDSD_VsdWsd = 0x58,
OP2_MULSD_VsdWsd = 0x59,
OP2_SUBSD_VsdWsd = 0x5C,
+ OP2_MOVD_VdEd = 0x6E,
OP2_MOVD_EdVd = 0x7E,
- OP2_JO_rel32 = 0x80,
- OP2_JB_rel32 = 0x82,
- OP2_JAE_rel32 = 0x83,
- OP2_JE_rel32 = 0x84,
- OP2_JNE_rel32 = 0x85,
- OP2_JBE_rel32 = 0x86,
- OP2_JA_rel32 = 0x87,
- OP2_JS_rel32 = 0x88,
- OP2_JP_rel32 = 0x8A,
- OP2_JL_rel32 = 0x8C,
- OP2_JGE_rel32 = 0x8D,
- OP2_JLE_rel32 = 0x8E,
- OP2_JG_rel32 = 0x8F,
- OP_SETE = 0x94,
- OP_SETNE = 0x95,
+ OP2_JCC_rel32 = 0x80,
+ OP_SETCC = 0x90,
OP2_IMUL_GvEv = 0xAF,
OP2_MOVZX_GvEb = 0xB6,
OP2_MOVZX_GvEw = 0xB7,
OP2_PEXTRW_GdUdIb = 0xC5,
} TwoByteOpcodeID;
+ TwoByteOpcodeID jccRel32(Condition cond)
+ {
+ return (TwoByteOpcodeID)(OP2_JCC_rel32 + cond);
+ }
+
+ TwoByteOpcodeID setccOpcode(Condition cond)
+ {
+ return (TwoByteOpcodeID)(OP_SETCC + cond);
+ }
+
typedef enum {
GROUP1_OP_ADD = 0,
GROUP1_OP_OR = 1,
+ GROUP1_OP_ADC = 2,
GROUP1_OP_AND = 4,
GROUP1_OP_SUB = 5,
GROUP1_OP_XOR = 6,
@@ -191,9 +214,6 @@ public:
GROUP11_MOV = 0,
} GroupOpcodeID;
- // Opaque label types
-
-private:
class X86InstructionFormatter;
public:
@@ -221,16 +241,22 @@ public:
public:
JmpDst()
: m_offset(-1)
+ , m_used(false)
{
}
+ bool isUsed() const { return m_used; }
+ void used() { m_used = true; }
private:
JmpDst(int offset)
: m_offset(offset)
+ , m_used(false)
{
+ ASSERT(m_offset == offset);
}
- int m_offset;
+ int m_offset : 31;
+ bool m_used : 1;
};
X86Assembler()
@@ -269,6 +295,19 @@ public:
// Arithmetic operations:
+#if !PLATFORM(X86_64)
+ void adcl_im(int imm, void* addr)
+ {
+ if (CAN_SIGN_EXTEND_8_32(imm)) {
+ m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_ADC, addr);
+ m_formatter.immediate8(imm);
+ } else {
+ m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_ADC, addr);
+ m_formatter.immediate32(imm);
+ }
+ }
+#endif
+
void addl_rr(RegisterID src, RegisterID dst)
{
m_formatter.oneByteOp(OP_ADD_EvGv, src, dst);
@@ -317,6 +356,17 @@ public:
m_formatter.immediate32(imm);
}
}
+
+ void addq_im(int imm, int offset, RegisterID base)
+ {
+ if (CAN_SIGN_EXTEND_8_32(imm)) {
+ m_formatter.oneByteOp64(OP_GROUP1_EvIb, GROUP1_OP_ADD, base, offset);
+ m_formatter.immediate8(imm);
+ } else {
+ m_formatter.oneByteOp64(OP_GROUP1_EvIz, GROUP1_OP_ADD, base, offset);
+ m_formatter.immediate32(imm);
+ }
+ }
#else
void addl_im(int imm, void* addr)
{
@@ -346,6 +396,17 @@ public:
}
}
+ void andl_im(int imm, int offset, RegisterID base)
+ {
+ if (CAN_SIGN_EXTEND_8_32(imm)) {
+ m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_AND, base, offset);
+ m_formatter.immediate8(imm);
+ } else {
+ m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_AND, base, offset);
+ m_formatter.immediate32(imm);
+ }
+ }
+
#if PLATFORM(X86_64)
void andq_rr(RegisterID src, RegisterID dst)
{
@@ -362,6 +423,17 @@ public:
m_formatter.immediate32(imm);
}
}
+#else
+ void andl_im(int imm, void* addr)
+ {
+ if (CAN_SIGN_EXTEND_8_32(imm)) {
+ m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_AND, addr);
+ m_formatter.immediate8(imm);
+ } else {
+ m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_AND, addr);
+ m_formatter.immediate32(imm);
+ }
+ }
#endif
void notl_r(RegisterID dst)
@@ -390,6 +462,17 @@ public:
}
}
+ void orl_im(int imm, int offset, RegisterID base)
+ {
+ if (CAN_SIGN_EXTEND_8_32(imm)) {
+ m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_OR, base, offset);
+ m_formatter.immediate8(imm);
+ } else {
+ m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_OR, base, offset);
+ m_formatter.immediate32(imm);
+ }
+ }
+
#if PLATFORM(X86_64)
void orq_rr(RegisterID src, RegisterID dst)
{
@@ -406,6 +489,17 @@ public:
m_formatter.immediate32(imm);
}
}
+#else
+ void orl_im(int imm, void* addr)
+ {
+ if (CAN_SIGN_EXTEND_8_32(imm)) {
+ m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_OR, addr);
+ m_formatter.immediate8(imm);
+ } else {
+ m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_OR, addr);
+ m_formatter.immediate32(imm);
+ }
+ }
#endif
void subl_rr(RegisterID src, RegisterID dst)
@@ -441,6 +535,11 @@ public:
}
#if PLATFORM(X86_64)
+ void subq_rr(RegisterID src, RegisterID dst)
+ {
+ m_formatter.oneByteOp64(OP_SUB_EvGv, src, dst);
+ }
+
void subq_ir(int imm, RegisterID dst)
{
if (CAN_SIGN_EXTEND_8_32(imm)) {
@@ -634,6 +733,11 @@ public:
m_formatter.oneByteOp64(OP_CMP_EvGv, src, base, offset);
}
+ void cmpq_mr(int offset, RegisterID base, RegisterID src)
+ {
+ m_formatter.oneByteOp64(OP_CMP_GvEv, src, base, offset);
+ }
+
void cmpq_ir(int imm, RegisterID dst)
{
if (CAN_SIGN_EXTEND_8_32(imm)) {
@@ -690,6 +794,19 @@ public:
m_formatter.oneByteOp(OP_CMP_EvGv, src, base, index, scale, offset);
}
+ void cmpw_im(int imm, int offset, RegisterID base, RegisterID index, int scale)
+ {
+ if (CAN_SIGN_EXTEND_8_32(imm)) {
+ m_formatter.prefix(PRE_OPERAND_SIZE);
+ m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_CMP, base, index, scale, offset);
+ m_formatter.immediate8(imm);
+ } else {
+ m_formatter.prefix(PRE_OPERAND_SIZE);
+ m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_CMP, base, index, scale, offset);
+ m_formatter.immediate16(imm);
+ }
+ }
+
void testl_rr(RegisterID src, RegisterID dst)
{
m_formatter.oneByteOp(OP_TEST_EvGv, src, dst);
@@ -738,15 +855,26 @@ public:
}
#endif
+ void testw_rr(RegisterID src, RegisterID dst)
+ {
+ m_formatter.prefix(PRE_OPERAND_SIZE);
+ m_formatter.oneByteOp(OP_TEST_EvGv, src, dst);
+ }
+
void testb_i8r(int imm, RegisterID dst)
{
m_formatter.oneByteOp8(OP_GROUP3_EbIb, GROUP3_OP_TEST, dst);
m_formatter.immediate8(imm);
}
+ void setCC_r(Condition cond, RegisterID dst)
+ {
+ m_formatter.twoByteOp8(setccOpcode(cond), (GroupOpcodeID)0, dst);
+ }
+
void sete_r(RegisterID dst)
{
- m_formatter.twoByteOp8(OP_SETE, (GroupOpcodeID)0, dst);
+ m_formatter.twoByteOp8(setccOpcode(ConditionE), (GroupOpcodeID)0, dst);
}
void setz_r(RegisterID dst)
@@ -756,7 +884,7 @@ public:
void setne_r(RegisterID dst)
{
- m_formatter.twoByteOp8(OP_SETNE, (GroupOpcodeID)0, dst);
+ m_formatter.twoByteOp8(setccOpcode(ConditionNE), (GroupOpcodeID)0, dst);
}
void setnz_r(RegisterID dst)
@@ -877,6 +1005,12 @@ public:
m_formatter.immediate64(reinterpret_cast<int64_t>(addr));
}
+ void movq_EAXm(void* addr)
+ {
+ m_formatter.oneByteOp64(OP_MOV_OvEAX);
+ m_formatter.immediate64(reinterpret_cast<int64_t>(addr));
+ }
+
void movq_mr(int offset, RegisterID base, RegisterID dst)
{
m_formatter.oneByteOp64(OP_MOV_GvEv, dst, base, offset);
@@ -892,6 +1026,12 @@ public:
m_formatter.oneByteOp64(OP_MOV_GvEv, dst, base, index, scale, offset);
}
+ void movq_i32m(int imm, int offset, RegisterID base)
+ {
+ m_formatter.oneByteOp64(OP_GROUP11_EvIz, GROUP11_MOV, base, offset);
+ m_formatter.immediate32(imm);
+ }
+
void movq_i64r(int64_t imm, RegisterID dst)
{
m_formatter.oneByteOp64(OP_MOV_EAXIv, dst);
@@ -905,6 +1045,14 @@ public:
#else
+ void movl_rm(RegisterID src, void* addr)
+ {
+ if (src == X86::eax)
+ movl_EAXm(addr);
+ else
+ m_formatter.oneByteOp(OP_MOV_EvGv, src, addr);
+ }
+
void movl_mr(void* addr, RegisterID dst)
{
if (dst == X86::eax)
@@ -942,6 +1090,12 @@ public:
{
m_formatter.oneByteOp(OP_LEA, dst, base, offset);
}
+#if PLATFORM(X86_64)
+ void leaq_mr(int offset, RegisterID base, RegisterID dst)
+ {
+ m_formatter.oneByteOp64(OP_LEA, dst, base, offset);
+ }
+#endif
// Flow control:
@@ -956,6 +1110,11 @@ public:
m_formatter.oneByteOp(OP_GROUP5_Ev, GROUP5_OP_CALLN, dst);
return JmpSrc(m_formatter.size());
}
+
+ void call_m(int offset, RegisterID base)
+ {
+ m_formatter.oneByteOp(OP_GROUP5_Ev, GROUP5_OP_CALLN, base, offset);
+ }
JmpSrc jmp()
{
@@ -963,9 +1122,13 @@ public:
return m_formatter.immediateRel32();
}
- void jmp_r(RegisterID dst)
+ // Return a JmpSrc so we have a label to the jump, so we can use this
+ // To make a tail recursive call on x86-64. The MacroAssembler
+ // really shouldn't wrap this as a Jump, since it can't be linked. :-/
+ JmpSrc jmp_r(RegisterID dst)
{
m_formatter.oneByteOp(OP_GROUP5_Ev, GROUP5_OP_JMPN, dst);
+ return JmpSrc(m_formatter.size());
}
void jmp_m(int offset, RegisterID base)
@@ -975,7 +1138,7 @@ public:
JmpSrc jne()
{
- m_formatter.twoByteOp(OP2_JNE_rel32);
+ m_formatter.twoByteOp(jccRel32(ConditionNE));
return m_formatter.immediateRel32();
}
@@ -986,73 +1149,79 @@ public:
JmpSrc je()
{
- m_formatter.twoByteOp(OP2_JE_rel32);
+ m_formatter.twoByteOp(jccRel32(ConditionE));
return m_formatter.immediateRel32();
}
JmpSrc jl()
{
- m_formatter.twoByteOp(OP2_JL_rel32);
+ m_formatter.twoByteOp(jccRel32(ConditionL));
return m_formatter.immediateRel32();
}
JmpSrc jb()
{
- m_formatter.twoByteOp(OP2_JB_rel32);
+ m_formatter.twoByteOp(jccRel32(ConditionB));
return m_formatter.immediateRel32();
}
JmpSrc jle()
{
- m_formatter.twoByteOp(OP2_JLE_rel32);
+ m_formatter.twoByteOp(jccRel32(ConditionLE));
return m_formatter.immediateRel32();
}
JmpSrc jbe()
{
- m_formatter.twoByteOp(OP2_JBE_rel32);
+ m_formatter.twoByteOp(jccRel32(ConditionBE));
return m_formatter.immediateRel32();
}
JmpSrc jge()
{
- m_formatter.twoByteOp(OP2_JGE_rel32);
+ m_formatter.twoByteOp(jccRel32(ConditionGE));
return m_formatter.immediateRel32();
}
JmpSrc jg()
{
- m_formatter.twoByteOp(OP2_JG_rel32);
+ m_formatter.twoByteOp(jccRel32(ConditionG));
return m_formatter.immediateRel32();
}
JmpSrc ja()
{
- m_formatter.twoByteOp(OP2_JA_rel32);
+ m_formatter.twoByteOp(jccRel32(ConditionA));
return m_formatter.immediateRel32();
}
JmpSrc jae()
{
- m_formatter.twoByteOp(OP2_JAE_rel32);
+ m_formatter.twoByteOp(jccRel32(ConditionAE));
return m_formatter.immediateRel32();
}
JmpSrc jo()
{
- m_formatter.twoByteOp(OP2_JO_rel32);
+ m_formatter.twoByteOp(jccRel32(ConditionO));
return m_formatter.immediateRel32();
}
JmpSrc jp()
{
- m_formatter.twoByteOp(OP2_JP_rel32);
+ m_formatter.twoByteOp(jccRel32(ConditionP));
return m_formatter.immediateRel32();
}
JmpSrc js()
{
- m_formatter.twoByteOp(OP2_JS_rel32);
+ m_formatter.twoByteOp(jccRel32(ConditionS));
+ return m_formatter.immediateRel32();
+ }
+
+ JmpSrc jCC(Condition cond)
+ {
+ m_formatter.twoByteOp(jccRel32(cond));
return m_formatter.immediateRel32();
}
@@ -1088,6 +1257,20 @@ public:
m_formatter.twoByteOp(OP2_MOVD_EdVd, (RegisterID)src, dst);
}
+#if PLATFORM(X86_64)
+ void movq_rr(XMMRegisterID src, RegisterID dst)
+ {
+ m_formatter.prefix(PRE_SSE_66);
+ m_formatter.twoByteOp64(OP2_MOVD_EdVd, (RegisterID)src, dst);
+ }
+
+ void movq_rr(RegisterID src, XMMRegisterID dst)
+ {
+ m_formatter.prefix(PRE_SSE_66);
+ m_formatter.twoByteOp64(OP2_MOVD_VdEd, (RegisterID)dst, src);
+ }
+#endif
+
void movsd_rm(XMMRegisterID src, int offset, RegisterID base)
{
m_formatter.prefix(PRE_SSE_F2);
@@ -1131,7 +1314,7 @@ public:
m_formatter.twoByteOp(OP2_SUBSD_VsdWsd, (RegisterID)dst, base, offset);
}
- void ucomis_rr(XMMRegisterID src, XMMRegisterID dst)
+ void ucomisd_rr(XMMRegisterID src, XMMRegisterID dst)
{
m_formatter.prefix(PRE_SSE_66);
m_formatter.twoByteOp(OP2_UCOMISD_VsdWsd, (RegisterID)dst, (RegisterID)src);
@@ -1170,31 +1353,95 @@ public:
}
// Linking & patching:
+ //
+ // 'link' and 'patch' methods are for use on unprotected code - such as the code
+ // within the AssemblerBuffer, and code being patched by the patch buffer. Once
+ // code has been finalized it is (platform support permitting) within a non-
+ // writable region of memory; to modify the code in an execute-only execuable
+ // pool the 'repatch' and 'relink' methods should be used.
- void link(JmpSrc from, JmpDst to)
+ void linkJump(JmpSrc from, JmpDst to)
{
- ASSERT(to.m_offset != -1);
ASSERT(from.m_offset != -1);
-
- reinterpret_cast<int*>(reinterpret_cast<ptrdiff_t>(m_formatter.data()) + from.m_offset)[-1] = to.m_offset - from.m_offset;
+ ASSERT(to.m_offset != -1);
+
+ char* code = reinterpret_cast<char*>(m_formatter.data());
+ patchRel32(code + from.m_offset, code + to.m_offset);
}
- static void patchAddress(void* code, JmpDst position, void* value)
+ static void linkJump(void* code, JmpSrc from, void* to)
{
- ASSERT(position.m_offset != -1);
-
- reinterpret_cast<void**>(reinterpret_cast<ptrdiff_t>(code) + position.m_offset)[-1] = value;
+ ASSERT(from.m_offset != -1);
+
+ patchRel32(reinterpret_cast<char*>(code) + from.m_offset, to);
}
-
- static void link(void* code, JmpSrc from, void* to)
+
+ static void linkCall(void* code, JmpSrc from, void* to)
{
ASSERT(from.m_offset != -1);
-
- reinterpret_cast<int*>(reinterpret_cast<ptrdiff_t>(code) + from.m_offset)[-1] = reinterpret_cast<ptrdiff_t>(to) - (reinterpret_cast<ptrdiff_t>(code) + from.m_offset);
+
+ patchRel32(reinterpret_cast<char*>(code) + from.m_offset, to);
+ }
+
+#if PLATFORM(X86_64)
+ static void patchPointerForCall(void* where, void* value)
+ {
+ reinterpret_cast<void**>(where)[-1] = value;
+ }
+#endif
+
+ static void patchPointer(void* code, JmpDst where, void* value)
+ {
+ ASSERT(where.m_offset != -1);
+
+ patchPointer(reinterpret_cast<char*>(code) + where.m_offset, value);
+ }
+
+ static void relinkJump(void* from, void* to)
+ {
+ ExecutableAllocator::MakeWritable unprotect(reinterpret_cast<char*>(from) - sizeof(int32_t), sizeof(int32_t));
+ patchRel32(from, to);
}
+ static void relinkCall(void* from, void* to)
+ {
+ ExecutableAllocator::MakeWritable unprotect(reinterpret_cast<char*>(from) - sizeof(int32_t), sizeof(int32_t));
+ patchRel32(from, to);
+ }
+
+ static void repatchInt32(void* where, int32_t value)
+ {
+ ExecutableAllocator::MakeWritable unprotect(reinterpret_cast<char*>(where) - sizeof(int32_t), sizeof(int32_t));
+ patchInt32(where, value);
+ }
+
+ static void repatchPointer(void* where, void* value)
+ {
+ ExecutableAllocator::MakeWritable unprotect(reinterpret_cast<char*>(where) - sizeof(void*), sizeof(void*));
+ patchPointer(where, value);
+ }
+
+ static void repatchLoadPtrToLEA(void* where)
+ {
+#if PLATFORM(X86_64)
+ // On x86-64 pointer memory accesses require a 64-bit operand, and as such a REX prefix.
+ // Skip over the prefix byte.
+ where = reinterpret_cast<char*>(where) + 1;
+#endif
+ ExecutableAllocator::MakeWritable unprotect(where, 1);
+ *reinterpret_cast<unsigned char*>(where) = static_cast<unsigned char>(OP_LEA);
+ }
+
+ static unsigned getCallReturnOffset(JmpSrc call)
+ {
+ ASSERT(call.m_offset >= 0);
+ return call.m_offset;
+ }
+
static void* getRelocatedAddress(void* code, JmpSrc jump)
{
+ ASSERT(jump.m_offset != -1);
+
return reinterpret_cast<void*>(reinterpret_cast<ptrdiff_t>(code) + jump.m_offset);
}
@@ -1220,23 +1467,6 @@ public:
return dst.m_offset - src.m_offset;
}
- static void patchImmediate(intptr_t where, int32_t value)
- {
- reinterpret_cast<int32_t*>(where)[-1] = value;
- }
-
- static void patchPointer(intptr_t where, intptr_t value)
- {
- reinterpret_cast<intptr_t*>(where)[-1] = value;
- }
-
- static void patchBranchOffset(intptr_t where, void* destination)
- {
- intptr_t offset = reinterpret_cast<intptr_t>(destination) - where;
- ASSERT(offset == static_cast<int32_t>(offset));
- reinterpret_cast<int32_t*>(where)[-1] = static_cast<int32_t>(offset);
- }
-
void* executableCopy(ExecutablePool* allocator)
{
void* copy = m_formatter.executableCopy(allocator);
@@ -1246,6 +1476,24 @@ public:
private:
+ static void patchPointer(void* where, void* value)
+ {
+ reinterpret_cast<void**>(where)[-1] = value;
+ }
+
+ static void patchInt32(void* where, int32_t value)
+ {
+ reinterpret_cast<int32_t*>(where)[-1] = value;
+ }
+
+ static void patchRel32(void* from, void* to)
+ {
+ intptr_t offset = reinterpret_cast<intptr_t>(to) - reinterpret_cast<intptr_t>(from);
+ ASSERT(offset == static_cast<int32_t>(offset));
+
+ patchInt32(from, offset);
+ }
+
class X86InstructionFormatter {
static const int maxInstructionSize = 16;
@@ -1415,6 +1663,15 @@ private:
m_buffer.putByteUnchecked(opcode);
memoryModRM(reg, base, index, scale, offset);
}
+
+ void twoByteOp64(TwoByteOpcodeID opcode, int reg, RegisterID rm)
+ {
+ m_buffer.ensureSpace(maxInstructionSize);
+ emitRexW(reg, 0, rm);
+ m_buffer.putByteUnchecked(OP_2BYTE_ESCAPE);
+ m_buffer.putByteUnchecked(opcode);
+ registerModRM(reg, rm);
+ }
#endif
// Byte-operands:
@@ -1478,6 +1735,11 @@ private:
m_buffer.putByteUnchecked(imm);
}
+ void immediate16(int imm)
+ {
+ m_buffer.putShortUnchecked(imm);
+ }
+
void immediate32(int imm)
{
m_buffer.putIntUnchecked(imm);
@@ -1572,13 +1834,8 @@ private:
{
ASSERT(mode != ModRmRegister);
- // Encode sacle of (1,2,4,8) -> (0,1,2,3)
- int shift = 0;
- while (scale >>= 1)
- shift++;
-
putModRm(mode, reg, hasSib);
- m_buffer.putByteUnchecked((shift << 6) | ((index & 7) << 3) | (base & 7));
+ m_buffer.putByteUnchecked((scale << 6) | ((index & 7) << 3) | (base & 7));
}
void registerModRM(int reg, RegisterID rm)
diff --git a/src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.cpp b/src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.cpp
index 9207c8a..d2b122a 100644
--- a/src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.cpp
@@ -55,15 +55,15 @@ static UString escapeQuotes(const UString& str)
return result;
}
-static UString valueToSourceString(ExecState* exec, JSValuePtr val)
+static UString valueToSourceString(ExecState* exec, JSValue val)
{
- if (val->isString()) {
+ if (val.isString()) {
UString result("\"");
- result += escapeQuotes(val->toString(exec)) + "\"";
+ result += escapeQuotes(val.toString(exec)) + "\"";
return result;
}
- return val->toString(exec);
+ return val.toString(exec);
}
static CString registerName(int r)
@@ -74,7 +74,7 @@ static CString registerName(int r)
return (UString("r") + UString::from(r)).UTF8String();
}
-static CString constantName(ExecState* exec, int k, JSValuePtr value)
+static CString constantName(ExecState* exec, int k, JSValue value)
{
return (valueToSourceString(exec, value) + "(@k" + UString::from(k) + ")").UTF8String();
}
@@ -357,7 +357,7 @@ void CodeBlock::dump(ExecState* exec) const
unsigned registerIndex = m_numVars;
size_t i = 0;
do {
- printf(" r%u = %s\n", registerIndex, valueToSourceString(exec, m_constantRegisters[i].jsValue(exec)).ascii());
+ printf(" r%u = %s\n", registerIndex, valueToSourceString(exec, m_constantRegisters[i].jsValue()).ascii());
++i;
++registerIndex;
} while (i < m_constantRegisters.size());
@@ -497,6 +497,10 @@ void CodeBlock::dump(ExecState* exec, const Vector<Instruction>::const_iterator&
printf("[%4d] create_arguments\n", location);
break;
}
+ case op_init_arguments: {
+ printf("[%4d] init_arguments\n", location);
+ break;
+ }
case op_convert_this: {
int r0 = (++it)->u.operand;
printf("[%4d] convert_this %s\n", location, registerName(r0).c_str());
@@ -703,7 +707,7 @@ void CodeBlock::dump(ExecState* exec, const Vector<Instruction>::const_iterator&
}
case op_resolve_global: {
int r0 = (++it)->u.operand;
- JSValuePtr scope = JSValuePtr((++it)->u.jsCell);
+ JSValue scope = JSValue((++it)->u.jsCell);
int id0 = (++it)->u.operand;
printf("[%4d] resolve_global\t %s, %s, %s\n", location, registerName(r0).c_str(), valueToSourceString(exec, scope).ascii(), idName(id0, m_identifiers[id0]).c_str());
it += 2;
@@ -724,15 +728,14 @@ void CodeBlock::dump(ExecState* exec, const Vector<Instruction>::const_iterator&
break;
}
case op_get_global_var: {
- int r0 = it[1].u.operand;
- JSValuePtr scope = JSValuePtr(it[2].u.jsCell);
- int index = it[3].u.operand;
+ int r0 = (++it)->u.operand;
+ JSValue scope = JSValue((++it)->u.jsCell);
+ int index = (++it)->u.operand;
printf("[%4d] get_global_var\t %s, %s, %d\n", location, registerName(r0).c_str(), valueToSourceString(exec, scope).ascii(), index);
- it += OPCODE_LENGTH(op_get_global_var);
break;
}
case op_put_global_var: {
- JSValuePtr scope = JSValuePtr((++it)->u.jsCell);
+ JSValue scope = JSValue((++it)->u.jsCell);
int index = (++it)->u.operand;
int r0 = (++it)->u.operand;
printf("[%4d] put_global_var\t %s, %d, %s\n", location, valueToSourceString(exec, scope).ascii(), index, registerName(r0).c_str());
@@ -824,6 +827,10 @@ void CodeBlock::dump(ExecState* exec, const Vector<Instruction>::const_iterator&
printf("[%4d] put_setter\t %s, %s, %s\n", location, registerName(r0).c_str(), idName(id0, m_identifiers[id0]).c_str(), registerName(r1).c_str());
break;
}
+ case op_method_check: {
+ printf("[%4d] op_method_check\n", location);
+ break;
+ }
case op_del_by_id: {
int r0 = (++it)->u.operand;
int r1 = (++it)->u.operand;
@@ -889,6 +896,13 @@ void CodeBlock::dump(ExecState* exec, const Vector<Instruction>::const_iterator&
printConditionalJump(begin, it, location, "jneq_null");
break;
}
+ case op_jneq_ptr: {
+ int r0 = (++it)->u.operand;
+ int r1 = (++it)->u.operand;
+ int offset = (++it)->u.operand;
+ printf("[%4d] jneq_ptr\t\t %s, %s, %d(->%d)\n", location, registerName(r0).c_str(), registerName(r1).c_str(), offset, locationForOffset(begin, it, offset));
+ break;
+ }
case op_jnless: {
int r0 = (++it)->u.operand;
int r1 = (++it)->u.operand;
@@ -896,6 +910,13 @@ void CodeBlock::dump(ExecState* exec, const Vector<Instruction>::const_iterator&
printf("[%4d] jnless\t\t %s, %s, %d(->%d)\n", location, registerName(r0).c_str(), registerName(r1).c_str(), offset, locationForOffset(begin, it, offset));
break;
}
+ case op_jnlesseq: {
+ int r0 = (++it)->u.operand;
+ int r1 = (++it)->u.operand;
+ int offset = (++it)->u.operand;
+ printf("[%4d] jnlesseq\t\t %s, %s, %d(->%d)\n", location, registerName(r0).c_str(), registerName(r1).c_str(), offset, locationForOffset(begin, it, offset));
+ break;
+ }
case op_loop_if_less: {
int r0 = (++it)->u.operand;
int r1 = (++it)->u.operand;
@@ -959,6 +980,18 @@ void CodeBlock::dump(ExecState* exec, const Vector<Instruction>::const_iterator&
printf("[%4d] call_eval\t %s, %s, %d, %d\n", location, registerName(dst).c_str(), registerName(func).c_str(), argCount, registerOffset);
break;
}
+ case op_call_varargs: {
+ int dst = (++it)->u.operand;
+ int func = (++it)->u.operand;
+ int argCount = (++it)->u.operand;
+ int registerOffset = (++it)->u.operand;
+ printf("[%4d] call_varargs\t %s, %s, %s, %d\n", location, registerName(dst).c_str(), registerName(func).c_str(), registerName(argCount).c_str(), registerOffset);
+ break;
+ }
+ case op_load_varargs: {
+ printUnaryOp(location, it, "load_varargs");
+ break;
+ }
case op_tear_off_activation: {
int r0 = (++it)->u.operand;
printf("[%4d] tear_off_activation\t %s\n", location, registerName(r0).c_str());
@@ -989,6 +1022,19 @@ void CodeBlock::dump(ExecState* exec, const Vector<Instruction>::const_iterator&
printf("[%4d] construct_verify\t %s, %s\n", location, registerName(r0).c_str(), registerName(r1).c_str());
break;
}
+ case op_strcat: {
+ int r0 = (++it)->u.operand;
+ int r1 = (++it)->u.operand;
+ int count = (++it)->u.operand;
+ printf("[%4d] op_strcat\t %s, %s, %d\n", location, registerName(r0).c_str(), registerName(r1).c_str(), count);
+ break;
+ }
+ case op_to_primitive: {
+ int r0 = (++it)->u.operand;
+ int r1 = (++it)->u.operand;
+ printf("[%4d] op_to_primitive\t %s, %s\n", location, registerName(r0).c_str(), registerName(r1).c_str());
+ break;
+ }
case op_get_pnames: {
int r0 = (++it)->u.operand;
int r1 = (++it)->u.operand;
@@ -1091,8 +1137,7 @@ static HashSet<CodeBlock*> liveCodeBlockSet;
macro(linkedCallerList) \
macro(identifiers) \
macro(functionExpressions) \
- macro(constantRegisters) \
- macro(pcVector)
+ macro(constantRegisters)
#define FOR_EACH_MEMBER_VECTOR_RARE_DATA(macro) \
macro(regexps) \
@@ -1107,7 +1152,8 @@ static HashSet<CodeBlock*> liveCodeBlockSet;
#define FOR_EACH_MEMBER_VECTOR_EXCEPTION_INFO(macro) \
macro(expressionInfo) \
macro(lineInfo) \
- macro(getByIdExceptionInfo)
+ macro(getByIdExceptionInfo) \
+ macro(pcVector)
template<typename T>
static size_t sizeInBytes(const Vector<T>& vector)
@@ -1232,6 +1278,7 @@ CodeBlock::CodeBlock(ScopeNode* ownerNode, CodeType codeType, PassRefPtr<SourceP
#endif
, m_needsFullScopeChain(ownerNode->needsActivation())
, m_usesEval(ownerNode->usesEval())
+ , m_isNumericCompareFunction(false)
, m_codeType(codeType)
, m_source(sourceProvider)
, m_sourceOffset(sourceOffset)
@@ -1267,6 +1314,11 @@ CodeBlock::~CodeBlock()
callLinkInfo->callee->removeCaller(callLinkInfo);
}
+ for (size_t size = m_methodCallLinkInfos.size(), i = 0; i < size; ++i) {
+ if (Structure* structure = m_methodCallLinkInfos[i].cachedStructure)
+ structure->deref();
+ }
+
unlinkCallers();
#endif
@@ -1380,9 +1432,10 @@ void CodeBlock::mark()
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();
+ if (!m_rareData->m_unexpectedConstants[i].marked())
+ m_rareData->m_unexpectedConstants[i].mark();
}
+ m_rareData->m_evalCodeCache.mark();
}
}
@@ -1392,6 +1445,17 @@ void CodeBlock::reparseForExceptionInfoIfNecessary(CallFrame* callFrame)
return;
ScopeChainNode* scopeChain = callFrame->scopeChain();
+ if (m_needsFullScopeChain) {
+ ScopeChain sc(scopeChain);
+ int scopeDelta = sc.localDepth();
+ if (m_codeType == EvalCode)
+ scopeDelta -= static_cast<EvalCodeBlock*>(this)->baseScopeDepth();
+ else if (m_codeType == FunctionCode)
+ scopeDelta++; // Compilation of function code assumes activation is not on the scope chain yet.
+ ASSERT(scopeDelta >= 0);
+ while (scopeDelta--)
+ scopeChain = scopeChain->next;
+ }
switch (m_codeType) {
case FunctionCode: {
@@ -1399,19 +1463,43 @@ void CodeBlock::reparseForExceptionInfoIfNecessary(CallFrame* callFrame)
RefPtr<FunctionBodyNode> newFunctionBody = m_globalData->parser->reparse<FunctionBodyNode>(m_globalData, ownerFunctionBodyNode);
ASSERT(newFunctionBody);
newFunctionBody->finishParsing(ownerFunctionBodyNode->copyParameters(), ownerFunctionBodyNode->parameterCount());
- CodeBlock& newCodeBlock = newFunctionBody->bytecodeForExceptionInfoReparse(scopeChain);
+
+ m_globalData->scopeNodeBeingReparsed = newFunctionBody.get();
+
+ CodeBlock& newCodeBlock = newFunctionBody->bytecodeForExceptionInfoReparse(scopeChain, this);
ASSERT(newCodeBlock.m_exceptionInfo);
ASSERT(newCodeBlock.m_instructionCount == m_instructionCount);
+
+#if ENABLE(JIT)
+ JIT::compile(m_globalData, &newCodeBlock);
+ ASSERT(newFunctionBody->generatedJITCode().size() == ownerNode()->generatedJITCode().size());
+#endif
+
m_exceptionInfo.set(newCodeBlock.m_exceptionInfo.release());
+
+ m_globalData->scopeNodeBeingReparsed = 0;
+
break;
}
case EvalCode: {
EvalNode* ownerEvalNode = static_cast<EvalNode*>(m_ownerNode);
RefPtr<EvalNode> newEvalBody = m_globalData->parser->reparse<EvalNode>(m_globalData, ownerEvalNode);
- EvalCodeBlock& newCodeBlock = newEvalBody->bytecodeForExceptionInfoReparse(scopeChain);
+
+ m_globalData->scopeNodeBeingReparsed = newEvalBody.get();
+
+ EvalCodeBlock& newCodeBlock = newEvalBody->bytecodeForExceptionInfoReparse(scopeChain, this);
ASSERT(newCodeBlock.m_exceptionInfo);
ASSERT(newCodeBlock.m_instructionCount == m_instructionCount);
+
+#if ENABLE(JIT)
+ JIT::compile(m_globalData, &newCodeBlock);
+ ASSERT(newEvalBody->generatedJITCode().size() == ownerNode()->generatedJITCode().size());
+#endif
+
m_exceptionInfo.set(newCodeBlock.m_exceptionInfo.release());
+
+ m_globalData->scopeNodeBeingReparsed = 0;
+
break;
}
default:
@@ -1554,10 +1642,54 @@ bool CodeBlock::functionRegisterForBytecodeOffset(unsigned bytecodeOffset, int&
functionRegisterIndex = m_rareData->m_functionRegisterInfos[low - 1].functionRegisterIndex;
return true;
}
+#endif
+
+#if !ENABLE(JIT)
+bool CodeBlock::hasGlobalResolveInstructionAtBytecodeOffset(unsigned bytecodeOffset)
+{
+ if (m_globalResolveInstructions.isEmpty())
+ return false;
+
+ int low = 0;
+ int high = m_globalResolveInstructions.size();
+ while (low < high) {
+ int mid = low + (high - low) / 2;
+ if (m_globalResolveInstructions[mid] <= bytecodeOffset)
+ low = mid + 1;
+ else
+ high = mid;
+ }
-void CodeBlock::setJITCode(JITCodeRef& jitCode)
+ if (!low || m_globalResolveInstructions[low - 1] != bytecodeOffset)
+ return false;
+ return true;
+}
+#else
+bool CodeBlock::hasGlobalResolveInfoAtBytecodeOffset(unsigned bytecodeOffset)
+{
+ if (m_globalResolveInfos.isEmpty())
+ return false;
+
+ int low = 0;
+ int high = m_globalResolveInfos.size();
+ while (low < high) {
+ int mid = low + (high - low) / 2;
+ if (m_globalResolveInfos[mid].bytecodeOffset <= bytecodeOffset)
+ low = mid + 1;
+ else
+ high = mid;
+ }
+
+ if (!low || m_globalResolveInfos[low - 1].bytecodeOffset != bytecodeOffset)
+ return false;
+ return true;
+}
+#endif
+
+#if ENABLE(JIT)
+void CodeBlock::setJITCode(JITCode jitCode)
{
- m_jitCode = jitCode;
+ ownerNode()->setJITCode(jitCode);
#if !ENABLE(OPCODE_SAMPLING)
if (!BytecodeGenerator::dumpsGeneratedCode())
m_instructions.clear();
diff --git a/src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.h b/src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.h
index 517bd27..ac29c6c 100644
--- a/src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.h
+++ b/src/3rdparty/webkit/JavaScriptCore/bytecode/CodeBlock.h
@@ -32,6 +32,7 @@
#include "EvalCodeCache.h"
#include "Instruction.h"
+#include "JITCode.h"
#include "JSGlobalObject.h"
#include "JumpTable.h"
#include "Nodes.h"
@@ -58,29 +59,10 @@ namespace JSC {
uint32_t target;
uint32_t scopeDepth;
#if ENABLE(JIT)
- void* nativeCode;
+ MacroAssembler::CodeLocationLabel nativeCode;
#endif
};
-#if ENABLE(JIT)
- // The code, and the associated pool from which it was allocated.
- struct JITCodeRef {
- void* code;
- RefPtr<ExecutablePool> executablePool;
-
- JITCodeRef()
- : code(0)
- {
- }
-
- JITCodeRef(void* code, PassRefPtr<ExecutablePool> executablePool)
- : code(code)
- , executablePool(executablePool)
- {
- }
- };
-#endif
-
struct ExpressionRangeInfo {
enum {
MaxOffset = (1 << 7) - 1,
@@ -108,19 +90,15 @@ namespace JSC {
#if ENABLE(JIT)
struct CallLinkInfo {
CallLinkInfo()
- : callReturnLocation(0)
- , hotPathBegin(0)
- , hotPathOther(0)
- , coldPathOther(0)
- , callee(0)
+ : callee(0)
{
}
unsigned bytecodeIndex;
- void* callReturnLocation;
- void* hotPathBegin;
- void* hotPathOther;
- void* coldPathOther;
+ MacroAssembler::CodeLocationNearCall callReturnLocation;
+ MacroAssembler::CodeLocationDataLabelPtr hotPathBegin;
+ MacroAssembler::CodeLocationNearCall hotPathOther;
+ MacroAssembler::CodeLocationLabel coldPathOther;
CodeBlock* callee;
unsigned position;
@@ -128,6 +106,17 @@ namespace JSC {
bool isLinked() { return callee; }
};
+ struct MethodCallLinkInfo {
+ MethodCallLinkInfo()
+ : cachedStructure(0)
+ {
+ }
+
+ MacroAssembler::CodeLocationCall callReturnLocation;
+ MacroAssembler::CodeLocationDataLabelPtr structureLabel;
+ Structure* cachedStructure;
+ };
+
struct FunctionRegisterInfo {
FunctionRegisterInfo(unsigned bytecodeOffset, int functionRegisterIndex)
: bytecodeOffset(bytecodeOffset)
@@ -140,24 +129,30 @@ namespace JSC {
};
struct GlobalResolveInfo {
- GlobalResolveInfo()
+ GlobalResolveInfo(unsigned bytecodeOffset)
: structure(0)
, offset(0)
+ , bytecodeOffset(bytecodeOffset)
{
}
Structure* structure;
unsigned offset;
+ unsigned bytecodeOffset;
};
- struct PC {
- PC(ptrdiff_t nativePCOffset, unsigned bytecodeIndex)
- : nativePCOffset(nativePCOffset)
+ // This structure is used to map from a call return location
+ // (given as an offset in bytes into the JIT code) back to
+ // the bytecode index of the corresponding bytecode operation.
+ // This is then used to look up the corresponding handler.
+ struct CallReturnOffsetToBytecodeIndex {
+ CallReturnOffsetToBytecodeIndex(unsigned callReturnOffset, unsigned bytecodeIndex)
+ : callReturnOffset(callReturnOffset)
, bytecodeIndex(bytecodeIndex)
{
}
- ptrdiff_t nativePCOffset;
+ unsigned callReturnOffset;
unsigned bytecodeIndex;
};
@@ -165,17 +160,22 @@ namespace JSC {
inline void* getStructureStubInfoReturnLocation(StructureStubInfo* structureStubInfo)
{
- return structureStubInfo->callReturnLocation;
+ return structureStubInfo->callReturnLocation.calleeReturnAddressValue();
}
inline void* getCallLinkInfoReturnLocation(CallLinkInfo* callLinkInfo)
{
- return callLinkInfo->callReturnLocation;
+ return callLinkInfo->callReturnLocation.calleeReturnAddressValue();
+ }
+
+ inline void* getMethodCallLinkInfoReturnLocation(MethodCallLinkInfo* methodCallLinkInfo)
+ {
+ return methodCallLinkInfo->callReturnLocation.calleeReturnAddressValue();
}
- inline ptrdiff_t getNativePCOffset(PC* pc)
+ inline unsigned getCallReturnOffset(CallReturnOffsetToBytecodeIndex* pc)
{
- return pc->nativePCOffset;
+ return pc->callReturnOffset;
}
// Binary chop algorithm, calls valueAtPosition on pre-sorted elements in array,
@@ -242,7 +242,7 @@ namespace JSC {
return true;
if (isConstantRegisterIndex(index))
- return !JSImmediate::isImmediate(getConstant(index));
+ return getConstant(index).isCell();
return false;
}
@@ -252,9 +252,9 @@ namespace JSC {
return index >= m_numVars && index < m_numVars + m_numConstants;
}
- ALWAYS_INLINE JSValuePtr getConstant(int index)
+ ALWAYS_INLINE JSValue getConstant(int index)
{
- return m_constantRegisters[index - m_numVars].getJSValue();
+ return m_constantRegisters[index - m_numVars].jsValue();
}
ALWAYS_INLINE bool isTemporaryRegisterIndex(int index)
@@ -297,24 +297,31 @@ namespace JSC {
return *(binaryChop<CallLinkInfo, void*, getCallLinkInfoReturnLocation>(m_callLinkInfos.begin(), m_callLinkInfos.size(), returnAddress));
}
- unsigned getBytecodeIndex(void* nativePC)
+ MethodCallLinkInfo& getMethodCallLinkInfo(void* returnAddress)
{
- ptrdiff_t nativePCOffset = reinterpret_cast<void**>(nativePC) - reinterpret_cast<void**>(m_jitCode.code);
- return binaryChop<PC, ptrdiff_t, getNativePCOffset>(m_pcVector.begin(), m_pcVector.size(), nativePCOffset)->bytecodeIndex;
+ return *(binaryChop<MethodCallLinkInfo, void*, getMethodCallLinkInfoReturnLocation>(m_methodCallLinkInfos.begin(), m_methodCallLinkInfos.size(), returnAddress));
}
+ unsigned getBytecodeIndex(CallFrame* callFrame, void* nativePC)
+ {
+ reparseForExceptionInfoIfNecessary(callFrame);
+ return binaryChop<CallReturnOffsetToBytecodeIndex, unsigned, getCallReturnOffset>(m_exceptionInfo->m_callReturnIndexVector.begin(), m_exceptionInfo->m_callReturnIndexVector.size(), ownerNode()->generatedJITCode().offsetOf(nativePC))->bytecodeIndex;
+ }
+
bool functionRegisterForBytecodeOffset(unsigned bytecodeOffset, int& functionRegisterIndex);
#endif
+ void setIsNumericCompareFunction(bool isNumericCompareFunction) { m_isNumericCompareFunction = isNumericCompareFunction; }
+ bool isNumericCompareFunction() { return m_isNumericCompareFunction; }
+
Vector<Instruction>& instructions() { return m_instructions; }
#ifndef NDEBUG
void setInstructionCount(unsigned instructionCount) { m_instructionCount = instructionCount; }
#endif
#if ENABLE(JIT)
- void setJITCode(JITCodeRef& jitCode);
- void* jitCode() { return m_jitCode.code; }
- ExecutablePool* executablePool() { return m_jitCode.executablePool.get(); }
+ void setJITCode(JITCode);
+ ExecutablePool* executablePool() { return ownerNode()->getExecutablePool(); }
#endif
ScopeNode* ownerNode() const { return m_ownerNode; }
@@ -343,22 +350,25 @@ namespace JSC {
#if !ENABLE(JIT)
void addPropertyAccessInstruction(unsigned propertyAccessInstruction) { m_propertyAccessInstructions.append(propertyAccessInstruction); }
- void addGlobalResolveInstruction(unsigned globalResolveInstructions) { m_globalResolveInstructions.append(globalResolveInstructions); }
+ void addGlobalResolveInstruction(unsigned globalResolveInstruction) { m_globalResolveInstructions.append(globalResolveInstruction); }
+ bool hasGlobalResolveInstructionAtBytecodeOffset(unsigned bytecodeOffset);
#else
size_t numberOfStructureStubInfos() const { return m_structureStubInfos.size(); }
void addStructureStubInfo(const StructureStubInfo& stubInfo) { m_structureStubInfos.append(stubInfo); }
StructureStubInfo& structureStubInfo(int index) { return m_structureStubInfos[index]; }
- void addGlobalResolveInfo() { m_globalResolveInfos.append(GlobalResolveInfo()); }
+ void addGlobalResolveInfo(unsigned globalResolveInstruction) { m_globalResolveInfos.append(GlobalResolveInfo(globalResolveInstruction)); }
GlobalResolveInfo& globalResolveInfo(int index) { return m_globalResolveInfos[index]; }
+ bool hasGlobalResolveInfoAtBytecodeOffset(unsigned bytecodeOffset);
size_t numberOfCallLinkInfos() const { return m_callLinkInfos.size(); }
void addCallLinkInfo() { m_callLinkInfos.append(CallLinkInfo()); }
CallLinkInfo& callLinkInfo(int index) { return m_callLinkInfos[index]; }
- void addFunctionRegisterInfo(unsigned bytecodeOffset, int functionIndex) { createRareDataIfNecessary(); m_rareData->m_functionRegisterInfos.append(FunctionRegisterInfo(bytecodeOffset, functionIndex)); }
+ void addMethodCallLinkInfos(unsigned n) { m_methodCallLinkInfos.grow(n); }
+ MethodCallLinkInfo& methodCallLinkInfo(int index) { return m_methodCallLinkInfos[index]; }
- Vector<PC>& pcVector() { return m_pcVector; }
+ void addFunctionRegisterInfo(unsigned bytecodeOffset, int functionIndex) { createRareDataIfNecessary(); m_rareData->m_functionRegisterInfos.append(FunctionRegisterInfo(bytecodeOffset, functionIndex)); }
#endif
// Exception handling support
@@ -367,6 +377,7 @@ namespace JSC {
void addExceptionHandler(const HandlerInfo& hanler) { createRareDataIfNecessary(); return m_rareData->m_exceptionHandlers.append(hanler); }
HandlerInfo& exceptionHandler(int index) { ASSERT(m_rareData); return m_rareData->m_exceptionHandlers[index]; }
+ bool hasExceptionInfo() const { return m_exceptionInfo; }
void clearExceptionInfo() { m_exceptionInfo.clear(); }
void addExpressionInfo(const ExpressionRangeInfo& expressionInfo) { ASSERT(m_exceptionInfo); m_exceptionInfo->m_expressionInfo.append(expressionInfo); }
@@ -376,6 +387,10 @@ namespace JSC {
void addLineInfo(const LineInfo& lineInfo) { ASSERT(m_exceptionInfo); m_exceptionInfo->m_lineInfo.append(lineInfo); }
LineInfo& lastLineInfo() { ASSERT(m_exceptionInfo); return m_exceptionInfo->m_lineInfo.last(); }
+#if ENABLE(JIT)
+ Vector<CallReturnOffsetToBytecodeIndex>& callReturnIndexVector() { ASSERT(m_exceptionInfo); return m_exceptionInfo->m_callReturnIndexVector; }
+#endif
+
// Constant Pool
size_t numberOfIdentifiers() const { return m_identifiers.size(); }
@@ -392,8 +407,10 @@ namespace JSC {
unsigned addFunction(FuncDeclNode* n) { createRareDataIfNecessary(); unsigned size = m_rareData->m_functions.size(); m_rareData->m_functions.append(n); return size; }
FuncDeclNode* function(int index) const { ASSERT(m_rareData); return m_rareData->m_functions[index].get(); }
- unsigned addUnexpectedConstant(JSValuePtr v) { createRareDataIfNecessary(); unsigned size = m_rareData->m_unexpectedConstants.size(); m_rareData->m_unexpectedConstants.append(v); return size; }
- JSValuePtr unexpectedConstant(int index) const { ASSERT(m_rareData); return m_rareData->m_unexpectedConstants[index]; }
+ 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(); }
@@ -451,15 +468,13 @@ namespace JSC {
#ifndef NDEBUG
unsigned m_instructionCount;
#endif
-#if ENABLE(JIT)
- JITCodeRef m_jitCode;
-#endif
int m_thisRegister;
bool m_needsFullScopeChain;
bool m_usesEval;
bool m_usesArguments;
+ bool m_isNumericCompareFunction;
CodeType m_codeType;
@@ -473,9 +488,8 @@ namespace JSC {
Vector<StructureStubInfo> m_structureStubInfos;
Vector<GlobalResolveInfo> m_globalResolveInfos;
Vector<CallLinkInfo> m_callLinkInfos;
+ Vector<MethodCallLinkInfo> m_methodCallLinkInfos;
Vector<CallLinkInfo*> m_linkedCallerList;
-
- Vector<PC> m_pcVector;
#endif
Vector<unsigned> m_jumpTargets;
@@ -491,6 +505,10 @@ namespace JSC {
Vector<ExpressionRangeInfo> m_expressionInfo;
Vector<LineInfo> m_lineInfo;
Vector<GetByIdExceptionInfo> m_getByIdExceptionInfo;
+
+#if ENABLE(JIT)
+ Vector<CallReturnOffsetToBytecodeIndex> m_callReturnIndexVector;
+#endif
};
OwnPtr<ExceptionInfo> m_exceptionInfo;
@@ -499,7 +517,7 @@ namespace JSC {
// Rare Constants
Vector<RefPtr<FuncDeclNode> > m_functions;
- Vector<JSValuePtr> m_unexpectedConstants;
+ Vector<JSValue> m_unexpectedConstants;
Vector<RefPtr<RegExp> > m_regexps;
// Jump Tables
@@ -542,10 +560,16 @@ namespace JSC {
class EvalCodeBlock : public ProgramCodeBlock {
public:
- EvalCodeBlock(ScopeNode* ownerNode, JSGlobalObject* globalObject, PassRefPtr<SourceProvider> sourceProvider)
+ EvalCodeBlock(ScopeNode* ownerNode, JSGlobalObject* globalObject, PassRefPtr<SourceProvider> sourceProvider, int baseScopeDepth)
: ProgramCodeBlock(ownerNode, EvalCode, globalObject, sourceProvider)
+ , m_baseScopeDepth(baseScopeDepth)
{
}
+
+ int baseScopeDepth() const { return m_baseScopeDepth; }
+
+ private:
+ int m_baseScopeDepth;
};
} // namespace JSC
diff --git a/src/3rdparty/webkit/JavaScriptCore/bytecode/EvalCodeCache.h b/src/3rdparty/webkit/JavaScriptCore/bytecode/EvalCodeCache.h
index 29be295..f0ce73e 100644
--- a/src/3rdparty/webkit/JavaScriptCore/bytecode/EvalCodeCache.h
+++ b/src/3rdparty/webkit/JavaScriptCore/bytecode/EvalCodeCache.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
@@ -41,7 +41,7 @@ namespace JSC {
class EvalCodeCache {
public:
- PassRefPtr<EvalNode> get(ExecState* exec, const UString& evalSource, ScopeChainNode* scopeChain, JSValuePtr& exceptionValue)
+ PassRefPtr<EvalNode> get(ExecState* exec, const UString& evalSource, ScopeChainNode* scopeChain, JSValue& exceptionValue)
{
RefPtr<EvalNode> evalNode;
@@ -68,11 +68,18 @@ namespace JSC {
bool isEmpty() const { return m_cacheMap.isEmpty(); }
+ void mark()
+ {
+ EvalCacheMap::iterator end = m_cacheMap.end();
+ for (EvalCacheMap::iterator ptr = m_cacheMap.begin(); ptr != end; ++ptr)
+ ptr->second->mark();
+ }
private:
static const int maxCacheableSourceLength = 256;
static const int maxCacheEntries = 64;
- HashMap<RefPtr<UString::Rep>, RefPtr<EvalNode> > m_cacheMap;
+ typedef HashMap<RefPtr<UString::Rep>, RefPtr<EvalNode> > EvalCacheMap;
+ EvalCacheMap m_cacheMap;
};
} // namespace JSC
diff --git a/src/3rdparty/webkit/JavaScriptCore/bytecode/Instruction.h b/src/3rdparty/webkit/JavaScriptCore/bytecode/Instruction.h
index 81a7fa0..24ba490 100644
--- a/src/3rdparty/webkit/JavaScriptCore/bytecode/Instruction.h
+++ b/src/3rdparty/webkit/JavaScriptCore/bytecode/Instruction.h
@@ -29,14 +29,25 @@
#ifndef Instruction_h
#define Instruction_h
+#include "MacroAssembler.h"
#include "Opcode.h"
#include "Structure.h"
#include <wtf/VectorTraits.h>
-#define POLYMORPHIC_LIST_CACHE_SIZE 4
+#define POLYMORPHIC_LIST_CACHE_SIZE 8
namespace JSC {
+ // *Sigh*, If the JIT is enabled we need to track the stubRountine (of type MacroAssembler::CodeLocationLabel),
+ // If the JIT is not in use we don't actually need the variable (that said, if the JIT is not in use we don't
+ // curently actually use PolymorphicAccessStructureLists, which we should). Anyway, this seems like the best
+ // solution for now - will need to something smarter if/when we actually want mixed-mode operation.
+#if ENABLE(JIT)
+ typedef MacroAssembler::CodeLocationLabel PolymorphicAccessStructureListStubRoutineType;
+#else
+ typedef void* PolymorphicAccessStructureListStubRoutineType;
+#endif
+
class JSCell;
class Structure;
class StructureChain;
@@ -45,14 +56,14 @@ namespace JSC {
struct PolymorphicAccessStructureList {
struct PolymorphicStubInfo {
bool isChain;
- void* stubRoutine;
+ PolymorphicAccessStructureListStubRoutineType stubRoutine;
Structure* base;
union {
Structure* proto;
StructureChain* chain;
} u;
- void set(void* _stubRoutine, Structure* _base)
+ void set(PolymorphicAccessStructureListStubRoutineType _stubRoutine, Structure* _base)
{
stubRoutine = _stubRoutine;
base = _base;
@@ -60,7 +71,7 @@ namespace JSC {
isChain = false;
}
- void set(void* _stubRoutine, Structure* _base, Structure* _proto)
+ void set(PolymorphicAccessStructureListStubRoutineType _stubRoutine, Structure* _base, Structure* _proto)
{
stubRoutine = _stubRoutine;
base = _base;
@@ -68,7 +79,7 @@ namespace JSC {
isChain = false;
}
- void set(void* _stubRoutine, Structure* _base, StructureChain* _chain)
+ void set(PolymorphicAccessStructureListStubRoutineType _stubRoutine, Structure* _base, StructureChain* _chain)
{
stubRoutine = _stubRoutine;
base = _base;
@@ -77,17 +88,17 @@ namespace JSC {
}
} list[POLYMORPHIC_LIST_CACHE_SIZE];
- PolymorphicAccessStructureList(void* stubRoutine, Structure* firstBase)
+ PolymorphicAccessStructureList(PolymorphicAccessStructureListStubRoutineType stubRoutine, Structure* firstBase)
{
list[0].set(stubRoutine, firstBase);
}
- PolymorphicAccessStructureList(void* stubRoutine, Structure* firstBase, Structure* firstProto)
+ PolymorphicAccessStructureList(PolymorphicAccessStructureListStubRoutineType stubRoutine, Structure* firstBase, Structure* firstProto)
{
list[0].set(stubRoutine, firstBase, firstProto);
}
- PolymorphicAccessStructureList(void* stubRoutine, Structure* firstBase, StructureChain* firstChain)
+ PolymorphicAccessStructureList(PolymorphicAccessStructureListStubRoutineType stubRoutine, Structure* firstBase, StructureChain* firstChain)
{
list[0].set(stubRoutine, firstBase, firstChain);
}
@@ -111,11 +122,20 @@ namespace JSC {
};
struct Instruction {
- Instruction(Opcode opcode) { u.opcode = opcode; }
+ Instruction(Opcode opcode)
+ {
+#if !HAVE(COMPUTED_GOTO)
+ // We have to initialize one of the pointer members to ensure that
+ // the entire struct is initialized, when opcode is not a pointer.
+ u.jsCell = 0;
+#endif
+ u.opcode = opcode;
+ }
+
Instruction(int operand)
{
// We have to initialize one of the pointer members to ensure that
- // the entire struct is initialised in 64-bit.
+ // the entire struct is initialized in 64-bit.
u.jsCell = 0;
u.operand = operand;
}
diff --git a/src/3rdparty/webkit/JavaScriptCore/bytecode/JumpTable.h b/src/3rdparty/webkit/JavaScriptCore/bytecode/JumpTable.h
index 44e224d..eee773c 100644
--- a/src/3rdparty/webkit/JavaScriptCore/bytecode/JumpTable.h
+++ b/src/3rdparty/webkit/JavaScriptCore/bytecode/JumpTable.h
@@ -30,6 +30,7 @@
#ifndef JumpTable_h
#define JumpTable_h
+#include "MacroAssembler.h"
#include "UString.h"
#include <wtf/HashMap.h>
#include <wtf/Vector.h>
@@ -39,7 +40,7 @@ namespace JSC {
struct OffsetLocation {
int32_t branchOffset;
#if ENABLE(JIT)
- void* ctiOffset;
+ MacroAssembler::CodeLocationLabel ctiOffset;
#endif
};
@@ -47,7 +48,7 @@ namespace JSC {
typedef HashMap<RefPtr<UString::Rep>, OffsetLocation> StringOffsetTable;
StringOffsetTable offsetTable;
#if ENABLE(JIT)
- void* ctiDefault; // FIXME: it should not be necessary to store this.
+ MacroAssembler::CodeLocationLabel ctiDefault; // FIXME: it should not be necessary to store this.
#endif
inline int32_t offsetForValue(UString::Rep* value, int32_t defaultOffset)
@@ -60,7 +61,7 @@ namespace JSC {
}
#if ENABLE(JIT)
- inline void* ctiForValue(UString::Rep* value)
+ inline MacroAssembler::CodeLocationLabel ctiForValue(UString::Rep* value)
{
StringOffsetTable::const_iterator end = offsetTable.end();
StringOffsetTable::const_iterator loc = offsetTable.find(value);
@@ -76,8 +77,8 @@ namespace JSC {
Vector<int32_t> branchOffsets;
int32_t min;
#if ENABLE(JIT)
- Vector<void*> ctiOffsets;
- void* ctiDefault;
+ Vector<MacroAssembler::CodeLocationLabel> ctiOffsets;
+ MacroAssembler::CodeLocationLabel ctiDefault;
#endif
int32_t offsetForValue(int32_t value, int32_t defaultOffset);
@@ -88,7 +89,7 @@ namespace JSC {
}
#if ENABLE(JIT)
- inline void* ctiForValue(int32_t value)
+ inline MacroAssembler::CodeLocationLabel ctiForValue(int32_t value)
{
if (value >= min && static_cast<uint32_t>(value - min) < ctiOffsets.size())
return ctiOffsets[value - min];
diff --git a/src/3rdparty/webkit/JavaScriptCore/bytecode/Opcode.h b/src/3rdparty/webkit/JavaScriptCore/bytecode/Opcode.h
index e9c8f78..f4421df 100644
--- a/src/3rdparty/webkit/JavaScriptCore/bytecode/Opcode.h
+++ b/src/3rdparty/webkit/JavaScriptCore/bytecode/Opcode.h
@@ -40,6 +40,7 @@ namespace JSC {
#define FOR_EACH_OPCODE_ID(macro) \
macro(op_enter, 1) \
macro(op_enter_with_activation, 2) \
+ macro(op_init_arguments, 1) \
macro(op_create_arguments, 1) \
macro(op_convert_this, 2) \
\
@@ -94,7 +95,7 @@ namespace JSC {
macro(op_resolve_global, 6) \
macro(op_get_scoped_var, 4) \
macro(op_put_scoped_var, 4) \
- macro(op_get_global_var, 6) \
+ macro(op_get_global_var, 4) \
macro(op_put_global_var, 4) \
macro(op_resolve_base, 3) \
macro(op_resolve_with_base, 4) \
@@ -125,7 +126,9 @@ namespace JSC {
macro(op_jfalse, 3) \
macro(op_jeq_null, 3) \
macro(op_jneq_null, 3) \
+ macro(op_jneq_ptr, 4) \
macro(op_jnless, 4) \
+ macro(op_jnlesseq, 4) \
macro(op_jmp_scopes, 3) \
macro(op_loop, 2) \
macro(op_loop_if_true, 3) \
@@ -139,12 +142,17 @@ namespace JSC {
macro(op_new_func_exp, 3) \
macro(op_call, 5) \
macro(op_call_eval, 5) \
+ macro(op_call_varargs, 5) \
+ macro(op_load_varargs, 3) \
macro(op_tear_off_activation, 2) \
macro(op_tear_off_arguments, 1) \
macro(op_ret, 2) \
+ macro(op_method_check, 1) \
\
macro(op_construct, 7) \
macro(op_construct_verify, 3) \
+ macro(op_strcat, 4) \
+ macro(op_to_primitive, 3) \
\
macro(op_get_pnames, 3) \
macro(op_next_pname, 4) \
diff --git a/src/3rdparty/webkit/JavaScriptCore/bytecode/SamplingTool.cpp b/src/3rdparty/webkit/JavaScriptCore/bytecode/SamplingTool.cpp
index ffb9132..8651723 100644
--- a/src/3rdparty/webkit/JavaScriptCore/bytecode/SamplingTool.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/bytecode/SamplingTool.cpp
@@ -39,24 +39,57 @@
namespace JSC {
-void ScopeSampleRecord::sample(CodeBlock* codeBlock, Instruction* vPC)
+#if ENABLE(SAMPLING_FLAGS)
+
+void SamplingFlags::sample()
{
- if (!m_samples) {
- m_size = codeBlock->instructions().size();
- m_samples = static_cast<int*>(calloc(m_size, sizeof(int)));
- m_codeBlock = codeBlock;
+ uint32_t mask = 1 << 31;
+ unsigned index;
+
+ for (index = 0; index < 32; ++index) {
+ if (mask & s_flags)
+ break;
+ mask >>= 1;
}
- ++m_sampleCount;
+ s_flagCounts[32 - index]++;
+}
- unsigned offest = vPC - codeBlock->instructions().begin();
- // Since we don't read and write codeBlock and vPC atomically, this check
- // can fail if we sample mid op_call / op_ret.
- if (offest < m_size) {
- m_samples[offest]++;
- m_opcodeSampleCount++;
- }
+void SamplingFlags::start()
+{
+ for (unsigned i = 0; i <= 32; ++i)
+ s_flagCounts[i] = 0;
}
+void SamplingFlags::stop()
+{
+ uint64_t total = 0;
+ for (unsigned i = 0; i <= 32; ++i)
+ total += s_flagCounts[i];
+
+ if (total) {
+ printf("\nSamplingFlags: sample counts with flags set: (%lld total)\n", total);
+ for (unsigned i = 0; i <= 32; ++i) {
+ if (s_flagCounts[i])
+ printf(" [ %02d ] : %lld\t\t(%03.2f%%)\n", i, s_flagCounts[i], (100.0 * s_flagCounts[i]) / total);
+ }
+ printf("\n");
+ } else
+ printf("\nSamplingFlags: no samples.\n\n");
+}
+uint64_t SamplingFlags::s_flagCounts[33];
+
+#else
+void SamplingFlags::start() {}
+void SamplingFlags::stop() {}
+#endif
+
+/*
+ Start with flag 16 set.
+ By doing this the monitoring of lower valued flags will be masked out
+ until flag 16 is explictly cleared.
+*/
+uint32_t SamplingFlags::s_flags = 1 << 15;
+
#if PLATFORM(WIN_OS)
@@ -82,62 +115,113 @@ static inline unsigned hertz2us(unsigned hertz)
return 1000000 / hertz;
}
-void SamplingTool::run()
+
+SamplingTool* SamplingTool::s_samplingTool = 0;
+
+
+bool SamplingThread::s_running = false;
+unsigned SamplingThread::s_hertz = 10000;
+ThreadIdentifier SamplingThread::s_samplingThread;
+
+void* SamplingThread::threadStartFunc(void*)
{
- while (m_running) {
- sleepForMicroseconds(hertz2us(m_hertz));
+ while (s_running) {
+ sleepForMicroseconds(hertz2us(s_hertz));
- Sample sample(m_sample, m_codeBlock);
- ++m_sampleCount;
+#if ENABLE(SAMPLING_FLAGS)
+ SamplingFlags::sample();
+#endif
+#if ENABLE(OPCODE_SAMPLING)
+ SamplingTool::sample();
+#endif
+ }
- if (sample.isNull())
- continue;
+ return 0;
+}
- if (!sample.inHostFunction()) {
- unsigned opcodeID = m_interpreter->getOpcodeID(sample.vPC()[0].u.opcode);
- ++m_opcodeSampleCount;
- ++m_opcodeSamples[opcodeID];
+void SamplingThread::start(unsigned hertz)
+{
+ ASSERT(!s_running);
+ s_running = true;
+ s_hertz = hertz;
- if (sample.inCTIFunction())
- m_opcodeSamplesInCTIFunctions[opcodeID]++;
- }
+ s_samplingThread = createThread(threadStartFunc, 0, "JavaScriptCore::Sampler");
+}
+
+void SamplingThread::stop()
+{
+ ASSERT(s_running);
+ s_running = false;
+ waitForThreadCompletion(s_samplingThread, 0);
+}
+
+
+void ScopeSampleRecord::sample(CodeBlock* codeBlock, Instruction* vPC)
+{
+ if (!m_samples) {
+ m_size = codeBlock->instructions().size();
+ m_samples = static_cast<int*>(calloc(m_size, sizeof(int)));
+ m_codeBlock = codeBlock;
+ }
+
+ ++m_sampleCount;
+
+ unsigned offest = vPC - codeBlock->instructions().begin();
+ // Since we don't read and write codeBlock and vPC atomically, this check
+ // can fail if we sample mid op_call / op_ret.
+ if (offest < m_size) {
+ m_samples[offest]++;
+ m_opcodeSampleCount++;
+ }
+}
+
+void SamplingTool::doRun()
+{
+ Sample sample(m_sample, m_codeBlock);
+ ++m_sampleCount;
+
+ if (sample.isNull())
+ return;
+
+ if (!sample.inHostFunction()) {
+ unsigned opcodeID = m_interpreter->getOpcodeID(sample.vPC()[0].u.opcode);
+
+ ++m_opcodeSampleCount;
+ ++m_opcodeSamples[opcodeID];
+
+ if (sample.inCTIFunction())
+ m_opcodeSamplesInCTIFunctions[opcodeID]++;
+ }
#if ENABLE(CODEBLOCK_SAMPLING)
+ if (CodeBlock* codeBlock = sample.codeBlock()) {
MutexLocker locker(m_scopeSampleMapMutex);
- ScopeSampleRecord* record = m_scopeSampleMap->get(sample.codeBlock()->ownerNode);
+ ScopeSampleRecord* record = m_scopeSampleMap->get(codeBlock->ownerNode());
ASSERT(record);
- record->sample(sample.codeBlock(), sample.vPC());
-#endif
+ record->sample(codeBlock, sample.vPC());
}
+#endif
}
-void* SamplingTool::threadStartFunc(void* samplingTool)
+void SamplingTool::sample()
{
- reinterpret_cast<SamplingTool*>(samplingTool)->run();
- return 0;
+ s_samplingTool->doRun();
}
void SamplingTool::notifyOfScope(ScopeNode* scope)
{
+#if ENABLE(CODEBLOCK_SAMPLING)
MutexLocker locker(m_scopeSampleMapMutex);
m_scopeSampleMap->set(scope, new ScopeSampleRecord(scope));
+#else
+ UNUSED_PARAM(scope);
+#endif
}
-void SamplingTool::start(unsigned hertz)
-{
- ASSERT(!m_running);
- m_running = true;
- m_hertz = hertz;
-
- m_samplingThread = createThread(threadStartFunc, this, "JavaScriptCore::Sampler");
-}
-
-void SamplingTool::stop()
+void SamplingTool::setup()
{
- ASSERT(m_running);
- m_running = false;
- waitForThreadCompletion(m_samplingThread, 0);
+ s_samplingTool = this;
}
#if ENABLE(OPCODE_SAMPLING)
@@ -153,14 +237,6 @@ struct LineCountInfo {
unsigned count;
};
-static int compareLineCountInfoSampling(const void* left, const void* right)
-{
- const LineCountInfo* leftLineCount = reinterpret_cast<const LineCountInfo*>(left);
- const LineCountInfo* rightLineCount = reinterpret_cast<const LineCountInfo*>(right);
-
- return (leftLineCount->line > rightLineCount->line) ? 1 : (leftLineCount->line < rightLineCount->line) ? -1 : 0;
-}
-
static int compareOpcodeIndicesSampling(const void* left, const void* right)
{
const OpcodeSampleInfo* leftSampleInfo = reinterpret_cast<const OpcodeSampleInfo*>(left);
@@ -169,6 +245,15 @@ static int compareOpcodeIndicesSampling(const void* left, const void* right)
return (leftSampleInfo->count < rightSampleInfo->count) ? 1 : (leftSampleInfo->count > rightSampleInfo->count) ? -1 : 0;
}
+#if ENABLE(CODEBLOCK_SAMPLING)
+static int compareLineCountInfoSampling(const void* left, const void* right)
+{
+ const LineCountInfo* leftLineCount = reinterpret_cast<const LineCountInfo*>(left);
+ const LineCountInfo* rightLineCount = reinterpret_cast<const LineCountInfo*>(right);
+
+ return (leftLineCount->line > rightLineCount->line) ? 1 : (leftLineCount->line < rightLineCount->line) ? -1 : 0;
+}
+
static int compareScopeSampleRecords(const void* left, const void* right)
{
const ScopeSampleRecord* const leftValue = *static_cast<const ScopeSampleRecord* const *>(left);
@@ -176,6 +261,7 @@ static int compareScopeSampleRecords(const void* left, const void* right)
return (leftValue->m_sampleCount < rightValue->m_sampleCount) ? 1 : (leftValue->m_sampleCount > rightValue->m_sampleCount) ? -1 : 0;
}
+#endif
void SamplingTool::dump(ExecState* exec)
{
@@ -227,6 +313,8 @@ void SamplingTool::dump(ExecState* exec)
printf("\tcti count:\tsamples inside a CTI function called by this opcode\n");
printf("\tcti %% of self:\tcti count / sample count\n");
+#if ENABLE(CODEBLOCK_SAMPLING)
+
// (3) Build and sort 'codeBlockSamples' array.
int scopeCount = m_scopeSampleMap->size();
@@ -248,8 +336,8 @@ void SamplingTool::dump(ExecState* exec)
double blockPercent = (record->m_sampleCount * 100.0) / m_sampleCount;
if (blockPercent >= 1) {
- Instruction* code = codeBlock->instructions().begin();
- printf("#%d: %s:%d: %d / %lld (%.3f%%)\n", i + 1, record->m_scope->sourceURL().UTF8String().c_str(), codeBlock->lineNumberForBytecodeOffset(0), record->m_sampleCount, m_sampleCount, blockPercent);
+ //Instruction* code = codeBlock->instructions().begin();
+ printf("#%d: %s:%d: %d / %lld (%.3f%%)\n", i + 1, record->m_scope->sourceURL().UTF8String().c_str(), codeBlock->lineNumberForBytecodeOffset(exec, 0), record->m_sampleCount, m_sampleCount, blockPercent);
if (i < 10) {
HashMap<unsigned,unsigned> lineCounts;
codeBlock->dump(exec);
@@ -259,9 +347,7 @@ void SamplingTool::dump(ExecState* exec)
int count = record->m_samples[op];
if (count) {
printf(" [% 4d] has sample count: % 4d\n", op, count);
- // It is okay to pass 0 as the CallFrame for lineNumberForBytecodeOffset since
- // we ensure exception information when Sampling is enabled.
- unsigned line = codeBlock->lineNumberForBytecodeOffset(0, op);
+ unsigned line = codeBlock->lineNumberForBytecodeOffset(exec, op);
lineCounts.set(line, (lineCounts.contains(line) ? lineCounts.get(line) : 0) + count);
}
}
@@ -287,6 +373,9 @@ void SamplingTool::dump(ExecState* exec)
}
}
}
+#else
+ UNUSED_PARAM(exec);
+#endif
}
#else
@@ -297,4 +386,21 @@ void SamplingTool::dump(ExecState*)
#endif
+void AbstractSamplingCounter::dump()
+{
+#if ENABLE(SAMPLING_COUNTERS)
+ if (s_abstractSamplingCounterChain != &s_abstractSamplingCounterChainEnd) {
+ printf("\nSampling Counter Values:\n");
+ for (AbstractSamplingCounter* currCounter = s_abstractSamplingCounterChain; (currCounter != &s_abstractSamplingCounterChainEnd); currCounter = currCounter->m_next)
+ printf("\t%s\t: %lld\n", currCounter->m_name, currCounter->m_counter);
+ printf("\n\n");
+ }
+ s_completed = true;
+#endif
+}
+
+AbstractSamplingCounter AbstractSamplingCounter::s_abstractSamplingCounterChainEnd;
+AbstractSamplingCounter* AbstractSamplingCounter::s_abstractSamplingCounterChain = &s_abstractSamplingCounterChainEnd;
+bool AbstractSamplingCounter::s_completed = false;
+
} // namespace JSC
diff --git a/src/3rdparty/webkit/JavaScriptCore/bytecode/SamplingTool.h b/src/3rdparty/webkit/JavaScriptCore/bytecode/SamplingTool.h
index daf99d2..7d7dc9c 100644
--- a/src/3rdparty/webkit/JavaScriptCore/bytecode/SamplingTool.h
+++ b/src/3rdparty/webkit/JavaScriptCore/bytecode/SamplingTool.h
@@ -38,6 +38,54 @@
namespace JSC {
+ class SamplingFlags {
+ friend class JIT;
+ public:
+ static void start();
+ static void stop();
+
+#if ENABLE(SAMPLING_FLAGS)
+ static void setFlag(unsigned flag)
+ {
+ ASSERT(flag >= 1);
+ ASSERT(flag <= 32);
+ s_flags |= 1u << (flag - 1);
+ }
+
+ static void clearFlag(unsigned flag)
+ {
+ ASSERT(flag >= 1);
+ ASSERT(flag <= 32);
+ s_flags &= ~(1u << (flag - 1));
+ }
+
+ static void sample();
+
+ class ScopedFlag {
+ public:
+ ScopedFlag(int flag)
+ : m_flag(flag)
+ {
+ setFlag(flag);
+ }
+
+ ~ScopedFlag()
+ {
+ clearFlag(m_flag);
+ }
+
+ private:
+ int m_flag;
+ };
+
+#endif
+ private:
+ static uint32_t s_flags;
+#if ENABLE(SAMPLING_FLAGS)
+ static uint64_t s_flagCounts[33];
+#endif
+ };
+
class CodeBlock;
class ExecState;
class Interpreter;
@@ -73,6 +121,19 @@ namespace JSC {
typedef WTF::HashMap<ScopeNode*, ScopeSampleRecord*> ScopeSampleRecordMap;
+ class SamplingThread {
+ public:
+ // Sampling thread state.
+ static bool s_running;
+ static unsigned s_hertz;
+ static ThreadIdentifier s_samplingThread;
+
+ static void start(unsigned hertz=10000);
+ static void stop();
+
+ static void* threadStartFunc(void*);
+ };
+
class SamplingTool {
public:
friend class CallRecord;
@@ -127,12 +188,13 @@ namespace JSC {
SamplingTool(Interpreter* interpreter)
: m_interpreter(interpreter)
- , m_running(false)
, m_codeBlock(0)
, m_sample(0)
, m_sampleCount(0)
, m_opcodeSampleCount(0)
+#if ENABLE(CODEBLOCK_SAMPLING)
, m_scopeSampleMap(new ScopeSampleRecordMap())
+#endif
{
memset(m_opcodeSamples, 0, sizeof(m_opcodeSamples));
memset(m_opcodeSamplesInCTIFunctions, 0, sizeof(m_opcodeSamplesInCTIFunctions));
@@ -140,11 +202,12 @@ namespace JSC {
~SamplingTool()
{
+#if ENABLE(CODEBLOCK_SAMPLING)
deleteAllValues(*m_scopeSampleMap);
+#endif
}
- void start(unsigned hertz=10000);
- void stop();
+ void setup();
void dump(ExecState*);
void notifyOfScope(ScopeNode* scope);
@@ -159,12 +222,14 @@ namespace JSC {
CodeBlock** codeBlockSlot() { return &m_codeBlock; }
intptr_t* sampleSlot() { return &m_sample; }
- unsigned encodeSample(Instruction* vPC, bool inCTIFunction = false, bool inHostFunction = false)
+ void* encodeSample(Instruction* vPC, bool inCTIFunction = false, bool inHostFunction = false)
{
ASSERT(!(reinterpret_cast<intptr_t>(vPC) & 0x3));
- return reinterpret_cast<intptr_t>(vPC) | (static_cast<intptr_t>(inCTIFunction) << 1) | static_cast<intptr_t>(inHostFunction);
+ return reinterpret_cast<void*>(reinterpret_cast<intptr_t>(vPC) | (static_cast<intptr_t>(inCTIFunction) << 1) | static_cast<intptr_t>(inHostFunction));
}
+ static void sample();
+
private:
class Sample {
public:
@@ -174,7 +239,7 @@ namespace JSC {
{
}
- bool isNull() { return !m_sample || !m_codeBlock; }
+ bool isNull() { return !m_sample; }
CodeBlock* codeBlock() { return m_codeBlock; }
Instruction* vPC() { return reinterpret_cast<Instruction*>(m_sample & ~0x3); }
bool inHostFunction() { return m_sample & 0x1; }
@@ -184,17 +249,12 @@ namespace JSC {
intptr_t m_sample;
CodeBlock* m_codeBlock;
};
-
- static void* threadStartFunc(void*);
- void run();
+
+ void doRun();
+ static SamplingTool* s_samplingTool;
Interpreter* m_interpreter;
- // Sampling thread state.
- bool m_running;
- unsigned m_hertz;
- ThreadIdentifier m_samplingThread;
-
// State tracked by the main thread, used by the sampling thread.
CodeBlock* m_codeBlock;
intptr_t m_sample;
@@ -205,9 +265,147 @@ namespace JSC {
unsigned m_opcodeSamples[numOpcodeIDs];
unsigned m_opcodeSamplesInCTIFunctions[numOpcodeIDs];
+#if ENABLE(CODEBLOCK_SAMPLING)
Mutex m_scopeSampleMapMutex;
OwnPtr<ScopeSampleRecordMap> m_scopeSampleMap;
+#endif
+ };
+
+ // AbstractSamplingCounter:
+ //
+ // Implements a named set of counters, printed on exit if ENABLE(SAMPLING_COUNTERS).
+ // See subclasses below, SamplingCounter, GlobalSamplingCounter and DeletableSamplingCounter.
+ class AbstractSamplingCounter {
+ friend class JIT;
+ friend class DeletableSamplingCounter;
+ public:
+ void count(uint32_t count = 1)
+ {
+ m_counter += count;
+ }
+
+ static void dump();
+
+ protected:
+ // Effectively the contructor, however called lazily in the case of GlobalSamplingCounter.
+ void init(const char* name)
+ {
+ m_counter = 0;
+ m_name = name;
+
+ // Set m_next to point to the head of the chain, and inform whatever is
+ // currently at the head that this node will now hold the pointer to it.
+ m_next = s_abstractSamplingCounterChain;
+ s_abstractSamplingCounterChain->m_referer = &m_next;
+ // Add this node to the head of the list.
+ s_abstractSamplingCounterChain = this;
+ m_referer = &s_abstractSamplingCounterChain;
+ }
+
+ int64_t m_counter;
+ const char* m_name;
+ AbstractSamplingCounter* m_next;
+ // This is a pointer to the pointer to this node in the chain; used to
+ // allow fast linked list deletion.
+ AbstractSamplingCounter** m_referer;
+ // Null object used to detect end of static chain.
+ static AbstractSamplingCounter s_abstractSamplingCounterChainEnd;
+ static AbstractSamplingCounter* s_abstractSamplingCounterChain;
+ static bool s_completed;
+ };
+
+#if ENABLE(SAMPLING_COUNTERS)
+ // SamplingCounter:
+ //
+ // This class is suitable and (hopefully!) convenient for cases where a counter is
+ // required within the scope of a single function. It can be instantiated as a
+ // static variable since it contains a constructor but not a destructor (static
+ // variables in WebKit cannot have destructors).
+ //
+ // For example:
+ //
+ // void someFunction()
+ // {
+ // static SamplingCounter countMe("This is my counter. There are many like it, but this one is mine.");
+ // countMe.count();
+ // // ...
+ // }
+ //
+ class SamplingCounter : public AbstractSamplingCounter {
+ public:
+ SamplingCounter(const char* name) { init(name); }
+ };
+
+ // GlobalSamplingCounter:
+ //
+ // This class is suitable for use where a counter is to be declared globally,
+ // since it contains neither a constructor nor destructor. Instead, ensure
+ // that 'name()' is called to provide the counter with a name (and also to
+ // allow it to be printed out on exit).
+ //
+ // GlobalSamplingCounter globalCounter;
+ //
+ // void firstFunction()
+ // {
+ // // Put this within a function that is definitely called!
+ // // (Or alternatively alongside all calls to 'count()').
+ // globalCounter.name("I Name You Destroyer.");
+ // globalCounter.count();
+ // // ...
+ // }
+ //
+ // void secondFunction()
+ // {
+ // globalCounter.count();
+ // // ...
+ // }
+ //
+ class GlobalSamplingCounter : public AbstractSamplingCounter {
+ public:
+ void name(const char* name)
+ {
+ // Global objects should be mapped in zero filled memory, so this should
+ // be a safe (albeit not necessarily threadsafe) check for 'first call'.
+ if (!m_next)
+ init(name);
+ }
+ };
+
+ // DeletableSamplingCounter:
+ //
+ // The above classes (SamplingCounter, GlobalSamplingCounter), are intended for
+ // use within a global or static scope, and as such cannot have a destructor.
+ // This means there is no convenient way for them to remove themselves from the
+ // static list of counters, and should an instance of either class be freed
+ // before 'dump()' has walked over the list it will potentially walk over an
+ // invalid pointer.
+ //
+ // This class is intended for use where the counter may possibly be deleted before
+ // the program exits. Should this occur, the counter will print it's value to
+ // stderr, and remove itself from the static list. Example:
+ //
+ // DeletableSamplingCounter* counter = new DeletableSamplingCounter("The Counter With No Name");
+ // counter->count();
+ // delete counter;
+ //
+ class DeletableSamplingCounter : public AbstractSamplingCounter {
+ public:
+ DeletableSamplingCounter(const char* name) { init(name); }
+
+ ~DeletableSamplingCounter()
+ {
+ if (!s_completed)
+ fprintf(stderr, "DeletableSamplingCounter \"%s\" deleted early (with count %lld)\n", m_name, m_counter);
+ // Our m_referer pointer should know where the pointer to this node is,
+ // and m_next should know that this node is the previous node in the list.
+ ASSERT(*m_referer == this);
+ ASSERT(m_next->m_referer == &m_next);
+ // Remove this node from the list, and inform m_next that we have done so.
+ m_next->m_referer = m_referer;
+ *m_referer = m_next;
+ }
};
+#endif
} // namespace JSC
diff --git a/src/3rdparty/webkit/JavaScriptCore/bytecode/StructureStubInfo.h b/src/3rdparty/webkit/JavaScriptCore/bytecode/StructureStubInfo.h
index a9e0678..24fcb7d 100644
--- a/src/3rdparty/webkit/JavaScriptCore/bytecode/StructureStubInfo.h
+++ b/src/3rdparty/webkit/JavaScriptCore/bytecode/StructureStubInfo.h
@@ -26,19 +26,18 @@
#ifndef StructureStubInfo_h
#define StructureStubInfo_h
+#if ENABLE(JIT)
+
#include "Instruction.h"
+#include "MacroAssembler.h"
#include "Opcode.h"
#include "Structure.h"
namespace JSC {
-#if ENABLE(JIT)
struct StructureStubInfo {
StructureStubInfo(OpcodeID opcodeID)
: opcodeID(opcodeID)
- , stubRoutine(0)
- , callReturnLocation(0)
- , hotPathBegin(0)
{
}
@@ -145,12 +144,13 @@ namespace JSC {
} putByIdReplace;
} u;
- void* stubRoutine;
- void* callReturnLocation;
- void* hotPathBegin;
+ MacroAssembler::CodeLocationLabel stubRoutine;
+ MacroAssembler::CodeLocationCall callReturnLocation;
+ MacroAssembler::CodeLocationLabel hotPathBegin;
};
-#endif
} // namespace JSC
+#endif
+
#endif // StructureStubInfo_h
diff --git a/src/3rdparty/webkit/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp b/src/3rdparty/webkit/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp
index 91279b8..21a3016 100644
--- a/src/3rdparty/webkit/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp
@@ -31,6 +31,7 @@
#include "BytecodeGenerator.h"
#include "BatchedTransitionOptimizer.h"
+#include "PrototypeFunction.h"
#include "JSFunction.h"
#include "Interpreter.h"
#include "UString.h"
@@ -115,7 +116,7 @@ namespace JSC {
*/
#ifndef NDEBUG
-bool BytecodeGenerator::s_dumpsGeneratedCode = false;
+static bool s_dumpsGeneratedCode = false;
#endif
void BytecodeGenerator::setDumpsGeneratedCode(bool dumpsGeneratedCode)
@@ -145,14 +146,14 @@ void BytecodeGenerator::generate()
#ifndef NDEBUG
m_codeBlock->setInstructionCount(m_codeBlock->instructions().size());
- if (s_dumpsGeneratedCode) {
- JSGlobalObject* globalObject = m_scopeChain->globalObject();
- m_codeBlock->dump(globalObject->globalExec());
- }
+ if (s_dumpsGeneratedCode)
+ m_codeBlock->dump(m_scopeChain->globalObject()->globalExec());
#endif
if ((m_codeType == FunctionCode && !m_codeBlock->needsFullScopeChain() && !m_codeBlock->usesArguments()) || m_codeType == EvalCode)
symbolTable().clear();
+
+ m_codeBlock->setIsNumericCompareFunction(instructions() == m_globalData->numericCompareFunction(m_scopeChain->globalObject()->globalExec()));
#if !ENABLE(OPCODE_SAMPLING)
if (!m_regeneratingForExceptionInfo && (m_codeType == FunctionCode || m_codeType == EvalCode))
@@ -211,7 +212,6 @@ void BytecodeGenerator::allocateConstants(size_t count)
BytecodeGenerator::BytecodeGenerator(ProgramNode* programNode, const Debugger* debugger, const ScopeChain& scopeChain, SymbolTable* symbolTable, ProgramCodeBlock* codeBlock)
: m_shouldEmitDebugHooks(!!debugger)
, m_shouldEmitProfileHooks(scopeChain.globalObject()->supportsProfiling())
- , m_regeneratingForExceptionInfo(false)
, m_scopeChain(&scopeChain)
, m_symbolTable(symbolTable)
, m_scopeNode(programNode)
@@ -222,9 +222,12 @@ BytecodeGenerator::BytecodeGenerator(ProgramNode* programNode, const Debugger* d
, m_baseScopeDepth(0)
, m_codeType(GlobalCode)
, m_nextGlobalIndex(-1)
+ , m_globalConstantIndex(0)
, m_globalData(&scopeChain.globalObject()->globalExec()->globalData())
, m_lastOpcodeID(op_end)
, m_emitNodeDepth(0)
+ , m_regeneratingForExceptionInfo(false)
+ , m_codeBlockBeingRegeneratedFrom(0)
{
if (m_shouldEmitDebugHooks)
m_codeBlock->setNeedsFullScopeChain(true);
@@ -259,7 +262,7 @@ BytecodeGenerator::BytecodeGenerator(ProgramNode* programNode, const Debugger* d
m_nextGlobalIndex -= symbolTable->size();
for (size_t i = 0; i < functionStack.size(); ++i) {
- FuncDeclNode* funcDecl = functionStack[i].get();
+ FuncDeclNode* funcDecl = functionStack[i];
globalObject->removeDirect(funcDecl->m_ident); // Make sure our new function is not shadowed by an old property.
emitNewFunction(addGlobalVar(funcDecl->m_ident, false), funcDecl);
}
@@ -275,7 +278,7 @@ BytecodeGenerator::BytecodeGenerator(ProgramNode* programNode, const Debugger* d
emitLoad(newVars[i], jsUndefined());
} else {
for (size_t i = 0; i < functionStack.size(); ++i) {
- FuncDeclNode* funcDecl = functionStack[i].get();
+ FuncDeclNode* funcDecl = functionStack[i];
globalObject->putWithAttributes(exec, funcDecl->m_ident, funcDecl->makeFunction(exec, scopeChain.node()), DontDelete);
}
for (size_t i = 0; i < varStack.size(); ++i) {
@@ -294,7 +297,6 @@ BytecodeGenerator::BytecodeGenerator(ProgramNode* programNode, const Debugger* d
BytecodeGenerator::BytecodeGenerator(FunctionBodyNode* functionBody, const Debugger* debugger, const ScopeChain& scopeChain, SymbolTable* symbolTable, CodeBlock* codeBlock)
: m_shouldEmitDebugHooks(!!debugger)
, m_shouldEmitProfileHooks(scopeChain.globalObject()->supportsProfiling())
- , m_regeneratingForExceptionInfo(false)
, m_scopeChain(&scopeChain)
, m_symbolTable(symbolTable)
, m_scopeNode(functionBody)
@@ -303,9 +305,12 @@ BytecodeGenerator::BytecodeGenerator(FunctionBodyNode* functionBody, const Debug
, m_dynamicScopeDepth(0)
, m_baseScopeDepth(0)
, m_codeType(FunctionCode)
+ , m_globalConstantIndex(0)
, m_globalData(&scopeChain.globalObject()->globalExec()->globalData())
, m_lastOpcodeID(op_end)
, m_emitNodeDepth(0)
+ , m_regeneratingForExceptionInfo(false)
+ , m_codeBlockBeingRegeneratedFrom(0)
{
if (m_shouldEmitDebugHooks)
m_codeBlock->setNeedsFullScopeChain(true);
@@ -327,12 +332,19 @@ BytecodeGenerator::BytecodeGenerator(FunctionBodyNode* functionBody, const Debug
} else
emitOpcode(op_enter);
- if (usesArguments)
- emitOpcode(op_create_arguments);
+ if (usesArguments) {
+ emitOpcode(op_init_arguments);
+
+ // The debugger currently retrieves the arguments object from an activation rather than pulling
+ // it from a call frame. In the long-term it should stop doing that (<rdar://problem/6911886>),
+ // but for now we force eager creation of the arguments object when debugging.
+ if (m_shouldEmitDebugHooks)
+ emitOpcode(op_create_arguments);
+ }
const DeclarationStacks::FunctionStack& functionStack = functionBody->functionStack();
for (size_t i = 0; i < functionStack.size(); ++i) {
- FuncDeclNode* funcDecl = functionStack[i].get();
+ FuncDeclNode* funcDecl = functionStack[i];
const Identifier& ident = funcDecl->m_ident;
m_functions.add(ident.ustring().rep());
emitNewFunction(addVar(ident, false), funcDecl);
@@ -366,7 +378,6 @@ BytecodeGenerator::BytecodeGenerator(FunctionBodyNode* functionBody, const Debug
BytecodeGenerator::BytecodeGenerator(EvalNode* evalNode, const Debugger* debugger, const ScopeChain& scopeChain, SymbolTable* symbolTable, EvalCodeBlock* codeBlock)
: m_shouldEmitDebugHooks(!!debugger)
, m_shouldEmitProfileHooks(scopeChain.globalObject()->supportsProfiling())
- , m_regeneratingForExceptionInfo(false)
, m_scopeChain(&scopeChain)
, m_symbolTable(symbolTable)
, m_scopeNode(evalNode)
@@ -374,11 +385,14 @@ BytecodeGenerator::BytecodeGenerator(EvalNode* evalNode, const Debugger* debugge
, m_thisRegister(RegisterFile::ProgramCodeThisRegister)
, m_finallyDepth(0)
, m_dynamicScopeDepth(0)
- , m_baseScopeDepth(scopeChain.localDepth())
+ , m_baseScopeDepth(codeBlock->baseScopeDepth())
, m_codeType(EvalCode)
+ , m_globalConstantIndex(0)
, m_globalData(&scopeChain.globalObject()->globalExec()->globalData())
, m_lastOpcodeID(op_end)
, m_emitNodeDepth(0)
+ , m_regeneratingForExceptionInfo(false)
+ , m_codeBlockBeingRegeneratedFrom(0)
{
if (m_shouldEmitDebugHooks || m_baseScopeDepth)
m_codeBlock->setNeedsFullScopeChain(true);
@@ -421,6 +435,36 @@ RegisterID* BytecodeGenerator::registerFor(const Identifier& ident)
if (entry.isNull())
return 0;
+ if (ident == propertyNames().arguments)
+ createArgumentsIfNecessary();
+
+ return &registerFor(entry.getIndex());
+}
+
+bool BytecodeGenerator::willResolveToArguments(const Identifier& ident)
+{
+ if (ident != propertyNames().arguments)
+ return false;
+
+ if (!shouldOptimizeLocals())
+ return false;
+
+ SymbolTableEntry entry = symbolTable().get(ident.ustring().rep());
+ if (entry.isNull())
+ return false;
+
+ if (m_codeBlock->usesArguments() && m_codeType == FunctionCode)
+ return true;
+
+ return false;
+}
+
+RegisterID* BytecodeGenerator::uncheckedRegisterForArguments()
+{
+ ASSERT(willResolveToArguments(propertyNames().arguments));
+
+ SymbolTableEntry entry = symbolTable().get(propertyNames().arguments.ustring().rep());
+ ASSERT(!entry.isNull());
return &registerFor(entry.getIndex());
}
@@ -645,6 +689,21 @@ PassRefPtr<Label> BytecodeGenerator::emitJumpIfFalse(RegisterID* cond, Label* ta
instructions().append(target->offsetFrom(instructions().size()));
return target;
}
+ } else if (m_lastOpcodeID == op_lesseq) {
+ int dstIndex;
+ int src1Index;
+ int src2Index;
+
+ retrieveLastBinaryOp(dstIndex, src1Index, src2Index);
+
+ if (cond->index() == dstIndex && cond->isTemporary() && !cond->refCount()) {
+ rewindBinaryOp();
+ emitOpcode(op_jnlesseq);
+ instructions().append(src1Index);
+ instructions().append(src2Index);
+ instructions().append(target->offsetFrom(instructions().size()));
+ return target;
+ }
} else if (m_lastOpcodeID == op_not) {
int dstIndex;
int srcIndex;
@@ -692,6 +751,24 @@ PassRefPtr<Label> BytecodeGenerator::emitJumpIfFalse(RegisterID* cond, Label* ta
return target;
}
+PassRefPtr<Label> BytecodeGenerator::emitJumpIfNotFunctionCall(RegisterID* cond, Label* target)
+{
+ emitOpcode(op_jneq_ptr);
+ instructions().append(cond->index());
+ instructions().append(m_scopeChain->globalObject()->d()->callFunction);
+ instructions().append(target->offsetFrom(instructions().size()));
+ return target;
+}
+
+PassRefPtr<Label> BytecodeGenerator::emitJumpIfNotFunctionApply(RegisterID* cond, Label* target)
+{
+ emitOpcode(op_jneq_ptr);
+ instructions().append(cond->index());
+ instructions().append(m_scopeChain->globalObject()->d()->applyFunction);
+ instructions().append(target->offsetFrom(instructions().size()));
+ return target;
+}
+
unsigned BytecodeGenerator::addConstant(FuncDeclNode* n)
{
// No need to explicitly unique function body nodes -- they're unique already.
@@ -714,26 +791,36 @@ unsigned BytecodeGenerator::addConstant(const Identifier& ident)
return result.first->second;
}
-RegisterID* BytecodeGenerator::addConstant(JSValuePtr v)
+RegisterID* BytecodeGenerator::addConstant(JSValue v)
{
- pair<JSValueMap::iterator, bool> result = m_jsValueMap.add(JSValuePtr::encode(v), m_nextConstantIndex);
+ pair<JSValueMap::iterator, bool> result = m_jsValueMap.add(JSValue::encode(v), m_nextConstantIndex);
if (result.second) {
RegisterID& constant = m_calleeRegisters[m_nextConstantIndex];
++m_nextConstantIndex;
- m_codeBlock->addConstantRegister(JSValuePtr(v));
+ m_codeBlock->addConstantRegister(JSValue(v));
return &constant;
}
return &registerFor(result.first->second);
}
-unsigned BytecodeGenerator::addUnexpectedConstant(JSValuePtr v)
+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;
+}
+
unsigned BytecodeGenerator::addRegExp(RegExp* r)
{
return m_codeBlock->addRegExp(r);
@@ -811,8 +898,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(m_scopeChain->globalObject()->globalExec())->isString()) {
- const UString& value = asString(m_codeBlock->constantRegister(src2->index() - m_codeBlock->m_numVars).jsValue(m_scopeChain->globalObject()->globalExec()))->value();
+ && 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();
if (value == "undefined") {
rewindUnaryOp();
emitOpcode(op_is_undefined);
@@ -876,7 +963,7 @@ RegisterID* BytecodeGenerator::emitLoad(RegisterID* dst, double number)
// Later we can do the extra work to handle that like the other cases.
if (number == HashTraits<double>::emptyValue() || HashTraits<double>::isDeletedValue(number))
return emitLoad(dst, jsNumber(globalData(), number));
- JSValuePtr& valueInMap = m_numberMap.add(number, noValue()).first->second;
+ JSValue& valueInMap = m_numberMap.add(number, JSValue()).first->second;
if (!valueInMap)
valueInMap = jsNumber(globalData(), number);
return emitLoad(dst, valueInMap);
@@ -887,10 +974,10 @@ RegisterID* BytecodeGenerator::emitLoad(RegisterID* dst, const Identifier& ident
JSString*& stringInMap = m_stringMap.add(identifier.ustring().rep(), 0).first->second;
if (!stringInMap)
stringInMap = jsOwnedString(globalData(), identifier.ustring());
- return emitLoad(dst, JSValuePtr(stringInMap));
+ return emitLoad(dst, JSValue(stringInMap));
}
-RegisterID* BytecodeGenerator::emitLoad(RegisterID* dst, JSValuePtr v)
+RegisterID* BytecodeGenerator::emitLoad(RegisterID* dst, JSValue v)
{
RegisterID* constantID = addConstant(v);
if (dst)
@@ -991,14 +1078,23 @@ RegisterID* BytecodeGenerator::emitResolve(RegisterID* dst, const Identifier& pr
return dst;
}
- if (index != missingSymbolMarker()) {
- // Directly index the property lookup across multiple scopes. Yay!
- return emitGetScopedVar(dst, depth, index, globalObject);
- }
-
if (globalObject) {
+ bool forceGlobalResolve = false;
+ if (m_regeneratingForExceptionInfo) {
#if ENABLE(JIT)
- m_codeBlock->addGlobalResolveInfo();
+ forceGlobalResolve = m_codeBlockBeingRegeneratedFrom->hasGlobalResolveInfoAtBytecodeOffset(instructions().size());
+#else
+ forceGlobalResolve = m_codeBlockBeingRegeneratedFrom->hasGlobalResolveInstructionAtBytecodeOffset(instructions().size());
+#endif
+ }
+
+ if (index != missingSymbolMarker() && !forceGlobalResolve) {
+ // Directly index the property lookup across multiple scopes.
+ return emitGetScopedVar(dst, depth, index, globalObject);
+ }
+
+#if ENABLE(JIT)
+ m_codeBlock->addGlobalResolveInfo(instructions().size());
#else
m_codeBlock->addGlobalResolveInstruction(instructions().size());
#endif
@@ -1011,6 +1107,11 @@ RegisterID* BytecodeGenerator::emitResolve(RegisterID* dst, const Identifier& pr
return dst;
}
+ if (index != missingSymbolMarker()) {
+ // Directly index the property lookup across multiple scopes.
+ return emitGetScopedVar(dst, depth, index, globalObject);
+ }
+
// In this case we are at least able to drop a few scope chains from the
// lookup chain, although we still need to hash from then on.
emitOpcode(op_resolve_skip);
@@ -1020,16 +1121,13 @@ RegisterID* BytecodeGenerator::emitResolve(RegisterID* dst, const Identifier& pr
return dst;
}
-RegisterID* BytecodeGenerator::emitGetScopedVar(RegisterID* dst, size_t depth, int index, JSValuePtr globalObject)
+RegisterID* BytecodeGenerator::emitGetScopedVar(RegisterID* dst, size_t depth, int index, JSValue globalObject)
{
if (globalObject) {
- // op_get_global_var must be the same length as op_resolve_global.
emitOpcode(op_get_global_var);
instructions().append(dst->index());
instructions().append(asCell(globalObject));
instructions().append(index);
- instructions().append(0);
- instructions().append(0);
return dst;
}
@@ -1040,7 +1138,7 @@ RegisterID* BytecodeGenerator::emitGetScopedVar(RegisterID* dst, size_t depth, i
return dst;
}
-RegisterID* BytecodeGenerator::emitPutScopedVar(size_t depth, int index, RegisterID* value, JSValuePtr globalObject)
+RegisterID* BytecodeGenerator::emitPutScopedVar(size_t depth, int index, RegisterID* value, JSValue globalObject)
{
if (globalObject) {
emitOpcode(op_put_global_var);
@@ -1058,18 +1156,65 @@ RegisterID* BytecodeGenerator::emitPutScopedVar(size_t depth, int index, Registe
RegisterID* BytecodeGenerator::emitResolveBase(RegisterID* dst, const Identifier& property)
{
- emitOpcode(op_resolve_base);
- instructions().append(dst->index());
- instructions().append(addConstant(property));
- return dst;
+ size_t depth = 0;
+ int index = 0;
+ JSObject* globalObject = 0;
+ findScopedProperty(property, index, depth, false, globalObject);
+ if (!globalObject) {
+ // We can't optimise at all :-(
+ emitOpcode(op_resolve_base);
+ instructions().append(dst->index());
+ instructions().append(addConstant(property));
+ return dst;
+ }
+
+ // Global object is the base
+ return emitLoadGlobalObject(dst, globalObject);
}
RegisterID* BytecodeGenerator::emitResolveWithBase(RegisterID* baseDst, RegisterID* propDst, const Identifier& property)
{
- emitOpcode(op_resolve_with_base);
- instructions().append(baseDst->index());
+ size_t depth = 0;
+ int index = 0;
+ JSObject* globalObject = 0;
+ if (!findScopedProperty(property, index, depth, false, globalObject) || !globalObject) {
+ // We can't optimise at all :-(
+ emitOpcode(op_resolve_with_base);
+ instructions().append(baseDst->index());
+ instructions().append(propDst->index());
+ instructions().append(addConstant(property));
+ return baseDst;
+ }
+
+ bool forceGlobalResolve = false;
+ if (m_regeneratingForExceptionInfo) {
+#if ENABLE(JIT)
+ forceGlobalResolve = m_codeBlockBeingRegeneratedFrom->hasGlobalResolveInfoAtBytecodeOffset(instructions().size());
+#else
+ forceGlobalResolve = m_codeBlockBeingRegeneratedFrom->hasGlobalResolveInstructionAtBytecodeOffset(instructions().size());
+#endif
+ }
+
+ // Global object is the base
+ emitLoadGlobalObject(baseDst, globalObject);
+
+ if (index != missingSymbolMarker() && !forceGlobalResolve) {
+ // Directly index the property lookup across multiple scopes.
+ emitGetScopedVar(propDst, depth, index, globalObject);
+ return baseDst;
+ }
+
+#if ENABLE(JIT)
+ m_codeBlock->addGlobalResolveInfo(instructions().size());
+#else
+ m_codeBlock->addGlobalResolveInstruction(instructions().size());
+#endif
+ emitOpcode(op_resolve_global);
instructions().append(propDst->index());
+ instructions().append(globalObject);
instructions().append(addConstant(property));
+ instructions().append(0);
+ instructions().append(0);
return baseDst;
}
@@ -1082,6 +1227,11 @@ RegisterID* BytecodeGenerator::emitResolveFunction(RegisterID* baseDst, Register
return baseDst;
}
+void BytecodeGenerator::emitMethodCheck()
+{
+ emitOpcode(op_method_check);
+}
+
RegisterID* BytecodeGenerator::emitGetById(RegisterID* dst, RegisterID* base, const Identifier& property)
{
#if ENABLE(JIT)
@@ -1238,8 +1388,15 @@ RegisterID* BytecodeGenerator::emitCall(RegisterID* dst, RegisterID* func, Regis
return emitCall(op_call, dst, func, thisRegister, argumentsNode, divot, startOffset, endOffset);
}
+void BytecodeGenerator::createArgumentsIfNecessary()
+{
+ if (m_codeBlock->usesArguments() && m_codeType == FunctionCode)
+ emitOpcode(op_create_arguments);
+}
+
RegisterID* BytecodeGenerator::emitCallEval(RegisterID* dst, RegisterID* func, RegisterID* thisRegister, ArgumentsNode* argumentsNode, unsigned divot, unsigned startOffset, unsigned endOffset)
{
+ createArgumentsIfNecessary();
return emitCall(op_call_eval, dst, func, thisRegister, argumentsNode, divot, startOffset, endOffset);
}
@@ -1266,7 +1423,7 @@ RegisterID* BytecodeGenerator::emitCall(OpcodeID opcodeID, RegisterID* dst, Regi
// Generate code for arguments.
Vector<RefPtr<RegisterID>, 16> argv;
argv.append(thisRegister);
- for (ArgumentListNode* n = argumentsNode->m_listNode.get(); n; n = n->m_next.get()) {
+ for (ArgumentListNode* n = argumentsNode->m_listNode; n; n = n->m_next) {
argv.append(newTemporary());
// op_call requires the arguments to be a sequential range of registers
ASSERT(argv[argv.size() - 1]->index() == argv[argv.size() - 2]->index() + 1);
@@ -1313,6 +1470,44 @@ RegisterID* BytecodeGenerator::emitCall(OpcodeID opcodeID, RegisterID* dst, Regi
return dst;
}
+RegisterID* BytecodeGenerator::emitLoadVarargs(RegisterID* argCountDst, RegisterID* arguments)
+{
+ ASSERT(argCountDst->index() < arguments->index());
+ emitOpcode(op_load_varargs);
+ instructions().append(argCountDst->index());
+ instructions().append(arguments->index());
+ return argCountDst;
+}
+
+RegisterID* BytecodeGenerator::emitCallVarargs(RegisterID* dst, RegisterID* func, RegisterID* thisRegister, RegisterID* argCountRegister, unsigned divot, unsigned startOffset, unsigned endOffset)
+{
+ ASSERT(func->refCount());
+ ASSERT(thisRegister->refCount());
+ ASSERT(dst != func);
+ if (m_shouldEmitProfileHooks) {
+ emitOpcode(op_profile_will_call);
+ instructions().append(func->index());
+
+#if ENABLE(JIT)
+ m_codeBlock->addFunctionRegisterInfo(instructions().size(), func->index());
+#endif
+ }
+
+ emitExpressionInfo(divot, startOffset, endOffset);
+
+ // Emit call.
+ emitOpcode(op_call_varargs);
+ instructions().append(dst->index()); // dst
+ instructions().append(func->index()); // func
+ instructions().append(argCountRegister->index()); // arg count
+ instructions().append(thisRegister->index() + RegisterFile::CallFrameHeaderSize); // initial registerOffset
+ if (m_shouldEmitProfileHooks) {
+ emitOpcode(op_profile_did_call);
+ instructions().append(func->index());
+ }
+ return dst;
+}
+
RegisterID* BytecodeGenerator::emitReturn(RegisterID* src)
{
if (m_codeBlock->needsFullScopeChain()) {
@@ -1351,7 +1546,7 @@ RegisterID* BytecodeGenerator::emitConstruct(RegisterID* dst, RegisterID* func,
// Generate code for arguments.
Vector<RefPtr<RegisterID>, 16> argv;
argv.append(newTemporary()); // reserve space for "this"
- for (ArgumentListNode* n = argumentsNode ? argumentsNode->m_listNode.get() : 0; n; n = n->m_next.get()) {
+ for (ArgumentListNode* n = argumentsNode ? argumentsNode->m_listNode : 0; n; n = n->m_next) {
argv.append(newTemporary());
// op_construct requires the arguments to be a sequential range of registers
ASSERT(argv[argv.size() - 1]->index() == argv[argv.size() - 2]->index() + 1);
@@ -1402,6 +1597,23 @@ RegisterID* BytecodeGenerator::emitConstruct(RegisterID* dst, RegisterID* func,
return dst;
}
+RegisterID* BytecodeGenerator::emitStrcat(RegisterID* dst, RegisterID* src, int count)
+{
+ emitOpcode(op_strcat);
+ instructions().append(dst->index());
+ instructions().append(src->index());
+ instructions().append(count);
+
+ return dst;
+}
+
+void BytecodeGenerator::emitToPrimitive(RegisterID* dst, RegisterID* src)
+{
+ emitOpcode(op_to_primitive);
+ instructions().append(dst->index());
+ instructions().append(src->index());
+}
+
RegisterID* BytecodeGenerator::emitPushScope(RegisterID* scope)
{
ASSERT(scope->isTemporary());
@@ -1409,6 +1621,7 @@ RegisterID* BytecodeGenerator::emitPushScope(RegisterID* scope)
context.isFinallyBlock = false;
m_scopeContextStack.append(context);
m_dynamicScopeDepth++;
+ createArgumentsIfNecessary();
return emitUnaryNoDstOp(op_push_scope, scope);
}
@@ -1456,8 +1669,17 @@ void BytecodeGenerator::popFinallyContext()
LabelScope* BytecodeGenerator::breakTarget(const Identifier& name)
{
// Reclaim free label scopes.
- while (m_labelScopes.size() && !m_labelScopes.last().refCount())
+ //
+ // The condition was previously coded as 'm_labelScopes.size() && !m_labelScopes.last().refCount()',
+ // however sometimes this appears to lead to GCC going a little haywire and entering the loop with
+ // size 0, leading to segfaulty badness. We are yet to identify a valid cause within our code to
+ // cause the GCC codegen to misbehave in this fashion, and as such the following refactoring of the
+ // loop condition is a workaround.
+ while (m_labelScopes.size()) {
+ if (m_labelScopes.last().refCount())
+ break;
m_labelScopes.removeLast();
+ }
if (!m_labelScopes.size())
return 0;
@@ -1554,14 +1776,10 @@ PassRefPtr<Label> BytecodeGenerator::emitComplexJumpScopes(Label* target, Contro
emitLabel(nextInsn.get());
}
- // To get here there must be at least one finally block present
- do {
- ASSERT(topScope->isFinallyBlock);
+ while (topScope > bottomScope && topScope->isFinallyBlock) {
emitJumpSubroutine(topScope->finallyContext.retAddrDst, topScope->finallyContext.finallyAddr);
--topScope;
- if (!topScope->isFinallyBlock)
- break;
- } while (topScope > bottomScope);
+ }
}
return emitJump(target);
}
@@ -1597,7 +1815,7 @@ RegisterID* BytecodeGenerator::emitNextPropertyName(RegisterID* dst, RegisterID*
RegisterID* BytecodeGenerator::emitCatch(RegisterID* targetRegister, Label* start, Label* end)
{
#if ENABLE(JIT)
- HandlerInfo info = { start->offsetFrom(0), end->offsetFrom(0), instructions().size(), m_dynamicScopeDepth + m_baseScopeDepth, 0 };
+ HandlerInfo info = { start->offsetFrom(0), end->offsetFrom(0), instructions().size(), m_dynamicScopeDepth + m_baseScopeDepth, MacroAssembler::CodeLocationLabel() };
#else
HandlerInfo info = { start->offsetFrom(0), end->offsetFrom(0), instructions().size(), m_dynamicScopeDepth + m_baseScopeDepth };
#endif
@@ -1608,7 +1826,7 @@ RegisterID* BytecodeGenerator::emitCatch(RegisterID* targetRegister, Label* star
return targetRegister;
}
-RegisterID* BytecodeGenerator::emitNewError(RegisterID* dst, ErrorType type, JSValuePtr message)
+RegisterID* BytecodeGenerator::emitNewError(RegisterID* dst, ErrorType type, JSValue message)
{
emitOpcode(op_new_error);
instructions().append(dst->index());
@@ -1638,6 +1856,8 @@ void BytecodeGenerator::emitPushNewScope(RegisterID* dst, Identifier& property,
m_scopeContextStack.append(context);
m_dynamicScopeDepth++;
+ createArgumentsIfNecessary();
+
emitOpcode(op_push_new_scope);
instructions().append(dst->index());
instructions().append(addConstant(property));
@@ -1672,8 +1892,8 @@ static int32_t keyForImmediateSwitch(ExpressionNode* node, int32_t min, int32_t
UNUSED_PARAM(max);
ASSERT(node->isNumber());
double value = static_cast<NumberNode*>(node)->value();
- ASSERT(JSImmediate::from(value));
int32_t key = static_cast<int32_t>(value);
+ ASSERT(JSValue::makeInt32Fast(key) && (JSValue::makeInt32Fast(key).getInt32Fast() == value));
ASSERT(key == value);
ASSERT(key >= min);
ASSERT(key <= max);
@@ -1730,9 +1950,6 @@ static void prepareJumpTableForStringSwitch(StringJumpTable& jumpTable, int32_t
UString::Rep* clause = static_cast<StringNode*>(nodes[i])->value().ustring().rep();
OffsetLocation location;
location.branchOffset = labels[i]->offsetFrom(switchAddress);
-#if ENABLE(JIT)
- location.ctiOffset = 0;
-#endif
jumpTable.offsetTable.add(clause, location);
}
}
diff --git a/src/3rdparty/webkit/JavaScriptCore/bytecompiler/BytecodeGenerator.h b/src/3rdparty/webkit/JavaScriptCore/bytecompiler/BytecodeGenerator.h
index 3156cbf..6813d69 100644
--- a/src/3rdparty/webkit/JavaScriptCore/bytecompiler/BytecodeGenerator.h
+++ b/src/3rdparty/webkit/JavaScriptCore/bytecompiler/BytecodeGenerator.h
@@ -81,6 +81,9 @@ namespace JSC {
// such register exists. Registers returned by registerFor do not
// require explicit reference counting.
RegisterID* registerFor(const Identifier&);
+
+ bool willResolveToArguments(const Identifier&);
+ RegisterID* uncheckedRegisterForArguments();
// Behaves as registerFor does, but ignores dynamic scope as
// dynamic scope should not interfere with const initialisation
@@ -240,9 +243,10 @@ namespace JSC {
RegisterID* emitLoad(RegisterID* dst, bool);
RegisterID* emitLoad(RegisterID* dst, double);
RegisterID* emitLoad(RegisterID* dst, const Identifier&);
- RegisterID* emitLoad(RegisterID* dst, JSValuePtr);
+ 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);
@@ -269,13 +273,15 @@ namespace JSC {
RegisterID* emitIn(RegisterID* dst, RegisterID* property, RegisterID* base) { return emitBinaryOp(op_in, dst, property, base, OperandTypes()); }
RegisterID* emitResolve(RegisterID* dst, const Identifier& property);
- RegisterID* emitGetScopedVar(RegisterID* dst, size_t skip, int index, JSValuePtr globalObject);
- RegisterID* emitPutScopedVar(size_t skip, int index, RegisterID* value, JSValuePtr globalObject);
+ RegisterID* emitGetScopedVar(RegisterID* dst, size_t skip, int index, JSValue globalObject);
+ RegisterID* emitPutScopedVar(size_t skip, int index, RegisterID* value, JSValue globalObject);
RegisterID* emitResolveBase(RegisterID* dst, const Identifier& property);
RegisterID* emitResolveWithBase(RegisterID* baseDst, RegisterID* propDst, const Identifier& property);
RegisterID* emitResolveFunction(RegisterID* baseDst, RegisterID* funcDst, const Identifier& property);
+ void emitMethodCheck();
+
RegisterID* emitGetById(RegisterID* dst, RegisterID* base, const Identifier& property);
RegisterID* emitPutById(RegisterID* base, const Identifier& property, RegisterID* value);
RegisterID* emitDeleteById(RegisterID* dst, RegisterID* base, const Identifier&);
@@ -288,16 +294,22 @@ namespace JSC {
RegisterID* emitCall(RegisterID* dst, RegisterID* func, RegisterID* thisRegister, ArgumentsNode*, unsigned divot, unsigned startOffset, unsigned endOffset);
RegisterID* emitCallEval(RegisterID* dst, RegisterID* func, RegisterID* thisRegister, ArgumentsNode*, unsigned divot, unsigned startOffset, unsigned endOffset);
+ RegisterID* emitCallVarargs(RegisterID* dst, RegisterID* func, RegisterID* thisRegister, RegisterID* argCount, unsigned divot, unsigned startOffset, unsigned endOffset);
+ RegisterID* emitLoadVarargs(RegisterID* argCountDst, RegisterID* args);
RegisterID* emitReturn(RegisterID* src);
RegisterID* emitEnd(RegisterID* src) { return emitUnaryNoDstOp(op_end, src); }
RegisterID* emitConstruct(RegisterID* dst, RegisterID* func, ArgumentsNode*, unsigned divot, unsigned startOffset, unsigned endOffset);
+ RegisterID* emitStrcat(RegisterID* dst, RegisterID* src, int count);
+ void emitToPrimitive(RegisterID* dst, RegisterID* src);
PassRefPtr<Label> emitLabel(Label*);
PassRefPtr<Label> emitJump(Label* target);
PassRefPtr<Label> emitJumpIfTrue(RegisterID* cond, Label* target);
PassRefPtr<Label> emitJumpIfFalse(RegisterID* cond, Label* target);
+ PassRefPtr<Label> emitJumpIfNotFunctionCall(RegisterID* cond, Label* target);
+ PassRefPtr<Label> emitJumpIfNotFunctionApply(RegisterID* cond, Label* target);
PassRefPtr<Label> emitJumpScopes(Label* target, int targetScopeDepth);
PassRefPtr<Label> emitJumpSubroutine(RegisterID* retAddrDst, Label*);
@@ -308,7 +320,7 @@ namespace JSC {
RegisterID* emitCatch(RegisterID*, Label* start, Label* end);
void emitThrow(RegisterID* exc) { emitUnaryNoDstOp(op_throw, exc); }
- RegisterID* emitNewError(RegisterID* dst, ErrorType type, JSValuePtr message);
+ RegisterID* emitNewError(RegisterID* dst, ErrorType type, JSValue message);
void emitPushNewScope(RegisterID* dst, Identifier& property, RegisterID* value);
RegisterID* emitPushScope(RegisterID* scope);
@@ -317,6 +329,7 @@ namespace JSC {
void emitDebugHook(DebugHookID, int firstLine, int lastLine);
int scopeDepth() { return m_dynamicScopeDepth + m_finallyDepth; }
+ bool hasFinaliser() { return m_finallyDepth != 0; }
void pushFinallyContext(Label* target, RegisterID* returnAddrDst);
void popFinallyContext();
@@ -329,7 +342,11 @@ namespace JSC {
CodeType codeType() const { return m_codeType; }
- void setRegeneratingForExceptionInfo() { m_regeneratingForExceptionInfo = true; }
+ void setRegeneratingForExceptionInfo(CodeBlock* originalCodeBlock)
+ {
+ m_regeneratingForExceptionInfo = true;
+ m_codeBlockBeingRegeneratedFrom = originalCodeBlock;
+ }
private:
void emitOpcode(OpcodeID);
@@ -340,12 +357,7 @@ namespace JSC {
PassRefPtr<Label> emitComplexJumpScopes(Label* target, ControlFlowContext* topScope, ControlFlowContext* bottomScope);
- struct JSValueHashTraits : HashTraits<JSValueEncodedAsPointer*> {
- static void constructDeletedValue(JSValueEncodedAsPointer*& slot) { slot = JSValuePtr::encode(JSImmediate::impossibleValue()); }
- static bool isDeletedValue(JSValueEncodedAsPointer* value) { return value == JSValuePtr::encode(JSImmediate::impossibleValue()); }
- };
-
- typedef HashMap<JSValueEncodedAsPointer*, unsigned, PtrHash<JSValueEncodedAsPointer*>, JSValueHashTraits> JSValueMap;
+ typedef HashMap<EncodedJSValue, unsigned, PtrHash<EncodedJSValue>, JSValueHashTraits> JSValueMap;
struct IdentifierMapIndexHashTraits {
typedef int TraitType;
@@ -357,9 +369,9 @@ namespace JSC {
};
typedef HashMap<RefPtr<UString::Rep>, int, IdentifierRepHash, HashTraits<RefPtr<UString::Rep> >, IdentifierMapIndexHashTraits> IdentifierMap;
- typedef HashMap<double, JSValuePtr> NumberMap;
+ typedef HashMap<double, JSValue> NumberMap;
typedef HashMap<UString::Rep*, JSString*, IdentifierRepHash> IdentifierStringMap;
-
+
RegisterID* emitCall(OpcodeID, RegisterID* dst, RegisterID* func, RegisterID* thisRegister, ArgumentsNode*, unsigned divot, unsigned startOffset, unsigned endOffset);
RegisterID* newRegister();
@@ -407,8 +419,8 @@ namespace JSC {
unsigned addConstant(FuncDeclNode*);
unsigned addConstant(FuncExprNode*);
unsigned addConstant(const Identifier&);
- RegisterID* addConstant(JSValuePtr);
- unsigned addUnexpectedConstant(JSValuePtr);
+ RegisterID* addConstant(JSValue);
+ unsigned addUnexpectedConstant(JSValue);
unsigned addRegExp(RegExp*);
Vector<Instruction>& instructions() { return m_codeBlock->instructions(); }
@@ -419,27 +431,29 @@ namespace JSC {
RegisterID* emitThrowExpressionTooDeepException();
+ void createArgumentsIfNecessary();
+
bool m_shouldEmitDebugHooks;
bool m_shouldEmitProfileHooks;
- bool m_regeneratingForExceptionInfo;
-
const ScopeChain* m_scopeChain;
SymbolTable* m_symbolTable;
ScopeNode* m_scopeNode;
CodeBlock* m_codeBlock;
+ // Some of these objects keep pointers to one another. They are arranged
+ // to ensure a sane destruction order that avoids references to freed memory.
HashSet<RefPtr<UString::Rep>, IdentifierRepHash> m_functions;
RegisterID m_ignoredResultRegister;
RegisterID m_thisRegister;
RegisterID m_argumentsRegister;
int m_activationRegisterIndex;
- SegmentedVector<RegisterID, 512> m_calleeRegisters;
- SegmentedVector<RegisterID, 512> m_parameters;
- SegmentedVector<RegisterID, 512> m_globals;
- SegmentedVector<LabelScope, 256> m_labelScopes;
- SegmentedVector<Label, 256> m_labels;
+ SegmentedVector<RegisterID, 32> m_calleeRegisters;
+ SegmentedVector<RegisterID, 32> m_parameters;
+ SegmentedVector<RegisterID, 32> m_globals;
+ SegmentedVector<Label, 32> m_labels;
+ SegmentedVector<LabelScope, 8> m_labelScopes;
RefPtr<RegisterID> m_lastConstant;
int m_finallyDepth;
int m_dynamicScopeDepth;
@@ -452,6 +466,7 @@ namespace JSC {
int m_nextGlobalIndex;
int m_nextParameterIndex;
int m_nextConstantIndex;
+ unsigned m_globalConstantIndex;
int m_globalVarStorageOffset;
@@ -465,13 +480,12 @@ namespace JSC {
OpcodeID m_lastOpcodeID;
-#ifndef NDEBUG
- static bool s_dumpsGeneratedCode;
-#endif
-
unsigned m_emitNodeDepth;
- static const unsigned s_maxEmitNodeDepth = 10000;
+ bool m_regeneratingForExceptionInfo;
+ CodeBlock* m_codeBlockBeingRegeneratedFrom;
+
+ static const unsigned s_maxEmitNodeDepth = 5000;
};
}
diff --git a/src/3rdparty/webkit/JavaScriptCore/config.h b/src/3rdparty/webkit/JavaScriptCore/config.h
index a85178c..cecae47 100644
--- a/src/3rdparty/webkit/JavaScriptCore/config.h
+++ b/src/3rdparty/webkit/JavaScriptCore/config.h
@@ -25,6 +25,16 @@
#include <wtf/Platform.h>
+#if PLATFORM(WIN_OS) && !defined(BUILDING_WX__) && !COMPILER(GCC)
+#if defined(BUILDING_JavaScriptCore) || defined(BUILDING_WTF)
+#define JS_EXPORTDATA __declspec(dllexport)
+#else
+#define JS_EXPORTDATA __declspec(dllimport)
+#endif
+#else
+#define JS_EXPORTDATA
+#endif
+
#if PLATFORM(WIN_OS)
// If we don't define these, they get defined in windef.h.
diff --git a/src/3rdparty/webkit/JavaScriptCore/create_hash_table b/src/3rdparty/webkit/JavaScriptCore/create_hash_table