From 81bc750723a18f21cd17d1b173cd2a4dda9cea6e Mon Sep 17 00:00:00 2001 From: Ben Murdoch Date: Tue, 24 May 2011 11:24:40 +0100 Subject: Merge WebKit at r80534: Intial merge by Git Change-Id: Ia7a83357124c9e1cdb1debf55d9661ec0bd09a61 --- .../JavaScriptCore/API/JSCallbackConstructor.cpp | 3 +- Source/JavaScriptCore/API/JSCallbackConstructor.h | 9 +- Source/JavaScriptCore/API/JSCallbackFunction.cpp | 3 +- Source/JavaScriptCore/API/JSCallbackFunction.h | 5 +- Source/JavaScriptCore/API/JSCallbackObject.cpp | 4 +- Source/JavaScriptCore/API/JSCallbackObject.h | 5 +- .../JavaScriptCore/API/JSCallbackObjectFunctions.h | 4 +- Source/JavaScriptCore/API/JSClassRef.cpp | 15 +- Source/JavaScriptCore/API/JSClassRef.h | 2 +- Source/JavaScriptCore/API/JSObjectRef.cpp | 23 +- Source/JavaScriptCore/API/JSValueRef.cpp | 4 +- .../API/JSWeakObjectMapRefPrivate.cpp | 6 +- .../JavaScriptCore/API/JSWeakObjectMapRefPrivate.h | 3 +- Source/JavaScriptCore/API/tests/testapi.c | 11 + Source/JavaScriptCore/Android.mk | 3 +- Source/JavaScriptCore/CMakeLists.txt | 7 +- Source/JavaScriptCore/ChangeLog | 25595 ++----------------- Source/JavaScriptCore/ChangeLog-2011-02-16 | 24628 ++++++++++++++++++ Source/JavaScriptCore/Configurations/Base.xcconfig | 6 + .../Configurations/FeatureDefines.xcconfig | 4 +- .../Configurations/JavaScriptCore.xcconfig | 2 +- .../JavaScriptCore/Configurations/Version.xcconfig | 2 +- Source/JavaScriptCore/DerivedSources.make | 1 + Source/JavaScriptCore/DerivedSources.pro | 1 + .../ForwardingHeaders/JavaScriptCore/APIShims.h | 1 + Source/JavaScriptCore/GNUmakefile.am | 20 +- .../JavaScriptCore.JSVALUE32_64only.exp | 1 - .../JavaScriptCore.JSVALUE64only.exp | 1 - Source/JavaScriptCore/JavaScriptCore.exp | 57 +- .../JavaScriptCore.gyp/JavaScriptCore.gyp | 25 +- Source/JavaScriptCore/JavaScriptCore.gypi | 640 +- Source/JavaScriptCore/JavaScriptCore.order | 2 +- Source/JavaScriptCore/JavaScriptCore.pri | 22 +- Source/JavaScriptCore/JavaScriptCore.pro | 26 +- .../JavaScriptCore/JavaScriptCore.def | 32 +- .../JavaScriptCore/JavaScriptCore.rc | 47 - .../JavaScriptCore/JavaScriptCore.vcproj | 100 +- .../JavaScriptCore/JavaScriptCoreCommon.vsprops | 2 +- .../JavaScriptCore/JavaScriptCoreGenerated.make | 2 + .../JavaScriptCore/JavaScriptCorePostBuild.cmd | 1 + .../JavaScriptCore/JavaScriptCorePreBuild.cmd | 2 - .../JavaScriptCore/react-to-vsprops-changes.py | 17 +- .../JavaScriptCore.vcproj/WTF/WTF.vcproj | 24 + .../JavaScriptCore.vcproj/jsc/jscCommon.vsprops | 2 +- .../testapi/testapiCommon.vsprops | 1 + .../JavaScriptCore.xcodeproj/project.pbxproj | 177 +- Source/JavaScriptCore/assembler/ARMAssembler.h | 13 +- Source/JavaScriptCore/assembler/ARMv7Assembler.h | 53 +- .../assembler/AbstractMacroAssembler.h | 5 - Source/JavaScriptCore/assembler/MIPSAssembler.h | 12 - .../JavaScriptCore/assembler/MacroAssemblerARM.h | 7 - .../JavaScriptCore/assembler/MacroAssemblerARMv7.h | 8 - .../JavaScriptCore/assembler/MacroAssemblerMIPS.h | 17 - .../JavaScriptCore/assembler/MacroAssemblerX86.h | 7 - .../assembler/MacroAssemblerX86_64.h | 7 - Source/JavaScriptCore/assembler/RepatchBuffer.h | 5 - Source/JavaScriptCore/assembler/X86Assembler.h | 10 - Source/JavaScriptCore/bytecode/CodeBlock.cpp | 2 +- Source/JavaScriptCore/bytecode/CodeBlock.h | 2 +- .../JavaScriptCore/bytecode/StructureStubInfo.cpp | 2 + .../bytecompiler/BytecodeGenerator.cpp | 64 +- .../bytecompiler/BytecodeGenerator.h | 11 +- Source/JavaScriptCore/collector/handles/Global.h | 159 + Source/JavaScriptCore/collector/handles/Handle.h | 189 + .../collector/handles/HandleHeap.cpp | 137 + .../JavaScriptCore/collector/handles/HandleHeap.h | 273 + Source/JavaScriptCore/debugger/Debugger.cpp | 6 +- .../JavaScriptCore/debugger/DebuggerActivation.cpp | 2 +- .../JavaScriptCore/debugger/DebuggerActivation.h | 4 +- .../JavaScriptCore/debugger/DebuggerCallFrame.cpp | 4 +- Source/JavaScriptCore/debugger/DebuggerCallFrame.h | 2 +- Source/JavaScriptCore/gyp/JavaScriptCore.gyp | 216 + .../JavaScriptCore/gyp/generate-derived-sources.sh | 9 + Source/JavaScriptCore/interpreter/CachedCall.h | 4 +- Source/JavaScriptCore/interpreter/CallFrame.h | 19 +- Source/JavaScriptCore/interpreter/Interpreter.cpp | 101 +- Source/JavaScriptCore/interpreter/Interpreter.h | 2 +- Source/JavaScriptCore/interpreter/RegisterFile.cpp | 20 +- Source/JavaScriptCore/interpreter/RegisterFile.h | 9 +- Source/JavaScriptCore/jit/ExecutableAllocator.h | 16 + Source/JavaScriptCore/jit/JIT.h | 84 +- Source/JavaScriptCore/jit/JITCall.cpp | 4 +- Source/JavaScriptCore/jit/JITCall32_64.cpp | 19 +- Source/JavaScriptCore/jit/JITOpcodes.cpp | 18 +- Source/JavaScriptCore/jit/JITOpcodes32_64.cpp | 4 +- Source/JavaScriptCore/jit/JITPropertyAccess.cpp | 85 +- .../JavaScriptCore/jit/JITPropertyAccess32_64.cpp | 120 +- Source/JavaScriptCore/jit/JITStubs.cpp | 52 +- Source/JavaScriptCore/jit/JITStubs.h | 1 - Source/JavaScriptCore/jsc.cpp | 34 +- Source/JavaScriptCore/jsc.pro | 7 +- Source/JavaScriptCore/parser/ASTBuilder.h | 32 +- Source/JavaScriptCore/parser/JSParser.cpp | 38 +- Source/JavaScriptCore/profiler/Profiler.cpp | 6 +- Source/JavaScriptCore/qt/ChangeLog | 20 + Source/JavaScriptCore/qt/api/QtScript.pro | 7 +- Source/JavaScriptCore/runtime/ArgList.cpp | 1 + Source/JavaScriptCore/runtime/ArgList.h | 4 +- Source/JavaScriptCore/runtime/Arguments.cpp | 42 +- Source/JavaScriptCore/runtime/Arguments.h | 62 +- Source/JavaScriptCore/runtime/ArrayConstructor.cpp | 7 +- Source/JavaScriptCore/runtime/ArrayPrototype.cpp | 11 +- Source/JavaScriptCore/runtime/ArrayPrototype.h | 5 +- Source/JavaScriptCore/runtime/BooleanObject.cpp | 3 +- Source/JavaScriptCore/runtime/BooleanObject.h | 7 +- Source/JavaScriptCore/runtime/BooleanPrototype.cpp | 11 +- Source/JavaScriptCore/runtime/BooleanPrototype.h | 2 +- Source/JavaScriptCore/runtime/CallData.h | 1 - Source/JavaScriptCore/runtime/CommonIdentifiers.h | 7 - Source/JavaScriptCore/runtime/Completion.cpp | 6 +- Source/JavaScriptCore/runtime/Completion.h | 4 +- Source/JavaScriptCore/runtime/DateConstructor.cpp | 15 +- Source/JavaScriptCore/runtime/DateConstructor.h | 2 +- Source/JavaScriptCore/runtime/DateConversion.cpp | 1 + Source/JavaScriptCore/runtime/DateInstance.cpp | 5 +- Source/JavaScriptCore/runtime/DateInstance.h | 7 +- Source/JavaScriptCore/runtime/DatePrototype.cpp | 70 +- Source/JavaScriptCore/runtime/DatePrototype.h | 5 +- Source/JavaScriptCore/runtime/ErrorInstance.cpp | 8 +- Source/JavaScriptCore/runtime/ErrorInstance.h | 9 +- Source/JavaScriptCore/runtime/ErrorPrototype.cpp | 5 +- Source/JavaScriptCore/runtime/ErrorPrototype.h | 2 +- Source/JavaScriptCore/runtime/ExceptionHelpers.cpp | 8 +- Source/JavaScriptCore/runtime/Executable.cpp | 24 +- Source/JavaScriptCore/runtime/Executable.h | 20 +- .../JavaScriptCore/runtime/FunctionConstructor.cpp | 4 +- .../JavaScriptCore/runtime/FunctionPrototype.cpp | 17 +- Source/JavaScriptCore/runtime/FunctionPrototype.h | 6 +- .../JavaScriptCore/runtime/GCActivityCallback.cpp | 2 +- Source/JavaScriptCore/runtime/GCActivityCallback.h | 4 +- .../runtime/GCActivityCallbackCF.cpp | 3 +- Source/JavaScriptCore/runtime/GCHandle.cpp | 86 - Source/JavaScriptCore/runtime/GCHandle.h | 116 - Source/JavaScriptCore/runtime/GetterSetter.h | 2 +- .../JavaScriptCore/runtime/GlobalEvalFunction.cpp | 48 - Source/JavaScriptCore/runtime/GlobalEvalFunction.h | 54 - Source/JavaScriptCore/runtime/Heap.cpp | 78 +- Source/JavaScriptCore/runtime/Heap.h | 18 +- Source/JavaScriptCore/runtime/Identifier.cpp | 1 + .../JavaScriptCore/runtime/InitializeThreading.cpp | 1 + Source/JavaScriptCore/runtime/InternalFunction.cpp | 12 +- Source/JavaScriptCore/runtime/InternalFunction.h | 9 +- Source/JavaScriptCore/runtime/JSAPIValueWrapper.h | 2 +- Source/JavaScriptCore/runtime/JSActivation.cpp | 27 +- Source/JavaScriptCore/runtime/JSActivation.h | 13 +- Source/JavaScriptCore/runtime/JSArray.cpp | 18 +- Source/JavaScriptCore/runtime/JSArray.h | 10 +- Source/JavaScriptCore/runtime/JSByteArray.cpp | 12 +- Source/JavaScriptCore/runtime/JSByteArray.h | 36 +- Source/JavaScriptCore/runtime/JSCell.cpp | 5 - Source/JavaScriptCore/runtime/JSCell.h | 72 +- Source/JavaScriptCore/runtime/JSChunk.cpp | 28 + Source/JavaScriptCore/runtime/JSChunk.h | 31 + Source/JavaScriptCore/runtime/JSFunction.cpp | 37 +- Source/JavaScriptCore/runtime/JSFunction.h | 20 +- Source/JavaScriptCore/runtime/JSGlobalData.cpp | 22 +- Source/JavaScriptCore/runtime/JSGlobalData.h | 15 +- Source/JavaScriptCore/runtime/JSGlobalObject.cpp | 105 +- Source/JavaScriptCore/runtime/JSGlobalObject.h | 64 +- .../runtime/JSGlobalObjectFunctions.cpp | 5 +- Source/JavaScriptCore/runtime/JSLock.cpp | 12 +- Source/JavaScriptCore/runtime/JSNotAnObject.h | 6 +- Source/JavaScriptCore/runtime/JSNumberCell.cpp | 1 + Source/JavaScriptCore/runtime/JSONObject.cpp | 25 +- Source/JavaScriptCore/runtime/JSONObject.h | 5 +- Source/JavaScriptCore/runtime/JSObject.cpp | 50 +- Source/JavaScriptCore/runtime/JSObject.h | 172 +- .../runtime/JSObjectWithGlobalObject.cpp | 2 +- .../runtime/JSObjectWithGlobalObject.h | 6 +- .../runtime/JSPropertyNameIterator.cpp | 16 +- .../runtime/JSPropertyNameIterator.h | 16 +- .../JavaScriptCore/runtime/JSStaticScopeObject.cpp | 10 +- .../JavaScriptCore/runtime/JSStaticScopeObject.h | 2 +- Source/JavaScriptCore/runtime/JSString.h | 2 +- Source/JavaScriptCore/runtime/JSTypeInfo.h | 13 +- Source/JavaScriptCore/runtime/JSVariableObject.cpp | 2 +- Source/JavaScriptCore/runtime/JSVariableObject.h | 44 +- Source/JavaScriptCore/runtime/JSWrapperObject.h | 6 +- Source/JavaScriptCore/runtime/JSZombie.cpp | 3 +- Source/JavaScriptCore/runtime/JSZombie.h | 9 +- Source/JavaScriptCore/runtime/Lookup.cpp | 7 +- .../JavaScriptCore/runtime/MachineStackMarker.cpp | 67 + Source/JavaScriptCore/runtime/MarkedBlock.cpp | 33 +- Source/JavaScriptCore/runtime/MarkedBlock.h | 177 +- Source/JavaScriptCore/runtime/MarkedSpace.cpp | 103 +- Source/JavaScriptCore/runtime/MarkedSpace.h | 85 +- Source/JavaScriptCore/runtime/MathObject.cpp | 6 +- Source/JavaScriptCore/runtime/MathObject.h | 5 +- .../runtime/NativeErrorConstructor.cpp | 4 +- .../runtime/NativeErrorConstructor.h | 9 +- .../JavaScriptCore/runtime/NativeFunctionWrapper.h | 39 - .../JavaScriptCore/runtime/NumberConstructor.cpp | 6 +- Source/JavaScriptCore/runtime/NumberConstructor.h | 6 +- Source/JavaScriptCore/runtime/NumberObject.cpp | 3 +- Source/JavaScriptCore/runtime/NumberObject.h | 6 +- Source/JavaScriptCore/runtime/NumberPrototype.cpp | 15 +- Source/JavaScriptCore/runtime/NumberPrototype.h | 2 +- .../JavaScriptCore/runtime/ObjectConstructor.cpp | 110 +- Source/JavaScriptCore/runtime/ObjectConstructor.h | 15 +- Source/JavaScriptCore/runtime/ObjectPrototype.cpp | 25 +- Source/JavaScriptCore/runtime/ObjectPrototype.h | 4 +- Source/JavaScriptCore/runtime/Operations.h | 7 +- .../JavaScriptCore/runtime/PropertyMapHashTable.h | 554 +- .../JavaScriptCore/runtime/PropertyNameArray.cpp | 1 + Source/JavaScriptCore/runtime/PropertySlot.h | 9 - Source/JavaScriptCore/runtime/Protect.h | 149 - .../JavaScriptCore/runtime/PrototypeFunction.cpp | 57 - Source/JavaScriptCore/runtime/PrototypeFunction.h | 45 - .../JavaScriptCore/runtime/RegExpConstructor.cpp | 6 +- Source/JavaScriptCore/runtime/RegExpConstructor.h | 8 +- Source/JavaScriptCore/runtime/RegExpObject.cpp | 3 +- Source/JavaScriptCore/runtime/RegExpObject.h | 9 +- Source/JavaScriptCore/runtime/RegExpPrototype.cpp | 23 +- Source/JavaScriptCore/runtime/RegExpPrototype.h | 2 +- Source/JavaScriptCore/runtime/ScopeChain.cpp | 19 +- Source/JavaScriptCore/runtime/ScopeChain.h | 189 +- Source/JavaScriptCore/runtime/ScopeChainMark.h | 6 - Source/JavaScriptCore/runtime/SmallStrings.h | 4 +- .../runtime/StrictEvalActivation.cpp | 2 +- .../JavaScriptCore/runtime/StrictEvalActivation.h | 2 +- .../JavaScriptCore/runtime/StringConstructor.cpp | 7 +- Source/JavaScriptCore/runtime/StringConstructor.h | 2 +- Source/JavaScriptCore/runtime/StringObject.cpp | 5 +- Source/JavaScriptCore/runtime/StringObject.h | 7 +- .../StringObjectThatMasqueradesAsUndefined.h | 2 +- Source/JavaScriptCore/runtime/StringPrototype.cpp | 14 +- Source/JavaScriptCore/runtime/StringPrototype.h | 8 +- Source/JavaScriptCore/runtime/Structure.cpp | 1017 +- Source/JavaScriptCore/runtime/Structure.h | 134 +- .../runtime/StructureTransitionTable.h | 65 +- Source/JavaScriptCore/runtime/WeakGCMap.h | 187 +- Source/JavaScriptCore/runtime/WeakGCPtr.h | 139 +- Source/JavaScriptCore/runtime/WriteBarrier.h | 1 + Source/JavaScriptCore/wscript | 2 +- Source/JavaScriptCore/wtf/Assertions.cpp | 6 +- Source/JavaScriptCore/wtf/Bitmap.h | 21 + Source/JavaScriptCore/wtf/BlockStack.h | 95 + Source/JavaScriptCore/wtf/CMakeLists.txt | 3 + Source/JavaScriptCore/wtf/CurrentTime.cpp | 2 +- Source/JavaScriptCore/wtf/DateMath.cpp | 11 + Source/JavaScriptCore/wtf/Deque.h | 250 +- Source/JavaScriptCore/wtf/DoublyLinkedList.h | 104 + Source/JavaScriptCore/wtf/ListHashSet.h | 90 + Source/JavaScriptCore/wtf/MD5.cpp | 1 + Source/JavaScriptCore/wtf/OSAllocator.h | 3 +- Source/JavaScriptCore/wtf/OSAllocatorSymbian.cpp | 164 +- Source/JavaScriptCore/wtf/OSRandomSource.cpp | 18 +- Source/JavaScriptCore/wtf/OwnArrayPtr.h | 10 + Source/JavaScriptCore/wtf/PageAllocatorSymbian.h | 100 + Source/JavaScriptCore/wtf/PassOwnArrayPtr.h | 7 +- Source/JavaScriptCore/wtf/Platform.h | 48 +- Source/JavaScriptCore/wtf/RandomNumber.cpp | 52 +- Source/JavaScriptCore/wtf/RetainPtr.h | 3 + Source/JavaScriptCore/wtf/SHA1.cpp | 219 + Source/JavaScriptCore/wtf/SHA1.h | 66 + Source/JavaScriptCore/wtf/SentinelLinkedList.h | 109 + Source/JavaScriptCore/wtf/SinglyLinkedList.h | 72 + Source/JavaScriptCore/wtf/ThreadingWin.cpp | 2 + Source/JavaScriptCore/wtf/Vector.h | 9 +- Source/JavaScriptCore/wtf/gobject/GOwnPtr.cpp | 5 - Source/JavaScriptCore/wtf/gobject/GOwnPtr.h | 1 - Source/JavaScriptCore/wtf/text/AtomicString.h | 2 +- Source/JavaScriptCore/wtf/text/StringImpl.cpp | 22 +- Source/JavaScriptCore/wtf/text/StringImpl.h | 10 +- Source/JavaScriptCore/wtf/text/TextPosition.h | 2 +- Source/JavaScriptCore/wtf/text/WTFString.cpp | 25 +- Source/JavaScriptCore/wtf/text/WTFString.h | 32 +- .../JavaScriptCore/wtf/unicode/icu/CollatorICU.cpp | 2 +- Source/JavaScriptCore/wtf/wtf.pri | 1 + Source/JavaScriptCore/wtf/wx/StringWx.cpp | 29 +- Source/JavaScriptCore/yarr/YarrPattern.cpp | 26 +- 271 files changed, 32712 insertions(+), 27537 deletions(-) create mode 100644 Source/JavaScriptCore/ChangeLog-2011-02-16 create mode 100644 Source/JavaScriptCore/ForwardingHeaders/JavaScriptCore/APIShims.h delete mode 100644 Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.rc create mode 100644 Source/JavaScriptCore/collector/handles/Global.h create mode 100644 Source/JavaScriptCore/collector/handles/Handle.h create mode 100644 Source/JavaScriptCore/collector/handles/HandleHeap.cpp create mode 100644 Source/JavaScriptCore/collector/handles/HandleHeap.h create mode 100644 Source/JavaScriptCore/gyp/JavaScriptCore.gyp create mode 100755 Source/JavaScriptCore/gyp/generate-derived-sources.sh delete mode 100644 Source/JavaScriptCore/runtime/GCHandle.cpp delete mode 100644 Source/JavaScriptCore/runtime/GCHandle.h delete mode 100644 Source/JavaScriptCore/runtime/GlobalEvalFunction.cpp delete mode 100644 Source/JavaScriptCore/runtime/GlobalEvalFunction.h create mode 100644 Source/JavaScriptCore/runtime/JSChunk.cpp create mode 100644 Source/JavaScriptCore/runtime/JSChunk.h delete mode 100644 Source/JavaScriptCore/runtime/NativeFunctionWrapper.h delete mode 100644 Source/JavaScriptCore/runtime/PrototypeFunction.cpp delete mode 100644 Source/JavaScriptCore/runtime/PrototypeFunction.h create mode 100644 Source/JavaScriptCore/wtf/BlockStack.h create mode 100644 Source/JavaScriptCore/wtf/DoublyLinkedList.h create mode 100644 Source/JavaScriptCore/wtf/PageAllocatorSymbian.h create mode 100644 Source/JavaScriptCore/wtf/SHA1.cpp create mode 100644 Source/JavaScriptCore/wtf/SHA1.h create mode 100644 Source/JavaScriptCore/wtf/SentinelLinkedList.h create mode 100644 Source/JavaScriptCore/wtf/SinglyLinkedList.h (limited to 'Source/JavaScriptCore') diff --git a/Source/JavaScriptCore/API/JSCallbackConstructor.cpp b/Source/JavaScriptCore/API/JSCallbackConstructor.cpp index 66c6b88..e8ae274 100644 --- a/Source/JavaScriptCore/API/JSCallbackConstructor.cpp +++ b/Source/JavaScriptCore/API/JSCallbackConstructor.cpp @@ -36,13 +36,14 @@ namespace JSC { -const ClassInfo JSCallbackConstructor::info = { "CallbackConstructor", 0, 0, 0 }; +const ClassInfo JSCallbackConstructor::s_info = { "CallbackConstructor", &JSObjectWithGlobalObject::s_info, 0, 0 }; JSCallbackConstructor::JSCallbackConstructor(JSGlobalObject* globalObject, NonNullPassRefPtr structure, JSClassRef jsClass, JSObjectCallAsConstructorCallback callback) : JSObjectWithGlobalObject(globalObject, structure) , m_class(jsClass) , m_callback(callback) { + ASSERT(inherits(&s_info)); if (m_class) JSClassRetain(jsClass); } diff --git a/Source/JavaScriptCore/API/JSCallbackConstructor.h b/Source/JavaScriptCore/API/JSCallbackConstructor.h index a6d64cc..cd307a6 100644 --- a/Source/JavaScriptCore/API/JSCallbackConstructor.h +++ b/Source/JavaScriptCore/API/JSCallbackConstructor.h @@ -37,11 +37,11 @@ public: virtual ~JSCallbackConstructor(); JSClassRef classRef() const { return m_class; } JSObjectCallAsConstructorCallback callback() const { return m_callback; } - static const ClassInfo info; - + static const ClassInfo s_info; + static PassRefPtr createStructure(JSValue proto) - { - return Structure::create(proto, TypeInfo(ObjectType, StructureFlags), AnonymousSlotCount); + { + return Structure::create(proto, TypeInfo(ObjectType, StructureFlags), AnonymousSlotCount, &s_info); } protected: @@ -49,7 +49,6 @@ protected: private: virtual ConstructType getConstructData(ConstructData&); - virtual const ClassInfo* classInfo() const { return &info; } JSClassRef m_class; JSObjectCallAsConstructorCallback m_callback; diff --git a/Source/JavaScriptCore/API/JSCallbackFunction.cpp b/Source/JavaScriptCore/API/JSCallbackFunction.cpp index c488aa6..28b3419 100644 --- a/Source/JavaScriptCore/API/JSCallbackFunction.cpp +++ b/Source/JavaScriptCore/API/JSCallbackFunction.cpp @@ -40,12 +40,13 @@ namespace JSC { ASSERT_CLASS_FITS_IN_CELL(JSCallbackFunction); -const ClassInfo JSCallbackFunction::info = { "CallbackFunction", &InternalFunction::info, 0, 0 }; +const ClassInfo JSCallbackFunction::s_info = { "CallbackFunction", &InternalFunction::s_info, 0, 0 }; JSCallbackFunction::JSCallbackFunction(ExecState* exec, JSGlobalObject* globalObject, JSObjectCallAsFunctionCallback callback, const Identifier& name) : InternalFunction(&exec->globalData(), globalObject, globalObject->callbackFunctionStructure(), name) , m_callback(callback) { + ASSERT(inherits(&s_info)); } EncodedJSValue JSCallbackFunction::call(ExecState* exec) diff --git a/Source/JavaScriptCore/API/JSCallbackFunction.h b/Source/JavaScriptCore/API/JSCallbackFunction.h index b119b97..d8ae608 100644 --- a/Source/JavaScriptCore/API/JSCallbackFunction.h +++ b/Source/JavaScriptCore/API/JSCallbackFunction.h @@ -35,18 +35,17 @@ class JSCallbackFunction : public InternalFunction { public: JSCallbackFunction(ExecState*, JSGlobalObject*, JSObjectCallAsFunctionCallback, const Identifier& name); - static const ClassInfo info; + static const ClassInfo s_info; // InternalFunction mish-mashes constructor and function behavior -- we should // refactor the code so this override isn't necessary static PassRefPtr createStructure(JSValue proto) { - return Structure::create(proto, TypeInfo(ObjectType, StructureFlags), AnonymousSlotCount); + return Structure::create(proto, TypeInfo(ObjectType, StructureFlags), AnonymousSlotCount, &s_info); } private: virtual CallType getCallData(CallData&); - virtual const ClassInfo* classInfo() const { return &info; } static EncodedJSValue JSC_HOST_CALL call(ExecState*); diff --git a/Source/JavaScriptCore/API/JSCallbackObject.cpp b/Source/JavaScriptCore/API/JSCallbackObject.cpp index b8e5843..e3ef7a4 100644 --- a/Source/JavaScriptCore/API/JSCallbackObject.cpp +++ b/Source/JavaScriptCore/API/JSCallbackObject.cpp @@ -36,7 +36,7 @@ ASSERT_CLASS_FITS_IN_CELL(JSCallbackObject); ASSERT_CLASS_FITS_IN_CELL(JSCallbackObject); // Define the two types of JSCallbackObjects we support. -template <> const ClassInfo JSCallbackObject::info = { "CallbackObject", 0, 0, 0 }; -template <> const ClassInfo JSCallbackObject::info = { "CallbackGlobalObject", 0, 0, 0 }; +template <> const ClassInfo JSCallbackObject::s_info = { "CallbackObject", &JSObjectWithGlobalObject::s_info, 0, 0 }; +template <> const ClassInfo JSCallbackObject::s_info = { "CallbackGlobalObject", &JSGlobalObject::s_info, 0, 0 }; } // namespace JSC diff --git a/Source/JavaScriptCore/API/JSCallbackObject.h b/Source/JavaScriptCore/API/JSCallbackObject.h index f47d0b1..732cc1d 100644 --- a/Source/JavaScriptCore/API/JSCallbackObject.h +++ b/Source/JavaScriptCore/API/JSCallbackObject.h @@ -123,14 +123,14 @@ public: void setPrivate(void* data); void* getPrivate(); - static const ClassInfo info; + static const ClassInfo s_info; JSClassRef classRef() const { return m_callbackObjectData->jsClass; } bool inherits(JSClassRef) const; static PassRefPtr createStructure(JSValue proto) { - return Structure::create(proto, TypeInfo(ObjectType, StructureFlags), Base::AnonymousSlotCount); + return Structure::create(proto, TypeInfo(ObjectType, StructureFlags), Base::AnonymousSlotCount, &s_info); } JSValue getPrivateProperty(const Identifier& propertyName) const @@ -171,7 +171,6 @@ private: virtual ConstructType getConstructData(ConstructData&); virtual CallType getCallData(CallData&); - virtual const ClassInfo* classInfo() const { return &info; } virtual void markChildren(MarkStack& markStack) { diff --git a/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h b/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h index 59373ec..ca15e1f 100644 --- a/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h +++ b/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h @@ -45,7 +45,7 @@ namespace JSC { template inline JSCallbackObject* JSCallbackObject::asCallbackObject(JSValue value) { - ASSERT(asObject(value)->inherits(&info)); + ASSERT(asObject(value)->inherits(&s_info)); return static_cast(asObject(value)); } @@ -54,6 +54,7 @@ JSCallbackObject::JSCallbackObject(ExecState* exec, JSGlobalObject* global : Base(globalObject, structure) , m_callbackObjectData(adoptPtr(new JSCallbackObjectData(data, jsClass))) { + ASSERT(Base::inherits(&s_info)); init(exec); } @@ -64,6 +65,7 @@ JSCallbackObject::JSCallbackObject(JSClassRef jsClass, NonNullPassRefPtr(this)->globalExec()); } diff --git a/Source/JavaScriptCore/API/JSClassRef.cpp b/Source/JavaScriptCore/API/JSClassRef.cpp index decf493..d953dce 100644 --- a/Source/JavaScriptCore/API/JSClassRef.cpp +++ b/Source/JavaScriptCore/API/JSClassRef.cpp @@ -142,19 +142,12 @@ PassRefPtr OpaqueJSClass::createNoAutomaticPrototype(const JSClas return adoptRef(new OpaqueJSClass(definition, 0)); } -static void clearReferenceToPrototype(JSObjectRef prototype) -{ - OpaqueJSClassContextData* jsClassData = static_cast(JSObjectGetPrivate(prototype)); - ASSERT(jsClassData); - jsClassData->cachedPrototype.clear(toJS(prototype)); -} - PassRefPtr OpaqueJSClass::create(const JSClassDefinition* clientDefinition) { JSClassDefinition definition = *clientDefinition; // Avoid modifying client copy. JSClassDefinition protoDefinition = kJSClassDefinitionEmpty; - protoDefinition.finalize = clearReferenceToPrototype; + protoDefinition.finalize = 0; swap(definition.staticFunctions, protoDefinition.staticFunctions); // Move static functions to the prototype. // We are supposed to use JSClassRetain/Release but since we know that we currently have @@ -163,7 +156,7 @@ PassRefPtr OpaqueJSClass::create(const JSClassDefinition* clientD return adoptRef(new OpaqueJSClass(&definition, protoClass.get())); } -OpaqueJSClassContextData::OpaqueJSClassContextData(OpaqueJSClass* jsClass) +OpaqueJSClassContextData::OpaqueJSClassContextData(JSC::JSGlobalData&, OpaqueJSClass* jsClass) : m_class(jsClass) { if (jsClass->m_staticValues) { @@ -209,7 +202,7 @@ OpaqueJSClassContextData& OpaqueJSClass::contextData(ExecState* exec) { OpaqueJSClassContextData*& contextData = exec->globalData().opaqueJSClassData.add(this, 0).first->second; if (!contextData) - contextData = new OpaqueJSClassContextData(this); + contextData = new OpaqueJSClassContextData(exec->globalData(), this); return *contextData; } @@ -256,7 +249,7 @@ JSObject* OpaqueJSClass::prototype(ExecState* exec) if (!jsClassData.cachedPrototype) { // Recursive, but should be good enough for our purposes - jsClassData.cachedPrototype = new (exec) JSCallbackObject(exec, exec->lexicalGlobalObject(), exec->lexicalGlobalObject()->callbackObjectStructure(), prototypeClass, &jsClassData); // set jsClassData as the object's private data, so it can clear our reference on destruction + jsClassData.cachedPrototype.set(exec->globalData(), new (exec) JSCallbackObject(exec, exec->lexicalGlobalObject(), exec->lexicalGlobalObject()->callbackObjectStructure(), prototypeClass, &jsClassData), 0); // set jsClassData as the object's private data, so it can clear our reference on destruction if (parentClass) { if (JSObject* prototype = parentClass->prototype(exec)) jsClassData.cachedPrototype->setPrototype(prototype); diff --git a/Source/JavaScriptCore/API/JSClassRef.h b/Source/JavaScriptCore/API/JSClassRef.h index 0971700..0f4119a 100644 --- a/Source/JavaScriptCore/API/JSClassRef.h +++ b/Source/JavaScriptCore/API/JSClassRef.h @@ -69,7 +69,7 @@ struct OpaqueJSClass; struct OpaqueJSClassContextData { WTF_MAKE_NONCOPYABLE(OpaqueJSClassContextData); WTF_MAKE_FAST_ALLOCATED; public: - OpaqueJSClassContextData(OpaqueJSClass*); + OpaqueJSClassContextData(JSC::JSGlobalData&, OpaqueJSClass*); ~OpaqueJSClassContextData(); // It is necessary to keep OpaqueJSClass alive because of the following rare scenario: diff --git a/Source/JavaScriptCore/API/JSObjectRef.cpp b/Source/JavaScriptCore/API/JSObjectRef.cpp index d3c1993..36ca338 100644 --- a/Source/JavaScriptCore/API/JSObjectRef.cpp +++ b/Source/JavaScriptCore/API/JSObjectRef.cpp @@ -79,7 +79,7 @@ JSObjectRef JSObjectMake(JSContextRef ctx, JSClassRef jsClass, void* data) APIEntryShim entryShim(exec); if (!jsClass) - return toRef(new (exec) JSObject(exec->lexicalGlobalObject()->emptyObjectStructure())); // slightly more efficient + return toRef(constructEmptyObject(exec)); JSCallbackObject* object = new (exec) JSCallbackObject(exec, exec->lexicalGlobalObject(), exec->lexicalGlobalObject()->callbackObjectStructure(), jsClass, data); if (JSObject* prototype = jsClass->prototype(exec)) @@ -340,9 +340,9 @@ void* JSObjectGetPrivate(JSObjectRef object) { JSObject* jsObject = toJS(object); - if (jsObject->inherits(&JSCallbackObject::info)) + if (jsObject->inherits(&JSCallbackObject::s_info)) return static_cast*>(jsObject)->getPrivate(); - else if (jsObject->inherits(&JSCallbackObject::info)) + if (jsObject->inherits(&JSCallbackObject::s_info)) return static_cast*>(jsObject)->getPrivate(); return 0; @@ -352,10 +352,11 @@ bool JSObjectSetPrivate(JSObjectRef object, void* data) { JSObject* jsObject = toJS(object); - if (jsObject->inherits(&JSCallbackObject::info)) { + if (jsObject->inherits(&JSCallbackObject::s_info)) { static_cast*>(jsObject)->setPrivate(data); return true; - } else if (jsObject->inherits(&JSCallbackObject::info)) { + } + if (jsObject->inherits(&JSCallbackObject::s_info)) { static_cast*>(jsObject)->setPrivate(data); return true; } @@ -370,9 +371,9 @@ JSValueRef JSObjectGetPrivateProperty(JSContextRef ctx, JSObjectRef object, JSSt JSObject* jsObject = toJS(object); JSValue result; Identifier name(propertyName->identifier(&exec->globalData())); - if (jsObject->inherits(&JSCallbackObject::info)) + if (jsObject->inherits(&JSCallbackObject::s_info)) result = static_cast*>(jsObject)->getPrivateProperty(name); - else if (jsObject->inherits(&JSCallbackObject::info)) + else if (jsObject->inherits(&JSCallbackObject::s_info)) result = static_cast*>(jsObject)->getPrivateProperty(name); return toRef(exec, result); } @@ -384,11 +385,11 @@ bool JSObjectSetPrivateProperty(JSContextRef ctx, JSObjectRef object, JSStringRe JSObject* jsObject = toJS(object); JSValue jsValue = value ? toJS(exec, value) : JSValue(); Identifier name(propertyName->identifier(&exec->globalData())); - if (jsObject->inherits(&JSCallbackObject::info)) { + if (jsObject->inherits(&JSCallbackObject::s_info)) { static_cast*>(jsObject)->setPrivateProperty(exec->globalData(), name, jsValue); return true; } - if (jsObject->inherits(&JSCallbackObject::info)) { + if (jsObject->inherits(&JSCallbackObject::s_info)) { static_cast*>(jsObject)->setPrivateProperty(exec->globalData(), name, jsValue); return true; } @@ -401,11 +402,11 @@ bool JSObjectDeletePrivateProperty(JSContextRef ctx, JSObjectRef object, JSStrin APIEntryShim entryShim(exec); JSObject* jsObject = toJS(object); Identifier name(propertyName->identifier(&exec->globalData())); - if (jsObject->inherits(&JSCallbackObject::info)) { + if (jsObject->inherits(&JSCallbackObject::s_info)) { static_cast*>(jsObject)->deletePrivateProperty(name); return true; } - if (jsObject->inherits(&JSCallbackObject::info)) { + if (jsObject->inherits(&JSCallbackObject::s_info)) { static_cast*>(jsObject)->deletePrivateProperty(name); return true; } diff --git a/Source/JavaScriptCore/API/JSValueRef.cpp b/Source/JavaScriptCore/API/JSValueRef.cpp index faf4712..e2626be 100644 --- a/Source/JavaScriptCore/API/JSValueRef.cpp +++ b/Source/JavaScriptCore/API/JSValueRef.cpp @@ -129,9 +129,9 @@ bool JSValueIsObjectOfClass(JSContextRef ctx, JSValueRef value, JSClassRef jsCla JSValue jsValue = toJS(exec, value); if (JSObject* o = jsValue.getObject()) { - if (o->inherits(&JSCallbackObject::info)) + if (o->inherits(&JSCallbackObject::s_info)) return static_cast*>(o)->inherits(jsClass); - else if (o->inherits(&JSCallbackObject::info)) + if (o->inherits(&JSCallbackObject::s_info)) return static_cast*>(o)->inherits(jsClass); } return false; diff --git a/Source/JavaScriptCore/API/JSWeakObjectMapRefPrivate.cpp b/Source/JavaScriptCore/API/JSWeakObjectMapRefPrivate.cpp index 8182075..bc5e383 100644 --- a/Source/JavaScriptCore/API/JSWeakObjectMapRefPrivate.cpp +++ b/Source/JavaScriptCore/API/JSWeakObjectMapRefPrivate.cpp @@ -57,8 +57,8 @@ void JSWeakObjectMapSet(JSContextRef ctx, JSWeakObjectMapRef map, void* key, JSO JSObject* obj = toJS(object); if (!obj) return; - ASSERT(obj->inherits(&JSCallbackObject::info) || obj->inherits(&JSCallbackObject::info)); - map->map().set(key, obj); + ASSERT(obj->inherits(&JSCallbackObject::s_info) || obj->inherits(&JSCallbackObject::s_info)); + map->map().set(exec->globalData(), key, obj); } JSObjectRef JSWeakObjectMapGet(JSContextRef ctx, JSWeakObjectMapRef map, void* key) @@ -73,7 +73,7 @@ bool JSWeakObjectMapClear(JSContextRef ctx, JSWeakObjectMapRef map, void* key, J ExecState* exec = toJS(ctx); APIEntryShim entryShim(exec); JSObject* obj = toJS(object); - if (map->map().uncheckedRemove(key, obj)) + if (map->map().deprecatedRemove(key, obj)) return true; return false; } diff --git a/Source/JavaScriptCore/API/JSWeakObjectMapRefPrivate.h b/Source/JavaScriptCore/API/JSWeakObjectMapRefPrivate.h index d36111c..bb3fe96 100644 --- a/Source/JavaScriptCore/API/JSWeakObjectMapRefPrivate.h +++ b/Source/JavaScriptCore/API/JSWeakObjectMapRefPrivate.h @@ -52,8 +52,7 @@ typedef void (*JSWeakMapDestroyedCallback)(JSWeakObjectMapRef map, void* data); @param destructor A function to call when the weak map is destroyed. @result A JSWeakObjectMapRef bound to the given context, data and destructor. @discussion The JSWeakObjectMapRef can be used as a storage mechanism to hold custom JS objects without forcing those objects to - remain live as JSValueProtect would. Any objects that are intended to be stored in a weak map must be user defined objects that - remove themselves from the map in their finalizer. + remain live as JSValueProtect would. */ JS_EXPORT JSWeakObjectMapRef JSWeakObjectMapCreate(JSContextRef ctx, void* data, JSWeakMapDestroyedCallback destructor); diff --git a/Source/JavaScriptCore/API/tests/testapi.c b/Source/JavaScriptCore/API/tests/testapi.c index 1ecfc7e..28d47bb 100644 --- a/Source/JavaScriptCore/API/tests/testapi.c +++ b/Source/JavaScriptCore/API/tests/testapi.c @@ -32,6 +32,10 @@ #include #include +#if OS(WINDOWS) +#include +#endif + #if COMPILER(MSVC) #include @@ -819,6 +823,13 @@ static bool checkForCycleInPrototypeChain() int main(int argc, char* argv[]) { +#if OS(WINDOWS) + // Cygwin calls ::SetErrorMode(SEM_FAILCRITICALERRORS), which we will inherit. This is bad for + // testing/debugging, as it causes the post-mortem debugger not to be invoked. We reset the + // error mode here to work around Cygwin's behavior. See . + ::SetErrorMode(0); +#endif + const char *scriptPath = "testapi.js"; if (argc > 1) { scriptPath = argv[1]; diff --git a/Source/JavaScriptCore/Android.mk b/Source/JavaScriptCore/Android.mk index 31d6fde..e789a1a 100644 --- a/Source/JavaScriptCore/Android.mk +++ b/Source/JavaScriptCore/Android.mk @@ -100,7 +100,6 @@ LOCAL_SRC_FILES := \ runtime/GCActivityCallback.cpp \ runtime/GCHandle.cpp \ runtime/GetterSetter.cpp \ - runtime/GlobalEvalFunction.cpp \ runtime/Identifier.cpp \ runtime/InitializeThreading.cpp \ runtime/InternalFunction.cpp \ @@ -144,7 +143,6 @@ LOCAL_SRC_FILES := \ runtime/PropertyDescriptor.cpp \ runtime/PropertyNameArray.cpp \ runtime/PropertySlot.cpp \ - runtime/PrototypeFunction.cpp \ runtime/RegExp.cpp \ runtime/RegExpCache.cpp \ runtime/RegExpConstructor.cpp \ @@ -218,6 +216,7 @@ JSC_OBJECTS := $(addprefix $(intermediates)/runtime/, \ JSONObject.lut.h \ MathObject.lut.h \ NumberConstructor.lut.h \ + ObjectConstructor.lut.h \ RegExpConstructor.lut.h \ RegExpObject.lut.h \ StringPrototype.lut.h \ diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt index f18826e..97f100e 100644 --- a/Source/JavaScriptCore/CMakeLists.txt +++ b/Source/JavaScriptCore/CMakeLists.txt @@ -6,6 +6,7 @@ SET(JavaScriptCore_INCLUDE_DIRECTORIES "${JAVASCRIPTCORE_DIR}/assembler" "${JAVASCRIPTCORE_DIR}/bytecode" "${JAVASCRIPTCORE_DIR}/bytecompiler" + "${JAVASCRIPTCORE_DIR}/collector/handles" "${JAVASCRIPTCORE_DIR}/debugger" "${JAVASCRIPTCORE_DIR}/interpreter" "${JAVASCRIPTCORE_DIR}/jit" @@ -40,6 +41,8 @@ SET(JavaScriptCore_SOURCES bytecompiler/BytecodeGenerator.cpp bytecompiler/NodesCodegen.cpp + collector/handles/HandleHeap.cpp + debugger/Debugger.cpp debugger/DebuggerActivation.cpp debugger/DebuggerCallFrame.cpp @@ -100,9 +103,7 @@ SET(JavaScriptCore_SOURCES runtime/FunctionConstructor.cpp runtime/FunctionPrototype.cpp runtime/GCActivityCallback.cpp - runtime/GCHandle.cpp runtime/GetterSetter.cpp - runtime/GlobalEvalFunction.cpp runtime/Identifier.cpp runtime/InitializeThreading.cpp runtime/InternalFunction.cpp @@ -146,7 +147,6 @@ SET(JavaScriptCore_SOURCES runtime/PropertyDescriptor.cpp runtime/PropertyNameArray.cpp runtime/PropertySlot.cpp - runtime/PrototypeFunction.cpp runtime/RegExp.cpp runtime/RegExpCache.cpp runtime/RegExpConstructor.cpp @@ -182,6 +182,7 @@ SET(JavaScriptCore_LUT_FILES runtime/JSONObject.cpp runtime/MathObject.cpp runtime/NumberConstructor.cpp + runtime/ObjectConstructor.cpp runtime/RegExpConstructor.cpp runtime/RegExpObject.cpp runtime/StringPrototype.cpp diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog index 12e0cfd..162f23f 100644 --- a/Source/JavaScriptCore/ChangeLog +++ b/Source/JavaScriptCore/ChangeLog @@ -1,24150 +1,2833 @@ -2011-02-13 Jeremy Moskovich +2011-03-06 Yuta Kitamura - Reviewed by Adam Barth. + Reviewed by Kent Tamura. - Add a compile-time option to completely disable WebArchive support. - https://bugs.webkit.org/show_bug.cgi?id=52712 + Add SHA-1 for new WebSocket protocol + https://bugs.webkit.org/show_bug.cgi?id=55039 - Add an ENABLE(WEB_ARCHIVE) compile-time setting and use it for all WebArchive code. - Ports Affected: - WebArchive support is currently enabled for all ports that define PLATFORM(CF) apart from Qt. - This patch preserves this behavior except that it also disables support in the Chromium port. + 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. - * wtf/Platform.h: Add ENABLE_WEB_ARCHIVE definition and turn it off explicitly for Qt & Chromium ports. + * 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-02-13 Cameron Zwarich +2011-03-05 Adam Barth - Reviewed by Dan Bernstein. + Reviewed by Dimitri Glazkov. - Bug 53760 - JSC fails to build with TOT Clang - https://bugs.webkit.org/show_bug.cgi?id=53760 + Add Derived Sources to WebCore GYP build + https://bugs.webkit.org/show_bug.cgi?id=55813 - Fix -Woverloaded-virtual warnings. This is also a 6% speedup on the v8 raytrace - benchmark; it is nothing-to-noise on everything else. + Rename the action to be friendlier. - * API/JSCallbackObject.h: Remove pointlessly overloaded method. - * API/JSCallbackObjectFunctions.h: Ditto. - * runtime/Arguments.cpp: - (JSC::Arguments::put): Change signature to match the base class. This implementation - was no longer being called by anyone. This wasn't noticed because it is merely an - optimization of the base class' implementation. - * runtime/Arguments.h: Ditto. + * gyp/JavaScriptCore.gyp: -2011-02-12 Adam Barth +2011-03-04 Viatcheslav Ostapenko - Reviewed by Mark Rowe. + Reviewed by Laszlo Gombos. - Use /dev/urandom as the OSRandomSource on OS(DARWIN) - https://bugs.webkit.org/show_bug.cgi?id=54279 + [Qt] Need symbian version of cryptographicallyRandomValuesFromOS + https://bugs.webkit.org/show_bug.cgi?id=55782 - I'm not sure it makes much of a difference whether we use arc4random or - /dev/urandom on Mac. However, there's some aesthetic benefit to using - the same underlying API on as many platforms as reasonable. + Implement Symbian version of cryptographicallyRandomValuesFromOS - * config.h: * wtf/OSRandomSource.cpp: (WTF::cryptographicallyRandomValuesFromOS): -2011-02-12 Adam Barth - - Reviewed by Kenneth Russell. - - Enable ArrayBuffers by default - https://bugs.webkit.org/show_bug.cgi?id=54310 +2011-03-04 Gavin Barraclough - Export the required functions. + Reviewed by Cameron Zwarich. - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: + Bug 55815 - Should throw an exception from JSObject::defineOwnProperty if !isExtensible(). -2011-02-11 Daniel Bates + * runtime/JSObject.cpp: + (JSC::JSObject::defineOwnProperty): + Add missing check. - Reviewed by Geoffrey Garen. +2011-03-04 Gavin Barraclough - Remove explicit disable ENABLE_ASSEMBLER_WX_EXCLUSIVE on non-iOS ports - https://bugs.webkit.org/show_bug.cgi?id=54107 - - It is unnecessary to explicitly disable ENABLE_ASSEMBLER_WX_EXCLUSIVE - by the definition of ENABLE(). + Rubber stamped by olliej. - * wtf/Platform.h: + Bug 54945 - The web page hangs towards the end of page load in Interpreter enabled javascript code in the latest webkit trunk. -2011-02-11 Geoffrey Garen + * interpreter/Interpreter.cpp: + (JSC::Interpreter::privateExecute): + (1) don't infinite loop. + (2) goto 1. - Not reviewed. +2011-03-04 Gavin Barraclough - Randomly touch some build files in the hopes of fixing the Qt build. + cmake build fix. - * JavaScriptCore.gypi: - * JavaScriptCore.pri: - * JavaScriptCore.pro: + * CMakeLists.txt: -2011-02-11 Geoffrey Garen +2011-03-04 Adam Barth - Reviewed by Sam Weinig. + Reviewed by Dimitri Glazkov. - Garbage collection timer cycles forever, even when nothing is happening - https://bugs.webkit.org/show_bug.cgi?id=54320 - - (Rolling back in r78386 with the build fixed.) + Add Copy Files step to JavaScriptCore GYP build for apitest and minidom + https://bugs.webkit.org/show_bug.cgi?id=55798 - * runtime/GCActivityCallbackCF.cpp: - (JSC::DefaultGCActivityCallbackPlatformData::trigger): Be sure to make - our timer inert after forcing a GC, to avoid GC'ing repeatedly. + * JavaScriptCore.gypi: + * gyp/JavaScriptCore.gyp: -2011-02-11 Geoffrey Garen +2011-03-04 Adam Barth - Not reviewed. - - Used svn merge -r78386:78385 to roll out r78386 because it broke the build. + Reviewed by Dimitri Glazkov. - * runtime/GCActivityCallbackCF.cpp: - (JSC::DefaultGCActivityCallbackPlatformData::trigger): + Remove unneeded round-trips through ../Source in the Chromium GYP build + https://bugs.webkit.org/show_bug.cgi?id=55795 -2011-02-11 Geoffrey Garen + * JavaScriptCore.gyp/JavaScriptCore.gyp: - Reviewed by Sam Weinig. +2011-03-04 Adam Barth - Garbage collection timer cycles forever, even when nothing is happening - https://bugs.webkit.org/show_bug.cgi?id=54320 + Reviewed by Dimitri Glazkov. - * runtime/GCActivityCallbackCF.cpp: - (JSC::DefaultGCActivityCallbackPlatformData::trigger): Be sure to make - our timer inert after forcing a GC, to avoid GC'ing repeatedly. + Use target_defaults to reduce boilerplate in GYP build system + https://bugs.webkit.org/show_bug.cgi?id=55790 -2011-02-11 Geoffrey Garen + Instead of setting up the configuration in each target, just defer to + target_defaults. Also, removed a define that was redundant with the + xcconfig. - Try to fix the Windows build: added an exported symbol. + * gyp/JavaScriptCore.gyp: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: +2011-03-03 Gavin Barraclough -2011-02-11 Geoffrey Garen + Reviewed by Sam Weinig. - Reviewed by Oliver Hunt. + 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. - A little more encapsulation for the heap: Removed CollectorHeapIterator - https://bugs.webkit.org/show_bug.cgi?id=54298 - - CollectorHeapIterator is a God object that knows the internals of each - of the pieces of the heap. This undermines the encapsulation I'm trying - to achieve by splitting concepts into different classes. - - As an alternative, I've given each class a forEach iteration function, - which takes a functor as an argument. Now, each class just needs to - know how to iterate the things it knows about. + Shows a 0.5% progression on SunSpidey, this seems to be due to changing + ObjectConstructor to use a static table. - * GNUmakefile.am: + * DerivedSources.make: * JavaScriptCore.exp: - * JavaScriptCore.gypi: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Removed CollectorHeapIterator. + * 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. - * debugger/Debugger.cpp: - (JSC::Recompiler::Recompiler): - (JSC::Recompiler::~Recompiler): - (JSC::Recompiler::operator()): - (JSC::Debugger::recompileAllJSFunctions): Updated to use forEach interface - instead of an iterator. +2011-03-04 Steve Falkenburg - * runtime/CollectorHeapIterator.h: Removed. + Reviewed by Jon Honeycutt. - * runtime/Heap.cpp: - (JSC::TypeCounter::TypeCounter): - (JSC::TypeCounter::typeName): - (JSC::TypeCounter::operator()): - (JSC::TypeCounter::take): - (JSC::Heap::protectedObjectTypeCounts): - (JSC::Heap::objectTypeCounts): Added forEach and removed iterator. + Adopt VersionStamper tool for Windows WebKit DLLs + https://bugs.webkit.org/show_bug.cgi?id=55784 + + + We now use a tool to stamp the version number onto the Apple WebKit DLLs + during the post-build step. - * runtime/Heap.h: - (JSC::Heap::forEach): - * runtime/JSGlobalData.cpp: - (JSC::Recompiler::operator()): - (JSC::JSGlobalData::recompileAllJSFunctions): + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.rc: Removed. + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePostBuild.cmd: + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePreBuild.cmd: - * runtime/MarkedBlock.h: - (JSC::MarkedBlock::forEach): Added forEach. Removed friend declaration - for CollectorHeapIterator. Now, we can make all our data private and - change it without breaking any other classes. +2011-03-04 Adam Barth - * runtime/MarkedSpace.cpp: - * runtime/MarkedSpace.h: - (JSC::MarkedSpace::forEach): Added forEach and removed iterator. + Reviewed by Dimitri Glazkov. -2011-02-11 Adam Barth + JavaScriptCore GYP build should use a header map + https://bugs.webkit.org/show_bug.cgi?id=55712 - Reviewed by Andreas Kling. + 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. - CryptographicRandomNumber has its threading ifdefs backwards - https://bugs.webkit.org/show_bug.cgi?id=54280 + * JavaScriptCore.gypi: + * gyp/JavaScriptCore.gyp: - Turns out we want the mutex when thread is enabled. :) +2011-03-03 Ryosuke Niwa - * wtf/CryptographicallyRandomNumber.cpp: - (WTF::ARC4Stream::ARC4RandomNumberGenerator::randomNumber): - (WTF::ARC4Stream::ARC4RandomNumberGenerator::randomValues): + Reviewed by Darin Adler. -2011-02-10 Adam Barth + Remove LOOSE_PASS_OWN_ARRAY_PTR from PassOwnArrayPtr.h + https://bugs.webkit.org/show_bug.cgi?id=55554 - Reviewed by Eric Seidel. + * 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. - WebKit should have a cryptographic RNG - https://bugs.webkit.org/show_bug.cgi?id=22049 +2011-03-03 Adam Barth - Teach JavaScriptCore how to export this function. + Reviewed by Dimitri Glazkov. - * JavaScriptCore.exp: - * JavaScriptCore.xcodeproj/project.pbxproj: + Add jsc to JavaScriptCore GYP build + https://bugs.webkit.org/show_bug.cgi?id=55711 -2011-02-10 Geoffrey Garen + * 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. - Reviewed by Sam Weinig. +2011-03-03 Adam Barth - A little more encapsulation for MarkedBlock: Made all constants private - so clients don't know whether allocations are fixed-sized or not - https://bugs.webkit.org/show_bug.cgi?id=54270 - - SunSpider reports no change. + Reviewed by Dimitri Glazkov. - * runtime/CollectorHeapIterator.h: - (JSC::CollectorHeapIterator::advance): Updated for removal of HeapConstants. + Add testapi to JavaScriptCore GYP build + https://bugs.webkit.org/show_bug.cgi?id=55707 - * runtime/Error.cpp: Switched to using ASSERT_CLASS_FITS_IN_CELL, like - all other classes. + The new testapi target is slightly incomplete. There's a resource + copying step that we don't quite have yet. - * runtime/Heap.cpp: - (JSC::Heap::allocate): Updated for removal of HeapConstants. - (JSC::Heap::reset): Updated to use size(), instead of calculating size - on our own. + 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. - * runtime/Heap.h: Moved the ASSERT here to MarkedBlock, since it enforces - on special knowledge of fixed-sizery, which only MarkedBlock is supposed - to know about. + * JavaScriptCore.gypi: + * gyp/JavaScriptCore.gyp: - * runtime/JSCell.h: - (JSC::JSCell::MarkedBlock::allocate): Updated for removal of HeapConstants. - Also changed to reset nextCell to 0 at the end of a block, since that - seems more consistent. +2011-03-03 Adam Barth - * runtime/JSGlobalData.cpp: - (JSC::JSGlobalData::storeVPtrs): Changed to use a fixed array of char. - This hard-coded size is a little wonky, but the compiler will tell us - if it's ever wrong, so I think it's OK. + Reviewed by Eric Seidel. - * runtime/MarkedBlock.cpp: - (JSC::MarkedBlock::destroy): - (JSC::MarkedBlock::MarkedBlock): - (JSC::MarkedBlock::sweep): Updated for removal of HeapConstants. + Teach JavaScriptCore GYP build about private headers + https://bugs.webkit.org/show_bug.cgi?id=55532 - * runtime/MarkedBlock.h: - (JSC::MarkedBlock::isEmpty): - (JSC::MarkedBlock::clearMarks): - (JSC::MarkedBlock::size): - (JSC::MarkedBlock::capacity): Made constants private to this class. - Removed HeapConstants. Added size() and capacity() functions. + 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. - * runtime/MarkedSpace.cpp: - (JSC::MarkedSpace::allocate): - (JSC::MarkedSpace::objectCount): - (JSC::MarkedSpace::size): - (JSC::MarkedSpace::capacity): - * runtime/MarkedSpace.h: Use MarkedBlock helper functions instead of - direct knowledge of MarkedBlock internals. + * gyp/JavaScriptCore.gyp: -2011-02-10 Geoffrey Garen +2011-03-03 Geoffrey Garen - Reviewed by Sam Weinig. + Rolled out 80277 and 80280 because they caused event handler layout test + failures. - A little more encapsulation for MarkedBlock: Made mark bits private - https://bugs.webkit.org/show_bug.cgi?id=54264 - - SunSpider reports no change. + * 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: - * runtime/Heap.cpp: - (JSC::Heap::markRoots): - (JSC::Heap::reset): Renamed clearMarkBits => clearMarks, since clients - don't need to know that marks are represented as bits. Renamed - markedCells => markCount, since clients don't need to know that blocks - are split into cells. +2011-03-03 Kevin Ollivier - * runtime/MarkedBlock.h: - (JSC::MarkedBlock::isEmpty): - (JSC::MarkedBlock::clearMarks): - (JSC::MarkedBlock::markCount): New helper functions for encapsulating - the information clients actually need. + [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. - * runtime/MarkedSpace.cpp: - (JSC::MarkedSpace::destroy): - (JSC::MarkedSpace::shrink): - (JSC::MarkedSpace::clearMarks): - (JSC::MarkedSpace::markCount): - (JSC::MarkedSpace::objectCount): - * runtime/MarkedSpace.h: Use new helper functions instead of accessing - MarkedBlock data directly. + * wscript: + * wtf/wx/StringWx.cpp: -2011-02-10 Michael Saboff +2011-03-03 Oliver Hunt Reviewed by Geoffrey Garen. - Cached JavaScript Parser Data Being Left in Memory Cache - https://bugs.webkit.org/show_bug.cgi?id=54245 + JSVariableObject needs to use WriteBarrier for symboltable property storage + https://bugs.webkit.org/show_bug.cgi?id=55698 - Added clear method which removes SourceProviderCache items. - Cleaned up extraneous whitespace. + Replace the direct usage of Register in JSVariableObject (and descendents) + with WriteBarrier. This requires updating the Arguments object to use + WriteBarrier as well. - * JavaScriptCore.exp: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: - * parser/SourceProviderCache.cpp: - (JSC::SourceProviderCache::~SourceProviderCache): - (JSC::SourceProviderCache::clear): - (JSC::SourceProviderCache::byteSize): - (JSC::SourceProviderCache::add): - * parser/SourceProviderCache.h: + * 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-02-10 Joseph Pecoraro +2011-03-03 Geoffrey Garen - Follow-up fix to r78291. I should pass (int) 0, not '0' to memset. + Try to fix Windows build. - * runtime/GCActivityCallbackCF.cpp: - (JSC::DefaultGCActivityCallback::commonConstructor): fix mistaken post-review change. + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Removed obsolete symbol. -2011-02-10 Joseph Pecoraro + * runtime/JSStaticScopeObject.cpp: + (JSC::JSStaticScopeObject::getOwnPropertySlot): Don't mark this function + inline -- it's virtual. - Reviewed by Geoffrey Garen. +2011-03-02 Geoffrey Garen - Make DefaultGCActivityCallback for PLATFORM(CF) Easier to Subclass - https://bugs.webkit.org/show_bug.cgi?id=54257 + Reviewed by Darin Adler. - A subclass may want to specify the CFRunLoop that the Garbage Collection - will happen on. It was difficult to manipulate this in a subclass because - the current DefaultGCActivityCallback class does this in its constructor. - This patch generalizes things a bit more so that a specific run loop can - be passed in to the constructor. This makes it so all run loop management - can stay in DefaultGCActivityCallback and a subclass can specify any runloop. + Moved all variable object storage inline -- upping the object size limit to 1K + https://bugs.webkit.org/show_bug.cgi?id=55653 - * runtime/GCActivityCallback.h: expose a PLATFORM(CF) constructor that can - specify the runloop GC can be scheduled on. - * runtime/GCActivityCallbackCF.cpp: - (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback): two constructors, - one that specifies the run loop and passes that on to commonConstructor and - the old constructor defaults to the current run loop. - (JSC::DefaultGCActivityCallback::commonConstructor): do normal construction, - adding the timer to the given runloop. + * JavaScriptCore.exp: + * bytecompiler/BytecodeGenerator.cpp: + * jit/JITOpcodes.cpp: + * runtime/Arguments.h: + * runtime/JSActivation.h: Removed out-of-line storage. Changed d-> to m_. -2011-02-10 Geoffrey Garen + * runtime/JSCell.h: + (JSC::JSCell::MarkedSpace::sizeClassFor): Added an imprecise size class + to accomodate objects up to 1K. - Reviewed by Oliver Hunt. + * runtime/JSGlobalObject.cpp: + * runtime/JSGlobalObject.h: Removed out-of-line storage. Changed d-> to m_. - A little more encapsulation for MarkedBlock: Moved allocate() and sweep() into MarkedBlock - https://bugs.webkit.org/show_bug.cgi?id=54253 - - SunSpider reports no change. + * runtime/JSObject.cpp: Don't ASSERT that JSFinalObject fills the maximum + object size, since it doesn't anymore. - * runtime/CollectorHeapIterator.h: Removed DeadObjectIterator, since it - is now unused. + * runtime/JSStaticScopeObject.cpp: + * runtime/JSStaticScopeObject.h: + * runtime/JSVariableObject.h: Removed out-of-line storage. Changed d-> to m_. - * runtime/Heap.cpp: - (JSC::Heap::reset): Moved the call to shrink() here, since it seems a - little more clear for MarkedSpace's client to tell it explicitly when to - shrink. + * runtime/MarkedSpace.cpp: + (JSC::MarkedSpace::MarkedSpace): + (JSC::MarkedSpace::reset): + * runtime/MarkedSpace.h: Added an imprecise size class to accomodate objects up to 1K. - * runtime/JSCell.h: - (JSC::JSCell::MarkedBlock::allocate): Split out from MarkedSpace::allocate. +2011-03-03 Timothy Hatcher - * runtime/MarkedBlock.cpp: - (JSC::MarkedBlock::sweep): Split out from MarkedSpace::sweep, and - converted to more directly iterate a MarkedBlock based on knowing its - internal structure. + Make APIShims usable from WebCore. - * runtime/MarkedBlock.h: - * runtime/MarkedSpace.cpp: - (JSC::MarkedSpace::allocate): - (JSC::MarkedSpace::sweep): - * runtime/MarkedSpace.h: Split out the code mentioned above. + Reviewed by Oliver Hunt. -2011-02-10 Patrick Gansterer + * ForwardingHeaders/JavaScriptCore/APIShims.h: Added. + * GNUmakefile.am: + * JavaScriptCore.exp: + * JavaScriptCore.gypi: + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: + * JavaScriptCore.xcodeproj/project.pbxproj: - Reviewed by Andreas Kling. +2011-03-03 Peter Varga - Fix compilation error on OpenBSD - https://bugs.webkit.org/show_bug.cgi?id=53766 + Reviewed by Oliver Hunt. - Add a HAVE_STRNSTR in Platform.h and define it only on Darwin and FreeBSD. + Begin Characters Optimization Causes YARR Interpreter Errors + https://bugs.webkit.org/show_bug.cgi?id=55479 - * wtf/Platform.h: - * wtf/StringExtras.h: Use HAVE(STRNSTR) now. + 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. -2011-02-10 Adam Roben + Reenable the Beginning Character Optimization in the YARR Interpreter again. - Print locations of assertions and logs in a way that Visual Studio understands + * yarr/YarrPattern.cpp: + (JSC::Yarr::YarrPatternConstructor::setupAlternativeBeginTerms): + (JSC::Yarr::YarrPattern::compile): - With this change, double-clicking one of these locations in Visual Studio's Output Window - will focus that line of code in the editor. +2011-03-02 Jessie Berlin - Fixes Double-clicking locations of assertions/logs in Visual - Studio's Output Window does nothing + Reviewed by Adam Roben. - Reviewed by Alexey Proskuryakov. + WebKit2: Use CFNetwork Sessions API. + https://bugs.webkit.org/show_bug.cgi?id=55435 - * wtf/Assertions.cpp: - (printCallSite): Use OS(WINDOWS) instead of the meaningless OS(WIN). When we aren't using - the debug CRT (and thus can't call _CrtDbgReport), print the file and line number using the - same format that cl.exe uses when it prints compiler errors. + Add the ability to create a Private Browsing storage session. -2011-02-10 Dan Bernstein + * wtf/Platform.h: + Add a new #define for using CF Storage Sessions. - LLVM Compiler build fix. +2011-03-02 Oliver Hunt - * runtime/MarkedBlock.cpp: - (JSC::MarkedBlock::create): + Reviewed by Gavin Barraclough. -2011-02-10 Peter Varga + Remove "register slot" concept from PropertySlot + https://bugs.webkit.org/show_bug.cgi?id=55621 - Reviewed by Csaba Osztrogonác. + 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. - Remove PCRE source from trunk - https://bugs.webkit.org/show_bug.cgi?id=54188 + 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. - * Android.mk: - * Android.v8.wtf.mk: - * CMakeLists.txt: - * DerivedSources.make: - * DerivedSources.pro: - * GNUmakefile.am: - * JavaScriptCore.gypi: - * JavaScriptCore.order: - * JavaScriptCore.pri: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: - * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops: - * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: * JavaScriptCore.xcodeproj/project.pbxproj: - * pcre/AUTHORS: Removed. - * pcre/COPYING: Removed. - * pcre/dftables: Removed. - * pcre/pcre.h: Removed. - * pcre/pcre.pri: Removed. - * pcre/pcre_compile.cpp: Removed. - * pcre/pcre_exec.cpp: Removed. - * pcre/pcre_internal.h: Removed. - * pcre/pcre_tables.cpp: Removed. - * pcre/pcre_ucp_searchfuncs.cpp: Removed. - * pcre/pcre_xclass.cpp: Removed. - * pcre/ucpinternal.h: Removed. - * pcre/ucptable.cpp: Removed. - * wscript: + * 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-02-10 Patrick Gansterer +2011-03-02 Daniel Cheng - Reviewed by Adam Barth. + Reviewed by David Levin. - Add randomValuesFromOS for OS(WINDOWS) - https://bugs.webkit.org/show_bug.cgi?id=54155 + Add feature define for data transfer items + https://bugs.webkit.org/show_bug.cgi?id=55510 - Use CryptGenRandom for generating cryptographically secure random numbers. - This will work on WinCE and MinGW too. + * Configurations/FeatureDefines.xcconfig: + * wtf/Platform.h: - * config.h: - * wtf/OSRandomSource.cpp: - (WTF::randomValuesFromOS): +2011-03-02 Adam Roben -2011-02-10 Jarred Nicholls + Delete old .res files whenever any .vsprops file changes - Reviewed by Adam Barth. + Prospective fix for r80079 caused incremental Windows builds to + fail - REGRESSION(r78149): Return value of read() shouldn't be ignored. - https://bugs.webkit.org/show_bug.cgi?id=54167 - - stdio read should have its return value handled. Build error in gcc 4.4.5. + Reviewed by Tony Chang. - * wtf/OSRandomSource.cpp: - (WTF::randomValuesFromOS): + * 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-02-10 Patrick Gansterer +2011-03-02 Adam Barth - Reviewed by Adam Barth. - - Rename randomValuesFromOS to cryptographicallyRandomValuesFromOS - https://bugs.webkit.org/show_bug.cgi?id=54156 - - randomValuesFromOS generates random numbers of cryptographic quality. - Make this clear by adding "cryptographically" to the function name. - - * wtf/CryptographicallyRandomNumber.cpp: - (WTF::ARC4Stream::ARC4RandomNumberGenerator::stir): - * wtf/OSRandomSource.cpp: - (WTF::cryptographicallyRandomValuesFromOS): - * wtf/OSRandomSource.h: - -2011-02-09 Mark Rowe - - Reviewed by Sam Weinig. - - Malloc zone enumeration code should be safe in the face of errors from the memory reader. - - * wtf/FastMalloc.cpp: - (WTF::PageHeapAllocator::recordAdministrativeRegions): Use the new helper function to walk the linked list safely. - (WTF::TCMalloc_ThreadCache_FreeList::enumerateFreeObjects): Ditto. - (WTF::TCMalloc_Central_FreeList::enumerateFreeObjects): Ditto. - (WTF::TCMallocStats::PageMapFreeObjectFinder::visit): Bail out if the span could not be read. - (WTF::TCMallocStats::PageMapMemoryUsageRecorder::visit): Ditto. - * wtf/MallocZoneSupport.h: - (WTF::RemoteMemoryReader::operator()): Remove an assert that is not valid. - (WTF::RemoteMemoryReader::nextEntryInLinkedList): Add a helper function for retrieving the next entry in - a linked list. It maps a failed read of the remote memory in to a null pointer, which all callers can - handle gracefully. - -2011-02-09 Gavin Barraclough - - Reviewed by Sam Weinig. - - Bug 54164 - Optimize global_var accesses on JSVALUE64 - - Directly embed the pointer to d->registers, optimize out the load - from the variable object, as we do already in JSVALUE32_64. - - This is a ~1.5% win on sunspidey. + Reviewed by Dimitri Glazkov. - * jit/JIT.cpp: - * jit/JIT.h: - * jit/JITOpcodes.cpp: - (JSC::JIT::emit_op_get_global_var): - (JSC::JIT::emit_op_put_global_var): - (JSC::JIT::emit_op_get_scoped_var): - (JSC::JIT::emit_op_put_scoped_var): + Teach JavaScriptCore GYP build how to build minidom + https://bugs.webkit.org/show_bug.cgi?id=55536 -2011-02-09 Geoffrey Garen + * JavaScriptCore.gypi: + * gyp/JavaScriptCore.gyp: - Reviewed by Oliver Hunt. +2011-03-01 Adam Barth - A little more encapsulation for MarkedBlock: Made MarkedBlock responsible - for its own initialization and destruction - https://bugs.webkit.org/show_bug.cgi?id=54137 + Reviewed by Eric Seidel. - * runtime/CollectorHeapIterator.h: Removed ObjectIterator since it is - now unused. + JavaScriptCore GYP build should copy some headers into the target framework + https://bugs.webkit.org/show_bug.cgi?id=55524 - * runtime/JSCell.h: Maded MarkedBlock a friend so it can construct and - destruct JSCells. + After this patch, all the framework headers are exported as public + headers. We need to teach GYP how to handle private headers. - * runtime/MarkedBlock.cpp: - (JSC::MarkedBlock::create): - (JSC::MarkedBlock::destroy): - (JSC::MarkedBlock::MarkedBlock): Migrated initialization and destruction - code from MarkedSpace, updating it not to use ObjectIterator. We don't - want to use an abstract iterator since iteration will be unique to each - block in the future. + 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. - * runtime/MarkedBlock.h: Made the consructor private and moved it into - the .cpp file because it's big now. + * JavaScriptCore.gyp/JavaScriptCore.gyp: + * JavaScriptCore.gypi: + * gyp/JavaScriptCore.gyp: - * runtime/MarkedSpace.cpp: - (JSC::MarkedSpace::allocateBlock): - (JSC::MarkedSpace::freeBlock): Migrated code. +2011-03-01 Sheriff Bot - * runtime/MarkedSpace.h: - (JSC::CollectorHeap::collectorBlock): Keep a vector of MarkedBlock - pointers instead of aligned allocations -- how MarkedBlocks are allocated - is now an implementation detail of MarkedBlock. + Unreviewed, rolling out r80079. + http://trac.webkit.org/changeset/80079 + https://bugs.webkit.org/show_bug.cgi?id=55547 -2011-02-09 Adam Barth + "Broke the Win debug build?" (Requested by dcheng on #webkit). - Another attempt to fix the Qt Windows build. + * wtf/Platform.h: - * config.h: - * wtf/OSRandomSource.cpp: - (WTF::randomValuesFromOS): +2011-03-01 Daniel Cheng -2011-02-09 Adam Barth + Reviewed by David Levin. - Attempt to fix the Qt Windows build. + Add feature define for data transfer items + https://bugs.webkit.org/show_bug.cgi?id=55510 - * wtf/OSRandomSource.cpp: - (WTF::randomValuesFromOS): + * wtf/Platform.h: -2011-02-09 Adam Barth +2011-03-01 Oliver Hunt - Reviewed by Eric Seidel. + Reviewed by Joseph Pecoraro. - Add WTF::cryptographicallyRandomNumber - https://bugs.webkit.org/show_bug.cgi?id=54083 + Misaligned memory access in CloneDeserializer on all ARM arch. + https://bugs.webkit.org/show_bug.cgi?id=48742 - Introduce a cryptographically strong random number generator to WTF. - The random number generator is based on arc4random as found in: + Add a CPU class for architectures that need aligned addresses + for memory access. - http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/crypt/arc4random.c?rev=1.22 + * wtf/Platform.h: - I've changed to source to WebKit style and abstracted the operating - system interaction to OSRandomSource. We'll use this functionality to - expose a cryptographically strong random number generator to - JavaScript. +2011-03-01 Adam Barth - * Android.mk: - * Android.v8.wtf.mk: - * GNUmakefile.am: - * JavaScriptCore.gypi: - * JavaScriptCore.vcproj/WTF/WTF.vcproj: - * JavaScriptCore.xcodeproj/project.pbxproj: - * config.h: - * wtf/CMakeLists.txt: - * wtf/CryptographicallyRandomNumber.cpp: Added. - (WTF::initMutexIfNeeded): - (WTF::init): - (WTF::addRandomData): - (WTF::stir): - (WTF::stirIfNeeded): - (WTF::getByte): - (WTF::getWord): - (WTF::cryptographicallyRandomNumber): - (WTF::cryptographicallyRandomValues): - * wtf/CryptographicallyRandomNumber.h: Added. - * wtf/OSRandomSource.cpp: Added. - (WTF::randomValuesFromOS): - * wtf/OSRandomSource.h: Added. - * wtf/wtf.pri: + Reviewed by Dimitri Glazkov. -2011-02-09 Geoffrey Garen + Add pre- and post-build actions for JavaScriptCore GYP build + https://bugs.webkit.org/show_bug.cgi?id=55507 - Try to fix the build. + After this patch, we have all the steps for building the main + JavaScriptCore framework except the "copy headers" step, which I'll do + next. - * wtf/Bitmap.h: Include string.h for memset. Not sure why this started - failing now. + * gyp/JavaScriptCore.gyp: -2011-02-09 Geoffrey Garen +2011-03-01 Geoffrey Garen Reviewed by Sam Weinig. - A tiny bit of encapsulation for MarkedBlock: made its heap data member private - https://bugs.webkit.org/show_bug.cgi?id=54129 + 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: - (JSC::MarkedBlock::isCellAligned): - (JSC::MarkedBlock::MarkedBlock): - (JSC::MarkedBlock::heap): Made the heap data member private, and provided - a constructor and an accessor. - * runtime/MarkedSpace.cpp: + (JSC::MarkedSpace::MarkedSpace): (JSC::MarkedSpace::allocateBlock): + (JSC::MarkedSpace::reset): * runtime/MarkedSpace.h: - (JSC::MarkedSpace::heap): Use the constructor and accessor. - -2011-02-09 Peter Varga - - Reviewed by Gavin Barraclough. - - Replace PCRE with Yarr in WebCore - https://bugs.webkit.org/show_bug.cgi?id=53496 - - * JavaScriptCore.exp: - * JavaScriptCore.gyp/JavaScriptCore.gyp: - * JavaScriptCore.gypi: - * JavaScriptCore.pro: - * JavaScriptCore.xcodeproj/project.pbxproj: - * create_regex_tables: - * runtime/RegExp.cpp: - * wtf/Platform.h: - * yarr/Yarr.h: - * yarr/YarrJIT.cpp: - * yarr/YarrJIT.h: - * yarr/YarrParser.h: - * yarr/YarrPattern.h: - * yarr/YarrSyntaxChecker.h: - * yarr/yarr.pri: Added. + (JSC::MarkedSpace::SizeClass::SizeClass): -2011-02-08 Geoffrey Garen +2011-03-01 Mark Rowe Reviewed by Sam Weinig. - Removed some dead code from Heap - https://bugs.webkit.org/show_bug.cgi?id=54064 - - * runtime/MarkedSpace.cpp: Removed some now-unused constants and - declarations. - - (JSC::MarkedSpace::allocate): Removed some ASSERTs that are also ASSERTed - by our caller. Removed redundant typedefs. - -2011-02-08 Geoffrey Garen + Replace two script phases that do nothing but copy files with copy files build phases. - Reviewed by Sam Weinig. - - Use a vector to track blocks in the Heap, instead of hand-rolled vector-like code - https://bugs.webkit.org/show_bug.cgi?id=54062 - - SunSpider reports no change. + This speeds up the build by a few seconds on high-end Mac Pros. - * runtime/CollectorHeapIterator.h: - (JSC::CollectorHeapIterator::isValid): - (JSC::CollectorHeapIterator::isLive): Updated for new mark invariant: To - know if an object is live, you just need to test its mark bit. + * JavaScriptCore.xcodeproj/project.pbxproj: - * runtime/MarkedSpace.cpp: - (JSC::MarkedSpace::MarkedSpace): Moved waterMark and highWaterMark from - CollectorHeap into MarkedSpace, since they're global state. Removed call - to memset since CollectorHeap is a true class with its own constructor now. +2011-03-01 David Kilzer - (JSC::MarkedSpace::destroy): Change uses of m_heap.usedBlocks to - m_heap.blocks.size(), and m_heap.numBlocks to m_heap.blocks.capacity(). + Spring cleaning! - (JSC::MarkedSpace::allocateBlock): - (JSC::MarkedSpace::freeBlock): No need to manage our vector manually anymore. + Rubber-stamped by Mark Rowe. - (JSC::MarkedSpace::allocate): - (JSC::MarkedSpace::shrink): - (JSC::MarkedSpace::clearMarkBits): - (JSC::MarkedSpace::markedCells): - (JSC::MarkedSpace::sweep): - (JSC::MarkedSpace::objectCount): - (JSC::MarkedSpace::capacity): - (JSC::MarkedSpace::reset): - (JSC::MarkedSpace::primaryHeapEnd): - * runtime/MarkedSpace.h: - (JSC::CollectorHeap::CollectorHeap): - (JSC::MarkedSpace::highWaterMark): - (JSC::MarkedSpace::setHighWaterMark): - (JSC::MarkedSpace::contains): Same as above. + * JavaScriptCore.xcodeproj/project.pbxproj: + (Copy Into Framework): Remove "set -x" and its comment. -2011-02-08 Geoffrey Garen +2011-03-01 Michael Saboff Reviewed by Darin Adler. - Give each MarkedBlock enough mark bits to cover the whole block - https://bugs.webkit.org/show_bug.cgi?id=54029 - - SunSpider reports no change. - - This simplifies access to mark bits, since any cell-aligned pointer - into a block now has a valid mark bit to test. - - * runtime/MarkedBlock.h: Changed CELLS_PER_BLOCK to account for the extra - mark bits. This happens not to change its actual value. - (JSC::MarkedBlock::cellNumber): - (JSC::MarkedBlock::isMarked): - (JSC::MarkedBlock::testAndSetMarked): - (JSC::MarkedBlock::setMarked): Changed const JSCell* to const void* to - remove a cast from our caller, and to more accurately reflect the fact - that MarkedBlock is agnostic about the types pointed to by the pointers - you pass to it. - - (JSC::MarkedBlock::isPossibleCell): Removed a null check. We now consider - the null pointer to be a possible cell with a 0 (impossible) block. This - removes a null check from marking. + TinyMCE not working in nightlies + https://bugs.webkit.org/show_bug.cgi?id=54978 - * runtime/MarkedSpace.cpp: - * runtime/MarkedSpace.h: - (JSC::MarkedSpace::contains): Simplified the contains check, and inlined - the whole thing, now that it's so simple. + Disabling setupBeginChars() to temporarily work arround the test + failure. Filed https://bugs.webkit.org/show_bug.cgi?id=55479 + to track fixing the issue. -2011-02-08 Daniel Bates + * yarr/YarrPattern.cpp: + (JSC::Yarr::YarrPattern::compile): - Rubber-stamped by Martin Robinson. +2011-02-23 Joseph Pecoraro - Rename enum ProtectionSeting [sic] to ProtectionSetting. + Reviewed by Kenneth Rohde Christiansen. - * jit/ExecutableAllocator.cpp: - (JSC::ExecutableAllocator::reprotectRegion): - * jit/ExecutableAllocator.h: + Viewport parsing no longer accepts "1.0;" value as valid. + https://bugs.webkit.org/show_bug.cgi?id=53705 -2011-02-08 Balazs Kelemen + 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. - Reviewed by Andreas Kling. + * 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: - [Qt] Should not always define USE_SYSTEM_MALLOC - https://bugs.webkit.org/show_bug.cgi?id=54007 +2011-02-28 Geoffrey Garen - * wtf/Platform.h: + Reviewed by Gavin Barraclough. -2011-02-08 Dan Bernstein + 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. - Reviewed by Maciej Stachowiak. + * runtime/JSGlobalData.cpp: + (JSC::JSGlobalData::JSGlobalData): Use the right structure. - LLVM Compiler build fix. + * runtime/JSObject.h: + (JSC::JSNonFinalObject::JSNonFinalObject): + (JSC::JSFinalObject::JSFinalObject): ASSERT that our structure capacity + is correct to verify this doesn't happen again. - * runtime/WriteBarrier.h: - (JSC::WriteBarrier::WriteBarrier): +2011-03-01 Andras Becsi -2011-02-07 Ryosuke Niwa + Reviewed by Csaba Osztrogonác. - Reviewed by Darin Adler. + [Qt] Clean up the project files and move common options to WebKit.pri. - JSVariableObject::setRegisters should take PassOwnArrayPtr for registersArray. - https://bugs.webkit.org/show_bug.cgi?id=53902 + * JavaScriptCore.pri: Move options also needed in WebCore into WebKit.pri. + * JavaScriptCore.pro: Deduplicate options. + * jsc.pro: Ditto. - * runtime/Arguments.h: - (JSC::JSActivation::copyRegisters): Uses OwnArrayPtr instead of Register*. - * runtime/JSGlobalObject.cpp: - (JSC::JSGlobalObject::copyGlobalsFrom): Ditto. - * runtime/JSGlobalObject.h: - (JSC::JSGlobalObject::setRegisters): Takes PassOwnArrayPtr instead of Register* - for registerArray. - * runtime/JSVariableObject.h: - (JSC::JSVariableObject::copyRegisterArray): Returns PassOwnArrayPtr instead of Register*. - (JSC::JSVariableObject::setRegisters): Takes PassOwnArrayPtr instead of Register* - for registerArray. +2011-03-01 Adam Barth -2011-02-07 Geoffrey Garen + Reviewed by Eric Seidel. - Reviewed by Sam Weinig. + Teach JavaScriptCore GYP build about DEPTH + https://bugs.webkit.org/show_bug.cgi?id=55425 - Removed some dead code from Heap - https://bugs.webkit.org/show_bug.cgi?id=53969 - - SunSpider reports no change. + 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. - * runtime/MarkedSpace.cpp: - (JSC::MarkedSpace::shrink): - (JSC::MarkedSpace::sweep): - * runtime/MarkedSpace.h: Removed resizeBlocks and growBlocks, and - renamed shrinkBlocks to shrink, making it unconditionally shrink as - much as possible. + * gyp/JavaScriptCore.gyp: -2011-02-07 Geoffrey Garen +2011-02-28 Gavin Barraclough - Reviewed by Oliver Hunt. + Windows build fix. - Simplified the marked space's mark invariant - https://bugs.webkit.org/show_bug.cgi?id=53968 - - SunSpider reports no change. - - * runtime/MarkedSpace.cpp: - (JSC::MarkedSpace::allocate): Mark objects when allocating them. This - means that, at all times other than the mark phase, an object is live - if and only if it is marked. + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: - (JSC::MarkedSpace::containsSlowCase): Use the new mark invariant to - simplify testing whether an object is live. +2011-02-28 Sheriff Bot -2011-02-07 Beth Dakin + Unreviewed, rolling out r79948. + http://trac.webkit.org/changeset/79948 + https://bugs.webkit.org/show_bug.cgi?id=55439 - Reviewed by Eric Seidel. + "caused crashes on the SL release bot" (Requested by ggaren on + #webkit). - Fix for https://bugs.webkit.org/show_bug.cgi?id=53950 - USE_WK_SCROLLBAR_PAINTER in ScrollbarThemeMac should be in - Platform.h instead + * runtime/JSGlobalData.h: + * runtime/WriteBarrier.h: - * wtf/Platform.h: +2011-02-28 Gavin Barraclough -2011-02-07 Darin Adler + Windows build fix. - Reviewed by Antti Koivisto. + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: - Add built-in decoder for UTF-8 for improved performance - https://bugs.webkit.org/show_bug.cgi?id=53898 +2011-02-28 Gavin Barraclough - * wtf/unicode/UnicodeMacrosFromICU.h: Added U8_MAX_LENGTH and - U8_APPEND_UNSAFE. Also fixed header. + Reviewed by Sam Weinig & Darin Adler. -2011-02-07 Adam Roben + Bug 55423 - Clean up property tables in Structure - Delete precompiled headers whenever any .vsprops file changes + 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). - Precompiled headers need to be rebuilt if, e.g., an ENABLE_* macro is changed in one of our - .vsprops files. Unfortunately, Visual Studio isn't smart enough to figure this out, so we - give it some assistance by deleting the precompiled headers whenever any .vsprops file - changes. + Shows a 0.5% - 1% progression on sunspider. - I also made some drive-by fixes while I was in the area. + * 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 - Fixes react-to-vsprops-changes.py doesn't force precompiled - headers to be rebuilt, but should +2011-02-28 Xan Lopez - Reviewed by David Kilzer. + Another fix build :( - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: Stop ignoring the - return code from react-to-vsprops-changes.py so we will notice when errors are introduced. - But skip the script entirely in production builds, where it is both unnecessary and can't - function correctly (due to not having the entire source tree available to it). + Fix typo. - * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py: - (main): Removed an extra '*' in the glob for finding manifest files. The extra '*' was - leftover from before we rearranged WebKitBuild in r75138. Moved code to delete an old file - to the new delete_if_older_than function. Added code to delete any precompiled headers older - than the newest .vsprops file. - (delete_if_older_than): Added. Code came from main. + * runtime/MachineStackMarker.cpp: + (JSC::freePlatformThreadRegisters): -2011-02-07 Antti Koivisto +2011-02-28 Xan Lopez - Not reviewed. - - ASSERTS_DISABLED -> ASSERT_DISABLED + Unreviewed build fix for Snow Leopard. - * wtf/BloomFilter.h: + * runtime/MachineStackMarker.cpp: + (JSC::freePlatformThreadRegisters): -2011-02-06 Ryosuke Niwa +2011-02-28 Alejandro G. Castro - Unreviewed; speculative Qt build fix. + Unreviewed, fix SnowLeopard compilation after r79952. - * JavaScriptCore.pro: + * runtime/MachineStackMarker.cpp: + (JSC::freePlatformThreadRegisters): -2011-02-06 Ryosuke Niwa +2011-02-28 Mark Rowe Reviewed by Darin Adler. - OwnArraryPtr.h uses deleteOwnedPtr but doesn’t include OwnPtrCommon.h - https://bugs.webkit.org/show_bug.cgi?id=52867 + OwnArrayPtr.h's LOOSE_OWN_ARRAY_PTR results in link errors. - Removed LOOSE_OWN_ARRAY_PTR and OwnArrayPtr::set. Replaced all calls to OwnArrayPtr::set - and loose instantiation of OwnArrayPtr by calls to operator= and adoptArrayPtr. Also removed - OwnArrayPtrCommon.h since PassOwnArrayPtr.h needs to include OwnArrayPtr.h and there is - no point in putting deleteOwnedArrayPtr into a separate header. - - Note: if this patch breaks build, the code is either instiantiating OwnArrayPtr - without calling adoptArrayPtr or calling set on ArrayOwnPtr instead of operator=. - - No tests are added since this is a refactoring. - - * API/JSStringRefCF.cpp: - (JSStringCreateWithCFString): Calls adoptArrayPtr. - * GNUmakefile.am: Removed OwnArrayPtrCommon.h - * JavaScriptCore.vcproj/WTF/WTF.vcproj: Ditto. - * JavaScriptCore.xcodeproj/project.pbxproj: Ditto. - * runtime/Arguments.cpp: - (JSC::Arguments::deleteProperty): Calls adoptArrayPtr. - * runtime/Arguments.h: - (JSC::Arguments::copyRegisters): Ditto. - * runtime/JSPropertyNameIterator.cpp: - (JSC::JSPropertyNameIterator::JSPropertyNameIterator): Ditto. - * runtime/JSVariableObject.h: - (JSC::JSVariableObject::setRegisters): Calls operator= instead of set. - * runtime/StructureChain.cpp: - (JSC::StructureChain::StructureChain): Ditto. - * wtf/CMakeLists.txt: - * wtf/DateMath.h: - (JSC::GregorianDateTime::GregorianDateTime): No longer instnatiates OwnArrayPtr - with a null pointer. * wtf/OwnArrayPtr.h: - * wtf/OwnArrayPtrCommon.h: Removed. - * wtf/PassOwnArrayPtr.h: No longer includes OwnArrayCommon.h - (WTF::deleteOwnedArrayPtr): Moved from OwnArrayPtrCommon.h - -2011-02-06 Antti Koivisto - - Reviewed by Maciej Stachowiak. - - Use bloom filter for descendant selector filtering - https://bugs.webkit.org/show_bug.cgi?id=53880 - - Implement a bloom filter with k=2 and 8 bit counting. - - * GNUmakefile.am: - * JavaScriptCore.gypi: - * JavaScriptCore.vcproj/WTF/WTF.vcproj: - * JavaScriptCore.xcodeproj/project.pbxproj: - * wtf/BloomFilter.h: Added. - (WTF::BloomFilter::maximumCount): - (WTF::BloomFilter::BloomFilter): - (WTF::BloomFilter::mayContain): - (WTF::BloomFilter::add): - (WTF::BloomFilter::remove): - (WTF::BloomFilter::firstSlot): - (WTF::BloomFilter::secondSlot): - (WTF::::add): - (WTF::::remove): - (WTF::::clear): - (WTF::::likelyEmpty): - (WTF::::isClear): - -2011-02-04 Geoffrey Garen - - Reviewed by Oliver Hunt. - - Rolled back in r77612 with ASSERT/crash fixed. - https://bugs.webkit.org/show_bug.cgi?id=53759 - - Don't shrink the heap to 0 unconditionally. Instead, shrink to 1 if - necessary. For now, the heap assumes that it always has at least one - block live. - - * runtime/Heap.cpp: - (JSC::Heap::Heap): - (JSC::Heap::reset): - * runtime/Heap.h: - * runtime/MarkedSpace.cpp: - (JSC::MarkedSpace::allocate): - (JSC::MarkedSpace::shrinkBlocks): - (JSC::MarkedSpace::sweep): - (JSC::MarkedSpace::reset): - * runtime/MarkedSpace.h: - (JSC::MarkedSpace::highWaterMark): - (JSC::MarkedSpace::setHighWaterMark): + (WTF::::set): Implement OwnArrayPtr::set. -2011-02-04 David Kilzer +2011-02-28 Martin Zoubek and Alejandro G. Castro - BUILD FIX: REALLY remove the last vestiges of JSVALUE32! + Reviewed by Martin Robinson. - Remove last vestiges of JSVALUE32 - + Multithread support for JSC on UNIX + https://bugs.webkit.org/show_bug.cgi?id=26838 - * DerivedSources.make: Removed dependency on - JavaScriptCore.JSVALUE32.exp. + Implement suspendThread() and resumeThread() for systems with + pthread.h using thread signal handler. -2011-02-04 David Kilzer + * 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. - Remove last vestiges of JSVALUE32 - +2011-02-28 Oliver Hunt Reviewed by Darin Adler. - Support for JSVALUE32 was originaly removed in r70111. + Stop using DeprecatedPtr for the global exception slot + https://bugs.webkit.org/show_bug.cgi?id=55424 - * Configurations/JavaScriptCore.xcconfig: Changed armv6 to use - JavaScriptCore.JSVALUE32_64.exp and ppc64 to use - JavaScriptCore.JSVALUE64.exp to match Platform.h. - * DerivedSources.make: Removed rule for - JavaScriptCore.JSVALUE32.exp. - * JavaScriptCore.JSVALUE32only.exp: Removed. - * JavaScriptCore.xcodeproj/project.pbxproj: Removed references - to JavaScriptCore.JSVALUE32only.exp. + Create GCRootPtr to signify that the exception slot is + a gcroot, and so is exempt from the usual writebarrier + restrictions. -2011-02-04 David Kilzer + * runtime/JSGlobalData.h: + * runtime/WriteBarrier.h: + (JSC::GCRootPtr::GCRootPtr): + (JSC::GCRootPtr::operator=): - Use static_cast and other style cleanup in YarrInterpreter.cpp - +2011-02-28 Adam Barth - Reviewed by John Sullivan. + Reviewed by Dimitri Glazkov. - * yarr/YarrInterpreter.cpp: - (JSC::Yarr::Interpreter::InputStream::readChecked): Use - static_cast. - (JSC::Yarr::Interpreter::InputStream::checkInput): Remove - unnecessary else block. - (JSC::Yarr::Interpreter::matchAssertionEOL): Ditto. - (JSC::Yarr::Interpreter::backtrackBackReference): Ditto. - (JSC::Yarr::ByteCompiler::emitDisjunction): Use static_cast. + Use more xcconfig files in JavaScriptCore gyp build + https://bugs.webkit.org/show_bug.cgi?id=55391 -2011-02-04 Sheriff Bot + 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. - Unreviewed, rolling out r77625 and r77626. - http://trac.webkit.org/changeset/77625 - http://trac.webkit.org/changeset/77626 - https://bugs.webkit.org/show_bug.cgi?id=53765 + 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. - It broke Windows builds (Requested by Ossy_ on #webkit). + Also, this patch introduces the Release and Production configurations, + which should work correctly now. - * JavaScriptCore.exp: - * JavaScriptCore.gyp/JavaScriptCore.gyp: - * JavaScriptCore.gypi: - * JavaScriptCore.pro: - * JavaScriptCore.xcodeproj/project.pbxproj: - * create_regex_tables: - * runtime/RegExp.cpp: - * wtf/Platform.h: - * yarr/Yarr.h: - * yarr/YarrJIT.cpp: - * yarr/YarrJIT.h: - * yarr/YarrParser.h: - * yarr/YarrPattern.h: - * yarr/YarrSyntaxChecker.h: - * yarr/yarr.pri: Removed. + * gyp/JavaScriptCore.gyp: -2011-02-04 Jessie Berlin +2011-02-28 Jon Honeycutt - Windows build fix. Unreviewed. + Windows build fix. - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: + Add symbol to export. -2011-02-04 Peter Varga +2011-02-28 Oliver Hunt Reviewed by Gavin Barraclough. - Replace PCRE with Yarr in WebCore - https://bugs.webkit.org/show_bug.cgi?id=53496 - - * JavaScriptCore.exp: - * JavaScriptCore.gyp/JavaScriptCore.gyp: - * JavaScriptCore.gypi: - * JavaScriptCore.pro: - * JavaScriptCore.xcodeproj/project.pbxproj: - * create_regex_tables: - * runtime/RegExp.cpp: - * wtf/Platform.h: - * yarr/Yarr.h: - * yarr/YarrJIT.cpp: - * yarr/YarrJIT.h: - * yarr/YarrParser.h: - * yarr/YarrPattern.h: - * yarr/YarrSyntaxChecker.h: - * yarr/yarr.pri: Added. - -2011-02-04 Ilya Tikhonovsky - - Unreviewed rollout two patches r77614 and r77612. - - REGRESSION: Snow Leopard Intel Release anumber of failing tests. - - * runtime/Heap.cpp: - (JSC::Heap::Heap): - (JSC::Heap::reset): - * runtime/Heap.h: - * runtime/MarkedSpace.cpp: - (JSC::MarkedSpace::allocate): - (JSC::MarkedSpace::sweep): - (JSC::MarkedSpace::reset): - * runtime/MarkedSpace.h: - -2011-02-04 Geoffrey Garen - - Try to fix 32bit build. - - * runtime/Heap.cpp: - (JSC::Heap::reset): Use an explicit cast to avoid shortening warnings, - since 1.5 is double (64bit), and the result is size_t (32bit). - -2011-02-03 Geoffrey Garen - - Reviewed by Cameron Zwarich. - - Changed MarkedSpace to delegate grow/shrink decisions to Heap - https://bugs.webkit.org/show_bug.cgi?id=53759 - - SunSpider reports no change. - - * runtime/Heap.cpp: - (JSC::Heap::Heap): - (JSC::Heap::reset): - * runtime/Heap.h: Reorganized a few data members for better cache locality. - Added a grow policy. - - * runtime/MarkedSpace.cpp: - (JSC::MarkedSpace::allocate): - (JSC::MarkedSpace::sweep): - (JSC::MarkedSpace::reset): Don't shrink automatically. Instead, wait for - the heap to make an explicit sweep call. - - * runtime/MarkedSpace.h: - (JSC::MarkedSpace::highWaterMark): - (JSC::MarkedSpace::setHighWaterMark): Use a watermark to determine how - many bytes to allocate before failing and giving the heap an opportunity - to collect garbage. This also means that we allocate blocks on demand, - instead of ahead of time. - -2011-02-03 James Kozianski - - Reviewed by Dimitri Glazkov. - - Add navigator.registerProtocolHandler behind a flag. - https://bugs.webkit.org/show_bug.cgi?id=52609 - - * Configurations/FeatureDefines.xcconfig: - -2011-02-03 Geoffrey Garen - - Reviewed by Oliver Hunt. - - Not all blocks are freed when the heap is freed (counting is hard!) - https://bugs.webkit.org/show_bug.cgi?id=53732 - - * runtime/MarkedSpace.cpp: - (JSC::MarkedSpace::destroy): Freeing a block compacts the list, so just - keep freeing block 0 until there are no blocks left. - -2011-02-03 Geoffrey Garen - - Try to fix the Mac build. - - * JavaScriptCore.xcodeproj/project.pbxproj: The new MarkedBlock.h header - needs to be private, not project, so other projects can include headers - that depend on it. + Make ScopeChainNode GC allocated + https://bugs.webkit.org/show_bug.cgi?id=55283 -2011-02-03 Geoffrey Garen + 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. - Reviewed by Sam Weinig. + * 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: - Start using MarkedBlock instead of CollectorBlock - https://bugs.webkit.org/show_bug.cgi?id=53693 - - SunSpider reports no change. - - * runtime/MarkedBlock.h: - (JSC::MarkedBlock::blockFor): - (JSC::MarkedBlock::setMarked): - (JSC::MarkedBlock::isCellAligned): - (JSC::MarkedBlock::isPossibleCell): Updated for const-ness. +2011-02-27 Adam Barth - * runtime/MarkedSpace.cpp: - (JSC::MarkedSpace::allocateBlock): - (JSC::MarkedSpace::containsSlowCase): - (JSC::MarkedSpace::clearMarkBits): Updated for const-ness. + Reviewed by Eric Seidel. - * runtime/MarkedSpace.h: - (JSC::CollectorHeap::collectorBlock): - (JSC::MarkedSpace::heap): - (JSC::MarkedSpace::isMarked): - (JSC::MarkedSpace::testAndSetMarked): - (JSC::MarkedSpace::setMarked): - (JSC::MarkedSpace::contains): Switched from CollectorBlock to MarkedBlock, - and deleted dead CollectorBlock-related code. + 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-03 Patrick Gansterer +2011-02-27 Benjamin Poulain Reviewed by Darin Adler. - Avoid strlen() in AtomicString::fromUTF8 - https://bugs.webkit.org/show_bug.cgi?id=50516 + Eliminate DeprecatedPtrList from RenderBlock + https://bugs.webkit.org/show_bug.cgi?id=54972 - Add an overload to calculateStringHashFromUTF8 to get - strlen() of the input data with only one call. + 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. - This change shows about 3% performance win on the xml-parser benchmark. + Add convenience methods for direct access to the head and tail of the list. + Those methods are providing similar API/behavior as Vector. - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: - * wtf/text/AtomicString.cpp: - (WTF::AtomicString::fromUTF8): - * wtf/unicode/UTF8.cpp: - (WTF::Unicode::calculateStringHashAndLengthFromUTF8Internal): - (WTF::Unicode::calculateStringHashFromUTF8): - (WTF::Unicode::calculateStringHashAndLengthFromUTF8): - * wtf/unicode/UTF8.h: + * wtf/ListHashSet.h: + (WTF::::first): + (WTF::::last): + (WTF::::removeLast): + (WTF::ListHashSetTranslatorAdapter::hash): + (WTF::ListHashSetTranslatorAdapter::equal): + (WTF::::find): + (WTF::::contains): -2011-02-02 Gavin Barraclough +2011-02-26 Patrick Gansterer - Windows build fix. + Reviewed by Andreas Kling. - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: + Add support for DragonFly BSD + https://bugs.webkit.org/show_bug.cgi?id=54407 -2011-02-02 Gavin Barraclough + DragonFly BSD is based on FreeBSD, so handle it like FreeBSD. - oops, build fix! + * wtf/Platform.h: - * wtf/Assertions.cpp: +2011-02-26 Adam Barth -2011-02-02 Gavin Barraclough + Reviewed by Dimitri Glazkov. - Reviewed by Sam Weinig. + 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 + + Reviewed by Nikolas Zimmermann. + + SH4 JIT SUPPORT + https://bugs.webkit.org/show_bug.cgi?id=44329 - Bug 53650 - Add a BACKTRACE macro to Assertions.h + Provide an ExecutableAllocater::cacheFlush() implementation for + Linux/SH4. - Add a BACKTRACE macro to Assertions.h, which will print a backtrace on - debug Mac builds, make CRASH (and thus ASSERT) automatically call this. + * jit/ExecutableAllocator.h: + (JSC::ExecutableAllocator::cacheFlush): + +2011-02-25 Sheriff Bot + + 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: - * wtf/Assertions.cpp: - * wtf/Assertions.h: + * 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-02 Michael Saboff +2011-02-25 Michael Saboff - Reviewed by Gavin Barraclough. + Reviewed by Darin Adler. - Improper backtrack of nested non-capturing greedy paren to prior paren - https://bugs.webkit.org/show_bug.cgi?id=53261 + Leak in JSParser::Scope of ScopeLabelInfo Vector + https://bugs.webkit.org/show_bug.cgi?id=55249 - A paren that follows a non-capturing greedy paren nested within a - non-capturing fixed paren was back tracking to the last paren - processed instead of the immediately prior paren. - Refactored default backtracking of parens to prior paren to work for - both nested (within) and immediately prior (after) parens. + Changed m_labels to be an OwnPtr<>. Added VectorTraits + and Scope copy constructor to support this change. - * yarr/YarrJIT.cpp: - (JSC::Yarr::YarrGenerator::GenerationState::addParenthesesTail): - (JSC::Yarr::YarrGenerator::TermGenerationState::TermGenerationState): - (JSC::Yarr::YarrGenerator::TermGenerationState::setJumpListToPriorParen): - (JSC::Yarr::YarrGenerator::TermGenerationState::getJumpListToPriorParen): - (JSC::Yarr::YarrGenerator::ParenthesesTail::ParenthesesTail): - (JSC::Yarr::YarrGenerator::ParenthesesTail::generateCode): - (JSC::Yarr::YarrGenerator::generateParenthesesDisjunction): - (JSC::Yarr::YarrGenerator::generateParenthesesSingle): - (JSC::Yarr::YarrGenerator::generateDisjunction): + * parser/JSParser.cpp: + (JSC::JSParser::Scope::~Scope): -2011-02-02 Jeff Miller +2011-02-25 Fumitoshi Ukai - Reviewed by Darin Adler and Steve Falkenburg. + Reviewed by Adam Barth. - Add DerivedSources.make to some Visual Studio projects - https://bugs.webkit.org/show_bug.cgi?id=53607 + WebSocket uses insecure random numbers + https://bugs.webkit.org/show_bug.cgi?id=54714 - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: Add DerivedSources.make. + * JavaScriptCore.exp: Export WTF::cryptographicallyRandomNumber() -2011-02-02 Steve Lacey +2011-02-25 Patrick Gansterer - Reviewed by Eric Carlson. + Reviewed by Adam Roben. - Implement basic media statistics on media elements. - https://bugs.webkit.org/show_bug.cgi?id=53322 + Move timeBeginPeriod into OS(WINDOWS) section + https://bugs.webkit.org/show_bug.cgi?id=55247 - * Configurations/FeatureDefines.xcconfig: + * jsc.cpp: + (main): timeBeginPeriod is available on all Windows versions and not compiler specific. -2011-02-02 Kevin Ollivier +2011-02-25 Patrick Gansterer - [wx] Build fixes for wxWebKit. + Unreviewed WinCE build fix for r79695. - * wtf/wx/StringWx.cpp: - (WTF::String::String): + * jsc.cpp: + (main): SetErrorMode isn't available on WinCE. -2011-02-01 Geoffrey Garen +2011-02-25 Adam Roben - Reviewed by Sam Weinig. + Work around Cygwin's crash-suppression behavior - A little more Heap refactoring - https://bugs.webkit.org/show_bug.cgi?id=53577 - - SunSpider reports no change. - - Split out MarkedBlock into its own file / class. - - Did the following renames: - isCellMarked => isMarked - checkMarkCell => testAndSetMarked - markCell => setMarked - cellOffset => cellNumber - collectorBlock => blockFor - - * Android.mk: - * CMakeLists.txt: - * GNUmakefile.am: - * JavaScriptCore.gypi: - * JavaScriptCore.pro: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: - * JavaScriptCore.xcodeproj/project.pbxproj: - * runtime/Heap.cpp: - (JSC::WeakGCHandlePool::update): - * runtime/Heap.h: - (JSC::Heap::isMarked): - (JSC::Heap::testAndSetMarked): - (JSC::Heap::setMarked): - * runtime/JSArray.h: - (JSC::MarkStack::markChildren): - (JSC::MarkStack::drain): - * runtime/JSCell.h: - (JSC::JSCell::MarkStack::internalAppend): - * runtime/MarkedBlock.cpp: Added. - * runtime/MarkedBlock.h: Added. - (JSC::MarkedBlock::blockFor): - (JSC::MarkedBlock::cellNumber): - (JSC::MarkedBlock::isMarked): - (JSC::MarkedBlock::testAndSetMarked): - (JSC::MarkedBlock::setMarked): - (JSC::MarkedBlock::isCellAligned): - (JSC::MarkedBlock::isPossibleCell): - * runtime/MarkedSpace.h: - (JSC::MarkedSpace::isMarked): - (JSC::MarkedSpace::testAndSetMarked): - (JSC::MarkedSpace::setMarked): - * runtime/SmallStrings.cpp: - (JSC::isMarked): - * runtime/WeakGCMap.h: - (JSC::WeakGCMap::isValid): - (JSC::::get): - (JSC::::take): - (JSC::::set): + 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 Test apps crash silently (without invoking post-mortem + debugger) when launched from Cygwin 1.7 -2011-02-02 Sam Weinig + Reviewed by Darin Adler. - Fix windows clean build. + * API/tests/testapi.c: Added a now-needed #include. + (main): + * jsc.cpp: + (main): + Call ::SetErrorMode(0) to undo Cygwin's folly. - * DerivedSources.make: + * 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::min/max. -2011-02-02 Alejandro G. Castro +2011-02-24 Adam Barth - Reviewed by Martin Robinson. + Reviewed by Eric Seidel. - [GTK] Fix dist compilation - https://bugs.webkit.org/show_bug.cgi?id=53579 + Add GYP project for JavaScriptCore + https://bugs.webkit.org/show_bug.cgi?id=55027 - * GNUmakefile.am: Added WriteBarrier.h to the sources, it was - added in r77151 + 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. -2011-02-01 Sheriff Bot + * gyp: Added. + * gyp/JavaScriptCore.gyp: Added. + * gyp/generate-derived-sources.sh: Added. - Unreviewed, rolling out r77297. - http://trac.webkit.org/changeset/77297 - https://bugs.webkit.org/show_bug.cgi?id=53538 +2011-02-24 Adam Barth - caused leopard crashes (Requested by paroga on #webkit). + Reviewed by Eric Seidel. - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: - * wtf/text/AtomicString.cpp: - (WTF::AtomicString::fromUTF8): - * wtf/unicode/UTF8.cpp: - (WTF::Unicode::calculateStringHashFromUTF8): - * wtf/unicode/UTF8.h: + Add missing files to JavaScriptCore.gypi + https://bugs.webkit.org/show_bug.cgi?id=55193 -2011-02-01 Sam Weinig + I forgot to add mm files in my previous patch. - Fix Mac production builds. + * JavaScriptCore.gyp/JavaScriptCore.gyp: + * JavaScriptCore.gypi: - * JavaScriptCore.xcodeproj/project.pbxproj: +2011-02-24 Adam Barth -2011-02-01 Sam Weinig + Reviewed by Eric Seidel. - Try to fix the windows build. + Remove unused parameter name in GCActivityCallback.cpp + https://bugs.webkit.org/show_bug.cgi?id=55194 - * DerivedSources.make: + This change is not strictly required for the GYP-based build system, + but I noticed this error when working on the new build system. -2011-02-01 Patrick Gansterer + * runtime/GCActivityCallback.cpp: + (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback): - Reviewed by Darin Adler. +2011-02-24 James Robinson - Avoid strlen() in AtomicString::fromUTF8 - https://bugs.webkit.org/show_bug.cgi?id=50516 + Reviewed by Darin Fisher. - Add an overload to calculateStringHashFromUTF8 to get - strlen() of the input data with only one call. + Add a USE() macro to control use of the built-in UTF8 codec + https://bugs.webkit.org/show_bug.cgi?id=55189 - This change shows about 3% performance win on the xml-parser benchmark. + Defaults USE(BUILTIN_UTF8_CODEC) to true for all platforms except chromium, which controls the flag via features.gypi. - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: - * wtf/text/AtomicString.cpp: - (WTF::AtomicString::fromUTF8): - * wtf/unicode/UTF8.cpp: - (WTF::Unicode::calculateStringHashAndLengthFromUTF8Internal): - (WTF::Unicode::calculateStringHashFromUTF8): - (WTF::Unicode::calculateStringHashAndLengthFromUTF8): - * wtf/unicode/UTF8.h: + * wtf/Platform.h: -2011-02-01 Sam Weinig +2011-02-24 Geoffrey Garen - Reviewed by Beth Dakin. + Reviewed by Darin Adler. - Part 2 for - Adopt WKScrollbarPainterController + Variable-sized allocation (but still capped at 64 bytes) + https://bugs.webkit.org/show_bug.cgi?id=55159 + + SunSpider reports no change. - Use header detection to define scrollbar painting controller #define. + * JavaScriptCore.exp: Some day, I hope not to have to edit this file. - * DerivedSources.make: - * JavaScriptCore.xcodeproj/project.pbxproj: + * 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. -2011-02-01 Geoffrey Garen + * runtime/Heap.h: Ditto. - Reviewed by Oliver Hunt. + * runtime/JSCell.h: + (JSC::JSCell::MarkedSpace::sizeClassFor): + (JSC::JSCell::Heap::allocate): + (JSC::JSCell::JSCell::operator new): The inlining mentioned above. - Refactor JSGlobalObject-related tear-down - https://bugs.webkit.org/show_bug.cgi?id=53478 + * 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.) - While investigating crashes caused by r77082, I noticed some strange - destructor-time behaviors. This patch makes them less strange. + * 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. - * bytecode/CodeBlock.cpp: - (JSC::CodeBlock::CodeBlock): - (JSC::CodeBlock::markAggregate): - * bytecode/CodeBlock.h: - (JSC::CodeBlock::globalObject): - (JSC::GlobalCodeBlock::GlobalCodeBlock): - (JSC::GlobalCodeBlock::~GlobalCodeBlock): Store the set of global code - blocks on the Heap, instead of on independent global objects. The heap - is guaranteed to outlast any GC-owned data structure. The heap is also - a natural place to store objects that needs out-of-band marking, since - the heap is responsible for marking all roots. + * runtime/MarkedSpace.h: + (JSC::MarkedSpace::SizeClass::SizeClass): Ditto. + +2011-02-23 Oliver Hunt + + 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::markRoots): (JSC::Heap::globalObjectCount): (JSC::Heap::protectedGlobalObjectCount): - * runtime/Heap.h: - (JSC::Heap::codeBlocks): * runtime/JSGlobalData.cpp: (JSC::JSGlobalData::JSGlobalData): * runtime/JSGlobalData.h: * runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::~JSGlobalObject): (JSC::JSGlobalObject::init): - (JSC::JSGlobalObject::markChildren): - * runtime/JSGlobalObject.h: - * runtime/MarkedSpace.cpp: Store the set of global objects in a weak map - owned by JSGlobalData, instead of an instrusive circular linked list. - This is simpler, and it avoids destructor-time access between garbage - collected objects, which is hard to get right. - - (JSC::MarkedSpace::destroy): Make sure to clear mark bits before tearing - everything down. Otherwise, weak data structures will incorrectly report - that objects pending destruction are still alive. + * 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 + + 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-01 Geoffrey Garen +2011-02-24 Michael Saboff Reviewed by Oliver Hunt. - REGRESSION(77082): GC-related crashes seen: on WebKit2 bot; on GTK 32bit - bot; loading trac pages; typing in search field - https://bugs.webkit.org/show_bug.cgi?id=53519 - - The crashes were all caused by failure to run an object's destructor. + PatternAlternative leaked in YarrPatternConstructor::atomParenthesesEnd() + https://bugs.webkit.org/show_bug.cgi?id=55156 - * runtime/CollectorHeapIterator.h: - (JSC::ObjectIterator::ObjectIterator): Don't skip forward upon - construction. The iterator class used to do that when it was designed - for prior-to-beginning initialization. I forgot to remove this line - of code when I changed the iterator to normal initialization. - - Skipping forward upon construction was causing the heap to skip running - the destructor for the very first object in a block when destroying the - block. This usually did not crash, since block destruction is rare and - most objects have pretty trivial destructors. However, in the rare case - when the heap would destroy a block whose first object was a global - object or a DOM node, BOOM. + Added code to delete unneeded PatternAlternative after it is removed + from m_alternatives Vector. -2011-01-31 Oliver Hunt + * yarr/YarrPattern.cpp: + (JSC::Yarr::YarrPatternConstructor::atomParenthesesEnd): - Reviewed by Geoffrey Garen. +2011-02-24 Eric Seidel - Update JSObject storage for new marking API - https://bugs.webkit.org/show_bug.cgi?id=53467 + Reviewed by Anders Carlsson. - JSObject no longer uses EncodedJSValue for its property storage. - This produces a stream of mechanical changes to PropertySlot and - anonymous storage APIs. + VectorBuffer should not call malloc(0) + https://bugs.webkit.org/show_bug.cgi?id=55091 - * JavaScriptCore.exp: - * runtime/ArrayPrototype.cpp: - (JSC::ArrayPrototype::ArrayPrototype): - * runtime/BooleanConstructor.cpp: - (JSC::constructBoolean): - (JSC::constructBooleanFromImmediateBoolean): - * runtime/BooleanObject.cpp: - (JSC::BooleanObject::BooleanObject): - * runtime/BooleanObject.h: - * runtime/BooleanPrototype.cpp: - (JSC::BooleanPrototype::BooleanPrototype): - * runtime/DateInstance.cpp: - (JSC::DateInstance::DateInstance): - * runtime/DatePrototype.cpp: - (JSC::DatePrototype::DatePrototype): - * runtime/JSActivation.cpp: - (JSC::JSActivation::getOwnPropertySlot): - * runtime/JSArray.cpp: - (JSC::JSArray::getOwnPropertySlot): - * runtime/JSFunction.cpp: - (JSC::JSFunction::getOwnPropertySlot): - * runtime/JSGlobalObject.h: - (JSC::JSGlobalObject::JSGlobalObject): - * runtime/JSObject.cpp: - (JSC::JSObject::fillGetterPropertySlot): - * runtime/JSObject.h: - (JSC::JSObject::getDirectLocation): - (JSC::JSObject::offsetForLocation): - (JSC::JSObject::putAnonymousValue): - (JSC::JSObject::clearAnonymousValue): - (JSC::JSObject::getAnonymousValue): - (JSC::JSObject::putThisToAnonymousValue): - (JSC::JSObject::locationForOffset): - (JSC::JSObject::inlineGetOwnPropertySlot): - * runtime/JSObjectWithGlobalObject.cpp: - (JSC::JSObjectWithGlobalObject::JSObjectWithGlobalObject): - * runtime/JSWrapperObject.h: - (JSC::JSWrapperObject::JSWrapperObject): - (JSC::JSWrapperObject::setInternalValue): - * runtime/Lookup.cpp: - (JSC::setUpStaticFunctionSlot): - * runtime/NumberConstructor.cpp: - (JSC::constructWithNumberConstructor): - * runtime/NumberObject.cpp: - (JSC::NumberObject::NumberObject): - (JSC::constructNumber): - * runtime/NumberObject.h: - * runtime/NumberPrototype.cpp: - (JSC::NumberPrototype::NumberPrototype): - * runtime/PropertySlot.h: - (JSC::PropertySlot::getValue): - (JSC::PropertySlot::setValue): - (JSC::PropertySlot::setRegisterSlot): - * runtime/StringObject.cpp: - (JSC::StringObject::StringObject): - * runtime/StringPrototype.cpp: - (JSC::StringPrototype::StringPrototype): - * runtime/WriteBarrier.h: - (JSC::WriteBarrierBase::setWithoutWriteBarrier): + Turns out the malloc() call which was so hot in: + https://bugs.webkit.org/show_bug.cgi?id=55005 + was actually just malloc(0). -2011-02-01 Daniel Bates + 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. - Reviewed by Antonio Gomes. + * wtf/Vector.h: + (WTF::VectorBufferBase::allocateBuffer): + (WTF::VectorBufferBase::tryAllocateBuffer): - Modify RandomNumberSeed.h to use USE(MERSENNE_TWISTER_19937) - https://bugs.webkit.org/show_bug.cgi?id=53506 +2011-02-24 Patrick Gansterer - Currently, use of the Mersenne Twister pseudorandom number generator - is hardcoded to the Windows CE port. With the passing of bug #53253, - we can generalize support for this PRNG to all ports that use srand(3) - and rand(3), including Windows CE. + Reviewed by Darin Adler. - * wtf/RandomNumberSeed.h: - (WTF::initializeRandomNumberGenerator): + Remove obsolete PLATFORM(CI) + https://bugs.webkit.org/show_bug.cgi?id=55082 -2011-02-01 Dave Tapuska + * wtf/Platform.h: - Reviewed by Gavin Barraclough. +2011-02-24 Martin Robinson - MacroAssemblerARM would generate code that did 32bit loads - on addresses that were not aligned. More specifically it would - generate a ldr r8,[r1, #7] which isn't valid on ARMv5 and lower. - The intended instruction really is ldrb r8,[r1, #7]; ensure we - call load8 instead of load32. + Reviewed by Xan Lopez. - https://bugs.webkit.org/show_bug.cgi?id=46095 + [GTK] Remove the GFile GOwnPtr specialization + https://bugs.webkit.org/show_bug.cgi?id=55154 - * assembler/MacroAssemblerARM.h: - (JSC::MacroAssemblerARM::set32Test32): - (JSC::MacroAssemblerARM::set32Test8): + Remove the GFile specialization of GOwnPtr. It's sufficient to use GRefPtr + to track GFiles since they are just regular reference-counted GObjects. -2011-02-01 Darin Fisher - - Reviewed by Eric Seidel. - - Fix some Visual Studio compiler warnings. - https://bugs.webkit.org/show_bug.cgi?id=53476 - - * wtf/MathExtras.h: - (clampToInteger): - (clampToPositiveInteger): - * wtf/ThreadingWin.cpp: - (WTF::absoluteTimeToWaitTimeoutInterval): - -2011-01-31 Oliver Hunt - - Reviewed by Sam Weinig. - - Bogus callframe during stack unwinding - https://bugs.webkit.org/show_bug.cgi?id=53454 - - Trying to access a callframe's globalData after destroying its - ScopeChain is not a good thing. While we could access the - globalData directly through the (known valid) scopechain we're - holding on to, it feels fragile. Instead we push the valid - ScopeChain onto the callframe again to ensure that the callframe - itself remains valid. - - * interpreter/Interpreter.cpp: - (JSC::Interpreter::unwindCallFrame): - -2011-01-31 Michael Saboff - - Reviewed by Geoffrey Garen. - - Potentially Unsafe HashSet of RuntimeObject* in RootObject definition - https://bugs.webkit.org/show_bug.cgi?id=53271 - - Reapplying this change again. - Changed isValid() to use .get() as a result of change r77151. - - Added new isValid() methods to check if a contained object in - a WeakGCMap is valid when using an unchecked iterator. - - * runtime/WeakGCMap.h: - (JSC::WeakGCMap::isValid): - -2011-01-31 Oliver Hunt - - Convert markstack to a slot visitor API - https://bugs.webkit.org/show_bug.cgi?id=53219 - - rolling r77098, r77099, r77100, r77109, and - r77111 back in, along with a few more Qt fix attempts. - - * API/JSCallbackObject.h: - (JSC::JSCallbackObjectData::setPrivateProperty): - (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty): - (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty): - (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren): - (JSC::JSCallbackObject::setPrivateProperty): - * API/JSCallbackObjectFunctions.h: - (JSC::::put): - (JSC::::staticFunctionGetter): - * API/JSObjectRef.cpp: - (JSObjectMakeConstructor): - (JSObjectSetPrivateProperty): - * API/JSWeakObjectMapRefInternal.h: - * JavaScriptCore.exp: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: - * JavaScriptCore.xcodeproj/project.pbxproj: - * bytecode/CodeBlock.cpp: - (JSC::CodeBlock::markAggregate): - * bytecode/CodeBlock.h: - (JSC::CodeBlock::globalObject): - * bytecompiler/BytecodeGenerator.cpp: - (JSC::BytecodeGenerator::BytecodeGenerator): - (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall): - (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply): - (JSC::BytecodeGenerator::findScopedProperty): - * debugger/Debugger.cpp: - (JSC::evaluateInGlobalCallFrame): - * debugger/DebuggerActivation.cpp: - (JSC::DebuggerActivation::DebuggerActivation): - (JSC::DebuggerActivation::markChildren): - * debugger/DebuggerActivation.h: - * debugger/DebuggerCallFrame.cpp: - (JSC::DebuggerCallFrame::evaluate): - * interpreter/CallFrame.h: - (JSC::ExecState::exception): - * interpreter/Interpreter.cpp: - (JSC::Interpreter::resolve): - (JSC::Interpreter::resolveSkip): - (JSC::Interpreter::resolveGlobal): - (JSC::Interpreter::resolveGlobalDynamic): - (JSC::Interpreter::resolveBaseAndProperty): - (JSC::Interpreter::unwindCallFrame): - (JSC::appendSourceToError): - (JSC::Interpreter::execute): - (JSC::Interpreter::tryCacheGetByID): - (JSC::Interpreter::privateExecute): - * jit/JITStubs.cpp: - (JSC::JITThunks::tryCacheGetByID): - (JSC::DEFINE_STUB_FUNCTION): - * jsc.cpp: - (GlobalObject::GlobalObject): - * runtime/ArgList.cpp: - (JSC::MarkedArgumentBuffer::markLists): - * runtime/Arguments.cpp: - (JSC::Arguments::markChildren): - (JSC::Arguments::getOwnPropertySlot): - (JSC::Arguments::getOwnPropertyDescriptor): - (JSC::Arguments::put): - * runtime/Arguments.h: - (JSC::Arguments::setActivation): - (JSC::Arguments::Arguments): - * runtime/ArrayConstructor.cpp: - (JSC::ArrayConstructor::ArrayConstructor): - (JSC::constructArrayWithSizeQuirk): - * runtime/ArrayPrototype.cpp: - (JSC::arrayProtoFuncSplice): - * runtime/BatchedTransitionOptimizer.h: - (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer): - (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer): - * runtime/BooleanConstructor.cpp: - (JSC::BooleanConstructor::BooleanConstructor): - (JSC::constructBoolean): - (JSC::constructBooleanFromImmediateBoolean): - * runtime/BooleanPrototype.cpp: - (JSC::BooleanPrototype::BooleanPrototype): - * runtime/ConservativeSet.cpp: - (JSC::ConservativeSet::grow): - * runtime/ConservativeSet.h: - (JSC::ConservativeSet::~ConservativeSet): - (JSC::ConservativeSet::mark): - * runtime/DateConstructor.cpp: - (JSC::DateConstructor::DateConstructor): - * runtime/DateInstance.cpp: - (JSC::DateInstance::DateInstance): - * runtime/DatePrototype.cpp: - (JSC::dateProtoFuncSetTime): - (JSC::setNewValueFromTimeArgs): - (JSC::setNewValueFromDateArgs): - (JSC::dateProtoFuncSetYear): - * runtime/ErrorConstructor.cpp: - (JSC::ErrorConstructor::ErrorConstructor): - * runtime/ErrorInstance.cpp: - (JSC::ErrorInstance::ErrorInstance): - * runtime/ErrorPrototype.cpp: - (JSC::ErrorPrototype::ErrorPrototype): - * runtime/FunctionConstructor.cpp: - (JSC::FunctionConstructor::FunctionConstructor): - * runtime/FunctionPrototype.cpp: - (JSC::FunctionPrototype::FunctionPrototype): - * runtime/GetterSetter.cpp: - (JSC::GetterSetter::markChildren): - * runtime/GetterSetter.h: - (JSC::GetterSetter::GetterSetter): - (JSC::GetterSetter::getter): - (JSC::GetterSetter::setGetter): - (JSC::GetterSetter::setter): - (JSC::GetterSetter::setSetter): - * runtime/GlobalEvalFunction.cpp: - (JSC::GlobalEvalFunction::GlobalEvalFunction): - (JSC::GlobalEvalFunction::markChildren): - * runtime/GlobalEvalFunction.h: - (JSC::GlobalEvalFunction::cachedGlobalObject): - * runtime/Heap.cpp: - (JSC::Heap::markProtectedObjects): - (JSC::Heap::markTempSortVectors): - (JSC::Heap::markRoots): - * runtime/InternalFunction.cpp: - (JSC::InternalFunction::InternalFunction): - * runtime/JSAPIValueWrapper.h: - (JSC::JSAPIValueWrapper::value): - (JSC::JSAPIValueWrapper::JSAPIValueWrapper): - * runtime/JSActivation.cpp: - (JSC::JSActivation::markChildren): - (JSC::JSActivation::put): - * runtime/JSArray.cpp: - (JSC::JSArray::JSArray): - (JSC::JSArray::getOwnPropertySlot): - (JSC::JSArray::getOwnPropertyDescriptor): - (JSC::JSArray::put): - (JSC::JSArray::putSlowCase): - (JSC::JSArray::deleteProperty): - (JSC::JSArray::increaseVectorLength): - (JSC::JSArray::setLength): - (JSC::JSArray::pop): - (JSC::JSArray::push): - (JSC::JSArray::unshiftCount): - (JSC::JSArray::sort): - (JSC::JSArray::fillArgList): - (JSC::JSArray::copyToRegisters): - (JSC::JSArray::compactForSorting): - * runtime/JSArray.h: - (JSC::JSArray::getIndex): - (JSC::JSArray::setIndex): - (JSC::JSArray::uncheckedSetIndex): - (JSC::JSArray::markChildrenDirect): - * runtime/JSByteArray.cpp: - (JSC::JSByteArray::JSByteArray): - * runtime/JSCell.h: - (JSC::JSCell::MarkStack::append): - (JSC::JSCell::MarkStack::internalAppend): - (JSC::JSCell::MarkStack::deprecatedAppend): - * runtime/JSFunction.cpp: - (JSC::JSFunction::JSFunction): - (JSC::JSFunction::getOwnPropertySlot): - * runtime/JSGlobalData.h: - * runtime/JSGlobalObject.cpp: - (JSC::markIfNeeded): - (JSC::JSGlobalObject::reset): - (JSC::JSGlobalObject::resetPrototype): - (JSC::JSGlobalObject::markChildren): - * runtime/JSGlobalObject.h: - (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData): - (JSC::JSGlobalObject::regExpConstructor): - (JSC::JSGlobalObject::errorConstructor): - (JSC::JSGlobalObject::evalErrorConstructor): - (JSC::JSGlobalObject::rangeErrorConstructor): - (JSC::JSGlobalObject::referenceErrorConstructor): - (JSC::JSGlobalObject::syntaxErrorConstructor): - (JSC::JSGlobalObject::typeErrorConstructor): - (JSC::JSGlobalObject::URIErrorConstructor): - (JSC::JSGlobalObject::evalFunction): - (JSC::JSGlobalObject::objectPrototype): - (JSC::JSGlobalObject::functionPrototype): - (JSC::JSGlobalObject::arrayPrototype): - (JSC::JSGlobalObject::booleanPrototype): - (JSC::JSGlobalObject::stringPrototype): - (JSC::JSGlobalObject::numberPrototype): - (JSC::JSGlobalObject::datePrototype): - (JSC::JSGlobalObject::regExpPrototype): - (JSC::JSGlobalObject::methodCallDummy): - (JSC::Structure::prototypeForLookup): - (JSC::constructArray): - * runtime/JSONObject.cpp: - (JSC::Stringifier::Holder::object): - (JSC::Stringifier::Holder::objectSlot): - (JSC::Stringifier::markAggregate): - (JSC::Stringifier::stringify): - (JSC::Stringifier::Holder::appendNextProperty): - (JSC::Walker::callReviver): - (JSC::Walker::walk): - * runtime/JSObject.cpp: - (JSC::JSObject::defineGetter): - (JSC::JSObject::defineSetter): - (JSC::JSObject::removeDirect): - (JSC::JSObject::putDirectFunction): - (JSC::JSObject::putDirectFunctionWithoutTransition): - (JSC::putDescriptor): - (JSC::JSObject::defineOwnProperty): - * runtime/JSObject.h: - (JSC::JSObject::getDirectOffset): - (JSC::JSObject::putDirectOffset): - (JSC::JSObject::putUndefinedAtDirectOffset): - (JSC::JSObject::flattenDictionaryObject): - (JSC::JSObject::putDirectInternal): - (JSC::JSObject::putDirect): - (JSC::JSObject::putDirectFunction): - (JSC::JSObject::putDirectWithoutTransition): - (JSC::JSObject::putDirectFunctionWithoutTransition): - (JSC::JSValue::putDirect): - (JSC::JSObject::allocatePropertyStorageInline): - (JSC::JSObject::markChildrenDirect): - * runtime/JSPropertyNameIterator.cpp: - (JSC::JSPropertyNameIterator::JSPropertyNameIterator): - (JSC::JSPropertyNameIterator::get): - * runtime/JSPropertyNameIterator.h: - * runtime/JSStaticScopeObject.cpp: - (JSC::JSStaticScopeObject::markChildren): - * runtime/JSString.cpp: - (JSC::StringObject::create): - * runtime/JSValue.h: - * runtime/JSWrapperObject.cpp: - (JSC::JSWrapperObject::markChildren): - * runtime/JSWrapperObject.h: - (JSC::JSWrapperObject::internalValue): - (JSC::JSWrapperObject::setInternalValue): - * runtime/LiteralParser.cpp: - (JSC::LiteralParser::parse): - * runtime/Lookup.cpp: - (JSC::setUpStaticFunctionSlot): - * runtime/Lookup.h: - (JSC::lookupPut): - * runtime/MarkStack.h: - (JSC::MarkStack::MarkStack): - (JSC::MarkStack::deprecatedAppendValues): - (JSC::MarkStack::appendValues): - * runtime/MathObject.cpp: - (JSC::MathObject::MathObject): - * runtime/NativeErrorConstructor.cpp: - (JSC::NativeErrorConstructor::NativeErrorConstructor): - * runtime/NativeErrorPrototype.cpp: - (JSC::NativeErrorPrototype::NativeErrorPrototype): - * runtime/NumberConstructor.cpp: - (JSC::NumberConstructor::NumberConstructor): - (JSC::constructWithNumberConstructor): - * runtime/NumberObject.cpp: - (JSC::constructNumber): - * runtime/NumberPrototype.cpp: - (JSC::NumberPrototype::NumberPrototype): - * runtime/ObjectConstructor.cpp: - (JSC::ObjectConstructor::ObjectConstructor): - (JSC::objectConstructorGetOwnPropertyDescriptor): - * runtime/Operations.h: - (JSC::normalizePrototypeChain): - (JSC::resolveBase): - * runtime/PrototypeFunction.cpp: - (JSC::PrototypeFunction::PrototypeFunction): - * runtime/PutPropertySlot.h: - (JSC::PutPropertySlot::setExistingProperty): - (JSC::PutPropertySlot::setNewProperty): - (JSC::PutPropertySlot::base): - * runtime/RegExpConstructor.cpp: - (JSC::RegExpConstructor::RegExpConstructor): - * runtime/ScopeChain.cpp: - (JSC::ScopeChainNode::print): - * runtime/ScopeChain.h: - (JSC::ScopeChainNode::~ScopeChainNode): - (JSC::ScopeChainIterator::operator*): - (JSC::ScopeChainIterator::operator->): - (JSC::ScopeChain::top): - * runtime/ScopeChainMark.h: - (JSC::ScopeChain::markAggregate): - * runtime/SmallStrings.cpp: - (JSC::isMarked): - (JSC::SmallStrings::markChildren): - * runtime/SmallStrings.h: - (JSC::SmallStrings::emptyString): - (JSC::SmallStrings::singleCharacterString): - (JSC::SmallStrings::singleCharacterStrings): - * runtime/StringConstructor.cpp: - (JSC::StringConstructor::StringConstructor): - * runtime/StringObject.cpp: - (JSC::StringObject::StringObject): - * runtime/StringObject.h: - * runtime/StringPrototype.cpp: - (JSC::StringPrototype::StringPrototype): - * runtime/Structure.cpp: - (JSC::Structure::Structure): - (JSC::Structure::addPropertyTransition): - (JSC::Structure::toDictionaryTransition): - (JSC::Structure::flattenDictionaryStructure): - * runtime/Structure.h: - (JSC::Structure::storedPrototype): - (JSC::Structure::storedPrototypeSlot): - * runtime/WeakGCMap.h: - (JSC::WeakGCMap::uncheckedGet): - (JSC::WeakGCMap::uncheckedGetSlot): - (JSC::::get): - (JSC::::take): - (JSC::::set): - (JSC::::uncheckedRemove): - * runtime/WriteBarrier.h: Added. - (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::WriteBarrier::WriteBarrier): - (JSC::operator==): - -2011-01-31 Dan Winship - - Reviewed by Gustavo Noronha Silva. - - wss (websockets ssl) support for gtk via new gio TLS support - https://bugs.webkit.org/show_bug.cgi?id=50344 - - Add a GPollableOutputStream typedef for TLS WebSockets support - - * wtf/gobject/GTypedefs.h: - -2011-01-31 Gavin Barraclough - - Reviewed by Geoff Garen. - - https://bugs.webkit.org/show_bug.cgi?id=53352 - Heavy external fragmentation in FixedVMPoolAllocator can lead to a CRASH(). - - The FixedVMPoolAllocator currently uses a best fix policy - - switch to first fit, this is less prone to external fragmentation. - - * jit/ExecutableAllocatorFixedVMPool.cpp: - (JSC::AllocationTableSizeClass::AllocationTableSizeClass): - (JSC::AllocationTableSizeClass::blockSize): - (JSC::AllocationTableSizeClass::blockCount): - (JSC::AllocationTableSizeClass::blockAlignment): - (JSC::AllocationTableSizeClass::size): - (JSC::AllocationTableLeaf::AllocationTableLeaf): - (JSC::AllocationTableLeaf::~AllocationTableLeaf): - (JSC::AllocationTableLeaf::allocate): - (JSC::AllocationTableLeaf::free): - (JSC::AllocationTableLeaf::isEmpty): - (JSC::AllocationTableLeaf::isFull): - (JSC::AllocationTableLeaf::size): - (JSC::AllocationTableLeaf::classForSize): - (JSC::AllocationTableLeaf::dump): - (JSC::LazyAllocationTable::LazyAllocationTable): - (JSC::LazyAllocationTable::~LazyAllocationTable): - (JSC::LazyAllocationTable::allocate): - (JSC::LazyAllocationTable::free): - (JSC::LazyAllocationTable::isEmpty): - (JSC::LazyAllocationTable::isFull): - (JSC::LazyAllocationTable::size): - (JSC::LazyAllocationTable::dump): - (JSC::LazyAllocationTable::classForSize): - (JSC::AllocationTableDirectory::AllocationTableDirectory): - (JSC::AllocationTableDirectory::~AllocationTableDirectory): - (JSC::AllocationTableDirectory::allocate): - (JSC::AllocationTableDirectory::free): - (JSC::AllocationTableDirectory::isEmpty): - (JSC::AllocationTableDirectory::isFull): - (JSC::AllocationTableDirectory::size): - (JSC::AllocationTableDirectory::classForSize): - (JSC::AllocationTableDirectory::dump): - (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator): - (JSC::FixedVMPoolAllocator::alloc): - (JSC::FixedVMPoolAllocator::free): - (JSC::FixedVMPoolAllocator::allocated): - (JSC::FixedVMPoolAllocator::isValid): - (JSC::FixedVMPoolAllocator::classForSize): - (JSC::FixedVMPoolAllocator::offsetToPointer): - (JSC::FixedVMPoolAllocator::pointerToOffset): - (JSC::ExecutableAllocator::committedByteCount): - (JSC::ExecutableAllocator::isValid): - (JSC::ExecutableAllocator::underMemoryPressure): - (JSC::ExecutablePool::systemAlloc): - (JSC::ExecutablePool::systemRelease): - * wtf/PageReservation.h: - (WTF::PageReservation::PageReservation): - (WTF::PageReservation::commit): - (WTF::PageReservation::decommit): - (WTF::PageReservation::committed): - -2011-01-31 Sheriff Bot - - Unreviewed, rolling out r76969. - http://trac.webkit.org/changeset/76969 - https://bugs.webkit.org/show_bug.cgi?id=53418 - - "It is causing crashes in GTK+ and Leopard bots" (Requested by - alexg__ on #webkit). - - * runtime/WeakGCMap.h: - -2011-01-30 Csaba Osztrogonác - - Unreviewed, rolling out r77098, r77099, r77100, r77109, and - r77111. - http://trac.webkit.org/changeset/77098 - http://trac.webkit.org/changeset/77099 - http://trac.webkit.org/changeset/77100 - http://trac.webkit.org/changeset/77109 - http://trac.webkit.org/changeset/77111 - https://bugs.webkit.org/show_bug.cgi?id=53219 - - Qt build is broken - - * API/JSCallbackObject.h: - (JSC::JSCallbackObjectData::setPrivateProperty): - (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty): - (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty): - (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren): - (JSC::JSCallbackObject::setPrivateProperty): - * API/JSCallbackObjectFunctions.h: - (JSC::::put): - (JSC::::staticFunctionGetter): - * API/JSObjectRef.cpp: - (JSObjectMakeConstructor): - (JSObjectSetPrivateProperty): - * API/JSWeakObjectMapRefInternal.h: - * JavaScriptCore.exp: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: - * JavaScriptCore.xcodeproj/project.pbxproj: - * bytecode/CodeBlock.cpp: - (JSC::CodeBlock::markAggregate): - * bytecode/CodeBlock.h: - (JSC::CodeBlock::globalObject): - * bytecompiler/BytecodeGenerator.cpp: - (JSC::BytecodeGenerator::BytecodeGenerator): - (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall): - (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply): - (JSC::BytecodeGenerator::findScopedProperty): - * debugger/Debugger.cpp: - (JSC::evaluateInGlobalCallFrame): - * debugger/DebuggerActivation.cpp: - (JSC::DebuggerActivation::DebuggerActivation): - (JSC::DebuggerActivation::markChildren): - * debugger/DebuggerActivation.h: - * debugger/DebuggerCallFrame.cpp: - (JSC::DebuggerCallFrame::evaluate): - * interpreter/CallFrame.h: - (JSC::ExecState::exception): - * interpreter/Interpreter.cpp: - (JSC::Interpreter::resolve): - (JSC::Interpreter::resolveSkip): - (JSC::Interpreter::resolveGlobal): - (JSC::Interpreter::resolveGlobalDynamic): - (JSC::Interpreter::resolveBaseAndProperty): - (JSC::Interpreter::unwindCallFrame): - (JSC::appendSourceToError): - (JSC::Interpreter::execute): - (JSC::Interpreter::tryCacheGetByID): - (JSC::Interpreter::privateExecute): - * jit/JITStubs.cpp: - (JSC::JITThunks::tryCacheGetByID): - (JSC::DEFINE_STUB_FUNCTION): - * jsc.cpp: - (GlobalObject::GlobalObject): - * runtime/ArgList.cpp: - (JSC::MarkedArgumentBuffer::markLists): - * runtime/Arguments.cpp: - (JSC::Arguments::markChildren): - (JSC::Arguments::getOwnPropertySlot): - (JSC::Arguments::getOwnPropertyDescriptor): - (JSC::Arguments::put): - * runtime/Arguments.h: - (JSC::Arguments::setActivation): - (JSC::Arguments::Arguments): - * runtime/ArrayConstructor.cpp: - (JSC::ArrayConstructor::ArrayConstructor): - (JSC::constructArrayWithSizeQuirk): - * runtime/ArrayPrototype.cpp: - (JSC::arrayProtoFuncSplice): - * runtime/BatchedTransitionOptimizer.h: - (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer): - (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer): - * runtime/BooleanConstructor.cpp: - (JSC::BooleanConstructor::BooleanConstructor): - (JSC::constructBoolean): - (JSC::constructBooleanFromImmediateBoolean): - * runtime/BooleanPrototype.cpp: - (JSC::BooleanPrototype::BooleanPrototype): - * runtime/ConservativeSet.cpp: - (JSC::ConservativeSet::grow): - * runtime/ConservativeSet.h: - (JSC::ConservativeSet::~ConservativeSet): - (JSC::ConservativeSet::mark): - * runtime/DateConstructor.cpp: - (JSC::DateConstructor::DateConstructor): - * runtime/DateInstance.cpp: - (JSC::DateInstance::DateInstance): - * runtime/DatePrototype.cpp: - (JSC::dateProtoFuncSetTime): - (JSC::setNewValueFromTimeArgs): - (JSC::setNewValueFromDateArgs): - (JSC::dateProtoFuncSetYear): - * runtime/ErrorConstructor.cpp: - (JSC::ErrorConstructor::ErrorConstructor): - * runtime/ErrorInstance.cpp: - (JSC::ErrorInstance::ErrorInstance): - * runtime/ErrorPrototype.cpp: - (JSC::ErrorPrototype::ErrorPrototype): - * runtime/FunctionConstructor.cpp: - (JSC::FunctionConstructor::FunctionConstructor): - * runtime/FunctionPrototype.cpp: - (JSC::FunctionPrototype::FunctionPrototype): - * runtime/GetterSetter.cpp: - (JSC::GetterSetter::markChildren): - * runtime/GetterSetter.h: - (JSC::GetterSetter::GetterSetter): - (JSC::GetterSetter::getter): - (JSC::GetterSetter::setGetter): - (JSC::GetterSetter::setter): - (JSC::GetterSetter::setSetter): - * runtime/GlobalEvalFunction.cpp: - (JSC::GlobalEvalFunction::GlobalEvalFunction): - (JSC::GlobalEvalFunction::markChildren): - * runtime/GlobalEvalFunction.h: - (JSC::GlobalEvalFunction::cachedGlobalObject): - * runtime/Heap.cpp: - (JSC::Heap::markProtectedObjects): - (JSC::Heap::markTempSortVectors): - (JSC::Heap::markRoots): - * runtime/InternalFunction.cpp: - (JSC::InternalFunction::InternalFunction): - * runtime/JSAPIValueWrapper.h: - (JSC::JSAPIValueWrapper::value): - (JSC::JSAPIValueWrapper::JSAPIValueWrapper): - * runtime/JSActivation.cpp: - (JSC::JSActivation::markChildren): - (JSC::JSActivation::put): - * runtime/JSArray.cpp: - (JSC::JSArray::JSArray): - (JSC::JSArray::getOwnPropertySlot): - (JSC::JSArray::getOwnPropertyDescriptor): - (JSC::JSArray::put): - (JSC::JSArray::putSlowCase): - (JSC::JSArray::deleteProperty): - (JSC::JSArray::increaseVectorLength): - (JSC::JSArray::setLength): - (JSC::JSArray::pop): - (JSC::JSArray::push): - (JSC::JSArray::unshiftCount): - (JSC::JSArray::sort): - (JSC::JSArray::fillArgList): - (JSC::JSArray::copyToRegisters): - (JSC::JSArray::compactForSorting): - * runtime/JSArray.h: - (JSC::JSArray::getIndex): - (JSC::JSArray::setIndex): - (JSC::JSArray::uncheckedSetIndex): - (JSC::JSArray::markChildrenDirect): - * runtime/JSByteArray.cpp: - (JSC::JSByteArray::JSByteArray): - * runtime/JSCell.h: - (JSC::JSCell::JSValue::toThisObject): - (JSC::JSCell::MarkStack::append): - * runtime/JSFunction.cpp: - (JSC::JSFunction::JSFunction): - (JSC::JSFunction::getOwnPropertySlot): - * runtime/JSGlobalData.h: - * runtime/JSGlobalObject.cpp: - (JSC::markIfNeeded): - (JSC::JSGlobalObject::reset): - (JSC::JSGlobalObject::resetPrototype): - (JSC::JSGlobalObject::markChildren): - * runtime/JSGlobalObject.h: - (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData): - (JSC::JSGlobalObject::regExpConstructor): - (JSC::JSGlobalObject::errorConstructor): - (JSC::JSGlobalObject::evalErrorConstructor): - (JSC::JSGlobalObject::rangeErrorConstructor): - (JSC::JSGlobalObject::referenceErrorConstructor): - (JSC::JSGlobalObject::syntaxErrorConstructor): - (JSC::JSGlobalObject::typeErrorConstructor): - (JSC::JSGlobalObject::URIErrorConstructor): - (JSC::JSGlobalObject::evalFunction): - (JSC::JSGlobalObject::objectPrototype): - (JSC::JSGlobalObject::functionPrototype): - (JSC::JSGlobalObject::arrayPrototype): - (JSC::JSGlobalObject::booleanPrototype): - (JSC::JSGlobalObject::stringPrototype): - (JSC::JSGlobalObject::numberPrototype): - (JSC::JSGlobalObject::datePrototype): - (JSC::JSGlobalObject::regExpPrototype): - (JSC::JSGlobalObject::methodCallDummy): - (JSC::Structure::prototypeForLookup): - (JSC::constructArray): - * runtime/JSONObject.cpp: - (JSC::Stringifier::Holder::object): - (JSC::Stringifier::markAggregate): - (JSC::Stringifier::stringify): - (JSC::Stringifier::Holder::appendNextProperty): - (JSC::Walker::callReviver): - (JSC::Walker::walk): - * runtime/JSObject.cpp: - (JSC::JSObject::defineGetter): - (JSC::JSObject::defineSetter): - (JSC::JSObject::removeDirect): - (JSC::JSObject::putDirectFunction): - (JSC::JSObject::putDirectFunctionWithoutTransition): - (JSC::putDescriptor): - (JSC::JSObject::defineOwnProperty): - * runtime/JSObject.h: - (JSC::JSObject::getDirectOffset): - (JSC::JSObject::putDirectOffset): - (JSC::JSObject::flattenDictionaryObject): - (JSC::JSObject::putDirectInternal): - (JSC::JSObject::putDirect): - (JSC::JSObject::putDirectFunction): - (JSC::JSObject::putDirectWithoutTransition): - (JSC::JSObject::putDirectFunctionWithoutTransition): - (JSC::JSValue::putDirect): - (JSC::JSObject::allocatePropertyStorageInline): - (JSC::JSObject::markChildrenDirect): - * runtime/JSPropertyNameIterator.cpp: - (JSC::JSPropertyNameIterator::JSPropertyNameIterator): - (JSC::JSPropertyNameIterator::get): - * runtime/JSPropertyNameIterator.h: - * runtime/JSStaticScopeObject.cpp: - (JSC::JSStaticScopeObject::markChildren): - * runtime/JSString.cpp: - (JSC::StringObject::create): - * runtime/JSValue.h: - * runtime/JSWrapperObject.cpp: - (JSC::JSWrapperObject::markChildren): - * runtime/JSWrapperObject.h: - (JSC::JSWrapperObject::internalValue): - (JSC::JSWrapperObject::setInternalValue): - * runtime/LiteralParser.cpp: - (JSC::LiteralParser::parse): - * runtime/Lookup.cpp: - (JSC::setUpStaticFunctionSlot): - * runtime/Lookup.h: - (JSC::lookupPut): - * runtime/MarkStack.h: - (JSC::MarkStack::appendValues): - * runtime/MathObject.cpp: - (JSC::MathObject::MathObject): - * runtime/NativeErrorConstructor.cpp: - (JSC::NativeErrorConstructor::NativeErrorConstructor): - * runtime/NativeErrorPrototype.cpp: - (JSC::NativeErrorPrototype::NativeErrorPrototype): - * runtime/NumberConstructor.cpp: - (JSC::NumberConstructor::NumberConstructor): - (JSC::constructWithNumberConstructor): - * runtime/NumberObject.cpp: - (JSC::constructNumber): - * runtime/NumberPrototype.cpp: - (JSC::NumberPrototype::NumberPrototype): - * runtime/ObjectConstructor.cpp: - (JSC::ObjectConstructor::ObjectConstructor): - (JSC::objectConstructorGetOwnPropertyDescriptor): - * runtime/Operations.h: - (JSC::normalizePrototypeChain): - (JSC::resolveBase): - * runtime/PrototypeFunction.cpp: - (JSC::PrototypeFunction::PrototypeFunction): - * runtime/PutPropertySlot.h: - (JSC::PutPropertySlot::setExistingProperty): - (JSC::PutPropertySlot::setNewProperty): - (JSC::PutPropertySlot::base): - * runtime/RegExpConstructor.cpp: - (JSC::RegExpConstructor::RegExpConstructor): - * runtime/ScopeChain.cpp: - (JSC::ScopeChainNode::print): - * runtime/ScopeChain.h: - (JSC::ScopeChainNode::~ScopeChainNode): - (JSC::ScopeChainIterator::operator*): - (JSC::ScopeChainIterator::operator->): - (JSC::ScopeChain::top): - * runtime/ScopeChainMark.h: - (JSC::ScopeChain::markAggregate): - * runtime/SmallStrings.cpp: - (JSC::isMarked): - (JSC::SmallStrings::markChildren): - * runtime/SmallStrings.h: - (JSC::SmallStrings::emptyString): - (JSC::SmallStrings::singleCharacterString): - (JSC::SmallStrings::singleCharacterStrings): - * runtime/StringConstructor.cpp: - (JSC::StringConstructor::StringConstructor): - * runtime/StringObject.cpp: - (JSC::StringObject::StringObject): - * runtime/StringObject.h: - * runtime/StringPrototype.cpp: - (JSC::StringPrototype::StringPrototype): - * runtime/Structure.cpp: - (JSC::Structure::Structure): - (JSC::Structure::addPropertyTransition): - (JSC::Structure::toDictionaryTransition): - (JSC::Structure::flattenDictionaryStructure): - * runtime/Structure.h: - (JSC::Structure::storedPrototype): - * runtime/WeakGCMap.h: - (JSC::WeakGCMap::uncheckedGet): - (JSC::WeakGCMap::isValid): - (JSC::::get): - (JSC::::take): - (JSC::::set): - (JSC::::uncheckedRemove): - * runtime/WriteBarrier.h: Removed. - -2011-01-30 Simon Fraser - - Build fix the build fix. I assume Oliver meant m_cell, not m_value. - - * runtime/WriteBarrier.h: - (JSC::WriteBarrierBase::clear): - -2011-01-30 Oliver Hunt - - More Qt build fixes - - * runtime/WriteBarrier.h: - (JSC::WriteBarrierBase::clear): - -2011-01-30 Oliver Hunt - - Convert markstack to a slot visitor API - https://bugs.webkit.org/show_bug.cgi?id=53219 - - rolling r77006 and r77020 back in. - - * API/JSCallbackObject.h: - (JSC::JSCallbackObjectData::setPrivateProperty): - (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty): - (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty): - (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren): - (JSC::JSCallbackObject::setPrivateProperty): - * API/JSCallbackObjectFunctions.h: - (JSC::::put): - (JSC::::staticFunctionGetter): - * API/JSObjectRef.cpp: - (JSObjectMakeConstructor): - (JSObjectSetPrivateProperty): - * API/JSWeakObjectMapRefInternal.h: - * JavaScriptCore.exp: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: - * JavaScriptCore.xcodeproj/project.pbxproj: - * bytecode/CodeBlock.cpp: - (JSC::CodeBlock::markAggregate): - * bytecode/CodeBlock.h: - (JSC::CodeBlock::globalObject): - * bytecompiler/BytecodeGenerator.cpp: - (JSC::BytecodeGenerator::BytecodeGenerator): - (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall): - (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply): - (JSC::BytecodeGenerator::findScopedProperty): - * debugger/Debugger.cpp: - (JSC::evaluateInGlobalCallFrame): - * debugger/DebuggerActivation.cpp: - (JSC::DebuggerActivation::DebuggerActivation): - (JSC::DebuggerActivation::markChildren): - * debugger/DebuggerActivation.h: - * debugger/DebuggerCallFrame.cpp: - (JSC::DebuggerCallFrame::evaluate): - * interpreter/CallFrame.h: - (JSC::ExecState::exception): - * interpreter/Interpreter.cpp: - (JSC::Interpreter::resolve): - (JSC::Interpreter::resolveSkip): - (JSC::Interpreter::resolveGlobal): - (JSC::Interpreter::resolveGlobalDynamic): - (JSC::Interpreter::resolveBaseAndProperty): - (JSC::Interpreter::unwindCallFrame): - (JSC::appendSourceToError): - (JSC::Interpreter::execute): - (JSC::Interpreter::tryCacheGetByID): - (JSC::Interpreter::privateExecute): - * jit/JITStubs.cpp: - (JSC::JITThunks::tryCacheGetByID): - (JSC::DEFINE_STUB_FUNCTION): - * jsc.cpp: - (GlobalObject::GlobalObject): - * runtime/ArgList.cpp: - (JSC::MarkedArgumentBuffer::markLists): - * runtime/Arguments.cpp: - (JSC::Arguments::markChildren): - (JSC::Arguments::getOwnPropertySlot): - (JSC::Arguments::getOwnPropertyDescriptor): - (JSC::Arguments::put): - * runtime/Arguments.h: - (JSC::Arguments::setActivation): - (JSC::Arguments::Arguments): - * runtime/ArrayConstructor.cpp: - (JSC::ArrayConstructor::ArrayConstructor): - (JSC::constructArrayWithSizeQuirk): - * runtime/ArrayPrototype.cpp: - (JSC::arrayProtoFuncSplice): - * runtime/BatchedTransitionOptimizer.h: - (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer): - (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer): - * runtime/BooleanConstructor.cpp: - (JSC::BooleanConstructor::BooleanConstructor): - (JSC::constructBoolean): - (JSC::constructBooleanFromImmediateBoolean): - * runtime/BooleanPrototype.cpp: - (JSC::BooleanPrototype::BooleanPrototype): - * runtime/ConservativeSet.cpp: - (JSC::ConservativeSet::grow): - * runtime/ConservativeSet.h: - (JSC::ConservativeSet::~ConservativeSet): - (JSC::ConservativeSet::mark): - * runtime/DateConstructor.cpp: - (JSC::DateConstructor::DateConstructor): - * runtime/DateInstance.cpp: - (JSC::DateInstance::DateInstance): - * runtime/DatePrototype.cpp: - (JSC::dateProtoFuncSetTime): - (JSC::setNewValueFromTimeArgs): - (JSC::setNewValueFromDateArgs): - (JSC::dateProtoFuncSetYear): - * runtime/ErrorConstructor.cpp: - (JSC::ErrorConstructor::ErrorConstructor): - * runtime/ErrorInstance.cpp: - (JSC::ErrorInstance::ErrorInstance): - * runtime/ErrorPrototype.cpp: - (JSC::ErrorPrototype::ErrorPrototype): - * runtime/FunctionConstructor.cpp: - (JSC::FunctionConstructor::FunctionConstructor): - * runtime/FunctionPrototype.cpp: - (JSC::FunctionPrototype::FunctionPrototype): - * runtime/GetterSetter.cpp: - (JSC::GetterSetter::markChildren): - * runtime/GetterSetter.h: - (JSC::GetterSetter::GetterSetter): - (JSC::GetterSetter::getter): - (JSC::GetterSetter::setGetter): - (JSC::GetterSetter::setter): - (JSC::GetterSetter::setSetter): - * runtime/GlobalEvalFunction.cpp: - (JSC::GlobalEvalFunction::GlobalEvalFunction): - (JSC::GlobalEvalFunction::markChildren): - * runtime/GlobalEvalFunction.h: - (JSC::GlobalEvalFunction::cachedGlobalObject): - * runtime/Heap.cpp: - (JSC::Heap::markProtectedObjects): - (JSC::Heap::markTempSortVectors): - (JSC::Heap::markRoots): - * runtime/InternalFunction.cpp: - (JSC::InternalFunction::InternalFunction): - * runtime/JSAPIValueWrapper.h: - (JSC::JSAPIValueWrapper::value): - (JSC::JSAPIValueWrapper::JSAPIValueWrapper): - * runtime/JSActivation.cpp: - (JSC::JSActivation::markChildren): - (JSC::JSActivation::put): - * runtime/JSArray.cpp: - (JSC::JSArray::JSArray): - (JSC::JSArray::getOwnPropertySlot): - (JSC::JSArray::getOwnPropertyDescriptor): - (JSC::JSArray::put): - (JSC::JSArray::putSlowCase): - (JSC::JSArray::deleteProperty): - (JSC::JSArray::increaseVectorLength): - (JSC::JSArray::setLength): - (JSC::JSArray::pop): - (JSC::JSArray::push): - (JSC::JSArray::unshiftCount): - (JSC::JSArray::sort): - (JSC::JSArray::fillArgList): - (JSC::JSArray::copyToRegisters): - (JSC::JSArray::compactForSorting): - * runtime/JSArray.h: - (JSC::JSArray::getIndex): - (JSC::JSArray::setIndex): - (JSC::JSArray::uncheckedSetIndex): - (JSC::JSArray::markChildrenDirect): - * runtime/JSByteArray.cpp: - (JSC::JSByteArray::JSByteArray): - * runtime/JSCell.h: - (JSC::JSCell::MarkStack::append): - (JSC::JSCell::MarkStack::internalAppend): - (JSC::JSCell::MarkStack::deprecatedAppend): - * runtime/JSFunction.cpp: - (JSC::JSFunction::JSFunction): - (JSC::JSFunction::getOwnPropertySlot): - * runtime/JSGlobalData.h: - * runtime/JSGlobalObject.cpp: - (JSC::markIfNeeded): - (JSC::JSGlobalObject::reset): - (JSC::JSGlobalObject::resetPrototype): - (JSC::JSGlobalObject::markChildren): - * runtime/JSGlobalObject.h: - (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData): - (JSC::JSGlobalObject::regExpConstructor): - (JSC::JSGlobalObject::errorConstructor): - (JSC::JSGlobalObject::evalErrorConstructor): - (JSC::JSGlobalObject::rangeErrorConstructor): - (JSC::JSGlobalObject::referenceErrorConstructor): - (JSC::JSGlobalObject::syntaxErrorConstructor): - (JSC::JSGlobalObject::typeErrorConstructor): - (JSC::JSGlobalObject::URIErrorConstructor): - (JSC::JSGlobalObject::evalFunction): - (JSC::JSGlobalObject::objectPrototype): - (JSC::JSGlobalObject::functionPrototype): - (JSC::JSGlobalObject::arrayPrototype): - (JSC::JSGlobalObject::booleanPrototype): - (JSC::JSGlobalObject::stringPrototype): - (JSC::JSGlobalObject::numberPrototype): - (JSC::JSGlobalObject::datePrototype): - (JSC::JSGlobalObject::regExpPrototype): - (JSC::JSGlobalObject::methodCallDummy): - (JSC::Structure::prototypeForLookup): - (JSC::constructArray): - * runtime/JSONObject.cpp: - (JSC::Stringifier::Holder::object): - (JSC::Stringifier::Holder::objectSlot): - (JSC::Stringifier::markAggregate): - (JSC::Stringifier::stringify): - (JSC::Stringifier::Holder::appendNextProperty): - (JSC::Walker::callReviver): - (JSC::Walker::walk): - * runtime/JSObject.cpp: - (JSC::JSObject::defineGetter): - (JSC::JSObject::defineSetter): - (JSC::JSObject::removeDirect): - (JSC::JSObject::putDirectFunction): - (JSC::JSObject::putDirectFunctionWithoutTransition): - (JSC::putDescriptor): - (JSC::JSObject::defineOwnProperty): - * runtime/JSObject.h: - (JSC::JSObject::getDirectOffset): - (JSC::JSObject::putDirectOffset): - (JSC::JSObject::putUndefinedAtDirectOffset): - (JSC::JSObject::flattenDictionaryObject): - (JSC::JSObject::putDirectInternal): - (JSC::JSObject::putDirect): - (JSC::JSObject::putDirectFunction): - (JSC::JSObject::putDirectWithoutTransition): - (JSC::JSObject::putDirectFunctionWithoutTransition): - (JSC::JSValue::putDirect): - (JSC::JSObject::allocatePropertyStorageInline): - (JSC::JSObject::markChildrenDirect): - * runtime/JSPropertyNameIterator.cpp: - (JSC::JSPropertyNameIterator::JSPropertyNameIterator): - (JSC::JSPropertyNameIterator::get): - * runtime/JSPropertyNameIterator.h: - * runtime/JSStaticScopeObject.cpp: - (JSC::JSStaticScopeObject::markChildren): - * runtime/JSString.cpp: - (JSC::StringObject::create): - * runtime/JSValue.h: - * runtime/JSWrapperObject.cpp: - (JSC::JSWrapperObject::markChildren): - * runtime/JSWrapperObject.h: - (JSC::JSWrapperObject::internalValue): - (JSC::JSWrapperObject::setInternalValue): - * runtime/LiteralParser.cpp: - (JSC::LiteralParser::parse): - * runtime/Lookup.cpp: - (JSC::setUpStaticFunctionSlot): - * runtime/Lookup.h: - (JSC::lookupPut): - * runtime/MarkStack.h: - (JSC::MarkStack::MarkStack): - (JSC::MarkStack::deprecatedAppendValues): - (JSC::MarkStack::appendValues): - * runtime/MathObject.cpp: - (JSC::MathObject::MathObject): - * runtime/NativeErrorConstructor.cpp: - (JSC::NativeErrorConstructor::NativeErrorConstructor): - * runtime/NativeErrorPrototype.cpp: - (JSC::NativeErrorPrototype::NativeErrorPrototype): - * runtime/NumberConstructor.cpp: - (JSC::NumberConstructor::NumberConstructor): - (JSC::constructWithNumberConstructor): - * runtime/NumberObject.cpp: - (JSC::constructNumber): - * runtime/NumberPrototype.cpp: - (JSC::NumberPrototype::NumberPrototype): - * runtime/ObjectConstructor.cpp: - (JSC::ObjectConstructor::ObjectConstructor): - (JSC::objectConstructorGetOwnPropertyDescriptor): - * runtime/Operations.h: - (JSC::normalizePrototypeChain): - (JSC::resolveBase): - * runtime/PrototypeFunction.cpp: - (JSC::PrototypeFunction::PrototypeFunction): - * runtime/PutPropertySlot.h: - (JSC::PutPropertySlot::setExistingProperty): - (JSC::PutPropertySlot::setNewProperty): - (JSC::PutPropertySlot::base): - * runtime/RegExpConstructor.cpp: - (JSC::RegExpConstructor::RegExpConstructor): - * runtime/ScopeChain.cpp: - (JSC::ScopeChainNode::print): - * runtime/ScopeChain.h: - (JSC::ScopeChainNode::~ScopeChainNode): - (JSC::ScopeChainIterator::operator*): - (JSC::ScopeChainIterator::operator->): - (JSC::ScopeChain::top): - * runtime/ScopeChainMark.h: - (JSC::ScopeChain::markAggregate): - * runtime/SmallStrings.cpp: - (JSC::isMarked): - (JSC::SmallStrings::markChildren): - * runtime/SmallStrings.h: - (JSC::SmallStrings::emptyString): - (JSC::SmallStrings::singleCharacterString): - (JSC::SmallStrings::singleCharacterStrings): - * runtime/StringConstructor.cpp: - (JSC::StringConstructor::StringConstructor): - * runtime/StringObject.cpp: - (JSC::StringObject::StringObject): - * runtime/StringObject.h: - * runtime/StringPrototype.cpp: - (JSC::StringPrototype::StringPrototype): - * runtime/Structure.cpp: - (JSC::Structure::Structure): - (JSC::Structure::addPropertyTransition): - (JSC::Structure::toDictionaryTransition): - (JSC::Structure::flattenDictionaryStructure): - * runtime/Structure.h: - (JSC::Structure::storedPrototype): - (JSC::Structure::storedPrototypeSlot): - * runtime/WeakGCMap.h: - (JSC::WeakGCMap::uncheckedGet): - (JSC::WeakGCMap::uncheckedGetSlot): - (JSC::WeakGCMap::isValid): - (JSC::::get): - (JSC::::take): - (JSC::::set): - (JSC::::uncheckedRemove): - * runtime/WriteBarrier.h: Added. - (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::slot): - (JSC::WriteBarrierBase::operator UnspecifiedBoolType*): - (JSC::WriteBarrierBase::operator!): - (JSC::WriteBarrier::WriteBarrier): - (JSC::operator==): - -2011-01-30 Geoffrey Garen - - Reviewed by Oliver Hunt. - - Filter all Heap collection through a common reset function, in - preparation for adding features triggered by collection. - https://bugs.webkit.org/show_bug.cgi?id=53396 - - SunSpider reports no change. - - * runtime/Heap.cpp: - (JSC::Heap::reportExtraMemoryCostSlowCase): When we're over the extraCost - limit, just call collectAllGarbage() instead of rolling our own special - way of resetting the heap. In theory, this may be slower in some cases, - but it also fixes cases of pathological heap growth that we've seen, - where the only objects being allocated are temporary and huge - (). - - (JSC::Heap::allocate): - (JSC::Heap::collectAllGarbage): Use the shared reset function. - - (JSC::Heap::reset): - * runtime/Heap.h: Carved a new shared reset function out of the old - collectAllGarbage. - -2011-01-30 Sheriff Bot - - Unreviewed, rolling out r77025. - http://trac.webkit.org/changeset/77025 - https://bugs.webkit.org/show_bug.cgi?id=53401 - - It made js1_5/Regress/regress-159334.js fail on 64 bit Linux - (Requested by Ossy on #webkit). - - * jit/ExecutableAllocatorFixedVMPool.cpp: - (JSC::FreeListEntry::FreeListEntry): - (JSC::AVLTreeAbstractorForFreeList::get_less): - (JSC::AVLTreeAbstractorForFreeList::set_less): - (JSC::AVLTreeAbstractorForFreeList::get_greater): - (JSC::AVLTreeAbstractorForFreeList::set_greater): - (JSC::AVLTreeAbstractorForFreeList::get_balance_factor): - (JSC::AVLTreeAbstractorForFreeList::set_balance_factor): - (JSC::AVLTreeAbstractorForFreeList::null): - (JSC::AVLTreeAbstractorForFreeList::compare_key_key): - (JSC::AVLTreeAbstractorForFreeList::compare_key_node): - (JSC::AVLTreeAbstractorForFreeList::compare_node_node): - (JSC::reverseSortFreeListEntriesByPointer): - (JSC::reverseSortCommonSizedAllocations): - (JSC::FixedVMPoolAllocator::release): - (JSC::FixedVMPoolAllocator::reuse): - (JSC::FixedVMPoolAllocator::addToFreeList): - (JSC::FixedVMPoolAllocator::coalesceFreeSpace): - (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator): - (JSC::FixedVMPoolAllocator::alloc): - (JSC::FixedVMPoolAllocator::free): - (JSC::FixedVMPoolAllocator::isValid): - (JSC::FixedVMPoolAllocator::allocInternal): - (JSC::FixedVMPoolAllocator::isWithinVMPool): - (JSC::FixedVMPoolAllocator::addToCommittedByteCount): - (JSC::ExecutableAllocator::committedByteCount): - (JSC::maybeModifyVMPoolSize): - (JSC::ExecutableAllocator::isValid): - (JSC::ExecutableAllocator::underMemoryPressure): - (JSC::ExecutablePool::systemAlloc): - (JSC::ExecutablePool::systemRelease): - * wtf/PageReservation.h: - (WTF::PageReservation::PageReservation): - (WTF::PageReservation::commit): - (WTF::PageReservation::decommit): - -2011-01-30 Leo Yang - - Reviewed by Daniel Bates. - - Code style issue in JavaScriptCore/wtf/CurrentTime.h - https://bugs.webkit.org/show_bug.cgi?id=53394 - - According to rule #3 at http://webkit.org/coding/coding-style.html, - This patch fix style issue in CurrentTime.h. - - No functionality change, no new tests. - - * wtf/CurrentTime.h: - (WTF::currentTimeMS): - (WTF::getLocalTime): - -2011-01-30 Benjamin Poulain - - Reviewed by Kenneth Rohde Christiansen. - - [Qt] JavaScriptCore does not link on Mac if building WebKit 2 - https://bugs.webkit.org/show_bug.cgi?id=53377 - - The option "-whole-archive" is not availabe with the libtool of Mac OS X, - instead, we can use "-all_load" on Mac. - - * JavaScriptCore.pri: - -2011-01-29 Geoffrey Garen - - Sorry Leopard bot -- I committed a change by accident. - - * JavaScriptCore.exp: You may have your symbols back now. - -2011-01-29 Geoffrey Garen - - Reviewed by Cameron Zwarich. - - Simplified Heap iteration - https://bugs.webkit.org/show_bug.cgi?id=53393 - - * runtime/CollectorHeapIterator.h: - (JSC::CollectorHeapIterator::isValid): - (JSC::CollectorHeapIterator::isLive): - (JSC::CollectorHeapIterator::advance): Removed "max" argument to - advance because it's a constant. - (JSC::LiveObjectIterator::LiveObjectIterator): - (JSC::LiveObjectIterator::operator++): - (JSC::DeadObjectIterator::DeadObjectIterator): - (JSC::DeadObjectIterator::operator++): - (JSC::ObjectIterator::ObjectIterator): - (JSC::ObjectIterator::operator++): Factored out common checks into - two helper functions -- isValid() for "Am I past the end?" and isLive() - for "Is the cell I'm pointing to live?". - - * runtime/MarkedSpace.cpp: - (JSC::MarkedSpace::freeBlock): - (JSC::MarkedSpace::sweep): Always sweep from the beginning of the heap - to the end, to avoid making sweep subtly reliant on internal Heap state. - (JSC::MarkedSpace::primaryHeapBegin): - (JSC::MarkedSpace::primaryHeapEnd): Always be explicit about where - iteration begins. - -2011-01-29 Geoffrey Garen - - Reviewed by Cameron Zwarich. - - Simplified heap destruction - https://bugs.webkit.org/show_bug.cgi?id=53392 - - * JavaScriptCore.exp: - * runtime/Heap.cpp: - (JSC::Heap::destroy): - * runtime/Heap.h: - * runtime/MarkedSpace.cpp: - (JSC::MarkedSpace::destroy): - * runtime/MarkedSpace.h: Don't go out of our way to destroy GC-protected - cells last -- the difficult contortions required to do so just don't seem - justified. We make no guarantees about GC protection after the client - throws away JSGlobalData, and it doesn't seem like any meaningful - guarantee is even possible. - -2011-01-29 Geoffrey Garen - - Reviewed by Maciej Stachowiak. - - Switched heap to use the Bitmap class and removed CollectorBitmap - https://bugs.webkit.org/show_bug.cgi?id=53391 - - SunSpider says 1.005x as fast. Seems like a fluke. - - * runtime/MarkedSpace.cpp: - (JSC::MarkedSpace::allocate): Updated for rename and returning a value - rather than taking a value by reference. - - * runtime/MarkedSpace.h: Code reuse is good. - - * wtf/Bitmap.h: - (WTF::::testAndSet): Added, since this is the one thing Bitmap was missing - which CollectorBitmap had. (Renamed from the less conventional "getset".) - - (WTF::::nextPossiblyUnset): Renamed and changed to return a value for - clarity. It's all the same with inlining. - -2011-01-28 Geoffrey Garen - - Reviewed by Maciej Stachowiak. - - Some more Heap cleanup. - https://bugs.webkit.org/show_bug.cgi?id=53357 - - * JavaScriptCore.exp: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Updated exported symbols. - - * runtime/Heap.cpp: - (JSC::Heap::reportExtraMemoryCostSlowCase): Renamed recordExtraCost to - reportExtraMemoryCostSlowCase to match our naming conventions. - - (JSC::Heap::capacity): Renamed size to capacity because this function - returns the capacity of the heap, including unused portions. - - * runtime/Heap.h: - (JSC::Heap::globalData): - (JSC::Heap::markedSpace): - (JSC::Heap::machineStackMarker): - (JSC::Heap::reportExtraMemoryCost): Moved statics to the top of the file. - Moved ctor and dtor to the beginning of the class definition. Grouped - functions by purpose. - - * runtime/MarkedSpace.cpp: - (JSC::MarkedSpace::capacity): Renamed size to capacity because this - function returns the capacity of the heap, including unused portions. - - * runtime/MarkedSpace.h: Removed statistics and the Statistics class because - the same information can be gotten just by calling size() and capacity(). - - * runtime/MemoryStatistics.cpp: - * runtime/MemoryStatistics.h: Ditto. - -2011-01-29 Daniel Bates - - Reviewed by Eric Seidel. - - Move wince/mt19937ar.c to ThirdParty and make it a policy choice - https://bugs.webkit.org/show_bug.cgi?id=53253 - - Make inclusion of MT19937 a policy decision. - - Currently, we hardcoded to use MT19937 when building for - Windows CE. Instead, we should make this a policy decision - with the Windows CE port using this by default. - - * JavaScriptCore.pri: Append Source/ThirdParty to the end - of the list include directories. - * wtf/CMakeLists.txt: Ditto. - * wtf/Platform.h: Defined WTF_USE_MERSENNE_TWISTER_19937 when - building for Windows CE. - * wtf/RandomNumber.cpp: - (WTF::randomNumber): Substituted USE(MERSENNE_TWISTER_19937) for OS(WINCE). - -2011-01-29 Cameron Zwarich - - Reviewed by David Kilzer. - - Bug 53374 - Remove uses of unsafe string functions in debugging code - https://bugs.webkit.org/show_bug.cgi?id=53374 - - * runtime/RegExp.cpp: - (JSC::RegExp::printTraceData): - -2011-01-29 Cameron Zwarich - - Reviewed by Oliver Hunt. - - JavaScriptCoreUseJIT environment variable broken - https://bugs.webkit.org/show_bug.cgi?id=53372 - - * runtime/JSGlobalData.cpp: - (JSC::JSGlobalData::JSGlobalData): Check the actual value in the string returned - by getenv() rather than just doing a NULL check on the return value. - -2011-01-29 Patrick Gansterer - - Reviewed by David Kilzer. - - Move CharacterNames.h into WTF directory - https://bugs.webkit.org/show_bug.cgi?id=49618 - - * GNUmakefile.am: - * JavaScriptCore.gypi: - * JavaScriptCore.vcproj/WTF/WTF.vcproj: - * JavaScriptCore.xcodeproj/project.pbxproj: - * wtf/CMakeLists.txt: - * wtf/unicode/CharacterNames.h: Renamed from WebCore/platform/text/CharacterNames.h. - * wtf/unicode/UTF8.cpp: - -2011-01-28 Simon Fraser - - Reviewed by Gavin Barraclough. - - Add various clampToInt() methods to MathExtras.h - https://bugs.webkit.org/show_bug.cgi?id=52910 - - Add functions for clamping doubles and floats to valid int - ranges, for signed and positive integers. - - * wtf/MathExtras.h: - (clampToInteger): - (clampToPositiveInteger): - -2011-01-28 Sheriff Bot - - Unreviewed, rolling out r77006 and r77020. - http://trac.webkit.org/changeset/77006 - http://trac.webkit.org/changeset/77020 - https://bugs.webkit.org/show_bug.cgi?id=53360 - - "Broke Windows tests" (Requested by rniwa on #webkit). - - * API/JSCallbackObject.h: - (JSC::JSCallbackObjectData::setPrivateProperty): - (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty): - (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty): - (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren): - (JSC::JSCallbackObject::setPrivateProperty): - * API/JSCallbackObjectFunctions.h: - (JSC::::put): - (JSC::::staticFunctionGetter): - * API/JSObjectRef.cpp: - (JSObjectMakeConstructor): - (JSObjectSetPrivateProperty): - * API/JSWeakObjectMapRefInternal.h: - * JavaScriptCore.exp: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: - * JavaScriptCore.xcodeproj/project.pbxproj: - * bytecode/CodeBlock.cpp: - (JSC::CodeBlock::markAggregate): - * bytecode/CodeBlock.h: - (JSC::CodeBlock::globalObject): - * bytecompiler/BytecodeGenerator.cpp: - (JSC::BytecodeGenerator::BytecodeGenerator): - (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall): - (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply): - (JSC::BytecodeGenerator::findScopedProperty): - * debugger/Debugger.cpp: - (JSC::evaluateInGlobalCallFrame): - * debugger/DebuggerActivation.cpp: - (JSC::DebuggerActivation::DebuggerActivation): - (JSC::DebuggerActivation::markChildren): - * debugger/DebuggerActivation.h: - * debugger/DebuggerCallFrame.cpp: - (JSC::DebuggerCallFrame::evaluate): - * interpreter/CallFrame.h: - (JSC::ExecState::exception): - * interpreter/Interpreter.cpp: - (JSC::Interpreter::resolve): - (JSC::Interpreter::resolveSkip): - (JSC::Interpreter::resolveGlobal): - (JSC::Interpreter::resolveGlobalDynamic): - (JSC::Interpreter::resolveBaseAndProperty): - (JSC::Interpreter::unwindCallFrame): - (JSC::appendSourceToError): - (JSC::Interpreter::execute): - (JSC::Interpreter::tryCacheGetByID): - (JSC::Interpreter::privateExecute): - * jit/JITStubs.cpp: - (JSC::JITThunks::tryCacheGetByID): - (JSC::DEFINE_STUB_FUNCTION): - * jsc.cpp: - (GlobalObject::GlobalObject): - * runtime/ArgList.cpp: - (JSC::MarkedArgumentBuffer::markLists): - * runtime/Arguments.cpp: - (JSC::Arguments::markChildren): - (JSC::Arguments::getOwnPropertySlot): - (JSC::Arguments::getOwnPropertyDescriptor): - (JSC::Arguments::put): - * runtime/Arguments.h: - (JSC::Arguments::setActivation): - (JSC::Arguments::Arguments): - * runtime/ArrayConstructor.cpp: - (JSC::ArrayConstructor::ArrayConstructor): - (JSC::constructArrayWithSizeQuirk): - * runtime/ArrayPrototype.cpp: - (JSC::arrayProtoFuncSplice): - * runtime/BatchedTransitionOptimizer.h: - (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer): - (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer): - * runtime/BooleanConstructor.cpp: - (JSC::BooleanConstructor::BooleanConstructor): - (JSC::constructBoolean): - (JSC::constructBooleanFromImmediateBoolean): - * runtime/BooleanPrototype.cpp: - (JSC::BooleanPrototype::BooleanPrototype): - * runtime/ConservativeSet.cpp: - (JSC::ConservativeSet::grow): - * runtime/ConservativeSet.h: - (JSC::ConservativeSet::~ConservativeSet): - (JSC::ConservativeSet::mark): - * runtime/DateConstructor.cpp: - (JSC::DateConstructor::DateConstructor): - * runtime/DateInstance.cpp: - (JSC::DateInstance::DateInstance): - * runtime/DatePrototype.cpp: - (JSC::dateProtoFuncSetTime): - (JSC::setNewValueFromTimeArgs): - (JSC::setNewValueFromDateArgs): - (JSC::dateProtoFuncSetYear): - * runtime/ErrorConstructor.cpp: - (JSC::ErrorConstructor::ErrorConstructor): - * runtime/ErrorInstance.cpp: - (JSC::ErrorInstance::ErrorInstance): - * runtime/ErrorPrototype.cpp: - (JSC::ErrorPrototype::ErrorPrototype): - * runtime/FunctionConstructor.cpp: - (JSC::FunctionConstructor::FunctionConstructor): - * runtime/FunctionPrototype.cpp: - (JSC::FunctionPrototype::FunctionPrototype): - * runtime/GetterSetter.cpp: - (JSC::GetterSetter::markChildren): - * runtime/GetterSetter.h: - (JSC::GetterSetter::GetterSetter): - (JSC::GetterSetter::getter): - (JSC::GetterSetter::setGetter): - (JSC::GetterSetter::setter): - (JSC::GetterSetter::setSetter): - * runtime/GlobalEvalFunction.cpp: - (JSC::GlobalEvalFunction::GlobalEvalFunction): - (JSC::GlobalEvalFunction::markChildren): - * runtime/GlobalEvalFunction.h: - (JSC::GlobalEvalFunction::cachedGlobalObject): - * runtime/Heap.cpp: - (JSC::Heap::markProtectedObjects): - (JSC::Heap::markTempSortVectors): - (JSC::Heap::markRoots): - * runtime/InternalFunction.cpp: - (JSC::InternalFunction::InternalFunction): - * runtime/JSAPIValueWrapper.h: - (JSC::JSAPIValueWrapper::value): - (JSC::JSAPIValueWrapper::JSAPIValueWrapper): - * runtime/JSActivation.cpp: - (JSC::JSActivation::markChildren): - (JSC::JSActivation::put): - * runtime/JSArray.cpp: - (JSC::JSArray::JSArray): - (JSC::JSArray::getOwnPropertySlot): - (JSC::JSArray::getOwnPropertyDescriptor): - (JSC::JSArray::put): - (JSC::JSArray::putSlowCase): - (JSC::JSArray::deleteProperty): - (JSC::JSArray::increaseVectorLength): - (JSC::JSArray::setLength): - (JSC::JSArray::pop): - (JSC::JSArray::push): - (JSC::JSArray::unshiftCount): - (JSC::JSArray::sort): - (JSC::JSArray::fillArgList): - (JSC::JSArray::copyToRegisters): - (JSC::JSArray::compactForSorting): - * runtime/JSArray.h: - (JSC::JSArray::getIndex): - (JSC::JSArray::setIndex): - (JSC::JSArray::uncheckedSetIndex): - (JSC::JSArray::markChildrenDirect): - * runtime/JSByteArray.cpp: - (JSC::JSByteArray::JSByteArray): - * runtime/JSCell.h: - (JSC::JSCell::JSValue::toThisObject): - (JSC::JSCell::MarkStack::append): - * runtime/JSFunction.cpp: - (JSC::JSFunction::JSFunction): - (JSC::JSFunction::getOwnPropertySlot): - * runtime/JSGlobalData.h: - * runtime/JSGlobalObject.cpp: - (JSC::markIfNeeded): - (JSC::JSGlobalObject::reset): - (JSC::JSGlobalObject::resetPrototype): - (JSC::JSGlobalObject::markChildren): - * runtime/JSGlobalObject.h: - (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData): - (JSC::JSGlobalObject::regExpConstructor): - (JSC::JSGlobalObject::errorConstructor): - (JSC::JSGlobalObject::evalErrorConstructor): - (JSC::JSGlobalObject::rangeErrorConstructor): - (JSC::JSGlobalObject::referenceErrorConstructor): - (JSC::JSGlobalObject::syntaxErrorConstructor): - (JSC::JSGlobalObject::typeErrorConstructor): - (JSC::JSGlobalObject::URIErrorConstructor): - (JSC::JSGlobalObject::evalFunction): - (JSC::JSGlobalObject::objectPrototype): - (JSC::JSGlobalObject::functionPrototype): - (JSC::JSGlobalObject::arrayPrototype): - (JSC::JSGlobalObject::booleanPrototype): - (JSC::JSGlobalObject::stringPrototype): - (JSC::JSGlobalObject::numberPrototype): - (JSC::JSGlobalObject::datePrototype): - (JSC::JSGlobalObject::regExpPrototype): - (JSC::JSGlobalObject::methodCallDummy): - (JSC::Structure::prototypeForLookup): - (JSC::constructArray): - * runtime/JSONObject.cpp: - (JSC::Stringifier::Holder::object): - (JSC::Stringifier::markAggregate): - (JSC::Stringifier::stringify): - (JSC::Stringifier::Holder::appendNextProperty): - (JSC::Walker::callReviver): - (JSC::Walker::walk): - * runtime/JSObject.cpp: - (JSC::JSObject::defineGetter): - (JSC::JSObject::defineSetter): - (JSC::JSObject::removeDirect): - (JSC::JSObject::putDirectFunction): - (JSC::JSObject::putDirectFunctionWithoutTransition): - (JSC::putDescriptor): - (JSC::JSObject::defineOwnProperty): - * runtime/JSObject.h: - (JSC::JSObject::getDirectOffset): - (JSC::JSObject::putDirectOffset): - (JSC::JSObject::flattenDictionaryObject): - (JSC::JSObject::putDirectInternal): - (JSC::JSObject::putDirect): - (JSC::JSObject::putDirectFunction): - (JSC::JSObject::putDirectWithoutTransition): - (JSC::JSObject::putDirectFunctionWithoutTransition): - (JSC::JSValue::putDirect): - (JSC::JSObject::allocatePropertyStorageInline): - (JSC::JSObject::markChildrenDirect): - * runtime/JSPropertyNameIterator.cpp: - (JSC::JSPropertyNameIterator::JSPropertyNameIterator): - (JSC::JSPropertyNameIterator::get): - * runtime/JSPropertyNameIterator.h: - * runtime/JSStaticScopeObject.cpp: - (JSC::JSStaticScopeObject::markChildren): - * runtime/JSString.cpp: - (JSC::StringObject::create): - * runtime/JSValue.h: - * runtime/JSWrapperObject.cpp: - (JSC::JSWrapperObject::markChildren): - * runtime/JSWrapperObject.h: - (JSC::JSWrapperObject::internalValue): - (JSC::JSWrapperObject::setInternalValue): - * runtime/LiteralParser.cpp: - (JSC::LiteralParser::parse): - * runtime/Lookup.cpp: - (JSC::setUpStaticFunctionSlot): - * runtime/Lookup.h: - (JSC::lookupPut): - * runtime/MarkStack.h: - (JSC::MarkStack::appendValues): - * runtime/MathObject.cpp: - (JSC::MathObject::MathObject): - * runtime/NativeErrorConstructor.cpp: - (JSC::NativeErrorConstructor::NativeErrorConstructor): - * runtime/NativeErrorPrototype.cpp: - (JSC::NativeErrorPrototype::NativeErrorPrototype): - * runtime/NumberConstructor.cpp: - (JSC::NumberConstructor::NumberConstructor): - (JSC::constructWithNumberConstructor): - * runtime/NumberObject.cpp: - (JSC::constructNumber): - * runtime/NumberPrototype.cpp: - (JSC::NumberPrototype::NumberPrototype): - * runtime/ObjectConstructor.cpp: - (JSC::ObjectConstructor::ObjectConstructor): - (JSC::objectConstructorGetOwnPropertyDescriptor): - * runtime/Operations.h: - (JSC::normalizePrototypeChain): - (JSC::resolveBase): - * runtime/PrototypeFunction.cpp: - (JSC::PrototypeFunction::PrototypeFunction): - * runtime/PutPropertySlot.h: - (JSC::PutPropertySlot::setExistingProperty): - (JSC::PutPropertySlot::setNewProperty): - (JSC::PutPropertySlot::base): - * runtime/RegExpConstructor.cpp: - (JSC::RegExpConstructor::RegExpConstructor): - * runtime/ScopeChain.cpp: - (JSC::ScopeChainNode::print): - * runtime/ScopeChain.h: - (JSC::ScopeChainNode::~ScopeChainNode): - (JSC::ScopeChainIterator::operator*): - (JSC::ScopeChainIterator::operator->): - (JSC::ScopeChain::top): - * runtime/ScopeChainMark.h: - (JSC::ScopeChain::markAggregate): - * runtime/SmallStrings.cpp: - (JSC::isMarked): - (JSC::SmallStrings::markChildren): - * runtime/SmallStrings.h: - (JSC::SmallStrings::emptyString): - (JSC::SmallStrings::singleCharacterString): - (JSC::SmallStrings::singleCharacterStrings): - * runtime/StringConstructor.cpp: - (JSC::StringConstructor::StringConstructor): - * runtime/StringObject.cpp: - (JSC::StringObject::StringObject): - * runtime/StringObject.h: - * runtime/StringPrototype.cpp: - (JSC::StringPrototype::StringPrototype): - * runtime/Structure.cpp: - (JSC::Structure::Structure): - (JSC::Structure::addPropertyTransition): - (JSC::Structure::toDictionaryTransition): - (JSC::Structure::flattenDictionaryStructure): - * runtime/Structure.h: - (JSC::Structure::storedPrototype): - * runtime/WeakGCMap.h: - (JSC::WeakGCMap::uncheckedGet): - (JSC::WeakGCMap::isValid): - (JSC::::get): - (JSC::::take): - (JSC::::set): - (JSC::::uncheckedRemove): - * runtime/WriteBarrier.h: Removed. - -2011-01-28 Gavin Barraclough - - Reviewed by Geoff Garen. - - https://bugs.webkit.org/show_bug.cgi?id=53352 - Heavy external fragmentation in FixedVMPoolAllocator can lead to a CRASH(). - - The FixedVMPoolAllocator currently uses a best fix policy - - switch to first fit, this is less prone to external fragmentation. - - * jit/ExecutableAllocatorFixedVMPool.cpp: - (JSC::AllocationTableSizeClass::AllocationTableSizeClass): - (JSC::AllocationTableSizeClass::blockSize): - (JSC::AllocationTableSizeClass::blockCount): - (JSC::AllocationTableSizeClass::blockAlignment): - (JSC::AllocationTableSizeClass::size): - (JSC::AllocationTableLeaf::AllocationTableLeaf): - (JSC::AllocationTableLeaf::~AllocationTableLeaf): - (JSC::AllocationTableLeaf::allocate): - (JSC::AllocationTableLeaf::free): - (JSC::AllocationTableLeaf::isEmpty): - (JSC::AllocationTableLeaf::isFull): - (JSC::AllocationTableLeaf::size): - (JSC::AllocationTableLeaf::classForSize): - (JSC::AllocationTableLeaf::dump): - (JSC::LazyAllocationTable::LazyAllocationTable): - (JSC::LazyAllocationTable::~LazyAllocationTable): - (JSC::LazyAllocationTable::allocate): - (JSC::LazyAllocationTable::free): - (JSC::LazyAllocationTable::isEmpty): - (JSC::LazyAllocationTable::isFull): - (JSC::LazyAllocationTable::size): - (JSC::LazyAllocationTable::dump): - (JSC::LazyAllocationTable::classForSize): - (JSC::AllocationTableDirectory::AllocationTableDirectory): - (JSC::AllocationTableDirectory::~AllocationTableDirectory): - (JSC::AllocationTableDirectory::allocate): - (JSC::AllocationTableDirectory::free): - (JSC::AllocationTableDirectory::isEmpty): - (JSC::AllocationTableDirectory::isFull): - (JSC::AllocationTableDirectory::size): - (JSC::AllocationTableDirectory::classForSize): - (JSC::AllocationTableDirectory::dump): - (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator): - (JSC::FixedVMPoolAllocator::alloc): - (JSC::FixedVMPoolAllocator::free): - (JSC::FixedVMPoolAllocator::allocated): - (JSC::FixedVMPoolAllocator::isValid): - (JSC::FixedVMPoolAllocator::classForSize): - (JSC::FixedVMPoolAllocator::offsetToPointer): - (JSC::FixedVMPoolAllocator::pointerToOffset): - (JSC::ExecutableAllocator::committedByteCount): - (JSC::ExecutableAllocator::isValid): - (JSC::ExecutableAllocator::underMemoryPressure): - (JSC::ExecutablePool::systemAlloc): - (JSC::ExecutablePool::systemRelease): - * wtf/PageReservation.h: - (WTF::PageReservation::PageReservation): - (WTF::PageReservation::commit): - (WTF::PageReservation::decommit): - (WTF::PageReservation::committed): - -2011-01-27 Oliver Hunt - - Reviewed by Geoffrey Garen. - - Convert markstack to a slot visitor API - https://bugs.webkit.org/show_bug.cgi?id=53219 - - Move the MarkStack over to a slot based marking API. - - In order to avoiding aliasing concerns there are two new types - that need to be used when holding on to JSValues and JSCell that - need to be marked: WriteBarrier and DeprecatedPtr. WriteBarrier - is expected to be used for any JSValue or Cell that's lifetime and - marking is controlled by another GC object. DeprecatedPtr is used - for any value that we need to rework ownership for. - - The change over to this model has produced a large amount of - code changes, but they are mostly mechanical (forwarding JSGlobalData, - etc). - - * API/JSCallbackObject.h: - (JSC::JSCallbackObjectData::setPrivateProperty): - (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty): - (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty): - (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren): - (JSC::JSCallbackObject::setPrivateProperty): - * API/JSCallbackObjectFunctions.h: - (JSC::::put): - (JSC::::staticFunctionGetter): - * API/JSObjectRef.cpp: - (JSObjectMakeConstructor): - (JSObjectSetPrivateProperty): - * API/JSWeakObjectMapRefInternal.h: - * JavaScriptCore.exp: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: - * JavaScriptCore.xcodeproj/project.pbxproj: - * bytecode/CodeBlock.cpp: - (JSC::CodeBlock::markAggregate): - * bytecode/CodeBlock.h: - (JSC::CodeBlock::globalObject): - * bytecompiler/BytecodeGenerator.cpp: - (JSC::BytecodeGenerator::BytecodeGenerator): - (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall): - (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply): - (JSC::BytecodeGenerator::findScopedProperty): - * debugger/DebuggerActivation.cpp: - (JSC::DebuggerActivation::DebuggerActivation): - (JSC::DebuggerActivation::markChildren): - * debugger/DebuggerActivation.h: - * interpreter/Interpreter.cpp: - (JSC::Interpreter::resolve): - (JSC::Interpreter::resolveSkip): - (JSC::Interpreter::resolveGlobalDynamic): - (JSC::Interpreter::resolveBaseAndProperty): - (JSC::Interpreter::unwindCallFrame): - (JSC::appendSourceToError): - (JSC::Interpreter::execute): - (JSC::Interpreter::privateExecute): - * interpreter/Register.h: - (JSC::Register::jsValueSlot): - * jit/JITStubs.cpp: - (JSC::JITThunks::tryCacheGetByID): - (JSC::DEFINE_STUB_FUNCTION): - * jsc.cpp: - (GlobalObject::GlobalObject): - * runtime/Arguments.cpp: - (JSC::Arguments::markChildren): - (JSC::Arguments::getOwnPropertySlot): - (JSC::Arguments::getOwnPropertyDescriptor): - (JSC::Arguments::put): - * runtime/Arguments.h: - (JSC::Arguments::setActivation): - (JSC::Arguments::Arguments): - * runtime/ArrayConstructor.cpp: - (JSC::ArrayConstructor::ArrayConstructor): - (JSC::constructArrayWithSizeQuirk): - * runtime/ArrayPrototype.cpp: - (JSC::arrayProtoFuncSplice): - * runtime/BatchedTransitionOptimizer.h: - (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer): - (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer): - * runtime/BooleanConstructor.cpp: - (JSC::BooleanConstructor::BooleanConstructor): - (JSC::constructBoolean): - (JSC::constructBooleanFromImmediateBoolean): - * runtime/BooleanPrototype.cpp: - (JSC::BooleanPrototype::BooleanPrototype): - * runtime/ConservativeSet.h: - (JSC::ConservativeSet::mark): - * runtime/DateConstructor.cpp: - (JSC::DateConstructor::DateConstructor): - * runtime/DateInstance.cpp: - (JSC::DateInstance::DateInstance): - * runtime/DatePrototype.cpp: - (JSC::dateProtoFuncSetTime): - (JSC::setNewValueFromTimeArgs): - (JSC::setNewValueFromDateArgs): - (JSC::dateProtoFuncSetYear): - * runtime/ErrorConstructor.cpp: - (JSC::ErrorConstructor::ErrorConstructor): - * runtime/ErrorInstance.cpp: - (JSC::ErrorInstance::ErrorInstance): - * runtime/ErrorPrototype.cpp: - (JSC::ErrorPrototype::ErrorPrototype): - * runtime/FunctionConstructor.cpp: - (JSC::FunctionConstructor::FunctionConstructor): - * runtime/FunctionPrototype.cpp: - (JSC::FunctionPrototype::FunctionPrototype): - * runtime/GetterSetter.cpp: - (JSC::GetterSetter::markChildren): - * runtime/GetterSetter.h: - (JSC::GetterSetter::GetterSetter): - (JSC::GetterSetter::getter): - (JSC::GetterSetter::setGetter): - (JSC::GetterSetter::setter): - (JSC::GetterSetter::setSetter): - * runtime/GlobalEvalFunction.cpp: - (JSC::GlobalEvalFunction::GlobalEvalFunction): - (JSC::GlobalEvalFunction::markChildren): - * runtime/GlobalEvalFunction.h: - (JSC::GlobalEvalFunction::cachedGlobalObject): - * runtime/Heap.cpp: - (JSC::Heap::markProtectedObjects): - (JSC::Heap::markTempSortVectors): - (JSC::Heap::markRoots): - * runtime/InternalFunction.cpp: - (JSC::InternalFunction::InternalFunction): - * runtime/JSAPIValueWrapper.h: - (JSC::JSAPIValueWrapper::value): - (JSC::JSAPIValueWrapper::JSAPIValueWrapper): - * runtime/JSActivation.cpp: - (JSC::JSActivation::put): - * runtime/JSArray.cpp: - (JSC::JSArray::JSArray): - (JSC::JSArray::getOwnPropertySlot): - (JSC::JSArray::getOwnPropertyDescriptor): - (JSC::JSArray::put): - (JSC::JSArray::putSlowCase): - (JSC::JSArray::deleteProperty): - (JSC::JSArray::increaseVectorLength): - (JSC::JSArray::setLength): - (JSC::JSArray::pop): - (JSC::JSArray::push): - (JSC::JSArray::unshiftCount): - (JSC::JSArray::sort): - (JSC::JSArray::fillArgList): - (JSC::JSArray::copyToRegisters): - (JSC::JSArray::compactForSorting): - * runtime/JSArray.h: - (JSC::JSArray::getIndex): - (JSC::JSArray::setIndex): - (JSC::JSArray::uncheckedSetIndex): - (JSC::JSArray::markChildrenDirect): - * runtime/JSByteArray.cpp: - (JSC::JSByteArray::JSByteArray): - * runtime/JSCell.h: - (JSC::JSCell::MarkStack::append): - (JSC::JSCell::MarkStack::appendCell): - * runtime/JSFunction.cpp: - (JSC::JSFunction::JSFunction): - (JSC::JSFunction::getOwnPropertySlot): - * runtime/JSGlobalObject.cpp: - (JSC::markIfNeeded): - (JSC::JSGlobalObject::reset): - (JSC::JSGlobalObject::resetPrototype): - (JSC::JSGlobalObject::markChildren): - * runtime/JSGlobalObject.h: - (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData): - (JSC::JSGlobalObject::regExpConstructor): - (JSC::JSGlobalObject::errorConstructor): - (JSC::JSGlobalObject::evalErrorConstructor): - (JSC::JSGlobalObject::rangeErrorConstructor): - (JSC::JSGlobalObject::referenceErrorConstructor): - (JSC::JSGlobalObject::syntaxErrorConstructor): - (JSC::JSGlobalObject::typeErrorConstructor): - (JSC::JSGlobalObject::URIErrorConstructor): - (JSC::JSGlobalObject::evalFunction): - (JSC::JSGlobalObject::objectPrototype): - (JSC::JSGlobalObject::functionPrototype): - (JSC::JSGlobalObject::arrayPrototype): - (JSC::JSGlobalObject::booleanPrototype): - (JSC::JSGlobalObject::stringPrototype): - (JSC::JSGlobalObject::numberPrototype): - (JSC::JSGlobalObject::datePrototype): - (JSC::JSGlobalObject::regExpPrototype): - (JSC::JSGlobalObject::methodCallDummy): - (JSC::constructArray): - * runtime/JSONObject.cpp: - (JSC::Stringifier::Holder::object): - (JSC::Stringifier::Holder::objectSlot): - (JSC::Stringifier::markAggregate): - (JSC::Stringifier::stringify): - (JSC::Stringifier::Holder::appendNextProperty): - (JSC::Walker::callReviver): - (JSC::Walker::walk): - * runtime/JSObject.cpp: - (JSC::JSObject::defineGetter): - (JSC::JSObject::defineSetter): - (JSC::JSObject::removeDirect): - (JSC::JSObject::putDirectFunction): - (JSC::JSObject::putDirectFunctionWithoutTransition): - (JSC::putDescriptor): - (JSC::JSObject::defineOwnProperty): - * runtime/JSObject.h: - (JSC::JSObject::putDirectOffset): - (JSC::JSObject::putUndefinedAtDirectOffset): - (JSC::JSObject::flattenDictionaryObject): - (JSC::JSObject::putDirectInternal): - (JSC::JSObject::putDirect): - (JSC::JSObject::putDirectFunction): - (JSC::JSObject::putDirectWithoutTransition): - (JSC::JSObject::putDirectFunctionWithoutTransition): - (JSC::JSValue::putDirect): - (JSC::JSObject::allocatePropertyStorageInline): - (JSC::JSObject::markChildrenDirect): - * runtime/JSStaticScopeObject.cpp: - (JSC::JSStaticScopeObject::markChildren): - * runtime/JSString.cpp: - (JSC::StringObject::create): - * runtime/JSValue.h: - * runtime/JSWrapperObject.cpp: - (JSC::JSWrapperObject::markChildren): - * runtime/JSWrapperObject.h: - (JSC::JSWrapperObject::internalValue): - (JSC::JSWrapperObject::setInternalValue): - * runtime/LiteralParser.cpp: - (JSC::LiteralParser::parse): - * runtime/Lookup.cpp: - (JSC::setUpStaticFunctionSlot): - * runtime/Lookup.h: - (JSC::lookupPut): - * runtime/MarkStack.h: - * runtime/MathObject.cpp: - (JSC::MathObject::MathObject): - * runtime/NativeErrorConstructor.cpp: - (JSC::NativeErrorConstructor::NativeErrorConstructor): - * runtime/NativeErrorPrototype.cpp: - (JSC::NativeErrorPrototype::NativeErrorPrototype): - * runtime/NumberConstructor.cpp: - (JSC::NumberConstructor::NumberConstructor): - (JSC::constructWithNumberConstructor): - * runtime/NumberObject.cpp: - (JSC::constructNumber): - * runtime/NumberPrototype.cpp: - (JSC::NumberPrototype::NumberPrototype): - * runtime/ObjectConstructor.cpp: - (JSC::ObjectConstructor::ObjectConstructor): - (JSC::objectConstructorGetOwnPropertyDescriptor): - * runtime/Operations.h: - (JSC::normalizePrototypeChain): - (JSC::resolveBase): - * runtime/PrototypeFunction.cpp: - (JSC::PrototypeFunction::PrototypeFunction): - * runtime/PutPropertySlot.h: - (JSC::PutPropertySlot::setExistingProperty): - (JSC::PutPropertySlot::setNewProperty): - (JSC::PutPropertySlot::base): - * runtime/RegExpConstructor.cpp: - (JSC::RegExpConstructor::RegExpConstructor): - * runtime/ScopeChain.cpp: - (JSC::ScopeChainNode::print): - * runtime/ScopeChain.h: - (JSC::ScopeChainNode::~ScopeChainNode): - (JSC::ScopeChainIterator::operator*): - (JSC::ScopeChainIterator::operator->): - (JSC::ScopeChain::top): - * runtime/ScopeChainMark.h: - (JSC::ScopeChain::markAggregate): - * runtime/SmallStrings.cpp: - (JSC::isMarked): - (JSC::SmallStrings::markChildren): - * runtime/SmallStrings.h: - (JSC::SmallStrings::emptyString): - (JSC::SmallStrings::singleCharacterString): - (JSC::SmallStrings::singleCharacterStrings): - * runtime/StringConstructor.cpp: - (JSC::StringConstructor::StringConstructor): - * runtime/StringObject.cpp: - (JSC::StringObject::StringObject): - * runtime/StringObject.h: - * runtime/StringPrototype.cpp: - (JSC::StringPrototype::StringPrototype): - * runtime/Structure.cpp: - (JSC::Structure::flattenDictionaryStructure): - * runtime/Structure.h: - (JSC::Structure::storedPrototypeSlot): - * runtime/WeakGCMap.h: - (JSC::WeakGCMap::uncheckedGet): - (JSC::WeakGCMap::uncheckedGetSlot): - (JSC::::get): - (JSC::::take): - (JSC::::set): - (JSC::::uncheckedRemove): - * runtime/WriteBarrier.h: Added. - (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::slot): - (JSC::WriteBarrierBase::operator UnspecifiedBoolType*): - (JSC::WriteBarrierBase::operator!): - (JSC::WriteBarrier::WriteBarrier): - (JSC::operator==): - -2011-01-28 Adam Roben - - Chromium build fix after r76967 - - * wtf/ThreadingPrimitives.h: Use OS(WINDOWS) instead of PLATFORM(WIN), to match other - similar macros in this file. - -2011-01-28 Michael Saboff - - Potentially Unsafe HashSet of RuntimeObject* in RootObject definition - https://bugs.webkit.org/show_bug.cgi?id=53271 - - Reapplying this this change. No change from prior patch in - JavaScriptCore. - - Added new isValid() methods to check if a contained object in - a WeakGCMap is valid when using an unchecked iterator. - - * runtime/WeakGCMap.h: - (JSC::WeakGCMap::isValid): - -2011-01-27 Adam Roben - - Extract code to convert a WTF absolute time to a Win32 wait interval into a separate - function - - Fixes BinarySemaphore should wrap a - Win32 event - - Reviewed by Dave Hyatt. - - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Export the new function. - - * wtf/ThreadingPrimitives.h: Declare the new function. - - * wtf/ThreadingWin.cpp: - (WTF::ThreadCondition::timedWait): Moved code to convert the absolute time to a wait - interval from here... - (WTF::absoluteTimeToWaitTimeoutInterval): ...to here. - -2011-01-28 Sam Weinig - - Reviewed by Maciej Stachowiak. - - Add basic rubber banding support - - https://bugs.webkit.org/show_bug.cgi?id=53277 - - * wtf/Platform.h: Add ENABLE for rubber banding. - -2011-01-28 Sheriff Bot - - Unreviewed, rolling out r76893. - http://trac.webkit.org/changeset/76893 - https://bugs.webkit.org/show_bug.cgi?id=53287 - - It made some tests crash on GTK and Qt debug bots (Requested - by Ossy on #webkit). - - * runtime/WeakGCMap.h: - -2011-01-27 Adam Barth - - Reviewed by Eric Seidel. - - Add WTFString method to compare equality with Vector - https://bugs.webkit.org/show_bug.cgi?id=53266 - - I'm planning to use this method in the new XSS filter implementation, - but it seems generally useful. - - * wtf/text/StringImpl.h: - (WTF::equalIgnoringNullity): - * wtf/text/WTFString.h: - (WTF::equalIgnoringNullity): - -2011-01-27 Michael Saboff - - Potentially Unsafe HashSet of RuntimeObject* in RootObject definition - https://bugs.webkit.org/show_bug.cgi?id=53271 - - Added new isValid() methods to check if a contained object in - a WeakGCMap is valid when using an unchecked iterator. - - * runtime/WeakGCMap.h: - (JSC::WeakGCMap::isValid): - -2011-01-26 Sam Weinig - - Reviewed by Maciej Stachowiak. - - Add events to represent the start/end of a gesture scroll - https://bugs.webkit.org/show_bug.cgi?id=53215 - - * wtf/Platform.h: Add ENABLE for gesture events. - -2011-01-26 Yael Aharon - - Reviewed by Laszlo Gombos. - - [Qt][Symbian] Fix --minimal build - https://bugs.webkit.org/show_bug.cgi?id=52839 - - Move definition of USE_SYSTEM_MALLOC out of pri file. - Put it in platform.h instead. - - * wtf/Platform.h: - * wtf/TCSystemAlloc.cpp: - * wtf/wtf.pri: - -2011-01-26 Patrick Gansterer - - Reviewed by Andreas Kling. - - [WINCE] Add JIT support to build system - https://bugs.webkit.org/show_bug.cgi?id=53079 - - * CMakeListsWinCE.txt: - -2011-01-25 Adam Roben - - Windows Production build fix - - Reviewed by Steve Falkenburg. - - * JavaScriptCore.vcproj/JavaScriptCore.make: Set BUILDSTYLE to Release_PGO at the very start - of the file so that ConfigurationBuildDir takes that into account. Also set it the right way - (by redefining the macro) rather than the wrong way (by modifying the environment variable). - -2011-01-25 Steve Falkenburg - - Rubber-stamped by Adam Roben. - - Windows production build fix. - Use correct environment variable escaping - - * JavaScriptCore.vcproj/JavaScriptCore.make: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: - -2011-01-25 Oliver Hunt - - Reviewed by Gavin Barraclough. - - JSON.stringify processing time exponentially grows with size of object - https://bugs.webkit.org/show_bug.cgi?id=51922 - - Remove last use of reserveCapacity from JSON stringification, as it results - in appalling append behaviour when there are a large number of property names - and nothing else. - - * runtime/JSONObject.cpp: - (JSC::Stringifier::appendQuotedString): - -2011-01-25 Antti Koivisto - - Not reviewed. - - Try to fix windows build. - - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: - -2011-01-25 Antti Koivisto - - Reviewed by Oliver Hunt. - - REGRESSION: Leak in JSParser::Scope::copyCapturedVariablesToVector() - https://bugs.webkit.org/show_bug.cgi?id=53061 - - Cache did not know about the subclass so failed to fully delete the items. - Got rid of the subclass and moved the classes to separate files. - - * CMakeLists.txt: - * GNUmakefile.am: - * JavaScriptCore.exp: - * JavaScriptCore.gypi: - * JavaScriptCore.pro: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: - * JavaScriptCore.xcodeproj/project.pbxproj: - * parser/JSParser.cpp: - (JSC::JSParser::Scope::saveFunctionInfo): - (JSC::JSParser::Scope::restoreFunctionInfo): - (JSC::JSParser::findCachedFunctionInfo): - (JSC::JSParser::parseFunctionInfo): - * parser/SourceProvider.h: - * parser/SourceProviderCache.cpp: Added. - (JSC::SourceProviderCache::~SourceProviderCache): - (JSC::SourceProviderCache::byteSize): - * parser/SourceProviderCache.h: Added. - (JSC::SourceProviderCache::SourceProviderCache): - (JSC::SourceProviderCache::add): - (JSC::SourceProviderCache::get): - * parser/SourceProviderCacheItem.h: Added. - (JSC::SourceProviderCacheItem::SourceProviderCacheItem): - (JSC::SourceProviderCacheItem::approximateByteSize): - (JSC::SourceProviderCacheItem::closeBraceToken): - -2011-01-25 Marcilio Mendonca - - Reviewed by Darin Adler. - - Bug 53087: Refactoring: replaced a hanging "else" with a "return" - statement - https://bugs.webkit.org/show_bug.cgi?id=53087. - - Refactoring work: Replaced a hanging "else" within an #if PLATFORM(M - with a "return" so that the code is more readable and less error pro - (e.g., "else" doesn't use braces so adding extra lines to the else - block won't have any effect; even worse, code still compiles - successfully. - - * wtf/Assertions.cpp: - -2011-01-24 Chris Marrin - - Reviewed by Eric Seidel. - - Change ENABLE_3D_CANVAS to ENABLE_WEBGL - https://bugs.webkit.org/show_bug.cgi?id=53041 - - * Configurations/FeatureDefines.xcconfig: - -2011-01-25 Adam Roben - - Windows Production build fix - - * JavaScriptCore.vcproj/JavaScriptCore.make: Added a missing "set". - -2011-01-25 Patrick Gansterer - - Reviewed by Eric Seidel. - - Add missing defines for COMPILER(RVCT) && CPU(ARM_THUMB2) - https://bugs.webkit.org/show_bug.cgi?id=52949 - - * jit/JITStubs.cpp: - -2011-01-24 Adam Roben - - Windows Production build fix - - * JavaScriptCore.vcproj/JavaScriptCore.make: Update for move of JavaScriptCore into Source. - -2011-01-24 Peter Varga - - Reviewed by Oliver Hunt. - - Optimize regex patterns which contain empty alternatives - https://bugs.webkit.org/show_bug.cgi?id=51395 - - Eliminate the empty alternatives from the regex pattern and convert it to do - the matching in an easier way. - - * yarr/YarrPattern.cpp: - (JSC::Yarr::YarrPatternConstructor::atomParenthesesEnd): - -2011-01-24 Andras Becsi - - Reviewed by Csaba Osztrogonác. - - [Qt] Move project files into Source - https://bugs.webkit.org/show_bug.cgi?id=52891 - - * JavaScriptCore.pri: - * JavaScriptCore.pro: - * jsc.pro: - -2011-01-23 Mark Rowe - - Follow-up to r76477. - - Fix the scripts that detect problematic code such as static initializers - and destructors, weak vtables, inappropriate files in the framework wrappers, - and public headers including private headers. These had all been broken - since the projects were moved in to the Source directory as the paths to the - scripts were not updated at that time. - - * JavaScriptCore.xcodeproj/project.pbxproj: - -2011-01-23 Patrick Gansterer - - Reviewed by Darin Adler. - - Use WTF::StringHasher in WebCore - https://bugs.webkit.org/show_bug.cgi?id=52934 - - Add an additional function to calculate the hash - of data with a runtimedependent size. - - * wtf/StringHasher.h: - (WTF::StringHasher::createBlobHash): - -2011-01-23 Patrick Gansterer - - Reviewed by David Kilzer. - - Fix comment in String::ascii() - https://bugs.webkit.org/show_bug.cgi?id=52980 - - * wtf/text/WTFString.cpp: - (WTF::String::ascii): - -2011-01-23 Patrick Gansterer - - Reviewed by David Kilzer. - - Add String::containsOnlyLatin1() - https://bugs.webkit.org/show_bug.cgi?id=52979 - - * wtf/text/WTFString.h: - (WTF::String::containsOnlyLatin1): - (WTF::charactersAreAllLatin1): - -2011-01-23 Patrick Gansterer - - Reviewed by Oliver Hunt. - - Remove obsolete JSVALUE32 code - https://bugs.webkit.org/show_bug.cgi?id=52948 - - r70111 removed support for JSVALUE32. - ARM, MIPS and X86 support JSVALUE32_64 only. - - * jit/JITStubs.cpp: - -2011-01-22 Geoffrey Garen - - Reviewed by Dan Bernstein. - - ASSERT running run-webkit-tests --threaded. - https://bugs.webkit.org/show_bug.cgi?id=52971 - - SunSpider and v8 report no change. - - * runtime/ConservativeSet.cpp: - (JSC::ConservativeSet::grow): - (JSC::ConservativeSet::add): - * runtime/ConservativeSet.h: Tweaked the inline capacity to 128, and - the growth policy to 2X, to make SunSpider and v8 happy. - (JSC::ConservativeSet::ConservativeSet): - (JSC::ConservativeSet::~ConservativeSet): - (JSC::ConservativeSet::mark): Use OSAllocator directly, instead of malloc. - Malloc is forbidden during a multi-threaded mark phase because it can - cause deadlock. - -2011-01-22 Geoffrey Garen - - Reviewed by Geoffrey Garen. - - Rubber-stamped by Maciej Stachowiak. - - A few of Maciej's review suggestions for my last patch. - https://bugs.webkit.org/show_bug.cgi?id=52946 - - SunSpider reports no change. - - * Android.mk: - * CMakeLists.txt: - * GNUmakefile.am: - * JavaScriptCore.gypi: - * JavaScriptCore.pro: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: - * JavaScriptCore.xcodeproj/project.pbxproj: Updated build systems. - - * runtime/ConservativeSet.cpp: Added. - (JSC::isPointerAligned): - (JSC::ConservativeSet::add): - * runtime/ConservativeSet.h: Added. - (JSC::ConservativeSet::ConservativeSet): - (JSC::ConservativeSet::mark): Split ConservativeSet out into its own - file, and moved the conservative check into ConservativeSet::add, making - ConservativeSet's responsibility clearer. - - * runtime/Heap.cpp: - (JSC::Heap::markRoots): - * runtime/MachineStackMarker.cpp: - (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal): - (JSC::MachineStackMarker::markOtherThreadConservatively): - * runtime/MachineStackMarker.h: - * runtime/MarkStack.h: Updated for changes above. - -2011-01-22 Patrick Gansterer - - Unreviewed WinCE build fix for r76430. - - * runtime/MachineStackMarker.cpp: - (JSC::swapIfBackwards): - -2011-01-21 Geoffrey Garen - - Reviewed by Beth Dakin. - - Reorganized MarkedSpace, making many of its functions private. - - * runtime/JSCell.h: - (JSC::JSCell::Heap::heap): - * runtime/MarkedSpace.h: - (JSC::MarkedSpace::globalData): - (JSC::MarkedSpace::heap): - -2011-01-21 Geoffrey Garen - - Try to fix build: moved helper function out of #ifdef. - - * runtime/MachineStackMarker.cpp: - (JSC::swapIfBackwards): - -2011-01-21 Geoffrey Garen - - Rubber-stamped by Maciej Stachowiak. - - A few of Maciej's review suggestions for my last patch. - https://bugs.webkit.org/show_bug.cgi?id=52946 - - SunSpider reports no change. - - * runtime/MachineStackMarker.cpp: - (JSC::swapIfBackwards): Added a helper function for handling platforms - where the stack can grow in any direction. - - (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal): - (JSC::MachineStackMarker::markOtherThreadConservatively): Use the helper - function. - - (JSC::isPointerAligned): Use "!" instead of "==0" because a robot told me to. - - (JSC::MachineStackMarker::markConservatively): Changed to use a more - standard looping idiom, and to use the helper function above. - - * runtime/MarkedSpace.h: - (JSC::MarkedSpace::isCellAligned): Use "!" instead of "==0" because a robot told me to. - -2011-01-21 Geoffrey Garen - - Reviewed by Maciej Stachowiak. - - Cleaned up some conservative marking code. - https://bugs.webkit.org/show_bug.cgi?id=52946 - - SunSpider reports no change. - - * interpreter/RegisterFile.h: No need for a special marking function, - since we already expose a start() and end(). - - * runtime/Heap.cpp: - (JSC::Heap::registerFile): - (JSC::Heap::markRoots): - * runtime/Heap.h: - (JSC::Heap::contains): Migrated markConservatively() to the machine stack - marker class. Now, Heap just provides a contains() function, which the - machine stack marker uses for checking whether a pointer points into the heap. - - * runtime/MachineStackMarker.cpp: - (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal): - (JSC::MachineStackMarker::markOtherThreadConservatively): - (JSC::isPointerAligned): - (JSC::MachineStackMarker::markConservatively): - * runtime/MachineStackMarker.h: Move the conservative marking code here. - - * runtime/MarkStack.h: - (JSC::ConservativeSet::add): - (JSC::ConservativeSet::mark): Changed to using a vector instead of hash - set. Vector seems to be a bit faster, and it generates smaller code. - - * runtime/MarkedSpace.cpp: - (JSC::MarkedSpace::containsSlowCase): - * runtime/MarkedSpace.h: - (JSC::MarkedSpace::isCellAligned): - (JSC::MarkedSpace::isPossibleCell): - (JSC::MarkedSpace::contains): Kept the code for determining whether a - pointer pointed into marked space, and moved the code for marking - a set of conservative pointers into the machine stack marker. - - * wtf/HashSet.h: - (WTF::::add): Added two missing inlines that I noticed while testing - vector vs hash set. - -2011-01-21 Mark Rowe - - Reviewed by Sam Weinig. - - Work around a Clang bug that leads to it incorrectly emitting an access - control warning when a client tries to use operator bool exposed above via "using PageBlock::operator bool". - - * wtf/PageAllocation.h: - (WTF::PageAllocation::operator bool): - * wtf/PageReservation.h: - (WTF::PageReservation::operator bool): - -2011-01-21 Michael Saboff - - Reviewed by Oliver Hunt. - - [RegexFuzz] Hang with forward assertion - https://bugs.webkit.org/show_bug.cgi?id=52825 - - - The backtrackTo label from the first term in a list of terms is - being overwritten by processing of subsequent terms. Changed - copyBacktrackToLabel() to check for an existing bcaktrackTo label - before copying and renamed it to propagateBacktrackToLabel() since - it no longer copies. - - * yarr/YarrJIT.cpp: - (JSC::Yarr::YarrGenerator::BacktrackDestination::propagateBacktrackToLabel): - (JSC::Yarr::YarrGenerator::generateParenthesesSingle): - -2011-01-21 Geoffrey Garen - - Reviewed by Sam Weinig. - - Moved the mark stack from global data to the heap, since it pertains - to the heap, and not the virtual machine as a whole. - https://bugs.webkit.org/show_bug.cgi?id=52930 - - SunSpider reports no change. - - * runtime/Heap.cpp: - (JSC::Heap::Heap): - (JSC::Heap::markRoots): - * runtime/Heap.h: - * runtime/JSGlobalData.cpp: - (JSC::JSGlobalData::JSGlobalData): - * runtime/JSGlobalData.h: - -2011-01-21 Peter Gal - - Reviewed by Darin Adler. - - REGRESSION(r76177): All JavaScriptCore tests fail on ARM - https://bugs.webkit.org/show_bug.cgi?id=52814 - - Get the approximateByteSize value before releasing the OwnPtr. - - * parser/JSParser.cpp: - (JSC::JSParser::parseFunctionInfo): - -2011-01-21 Xan Lopez - - Reviewed by Martin Robinson. - - Remove unnecessary include - https://bugs.webkit.org/show_bug.cgi?id=52884 - - * jit/JIT.cpp: remove unnecessary include. - -2011-01-20 Ryosuke Niwa - - Reviewed by Maciej Stachowiak. - - Added OwnPtrCommon.h because OwnArrayPtr::set calls deleteOwnedPtr. - - * wtf/OwnArrayPtr.h: - -2011-01-20 Patrick Gansterer - - Reviewed by Oliver Hunt. - - [WINCE] Remove obsolete JSVALUE32 code - https://bugs.webkit.org/show_bug.cgi?id=52450 - - Remove the "offset hack" in create_jit_stubs, since we - only support JSVALUE32_64 in the meantime. - - * create_jit_stubs: Removed offset argument - * jit/JITStubs.cpp: - -2011-01-20 Geoffrey Garen - - Reviewed by Oliver Hunt. - - When marking conservatively, guard against reviving dead objects. - https://bugs.webkit.org/show_bug.cgi?id=52840 - - SunSpider and v8 say no change. - - * interpreter/RegisterFile.h: - (JSC::RegisterFile::markCallFrames): Updated to use the ConservativeSet API. - - * runtime/Heap.cpp: - (JSC::Heap::recordExtraCost): No need to guard against conservative - marking reviving dead objects anymore, since the conservative marking - mechanism guards against this now. - - (JSC::Heap::markConservatively): - (JSC::Heap::markProtectedObjects): - (JSC::Heap::markTempSortVectors): Don't drain the mark stack inside a - marking function. We want to establish a separation of concerns between - visiting roots and draining the mark stack. - - (JSC::Heap::markRoots): Gather the set of conservative references before - clearning mark bits, because conservative marking now uses the mark bits - to determine if a reference is valid, and avoid reviving dead objects. - - (JSC::Heap::collectAllGarbage): No need to guard against conservative - marking reviving dead objects anymore, since the conservative marking - mechanism guards against this now. - - * runtime/Heap.h: Updated to use the ConservativeSet API. - - * runtime/MachineStackMarker.cpp: - (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal): - (JSC::MachineStackMarker::markCurrentThreadConservatively): - (JSC::MachineStackMarker::markOtherThreadConservatively): - (JSC::MachineStackMarker::markMachineStackConservatively): - * runtime/MachineStackMarker.h: Ditto. - - * runtime/MarkStack.h: - (JSC::ConservativeSet::add): - (JSC::ConservativeSet::mark): Added ConservativeSet, for gathering the - set of conservative references. This is different from MarkStack, since - we don't mark the set until it is completely gathered. - - * runtime/MarkedSpace.cpp: - (JSC::MarkedSpace::freeBlock): - (JSC::MarkedSpace::resizeBlocks): - (JSC::MarkedSpace::markConservatively): - * runtime/MarkedSpace.h: When marking conservatively, guard against - reviving dead objects. - -2011-01-20 Siddharth Mathur - - Reviewed by Geoffrey Garen. - - [Symbian] Fix StackBounds::initialize() - https://bugs.webkit.org/show_bug.cgi?id=52842 - - * wtf/StackBounds.cpp: - (WTF::StackBounds::initialize): Use TThreadStackInfo.iLimit for stack limit - -2011-01-20 Michael Saboff - - Reviewed by Oliver Hunt. - - [RegexFuzz] Crash in generated code (52773) - https://bugs.webkit.org/show_bug.cgi?id=52773 - - Fixed case where an existing DataLabelPtr is overwritten. The - replacing DataLabelPtr is now resolved immediately in - linkDataLabelToBacktrackIfExists(). Cleanup - eliminated bool - return value for the routine as it was never used. - - * yarr/YarrJIT.cpp: - (JSC::Yarr::YarrGenerator::TermGenerationState::linkDataLabelToBacktrackIfExists): - -2011-01-20 Andras Becsi - - Reviewed by Csaba Osztrogonác. - - [Qt][WK2] WebKit2 enabled build fails to link - - Work around undefined reference linking issues until the buildsystem gets redesigned. - These issues first occured in minimal builds (see BUG 50519). - - * JavaScriptCore.pri: link as whole-archive for WebKit2 builds - -2011-01-20 Zoltan Horvath - - Reviewed by Csaba Osztrogonác. - - Refactoring of the custom allocation framework - https://bugs.webkit.org/show_bug.cgi?id=49897 - - Inheriting from FastAllocBase can result in objects getting larger (bug #33896, #46589). - The modification replaces Noncopyable and FastAllocBase classes and these inherits with their - equivalent macro implementation at the necessary places. - - * wtf/FastAllocBase.h: Turn FastAllocBase's implementation into a macro. - -2011-01-20 Mark Rowe - - Reviewed by Maciej Stachowiak. - - Follow-up to r75766 / . - - We were failing to initialize the key, causing all sorts of unexpected behavior. - - * wtf/FastMalloc.cpp: - (WTF::setThreadHeap): - (WTF::TCMalloc_ThreadCache::GetThreadHeap): - (WTF::TCMalloc_ThreadCache::InitTSD): Ensure that the key is initialized. - -2011-01-18 Geoffrey Garen - - Reviewed by Darin Adler. - - Rolled back in r76078, with crash fixed. - https://bugs.webkit.org/show_bug.cgi?id=52668 - - * runtime/JSGlobalObject.cpp: - (JSC::JSGlobalObject::markChildren): Account for the fact that the global - object moves its variables into and out of the register file. While out - of the register file, the symbol table's size is not an accurate count - for the size of the register array, since the BytecodeGenerator might - be compiling, adding items to the symbol table. - -2011-01-18 Darin Adler - - Reviewed by Geoffrey Garen. - - Stack overflow when converting an Error object to string - https://bugs.webkit.org/show_bug.cgi?id=46410 - - * Android.mk: Added StringRecursionChecker.cpp and - StringRecursionChecker.h. - * CMakeLists.txt: Ditto. - * GNUmakefile.am: Ditto. - * JavaScriptCore.gypi: Ditto. - * JavaScriptCore.pro: Ditto. - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Ditto. - * JavaScriptCore.xcodeproj/project.pbxproj: Ditto. - - * runtime/ArrayPrototype.cpp: - (JSC::arrayProtoFuncToString): Use StringRecursionChecker instead - of the older hand-written code to do the same thing. - (JSC::arrayProtoFuncToLocaleString): Ditto. - (JSC::arrayProtoFuncJoin): Ditto. - - * runtime/ErrorPrototype.cpp: - (JSC::errorProtoFuncToString): Use StringRecursionChecker. - - * runtime/JSGlobalData.h: Renamed arrayVisitedElements to - stringRecursionCheckVisitedObjects. - - * runtime/RegExpPrototype.cpp: - (JSC::regExpProtoFuncToString): Use StringRecursionChecker. - - * runtime/StringRecursionChecker.cpp: Added. - * runtime/StringRecursionChecker.h: Added. - -2011-01-19 Oliver Hunt - - Reviewed by Gavin Barraclough. - - Remove non-spec support for callable RegExp - https://bugs.webkit.org/show_bug.cgi?id=28285 - - Remove support for callable regexps. If it breaks sites we can - just roll this out. - - * runtime/RegExpObject.cpp: - * runtime/RegExpObject.h: - * tests/mozilla/expected.html: update results. - -2011-01-19 Antti Koivisto - - Reviewed by Oliver Hunt. - - Cache function offsets to speed up javascript parsing - https://bugs.webkit.org/show_bug.cgi?id=52622 - - Use cache to save function offsets and some other info. - This avoids quite a bit of work when reparsing the source. - - * parser/ASTBuilder.h: - * parser/JSParser.cpp: - (JSC::JSParser::CachedFunctionInfo::CachedFunctionInfo): - (JSC::JSParser::CachedFunctionInfo::approximateByteSize): - (JSC::JSParser::CachedFunctionInfo::closeBraceToken): - (JSC::JSParser::Scope::copyCapturedVariablesToVector): - (JSC::JSParser::Scope::saveFunctionInfo): - (JSC::JSParser::Scope::restoreFunctionInfo): - (JSC::JSParser::findCachedFunctionInfo): - (JSC::JSParser::JSParser): - (JSC::JSParser::parseProgram): - (JSC::JSParser::parseFunctionInfo): - * parser/Lexer.h: - (JSC::Lexer::setOffset): - (JSC::Lexer::setLineNumber): - (JSC::Lexer::sourceProvider): - * parser/SourceProvider.h: - (JSC::SourceProviderCache::SourceProviderCache): - (JSC::SourceProviderCache::~SourceProviderCache): - (JSC::SourceProviderCache::byteSize): - (JSC::SourceProviderCache::add): - (JSC::SourceProviderCache::get): - (JSC::SourceProvider::SourceProvider): - (JSC::SourceProvider::~SourceProvider): - (JSC::SourceProvider::cache): - (JSC::SourceProvider::notifyCacheSizeChanged): - (JSC::SourceProvider::cacheSizeChanged): - * parser/SyntaxChecker.h: - -2011-01-19 Mark Rowe - - Reviewed by Darin Adler. - - Follow-up to r75766 / . - - * DerivedSources.make: Evaluate the SDKROOT variable correctly. - -2011-01-19 Oliver Hunt - - Reviewed by Gavin Barraclough. - - [jsfunfuzz] Defining a function called __proto__ inside an eval triggers an assertion - https://bugs.webkit.org/show_bug.cgi?id=52672 - - Rather than coming up with a somewhat convoluted mechanism to ensure that - developers can override the global objects prototype with a function named - __proto__ and expect it to work, we just disallow it at the syntax level. - - * parser/JSParser.cpp: - (JSC::JSParser::parseFunctionInfo): - -2011-01-19 Michael Saboff - - Reviewed by Darin Adler. - - Regression: Simple nested backtrack hangs - https://bugs.webkit.org/show_bug.cgi?id=52675 - - The changeset (r76076) for https://bugs.webkit.org/show_bug.cgi?id=52540 - broke simple backtracking in some cases. Reworked that change to - link both jumps and labels. - - * yarr/YarrJIT.cpp: - (JSC::Yarr::YarrGenerator::BacktrackDestination::hasBacktrackToLabel): - (JSC::Yarr::YarrGenerator::TermGenerationState::propagateBacktrackingFrom): - (JSC::Yarr::YarrGenerator::generateParenthesesSingle): - -2011-01-19 Pavel Podivilov - - Reviewed by Yury Semikhatsky. - - Web Inspector: [JSC] scripts have incorrect starting line (always 1). - https://bugs.webkit.org/show_bug.cgi?id=52721 - - * debugger/Debugger.cpp: - (JSC::Debugger::recompileAllJSFunctions): - * debugger/Debugger.h: - * parser/Parser.h: - (JSC::Parser::parse): - * parser/SourceCode.h: - (JSC::SourceCode::SourceCode): - * parser/SourceProvider.h: - (JSC::SourceProvider::startPosition): - -2011-01-19 Csaba Osztrogonác - - Reviewed by Laszlo Gombos and Tor Arne Vestbø. - - [Qt] Remove unnecessary "../Source" from paths - after moving source files into Source is finished. - - * JavaScriptCore.pri: - -2011-01-19 Benjamin Kalman - - Reviewed by Darin Adler. - - Don't return void from void function String::split - https://bugs.webkit.org/show_bug.cgi?id=52684 - - * wtf/text/WTFString.cpp: - (WTF::String::split): - -2011-01-18 Kenneth Russell - - Unreviewed, rolling out r76078. - http://trac.webkit.org/changeset/76078 - https://bugs.webkit.org/show_bug.cgi?id=52668 - - Caused crashes of fast/canvas/webgl/constants.html, - fast/canvas/webgl/gl-enum-tests.html, and possibly other layout - test crashes in Release mode. WebGL crashes were observed with - "run-webkit-tests fast/canvas/webgl". It was necessary to run - multiple tests to provoke the crash. - - * interpreter/RegisterFile.h: - (JSC::RegisterFile::markGlobals): - * runtime/JSActivation.cpp: - (JSC::JSActivation::markChildren): - * runtime/JSGlobalObject.cpp: - (JSC::JSGlobalObject::markChildren): - -2011-01-18 Oliver Hunt - - Reviewed by Gavin Barraclough. - - [jsfunfuzz] Assertion asking activation for arguments when arguments is overridden - https://bugs.webkit.org/show_bug.cgi?id=52690 - - Clean up code to retrieve arguments from activation and function objects. - Remove the incorrect assertion from JSActivation's argumentsGetter. - - * interpreter/Interpreter.cpp: - (JSC::Interpreter::retrieveArguments): - * runtime/JSActivation.cpp: - (JSC::JSActivation::argumentsGetter): - -2011-01-18 Geoffrey Garen - - Reviewed by Darin Adler. - - Removed RegisterFile::markGlobals because it was obtuse, and it - unnecessarily relied on conservative marking. - https://bugs.webkit.org/show_bug.cgi?id=52668 - - * interpreter/RegisterFile.h: Removed markGlobals. - - * runtime/JSActivation.cpp: - (JSC::JSActivation::markChildren): Added a comment explaning why some - JSActivations don't always mark their registers arrays. - - * runtime/JSGlobalObject.cpp: - (JSC::JSGlobalObject::markChildren): Instead of calling markGlobals, mark - the registers array directly. - -2011-01-18 Michael Saboff - - Reviewed by Oliver Hunt. - - Regression: Some text-only e-mails cause hang beneath RegExp::match (52540) - https://bugs.webkit.org/show_bug.cgi?id=52540 - https://bugs.webkit.org/show_bug.cgi?id=52662 - - Directly use backtrack label with parentheses nested under a - non-capturing parentheses. Also linked current parentheses - tail code object for possible parens nested within a non-capturing - parentheses. - - * yarr/YarrJIT.cpp: - (JSC::Yarr::YarrGenerator::BacktrackDestination::linkBacktrackToLabel): - (JSC::Yarr::YarrGenerator::generateParenthesesSingle): - -2011-01-18 Daniel Bates - - Reviewed by Gavin Barraclough. - - Only use moving memory model assumption in ExecutableAllocator::intializePageSize() for Symbian OS - https://bugs.webkit.org/show_bug.cgi?id=52517 - - Patch by David Tapuska - - Currently, we compile code with respect to the Symbian-specific moving memory model - assumption for all ARMv5 or lower architectures. Instead, we should only compile - such code when building for Symbian OS on those architectures because this model - is Symbian-specific. - - * jit/ExecutableAllocator.cpp: - (JSC::ExecutableAllocator::intializePageSize): - -2011-01-18 Dimitry Andric - - Reviewed by Andreas Kling. - - Fix linking JavaScriptCore on FreeBSD/amd64 - https://bugs.webkit.org/show_bug.cgi?id=52591 - - Linking of JavaScriptCore on FreeBSD/amd64 fails, for the same reason as - in bug 28422: cti_vm_throw needs a "@plt" suffix, otherwise the linker - complains about the relocation type. - - * jit/JITStubs.cpp: use @plt suffix on x86_64 platforms, for both Linux - and FreeBSD. - -2011-01-18 Oliver Hunt - - Reviewed by Antti Koivisto. - - [jsfunfuzz] Assertion in codegen for array of NaN constants - https://bugs.webkit.org/show_bug.cgi?id=52643 - - Don't cache NaN literals in the code generator, as NaN doesn't compare - as equal to itself it causes problems when rehashing the number cache. - - * bytecompiler/BytecodeGenerator.cpp: - (JSC::BytecodeGenerator::emitLoad): - -2011-01-17 Jarred Nicholls - - Reviewed by Csaba Osztrogonác. - - REGRESSION(r75709): Return value of fscanf() shouldn't be ignored. - https://bugs.webkit.org/show_bug.cgi?id=52585 - - gcc 4.4.4+ has warn_unused_value attribute on fscanf, so we should check - the return value to get around the gcc warning - - * jit/ExecutableAllocatorFixedVMPool.cpp: - (JSC::maybeModifyVMPoolSize): - -2011-01-17 Michael Saboff - - Reviewed by Oliver Hunt. - - [regexfuzz] Crash running regex with lookahead - https://bugs.webkit.org/show_bug.cgi?id=52548 - - Eliminated agressive chaining of backtracks. This code was overwriting - already valid backtrack information. - - * yarr/YarrJIT.cpp: - (JSC::Yarr::YarrGenerator::ParenthesesTail::processBacktracks): - -2011-01-17 Tony Gentilcore - - Reviewed by Alexey Proskuryakov. - - Fix some headers with missing or misspelled #ifndef guards - https://bugs.webkit.org/show_bug.cgi?id=52545 - - * wtf/RefPtrHashMap.h: - -2011-01-17 Dan Bernstein - - Rubber-stamped by Mark Rowe. - - Update xcodeproj svn:ignore to include xcuserdata. - - * JavaScriptCore.xcodeproj: Modified property svn:ignore. - -2011-01-16 Adam Barth - - Rubber-stamped by Eric Seidel. - - Move WebKit into Source - https://bugs.webkit.org/show_bug.cgi?id=52530 - - * JavaScriptCore.gyp/JavaScriptCore.gyp: - -2011-01-16 Oliver Hunt - - Reviewed by Sam Weinig. - - [jsfunfuzz] Parser doesn't correctly validate for-loop syntax - https://bugs.webkit.org/show_bug.cgi?id=52516 - - Ensure that we always check for a semicolon after encountering - multiple declarations in the initialiser portion of a for-loop. - - * parser/JSParser.cpp: - (JSC::JSParser::parseForStatement): - -2011-01-16 Oliver Hunt - - Reviewed by Geoffrey Garen. - - Strict mode restrictions on arguments and eval usage aren't complete - https://bugs.webkit.org/show_bug.cgi?id=52528 - - Fix a few bugs in strict mode where we incorrect allow mutation of - arguments and eval in the parser. - - Alas the "optimisation" used by the syntax checker for validating - binary and unary expressions was too aggressive: we do actually need - a stack for operations and operands although it needn't be as complete - as that used for the full AST builder. - - Also disallow assignment to arguments in all cases as allowing arguments - to be assignable is always an error in strict mode, regardless of context. - - * parser/ASTBuilder.h: - (JSC::ASTBuilder::BinaryExprContext::BinaryExprContext): - (JSC::ASTBuilder::UnaryExprContext::UnaryExprContext): - * parser/JSParser.cpp: - (JSC::JSParser::parseAssignmentExpression): - (JSC::JSParser::parseBinaryExpression): - (JSC::JSParser::parseUnaryExpression): - * parser/SyntaxChecker.h: - (JSC::SyntaxChecker::BinaryExprContext::BinaryExprContext): - (JSC::SyntaxChecker::BinaryExprContext::~BinaryExprContext): - (JSC::SyntaxChecker::UnaryExprContext::UnaryExprContext): - (JSC::SyntaxChecker::UnaryExprContext::~UnaryExprContext): - (JSC::SyntaxChecker::appendBinaryExpressionInfo): - (JSC::SyntaxChecker::operatorStackPop): - -2011-01-15 Geoffrey Garen - - Reviewed by Oliver Hunt. - - Rolled back in r75886. - https://bugs.webkit.org/show_bug.cgi?id=52527 - - r75886 broke the GTK Linux bot because Linux was -- quite surprisingly -- - set up to use the constants for embedded devices. - - * jit/ExecutableAllocatorFixedVMPool.cpp: - (JSC::maybeModifyVMPoolSize): Separated Linux constants from embedded - constants. - -2011-01-15 Sheriff Bot - - Unreviewed, rolling out r75886. - http://trac.webkit.org/changeset/75886 - https://bugs.webkit.org/show_bug.cgi?id=52526 - - "Broke GTK+ 64bit" (Requested by xan_ on #webkit). - - * jit/ExecutableAllocatorFixedVMPool.cpp: - -2011-01-15 Geoffrey Garen - - Reviewed by Sam Weinig. - - Shrink the executable pool on embedded devices - - * jit/ExecutableAllocatorFixedVMPool.cpp: Dropped the pool size from 32MB - to 16MB. - -2011-01-15 Oliver Hunt - - Reviewed by Maciej Stachowiak. - - Incorrect behavior changing attributes of an accessor - https://bugs.webkit.org/show_bug.cgi?id=52515 - - defineProperty doesn't correctly handle changing attributes of an accessor - property. This is because we don't pass the full descriptor to the - putDescriptor helper function, which means we have insufficient information - to do the right thing. Once that's passed the correct behavior is relatively - simple to implement. - - * runtime/JSObject.cpp: - (JSC::putDescriptor): - (JSC::JSObject::defineOwnProperty): - -2011-01-14 Oliver Hunt - - Reviewed by Maciej Stachowiak. - - [jsfunfuzz] Incorrect handling of consecutive duplicate labels - https://bugs.webkit.org/show_bug.cgi?id=52505 - - Compare StringImpl*'s instead of Identifier*'s when looking for duplicate - labels. - - * parser/JSParser.cpp: - (JSC::JSParser::parseExpressionOrLabelStatement): - -2011-01-14 Simon Fraser - - No review. - - Initialize m_operationInProgress after r75855. - - * runtime/Heap.cpp: - (JSC::Heap::Heap): - -2011-01-14 Geoffrey Garen - - Reverted accidentally committed code from my last checkin. - - * runtime/Heap.cpp: - (JSC::Heap::markRoots): - -2011-01-14 Geoffrey Garen - - Reviewed by Sam Weinig. - - Try to fix the GTK bot. - - * runtime/Heap.cpp: - (JSC::Heap::Heap): - (JSC::Heap::markRoots): Kids, remember to initialize your data members. - Knowing is half the battle. - -2011-01-14 Oliver Hunt - - Reviewed by Stephanie Lewis. - - [jsfunfuzz] We should be clearing the lexers temporary character buffers when switching to strict mode - https://bugs.webkit.org/show_bug.cgi?id=52501 - - Clear the temporary character buffers used for reading escaped characters and - numbers. - - * parser/Lexer.h: - (JSC::Lexer::setOffset): - -2011-01-14 Geoffrey Garen - - Try to fix non-Dtrace builds: #include Tracing.h instead of TracingDtrace.h. - - * runtime/Heap.cpp: - -2011-01-13 Geoffrey Garen - - Reviewed by Oliver Hunt. - - Split out a MarkedSpace strategy object from Heap. - https://bugs.webkit.org/show_bug.cgi?id=52421 - - SunSpider reports no change. - - * Android.mk: - * CMakeLists.txt: - * GNUmakefile.am: - * JavaScriptCore.gypi: - * JavaScriptCore.pro: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: - * JavaScriptCore.xcodeproj/project.pbxproj: Updated our 7 build systems. Which is cool. - - * runtime/Heap.cpp: - (JSC::Heap::Heap): - (JSC::Heap::destroy): - (JSC::Heap::recordExtraCost): - (JSC::Heap::allocate): - (JSC::Heap::markConservatively): - (JSC::Heap::markRoots): - (JSC::Heap::objectCount): - (JSC::Heap::statistics): - (JSC::Heap::size): - (JSC::Heap::isBusy): - (JSC::Heap::collectAllGarbage): - (JSC::Heap::primaryHeapBegin): - (JSC::Heap::primaryHeapEnd): - * runtime/Heap.h: - (JSC::Heap::globalData): - (JSC::Heap::markedSpace): - (JSC::Heap::isCellMarked): - (JSC::Heap::checkMarkCell): - (JSC::Heap::markCell): Moved all code pertaining to managing chunks of - collector memory out of this class. Heap now just delegates to MarkedSpace. - - * runtime/JSCell.h: - (JSC::JSCell::Heap::heap): Updated for MarkedSpace delegation. - - * runtime/JSValue.h: Moved the ValueStringPair typedef to help with #includes. - - * runtime/MarkedSpace.cpp: Copied from runtime/Heap.cpp. - (JSC::MarkedSpace::MarkedSpace): - (JSC::MarkedSpace::destroy): - (JSC::MarkedSpace::allocateBlock): - (JSC::MarkedSpace::freeBlock): - (JSC::MarkedSpace::allocate): - (JSC::MarkedSpace::resizeBlocks): - (JSC::MarkedSpace::growBlocks): - (JSC::MarkedSpace::shrinkBlocks): - (JSC::MarkedSpace::markConservatively): - (JSC::MarkedSpace::clearMarkBits): - (JSC::MarkedSpace::markedCells): - (JSC::MarkedSpace::sweep): - (JSC::MarkedSpace::objectCount): - (JSC::MarkedSpace::addToStatistics): - (JSC::MarkedSpace::statistics): - (JSC::MarkedSpace::size): - (JSC::MarkedSpace::reset): - (JSC::MarkedSpace::primaryHeapBegin): - (JSC::MarkedSpace::primaryHeapEnd): - * runtime/MarkedSpace.h: Copied from runtime/Heap.h. - (JSC::MarkedSpace::globalData): - (JSC::MarkedSpace::didShrink): - (JSC::MarkedSpace::cellBlock): - (JSC::MarkedSpace::cellOffset): - (JSC::MarkedSpace::isCellMarked): - (JSC::MarkedSpace::checkMarkCell): - (JSC::MarkedSpace::markCell): Moved all code pertaining to managing chunks of - collector memory into this class. - - * runtime/MemoryStatistics.cpp: - (JSC::heapStatistics): - * runtime/MemoryStatistics.h: Updated for MarkedSpace delegation. - -2011-01-14 Oliver Hunt - - Reviewed by Gavin Barraclough. - - [jsfunfuzz] parser doesn't enforce continue restrictions correctly. - https://bugs.webkit.org/show_bug.cgi?id=52493 - - This patch reworks handling of break, continue and label statements - to correctly handle all the valid and invalid cases. Previously certain - errors would be missed by the parser in strict mode, but the bytecode - generator needed to handle those cases for non-strict code so nothing - failed, it simply became non-standard behaviour. - - Now that we treat break and continue errors as early faults in non-strict - mode as well that safety net has been removed so the parser bugs result in - crashes at codegen time. - - * parser/JSParser.cpp: - (JSC::JSParser::ScopeLabelInfo::ScopeLabelInfo): - (JSC::JSParser::next): - (JSC::JSParser::nextTokenIsColon): - (JSC::JSParser::continueIsValid): - Continue is only valid in loops so we can't use breakIsValid() - (JSC::JSParser::pushLabel): - We now track whether the label is for a loop (and is therefore a - valid target for continue. - (JSC::JSParser::popLabel): - (JSC::JSParser::getLabel): - Replace hasLabel with getLabel so that we can validate the target - when parsing continue statements. - (JSC::JSParser::Scope::continueIsValid): - (JSC::JSParser::Scope::pushLabel): - (JSC::JSParser::Scope::getLabel): - (JSC::JSParser::JSParser): - (JSC::JSParser::parseBreakStatement): - (JSC::JSParser::parseContinueStatement): - (JSC::LabelInfo::LabelInfo): - (JSC::JSParser::parseExpressionOrLabelStatement): - Consecutive labels now get handled iteratively so that we can determine - whether they're valid targets for continue. - * parser/Lexer.cpp: - (JSC::Lexer::nextTokenIsColon): - * parser/Lexer.h: - (JSC::Lexer::setOffset): - -2011-01-14 Patrick Gansterer - - Reviewed by Adam Roben. - - Use the Windows thread pool instead of an extra thread for FastMalloc scavenging - https://bugs.webkit.org/show_bug.cgi?id=45186 - - * wtf/FastMalloc.cpp: - (WTF::TCMalloc_PageHeap::scheduleScavenger): Added missing this pointer to CreateTimerQueueTimer(). - -2011-01-14 Patrick Gansterer - - Reviewed by Adam Roben. - - Use the Windows thread pool instead of an extra thread for FastMalloc scavenging - https://bugs.webkit.org/show_bug.cgi?id=45186 - - r75819 accidentally changed the initial state of the scavenge timer. - - * wtf/FastMalloc.cpp: - (WTF::TCMalloc_PageHeap::initializeScavenger): Changed initial state of m_scavengingSuspended to true. - -2011-01-14 Patrick Gansterer - - Unreviewed Windows Release build fix. - - * wtf/FastMalloc.cpp: - (WTF::TCMalloc_PageHeap::scavengerTimerFired): - -2011-01-14 Patrick Gansterer - - Unreviewed Windows Release build fix. - - * wtf/FastMalloc.cpp: - (WTF::TCMalloc_PageHeap::scavengerTimerFired): - -2011-01-14 Patrick Gansterer - - Reviewed by Adam Roben. - - Use the Windows thread pool instead of an extra thread for FastMalloc scavenging - https://bugs.webkit.org/show_bug.cgi?id=45186 - - Use CreateTimerQueueTimer() to start periodicScavenge() and stop it with DeleteTimerQueueTimer(). - - * wtf/FastMalloc.cpp: - (WTF::TCMalloc_PageHeap::initializeScavenger): - (WTF::TCMalloc_PageHeap::isScavengerSuspended): - (WTF::TCMalloc_PageHeap::scheduleScavenger): - (WTF::TCMalloc_PageHeap::rescheduleScavenger): - (WTF::TCMalloc_PageHeap::suspendScavenger): - (WTF::scavengerTimerFired): - (WTF::TCMalloc_PageHeap::periodicScavenge): - (WTF::TCMalloc_PageHeap::signalScavenger): - -2011-01-14 Laszlo Gombos - - Reviewed by Kenneth Rohde Christiansen. - - Align import/export directives - https://bugs.webkit.org/show_bug.cgi?id=52208 - - * API/JSBase.h: Align import/export directives with - WebKit2/Shared/API/c/WKBase.h - -2011-01-14 Michael Saboff - - Reviewed by Oliver Hunt. - - Incorrect backtracking for nested alternatives - https://bugs.webkit.org/show_bug.cgi?id=52387 - - In the process of propigating a datalabel it wasn't getting connected - to a destination when the destination was an indirect jump. Added - code to recognize a direct backtrack destination that was an indirect - jump and added mechanism to associate DataLabelPtrs with indirect - jump entries. - Removed dead method - BacktrackDestination::linkDataLabelToHereIfExists() - - * yarr/YarrJIT.cpp: - (JSC::Yarr::YarrGenerator::IndirectJumpEntry::IndirectJumpEntry): - (JSC::Yarr::YarrGenerator::IndirectJumpEntry::addDataLabel): - (JSC::Yarr::YarrGenerator::GenerationState::addIndirectJumpEntry): - (JSC::Yarr::YarrGenerator::GenerationState::emitIndirectJumpTable): - Changes to link indirect jumps with DataLabelPtr's. - (JSC::Yarr::YarrGenerator::BacktrackDestination::clearSubDataLabelPtr): - (JSC::Yarr::YarrGenerator::TermGenerationState::linkDataLabelToBacktrackIfExists): - Updated to handle immediate linking of indirect jumps to - DataLabelPtr. - (JSC::Yarr::YarrGenerator::generateParenthesesDisjunction): Changed to - reflect updated linkDataLabelToBacktrackIfExists(). - -2011-01-14 Pavel Podivilov - - Reviewed by Yury Semikhatsky. - - Web Inspector: provide script column offset to frontend. - https://bugs.webkit.org/show_bug.cgi?id=52377 - - * parser/SourceCode.h: - (JSC::SourceCode::SourceCode): - (JSC::SourceCode::firstColumn): - -2011-01-13 Darin Adler - - Reviewed by Geoff Garen. - - Use __PTK_FRAMEWORK_JAVASCRIPTCORE_KEY0 if available. - - * DerivedSources.make: Create a header file, HeaderDetection.h, that tells - us whether pthread_machdep.h is available. - * wtf/FastMalloc.cpp: If __PTK_FRAMEWORK_JAVASCRIPTCORE_KEY0 is available, then - don't do the pthread_getspecific_function_pointer trick. - (WTF::setThreadHeap): Ditto, but set thread-specific data. - (WTF::TCMalloc_ThreadCache::GetThreadHeap): Ditto, but get rather than set. - -2011-01-13 Xan Lopez - - Reviewed by Gavin Barraclough. - - JIT requires VM overcommit (particularly on x86-64), Linux does not by default support this without swap? - https://bugs.webkit.org/show_bug.cgi?id=42756 - - The FixedVMPool Allocator does not work well on systems where - allocating very large amounts of memory upfront is not reasonable, - like Linux without overcommit enabled. As a workaround, on Linux, - default to the values used in embedded environments (in the MB - range), and only jump to the GB range if we detect at runtime that - overcommit is enabled. Should fix crashes on Linux/x86_64 with - less than 3 or 4GB of RAM. - - * jit/ExecutableAllocatorFixedVMPool.cpp: - (JSC::FixedVMPoolAllocator::free): use new variables for VM pool - size and coalesce limit. - (JSC::ExecutableAllocator::isValid): swap the variables from - embedded to generic values at runtime, on linux, if overcommit is - enabled. - (JSC::ExecutableAllocator::underMemoryPressure): use new variables - for VM pool size and coalesce limit. - -2011-01-12 Xan Lopez - - Reviewed by Martin Robinson. - - Add new Yarr.h header to the list file. - - * GNUmakefile.am: ditto. - -2011-01-12 Martin Robinson - - Missing Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h in WebKitGtk tarball - https://bugs.webkit.org/show_bug.cgi?id=52299 - - * GNUmakefile.am: Fix the GTK+ build on ARMv7 by including missing source - files in the source list. - -2011-01-12 Peter Varga - - Reviewed by Gavin Barraclough. - - Add Yarr.h to YARR - https://bugs.webkit.org/show_bug.cgi?id=51021 - - Move other common constants and functions from YARR's different files - to Yarr.h. - Use Yarr.h header instead of including other YARR headers where it - is possible. - - * JavaScriptCore.gypi: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: - * JavaScriptCore.xcodeproj/project.pbxproj: - * runtime/RegExp.cpp: - * yarr/Yarr.h: Added. - * yarr/YarrInterpreter.cpp: - * yarr/YarrInterpreter.h: - * yarr/YarrJIT.cpp: - (JSC::Yarr::jitCompile): - (JSC::Yarr::execute): - * yarr/YarrJIT.h: - * yarr/YarrParser.h: - * yarr/YarrPattern.cpp: - (JSC::Yarr::YarrPattern::compile): - (JSC::Yarr::YarrPattern::YarrPattern): - * yarr/YarrPattern.h: - -2011-01-12 Sheriff Bot - - Unreviewed, rolling out r75595. - http://trac.webkit.org/changeset/75595 - https://bugs.webkit.org/show_bug.cgi?id=52286 - - It broke fast/regex/pcre-test-1.html (Requested by Ossy on - #webkit). - - * JavaScriptCore.gypi: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: - * JavaScriptCore.xcodeproj/project.pbxproj: - * runtime/RegExp.cpp: - * yarr/Yarr.h: Removed. - * yarr/YarrInterpreter.cpp: - * yarr/YarrInterpreter.h: - * yarr/YarrJIT.cpp: - (JSC::Yarr::jitCompile): - * yarr/YarrJIT.h: - (JSC::Yarr::execute): - * yarr/YarrParser.h: - * yarr/YarrPattern.cpp: - (JSC::Yarr::compile): - (JSC::Yarr::YarrPattern::YarrPattern): - * yarr/YarrPattern.h: - -2011-01-12 Peter Varga - - Reviewed by Gavin Barraclough. - - Add Yarr.h to YARR - https://bugs.webkit.org/show_bug.cgi?id=51021 - - Move other common constants and functions from YARR's different files - to Yarr.h. - Use Yarr.h header instead of including other YARR headers where it - is possible. - - * JavaScriptCore.gypi: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: - * JavaScriptCore.xcodeproj/project.pbxproj: - * runtime/RegExp.cpp: - * yarr/Yarr.h: Added. - * yarr/YarrInterpreter.cpp: - * yarr/YarrInterpreter.h: - * yarr/YarrJIT.cpp: - (JSC::Yarr::jitCompile): - (JSC::Yarr::execute): - * yarr/YarrJIT.h: - * yarr/YarrParser.h: - * yarr/YarrPattern.cpp: - (JSC::Yarr::YarrPattern::compile): - (JSC::Yarr::YarrPattern::YarrPattern): - * yarr/YarrPattern.h: - -2011-01-11 Michael Saboff - - Reviewed by Geoffrey Garen. - - Missing call to popTempSortVector() for exception case in JSArray::sort. - https://bugs.webkit.org/show_bug.cgi?id=50718 - - Fix to patch of 50718 that added pushTempSortVector() and - popTempSortVector() to JSArray::sort() to mark elements during sort. - Need to add popTempSortVector() for the return case if toString() - had an exception. - - * runtime/JSArray.cpp: - (JSC::JSArray::sort): Added popTempSortVector() - -2011-01-11 Xan Lopez - - Reviewed by Darin Adler. - - Microoptimization in ~JSString - https://bugs.webkit.org/show_bug.cgi?id=52222 - - The case where m_fibers is 0 seems to be the most common one - (almost 1/2 of the time, followed at some distance by m_fibers = 1 - in 1/4 of the cases in a typical SunSpider execution). We can save - one comparison in this common case by doing a bit of refactoring - in the JSString destructor; overall a 0.3% progression, but only - the string tests show improvement. - - * runtime/JSString.h: - (JSC::RopeBuilder::~JSString): - -2011-01-10 Michael Saboff - - Reviewed by Geoffrey Garen. - - ASSERTION Failure in JSC::binaryChop - https://bugs.webkit.org/show_bug.cgi?id=25614 - - Changed JITStubs::cti_register_file_check() to use the current stack's - return PC to find the bytecode for handling the exception in the prior - frame. Also added the appropriate arrity check routine call to the - JIT to bytecode vector (m_callReturnIndexVector) in the CodeBlock. - - * jit/JIT.cpp: - (JSC::JIT::privateCompile): Changed the arrity check call location - so that it gets added to the m_calls list so that it's included in - CodeBlock::m_callReturnIndexVector. - * jit/JITStubs.cpp: - (JSC::DEFINE_STUB_FUNCTION): Use the current call frame's return PC. - -2011-01-10 Daniel Bates - - Reviewed by Martin Robinson. - - Remove extraneous COMPILER(GCC) condition when checking GCC_VERSION_AT_LEAST() - https://bugs.webkit.org/show_bug.cgi?id=52178 - - It is sufficient to test GCC_VERSION_AT_LEAST() instead of both COMPILER(GCC) and - GCC_VERSION_AT_LEAST(). Notice GCC_VERSION_AT_LEAST() is defined to be 0 when we - are not compiling with GCC. - - Fixes style issues at the callsites (i.e. replace comma with comma-space in - macro function argument list). Also, makes a spelling correction in a comment. - - * jit/ExecutableAllocator.h: - (JSC::ExecutableAllocator::cacheFlush): - * wtf/Platform.h: - -2011-01-10 Geoffrey Garen - - Build fix: removed some uses of nextNumber that I missed last time. - - * runtime/Heap.cpp: - (JSC::Heap::reset): - (JSC::Heap::collectAllGarbage): - -2011-01-10 Daniel Bates - - Reviewed by Darin Adler. - - Use __builtin_expect when compiling using RVCT in GNU mode - https://bugs.webkit.org/show_bug.cgi?id=51866 - - We should only use __builtin_expect if we are compiling with GCC or RVCT 3 or higher in GNU mode - as pointed out by Siddharth Mathur per . - - * wtf/AlwaysInline.h: - * wtf/Platform.h: Removed define WTF_COMPILER_RVCT4_OR_GREATER. Instead added macro - function RVCT_VERSION_AT_LEAST so that we can test for an arbitrary minimum RVCT - version. - -2011-01-10 Geoffrey Garen - - Reviewed by Oliver Hunt. - - Moved Collector.* => Heap.*, since the file contains a class named "Heap". - - * API/JSCallbackObject.cpp: - * Android.mk: - * CMakeLists.txt: - * GNUmakefile.am: - * JavaScriptCore.gypi: - * JavaScriptCore.pro: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: - * JavaScriptCore.xcodeproj/project.pbxproj: - * interpreter/Interpreter.cpp: - * interpreter/RegisterFile.h: - * jit/JITStubs.cpp: - * runtime/Collector.cpp: Removed. - * runtime/Collector.h: Removed. - * runtime/CollectorHeapIterator.h: - * runtime/GCActivityCallbackCF.cpp: - * runtime/Heap.cpp: Copied from JavaScriptCore/runtime/Collector.cpp. - * runtime/Heap.h: Copied from JavaScriptCore/runtime/Collector.h. - * runtime/InitializeThreading.cpp: - * runtime/JSCell.h: - * runtime/JSGlobalData.cpp: - * runtime/JSGlobalData.h: - * runtime/JSLock.cpp: - * runtime/JSNumberCell.h: - * runtime/MachineStackMarker.cpp: - * runtime/MemoryStatistics.h: - * runtime/Protect.h: - * runtime/UString.cpp: - * runtime/WeakGCMap.h: - * runtime/WeakGCPtr.h: - -2011-01-10 Xan Lopez - - Reviewed by Gavin Barraclough. - - Remove unused isString() case in JSString::toPrimitiveString() - https://bugs.webkit.org/show_bug.cgi?id=52167 - - We never call toPrimitiveString() with strings, so remove the - check and add an ASSERT ensuring this never happens. 0.7% overall - progression in sunspider, since one of the call sites is very hot. - - * runtime/JSString.h: - (JSC::JSValue::toPrimitiveString): - -2011-01-10 Peter Varga - - Reviewed by Gavin Barraclough. - - Rename the existing YARR files and classes - https://bugs.webkit.org/show_bug.cgi?id=51872 - - Replace the "Regex" prefix with "Yarr" in the name of YARR files and classes. - - * Android.mk: - * CMakeLists.txt: - * GNUmakefile.am: - * JavaScriptCore.gypi: - * JavaScriptCore.pro: - * JavaScriptCore.xcodeproj/project.pbxproj: - * runtime/RegExp.cpp: - (JSC::RegExp::compile): - (JSC::RegExp::match): - (JSC::RegExp::printTraceData): - * yarr/YarrInterpreter.cpp: Renamed from Source/JavaScriptCore/yarr/RegexInterpreter.cpp. - (JSC::Yarr::Interpreter::appendParenthesesDisjunctionContext): - (JSC::Yarr::Interpreter::popParenthesesDisjunctionContext): - (JSC::Yarr::Interpreter::DisjunctionContext::DisjunctionContext): - (JSC::Yarr::Interpreter::DisjunctionContext::operator new): - (JSC::Yarr::Interpreter::allocDisjunctionContext): - (JSC::Yarr::Interpreter::freeDisjunctionContext): - (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::ParenthesesDisjunctionContext): - (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::operator new): - (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::restoreOutput): - (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::getDisjunctionContext): - (JSC::Yarr::Interpreter::allocParenthesesDisjunctionContext): - (JSC::Yarr::Interpreter::freeParenthesesDisjunctionContext): - (JSC::Yarr::Interpreter::InputStream::InputStream): - (JSC::Yarr::Interpreter::InputStream::next): - (JSC::Yarr::Interpreter::InputStream::rewind): - (JSC::Yarr::Interpreter::InputStream::read): - (JSC::Yarr::Interpreter::InputStream::readPair): - (JSC::Yarr::Interpreter::InputStream::readChecked): - (JSC::Yarr::Interpreter::InputStream::reread): - (JSC::Yarr::Interpreter::InputStream::prev): - (JSC::Yarr::Interpreter::InputStream::getPos): - (JSC::Yarr::Interpreter::InputStream::setPos): - (JSC::Yarr::Interpreter::InputStream::atStart): - (JSC::Yarr::Interpreter::InputStream::atEnd): - (JSC::Yarr::Interpreter::InputStream::checkInput): - (JSC::Yarr::Interpreter::InputStream::uncheckInput): - (JSC::Yarr::Interpreter::InputStream::isNotAvailableInput): - (JSC::Yarr::Interpreter::testCharacterClass): - (JSC::Yarr::Interpreter::checkCharacter): - (JSC::Yarr::Interpreter::checkCasedCharacter): - (JSC::Yarr::Interpreter::checkCharacterClass): - (JSC::Yarr::Interpreter::tryConsumeBackReference): - (JSC::Yarr::Interpreter::matchAssertionBOL): - (JSC::Yarr::Interpreter::matchAssertionEOL): - (JSC::Yarr::Interpreter::matchAssertionWordBoundary): - (JSC::Yarr::Interpreter::backtrackPatternCharacter): - (JSC::Yarr::Interpreter::backtrackPatternCasedCharacter): - (JSC::Yarr::Interpreter::matchCharacterClass): - (JSC::Yarr::Interpreter::backtrackCharacterClass): - (JSC::Yarr::Interpreter::matchBackReference): - (JSC::Yarr::Interpreter::backtrackBackReference): - (JSC::Yarr::Interpreter::recordParenthesesMatch): - (JSC::Yarr::Interpreter::resetMatches): - (JSC::Yarr::Interpreter::parenthesesDoBacktrack): - (JSC::Yarr::Interpreter::matchParenthesesOnceBegin): - (JSC::Yarr::Interpreter::matchParenthesesOnceEnd): - (JSC::Yarr::Interpreter::backtrackParenthesesOnceBegin): - (JSC::Yarr::Interpreter::backtrackParenthesesOnceEnd): - (JSC::Yarr::Interpreter::matchParenthesesTerminalBegin): - (JSC::Yarr::Interpreter::matchParenthesesTerminalEnd): - (JSC::Yarr::Interpreter::backtrackParenthesesTerminalBegin): - (JSC::Yarr::Interpreter::backtrackParenthesesTerminalEnd): - (JSC::Yarr::Interpreter::matchParentheticalAssertionBegin): - (JSC::Yarr::Interpreter::matchParentheticalAssertionEnd): - (JSC::Yarr::Interpreter::backtrackParentheticalAssertionBegin): - (JSC::Yarr::Interpreter::backtrackParentheticalAssertionEnd): - (JSC::Yarr::Interpreter::matchParentheses): - (JSC::Yarr::Interpreter::backtrackParentheses): - (JSC::Yarr::Interpreter::lookupForBeginChars): - (JSC::Yarr::Interpreter::matchDisjunction): - (JSC::Yarr::Interpreter::matchNonZeroDisjunction): - (JSC::Yarr::Interpreter::interpret): - (JSC::Yarr::Interpreter::Interpreter): - (JSC::Yarr::ByteCompiler::ParenthesesStackEntry::ParenthesesStackEntry): - (JSC::Yarr::ByteCompiler::ByteCompiler): - (JSC::Yarr::ByteCompiler::compile): - (JSC::Yarr::ByteCompiler::checkInput): - (JSC::Yarr::ByteCompiler::assertionBOL): - (JSC::Yarr::ByteCompiler::assertionEOL): - (JSC::Yarr::ByteCompiler::assertionWordBoundary): - (JSC::Yarr::ByteCompiler::atomPatternCharacter): - (JSC::Yarr::ByteCompiler::atomCharacterClass): - (JSC::Yarr::ByteCompiler::atomBackReference): - (JSC::Yarr::ByteCompiler::atomParenthesesOnceBegin): - (JSC::Yarr::ByteCompiler::atomParenthesesTerminalBegin): - (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternBegin): - (JSC::Yarr::ByteCompiler::atomParentheticalAssertionBegin): - (JSC::Yarr::ByteCompiler::atomParentheticalAssertionEnd): - (JSC::Yarr::ByteCompiler::popParenthesesStack): - (JSC::Yarr::ByteCompiler::dumpDisjunction): - (JSC::Yarr::ByteCompiler::closeAlternative): - (JSC::Yarr::ByteCompiler::closeBodyAlternative): - (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternEnd): - (JSC::Yarr::ByteCompiler::atomParenthesesOnceEnd): - (JSC::Yarr::ByteCompiler::atomParenthesesTerminalEnd): - (JSC::Yarr::ByteCompiler::regexBegin): - (JSC::Yarr::ByteCompiler::regexEnd): - (JSC::Yarr::ByteCompiler::alternativeBodyDisjunction): - (JSC::Yarr::ByteCompiler::alternativeDisjunction): - (JSC::Yarr::ByteCompiler::emitDisjunction): - (JSC::Yarr::byteCompile): - (JSC::Yarr::interpret): - * yarr/YarrInterpreter.h: Renamed from Source/JavaScriptCore/yarr/RegexInterpreter.h. - (JSC::Yarr::ByteTerm::ByteTerm): - (JSC::Yarr::ByteTerm::BOL): - (JSC::Yarr::ByteTerm::CheckInput): - (JSC::Yarr::ByteTerm::EOL): - (JSC::Yarr::ByteTerm::WordBoundary): - (JSC::Yarr::ByteTerm::BackReference): - (JSC::Yarr::ByteTerm::BodyAlternativeBegin): - (JSC::Yarr::ByteTerm::BodyAlternativeDisjunction): - (JSC::Yarr::ByteTerm::BodyAlternativeEnd): - (JSC::Yarr::ByteTerm::AlternativeBegin): - (JSC::Yarr::ByteTerm::AlternativeDisjunction): - (JSC::Yarr::ByteTerm::AlternativeEnd): - (JSC::Yarr::ByteTerm::SubpatternBegin): - (JSC::Yarr::ByteTerm::SubpatternEnd): - (JSC::Yarr::ByteTerm::invert): - (JSC::Yarr::ByteTerm::capture): - (JSC::Yarr::ByteDisjunction::ByteDisjunction): - (JSC::Yarr::BytecodePattern::BytecodePattern): - (JSC::Yarr::BytecodePattern::~BytecodePattern): - * yarr/YarrJIT.cpp: Renamed from Source/JavaScriptCore/yarr/RegexJIT.cpp. - (JSC::Yarr::YarrGenerator::optimizeAlternative): - (JSC::Yarr::YarrGenerator::matchCharacterClassRange): - (JSC::Yarr::YarrGenerator::matchCharacterClass): - (JSC::Yarr::YarrGenerator::jumpIfNoAvailableInput): - (JSC::Yarr::YarrGenerator::jumpIfAvailableInput): - (JSC::Yarr::YarrGenerator::checkInput): - (JSC::Yarr::YarrGenerator::atEndOfInput): - (JSC::Yarr::YarrGenerator::notAtEndOfInput): - (JSC::Yarr::YarrGenerator::jumpIfCharEquals): - (JSC::Yarr::YarrGenerator::jumpIfCharNotEquals): - (JSC::Yarr::YarrGenerator::readCharacter): - (JSC::Yarr::YarrGenerator::storeToFrame): - (JSC::Yarr::YarrGenerator::storeToFrameWithPatch): - (JSC::Yarr::YarrGenerator::loadFromFrame): - (JSC::Yarr::YarrGenerator::loadFromFrameAndJump): - (JSC::Yarr::YarrGenerator::IndirectJumpEntry::IndirectJumpEntry): - (JSC::Yarr::YarrGenerator::IndirectJumpEntry::addJump): - (JSC::Yarr::YarrGenerator::AlternativeBacktrackRecord::AlternativeBacktrackRecord): - (JSC::Yarr::YarrGenerator::GenerationState::GenerationState): - (JSC::Yarr::YarrGenerator::GenerationState::addIndirectJumpEntry): - (JSC::Yarr::YarrGenerator::GenerationState::emitIndirectJumpTable): - (JSC::Yarr::YarrGenerator::GenerationState::incrementParenNestingLevel): - (JSC::Yarr::YarrGenerator::GenerationState::decrementParenNestingLevel): - (JSC::Yarr::YarrGenerator::GenerationState::addParenthesesTail): - (JSC::Yarr::YarrGenerator::GenerationState::emitParenthesesTail): - (JSC::Yarr::YarrGenerator::GenerationState::addJumpToNextInteration): - (JSC::Yarr::YarrGenerator::GenerationState::addJumpsToNextInteration): - (JSC::Yarr::YarrGenerator::GenerationState::addDataLabelToNextIteration): - (JSC::Yarr::YarrGenerator::GenerationState::linkToNextIteration): - (JSC::Yarr::YarrGenerator::BacktrackDestination::BacktrackDestination): - (JSC::Yarr::YarrGenerator::BacktrackDestination::clear): - (JSC::Yarr::YarrGenerator::BacktrackDestination::clearDataLabel): - (JSC::Yarr::YarrGenerator::BacktrackDestination::hasDestination): - (JSC::Yarr::YarrGenerator::BacktrackDestination::isStackOffset): - (JSC::Yarr::YarrGenerator::BacktrackDestination::isLabel): - (JSC::Yarr::YarrGenerator::BacktrackDestination::isJumpList): - (JSC::Yarr::YarrGenerator::BacktrackDestination::hasDataLabel): - (JSC::Yarr::YarrGenerator::BacktrackDestination::copyTarget): - (JSC::Yarr::YarrGenerator::BacktrackDestination::copyTo): - (JSC::Yarr::YarrGenerator::BacktrackDestination::addBacktrackJump): - (JSC::Yarr::YarrGenerator::BacktrackDestination::setStackOffset): - (JSC::Yarr::YarrGenerator::BacktrackDestination::setLabel): - (JSC::Yarr::YarrGenerator::BacktrackDestination::setNextBacktrackLabel): - (JSC::Yarr::YarrGenerator::BacktrackDestination::copyBacktrackToLabel): - (JSC::Yarr::YarrGenerator::BacktrackDestination::setBacktrackToLabel): - (JSC::Yarr::YarrGenerator::BacktrackDestination::setBacktrackJumpList): - (JSC::Yarr::YarrGenerator::BacktrackDestination::setBacktrackSourceLabel): - (JSC::Yarr::YarrGenerator::BacktrackDestination::setDataLabel): - (JSC::Yarr::YarrGenerator::BacktrackDestination::setSubDataLabelPtr): - (JSC::Yarr::YarrGenerator::BacktrackDestination::linkToNextBacktrack): - (JSC::Yarr::YarrGenerator::BacktrackDestination::getStackOffset): - (JSC::Yarr::YarrGenerator::BacktrackDestination::getLabel): - (JSC::Yarr::YarrGenerator::BacktrackDestination::getBacktrackJumps): - (JSC::Yarr::YarrGenerator::BacktrackDestination::getDataLabel): - (JSC::Yarr::YarrGenerator::BacktrackDestination::jumpToBacktrack): - (JSC::Yarr::YarrGenerator::BacktrackDestination::linkDataLabelToHereIfExists): - (JSC::Yarr::YarrGenerator::BacktrackDestination::plantJumpToBacktrackIfExists): - (JSC::Yarr::YarrGenerator::BacktrackDestination::linkAlternativeBacktracks): - (JSC::Yarr::YarrGenerator::BacktrackDestination::linkAlternativeBacktracksTo): - (JSC::Yarr::YarrGenerator::TermGenerationState::TermGenerationState): - (JSC::Yarr::YarrGenerator::TermGenerationState::resetAlternative): - (JSC::Yarr::YarrGenerator::TermGenerationState::alternativeValid): - (JSC::Yarr::YarrGenerator::TermGenerationState::nextAlternative): - (JSC::Yarr::YarrGenerator::TermGenerationState::alternative): - (JSC::Yarr::YarrGenerator::TermGenerationState::isLastAlternative): - (JSC::Yarr::YarrGenerator::TermGenerationState::resetTerm): - (JSC::Yarr::YarrGenerator::TermGenerationState::termValid): - (JSC::Yarr::YarrGenerator::TermGenerationState::nextTerm): - (JSC::Yarr::YarrGenerator::TermGenerationState::term): - (JSC::Yarr::YarrGenerator::TermGenerationState::isLastTerm): - (JSC::Yarr::YarrGenerator::TermGenerationState::getSubParenNum): - (JSC::Yarr::YarrGenerator::TermGenerationState::isMainDisjunction): - (JSC::Yarr::YarrGenerator::TermGenerationState::setParenthesesTail): - (JSC::Yarr::YarrGenerator::TermGenerationState::getParenthesesTail): - (JSC::Yarr::YarrGenerator::TermGenerationState::lookaheadTerm): - (JSC::Yarr::YarrGenerator::TermGenerationState::isSinglePatternCharacterLookaheadTerm): - (JSC::Yarr::YarrGenerator::TermGenerationState::inputOffset): - (JSC::Yarr::YarrGenerator::TermGenerationState::clearBacktrack): - (JSC::Yarr::YarrGenerator::TermGenerationState::jumpToBacktrack): - (JSC::Yarr::YarrGenerator::TermGenerationState::plantJumpToBacktrackIfExists): - (JSC::Yarr::YarrGenerator::TermGenerationState::linkDataLabelToBacktrackIfExists): - (JSC::Yarr::YarrGenerator::TermGenerationState::addBacktrackJump): - (JSC::Yarr::YarrGenerator::TermGenerationState::setBacktrackDataLabel): - (JSC::Yarr::YarrGenerator::TermGenerationState::setBackTrackStackOffset): - (JSC::Yarr::YarrGenerator::TermGenerationState::setBacktrackLabel): - (JSC::Yarr::YarrGenerator::TermGenerationState::linkAlternativeBacktracks): - (JSC::Yarr::YarrGenerator::TermGenerationState::linkAlternativeBacktracksTo): - (JSC::Yarr::YarrGenerator::TermGenerationState::setBacktrackLink): - (JSC::Yarr::YarrGenerator::TermGenerationState::chainBacktracks): - (JSC::Yarr::YarrGenerator::TermGenerationState::chainBacktrackJumps): - (JSC::Yarr::YarrGenerator::TermGenerationState::getBacktrackDestination): - (JSC::Yarr::YarrGenerator::TermGenerationState::propagateBacktrackingFrom): - (JSC::Yarr::YarrGenerator::ParenthesesTail::ParenthesesTail): - (JSC::Yarr::YarrGenerator::ParenthesesTail::processBacktracks): - (JSC::Yarr::YarrGenerator::ParenthesesTail::setNextIteration): - (JSC::Yarr::YarrGenerator::ParenthesesTail::addAfterParenJump): - (JSC::Yarr::YarrGenerator::ParenthesesTail::generateCode): - (JSC::Yarr::YarrGenerator::generateAssertionBOL): - (JSC::Yarr::YarrGenerator::generateAssertionEOL): - (JSC::Yarr::YarrGenerator::matchAssertionWordchar): - (JSC::Yarr::YarrGenerator::generateAssertionWordBoundary): - (JSC::Yarr::YarrGenerator::generatePatternCharacterSingle): - (JSC::Yarr::YarrGenerator::generatePatternCharacterPair): - (JSC::Yarr::YarrGenerator::generatePatternCharacterFixed): - (JSC::Yarr::YarrGenerator::generatePatternCharacterGreedy): - (JSC::Yarr::YarrGenerator::generatePatternCharacterNonGreedy): - (JSC::Yarr::YarrGenerator::generateCharacterClassSingle): - (JSC::Yarr::YarrGenerator::generateCharacterClassFixed): - (JSC::Yarr::YarrGenerator::generateCharacterClassGreedy): - (JSC::Yarr::YarrGenerator::generateCharacterClassNonGreedy): - (JSC::Yarr::YarrGenerator::generateParenthesesDisjunction): - (JSC::Yarr::YarrGenerator::generateParenthesesSingle): - (JSC::Yarr::YarrGenerator::generateParenthesesGreedyNoBacktrack): - (JSC::Yarr::YarrGenerator::generateParentheticalAssertion): - (JSC::Yarr::YarrGenerator::generateTerm): - (JSC::Yarr::YarrGenerator::generateDisjunction): - (JSC::Yarr::YarrGenerator::generateEnter): - (JSC::Yarr::YarrGenerator::generateReturn): - (JSC::Yarr::YarrGenerator::YarrGenerator): - (JSC::Yarr::YarrGenerator::generate): - (JSC::Yarr::YarrGenerator::compile): - (JSC::Yarr::jitCompile): - * yarr/YarrJIT.h: Renamed from Source/JavaScriptCore/yarr/RegexJIT.h. - (JSC::Yarr::YarrCodeBlock::YarrCodeBlock): - (JSC::Yarr::YarrCodeBlock::~YarrCodeBlock): - (JSC::Yarr::YarrCodeBlock::setFallBack): - (JSC::Yarr::YarrCodeBlock::isFallBack): - (JSC::Yarr::YarrCodeBlock::set): - (JSC::Yarr::YarrCodeBlock::execute): - (JSC::Yarr::YarrCodeBlock::getAddr): - (JSC::Yarr::execute): - * yarr/YarrParser.h: Renamed from Source/JavaScriptCore/yarr/RegexParser.h. - (JSC::Yarr::Parser::CharacterClassParserDelegate::CharacterClassParserDelegate): - (JSC::Yarr::Parser::CharacterClassParserDelegate::begin): - (JSC::Yarr::Parser::CharacterClassParserDelegate::atomPatternCharacter): - (JSC::Yarr::Parser::CharacterClassParserDelegate::atomBuiltInCharacterClass): - (JSC::Yarr::Parser::CharacterClassParserDelegate::end): - (JSC::Yarr::Parser::CharacterClassParserDelegate::assertionWordBoundary): - (JSC::Yarr::Parser::CharacterClassParserDelegate::atomBackReference): - (JSC::Yarr::Parser::Parser): - (JSC::Yarr::Parser::parseEscape): - (JSC::Yarr::Parser::parseAtomEscape): - (JSC::Yarr::Parser::parseCharacterClassEscape): - (JSC::Yarr::Parser::parseCharacterClass): - (JSC::Yarr::Parser::parseParenthesesBegin): - (JSC::Yarr::Parser::parseParenthesesEnd): - (JSC::Yarr::Parser::parseQuantifier): - (JSC::Yarr::Parser::parseTokens): - (JSC::Yarr::Parser::parse): - (JSC::Yarr::Parser::saveState): - (JSC::Yarr::Parser::restoreState): - (JSC::Yarr::Parser::atEndOfPattern): - (JSC::Yarr::Parser::peek): - (JSC::Yarr::Parser::peekIsDigit): - (JSC::Yarr::Parser::peekDigit): - (JSC::Yarr::Parser::consume): - (JSC::Yarr::Parser::consumeDigit): - (JSC::Yarr::Parser::consumeNumber): - (JSC::Yarr::Parser::consumeOctal): - (JSC::Yarr::Parser::tryConsume): - (JSC::Yarr::Parser::tryConsumeHex): - (JSC::Yarr::parse): - * yarr/YarrPattern.cpp: Renamed from Source/JavaScriptCore/yarr/RegexPattern.cpp. - (JSC::Yarr::CharacterClassConstructor::CharacterClassConstructor): - (JSC::Yarr::CharacterClassConstructor::reset): - (JSC::Yarr::CharacterClassConstructor::append): - (JSC::Yarr::CharacterClassConstructor::putChar): - (JSC::Yarr::CharacterClassConstructor::isUnicodeUpper): - (JSC::Yarr::CharacterClassConstructor::isUnicodeLower): - (JSC::Yarr::CharacterClassConstructor::putRange): - (JSC::Yarr::CharacterClassConstructor::charClass): - (JSC::Yarr::CharacterClassConstructor::addSorted): - (JSC::Yarr::CharacterClassConstructor::addSortedRange): - (JSC::Yarr::BeginCharHelper::BeginCharHelper): - (JSC::Yarr::BeginCharHelper::addBeginChar): - (JSC::Yarr::BeginCharHelper::merge): - (JSC::Yarr::BeginCharHelper::addCharacter): - (JSC::Yarr::BeginCharHelper::linkHotTerms): - (JSC::Yarr::YarrPatternConstructor::YarrPatternConstructor): - (JSC::Yarr::YarrPatternConstructor::~YarrPatternConstructor): - (JSC::Yarr::YarrPatternConstructor::reset): - (JSC::Yarr::YarrPatternConstructor::assertionBOL): - (JSC::Yarr::YarrPatternConstructor::assertionEOL): - (JSC::Yarr::YarrPatternConstructor::assertionWordBoundary): - (JSC::Yarr::YarrPatternConstructor::atomPatternCharacter): - (JSC::Yarr::YarrPatternConstructor::atomBuiltInCharacterClass): - (JSC::Yarr::YarrPatternConstructor::atomCharacterClassBegin): - (JSC::Yarr::YarrPatternConstructor::atomCharacterClassAtom): - (JSC::Yarr::YarrPatternConstructor::atomCharacterClassRange): - (JSC::Yarr::YarrPatternConstructor::atomCharacterClassBuiltIn): - (JSC::Yarr::YarrPatternConstructor::atomCharacterClassEnd): - (JSC::Yarr::YarrPatternConstructor::atomParenthesesSubpatternBegin): - (JSC::Yarr::YarrPatternConstructor::atomParentheticalAssertionBegin): - (JSC::Yarr::YarrPatternConstructor::atomParenthesesEnd): - (JSC::Yarr::YarrPatternConstructor::atomBackReference): - (JSC::Yarr::YarrPatternConstructor::copyDisjunction): - (JSC::Yarr::YarrPatternConstructor::copyTerm): - (JSC::Yarr::YarrPatternConstructor::quantifyAtom): - (JSC::Yarr::YarrPatternConstructor::disjunction): - (JSC::Yarr::YarrPatternConstructor::regexBegin): - (JSC::Yarr::YarrPatternConstructor::regexEnd): - (JSC::Yarr::YarrPatternConstructor::regexError): - (JSC::Yarr::YarrPatternConstructor::setupAlternativeOffsets): - (JSC::Yarr::YarrPatternConstructor::setupDisjunctionOffsets): - (JSC::Yarr::YarrPatternConstructor::setupOffsets): - (JSC::Yarr::YarrPatternConstructor::checkForTerminalParentheses): - (JSC::Yarr::YarrPatternConstructor::optimizeBOL): - (JSC::Yarr::YarrPatternConstructor::addBeginTerm): - (JSC::Yarr::YarrPatternConstructor::setupDisjunctionBeginTerms): - (JSC::Yarr::YarrPatternConstructor::setupAlternativeBeginTerms): - (JSC::Yarr::YarrPatternConstructor::setupBeginChars): - (JSC::Yarr::compile): - (JSC::Yarr::YarrPattern::YarrPattern): - * yarr/YarrPattern.h: Renamed from Source/JavaScriptCore/yarr/RegexPattern.h. - (JSC::Yarr::CharacterRange::CharacterRange): - (JSC::Yarr::CharacterClassTable::create): - (JSC::Yarr::CharacterClassTable::CharacterClassTable): - (JSC::Yarr::CharacterClass::CharacterClass): - (JSC::Yarr::PatternTerm::PatternTerm): - (JSC::Yarr::PatternTerm::ForwardReference): - (JSC::Yarr::PatternTerm::BOL): - (JSC::Yarr::PatternTerm::EOL): - (JSC::Yarr::PatternTerm::WordBoundary): - (JSC::Yarr::PatternTerm::invert): - (JSC::Yarr::PatternTerm::capture): - (JSC::Yarr::PatternTerm::quantify): - (JSC::Yarr::PatternAlternative::PatternAlternative): - (JSC::Yarr::PatternAlternative::lastTerm): - (JSC::Yarr::PatternAlternative::removeLastTerm): - (JSC::Yarr::PatternAlternative::setOnceThrough): - (JSC::Yarr::PatternAlternative::onceThrough): - (JSC::Yarr::PatternDisjunction::PatternDisjunction): - (JSC::Yarr::PatternDisjunction::~PatternDisjunction): - (JSC::Yarr::PatternDisjunction::addNewAlternative): - (JSC::Yarr::TermChain::TermChain): - (JSC::Yarr::BeginChar::BeginChar): - (JSC::Yarr::YarrPattern::~YarrPattern): - (JSC::Yarr::YarrPattern::reset): - (JSC::Yarr::YarrPattern::containsIllegalBackReference): - (JSC::Yarr::YarrPattern::newlineCharacterClass): - (JSC::Yarr::YarrPattern::digitsCharacterClass): - (JSC::Yarr::YarrPattern::spacesCharacterClass): - (JSC::Yarr::YarrPattern::wordcharCharacterClass): - (JSC::Yarr::YarrPattern::nondigitsCharacterClass): - (JSC::Yarr::YarrPattern::nonspacesCharacterClass): - (JSC::Yarr::YarrPattern::nonwordcharCharacterClass): - -2011-01-10 Gavin Barraclough - - Windows build fix. - - * parser/SyntaxChecker.h: - -2011-01-10 Dave Tapuska - - Reviewed by Gavin Barraclough. - - Add CTI ASM versions for RVCT ARM THUMB2 mode. - - https://bugs.webkit.org/show_bug.cgi?id=52154 - - * jit/JITStubs.cpp: - (JSC::ctiTrampoline): - (JSC::ctiVMThrowTrampoline): - (JSC::ctiOpThrowNotCaught): - -2011-01-10 Gavin Barraclough - - Qt build fix. - - * JavaScriptCore.pro: - -2011-01-10 Gavin Barraclough - - Reviewed by Oliver Hunt. - - Bug 52079 - Syntax errors should be early errors. - - From chapter 16 the spec: - An implementation must report most errors at the time the relevant ECMAScript language construct is - evaluated. An early error is an error that can be detected and reported prior to the evaluation of - any construct in the Program containing the error. An implementation must report early errors in a - Program prior to the first evaluation of that Program. Early errors in eval code are reported at - the time eval is called but prior to evaluation of any construct within the eval code. All errors - that are not early errors are runtime errors. - - An implementation must treat any instance of the following kinds of errors as an early error: - * Any syntax error." - - * JavaScriptCore.xcodeproj/project.pbxproj: - Added new files. - * bytecode/CodeBlock.cpp: - Removed op_throw_syntax_error. - * bytecode/Opcode.h: - Removed op_throw_syntax_error. - * bytecompiler/BytecodeGenerator.cpp: - (JSC::BytecodeGenerator::generate): - If m_expressionTooDeep then throw a runtime error. - (JSC::BytecodeGenerator::BytecodeGenerator): - Initialize m_expressionTooDeep. - (JSC::BytecodeGenerator::emitThrowExpressionTooDeepException): - Sets m_expressionTooDeep. - * bytecompiler/BytecodeGenerator.h: - Added m_expressionTooDeep, removed emitThrowSyntaxError. - * bytecompiler/NodesCodegen.cpp: - (JSC::RegExpNode::emitBytecode): - (JSC::ContinueNode::emitBytecode): - (JSC::BreakNode::emitBytecode): - (JSC::ReturnNode::emitBytecode): - (JSC::LabelNode::emitBytecode): - Conditions that threw syntax error are now handled during parsing; - during bytecompilation these are now just ASSERTs. - * interpreter/Interpreter.cpp: - (JSC::Interpreter::privateExecute): - * jit/JIT.cpp: - (JSC::JIT::privateCompileMainPass): - * jit/JIT.h: - * jit/JITOpcodes.cpp: - * jit/JITOpcodes32_64.cpp: - * jit/JITStubs.cpp: - * jit/JITStubs.h: - Removed op_throw_syntax_error. - * parser/ASTBuilder.h: - (JSC::ASTBuilder::createRegExp): - Renamed; added syntax check. - * parser/JSParser.cpp: - (JSC::JSParser::breakIsValid): - (JSC::JSParser::hasLabel): - (JSC::JSParser::Scope::Scope): - (JSC::JSParser::Scope::setIsFunction): - (JSC::JSParser::Scope::isFunctionBoundary): - (JSC::JSParser::ScopeRef::hasContainingScope): - (JSC::JSParser::ScopeRef::containingScope): - (JSC::JSParser::AutoPopScopeRef::AutoPopScopeRef): - (JSC::JSParser::AutoPopScopeRef::~AutoPopScopeRef): - (JSC::JSParser::AutoPopScopeRef::setPopped): - (JSC::JSParser::popScopeInternal): - (JSC::JSParser::popScope): - (JSC::jsParse): - (JSC::JSParser::JSParser): - (JSC::JSParser::parseProgram): - (JSC::JSParser::parseBreakStatement): - (JSC::JSParser::parseContinueStatement): - (JSC::JSParser::parseReturnStatement): - (JSC::JSParser::parseTryStatement): - (JSC::JSParser::parseFunctionInfo): - (JSC::JSParser::parseExpressionOrLabelStatement): - (JSC::JSParser::parsePrimaryExpression): - * parser/JSParser.h: - * parser/Nodes.h: - * parser/Parser.cpp: - (JSC::Parser::parse): - * parser/SyntaxChecker.h: - (JSC::SyntaxChecker::createRegExp): - Renamed; added syntax check. - * runtime/ExceptionHelpers.cpp: - (JSC::createOutOfMemoryError): - (JSC::throwOutOfMemoryError): - * runtime/ExceptionHelpers.h: - Broke out createOutOfMemoryError. - * runtime/Executable.cpp: - (JSC::EvalExecutable::compileInternal): - (JSC::ProgramExecutable::compileInternal): - (JSC::FunctionExecutable::compileForCallInternal): - (JSC::FunctionExecutable::compileForConstructInternal): - Add check for exception after bytecode generation. - * runtime/RegExpConstructor.cpp: - (JSC::constructRegExp): - * runtime/RegExpPrototype.cpp: - (JSC::regExpProtoFuncCompile): - RegExp error prefixes not included in error string. - * yarr/RegexParser.h: - (JSC::Yarr::Parser::parse): - Removed regexBegin/regexEnd/regexError. - * yarr/RegexPattern.cpp: - (JSC::Yarr::RegexPatternConstructor::regexBegin): - Removed regexEnd/regexError. - (JSC::Yarr::compileRegex): - Add call to regexBegin (no longer called from the parser). - * yarr/YarrSyntaxChecker.cpp: Added. - (JSC::Yarr::SyntaxChecker::assertionBOL): - (JSC::Yarr::SyntaxChecker::assertionEOL): - (JSC::Yarr::SyntaxChecker::assertionWordBoundary): - (JSC::Yarr::SyntaxChecker::atomPatternCharacter): - (JSC::Yarr::SyntaxChecker::atomBuiltInCharacterClass): - (JSC::Yarr::SyntaxChecker::atomCharacterClassBegin): - (JSC::Yarr::SyntaxChecker::atomCharacterClassAtom): - (JSC::Yarr::SyntaxChecker::atomCharacterClassRange): - (JSC::Yarr::SyntaxChecker::atomCharacterClassBuiltIn): - (JSC::Yarr::SyntaxChecker::atomCharacterClassEnd): - (JSC::Yarr::SyntaxChecker::atomParenthesesSubpatternBegin): - (JSC::Yarr::SyntaxChecker::atomParentheticalAssertionBegin): - (JSC::Yarr::SyntaxChecker::atomParenthesesEnd): - (JSC::Yarr::SyntaxChecker::atomBackReference): - (JSC::Yarr::SyntaxChecker::quantifyAtom): - (JSC::Yarr::SyntaxChecker::disjunction): - (JSC::Yarr::checkSyntax): - * yarr/YarrSyntaxChecker.h: Added. - Check RegExp syntax. - -2011-01-10 Adam Roben - - Roll out r75289 - - It was causing assertion failures. See . - - * wtf/StackBounds.cpp: - (WTF::StackBounds::initialize): - -2011-01-08 Patrick Gansterer - - Reviewed by Darin Adler. - - Unify string table adding in AtomicString - https://bugs.webkit.org/show_bug.cgi?id=51927 - - Move code for adding a string into a separate function. - This removes multiple occurrence of the same logic. - - * wtf/text/AtomicString.cpp: - (WTF::addToStringTable): Added. - (WTF::AtomicString::add): Use addToStringTable(). - (WTF::AtomicString::fromUTF8): Ditto. - -2011-01-07 Geoffrey Garen - - Reviewed by Gavin Barraclough. - - Split machine stack marking functions into their own class (MachineStackMarker) - https://bugs.webkit.org/show_bug.cgi?id=52088 - - * API/APIShims.h: - (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock): Moved registerThread() - call behind an #ifdef because we shouldn't be registering threads at all - if we don't support usage on multiple threads. - - * Android.mk: - * CMakeLists.txt: - * GNUmakefile.am: - * JavaScriptCore.gypi: - * JavaScriptCore.pro: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: - * JavaScriptCore.xcodeproj/project.pbxproj: Updated projects. - - * runtime/Collector.cpp: - (JSC::Heap::Heap): - (JSC::Heap::destroy): - (JSC::Heap::markRoots): - * runtime/Collector.h: - (JSC::Heap::machineStackMarker): Moved code to machineStackMarker. - - * runtime/JSGlobalData.h: - (JSC::JSGlobalData::makeUsableFromMultipleThreads): Removed an unnecessary - level of indirection, to make Heap less of a God class. - - * runtime/MachineStackMarker.h: Copied from Source/JavaScriptCore/runtime/Collector.h. - * runtime/MachineStackMarker.cpp: Copied from Source/JavaScriptCore/runtime/Collector.cpp. - (JSC::MachineStackMarker::MachineStackMarker): - (JSC::MachineStackMarker::~MachineStackMarker): - (JSC::MachineStackMarker::makeUsableFromMultipleThreads): - (JSC::MachineStackMarker::registerThread): - (JSC::MachineStackMarker::unregisterThread): - (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal): - (JSC::MachineStackMarker::markCurrentThreadConservatively): - (JSC::MachineStackMarker::markOtherThreadConservatively): - (JSC::MachineStackMarker::markMachineStackConservatively): Moved code from Heap. - -2011-01-07 Gavin Barraclough - - Reviewed by Geoff Garen. - - Bug 26276 - Need a mechanism to determine stack extent on WINDOWS, SOLARIS, OPENBSD, SYMBIAN, HAIKU, WINCE platforms - - Fix for win32. The base of the stack is stored in the "deallocation stack" field of the - Thread Information Block - see: http://en.wikipedia.org/wiki/Win32_Thread_Information_Block - for more information! - - * wtf/StackBounds.cpp: - (WTF::StackBounds::initialize): - -2011-01-07 Adam Roben - - Update react-to-vsprops-changes.py after r74855 - - * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py: - -2011-01-07 Carlos Garcia Campos - - Reviewed by Martin Robinson. - - [GTK] Port scrollbar painting to GtkStyleContext - https://bugs.webkit.org/show_bug.cgi?id=52051 - - * wtf/gobject/GTypedefs.h: Add GtkStyleContext forward - declaration. - -2011-01-07 Daniel Bates - - Reviewed by Martin Robinson. - - Enable PCRE computed gotos when compiling with RCVT 4.0 or greater in GNU mode - https://bugs.webkit.org/show_bug.cgi?id=52034 - - Derived from a patch by Eli Fidler. - - RVCT 4 or greater in GNU mode supports the computed goto GNU language extension - as per . - - * pcre/pcre_exec.cpp: Modified to check for feature, HAVE(COMPUTED_GOTO), instead - of hardcoding the GCC compiler. - * wtf/Platform.h: Define WTF_COMPILER_RVCT4_OR_GREATER if __ARMCC_VERSION >= 400000. - -2011-01-06 Gavin Barraclough - - Reviewed by Geoff Garen. - - Bug 52035 - Unregistering DOMWrapperWorlds is unsafe - - The method DOMWrapperWorld::unregisterWorld() effectively calls the DOMWrapperWorld's - destructor early, in order to release wrappers once we know we no longer intend to use them. - Whilst it is okay to have a method to throw away wrappers (assuming we know we're willing to - lose any state stored on them) it is not okay to deregister the world from the JSGlobalData. - A sequence of events that triggers the bug would look like this: - - (1) Create a DOMWrapperWorld. - (2) Register a timer in the world. - (3) Call unregisterWorld() on the world. - (4) Timer goes off, code is executed in the world, creates a Node not attached to a Document. - (5) We attempt to lookup a wrapper map for the world on the JSGlobalData, but because we've - called forgetWorld() none exists. - (6) Attempt to add a wrapper to a NULL map. - - Fix the problem by not removing the JSGlobalData's wrapper map until the world really goes away. - - * runtime/WeakGCMap.h: - (JSC::WeakGCMap::clear): - -2011-01-06 Gavin Barraclough - - Reviewed by Darin Adler. - - Bug 52021 - zeroDouble broken on ARMv7 - - The bug here is that zeroDouble was working incorrectly, - leading to op_loop_if_true failing - specifically in the - case where the value being checked is 0.0 encoded as a - double (rather than an integer immediate). - - Additionally this patch removes a redundant duplicate compare - in some (many) case. - - * assembler/ARMv7Assembler.h: - (JSC::ARMv7Assembler::vcmp_F64): - (JSC::ARMv7Assembler::vcmpz_F64): - * assembler/MacroAssemblerARM.h: - (JSC::MacroAssemblerARM::branchDoubleNonZero): - (JSC::MacroAssemblerARM::branchDoubleZeroOrNaN): - * assembler/MacroAssemblerARMv7.h: - (JSC::MacroAssemblerARMv7::branchDouble): - (JSC::MacroAssemblerARMv7::branchDoubleNonZero): - (JSC::MacroAssemblerARMv7::branchDoubleZeroOrNaN): - (JSC::MacroAssemblerARMv7::compare32): - * assembler/MacroAssemblerMIPS.h: - (JSC::MacroAssemblerMIPS::branchDoubleNonZero): - (JSC::MacroAssemblerMIPS::branchDoubleZeroOrNaN): - * assembler/MacroAssemblerX86Common.h: - (JSC::MacroAssemblerX86Common::branchDoubleNonZero): - (JSC::MacroAssemblerX86Common::branchDoubleZeroOrNaN): - * jit/JITOpcodes32_64.cpp: - (JSC::JIT::emit_op_jfalse): - (JSC::JIT::emit_op_jtrue): - -2011-01-06 Michael Saboff - - Reviewed by Gavin Barraclough. - - Added debug code to compare the results of JIT regexp with - interpreted regexp and displays discrepencies. This debug code is - controlled by the ENABLE_YARR_JIT_DEBUG macro in wtf/Platform.h and - is only valid if ENABLE_YARR_JIT is enabled. - - Fixed a discovered problem in RegExp::printTraceData, changing - m_pattern to the getter pattern(). - Also deleted an extraneous semicolon. - - Enhancement: Add Regexp Debug Compare between JIT and Interpreter - https://bugs.webkit.org/show_bug.cgi?id=51834 - - * runtime/RegExp.cpp: - (JSC::RegExp::compile): - (JSC::RegExp::match): - (JSC::RegExp::printTraceData): - * wtf/Platform.h: - -2011-01-06 Patrick Gansterer - - Reviewed by Eric Seidel. - - [WINCE] Remove JSC::g_stackBase - https://bugs.webkit.org/show_bug.cgi?id=51779 - - * wtf/StackBounds.cpp: - -2011-01-06 Joone Hur - - Reviewed by Eric Seidel. - - WML Parser should treat line/column number in a consistent way - https://bugs.webkit.org/show_bug.cgi?id=51601 - - Add the equality operators to TextPosition class. - - * wtf/text/TextPosition.h: - (WTF::TextPosition::operator==): Added. - (WTF::TextPosition::operator!=): Added. - (WTF::TextPosition::belowRangePosition): Use belowBase() instead of base(). - (WTF::ZeroBasedNumber::operator==): Added. - (WTF::ZeroBasedNumber::operator!=): Added. - (WTF::OneBasedNumber::operator==): Added. - (WTF::OneBasedNumber::operator!=): Added. - -2011-01-06 Patrick Gansterer - - Reviewed by Gavin Barraclough. - - [WINCE] Determine stack extent - https://bugs.webkit.org/show_bug.cgi?id=26276 - - Scan the stack for writeable pages and use the limits. - - * wtf/StackBounds.cpp: - (WTF::detectGrowingDownward): - (WTF::isPageWritable): - (WTF::getLowerStackBound): - (WTF::getUpperStackBound): - (WTF::StackBounds::initialize): - -2011-01-05 Steve Falkenburg - - Windows build fix. - - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: Revert change to additional library search path needed to find ICU. - -2011-01-05 Steve Falkenburg - - Reviewed by Darin Adler. - - Debug and Release builds on Windows clobber each other - https://bugs.webkit.org/show_bug.cgi?id=49185 - - Changes the structure of WebKitBuild build products directory so we - completely separate each build configuration into independent directories. - - Although we previously had per-configuration directories for obj, this change adds - per-configuration directories for bin, lib, obj, and include. Each configuration's - build products are stored within a directory inside of WebKitBuild. - - Most use of $(WebKitOutputDir) in the build files has been replaced by $(ConfigurationBuildDir), - defined in common.vsprops to be $(WebKitOutputDir)\$(ConfigurationName). - - For PGO, $(ConfigurationBuildDir) points to the same directory (Release_PGO) to allow - for proper operation of the instrumentation/optimization scripts. - - * JavaScriptCore.vcproj/JavaScriptCore.make: - * JavaScriptCore.vcproj/JavaScriptCore.sln: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedCommon.vsprops: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePGOOptimize.vsprops: Added. - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePostBuild.cmd: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePreBuild.cmd: - * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh: - * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py: - * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln: - * JavaScriptCore.vcproj/WTF/WTF.vcproj: - * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops: - * JavaScriptCore.vcproj/WTF/WTFPostBuild.cmd: - * JavaScriptCore.vcproj/WTF/WTFPreBuild.cmd: - * JavaScriptCore.vcproj/jsc/jsc.vcproj: - * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: - * JavaScriptCore.vcproj/jsc/jscPostBuild.cmd: - * JavaScriptCore.vcproj/jsc/jscPreBuild.cmd: - * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops: - * JavaScriptCore.vcproj/testapi/testapiPostBuild.cmd: - * JavaScriptCore.vcproj/testapi/testapiPreBuild.cmd: - -2011-01-05 Brent Fulgham - - Unreviewed build fix. - - * wtf/Encoder.h: Add include for systems that - do not natively know about uint8_t, etc. - -2011-01-05 Patrick Gansterer - - Reviewed by Andreas Kling. - - [CMake] Fix the usage of SOURCE_GROUP - https://bugs.webkit.org/show_bug.cgi?id=51739 - - * CMakeLists.txt: - -2011-01-05 Andras Becsi - - Reviewed by Csaba Osztrogonác. - - [Qt][V8] Fix the build after recent changes. - - * pcre/pcre.pri: Correct the path after Source was introduced. - -2011-01-04 Steve Falkenburg - - Build fix. Update path to FindSafari after source code reorganization. - - * JavaScriptCore.vcproj/JavaScriptCore.sln: - -2011-01-04 Daniel Bates - - Fix the Android build after changeset 74975 - (https://bugs.webkit.org/show_bug.cgi?id=51855). - - * wtf/ThreadingPthreads.cpp: Add include of PassOwnPtr.h. - (WTF::runThreadWithRegistration): Use -> instead of . to dereference pointer. - -2011-01-04 Martin Robinson - - Try to fix the EFL build. - - * wtf/CMakeLists.txt: Remove PlatformRefPtr from the CMake source list. - -2011-01-04 James Robinson - - Reviewed by Darin Adler. - - StackBounds initialization in WTFThreadData should be guarded by #if USE(JSC) - https://bugs.webkit.org/show_bug.cgi?id=51881 - - The StackBounds class is only used by JavaScriptCore. - - * wtf/WTFThreadData.cpp: - (WTF::WTFThreadData::WTFThreadData): - * wtf/WTFThreadData.h: - (WTF::WTFThreadData::resetCurrentIdentifierTable): - -2011-01-03 Martin Robinson - - Reviewed by Darin Adler. - - Remove the last non-GObject usage of PlatformRefPtr and move the code to GRefPtr - https://bugs.webkit.org/show_bug.cgi?id=51846 - - * GNUmakefile.am: Remove PlatformRefPtr.h from the sources list. - * JavaScriptCore.vcproj/WTF/WTF.vcproj: Ditto. - * jit/ExecutableAllocator.h: Change references to PlatformRefPtr to RefPtr. - (JSC::ExecutableAllocator::cacheFlush): Ditto. - * wtf/PlatformRefPtr.h: Removed. - * wtf/RandomNumber.cpp: Change references to PlatformRefPtr to RefPtr. - (WTF::randomNumber): Ditto. - * wtf/brew/RefPtrBrew.h: Ditto. - (WTF::refIfNotNull): Added. - (WTF::derefIfNotNull): Added. - * wtf/brew/ShellBrew.h: Change references to PlatformRefPtr to RefPtr. - (WTF::createRefPtrInstance): Modified to return a RefPtr. - * wtf/gobject/GRefPtr.cpp: - (WTF::refGPtr): Moved from PlatformRefPtr here. - (WTF::derefGPtr): Ditto. - * wtf/gobject/GRefPtr.h: Ditto. - (WTF::GRefPtr::GRefPtr): Ditto. - (WTF::GRefPtr::~GRefPtr): Ditto. - (WTF::GRefPtr::clear): Ditto. - (WTF::GRefPtr::isHashTableDeletedValue): Ditto. - (WTF::GRefPtr::get): Ditto. - (WTF::GRefPtr::operator*): Ditto. - (WTF::GRefPtr::operator->): Ditto. - (WTF::GRefPtr::operator!): Ditto. - (WTF::GRefPtr::operator UnspecifiedBoolType): Ditto. - (WTF::GRefPtr::hashTableDeletedValue): Ditto. - (WTF::::operator): Ditto. - (WTF::::swap): Ditto. - (WTF::swap): Ditto. - (WTF::operator==): Ditto. - (WTF::operator!=): Ditto. - (WTF::static_pointer_cast): Ditto. - (WTF::const_pointer_cast): Ditto. - (WTF::getPtr): Ditto. - (WTF::adoptGRef): Ditto. - (WTF::refGPtr): Ditto. - (WTF::derefGPtr): Ditto. - -2011-01-04 Daniel Bates - - Reviewed by Adam Roben. - - LEAK: Deallocate instance of ThreadFunctionInvocation if thread creation fails - https://bugs.webkit.org/show_bug.cgi?id=51860 - - * wtf/ThreadingWin.cpp: - (WTF::createThreadInternal): - -2011-01-04 Laszlo Gombos - - Reviewed by Ariya Hidayat. - - [Qt][Symbian] Make sure that WebKit headers are included before platform headers on Symbian - https://bugs.webkit.org/show_bug.cgi?id=31273 - - On Symbian PREPEND_INCLUDEPATH is the best way to make sure that WebKit headers - are included before platform headers. On all other platforms continue to use - INCLUDEPATH (as before). This is a continuation of r65877. - - No new tests as there is no new functionality. - - * JavaScriptCore.pri: - -2011-01-04 Darin Adler - - Try to fix Windows build. - - * wtf/ThreadingWin.cpp: Added include of PassOwnPtr.h. Fixed paragraphing - of conditional includes. - (WTF::wtfThreadEntryPoint): Use -> instead of . to dereference pointer. - (WTF::createThreadInternal): Tweaked #if to not need separate macro. - -2011-01-04 Daniel Bates - - Reviewed by Adam Roben. - - Extract ThreadFunctionInvocation into separate file and share between Apple Windows and Android - https://bugs.webkit.org/show_bug.cgi?id=51855 - - Both the Apple Windows and Android ports implement a similar adapter structure, - called ThreadFunctionInvocation and ThreadData respectively, as part of - their thread creation process. Instead, we should share such an adapter - structure and remove duplicate code. - - * JavaScriptCore.gypi: Added header wtf/ThreadFunctionInvocation.h. - * wtf/ThreadFunctionInvocation.h: Added. - (WTF::ThreadFunctionInvocation::ThreadFunctionInvocation): - * wtf/ThreadingPthreads.cpp: Removed Android-specific structure ThreadData; Instead, use ThreadFunctionInvocation. - (WTF::runThreadWithRegistration): - (WTF::createThreadInternal): - * wtf/ThreadingWin.cpp: Moved structure ThreadFunctionInvocation to its own file so that - it can be shared with the Android implementation of createThreadInternal(). - (WTF::wtfThreadEntryPoint): Use OwnPtr to hold passed instance of ThreadFunctionInvocation. - -2011-01-04 Daniel Bates - - Reviewed by Darin Adler. - - Use __builtin_expect when compiling using RVCT in GNU mode - https://bugs.webkit.org/show_bug.cgi?id=51866 - - Derived from a patch by Dave Tapuska. - - * wtf/AlwaysInline.h: - -2011-01-03 Darin Adler - - Reviewed by Brady Eidson. - - * wtf/Forward.h: Added Decoder and Encoder. - -2011-01-03 Brady Eidson - - Reviewed by Darin Adler. - - Add Encode/Decode machinery Darin and I plan to work with for back/forward stuff in WebKit2. - - Starting out with a pure virtual interface to be implemented in WK2, but we might change that later. - - * GNUmakefile.am: - * JavaScriptCore.vcproj/WTF/WTF.vcproj: - * JavaScriptCore.xcodeproj/project.pbxproj: - * wtf/CMakeLists.txt: - - * wtf/Decoder.h: Added. - * wtf/Encoder.h: Added. - -2011-01-03 Laszlo Gombos - - Unreviewed build fix. - - [Qt] Add NullPtr.cpp introduced in r71155 to the Qt build system. - - This fix is required for builds where HAVE(NULLPTR) is false - (e.g. some MSVC and Symbian builds). - - * wtf/wtf.pri: - -2011-01-02 Dan Bernstein - - Rubber-stamped by Simon Fraser. - - Update copyright strings - - * Info.plist: - -2011-01-02 Csaba Osztrogonác - - Fix GTK+ build after r74855. - - Reviewed by Xan Lopez. - - * GNUmakefile.am: Fix include pathes. - -2011-01-02 Adam Barth - - One more .. missing in the Qt build. - - * jsc.pro: - -2011-01-02 Xan Lopez - - Fix GTK+ build. - - * GNUmakefile.am: add -I$(srcdir)/Source to the JSC cppflags so - that anyone can include its headers without adding the prefix - 'Source/'. - -2011-01-02 Carl Lobo - - Reviewed by Adam Barth. - - Fix Windows Build for non-production where VSPropsRedirectionDir is not defined. - https://bugs.webkit.org/show_bug.cgi?id=51797 - - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: - * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh: - * JavaScriptCore.vcproj/WTF/WTF.vcproj: - * JavaScriptCore.vcproj/jsc/jsc.vcproj: - * JavaScriptCore.vcproj/testapi/testapi.vcproj: - -2011-01-01 Adam Barth - - Fix relative include paths in an attempt to fix the Qt build. - - * JavaScriptCore.pri: - * JavaScriptCore.pro: - -2011-01-01 Adam Barth - - Another speculative build fix for GTK. - - * GNUmakefile.am: - -2011-01-01 Adam Barth - - Speculative build fix for GTK. Update the paths in GNUmakefile to - include "Source". - - * GNUmakefile.am: - -2011-01-01 Adam Barth - - Update relative paths in JavaScriptCore.gyp to account for the extra - level of directories. - - * JavaScriptCore.gyp/JavaScriptCore.gyp: - -2010-12-31 Patrick Gansterer - - Reviewed by Darin Adler. - - Add a fast case for ASCII strings in HashAndUTF8CharactersTranslator::equal - https://bugs.webkit.org/show_bug.cgi?id=50517 - - This change shows about 2% performance win on the xml-parser benchmark. - - * wtf/text/AtomicString.cpp: - (WTF::HashAndUTF8CharactersTranslator::equal): - -2010-12-30 Patrick Gansterer - - Reviewed by Ariya Hidayat. - - [CMake] Add WTF_HEADERS - https://bugs.webkit.org/show_bug.cgi?id=51741 - - Add the WTF headers to show them in Visual Studio. - - * wtf/CMakeLists.txt: - * wtf/CMakeListsWinCE.txt: - -2010-12-30 Konstantin Tokarev - - Reviewed by David Kilzer. - - [Qt] Don't build wtf/TCSystemAlloc.cpp if --system-malloc option is - used - https://bugs.webkit.org/show_bug.cgi?id=51672 - - * wtf/wtf.pri: Replaced USE_SYSTEM_MALLOC with USE_SYSTEM_MALLOC=1 - -2010-12-30 Patrick Gansterer - - Reviewed by Darin Adler. - - Use OS(WINDOWS) instead of COMPILER(MSVC) in FastMalloc.cpp - https://bugs.webkit.org/show_bug.cgi?id=51743 - - Most of the ifdefs belong to windows and not to the MSVC compiler. - - * wtf/FastMalloc.cpp: - -2010-12-29 Gavin Barraclough - - Reviewed by Sam Weinig. - - Bug 51724 - In strict mode string literals should allow \0, but disallow \8 and \9. - - * parser/Lexer.cpp: - (JSC::Lexer::parseString): - -2010-12-29 Helder Correia - - Reviewed by Eric Seidel. - - and are not valid JSON whitespace characters - https://bugs.webkit.org/show_bug.cgi?id=51671 - - Vertical Tab and Form Feed are not allowed white spaces by the JSON - RFC 4627: http://www.ietf.org/rfc/rfc4627.txt (2. JSON Grammar). - - Tests: ietestcenter/Javascript/15.12.1.1-0-2.html - ietestcenter/Javascript/15.12.1.1-0-3.html - - * runtime/LiteralParser.cpp: - (JSC::isJSONWhiteSpace): - (JSC::LiteralParser::Lexer::lex): - -2010-12-28 Helder Correia - - Reviewed by Eric Seidel. - - JSON.stringify must exist as a function taking 3 parameters - https://bugs.webkit.org/show_bug.cgi?id=51667 - - The reported function length is 1 instead. - - Test: ietestcenter/Javascript/15.12.3-0-2.html - - * runtime/JSONObject.cpp: - -2010-12-28 Helder Correia - - Reviewed by Sam Weinig. - - JSON.parse must exist as a function taking 2 parameters - https://bugs.webkit.org/show_bug.cgi?id=51666 - - Support for revivers was introduced in bug 26591, but the function - length has since remained unchanged. - - Test: ietestcenter/Javascript/15.12.2-0-2.html - - * runtime/JSONObject.cpp: - -2010-12-27 Jake Helfert - - Reviewed and reworked by Darin Adler. - - Building WebKit with Visual Studio 2010 fails due - to ambiguous assignment operator errors. - https://bugs.webkit.org/show_bug.cgi?id=51116 - - * wtf/NullPtr.h: Added a HAVE(NULLPTR) definition for use with - Platform.h HAVE macro, and included the Visual Studio 2010 compiler - as one of the ones that has nullptr. - * wtf/NullPtr.cpp: Updated condition to match. - - * wtf/PassOwnArrayPtr.h: Don't include the operator=(nullptr_t) - overload if we are compiling in loose mode and the compiler has - nullptr, because assignment of 0 will otherwise encounter - ambiguitity with this overload and the overload for loose mode - that takes a raw pointer. The conditional can be removed when we - get rid of loose mode. - * wtf/PassOwnPtr.h: Ditto. - - * wtf/PassRefPtr.h: Don't include the operator=(nullptr_t) overload - if the compiler has nullptr, because assignment of 0 would be - ambiguous with the overload that takes a raw pointer. The conditional - can be removed if we ever decide we no longer need to support - assigning 0, but might need a way to catch that usage on older compilers. - * wtf/RefPtr.h: Ditto. - * wtf/RetainPtr.h: Ditto - - * JavaScriptCore.xcodeproj/project.pbxproj: Added NullPtr.cpp, - accidentally omitted when the file was first added. - -2010-12-26 Xan Lopez - - Reviewed by Eric Seidel. - - [GTK] Add standalone target for JSC - https://bugs.webkit.org/show_bug.cgi?id=51607 - - * GNUmakefile.am: add convenience target to only build jsc and its - dependencies. - -2010-12-24 Patrick Gansterer - - Reviewed by Eric Seidel. - - [WINCE] Add CPU(MIPS) detection - https://bugs.webkit.org/show_bug.cgi?id=51342 - - WinCE usually defines MIPS and _MIPS_. - - * wtf/Platform.h: - -2010-12-23 Gavin Barraclough - - Reviewed by Sam Weinig. - - Rename RegexCompiler.cpp to RegexPattern.cpp. - Implicitly call compileRegex from RegexPattern's constructor. - - * Android.mk: - * CMakeLists.txt: - * GNUmakefile.am: - * JavaScriptCore.gypi: - * JavaScriptCore.pro: - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: - * JavaScriptCore.xcodeproj/project.pbxproj: - * runtime/RegExp.cpp: - (JSC::RegExp::compile): - * yarr/RegexCompiler.cpp: Removed. - * yarr/RegexCompiler.h: Removed. - * yarr/RegexInterpreter.cpp: - * yarr/RegexJIT.cpp: - * yarr/RegexPattern.cpp: Copied from JavaScriptCore/yarr/RegexCompiler.cpp. - (JSC::Yarr::compileRegex): - (JSC::Yarr::RegexPattern::RegexPattern): - * yarr/RegexPattern.h: - -2010-12-23 Patrick Gansterer - - Unreviewed build fix for WinCE after r74360. - - Move the OS(WINDOWS) section after the OS(WINCE) section - and add missing argument to the getStackMax call. - - * wtf/StackBounds.cpp: - (WTF::StackBounds::initialize): - -2010-12-22 Laszlo Gombos - - Unreviewed build fix. - - [Symbian] Make sure OSAllocatorSymbian builds - - This patch only addresses the build problem. - - https://bugs.webkit.org/show_bug.cgi?id=51128 tracks the full - (re)implementation of the Symbian allocator. - - * wtf/OSAllocatorSymbian.cpp: - (WTF::OSAllocator::reserveUncommitted): - (WTF::OSAllocator::reserveAndCommit): - (WTF::OSAllocator::commit): - -2010-12-22 Dan Bernstein - - Changed WebKitTools to Tools. - - * JavaScriptCore.vcproj/JavaScriptCore.sln: - -2010-12-22 Dan Bernstein - - Rubber-stamped by Mark Rowe. - - Changed WebKitTools to Tools in script build phases. - - * JavaScriptCore.xcodeproj/project.pbxproj: - -2010-12-22 Andrei Popescu - - Unreviewed build fix. - - Fix Chromium Linux shared library build. - [Chromium] r74431 broke the Chromium Linux shared library build - https://bugs.webkit.org/show_bug.cgi?id=51462 - - * JavaScriptCore.gyp/JavaScriptCore.gyp: - * JavaScriptCore.gypi: - -2010-12-21 Sheriff Bot - - Unreviewed, rolling out r74462. - http://trac.webkit.org/changeset/74462 - https://bugs.webkit.org/show_bug.cgi?id=51449 - - broke chromium win (Requested by tonyg-cr on #webkit). - - * JavaScriptCore.gypi: - -2010-12-21 Tony Gentilcore - - Unreviewed build fix. - - [chromium] Build fix after r74431 - https://bugs.webkit.org/show_bug.cgi?id=51447 - - * JavaScriptCore.gypi: - -2010-12-21 Gavin Barraclough - - Windows build fix. - - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: - -2010-12-21 Gavin Barraclough - - Windows build fix. - - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: - -2010-12-21 Gavin Barraclough - - Speculative build fix. - - * jit/ExecutableAllocator.cpp: - (JSC::ExecutableAllocator::underMemoryPressure): - -2010-12-21 Gavin Barraclough - - Reviewed by Oliver Hunt. - - Bug 26276 - Need a mechanism to determine stack extent - - This patch adds accurate stack size calculation for: - DARWIN, QNX, UNIX - We still need to fix: - WINDOWS, SOLARIS, OPENBSD, SYMBIAN, HAIKU, WINCE - - * wtf/StackBounds.cpp: - (WTF::StackBounds::initialize): - -2010-12-21 Gavin Barraclough - - Reviewed by Geoff Garen. - - CRASH running out of executable memory, loading io9.com - https://bugs.webkit.org/show_bug.cgi?id=51443 - - The problem here is that each page uses a reasonable amount of memory, (~4Mb), - and that when miultiple pages are open we keep all JIT code for all functions - in all pages alive. - - Add a check to detect high memory pressure situations in the executable allocator - (>50% of available memory allocated), and upon a top level entry into JSC (no code - running on the stack) in this situation throw away all JIT code. - - * JavaScriptCore.exp: - * debugger/Debugger.cpp: - (JSC::Debugger::recompileAllJSFunctions): stop passing exec to recompile. - * jit/ExecutableAllocator.h: - * jit/ExecutableAllocatorFixedVMPool.cpp: - (JSC::ExecutablePool::systemAlloc): Count allocations. - (JSC::ExecutablePool::systemRelease): Count deallocations. - (JSC::ExecutablePool::underMemoryPressure): Check memory pressure. - * jit/ExecutableAllocatorPosix.cpp: - (JSC::ExecutablePool::underMemoryPressure): Stub out; only meaningful with FixedVMPool. - * jit/ExecutableAllocatorWin.cpp: - (JSC::ExecutablePool::underMemoryPressure): Stub out; only meaningful with FixedVMPool. - * runtime/Executable.cpp: - (JSC::FunctionExecutable::recompile): Remove ExecState argument to recompile. - * runtime/Executable.h: - * runtime/JSGlobalData.cpp: - (JSC::JSGlobalData::recompileAllJSFunctions): throws away all JIT code. - * runtime/JSGlobalData.h: - * runtime/JSGlobalObject.h: - (JSC::DynamicGlobalObjectScope::DynamicGlobalObjectScope): add check / call to throw away. - -2010-12-21 Gavin Barraclough - - Reviewed by Geoff Garen. - - JIT executable memory excessive usage due to regex caching - https://bugs.webkit.org/show_bug.cgi?id=51434 - - Reduce the amount of memory the RegExpCache can hold on to on iOS. - Currently the RegExpCache can hold 256 RegExp objects. If each falls into a separate - ExecutablePool, with a common size of 16Kb, this means we end up holding onto 4Mb of - memory. Firstly, we can reduce this by simply reducing the size of the cache to 32 - entries. Secondly, we can use a separate set of ExecutablePools for JIT code generated - from RegExp objects. This helps in two ways (1) it increases the probability that - RegExps in the cache share the same pool, and (2) it means that a RegExp can't end - up holding on to a large ExecutablePool containing a translation of JS code. - (A RegExp could end up keeping a larger RegExp alive that happened to be sharing the - same pool, but large RegExp patterns are less common). - - * runtime/JSGlobalData.h: - * runtime/RegExpCache.h: - * yarr/RegexJIT.cpp: - (JSC::Yarr::RegexGenerator::compile): - -2010-12-21 Gavin Barraclough - - Windows build fix. - - * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: - -2010-12-21 Gavin Barraclough - - Eeeep! build fix! - - * wtf/OSAllocator.h: - (WTF::OSAllocator::decommitAndRelease): - -2010-12-21 Gavin Barraclough - - Ooops, fixed typo in comment. - - * wtf/OSAllocator.h: - -2010-12-21 Geoffrey Garen - - Reviewed by Gavin Barraclough & Oliver Hunt. - - Added PageAllocationAligned, a cross-platform abstraction for memory allocations with arbitrary alignment requirements - https://bugs.webkit.org/show_bug.cgi?id=51359 - - I think this patch fixes [5.0.1] WER crash in - Heap::allocateBlock (1902752929), and some other leaks and crashes as well. - - * Android.mk: - * CMakeLists.txt: - * GNUmakefile.am: - * JavaScriptCore.gypi: - * JavaScriptCore.vcproj/WTF/WTF.vcproj: - * JavaScriptCore.xcodeproj/project.pbxproj: Updated build files. - - * runtime/AlignedMemoryAllocator.h: Removed. Supplanted by - PageAllocationAligned. - - * runtime/Collector.cpp: - (JSC::Heap::destroy): - (JSC::Heap::allocateBlock): - (JSC::Heap::freeBlock): - (JSC::Heap::addWeakGCHandle): - * runtime/Collector.h: Switched from AlignedMemoryAllocator to - PageAllocationAligned. - - * runtime/GCHandle.cpp: - * runtime/GCHandle.h: Ditto. - - * wtf/PageAllocation.h: - (WTF::PageAllocation::PageAllocation): Removed aligned memory allocation - functions. Supplanted by PageAllocationAligned. - - * wtf/PageAllocationAligned.cpp: Added. - (WTF::PageAllocationAligned::allocate): - (WTF::PageAllocationAligned::deallocate): - * wtf/PageAllocationAligned.h: Added. - (WTF::PageAllocationAligned::PageAllocationAligned): New cross-platform - class for doing aligned memory allocation. This class properly matches - allocation and deallocation library calls, fixing a long-standing bug - in PageAllocation. - - * wtf/Platform.h: Removed some defunction VM platform defines. - - * wtf/wtf.pri: Updated build files. - -2010-12-21 Oliver Hunt - - Reviewed by Gavin Barraclough. - - ASSERTION FAILED: base->index() == m_codeBlock->argumentsRegister() while loading taobao.com - https://bugs.webkit.org/show_bug.cgi?id=49006 - - This problem was caused by having a parameter named 'arguments'. - The fix is to treat parameters named 'arguments' as shadowing - the actual arguments property, and so logically turn the function - into one that doesn't "use" arguments. - - This required a bit of fiddling in the parser to ensure we correctly - propagate the 'feature' of shadowing is set correctly. - - * bytecompiler/BytecodeGenerator.cpp: - (JSC::BytecodeGenerator::createArgumentsIfNecessary): - Change assertion to an early return as we may now reference - a property named 'arguments' without being in a function that - has the ArgumentsFeature - * parser/JSParser.cpp: - (JSC::JSParser::Scope::Scope): - (JSC::JSParser::Scope::declareParameter): - (JSC::JSParser::Scope::shadowsArguments): - (JSC::JSParser::parseProgram): - (JSC::JSParser::parseFormalParameters): - (JSC::JSParser::parseFunctionInfo): - * parser/Nodes.h: - (JSC::ScopeNode::usesArguments): - -2010-12-21 Daniel Bates - - Reviewed by Eric Seidel and Darin Adler. - - Deallocate GregorianDateTime.timeZone (if allocated) when copying so that we don't leak memory. - https://bugs.webkit.org/show_bug.cgi?id=51367 - - Inspired by a patch by George Staikos. - - * wtf/DateMath.cpp: - (JSC::msToGregorianDateTime): Modified to set timeZone to nullptr since timeZone is now - of type OwnPtrArray. - * wtf/DateMath.h: Change timeZone to type OwnArrayPtr; Removed destructor since it is no longer needed. - (JSC::GregorianDateTime::GregorianDateTime): Modified to use OwnPtrArray semantics for timeZone. - (JSC::GregorianDateTime::operator tm): Ditto. - (JSC::GregorianDateTime::copyFrom): Ditto. - -2010-12-21 Sheriff Bot - - Unreviewed, rolling out r74402. - http://trac.webkit.org/changeset/74402 - https://bugs.webkit.org/show_bug.cgi?id=51402 - - This patch broke the Windows 7 Release Layout Tests (Requested - by jessieberlin on #webkit). - - * wtf/StackBounds.cpp: - (WTF::estimateStackBound): - (WTF::StackBounds::initialize): - -2010-12-21 Peter Varga - - Reviewed by Csaba Osztrogonác. - - Unify the name of parentheses in YARR: rename parenthesis to - parentheses. - - * yarr/RegexCompiler.cpp: - (JSC::Yarr::RegexPatternConstructor::atomParenthesesEnd): - -2010-12-21 Laszlo Gombos - - Reviewed by Andreas Kling. - - [Qt] Set BUILDING_QT__ consistently - https://bugs.webkit.org/show_bug.cgi?id=51341 - - * JavaScriptCore.pri: Remove the definition of BUILDING_QT__ as it - is already defined in WebKit.pri. - -2010-12-20 Gavin Barraclough - - Reviewed by Oliver Hunt. - - Bug 26276 - Need a mechanism to determine stack extent - - This patch adds accurate stack size calculation for: - DARWIN, WINDOWS, QNX, UNIX - We still need to fix: - SOLARIS, OPENBSD, SYMBIAN, HAIKU, WINCE - - * wtf/StackBounds.cpp: - (WTF::StackBounds::initialize): - -2010-12-20 Gavin Barraclough - - PPC build fix; stop using std::swap on PageAllocation/PageReservation, - this was failing on some compilers since the lack of default construction - for the m_executable/m_writable fields meant the value being swapped may - not have been fully initialized. - - * wtf/PageAllocation.h: - (WTF::PageAllocation::deallocate): - * wtf/PageBlock.h: - * wtf/PageReservation.h: - (WTF::PageReservation::deallocate): - -2010-12-20 Oliver Hunt - - Reviewed by Geoffrey Garen. - - |delete name| in strict mode code should be an early error - https://bugs.webkit.org/show_bug.cgi?id=50431 - - Disallow the |delete IDENTIFIER| production in strict mode, and removed - a bunch of now unnecessary code. - - * parser/JSParser.cpp: - (JSC::JSParser::Scope::collectFreeVariables): - (JSC::jsParse): - (JSC::JSParser::parseProgram): - (JSC::JSParser::parseUnaryExpression): - * parser/JSParser.h: - * parser/Parser.cpp: - (JSC::Parser::parse): - * parser/Parser.h: - (JSC::Parser::parse): - -2010-12-20 Gavin Barraclough - - Reviewed by Olver Hunt. - - Bug 51358 - Should check stack depth rather than using recursion limits in byte compilation - - The current implementation of recursion limit checking is not safe on smaller stacks. - Switch to using a common mechanism, shared with the parser, to check recursion limits. - - Make bytecompiler use StackBounds. Empirical testing shows emitStrcat to have the largest - footprint on the stack, at just under 1k on x86-64. Given this, the default recursion - check (requiring 4k of available space to recurse) seems reasonable. - - * bytecompiler/BytecodeGenerator.cpp: - (JSC::BytecodeGenerator::BytecodeGenerator): - * bytecompiler/BytecodeGenerator.h: - (JSC::BytecodeGenerator::emitNode): - (JSC::BytecodeGenerator::emitNodeInConditionContext): - * bytecompiler/NodesCodegen.cpp: - (JSC::BinaryOpNode::emitStrcat): - -2010-12-20 Tony Gentilcore - - Unreviewed build fix. - - Include pthread to fix chromium mac build (broken by r74360) - https://bugs.webkit.org/show_bug.cgi?id=51356 - - * wtf/StackBounds.cpp: - -2010-12-20 Xan Lopez - - Reviewed by Gustavo Noronha. - - * GNUmakefile.am: add missing files. - -2010-12-18 Gavin Barraclough - - Reviewed by Oliver Hunt. - - Bug 26276 - Need a mechanism to determine stack extent - - This patch adds a class 'StackBounds', to hold information about the machine stack. - The implementation of this class broadly adheres to the current implmentation of - stack limit checking, and as such does not solve the problem of determining stack - extent, but gives us a common place to do so. - - Currently two mechanism are provided to determine the stack origin (the point the - stack is growing away from). currentThreadStackBase() in Collector provides a - more accurate determination of the stack origin, so use this to calculate - StackBounds::m_origin; WTFThreadData::approximatedStackStart is less accurate, and - as such can be removed. Cache the StackBounds on WTFThreadData such that they - need only be determined once per thread, and for non-API contexts cache this - information in JSGlobalData, to save a thread-specific access. - - For the time being retain the estimate of stack size used by JSC's parser - (128 * sizeof(void*) * 1024), with a view to replacing this with something more - accurate in the near future. - - * parser/JSParser.cpp: - (JSC::JSParser::canRecurse): - (JSC::JSParser::JSParser): - Change to use StackBounds. - * runtime/Collector.cpp: - (JSC::Heap::registerThread): - (JSC::Heap::markCurrentThreadConservativelyInternal): - Change to use StackBounds, cached on JSGlobalData. - * runtime/JSGlobalData.cpp: - (JSC::JSGlobalData::JSGlobalData): - * runtime/JSGlobalData.h: - (JSC::JSGlobalData::stack): - Add a cached copy of StackBounds. - * wtf/StackBounds.cpp: Copied from JavaScriptCore/runtime/Collector.cpp. - (WTF::estimateStackBound): - (WTF::StackBounds::initialize): - (WTF::getStackMax): - Copy code from Collector.cpp to determine stack origin. - * wtf/StackBounds.h: Added. - (WTF::StackBounds::StackBounds): - No argument constructor; returns a null StackBounds. - (WTF::StackBounds::currentThreadStackBounds): - Returns a StackBounds object representing the stack limits - of the current thread. - (WTF::StackBounds::origin): - Returns to stack origin (the point the stack is growing away - from; the highest extent of the stack on machines where the - stack grows downwards. - (WTF::StackBounds::recursionLimit): - Returns a limit value that is 'a comfortable distance from - the end of the stack'. Our concept of this is currently 1 page - away from the end, however the default value may be tuned in - the future, and clients may override passing a larger delta; - should only be called on StackBounds object representing the - stack of the thread this method is called on (checked by - checkConsistency). - (WTF::StackBounds::recursionCheck): - Checks whether we are currently 'a comfortable distance from - the end of the stack'. Our concept of this is currently 1 page - away from the end, however the default value may be tuned in - the future, and clients may override passing a larger delta - to apply when checking, if they wish to do so. This method - should only be called on StackBounds object representing the - stack of the thread this method is called on (checked by - checkConsistency). - (WTF::StackBounds::current): - Approximate current stack position. On machines where the stack - is growing downwards this is the lowest address that might need - conservative collection. - (WTF::StackBounds::isGrowingDownward): - True for all platforms other than WINCE, which has to check. - (WTF::StackBounds::checkConsistency): - This is called in methods that shoulds only be operating on a - valid set of bounds; as such we expect m_origin != m_bounds - (i.e. stack size != zero) - we're really testing that this - object is not null (the constructor initializes both fields - to zero). Also checks that current() is within the stack's - bounds. - * wtf/WTFThreadData.cpp: - (WTF::WTFThreadData::WTFThreadData): - * wtf/WTFThreadData.h: - (WTF::WTFThreadData::stack): - Add the StackBounds member variable. - -2010-12-17 Geoffrey Garen - - Reviewed by Sam Weinig. - - Factored common page set management into a new PageBlock base class - https://bugs.webkit.org/show_bug.cgi?id=51285 - - * Android.mk: - * CMakeLists.txt: - * GNUmakefile.am: - * JavaScriptCore.gypi: - * JavaScriptCore.vcproj/WTF/WTF.vcproj: - * JavaScriptCore.xcodeproj/project.pbxproj: - * interpreter/RegisterFile.h: - (JSC::RegisterFile::RegisterFile): - * jit/ExecutableAllocator.cpp: - (JSC::ExecutableAllocator::intializePageSize): - * wtf/PageAllocation.cpp: Removed. - * wtf/PageAllocation.h: - (WTF::PageAllocation::deallocate): - (WTF::PageAllocation::PageAllocation): - * wtf/PageReservation.h: - (WTF::PageReservation::commit): - (WTF::PageReservation::decommit): - (WTF::PageReservation::deallocate): - (WTF::PageReservation::PageReservation): - * wtf/wtf.pri: - -2010-12-17 Michael Saboff - - Reviewed by Oliver Hunt. - - RegExp Jit'ed expression crashes clicking link on yelp.com - https://bugs.webkit.org/show_bug.cgi?id=51284 - - When transitioning between an non-repeating beginning of line - anchored expression and the remaining refactored repeating - expression, we should not clear any residual datalabel in - state's m_backtrack. It will be resolved and cleared in subsequent - code when linkAlternativeBacktracks() is called for the repeating - alternative(s). - - * yarr/RegexJIT.cpp: - (JSC::Yarr::RegexGenerator::BacktrackDestination::clear): - (JSC::Yarr::RegexGenerator::TermGenerationState::clearBacktrack): - -2010-12-17 Dan Bernstein - - Rubber-stamped by Mark Rowe. - - Updated for the renaming of WebKitTools to Tools - - * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh: - -2010-12-17 Ariya Hidayat - - Reviewed by Oliver Hunt. - - [JSC] parseAssignmentExpression should use TreeBuilder::CreatesAST - https://bugs.webkit.org/show_bug.cgi?id=51268 - - * parser/JSParser.cpp: - (JSC::JSParser::parseAssignmentExpression): - -2010-12-17 Geoffrey Garen - - Reviewed by Oliver Hunt. - - Removed RChunk from PageAllocation/PageReservation, since it's now unused. - https://bugs.webkit.org/show_bug.cgi?id=51276 - - * wtf/PageAllocation.h: - (WTF::PageAllocation::PageAllocation): - * wtf/PageReservation.h: - (WTF::PageReservation::PageReservation): - -2010-12-17 Oliver Hunt - - Reviewed by Gavin Barraclough. - - Incorrect encoding of some constants in ARMv7 JIT - https://bugs.webkit.org/show_bug.cgi?id=51273 - - - When using immediate encoding 3 we need to write the byte - that holds a duplicated value. - - * assembler/ARMv7Assembler.h: - (JSC::ARMThumbImmediate::makeEncodedImm): - -2010-12-16 Evan Martin - - Reviewed by Darin Fisher. - - [chromium] useless warnings when building on Windows - https://bugs.webkit.org/show_bug.cgi?id=50985 - - Disable some compiler warnings that aren't indicative of real problems. - - * JavaScriptCore.gyp/JavaScriptCore.gyp: - -2010-12-16 Pratik Solanki - - Reviewed by Geoffrey Garen. - - https://bugs.webkit.org/show_bug.cgi?id=51166 - ExecutableAllocator::cacheFlush should call sys_cache_control - - * jit/ExecutableAllocator.h: - (JSC::ExecutableAllocator::cacheFlush): Use the more correct and forward looking API - - sys_cache_control(kCacheFunctionPrepareForExecution,...). - -2010-12-16 Ariya Hidayat - - Reviewed by Andreas Kling. - - [JSC] Const correctness in ASTBuilder and SyntaxChecker - https://bugs.webkit.org/show_bug.cgi?id=51141 - - * parser/ASTBuilder.h: - (JSC::ASTBuilder::getName): - (JSC::ASTBuilder::getType): - (JSC::ASTBuilder::isResolve): - * parser/SyntaxChecker.h: - (JSC::SyntaxChecker::operatorStackPop): - -2010-12-15 Kenneth Russell - - Reviewed by James Robinson. - - Web Audio API: port FFTFrame to MKL - https://bugs.webkit.org/show_bug.cgi?id=50986 - - Fixed bug in log2 emulation function provided for Windows port of - Web Audio API. - - * wtf/MathExtras.h: - (log2): - -2010-12-14 Mark Rowe - - Reviewed by Sam Weinig. - - Reproducible crash inside WebCore::MediaPlayerPrivateQTKit::createQTMovie when loading