| 2011-04-19 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Remove unneeded deprecated methods from MarkStack |
| https://bugs.webkit.org/show_bug.cgi?id=58853 |
| |
| Remove deprecated methods |
| |
| * heap/MarkStack.h: |
| |
| 2011-04-19 Mark Rowe <mrowe@apple.com> |
| |
| Things work best when the Xcode project refers to the file at a path that exists. |
| |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| |
| 2011-04-19 Renata Hodovan <reni@webkit.org> |
| |
| Reviewed by Eric Seidel. |
| |
| Move the alignment related macros in Vector.h to new Alignment.h. |
| https://bugs.webkit.org/show_bug.cgi?id=56000 |
| |
| * JavaScriptCore.gypi: |
| * JavaScriptCore.vcproj/WTF/WTF.vcproj: |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| * wtf/Alignment.h: Added. |
| * wtf/CMakeLists.txt: |
| * wtf/Vector.h: |
| |
| 2011-04-19 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Remove DeprecatedPtr |
| https://bugs.webkit.org/show_bug.cgi?id=58718 |
| |
| Remove the class an all functions that still exist to support it. |
| |
| * heap/MarkStack.h: |
| (JSC::MarkStack::append): |
| * runtime/JSValue.h: |
| * runtime/WriteBarrier.h: |
| |
| 2011-04-19 Jungshik Shin <jshin@chromium.org> |
| |
| Reviewed by David Levin |
| |
| Add U+FEFF (Zero width no-break space) to CharacterNames.h. |
| It's added to the list of characters to treat as zero-width |
| in WebCore. |
| |
| https://bugs.webkit.org/show_bug.cgi?id=48860 |
| |
| * wtf/unicode/CharacterNames.h: |
| |
| 2011-04-19 Csaba Osztrogonác <ossy@webkit.org> |
| |
| [Qt] REGRESSION(84176): http/tests/xmlhttprequest/event-listener-gc.html fails |
| https://bugs.webkit.org/show_bug.cgi?id=58871 |
| |
| Unreviewed, rolling out r84176, r84178, r84186, r84212 and r84231. |
| http://trac.webkit.org/changeset/84176 (original patch) |
| http://trac.webkit.org/changeset/84178 (original patch - part 2) |
| http://trac.webkit.org/changeset/84186 (build fix) |
| http://trac.webkit.org/changeset/84212 |
| http://trac.webkit.org/changeset/84231 (skip failing test) |
| |
| original bugs: |
| - https://bugs.webkit.org/show_bug.cgi?id=58718 |
| - https://bugs.webkit.org/show_bug.cgi?id=58853 |
| |
| * heap/MarkStack.h: |
| (JSC::MarkStack::deprecatedAppendValues): |
| (JSC::MarkStack::append): |
| (JSC::MarkStack::deprecatedAppend): |
| * runtime/JSValue.h: |
| * runtime/WriteBarrier.h: |
| (JSC::DeprecatedPtr::DeprecatedPtr): |
| (JSC::DeprecatedPtr::get): |
| (JSC::DeprecatedPtr::operator*): |
| (JSC::DeprecatedPtr::operator->): |
| (JSC::DeprecatedPtr::slot): |
| (JSC::DeprecatedPtr::operator UnspecifiedBoolType*): |
| (JSC::DeprecatedPtr::operator!): |
| (JSC::operator==): |
| |
| 2011-04-18 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Remove unneeded deprecated methods from MarkStack |
| https://bugs.webkit.org/show_bug.cgi?id=58853 |
| |
| Remove deprecated methods |
| |
| * heap/MarkStack.h: |
| |
| 2011-04-18 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Adam Roben. |
| |
| Off by one initialising repeat callframe |
| https://bugs.webkit.org/show_bug.cgi?id=58838 |
| <rdar://problem/8756810> |
| |
| If the end of a callframe made for a repeat call landed on |
| a page boundary the following page may not have been committed |
| which means that the off by one could lead to a crash. However |
| it could only happen in this case and only on windows which is |
| why it was so hard to repro. Alas given the steps needed to |
| reproduce are such that it's not really possible to make a |
| testcase. |
| |
| This fix makes the code a little less squirrely by not trying |
| to avoid the unnecessary initialisation of |this|. |
| |
| * interpreter/Interpreter.cpp: |
| (JSC::Interpreter::prepareForRepeatCall): |
| |
| 2011-04-18 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Geoff Garen. |
| |
| Bug 58829 - DFG JIT - Optimize add/sub immediate, multiply. |
| |
| Add code generation for add/subtract instruction with immediate operands |
| (where a child is a constant), and don't bail to non-speculative if an |
| integer multiple results in a +0 result (only if it should be generating -0). |
| |
| * dfg/DFGSpeculativeJIT.cpp: |
| (JSC::DFG::SpeculativeJIT::compile): |
| * dfg/DFGSpeculativeJIT.h: |
| (JSC::DFG::SpeculativeJIT::isDoubleConstantWithInt32Value): |
| |
| 2011-04-18 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Geoff Garen. |
| |
| Bug 58817 - DFG JIT - if speculative compilation fails, throw away code. |
| |
| If we detect a logical conflict, throw away generated code, |
| and only compile through the NonSpeculativeJIT. |
| |
| * assembler/AbstractMacroAssembler.h: |
| (JSC::AbstractMacroAssembler::rewindToLabel): |
| * assembler/AssemblerBuffer.h: |
| (JSC::AssemblerBuffer::rewindToOffset): |
| * assembler/MacroAssemblerX86Common.h: |
| (JSC::MacroAssemblerX86Common::branchAdd32): |
| (JSC::MacroAssemblerX86Common::branchSub32): |
| * assembler/X86Assembler.h: |
| (JSC::X86Assembler::rewindToLabel): |
| (JSC::X86Assembler::X86InstructionFormatter::rewindToLabel): |
| * dfg/DFGJITCompiler.cpp: |
| (JSC::DFG::JITCompiler::linkSpeculationChecks): |
| (JSC::DFG::JITCompiler::compileFunction): |
| * dfg/DFGNode.h: |
| * dfg/DFGNonSpeculativeJIT.cpp: |
| (JSC::DFG::NonSpeculativeJIT::compile): |
| * dfg/DFGSpeculativeJIT.cpp: |
| (JSC::DFG::SpeculativeJIT::compile): |
| * dfg/DFGSpeculativeJIT.h: |
| (JSC::DFG::SpeculationCheckIndexIterator::SpeculationCheckIndexIterator): |
| |
| 2011-04-18 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Remove DeprecatedPtr |
| https://bugs.webkit.org/show_bug.cgi?id=58718 |
| |
| As simple as it sounds. |
| |
| * runtime/JSValue.h: |
| * runtime/WriteBarrier.h: |
| |
| 2011-04-17 Cameron Zwarich <zwarich@apple.com> |
| |
| Reviewed by Dan Bernstein. |
| |
| JSC no longer builds with Clang due to -Woverloaded-virtual warning |
| https://bugs.webkit.org/show_bug.cgi?id=58760 |
| |
| Rename Structure's specificValue overload of put to putSpecificValue to avoid |
| Clang's warning for overloading a virtual function. |
| |
| * runtime/Structure.cpp: |
| (JSC::Structure::addPropertyTransition): |
| (JSC::Structure::addPropertyWithoutTransition): |
| (JSC::Structure::putSpecificValue): |
| * runtime/Structure.h: |
| |
| 2011-04-17 Patrick Gansterer <paroga@webkit.org> |
| |
| Reviewed by Adam Barth. |
| |
| Remove WTF_PLATFORM_SGL |
| https://bugs.webkit.org/show_bug.cgi?id=58743 |
| |
| WTF_PLATFORM_SGL and PLATFORM(SGL) are not used in the code anywhere. |
| |
| * wtf/Platform.h: |
| |
| 2011-04-17 Patrick Gansterer <paroga@webkit.org> |
| |
| Reviewed by Adam Barth. |
| |
| Rename PLATFORM(CA) to USE(CA) |
| https://bugs.webkit.org/show_bug.cgi?id=58742 |
| |
| * wtf/Platform.h: |
| |
| 2011-04-17 Patrick Gansterer <paroga@webkit.org> |
| |
| Reviewed by Adam Barth. |
| |
| Rename PLATFORM(CG) to USE(CG) |
| https://bugs.webkit.org/show_bug.cgi?id=58729 |
| |
| * wtf/Platform.h: |
| |
| 2011-04-16 Patrick Gansterer <paroga@webkit.org> |
| |
| Reviewed by Eric Seidel. |
| |
| Rename PLATFORM(CAIRO) to USE(CAIRO) |
| https://bugs.webkit.org/show_bug.cgi?id=55192 |
| |
| * wtf/Platform.h: |
| * wtf/gobject/GTypedefs.h: |
| |
| 2011-04-15 Sheriff Bot <webkit.review.bot@gmail.com> |
| |
| Unreviewed, rolling out r84067. |
| http://trac.webkit.org/changeset/84067 |
| https://bugs.webkit.org/show_bug.cgi?id=58724 |
| |
| qt build are failing. (Requested by loislo2 on #webkit). |
| |
| * heap/MarkStack.h: |
| (JSC::MarkStack::append): |
| * runtime/JSValue.h: |
| * runtime/WriteBarrier.h: |
| (JSC::DeprecatedPtr::DeprecatedPtr): |
| (JSC::DeprecatedPtr::get): |
| (JSC::DeprecatedPtr::operator*): |
| (JSC::DeprecatedPtr::operator->): |
| (JSC::DeprecatedPtr::slot): |
| (JSC::DeprecatedPtr::operator UnspecifiedBoolType*): |
| (JSC::DeprecatedPtr::operator!): |
| (JSC::operator==): |
| |
| 2011-04-15 Shishir Agrawal <shishir@chromium.org> |
| |
| Reviewed by James Robinson. |
| |
| Add a flag to guard Page Visibility API changes. |
| https://bugs.webkit.org/show_bug.cgi?id=58464 |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2011-04-15 Gavin Barraclough <barraclough@apple.com> |
| |
| Errrk! - build fix from !x86-64. |
| |
| * dfg/DFGNode.h: |
| |
| 2011-04-15 David Levin <levin@chromium.org> |
| |
| Revert of r83974. |
| |
| JavaScriptCore shouldn't depend on ../ThirdParty/gtest/xcode/gtest.xcodeproj |
| https://bugs.webkit.org/show_bug.cgi?id=58716 |
| |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| * wtf/tests/RunAllWtfTests.cpp: Removed. |
| * wtf/tests/StringTests.cpp: Removed. |
| |
| 2011-04-15 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Remove DeprecatedPtr |
| https://bugs.webkit.org/show_bug.cgi?id=58718 |
| |
| As simple as it sounds. |
| |
| * heap/MarkStack.h: |
| (JSC::MarkStack::append): |
| * runtime/JSValue.h: |
| * runtime/WriteBarrier.h: |
| |
| 2011-04-15 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Add a simple tool to gather statistics on whether functions |
| are completed through the new or old JIT. |
| |
| * dfg/DFGNode.h: |
| * dfg/DFGNonSpeculativeJIT.cpp: |
| (JSC::DFG::NonSpeculativeJIT::compile): |
| * dfg/DFGSpeculativeJIT.cpp: |
| (JSC::DFG::SpeculativeJIT::compile): |
| * jit/JIT.cpp: |
| (JSC::JIT::privateCompile): |
| |
| 2011-04-15 Oliver Hunt <oliver@apple.com> |
| |
| GC allocate Structure |
| https://bugs.webkit.org/show_bug.cgi?id=58483 |
| |
| Rolling r83894 r83827 r83810 r83809 r83808 back in with |
| a workaround for the gcc bug seen by the gtk bots |
| |
| * API/JSCallbackConstructor.cpp: |
| (JSC::JSCallbackConstructor::JSCallbackConstructor): |
| * API/JSCallbackConstructor.h: |
| (JSC::JSCallbackConstructor::createStructure): |
| * API/JSCallbackFunction.h: |
| (JSC::JSCallbackFunction::createStructure): |
| * API/JSCallbackObject.h: |
| (JSC::JSCallbackObject::createStructure): |
| * API/JSCallbackObjectFunctions.h: |
| (JSC::::JSCallbackObject): |
| * API/JSContextRef.cpp: |
| * JavaScriptCore.JSVALUE32_64only.exp: |
| * JavaScriptCore.JSVALUE64only.exp: |
| * JavaScriptCore.exp: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
| * bytecode/CodeBlock.cpp: |
| (JSC::CodeBlock::~CodeBlock): |
| (JSC::CodeBlock::markStructures): |
| (JSC::CodeBlock::markAggregate): |
| * bytecode/CodeBlock.h: |
| (JSC::MethodCallLinkInfo::setSeen): |
| (JSC::GlobalResolveInfo::GlobalResolveInfo): |
| * bytecode/Instruction.h: |
| (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set): |
| (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList): |
| (JSC::PolymorphicAccessStructureList::markAggregate): |
| (JSC::Instruction::Instruction): |
| * bytecode/StructureStubInfo.cpp: |
| (JSC::StructureStubInfo::deref): |
| (JSC::StructureStubInfo::markAggregate): |
| * bytecode/StructureStubInfo.h: |
| (JSC::StructureStubInfo::initGetByIdSelf): |
| (JSC::StructureStubInfo::initGetByIdProto): |
| (JSC::StructureStubInfo::initGetByIdChain): |
| (JSC::StructureStubInfo::initPutByIdTransition): |
| (JSC::StructureStubInfo::initPutByIdReplace): |
| * debugger/DebuggerActivation.cpp: |
| (JSC::DebuggerActivation::DebuggerActivation): |
| * debugger/DebuggerActivation.h: |
| (JSC::DebuggerActivation::createStructure): |
| * heap/Handle.h: |
| * heap/MarkStack.cpp: |
| (JSC::MarkStack::markChildren): |
| (JSC::MarkStack::drain): |
| * heap/MarkedBlock.cpp: |
| (JSC::MarkedBlock::MarkedBlock): |
| (JSC::MarkedBlock::sweep): |
| * heap/Strong.h: |
| (JSC::Strong::Strong): |
| (JSC::Strong::set): |
| * interpreter/Interpreter.cpp: |
| (JSC::Interpreter::resolveGlobal): |
| (JSC::Interpreter::resolveGlobalDynamic): |
| (JSC::Interpreter::tryCachePutByID): |
| (JSC::Interpreter::uncachePutByID): |
| (JSC::Interpreter::tryCacheGetByID): |
| (JSC::Interpreter::uncacheGetByID): |
| (JSC::Interpreter::privateExecute): |
| * jit/JIT.h: |
| * jit/JITPropertyAccess.cpp: |
| (JSC::JIT::privateCompilePutByIdTransition): |
| (JSC::JIT::patchMethodCallProto): |
| (JSC::JIT::privateCompileGetByIdProto): |
| (JSC::JIT::privateCompileGetByIdSelfList): |
| (JSC::JIT::privateCompileGetByIdProtoList): |
| (JSC::JIT::privateCompileGetByIdChainList): |
| (JSC::JIT::privateCompileGetByIdChain): |
| * jit/JITPropertyAccess32_64.cpp: |
| (JSC::JIT::privateCompilePutByIdTransition): |
| (JSC::JIT::patchMethodCallProto): |
| (JSC::JIT::privateCompileGetByIdProto): |
| (JSC::JIT::privateCompileGetByIdSelfList): |
| (JSC::JIT::privateCompileGetByIdProtoList): |
| (JSC::JIT::privateCompileGetByIdChainList): |
| (JSC::JIT::privateCompileGetByIdChain): |
| * jit/JITStubs.cpp: |
| (JSC::JITThunks::tryCachePutByID): |
| (JSC::JITThunks::tryCacheGetByID): |
| (JSC::DEFINE_STUB_FUNCTION): |
| (JSC::getPolymorphicAccessStructureListSlot): |
| * jit/JSInterfaceJIT.h: |
| (JSC::JSInterfaceJIT::storePtrWithWriteBarrier): |
| * jsc.cpp: |
| (cleanupGlobalData): |
| * runtime/Arguments.h: |
| (JSC::Arguments::createStructure): |
| (JSC::Arguments::Arguments): |
| (JSC::JSActivation::copyRegisters): |
| * runtime/ArrayConstructor.cpp: |
| (JSC::ArrayConstructor::ArrayConstructor): |
| (JSC::constructArrayWithSizeQuirk): |
| * runtime/ArrayConstructor.h: |
| * runtime/ArrayPrototype.cpp: |
| (JSC::ArrayPrototype::ArrayPrototype): |
| (JSC::arrayProtoFuncSplice): |
| * runtime/ArrayPrototype.h: |
| (JSC::ArrayPrototype::createStructure): |
| * runtime/BatchedTransitionOptimizer.h: |
| (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer): |
| * runtime/BooleanConstructor.cpp: |
| (JSC::BooleanConstructor::BooleanConstructor): |
| * runtime/BooleanConstructor.h: |
| * runtime/BooleanObject.cpp: |
| (JSC::BooleanObject::BooleanObject): |
| * runtime/BooleanObject.h: |
| (JSC::BooleanObject::createStructure): |
| * runtime/BooleanPrototype.cpp: |
| (JSC::BooleanPrototype::BooleanPrototype): |
| * runtime/BooleanPrototype.h: |
| * runtime/DateConstructor.cpp: |
| (JSC::DateConstructor::DateConstructor): |
| * runtime/DateConstructor.h: |
| * runtime/DateInstance.cpp: |
| (JSC::DateInstance::DateInstance): |
| * runtime/DateInstance.h: |
| (JSC::DateInstance::createStructure): |
| * runtime/DatePrototype.cpp: |
| (JSC::DatePrototype::DatePrototype): |
| * runtime/DatePrototype.h: |
| (JSC::DatePrototype::createStructure): |
| * runtime/Error.cpp: |
| (JSC::StrictModeTypeErrorFunction::StrictModeTypeErrorFunction): |
| * runtime/ErrorConstructor.cpp: |
| (JSC::ErrorConstructor::ErrorConstructor): |
| * runtime/ErrorConstructor.h: |
| * runtime/ErrorInstance.cpp: |
| (JSC::ErrorInstance::ErrorInstance): |
| (JSC::ErrorInstance::create): |
| * runtime/ErrorInstance.h: |
| (JSC::ErrorInstance::createStructure): |
| * runtime/ErrorPrototype.cpp: |
| (JSC::ErrorPrototype::ErrorPrototype): |
| * runtime/ErrorPrototype.h: |
| * runtime/ExceptionHelpers.cpp: |
| (JSC::InterruptedExecutionError::InterruptedExecutionError): |
| (JSC::TerminatedExecutionError::TerminatedExecutionError): |
| * runtime/Executable.cpp: |
| * runtime/Executable.h: |
| (JSC::ExecutableBase::ExecutableBase): |
| (JSC::ExecutableBase::createStructure): |
| (JSC::NativeExecutable::createStructure): |
| (JSC::NativeExecutable::NativeExecutable): |
| (JSC::ScriptExecutable::ScriptExecutable): |
| (JSC::EvalExecutable::createStructure): |
| (JSC::ProgramExecutable::createStructure): |
| (JSC::FunctionExecutable::createStructure): |
| * runtime/FunctionConstructor.cpp: |
| (JSC::FunctionConstructor::FunctionConstructor): |
| * runtime/FunctionConstructor.h: |
| * runtime/FunctionPrototype.cpp: |
| (JSC::FunctionPrototype::FunctionPrototype): |
| * runtime/FunctionPrototype.h: |
| (JSC::FunctionPrototype::createStructure): |
| * runtime/GetterSetter.h: |
| (JSC::GetterSetter::GetterSetter): |
| (JSC::GetterSetter::createStructure): |
| * runtime/InitializeThreading.cpp: |
| (JSC::initializeThreadingOnce): |
| * runtime/InternalFunction.cpp: |
| (JSC::InternalFunction::InternalFunction): |
| * runtime/InternalFunction.h: |
| (JSC::InternalFunction::createStructure): |
| * runtime/JSAPIValueWrapper.h: |
| (JSC::JSAPIValueWrapper::createStructure): |
| (JSC::JSAPIValueWrapper::JSAPIValueWrapper): |
| * runtime/JSActivation.cpp: |
| (JSC::JSActivation::JSActivation): |
| * runtime/JSActivation.h: |
| (JSC::JSActivation::createStructure): |
| * runtime/JSArray.cpp: |
| (JSC::JSArray::JSArray): |
| * runtime/JSArray.h: |
| (JSC::JSArray::createStructure): |
| * runtime/JSByteArray.cpp: |
| (JSC::JSByteArray::JSByteArray): |
| (JSC::JSByteArray::createStructure): |
| * runtime/JSByteArray.h: |
| (JSC::JSByteArray::JSByteArray): |
| * runtime/JSCell.cpp: |
| (JSC::isZombie): |
| * runtime/JSCell.h: |
| (JSC::JSCell::JSCell::JSCell): |
| (JSC::JSCell::JSCell::addressOfStructure): |
| (JSC::JSCell::JSCell::structure): |
| (JSC::JSCell::JSCell::markChildren): |
| (JSC::JSCell::JSValue::isZombie): |
| * runtime/JSFunction.cpp: |
| (JSC::JSFunction::JSFunction): |
| * runtime/JSFunction.h: |
| (JSC::JSFunction::createStructure): |
| * runtime/JSGlobalData.cpp: |
| (JSC::JSGlobalData::storeVPtrs): |
| (JSC::JSGlobalData::JSGlobalData): |
| (JSC::JSGlobalData::clearBuiltinStructures): |
| (JSC::JSGlobalData::createLeaked): |
| * runtime/JSGlobalData.h: |
| (JSC::allocateGlobalHandle): |
| * runtime/JSGlobalObject.cpp: |
| (JSC::JSGlobalObject::reset): |
| (JSC::JSGlobalObject::markChildren): |
| (JSC::JSGlobalObject::copyGlobalsFrom): |
| * runtime/JSGlobalObject.h: |
| (JSC::JSGlobalObject::JSGlobalObject): |
| (JSC::JSGlobalObject::createStructure): |
| (JSC::Structure::prototypeChain): |
| (JSC::Structure::isValid): |
| (JSC::constructEmptyArray): |
| * runtime/JSNotAnObject.h: |
| (JSC::JSNotAnObject::JSNotAnObject): |
| (JSC::JSNotAnObject::createStructure): |
| * runtime/JSONObject.cpp: |
| (JSC::JSONObject::JSONObject): |
| * runtime/JSONObject.h: |
| (JSC::JSONObject::createStructure): |
| * runtime/JSObject.cpp: |
| (JSC::JSObject::defineGetter): |
| (JSC::JSObject::defineSetter): |
| (JSC::JSObject::seal): |
| (JSC::JSObject::freeze): |
| (JSC::JSObject::preventExtensions): |
| (JSC::JSObject::removeDirect): |
| (JSC::JSObject::createInheritorID): |
| * runtime/JSObject.h: |
| (JSC::JSObject::createStructure): |
| (JSC::JSObject::JSObject): |
| (JSC::JSNonFinalObject::createStructure): |
| (JSC::JSNonFinalObject::JSNonFinalObject): |
| (JSC::JSFinalObject::create): |
| (JSC::JSFinalObject::createStructure): |
| (JSC::JSFinalObject::JSFinalObject): |
| (JSC::constructEmptyObject): |
| (JSC::createEmptyObjectStructure): |
| (JSC::JSObject::~JSObject): |
| (JSC::JSObject::setPrototype): |
| (JSC::JSObject::setStructure): |
| (JSC::JSObject::inheritorID): |
| (JSC::JSObject::putDirectInternal): |
| (JSC::JSObject::transitionTo): |
| (JSC::JSObject::markChildrenDirect): |
| * runtime/JSObjectWithGlobalObject.cpp: |
| (JSC::JSObjectWithGlobalObject::JSObjectWithGlobalObject): |
| * runtime/JSObjectWithGlobalObject.h: |
| (JSC::JSObjectWithGlobalObject::createStructure): |
| (JSC::JSObjectWithGlobalObject::JSObjectWithGlobalObject): |
| * runtime/JSPropertyNameIterator.cpp: |
| (JSC::JSPropertyNameIterator::JSPropertyNameIterator): |
| (JSC::JSPropertyNameIterator::create): |
| (JSC::JSPropertyNameIterator::get): |
| * runtime/JSPropertyNameIterator.h: |
| (JSC::JSPropertyNameIterator::createStructure): |
| (JSC::JSPropertyNameIterator::setCachedStructure): |
| (JSC::Structure::setEnumerationCache): |
| * runtime/JSStaticScopeObject.h: |
| (JSC::JSStaticScopeObject::JSStaticScopeObject): |
| (JSC::JSStaticScopeObject::createStructure): |
| * runtime/JSString.h: |
| (JSC::RopeBuilder::JSString): |
| (JSC::RopeBuilder::createStructure): |
| * runtime/JSType.h: |
| * runtime/JSTypeInfo.h: |
| (JSC::TypeInfo::TypeInfo): |
| * runtime/JSValue.h: |
| * runtime/JSVariableObject.h: |
| (JSC::JSVariableObject::createStructure): |
| (JSC::JSVariableObject::JSVariableObject): |
| (JSC::JSVariableObject::copyRegisterArray): |
| * runtime/JSWrapperObject.h: |
| (JSC::JSWrapperObject::createStructure): |
| (JSC::JSWrapperObject::JSWrapperObject): |
| * runtime/JSZombie.cpp: |
| * runtime/JSZombie.h: |
| (JSC::JSZombie::JSZombie): |
| (JSC::JSZombie::createStructure): |
| * runtime/MathObject.cpp: |
| (JSC::MathObject::MathObject): |
| * runtime/MathObject.h: |
| (JSC::MathObject::createStructure): |
| * runtime/NativeErrorConstructor.cpp: |
| (JSC::NativeErrorConstructor::NativeErrorConstructor): |
| (JSC::NativeErrorConstructor::markChildren): |
| (JSC::constructWithNativeErrorConstructor): |
| * runtime/NativeErrorConstructor.h: |
| (JSC::NativeErrorConstructor::createStructure): |
| * runtime/NativeErrorPrototype.cpp: |
| (JSC::NativeErrorPrototype::NativeErrorPrototype): |
| * runtime/NativeErrorPrototype.h: |
| * runtime/NumberConstructor.cpp: |
| (JSC::NumberConstructor::NumberConstructor): |
| * runtime/NumberConstructor.h: |
| (JSC::NumberConstructor::createStructure): |
| * runtime/NumberObject.cpp: |
| (JSC::NumberObject::NumberObject): |
| * runtime/NumberObject.h: |
| (JSC::NumberObject::createStructure): |
| * runtime/NumberPrototype.cpp: |
| (JSC::NumberPrototype::NumberPrototype): |
| * runtime/NumberPrototype.h: |
| * runtime/ObjectConstructor.cpp: |
| (JSC::ObjectConstructor::ObjectConstructor): |
| * runtime/ObjectConstructor.h: |
| (JSC::ObjectConstructor::createStructure): |
| * runtime/ObjectPrototype.cpp: |
| (JSC::ObjectPrototype::ObjectPrototype): |
| * runtime/ObjectPrototype.h: |
| * runtime/PropertyMapHashTable.h: |
| (JSC::PropertyTable::PropertyTable): |
| * runtime/RegExpConstructor.cpp: |
| (JSC::RegExpConstructor::RegExpConstructor): |
| (JSC::RegExpMatchesArray::RegExpMatchesArray): |
| * runtime/RegExpConstructor.h: |
| (JSC::RegExpConstructor::createStructure): |
| * runtime/RegExpObject.cpp: |
| (JSC::RegExpObject::RegExpObject): |
| * runtime/RegExpObject.h: |
| (JSC::RegExpObject::createStructure): |
| * runtime/RegExpPrototype.cpp: |
| (JSC::RegExpPrototype::RegExpPrototype): |
| * runtime/RegExpPrototype.h: |
| * runtime/ScopeChain.h: |
| (JSC::ScopeChainNode::ScopeChainNode): |
| (JSC::ScopeChainNode::createStructure): |
| * runtime/StrictEvalActivation.cpp: |
| (JSC::StrictEvalActivation::StrictEvalActivation): |
| * runtime/StringConstructor.cpp: |
| (JSC::StringConstructor::StringConstructor): |
| * runtime/StringConstructor.h: |
| * runtime/StringObject.cpp: |
| (JSC::StringObject::StringObject): |
| * runtime/StringObject.h: |
| (JSC::StringObject::createStructure): |
| * runtime/StringObjectThatMasqueradesAsUndefined.h: |
| (JSC::StringObjectThatMasqueradesAsUndefined::StringObjectThatMasqueradesAsUndefined): |
| (JSC::StringObjectThatMasqueradesAsUndefined::createStructure): |
| * runtime/StringPrototype.cpp: |
| (JSC::StringPrototype::StringPrototype): |
| * runtime/StringPrototype.h: |
| (JSC::StringPrototype::createStructure): |
| * runtime/Structure.cpp: |
| (JSC::StructureTransitionTable::remove): |
| (JSC::StructureTransitionTable::add): |
| (JSC::Structure::Structure): |
| (JSC::Structure::~Structure): |
| (JSC::Structure::materializePropertyMap): |
| (JSC::Structure::addPropertyTransitionToExistingStructure): |
| (JSC::Structure::addPropertyTransition): |
| (JSC::Structure::removePropertyTransition): |
| (JSC::Structure::changePrototypeTransition): |
| (JSC::Structure::despecifyFunctionTransition): |
| (JSC::Structure::getterSetterTransition): |
| (JSC::Structure::toDictionaryTransition): |
| (JSC::Structure::toCacheableDictionaryTransition): |
| (JSC::Structure::toUncacheableDictionaryTransition): |
| (JSC::Structure::sealTransition): |
| (JSC::Structure::freezeTransition): |
| (JSC::Structure::preventExtensionsTransition): |
| (JSC::Structure::flattenDictionaryStructure): |
| (JSC::Structure::copyPropertyTable): |
| (JSC::Structure::put): |
| (JSC::Structure::markChildren): |
| * runtime/Structure.h: |
| (JSC::Structure::create): |
| (JSC::Structure::setPrototypeWithoutTransition): |
| (JSC::Structure::createStructure): |
| (JSC::JSCell::createDummyStructure): |
| (JSC::StructureTransitionTable::keyForWeakGCMapFinalizer): |
| * runtime/StructureChain.cpp: |
| (JSC::StructureChain::StructureChain): |
| (JSC::StructureChain::markChildren): |
| * runtime/StructureChain.h: |
| (JSC::StructureChain::create): |
| (JSC::StructureChain::head): |
| (JSC::StructureChain::createStructure): |
| * runtime/StructureTransitionTable.h: |
| (JSC::StructureTransitionTable::WeakGCMapFinalizerCallback::finalizerContextFor): |
| (JSC::StructureTransitionTable::WeakGCMapFinalizerCallback::keyForFinalizer): |
| (JSC::StructureTransitionTable::~StructureTransitionTable): |
| (JSC::StructureTransitionTable::slot): |
| (JSC::StructureTransitionTable::setMap): |
| (JSC::StructureTransitionTable::singleTransition): |
| (JSC::StructureTransitionTable::clearSingleTransition): |
| (JSC::StructureTransitionTable::setSingleTransition): |
| * runtime/WeakGCMap.h: |
| (JSC::DefaultWeakGCMapFinalizerCallback::finalizerContextFor): |
| (JSC::DefaultWeakGCMapFinalizerCallback::keyForFinalizer): |
| (JSC::WeakGCMap::contains): |
| (JSC::WeakGCMap::find): |
| (JSC::WeakGCMap::remove): |
| (JSC::WeakGCMap::add): |
| (JSC::WeakGCMap::set): |
| (JSC::WeakGCMap::finalize): |
| * runtime/WriteBarrier.h: |
| (JSC::writeBarrier): |
| (JSC::WriteBarrierBase::set): |
| (JSC::WriteBarrierBase::operator*): |
| (JSC::WriteBarrierBase::operator->): |
| (JSC::WriteBarrierBase::setWithoutWriteBarrier): |
| |
| 2011-04-15 Fridrich Strba <fridrich.strba@bluewin.ch> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Correctly prefix symbols. Since gcc 4.5.0, Windows x64 symbols |
| are not prefixed by underscore anymore. This is consistent with |
| what MSVC does. |
| https://bugs.webkit.org/show_bug.cgi?id=58573 |
| |
| * jit/JITStubs.cpp: |
| |
| 2011-04-15 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Geoff Garen. |
| |
| Bug 58705 - DFG JIT Add support for flow control (branch, jump). |
| |
| Add support for control flow by breaking the CodeBlock up into multiple |
| basic blocks, generating code for each basic block in turn through the |
| speculative JIT & then the non-speculative JIT. |
| |
| * dfg/DFGByteCodeParser.cpp: |
| (JSC::DFG::ByteCodeParser::setTemporary): |
| (JSC::DFG::ByteCodeParser::addToGraph): |
| (JSC::DFG::ByteCodeParser::parseBlock): |
| (JSC::DFG::ByteCodeParser::parse): |
| * dfg/DFGGraph.cpp: |
| (JSC::DFG::Graph::dump): |
| * dfg/DFGGraph.h: |
| (JSC::DFG::BasicBlock::BasicBlock): |
| (JSC::DFG::BasicBlock::getBytecodeOffset): |
| (JSC::DFG::Graph::blockIndexForBytecodeOffset): |
| * dfg/DFGJITCodeGenerator.h: |
| (JSC::DFG::JITCodeGenerator::JITCodeGenerator): |
| (JSC::DFG::JITCodeGenerator::addBranch): |
| (JSC::DFG::JITCodeGenerator::linkBranches): |
| (JSC::DFG::JITCodeGenerator::BranchRecord::BranchRecord): |
| * dfg/DFGNode.h: |
| (JSC::DFG::Node::Node): |
| (JSC::DFG::Node::isJump): |
| (JSC::DFG::Node::isBranch): |
| (JSC::DFG::Node::takenBytecodeOffset): |
| (JSC::DFG::Node::notTakenBytecodeOffset): |
| * dfg/DFGNonSpeculativeJIT.cpp: |
| (JSC::DFG::NonSpeculativeJIT::compile): |
| * dfg/DFGNonSpeculativeJIT.h: |
| * dfg/DFGSpeculativeJIT.cpp: |
| (JSC::DFG::SpeculativeJIT::compile): |
| * dfg/DFGSpeculativeJIT.h: |
| |
| 2011-04-15 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Geoff Garen. |
| |
| Bug 58701 - DFG JIT - add GetLocal/SetLocal nodes |
| |
| Use these for both access to arguments & local variables, adds ability |
| to set locals, such that values will persist between basic blocks. |
| |
| * dfg/DFGByteCodeParser.cpp: |
| (JSC::DFG::ByteCodeParser::ByteCodeParser): |
| (JSC::DFG::ByteCodeParser::get): |
| (JSC::DFG::ByteCodeParser::set): |
| (JSC::DFG::ByteCodeParser::getVariable): |
| (JSC::DFG::ByteCodeParser::setVariable): |
| (JSC::DFG::ByteCodeParser::getArgument): |
| (JSC::DFG::ByteCodeParser::setArgument): |
| (JSC::DFG::ByteCodeParser::getThis): |
| (JSC::DFG::ByteCodeParser::setThis): |
| (JSC::DFG::ByteCodeParser::VariableRecord::VariableRecord): |
| (JSC::DFG::ByteCodeParser::parseBlock): |
| * dfg/DFGGraph.cpp: |
| (JSC::DFG::Graph::dump): |
| (JSC::DFG::Graph::derefChildren): |
| * dfg/DFGGraph.h: |
| (JSC::DFG::Graph::ref): |
| (JSC::DFG::Graph::deref): |
| * dfg/DFGNode.h: |
| (JSC::DFG::Node::hasLocal): |
| (JSC::DFG::Node::local): |
| * dfg/DFGNonSpeculativeJIT.cpp: |
| (JSC::DFG::NonSpeculativeJIT::compile): |
| * dfg/DFGSpeculativeJIT.cpp: |
| (JSC::DFG::SpeculativeJIT::compile): |
| |
| 2011-04-15 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| Bug 58696 - DFG JIT split handling of vars/temporaries |
| |
| Presently all callee registers are treated as having single block scope, |
| since the DFG JIT can only compile single block functions. In order to |
| expand the JIT to support control flow we will need to change to retaining |
| locals (but not temporaries) across basic block boundaries. |
| |
| * dfg/DFGByteCodeParser.cpp: |
| (JSC::DFG::ByteCodeParser::ByteCodeParser): |
| (JSC::DFG::ByteCodeParser::get): |
| (JSC::DFG::ByteCodeParser::set): |
| (JSC::DFG::ByteCodeParser::getVariable): |
| (JSC::DFG::ByteCodeParser::setVariable): |
| (JSC::DFG::ByteCodeParser::getTemporary): |
| (JSC::DFG::ByteCodeParser::setTemporary): |
| (JSC::DFG::ByteCodeParser::getArgument): |
| (JSC::DFG::ByteCodeParser::getInt32Constant): |
| (JSC::DFG::ByteCodeParser::getDoubleConstant): |
| (JSC::DFG::ByteCodeParser::getJSConstant): |
| (JSC::DFG::ByteCodeParser::constantUndefined): |
| (JSC::DFG::ByteCodeParser::constantNull): |
| (JSC::DFG::ByteCodeParser::one): |
| (JSC::DFG::ByteCodeParser::parseBlock): |
| (JSC::DFG::ByteCodeParser::parse): |
| (JSC::DFG::parse): |
| * dfg/DFGNode.h: |
| * dfg/DFGScoreBoard.h: |
| (JSC::DFG::ScoreBoard::ScoreBoard): |
| (JSC::DFG::ScoreBoard::~ScoreBoard): |
| (JSC::DFG::ScoreBoard::allocate): |
| (JSC::DFG::ScoreBoard::use): |
| |
| 2011-04-15 Michael Saboff <msaboff@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| globalObject moved to JSObjectWithGlobalObject.cpp inhibits inlining |
| https://bugs.webkit.org/show_bug.cgi?id=58677 |
| |
| Moved JSObjectWithGlobalObject::globalObject() to |
| runtime/JSObjectWithGlobalObject.h to allow the compiler to inline |
| it for a performance benefit. An equivalent instance had been in |
| a header file before r60057. |
| |
| * JavaScriptCore.exp: |
| * runtime/JSObjectWithGlobalObject.cpp: |
| * runtime/JSObjectWithGlobalObject.h: |
| (JSC::JSObjectWithGlobalObject::globalObject): |
| |
| 2011-04-14 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Make JSNodeFilterCondition handle its lifetime correctly |
| https://bugs.webkit.org/show_bug.cgi?id=58622 |
| |
| Add export |
| |
| * JavaScriptCore.exp: |
| |
| 2011-04-14 Alexey Proskuryakov <ap@apple.com> |
| |
| Reviewed by Dan Bernstein. |
| |
| WebKit2: Password field input does not switch to ASCII-compatible source |
| https://bugs.webkit.org/show_bug.cgi?id=58583 |
| <rdar://problem/9059651> |
| |
| * wtf/Platform.h: Removed WTF_USE_CARBON_SECURE_INPUT_MODE. It's now only used by Chromium, |
| and shouldn't be enabled on any other platforms, so there is no reason to make it |
| configurable via Platform.h. |
| |
| 2011-04-15 Dmitry Lomov <dslomov@google.com> |
| |
| Reviewed by David Levin. |
| |
| Add a sample test case for GTest framework |
| https://bugs.webkit.org/show_bug.cgi?id=58509 |
| |
| Add an example of GTest testcase, complete with a runner, to JavaScriptCore. |
| |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| * wtf/tests/RunAllWtfTests.cpp: Added. |
| (main): |
| * wtf/tests/StringTests.cpp: Added. |
| |
| 2011-04-15 Anna Cavender <annacc@chromium.org> |
| |
| Reviewed by Eric Carlson. |
| |
| Renaming TRACK feature define to VIDEO_TRACK |
| https://bugs.webkit.org/show_bug.cgi?id=53556 |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2011-04-14 Gavin Barraclough <barraclough@apple.com> |
| |
| Rubber stamped by Geoffrey Garen. |
| |
| Hide DFG_JIT_RESTRICTIONS behind ARITHMETIC_OP() macro, and rename |
| m_regressionGuard to m_parseFailed, such that it can be reused for |
| other failure cases. |
| |
| * dfg/DFGByteCodeParser.cpp: |
| (JSC::DFG::ByteCodeParser::ByteCodeParser): |
| (JSC::DFG::ByteCodeParser::parse): |
| |
| 2011-04-14 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Bug 58620 - DFG JIT - loading of arguments should not be lazy |
| |
| This optimization is overly simplistic. It only works because we never |
| write out definitions to arguments (since we currently only compile |
| single block functions). Revert this for now, we may want to reintroduce |
| something like this again in the future, but it will need to be aware |
| how to schedule definitions to arguments versus lazy loads that have not |
| yet been performed. |
| |
| * dfg/DFGGenerationInfo.h: |
| (JSC::DFG::GenerationInfo::needsSpill): |
| * dfg/DFGGraph.cpp: |
| (JSC::DFG::Graph::dump): |
| * dfg/DFGGraph.h: |
| * dfg/DFGJITCodeGenerator.cpp: |
| (JSC::DFG::JITCodeGenerator::fillInteger): |
| (JSC::DFG::JITCodeGenerator::fillDouble): |
| (JSC::DFG::JITCodeGenerator::fillJSValue): |
| * dfg/DFGJITCodeGenerator.h: |
| (JSC::DFG::JITCodeGenerator::initConstantInfo): |
| * dfg/DFGJITCompiler.cpp: |
| (JSC::DFG::JITCompiler::fillNumericToDouble): |
| (JSC::DFG::JITCompiler::fillInt32ToInteger): |
| (JSC::DFG::JITCompiler::fillToJS): |
| * dfg/DFGNonSpeculativeJIT.cpp: |
| (JSC::DFG::NonSpeculativeJIT::isKnownInteger): |
| (JSC::DFG::NonSpeculativeJIT::isKnownNumeric): |
| (JSC::DFG::NonSpeculativeJIT::compile): |
| * dfg/DFGSpeculativeJIT.cpp: |
| (JSC::DFG::SpeculativeJIT::fillSpeculateIntInternal): |
| (JSC::DFG::SpeculativeJIT::fillSpeculateCell): |
| (JSC::DFG::SpeculativeJIT::compile): |
| |
| 2011-04-14 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Bug 58600 - DFG JIT bugs in ValueToInt, PutByVal |
| |
| The bug in PutByVal is that an operand is in JSValueOperand - when this |
| locks an integer into a register it will always retag the value without |
| checking if the register is already locked. This is a problem where the |
| value being stored by a PutByVal is the same as the subscript. |
| The subscript is locked into a register first, as a strict integer. |
| Locking the value results in the subscript being modified. |
| |
| The bug in ValueToInt related to the function of sillentFillAllRegisters. |
| The problem is that this method will restore all register values from |
| prior to the call, overwriting the result of the call out. Allow a |
| register to be passed to specifically be excluded from being preserved. |
| |
| * assembler/ARMAssembler.h: |
| (JSC::ARMAssembler::debugOffset): |
| * assembler/ARMv7Assembler.h: |
| (JSC::ARMv7Assembler::ARMInstructionFormatter::debugOffset): |
| * assembler/AbstractMacroAssembler.h: |
| (JSC::AbstractMacroAssembler::debugOffset): |
| * assembler/AssemblerBuffer.h: |
| (JSC::AssemblerBuffer::debugOffset): |
| * assembler/LinkBuffer.h: |
| (JSC::LinkBuffer::debugAddress): |
| * assembler/MIPSAssembler.h: |
| (JSC::MIPSAssembler::debugOffset): |
| * assembler/MacroAssemblerX86_64.h: |
| (JSC::MacroAssemblerX86_64::orPtr): |
| * assembler/X86Assembler.h: |
| (JSC::X86Assembler::debugOffset): |
| (JSC::X86Assembler::X86InstructionFormatter::debugOffset): |
| * dfg/DFGByteCodeParser.cpp: |
| (JSC::DFG::ByteCodeParser::parse): |
| * dfg/DFGGenerationInfo.h: |
| * dfg/DFGJITCodeGenerator.cpp: |
| (JSC::DFG::JITCodeGenerator::fillJSValue): |
| * dfg/DFGJITCodeGenerator.h: |
| (JSC::DFG::JITCodeGenerator::isConstant): |
| * dfg/DFGJITCompiler.cpp: |
| (JSC::DFG::JITCompiler::compileFunction): |
| * dfg/DFGJITCompiler.h: |
| (JSC::DFG::JITCompiler::isConstant): |
| * dfg/DFGNonSpeculativeJIT.cpp: |
| (JSC::DFG::NonSpeculativeJIT::valueToNumber): |
| (JSC::DFG::NonSpeculativeJIT::valueToInt32): |
| (JSC::DFG::NonSpeculativeJIT::numberToInt32): |
| (JSC::DFG::NonSpeculativeJIT::isKnownInteger): |
| (JSC::DFG::NonSpeculativeJIT::isKnownNumeric): |
| (JSC::DFG::NonSpeculativeJIT::compile): |
| * dfg/DFGNonSpeculativeJIT.h: |
| (JSC::DFG::NonSpeculativeJIT::silentSpillGPR): |
| (JSC::DFG::NonSpeculativeJIT::silentSpillFPR): |
| (JSC::DFG::NonSpeculativeJIT::silentFillGPR): |
| (JSC::DFG::NonSpeculativeJIT::silentFillFPR): |
| (JSC::DFG::NonSpeculativeJIT::silentSpillAllRegisters): |
| (JSC::DFG::NonSpeculativeJIT::silentFillAllRegisters): |
| * dfg/DFGSpeculativeJIT.cpp: |
| (JSC::DFG::SpeculativeJIT::compile): |
| |
| 2011-04-14 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Drain the mark stack while marking weak handles, not after. |
| https://bugs.webkit.org/show_bug.cgi?id=58574 |
| |
| Otherwise, items that would have caused more weak handle marking are |
| processed after all weak handle marking has finished, and referenced |
| weak handles get recycled. |
| |
| * heap/HandleHeap.cpp: |
| (JSC::HandleHeap::markWeakHandles): Removed looping from here, since we |
| want Heap::markRoots to be responsible for draining the mark stack. |
| |
| * heap/Heap.cpp: |
| (JSC::Heap::markRoots): Moved looping to here, as explained above. |
| |
| For efficiency's sake, drain the mark stack before starting to mark weak |
| handles. Otherwise, items drained while marking weak handles may force |
| an extra trip through the weak handle list. |
| |
| For correctness's sake, drain the mark stack each time through the weak |
| handle list. Otherwise, opaque roots that would make weak handles reachable |
| are not discovered until after weak handle marking is over. |
| |
| 2011-04-14 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Make protected object list in caches window reflect reality |
| https://bugs.webkit.org/show_bug.cgi?id=58565 |
| |
| Make sure the heap includes objects protected by Strong handles |
| in its list of protected objects. |
| |
| * heap/HandleHeap.h: |
| * heap/Heap.cpp: |
| (JSC::HandleHeap::protectedObjectTypeCounts): |
| |
| 2011-04-14 Satish Sampath <satish@chromium.org> |
| |
| Reviewed by Anders Carlsson. |
| |
| Don't emit RegExp tables for chromium where they are not used |
| https://bugs.webkit.org/show_bug.cgi?id=58544 |
| |
| * JavaScriptCore.gyp/JavaScriptCore.gyp: |
| * create_regex_tables: Added the "--notables" command line argument. |
| |
| 2011-04-13 Geoffrey Garen <ggaren@apple.com> |
| |
| Try to fix ASSERTs seen on Windows bots. |
| |
| * wtf/HashTable.h: |
| (WTF::hashTableSwap): Force MSVC to use the right version of swap. |
| |
| 2011-04-13 Ryuan Choi <ryuan.choi@samsung.com> |
| |
| Reviewed by Kenneth Rohde Christiansen. |
| |
| [CMAKE] Separate DerivedSources. |
| https://bugs.webkit.org/show_bug.cgi?id=58427 |
| |
| * CMakeLists.txt: Change DERIVED_SOURCES_DIR to DERIVED_SOURCES_JAVASCRIPTCORE_DIR. |
| |
| 2011-04-13 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Switched DOM wrappers to use HashMap of Weak<T> instead of WeakGCMap<T> |
| https://bugs.webkit.org/show_bug.cgi?id=58482 |
| |
| This will allow wrappers to make individual decisions about their lifetimes. |
| |
| * heap/HandleHeap.h: |
| (JSC::HandleHeap::copyWeak): New function for copying a weak handle. |
| It's wasn't previously possible to perform this operation using HandleHeap |
| API because the HandleHeap doesn't expose its underlying Node structure. |
| |
| * heap/Local.h: |
| (JSC::::set): |
| * heap/Strong.h: |
| (JSC::Strong::set): Added ASSERTs to verify that dead objects are not |
| resurrected by placement into handles. |
| |
| (JSC::swap): Added a swap helper, so use of Strong<T> inside a hash table |
| is efficient. |
| |
| * heap/Weak.h: |
| (JSC::Weak::Weak): Fixed a bug where copying a weak pointer would not |
| copy its weak callback and context. |
| |
| (JSC::Weak::operator=): Added an assignment operator, since the default |
| C++ assignment operator did the wrong thing. |
| |
| (JSC::Weak::set): Added ASSERTs to verify that dead objects are not |
| resurrected by placement into handles. |
| |
| (JSC::swap): Added a swap helper, so use of Strong<T> inside a hash table |
| is efficient, and can be done without copying, which is illegal during |
| the handle finalization phase. |
| |
| 2011-04-13 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Make PropertyMapEntry use a WriteBarrier for specificValue |
| https://bugs.webkit.org/show_bug.cgi?id=58407 |
| |
| Make PropertyMapEntry use a WriteBarrier for specificValue, and then |
| propagate the required JSGlobalData through all the methods it ends |
| up being needed. |
| |
| * API/JSClassRef.cpp: |
| (OpaqueJSClass::prototype): |
| * API/JSContextRef.cpp: |
| * API/JSObjectRef.cpp: |
| (JSObjectMake): |
| (JSObjectSetPrototype): |
| * JavaScriptCore.exp: |
| * bytecompiler/BytecodeGenerator.cpp: |
| (JSC::BytecodeGenerator::BytecodeGenerator): |
| * interpreter/Interpreter.cpp: |
| (JSC::appendSourceToError): |
| (JSC::Interpreter::tryCacheGetByID): |
| (JSC::Interpreter::privateExecute): |
| * jit/JITStubs.cpp: |
| (JSC::JITThunks::tryCacheGetByID): |
| (JSC::DEFINE_STUB_FUNCTION): |
| * runtime/BatchedTransitionOptimizer.h: |
| (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer): |
| * runtime/InternalFunction.cpp: |
| (JSC::InternalFunction::name): |
| (JSC::InternalFunction::displayName): |
| * runtime/JSActivation.cpp: |
| (JSC::JSActivation::getOwnPropertySlot): |
| * runtime/JSFunction.cpp: |
| (JSC::JSFunction::name): |
| (JSC::JSFunction::displayName): |
| (JSC::JSFunction::getOwnPropertySlot): |
| * runtime/JSGlobalObject.cpp: |
| (JSC::JSGlobalObject::putWithAttributes): |
| (JSC::JSGlobalObject::reset): |
| (JSC::JSGlobalObject::resetPrototype): |
| * runtime/JSGlobalObject.h: |
| * runtime/JSObject.cpp: |
| (JSC::JSObject::put): |
| (JSC::JSObject::deleteProperty): |
| (JSC::JSObject::defineGetter): |
| (JSC::JSObject::defineSetter): |
| (JSC::JSObject::lookupGetter): |
| (JSC::JSObject::lookupSetter): |
| (JSC::JSObject::getPropertySpecificValue): |
| (JSC::JSObject::getOwnPropertyNames): |
| (JSC::JSObject::seal): |
| (JSC::JSObject::freeze): |
| (JSC::JSObject::preventExtensions): |
| (JSC::JSObject::removeDirect): |
| (JSC::JSObject::getOwnPropertyDescriptor): |
| (JSC::JSObject::defineOwnProperty): |
| * runtime/JSObject.h: |
| (JSC::JSObject::getDirect): |
| (JSC::JSObject::getDirectLocation): |
| (JSC::JSObject::isSealed): |
| (JSC::JSObject::isFrozen): |
| (JSC::JSObject::setPrototypeWithCycleCheck): |
| (JSC::JSObject::setPrototype): |
| (JSC::JSObject::inlineGetOwnPropertySlot): |
| (JSC::JSObject::putDirectInternal): |
| (JSC::JSObject::putDirectWithoutTransition): |
| (JSC::JSObject::putDirectFunctionWithoutTransition): |
| * runtime/Lookup.cpp: |
| (JSC::setUpStaticFunctionSlot): |
| * runtime/ObjectConstructor.cpp: |
| (JSC::objectConstructorCreate): |
| (JSC::objectConstructorSeal): |
| (JSC::objectConstructorFreeze): |
| (JSC::objectConstructorPreventExtensions): |
| (JSC::objectConstructorIsSealed): |
| (JSC::objectConstructorIsFrozen): |
| * runtime/Operations.h: |
| (JSC::normalizePrototypeChain): |
| * runtime/PropertyMapHashTable.h: |
| (JSC::PropertyMapEntry::PropertyMapEntry): |
| (JSC::PropertyTable::PropertyTable): |
| (JSC::PropertyTable::copy): |
| * runtime/Structure.cpp: |
| (JSC::Structure::materializePropertyMap): |
| (JSC::Structure::despecifyDictionaryFunction): |
| (JSC::Structure::addPropertyTransition): |
| (JSC::Structure::removePropertyTransition): |
| (JSC::Structure::changePrototypeTransition): |
| (JSC::Structure::despecifyFunctionTransition): |
| (JSC::Structure::getterSetterTransition): |
| (JSC::Structure::toDictionaryTransition): |
| (JSC::Structure::toCacheableDictionaryTransition): |
| (JSC::Structure::toUncacheableDictionaryTransition): |
| (JSC::Structure::sealTransition): |
| (JSC::Structure::freezeTransition): |
| (JSC::Structure::preventExtensionsTransition): |
| (JSC::Structure::isSealed): |
| (JSC::Structure::isFrozen): |
| (JSC::Structure::addPropertyWithoutTransition): |
| (JSC::Structure::removePropertyWithoutTransition): |
| (JSC::Structure::copyPropertyTable): |
| (JSC::Structure::get): |
| (JSC::Structure::despecifyFunction): |
| (JSC::Structure::despecifyAllFunctions): |
| (JSC::Structure::put): |
| (JSC::Structure::getPropertyNames): |
| * runtime/Structure.h: |
| (JSC::Structure::get): |
| (JSC::Structure::materializePropertyMapIfNecessary): |
| |
| 2011-04-13 Paul Knight <pknight@apple.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| BACKTRACE() macro should check for Debug configuration in macro, not WTFReportBacktrace definition |
| https://bugs.webkit.org/show_bug.cgi?id=58405 |
| |
| The BACKTRACE() macro requires JavaScriptCore be built with a Debug |
| configuration in order for it to be enabled. Move the NDEBUG check to |
| the header so it will be enabled when the calling framework or |
| application is built with a Debug configuration, similar to how |
| ASSERT() and friends work. |
| |
| * wtf/Assertions.cpp: |
| * wtf/Assertions.h: |
| |
| 2011-04-12 Ben Taylor <bentaylor.solx86@gmail.com> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| https://bugs.webkit.org/show_bug.cgi?id=58131 |
| |
| Provide a workaround for an obscure Studio 12 compiler bug, which |
| couldn't call src->~T() on a const T *src. |
| |
| * wtf/Vector.h: |
| |
| 2011-04-12 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| https://bugs.webkit.org/show_bug.cgi?id=58395 |
| Exceptions thrown from property getters called from Array prototype functions can be missed |
| |
| This is caught by an ASSERT in the top of Interpreter::executeCall. |
| Check for exceptions after accessing properties that could be getters. |
| |
| * runtime/ArrayPrototype.cpp: |
| (JSC::arrayProtoFuncSort): |
| (JSC::arrayProtoFuncFilter): |
| (JSC::arrayProtoFuncMap): |
| (JSC::arrayProtoFuncEvery): |
| (JSC::arrayProtoFuncForEach): |
| (JSC::arrayProtoFuncSome): |
| (JSC::arrayProtoFuncReduce): |
| (JSC::arrayProtoFuncReduceRight): |
| - Add exception checks. |
| |
| 2011-04-12 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Make API callback objects use weak handles to run their finalizers |
| https://bugs.webkit.org/show_bug.cgi?id=58389 |
| |
| Make the API object's private data struct act as a finalizer for |
| an api object if the callback object has a API defined finalizer. |
| |
| * API/JSCallbackObject.cpp: |
| (JSC::JSCallbackObjectData::finalize): |
| * API/JSCallbackObject.h: |
| * API/JSCallbackObjectFunctions.h: |
| (JSC::::init): |
| * heap/Handle.h: |
| |
| 2011-04-12 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Cleaned up hash traits, and added hash traits for handles |
| https://bugs.webkit.org/show_bug.cgi?id=58381 |
| |
| * heap/Handle.h: |
| (JSC::HandleBase::swap): |
| (JSC::Handle::Handle): |
| (JSC::Handle::swap): Implemented swap, so we can rehash efficiently, and |
| without creating new handles (which is not allowed during handle finalization). |
| |
| * heap/Strong.h: |
| (JSC::Strong::swap): Use new SimpleClassHashTraits to avoid duplication. |
| |
| * heap/Weak.h: |
| (JSC::Weak::isHashTableDeletedValue): |
| (JSC::Weak::Weak): |
| (JSC::Weak::swap): |
| (JSC::Weak::hashTableDeletedValue): Ditto. |
| |
| * wtf/HashTraits.h: |
| (WTF::SimpleClassHashTraits::constructDeletedValue): |
| (WTF::SimpleClassHashTraits::isDeletedValue): Added SimpleClassHashTraits, |
| which are analogous to SimpleClassVectorTraits, since they are used in a |
| bunch of places. |
| |
| * wtf/RetainPtr.h: Use new SimpleClassHashTraits to avoid duplication. |
| |
| * wtf/text/StringHash.h: Use new SimpleClassHashTraits to avoid duplication. |
| |
| 2011-04-12 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| Cleaned up some Vector traits, and added missing Vector traits for handles |
| https://bugs.webkit.org/show_bug.cgi?id=58372 |
| |
| * heap/Local.h: Inherit from SimpleClassVectorTraits to avoid duplication. |
| |
| * heap/Strong.h: Ditto. |
| |
| * heap/Weak.h: Ditto. |
| |
| * parser/JSParser.cpp: Fixed a traits error. No test case because this |
| particular trait is not currently exercised by the parser. |
| |
| * runtime/UString.h: No need to override canInitializeWithMemset, since |
| our base class sets it to true. |
| |
| * wtf/VectorTraits.h: Inherit from VectorTraitsBase to avoid duplication. |
| |
| * wtf/text/WTFString.h: No need to override canInitializeWithMemset, since |
| our base class sets it to true. |
| |
| 2011-04-12 Thouraya ANDOLSI <thouraya.andolsi@st.com> |
| |
| Reviewed by Eric Seidel. |
| |
| [Qt] Enable JIT build for SH4 platforms. |
| https://bugs.webkit.org/show_bug.cgi?id=58317 |
| enable JIT build for QT backend for SH4 platforms. |
| |
| * JavaScriptCore.pro: |
| * wtf/Platform.h: |
| |
| 2011-04-11 Ben Taylor <bentaylor.solx86@gmail.com> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| https://bugs.webkit.org/show_bug.cgi?id=58289 |
| |
| Fix compilation on Solaris/Studio 12 C++ in wtf/FastMalloc.cpp, |
| WTF::TCMalloc_PageHeap::runScavengerThread(void*) expected to return a value. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::TCMalloc_PageHeap::runScavengerThread): |
| |
| 2011-04-11 Mark Rowe <mrowe@apple.com> |
| |
| Fix the build. |
| |
| * JavaScriptCore.xcodeproj/project.pbxproj: Headers used outside of JavaScriptCore need to be marked as private. |
| |
| 2011-04-11 Anna Cavender <annacc@chromium.org> |
| |
| Reviewed by Eric Carlson. |
| |
| Setup ENABLE(TRACK) feature define |
| https://bugs.webkit.org/show_bug.cgi?id=53556 |
| |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2011-04-11 Geoffrey Garen <ggaren@apple.com> |
| |
| Try to fix a few builds. |
| |
| Updated a few more build configurations for file moves. |
| |
| * CMakeListsWinCE.txt: |
| |
| 2011-04-11 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| Bug 58263 - Use EncodedValueDescriptor on both JSVALUE32_64, JSVALUE64 |
| |
| The JSJITInterface already uses EncodedValueDescriptor to access the tag/payload |
| separately on JSVALUE64, even though EncodedValueDescriptor is not used in |
| JSVALUE64's implementation of JSValue. Remove the separate definition for m_ptr |
| on X86_64. Using the union allows us to remove a layer of makeImmediate()/ |
| immedaiteValue() methods. |
| |
| * dfg/DFGNonSpeculativeJIT.cpp: |
| (JSC::DFG::NonSpeculativeJIT::compile): |
| * dfg/DFGSpeculativeJIT.cpp: |
| (JSC::DFG::SpeculativeJIT::compile): |
| * jit/JITInlineMethods.h: |
| (JSC::JIT::emitTagAsBoolImmediate): |
| * jit/JITOpcodes.cpp: |
| (JSC::JIT::emit_op_not): |
| (JSC::JIT::emit_op_jeq_null): |
| (JSC::JIT::emit_op_jneq_null): |
| (JSC::JIT::emit_op_get_pnames): |
| (JSC::JIT::emit_op_eq_null): |
| (JSC::JIT::emit_op_neq_null): |
| (JSC::JIT::emitSlow_op_not): |
| * runtime/JSCell.h: |
| * runtime/JSValue.h: |
| * runtime/JSValueInlineMethods.h: |
| (JSC::JSValue::encode): |
| (JSC::JSValue::decode): |
| (JSC::JSValue::operator==): |
| (JSC::JSValue::operator!=): |
| (JSC::JSValue::JSValue): |
| (JSC::JSValue::operator bool): |
| (JSC::JSValue::asInt32): |
| (JSC::JSValue::isUndefinedOrNull): |
| (JSC::JSValue::isBoolean): |
| (JSC::JSValue::isCell): |
| (JSC::JSValue::isInt32): |
| (JSC::JSValue::asDouble): |
| (JSC::JSValue::isNumber): |
| (JSC::JSValue::asCell): |
| |
| 2011-04-11 Geoffrey Garen <ggaren@apple.com> |
| |
| Try to fix a few builds. |
| |
| Updated a few more build configurations for file moves. |
| |
| * CMakeListsEfl.txt: |
| * wscript: |
| |
| 2011-04-11 Geoffrey Garen <ggaren@apple.com> |
| |
| Build fix: Updated a file name. |
| |
| * CMakeLists.txt: |
| |
| 2011-04-11 Geoffrey Garen <ggaren@apple.com> |
| |
| Rubber-stamped by Sam Weinig. |
| |
| Moved remaining heap implementation files to the heap folder. |
| |
| * Android.mk: |
| * CMakeLists.txt: |
| * GNUmakefile.list.am: |
| * JavaScriptCore.gypi: |
| * JavaScriptCore.pro: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| * heap/ConservativeRoots.cpp: Copied from runtime/ConservativeSet.cpp. |
| * heap/ConservativeRoots.h: Copied from runtime/ConservativeSet.h. |
| * heap/Handle.h: |
| * heap/Heap.cpp: |
| * heap/MachineStackMarker.cpp: Copied from runtime/MachineStackMarker.cpp. |
| * heap/MachineStackMarker.h: Copied from runtime/MachineStackMarker.h. |
| * heap/MarkStack.cpp: Copied from runtime/MarkStack.cpp. |
| * heap/MarkStack.h: Copied from runtime/MarkStack.h. |
| * heap/MarkStackPosix.cpp: Copied from runtime/MarkStackPosix.cpp. |
| * heap/MarkStackSymbian.cpp: Copied from runtime/MarkStackSymbian.cpp. |
| * heap/MarkStackWin.cpp: Copied from runtime/MarkStackWin.cpp. |
| * heap/MarkedBlock.cpp: Copied from runtime/MarkedBlock.cpp. |
| * heap/MarkedBlock.h: Copied from runtime/MarkedBlock.h. |
| * heap/MarkedSpace.cpp: Copied from runtime/MarkedSpace.cpp. |
| * heap/MarkedSpace.h: Copied from runtime/MarkedSpace.h. |
| * interpreter/RegisterFile.cpp: |
| * runtime/ConservativeSet.cpp: Removed. |
| * runtime/ConservativeSet.h: Removed. |
| * runtime/MachineStackMarker.cpp: Removed. |
| * runtime/MachineStackMarker.h: Removed. |
| * runtime/MarkStack.cpp: Removed. |
| * runtime/MarkStack.h: Removed. |
| * runtime/MarkStackPosix.cpp: Removed. |
| * runtime/MarkStackSymbian.cpp: Removed. |
| * runtime/MarkStackWin.cpp: Removed. |
| * runtime/MarkedBlock.cpp: Removed. |
| * runtime/MarkedBlock.h: Removed. |
| * runtime/MarkedSpace.cpp: Removed. |
| * runtime/MarkedSpace.h: Removed. |
| |
| 2011-04-11 Gavin Barraclough <barraclough@apple.com> |
| |
| Windows build fix. |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
| |
| 2011-04-09 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| Bug 58198 - Clean up JSValue implementation for JSVALUE64 |
| |
| Remove JSNumberCell, JSImmediate, unify some methods between JSVALUE32_64/JSVALUE64 |
| |
| JSNumberCell.h largely just contained the constructors for JSValue on JSVALUE64, |
| which should not have been here. JSImmediate mostly contained uncalled methods, |
| along with the internal implementation of the JSValue constructors split unnecessarily |
| across a number of layers of function calls. These could largely be merged back |
| together. Many methods and constructors from JSVALUE32_64 and JSVALUE64 can by unified. |
| |
| The .cpp files were empty. |
| |
| Moving all these methods into JSValue.h seems to be a repro measurable regression, so |
| I have kept these methods in a separate JSValueInlineMethods.h. Adding the 64-bit tag |
| values as static const members of JSValue also measures as a repro regression, so I |
| have made these #defines. |
| |
| * Android.mk: |
| * CMakeLists.txt: |
| * GNUmakefile.list.am: |
| * JavaScriptCore.exp: |
| * JavaScriptCore.gypi: |
| * JavaScriptCore.pro: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| - Removed JSImmediate.h, JSNumberCell.h. |
| * bytecompiler/BytecodeGenerator.cpp: |
| (JSC::BytecodeGenerator::emitLoad): |
| - Removed class JSImmediate. |
| * dfg/DFGNonSpeculativeJIT.cpp: |
| (JSC::DFG::NonSpeculativeJIT::compile): |
| - Removed class JSImmediate. |
| * dfg/DFGSpeculativeJIT.cpp: |
| (JSC::DFG::SpeculativeJIT::compile): |
| - Removed class JSImmediate. |
| * jit/JITArithmetic.cpp: |
| (JSC::JIT::compileBinaryArithOpSlowCase): |
| - Removed class JSImmediate. |
| * jit/JITInlineMethods.h: |
| (JSC::JIT::emitJumpIfJSCell): |
| (JSC::JIT::emitJumpIfNotJSCell): |
| (JSC::JIT::emitJumpIfImmediateInteger): |
| (JSC::JIT::emitJumpIfNotImmediateInteger): |
| (JSC::JIT::emitFastArithDeTagImmediate): |
| (JSC::JIT::emitFastArithDeTagImmediateJumpIfZero): |
| (JSC::JIT::emitFastArithReTagImmediate): |
| (JSC::JIT::emitTagAsBoolImmediate): |
| - Removed class JSImmediate. |
| * jit/JITOpcodes.cpp: |
| (JSC::JIT::emit_op_not): |
| (JSC::JIT::emit_op_jeq_null): |
| (JSC::JIT::emit_op_jneq_null): |
| (JSC::JIT::emit_op_get_pnames): |
| (JSC::JIT::emit_op_eq_null): |
| (JSC::JIT::emit_op_neq_null): |
| (JSC::JIT::emitSlow_op_not): |
| - Removed class JSImmediate. |
| * jit/JSInterfaceJIT.h: |
| - Removed class JSImmediate. |
| * runtime/JSCell.h: |
| - Removed JSImmediate.h, JSNumberCell.h. |
| * runtime/JSImmediate.cpp: Removed. |
| * runtime/JSImmediate.h: Removed. |
| * runtime/JSNumberCell.cpp: Removed. |
| * runtime/JSNumberCell.h: Removed. |
| - Removed. |
| * runtime/JSObject.h: |
| - Removed JSImmediate.h, JSNumberCell.h. |
| * runtime/JSString.h: |
| - Removed JSImmediate.h, JSNumberCell.h. |
| * runtime/JSValue.h: |
| - Added tags for JSVALUE64, moved out some JSVALUE32_64 methods, unified with JSVALUE64. |
| * runtime/JSValueInlineMethods.h: Added. |
| (JSC::JSValue::toInt32): |
| (JSC::JSValue::toUInt32): |
| (JSC::JSValue::isUInt32): |
| (JSC::JSValue::asUInt32): |
| (JSC::JSValue::uncheckedGetNumber): |
| (JSC::JSValue::toJSNumber): |
| (JSC::jsNaN): |
| (JSC::JSValue::getNumber): |
| (JSC::JSValue::getBoolean): |
| (JSC::JSValue::JSValue): |
| (JSC::JSValue::encode): |
| (JSC::JSValue::decode): |
| (JSC::JSValue::operator bool): |
| (JSC::JSValue::operator==): |
| (JSC::JSValue::operator!=): |
| (JSC::JSValue::isUndefined): |
| (JSC::JSValue::isNull): |
| (JSC::JSValue::isUndefinedOrNull): |
| (JSC::JSValue::isCell): |
| (JSC::JSValue::isInt32): |
| (JSC::JSValue::isDouble): |
| (JSC::JSValue::isTrue): |
| (JSC::JSValue::isFalse): |
| (JSC::JSValue::tag): |
| (JSC::JSValue::payload): |
| (JSC::JSValue::asInt32): |
| (JSC::JSValue::asDouble): |
| (JSC::JSValue::asCell): |
| (JSC::JSValue::isNumber): |
| (JSC::JSValue::isBoolean): |
| (JSC::JSValue::makeImmediate): |
| (JSC::JSValue::immediateValue): |
| (JSC::reinterpretDoubleToIntptr): |
| (JSC::reinterpretIntptrToDouble): |
| - Methods moved here from JSImmediate.h/JSNumberCell.h/JSValue.h. |
| * runtime/Operations.h: |
| - Removed JSImmediate.h, JSNumberCell.h. |
| * wtf/StdLibExtras.h: |
| - Export bitwise_cast. |
| |
| 2011-04-11 Thouraya ANDOLSI <thouraya.andolsi@st.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| SH4 JIT SUPPORT. |
| https://bugs.webkit.org/show_bug.cgi?id=44329 |
| |
| Add JIT remaining part for SH4 platforms. |
| |
| * assembler/MacroAssemblerSH4.h: |
| * jit/JIT.h: |
| * jit/JITInlineMethods.h: |
| * jit/JITOpcodes32_64.cpp: |
| * jit/JITPropertyAccess32_64.cpp: |
| * jit/JITStubs.cpp: |
| * jit/JITStubs.h: |
| * jit/JSInterfaceJIT.h: |
| |
| 2011-04-10 Geoffrey Garen <ggaren@apple.com> |
| |
| Rubber-stamped by Beth Dakin. |
| |
| Moved Heap.h and Heap.cpp to the heap folder, because anything less |
| would be uncivilized. |
| |
| * Android.mk: |
| * CMakeLists.txt: |
| * GNUmakefile.list.am: |
| * JavaScriptCore.gypi: |
| * JavaScriptCore.pro: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| * heap/Heap.cpp: Copied from JavaScriptCore/runtime/Heap.cpp. |
| * heap/Heap.h: Copied from JavaScriptCore/runtime/Heap.h. |
| * runtime/Heap.cpp: Removed. |
| * runtime/Heap.h: Removed. |
| |
| 2011-04-10 Patrick Gansterer <paroga@webkit.org> |
| |
| Reviewed by Darin Adler. |
| |
| Remove duplicated code from AtomicString::fromUTF8() |
| https://bugs.webkit.org/show_bug.cgi?id=53711 |
| |
| * JavaScriptCore.exp: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
| * wtf/text/AtomicString.cpp: |
| (WTF::AtomicString::fromUTF8Internal): |
| * wtf/text/AtomicString.h: |
| (WTF::AtomicString::fromUTF8): |
| * wtf/unicode/UTF8.cpp: |
| (WTF::Unicode::calculateStringHashAndLengthFromUTF8): |
| * wtf/unicode/UTF8.h: |
| |
| 2011-04-10 Maciej Stachowiak <mjs@apple.com> |
| |
| Not reviewed. |
| |
| Fix build (at least on Lion) by adding some newish header files to |
| PrivateHeaders. |
| |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| |
| 2011-04-09 Geoffrey Garen <ggaren@apple.com> |
| |
| Not reviewed. |
| |
| Try recommitting some things svn left out of its last commit. |
| |
| * heap/Handle.h: |
| (JSC::HandleBase::operator!): |
| (JSC::HandleBase::HandleBase): |
| (JSC::HandleBase::slot): |
| (JSC::HandleBase::setSlot): |
| (JSC::Handle::Handle): |
| * heap/HandleHeap.cpp: |
| (JSC::HandleHeap::markWeakHandles): |
| (JSC::HandleHeap::finalizeWeakHandles): |
| (JSC::HandleHeap::isValidWeakNode): |
| * heap/HandleHeap.h: |
| (JSC::HandleHeap::globalData): |
| |
| 2011-04-08 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| A few heap-related renames and file moves. |
| |
| WeakGCPtr<T> => Weak<T> |
| Global<T> => Strong<T> |
| collector/ => heap/ |
| collector/* => heap/* |
| runtime/WeakGCPtr.h => heap/Weak.h |
| |
| (Eventually, even more files should move into the heap directory. Like |
| Heap.h and Heap.cpp, for example.) |
| |
| * API/JSClassRef.h: |
| * CMakeLists.txt: |
| * GNUmakefile.am: |
| * GNUmakefile.list.am: |
| * JavaScriptCore.gypi: |
| * JavaScriptCore.pri: |
| * JavaScriptCore.pro: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: |
| * JavaScriptCore.vcproj/JavaScriptCore/copy-files.cmd: |
| * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| * bytecode/SamplingTool.h: |
| * bytecompiler/BytecodeGenerator.h: |
| * collector: Removed. |
| * collector/handles: Removed. |
| * collector/handles/Global.h: Removed. |
| * collector/handles/Handle.h: Removed. |
| * collector/handles/HandleHeap.cpp: Removed. |
| * collector/handles/HandleHeap.h: Removed. |
| * collector/handles/HandleStack.cpp: Removed. |
| * collector/handles/HandleStack.h: Removed. |
| * collector/handles/Local.h: Removed. |
| * collector/handles/LocalScope.h: Removed. |
| * heap: Copied from collector. |
| * heap/Handle.h: Copied from collector/handles/Handle.h. |
| * heap/HandleHeap.cpp: Copied from collector/handles/HandleHeap.cpp. |
| * heap/HandleHeap.h: Copied from collector/handles/HandleHeap.h. |
| * heap/HandleStack.cpp: Copied from collector/handles/HandleStack.cpp. |
| * heap/HandleStack.h: Copied from collector/handles/HandleStack.h. |
| * heap/Local.h: Copied from collector/handles/Local.h. |
| * heap/LocalScope.h: Copied from collector/handles/LocalScope.h. |
| * heap/Strong.h: Copied from collector/handles/Global.h. |
| (JSC::Strong::Strong): |
| (JSC::Strong::~Strong): |
| (JSC::Strong::operator=): |
| * heap/Weak.h: Copied from runtime/WeakGCPtr.h. |
| (JSC::Weak::Weak): |
| (JSC::Weak::~Weak): |
| * heap/handles: Removed. |
| * interpreter/RegisterFile.h: |
| * jit/JITStubs.cpp: |
| (JSC::JITThunks::hostFunctionStub): |
| * jit/JITStubs.h: |
| * runtime/Structure.h: |
| * runtime/WeakGCPtr.h: Removed. |
| |
| 2011-04-08 Alpha Lam <hclam@chromium.org> |
| |
| Unreviewed, rolling out r83335. |
| http://trac.webkit.org/changeset/83335 |
| https://bugs.webkit.org/show_bug.cgi?id=53556 |
| |
| GTK and QT bots are broken |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2011-04-08 Gavin Barraclough <barraclough@apple.com> |
| |
| Ooops, typo, build fix. |
| |
| * dfg/DFGByteCodeParser.cpp: |
| (JSC::DFG::ByteCodeParser::parse): |
| |
| 2011-04-08 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Bug 58154 - Add support for comparison operators to the DFG JIT. |
| |
| Add support for <, <=, ==, ===, and also !. Add support for all corresponding |
| bytecode ops, including the not- and -null forms. Initially add functionally |
| correct support, we'll revisit the performance. |
| |
| * dfg/DFGByteCodeParser.cpp: |
| (JSC::DFG::ByteCodeParser::ByteCodeParser): |
| (JSC::DFG::ByteCodeParser::constantNull): |
| (JSC::DFG::ByteCodeParser::parse): |
| - Add support for parsing of bytecode opcodes, |
| * dfg/DFGJITCodeGenerator.h: |
| (JSC::DFG::JITCodeGenerator::callOperation): |
| - Add new operation call types, return bool values. |
| * dfg/DFGNode.h: |
| - Add new node types. |
| * dfg/DFGNonSpeculativeJIT.cpp: |
| (JSC::DFG::NonSpeculativeJIT::compile): |
| - Add code generation for new nodes. |
| * dfg/DFGOperations.cpp: |
| (JSC::DFG::operationCompareLess): |
| (JSC::DFG::operationCompareLessEq): |
| (JSC::DFG::operationCompareEq): |
| (JSC::DFG::operationCompareStrictEq): |
| (JSC::DFG::dfgConvertJSValueToBoolean): |
| * dfg/DFGOperations.h: |
| - Add operation callbacks to implement new ops. |
| * dfg/DFGSpeculativeJIT.cpp: |
| (JSC::DFG::SpeculativeJIT::compile): |
| - Add code generation for new nodes. |
| * jit/JITOpcodes.cpp: |
| (JSC::JIT::privateCompileCTIMachineTrampolines): |
| - Switched to a simpler <0 check, rather than relying on an internal value in JSImmediate. |
| * jit/JITPropertyAccess.cpp: |
| (JSC::JIT::privateCompilePatchGetArrayLength): |
| - Switched to a simpler <0 check, rather than relying on an internal value in JSImmediate. |
| * runtime/JSImmediate.h: |
| - Make tag values public, rather than relying on a friend - this matches JSVALUE32_64. |
| |
| 2011-04-07 Anna Cavender <annacc@chromium.org> |
| |
| Reviewed by Eric Carlson. |
| |
| Setup ENABLE(TRACK) feature define |
| https://bugs.webkit.org/show_bug.cgi?id=53556 |
| |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2011-04-07 Balazs Kelemen <kbalazs@webkit.org> |
| |
| Reviewed by Kenneth Rohde Christiansen. |
| |
| [WK2][Qt][GTK] Introduce common use flag for the shared UNIX domain socket IPC implementation |
| https://bugs.webkit.org/show_bug.cgi?id=58030 |
| |
| * wtf/Platform.h: Introduce USE(UNIX_DOMAIN_SOCKETS) for WebKit2. |
| |
| 2011-04-08 Adam Roben <aroben@apple.com> |
| |
| Clean build fix |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/copy-files.cmd: Don't try to delete directories that |
| don't exist. Also switched from del /s to rmdir /s, which has the benefit of deleting the |
| directory itself in addition to the files it contains. |
| |
| 2011-04-07 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Maciej Stachowiak. |
| |
| Some Handle<T> cleanup |
| https://bugs.webkit.org/show_bug.cgi?id=58109 |
| |
| * bytecode/SamplingTool.h: Sorted alphabetically because that's the |
| WebKit style. Added a Global.h #include that was previously missing |
| but harmless. |
| |
| * collector/handles/Global.h: |
| (JSC::Global::Global): Added a null constructor. No need for a special |
| tag, and the tag is incompatible with some data structures. |
| |
| (JSC::Global::isHashTableDeletedValue): |
| (JSC::Global::~Global): |
| (JSC::Global::set): |
| (JSC::Global::operator=): |
| (JSC::Global::clear): |
| (JSC::Global::hashTableDeletedValue): Reordered constructors to be near |
| each other. |
| |
| (JSC::Global::setWithWriteBarrier): Renamed internalSet to |
| setWithWriteBarrier for clarity, and funneled more code into using set |
| and setWithWriteBarrier to reduce duplication. |
| |
| * collector/handles/Handle.h: |
| (JSC::HandleBase::operator!): |
| (JSC::HandleBase::HandleBase): Removed isEmpty(), since we already have |
| boolean and ! operators. |
| |
| (JSC::HandleBase::slot): |
| (JSC::HandleBase::setSlot): |
| (JSC::Handle::Handle): Added general support for null Handles. This was |
| previously outlawed by ASSERTs, but our code has grown to support and |
| rely on null Handles. |
| |
| * collector/handles/HandleHeap.cpp: |
| (JSC::HandleHeap::markWeakHandles): |
| (JSC::HandleHeap::finalizeWeakHandles): |
| (JSC::HandleHeap::isValidWeakNode): Migrated from isValidWeakHandle, |
| and beefed this up a bit. |
| |
| * collector/handles/HandleHeap.h: |
| (JSC::HandleHeap::globalData): Added accessor, used by some new set functions. |
| |
| * collector/handles/Local.h: Moved hash traits to the bottom of the file, |
| since this file is about the Local class, not the traits. |
| |
| (JSC::::Local): Updated for removal of invalidate(). |
| |
| (JSC::::operator): Deployed "using" to avoid a lot of this-> |
| template funny business. |
| |
| (JSC::::setWithSlotCheck): Renamed from internalSet, more specific now. |
| |
| * interpreter/RegisterFile.h: |
| (JSC::RegisterFile::RegisterFile): Updated to use null constructor. |
| |
| * jit/JITStubs.cpp: |
| (JSC::JITThunks::hostFunctionStub): |
| |
| * runtime/JSPropertyNameIterator.h: |
| (JSC::Structure::setEnumerationCache): |
| * runtime/Structure.h: Removed clearEnumerationCache |
| because it was an unused holdover from when the enumeration cache was |
| not a handle. |
| |
| * runtime/WeakGCMap.h: |
| (JSC::WeakGCMap::set): Finish initializing our handle before putting it |
| in the table. This seemed more logical, and at one point was required |
| to avoid triggering an ASSERT. |
| |
| * runtime/WeakGCPtr.h: Inherit from Handle instead of rolling our own |
| handle-like behavior, to avoid duplication. |
| |
| (JSC::WeakGCPtr::WeakGCPtr): |
| (JSC::WeakGCPtr::~WeakGCPtr): |
| (JSC::WeakGCPtr::get): |
| (JSC::WeakGCPtr::clear): |
| (JSC::WeakGCPtr::set): |
| (JSC::WeakGCPtr::setWithWriteBarrier): Removed duplicate code and |
| standardized on Handle idioms. |
| |
| 2011-04-07 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Martin Robinson. |
| |
| Refactor Gtk build system to separate list of files |
| https://bugs.webkit.org/show_bug.cgi?id=58090 |
| |
| This is the first step towards generating part of the GTK build system |
| using GYP. In the first iteration, our plan is to just generate the |
| list of files. This patch is the first step, which is to separate out |
| the part of JavaScriptCore build system that we intend to generate from |
| the rest of the build system. |
| |
| * GNUmakefile.am: |
| * GNUmakefile.list.am: Added. |
| |
| 2011-04-07 Zoltan Herczeg <zherczeg@webkit.org> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Mapping booleans the same way as integers |
| https://bugs.webkit.org/show_bug.cgi?id=56913 |
| |
| Instead of having a seperate tag field for booleans, |
| the logical values are stored in the payload field |
| (for JSValue32_64 representation). |
| |
| 1.007x speedup on SunSpider. |
| |
| * jit/JIT.h: |
| * jit/JITInlineMethods.h: |
| (JSC::JIT::emitStoreBool): |
| * jit/JITOpcodes32_64.cpp: |
| (JSC::JIT::emit_op_instanceof): |
| (JSC::JIT::emit_op_not): |
| (JSC::JIT::emit_op_jfalse): |
| (JSC::JIT::emitSlow_op_jfalse): |
| (JSC::JIT::emit_op_jtrue): |
| (JSC::JIT::emitSlow_op_jtrue): |
| (JSC::JIT::emit_op_jeq_null): |
| (JSC::JIT::emit_op_jneq_null): |
| (JSC::JIT::emit_op_eq): |
| (JSC::JIT::emitSlow_op_eq): |
| (JSC::JIT::emit_op_neq): |
| (JSC::JIT::emitSlow_op_neq): |
| (JSC::JIT::compileOpStrictEq): |
| (JSC::JIT::emit_op_eq_null): |
| (JSC::JIT::emit_op_neq_null): |
| * jit/JSInterfaceJIT.h: |
| * runtime/JSValue.h: |
| (JSC::JSValue::JSValue): |
| (JSC::JSValue::isTrue): |
| (JSC::JSValue::isFalse): |
| (JSC::JSValue::getBoolean): |
| |
| 2011-04-07 Eric Seidel <eric@webkit.org> |
| |
| Reviewed by Adam Barth. |
| |
| Add stub support for generating Gtk build system from gyp |
| https://bugs.webkit.org/show_bug.cgi?id=58086 |
| |
| This does not produce a buildable JavaScriptCore, but it |
| does allow running gyp/configure --port=gtk and having |
| it generate a gtk.Makefile which we can use for testing |
| the rest of the plumbing. |
| |
| * gyp/gtk.gyp: Added. |
| |
| 2011-04-07 Andrew Scherkus <scherkus@chromium.org> |
| |
| Revert ENABLE_TRACK patch due to compile failures. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2011-04-07 Adam Barth <abarth@webkit.org> |
| |
| Fix whitespace in GNUmakefile.am. |
| |
| * GNUmakefile.am: |
| |
| 2011-04-07 Gavin Barraclough <barraclough@apple.com> |
| |
| Fix a couple of typos in comments that Darin spotted. |
| |
| * jit/JITOpcodes.cpp: |
| (JSC::JIT::emit_op_not): |
| * runtime/JSImmediate.h: |
| |
| 2011-04-06 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Geoff Garen. |
| Bug 58057 - Store boolean payload in low bit of JSImmediate |
| |
| And remove some uncalled functions from JSImmediate.h |
| |
| * jit/JITInlineMethods.h: |
| (JSC::JIT::emitTagAsBoolImmediate): |
| * jit/JITOpcodes.cpp: |
| (JSC::JIT::emit_op_not): |
| * runtime/JSImmediate.h: |
| (JSC::JSImmediate::makeInt): |
| (JSC::JSImmediate::makeBool): |
| (JSC::JSImmediate::intValue): |
| (JSC::JSImmediate::boolValue): |
| (JSC::JSImmediate::asInt32): |
| (JSC::JSImmediate::toDouble): |
| (JSC::JSValue::asInt32): |
| (JSC::JSValue::isUInt32): |
| (JSC::JSValue::asUInt32): |
| |
| 2011-04-07 Liang Qi <liang.qi@nokia.com> |
| |
| Reviewed by Laszlo Gombos. |
| |
| [Qt][Symbian] Enable webkit build with GCCE on Symbian. |
| https://bugs.webkit.org/show_bug.cgi?id=57841 |
| |
| * wtf/MathExtras.h: GCCE compiler doesn't support those std static functions. |
| |
| 2011-04-06 Dai Mikurube <dmikurube@chromium.org> |
| |
| Reviewed by David Levin. |
| |
| Add QUOTA build flag for unified quota API |
| https://bugs.webkit.org/show_bug.cgi?id=57918 |
| |
| * Configurations/FeatureDefines.xcconfig: Added QUOTA build flag |
| |
| 2011-04-06 Kevin Ollivier <kevino@theolliviers.com> |
| |
| Reviewed by Darin Adler. |
| |
| Make sure JS_EXPORT_PRIVATE is an empty define when we aren't using the export macros. |
| |
| https://bugs.webkit.org/show_bug.cgi?id=27551 |
| |
| * config.h: |
| |
| 2011-04-06 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Stop JSObject::isUsingInlineStorage() from using the structure |
| https://bugs.webkit.org/show_bug.cgi?id=57986 |
| |
| Make the isUsingInlineStorage() implementation just look at |
| whether the property storage is inside the object. |
| |
| * runtime/JSObject.h: |
| (JSC::JSObject::isUsingInlineStorage): |
| (JSC::JSObject::JSObject): |
| |
| 2011-04-06 Gavin Barraclough <barraclough@apple.com> |
| |
| Rubber stamped by Geoff Garen. |
| |
| Update comments documenting JSVALUE64/JSVALUE32_64 JSValue representations. |
| |
| * runtime/JSImmediate.h: |
| * runtime/JSValue.h: |
| |
| 2011-04-06 Lucas De Marchi <lucas.demarchi@profusion.mobi> |
| |
| cmake: Fix build for ARMv7 |
| |
| * CMakeLists.txt: add missing file. |
| |
| 2011-04-06 Liang Qi <liang.qi@nokia.com> |
| |
| Reviewed by Benjamin Poulain. |
| |
| Correct a include file name. |
| https://bugs.webkit.org/show_bug.cgi?id=57839 |
| |
| * wtf/PageAllocatorSymbian.h: It should be case sensitive. This fix |
| builds on Unix hosts. |
| |
| 2011-04-06 Adam Roben <aroben@apple.com> |
| |
| Build fix after r83056 |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/copy-files.cmd: Added property svn:executable. |
| |
| 2011-04-06 Adam Roben <aroben@apple.com> |
| |
| Move JavaScriptCoreGenerated's file-copying logic out to a new script |
| |
| Hopefully this will make it easier to modify this logic in the future. I also made the |
| script much quieter than the old logic, since it didn't seem helpful to see long lists of |
| filenames during the copying phase. |
| |
| If we like this new style, we could copy it for our other projects. |
| |
| Fixes <http://webkit.org/b/57950> JavaScriptCoreGenerated's file-copying logic is hard to |
| modify and noisy |
| |
| Reviewed by Steve Falkenburg. |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: Moved logic to copy |
| files from here... |
| * JavaScriptCore.vcproj/JavaScriptCore/copy-files.cmd: ...to here. (Added.) |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: Added copy-files.cmd |
| for convenience. |
| |
| 2011-04-05 Geoffrey Garen <ggaren@apple.com> |
| |
| Try to fix the Windows build. |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Who likes export files? I do! |
| |
| 2011-04-05 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Introduced the concept of opaque roots, in preparation for marking the DOM with them |
| https://bugs.webkit.org/show_bug.cgi?id=57903 |
| |
| * JavaScriptCore.exp: Who likes export files? I do! |
| |
| * collector/handles/HandleHeap.cpp: |
| (JSC::isValidWeakHandle): Factored out a helper function for ASSERTs. |
| |
| (JSC::WeakHandleOwner::~WeakHandleOwner): Moved from header to avoid |
| weak linkage problems. |
| |
| (JSC::WeakHandleOwner::isReachableFromOpaqueRoots): New callback. |
| Currently unused. |
| |
| (JSC::WeakHandleOwner::finalize): Switched from pure virtual to a |
| default empty implementation, since not all clients necessarily want |
| or need non-trivial finalizers. |
| |
| (JSC::HandleHeap::markWeakHandles): Split updateWeakHandles into two |
| passes. The first pass marks all reachable weak handles. The second pass |
| finalizes all unreachable weak handles. This must be two passes because |
| we don't know the set of finalizable weak handles until we're done |
| marking all weak handles. |
| |
| (JSC::HandleHeap::finalizeWeakHandles): Use new helper function. |
| |
| * collector/handles/HandleHeap.h: Ditto. |
| |
| * runtime/Heap.cpp: |
| (JSC::Heap::destroy): |
| (JSC::Heap::markRoots): |
| (JSC::Heap::reset): Split out handle marking from handle finalization. |
| |
| * runtime/MarkStack.cpp: |
| (JSC::MarkStack::reset): |
| * runtime/MarkStack.h: |
| (JSC::MarkStack::addOpaqueRoot): |
| (JSC::MarkStack::containsOpaqueRoot): |
| (JSC::MarkStack::opaqueRootCount): |
| (JSC::HeapRootMarker::markStack): New helper functions for managing the |
| set of opaque roots. |
| |
| * runtime/WeakGCMap.h: |
| (JSC::WeakGCMap::finalize): Renamed to match parent class declaration. |
| |
| 2011-04-05 Balazs Kelemen <kbalazs@webkit.org> |
| |
| Reviewed by Darin Adler. |
| |
| Build fix for YarrParser.h |
| https://bugs.webkit.org/show_bug.cgi?id=57822 |
| |
| * yarr/YarrParser.h: |
| (JSC::Yarr::Parser::CharacterClassParserDelegate::CharacterClassParserDelegate): |
| |
| 2011-04-05 Steve Falkenburg <sfalken@apple.com> |
| |
| Follow-up Windows build fix. |
| Don't skip react-to-vsprops-changes.py for all production builds, |
| only those initiated via JavaScriptCore.make. |
| |
| * JavaScriptCore.vcproj/JavaScriptCore.make: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: |
| |
| 2011-04-05 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Darin Adler. |
| |
| REGRESSION (r82849): 85,000+ JSC-related leaks seen on SnowLeopard Intel Leaks |
| https://bugs.webkit.org/show_bug.cgi?id=57857 |
| |
| Whoops, accidentally removed a deref(). |
| |
| * bytecode/StructureStubInfo.cpp: |
| (JSC::StructureStubInfo::deref): |
| |
| 2011-04-05 Steve Falkenburg <sfalken@apple.com> |
| |
| Windows build fix. |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: Add per-configuration vsprops files. |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedCommon.vsprops: Removed inheritance from common.vsprops. |
| Set production environment variable before calling make. |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedDebug.vsprops: Added. |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedDebugAll.vsprops: Added. |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedDebugCairoCFLite.vsprops: Added. |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedProduction.vsprops: Added. |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedRelease.vsprops: Added. |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedReleaseCairoCFLite.vsprops: Added. |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedReleasePGO.vsprops: Added. |
| |
| 2011-04-05 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Make caches window show more info about non-jsobject GC values |
| https://bugs.webkit.org/show_bug.cgi?id=57874 |
| |
| Add ClassInfo to the various internal JS types that currently |
| don't have any, and make the text for caches window show the |
| classname for non-JSObject instances. |
| |
| * runtime/Executable.cpp: |
| * runtime/Executable.h: |
| (JSC::ExecutableBase::createStructure): |
| (JSC::NativeExecutable::createStructure): |
| (JSC::NativeExecutable::NativeExecutable): |
| (JSC::EvalExecutable::createStructure): |
| (JSC::ProgramExecutable::createStructure): |
| (JSC::FunctionExecutable::createStructure): |
| * runtime/Heap.cpp: |
| (JSC::TypeCounter::typeName): |
| * runtime/JSGlobalData.cpp: |
| (JSC::JSGlobalData::JSGlobalData): |
| * runtime/JSGlobalData.h: |
| * runtime/ScopeChain.cpp: |
| * runtime/ScopeChain.h: |
| (JSC::ScopeChainNode::createStructure): |
| * runtime/StructureChain.cpp: |
| * runtime/StructureChain.h: |
| (JSC::StructureChain::createStructure): |
| |
| 2011-04-05 Nikolas Zimmermann <nzimmermann@rim.com> |
| |
| Reviewed by Andreas Kling. |
| |
| Cleanup StringConcatenate |
| https://bugs.webkit.org/show_bug.cgi?id=57836 |
| |
| Don't use PassRefPtr in local variables, properly store in RefPtrs and release on return. |
| Add a makeString() variant taking 9 arguments, needed by a follow-up patch. |
| |
| * wtf/text/StringConcatenate.h: |
| (WTF::tryMakeString): |
| (WTF::makeString): |
| |
| 2011-04-04 Sheriff Bot <webkit.review.bot@gmail.com> |
| |
| Unreviewed, rolling out r82876. |
| http://trac.webkit.org/changeset/82876 |
| https://bugs.webkit.org/show_bug.cgi?id=57816 |
| |
| Caused a lot of test crashes (Requested by tkent on #webkit). |
| |
| * JavaScriptCore.exp: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
| * wtf/FastMalloc.cpp: |
| (WTF::tryFastMalloc): |
| (WTF::fastMalloc): |
| (WTF::tryFastCalloc): |
| (WTF::fastCalloc): |
| (WTF::fastFree): |
| (WTF::tryFastRealloc): |
| (WTF::fastRealloc): |
| (WTF::fastMallocSize): |
| (WTF::TCMalloc_PageHeap::isScavengerSuspended): |
| (WTF::TCMalloc_PageHeap::scheduleScavenger): |
| (WTF::TCMalloc_PageHeap::suspendScavenger): |
| (WTF::TCMalloc_PageHeap::signalScavenger): |
| (WTF::TCMallocStats::malloc): |
| (WTF::TCMallocStats::free): |
| (WTF::TCMallocStats::fastCalloc): |
| (WTF::TCMallocStats::tryFastCalloc): |
| (WTF::TCMallocStats::calloc): |
| (WTF::TCMallocStats::fastRealloc): |
| (WTF::TCMallocStats::tryFastRealloc): |
| (WTF::TCMallocStats::realloc): |
| (WTF::TCMallocStats::fastMallocSize): |
| * wtf/FastMalloc.h: |
| (WTF::Internal::fastMallocMatchValidationType): |
| (WTF::Internal::fastMallocMatchValidationValue): |
| (WTF::Internal::setFastMallocMatchValidationType): |
| (WTF::fastMallocMatchValidateFree): |
| * wtf/Platform.h: |
| |
| 2011-04-04 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Antti Koivisto. |
| |
| Stop JSCell.h from including Structure.h |
| https://bugs.webkit.org/show_bug.cgi?id=57809 |
| |
| * runtime/GetterSetter.h: |
| * runtime/JSAPIValueWrapper.h: |
| * runtime/JSCell.h: |
| (JSC::JSCell::JSValue::toThisObject): |
| * runtime/JSString.h: |
| * runtime/ScopeChain.h: |
| * runtime/Structure.h: |
| (JSC::JSCell::isObject): |
| (JSC::JSCell::isString): |
| (JSC::JSCell::classInfo): |
| (JSC::JSCell::createDummyStructure): |
| (JSC::JSValue::needsThisConversion): |
| (JSC::MarkStack::internalAppend): |
| * runtime/StructureChain.h: |
| |
| 2011-04-04 Oliver Hunt <oliver@apple.com> |
| |
| Fix clang build. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::fastMalloc): |
| (WTF::fastCalloc): |
| (WTF::fastRealloc): |
| |
| 2011-04-04 Oliver Hunt <oliver@apple.com> |
| |
| Remove accidental change to Platform.h |
| |
| * wtf/Platform.h: |
| |
| 2011-04-04 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Fixed a weak-handle-related leak in RegisterFile |
| https://bugs.webkit.org/show_bug.cgi?id=57793 |
| |
| * interpreter/RegisterFile.cpp: Nixed leaky GlobalObjectNotifier. |
| * interpreter/RegisterFile.h: |
| (JSC::RegisterFile::GlobalObjectOwner::finalize): |
| (JSC::RegisterFile::RegisterFile): Replaced GlobalObjectNotifier with |
| a per-RegisterFile weak handle owner, which does not leak. |
| |
| * runtime/WeakGCPtr.h: |
| (JSC::WeakGCPtr::set): Allow set() to take a context argument, since |
| RegisterFile now needs this. (Seems like it was an accidental omission |
| all along.) |
| |
| 2011-04-04 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Make malloc validation useful |
| https://bugs.webkit.org/show_bug.cgi?id=57502 |
| |
| This patch changes FAST_MALLOC_MATCH_VALIDATION with a general |
| corruption check that tags the beginning and end of all allocations |
| to check for write overflows and overwrites the contents of |
| memory on free in order to (hopefully) show up use-after-free issues |
| sooner. |
| |
| We also turn it on by default for debug builds. |
| |
| * JavaScriptCore.exp: |
| * wtf/FastMalloc.cpp: |
| (WTF::tryFastMalloc): |
| (WTF::fastMalloc): |
| (WTF::tryFastCalloc): |
| (WTF::fastCalloc): |
| (WTF::fastFree): |
| (WTF::tryFastRealloc): |
| (WTF::fastRealloc): |
| (WTF::TCMalloc_PageHeap::isScavengerSuspended): |
| (WTF::TCMalloc_PageHeap::scheduleScavenger): |
| (WTF::TCMalloc_PageHeap::suspendScavenger): |
| (WTF::TCMalloc_PageHeap::signalScavenger): |
| (WTF::TCMallocStats::malloc): |
| (WTF::TCMallocStats::free): |
| (WTF::TCMallocStats::fastCalloc): |
| (WTF::TCMallocStats::tryFastCalloc): |
| (WTF::TCMallocStats::calloc): |
| (WTF::TCMallocStats::fastRealloc): |
| (WTF::TCMallocStats::tryFastRealloc): |
| (WTF::TCMallocStats::realloc): |
| * wtf/FastMalloc.h: |
| (WTF::Internal::fastMallocValidationHeader): |
| (WTF::Internal::fastMallocValidationSuffix): |
| (WTF::Internal::fastMallocMatchValidationType): |
| (WTF::Internal::setFastMallocMatchValidationType): |
| (WTF::fastMallocMatchValidateFree): |
| (WTF::fastMallocValidate): |
| * wtf/Platform.h: |
| |
| 2011-04-04 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Renamed clearWeakPointers => updateWeakHandles and removed misleading comment |
| https://bugs.webkit.org/show_bug.cgi?id=57790 |
| |
| * collector/handles/HandleHeap.cpp: |
| (JSC::HandleHeap::updateWeakHandles): Updated for rename. |
| |
| * collector/handles/HandleHeap.h: Removed comment claiming that this |
| function should only be called during teardown, because it's actually |
| called after every GC pass. |
| |
| * runtime/Heap.cpp: |
| (JSC::Heap::destroy): |
| (JSC::Heap::markRoots): Updated for rename. |
| |
| 2011-04-04 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Standardized handling of handles for immediate values |
| https://bugs.webkit.org/show_bug.cgi?id=57788 |
| |
| * collector/handles/HandleHeap.cpp: |
| (JSC::HandleHeap::clearWeakPointers): Don't check for null or non-cell |
| values here, because our write barrier guarantees that such values are |
| not in the weak list. |
| |
| (JSC::HandleHeap::writeBarrier): Standardized on checking for null before |
| checking for cell, and on using early return instead of if/else. |
| |
| * collector/handles/HandleHeap.h: |
| (JSC::HandleHeap::deallocate): |
| (JSC::HandleHeap::makeWeak): Ditto. |
| |
| 2011-04-04 Geoffrey Garen <ggaren@apple.com> |
| |
| Not reviewed. |
| |
| Removed a redundant variable from HandleHeap |
| https://bugs.webkit.org/show_bug.cgi?id=57786 |
| |
| Forgot to commit the file that actually removes the data member! |
| |
| * collector/handles/HandleHeap.h: |
| |
| 2011-04-04 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Removed a redundant variable from HandleHeap |
| https://bugs.webkit.org/show_bug.cgi?id=57786 |
| |
| We don't need a specific variable to indicate that we're in the middle |
| of the finalization phase, since m_nextToFinalize already does this. |
| |
| * collector/handles/HandleHeap.cpp: |
| (JSC::HandleHeap::HandleHeap): |
| (JSC::HandleHeap::clearWeakPointers): |
| (JSC::HandleHeap::writeBarrier): |
| |
| 2011-04-04 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Renamed Finalizer => WeakHandleOwner (in preparation for adding a reachability callback) |
| https://bugs.webkit.org/show_bug.cgi?id=57775 |
| |
| Also renamed noFinalizer => emptyWeakOwner, since this is really an |
| optimization for a weak owner with empty callbacks. |
| |
| * collector/handles/HandleHeap.cpp: |
| (JSC::HandleHeap::clearWeakPointers): Updated for renames. Removed |
| redundant initialization of m_nextToFinalize. Moved deletion check inside |
| weak owner check, since the weak owner can't delete the node if there is |
| no weak owner! |
| |
| * collector/handles/HandleHeap.h: |
| (JSC::WeakHandleOwner::~WeakHandleOwner): |
| (JSC::HandleHeap::makeWeak): Updated for renames. |
| |
| (JSC::HandleHeap::hasWeakOwner): Changed getFinalizer to hasWeakOwner, |
| to clarify this function's role in assertions. |
| |
| (JSC::HandleHeap::Node::Node): |
| (JSC::HandleHeap::Node::makeWeak): |
| (JSC::HandleHeap::Node::isWeak): |
| (JSC::HandleHeap::Node::weakOwner): |
| (JSC::HandleHeap::Node::weakOwnerContext): |
| (JSC::HandleHeap::Node::emptyWeakOwner): |
| * interpreter/RegisterFile.cpp: |
| (JSC::RegisterFile::globalObjectCollectedNotifier): |
| * interpreter/RegisterFile.h: |
| * runtime/WeakGCMap.h: |
| * runtime/WeakGCPtr.h: |
| (JSC::WeakGCPtr::WeakGCPtr): |
| (JSC::WeakGCPtr::set): Updated for renames. |
| |
| 2011-04-04 Oliver Hunt <oliver@apple.com> |
| |
| Fix WinCE build. |
| |
| * bytecode/Instruction.h: |
| * interpreter/Interpreter.cpp: |
| (JSC::Interpreter::tryCachePutByID): |
| (JSC::Interpreter::tryCacheGetByID): |
| |
| 2011-04-04 Adam Roben <aroben@apple.com> |
| |
| Delete mt.dep files when doing a clean build due to .vsprops file changes |
| |
| Apparently this is yet another file that Visual Studio can't figure out it needs to rebuild. |
| |
| Fixes <http://webkit.org/b/57777> r82850 failed to build on Windows Debug (Build) |
| |
| Reviewed by Brian Weinstein. |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py: |
| (main): Added dep to the list of extensions we look for when choosing files to delete. |
| |
| 2011-04-01 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Make StructureChain GC allocated |
| https://bugs.webkit.org/show_bug.cgi?id=56695 |
| |
| Make StructureChain GC allocated, and make the various owners |
| mark it correctly. |
| |
| * JavaScriptCore.exp: |
| * bytecode/CodeBlock.cpp: |
| (JSC::CodeBlock::dump): |
| (JSC::CodeBlock::derefStructures): |
| (JSC::CodeBlock::refStructures): |
| (JSC::CodeBlock::markAggregate): |
| * bytecode/Instruction.h: |
| (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set): |
| (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList): |
| (JSC::PolymorphicAccessStructureList::derefStructures): |
| (JSC::PolymorphicAccessStructureList::markAggregate): |
| (JSC::Instruction::Instruction): |
| * bytecode/StructureStubInfo.cpp: |
| (JSC::StructureStubInfo::deref): |
| (JSC::StructureStubInfo::markAggregate): |
| * bytecode/StructureStubInfo.h: |
| (JSC::StructureStubInfo::initGetByIdChain): |
| (JSC::StructureStubInfo::initPutByIdTransition): |
| * bytecompiler/BytecodeGenerator.cpp: |
| (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall): |
| (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply): |
| * collector/handles/Handle.h: |
| (JSC::HandleConverter::operator->): |
| (JSC::HandleConverter::operator*): |
| * interpreter/Interpreter.cpp: |
| (JSC::Interpreter::privateExecute): |
| * jit/JITOpcodes.cpp: |
| (JSC::JIT::emit_op_jneq_ptr): |
| * jit/JITOpcodes32_64.cpp: |
| (JSC::JIT::emit_op_jneq_ptr): |
| * jit/JITPropertyAccess.cpp: |
| (JSC::JIT::privateCompileGetByIdChainList): |
| * jit/JITPropertyAccess32_64.cpp: |
| (JSC::JIT::privateCompileGetByIdChainList): |
| * jit/JITStubs.cpp: |
| (JSC::JITThunks::tryCachePutByID): |
| (JSC::JITThunks::tryCacheGetByID): |
| (JSC::getPolymorphicAccessStructureListSlot): |
| (JSC::DEFINE_STUB_FUNCTION): |
| * runtime/JSCell.h: |
| * runtime/JSGlobalData.cpp: |
| (JSC::JSGlobalData::JSGlobalData): |
| * runtime/JSGlobalData.h: |
| * runtime/JSGlobalObject.cpp: |
| (JSC::markIfNeeded): |
| * runtime/JSGlobalObject.h: |
| (JSC::Structure::prototypeChain): |
| * runtime/JSObject.h: |
| (JSC::JSObject::putDirectInternal): |
| (JSC::JSObject::markChildrenDirect): |
| * runtime/JSPropertyNameIterator.cpp: |
| (JSC::JSPropertyNameIterator::create): |
| (JSC::JSPropertyNameIterator::get): |
| (JSC::JSPropertyNameIterator::markChildren): |
| * runtime/JSPropertyNameIterator.h: |
| (JSC::JSPropertyNameIterator::setCachedPrototypeChain): |
| * runtime/JSZombie.cpp: |
| (JSC::JSZombie::leakedZombieStructure): |
| * runtime/JSZombie.h: |
| * runtime/MarkStack.h: |
| (JSC::MarkStack::append): |
| * runtime/MarkedBlock.cpp: |
| (JSC::MarkedBlock::sweep): |
| * runtime/Structure.cpp: |
| (JSC::Structure::addPropertyTransition): |
| * runtime/Structure.h: |
| (JSC::Structure::markAggregate): |
| * runtime/StructureChain.cpp: |
| (JSC::StructureChain::StructureChain): |
| (JSC::StructureChain::~StructureChain): |
| (JSC::StructureChain::markChildren): |
| * runtime/StructureChain.h: |
| (JSC::StructureChain::create): |
| (JSC::StructureChain::createStructure): |
| * runtime/WriteBarrier.h: |
| (JSC::WriteBarrierBase::get): |
| (JSC::WriteBarrierBase::operator*): |
| (JSC::WriteBarrierBase::operator->): |
| |
| 2011-04-01 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Removed some complexity from HandleHeap |
| https://bugs.webkit.org/show_bug.cgi?id=57650 |
| |
| Eliminated pointer-tagging flags. |
| |
| Tied being weak to having a finalizer (or at least a finalizer sentinel). |
| |
| * collector/handles/HandleHeap.cpp: |
| (JSC::HandleHeap::clearWeakPointers): Removed the special self-destroying |
| flag. It was unused. If we bring it back, we'll probably use a shared |
| autodeallocating finalizer instead. |
| |
| * collector/handles/HandleHeap.h: |
| (JSC::HandleHeap::makeWeak): makeWeak and adding a finalizer are now |
| a single, atomic operation -- this makes the relationship between |
| finalizers and weak pointers clearer, and impossible to get wrong. |
| |
| (JSC::HandleHeap::Node::Node): |
| (JSC::HandleHeap::Node::handleHeap): No more flags. |
| |
| (JSC::HandleHeap::Node::makeWeak): |
| (JSC::HandleHeap::Node::isWeak): Ditto above. We use a special sentienl |
| value in the finalizer slot to indicate that a handle is weak but doesn't |
| require an external function call for finalization. |
| |
| 2011-04-01 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Removed WeakGCMap::deprecatedRemove because it was deprecated and unused |
| https://bugs.webkit.org/show_bug.cgi?id=57648 |
| |
| * runtime/WeakGCMap.h: |
| |
| 2011-04-01 Adam Roben <aroben@apple.com> |
| |
| Maintain the invariant that Lexer::m_current is set to -1 when at the end of the code buffer |
| |
| Covered by existing tests. |
| |
| Fixes <http://webkit.org/b/56699>. |
| |
| Reviewed by Oliver Hunt. |
| |
| * parser/Lexer.h: |
| (JSC::Lexer::setOffset): Copied code from Lexer::shift to update m_current, because |
| supposedly the idiom that function uses is fast. |
| |
| 2011-03-31 Thouraya ANDOLSI <thouraya.andolsi@st.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| SH4 JIT SUPPORT. |
| https://bugs.webkit.org/show_bug.cgi?id=44329 |
| |
| Add YARR support for SH4 platforms (disabled by default). |
| |
| * GNUmakefile.am: |
| * assembler/MacroAssembler.h: |
| * assembler/MacroAssemblerSH4.cpp: Added. |
| * assembler/MacroAssemblerSH4.h: Added. |
| * assembler/SH4Assembler.h: Added. |
| * yarr/YarrJIT.cpp: |
| |
| 2011-03-30 Adam Roben <aroben@apple.com> |
| |
| Clean build fix |
| |
| * JavaScriptCore.vcproj/JavaScriptCore.sln: Serialized project dependencies so projects |
| don't try to build in parallel (which doesn't mesh with our buildfailed mechanism). |
| |
| 2011-03-30 Oliver Hunt <oliver@apple.com> |
| |
| Rollout r82500 |
| |
| * bytecode/CodeBlock.cpp: |
| (JSC::CodeBlock::dump): |
| (JSC::CodeBlock::derefStructures): |
| (JSC::CodeBlock::refStructures): |
| (JSC::CodeBlock::markAggregate): |
| * bytecode/Instruction.h: |
| (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set): |
| (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList): |
| (JSC::PolymorphicAccessStructureList::derefStructures): |
| (JSC::Instruction::Instruction): |
| * bytecode/StructureStubInfo.cpp: |
| (JSC::StructureStubInfo::deref): |
| * bytecode/StructureStubInfo.h: |
| (JSC::StructureStubInfo::initGetByIdChain): |
| (JSC::StructureStubInfo::initPutByIdTransition): |
| * bytecompiler/BytecodeGenerator.cpp: |
| (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall): |
| (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply): |
| * interpreter/Interpreter.cpp: |
| (JSC::Interpreter::privateExecute): |
| * jit/JITOpcodes.cpp: |
| (JSC::JIT::emit_op_jneq_ptr): |
| * jit/JITOpcodes32_64.cpp: |
| (JSC::JIT::emit_op_jneq_ptr): |
| * jit/JITPropertyAccess.cpp: |
| (JSC::JIT::privateCompileGetByIdChainList): |
| * jit/JITPropertyAccess32_64.cpp: |
| (JSC::JIT::privateCompileGetByIdChainList): |
| * jit/JITStubs.cpp: |
| (JSC::getPolymorphicAccessStructureListSlot): |
| (JSC::DEFINE_STUB_FUNCTION): |
| * runtime/JSCell.h: |
| * runtime/JSGlobalData.cpp: |
| (JSC::JSGlobalData::JSGlobalData): |
| * runtime/JSGlobalData.h: |
| * runtime/JSGlobalObject.cpp: |
| (JSC::markIfNeeded): |
| * runtime/JSGlobalObject.h: |
| (JSC::Structure::prototypeChain): |
| * runtime/JSObject.h: |
| (JSC::JSObject::markChildrenDirect): |
| * runtime/JSPropertyNameIterator.cpp: |
| (JSC::JSPropertyNameIterator::create): |
| (JSC::JSPropertyNameIterator::get): |
| (JSC::JSPropertyNameIterator::markChildren): |
| * runtime/JSPropertyNameIterator.h: |
| (JSC::JSPropertyNameIterator::setCachedPrototypeChain): |
| * runtime/MarkStack.h: |
| (JSC::MarkStack::append): |
| * runtime/Structure.h: |
| * runtime/StructureChain.cpp: |
| (JSC::StructureChain::StructureChain): |
| * runtime/StructureChain.h: |
| (JSC::StructureChain::create): |
| |
| 2011-03-29 Matthew Delaney <mdelaney@apple.com> |
| |
| Reviewed by Simon Fraser. |
| |
| Use the Accelerate vImage vectorized (un)premultiplyImageData functions for ImageBufferCG |
| |
| https://bugs.webkit.org/show_bug.cgi?id=53134 |
| |
| * wtf/Platform.h: Added in WTF flag for using the Accelerate framework |
| |
| 2011-03-30 Steve Falkenburg <sfalken@apple.com> |
| |
| Reviewed by Adam Roben. |
| |
| Share most vsprops between Release and Production builds in releaseproduction.vsprops |
| https://bugs.webkit.org/show_bug.cgi?id=57508 |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreProduction.vsprops: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreRelease.vsprops: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleaseCairoCFLite.vsprops: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGO.vsprops: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGOOptimize.vsprops: |
| * JavaScriptCore.vcproj/WTF/WTFProduction.vsprops: |
| * JavaScriptCore.vcproj/WTF/WTFRelease.vsprops: |
| * JavaScriptCore.vcproj/WTF/WTFReleaseCairoCFLite.vsprops: |
| * JavaScriptCore.vcproj/WTF/WTFReleasePGO.vsprops: |
| * JavaScriptCore.vcproj/jsc/jscProduction.vsprops: |
| * JavaScriptCore.vcproj/jsc/jscRelease.vsprops: |
| * JavaScriptCore.vcproj/jsc/jscReleaseCairoCFLite.vsprops: |
| * JavaScriptCore.vcproj/jsc/jscReleasePGO.vsprops: |
| * JavaScriptCore.vcproj/testapi/testapiProduction.vsprops: |
| * JavaScriptCore.vcproj/testapi/testapiRelease.vsprops: |
| * JavaScriptCore.vcproj/testapi/testapiReleaseCairoCFLite.vsprops: |
| |
| 2011-03-30 Mark Rowe <mrowe@apple.com> |
| |
| Reviewed by Adam Roben. |
| |
| Explicitly prevent testapi and minidom from being installed rather than relying |
| on Xcode's current behavior of not installing if INSTALL_PATH is not explicitly |
| set at the target level. |
| |
| <rdar://problem/9206357> |
| |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| |
| 2011-03-30 Timur Iskhodzhanov <timurrrr@google.com> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Add some dynamic annotations to JavaScriptCore/wtf |
| https://bugs.webkit.org/show_bug.cgi?id=53747 |
| |
| By using these annotations we can improve the precision of finding |
| WebKit errors using dynamic analysis tools like ThreadSanitizer and Valgrind. |
| These annotations don't affect the compiled binaries unless USE(DYNAMIC_ANNOTATIONS) is "1". |
| |
| These files don't add new functionality, so don't need extra tests. |
| |
| * GNUmakefile.am: |
| * JavaScriptCore.gypi: |
| * JavaScriptCore.vcproj/WTF/WTF.vcproj: |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/DynamicAnnotations.cpp: Added. |
| (WTFAnnotateBenignRaceSized): |
| (WTFAnnotateHappensBefore): |
| (WTFAnnotateHappensAfter): |
| * wtf/DynamicAnnotations.h: Added. |
| * wtf/ThreadSafeRefCounted.h: |
| (WTF::ThreadSafeRefCountedBase::derefBase): |
| * wtf/text/StringStatics.cpp: |
| (WTF::StringImpl::empty): |
| |
| 2011-03-30 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Make StructureChain GC allocated |
| https://bugs.webkit.org/show_bug.cgi?id=56695 |
| |
| Make StructureChain GC allocated, and make the various owners |
| mark it correctly. |
| |
| * bytecode/CodeBlock.cpp: |
| (JSC::CodeBlock::dump): |
| (JSC::CodeBlock::derefStructures): |
| (JSC::CodeBlock::refStructures): |
| (JSC::CodeBlock::markAggregate): |
| * bytecode/Instruction.h: |
| (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set): |
| (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList): |
| (JSC::PolymorphicAccessStructureList::derefStructures): |
| (JSC::PolymorphicAccessStructureList::markAggregate): |
| (JSC::Instruction::Instruction): |
| * bytecode/StructureStubInfo.cpp: |
| (JSC::StructureStubInfo::deref): |
| (JSC::StructureStubInfo::markAggregate): |
| * bytecode/StructureStubInfo.h: |
| (JSC::StructureStubInfo::initGetByIdChain): |
| (JSC::StructureStubInfo::initPutByIdTransition): |
| * bytecompiler/BytecodeGenerator.cpp: |
| (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall): |
| (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply): |
| * interpreter/Interpreter.cpp: |
| (JSC::Interpreter::privateExecute): |
| * jit/JITOpcodes.cpp: |
| (JSC::JIT::emit_op_jneq_ptr): |
| * jit/JITOpcodes32_64.cpp: |
| (JSC::JIT::emit_op_jneq_ptr): |
| * jit/JITPropertyAccess.cpp: |
| (JSC::JIT::privateCompileGetByIdChainList): |
| * jit/JITPropertyAccess32_64.cpp: |
| (JSC::JIT::privateCompileGetByIdChainList): |
| * jit/JITStubs.cpp: |
| (JSC::getPolymorphicAccessStructureListSlot): |
| (JSC::DEFINE_STUB_FUNCTION): |
| * runtime/JSCell.h: |
| * runtime/JSGlobalData.cpp: |
| (JSC::JSGlobalData::JSGlobalData): |
| * runtime/JSGlobalData.h: |
| * runtime/JSGlobalObject.cpp: |
| (JSC::markIfNeeded): |
| * runtime/JSGlobalObject.h: |
| (JSC::Structure::prototypeChain): |
| * runtime/JSObject.h: |
| (JSC::JSObject::markChildrenDirect): |
| * runtime/JSPropertyNameIterator.cpp: |
| (JSC::JSPropertyNameIterator::create): |
| (JSC::JSPropertyNameIterator::get): |
| (JSC::JSPropertyNameIterator::markChildren): |
| * runtime/JSPropertyNameIterator.h: |
| (JSC::JSPropertyNameIterator::setCachedPrototypeChain): |
| * runtime/MarkStack.h: |
| (JSC::MarkStack::append): |
| * runtime/Structure.h: |
| (JSC::Structure::cachedPrototypeChainSlot): |
| * runtime/StructureChain.cpp: |
| (JSC::StructureChain::StructureChain): |
| * runtime/StructureChain.h: |
| (JSC::StructureChain::create): |
| (JSC::StructureChain::createStructure): |
| |
| 2011-03-30 Steve Falkenburg <sfalken@apple.com> |
| |
| Reviewed by Adam Roben. |
| |
| Update Windows production build logic for new production configurations |
| https://bugs.webkit.org/show_bug.cgi?id=57494 |
| |
| * JavaScriptCore.vcproj/JavaScriptCore.make: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreProduction.vsprops: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGO.vsprops: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGOOptimize.vsprops: |
| * JavaScriptCore.vcproj/WTF/WTFProduction.vsprops: |
| * JavaScriptCore.vcproj/WTF/WTFReleasePGO.vsprops: |
| * JavaScriptCore.vcproj/jsc/jscProduction.vsprops: |
| * JavaScriptCore.vcproj/jsc/jscReleasePGO.vsprops: |
| * JavaScriptCore.vcproj/testapi/testapiProduction.vsprops: |
| |
| 2011-03-30 Steve Falkenburg <sfalken@apple.com> |
| |
| Reviewed by Adam Roben. |
| |
| Rename Windows configuration Release_LTCG to Production for clarity |
| https://bugs.webkit.org/show_bug.cgi?id=57465 |
| |
| * JavaScriptCore.vcproj/JavaScriptCore.sln: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreProduction.vsprops: Copied from Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleaseLTCG.vsprops. |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleaseLTCG.vsprops: Removed. |
| * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln: |
| * JavaScriptCore.vcproj/WTF/WTF.vcproj: |
| * JavaScriptCore.vcproj/WTF/WTFProduction.vsprops: Copied from Source/JavaScriptCore/JavaScriptCore.vcproj/WTF/WTFReleaseLTCG.vsprops. |
| * JavaScriptCore.vcproj/WTF/WTFReleaseLTCG.vsprops: Removed. |
| * JavaScriptCore.vcproj/jsc/jsc.vcproj: |
| * JavaScriptCore.vcproj/jsc/jscProduction.vsprops: Copied from Source/JavaScriptCore/JavaScriptCore.vcproj/jsc/jscReleaseLTCG.vsprops. |
| * JavaScriptCore.vcproj/jsc/jscReleaseLTCG.vsprops: Removed. |
| * JavaScriptCore.vcproj/testapi/testapi.vcproj: |
| * JavaScriptCore.vcproj/testapi/testapiProduction.vsprops: Copied from Source/JavaScriptCore/JavaScriptCore.vcproj/testapi/testapiReleaseLTCG.vsprops. |
| * JavaScriptCore.vcproj/testapi/testapiReleaseLTCG.vsprops: Removed. |
| |
| 2011-03-30 Zoltan Herczeg <zherczeg@inf.u-szeged.hu> |
| |
| Reviewed by Maciej Stachowiak. |
| |
| Add the NEXT_OPCODE() macro to the DFG-JIT parser |
| https://bugs.webkit.org/show_bug.cgi?id=57322 |
| |
| In JavaScriptCore we use macros to jump to the next opcode |
| (both in interpreter and JIT). This macro is added to the |
| DFG-JIT parser as well. |
| |
| * dfg/DFGByteCodeParser.cpp: |
| (JSC::DFG::ByteCodeParser::parse): |
| |
| 2011-03-29 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Darin Adler. |
| |
| ~25% regression on v8-splay in the SunSpider harness |
| https://bugs.webkit.org/show_bug.cgi?id=56128 |
| |
| I'm not sure if this is the root cause of the regression Stephanie |
| measured, but it seems to get us back to previous v8-splay times. |
| |
| SunSpider reports no change. v8-splay says 41% faster. |
| |
| * runtime/Heap.cpp: |
| (JSC::Heap::reset): Make marking proportional to 1X the size of the heap, |
| not .5X the size of the heap. When the heap is large, this makes a big |
| difference. (Our old heap growth policy matched this. You can see by |
| looking at resizeBlocks in revisions prior to r77699.) |
| |
| 2011-03-29 Steve Falkenburg <sfalken@apple.com> |
| |
| Reviewed by Darin Adler. |
| |
| Use per-configuration vsprops in JavaScriptCore to avoid WebKitVSPropsRedirectionDir removal by MSVC IDE |
| https://bugs.webkit.org/show_bug.cgi?id=57350 |
| |
| Visual Studio's IDE was removing instances of $(WebKitVSPropsRedirectionDir) from |
| InheritedPropertySheet rules in our vcproj files when the vcproj was edited from within |
| the IDE. To avoid this, add a separate vsprops file for each project configuration that |
| contains the required inherited property sheets. |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreDebug.vsprops: Added. |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreDebugAll.vsprops: Added. |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreDebugCairoCFLite.vsprops: Added. |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreRelease.vsprops: Added. |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleaseCairoCFLite.vsprops: Added. |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleaseLTCG.vsprops: Added. |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGO.vsprops: Added. |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGOOptimize.vsprops: Added. |
| * JavaScriptCore.vcproj/WTF/WTF.vcproj: |
| * JavaScriptCore.vcproj/WTF/WTFDebug.vsprops: Added. |
| * JavaScriptCore.vcproj/WTF/WTFDebugAll.vsprops: Added. |
| * JavaScriptCore.vcproj/WTF/WTFDebugCairoCFLite.vsprops: Added. |
| * JavaScriptCore.vcproj/WTF/WTFRelease.vsprops: Added. |
| * JavaScriptCore.vcproj/WTF/WTFReleaseCairoCFLite.vsprops: Added. |
| * JavaScriptCore.vcproj/WTF/WTFReleaseLTCG.vsprops: Added. |
| * JavaScriptCore.vcproj/WTF/WTFReleasePGO.vsprops: Added. |
| * JavaScriptCore.vcproj/jsc/jsc.vcproj: |
| * JavaScriptCore.vcproj/jsc/jscDebug.vsprops: Added. |
| * JavaScriptCore.vcproj/jsc/jscDebugAll.vsprops: Added. |
| * JavaScriptCore.vcproj/jsc/jscDebugCairoCFLite.vsprops: Added. |
| * JavaScriptCore.vcproj/jsc/jscRelease.vsprops: Added. |
| * JavaScriptCore.vcproj/jsc/jscReleaseCairoCFLite.vsprops: Added. |
| * JavaScriptCore.vcproj/jsc/jscReleaseLTCG.vsprops: Added. |
| * JavaScriptCore.vcproj/jsc/jscReleasePGO.vsprops: Added. |
| * JavaScriptCore.vcproj/testapi/testapi.vcproj: |
| * JavaScriptCore.vcproj/testapi/testapiDebug.vsprops: Added. |
| * JavaScriptCore.vcproj/testapi/testapiDebugAll.vsprops: Added. |
| * JavaScriptCore.vcproj/testapi/testapiDebugCairoCFLite.vsprops: Added. |
| * JavaScriptCore.vcproj/testapi/testapiRelease.vsprops: Added. |
| * JavaScriptCore.vcproj/testapi/testapiReleaseCairoCFLite.vsprops: Added. |
| * JavaScriptCore.vcproj/testapi/testapiReleaseLTCG.vsprops: Added. |
| |
| 2011-03-29 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Eric Seidel. |
| |
| REGRESSION(r82173): Causes assertion and test failures in run-javascriptcore-tests on Windows (Requested by aroben on #webkit). |
| https://bugs.webkit.org/show_bug.cgi?id=57333 |
| |
| constructDate now takes the global object explicitly as it may be called |
| by functions other than the constructor itself. |
| |
| * API/JSObjectRef.cpp: |
| (JSObjectMakeDate): |
| * runtime/DateConstructor.cpp: |
| (JSC::constructDate): |
| (JSC::constructWithDateConstructor): |
| * runtime/DateConstructor.h: |
| |
| 2011-03-29 Ben Taylor <bentaylor.solx86@gmail.com> |
| |
| Reviewed by Benjamin Poulain. |
| |
| https://bugs.webkit.org/show_bug.cgi?id=41953 |
| |
| Fix compile error on Solaris 10/Sun Studio 12 CC emanating from MathExtras.h |
| |
| * wtf/MathExtras.h: |
| |
| 2011-03-29 Ben Taylor <bentaylor.solx86@gmail.com> |
| |
| Reviewed by Darin Adler. |
| |
| https://bugs.webkit.org/show_bug.cgi?id=57231 |
| Add conditional for SUNCC supporting alignment macros |
| |
| Compile fix for Solaris 10/Sun Studio 12 CC |
| |
| * wtf/Vector.h: |
| |
| 2011-03-29 Ben Taylor <bentaylor.solx86@gmail.com> |
| |
| Reviewed by Darin Adler. |
| |
| https://bugs.webkit.org/show_bug.cgi?id=57256 |
| |
| Fix crash on misaligned reads on Solaris 10/Sparc |
| |
| * wtf/text/AtomicString.cpp: |
| (WTF::equal): |
| |
| 2011-03-28 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Geoffrey Garen. |
| |
| instanceof Array test fails when using iframes |
| https://bugs.webkit.org/show_bug.cgi?id=17250 |
| |
| This is a problem with all built in constructors, the use of |
| lexicalGlobalObject rather than the constructors own |
| global object reference means that a builtin will always use |
| the prototype from the lexical global object rather than that |
| of the constructors origin. |
| |
| * API/JSObjectRef.cpp: |
| (JSObjectMakeFunction): |
| (JSObjectMakeRegExp): |
| * JavaScriptCore.exp: |
| * runtime/ArrayConstructor.cpp: |
| (JSC::constructArrayWithSizeQuirk): |
| * runtime/BooleanConstructor.cpp: |
| (JSC::constructBoolean): |
| (JSC::constructBooleanFromImmediateBoolean): |
| * runtime/BooleanConstructor.h: |
| * runtime/DateConstructor.cpp: |
| (JSC::constructDate): |
| * runtime/DateInstance.cpp: |
| * runtime/DateInstance.h: |
| * runtime/ErrorConstructor.cpp: |
| (JSC::constructWithErrorConstructor): |
| (JSC::callErrorConstructor): |
| * runtime/FunctionConstructor.cpp: |
| (JSC::constructWithFunctionConstructor): |
| (JSC::callFunctionConstructor): |
| (JSC::constructFunction): |
| * runtime/FunctionConstructor.h: |
| * runtime/JSCell.cpp: |
| (JSC::JSCell::getOwnPropertySlot): |
| (JSC::JSCell::put): |
| (JSC::JSCell::deleteProperty): |
| (JSC::JSCell::toThisObject): |
| (JSC::JSCell::toObject): |
| * runtime/JSCell.h: |
| (JSC::JSCell::JSValue::toObject): |
| * runtime/JSNotAnObject.cpp: |
| (JSC::JSNotAnObject::toObject): |
| * runtime/JSNotAnObject.h: |
| * runtime/JSObject.cpp: |
| (JSC::JSObject::toObject): |
| * runtime/JSObject.h: |
| * runtime/JSString.cpp: |
| (JSC::StringObject::create): |
| (JSC::JSString::toObject): |
| (JSC::JSString::toThisObject): |
| * runtime/JSString.h: |
| * runtime/JSValue.cpp: |
| (JSC::JSValue::toObjectSlowCase): |
| (JSC::JSValue::toThisObjectSlowCase): |
| (JSC::JSValue::synthesizeObject): |
| * runtime/JSValue.h: |
| * runtime/NumberConstructor.cpp: |
| (JSC::constructWithNumberConstructor): |
| * runtime/NumberObject.cpp: |
| (JSC::constructNumber): |
| * runtime/NumberObject.h: |
| * runtime/ObjectConstructor.cpp: |
| (JSC::constructObject): |
| (JSC::constructWithObjectConstructor): |
| (JSC::callObjectConstructor): |
| * runtime/RegExpConstructor.cpp: |
| (JSC::constructRegExp): |
| (JSC::constructWithRegExpConstructor): |
| (JSC::callRegExpConstructor): |
| * runtime/RegExpConstructor.h: |
| * runtime/StringConstructor.cpp: |
| (JSC::constructWithStringConstructor): |
| * runtime/StringObject.h: |
| |
| 2011-03-28 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| REGRESSION [r78794-r79249] Allocation of memory is slow when number of active objects is large |
| https://bugs.webkit.org/show_bug.cgi?id=56823 |
| |
| Partial fix for most of the problem. (TOT still shows a regression, though.) |
| |
| * runtime/Heap.cpp: |
| (JSC::Heap::reportExtraMemoryCostSlowCase): Use highWaterMark(), instead of |
| capacity(), since capacity() is O(n) relative to the size of the heap. |
| |
| In limited circumstances, capacity() is also worse than highWaterMark() |
| for measuring extra cost relative to heap size, since capacity() only |
| measures the *current* capacity of the heap, but the heap will grow if |
| necessary to attain highWaterMark(). |
| |
| 2011-03-28 Oliver Hunt <oliver@apple.com> |
| |
| REGRESSION(r82130): It made all tests crash (Requested by Ossy on #webkit). |
| https://bugs.webkit.org/show_bug.cgi?id=57251 |
| |
| Build fix, had remnant of another patch in r82130 |
| |
| * jit/JITPropertyAccess.cpp: |
| (JSC::JIT::privateCompileGetByIdChainList): |
| |
| 2011-03-27 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Maciej Stachowiak. |
| |
| Add additional immediate types to allow us to distinguish the source of a JIT immediate |
| https://bugs.webkit.org/show_bug.cgi?id=57190 |
| |
| Allow us to distinguish whether a JIT immediate is a value that we |
| control (TrustedImm32 and TrustedImmPtr) vs. ones that can be controlled |
| or influenced by code we are compiling. Currently we do nothing with this |
| information -- this change is large and mechanical but would obscure any |
| logic changes that we would have made. |
| |
| * assembler/AbstractMacroAssembler.h: |
| (JSC::AbstractMacroAssembler::TrustedImmPtr::TrustedImmPtr): |
| (JSC::AbstractMacroAssembler::ImmPtr::ImmPtr): |
| (JSC::AbstractMacroAssembler::TrustedImm32::TrustedImm32): |
| (JSC::AbstractMacroAssembler::Imm32::Imm32): |
| * assembler/MacroAssembler.h: |
| (JSC::MacroAssembler::pop): |
| (JSC::MacroAssembler::poke): |
| (JSC::MacroAssembler::branchPtr): |
| (JSC::MacroAssembler::branch32): |
| (JSC::MacroAssembler::addPtr): |
| (JSC::MacroAssembler::andPtr): |
| (JSC::MacroAssembler::orPtr): |
| (JSC::MacroAssembler::subPtr): |
| (JSC::MacroAssembler::xorPtr): |
| (JSC::MacroAssembler::setPtr): |
| (JSC::MacroAssembler::storePtr): |
| (JSC::MacroAssembler::branchTestPtr): |
| (JSC::MacroAssembler::branchSubPtr): |
| (JSC::MacroAssembler::branchTest8): |
| * assembler/MacroAssemblerARM.h: |
| (JSC::MacroAssemblerARM::add32): |
| (JSC::MacroAssemblerARM::and32): |
| (JSC::MacroAssemblerARM::lshift32): |
| (JSC::MacroAssemblerARM::mul32): |
| (JSC::MacroAssemblerARM::or32): |
| (JSC::MacroAssemblerARM::rshift32): |
| (JSC::MacroAssemblerARM::urshift32): |
| (JSC::MacroAssemblerARM::sub32): |
| (JSC::MacroAssemblerARM::xor32): |
| (JSC::MacroAssemblerARM::store32): |
| (JSC::MacroAssemblerARM::push): |
| (JSC::MacroAssemblerARM::move): |
| (JSC::MacroAssemblerARM::branch8): |
| (JSC::MacroAssemblerARM::branch32): |
| (JSC::MacroAssemblerARM::branch32WithUnalignedHalfWords): |
| (JSC::MacroAssemblerARM::branch16): |
| (JSC::MacroAssemblerARM::branchTest8): |
| (JSC::MacroAssemblerARM::branchTest32): |
| (JSC::MacroAssemblerARM::branchAdd32): |
| (JSC::MacroAssemblerARM::branchMul32): |
| (JSC::MacroAssemblerARM::branchSub32): |
| (JSC::MacroAssemblerARM::set32Compare32): |
| (JSC::MacroAssemblerARM::set8Compare32): |
| (JSC::MacroAssemblerARM::set32Test32): |
| (JSC::MacroAssemblerARM::set32Test8): |
| (JSC::MacroAssemblerARM::moveWithPatch): |
| (JSC::MacroAssemblerARM::branchPtrWithPatch): |
| (JSC::MacroAssemblerARM::storePtrWithPatch): |
| * assembler/MacroAssemblerARMv7.h: |
| (JSC::MacroAssemblerARMv7::add32): |
| (JSC::MacroAssemblerARMv7::and32): |
| (JSC::MacroAssemblerARMv7::lshift32): |
| (JSC::MacroAssemblerARMv7::mul32): |
| (JSC::MacroAssemblerARMv7::or32): |
| (JSC::MacroAssemblerARMv7::rshift32): |
| (JSC::MacroAssemblerARMv7::urshift32): |
| (JSC::MacroAssemblerARMv7::sub32): |
| (JSC::MacroAssemblerARMv7::xor32): |
| (JSC::MacroAssemblerARMv7::load32): |
| (JSC::MacroAssemblerARMv7::load32WithAddressOffsetPatch): |
| (JSC::MacroAssemblerARMv7::load16): |
| (JSC::MacroAssemblerARMv7::store32WithAddressOffsetPatch): |
| (JSC::MacroAssemblerARMv7::store32): |
| (JSC::MacroAssemblerARMv7::loadDouble): |
| (JSC::MacroAssemblerARMv7::storeDouble): |
| (JSC::MacroAssemblerARMv7::push): |
| (JSC::MacroAssemblerARMv7::move): |
| (JSC::MacroAssemblerARMv7::compare32): |
| (JSC::MacroAssemblerARMv7::test32): |
| (JSC::MacroAssemblerARMv7::branch32): |
| (JSC::MacroAssemblerARMv7::branch32WithUnalignedHalfWords): |
| (JSC::MacroAssemblerARMv7::branch16): |
| (JSC::MacroAssemblerARMv7::branch8): |
| (JSC::MacroAssemblerARMv7::branchTest32): |
| (JSC::MacroAssemblerARMv7::branchTest8): |
| (JSC::MacroAssemblerARMv7::branchAdd32): |
| (JSC::MacroAssemblerARMv7::branchMul32): |
| (JSC::MacroAssemblerARMv7::branchSub32): |
| (JSC::MacroAssemblerARMv7::nearCall): |
| (JSC::MacroAssemblerARMv7::call): |
| (JSC::MacroAssemblerARMv7::set32Compare32): |
| (JSC::MacroAssemblerARMv7::set8Compare32): |
| (JSC::MacroAssemblerARMv7::set32Test32): |
| (JSC::MacroAssemblerARMv7::set32Test8): |
| (JSC::MacroAssemblerARMv7::moveWithPatch): |
| (JSC::MacroAssemblerARMv7::branchPtrWithPatch): |
| (JSC::MacroAssemblerARMv7::storePtrWithPatch): |
| (JSC::MacroAssemblerARMv7::tailRecursiveCall): |
| (JSC::MacroAssemblerARMv7::makeJump): |
| (JSC::MacroAssemblerARMv7::makeBranch): |
| (JSC::MacroAssemblerARMv7::setupArmAddress): |
| (JSC::MacroAssemblerARMv7::makeBaseIndexBase): |
| (JSC::MacroAssemblerARMv7::moveFixedWidthEncoding): |
| * assembler/MacroAssemblerMIPS.h: |
| (JSC::MacroAssemblerMIPS::add32): |
| (JSC::MacroAssemblerMIPS::and32): |
| (JSC::MacroAssemblerMIPS::lshift32): |
| (JSC::MacroAssemblerMIPS::mul32): |
| (JSC::MacroAssemblerMIPS::or32): |
| (JSC::MacroAssemblerMIPS::rshift32): |
| (JSC::MacroAssemblerMIPS::urshift32): |
| (JSC::MacroAssemblerMIPS::sub32): |
| (JSC::MacroAssemblerMIPS::xor32): |
| (JSC::MacroAssemblerMIPS::load32): |
| (JSC::MacroAssemblerMIPS::load32WithAddressOffsetPatch): |
| (JSC::MacroAssemblerMIPS::store32WithAddressOffsetPatch): |
| (JSC::MacroAssemblerMIPS::store32): |
| (JSC::MacroAssemblerMIPS::push): |
| (JSC::MacroAssemblerMIPS::move): |
| (JSC::MacroAssemblerMIPS::branch8): |
| (JSC::MacroAssemblerMIPS::branch32): |
| (JSC::MacroAssemblerMIPS::branch32WithUnalignedHalfWords): |
| (JSC::MacroAssemblerMIPS::branch16): |
| (JSC::MacroAssemblerMIPS::branchTest32): |
| (JSC::MacroAssemblerMIPS::branchTest8): |
| (JSC::MacroAssemblerMIPS::branchAdd32): |
| (JSC::MacroAssemblerMIPS::branchMul32): |
| (JSC::MacroAssemblerMIPS::branchSub32): |
| (JSC::MacroAssemblerMIPS::set8Compare32): |
| (JSC::MacroAssemblerMIPS::set32Compare32): |
| (JSC::MacroAssemblerMIPS::set32Test8): |
| (JSC::MacroAssemblerMIPS::set32Test32): |
| (JSC::MacroAssemblerMIPS::moveWithPatch): |
| (JSC::MacroAssemblerMIPS::branchPtrWithPatch): |
| (JSC::MacroAssemblerMIPS::storePtrWithPatch): |
| (JSC::MacroAssemblerMIPS::tailRecursiveCall): |
| (JSC::MacroAssemblerMIPS::loadDouble): |
| (JSC::MacroAssemblerMIPS::storeDouble): |
| (JSC::MacroAssemblerMIPS::branchTruncateDoubleToInt32): |
| * assembler/MacroAssemblerX86.h: |
| (JSC::MacroAssemblerX86::add32): |
| (JSC::MacroAssemblerX86::addWithCarry32): |
| (JSC::MacroAssemblerX86::and32): |
| (JSC::MacroAssemblerX86::or32): |
| (JSC::MacroAssemblerX86::sub32): |
| (JSC::MacroAssemblerX86::store32): |
| (JSC::MacroAssemblerX86::branch32): |
| (JSC::MacroAssemblerX86::moveWithPatch): |
| (JSC::MacroAssemblerX86::branchPtrWithPatch): |
| (JSC::MacroAssemblerX86::storePtrWithPatch): |
| * assembler/MacroAssemblerX86Common.h: |
| (JSC::MacroAssemblerX86Common::add32): |
| (JSC::MacroAssemblerX86Common::and32): |
| (JSC::MacroAssemblerX86Common::lshift32): |
| (JSC::MacroAssemblerX86Common::mul32): |
| (JSC::MacroAssemblerX86Common::or32): |
| (JSC::MacroAssemblerX86Common::rshift32): |
| (JSC::MacroAssemblerX86Common::urshift32): |
| (JSC::MacroAssemblerX86Common::sub32): |
| (JSC::MacroAssemblerX86Common::xor32): |
| (JSC::MacroAssemblerX86Common::store32): |
| (JSC::MacroAssemblerX86Common::branchTruncateDoubleToInt32): |
| (JSC::MacroAssemblerX86Common::push): |
| (JSC::MacroAssemblerX86Common::move): |
| (JSC::MacroAssemblerX86Common::branch8): |
| (JSC::MacroAssemblerX86Common::branch32): |
| (JSC::MacroAssemblerX86Common::branch32WithUnalignedHalfWords): |
| (JSC::MacroAssemblerX86Common::branch16): |
| (JSC::MacroAssemblerX86Common::branchTest32): |
| (JSC::MacroAssemblerX86Common::branchTest8): |
| (JSC::MacroAssemblerX86Common::branchAdd32): |
| (JSC::MacroAssemblerX86Common::branchMul32): |
| (JSC::MacroAssemblerX86Common::branchSub32): |
| (JSC::MacroAssemblerX86Common::set8Compare32): |
| (JSC::MacroAssemblerX86Common::set32Compare32): |
| (JSC::MacroAssemblerX86Common::set32Test8): |
| (JSC::MacroAssemblerX86Common::set32Test32): |
| * assembler/MacroAssemblerX86_64.h: |
| (JSC::MacroAssemblerX86_64::add32): |
| (JSC::MacroAssemblerX86_64::and32): |
| (JSC::MacroAssemblerX86_64::or32): |
| (JSC::MacroAssemblerX86_64::sub32): |
| (JSC::MacroAssemblerX86_64::loadDouble): |
| (JSC::MacroAssemblerX86_64::addDouble): |
| (JSC::MacroAssemblerX86_64::convertInt32ToDouble): |
| (JSC::MacroAssemblerX86_64::store32): |
| (JSC::MacroAssemblerX86_64::call): |
| (JSC::MacroAssemblerX86_64::tailRecursiveCall): |
| (JSC::MacroAssemblerX86_64::makeTailRecursiveCall): |
| (JSC::MacroAssemblerX86_64::addPtr): |
| (JSC::MacroAssemblerX86_64::andPtr): |
| (JSC::MacroAssemblerX86_64::orPtr): |
| (JSC::MacroAssemblerX86_64::subPtr): |
| (JSC::MacroAssemblerX86_64::xorPtr): |
| (JSC::MacroAssemblerX86_64::storePtr): |
| (JSC::MacroAssemblerX86_64::setPtr): |
| (JSC::MacroAssemblerX86_64::branchPtr): |
| (JSC::MacroAssemblerX86_64::branchTestPtr): |
| (JSC::MacroAssemblerX86_64::branchSubPtr): |
| (JSC::MacroAssemblerX86_64::moveWithPatch): |
| (JSC::MacroAssemblerX86_64::branchPtrWithPatch): |
| (JSC::MacroAssemblerX86_64::storePtrWithPatch): |
| (JSC::MacroAssemblerX86_64::branchTest8): |
| * dfg/DFGJITCodeGenerator.h: |
| (JSC::DFG::JITCodeGenerator::callOperation): |
| * dfg/DFGJITCompiler.cpp: |
| (JSC::DFG::JITCompiler::jitAssertIsInt32): |
| (JSC::DFG::JITCompiler::emitCount): |
| * dfg/DFGJITCompiler.h: |
| (JSC::DFG::JITCompiler::emitPutImmediateToCallFrameHeader): |
| * dfg/DFGNonSpeculativeJIT.cpp: |
| (JSC::DFG::NonSpeculativeJIT::compile): |
| * dfg/DFGSpeculativeJIT.cpp: |
| (JSC::DFG::SpeculativeJIT::fillSpeculateCell): |
| (JSC::DFG::SpeculativeJIT::compile): |
| * jit/JIT.cpp: |
| (JSC::JIT::emitTimeoutCheck): |
| (JSC::JIT::privateCompile): |
| * jit/JIT.h: |
| * jit/JITArithmetic.cpp: |
| (JSC::JIT::emit_op_urshift): |
| (JSC::JIT::emitSlow_op_urshift): |
| (JSC::JIT::emit_op_post_inc): |
| (JSC::JIT::emit_op_post_dec): |
| (JSC::JIT::emit_op_pre_inc): |
| (JSC::JIT::emit_op_pre_dec): |
| (JSC::JIT::emit_op_mod): |
| * jit/JITArithmetic32_64.cpp: |
| (JSC::JIT::emit_op_negate): |
| (JSC::JIT::emit_op_jnless): |
| (JSC::JIT::emit_op_jless): |
| (JSC::JIT::emit_op_jlesseq): |
| (JSC::JIT::emit_op_lshift): |
| (JSC::JIT::emitRightShift): |
| (JSC::JIT::emitRightShiftSlowCase): |
| (JSC::JIT::emit_op_bitand): |
| (JSC::JIT::emit_op_bitor): |
| (JSC::JIT::emit_op_bitxor): |
| (JSC::JIT::emit_op_bitnot): |
| (JSC::JIT::emit_op_post_inc): |
| (JSC::JIT::emit_op_post_dec): |
| (JSC::JIT::emitSlow_op_post_dec): |
| (JSC::JIT::emit_op_pre_inc): |
| (JSC::JIT::emit_op_pre_dec): |
| (JSC::JIT::emit_op_add): |
| (JSC::JIT::emitAdd32Constant): |
| (JSC::JIT::emit_op_sub): |
| (JSC::JIT::emitSub32Constant): |
| (JSC::JIT::emitBinaryDoubleOp): |
| (JSC::JIT::emit_op_mul): |
| (JSC::JIT::emitSlow_op_mul): |
| (JSC::JIT::emit_op_div): |
| (JSC::JIT::emit_op_mod): |
| * jit/JITCall.cpp: |
| (JSC::JIT::compileOpCallVarargs): |
| (JSC::JIT::compileOpCall): |
| (JSC::JIT::compileOpCallSlowCase): |
| * jit/JITCall32_64.cpp: |
| (JSC::JIT::compileOpCallVarargs): |
| (JSC::JIT::emit_op_ret_object_or_this): |
| (JSC::JIT::compileOpCall): |
| (JSC::JIT::compileOpCallSlowCase): |
| * jit/JITInlineMethods.h: |
| (JSC::JIT::emitPutCellToCallFrameHeader): |
| (JSC::JIT::emitPutIntToCallFrameHeader): |
| (JSC::JIT::emitPutImmediateToCallFrameHeader): |
| (JSC::JIT::emitLoadCharacterString): |
| (JSC::JIT::restoreArgumentReferenceForTrampoline): |
| (JSC::JIT::checkStructure): |
| (JSC::JIT::setSamplingFlag): |
| (JSC::JIT::clearSamplingFlag): |
| (JSC::JIT::emitCount): |
| (JSC::JIT::sampleInstruction): |
| (JSC::JIT::sampleCodeBlock): |
| (JSC::JIT::emitStoreInt32): |
| (JSC::JIT::emitStoreCell): |
| (JSC::JIT::emitStoreBool): |
| (JSC::JIT::emitJumpSlowCaseIfNotJSCell): |
| (JSC::JIT::emitInitRegister): |
| (JSC::JIT::emitJumpIfJSCell): |
| (JSC::JIT::emitJumpIfNotJSCell): |
| (JSC::JIT::emitJumpIfImmediateInteger): |
| (JSC::JIT::emitJumpIfNotImmediateInteger): |
| (JSC::JIT::emitFastArithDeTagImmediate): |
| (JSC::JIT::emitFastArithDeTagImmediateJumpIfZero): |
| (JSC::JIT::emitFastArithReTagImmediate): |
| (JSC::JIT::emitTagAsBoolImmediate): |
| * jit/JITOpcodes.cpp: |
| (JSC::JIT::privateCompileCTIMachineTrampolines): |
| (JSC::JIT::privateCompileCTINativeCall): |
| (JSC::JIT::emit_op_check_has_instance): |
| (JSC::JIT::emit_op_instanceof): |
| (JSC::JIT::emit_op_ret_object_or_this): |
| (JSC::JIT::emit_op_resolve): |
| (JSC::JIT::emit_op_to_primitive): |
| (JSC::JIT::emit_op_resolve_base): |
| (JSC::JIT::emit_op_ensure_property_exists): |
| (JSC::JIT::emit_op_resolve_skip): |
| (JSC::JIT::emit_op_resolve_global): |
| (JSC::JIT::emitSlow_op_resolve_global): |
| (JSC::JIT::emit_op_not): |
| (JSC::JIT::emit_op_jfalse): |
| (JSC::JIT::emit_op_jeq_null): |
| (JSC::JIT::emit_op_jneq_null): |
| (JSC::JIT::emit_op_jneq_ptr): |
| (JSC::JIT::emit_op_jsr): |
| (JSC::JIT::emit_op_resolve_with_base): |
| (JSC::JIT::emit_op_new_func_exp): |
| (JSC::JIT::emit_op_jtrue): |
| (JSC::JIT::emit_op_get_pnames): |
| (JSC::JIT::emit_op_next_pname): |
| (JSC::JIT::emit_op_to_jsnumber): |
| (JSC::JIT::emit_op_push_new_scope): |
| (JSC::JIT::emit_op_catch): |
| (JSC::JIT::emit_op_eq_null): |
| (JSC::JIT::emit_op_neq_null): |
| (JSC::JIT::emit_op_init_lazy_reg): |
| (JSC::JIT::emit_op_convert_this): |
| (JSC::JIT::emit_op_convert_this_strict): |
| (JSC::JIT::emitSlow_op_not): |
| (JSC::JIT::emitSlow_op_neq): |
| (JSC::JIT::emit_op_get_arguments_length): |
| (JSC::JIT::emitSlow_op_get_arguments_length): |
| (JSC::JIT::emit_op_get_argument_by_val): |
| (JSC::JIT::emitSlow_op_resolve_global_dynamic): |
| (JSC::JIT::emit_op_new_regexp): |
| (JSC::JIT::emit_op_load_varargs): |
| (JSC::JIT::emitSlow_op_load_varargs): |
| (JSC::JIT::emit_op_new_func): |
| * jit/JITOpcodes32_64.cpp: |
| (JSC::JIT::privateCompileCTIMachineTrampolines): |
| (JSC::JIT::privateCompileCTINativeCall): |
| (JSC::JIT::emit_op_loop_if_lesseq): |
| (JSC::JIT::emit_op_check_has_instance): |
| (JSC::JIT::emit_op_instanceof): |
| (JSC::JIT::emit_op_get_scoped_var): |
| (JSC::JIT::emit_op_put_scoped_var): |
| (JSC::JIT::emit_op_tear_off_activation): |
| (JSC::JIT::emit_op_tear_off_arguments): |
| (JSC::JIT::emit_op_resolve): |
| (JSC::JIT::emit_op_to_primitive): |
| (JSC::JIT::emit_op_resolve_base): |
| (JSC::JIT::emit_op_ensure_property_exists): |
| (JSC::JIT::emit_op_resolve_skip): |
| (JSC::JIT::emit_op_resolve_global): |
| (JSC::JIT::emitSlow_op_resolve_global): |
| (JSC::JIT::emit_op_not): |
| (JSC::JIT::emit_op_jfalse): |
| (JSC::JIT::emit_op_jtrue): |
| (JSC::JIT::emit_op_jeq_null): |
| (JSC::JIT::emit_op_jneq_null): |
| (JSC::JIT::emit_op_jneq_ptr): |
| (JSC::JIT::emit_op_jsr): |
| (JSC::JIT::emit_op_eq): |
| (JSC::JIT::emitSlow_op_eq): |
| (JSC::JIT::emit_op_neq): |
| (JSC::JIT::emitSlow_op_neq): |
| (JSC::JIT::compileOpStrictEq): |
| (JSC::JIT::emit_op_eq_null): |
| (JSC::JIT::emit_op_neq_null): |
| (JSC::JIT::emit_op_resolve_with_base): |
| (JSC::JIT::emit_op_new_func_exp): |
| (JSC::JIT::emit_op_get_pnames): |
| (JSC::JIT::emit_op_next_pname): |
| (JSC::JIT::emit_op_to_jsnumber): |
| (JSC::JIT::emit_op_push_new_scope): |
| (JSC::JIT::emit_op_catch): |
| (JSC::JIT::emit_op_create_activation): |
| (JSC::JIT::emit_op_create_arguments): |
| (JSC::JIT::emit_op_convert_this): |
| (JSC::JIT::emit_op_convert_this_strict): |
| (JSC::JIT::emit_op_get_arguments_length): |
| (JSC::JIT::emitSlow_op_get_arguments_length): |
| (JSC::JIT::emit_op_get_argument_by_val): |
| (JSC::JIT::softModulo): |
| * jit/JITPropertyAccess.cpp: |
| (JSC::JIT::stringGetByValStubGenerator): |
| (JSC::JIT::emit_op_get_by_val): |
| (JSC::JIT::emitSlow_op_get_by_val): |
| (JSC::JIT::emit_op_get_by_pname): |
| (JSC::JIT::emit_op_put_by_val): |
| (JSC::JIT::emit_op_put_by_index): |
| (JSC::JIT::emit_op_put_getter): |
| (JSC::JIT::emit_op_put_setter): |
| (JSC::JIT::emit_op_del_by_id): |
| (JSC::JIT::emit_op_get_by_id): |
| (JSC::JIT::emit_op_put_by_id): |
| (JSC::JIT::emit_op_method_check): |
| (JSC::JIT::compileGetByIdHotPath): |
| (JSC::JIT::compileGetByIdSlowCase): |
| (JSC::JIT::emitSlow_op_put_by_id): |
| (JSC::JIT::testPrototype): |
| (JSC::JIT::privateCompilePutByIdTransition): |
| (JSC::JIT::privateCompilePatchGetArrayLength): |
| (JSC::JIT::privateCompileGetByIdProto): |
| (JSC::JIT::privateCompileGetByIdSelfList): |
| (JSC::JIT::privateCompileGetByIdProtoList): |
| (JSC::JIT::privateCompileGetByIdChainList): |
| (JSC::JIT::privateCompileGetByIdChain): |
| * jit/JITPropertyAccess32_64.cpp: |
| (JSC::JIT::emit_op_put_getter): |
| (JSC::JIT::emit_op_put_setter): |
| (JSC::JIT::emit_op_del_by_id): |
| (JSC::JIT::emit_op_get_by_id): |
| (JSC::JIT::emit_op_put_by_id): |
| (JSC::JIT::emit_op_method_check): |
| (JSC::JIT::stringGetByValStubGenerator): |
| (JSC::JIT::emit_op_get_by_val): |
| (JSC::JIT::emitSlow_op_get_by_val): |
| (JSC::JIT::emit_op_put_by_val): |
| (JSC::JIT::compileGetByIdHotPath): |
| (JSC::JIT::compileGetByIdSlowCase): |
| (JSC::JIT::emitSlow_op_put_by_id): |
| (JSC::JIT::testPrototype): |
| (JSC::JIT::privateCompilePutByIdTransition): |
| (JSC::JIT::privateCompilePatchGetArrayLength): |
| (JSC::JIT::privateCompileGetByIdProto): |
| (JSC::JIT::privateCompileGetByIdSelfList): |
| (JSC::JIT::privateCompileGetByIdProtoList): |
| (JSC::JIT::privateCompileGetByIdChainList): |
| (JSC::JIT::privateCompileGetByIdChain): |
| (JSC::JIT::emit_op_get_by_pname): |
| * jit/JITStubCall.h: |
| (JSC::JITStubCall::addArgument): |
| * jit/JITStubs.cpp: |
| (JSC::getPolymorphicAccessStructureListSlot): |
| (JSC::DEFINE_STUB_FUNCTION): |
| * jit/JSInterfaceJIT.h: |
| (JSC::JSInterfaceJIT::emitJumpIfNotJSCell): |
| (JSC::JSInterfaceJIT::emitLoadInt32): |
| (JSC::JSInterfaceJIT::emitLoadDouble): |
| * jit/SpecializedThunkJIT.h: |
| (JSC::SpecializedThunkJIT::SpecializedThunkJIT): |
| (JSC::SpecializedThunkJIT::loadJSStringArgument): |
| (JSC::SpecializedThunkJIT::tagReturnAsInt32): |
| (JSC::SpecializedThunkJIT::tagReturnAsJSCell): |
| * jit/ThunkGenerators.cpp: |
| (JSC::charToString): |
| (JSC::powThunkGenerator): |
| * yarr/YarrJIT.cpp: |
| (JSC::Yarr::YarrGenerator::matchCharacterClass): |
| (JSC::Yarr::YarrGenerator::storeToFrame): |
| (JSC::Yarr::YarrGenerator::storeToFrameWithPatch): |
| (JSC::Yarr::YarrGenerator::ParenthesesTail::generateCode): |
| (JSC::Yarr::YarrGenerator::generatePatternCharacterSingle): |
| (JSC::Yarr::YarrGenerator::generatePatternCharacterFixed): |
| (JSC::Yarr::YarrGenerator::generatePatternCharacterGreedy): |
| (JSC::Yarr::YarrGenerator::generatePatternCharacterNonGreedy): |
| (JSC::Yarr::YarrGenerator::generateCharacterClassFixed): |
| (JSC::Yarr::YarrGenerator::generateCharacterClassGreedy): |
| (JSC::Yarr::YarrGenerator::generateCharacterClassNonGreedy): |
| (JSC::Yarr::YarrGenerator::generateParenthesesSingle): |
| (JSC::Yarr::YarrGenerator::generateDisjunction): |
| |
| 2011-03-28 Andras Becsi <abecsi@webkit.org> |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| [Qt] Fix the linking of jsc with MinGW after r81963. |
| |
| * jsc.pro: add -l and remove the lib suffix. |
| |
| 2011-03-27 Ben Taylor <bentaylor.solx86@gmail.com> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| https://bugs.webkit.org/show_bug.cgi?id=57170 Fix last elements |
| in an enum to remove a trailing comma. Sun Studio 12 CC errors out. |
| |
| Compile fix only, no actual code change. |
| |
| * wtf/MessageQueue.h: |
| |
| 2011-03-25 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Darin Adler. |
| |
| Allow defineOwnProperty to work on DOMObjects |
| https://bugs.webkit.org/show_bug.cgi?id=57129 |
| |
| Fix a couple of places where we uses getter()/setter() rather |
| than [gs]etterPresent(). |
| |
| * runtime/JSObject.cpp: |
| (JSC::JSObject::defineOwnProperty): |
| |
| 2011-03-25 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Crash when paused at a breakpoint caused by inaccurate Activation records. |
| https://bugs.webkit.org/show_bug.cgi?id=57120 |
| |
| * runtime/JSActivation.cpp: |
| (JSC::JSActivation::symbolTableGet): |
| (JSC::JSActivation::symbolTablePut): |
| (JSC::JSActivation::getOwnPropertyNames): |
| (JSC::JSActivation::symbolTablePutWithAttributes): |
| |
| 2011-03-24 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Crash in debugger beneath MarkStack::drain @ me.com, ibm.com |
| https://bugs.webkit.org/show_bug.cgi?id=57080 |
| <rdar://problem/8525907> |
| |
| The crash was caused by changes in the executable after recompilation. |
| |
| The fix is for the activation to copy the data it needs instead of |
| relying on the data in the executable. |
| |
| SunSpider and v8 report no change. |
| |
| * runtime/Arguments.h: |
| (JSC::JSActivation::copyRegisters): Use our own data members instead of |
| reading data out of the executable. |
| |
| * runtime/JSActivation.cpp: |
| (JSC::JSActivation::JSActivation): Initialize our data members. |
| |
| (JSC::JSActivation::markChildren): |
| (JSC::JSActivation::symbolTableGet): |
| (JSC::JSActivation::symbolTablePut): |
| (JSC::JSActivation::getOwnPropertyNames): |
| (JSC::JSActivation::symbolTablePutWithAttributes): |
| (JSC::JSActivation::isDynamicScope): |
| (JSC::JSActivation::argumentsGetter): Use our own data members instead of |
| reading data out of the executable. |
| |
| * runtime/JSActivation.h: Added new data members to track data previously |
| tracked by the executable. Since I've removed the executable pointer, |
| on a 64bit system, I've only made activations bigger by an int. |
| |
| 2011-03-25 David Kilzer <ddkilzer@apple.com> |
| |
| Remove duplicate entry from JavaScriptCore.exp |
| |
| JSC::createStackOverflowError(JSC::ExecState*) was originally |
| exported in r60057, then duplicated in r60392. |
| |
| * JavaScriptCore.exp: Removed duplicate entry. |
| |
| 2011-03-25 Jarred Nicholls <jarred@sencha.com> |
| |
| Reviewed by Ariya Hidayat. |
| |
| [Qt] MSVC Build Error - need to link advapi32.lib for jsc.exe |
| https://bugs.webkit.org/show_bug.cgi?id=56098 |
| |
| Need to link advapi32.lib for jsc.exe since wtf/OSRandomSource.cpp uses the Win32 Crypto API |
| |
| * jsc.pro: |
| |
| 2011-03-24 Nikolas Zimmermann <nzimmermann@rim.com> |
| |
| Reviewed by Darin Adler. |
| |
| Introduce WTF HexNumber.h |
| https://bugs.webkit.org/show_bug.cgi?id=56099 |
| |
| Introduce a set of functions that ease converting from a bye or a number to a hex string, |
| replacing several of these conversions and String::format("%x") usages all over WebCore. |
| |
| * GNUmakefile.am: Add HexNumber.h to build. |
| * JavaScriptCore.exp: Export StringBuilder::reserveCapacity. |
| * JavaScriptCore.gypi: Add HexNumber.h to build. |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Export StringBuilder::reserveCapacity. |
| * JavaScriptCore.vcproj/WTF/WTF.vcproj: Add HexNumber.h to build. |
| * JavaScriptCore.xcodeproj/project.pbxproj: Ditto. |
| * wtf/CMakeLists.txt: Ditto. |
| * wtf/HexNumber.h: Added. |
| (WTF::Internal::hexDigitsForMode): Internal helper. |
| (WTF::appendByteAsHex): Free function, that appends a byte as hex string into a destination. |
| (WTF::placeByteAsHex): Ditto, but places the result using *foo++ = '..' or foo[index++] = '..' |
| (WTF::appendUnsignedAsHex): Free function, that appends a number as hex string into a destination. |
| |
| 2011-03-24 Geoffrey Garen <ggaren@apple.com> |
| |
| Windows build fix take 2: Add new symobl. |
| |
| (I should have used the EWS bots for this!) |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
| |
| 2011-03-24 Geoffrey Garen <ggaren@apple.com> |
| |
| Windows build fix take 1: Removed old symobl. |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
| |
| 2011-03-24 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Ensure that all compilation takes place within a dynamic global object scope |
| https://bugs.webkit.org/show_bug.cgi?id=57054 |
| <rdar://problem/9083011> |
| |
| Otherwise, entry to the global object scope might throw away the code |
| we just compiled, causing a crash. |
| |
| * JavaScriptCore.exp: Updated for signature change. |
| |
| * debugger/Debugger.cpp: |
| (JSC::evaluateInGlobalCallFrame): |
| * debugger/DebuggerCallFrame.cpp: |
| (JSC::DebuggerCallFrame::evaluate): Removed explicit compilation calls |
| here because (a) they took place outside a dynamic global object scope |
| and (b) they were redundant. |
| |
| * interpreter/CachedCall.h: |
| (JSC::CachedCall::CachedCall): Updated for signature change. |
| |
| * interpreter/Interpreter.cpp: |
| (JSC::Interpreter::execute): |
| (JSC::Interpreter::executeCall): |
| (JSC::Interpreter::executeConstruct): Declare our dynamic global object |
| scope earlier, to ensure that compilation takes place within it. |
| |
| * runtime/Completion.cpp: |
| (JSC::evaluate): Removed explicit compilation calls here because (a) |
| they took place outside a dynamic global object scope and (b) they were |
| redundant. |
| |
| * runtime/Executable.h: |
| (JSC::EvalExecutable::compile): |
| (JSC::ProgramExecutable::compile): |
| (JSC::FunctionExecutable::compileForCall): |
| (JSC::FunctionExecutable::compileForConstruct): Added an ASSERT to |
| verify our new invariant that all compilation takes place within a |
| dynamic global object scope. |
| |
| * runtime/JSGlobalObject.cpp: |
| (JSC::DynamicGlobalObjectScope::DynamicGlobalObjectScope): |
| * runtime/JSGlobalObject.h: Changed the signature of DynamicGlobalObjectScope |
| to require a JSGlobalData instead of an ExecState* since it is often |
| easier to provide the former, and the latter was not necessary. |
| |
| 2011-03-24 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Geoffrey Garen. |
| |
| REGRESSION (r79987-r80210): Crash in JSWeakObjectMapClear |
| https://bugs.webkit.org/show_bug.cgi?id=55671 |
| |
| This is no longer necessary, and it seems that with the new weakmap |
| model it's simply unsafe, so this reduces it to a no-op. |
| |
| * API/JSWeakObjectMapRefPrivate.cpp: |
| |
| 2011-03-24 Ben Taylor <bentaylor.solx86@gmail.com> |
| |
| Reviewed by Darin Adler. |
| |
| https://bugs.webkit.org/show_bug.cgi?id=20302 |
| Correct implementation of signbit on Solaris |
| |
| * wtf/MathExtras.h: |
| (signbit): |
| |
| 2011-03-23 Mark Rowe <mrowe@apple.com> |
| |
| Reviewed by Darin Adler. |
| |
| <rdar://problem/7959320> Threads that use APIs above the BSD layer must be registered with the Obj-C GC. |
| |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::initializeCurrentThreadInternal): |
| |
| 2011-03-23 Mark Rowe <mrowe@apple.com> |
| |
| Stop setting OTHER_OPTIONS in JavaScriptCore's Makefile. |
| |
| It's not necessary to pass "-target All" as xcodebuild always builds the |
| first target in the project unless otherwise specified. The presence of |
| that option also breaks "make clean" since that results in both the |
| -target and -alltargets options being passed to xcodebuild. |
| |
| * Makefile: |
| |
| 2011-03-23 Pavel Feldman <pfeldman@chromium.org> |
| |
| Not reviewed: bring back Vector::contains that was removed as a part of roll back. |
| |
| * wtf/Vector.h: |
| (WTF::::contains): |
| |
| 2011-03-23 Sheriff Bot <webkit.review.bot@gmail.com> |
| |
| Unreviewed, rolling out r81686. |
| http://trac.webkit.org/changeset/81686 |
| https://bugs.webkit.org/show_bug.cgi?id=56914 |
| |
| Breaks webkit_tests in Chromium again. (Requested by pfeldman |
| on #webkit). |
| |
| * wtf/Vector.h: |
| |
| 2011-03-23 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Eric Seidel. |
| |
| JavaScriptCore GYP build should work on a case-sensitive file system |
| https://bugs.webkit.org/show_bug.cgi?id=56911 |
| |
| The issue is that there are two UString.h headers, one named UString.h |
| and one named ustring.h. This patch excludes ustring.h from the header |
| map to avoid confusion. While I was editing this part of the GYP file, |
| I cleaned up the exclude rules to be more modern. |
| |
| * gyp/JavaScriptCore.gyp: |
| |
| 2011-03-22 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Maciej Stachowiak. |
| |
| REGRESSION (r78382): No scripts appear in the Web Inspector's Scripts |
| panel on Windows, and many inspector regression tests are failing |
| https://bugs.webkit.org/show_bug.cgi?id=54490 |
| |
| The bug was caused by two different classes using the same name (Recompiler). |
| |
| * debugger/Debugger.cpp: |
| * runtime/JSGlobalData.cpp: |
| (WTF::Recompiler::operator()): Put Recompiler in an anonymous namespace, |
| so our two recompilers' inline functions don't stomp each other at |
| link time. |
| |
| 2011-03-22 Sam Weinig <sam@webkit.org> |
| |
| Reviewed by Mark Rowe. |
| |
| Remove USE_WK_SCROLLBAR_PAINTER_AND_CONTROLLER. |
| <rdar://problem/8944718> |
| |
| * DerivedSources.make: |
| Remove generation of USE_WK_SCROLLBAR_PAINTER_AND_CONTROLLER. |
| |
| 2011-03-22 Gabor Loki <loki@webkit.org> |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| [Qt] Add DFG module to build system (disabled by default). |
| https://bugs.webkit.org/show_bug.cgi?id=56845 |
| |
| * JavaScriptCore.pri: |
| * JavaScriptCore.pro: |
| |
| 2011-03-22 Eric Seidel <eric@webkit.org> |
| |
| Reviewed by Adam Barth. |
| |
| Add support to build-webkit for building with gyp-generated project files |
| https://bugs.webkit.org/show_bug.cgi?id=56877 |
| |
| Found a couple missing Private headers while trying to make WebCore build. |
| |
| * JavaScriptCore.gypi: |
| |
| 2011-03-22 Eric Seidel <eric@webkit.org> |
| |
| Reviewed by Adam Barth. |
| |
| Make it possible to build JavaScriptCore and WebCore gyp builds outside of Source |
| https://bugs.webkit.org/show_bug.cgi?id=56867 |
| |
| This should make it possible to build the gyp-generated JavaScriptCore.xcodeproj |
| from a JavaScriptCore directory outside of Source. |
| |
| * gyp/JavaScriptCore.gyp: |
| * gyp/run-if-exists.sh: Added. |
| * gyp/update-info-plist.sh: Added. |
| |
| 2011-03-22 Eric Seidel <eric@webkit.org> |
| |
| Reviewed by Adam Barth. |
| |
| Add Profiling Configuration to JavaScriptCore gyp build |
| https://bugs.webkit.org/show_bug.cgi?id=56862 |
| |
| It appears this is identical to Release, but I suspect |
| there is someone/thing who uses the Profiling target |
| so we're adding it for completeness. |
| |
| * gyp/JavaScriptCore.gyp: |
| |
| 2011-03-22 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Eric Seidel. |
| |
| Remove os_win32_files variable from the GYP build |
| https://bugs.webkit.org/show_bug.cgi?id=56804 |
| |
| Now that our understanding of GYP is sufficiently advanced, we don't |
| need os_win32_files any more. (Turns out Eric was right, as he always |
| is.) |
| |
| * JavaScriptCore.gypi: |
| |
| 2011-03-22 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Eric Seidel. |
| |
| GYP build of JavaScriptCore should be able to link from an empty WebKitBuild directory |
| https://bugs.webkit.org/show_bug.cgi?id=56803 |
| |
| Previously, we thought we should generate the derived source files in |
| the shared intermediate build products directory, but there are |
| assumptions built into other parts of the Mac build system that the |
| derived source files will be generated in a particular subdirectory of |
| the build products directory. |
| |
| This patch is a partial revert of the change that moved the derived |
| source files to the shared intermediate directory. After this patch, |
| the GYP build can build JavaScriptCore without help from the main |
| normal build system. |
| |
| * JavaScriptCore.gypi: |
| * gyp/JavaScriptCore.gyp: |
| * gyp/generate-derived-sources.sh: |
| * gyp/generate-dtrace-header.sh: |
| |
| 2011-03-22 Jay Civelli <jcivelli@chromium.org> |
| |
| Reviewed by David Levin. |
| |
| Adding a contains method to Vector. |
| https://bugs.webkit.org/show_bug.cgi?id=55859 |
| |
| * wtf/Vector.h: |
| (WTF::Vector::contains): |
| |
| 2011-03-22 Gabor Loki <loki@webkit.org> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Fix a bunch of typos in DFG. |
| https://bugs.webkit.org/show_bug.cgi?id=56813 |
| |
| * dfg/DFGByteCodeParser.cpp: |
| (JSC::DFG::parse): |
| * dfg/DFGGenerationInfo.h: |
| (JSC::DFG::GenerationInfo::setSpilled): |
| * dfg/DFGGraph.cpp: |
| (JSC::DFG::Graph::dump): |
| * dfg/DFGGraph.h: |
| * dfg/DFGJITCodeGenerator.h: |
| (JSC::DFG::JITCodeGenerator::setupStubArguments): |
| * dfg/DFGJITCompiler.cpp: |
| (JSC::DFG::JITCompiler::compileFunction): |
| * dfg/DFGJITCompiler.h: |
| * dfg/DFGNode.h: |
| * dfg/DFGNonSpeculativeJIT.h: |
| * dfg/DFGOperations.h: |
| * dfg/DFGRegisterBank.h: |
| (JSC::DFG::RegisterBank::allocate): |
| * dfg/DFGScoreBoard.h: |
| (JSC::DFG::ScoreBoard::~ScoreBoard): |
| (JSC::DFG::ScoreBoard::allocate): |
| * dfg/DFGSpeculativeJIT.cpp: |
| (JSC::DFG::SpeculativeJIT::compile): |
| * dfg/DFGSpeculativeJIT.h: |
| |
| 2011-03-22 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Eric Seidel. |
| |
| Production configuration in GYP isn't set up correctly |
| https://bugs.webkit.org/show_bug.cgi?id=56786 |
| |
| Update JavaScriptCore.gyp with information mined from |
| JavaScriptCore.xcodeproj. |
| |
| * JavaScriptCore.gypi: |
| * gyp/JavaScriptCore.gyp: |
| |
| 2011-03-22 Kent Tamura <tkent@chromium.org> |
| |
| Reviewed by Eric Seidel. |
| |
| REGRESSION(r80096): Number type input unexpectedly rounds fractional values |
| https://bugs.webkit.org/show_bug.cgi?id=56367 |
| |
| Introduce clampToInteger(unsigned). |
| |
| * wtf/MathExtras.h: |
| (clampToInteger): Added. |
| |
| 2011-03-21 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Eric Seidel. |
| |
| GYP build should not have include paths that point within the source tree |
| https://bugs.webkit.org/show_bug.cgi?id=56788 |
| |
| Turns out we don't need these include paths anymore now that we have |
| header maps working properly. |
| |
| * gyp/JavaScriptCore.gyp: |
| - Also, remove jsc.cpp from the excluded list because it's not part |
| of the jsc_files variable instead of the javascriptcore_files |
| variable. |
| |
| 2011-03-21 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Eric Seidel. |
| |
| Solve the Assertions.cpp / -Wno-missing-format-attribute mystery |
| https://bugs.webkit.org/show_bug.cgi?id=56780 |
| |
| The reason we couldn't resolve this warning in the GYP build was that |
| the normal build disables this warning specifically for this file. |
| This patch takes the same approach as the previous patch to |
| WebCoreObjCExtras.mm in that it uses a pragma to suppress the warning |
| (rather than a build system configuration). |
| |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| - Remove the special-case for this file. |
| * gyp/JavaScriptCore.gyp: |
| - Remove the work-around for this issue. |
| * wtf/Assertions.cpp: |
| - Add a pragma disabling this warning for this file. |
| |
| 2011-03-21 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Dimitri Glazkov. |
| |
| WebCore GYP build shouldn't crash on startup |
| https://bugs.webkit.org/show_bug.cgi?id=56776 |
| |
| Debug builds shouldn't define NDEBUG. This same logic exists in the |
| project.pbxproj file. |
| |
| * gyp/JavaScriptCore.gyp: |
| |
| 2011-03-21 Robert Kroeger <rjkroege@chromium.org> |
| |
| Reviewed by Antonio Gomes. |
| |
| Flag to enable/disable a GestureReocognizer framework |
| |
| https://bugs.webkit.org/show_bug.cgi?id=49345 |
| |
| * wtf/Platform.h: |
| |
| 2011-03-21 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Dimitri Glazkov. |
| |
| Add new files to JavaScriptCore.gypi |
| https://bugs.webkit.org/show_bug.cgi?id=56766 |
| |
| * JavaScriptCore.gypi: |
| |
| 2011-03-21 Sheriff Bot <webkit.review.bot@gmail.com> |
| |
| Unreviewed, rolling out r81377. |
| http://trac.webkit.org/changeset/81377 |
| https://bugs.webkit.org/show_bug.cgi?id=56765 |
| |
| WebPageSerializerTest.MultipleFrames is broken (Requested by |
| simonjam on #webkit). |
| |
| * wtf/Vector.h: |
| |
| 2011-03-21 Gabor Loki <loki@webkit.org> |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| Extend constant pool to be able to store 16 bit instructions with a constant |
| https://bugs.webkit.org/show_bug.cgi?id=46796 |
| |
| The putShortWithConstantInt function inserts a 16 bit instruction which |
| refers a 32 bits constant or literal. This is a vital function for those |
| target which loads a PC relative value with a 16 bit instruction (like |
| Thumb-2 instruction set and SH4 architecture). |
| |
| * assembler/AssemblerBuffer.h: |
| (JSC::AssemblerBuffer::putIntegral): |
| (JSC::AssemblerBuffer::putIntegralUnchecked): |
| * assembler/AssemblerBufferWithConstantPool.h: |
| |
| 2011-03-21 Philippe Normand <pnormand@igalia.com> |
| |
| Unreviewed, GTK distcheck build fix. |
| |
| * GNUmakefile.am: |
| |
| 2011-03-20 Bill Budge <bbudge@chromium.org> |
| |
| Reviewed by Adam Barth. |
| |
| Rename ThreadSafeShared to ThreadSafeRefCounted |
| https://bugs.webkit.org/show_bug.cgi?id=56714 |
| |
| No new tests. Exposes no new functionality. |
| |
| * API/JSClassRef.h: |
| * API/OpaqueJSString.h: |
| * GNUmakefile.am: |
| * JavaScriptCore.gypi: |
| * JavaScriptCore.vcproj/WTF/WTF.vcproj: |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| * wtf/Atomics.h: |
| * wtf/CMakeLists.txt: |
| * wtf/CrossThreadRefCounted.h: |
| (WTF::CrossThreadRefCounted::CrossThreadRefCounted): |
| (WTF::::crossThreadCopy): |
| * wtf/ThreadSafeRefCounted.h: Copied from wtf/ThreadSafeShared.h. |
| (WTF::ThreadSafeRefCountedBase::ThreadSafeRefCountedBase): |
| (WTF::ThreadSafeRefCountedBase::ref): |
| (WTF::ThreadSafeRefCountedBase::refCount): |
| (WTF::ThreadSafeRefCountedBase::derefBase): |
| (WTF::ThreadSafeRefCounted::ThreadSafeRefCounted): |
| * wtf/ThreadSafeShared.h: Removed. |
| * wtf/Threading.h: |
| |
| 2011-03-19 Patrick Gansterer <paroga@webkit.org> |
| |
| Reviewed by Darin Adler. |
| |
| Remove StringImpl::computeHash() |
| https://bugs.webkit.org/show_bug.cgi?id=49894 |
| |
| Replace remainig StringImpl::computeHash with StringImpl::computeHashStringHasher. |
| |
| * wtf/text/AtomicString.cpp: |
| (WTF::CStringTranslator::hash): |
| (WTF::UCharBufferTranslator::hash): |
| (WTF::HashAndCharactersTranslator::hash): |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::setHash): |
| (WTF::StringImpl::hash): |
| |
| 2011-03-19 Patrick Gansterer <paroga@webkit.org> |
| |
| Reviewed by Darin Adler. |
| |
| Rename WTF::StringHasher methods |
| https://bugs.webkit.org/show_bug.cgi?id=53532 |
| |
| Rename createHash to computeHash and createBlobHash to hashMemory. |
| Also add a using WTF::StringHasher in the header file. |
| |
| * profiler/CallIdentifier.h: |
| (JSC::CallIdentifier::Hash::hash): |
| * runtime/Identifier.cpp: |
| (JSC::IdentifierCStringTranslator::hash): |
| (JSC::IdentifierUCharBufferTranslator::hash): |
| * wtf/StringHasher.h: |
| (WTF::StringHasher::computeHash): |
| (WTF::StringHasher::hashMemory): |
| * wtf/text/StringHash.h: |
| (WTF::CaseFoldingHash::hash): |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::computeHash): |
| * wtf/unicode/UTF8.cpp: |
| (WTF::Unicode::calculateStringHashAndLengthFromUTF8Internal): |
| |
| 2011-03-18 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| [GTK] JSC crashes in 32bit Release bots after r80743 |
| https://bugs.webkit.org/show_bug.cgi?id=56180 |
| |
| The crash was caused by referencing GC memory from a GC destructor. This |
| is not safe because destruction time / order is not guaranteed. |
| |
| * profiler/ProfileGenerator.cpp: |
| (JSC::ProfileGenerator::create): |
| (JSC::ProfileGenerator::ProfileGenerator): |
| (JSC::ProfileGenerator::willExecute): |
| (JSC::ProfileGenerator::didExecute): |
| * profiler/ProfileGenerator.h: |
| (JSC::ProfileGenerator::origin): Made ExecState* the first argument, |
| to match the rest of this class and JSC. |
| |
| Use a JSGlobalObject* instead of an ExecState* with an indirect reference |
| to a JSGlobalObject* to track our origin. This is simpler and more |
| efficient, and it removes the destruction order dependency that was causing |
| our crash. |
| |
| * profiler/Profiler.cpp: |
| (JSC::Profiler::startProfiling): Updated for change to JSGlobalObject*. |
| (JSC::Profiler::stopProfiling): New function for stopping all profiles |
| for a given global object. This is more straight-forward than multiplexing |
| through the old function. |
| |
| (JSC::dispatchFunctionToProfiles): Updated for change to JSGlobalObject*. |
| * profiler/Profiler.h: Ditto. |
| |
| * runtime/JSGlobalObject.cpp: |
| (JSC::JSGlobalObject::~JSGlobalObject): Ditto. |
| |
| 2011-03-17 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| 1 Structure leaked beneath JSGlobalData::storeVPtrs() |
| https://bugs.webkit.org/show_bug.cgi?id=56595 |
| |
| * runtime/Executable.cpp: |
| (JSC::EvalExecutable::EvalExecutable): |
| (JSC::ProgramExecutable::ProgramExecutable): |
| (JSC::FunctionExecutable::FunctionExecutable): |
| * runtime/Executable.h: |
| (JSC::ExecutableBase::ExecutableBase): |
| (JSC::NativeExecutable::NativeExecutable): |
| (JSC::VPtrHackExecutable::VPtrHackExecutable): |
| (JSC::ScriptExecutable::ScriptExecutable): Use a raw pointer instead of |
| PassRefPtr, like JSString does, since JSGlobalData owns the singleton |
| exectuable structure. |
| |
| 2011-03-17 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Mark Rowe. |
| |
| Fixed some string leaks seen on the buildbot |
| https://bugs.webkit.org/show_bug.cgi?id=56619 |
| |
| * runtime/PropertyMapHashTable.h: |
| (JSC::PropertyTable::~PropertyTable): DEref! |
| |
| 2011-03-17 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Crash in JSC::MarkStack::drain Under Stress |
| https://bugs.webkit.org/show_bug.cgi?id=56470 |
| |
| We perform a number of gc allocations while when |
| we are setting up new globals in a piece of global |
| code. We do this by adding new properties to the |
| symbol table, and then expanding the storage to fit |
| at the end. |
| |
| If a GC happens during this time we will report an |
| incorrect size for the global object's symbol table |
| storage. |
| |
| This patch corrects this by growing the storage size |
| before we starting adding entries to the symbol table. |
| |
| * bytecompiler/BytecodeGenerator.cpp: |
| (JSC::BytecodeGenerator::BytecodeGenerator): |
| * runtime/JSGlobalObject.cpp: |
| (JSC::JSGlobalObject::resizeRegisters): |
| |
| 2011-03-17 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| 1 Structure leaked beneath JSGlobalData::storeVPtrs() |
| https://bugs.webkit.org/show_bug.cgi?id=56595 |
| |
| * runtime/JSGlobalData.cpp: |
| (JSC::JSGlobalData::storeVPtrs): Take local ownership of the Structure |
| we're using, since the Executable is not designed to own the Structure. |
| |
| 2011-03-17 Gavin Barraclough <barraclough@apple.com> |
| |
| Rubber Stamped by Sam Weinig. |
| |
| Add missing register-register branchTest8 to MacroAssemblerX86Common/X86Assembler. |
| |
| * assembler/MacroAssemblerX86Common.h: |
| (JSC::MacroAssemblerX86Common::branchTest8): |
| * assembler/X86Assembler.h: |
| (JSC::X86Assembler::testb_rr): |
| |
| 2011-03-17 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| Bug 56603 - DFG JIT related cleanup |
| Move node generation out to separate function, move binarySearch algorithm out |
| to StdLibExtras, fix Graph::dump() to print comma between non-node children, |
| even if there are no node children. |
| |
| * bytecode/CodeBlock.h: |
| (JSC::getCallReturnOffset): |
| (JSC::CodeBlock::getStubInfo): |
| (JSC::CodeBlock::getCallLinkInfo): |
| (JSC::CodeBlock::getMethodCallLinkInfo): |
| (JSC::CodeBlock::bytecodeOffset): |
| - Move binaryChop to binarySearch in StdLibExtras |
| * dfg/DFGByteCodeParser.cpp: |
| (JSC::DFG::ByteCodeParser::ByteCodeParser): |
| (JSC::DFG::ByteCodeParser::parse): |
| (JSC::DFG::parse): |
| - Make m_noArithmetic a member, initialize m_currentIndex in the constructor. |
| * dfg/DFGByteCodeParser.h: |
| - Change parse() to not take a start index (always 0). |
| * dfg/DFGGraph.cpp: |
| (JSC::DFG::Graph::dump): |
| - Fix Graph::dump() to print comma between non-node children, even if there are no node children. |
| * dfg/DFGJITCodeGenerator.h: |
| (JSC::DFG::JITCodeGenerator::JITCodeGenerator): |
| - Initialize m_compileIndex in constructor. |
| * dfg/DFGNonSpeculativeJIT.cpp: |
| (JSC::DFG::NonSpeculativeJIT::compile): |
| * dfg/DFGNonSpeculativeJIT.h: |
| - Spilt out compilation of individual node. |
| * dfg/DFGOperations.cpp: |
| (JSC::DFG::operationConvertThis): |
| * dfg/DFGOperations.h: |
| - Cleanup parameter name. |
| * dfg/DFGSpeculativeJIT.cpp: |
| (JSC::DFG::SpeculativeJIT::compile): |
| * dfg/DFGSpeculativeJIT.h: |
| - Spilt out compilation of individual node. |
| * runtime/Executable.cpp: |
| (JSC::tryDFGCompile): |
| - Change parse() to not take a start index (always 0). |
| * wtf/StdLibExtras.h: |
| (WTF::binarySearch): |
| - Move binaryChop to binarySearch in StdLibExtras |
| |
| 2011-03-17 Anders Carlsson <andersca@apple.com> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Fix clang build. |
| |
| * runtime/JSGlobalData.cpp: |
| (JSC::JSGlobalData::storeVPtrs): |
| |
| 2011-03-17 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Darin Adler. |
| |
| 1 Structure leaked beneath JSGlobalData::storeVPtrs() |
| https://bugs.webkit.org/show_bug.cgi?id=56595 |
| |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| * runtime/JSGlobalData.cpp: |
| (JSC::JSGlobalData::storeVPtrs): Now that we have an executable, we need |
| to explicitly run its destructor. |
| |
| 2011-03-17 Jeff Miller <jeffm@apple.com> |
| |
| Use a consistent set of file patterns in the svn:ignore property for all .xcodeproj directories, specifically: |
| |
| *.mode* |
| *.pbxuser |
| *.perspective* |
| project.xcworkspace |
| xcuserdata |
| |
| * JavaScriptCore.xcodeproj: Modified property svn:ignore. |
| |
| 2011-03-17 Gavin Barraclough <barraclough@apple.com> |
| |
| Reverting r81197, breaks JIT + INTERPRETER build. |
| |
| * bytecode/CodeBlock.cpp: |
| (JSC::CodeBlock::hasGlobalResolveInstructionAtBytecodeOffset): |
| (JSC::CodeBlock::hasGlobalResolveInfoAtBytecodeOffset): |
| * bytecode/CodeBlock.h: |
| (JSC::CodeBlock::addPropertyAccessInstruction): |
| (JSC::CodeBlock::addGlobalResolveInstruction): |
| (JSC::CodeBlock::addStructureStubInfo): |
| * bytecode/Opcode.h: |
| * bytecode/StructureStubInfo.h: |
| * bytecompiler/BytecodeGenerator.cpp: |
| (JSC::BytecodeGenerator::emitResolve): |
| (JSC::BytecodeGenerator::emitResolveWithBase): |
| (JSC::BytecodeGenerator::emitGetById): |
| (JSC::BytecodeGenerator::emitPutById): |
| (JSC::BytecodeGenerator::emitDirectPutById): |
| (JSC::BytecodeGenerator::emitCall): |
| (JSC::BytecodeGenerator::emitConstruct): |
| (JSC::BytecodeGenerator::emitCatch): |
| |
| 2011-03-17 Ben Taylor <bentaylor.solx86@gmail.com> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Add a COMPILER(SUNCC) define for Sun Studio 12. |
| https://bugs.webkit.org/show_bug.cgi?56444 |
| derived from patch 1 of 16 originally from https://bugs.webkit.org/show_bug.cgi?id=24932 |
| |
| * wtf/Platform.h: |
| |
| 2011-03-17 Jay Civelli <jcivelli@chromium.org> |
| |
| Reviewed by David Levin. |
| |
| Adding a contains method to Vector. |
| https://bugs.webkit.org/show_bug.cgi?id=55859 |
| |
| * wtf/Vector.h: |
| (WTF::::operator): |
| (WTF::::contains): |
| |
| 2011-03-17 Patrick Gansterer <paroga@webkit.org> |
| |
| Fix the interpreter build. |
| |
| * interpreter/Interpreter.cpp: |
| (JSC::Interpreter::privateExecute): Added globalData to inheritorID(). |
| |
| 2011-03-16 Sam Weinig <sam@webkit.org> |
| |
| Fix the interpreter build. |
| |
| * interpreter/Interpreter.cpp: |
| (JSC::Interpreter::resolve): |
| (JSC::Interpreter::resolveSkip): |
| (JSC::Interpreter::resolveGlobal): |
| (JSC::Interpreter::resolveGlobalDynamic): |
| (JSC::Interpreter::resolveBaseAndProperty): |
| (JSC::Interpreter::privateExecute): |
| Remove .get()s. |
| |
| 2011-03-16 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by James Robinson. |
| |
| Remove USE(BUILTIN_UTF8_CODEC) |
| https://bugs.webkit.org/show_bug.cgi?id=56508 |
| |
| We added this recently when we were unsure about the stability of the |
| built-in UTF-8 codec. However, the codec seems to be stable, so we |
| don't need the macro. |
| |
| * wtf/Platform.h: |
| |
| 2011-03-16 Daniel Bates <dbates@rim.com> |
| |
| Reviewed by Darin Adler. |
| |
| Make JIT build for ARM Thumb-2 with RVCT |
| https://bugs.webkit.org/show_bug.cgi?id=56440 |
| |
| Derived from a patch by Dave Tapuska. |
| |
| Also, modify the RVCT stub template to indicate that it preserves 8 byte stack alignment. |
| |
| * jit/JITStubs.cpp: |
| |
| 2011-03-16 Chao-ying Fu <fu@mips.com> |
| |
| Reviewed by Darin Adler. |
| |
| Fix MIPS build with const *void |
| https://bugs.webkit.org/show_bug.cgi?id=56513 |
| |
| * assembler/MacroAssemblerMIPS.h: |
| (JSC::MacroAssemblerMIPS::load32): |
| (JSC::MacroAssemblerMIPS::store32): |
| |
| 2011-03-16 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Darin Adler. |
| |
| Remove unnecessary caller tracking shenanigans from CodeBlock |
| https://bugs.webkit.org/show_bug.cgi?id=56483 |
| |
| This removes some leftover cruft from when we made CodeBlock |
| mark its callees. Removing it gives us a 0.7% progression, |
| reducing the overall regression to ~1.3%. |
| |
| * bytecode/CodeBlock.cpp: |
| (JSC::CodeBlock::shrinkToFit): |
| * bytecode/CodeBlock.h: |
| (JSC::CallLinkInfo::CallLinkInfo): |
| * jit/JIT.cpp: |
| (JSC::JIT::linkCall): |
| (JSC::JIT::linkConstruct): |
| |
| 2011-03-15 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Make Structure creation require a JSGlobalData |
| https://bugs.webkit.org/show_bug.cgi?id=56438 |
| |
| Mechanical change to make Structure::create require JSGlobalData&, and |
| require all users to provide the globalData. |
| |
| * API/JSCallbackConstructor.h: |
| (JSC::JSCallbackConstructor::createStructure): |
| * API/JSCallbackFunction.h: |
| (JSC::JSCallbackFunction::createStructure): |
| * API/JSCallbackObject.h: |
| (JSC::JSCallbackObject::createStructure): |
| * API/JSContextRef.cpp: |
| * JavaScriptCore.exp: |
| * debugger/DebuggerActivation.cpp: |
| (JSC::DebuggerActivation::DebuggerActivation): |
| * debugger/DebuggerActivation.h: |
| (JSC::DebuggerActivation::createStructure): |
| * jit/JITStubs.cpp: |
| (JSC::DEFINE_STUB_FUNCTION): |
| * jsc.cpp: |
| (GlobalObject::GlobalObject): |
| (functionRun): |
| (jscmain): |
| * runtime/Arguments.h: |
| (JSC::Arguments::createStructure): |
| * runtime/ArrayPrototype.h: |
| (JSC::ArrayPrototype::createStructure): |
| * runtime/BooleanObject.h: |
| (JSC::BooleanObject::createStructure): |
| * runtime/DateInstance.h: |
| (JSC::DateInstance::createStructure): |
| * runtime/DatePrototype.h: |
| (JSC::DatePrototype::createStructure): |
| * runtime/ErrorInstance.h: |
| (JSC::ErrorInstance::createStructure): |
| * runtime/Executable.h: |
| (JSC::ExecutableBase::createStructure): |
| (JSC::EvalExecutable::createStructure): |
| (JSC::ProgramExecutable::createStructure): |
| (JSC::FunctionExecutable::createStructure): |
| * runtime/FunctionPrototype.h: |
| (JSC::FunctionPrototype::createStructure): |
| * runtime/GetterSetter.h: |
| (JSC::GetterSetter::createStructure): |
| * runtime/InternalFunction.h: |
| (JSC::InternalFunction::createStructure): |
| * runtime/JSAPIValueWrapper.h: |
| (JSC::JSAPIValueWrapper::createStructure): |
| * runtime/JSActivation.h: |
| (JSC::JSActivation::createStructure): |
| * runtime/JSArray.cpp: |
| (JSC::JSArray::JSArray): |
| * runtime/JSArray.h: |
| (JSC::JSArray::createStructure): |
| * runtime/JSByteArray.cpp: |
| (JSC::JSByteArray::createStructure): |
| * runtime/JSByteArray.h: |
| (JSC::JSByteArray::JSByteArray): |
| * runtime/JSCell.h: |
| (JSC::JSCell::JSCell::createDummyStructure): |
| * runtime/JSFunction.h: |
| (JSC::JSFunction::createStructure): |
| * runtime/JSGlobalData.cpp: |
| (JSC::JSGlobalData::storeVPtrs): |
| (JSC::JSGlobalData::JSGlobalData): |
| * runtime/JSGlobalObject.cpp: |
| (JSC::JSGlobalObject::reset): |
| * runtime/JSGlobalObject.h: |
| (JSC::JSGlobalObject::JSGlobalObject): |
| (JSC::JSGlobalObject::createStructure): |
| * runtime/JSNotAnObject.h: |
| (JSC::JSNotAnObject::createStructure): |
| * runtime/JSONObject.h: |
| (JSC::JSONObject::createStructure): |
| * runtime/JSObject.cpp: |
| (JSC::JSObject::createInheritorID): |
| * runtime/JSObject.h: |
| (JSC::JSObject::createStructure): |
| (JSC::JSNonFinalObject::createStructure): |
| (JSC::JSFinalObject::createStructure): |
| (JSC::createEmptyObjectStructure): |
| (JSC::JSObject::inheritorID): |
| * runtime/JSObjectWithGlobalObject.h: |
| (JSC::JSObjectWithGlobalObject::createStructure): |
| * runtime/JSPropertyNameIterator.h: |
| (JSC::JSPropertyNameIterator::createStructure): |
| * runtime/JSStaticScopeObject.h: |
| (JSC::JSStaticScopeObject::createStructure): |
| * runtime/JSString.h: |
| (JSC::RopeBuilder::createStructure): |
| * runtime/JSVariableObject.h: |
| (JSC::JSVariableObject::createStructure): |
| * runtime/JSWrapperObject.h: |
| (JSC::JSWrapperObject::createStructure): |
| * runtime/JSZombie.h: |
| (JSC::JSZombie::createStructure): |
| * runtime/MathObject.h: |
| (JSC::MathObject::createStructure): |
| * runtime/NativeErrorConstructor.cpp: |
| (JSC::NativeErrorConstructor::NativeErrorConstructor): |
| * runtime/NativeErrorConstructor.h: |
| (JSC::NativeErrorConstructor::createStructure): |
| * runtime/NumberConstructor.h: |
| (JSC::NumberConstructor::createStructure): |
| * runtime/NumberObject.h: |
| (JSC::NumberObject::createStructure): |
| * runtime/ObjectConstructor.h: |
| (JSC::ObjectConstructor::createStructure): |
| * runtime/RegExpConstructor.h: |
| (JSC::RegExpConstructor::createStructure): |
| * runtime/RegExpObject.h: |
| (JSC::RegExpObject::createStructure): |
| * runtime/ScopeChain.h: |
| (JSC::ScopeChainNode::createStructure): |
| * runtime/StringObject.h: |
| (JSC::StringObject::createStructure): |
| * runtime/StringObjectThatMasqueradesAsUndefined.h: |
| (JSC::StringObjectThatMasqueradesAsUndefined::createStructure): |
| * runtime/StringPrototype.h: |
| (JSC::StringPrototype::createStructure): |
| * runtime/Structure.h: |
| (JSC::Structure::create): |
| |
| 2011-03-16 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Some conservative root gathering cleanup |
| https://bugs.webkit.org/show_bug.cgi?id=56447 |
| |
| SunSpider says 0.5% - 1.8% faster. |
| |
| * interpreter/RegisterFile.cpp: |
| (JSC::RegisterFile::gatherConservativeRoots): |
| * interpreter/RegisterFile.h: New helper function for doing the |
| conservative gathering of the register file. It's still conservative, |
| since the register file may contain uninitialized values, but it's |
| moving-safe, because it only visits values tagged as pointers, so there's |
| no risk of mistaking an integer for a pointer and accidentally changing it. |
| |
| * runtime/ConservativeSet.cpp: |
| (JSC::ConservativeRoots::add): |
| * runtime/ConservativeSet.h: Added a single-value add function, used above. |
| |
| * runtime/Heap.cpp: |
| (JSC::Heap::markRoots): Separated machine stack conservative roots from |
| register file conservative roots because machine stack roots must be |
| pinned, but register file roots need not be pinned. |
| |
| Adopted new interface for passing the current stack extent to the machine |
| stack root gathering routine. This allows us to exclude marking-related |
| data structures on the stack, and thus avoid double-marking the set of |
| machine roots. |
| |
| * runtime/MachineStackMarker.cpp: |
| (JSC::MachineThreads::gatherFromCurrentThread): |
| (JSC::MachineThreads::gatherConservativeRoots): |
| * runtime/MachineStackMarker.h: Added new interface, described above. |
| |
| * runtime/MarkedBlock.h: |
| (JSC::MarkedBlock::firstAtom): |
| * wtf/StdLibExtras.h: |
| (WTF::roundUpToMultipleOf): Moved roundUpToMultipleOf so it could be used |
| by MachineStacks. |
| |
| 2011-03-16 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| A little bit of MarkStack cleanup |
| https://bugs.webkit.org/show_bug.cgi?id=56443 |
| |
| Moved MarkStack functions into MarkStack.h/.cpp. |
| |
| SunSpider reports no change. |
| |
| * runtime/JSArray.h: |
| * runtime/JSCell.h: Moved from here... |
| * runtime/MarkStack.cpp: |
| (JSC::MarkStack::markChildren): |
| (JSC::MarkStack::drain): ...to here. Also, no need to inline drain. It's |
| a huge function, and not called many times. |
| |
| * runtime/MarkStack.h: |
| (JSC::MarkStack::~MarkStack): Moved near constructor, per style guide. |
| (JSC::MarkStack::append): |
| (JSC::MarkStack::deprecatedAppend): |
| (JSC::MarkStack::internalAppend): Moved to here. |
| |
| 2011-03-15 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Removed another deprecatedAppend |
| https://bugs.webkit.org/show_bug.cgi?id=56429 |
| |
| * collector/handles/HandleHeap.cpp: |
| (JSC::HandleHeap::markStrongHandles): |
| * collector/handles/HandleHeap.h: Use HeapRootMarker, since handles are |
| marked directly by the Heap. |
| |
| * runtime/Heap.cpp: |
| (JSC::Heap::markRoots): Ditto. |
| |
| 2011-03-15 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Removed some more deprecated / unsafe append |
| https://bugs.webkit.org/show_bug.cgi?id=56428 |
| |
| * collector/handles/HandleStack.cpp: |
| (JSC::HandleStack::mark): |
| * collector/handles/HandleStack.h: Mark the handle stack using a HeapRoot |
| marker, since it's a heap root. |
| |
| * runtime/ArgList.cpp: |
| (JSC::MarkedArgumentBuffer::markLists): |
| (JSC::MarkedArgumentBuffer::slowAppend): |
| * runtime/ArgList.h: Ditto. |
| |
| * runtime/Heap.cpp: |
| (JSC::Heap::markRoots): Added a mark call for marking the handle stack. |
| It seems like Oliver forgot this in his last patch. (!) |
| |
| * runtime/MarkStack.h: Removed appendSlots, since it would allow an |
| object to embed JSValues directly instead of using WriteBarrier. |
| |
| (JSC::MarkStack::append): Added a private append for a list of values. |
| |
| (JSC::HeapRootMarker::mark): Access to the above. |
| |
| 2011-03-15 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Removed a few more deprecatedAppends, and removed HeapRoot<T> |
| https://bugs.webkit.org/show_bug.cgi?id=56422 |
| |
| Added HeapRootMarker, a privileged class for marking direct heap roots |
| that are iterated during each garbage collection. This is easier to use |
| and more reliable than HeapRoot<T>, so I've removed HeapRoot<T>. |
| |
| * debugger/Debugger.cpp: |
| (JSC::evaluateInGlobalCallFrame): |
| * debugger/DebuggerCallFrame.cpp: |
| (JSC::DebuggerCallFrame::evaluate): |
| * interpreter/CallFrame.h: |
| (JSC::ExecState::exception): |
| * jit/JITStubs.cpp: |
| (JSC::DEFINE_STUB_FUNCTION): |
| * runtime/Completion.cpp: |
| (JSC::evaluate): exception is no longer a HeapRoot<T>, so no need to |
| call .get() on it. |
| |
| * runtime/Heap.cpp: |
| (JSC::Heap::markProtectedObjects): |
| (JSC::Heap::markTempSortVectors): |
| (JSC::Heap::markRoots): |
| * runtime/Heap.h: Updated to use HeapRootMarker. |
| |
| * runtime/JSCell.h: |
| (JSC::JSCell::MarkStack::append): Added private functions for |
| HeapRootMarker to use. |
| |
| * runtime/JSGlobalData.h: exception is no longer a HeapRoot<T>. |
| |
| * runtime/MarkStack.h: |
| (JSC::HeapRootMarker::HeapRootMarker): |
| (JSC::HeapRootMarker::mark): Added private functions for |
| HeapRootMarker to use. |
| |
| * runtime/SmallStrings.cpp: |
| (JSC::SmallStrings::markChildren): Updated to use HeapRootMarker. |
| |
| * runtime/SmallStrings.h: |
| (JSC::SmallStrings::emptyString): |
| (JSC::SmallStrings::singleCharacterString): |
| (JSC::SmallStrings::singleCharacterStrings): Updated to use HeapRootMarker. |
| |
| * runtime/WriteBarrier.h: Removed HeapRoot<T>. |
| |
| 2011-03-14 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Made the global object moving-GC-safe |
| https://bugs.webkit.org/show_bug.cgi?id=56348 |
| |
| SunSpider reports no change. |
| |
| * runtime/JSGlobalObject.cpp: |
| (JSC::JSGlobalObject::markChildren): Removed a dubious comment that |
| suggested we do not need to visit all our references during GC, since |
| that is not true in a moving GC. |
| |
| Re-sorted data members by type, removed one duplicate, and added back |
| the one missing mark I found. |
| |
| * runtime/JSGlobalObject.h: Re-sorted data members by type. |
| |
| 2011-03-15 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Introduce Local<T> to allow us to start moving to precise marking of locals |
| https://bugs.webkit.org/show_bug.cgi?id=56394 |
| |
| Introduce a new handle type, Local<T> and a scoping mechanism |
| LocalScope to allow us to start moving towards precise marking |
| of temporaries and local variables. |
| |
| We also start to use the new Local<> type in the JSON stringifier |
| so that we can have some coverage of their behaviour in the initial |
| checkin. |
| |
| * GNUmakefile.am: |
| * JavaScriptCore.gypi: |
| * JavaScriptCore.pro: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| * collector/handles/Handle.h: |
| (JSC::::asObject): |
| * collector/handles/HandleStack.cpp: Added. |
| (JSC::HandleStack::HandleStack): |
| (JSC::HandleStack::mark): |
| (JSC::HandleStack::grow): |
| * collector/handles/HandleStack.h: Added. |
| (JSC::HandleStack::enterScope): |
| (JSC::HandleStack::zapTo): |
| (JSC::HandleStack::leaveScope): |
| (JSC::HandleStack::push): |
| * collector/handles/Local.h: Added. |
| (JSC::Local::internalSet): |
| (JSC::::Local): |
| (JSC::::operator): |
| (JSC::LocalStack::LocalStack): |
| (JSC::LocalStack::peek): |
| (JSC::LocalStack::pop): |
| (JSC::LocalStack::push): |
| (JSC::LocalStack::isEmpty): |
| (JSC::LocalStack::size): |
| * collector/handles/LocalScope.h: Added. |
| (JSC::LocalScope::LocalScope): |
| (JSC::LocalScope::~LocalScope): |
| (JSC::LocalScope::release): |
| * runtime/Heap.cpp: |
| (JSC::Heap::markRoots): |
| * runtime/Heap.h: |
| (JSC::Heap::allocateLocalHandle): |
| (JSC::Heap::handleStack): |
| * runtime/JSCell.h: |
| (JSC::JSCell::::getString): |
| * runtime/JSGlobalData.cpp: |
| (JSC::JSGlobalData::JSGlobalData): |
| * runtime/JSGlobalData.h: |
| (JSC::JSGlobalData::allocateLocalHandle): |
| * runtime/JSONObject.cpp: |
| (JSC::Stringifier::Stringifier): |
| (JSC::Stringifier::stringify): |
| (JSC::Stringifier::appendStringifiedValue): |
| (JSC::Stringifier::Holder::Holder): |
| (JSC::Walker::Walker): |
| (JSC::Walker::walk): |
| (JSC::JSONProtoFuncParse): |
| (JSC::JSONProtoFuncStringify): |
| (JSC::JSONStringify): |
| * runtime/JSONObject.h: |
| * runtime/MarkStack.h: |
| (JSC::MarkStack::appendValues): |
| (JSC::MarkStack::appendSlots): |
| |
| 2011-03-15 Gavin Barraclough <barraclough@apple.com> |
| |
| Rubber Stamped by Sam Weinig. |
| |
| Bug 56420 - Remove ENABLE(JIT) code from ByteCompiler |
| Some methods have unnecessary differences in name/arguments for interpreter/JIT. |
| |
| * bytecode/CodeBlock.cpp: |
| * bytecode/CodeBlock.h: |
| (JSC::HandlerInfo::HandlerInfo): |
| (JSC::CodeBlock::addPropertyAccessInfo): |
| (JSC::CodeBlock::addGlobalResolveInfo): |
| (JSC::CodeBlock::addCallLinkInfo): |
| (JSC::CodeBlock::globalResolveInfo): |
| * bytecode/Opcode.h: |
| * bytecode/StructureStubInfo.h: |
| * bytecompiler/BytecodeGenerator.cpp: |
| (JSC::BytecodeGenerator::emitResolve): |
| (JSC::BytecodeGenerator::emitResolveWithBase): |
| (JSC::BytecodeGenerator::emitGetById): |
| (JSC::BytecodeGenerator::emitPutById): |
| (JSC::BytecodeGenerator::emitDirectPutById): |
| (JSC::BytecodeGenerator::emitCall): |
| (JSC::BytecodeGenerator::emitConstruct): |
| (JSC::BytecodeGenerator::emitCatch): |
| |
| 2011-03-15 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| Fix broken assert in new code. |
| |
| * dfg/DFGAliasTracker.h: |
| (JSC::DFG::AliasTracker::recordPutByVal): |
| - recordPutByVal is called for both PutByVal & PutByValAlias. |
| |
| 2011-03-15 Gavin Barraclough <barraclough@apple.com> |
| |
| Rubber stamped by Sam Weinig. |
| |
| Removed redundant code from BytecodeGenerator. |
| |
| * bytecompiler/BytecodeGenerator.cpp: |
| * bytecompiler/BytecodeGenerator.h: |
| - delete uncalled code missed when reparsing was removed. |
| |
| 2011-03-15 Kevin Ollivier <kevino@theolliviers.com> |
| |
| Reviewed by Darin Adler. |
| |
| Introduce WTF_USE_EXPORT_MACROS, which will allow us to put shared library import/export |
| info into the headers rather than in export symbol definition files, but disable it on |
| all platforms initially so we can deal with port build issues one port at a time. |
| |
| https://bugs.webkit.org/show_bug.cgi?id=27551 |
| |
| * API/JSBase.h: |
| * config.h: |
| * wtf/Assertions.h: |
| * wtf/ExportMacros.h: Added. |
| * wtf/Platform.h: |
| |
| 2011-03-14 Laszlo Gombos <laszlo.1.gombos@nokia.com> |
| |
| Unreviewed build fix. |
| |
| Buildfix when JIT is not enabled after r81079 |
| https://bugs.webkit.org/show_bug.cgi?id=56361 |
| |
| * runtime/Executable.cpp: |
| |
| 2011-03-14 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Made the global object moving-GC-safe |
| https://bugs.webkit.org/show_bug.cgi?id=56348 |
| |
| SunSpider reports no change. |
| |
| * runtime/JSGlobalObject.cpp: |
| (JSC::JSGlobalObject::markChildren): Removed a dubious comment that |
| suggested we do not need to visit all our references during GC, since |
| that is not true in a moving GC. |
| |
| Re-sorted data members by type, removed one duplicate, and added back |
| the one missing mark I found. |
| |
| * runtime/JSGlobalObject.h: Re-sorted data members by type. |
| |
| 2011-03-14 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Made JSWrapperObject and subclasses moving-GC-safe |
| https://bugs.webkit.org/show_bug.cgi?id=56346 |
| |
| SunSpider reports no change. |
| |
| * runtime/BooleanObject.cpp: |
| (JSC::BooleanObject::BooleanObject): |
| * runtime/DateInstance.cpp: |
| (JSC::DateInstance::DateInstance): No more need for JSGlobalData, since |
| we don't initialize the wrapped value in our constructor. |
| |
| * runtime/DateInstance.h: Don't set the OverridesMarkChildren flag because |
| we do not in fact override markChildren. |
| |
| * runtime/DatePrototype.h: Declare an anonymous slot, since wrapper object |
| no longer does so for us. Also added an ASSERT to catch a latent bug, |
| where DatePrototype stomped on its base class's anonymous slot. Hard-coded |
| anonymous slots are a plague on our code. This doesn't cause any problems |
| in our existing code since the base class never reads the anonymous slot |
| it declares, but it caused crashes when I tried to start using the slot |
| in an initial version of this patch. |
| |
| * runtime/JSWrapperObject.h: |
| (JSC::JSWrapperObject::JSWrapperObject): |
| (JSC::JSWrapperObject::internalValue): |
| (JSC::JSWrapperObject::setInternalValue): Resolved a problem where |
| our internal value was stored in two places: an anonymous slot, and a |
| data member which was not always visited during GC. Now, we only use the |
| data member, and we always visit it. (Instead of relying on certain |
| subclasses to set the OverridesMarkChildren bit, we set it ourselves.) |
| |
| * runtime/NumberObject.cpp: |
| (JSC::NumberObject::NumberObject): No more need for JSGlobalData, since |
| we don't initialize the wrapped value in our constructor. |
| |
| * runtime/NumberObject.h: Removed meaningless declaration. |
| |
| * runtime/StringObject.cpp: |
| (JSC::StringObject::StringObject): No more need for JSGlobalData, since |
| we don't initialize the wrapped value in our constructor. |
| |
| * runtime/StringObject.h: Don't set the OverridesMarkChildren flag because |
| we do not in fact override markChildren. |
| |
| * runtime/StringPrototype.h: Declare an anonymous slot, since wrapper object |
| no longer does so for us. Also added an ASSERT to catch a latent bug, |
| where DatePrototype stomped on its base class's anonymous slot. Hard-coded |
| anonymous slots are a plague on our code. |
| |
| 2011-03-14 Michael Saboff <msaboff@apple.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Look-ahead assertions with back references don’t work as expected |
| https://bugs.webkit.org/show_bug.cgi?id=56082 |
| |
| Changed parentheses assertion processing to temporarily back out the |
| number of known characters after the assertion while processing the |
| assertion. This was done so that assertions don't fail due to |
| checking the number of required characters as additional to the |
| rest of the express since assertions don't "consume" input. |
| Added a byte code to uncheck characters to support the change. |
| |
| * yarr/YarrInterpreter.cpp: |
| (JSC::Yarr::Interpreter::matchDisjunction): |
| (JSC::Yarr::ByteCompiler::uncheckInput): |
| (JSC::Yarr::ByteCompiler::emitDisjunction): |
| * yarr/YarrInterpreter.h: |
| (JSC::Yarr::ByteTerm::UncheckInput): |
| |
| 2011-03-14 Viatcheslav Ostapenko <ostapenko.viatcheslav@nokia.com> |
| |
| Reviewed by Laszlo Gombos. |
| |
| [Qt] Warning that round/roundf functions are already defined when compiled with RVCT 4 on symbian. |
| https://bugs.webkit.org/show_bug.cgi?id=56133 |
| |
| Add condition to not compile webkit internal math round functions on RVCT compiler versions |
| from 3.0.0 because they are already defined in compiler math library. |
| |
| * wtf/MathExtras.h: |
| |
| 2011-03-14 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Geoffrey Garen & Oliver Hunt. |
| |
| Bug 56284 - Add a dataflow intermediate representation for use in JIT generation. |
| |
| The JSC JIT presently generates code directly from the bytecode used by the interpreter. |
| This is not an optimal intermediate representation for JIT code generation, since it does |
| not capture liveness information of values, and provides little opportunity to perform |
| any static analysis for even primitive types. The JIT currently generates two code paths, |
| a fast path handling common cases, and a slower path handling less common operand types. |
| However the slow path jumps back into the fast path, meaning that information arising |
| from the earlier type checks cannot be propagated to later operations. |
| |
| This patch adds: |
| * a dataflow intermediate representation capable of describing a single basic block |
| of operations, |
| * a mechanism to convert a simple, single-block bytecode functions to the new IR, |
| * and a JIT code generator capable of generating code from this representation. |
| |
| The JIT generates two code paths, with the slower path not reentering the fast path |
| mid-block, allowing speculative optimizations to be made on the hot path, with type |
| information arising from these speculative decisions able to be propagated through the |
| dataflow. Code generation of both speculative and non-speculative paths exploits the type |
| and liveness information represented in the dataflow graph to attempt to avoid redundant |
| boxing and type-checking of values, and to remove unnecessary spills of temporary values |
| to the RegisterFile. |
| |
| The dataflow JIT currently can only support a subset of bytecode operations, limited to |
| arithmetic, bit-ops, and basic property access. Functions that cannot be compiled by the |
| dataflow JIT will be run using the existing JIT. The coverage of the dataflow JIT will be |
| expanded to include, control-flow, function calls, and then the long-tail of remaining |
| bytecode instructions. The JIT presently only support JSVALUE64, and as a consequence of |
| this only supports x86-64. |
| |
| The status of the dataflow JIT is currently work-in-progress. Limitations of the present |
| JIT code generation may cause performance regressions, particularly: |
| * the policy to only generate arithmetic code on the speculative path using integer |
| instructions, never using floating point. |
| * the policy to only generate arithmetic code on the non-speculative path using |
| floating point instructions, never using integer. |
| * always generating JSValue adds on the non-speculative path as a call out to a |
| C-function, never handling this in JIT code. |
| * always assuming by-Value property accesses on the speculative path to be array |
| accesses. |
| * generating all by-Value property accesses from the non-speculative path as a call |
| out to a C-function. |
| * generating all by-Indentifer property accesses as a call out to a C-function. |
| Due to these regressions, the code is landed in a state where it is disabled in most |
| cases by the ENABLE_DFG_JIT_RESTRICTIONS guard in Platform.h. As these regressions are |
| addressed, the JIT will be allowed to trigger in more cases. |
| |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| - Added new files to Xcode project. |
| * dfg: Added. |
| - Added directory for new code. |
| * dfg/DFGByteCodeParser.cpp: Added. |
| * dfg/DFGByteCodeParser.h: Added. |
| - Contruct a DFG::Graph representation from a bytecode CodeBlock. |
| * dfg/DFGGenerationInfo.h: Added. |
| - Track type & register information for VirtualRegisters during JIT code generation. |
| * dfg/DFGGraph.cpp: Added. |
| * dfg/DFGGraph.h: Added. |
| - Dataflow graph intermediate representation for code generation. |
| * dfg/DFGJITCodeGenerator.cpp: Added. |
| * dfg/DFGJITCodeGenerator.h: Added. |
| - Base class for SpeculativeJIT & NonSpeculativeJIT to share common functionality. |
| * dfg/DFGJITCompiler.cpp: Added. |
| * dfg/DFGJITCompiler.h: Added. |
| - Class responsible for driving code generation of speculativeJIT & non-speculative |
| code paths from the dataflow graph. |
| * dfg/DFGNonSpeculativeJIT.cpp: Added. |
| * dfg/DFGNonSpeculativeJIT.h: Added. |
| - Used to generate the non-speculative code path, this make no assumptions |
| about operand types. |
| * dfg/DFGOperations.cpp: Added. |
| * dfg/DFGOperations.h: Added. |
| - Helper functions called from the JIT generated code. |
| * dfg/DFGRegisterBank.h: Added. |
| - Used to track contents of physical registers during JIT code generation. |
| * dfg/DFGSpeculativeJIT.cpp: Added. |
| * dfg/DFGSpeculativeJIT.h: Added. |
| - Used to generate the speculative code path, this make assumptions about |
| operand types to enable optimization. |
| * runtime/Executable.cpp: |
| - Add code to attempt to use the DFG JIT to compile a function, with fallback |
| to the existing JIT. |
| * wtf/Platform.h: |
| - Added compile guards to enable the DFG JIT. |
| |
| 2011-03-14 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Removed more cases of DeprecatedPtr (exception, SmallStrings) |
| https://bugs.webkit.org/show_bug.cgi?id=56332 |
| |
| * runtime/Identifier.cpp: |
| (JSC::Identifier::add): |
| (JSC::Identifier::addSlowCase): Use a variable instead of a hard-coded |
| constant, to make this code less brittle. |
| |
| * runtime/JSGlobalData.h: Use HeapRoot instead of DeprecatedPtr because |
| this reference is owned and managed directly by the heap. |
| |
| * runtime/JSString.cpp: |
| (JSC::JSString::substringFromRope): |
| * runtime/JSString.h: |
| (JSC::jsSingleCharacterString): |
| (JSC::jsSingleCharacterSubstring): |
| (JSC::jsString): |
| (JSC::jsStringWithFinalizer): |
| (JSC::jsSubstring): |
| (JSC::jsOwnedString): Use a variable instead of a hard-coded |
| constant, to make this code less brittle. |
| |
| * runtime/SmallStrings.cpp: |
| (JSC::SmallStringsStorage::rep): |
| (JSC::SmallStringsStorage::SmallStringsStorage): |
| (JSC::SmallStrings::SmallStrings): |
| (JSC::SmallStrings::markChildren): |
| (JSC::SmallStrings::clear): |
| (JSC::SmallStrings::count): Use a variable instead of a hard-coded |
| constant, to make this code less brittle. |
| |
| * runtime/SmallStrings.h: |
| (JSC::SmallStrings::singleCharacterString): Use HeapRoot instead of |
| DeprecatedPtr because these references are owned and managed directly by |
| the heap. |
| |
| Stop using FixedArray because we only want a very limited set |
| of classes to be able to use HeapRoot. (Replaced with manual ASSERTs.) |
| |
| * runtime/WriteBarrier.h: |
| (JSC::operator==): |
| (JSC::WriteBarrier::WriteBarrier): |
| (JSC::HeapRoot::HeapRoot): |
| (JSC::HeapRoot::operator=): Added HeapRoot, which is allowed to set |
| without write barrier because we assume all HeapRoots are scanned during |
| all GC passes. |
| |
| 2011-03-14 Brian Weinstein <bweinstein@apple.com> |
| |
| Reviewed by Adam Roben and Gavin Barraclough. |
| |
| FileSystemWin.cpp needs listDirectory() implementation |
| https://bugs.webkit.org/show_bug.cgi?id=56331 |
| <rdar://problem/9126635> |
| |
| Give StringConcatenate the ability to deal with const UChar*'s as a String type to append. |
| |
| * wtf/text/StringConcatenate.h: |
| |
| 2011-03-14 Mark Rowe <mrowe@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| <http://webkit.org/b/56304> REGRESSION(r80892): 100,000+ leaks seen on the build bot |
| |
| * API/JSClassRef.cpp: |
| (OpaqueJSClass::OpaqueJSClass): Don't leak any existing entry for the given name if |
| the class definition contains duplicates. This also removes what look to be leaks |
| of the StringImpl instances that are used as keys: the HashMap key type is a RefPtr |
| which retains / releases the instances at the appropriate time, so explicitly calling |
| ref is not necessary. |
| |
| 2011-03-14 Oliver Hunt <oliver@apple.com> |
| |
| Fix windows build |
| |
| * jit/JSInterfaceJIT.h: |
| (JSC::JSInterfaceJIT::emitLoadInt32): |
| (JSC::JSInterfaceJIT::tagFor): |
| (JSC::JSInterfaceJIT::payloadFor): |
| (JSC::JSInterfaceJIT::intPayloadFor): |
| (JSC::JSInterfaceJIT::intTagFor): |
| (JSC::JSInterfaceJIT::addressFor): |
| |
| 2011-03-11 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Ensure all values are correctly tagged in the registerfile |
| https://bugs.webkit.org/show_bug.cgi?id=56214 |
| |
| This patch makes sure that all JSCell pointers written to |
| the registerfile are correctly tagged as JSCells, and replaces |
| raw int usage with the immediate representation. |
| |
| For performance, register pressure, and general saneness reasons |
| I've added abstractions for reading and writing the tag |
| and payload of integer registers directly for the JSVALUE64 |
| encoding. |
| |
| * interpreter/Register.h: |
| (JSC::Register::withInt): |
| (JSC::Register::withCallee): |
| (JSC::Register::operator=): |
| (JSC::Register::i): |
| (JSC::Register::activation): |
| (JSC::Register::function): |
| (JSC::Register::propertyNameIterator): |
| (JSC::Register::scopeChain): |
| * jit/JIT.h: |
| * jit/JITCall.cpp: |
| (JSC::JIT::compileOpCallInitializeCallFrame): |
| (JSC::JIT::compileOpCallVarargs): |
| (JSC::JIT::compileOpCall): |
| * jit/JITCall32_64.cpp: |
| (JSC::JIT::compileOpCallInitializeCallFrame): |
| (JSC::JIT::compileOpCallVarargs): |
| (JSC::JIT::compileOpCall): |
| (JSC::JIT::compileOpCallSlowCase): |
| * jit/JITInlineMethods.h: |
| (JSC::JIT::emitPutToCallFrameHeader): |
| (JSC::JIT::emitPutCellToCallFrameHeader): |
| (JSC::JIT::emitPutIntToCallFrameHeader): |
| * jit/JITOpcodes.cpp: |
| (JSC::JIT::privateCompileCTINativeCall): |
| (JSC::JIT::emit_op_get_pnames): |
| (JSC::JIT::emit_op_next_pname): |
| (JSC::JIT::emit_op_load_varargs): |
| (JSC::JIT::emitSlow_op_load_varargs): |
| * jit/JITOpcodes32_64.cpp: |
| (JSC::JIT::privateCompileCTINativeCall): |
| (JSC::JIT::emit_op_get_pnames): |
| (JSC::JIT::emit_op_next_pname): |
| * jit/JSInterfaceJIT.h: |
| (JSC::JSInterfaceJIT::intPayloadFor): |
| (JSC::JSInterfaceJIT::intTagFor): |
| * jit/SpecializedThunkJIT.h: |
| (JSC::SpecializedThunkJIT::returnJSValue): |
| (JSC::SpecializedThunkJIT::returnDouble): |
| (JSC::SpecializedThunkJIT::returnInt32): |
| (JSC::SpecializedThunkJIT::returnJSCell): |
| |
| 2011-03-13 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| A few Heap-related renames (sans file moves, which should come next) |
| https://bugs.webkit.org/show_bug.cgi?id=56283 |
| |
| ConservativeSet => ConservativeRoots. "Set" was misleading, since items |
| are not uniqued. Also, "Roots" is more specific about what's in the set. |
| |
| MachineStackMarker => MachineThreads. "Threads" is more descriptive of |
| the fact that this class maintains a set of all threads using JSC. |
| "Stack" was misleading, since this class traverses stacks and registers. |
| "Mark" was misleading, since this class doesn't mark anything anymore. |
| |
| registerThread => addCurrentThread. "Current" is more specific. |
| unregisterThread => removeCurrentThread. "Current" is more specific. |
| |
| "currentThreadRegistrar" => threadSpecific. The only point of this data |
| structure is to register a thread-specific destructor with a pointer to |
| this. |
| |
| "mark...Conservatively" => "gather". "Mark" is not true, since these |
| functions don't mark anything. "Conservatively" is redundant, since they |
| take "ConservativeRoots" as an argument. |
| |
| * API/APIShims.h: |
| (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock): |
| * JavaScriptCore.exp: |
| * runtime/ConservativeSet.cpp: |
| (JSC::ConservativeRoots::grow): |
| (JSC::ConservativeRoots::add): |
| * runtime/ConservativeSet.h: |
| (JSC::ConservativeRoots::ConservativeRoots): |
| (JSC::ConservativeRoots::~ConservativeRoots): |
| (JSC::ConservativeRoots::size): |
| (JSC::ConservativeRoots::roots): |
| * runtime/Heap.cpp: |
| (JSC::Heap::Heap): |
| (JSC::Heap::markRoots): |
| * runtime/Heap.h: |
| (JSC::Heap::machineThreads): |
| * runtime/JSGlobalData.h: |
| (JSC::JSGlobalData::makeUsableFromMultipleThreads): |
| * runtime/MachineStackMarker.cpp: |
| (JSC::MachineThreads::MachineThreads): |
| (JSC::MachineThreads::~MachineThreads): |
| (JSC::MachineThreads::makeUsableFromMultipleThreads): |
| (JSC::MachineThreads::addCurrentThread): |
| (JSC::MachineThreads::removeThread): |
| (JSC::MachineThreads::removeCurrentThread): |
| (JSC::MachineThreads::gatherFromCurrentThreadInternal): |
| (JSC::MachineThreads::gatherFromCurrentThread): |
| (JSC::MachineThreads::gatherFromOtherThread): |
| (JSC::MachineThreads::gatherConservativeRoots): |
| * runtime/MachineStackMarker.h: |
| * runtime/MarkStack.h: |
| (JSC::MarkStack::append): |
| |
| 2011-03-13 David Kilzer <ddkilzer@apple.com> |
| |
| BUILD FIX for armv7 after r80969 |
| |
| Bug 56270 - The JIT 'friend's many classes in JSC; start unwinding this. |
| <https://bugs.webkit.org/show_bug.cgi?id=56270> |
| |
| * assembler/MacroAssemblerARMv7.h: |
| (JSC::MacroAssemblerARMv7::load32): Made void* address argument |
| const. |
| (JSC::MacroAssemblerARMv7::store32): Ditto. |
| |
| 2011-03-13 Geoffrey Garen <ggaren@apple.com> |
| |
| Not reviewed. |
| |
| Try to fix the Mac build. |
| |
| * JavaScriptCore.xcodeproj/project.pbxproj: Make sure to forward |
| ConervativeSet.h, since it's now visible when compiling other projects. |
| |
| 2011-03-13 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Removed another case of DeprecatedPtr (ConservativeSet) |
| https://bugs.webkit.org/show_bug.cgi?id=56281 |
| |
| The ConservativeSet is an internal data structure used during marking, |
| so direct pointers are fine. |
| |
| * runtime/ConservativeSet.cpp: |
| (JSC::ConservativeSet::grow): |
| * runtime/ConservativeSet.h: Added some accessors, for use by MarkStack::append. |
| (JSC::ConservativeSet::~ConservativeSet): Fixed a typo where we calculated |
| the size of the set based on sizeof(DeprecatedPtr<T>*) instead of |
| sizeof(DeprecatedPtr<T>). I'm not sure if this had real-world implications or not. |
| (JSC::ConservativeSet::size): |
| (JSC::ConservativeSet::set): Use direct pointers, as stated above. |
| |
| * runtime/Heap.cpp: |
| (JSC::Heap::markRoots): |
| * runtime/MarkStack.h: |
| (JSC::MarkStack::append): Created a special case of append for |
| ConservativeSet. I didn't want to add back a generic "append JSCell*" |
| function, since other class might start using that wrong. (In the end, |
| this function might go away, since the Heap will want to do something |
| slightly more interesting with the conservative set, but this is OK for |
| now.) |
| |
| 2011-03-13 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Removed another case of DeprecatedPtr (PutPropertySlot) |
| https://bugs.webkit.org/show_bug.cgi?id=56278 |
| |
| * runtime/PutPropertySlot.h: |
| (JSC::PutPropertySlot::setExistingProperty): |
| (JSC::PutPropertySlot::setNewProperty): |
| (JSC::PutPropertySlot::base): Direct pointer is fine for PutPropertySlot, |
| since it's a stack-allocated temporary. |
| |
| 2011-03-13 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Removed one case of DeprecatedPtr (ScopeChainIterator) |
| https://bugs.webkit.org/show_bug.cgi?id=56277 |
| |
| * runtime/ScopeChain.h: Direct pointer is fine for ScopeChainIterator, |
| since it's a stack-allocated temporary. |
| |
| 2011-03-13 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| Bug 56273 - Add three operand forms to MacroAssember operations. |
| |
| Adding for X86(_64) for now, should be rolled out to other backends as necessary. |
| These may allow more efficient code generation in some cases, avoiding the need |
| for unnecessary register-register move instructions. |
| |
| * assembler/AbstractMacroAssembler.h: |
| (JSC::AbstractMacroAssembler::Jump::link): |
| (JSC::AbstractMacroAssembler::Jump::linkTo): |
| - marked these methods const. |
| (JSC::AbstractMacroAssembler::Jump::isSet): |
| - add a method to check whether a Jump object has been set to |
| reference an instruction, or is in a null, unset state. |
| * assembler/MacroAssemblerCodeRef.h: |
| (JSC::FunctionPtr::FunctionPtr): |
| - add non-explicit constructor, for FunctionPtr's to C/C++ functions. |
| * assembler/MacroAssemblerX86Common.h: |
| (JSC::MacroAssemblerX86Common::and32): |
| (JSC::MacroAssemblerX86Common::lshift32): |
| (JSC::MacroAssemblerX86Common::or32): |
| (JSC::MacroAssemblerX86Common::rshift32): |
| (JSC::MacroAssemblerX86Common::urshift32): |
| (JSC::MacroAssemblerX86Common::xor32): |
| (JSC::MacroAssemblerX86Common::moveDouble): |
| (JSC::MacroAssemblerX86Common::addDouble): |
| (JSC::MacroAssemblerX86Common::divDouble): |
| (JSC::MacroAssemblerX86Common::subDouble): |
| (JSC::MacroAssemblerX86Common::mulDouble): |
| (JSC::MacroAssemblerX86Common::branchTruncateDoubleToInt32): |
| (JSC::MacroAssemblerX86Common::branchTest32): |
| (JSC::MacroAssemblerX86Common::branchTest8): |
| (JSC::MacroAssemblerX86Common::branchAdd32): |
| (JSC::MacroAssemblerX86Common::branchMul32): |
| (JSC::MacroAssemblerX86Common::branchSub32): |
| - add three operand forms of these instructions. |
| * assembler/MacroAssemblerX86_64.h: |
| (JSC::MacroAssemblerX86_64::addDouble): |
| (JSC::MacroAssemblerX86_64::convertInt32ToDouble): |
| (JSC::MacroAssemblerX86_64::loadPtr): |
| (JSC::MacroAssemblerX86_64::branchTestPtr): |
| * assembler/X86Assembler.h: |
| (JSC::X86Assembler::JmpSrc::isSet): |
| - add a method to check whether a JmpSrc object has been set to |
| reference an instruction, or is in a null, unset state. |
| (JSC::X86Assembler::movsd_rr): |
| - added FP register-register move. |
| (JSC::X86Assembler::linkJump): |
| - Add an assert to check jumps aren't linked more than once. |
| * jit/JITInlineMethods.h: |
| (JSC::JIT::emitLoadInt32ToDouble): |
| - load integers to the FPU via regsiters on x86-64. |
| |
| 2011-03-13 Gavin Barraclough <barraclough@apple.com> |
| |
| ARM build fix. |
| |
| * assembler/MacroAssemblerARM.h: |
| (JSC::MacroAssemblerARM::load32): |
| |
| 2011-03-13 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| Bug 56270 - The JIT 'friend's many classes in JSC; start unwinding this. |
| |
| The JIT need to 'friend' other classes in order to be able to calculate offsets |
| of various properties, or the absolute addresses of members within specific objects, |
| in order to JIT generate code that will access members within the class when run. |
| |
| Instead of using friends in these cases, switch to providing specific accessor |
| methods to provide this information. In the case of offsets, these can be static |
| functions, and in the case of pointers to members within a specific object these can |
| be const methods returning pointers to const values, to prevent clients from |
| modifying values otherwise encapsulated within classes. |
| |
| * bytecode/SamplingTool.h: |
| * interpreter/Register.h: |
| * interpreter/RegisterFile.h: |
| * runtime/JSArray.h: |
| * runtime/JSCell.h: |
| * runtime/JSTypeInfo.h: |
| * runtime/JSVariableObject.h: |
| * runtime/Structure.h: |
| * wtf/RefCounted.h: |
| - Change these classes to no longer friend the JIT, add accessors for member offsets. |
| * jit/JIT.cpp: |
| * jit/JITCall32_64.cpp: |
| * jit/JITInlineMethods.h: |
| * jit/JITOpcodes.cpp: |
| * jit/JITOpcodes32_64.cpp: |
| * jit/JITPropertyAccess.cpp: |
| * jit/JITPropertyAccess32_64.cpp: |
| - Change the JIT to use class accessors, rather than taking object ofsets directly. |
| * assembler/AbstractMacroAssembler.h: |
| * assembler/MacroAssemblerX86_64.h: |
| * assembler/X86Assembler.h: |
| - Since the accessors for objects members return const pointers to retain encapsulation, |
| methods generating code with absolute addresses must be able to handle const pointers |
| (the JIT doesn't write to these values, do dies treat the pointer to value as const |
| from within the C++ code of the JIT, if not at runtime!). |
| |
| 2011-03-12 Sheriff Bot <webkit.review.bot@gmail.com> |
| |
| Unreviewed, rolling out r80919. |
| http://trac.webkit.org/changeset/80919 |
| https://bugs.webkit.org/show_bug.cgi?id=56251 |
| |
| all windows bots failed to compile this change (Requested by |
| loislo on #webkit). |
| |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| * bytecode/StructureStubInfo.cpp: |
| * interpreter/Register.h: |
| (JSC::Register::withInt): |
| (JSC::Register::withCallee): |
| (JSC::Register::operator=): |
| (JSC::Register::i): |
| (JSC::Register::activation): |
| (JSC::Register::function): |
| (JSC::Register::propertyNameIterator): |
| (JSC::Register::scopeChain): |
| * jit/JIT.h: |
| * jit/JITCall.cpp: |
| (JSC::JIT::compileOpCallInitializeCallFrame): |
| (JSC::JIT::compileOpCallVarargs): |
| (JSC::JIT::compileOpCall): |
| * jit/JITCall32_64.cpp: |
| (JSC::JIT::compileOpCallInitializeCallFrame): |
| (JSC::JIT::compileOpCallVarargs): |
| (JSC::JIT::compileOpCall): |
| (JSC::JIT::compileOpCallSlowCase): |
| * jit/JITInlineMethods.h: |
| (JSC::JIT::emitPutToCallFrameHeader): |
| * jit/JITOpcodes.cpp: |
| (JSC::JIT::privateCompileCTINativeCall): |
| (JSC::JIT::emit_op_get_pnames): |
| (JSC::JIT::emit_op_next_pname): |
| (JSC::JIT::emit_op_load_varargs): |
| (JSC::JIT::emitSlow_op_load_varargs): |
| * jit/JITOpcodes32_64.cpp: |
| (JSC::JIT::privateCompileCTINativeCall): |
| (JSC::JIT::emit_op_get_pnames): |
| (JSC::JIT::emit_op_next_pname): |
| * jit/JSInterfaceJIT.h: |
| (JSC::JSInterfaceJIT::payloadFor): |
| * jit/SpecializedThunkJIT.h: |
| (JSC::SpecializedThunkJIT::returnJSValue): |
| (JSC::SpecializedThunkJIT::returnDouble): |
| (JSC::SpecializedThunkJIT::returnInt32): |
| (JSC::SpecializedThunkJIT::returnJSCell): |
| * runtime/ArgList.cpp: |
| * runtime/DateConversion.cpp: |
| * runtime/GCActivityCallbackCF.cpp: |
| * runtime/Identifier.cpp: |
| * runtime/JSActivation.h: |
| (JSC::asActivation): |
| * runtime/JSLock.cpp: |
| * runtime/JSNumberCell.cpp: |
| * runtime/JSObject.h: |
| * runtime/JSPropertyNameIterator.h: |
| * runtime/JSValue.h: |
| * runtime/JSZombie.cpp: |
| * runtime/MarkedBlock.cpp: |
| * runtime/MarkedSpace.cpp: |
| * runtime/PropertyNameArray.cpp: |
| * runtime/ScopeChain.h: |
| (JSC::ExecState::globalThisValue): |
| * wtf/DateMath.cpp: |
| |
| 2011-03-11 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Ensure all values are correctly tagged in the registerfile |
| https://bugs.webkit.org/show_bug.cgi?id=56214 |
| |
| This patch makes sure that all JSCell pointers written to |
| the registerfile are correctly tagged as JSCells, and replaces |
| raw int usage with the immediate representation. |
| |
| For performance, register pressure, and general saneness reasons |
| I've added abstractions for reading and writing the tag |
| and payload of integer registers directly for the JSVALUE64 |
| encoding. |
| |
| * interpreter/Register.h: |
| (JSC::Register::withInt): |
| (JSC::Register::withCallee): |
| (JSC::Register::operator=): |
| (JSC::Register::i): |
| (JSC::Register::activation): |
| (JSC::Register::function): |
| (JSC::Register::propertyNameIterator): |
| (JSC::Register::scopeChain): |
| * jit/JIT.h: |
| * jit/JITCall.cpp: |
| (JSC::JIT::compileOpCallInitializeCallFrame): |
| (JSC::JIT::compileOpCallVarargs): |
| (JSC::JIT::compileOpCall): |
| * jit/JITCall32_64.cpp: |
| (JSC::JIT::compileOpCallInitializeCallFrame): |
| (JSC::JIT::compileOpCallVarargs): |
| (JSC::JIT::compileOpCall): |
| (JSC::JIT::compileOpCallSlowCase): |
| * jit/JITInlineMethods.h: |
| (JSC::JIT::emitPutToCallFrameHeader): |
| (JSC::JIT::emitPutCellToCallFrameHeader): |
| (JSC::JIT::emitPutIntToCallFrameHeader): |
| * jit/JITOpcodes.cpp: |
| (JSC::JIT::privateCompileCTINativeCall): |
| (JSC::JIT::emit_op_get_pnames): |
| (JSC::JIT::emit_op_next_pname): |
| (JSC::JIT::emit_op_load_varargs): |
| (JSC::JIT::emitSlow_op_load_varargs): |
| * jit/JITOpcodes32_64.cpp: |
| (JSC::JIT::privateCompileCTINativeCall): |
| (JSC::JIT::emit_op_get_pnames): |
| (JSC::JIT::emit_op_next_pname): |
| * jit/JSInterfaceJIT.h: |
| (JSC::JSInterfaceJIT::intPayloadFor): |
| (JSC::JSInterfaceJIT::intTagFor): |
| * jit/SpecializedThunkJIT.h: |
| (JSC::SpecializedThunkJIT::returnJSValue): |
| (JSC::SpecializedThunkJIT::returnDouble): |
| (JSC::SpecializedThunkJIT::returnInt32): |
| (JSC::SpecializedThunkJIT::returnJSCell): |
| |
| 2011-03-11 Dimitri Glazkov <dglazkov@chromium.org> |
| |
| Reviewed by Eric Seidel. |
| |
| Introduce project_dir variable and make paths a whole lot saner. Ok, a little bit saner. |
| https://bugs.webkit.org/show_bug.cgi?id=56231 |
| |
| * JavaScriptCore.gypi: Added project_dir variable. |
| * gyp/JavaScriptCore.gyp: Changed to use project_dir, rather than DEPTH/JavaScriptCore. |
| * gyp/generate-dtrace-header.sh: Changed to use project_dir. |
| |
| 2011-03-11 Dimitri Glazkov <dglazkov@chromium.org> |
| |
| Reviewed by Adam Barth. |
| |
| Start using derived sources correctly and link minidom with JavaScriptCore gyp project. |
| https://bugs.webkit.org/show_bug.cgi?id=56217 |
| |
| * gyp/JavaScriptCore.gyp: Added derived source files and passing of shared directory |
| to the scripts. |
| * gyp/generate-derived-sources.sh: Changed to use passed directory. |
| * gyp/generate-dtrace-header.sh: Ditto. |
| |
| 2011-03-11 Eric Carlson <eric.carlson@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| <rdar://problem/8955589> Adopt AVFoundation media back end on Lion. |
| |
| No new tests, existing media tests cover this. |
| |
| * JavaScriptCore.exp: Export cancelCallOnMainThread |
| * wtf/Platform.h: Define WTF_USE_AVFOUNDATION. |
| |
| 2011-03-11 Dimitri Glazkov <dglazkov@chromium.org> |
| |
| Reviewed by Adam Barth. |
| |
| Tweak dylib paths and add dtrace header generation action to JavaScriptCore gyp project. |
| https://bugs.webkit.org/show_bug.cgi?id=56207 |
| |
| * JavaScriptCore.gypi: Added Tracing.d to the sources. |
| * gyp/generate-dtrace-header.sh: Added. |
| * gyp/JavaScriptCore.gyp: Updated dylib paths (now the project can see them), |
| and added DTrace header generating step. |
| |
| 2011-03-10 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Fix allocation of native function with a cached thunk |
| https://bugs.webkit.org/show_bug.cgi?id=56127 |
| |
| Fix this race condition found while fixing zombies. |
| |
| * collector/handles/HandleHeap.cpp: |
| (JSC::HandleHeap::clearWeakPointers): |
| * runtime/Heap.cpp: |
| (JSC::Heap::reset): |
| * runtime/JSFunction.cpp: |
| (JSC::JSFunction::JSFunction): |
| (JSC::JSFunction::markChildren): |
| * runtime/JSValue.h: |
| (JSC::JSValue::decode): |
| * runtime/JSZombie.cpp: |
| (JSC::JSZombie::leakedZombieStructure): |
| * runtime/JSZombie.h: |
| (JSC::JSZombie::createStructure): |
| * runtime/MarkedBlock.cpp: |
| |
| 2011-03-10 Luiz Agostini <luiz.agostini@openbossa.org> |
| |
| Reviewed by Andreas Kling. |
| |
| [Qt] fast/workers/stress-js-execution.html is crashing on Qt bot (intermittently) |
| https://bugs.webkit.org/show_bug.cgi?id=33008 |
| |
| Defining WTF_USE_PTHREAD_BASED_QT=1 for platforms where QThread uses pthread internally. |
| Symbian is excluded because pthread_kill does not work on it. Mac is excluded because |
| it has its own ways to do JSC threading. |
| |
| Defining WTF_USE_PTHREADS inside MachineStackMarker.cpp if USE(PTHREAD_BASED_QT) is true. |
| |
| * runtime/MachineStackMarker.cpp: |
| * wtf/Platform.h: |
| |
| 2011-03-10 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Bug 56077 - ES5 conformance issues with RegExp.prototype |
| |
| There are three issues causing test failures in sputnik. |
| |
| (1) lastIndex should be converted at the point it is used, not the point it is set (this is visible if valueOf is overridden). |
| (2) The 'length' property of the test/exec functions should be 1. |
| (3) If no input is specified, the input to test()/exec() is "undefined" (i.e. ToString(undefined)) - not RegExp.input. |
| |
| * runtime/RegExpObject.cpp: |
| (JSC::RegExpObject::markChildren): |
| - Added to mark lastIndex |
| (JSC::regExpObjectLastIndex): |
| (JSC::setRegExpObjectLastIndex): |
| - lastIndex is now stored as a JSValue. |
| (JSC::RegExpObject::match): |
| - Use accessor methods to get/set lastIndex, add fast case for isUInt32 (don't convert to double). |
| * runtime/RegExpObject.h: |
| (JSC::RegExpObject::setLastIndex): |
| (JSC::RegExpObject::setLastIndex): |
| - Set lastIndex, either from a size_t or a JSValue. |
| (JSC::RegExpObject::getLastIndex): |
| - Get lastIndex. |
| (JSC::RegExpObject::RegExpObjectData::RegExpObjectData): |
| - Initialize as a JSValue. |
| * runtime/RegExpPrototype.cpp: |
| (JSC::RegExpPrototype::RegExpPrototype): |
| - Add test/exec properties with length 1. |
| * runtime/StringPrototype.cpp: |
| (JSC::stringProtoFuncMatch): |
| (JSC::stringProtoFuncSearch): |
| - Do not read RegExp.input if none is provided. |
| * tests/mozilla/js1_2/regexp/RegExp_input.js: |
| * tests/mozilla/js1_2/regexp/RegExp_input_as_array.js: |
| - Update these tests (they relied on non-ES5 behaviour). |
| |
| 2011-03-10 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Rolled back in 80277 and 80280 with event handler layout test failures fixed. |
| https://bugs.webkit.org/show_bug.cgi?id=55653 |
| |
| The failures were caused by a last minute typo: assigning to currentEvent |
| instead of m_currentEvent. |
| |
| * JavaScriptCore.exp: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| * bytecompiler/BytecodeGenerator.cpp: |
| * jit/JITOpcodes.cpp: |
| * jit/JITOpcodes32_64.cpp: |
| * runtime/Arguments.h: |
| * runtime/JSActivation.cpp: |
| * runtime/JSActivation.h: |
| * runtime/JSCell.h: |
| * runtime/JSGlobalObject.cpp: |
| * runtime/JSGlobalObject.h: |
| * runtime/JSObject.cpp: |
| * runtime/JSStaticScopeObject.cpp: |
| * runtime/JSStaticScopeObject.h: |
| * runtime/JSVariableObject.h: |
| * runtime/MarkedSpace.cpp: |
| * runtime/MarkedSpace.h: |
| |
| 2011-03-09 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| jquery/manipulation.html fails after r80598 |
| https://bugs.webkit.org/show_bug.cgi?id=56019 |
| |
| When linking a call, codeblock now takes ownership of the linked function |
| This removes the need for unlinking, and thus the incorrectness that was |
| showing up in these tests. |
| |
| * bytecode/CodeBlock.cpp: |
| (JSC::CodeBlock::~CodeBlock): |
| (JSC::CodeBlock::markAggregate): |
| * bytecode/CodeBlock.h: |
| (JSC::CallLinkInfo::CallLinkInfo): |
| (JSC::CallLinkInfo::setUnlinked): |
| (JSC::CodeBlock::addCaller): |
| * jit/JIT.cpp: |
| (JSC::JIT::privateCompile): |
| (JSC::JIT::linkCall): |
| (JSC::JIT::linkConstruct): |
| * jit/JIT.h: |
| * runtime/Executable.cpp: |
| * runtime/Executable.h: |
| |
| 2011-03-09 Daniel Bates <dbates@rim.com> |
| |
| Attempt to fix the WinCE build after changeset 80684 <http://trac.webkit.org/changeset/80684> |
| (Bug #56041<https://bugs.webkit.org/show_bug.cgi?id=56041>). |
| |
| * interpreter/Interpreter.cpp: |
| (JSC::Interpreter::privateExecute): Substitute variable callFrame for exec in call to createSyntaxError(). |
| |
| 2011-03-09 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| Bug 56041 - RexExp constructor should only accept flags "gim" |
| Fix for issues introduced in r80667. |
| |
| Invalid flags to a RegExp literal are a late syntax error! |
| |
| * bytecode/CodeBlock.h: |
| (JSC::CodeBlock::addRegExp): |
| - Pass a PassRefPtr<RegExp> |
| * bytecompiler/BytecodeGenerator.cpp: |
| (JSC::BytecodeGenerator::addRegExp): |
| (JSC::BytecodeGenerator::emitNewRegExp): |
| * bytecompiler/BytecodeGenerator.h: |
| - Pass a PassRefPtr<RegExp> |
| * bytecompiler/NodesCodegen.cpp: |
| (JSC::RegExpNode::emitBytecode): |
| - Should not be ASSERTing that the flags are valid - this is a late(er) error. |
| * interpreter/Interpreter.cpp: |
| (JSC::Interpreter::privateExecute): |
| - Need to check for error from RegExp constructor. |
| * jit/JITStubs.cpp: |
| (JSC::DEFINE_STUB_FUNCTION): |
| - Need to check for error from RegExp constructor. |
| * runtime/RegExp.h: |
| (JSC::RegExp::isValid): |
| - Make isValid check that the regexp was created with valid flags. |
| * runtime/RegExpKey.h: |
| - Since we'll not create RegExp objects with invalid flags, separate out the deleted value. |
| |
| 2011-03-09 Gavin Barraclough <barraclough@apple.com> |
| |
| Windows build fix part 2. |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
| |
| 2011-03-09 Gavin Barraclough <barraclough@apple.com> |
| |
| Windows build fix part 1. |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
| |
| 2011-03-09 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Darin Adler. |
| |
| Bug 56041 - RexExp constructor should only accept flags "gim" |
| We also should be passing the flags around as a bitfield rather than a string, |
| and should not have redundant, incompatible code for converting the string to a bitfield! |
| |
| * JavaScriptCore.exp: |
| * bytecompiler/NodesCodegen.cpp: |
| (JSC::RegExpNode::emitBytecode): |
| - Need to parse flags string to enum. |
| * runtime/RegExp.cpp: |
| (JSC::regExpFlags): |
| (JSC::RegExp::RegExp): |
| (JSC::RegExp::create): |
| - Add method to parse flags string to enum, change constructor/create args to take enum. |
| * runtime/RegExp.h: |
| (JSC::RegExp::global): |
| (JSC::RegExp::ignoreCase): |
| (JSC::RegExp::multiline): |
| - Change to use new enum values. |
| * runtime/RegExpCache.cpp: |
| (JSC::RegExpCache::lookupOrCreate): |
| (JSC::RegExpCache::create): |
| * runtime/RegExpCache.h: |
| - Changed to use regExpFlags enum instead of int/const UString&. |
| * runtime/RegExpConstructor.cpp: |
| (JSC::constructRegExp): |
| - Add use new enum parsing, check for error. |
| * runtime/RegExpKey.h: |
| (JSC::RegExpKey::RegExpKey): |
| * runtime/RegExpPrototype.cpp: |
| (JSC::RegExpPrototype::RegExpPrototype): |
| - Pass NoFlags value instead of empty string. |
| (JSC::regExpProtoFuncCompile): |
| - Add use new enum parsing, check for error. |
| * runtime/StringPrototype.cpp: |
| (JSC::stringProtoFuncMatch): |
| (JSC::stringProtoFuncSearch): |
| - Pass NoFlags value instead of empty string. |
| |
| 2011-03-08 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Sam Weinig |
| |
| Bug 55994 - Functions on Array.prototype should check length first. |
| These methods are designed to work on generic objects too, and if 'length' |
| is a getter that throws an exception, ensure this is correctly thrown |
| (even if other exceptions would be thrown, too). |
| |
| Make the length check the first thing we do. |
| This change shows a progression on SunSpider on my machine, but this is likely bogus. |
| |
| * runtime/ArrayPrototype.cpp: |
| (JSC::arrayProtoFuncToString): |
| (JSC::arrayProtoFuncToLocaleString): |
| (JSC::arrayProtoFuncJoin): |
| (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): |
| |
| 2011-03-07 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Make CodeBlock GC write barrier safe |
| https://bugs.webkit.org/show_bug.cgi?id=55910 |
| |
| In order to make CodeBlock WriteBarrier safe it was necessary |
| to make it have a single GC owner, and for that reason I have |
| made ExecutableBase a GC allocated object. This required |
| updating their creation routines as well as all sites that hold |
| a reference to them. GC objects that held Executable's have been |
| converted to WriteBarriers, and all other sites now use Global<>. |
| |
| As an added benefit this gets rid of JSGlobalData's list of |
| GlobalCodeBlocks. |
| |
| Perf testing shows a 0.5% progression on v8, vs. a 0.3% regression |
| on SunSpider. Given none of the tests that show regressions |
| demonstrate a regression on their own, and sampling shows up nothing. |
| I suspect we're just getting one or two additional gc passes at |
| the end of the run. |
| |
| * bytecode/CodeBlock.cpp: |
| (JSC::CodeBlock::dump): |
| (JSC::CodeBlock::CodeBlock): |
| (JSC::EvalCodeCache::markAggregate): |
| (JSC::CodeBlock::markAggregate): |
| * bytecode/CodeBlock.h: |
| (JSC::CodeBlock::ownerExecutable): |
| (JSC::CodeBlock::addConstant): |
| (JSC::CodeBlock::constantRegister): |
| (JSC::CodeBlock::getConstant): |
| (JSC::CodeBlock::addFunctionDecl): |
| (JSC::CodeBlock::addFunctionExpr): |
| (JSC::GlobalCodeBlock::GlobalCodeBlock): |
| (JSC::ExecState::r): |
| * bytecode/EvalCodeCache.h: |
| (JSC::EvalCodeCache::get): |
| * bytecode/SamplingTool.h: |
| (JSC::ScriptSampleRecord::ScriptSampleRecord): |
| * bytecompiler/BytecodeGenerator.cpp: |
| (JSC::BytecodeGenerator::addConstantValue): |
| (JSC::BytecodeGenerator::emitEqualityOp): |
| * bytecompiler/BytecodeGenerator.h: |
| (JSC::BytecodeGenerator::makeFunction): |
| * debugger/Debugger.cpp: |
| (JSC::evaluateInGlobalCallFrame): |
| * debugger/DebuggerCallFrame.cpp: |
| (JSC::DebuggerCallFrame::evaluate): |
| * interpreter/Interpreter.cpp: |
| (JSC::Interpreter::callEval): |
| * jit/JITInlineMethods.h: |
| (JSC::JIT::emitLoadDouble): |
| (JSC::JIT::emitLoadInt32ToDouble): |
| * jit/JITStubs.cpp: |
| (JSC::JITThunks::JITThunks): |
| (JSC::JITThunks::hostFunctionStub): |
| (JSC::JITThunks::clearHostFunctionStubs): |
| * jit/JITStubs.h: |
| * runtime/Completion.cpp: |
| (JSC::checkSyntax): |
| (JSC::evaluate): |
| * runtime/Executable.cpp: |
| (JSC::EvalExecutable::EvalExecutable): |
| (JSC::ProgramExecutable::ProgramExecutable): |
| (JSC::FunctionExecutable::FunctionExecutable): |
| (JSC::FunctionExecutable::~FunctionExecutable): |
| (JSC::EvalExecutable::markChildren): |
| (JSC::ProgramExecutable::markChildren): |
| (JSC::FunctionExecutable::markChildren): |
| (JSC::FunctionExecutable::fromGlobalCode): |
| * runtime/Executable.h: |
| (JSC::ExecutableBase::ExecutableBase): |
| (JSC::ExecutableBase::createStructure): |
| (JSC::NativeExecutable::create): |
| (JSC::NativeExecutable::NativeExecutable): |
| (JSC::VPtrHackExecutable::VPtrHackExecutable): |
| (JSC::ScriptExecutable::ScriptExecutable): |
| (JSC::EvalExecutable::create): |
| (JSC::EvalExecutable::createStructure): |
| (JSC::ProgramExecutable::create): |
| (JSC::ProgramExecutable::createStructure): |
| (JSC::FunctionExecutable::create): |
| (JSC::FunctionExecutable::createStructure): |
| * runtime/FunctionConstructor.cpp: |
| (JSC::constructFunction): |
| * runtime/Heap.cpp: |
| (JSC::Heap::destroy): |
| (JSC::Heap::markRoots): |
| * runtime/Heap.h: |
| * runtime/JSActivation.cpp: |
| (JSC::JSActivation::JSActivation): |
| (JSC::JSActivation::markChildren): |
| * runtime/JSActivation.h: |
| (JSC::JSActivation::JSActivationData::JSActivationData): |
| * runtime/JSCell.h: |
| * runtime/JSFunction.cpp: |
| (JSC::JSFunction::JSFunction): |
| (JSC::JSFunction::~JSFunction): |
| (JSC::JSFunction::markChildren): |
| * runtime/JSFunction.h: |
| * runtime/JSGlobalData.cpp: |
| (JSC::JSGlobalData::storeVPtrs): |
| (JSC::JSGlobalData::JSGlobalData): |
| (JSC::JSGlobalData::getHostFunction): |
| * runtime/JSGlobalData.h: |
| * runtime/JSGlobalObjectFunctions.cpp: |
| (JSC::globalFuncEval): |
| * runtime/JSObject.cpp: |
| * runtime/JSStaticScopeObject.cpp: |
| (JSC::JSStaticScopeObject::markChildren): |
| * runtime/JSStaticScopeObject.h: |
| (JSC::JSStaticScopeObject::JSStaticScopeObjectData::JSStaticScopeObjectData): |
| (JSC::JSStaticScopeObject::JSStaticScopeObject): |
| * runtime/JSZombie.cpp: |
| (JSC::JSZombie::leakedZombieStructure): |
| * runtime/JSZombie.h: |
| (JSC::JSZombie::createStructure): |
| * runtime/MarkedSpace.h: |
| |
| 2011-03-07 Andy Estes <aestes@apple.com> |
| |
| Reviewed by Dan Bernstein. |
| |
| REGRESSION (r79060): Timestamp is missing from tweets in twitter. |
| https://bugs.webkit.org/show_bug.cgi?id=55228 |
| |
| A change to the date parser to handle the case where the year is |
| specified before the time zone inadvertently started accepting strings |
| such as '+0000' as valid years. Those strings actually represent time |
| zones in an offset of hours and minutes from UTC, not years. |
| |
| * wtf/DateMath.cpp: |
| (WTF::parseDateFromNullTerminatedCharacters): If the current character |
| in dateString is '+' or '-', do not try to parse the next token as a |
| year. |
| |
| 2011-03-06 Yuta Kitamura <yutak@chromium.org> |
| |
| Reviewed by Kent Tamura. |
| |
| Add SHA-1 for new WebSocket protocol |
| https://bugs.webkit.org/show_bug.cgi?id=55039 |
| |
| The code is based on Chromium's portable SHA-1 implementation |
| (src/base/sha1_portable.cc). Modifications were made in order |
| to make the code comply with WebKit coding style. |
| |
| * GNUmakefile.am: |
| * JavaScriptCore.exp: |
| * JavaScriptCore.gypi: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
| * JavaScriptCore.vcproj/WTF/WTF.vcproj: |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/MD5.cpp: |
| (WTF::MD5::MD5): |
| * wtf/SHA1.cpp: Added. |
| (WTF::testSHA1): This function will be run the first time SHA1 |
| constructor is called. This function computes a few hash values |
| and checks the results in debug builds. However, constructor is |
| probably not a good place to run these tests, so we need to find |
| a good place for it (bug 55853). |
| (WTF::expectSHA1): |
| (WTF::f): |
| (WTF::k): |
| (WTF::rotateLeft): |
| (WTF::SHA1::SHA1): |
| (WTF::SHA1::addBytes): |
| (WTF::SHA1::computeHash): |
| (WTF::SHA1::finalize): |
| (WTF::SHA1::processBlock): |
| (WTF::SHA1::reset): |
| * wtf/SHA1.h: Added. |
| (WTF::SHA1::addBytes): |
| * wtf/wtf.pri: |
| |
| 2011-03-05 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Dimitri Glazkov. |
| |
| Add Derived Sources to WebCore GYP build |
| https://bugs.webkit.org/show_bug.cgi?id=55813 |
| |
| Rename the action to be friendlier. |
| |
| * gyp/JavaScriptCore.gyp: |
| |
| 2011-03-04 Viatcheslav Ostapenko <ostapenko.viatcheslav@nokia.com> |
| |
| Reviewed by Laszlo Gombos. |
| |
| [Qt] Need symbian version of cryptographicallyRandomValuesFromOS |
| https://bugs.webkit.org/show_bug.cgi?id=55782 |
| |
| Implement Symbian version of cryptographicallyRandomValuesFromOS |
| |
| * wtf/OSRandomSource.cpp: |
| (WTF::cryptographicallyRandomValuesFromOS): |
| |
| 2011-03-04 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Cameron Zwarich. |
| |
| Bug 55815 - Should throw an exception from JSObject::defineOwnProperty if !isExtensible(). |
| |
| * runtime/JSObject.cpp: |
| (JSC::JSObject::defineOwnProperty): |
| Add missing check. |
| |
| 2011-03-04 Gavin Barraclough <barraclough@apple.com> |
| |
| Rubber stamped by olliej. |
| |
| Bug 54945 - The web page hangs towards the end of page load in Interpreter enabled javascript code in the latest webkit trunk. |
| |
| * interpreter/Interpreter.cpp: |
| (JSC::Interpreter::privateExecute): |
| (1) don't infinite loop. |
| (2) goto 1. |
| |
| 2011-03-04 Gavin Barraclough <barraclough@apple.com> |
| |
| cmake build fix. |
| |
| * CMakeLists.txt: |
| |
| 2011-03-04 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Dimitri Glazkov. |
| |
| Add Copy Files step to JavaScriptCore GYP build for apitest and minidom |
| https://bugs.webkit.org/show_bug.cgi?id=55798 |
| |
| * JavaScriptCore.gypi: |
| * gyp/JavaScriptCore.gyp: |
| |
| 2011-03-04 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Dimitri Glazkov. |
| |
| Remove unneeded round-trips through ../Source in the Chromium GYP build |
| https://bugs.webkit.org/show_bug.cgi?id=55795 |
| |
| * JavaScriptCore.gyp/JavaScriptCore.gyp: |
| |
| 2011-03-04 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Dimitri Glazkov. |
| |
| Use target_defaults to reduce boilerplate in GYP build system |
| https://bugs.webkit.org/show_bug.cgi?id=55790 |
| |
| Instead of setting up the configuration in each target, just defer to |
| target_defaults. Also, removed a define that was redundant with the |
| xcconfig. |
| |
| * gyp/JavaScriptCore.gyp: |
| |
| 2011-03-03 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| Bug 55736 - Implement seal/freeze/preventExtensions for normal object types. |
| Provide basic functionallity from section 15.2.4 of ECMA-262. |
| This support will need expanding to cover arrays, too. |
| |
| Shows a 0.5% progression on SunSpidey, this seems to be due to changing |
| ObjectConstructor to use a static table. |
| |
| * DerivedSources.make: |
| * JavaScriptCore.exp: |
| * interpreter/CallFrame.h: |
| (JSC::ExecState::objectConstructorTable): |
| Add a static table for ObjectConstructor. |
| * runtime/CommonIdentifiers.h: |
| * runtime/JSGlobalData.cpp: |
| (JSC::JSGlobalData::JSGlobalData): |
| (JSC::JSGlobalData::~JSGlobalData): |
| Add a static table for ObjectConstructor. |
| * runtime/JSGlobalData.h: |
| * runtime/JSGlobalObject.cpp: |
| (JSC::JSGlobalObject::reset): |
| Add a static table for ObjectConstructor. |
| * runtime/JSObject.cpp: |
| (JSC::JSObject::seal): |
| (JSC::JSObject::freeze): |
| (JSC::JSObject::preventExtensions): |
| Transition the object's structure. |
| (JSC::JSObject::defineOwnProperty): |
| Check isExtensible. |
| * runtime/JSObject.h: |
| (JSC::JSObject::isSealed): |
| (JSC::JSObject::isFrozen): |
| (JSC::JSObject::isExtensible): |
| These wrap method on structure. |
| (JSC::JSObject::putDirectInternal): |
| Check isExtensible. |
| * runtime/ObjectConstructor.cpp: |
| (JSC::ObjectConstructor::ObjectConstructor): |
| (JSC::ObjectConstructor::getOwnPropertySlot): |
| (JSC::ObjectConstructor::getOwnPropertyDescriptor): |
| Change ObjectConstructor to use a static table. |
| (JSC::objectConstructorSeal): |
| (JSC::objectConstructorFreeze): |
| (JSC::objectConstructorPreventExtensions): |
| (JSC::objectConstructorIsSealed): |
| (JSC::objectConstructorIsFrozen): |
| (JSC::objectConstructorIsExtensible): |
| Add new methods on Object. |
| * runtime/ObjectConstructor.h: |
| (JSC::ObjectConstructor::createStructure): |
| * runtime/Structure.cpp: |
| (JSC::Structure::Structure): |
| init/propagate m_preventExtensions |
| (JSC::Structure::sealTransition): |
| (JSC::Structure::freezeTransition): |
| (JSC::Structure::preventExtensionsTransition): |
| transition the structure, materializing the property map, setting m_preventExtensions & changing attributes. |
| (JSC::Structure::isSealed): |
| (JSC::Structure::isFrozen): |
| check attributes to detect if object is sealed/frozen. |
| * runtime/Structure.h: |
| (JSC::Structure::isExtensible): |
| checks the m_preventExtensions flag. |
| |
| 2011-03-04 Steve Falkenburg <sfalken@apple.com> |
| |
| Reviewed by Jon Honeycutt. |
| |
| Adopt VersionStamper tool for Windows WebKit DLLs |
| https://bugs.webkit.org/show_bug.cgi?id=55784 |
| <rdar://problem/9021273> |
| |
| We now use a tool to stamp the version number onto the Apple WebKit DLLs |
| during the post-build step. |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.rc: Removed. |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePostBuild.cmd: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePreBuild.cmd: |
| |
| 2011-03-04 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Dimitri Glazkov. |
| |
| JavaScriptCore GYP build should use a header map |
| https://bugs.webkit.org/show_bug.cgi?id=55712 |
| |
| This patch moves the os-win32 files into their own variable so that we |
| can use a header map in the Apple Mac Xcode build. The problem is that |
| the header map searches the whole project rather than just the files |
| included in a given target. Another solution to this problem is to |
| make GYP smarter about filtering out what files are added to the |
| project file. |
| |
| * JavaScriptCore.gypi: |
| * gyp/JavaScriptCore.gyp: |
| |
| 2011-03-03 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Reviewed by Darin Adler. |
| |
| Remove LOOSE_PASS_OWN_ARRAY_PTR from PassOwnArrayPtr.h |
| https://bugs.webkit.org/show_bug.cgi?id=55554 |
| |
| * runtime/JSGlobalObject.cpp: |
| (JSC::JSGlobalObject::copyGlobalsTo): Pass nullptr instead of 0. |
| (JSC::JSGlobalObject::resizeRegisters): Ditto; also use OwnArrayPtr instead of a raw pointer. |
| * runtime/JSGlobalObject.h: |
| (JSC::JSGlobalObject::addStaticGlobals): Ditto. |
| * wtf/PassOwnArrayPtr.h: Removed #define LOOSE_PASS_OWN_ARRAY_PTR |
| (WTF::PassOwnArrayPtr::PassOwnArrayPtr): Added a constructor that takes nullptr_t. |
| |
| 2011-03-03 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Dimitri Glazkov. |
| |
| Add jsc to JavaScriptCore GYP build |
| https://bugs.webkit.org/show_bug.cgi?id=55711 |
| |
| * JavaScriptCore.gypi: |
| - Move jsc.cpp into jsc_files because it's really part of the jsc |
| target. |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| - Remove extraneous files from the normal jsc build. I probably |
| added these by mistake at some point. |
| * gyp/JavaScriptCore.gyp: |
| - Add the jsc target to the GYP file. |
| |
| 2011-03-03 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Dimitri Glazkov. |
| |
| Add testapi to JavaScriptCore GYP build |
| https://bugs.webkit.org/show_bug.cgi?id=55707 |
| |
| The new testapi target is slightly incomplete. There's a resource |
| copying step that we don't quite have yet. |
| |
| This patch also cleans up some of the configuration issues in |
| JavaScriptCore.xcodeproj. It seems kind of wordy to repeat these for |
| each target. I suspect there's a more compact way of defining the |
| configurations, but this removes the "Default" configuration, which is |
| progress. |
| |
| * JavaScriptCore.gypi: |
| * gyp/JavaScriptCore.gyp: |
| |
| 2011-03-03 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Eric Seidel. |
| |
| Teach JavaScriptCore GYP build about private headers |
| https://bugs.webkit.org/show_bug.cgi?id=55532 |
| |
| This patch distinguishes between public and private framework headers |
| so that public headers are copied into the Headers directory and |
| private headers are copied into the PrivateHeaders directory. |
| |
| * gyp/JavaScriptCore.gyp: |
| |
| 2011-03-03 Geoffrey Garen <ggaren@apple.com> |
| |
| Rolled out 80277 and 80280 because they caused event handler layout test |
| failures. |
| |
| * JavaScriptCore.exp: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| * bytecompiler/BytecodeGenerator.cpp: |
| * jit/JITOpcodes.cpp: |
| * jit/JITOpcodes32_64.cpp: |
| * runtime/Arguments.h: |
| * runtime/JSActivation.cpp: |
| * runtime/JSActivation.h: |
| * runtime/JSCell.h: |
| * runtime/JSGlobalObject.cpp: |
| * runtime/JSGlobalObject.h: |
| * runtime/JSObject.cpp: |
| * runtime/JSStaticScopeObject.cpp: |
| * runtime/JSStaticScopeObject.h: |
| * runtime/JSVariableObject.h: |
| * runtime/MarkedSpace.cpp: |
| * runtime/MarkedSpace.h: |
| |
| 2011-03-03 Kevin Ollivier <kevino@theolliviers.com> |
| |
| [wx] Build fix. Alter order of headers included to make sure windows.h |
| is configured by wx, and skip Posix implementation file we don't use on Win. |
| |
| * wscript: |
| * wtf/wx/StringWx.cpp: |
| |
| 2011-03-03 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Geoffrey Garen. |
| |
| JSVariableObject needs to use WriteBarrier for symboltable property storage |
| https://bugs.webkit.org/show_bug.cgi?id=55698 |
| |
| Replace the direct usage of Register in JSVariableObject (and descendents) |
| with WriteBarrier. This requires updating the Arguments object to use |
| WriteBarrier as well. |
| |
| * interpreter/Interpreter.cpp: |
| (JSC::Interpreter::unwindCallFrame): |
| (JSC::Interpreter::privateExecute): |
| (JSC::Interpreter::retrieveArguments): |
| * jit/JITStubs.cpp: |
| (JSC::DEFINE_STUB_FUNCTION): |
| * runtime/ArgList.h: |
| (JSC::MarkedArgumentBuffer::initialize): |
| * runtime/Arguments.cpp: |
| (JSC::Arguments::markChildren): |
| (JSC::Arguments::copyToRegisters): |
| (JSC::Arguments::fillArgList): |
| (JSC::Arguments::getOwnPropertySlot): |
| (JSC::Arguments::getOwnPropertyDescriptor): |
| (JSC::Arguments::put): |
| * runtime/Arguments.h: |
| (JSC::Arguments::setActivation): |
| (JSC::Arguments::Arguments): |
| (JSC::Arguments::copyRegisters): |
| (JSC::JSActivation::copyRegisters): |
| * runtime/JSActivation.cpp: |
| (JSC::JSActivation::markChildren): |
| (JSC::JSActivation::symbolTableGet): |
| (JSC::JSActivation::symbolTablePut): |
| (JSC::JSActivation::symbolTablePutWithAttributes): |
| (JSC::JSActivation::put): |
| (JSC::JSActivation::putWithAttributes): |
| (JSC::JSActivation::argumentsGetter): |
| * runtime/JSActivation.h: |
| * runtime/JSGlobalObject.cpp: |
| (JSC::JSGlobalObject::put): |
| (JSC::JSGlobalObject::putWithAttributes): |
| (JSC::JSGlobalObject::markChildren): |
| (JSC::JSGlobalObject::copyGlobalsFrom): |
| (JSC::JSGlobalObject::copyGlobalsTo): |
| (JSC::JSGlobalObject::resizeRegisters): |
| * runtime/JSGlobalObject.h: |
| (JSC::JSGlobalObject::setRegisters): |
| (JSC::JSGlobalObject::addStaticGlobals): |
| * runtime/JSStaticScopeObject.cpp: |
| (JSC::JSStaticScopeObject::put): |
| (JSC::JSStaticScopeObject::putWithAttributes): |
| * runtime/JSVariableObject.cpp: |
| (JSC::JSVariableObject::symbolTableGet): |
| * runtime/JSVariableObject.h: |
| (JSC::JSVariableObject::registerAt): |
| (JSC::JSVariableObject::JSVariableObjectData::JSVariableObjectData): |
| (JSC::JSVariableObject::symbolTableGet): |
| (JSC::JSVariableObject::symbolTablePut): |
| (JSC::JSVariableObject::symbolTablePutWithAttributes): |
| (JSC::JSVariableObject::copyRegisterArray): |
| (JSC::JSVariableObject::setRegisters): |
| |
| 2011-03-03 Geoffrey Garen <ggaren@apple.com> |
| |
| Try to fix Windows build. |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Removed obsolete symbol. |
| |
| * runtime/JSStaticScopeObject.cpp: |
| (JSC::JSStaticScopeObject::getOwnPropertySlot): Don't mark this function |
| inline -- it's virtual. |
| |
| 2011-03-02 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Darin Adler. |
| |
| Moved all variable object storage inline -- upping the object size limit to 1K |
| https://bugs.webkit.org/show_bug.cgi?id=55653 |
| |
| * JavaScriptCore.exp: |
| * bytecompiler/BytecodeGenerator.cpp: |
| * jit/JITOpcodes.cpp: |
| * runtime/Arguments.h: |
| * runtime/JSActivation.h: Removed out-of-line storage. Changed d-> to m_. |
| |
| * runtime/JSCell.h: |
| (JSC::JSCell::MarkedSpace::sizeClassFor): Added an imprecise size class |
| to accomodate objects up to 1K. |
| |
| * runtime/JSGlobalObject.cpp: |
| * runtime/JSGlobalObject.h: Removed out-of-line storage. Changed d-> to m_. |
| |
| * runtime/JSObject.cpp: Don't ASSERT that JSFinalObject fills the maximum |
| object size, since it doesn't anymore. |
| |
| * runtime/JSStaticScopeObject.cpp: |
| * runtime/JSStaticScopeObject.h: |
| * runtime/JSVariableObject.h: Removed out-of-line storage. Changed d-> to m_. |
| |
| * runtime/MarkedSpace.cpp: |
| (JSC::MarkedSpace::MarkedSpace): |
| (JSC::MarkedSpace::reset): |
| * runtime/MarkedSpace.h: Added an imprecise size class to accomodate objects up to 1K. |
| |
| 2011-03-03 Timothy Hatcher <timothy@apple.com> |
| |
| Make APIShims usable from WebCore. |
| |
| Reviewed by Oliver Hunt. |
| |
| * ForwardingHeaders/JavaScriptCore/APIShims.h: Added. |
| * GNUmakefile.am: |
| * JavaScriptCore.exp: |
| * JavaScriptCore.gypi: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| |
| 2011-03-03 Peter Varga <pvarga@webkit.org> |
| |
| Reviewed by Oliver Hunt. |
| |
| Begin Characters Optimization Causes YARR Interpreter Errors |
| https://bugs.webkit.org/show_bug.cgi?id=55479 |
| |
| The addBeginTerm function is removed because it doesn't correctly handle those |
| cases when an "invalid" term has been |
| collected (e.g. CharacterClass). Move the removed function to the |
| setupAlternativeBeginTerms method's switch-case |
| where the non-allowed cases are correctly handled. |
| |
| Reenable the Beginning Character Optimization in the YARR Interpreter again. |
| |
| * yarr/YarrPattern.cpp: |
| (JSC::Yarr::YarrPatternConstructor::setupAlternativeBeginTerms): |
| (JSC::Yarr::YarrPattern::compile): |
| |
| 2011-03-02 Jessie Berlin <jberlin@apple.com> |
| |
| Reviewed by Adam Roben. |
| |
| WebKit2: Use CFNetwork Sessions API. |
| https://bugs.webkit.org/show_bug.cgi?id=55435 |
| |
| Add the ability to create a Private Browsing storage session. |
| |
| * wtf/Platform.h: |
| Add a new #define for using CF Storage Sessions. |
| |
| 2011-03-02 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Remove "register slot" concept from PropertySlot |
| https://bugs.webkit.org/show_bug.cgi?id=55621 |
| |
| PropertySlot had already stopped storing Register "slots" |
| so this patch is simply removing that api entirely. |
| This exposed a problem in the ProgramNode constructor for |
| BytecodeGenerator where it reads from the registerfile |
| before it has initialised it. |
| |
| This bug wasn't a problem before as we were merely testing |
| for property existence rather than the actual value, and |
| used to work because setRegisterSlot didn't check that the |
| provided slot contained an initialised value. |
| |
| To get around this issue we now use symbolTableHasProperty |
| to do the symbol table check without trying to read the |
| RegisterFile. |
| |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| * bytecompiler/BytecodeGenerator.cpp: |
| (JSC::BytecodeGenerator::BytecodeGenerator): |
| * runtime/Arguments.cpp: |
| (JSC::Arguments::getOwnPropertySlot): |
| * runtime/JSActivation.cpp: |
| (JSC::JSActivation::symbolTableGet): |
| * runtime/JSGlobalObject.h: |
| (JSC::JSGlobalObject::symbolTableHasProperty): |
| * runtime/JSVariableObject.h: |
| (JSC::JSVariableObject::symbolTableGet): |
| * runtime/PropertySlot.h: |
| |
| 2011-03-02 Daniel Cheng <dcheng@chromium.org> |
| |
| Reviewed by David Levin. |
| |
| Add feature define for data transfer items |
| https://bugs.webkit.org/show_bug.cgi?id=55510 |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * wtf/Platform.h: |
| |
| 2011-03-02 Adam Roben <aroben@apple.com> |
| |
| Delete old .res files whenever any .vsprops file changes |
| |
| Prospective fix for <http://webkit.org/b/55599> r80079 caused incremental Windows builds to |
| fail |
| |
| Reviewed by Tony Chang. |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py: |
| (main): Restructured code to loop over a set of file extensions, deleting any old files that |
| have that extension. Now deletes .res files, too. (We previously deleted any file matching |
| *.manifest*, but that turned out to just be the union of *.manifest and *.res.) |
| |
| 2011-03-02 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Dimitri Glazkov. |
| |
| Teach JavaScriptCore GYP build how to build minidom |
| https://bugs.webkit.org/show_bug.cgi?id=55536 |
| |
| * JavaScriptCore.gypi: |
| * gyp/JavaScriptCore.gyp: |
| |
| 2011-03-01 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Eric Seidel. |
| |
| JavaScriptCore GYP build should copy some headers into the target framework |
| https://bugs.webkit.org/show_bug.cgi?id=55524 |
| |
| After this patch, all the framework headers are exported as public |
| headers. We need to teach GYP how to handle private headers. |
| |
| I struggled to determine how to store the information about whether a |
| header was public, private, or project (i.e., not exported). |
| Generally, the GYPI should just list the files, but it seemed siliy to |
| have an almost duplicated list of files in the GYP file itself. If |
| this design doesn't scale, we might have to revisit it in the future. |
| |
| * JavaScriptCore.gyp/JavaScriptCore.gyp: |
| * JavaScriptCore.gypi: |
| * gyp/JavaScriptCore.gyp: |
| |
| 2011-03-01 Sheriff Bot <webkit.review.bot@gmail.com> |
| |
| Unreviewed, rolling out r80079. |
| http://trac.webkit.org/changeset/80079 |
| https://bugs.webkit.org/show_bug.cgi?id=55547 |
| |
| "Broke the Win debug build?" (Requested by dcheng on #webkit). |
| |
| * wtf/Platform.h: |
| |
| 2011-03-01 Daniel Cheng <dcheng@chromium.org> |
| |
| Reviewed by David Levin. |
| |
| Add feature define for data transfer items |
| https://bugs.webkit.org/show_bug.cgi?id=55510 |
| |
| * wtf/Platform.h: |
| |
| 2011-03-01 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Misaligned memory access in CloneDeserializer on all ARM arch. |
| https://bugs.webkit.org/show_bug.cgi?id=48742 |
| |
| Add a CPU class for architectures that need aligned addresses |
| for memory access. |
| |
| * wtf/Platform.h: |
| |
| 2011-03-01 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Dimitri Glazkov. |
| |
| Add pre- and post-build actions for JavaScriptCore GYP build |
| https://bugs.webkit.org/show_bug.cgi?id=55507 |
| |
| After this patch, we have all the steps for building the main |
| JavaScriptCore framework except the "copy headers" step, which I'll do |
| next. |
| |
| * gyp/JavaScriptCore.gyp: |
| |
| 2011-03-01 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| Rolled back in r79627 now that the underlying cause for it crashing is fixed. |
| https://bugs.webkit.org/show_bug.cgi?id=55159 |
| |
| * JavaScriptCore.exp: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| * runtime/Heap.cpp: |
| (JSC::Heap::allocateSlowCase): |
| * runtime/Heap.h: |
| * runtime/JSCell.h: |
| (JSC::JSCell::MarkedSpace::sizeClassFor): |
| (JSC::JSCell::Heap::allocate): |
| (JSC::JSCell::JSCell::operator new): |
| * runtime/MarkedBlock.h: |
| * runtime/MarkedSpace.cpp: |
| (JSC::MarkedSpace::MarkedSpace): |
| (JSC::MarkedSpace::allocateBlock): |
| (JSC::MarkedSpace::reset): |
| * runtime/MarkedSpace.h: |
| (JSC::MarkedSpace::SizeClass::SizeClass): |
| |
| 2011-03-01 Mark Rowe <mrowe@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| Replace two script phases that do nothing but copy files with copy files build phases. |
| |
| This speeds up the build by a few seconds on high-end Mac Pros. |
| |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| |
| 2011-03-01 David Kilzer <ddkilzer@apple.com> |
| |
| Spring cleaning! |
| |
| Rubber-stamped by Mark Rowe. |
| |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| (Copy Into Framework): Remove "set -x" and its comment. |
| |
| 2011-03-01 Michael Saboff <msaboff@apple.com> |
| |
| Reviewed by Darin Adler. |
| |
| TinyMCE not working in nightlies |
| https://bugs.webkit.org/show_bug.cgi?id=54978 |
| |
| Disabling setupBeginChars() to temporarily work arround the test |
| failure. Filed https://bugs.webkit.org/show_bug.cgi?id=55479 |
| to track fixing the issue. |
| |
| * yarr/YarrPattern.cpp: |
| (JSC::Yarr::YarrPattern::compile): |
| |
| 2011-02-23 Joseph Pecoraro <joepeck@webkit.org> |
| |
| Reviewed by Kenneth Rohde Christiansen. |
| |
| Viewport parsing no longer accepts "1.0;" value as valid. |
| https://bugs.webkit.org/show_bug.cgi?id=53705 |
| |
| Include a didReadNumber parameter to String -> float / double |
| conversion functions. This way, if the "ok" boolean out |
| parameter is false, you can check to see if there in fact |
| was a valid number parsed with garbage at the end. Examples |
| of that would be parsing "123x456" would have ok = false, |
| but didReadNumber = true. |
| |
| * JavaScriptCore.exp: |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::toDouble): |
| (WTF::StringImpl::toFloat): |
| * wtf/text/StringImpl.h: |
| * wtf/text/WTFString.cpp: |
| (WTF::String::toDouble): |
| (WTF::String::toFloat): |
| (WTF::charactersToDouble): |
| (WTF::charactersToFloat): |
| * wtf/text/WTFString.h: |
| |
| 2011-02-28 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Past-the-end writes in VM exceptions (caused crashes in r79627) |
| https://bugs.webkit.org/show_bug.cgi?id=55448 |
| |
| Some exceptions had the wrong structures, so they misoverestimated their |
| inline storage sizes. |
| |
| * runtime/JSGlobalData.cpp: |
| (JSC::JSGlobalData::JSGlobalData): Use the right structure. |
| |
| * runtime/JSObject.h: |
| (JSC::JSNonFinalObject::JSNonFinalObject): |
| (JSC::JSFinalObject::JSFinalObject): ASSERT that our structure capacity |
| is correct to verify this doesn't happen again. |
| |
| 2011-03-01 Andras Becsi <abecsi@webkit.org> |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| [Qt] Clean up the project files and move common options to WebKit.pri. |
| |
| * JavaScriptCore.pri: Move options also needed in WebCore into WebKit.pri. |
| * JavaScriptCore.pro: Deduplicate options. |
| * jsc.pro: Ditto. |
| |
| 2011-03-01 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Eric Seidel. |
| |
| Teach JavaScriptCore GYP build about DEPTH |
| https://bugs.webkit.org/show_bug.cgi?id=55425 |
| |
| In addition to teaching the JavaScriptCore GYP build about DEPTH, this |
| change overrides the GCC warning configuration to disable a warning |
| that's causing probems in Assertions.cpp. With that warning disabled, |
| JavaScriptCore builds again. |
| |
| * gyp/JavaScriptCore.gyp: |
| |
| 2011-02-28 Gavin Barraclough <barraclough@apple.com> |
| |
| Windows build fix. |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
| |
| 2011-02-28 Sheriff Bot <webkit.review.bot@gmail.com> |
| |
| Unreviewed, rolling out r79948. |
| http://trac.webkit.org/changeset/79948 |
| https://bugs.webkit.org/show_bug.cgi?id=55439 |
| |
| "caused crashes on the SL release bot" (Requested by ggaren on |
| #webkit). |
| |
| * runtime/JSGlobalData.h: |
| * runtime/WriteBarrier.h: |
| |
| 2011-02-28 Gavin Barraclough <barraclough@apple.com> |
| |
| Windows build fix. |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
| |
| 2011-02-28 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Sam Weinig & Darin Adler. |
| |
| Bug 55423 - Clean up property tables in Structure |
| |
| Encapsulate, reduce duplication of table search code, |
| and reduce the size of the tables (remove the index, |
| just maintain the tables in the correct order). |
| |
| Shows a 0.5% - 1% progression on sunspider. |
| |
| * JavaScriptCore.exp: |
| * runtime/PropertyMapHashTable.h: |
| (JSC::isPowerOf2): |
| (JSC::nextPowerOf2): |
| bit ops used to calculate table size. |
| (JSC::PropertyMapEntry::PropertyMapEntry): |
| (JSC::PropertyTable::ordered_iterator::operator++): |
| (JSC::PropertyTable::ordered_iterator::operator==): |
| (JSC::PropertyTable::ordered_iterator::operator!=): |
| (JSC::PropertyTable::ordered_iterator::operator*): |
| (JSC::PropertyTable::ordered_iterator::operator->): |
| (JSC::PropertyTable::ordered_iterator::ordered_iterator): |
| implementation of the iterator types |
| (JSC::PropertyTable::PropertyTable): |
| (JSC::PropertyTable::~PropertyTable): |
| constructors take an initial capacity for the table, |
| a table to copy, or both. |
| (JSC::PropertyTable::begin): |
| (JSC::PropertyTable::end): |
| create in-order iterators. |
| (JSC::PropertyTable::find): |
| search the hash table |
| (JSC::PropertyTable::add): |
| add a value to the hash table |
| (JSC::PropertyTable::remove): |
| remove a value from the hash table |
| (JSC::PropertyTable::size): |
| (JSC::PropertyTable::isEmpty): |
| accessors. |
| (JSC::PropertyTable::propertyStorageSize): |
| (JSC::PropertyTable::clearDeletedOffsets): |
| (JSC::PropertyTable::hasDeletedOffset): |
| (JSC::PropertyTable::getDeletedOffset): |
| (JSC::PropertyTable::addDeletedOffset): |
| cache deleted (available) offsets in the property storage array. |
| (JSC::PropertyTable::copy): |
| take a copy of the PropertyTable, potentially expanding the capacity. |
| (JSC::PropertyTable::sizeInMemory): |
| used for DEBUG build statistics |
| (JSC::PropertyTable::reinsert): |
| (JSC::PropertyTable::rehash): |
| (JSC::PropertyTable::tableCapacity): |
| (JSC::PropertyTable::deletedEntryIndex): |
| (JSC::PropertyTable::skipDeletedEntries): |
| (JSC::PropertyTable::table): |
| (JSC::PropertyTable::usedCount): |
| (JSC::PropertyTable::dataSize): |
| (JSC::PropertyTable::sizeForCapacity): |
| (JSC::PropertyTable::canInsert): |
| these methods provide internal implementation. |
| * runtime/Structure.cpp: |
| (JSC::Structure::dumpStatistics): |
| (JSC::Structure::~Structure): |
| (JSC::Structure::materializePropertyMap): |
| (JSC::Structure::despecifyDictionaryFunction): |
| (JSC::Structure::addPropertyTransition): |
| (JSC::Structure::flattenDictionaryStructure): |
| (JSC::Structure::copyPropertyTable): |
| (JSC::Structure::get): |
| (JSC::Structure::despecifyFunction): |
| (JSC::Structure::despecifyAllFunctions): |
| (JSC::Structure::put): |
| (JSC::Structure::remove): |
| (JSC::Structure::createPropertyMap): |
| (JSC::Structure::getPropertyNames): |
| (JSC::PropertyTable::checkConsistency): |
| (JSC::Structure::checkConsistency): |
| factored out code to PropertyMapHashTable.h |
| * runtime/Structure.h: |
| (JSC::Structure::propertyStorageSize): |
| (JSC::Structure::isEmpty): |
| (JSC::Structure::get): |
| factored out code to PropertyMapHashTable.h |
| |
| 2011-02-28 Xan Lopez <xlopez@igalia.com> |
| |
| Another fix build :( |
| |
| Fix typo. |
| |
| * runtime/MachineStackMarker.cpp: |
| (JSC::freePlatformThreadRegisters): |
| |
| 2011-02-28 Xan Lopez <xlopez@igalia.com> |
| |
| Unreviewed build fix for Snow Leopard. |
| |
| * runtime/MachineStackMarker.cpp: |
| (JSC::freePlatformThreadRegisters): |
| |
| 2011-02-28 Alejandro G. Castro <alex@igalia.com> |
| |
| Unreviewed, fix SnowLeopard compilation after r79952. |
| |
| * runtime/MachineStackMarker.cpp: |
| (JSC::freePlatformThreadRegisters): |
| |
| 2011-02-28 Mark Rowe <mrowe@apple.com> |
| |
| Reviewed by Darin Adler. |
| |
| <http://webkit.org/b/55430> OwnArrayPtr.h's LOOSE_OWN_ARRAY_PTR results in link errors. |
| |
| * wtf/OwnArrayPtr.h: |
| (WTF::::set): Implement OwnArrayPtr::set. |
| |
| 2011-02-28 Martin Zoubek <martin.zoubek@acision.com> and Alejandro G. Castro <alex@igalia.com> |
| |
| Reviewed by Martin Robinson. |
| |
| Multithread support for JSC on UNIX |
| https://bugs.webkit.org/show_bug.cgi?id=26838 |
| |
| Implement suspendThread() and resumeThread() for systems with |
| pthread.h using thread signal handler. |
| |
| * runtime/MachineStackMarker.cpp: |
| (JSC::pthreadSignalHandlerSuspendResume): |
| (JSC::MachineStackMarker::Thread::Thread): |
| (JSC::getCurrentPlatformThread): |
| (JSC::suspendThread): |
| (JSC::resumeThread): |
| (JSC::getPlatformThreadRegisters): |
| (JSC::otherThreadStackPointer): |
| (JSC::freePlatformThreadRegisters): |
| (JSC::MachineStackMarker::markOtherThreadConservatively): |
| * wtf/Platform.h: Added Gtk port to use |
| ENABLE_JSC_MULTIPLE_THREADS. |
| |
| 2011-02-28 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Darin Adler. |
| |
| Stop using DeprecatedPtr for the global exception slot |
| https://bugs.webkit.org/show_bug.cgi?id=55424 |
| |
| Create GCRootPtr to signify that the exception slot is |
| a gcroot, and so is exempt from the usual writebarrier |
| restrictions. |
| |
| * runtime/JSGlobalData.h: |
| * runtime/WriteBarrier.h: |
| (JSC::GCRootPtr::GCRootPtr): |
| (JSC::GCRootPtr::operator=): |
| |
| 2011-02-28 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Dimitri Glazkov. |
| |
| Use more xcconfig files in JavaScriptCore gyp build |
| https://bugs.webkit.org/show_bug.cgi?id=55391 |
| |
| The GYP experts tell me that we have have a total of two xcconfig |
| files: one for the xcodeproj as a whole and one for each target. This |
| patch uses that technique to re-use the existing xcconfig files and |
| eliminate the duplication. |
| |
| Technically, this patch introduces some build errors because the |
| xcconfig files assume that the xcodeproj file is one level higher in |
| the directory hierarchy. Specifically, the xcodeproj file can no |
| longer find the Info.plist or the prefix header. I plan to fix that in |
| a subsequent patch. |
| |
| Also, this patch introduces the Release and Production configurations, |
| which should work correctly now. |
| |
| * gyp/JavaScriptCore.gyp: |
| |
| 2011-02-28 Jon Honeycutt <jhoneycutt@apple.com> |
| |
| Windows build fix. |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
| Add symbol to export. |
| |
| 2011-02-28 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Make ScopeChainNode GC allocated |
| https://bugs.webkit.org/show_bug.cgi?id=55283 |
| |
| Simplify lifetime and other issues with the scopechain |
| by making it gc allocated. This allows us to simplify |
| function exit and unwinding, as well as making the |
| current iterative refcounting go away. |
| |
| * JavaScriptCore.exp: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
| * bytecode/CodeBlock.cpp: |
| (JSC::CodeBlock::createActivation): |
| * bytecode/StructureStubInfo.cpp: |
| * bytecompiler/BytecodeGenerator.cpp: |
| (JSC::BytecodeGenerator::generate): |
| (JSC::BytecodeGenerator::BytecodeGenerator): |
| (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall): |
| (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply): |
| * bytecompiler/BytecodeGenerator.h: |
| * debugger/Debugger.cpp: |
| (JSC::Recompiler::operator()): |
| * debugger/DebuggerCallFrame.h: |
| (JSC::DebuggerCallFrame::scopeChain): |
| * interpreter/CachedCall.h: |
| (JSC::CachedCall::CachedCall): |
| * interpreter/CallFrame.h: |
| * interpreter/Interpreter.cpp: |
| (JSC::depth): |
| (JSC::Interpreter::unwindCallFrame): |
| (JSC::Interpreter::throwException): |
| (JSC::Interpreter::execute): |
| (JSC::Interpreter::executeCall): |
| (JSC::Interpreter::executeConstruct): |
| (JSC::Interpreter::privateExecute): |
| * jit/JITCall.cpp: |
| (JSC::JIT::compileOpCallInitializeCallFrame): |
| (JSC::JIT::compileOpCall): |
| * jit/JITCall32_64.cpp: |
| (JSC::JIT::compileOpCallInitializeCallFrame): |
| (JSC::JIT::emit_op_ret): |
| (JSC::JIT::emit_op_ret_object_or_this): |
| (JSC::JIT::compileOpCall): |
| * jit/JITOpcodes.cpp: |
| (JSC::JIT::emit_op_end): |
| (JSC::JIT::emit_op_ret): |
| (JSC::JIT::emit_op_ret_object_or_this): |
| * jit/JITOpcodes32_64.cpp: |
| (JSC::JIT::emit_op_end): |
| * jit/JITStubs.cpp: |
| (JSC::DEFINE_STUB_FUNCTION): |
| * jit/JITStubs.h: |
| * runtime/ArgList.cpp: |
| * runtime/Completion.cpp: |
| (JSC::evaluate): |
| * runtime/Completion.h: |
| * runtime/DateConversion.cpp: |
| * runtime/Executable.cpp: |
| (JSC::EvalExecutable::compileInternal): |
| (JSC::ProgramExecutable::compileInternal): |
| (JSC::FunctionExecutable::compileForCallInternal): |
| (JSC::FunctionExecutable::compileForConstructInternal): |
| * runtime/FunctionConstructor.cpp: |
| (JSC::constructFunction): |
| * runtime/GCActivityCallbackCF.cpp: |
| * runtime/Identifier.cpp: |
| * runtime/JSCell.h: |
| * runtime/JSChunk.cpp: Added. |
| * runtime/JSChunk.h: Added. |
| * runtime/JSFunction.cpp: |
| (JSC::JSFunction::JSFunction): |
| (JSC::JSFunction::markChildren): |
| (JSC::JSFunction::getCallData): |
| (JSC::JSFunction::getOwnPropertySlot): |
| (JSC::JSFunction::getConstructData): |
| * runtime/JSFunction.h: |
| (JSC::JSFunction::scope): |
| (JSC::JSFunction::setScope): |
| * runtime/JSGlobalData.cpp: |
| (JSC::JSGlobalData::JSGlobalData): |
| * runtime/JSGlobalData.h: |
| * runtime/JSGlobalObject.cpp: |
| (JSC::JSGlobalObject::init): |
| (JSC::JSGlobalObject::markChildren): |
| * runtime/JSGlobalObject.h: |
| (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData): |
| (JSC::JSGlobalObject::globalScopeChain): |
| * runtime/JSGlobalObjectFunctions.cpp: |
| (JSC::globalFuncEval): |
| * runtime/JSLock.cpp: |
| * runtime/JSNumberCell.cpp: |
| * runtime/JSZombie.cpp: |
| * runtime/MarkedBlock.cpp: |
| * runtime/MarkedSpace.cpp: |
| * runtime/PropertyNameArray.cpp: |
| * runtime/ScopeChain.cpp: |
| (JSC::ScopeChainNode::print): |
| (JSC::ScopeChainNode::localDepth): |
| (JSC::ScopeChainNode::markChildren): |
| * runtime/ScopeChain.h: |
| (JSC::ScopeChainNode::ScopeChainNode): |
| (JSC::ScopeChainNode::createStructure): |
| (JSC::ScopeChainNode::push): |
| (JSC::ScopeChainNode::pop): |
| (JSC::ScopeChainIterator::ScopeChainIterator): |
| (JSC::ScopeChainIterator::operator*): |
| (JSC::ScopeChainIterator::operator->): |
| (JSC::ScopeChainIterator::operator++): |
| (JSC::ScopeChainNode::begin): |
| (JSC::ScopeChainNode::end): |
| (JSC::ExecState::globalData): |
| (JSC::ExecState::lexicalGlobalObject): |
| (JSC::ExecState::globalThisValue): |
| * runtime/ScopeChainMark.h: |
| * wtf/DateMath.cpp: |
| |
| 2011-02-27 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Eric Seidel. |
| |
| Implement WTF::randomNumber in terms of WTF::cryptographicallyRandomNumber when possible |
| https://bugs.webkit.org/show_bug.cgi?id=55326 |
| |
| Currently, randomNumber does a bunch of platform-specific work that to |
| get a cryptographic randomness when available. Instead, we should use |
| cryptographicallyRandomNumber, which abstracts this work. |
| Unfortunately, we can't remove all of the WTF::randomNumber |
| implementation because not every port has access to cryptographically |
| random numbers. |
| |
| * wtf/RandomNumber.cpp: |
| (WTF::randomNumber): |
| |
| 2011-02-27 Benjamin Poulain <ikipou@gmail.com> |
| |
| Reviewed by Darin Adler. |
| |
| Eliminate DeprecatedPtrList from RenderBlock |
| https://bugs.webkit.org/show_bug.cgi?id=54972 |
| |
| Add methods find() and contains() using an adaptor to ListHashSet. |
| Those method are like the one of HashSet, they allow to find objects |
| based on a different key than the one used to define the set. |
| |
| Add convenience methods for direct access to the head and tail of the list. |
| Those methods are providing similar API/behavior as Vector. |
| |
| * wtf/ListHashSet.h: |
| (WTF::::first): |
| (WTF::::last): |
| (WTF::::removeLast): |
| (WTF::ListHashSetTranslatorAdapter::hash): |
| (WTF::ListHashSetTranslatorAdapter::equal): |
| (WTF::::find): |
| (WTF::::contains): |
| |
| 2011-02-26 Patrick Gansterer <paroga@webkit.org> |
| |
| Reviewed by Andreas Kling. |
| |
| Add support for DragonFly BSD |
| https://bugs.webkit.org/show_bug.cgi?id=54407 |
| |
| DragonFly BSD is based on FreeBSD, so handle it like FreeBSD. |
| |
| * wtf/Platform.h: |
| |
| 2011-02-26 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Dimitri Glazkov. |
| |
| JavaScriptCore should use the xcconfig file instead of importing that information into GYP |
| https://bugs.webkit.org/show_bug.cgi?id=55282 |
| |
| Technically, this breaks the build because I had removed one of the |
| warnings in this config file, but this change seems like an |
| improvement. |
| |
| * gyp/JavaScriptCore.gyp: |
| |
| 2011-02-26 Thouraya ANDOLSI <thouraya.andolsi@st.com> |
| |
| Reviewed by Nikolas Zimmermann. |
| |
| SH4 JIT SUPPORT |
| https://bugs.webkit.org/show_bug.cgi?id=44329 |
| |
| Provide an ExecutableAllocater::cacheFlush() implementation for |
| Linux/SH4. |
| |
| * jit/ExecutableAllocator.h: |
| (JSC::ExecutableAllocator::cacheFlush): |
| |
| 2011-02-25 Sheriff Bot <webkit.review.bot@gmail.com> |
| |
| Unreviewed, rolling out r79627. |
| http://trac.webkit.org/changeset/79627 |
| https://bugs.webkit.org/show_bug.cgi?id=55274 |
| |
| broke worker tests (Requested by olliej on #webkit). |
| |
| * JavaScriptCore.exp: |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
| * runtime/Heap.cpp: |
| (JSC::Heap::allocate): |
| * runtime/Heap.h: |
| * runtime/JSCell.h: |
| (JSC::JSCell::JSCell::operator new): |
| (JSC::JSCell::MarkedSpace::sizeClassFor): |
| (JSC::JSCell::MarkedSpace::allocate): |
| * runtime/MarkedBlock.h: |
| * runtime/MarkedSpace.cpp: |
| (JSC::MarkedSpace::MarkedSpace): |
| (JSC::MarkedSpace::allocateBlock): |
| (JSC::MarkedSpace::reset): |
| * runtime/MarkedSpace.h: |
| (JSC::MarkedSpace::SizeClass::SizeClass): |
| |
| 2011-02-25 Michael Saboff <msaboff@apple.com> |
| |
| Reviewed by Darin Adler. |
| |
| Leak in JSParser::Scope of ScopeLabelInfo Vector |
| https://bugs.webkit.org/show_bug.cgi?id=55249 |
| |
| Changed m_labels to be an OwnPtr<>. Added VectorTraits |
| and Scope copy constructor to support this change. |
| |
| * parser/JSParser.cpp: |
| (JSC::JSParser::Scope::~Scope): |
| |
| 2011-02-25 Fumitoshi Ukai <ukai@chromium.org> |
| |
| Reviewed by Adam Barth. |
| |
| WebSocket uses insecure random numbers |
| https://bugs.webkit.org/show_bug.cgi?id=54714 |
| |
| * JavaScriptCore.exp: Export WTF::cryptographicallyRandomNumber() |
| |
| 2011-02-25 Patrick Gansterer <paroga@webkit.org> |
| |
| Reviewed by Adam Roben. |
| |
| Move timeBeginPeriod into OS(WINDOWS) section |
| https://bugs.webkit.org/show_bug.cgi?id=55247 |
| |
| * jsc.cpp: |
| (main): timeBeginPeriod is available on all Windows versions and not compiler specific. |
| |
| 2011-02-25 Patrick Gansterer <paroga@webkit.org> |
| |
| Unreviewed WinCE build fix for r79695. |
| |
| * jsc.cpp: |
| (main): SetErrorMode isn't available on WinCE. |
| |
| 2011-02-25 Adam Roben <aroben@apple.com> |
| |
| Work around Cygwin's crash-suppression behavior |
| |
| Cygwin calls ::SetErrorMode(SEM_FAILCRITICALERRORS), which any processes it launches will |
| inherit. This is bad for testing/debugging, as it causes the post-mortem debugger not to be |
| invoked. (Cygwin does this because it makes crashes more UNIX-y.) We reset the error mode |
| when our test apps launch to work around Cygwin's behavior. |
| |
| Fixes <http://webkit.org/b/55222> Test apps crash silently (without invoking post-mortem |
| debugger) when launched from Cygwin 1.7 |
| |
| Reviewed by Darin Adler. |
| |
| * API/tests/testapi.c: Added a now-needed #include. |
| (main): |
| * jsc.cpp: |
| (main): |
| Call ::SetErrorMode(0) to undo Cygwin's folly. |
| |
| * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops: Define NOMINMAX like many of our |
| other projects do so that windows.h won't define min/max macros that interfere with |
| std::numeric_limits<T>::min/max. |
| |
| 2011-02-24 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Eric Seidel. |
| |
| Add GYP project for JavaScriptCore |
| https://bugs.webkit.org/show_bug.cgi?id=55027 |
| |
| Again, this GYP files is very rough, but it succeeds in building |
| JavaScriptCore. There's a lot more work to do here, especially in the |
| area of sharing with JavaScriptGlue.gyp. This patch is more of a |
| checkpoint so that other folks can help out if they wish. |
| |
| * gyp: Added. |
| * gyp/JavaScriptCore.gyp: Added. |
| * gyp/generate-derived-sources.sh: Added. |
| |
| 2011-02-24 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Eric Seidel. |
| |
| Add missing files to JavaScriptCore.gypi |
| https://bugs.webkit.org/show_bug.cgi?id=55193 |
| |
| I forgot to add mm files in my previous patch. |
| |
| * JavaScriptCore.gyp/JavaScriptCore.gyp: |
| * JavaScriptCore.gypi: |
| |
| 2011-02-24 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Eric Seidel. |
| |
| Remove unused parameter name in GCActivityCallback.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=55194 |
| |
| This change is not strictly required for the GYP-based build system, |
| but I noticed this error when working on the new build system. |
| |
| * runtime/GCActivityCallback.cpp: |
| (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback): |
| |
| 2011-02-24 James Robinson <jamesr@chromium.org> |
| |
| Reviewed by Darin Fisher. |
| |
| Add a USE() macro to control use of the built-in UTF8 codec |
| https://bugs.webkit.org/show_bug.cgi?id=55189 |
| |
| Defaults USE(BUILTIN_UTF8_CODEC) to true for all platforms except chromium, which controls the flag via features.gypi. |
| |
| * wtf/Platform.h: |
| |
| 2011-02-24 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Darin Adler. |
| |
| Variable-sized allocation (but still capped at 64 bytes) |
| https://bugs.webkit.org/show_bug.cgi?id=55159 |
| |
| SunSpider reports no change. |
| |
| * JavaScriptCore.exp: Some day, I hope not to have to edit this file. |
| |
| * runtime/Heap.cpp: |
| (JSC::Heap::allocateSlowCase): Split allocation into a fast and slow |
| case, so the fast case can inline size class selection and turn it into |
| a compile-time constant. |
| |
| Changed the collect-on-every allocation debugging switch to collect only |
| on every slow allocation, so you can still flip the switch without |
| recompiling the world. This may also be preferable for debugging purposes, |
| since collecting after every single allocation can be unusably slow, |
| and can mask problems by running destructors early. |
| |
| * runtime/Heap.h: Ditto. |
| |
| * runtime/JSCell.h: |
| (JSC::JSCell::MarkedSpace::sizeClassFor): |
| (JSC::JSCell::Heap::allocate): |
| (JSC::JSCell::JSCell::operator new): The inlining mentioned above. |
| |
| * runtime/MarkedBlock.h: Dropped the block size from 256KB to 16KB. With |
| multiple size classes, allocating a full 256KB for the first allocation |
| in a given class can be pathologically wasteful. (8KB, or 4KB Mac and |
| 8KB Windows, would be even better, but that seems to be a peformance |
| regression for now.) |
| |
| * runtime/MarkedSpace.cpp: |
| (JSC::MarkedSpace::MarkedSpace): |
| (JSC::MarkedSpace::allocateBlock): |
| (JSC::MarkedSpace::reset): There's more than one size class now, and its |
| cell size is not constant. |
| |
| * runtime/MarkedSpace.h: |
| (JSC::MarkedSpace::SizeClass::SizeClass): Ditto. |
| |
| 2011-02-23 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Make WeakGCMap use new handle infrastructure |
| https://bugs.webkit.org/show_bug.cgi?id=55100 |
| |
| Remove old WeakGCMap implementation and move over to new handle |
| based logic. |
| |
| This has a number of benefits, most notably it makes a WeakGCMap |
| always reflect the true state of the world by as all entries are |
| removed at the first gc cycle that makes them dead. This allows |
| us to get rid of code in a wide variety of objects where the only |
| purpose was to remove themselves from maps. |
| |
| It also means that we no longer need to have special "unchecked" |
| versions of any functions on WeakGCMap. Alas in order to maintain |
| compatibility with the JSWeakObjectMapClear API it is still |
| necessary to have an api that resembles uncheckedRemove, this is |
| now deprecatedRemove and will be dealt with in a later patch. |
| |
| In order to get correct semantics in WeakGCMap we need more |
| contextual information in the finalizer, so we've added an |
| abstract class based finaliser and a context parameter to the |
| calls. |
| |
| The new an improved WeakGCMap also results in sigificantly more |
| churn in the weak handle lists so exposed some potential problems |
| during the post mark phase which have been rectified as well. |
| |
| * API/JSWeakObjectMapRefPrivate.cpp: |
| * API/JSWeakObjectMapRefPrivate.h: |
| * runtime/Heap.cpp: |
| (JSC::Heap::globalObjectCount): |
| (JSC::Heap::protectedGlobalObjectCount): |
| * runtime/JSGlobalData.cpp: |
| (JSC::JSGlobalData::JSGlobalData): |
| * runtime/JSGlobalData.h: |
| * runtime/JSGlobalObject.cpp: |
| (JSC::JSGlobalObject::~JSGlobalObject): |
| (JSC::JSGlobalObject::init): |
| * runtime/WeakGCMap.h: |
| (JSC::WeakGCMap::iterator::iterator): |
| (JSC::WeakGCMap::iterator::get): |
| (JSC::WeakGCMap::iterator::getSlot): |
| (JSC::WeakGCMap::iterator::operator++): |
| (JSC::WeakGCMap::iterator::operator==): |
| (JSC::WeakGCMap::iterator::operator!=): |
| (JSC::WeakGCMap::WeakGCMap): |
| (JSC::WeakGCMap::isEmpty): |
| (JSC::WeakGCMap::clear): |
| (JSC::WeakGCMap::get): |
| (JSC::WeakGCMap::getSlot): |
| (JSC::WeakGCMap::set): |
| (JSC::WeakGCMap::take): |
| (JSC::WeakGCMap::size): |
| (JSC::WeakGCMap::deprecatedRemove): |
| (JSC::WeakGCMap::begin): |
| (JSC::WeakGCMap::end): |
| (JSC::WeakGCMap::~WeakGCMap): |
| (JSC::WeakGCMap::finalize): |
| * runtime/WeakGCPtr.h: |
| (JSC::WeakGCPtr::WeakGCPtr): |
| (JSC::WeakGCPtr::set): |
| |
| 2011-02-24 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Make weaklist processing deal with weak handles being removed during the iteration |
| https://bugs.webkit.org/show_bug.cgi?id=55105 |
| |
| It is possible for the handle heap to end up in a broken state if |
| a handle's finalizer removes either the current or next handle |
| to be visited during the post-gc cleanup. This patch removes that |
| problem by allowing the deallocate(Node*) routine to update the |
| iterator if it is called during finalization. |
| |
| * collector/handles/HandleHeap.cpp: |
| (JSC::HandleHeap::HandleHeap): |
| (JSC::HandleHeap::updateAfterMark): |
| (JSC::HandleHeap::clearWeakPointers): |
| (JSC::HandleHeap::writeBarrier): |
| (JSC::HandleHeap::protectedGlobalObjectCount): |
| * collector/handles/HandleHeap.h: |
| (JSC::Finalizer::~Finalizer): |
| (JSC::HandleHeap::getFinalizer): |
| (JSC::HandleHeap::deallocate): |
| (JSC::HandleHeap::makeWeak): |
| (JSC::HandleHeap::makeSelfDestroying): |
| (JSC::HandleHeap::Node::Node): |
| (JSC::HandleHeap::Node::setFinalizer): |
| (JSC::HandleHeap::Node::finalizer): |
| (JSC::HandleHeap::Node::finalizerContext): |
| * interpreter/RegisterFile.cpp: |
| (JSC::RegisterFile::setGlobalObject): |
| (JSC::GlobalObjectNotifier::finalize): |
| (JSC::RegisterFile::globalObjectCollectedNotifier): |
| * interpreter/RegisterFile.h: |
| (JSC::RegisterFile::RegisterFile): |
| * runtime/Heap.cpp: |
| (JSC::Heap::destroy): |
| * runtime/WeakGCPtr.h: |
| (JSC::WeakGCPtr::WeakGCPtr): |
| (JSC::WeakGCPtr::set): |
| |
| 2011-02-24 Michael Saboff <msaboff@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| PatternAlternative leaked in YarrPatternConstructor::atomParenthesesEnd() |
| https://bugs.webkit.org/show_bug.cgi?id=55156 |
| |
| Added code to delete unneeded PatternAlternative after it is removed |
| from m_alternatives Vector. |
| |
| * yarr/YarrPattern.cpp: |
| (JSC::Yarr::YarrPatternConstructor::atomParenthesesEnd): |
| |
| 2011-02-24 Eric Seidel <eric@webkit.org> |
| |
| Reviewed by Anders Carlsson. |
| |
| VectorBuffer should not call malloc(0) |
| https://bugs.webkit.org/show_bug.cgi?id=55091 |
| |
| Turns out the malloc() call which was so hot in: |
| https://bugs.webkit.org/show_bug.cgi?id=55005 |
| was actually just malloc(0). |
| |
| We shouldn't be calling malloc(0) anyway, since there is no need to |
| and it might actually do work on some systems. |
| I believe on Mac it ends up taking the standard spinlocks (expensive) |
| and the code on Brew actually does a malloc(1) instead. Neither is desirable. |
| |
| * wtf/Vector.h: |
| (WTF::VectorBufferBase::allocateBuffer): |
| (WTF::VectorBufferBase::tryAllocateBuffer): |
| |
| 2011-02-24 Patrick Gansterer <paroga@webkit.org> |
| |
| Reviewed by Darin Adler. |
| |
| Remove obsolete PLATFORM(CI) |
| https://bugs.webkit.org/show_bug.cgi?id=55082 |
| |
| * wtf/Platform.h: |
| |
| 2011-02-24 Martin Robinson <mrobinson@igalia.com> |
| |
| Reviewed by Xan Lopez. |
| |
| [GTK] Remove the GFile GOwnPtr specialization |
| https://bugs.webkit.org/show_bug.cgi?id=55154 |
| |
| Remove the GFile specialization of GOwnPtr. It's sufficient to use GRefPtr |
| to track GFiles since they are just regular reference-counted GObjects. |
| |
| * wtf/gobject/GOwnPtr.cpp: Remove GFile specialization. |
| * wtf/gobject/GOwnPtr.h: Ditto. |
| |
| 2011-02-24 Patrick Gansterer <paroga@webkit.org> |
| |
| Reviewed by Eric Seidel. |
| |
| Rename PLATFORM(SKIA) to USE(SKIA) |
| https://bugs.webkit.org/show_bug.cgi?id=55090 |
| |
| * wtf/Platform.h: |
| |
| 2011-02-24 Patrick Gansterer <paroga@webkit.org> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Remove pthreads dependecy for JSLock |
| https://bugs.webkit.org/show_bug.cgi?id=54832 |
| |
| JSLock is only needed to support an obsolete execution model where JavaScriptCore |
| automatically protected against concurrent access from multiple threads. |
| So it's safe to disable it on non-mac platforms where we don't have native pthreads. |
| |
| * runtime/JSLock.cpp: |
| |
| 2011-02-24 Chao-ying Fu <fu@mips.com> |
| |
| Reviewed by Eric Seidel. |
| |
| Fix MIPS build with new patchOffsetPut/GetByIdPropertyMapOffset1/2 values |
| https://bugs.webkit.org/show_bug.cgi?id=54997 |
| |
| * jit/JIT.h: |
| * jit/JITStubs.cpp: |
| (JSC::JITThunks::JITThunks): |
| |
| 2011-02-24 Andras Becsi <abecsi@webkit.org> |
| |
| Reviewed by Laszlo Gombos. |
| |
| [Qt] MinGW build fails to link |
| https://bugs.webkit.org/show_bug.cgi?id=55050 |
| |
| Prepend the libraries of subcomponents instead of appending them |
| to fix the library order according to the dependency of the libraries |
| |
| * JavaScriptCore.pri: rename addJavaScriptCore to prependJavaScriptCore |
| * jsc.pro: ditto |
| |
| 2011-02-24 Eric Seidel <eric@webkit.org> |
| |
| Reviewed by Adam Barth. |
| |
| Deque<T> should support inline capacity |
| https://bugs.webkit.org/show_bug.cgi?id=55032 |
| |
| The title says it all. There are currently no places |
| which use this code yet, however it's been tested in conjunction |
| with code for bug 55005. |
| |
| This also adds an ASSERT that capacity is never 1. If you were able |
| to set the capacity equal to 1, the Deque would just get confused |
| and happily append your item but still think it had size 0. |
| |
| * wtf/Deque.h: |
| (WTF::DequeIterator::DequeIterator): |
| (WTF::DequeConstIterator::DequeConstIterator): |
| (WTF::DequeReverseIterator::DequeReverseIterator): |
| (WTF::DequeConstReverseIterator::DequeConstReverseIterator): |
| (WTF::::checkValidity): |
| (WTF::::checkIndexValidity): |
| (WTF::::invalidateIterators): |
| (WTF::::Deque): |
| (WTF::deleteAllValues): |
| (WTF::::operator): |
| (WTF::::destroyAll): |
| (WTF::::~Deque): |
| (WTF::::swap): |
| (WTF::::clear): |
| (WTF::::findIf): |
| (WTF::::expandCapacityIfNeeded): |
| (WTF::::expandCapacity): |
| (WTF::::takeFirst): |
| (WTF::::append): |
| (WTF::::prepend): |
| (WTF::::removeFirst): |
| (WTF::::remove): |
| (WTF::::addToIteratorsList): |
| (WTF::::removeFromIteratorsList): |
| (WTF::::DequeIteratorBase): |
| (WTF::::~DequeIteratorBase): |
| (WTF::::isEqual): |
| (WTF::::increment): |
| (WTF::::decrement): |
| (WTF::::after): |
| (WTF::::before): |
| * wtf/Vector.h: |
| |
| 2011-02-22 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Ojan Vafai. |
| |
| Add missing files to JavaScriptCore.gypi |
| https://bugs.webkit.org/show_bug.cgi?id=55020 |
| |
| gypi files are supposed to list every file under the sun. This patch |
| adds some missing files and sorts the rest. |
| |
| * JavaScriptCore.gypi: |
| |
| 2011-02-23 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Darin Adler. |
| |
| Refactored MarkedSpace to operate in terms of size classes |
| https://bugs.webkit.org/show_bug.cgi?id=55106 |
| |
| SunSpider reports no change. |
| |
| * runtime/JSCell.h: |
| (JSC::JSCell::MarkedSpace::sizeClassFor): |
| (JSC::JSCell::MarkedSpace::allocate): Delegate allocation based on size |
| class. Since these functions are inline, the compiler can constant fold |
| them. |
| |
| * runtime/MarkedBlock.h: |
| (JSC::MarkedBlock::cellSize): |
| (JSC::MarkedBlock::size): Factored out a cellSize() helper. |
| |
| * runtime/MarkedSpace.cpp: |
| (JSC::MarkedSpace::allocateBlock): |
| (JSC::MarkedSpace::allocateFromSizeClass): |
| (JSC::MarkedSpace::shrink): |
| (JSC::MarkedSpace::reset): |
| * runtime/MarkedSpace.h: |
| (JSC::MarkedSpace::SizeClass::SizeClass): |
| (JSC::MarkedSpace::SizeClass::reset): Changed to operate in terms of |
| abstract SizeClass objects, which are independent linked lists of blocks |
| of a certain size class, instead of a single m_heap object. |
| |
| 2011-02-23 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by James Robinson. |
| |
| [Chromium] Use WebKitClient for OSRandomSource instead of trying to talk to the file system in the sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=55093 |
| |
| Exclude OSRandomSource.cpp from the Chromium build. This function is |
| implemented in WebKit/chromium/src instead. |
| |
| * JavaScriptCore.gyp/JavaScriptCore.gyp: |
| |
| 2011-02-23 Oliver Hunt <oliver@apple.com> |
| |
| Roll out r64156 as it introduces incorrect behaviour. |
| |
| * runtime/JSByteArray.h: |
| (JSC::JSByteArray::setIndex): |
| |
| 2011-02-23 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Moved the "nextAtom" allocation pointer into MarkedBlock for better encapsulation |
| https://bugs.webkit.org/show_bug.cgi?id=55079 |
| |
| SunSpider reports no change. |
| |
| * runtime/Heap.cpp: |
| (JSC::Heap::reset): Moved Zombie sweeping here, up from MarkedSpace, |
| since we want Heap to logically control MarkedSpace. MarkedSpace should |
| never choose to sweep itself. |
| |
| * runtime/JSCell.h: |
| (JSC::JSCell::MarkedBlock::allocate): Updated for nextAtom becoming a |
| member of MarkedBlock. No need to reset nextAtom to firstAtom() when |
| we reach the end of a block, since there's now an explicit reset pass |
| during GC. |
| |
| * runtime/MarkedBlock.cpp: |
| (JSC::MarkedBlock::MarkedBlock): |
| * runtime/MarkedBlock.h: |
| (JSC::MarkedBlock::reset): Added the nextAtom data member, and reordered |
| some data members to improve cache locality. |
| |
| * runtime/MarkedSpace.cpp: |
| (JSC::MarkedSpace::MarkedSpace): |
| (JSC::MarkedSpace::allocate): |
| (JSC::MarkedSpace::reset): |
| * runtime/MarkedSpace.h: |
| (JSC::CollectorHeap::CollectorHeap): Removed nextAtom, and added an |
| explicit reset pass. |
| |
| 2011-02-23 James Robinson <jamesr@chromium.org> |
| |
| Unreviewed, rolling out r79428. |
| http://trac.webkit.org/changeset/79428 |
| https://bugs.webkit.org/show_bug.cgi?id=54714 |
| |
| Does not work in the Chromium sandbox |
| |
| * JavaScriptCore.exp: |
| |
| 2011-02-23 Adam Roben <aroben@apple.com> |
| |
| Fix an off-by-one error in JSC::appendSourceToError |
| |
| Looks like this bug has been around since the code was first added in r35245. |
| |
| Fixes <http://webkit.org/b/55052> <rdar://problem/9043512> Crash in JSC::appendSourceToError |
| when running fast/dom/objc-big-method-name.html on Windows with full page heap enabled |
| |
| Reviewed by Darin Adler. |
| |
| * interpreter/Interpreter.cpp: |
| (JSC::appendSourceToError): When trimming whitespace off the end of the string, examine the |
| character at stop-1 rather than at stop. At this point in the code, stop represents the |
| index just past the end of the characters we care about, and can even be just past the end |
| of the entire data buffer. |
| |
| 2011-02-23 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Darin Adler. |
| |
| Rolled back in r79367 with SnowLeopard Release bot crash fixed. |
| https://bugs.webkit.org/show_bug.cgi?id=54999 |
| |
| The crash was caused by failure to update the "nextBlock" pointer when |
| removing a block from the list while shrinking. The fix is to update the |
| "nextBlock" pointer. |
| |
| This crash was very rare because it only happened in cases where the very |
| first block in the heap contained no marked cells. |
| |
| 2011-02-23 Dan Bernstein <mitz@apple.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Include frame numbers in backtraces. |
| https://bugs.webkit.org/show_bug.cgi?id=55060 |
| |
| * wtf/Assertions.cpp: |
| |
| 2011-02-23 Xan Lopez <xlopez@igalia.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| latest jsc for armv7 crashes in sunspider tests |
| https://bugs.webkit.org/show_bug.cgi?id=54667 |
| |
| Update JIT offset values in ARMv7 after r78732. Fixes crashes in |
| SunSpider and JavaScript tests. |
| |
| * jit/JIT.h: update values. |
| |
| 2011-02-23 Sheriff Bot <webkit.review.bot@gmail.com> |
| |
| Unreviewed, rolling out r79418. |
| http://trac.webkit.org/changeset/79418 |
| https://bugs.webkit.org/show_bug.cgi?id=55043 |
| |
| "breaks shlib linux build" (Requested by morrita on #webkit). |
| |
| * JavaScriptCore.gyp/JavaScriptCore.gyp: |
| * JavaScriptCore.gypi: |
| |
| 2011-02-23 Patrick Gansterer <paroga@webkit.org> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Use DEFINE_STATIC_LOCAL for ignoreSetMutex in Structure.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=54831 |
| |
| * runtime/InitializeThreading.cpp: |
| (JSC::initializeThreadingOnce): |
| * runtime/Structure.cpp: |
| (JSC::ignoreSetMutex): |
| (JSC::Structure::Structure): |
| (JSC::Structure::~Structure): |
| (JSC::Structure::initializeThreading): |
| * runtime/Structure.h: |
| |
| 2011-02-23 Patrick Gansterer <paroga@webkit.org> |
| |
| Reviewed by Darin Adler. |
| |
| Rename PLATFORM(CF) to USE(CF) |
| https://bugs.webkit.org/show_bug.cgi?id=53540 |
| |
| * runtime/DatePrototype.cpp: |
| * runtime/GCActivityCallbackCF.cpp: |
| * runtime/JSGlobalData.cpp: |
| (JSC::JSGlobalData::JSGlobalData): |
| * wtf/CurrentTime.cpp: |
| * wtf/Platform.h: |
| * wtf/text/AtomicString.h: |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::computeHash): |
| * wtf/text/WTFString.h: |
| * wtf/unicode/icu/CollatorICU.cpp: |
| (WTF::Collator::userDefault): |
| |
| 2011-02-23 Fumitoshi Ukai <ukai@chromium.org> |
| |
| Unreviewed build fix for Windows. |
| |
| WebSocket uses insecure random numbers |
| https://bugs.webkit.org/show_bug.cgi?id=54714 |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Export WTF::cryptographicallyRandomNumber() |
| |
| 2011-02-23 Fumitoshi Ukai <ukai@chromium.org> |
| |
| Reviewed by Adam Barth. |
| |
| WebSocket uses insecure random numbers |
| https://bugs.webkit.org/show_bug.cgi?id=54714 |
| |
| * JavaScriptCore.exp: Export WTF::cryptographicallyRandomNumber() |
| |
| 2011-02-22 Adam Barth <abarth@webkit.org> |
| |
| Reviewed by Ojan Vafai. |
| |
| Add missing files to JavaScriptCore.gypi |
| https://bugs.webkit.org/show_bug.cgi?id=55020 |
| |
| gypi files are supposed to list every file under the sun. This patch |
| adds some missing files and sorts the rest. |
| |
| * JavaScriptCore.gypi: |
| |
| 2011-02-22 Sheriff Bot <webkit.review.bot@gmail.com> |
| |
| Unreviewed, rolling out r79367. |
| http://trac.webkit.org/changeset/79367 |
| https://bugs.webkit.org/show_bug.cgi?id=55012 |
| |
| all layout tests are crashing on Snow Leopard (Requested by |
| rniwa on #webkit). |
| |
| * GNUmakefile.am: |
| * JavaScriptCore.gypi: |
| * JavaScriptCore.vcproj/WTF/WTF.vcproj: |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| * runtime/MarkedBlock.cpp: |
| (JSC::MarkedBlock::MarkedBlock): |
| * runtime/MarkedBlock.h: |
| * runtime/MarkedSpace.cpp: |
| (JSC::MarkedSpace::destroy): |
| (JSC::MarkedSpace::allocateBlock): |
| (JSC::MarkedSpace::freeBlock): |
| (JSC::MarkedSpace::allocate): |
| (JSC::MarkedSpace::shrink): |
| (JSC::MarkedSpace::reset): |
| * runtime/MarkedSpace.h: |
| (JSC::CollectorHeap::collectorBlock): |
| * wtf/CMakeLists.txt: |
| * wtf/DoublyLinkedList.h: Removed. |
| |
| 2011-02-22 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Manage MarkedBlocks in a linked list instead of a vector, so arbitrary removal is O(1) |
| https://bugs.webkit.org/show_bug.cgi?id=54999 |
| |
| SunSpider reports no change. |
| |
| * GNUmakefile.am: |
| * JavaScriptCore.gypi: |
| * JavaScriptCore.vcproj/WTF/WTF.vcproj: |
| * JavaScriptCore.xcodeproj/project.pbxproj: So many build systems, so little time. |
| * wtf/CMakeLists.txt: |
| |
| * runtime/MarkedBlock.cpp: |
| (JSC::MarkedBlock::MarkedBlock): |
| * runtime/MarkedBlock.h: |
| (JSC::MarkedBlock::setPrev): |
| (JSC::MarkedBlock::setNext): |
| (JSC::MarkedBlock::prev): |
| (JSC::MarkedBlock::next): Added linked list data members and accessors. |
| |
| * runtime/MarkedSpace.cpp: |
| (JSC::MarkedSpace::destroy): |
| (JSC::MarkedSpace::allocateBlock): Stop using vector, since it doesn't exist anymore. |
| |
| (JSC::MarkedSpace::freeBlocks): New helper function for updating relevant |
| data structures when freeing blocks. |
| |
| (JSC::MarkedSpace::allocate): Updated for nextBlock being a pointer and |
| not a vector index. |
| |
| (JSC::MarkedSpace::shrink): Construct a temporary list of empties and |
| then free them, to avoid modifying our hash table while iterating it. |
| This wasn't a concern before because we were using indirect array |
| indexing, not direct pointer indexing. |
| |
| (JSC::MarkedSpace::reset): Updated for nextBlock being a pointer and |
| not a vector index. |
| |
| * runtime/MarkedSpace.h: |
| (JSC::CollectorHeap::CollectorHeap): Changed data type from vector to linked list. |
| |
| * wtf/DoublyLinkedList.h: Added. New linked list class. |
| (WTF::::DoublyLinkedList): |
| (WTF::::isEmpty): |
| (WTF::::head): |
| (WTF::::append): |
| (WTF::::remove): |
| |
| 2011-02-22 Gavin Barraclough <barraclough@apple.com> |
| |
| Windows build fix. |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
| |
| 2011-02-22 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| Bug 54988 - Re-create StructureTransitionTable class, encapsulate transition table |
| |
| The Structure class keeps a table of transitions to derived Structure types. Since |
| this table commonly contains a single entry we employ an optimization where instead |
| of holding a map, we may hold a pointer directly to a single instance of the mapped |
| type. We use an additional bit of data to flag whether the pointer is currently |
| pointing to a table of transitions, or a singleton transition. Previously we had |
| commonly used a pattern of storing data in the low bits of pointers, but had moved |
| away from this since it causes false leaks to be reported by the leaks tool. However |
| in this case, the entries in the map are weak links - this pointer will never be |
| responsible for keeping an object alive. As such we can use this approach provided |
| that the bit is set when a table is not in use (otherwise the table would appear to |
| be leaked). |
| |
| Additionally, the transition table currently allows two entries to exist for a given |
| key - one specialized to a particular value, and one not specialized. This is |
| unnecessary, wasteful, and a little inconsistent. (If you create an entry for a |
| specialized value, then a non-specialized entry, both will exist. If you create an |
| entry for a non-specialized value, then try to create a specialized entry, only a |
| non-specialized form will be allowed.) |
| |
| This shows a small progression on v8. |
| |
| * JavaScriptCore.exp: |
| * runtime/JSObject.h: |
| (JSC::JSObject::putDirectInternal): |
| * runtime/Structure.cpp: |
| (JSC::StructureTransitionTable::contains): |
| (JSC::StructureTransitionTable::get): |
| (JSC::StructureTransitionTable::remove): |
| (JSC::StructureTransitionTable::add): |
| (JSC::Structure::dumpStatistics): |
| (JSC::Structure::Structure): |
| (JSC::Structure::~Structure): |
| (JSC::Structure::addPropertyTransitionToExistingStructure): |
| (JSC::Structure::addPropertyTransition): |
| * runtime/Structure.h: |
| (JSC::Structure::get): |
| * runtime/StructureTransitionTable.h: |
| (JSC::StructureTransitionTable::Hash::hash): |
| (JSC::StructureTransitionTable::Hash::equal): |
| (JSC::StructureTransitionTable::HashTraits::emptyValue): |
| (JSC::StructureTransitionTable::HashTraits::constructDeletedValue): |
| (JSC::StructureTransitionTable::HashTraits::isDeletedValue): |
| (JSC::StructureTransitionTable::StructureTransitionTable): |
| (JSC::StructureTransitionTable::~StructureTransitionTable): |
| (JSC::StructureTransitionTable::isUsingSingleSlot): |
| (JSC::StructureTransitionTable::map): |
| (JSC::StructureTransitionTable::setMap): |
| (JSC::StructureTransitionTable::singleTransition): |
| (JSC::StructureTransitionTable::setSingleTransition): |
| |
| 2011-02-22 Andras Becsi <abecsi@webkit.org> |
| |
| Reviewed by Laszlo Gombos. |
| |
| [Qt] Redesign the build system |
| https://bugs.webkit.org/show_bug.cgi?id=51339 |
| |
| Part 2. |
| |
| Build WebCore as a static library, compile the WebKit API and WebKit2 API |
| in a final step and link to WebKit2, WebCore and JSC libraries to fix |
| linking issues resulting from stripped away symbols. |
| |
| * JavaScriptCore.pri: Remove the workaround. |
| |
| 2011-02-21 Adam Roben <aroben@apple.com> |
| |
| Fix linker warning on Windows |
| |
| r79135 tried to export JSObject::s_info by adding it to JavaScriptCore.def. This is the |
| obvious way (since it's how we export functions), but unfortunately it doesn't work correct. |
| r79222 made us export it the right way (using the JS_EXPORTDATA macro), but forgot to remove |
| it from JavaScriptCore.def. This caused us to get linker warnings about exporting the symbol |
| multiple times. |
| |
| Rubber-stamped by Anders Carlsson. |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Removed JSObject::s_info. |
| |
| 2011-02-21 Brian Weinstein <bweinstein@apple.com> |
| |
| Reviewed by Adam Roben. |
| |
| WebResourceCacheManager should be responsible for managing the CFURLCache as well |
| as the WebCore memory cache. |
| https://bugs.webkit.org/show_bug.cgi?id=54886 |
| Part of <rdar://problem/8971738> |
| |
| Add a new use flag for using the CFURLCache. |
| |
| * wtf/Platform.h: |
| |
| 2011-02-21 Xan Lopez <xlopez@igalia.com> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Use ASSERT_JIT_OFFSET in JITPropertyAccess32_64.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=54901 |
| |
| * jit/JIT.h: swap actual and expected values in message, they were |
| reversed. |
| * jit/JITCall32_64.cpp: |
| (JSC::JIT::compileOpCall): use ASSERT_JIT_OFFSET instead of |
| a simple ASSERT. |
| * jit/JITPropertyAccess32_64.cpp: |
| (JSC::JIT::emit_op_method_check): ditto. |
| (JSC::JIT::compileGetByIdHotPath): ditto. |
| (JSC::JIT::compileGetByIdSlowCase): ditto. |
| (JSC::JIT::emit_op_put_by_id): ditto. |
| |
| 2011-02-21 Gavin Barraclough <barraclough@apple.com> |
| |
| Ruber stamped by Sam Weinig |
| |
| Bug 54899 - Math.LOG10E should be 0.4342944819032518 |
| This value is quoted in section 15.8.1.5 of the spec. |
| |
| * runtime/MathObject.cpp: |
| (JSC::MathObject::MathObject): |
| |
| 2011-02-21 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| Bug 54894 - Make inheritance structure described by ClassInfo match C++ class hierarchy. |
| |
| The ClassInfo objects describe an inheritance hierarchy, with each ClassInfo instance |
| containing a pointer to its parent class. These links should reflect the inheritance |
| hierarchy of C++ classes below JSObject. For the large part it does, but in some cases |
| entries in the C++ hierarchy are skipped over. This presently likely doesn't matter, |
| since intervening C++ classes may not have ClassInfo - but would be a potential bug |
| were ClassInfo were to be added. |
| |
| * API/JSCallbackConstructor.cpp: |
| * API/JSCallbackFunction.cpp: |
| * API/JSCallbackObjectFunctions.h: |
| * runtime/Arguments.h: |
| * runtime/ArrayPrototype.cpp: |
| * runtime/BooleanObject.cpp: |
| * runtime/DateInstance.cpp: |
| * runtime/DatePrototype.cpp: |
| * runtime/ErrorInstance.cpp: |
| * runtime/InternalFunction.cpp: |
| * runtime/JSActivation.cpp: |
| * runtime/JSArray.cpp: |
| * runtime/JSFunction.cpp: |
| * runtime/JSONObject.cpp: |
| * runtime/JSObject.h: |
| * runtime/JSZombie.h: |
| * runtime/MathObject.cpp: |
| * runtime/NativeErrorConstructor.cpp: |
| * runtime/NumberConstructor.cpp: |
| * runtime/NumberObject.cpp: |
| * runtime/RegExpConstructor.cpp: |
| * runtime/RegExpObject.cpp: |
| * runtime/StringObject.cpp: |
| * runtime/StringPrototype.cpp: |
| |
| 2011-02-21 Adam Roben <aroben@apple.com> |
| |
| Export JSObject::s_info from JavaScriptCore.dll |
| |
| This matches what we do for all other ClassInfo objects that WebCore needs access to. |
| |
| Fixes <http://webkit.org/b/54881> REGRESSION (r79132): Lots of tests crashing in |
| JSCell::inherits on Windows |
| |
| Reviewed by Sam Weinig. |
| |
| * runtime/JSObject.h: Added JS_EXPORTDATA to s_info. |
| |
| 2011-02-21 Kristian Amlie <kristian.amlie@nokia.com> |
| |
| Reviewed by Andreas Kling. |
| |
| Switched to compiler based detection, where the error actually is. |
| |
| It is not the platform that needs the workaround, it is the compiler. |
| |
| QtWebKit fails to compile on Windows XP with msvc-2008 |
| https://bugs.webkit.org/show_bug.cgi?id=54746 |
| |
| * bytecode/CodeBlock.h: |
| * runtime/RegExpObject.h: |
| |
| 2011-02-20 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| https://bugs.webkit.org/show_bug.cgi?id=54839 |
| Remove PrototypeFunction, NativeFunctionWrapper, and GlobalEvalFunction. |
| |
| Historically, Native functions used to be represented by PrototypeFunctions, however |
| since introducing call optimizations to the JIT this has used JSFunctions for host |
| calls too. At the point this change was made, the interpreter continued to use |
| PrototypeFunctions, however since fallback from the JIT to interpreter was introduced |
| the interpreter has had to be able to run using host functions represented using |
| JSFunctions - leading to an unnecessary and redundant divergence in behaviour between |
| interpreter only builds, and situations where the JIT has fallen back to interpreting. |
| |
| NativeFunctionWrapper only existed to select between PrototypeFunction and JSFunction |
| for wrappers for host functions, and as such can also be removed. |
| |
| GlobalEvalFunction is a redundant wrapper that happens to be derived from |
| PrototypeFunction. It existed to hold a reference to the global object - but since all |
| functions how derive from JSObjectWithGlobalObject, this no longer requires an |
| additional class to provide this functionality. |
| |
| * JavaScriptCore.JSVALUE32_64only.exp: |
| * JavaScriptCore.JSVALUE64only.exp: |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| Removed symbols / references to files. |
| |
| * runtime/GlobalEvalFunction.cpp: Removed. |
| * runtime/GlobalEvalFunction.h: Removed. |
| * runtime/NativeFunctionWrapper.h: Removed. |
| * runtime/PrototypeFunction.cpp: Removed. |
| * runtime/PrototypeFunction.h: Removed. |
| Removed. |
| |
| * runtime/Executable.cpp: |
| (JSC::NativeExecutable::~NativeExecutable): |
| * runtime/Executable.h: |
| (JSC::NativeExecutable::create): |
| (JSC::NativeExecutable::NativeExecutable): |
| (JSC::JSFunction::nativeFunction): |
| * runtime/JSFunction.cpp: |
| (JSC::callHostFunctionAsConstructor): |
| (JSC::JSFunction::JSFunction): |
| (JSC::JSFunction::getCallData): |
| * runtime/JSFunction.h: |
| * runtime/JSGlobalData.cpp: |
| (JSC::JSGlobalData::getHostFunction): |
| * runtime/JSGlobalData.h: |
| (JSC::JSGlobalData::getCTIStub): |
| Added interpreter-friendly constructors for NativeExecutables. |
| |
| * bytecompiler/BytecodeGenerator.cpp: |
| * interpreter/Interpreter.cpp: |
| * jit/JITStubs.cpp: |
| * jsc.cpp: |
| * runtime/ArrayConstructor.cpp: |
| * runtime/BooleanPrototype.cpp: |
| * runtime/BooleanPrototype.h: |
| * runtime/CallData.h: |
| * runtime/DateConstructor.cpp: |
| * runtime/DateConstructor.h: |
| * runtime/ErrorPrototype.cpp: |
| * runtime/ErrorPrototype.h: |
| * runtime/FunctionPrototype.cpp: |
| * runtime/FunctionPrototype.h: |
| * runtime/JSGlobalObject.cpp: |
| * runtime/JSGlobalObject.h: |
| * runtime/JSGlobalObjectFunctions.cpp: |
| * runtime/Lookup.cpp: |
| * runtime/NumberPrototype.cpp: |
| * runtime/NumberPrototype.h: |
| * runtime/ObjectConstructor.cpp: |
| * runtime/ObjectConstructor.h: |
| * runtime/ObjectPrototype.cpp: |
| * runtime/ObjectPrototype.h: |
| * runtime/RegExpPrototype.cpp: |
| * runtime/RegExpPrototype.h: |
| * runtime/SmallStrings.h: |
| * runtime/StringConstructor.cpp: |
| * runtime/StringConstructor.h: |
| Removed use of redundant classes. |
| |
| 2011-02-19 Laszlo Gombos <laszlo.1.gombos@nokia.com> |
| |
| Unreviewed build fix for Symbian. |
| |
| [Symbian] Revert the removal of linking |
| against hal after r79126. |
| |
| Dependency on the hal library can not be removed |
| as it is still used (e.g. in MarkStackSymbian.cpp). |
| |
| * JavaScriptCore.pri: |
| |
| 2011-02-19 Gavin Barraclough <barraclough@apple.com> |
| |
| Interpreter build fix. |
| |
| * runtime/ArrayConstructor.cpp: |
| * runtime/BooleanPrototype.cpp: |
| * runtime/DateConstructor.cpp: |
| * runtime/ErrorPrototype.cpp: |
| * runtime/FunctionPrototype.cpp: |
| * runtime/Lookup.cpp: |
| * runtime/NumberPrototype.cpp: |
| * runtime/ObjectConstructor.cpp: |
| * runtime/ObjectPrototype.cpp: |
| * runtime/RegExpPrototype.cpp: |
| * runtime/StringConstructor.cpp: |
| |
| 2011-02-19 Gavin Barraclough <barraclough@apple.com> |
| |
| Build fix!! |
| |
| * JavaScriptCore.exp: |
| |
| 2011-02-19 Gavin Barraclough <barraclough@apple.com> |
| |
| Windows build fix!! |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
| |
| 2011-02-19 Gavin Barraclough <barraclough@apple.com> |
| |
| Windows build fix! |
| |
| * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
| |
| 2011-02-19 Gavin Barraclough <barraclough@apple.com> |
| |
| Build fix! |
| |
| * JavaScriptCore.exp: |
| |
| 2011-02-18 Gavin Barraclough <barraclough@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| Bug 54786 - Devirtualize JSCell::classInfo() |
| |
| Instead of making a virtual function call, add a pointer to the ClassInfo |
| onto Structure. |
| |
| This removes a virtual function call, and paves the way towards removing all |
| the createStructure methods, and StructureFlags/AnonymousSlotCount properties |
| (these should be able to move onto ClassInfo). |
| |
| Calls to Structure::create must now pass a pointer to the ClassInfo for the |
| structure. All objects now have a ClassInfo pointer, non-object cell types |
| still do not. |
| |
| Changes are most mechanical, involving three steps: |
| * Remove virtual classInfo() methods. |
| * Add &s_info parameter to calls to Structure::create. |
| * Rename ClassInfo static members on classes from 'info' to 's_info', |
| for consistency. |
| |
| * API/JSCallbackConstructor.cpp: |
| * API/JSCallbackConstructor.h: |
| * API/JSCallbackFunction.cpp: |
| * API/JSCallbackFunction.h: |
| * API/JSCallbackObject.cpp: |
| * API/JSCallbackObject.h: |
| * API/JSCallbackObjectFunctions.h: |
| * API/JSObjectRef.cpp: |
| * API/JSValueRef.cpp: |
| * API/JSWeakObjectMapRefPrivate.cpp: |
| * JavaScriptCore.exp: |
| * debugger/Debugger.cpp: |
| * debugger/DebuggerActivation.h: |
| * debugger/DebuggerCallFrame.cpp: |
| * interpreter/Interpreter.cpp: |
| * jit/JITCall32_64.cpp: |
| * jit/JITOpcodes.cpp: |
| * jit/JITStubs.cpp: |
| * profiler/Profiler.cpp: |
| * runtime/Arguments.cpp: |
| * runtime/Arguments.h: |
| * runtime/ArrayConstructor.cpp: |
| * runtime/ArrayPrototype.cpp: |
| * runtime/ArrayPrototype.h: |
| * runtime/BooleanObject.cpp: |
| * runtime/BooleanObject.h: |
| * runtime/BooleanPrototype.cpp: |
| * runtime/DateConstructor.cpp: |
| * runtime/DateInstance.cpp: |
| * runtime/DateInstance.h: |
| * runtime/DatePrototype.cpp: |
| * runtime/DatePrototype.h: |
| * runtime/ErrorInstance.cpp: |
| * runtime/ErrorInstance.h: |
| * runtime/ErrorPrototype.cpp: |
| * runtime/FunctionPrototype.cpp: |
| * runtime/FunctionPrototype.h: |
| * runtime/GetterSetter.h: |
| * runtime/GlobalEvalFunction.h: |
| * runtime/InternalFunction.cpp: |
| * runtime/InternalFunction.h: |
| * runtime/JSAPIValueWrapper.h: |
| * runtime/JSActivation.cpp: |
| * runtime/JSActivation.h: |
| * runtime/JSArray.cpp: |
| * runtime/JSArray.h: |
| * runtime/JSByteArray.cpp: |
| * runtime/JSByteArray.h: |
| * runtime/JSCell.cpp: |
| * runtime/JSCell.h: |
| * runtime/JSFunction.cpp: |
| * runtime/JSFunction.h: |
| * runtime/JSGlobalData.cpp: |
| * runtime/JSGlobalObject.cpp: |
| * runtime/JSGlobalObject.h: |
| * runtime/JSNotAnObject.h: |
| * runtime/JSONObject.cpp: |
| * runtime/JSONObject.h: |
| * runtime/JSObject.cpp: |
| * runtime/JSObject.h: |
| * runtime/JSObjectWithGlobalObject.h: |
| * runtime/JSPropertyNameIterator.h: |
| * runtime/JSStaticScopeObject.h: |
| * runtime/JSString.h: |
| * runtime/JSVariableObject.h: |
| * runtime/JSWrapperObject.h: |
| * runtime/JSZombie.cpp: |
| * runtime/JSZombie.h: |
| * runtime/Lookup.cpp: |
| * runtime/MathObject.cpp: |
| * runtime/MathObject.h: |
| * runtime/NativeErrorConstructor.cpp: |
| * runtime/NativeErrorConstructor.h: |
| * runtime/NumberConstructor.cpp: |
| * runtime/NumberConstructor.h: |
| * runtime/NumberObject.cpp: |
| * runtime/NumberObject.h: |
| * runtime/NumberPrototype.cpp: |
| * runtime/ObjectConstructor.cpp: |
| * runtime/ObjectPrototype.cpp: |
| * runtime/RegExpConstructor.cpp: |
| * runtime/RegExpConstructor.h: |
| * runtime/RegExpObject.cpp: |
| * runtime/RegExpObject.h: |
| * runtime/RegExpPrototype.cpp: |
| * runtime/ScopeChain.cpp: |
| * runtime/StringConstructor.cpp: |
| * runtime/StringObject.cpp: |
| * runtime/StringObject.h: |
| * runtime/StringObjectThatMasqueradesAsUndefined.h: |
| * runtime/StringPrototype.cpp: |
| * runtime/StringPrototype.h: |
| * runtime/Structure.cpp: |
| * runtime/Structure.h: |
| |
| 2011-02-19 David Kilzer <ddkilzer@apple.com> |
| |
| <http://webkit.org/b/54808> Change jsc target to build directly into JavaScriptCore.framework/Resources/jsc |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/Base.xcconfig: Added |
| JAVASCRIPTCORE_FRAMEWORKS_DIR variable. |
| * Configurations/JavaScriptCore.xcconfig: Used |
| JAVASCRIPTCORE_FRAMEWORKS_DIR to define INSTALL_PATH. |
| * JavaScriptCore.xcodeproj/project.pbxproj: Set the INSTALL_PATH |
| for Production configuration of jsc target. |
| (Copy Into Framework): Removed old build phase. |
| (Fix Framework Reference): Renamed build phase to "Copy Into |
| Framework". Added "set -x" call to make the script print the |
| commands it is running. Added code to exit early for Production |
| builds since this was never intended for them. Added code to |
| copy jsc into the JavaScriptCore.framework/Resources directory. |
| |
| 2011-02-19 Siddharth Mathur <siddharth.mathur@nokia.com> |
| |
| Reviewed by Laszlo Gombos. |
| |
| [Symbian] OSAllocator implementation for Symbian OS. |
| Manages both data and code region requests. V8 and Sunspider tested |
| OK with interpreter. Not tested with JSC JIT yet as it has unrelated |
| failures. Also no thread safety yet. |
| https://bugs.webkit.org/show_bug.cgi?id=51128 |
| |
| * JavaScriptCore.pri: removed HAL linkage |
| * wtf/Bitmap.h: |
| (WTF::::findRunOfZeros): find run of zeros in a bitmap. quick n dirty |
| * wtf/OSAllocator.h: |
| (WTF::OSAllocator::decommitAndRelease): decommit explicitly |
| * wtf/OSAllocatorSymbian.cpp: Impl. of OSAllocator interface |
| (WTF::allocateCodeChunk): utility for code chunks |
| (WTF::deallocateCodeChunk): utility for code chunks |
| (WTF::dataAllocatorInstance): getter for data allocator instance |
| (WTF::OSAllocator::reserveUncommitted): |
| (WTF::OSAllocator::releaseDecommitted): |
| (WTF::OSAllocator::commit): |
| (WTF::OSAllocator::decommit): |
| (WTF::OSAllocator::reserveAndCommit): |
| (WTF::PageAllocatorSymbian::PageAllocatorSymbian): maps requests |
| to one underlying Symbian chunk |
| (WTF::PageAllocatorSymbian::~PageAllocatorSymbian): |
| (WTF::PageAllocatorSymbian::reserve): |
| (WTF::PageAllocatorSymbian::release): |
| (WTF::PageAllocatorSymbian::commit): |
| (WTF::PageAllocatorSymbian::decommit): |
| (WTF::PageAllocatorSymbian::contains): |
| * wtf/PageAllocatorSymbian.h: Added. |
| (WTF::SymbianChunk::SymbianChunk): wrapper around RChunk |
| (WTF::SymbianChunk::~SymbianChunk): |
| (WTF::SymbianChunk::contains): |
| |
| 2011-02-19 Yong Li <yoli@rim.com> |
| |
| Reviewed by Eric Seidel. |
| |
| https://bugs.webkit.org/show_bug.cgi?id=54687 |
| When being built with armcc, "int" bit fields are treated as |
| unsigned integers, which will fail the comparisons like "m_offset == -1". |
| Using "signed" fixes the problem. |
| |
| * assembler/ARMAssembler.h: |
| * assembler/ARMv7Assembler.h: |
| |
| 2011-02-18 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| Made MarkedSpace block iteration size-class agnostic |
| https://bugs.webkit.org/show_bug.cgi?id=54792 |
| |
| SunSpider reports no change. |
| |
| * runtime/MarkedSpace.cpp: |
| (JSC::MarkedSpace::clearMarks): |
| (JSC::MarkedSpace::sweep): |
| (JSC::MarkedSpace::objectCount): |
| (JSC::MarkedSpace::size): |
| (JSC::MarkedSpace::capacity): |
| * runtime/MarkedSpace.h: |
| (JSC::MarkedSpace::forEach): Iterate blocks in hashing order instead of |
| size class list order. This is a much simpler convention in a world |
| of many different size classes. |
| |
| 2011-02-18 Kristian Amlie <kristian.amlie@nokia.com> |
| |
| Reviewed by Andreas Kling. |
| |
| Added friend exception to Qt platform, which also compiles Windows. |
| |
| QtWebKit fails to compile on Windows XP with msvc-2008 |
| https://bugs.webkit.org/show_bug.cgi?id=54746 |
| |
| * bytecode/CodeBlock.h: |
| * runtime/RegExpObject.h: |
| |
| 2011-02-18 Geoffrey Garen <ggaren@apple.com> |
| |
| (Rolled back in r79022 with crash fixed.) |
| |
| Reviewed by Sam Weinig. |
| |
| Use hashing instead of linear search in the conservative pointer test |
| https://bugs.webkit.org/show_bug.cgi?id=54767 |
| |
| SunSpider reports no change. |
| |
| * runtime/MarkedSpace.cpp: |
| (JSC::MarkedSpace::destroy): No need to explicitly clear the blocks array, |
| since freeBlock removes items for us. |
| |
| (JSC::MarkedSpace::freeBlock): Fixed a typo that always removed the last |
| block from the block set instead of the block being freed. Changed to |
| remove a block from our data structures before deallocating it, since |
| this is slightly cleaner. |
| |
| * runtime/MarkedSpace.h: |
| (JSC::MarkedSpace::contains): Variable-sized objects will use more, |
| smaller blocks, so it's important for the contains check not to be O(n) |
| in the number of blocks. |
| |
| 2011-02-18 chris reiss <christopher.reiss@nokia.com> |
| |
| Reviewed by Andreas Kling. |
| |
| REGRESSION: Date.parse("Tue Nov 23 20:40:05 2010 GMT") returns NaN |
| https://bugs.webkit.org/show_bug.cgi?id=49989 |
| |
| updated test fast/js/script-tests/date-parse-test.js |
| |
| * wtf/DateMath.cpp: |
| (WTF::parseDateFromNullTerminatedCharacters): |
| |
| 2011-02-18 Sheriff Bot <webkit.review.bot@gmail.com> |
| |
| Unreviewed, rolling out r79022. |
| http://trac.webkit.org/changeset/79022 |
| https://bugs.webkit.org/show_bug.cgi?id=54775 |
| |
| It broke the whole world (Requested by Ossy on #webkit). |
| |
| * runtime/MarkedSpace.h: |
| (JSC::MarkedSpace::contains): |
| |
| 2011-02-18 Yael Aharon <yael.aharon@nokia.com> |
| |
| Reviewed by Dave Hyatt. |
| |
| Add support for dir=auto |
| https://bugs.webkit.org/show_bug.cgi?id=50916 |
| |
| Change defaultWritingDirection() to return if the writing direction |
| was determined from a letter with strong directionality or not. |
| |
| * JavaScriptCore.exp: |
| * JavaScriptCore.order: |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::defaultWritingDirection): |
| * wtf/text/StringImpl.h: |
| * wtf/text/WTFString.h: |
| (WTF::String::defaultWritingDirection): |
| |
| 2011-02-18 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| Use hashing instead of linear search in the conservative pointer test |
| https://bugs.webkit.org/show_bug.cgi?id=54767 |
| |
| SunSpider reports no change. |
| |
| * runtime/MarkedSpace.h: |
| (JSC::MarkedSpace::contains): Variable-sized objects will use more, |
| smaller blocks, so it's important for the contains check not to be O(n) |
| in the number of blocks. |
| |
| 2011-02-18 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| Tightened some usage accounting code in MarkedSpace |
| https://bugs.webkit.org/show_bug.cgi?id=54761 |
| |
| SunSpider reports no change. |
| |
| * runtime/Heap.cpp: |
| (JSC::Heap::Heap): Initialize the marked space high water mark on |
| construction, instead of relying on some implicit subtleties to make |
| not initializing it work out OK. |
| |
| * runtime/Heap.h: Fixed up includes. |
| |
| * runtime/MarkedBlock.h: Made firstAtom() static so clients can call it |
| even without having allocated a block. |
| |
| * runtime/MarkedSpace.cpp: |
| (JSC::MarkedSpace::MarkedSpace): Don't pre-allocate a block, since this |
| would be prohibitively expensive with multiple size classes. |
| |
| (JSC::MarkedSpace::allocateBlock): |
| (JSC::MarkedSpace::freeBlock): Track allocated blocks in a hash set, |
| since linear search in the contains check will be prohibitively |
| expensive once we're using lots of smaller blocks. |
| |
| (JSC::MarkedSpace::allocate): Don't assume that we always have a block |
| allocated, since we don't anymore. (See above.) |
| |
| (JSC::MarkedSpace::reset): |
| * runtime/MarkedSpace.h: Updated for changes mentioned above. |
| |
| 2011-02-17 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| Made object allocation secretly variable-sized (Shhhh!) |
| https://bugs.webkit.org/show_bug.cgi?id=54721 |
| |
| SunSpider reports no change. |
| |
| Internally, MarkedBlock now makes variable-sized allocations, even |
| though MarkedSpace doesn't take advantage of this yet. |
| |
| * runtime/MarkedBlock.cpp: |
| (JSC::MarkedBlock::MarkedBlock): No need to ASSERT that allocations are |
| fixed-sized. |
| |
| * runtime/MarkedBlock.h: Shrunk the atom size so we can allocate things |
| that are not multiples of 64 bytes. |
| |
| 2011-02-17 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| Fixed some math errors when when using variable-sized cells |
| https://bugs.webkit.org/show_bug.cgi?id=54717 |
| |
| SunSpider reports no change. |
| |
| Computer Science Barbie says, "Math is not so hard afterall!" |
| |
| * runtime/JSCell.h: |
| (JSC::JSCell::MarkedBlock::allocate): Round up when calculating the |
| minimum number of atoms required for a cell, since rounding down |
| will get you splinched. |
| |
| * runtime/MarkedBlock.cpp: |
| (JSC::MarkedBlock::MarkedBlock): |
| (JSC::MarkedBlock::sweep): |
| * runtime/MarkedBlock.h: |
| (JSC::MarkedBlock::forEach): Changed a bunch of != tests to < tests |
| because m_endAtom is actually a fuzzy end -- iterating from firstAtom() |
| may not hit m_endAtom exactly. |
| |
| 2011-02-17 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| A little more abstraction for MarkedSpace::contains |
| https://bugs.webkit.org/show_bug.cgi?id=54715 |
| |
| * runtime/MarkedBlock.h: |
| (JSC::MarkedBlock::contains): Added a contains function, so MarkedSpace |
| doesn't have to know how MarkedBlock tracks containment internally. |
| |
| * runtime/MarkedSpace.h: |
| (JSC::MarkedSpace::contains): Call through to MarkedBlock to figure out |
| if a cell that seems to be in a block is valid. |
| |
| 2011-02-17 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Sam Weinig. |
| |
| Removed the invariant that the last cell in a block is always marked |
| https://bugs.webkit.org/show_bug.cgi?id=54713 |
| |
| SunSpider reports no change. |
| |
| This adds one branch to allocation, but simplifies the mark invariant, |
| especially in a world of variable-sized cells. Now, it really is true |
| that any cell whose mark bit is set is a valid, live cell whose |
| constructor has run and whose destructor has not run. |
| |
| * runtime/JSCell.h: |
| (JSC::JSCell::MarkedBlock::allocate): Changed this do-while into a while |
| since we can no longer rely on a set mark bit to break out of this loop |
| before it reaches the end of the block. |
| |
| * runtime/MarkedBlock.cpp: |
| (JSC::MarkedBlock::MarkedBlock): |
| (JSC::MarkedBlock::sweep): |
| * runtime/MarkedBlock.h: |
| (JSC::MarkedBlock::isEmpty): |
| (JSC::MarkedBlock::clearMarks): |
| (JSC::MarkedBlock::markCount): |
| (JSC::MarkedBlock::forEach): No need to set a special last mark bit. |
| |
| 2011-02-17 Sheriff Bot <webkit.review.bot@gmail.com> |
| |
| Unreviewed, rolling out r78856 and r78907. |
| http://trac.webkit.org/changeset/78856 |
| http://trac.webkit.org/changeset/78907 |
| https://bugs.webkit.org/show_bug.cgi?id=54705 |
| |
| These seem to break tests on 32-bit builds. (Requested by |
| aroben on #webkit). |
| |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| * collector/handles/Global.h: |
| (JSC::Global::internalSet): |
| * collector/handles/Handle.h: |
| (JSC::HandleTypes::getFromSlot): |
| (JSC::HandleTypes::toJSValue): |
| (JSC::HandleTypes::validateUpcast): |
| (JSC::HandleConverter::operator->): |
| (JSC::HandleConverter::operator*): |
| (JSC::Handle::Handle): |
| (JSC::Handle::get): |
| * runtime/JSArray.cpp: |
| (JSC::JSArray::sortNumeric): |
| * runtime/JSObject.h: |
| (JSC::JSObject::inlineGetOwnPropertySlot): |
| * runtime/SlotAccessor.h: Removed. |
| * runtime/WeakGCPtr.h: |
| (JSC::WeakGCPtr::get): |
| (JSC::WeakGCPtr::internalSet): |
| * runtime/WriteBarrier.h: |
| (JSC::DeprecatedPtr::DeprecatedPtr): |
| (JSC::DeprecatedPtr::get): |
| (JSC::DeprecatedPtr::operator*): |
| (JSC::DeprecatedPtr::operator->): |
| (JSC::DeprecatedPtr::slot): |
| (JSC::DeprecatedPtr::operator UnspecifiedBoolType*): |
| (JSC::DeprecatedPtr::operator!): |
| (JSC::WriteBarrierBase::set): |
| (JSC::WriteBarrierBase::get): |
| (JSC::WriteBarrierBase::operator*): |
| (JSC::WriteBarrierBase::operator->): |
| (JSC::WriteBarrierBase::clear): |
| (JSC::WriteBarrierBase::slot): |
| (JSC::WriteBarrierBase::operator UnspecifiedBoolType*): |
| (JSC::WriteBarrierBase::operator!): |
| (JSC::WriteBarrierBase::setWithoutWriteBarrier): |
| (JSC::WriteBarrier::WriteBarrier): |
| |
| 2011-02-17 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Unreviewed. |
| |
| [Qt] Buildfix. |
| |
| * wtf/RetainPtr.h: Add missing PLATFORM(CF) guard. |
| |
| 2011-02-17 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Oliver Hunt. |
| |
| Made MarkedBlock variable-sized |
| https://bugs.webkit.org/show_bug.cgi?id=54692 |
| |
| SunSpider reports no change. |
| |
| Each MarkedBlock is now composed of a set of fixed-sized atoms, with one |
| mark bit per atom. A given cell may be composed of one or more atoms. |
| |
| * runtime/Heap.cpp: |
| (JSC::Heap::allocate): Made fixed-sizedness a property of MarkedSpace, |
| bubbling it up from MarkedBlock, since MarkedBlock now supports variable- |
| sizedness. |
| |
| * runtime/JSCell.h: |
| (JSC::JSCell::MarkedBlock::allocate): Removed use of CELLS_PER_BLOCK and |
| (implicit) one constants -- these quantities are not constant anymore. |
| Updated for switch from cell to atom. |
| |
| * runtime/MarkedBlock.cpp: |
| (JSC::MarkedBlock::create): |
| (JSC::MarkedBlock::destroy): |
| (JSC::MarkedBlock::MarkedBlock): |
| (JSC::MarkedBlock::sweep): |
| * runtime/MarkedBlock.h: |
| (JSC::MarkedBlock::firstAtom): |
| (JSC::MarkedBlock::atoms): |
| (JSC::MarkedBlock::isAtomAligned): |
| (JSC::MarkedBlock::blockFor): |
| (JSC::MarkedBlock::isEmpty): |
| (JSC::MarkedBlock::clearMarks): |
| (JSC::MarkedBlock::size): |
| (JSC::MarkedBlock::capacity): |
| (JSC::MarkedBlock::atomNumber): |
| (JSC::MarkedBlock::isMarked): |
| (JSC::MarkedBlock::testAndSetMarked): |
| (JSC::MarkedBlock::setMarked): |
| (JSC::MarkedBlock::forEach): Same as above. Also removed use of CELL_SIZE |
| and BLOCK_SIZE, and switched away from calling arbitrary pointers cells. |
| |
| * runtime/MarkedSpace.cpp: |
| (JSC::MarkedSpace::MarkedSpace): |
| (JSC::MarkedSpace::allocateBlock): |
| (JSC::MarkedSpace::allocate): |
| (JSC::MarkedSpace::reset): |
| * runtime/MarkedSpace.h: |
| (JSC::CollectorHeap::CollectorHeap): |
| (JSC::MarkedSpace::contains): Updated for renames. Made fixed-sizedness |
| a property of MarkedSpace. |
| |
| 2011-02-17 Oliver Hunt <oliver@apple.com> |
| |
| Attempt to fix windows build |
| |
| * runtime/WriteBarrier.h: |
| |
| 2011-02-17 Oliver Hunt <oliver@apple.com> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Refactor WriteBarrier and DeprecatedPtr to have less code duplication. |
| https://bugs.webkit.org/show_bug.cgi?id=54608 |
| |
| Make use of the tricks used for Handle, et al to avoid duplicating all |
| of the logic for DeprecatedPtr and WriteBarrier simply to support known |
| vs. unknown types. |
| |
| * JavaScriptCore.xcodeproj/project.pbxproj: |
| * collector/handles/Global.h: |
| (JSC::Global::internalSet): |
| * collector/handles/Handle.h: |
| (JSC::Handle::Handle): |
| (JSC::Handle::get): |
| * runtime/JSArray.cpp: |
| (JSC::JSArray::sortNumeric): |
| * runtime/JSObject.h: |
| (JSC::JSObject::inlineGetOwnPropertySlot): |
| * runtime/SlotAccessor.h: Added. |
| (JSC::SlotTypes::getFromBaseType): |
| (JSC::SlotTypes::convertToBaseType): |
| (JSC::SlotTypes::getFromSlot): |
| (JSC::SlotTypes::toJSValue): |
| (JSC::SlotTypes::validateUpcast): |
| (JSC::SlotAccessor::operator->): |
| (JSC::SlotAccessor::operator*): |
| * runtime/WeakGCPtr.h: |
| (JSC::WeakGCPtr::get): |
| (JSC::WeakGCPtr::internalSet): |
| * runtime/WriteBarrier.h: |
| (JSC::DeprecatedPtr::DeprecatedPtr): |
| (JSC::DeprecatedPtr::get): |
| (JSC::DeprecatedPtr::slot): |
| (JSC::DeprecatedPtr::operator=): |
| (JSC::WriteBarrierTranslator::convertToStorage): |
| (JSC::WriteBarrierTranslator::convertFromStorage): |
| (JSC::WriteBarrierBase::set): |
| (JSC::WriteBarrierBase::get): |
| (JSC::WriteBarrierBase::clear): |
| (JSC::WriteBarrierBase::slot): |
| (JSC::WriteBarrierBase::operator UnspecifiedBoolType*): |
| (JSC::WriteBarrierBase::operator!): |
| (JSC::WriteBarrierBase::setWithoutWriteBarrier): |
| (JSC::WriteBarrier::WriteBarrier): |
| |
| 2011-02-17 Kevin Ollivier <kevino@theolliviers.com> |
| |
| [wx] Revert incorrect blind fix and restore previous working code. |
| |
| * wtf/wx/StringWx.cpp: |
| (WTF::String::String): |
| |
| 2011-02-16 Geoffrey Garen <ggaren@apple.com> |
| |
| Reviewed by Maciej Stachowiak. |
| |
| Intermittent crashes beneath MarkStack::drain |
| https://bugs.webkit.org/show_bug.cgi?id=54614 |
| <rdar://problem/8971070> |
| |
| The crashes were caused by a GC happening after the global object's |
| property table had grown (due to compilation), but before the properties |
| had been fully initialized by program execution. |
| |
| * bytecompiler/BytecodeGenerator.cpp: |
| (JSC::BytecodeGenerator::BytecodeGenerator): Explicitly resize the global |
| object's register storage immediately, without waiting for program |
| execution to do it for us. This ensures that the global object's count |
| of global variables is consistent with the size of its global variable |
| storage at all times, and it ensures that all global variables are |
| properly initialized from the get-go. |
| |
| * runtime/JSGlobalObject.cpp: |
| (JSC::JSGlobalObject::resizeRegisters): |
| * runtime/JSGlobalObject.h: Added a helper function for growing the |
| global object's register storage, and initializing new registers. |
| |
| == Rolled over to ChangeLog-2011-02-16 == |