From 2fc2651226baac27029e38c9d6ef883fa32084db Mon Sep 17 00:00:00 2001 From: Steve Block Date: Wed, 18 May 2011 13:36:51 +0100 Subject: Merge WebKit at r78450: Initial merge by git. Change-Id: I6d3e5f1f868ec266a0aafdef66182ddc3f265dc1 --- Source/JavaScriptCore/API/JSCallbackObject.h | 20 +- .../JavaScriptCore/API/JSCallbackObjectFunctions.h | 10 +- Source/JavaScriptCore/API/JSObjectRef.cpp | 6 +- Source/JavaScriptCore/API/JSStringRefCF.cpp | 2 +- .../API/JSWeakObjectMapRefInternal.h | 2 +- Source/JavaScriptCore/Android.mk | 17 +- Source/JavaScriptCore/Android.v8.wtf.mk | 15 +- Source/JavaScriptCore/CMakeLists.txt | 19 +- Source/JavaScriptCore/CMakeListsWinCE.txt | 17 + Source/JavaScriptCore/ChangeLog | 4127 ++++++++++++++++++++ .../Configurations/FeatureDefines.xcconfig | 14 +- .../Configurations/JavaScriptCore.xcconfig | 4 +- .../JavaScriptCore/Configurations/Version.xcconfig | 2 +- Source/JavaScriptCore/DerivedSources.make | 28 +- Source/JavaScriptCore/DerivedSources.pro | 9 - Source/JavaScriptCore/GNUmakefile.am | 37 +- .../JavaScriptCore.JSVALUE32only.exp | 2 - Source/JavaScriptCore/JavaScriptCore.exp | 24 +- .../JavaScriptCore.gyp/JavaScriptCore.gyp | 18 +- Source/JavaScriptCore/JavaScriptCore.gypi | 26 +- Source/JavaScriptCore/JavaScriptCore.order | 5 - Source/JavaScriptCore/JavaScriptCore.pri | 8 +- Source/JavaScriptCore/JavaScriptCore.pro | 12 +- .../JavaScriptCore.vcproj/JavaScriptCore.make | 41 +- .../JavaScriptCore/JavaScriptCore.def | 23 +- .../JavaScriptCore/JavaScriptCore.vcproj | 66 +- .../JavaScriptCore/JavaScriptCoreCommon.vsprops | 2 +- .../JavaScriptCore/JavaScriptCoreGenerated.make | 102 +- .../JavaScriptCore/JavaScriptCoreGenerated.vcproj | 4 + .../JavaScriptCore/react-to-vsprops-changes.py | 19 +- .../JavaScriptCore.vcproj/WTF/WTF.vcproj | 24 +- .../JavaScriptCore.vcproj/WTF/WTFCommon.vsprops | 2 +- .../JavaScriptCore.vcproj/jsc/jscCommon.vsprops | 2 +- .../JavaScriptCore.xcodeproj/project.pbxproj | 128 +- .../JavaScriptCore/assembler/MacroAssemblerARM.h | 17 +- Source/JavaScriptCore/bytecode/CodeBlock.cpp | 4 +- Source/JavaScriptCore/bytecode/CodeBlock.h | 12 +- .../bytecompiler/BytecodeGenerator.cpp | 12 +- Source/JavaScriptCore/config.h | 4 + Source/JavaScriptCore/create_regex_tables | 12 +- Source/JavaScriptCore/debugger/Debugger.cpp | 90 +- .../JavaScriptCore/debugger/DebuggerActivation.cpp | 6 +- .../JavaScriptCore/debugger/DebuggerActivation.h | 4 +- .../JavaScriptCore/debugger/DebuggerCallFrame.cpp | 2 +- Source/JavaScriptCore/interpreter/CallFrame.h | 2 +- Source/JavaScriptCore/interpreter/Interpreter.cpp | 54 +- Source/JavaScriptCore/interpreter/RegisterFile.h | 2 - Source/JavaScriptCore/jit/ExecutableAllocator.cpp | 2 +- Source/JavaScriptCore/jit/ExecutableAllocator.h | 4 +- .../jit/ExecutableAllocatorFixedVMPool.cpp | 766 ++-- Source/JavaScriptCore/jit/JIT.cpp | 16 - Source/JavaScriptCore/jit/JIT.h | 3 - Source/JavaScriptCore/jit/JITOpcodes.cpp | 16 +- Source/JavaScriptCore/jit/JITStubs.cpp | 170 +- Source/JavaScriptCore/jsc.cpp | 2 +- Source/JavaScriptCore/jsc.pro | 2 +- Source/JavaScriptCore/parser/JSParser.cpp | 48 +- Source/JavaScriptCore/parser/SourceProvider.h | 19 +- .../JavaScriptCore/parser/SourceProviderCache.cpp | 56 + Source/JavaScriptCore/parser/SourceProviderCache.h | 48 + .../parser/SourceProviderCacheItem.h | 66 + Source/JavaScriptCore/pcre/AUTHORS | 12 - Source/JavaScriptCore/pcre/COPYING | 35 - Source/JavaScriptCore/pcre/dftables | 273 -- Source/JavaScriptCore/pcre/pcre.h | 68 - Source/JavaScriptCore/pcre/pcre.pri | 12 - Source/JavaScriptCore/pcre/pcre_compile.cpp | 2708 ------------- Source/JavaScriptCore/pcre/pcre_exec.cpp | 2179 ----------- Source/JavaScriptCore/pcre/pcre_internal.h | 455 --- Source/JavaScriptCore/pcre/pcre_tables.cpp | 72 - .../JavaScriptCore/pcre/pcre_ucp_searchfuncs.cpp | 99 - Source/JavaScriptCore/pcre/pcre_xclass.cpp | 115 - Source/JavaScriptCore/pcre/ucpinternal.h | 126 - Source/JavaScriptCore/pcre/ucptable.cpp | 2968 -------------- Source/JavaScriptCore/runtime/ArgList.cpp | 2 +- Source/JavaScriptCore/runtime/Arguments.cpp | 23 +- Source/JavaScriptCore/runtime/Arguments.h | 29 +- Source/JavaScriptCore/runtime/ArrayConstructor.cpp | 6 +- Source/JavaScriptCore/runtime/ArrayPrototype.cpp | 6 +- .../runtime/BatchedTransitionOptimizer.h | 8 +- .../JavaScriptCore/runtime/BooleanConstructor.cpp | 12 +- Source/JavaScriptCore/runtime/BooleanObject.cpp | 4 +- Source/JavaScriptCore/runtime/BooleanObject.h | 2 +- Source/JavaScriptCore/runtime/BooleanPrototype.cpp | 4 +- .../JavaScriptCore/runtime/CollectorHeapIterator.h | 140 - Source/JavaScriptCore/runtime/ConservativeSet.cpp | 65 + Source/JavaScriptCore/runtime/ConservativeSet.h | 80 + Source/JavaScriptCore/runtime/DateConstructor.cpp | 4 +- Source/JavaScriptCore/runtime/DateInstance.cpp | 16 +- Source/JavaScriptCore/runtime/DatePrototype.cpp | 22 +- Source/JavaScriptCore/runtime/Error.cpp | 2 +- Source/JavaScriptCore/runtime/ErrorConstructor.cpp | 4 +- Source/JavaScriptCore/runtime/ErrorInstance.cpp | 4 +- Source/JavaScriptCore/runtime/ErrorPrototype.cpp | 2 +- .../JavaScriptCore/runtime/FunctionConstructor.cpp | 4 +- .../JavaScriptCore/runtime/FunctionPrototype.cpp | 2 +- Source/JavaScriptCore/runtime/GCActivityCallback.h | 10 + .../runtime/GCActivityCallbackCF.cpp | 26 +- Source/JavaScriptCore/runtime/GetterSetter.cpp | 4 +- Source/JavaScriptCore/runtime/GetterSetter.h | 14 +- .../JavaScriptCore/runtime/GlobalEvalFunction.cpp | 4 +- Source/JavaScriptCore/runtime/GlobalEvalFunction.h | 4 +- Source/JavaScriptCore/runtime/Heap.cpp | 187 +- Source/JavaScriptCore/runtime/Heap.h | 115 +- Source/JavaScriptCore/runtime/InternalFunction.cpp | 2 +- Source/JavaScriptCore/runtime/JSAPIValueWrapper.h | 6 +- Source/JavaScriptCore/runtime/JSActivation.cpp | 12 +- Source/JavaScriptCore/runtime/JSArray.cpp | 126 +- Source/JavaScriptCore/runtime/JSArray.h | 24 +- Source/JavaScriptCore/runtime/JSByteArray.cpp | 2 +- Source/JavaScriptCore/runtime/JSCell.h | 56 +- Source/JavaScriptCore/runtime/JSFunction.cpp | 18 +- Source/JavaScriptCore/runtime/JSGlobalData.cpp | 53 +- Source/JavaScriptCore/runtime/JSGlobalData.h | 9 +- Source/JavaScriptCore/runtime/JSGlobalObject.cpp | 240 +- Source/JavaScriptCore/runtime/JSGlobalObject.h | 125 +- Source/JavaScriptCore/runtime/JSONObject.cpp | 32 +- Source/JavaScriptCore/runtime/JSObject.cpp | 34 +- Source/JavaScriptCore/runtime/JSObject.h | 130 +- .../runtime/JSObjectWithGlobalObject.cpp | 5 +- .../runtime/JSPropertyNameIterator.cpp | 6 +- .../runtime/JSPropertyNameIterator.h | 2 +- .../JavaScriptCore/runtime/JSStaticScopeObject.cpp | 2 +- Source/JavaScriptCore/runtime/JSString.cpp | 2 +- Source/JavaScriptCore/runtime/JSValue.h | 6 + Source/JavaScriptCore/runtime/JSVariableObject.h | 18 +- Source/JavaScriptCore/runtime/JSWrapperObject.cpp | 2 +- Source/JavaScriptCore/runtime/JSWrapperObject.h | 18 +- Source/JavaScriptCore/runtime/LiteralParser.cpp | 2 +- Source/JavaScriptCore/runtime/Lookup.cpp | 6 +- Source/JavaScriptCore/runtime/Lookup.h | 4 +- .../JavaScriptCore/runtime/MachineStackMarker.cpp | 24 +- Source/JavaScriptCore/runtime/MarkStack.h | 36 +- Source/JavaScriptCore/runtime/MarkedBlock.cpp | 84 + Source/JavaScriptCore/runtime/MarkedBlock.h | 177 + Source/JavaScriptCore/runtime/MarkedSpace.cpp | 337 +- Source/JavaScriptCore/runtime/MarkedSpace.h | 206 +- Source/JavaScriptCore/runtime/MathObject.cpp | 16 +- Source/JavaScriptCore/runtime/MemoryStatistics.cpp | 5 - Source/JavaScriptCore/runtime/MemoryStatistics.h | 1 - .../runtime/NativeErrorConstructor.cpp | 4 +- .../runtime/NativeErrorPrototype.cpp | 6 +- .../JavaScriptCore/runtime/NumberConstructor.cpp | 8 +- Source/JavaScriptCore/runtime/NumberObject.cpp | 8 +- Source/JavaScriptCore/runtime/NumberObject.h | 2 +- Source/JavaScriptCore/runtime/NumberPrototype.cpp | 4 +- .../JavaScriptCore/runtime/ObjectConstructor.cpp | 16 +- Source/JavaScriptCore/runtime/Operations.h | 6 +- Source/JavaScriptCore/runtime/PropertySlot.h | 50 +- .../JavaScriptCore/runtime/PrototypeFunction.cpp | 4 +- Source/JavaScriptCore/runtime/PutPropertySlot.h | 8 +- Source/JavaScriptCore/runtime/RegExp.cpp | 8 +- .../JavaScriptCore/runtime/RegExpConstructor.cpp | 4 +- Source/JavaScriptCore/runtime/ScopeChain.cpp | 4 +- Source/JavaScriptCore/runtime/ScopeChain.h | 10 +- Source/JavaScriptCore/runtime/ScopeChainMark.h | 2 +- Source/JavaScriptCore/runtime/SmallStrings.cpp | 12 +- Source/JavaScriptCore/runtime/SmallStrings.h | 11 +- .../JavaScriptCore/runtime/StringConstructor.cpp | 4 +- Source/JavaScriptCore/runtime/StringObject.cpp | 14 +- Source/JavaScriptCore/runtime/StringObject.h | 2 +- Source/JavaScriptCore/runtime/StringPrototype.cpp | 4 +- Source/JavaScriptCore/runtime/Structure.cpp | 10 +- Source/JavaScriptCore/runtime/Structure.h | 7 +- Source/JavaScriptCore/runtime/StructureChain.cpp | 2 +- Source/JavaScriptCore/runtime/WeakGCMap.h | 60 +- Source/JavaScriptCore/runtime/WriteBarrier.h | 165 + Source/JavaScriptCore/wscript | 2 +- Source/JavaScriptCore/wtf/Assertions.cpp | 44 +- Source/JavaScriptCore/wtf/Assertions.h | 12 + Source/JavaScriptCore/wtf/Bitmap.h | 22 +- Source/JavaScriptCore/wtf/BloomFilter.h | 139 + Source/JavaScriptCore/wtf/CMakeLists.txt | 7 +- .../wtf/CryptographicallyRandomNumber.cpp | 191 + .../wtf/CryptographicallyRandomNumber.h | 45 + Source/JavaScriptCore/wtf/CurrentTime.h | 38 +- Source/JavaScriptCore/wtf/DateMath.h | 1 - Source/JavaScriptCore/wtf/FastMalloc.cpp | 18 +- Source/JavaScriptCore/wtf/HashSet.h | 4 +- Source/JavaScriptCore/wtf/MallocZoneSupport.h | 10 +- Source/JavaScriptCore/wtf/MathExtras.h | 28 + Source/JavaScriptCore/wtf/OSRandomSource.cpp | 71 + Source/JavaScriptCore/wtf/OSRandomSource.h | 41 + Source/JavaScriptCore/wtf/OwnArrayPtr.h | 16 +- Source/JavaScriptCore/wtf/OwnArrayPtrCommon.h | 40 - Source/JavaScriptCore/wtf/PageAllocation.h | 9 +- Source/JavaScriptCore/wtf/PageReservation.h | 34 +- Source/JavaScriptCore/wtf/PassOwnArrayPtr.h | 9 +- Source/JavaScriptCore/wtf/Platform.h | 39 +- Source/JavaScriptCore/wtf/RandomNumber.cpp | 6 +- Source/JavaScriptCore/wtf/RandomNumberSeed.h | 20 +- Source/JavaScriptCore/wtf/StringExtras.h | 3 +- Source/JavaScriptCore/wtf/StringHasher.h | 6 + Source/JavaScriptCore/wtf/TCSystemAlloc.cpp | 4 + Source/JavaScriptCore/wtf/ThreadingPrimitives.h | 10 + Source/JavaScriptCore/wtf/ThreadingWin.cpp | 30 +- Source/JavaScriptCore/wtf/gobject/GTypedefs.h | 2 +- Source/JavaScriptCore/wtf/text/AtomicString.cpp | 15 +- Source/JavaScriptCore/wtf/text/StringImpl.h | 10 + Source/JavaScriptCore/wtf/text/WTFString.cpp | 2 +- Source/JavaScriptCore/wtf/text/WTFString.h | 14 + Source/JavaScriptCore/wtf/unicode/CharacterNames.h | 142 + Source/JavaScriptCore/wtf/unicode/UTF8.cpp | 33 +- Source/JavaScriptCore/wtf/unicode/UTF8.h | 1 + .../wtf/unicode/UnicodeMacrosFromICU.h | 40 +- Source/JavaScriptCore/wtf/wince/mt19937ar.c | 170 - Source/JavaScriptCore/wtf/wtf.pri | 7 +- Source/JavaScriptCore/wtf/wx/StringWx.cpp | 10 +- Source/JavaScriptCore/yarr/Yarr.h | 6 - Source/JavaScriptCore/yarr/YarrInterpreter.cpp | 18 +- Source/JavaScriptCore/yarr/YarrJIT.cpp | 60 +- Source/JavaScriptCore/yarr/YarrJIT.h | 5 + Source/JavaScriptCore/yarr/YarrParser.h | 2 +- Source/JavaScriptCore/yarr/YarrPattern.cpp | 40 +- Source/JavaScriptCore/yarr/YarrPattern.h | 3 +- Source/JavaScriptCore/yarr/YarrSyntaxChecker.h | 2 +- Source/JavaScriptCore/yarr/yarr.pri | 7 + 217 files changed, 7937 insertions(+), 12017 deletions(-) delete mode 100644 Source/JavaScriptCore/JavaScriptCore.JSVALUE32only.exp create mode 100644 Source/JavaScriptCore/parser/SourceProviderCache.cpp create mode 100644 Source/JavaScriptCore/parser/SourceProviderCache.h create mode 100644 Source/JavaScriptCore/parser/SourceProviderCacheItem.h delete mode 100644 Source/JavaScriptCore/pcre/AUTHORS delete mode 100644 Source/JavaScriptCore/pcre/COPYING delete mode 100755 Source/JavaScriptCore/pcre/dftables delete mode 100644 Source/JavaScriptCore/pcre/pcre.h delete mode 100644 Source/JavaScriptCore/pcre/pcre.pri delete mode 100644 Source/JavaScriptCore/pcre/pcre_compile.cpp delete mode 100644 Source/JavaScriptCore/pcre/pcre_exec.cpp delete mode 100644 Source/JavaScriptCore/pcre/pcre_internal.h delete mode 100644 Source/JavaScriptCore/pcre/pcre_tables.cpp delete mode 100644 Source/JavaScriptCore/pcre/pcre_ucp_searchfuncs.cpp delete mode 100644 Source/JavaScriptCore/pcre/pcre_xclass.cpp delete mode 100644 Source/JavaScriptCore/pcre/ucpinternal.h delete mode 100644 Source/JavaScriptCore/pcre/ucptable.cpp delete mode 100644 Source/JavaScriptCore/runtime/CollectorHeapIterator.h create mode 100644 Source/JavaScriptCore/runtime/ConservativeSet.cpp create mode 100644 Source/JavaScriptCore/runtime/ConservativeSet.h create mode 100644 Source/JavaScriptCore/runtime/MarkedBlock.cpp create mode 100644 Source/JavaScriptCore/runtime/MarkedBlock.h create mode 100644 Source/JavaScriptCore/runtime/WriteBarrier.h create mode 100644 Source/JavaScriptCore/wtf/BloomFilter.h create mode 100644 Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp create mode 100644 Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.h create mode 100644 Source/JavaScriptCore/wtf/OSRandomSource.cpp create mode 100644 Source/JavaScriptCore/wtf/OSRandomSource.h delete mode 100644 Source/JavaScriptCore/wtf/OwnArrayPtrCommon.h create mode 100644 Source/JavaScriptCore/wtf/unicode/CharacterNames.h delete mode 100644 Source/JavaScriptCore/wtf/wince/mt19937ar.c create mode 100644 Source/JavaScriptCore/yarr/yarr.pri (limited to 'Source/JavaScriptCore') diff --git a/Source/JavaScriptCore/API/JSCallbackObject.h b/Source/JavaScriptCore/API/JSCallbackObject.h index 83442b2..f47d0b1 100644 --- a/Source/JavaScriptCore/API/JSCallbackObject.h +++ b/Source/JavaScriptCore/API/JSCallbackObject.h @@ -54,11 +54,11 @@ struct JSCallbackObjectData { return m_privateProperties->getPrivateProperty(propertyName); } - void setPrivateProperty(const Identifier& propertyName, JSValue value) + void setPrivateProperty(JSGlobalData& globalData, JSCell* owner, const Identifier& propertyName, JSValue value) { if (!m_privateProperties) m_privateProperties = adoptPtr(new JSPrivatePropertyMap); - m_privateProperties->setPrivateProperty(propertyName, value); + m_privateProperties->setPrivateProperty(globalData, owner, propertyName, value); } void deletePrivateProperty(const Identifier& propertyName) @@ -83,12 +83,13 @@ struct JSCallbackObjectData { PrivatePropertyMap::const_iterator location = m_propertyMap.find(propertyName.impl()); if (location == m_propertyMap.end()) return JSValue(); - return location->second; + return location->second.get(); } - void setPrivateProperty(const Identifier& propertyName, JSValue value) + void setPrivateProperty(JSGlobalData& globalData, JSCell* owner, const Identifier& propertyName, JSValue value) { - m_propertyMap.set(propertyName.impl(), value); + WriteBarrier empty; + m_propertyMap.add(propertyName.impl(), empty).first->second.set(globalData, owner, value); } void deletePrivateProperty(const Identifier& propertyName) @@ -100,12 +101,12 @@ struct JSCallbackObjectData { { for (PrivatePropertyMap::iterator ptr = m_propertyMap.begin(); ptr != m_propertyMap.end(); ++ptr) { if (ptr->second) - markStack.append(ptr->second); + markStack.append(&ptr->second); } } private: - typedef HashMap, JSValue, IdentifierRepHash> PrivatePropertyMap; + typedef HashMap, WriteBarrier, IdentifierRepHash> PrivatePropertyMap; PrivatePropertyMap m_propertyMap; }; OwnPtr m_privateProperties; @@ -137,9 +138,9 @@ public: return m_callbackObjectData->getPrivateProperty(propertyName); } - void setPrivateProperty(const Identifier& propertyName, JSValue value) + void setPrivateProperty(JSGlobalData& globalData, const Identifier& propertyName, JSValue value) { - m_callbackObjectData->setPrivateProperty(propertyName, value); + m_callbackObjectData->setPrivateProperty(globalData, this, propertyName, value); } void deletePrivateProperty(const Identifier& propertyName) @@ -154,7 +155,6 @@ private: virtual UString className() const; virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&); - virtual bool getOwnPropertySlot(ExecState*, unsigned, PropertySlot&); virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&); virtual void put(ExecState*, const Identifier&, JSValue, PutPropertySlot&); diff --git a/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h b/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h index de5d842..59373ec 100644 --- a/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h +++ b/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h @@ -164,12 +164,6 @@ bool JSCallbackObject::getOwnPropertySlot(ExecState* exec, const Identifie } template -bool JSCallbackObject::getOwnPropertySlot(ExecState* exec, unsigned propertyName, PropertySlot& slot) -{ - return getOwnPropertySlot(exec, Identifier::from(exec, propertyName), slot); -} - -template bool JSCallbackObject::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor) { PropertySlot slot; @@ -238,7 +232,7 @@ void JSCallbackObject::put(ExecState* exec, const Identifier& propertyName if (StaticFunctionEntry* entry = staticFunctions->get(propertyName.impl())) { if (entry->attributes & kJSPropertyAttributeReadOnly) return; - JSCallbackObject::putDirect(propertyName, value); // put as override property + JSCallbackObject::putDirect(exec->globalData(), propertyName, value); // put as override property return; } } @@ -565,7 +559,7 @@ JSValue JSCallbackObject::staticFunctionGetter(ExecState* exec, JSValue sl if (JSObjectCallAsFunctionCallback callAsFunction = entry->callAsFunction) { JSObject* o = new (exec) JSCallbackFunction(exec, asGlobalObject(thisObj->getAnonymousValue(0)), callAsFunction, propertyName); - thisObj->putDirect(propertyName, o, entry->attributes); + thisObj->putDirect(exec->globalData(), propertyName, o, entry->attributes); return o; } } diff --git a/Source/JavaScriptCore/API/JSObjectRef.cpp b/Source/JavaScriptCore/API/JSObjectRef.cpp index d6de426..d3c1993 100644 --- a/Source/JavaScriptCore/API/JSObjectRef.cpp +++ b/Source/JavaScriptCore/API/JSObjectRef.cpp @@ -108,7 +108,7 @@ JSObjectRef JSObjectMakeConstructor(JSContextRef ctx, JSClassRef jsClass, JSObje jsPrototype = exec->lexicalGlobalObject()->objectPrototype(); JSCallbackConstructor* constructor = new (exec) JSCallbackConstructor(exec->lexicalGlobalObject(), exec->lexicalGlobalObject()->callbackConstructorStructure(), jsClass, callAsConstructor); - constructor->putDirect(exec->propertyNames().prototype, jsPrototype, DontEnum | DontDelete | ReadOnly); + constructor->putDirect(exec->globalData(), exec->propertyNames().prototype, jsPrototype, DontEnum | DontDelete | ReadOnly); return toRef(constructor); } @@ -385,11 +385,11 @@ bool JSObjectSetPrivateProperty(JSContextRef ctx, JSObjectRef object, JSStringRe JSValue jsValue = value ? toJS(exec, value) : JSValue(); Identifier name(propertyName->identifier(&exec->globalData())); if (jsObject->inherits(&JSCallbackObject::info)) { - static_cast*>(jsObject)->setPrivateProperty(name, jsValue); + static_cast*>(jsObject)->setPrivateProperty(exec->globalData(), name, jsValue); return true; } if (jsObject->inherits(&JSCallbackObject::info)) { - static_cast*>(jsObject)->setPrivateProperty(name, jsValue); + static_cast*>(jsObject)->setPrivateProperty(exec->globalData(), name, jsValue); return true; } return false; diff --git a/Source/JavaScriptCore/API/JSStringRefCF.cpp b/Source/JavaScriptCore/API/JSStringRefCF.cpp index e0961d0..0877a13 100644 --- a/Source/JavaScriptCore/API/JSStringRefCF.cpp +++ b/Source/JavaScriptCore/API/JSStringRefCF.cpp @@ -42,7 +42,7 @@ JSStringRef JSStringCreateWithCFString(CFStringRef string) // it can hold. () size_t length = CFStringGetLength(string); if (length) { - OwnArrayPtr buffer(new UniChar[length]); + OwnArrayPtr buffer = adoptArrayPtr(new UniChar[length]); CFStringGetCharacters(string, CFRangeMake(0, length), buffer.get()); COMPILE_ASSERT(sizeof(UniChar) == sizeof(UChar), unichar_and_uchar_must_be_same_size); return OpaqueJSString::create(reinterpret_cast(buffer.get()), length).leakRef(); diff --git a/Source/JavaScriptCore/API/JSWeakObjectMapRefInternal.h b/Source/JavaScriptCore/API/JSWeakObjectMapRefInternal.h index 64e1f4d..f7b91da 100644 --- a/Source/JavaScriptCore/API/JSWeakObjectMapRefInternal.h +++ b/Source/JavaScriptCore/API/JSWeakObjectMapRefInternal.h @@ -37,7 +37,7 @@ class JSObject; typedef void (*JSWeakMapDestroyedCallback)(struct OpaqueJSWeakObjectMap*, void*); -typedef JSC::WeakGCMap WeakMapType; +typedef JSC::WeakGCMap WeakMapType; struct OpaqueJSWeakObjectMap : public RefCounted { public: diff --git a/Source/JavaScriptCore/Android.mk b/Source/JavaScriptCore/Android.mk index 052af2c..269d298 100644 --- a/Source/JavaScriptCore/Android.mk +++ b/Source/JavaScriptCore/Android.mk @@ -65,12 +65,6 @@ LOCAL_SRC_FILES := \ parser/Parser.cpp \ parser/ParserArena.cpp \ \ - pcre/pcre_compile.cpp \ - pcre/pcre_exec.cpp \ - pcre/pcre_tables.cpp \ - pcre/pcre_ucp_searchfuncs.cpp \ - pcre/pcre_xclass.cpp \ - \ profiler/Profile.cpp \ profiler/ProfileGenerator.cpp \ profiler/ProfileNode.cpp \ @@ -84,6 +78,7 @@ LOCAL_SRC_FILES := \ runtime/BooleanObject.cpp \ runtime/BooleanPrototype.cpp \ runtime/CallData.cpp \ + runtime/MarkedBlock.cpp \ runtime/MarkedSpace.cpp \ runtime/Heap.cpp \ runtime/CommonIdentifiers.cpp \ @@ -133,6 +128,7 @@ LOCAL_SRC_FILES := \ runtime/LiteralParser.cpp \ runtime/Lookup.cpp \ runtime/MachineStackMarker.cpp \ + runtime/ConservativeSet.cpp \ runtime/MarkStack.cpp \ runtime/MarkStackPosix.cpp \ runtime/MathObject.cpp \ @@ -168,6 +164,7 @@ LOCAL_SRC_FILES := \ \ wtf/Assertions.cpp \ wtf/ByteArray.cpp \ + wtf/CryptographicallyRandomNumber.cpp \ wtf/CurrentTime.cpp \ wtf/DateMath.cpp \ wtf/DecimalNumber.cpp \ @@ -175,7 +172,11 @@ LOCAL_SRC_FILES := \ wtf/HashTable.cpp \ wtf/MD5.cpp \ wtf/MainThread.cpp \ +<<<<<<< HEAD wtf/OSAllocatorPosix.cpp \ +======= + wtf/OSRandomSource.cpp \ +>>>>>>> webkit.org at r78450 wtf/PageAllocationAligned.cpp\ wtf/PageBlock.cpp\ wtf/RandomNumber.cpp \ @@ -237,6 +238,7 @@ $(LEXER_HEADER): $(LOCAL_PATH)/create_hash_table $(LEXER_HEADER): $(intermediates)/%.lut.h : $(LOCAL_PATH)/parser/Keywords.table $(transform-generated-source) +<<<<<<< HEAD CHARTABLES := $(intermediates)/chartables.c $(CHARTABLES): PRIVATE_PATH := $(LOCAL_PATH) $(CHARTABLES): PRIVATE_CUSTOM_TOOL = perl $(PRIVATE_PATH)/pcre/dftables $@ @@ -251,3 +253,6 @@ $(REGEXP_JIT_TABLES): $(LOCAL_PATH)/create_regex_tables $(transform-generated-source) LOCAL_GENERATED_SOURCES += $(JSC_OBJECTS) $(LEXER_HEADER) $(CHARTABLES) $(REGEXP_JIT_TABLES) +======= +LOCAL_GENERATED_SOURCES += $(JSC_OBJECTS) $(LEXER_HEADER) +>>>>>>> webkit.org at r78450 diff --git a/Source/JavaScriptCore/Android.v8.wtf.mk b/Source/JavaScriptCore/Android.v8.wtf.mk index 340ed90..11df0fa 100644 --- a/Source/JavaScriptCore/Android.v8.wtf.mk +++ b/Source/JavaScriptCore/Android.v8.wtf.mk @@ -26,14 +26,9 @@ # wtf source files LOCAL_SRC_FILES := \ - pcre/pcre_compile.cpp \ - pcre/pcre_exec.cpp \ - pcre/pcre_tables.cpp \ - pcre/pcre_ucp_searchfuncs.cpp \ - pcre/pcre_xclass.cpp \ - \ wtf/Assertions.cpp \ wtf/ByteArray.cpp \ + wtf/CryptographicallyRandomNumber.cpp \ wtf/CurrentTime.cpp \ wtf/DateMath.cpp \ wtf/DecimalNumber.cpp \ @@ -41,9 +36,13 @@ LOCAL_SRC_FILES := \ wtf/HashTable.cpp \ wtf/MD5.cpp \ wtf/MainThread.cpp \ +<<<<<<< HEAD wtf/OSAllocatorPosix.cpp \ wtf/PageAllocationAligned.cpp \ wtf/PageBlock.cpp \ +======= + wtf/OSRandomSource.cpp \ +>>>>>>> webkit.org at r78450 wtf/RandomNumber.cpp \ wtf/RefCountedLeakCounter.cpp \ wtf/StackBounds.cpp \ @@ -68,6 +67,7 @@ LOCAL_SRC_FILES := \ wtf/unicode/CollatorDefault.cpp \ wtf/unicode/UTF8.cpp \ \ +<<<<<<< HEAD wtf/unicode/icu/CollatorICU.cpp \ \ wtf/url/src/URLCharacterTypes.cpp \ @@ -85,3 +85,6 @@ $(intermediates)/pcre/pcre_tables.o : $(CHARTABLES) # We do not add $(CHARTABLES) to LOCAL_GENERATED_SOURCES because the chartables.c file # is explicitly #included in pcre_tables.cpp. +======= + wtf/unicode/icu/CollatorICU.cpp +>>>>>>> webkit.org at r78450 diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt index 674d272..f18826e 100644 --- a/Source/JavaScriptCore/CMakeLists.txt +++ b/Source/JavaScriptCore/CMakeLists.txt @@ -10,7 +10,6 @@ SET(JavaScriptCore_INCLUDE_DIRECTORIES "${JAVASCRIPTCORE_DIR}/interpreter" "${JAVASCRIPTCORE_DIR}/jit" "${JAVASCRIPTCORE_DIR}/parser" - "${JAVASCRIPTCORE_DIR}/pcre" "${JAVASCRIPTCORE_DIR}/profiler" "${JAVASCRIPTCORE_DIR}/runtime" "${JAVASCRIPTCORE_DIR}/yarr" @@ -67,12 +66,7 @@ SET(JavaScriptCore_SOURCES parser/Nodes.cpp parser/Parser.cpp parser/ParserArena.cpp - - pcre/pcre_compile.cpp - pcre/pcre_exec.cpp - pcre/pcre_tables.cpp - pcre/pcre_ucp_searchfuncs.cpp - pcre/pcre_xclass.cpp + parser/SourceProviderCache.cpp profiler/Profile.cpp profiler/ProfileGenerator.cpp @@ -87,6 +81,7 @@ SET(JavaScriptCore_SOURCES runtime/BooleanObject.cpp runtime/BooleanPrototype.cpp runtime/CallData.cpp + runtime/MarkedBlock.cpp runtime/MarkedSpace.cpp runtime/Heap.cpp runtime/CommonIdentifiers.cpp @@ -137,6 +132,7 @@ SET(JavaScriptCore_SOURCES runtime/LiteralParser.cpp runtime/Lookup.cpp runtime/MachineStackMarker.cpp + runtime/ConservativeSet.cpp runtime/MarkStack.cpp runtime/MathObject.cpp runtime/NativeErrorConstructor.cpp @@ -208,15 +204,6 @@ ENDFOREACH () GENERATE_HASH_LUT(${JAVASCRIPTCORE_DIR}/parser/Keywords.table ${DERIVED_SOURCES_DIR}/Lexer.lut.h MAIN_DEPENDENCY) LIST(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_DIR}/Lexer.lut.h) -# GENERATOR: "chartables.c": compile and execute the chartables generator (and add it to sources) -ADD_CUSTOM_COMMAND( - OUTPUT ${DERIVED_SOURCES_DIR}/chartables.c - MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/pcre/dftables - COMMAND ${PERL_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/pcre/dftables --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" ${DERIVED_SOURCES_DIR}/chartables.c - VERBATIM) -ADD_SOURCE_DEPENDENCIES(${JAVASCRIPTCORE_DIR}/pcre/pcre_tables.cpp ${DERIVED_SOURCES_DIR}/chartables.c) - - #GENERATOR: "RegExpJitTables.h": tables used by Yarr ADD_CUSTOM_COMMAND( OUTPUT ${DERIVED_SOURCES_DIR}/RegExpJitTables.h diff --git a/Source/JavaScriptCore/CMakeListsWinCE.txt b/Source/JavaScriptCore/CMakeListsWinCE.txt index 666b1c7..58a535e 100644 --- a/Source/JavaScriptCore/CMakeListsWinCE.txt +++ b/Source/JavaScriptCore/CMakeListsWinCE.txt @@ -3,3 +3,20 @@ LIST(APPEND JavaScriptCore_SOURCES runtime/MarkStackWin.cpp ) + +IF (ENABLE_JIT AND WTF_CPU_ARM) + ADD_CUSTOM_COMMAND( + OUTPUT ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.asm + MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/create_jit_stubs + DEPENDS ${JAVASCRIPTCORE_DIR}/jit/JITStubs.cpp + COMMAND ${PERL_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/create_jit_stubs --prefix=MSVC ${JAVASCRIPTCORE_DIR}/jit/JITStubs.cpp > ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.asm + VERBATIM) + + ADD_CUSTOM_COMMAND( + OUTPUT ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.obj + MAIN_DEPENDENCY ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.asm + COMMAND armasm -nologo ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.asm ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.obj + VERBATIM) + + LIST (APPEND JavaScriptCore_SOURCES ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.obj) +ENDIF () diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog index a5391bf..12e0cfd 100644 --- a/Source/JavaScriptCore/ChangeLog +++ b/Source/JavaScriptCore/ChangeLog @@ -1,3 +1,4130 @@ +2011-02-13 Jeremy Moskovich + + Reviewed by Adam Barth. + + Add a compile-time option to completely disable WebArchive support. + https://bugs.webkit.org/show_bug.cgi?id=52712 + + 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. + + * wtf/Platform.h: Add ENABLE_WEB_ARCHIVE definition and turn it off explicitly for Qt & Chromium ports. + +2011-02-13 Cameron Zwarich + + Reviewed by Dan Bernstein. + + Bug 53760 - JSC fails to build with TOT Clang + https://bugs.webkit.org/show_bug.cgi?id=53760 + + Fix -Woverloaded-virtual warnings. This is also a 6% speedup on the v8 raytrace + benchmark; it is nothing-to-noise on everything else. + + * 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. + +2011-02-12 Adam Barth + + Reviewed by Mark Rowe. + + Use /dev/urandom as the OSRandomSource on OS(DARWIN) + https://bugs.webkit.org/show_bug.cgi?id=54279 + + 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. + + * 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 + + Export the required functions. + + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: + +2011-02-11 Daniel Bates + + Reviewed by Geoffrey Garen. + + 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(). + + * wtf/Platform.h: + +2011-02-11 Geoffrey Garen + + Not reviewed. + + Randomly touch some build files in the hopes of fixing the Qt build. + + * JavaScriptCore.gypi: + * JavaScriptCore.pri: + * JavaScriptCore.pro: + +2011-02-11 Geoffrey Garen + + Reviewed by Sam Weinig. + + 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.) + + * runtime/GCActivityCallbackCF.cpp: + (JSC::DefaultGCActivityCallbackPlatformData::trigger): Be sure to make + our timer inert after forcing a GC, to avoid GC'ing repeatedly. + +2011-02-11 Geoffrey Garen + + Not reviewed. + + Used svn merge -r78386:78385 to roll out r78386 because it broke the build. + + * runtime/GCActivityCallbackCF.cpp: + (JSC::DefaultGCActivityCallbackPlatformData::trigger): + +2011-02-11 Geoffrey Garen + + Reviewed by Sam Weinig. + + Garbage collection timer cycles forever, even when nothing is happening + https://bugs.webkit.org/show_bug.cgi?id=54320 + + * runtime/GCActivityCallbackCF.cpp: + (JSC::DefaultGCActivityCallbackPlatformData::trigger): Be sure to make + our timer inert after forcing a GC, to avoid GC'ing repeatedly. + +2011-02-11 Geoffrey Garen + + Try to fix the Windows build: added an exported symbol. + + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: + +2011-02-11 Geoffrey Garen + + Reviewed by Oliver Hunt. + + 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. + + * GNUmakefile.am: + * JavaScriptCore.exp: + * JavaScriptCore.gypi: + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Removed CollectorHeapIterator. + + * debugger/Debugger.cpp: + (JSC::Recompiler::Recompiler): + (JSC::Recompiler::~Recompiler): + (JSC::Recompiler::operator()): + (JSC::Debugger::recompileAllJSFunctions): Updated to use forEach interface + instead of an iterator. + + * runtime/CollectorHeapIterator.h: Removed. + + * 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. + + * runtime/Heap.h: + (JSC::Heap::forEach): + * runtime/JSGlobalData.cpp: + (JSC::Recompiler::operator()): + (JSC::JSGlobalData::recompileAllJSFunctions): + + * 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. + + * runtime/MarkedSpace.cpp: + * runtime/MarkedSpace.h: + (JSC::MarkedSpace::forEach): Added forEach and removed iterator. + +2011-02-11 Adam Barth + + Reviewed by Andreas Kling. + + CryptographicRandomNumber has its threading ifdefs backwards + https://bugs.webkit.org/show_bug.cgi?id=54280 + + Turns out we want the mutex when thread is enabled. :) + + * wtf/CryptographicallyRandomNumber.cpp: + (WTF::ARC4Stream::ARC4RandomNumberGenerator::randomNumber): + (WTF::ARC4Stream::ARC4RandomNumberGenerator::randomValues): + +2011-02-10 Adam Barth + + Reviewed by Eric Seidel. + + WebKit should have a cryptographic RNG + https://bugs.webkit.org/show_bug.cgi?id=22049 + + Teach JavaScriptCore how to export this function. + + * JavaScriptCore.exp: + * JavaScriptCore.xcodeproj/project.pbxproj: + +2011-02-10 Geoffrey Garen + + Reviewed by Sam Weinig. + + 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. + + * runtime/CollectorHeapIterator.h: + (JSC::CollectorHeapIterator::advance): Updated for removal of HeapConstants. + + * runtime/Error.cpp: Switched to using ASSERT_CLASS_FITS_IN_CELL, like + all other classes. + + * 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. + + * 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. + + * 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. + + * 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. + + * runtime/MarkedBlock.cpp: + (JSC::MarkedBlock::destroy): + (JSC::MarkedBlock::MarkedBlock): + (JSC::MarkedBlock::sweep): Updated for removal of HeapConstants. + + * 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. + + * 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. + +2011-02-10 Geoffrey Garen + + Reviewed by Sam Weinig. + + A little more encapsulation for MarkedBlock: Made mark bits private + https://bugs.webkit.org/show_bug.cgi?id=54264 + + SunSpider reports no change. + + * 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. + + * runtime/MarkedBlock.h: + (JSC::MarkedBlock::isEmpty): + (JSC::MarkedBlock::clearMarks): + (JSC::MarkedBlock::markCount): New helper functions for encapsulating + the information clients actually need. + + * 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. + +2011-02-10 Michael Saboff + + Reviewed by Geoffrey Garen. + + Cached JavaScript Parser Data Being Left in Memory Cache + https://bugs.webkit.org/show_bug.cgi?id=54245 + + Added clear method which removes SourceProviderCache items. + Cleaned up extraneous whitespace. + + * 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: + +2011-02-10 Joseph Pecoraro + + Follow-up fix to r78291. I should pass (int) 0, not '0' to memset. + + * runtime/GCActivityCallbackCF.cpp: + (JSC::DefaultGCActivityCallback::commonConstructor): fix mistaken post-review change. + +2011-02-10 Joseph Pecoraro + + Reviewed by Geoffrey Garen. + + Make DefaultGCActivityCallback for PLATFORM(CF) Easier to Subclass + https://bugs.webkit.org/show_bug.cgi?id=54257 + + 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. + + * 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. + +2011-02-10 Geoffrey Garen + + Reviewed by Oliver Hunt. + + 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/CollectorHeapIterator.h: Removed DeadObjectIterator, since it + is now unused. + + * 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/JSCell.h: + (JSC::JSCell::MarkedBlock::allocate): Split out from MarkedSpace::allocate. + + * 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. + + * runtime/MarkedBlock.h: + * runtime/MarkedSpace.cpp: + (JSC::MarkedSpace::allocate): + (JSC::MarkedSpace::sweep): + * runtime/MarkedSpace.h: Split out the code mentioned above. + +2011-02-10 Patrick Gansterer + + Reviewed by Andreas Kling. + + Fix compilation error on OpenBSD + https://bugs.webkit.org/show_bug.cgi?id=53766 + + Add a HAVE_STRNSTR in Platform.h and define it only on Darwin and FreeBSD. + + * wtf/Platform.h: + * wtf/StringExtras.h: Use HAVE(STRNSTR) now. + +2011-02-10 Adam Roben + + Print locations of assertions and logs in a way that Visual Studio understands + + With this change, double-clicking one of these locations in Visual Studio's Output Window + will focus that line of code in the editor. + + Fixes Double-clicking locations of assertions/logs in Visual + Studio's Output Window does nothing + + Reviewed by Alexey Proskuryakov. + + * 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. + +2011-02-10 Dan Bernstein + + LLVM Compiler build fix. + + * runtime/MarkedBlock.cpp: + (JSC::MarkedBlock::create): + +2011-02-10 Peter Varga + + Reviewed by Csaba Osztrogonác. + + Remove PCRE source from trunk + https://bugs.webkit.org/show_bug.cgi?id=54188 + + * 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: + +2011-02-10 Patrick Gansterer + + Reviewed by Adam Barth. + + Add randomValuesFromOS for OS(WINDOWS) + https://bugs.webkit.org/show_bug.cgi?id=54155 + + Use CryptGenRandom for generating cryptographically secure random numbers. + This will work on WinCE and MinGW too. + + * config.h: + * wtf/OSRandomSource.cpp: + (WTF::randomValuesFromOS): + +2011-02-10 Jarred Nicholls + + Reviewed by Adam Barth. + + 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. + + * wtf/OSRandomSource.cpp: + (WTF::randomValuesFromOS): + +2011-02-10 Patrick Gansterer + + 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. + + * 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): + +2011-02-09 Geoffrey Garen + + Reviewed by Oliver Hunt. + + A little more encapsulation for MarkedBlock: Made MarkedBlock responsible + for its own initialization and destruction + https://bugs.webkit.org/show_bug.cgi?id=54137 + + * runtime/CollectorHeapIterator.h: Removed ObjectIterator since it is + now unused. + + * runtime/JSCell.h: Maded MarkedBlock a friend so it can construct and + destruct JSCells. + + * 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. + + * runtime/MarkedBlock.h: Made the consructor private and moved it into + the .cpp file because it's big now. + + * runtime/MarkedSpace.cpp: + (JSC::MarkedSpace::allocateBlock): + (JSC::MarkedSpace::freeBlock): Migrated code. + + * 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. + +2011-02-09 Adam Barth + + Another attempt to fix the Qt Windows build. + + * config.h: + * wtf/OSRandomSource.cpp: + (WTF::randomValuesFromOS): + +2011-02-09 Adam Barth + + Attempt to fix the Qt Windows build. + + * wtf/OSRandomSource.cpp: + (WTF::randomValuesFromOS): + +2011-02-09 Adam Barth + + Reviewed by Eric Seidel. + + Add WTF::cryptographicallyRandomNumber + https://bugs.webkit.org/show_bug.cgi?id=54083 + + Introduce a cryptographically strong random number generator to WTF. + The random number generator is based on arc4random as found in: + + http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/crypt/arc4random.c?rev=1.22 + + 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. + + * 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: + +2011-02-09 Geoffrey Garen + + Try to fix the build. + + * wtf/Bitmap.h: Include string.h for memset. Not sure why this started + failing now. + +2011-02-09 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 + + * 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::allocateBlock): + * 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. + +2011-02-08 Geoffrey Garen + + 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 + + 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. + + * 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. + + * 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. + + (JSC::MarkedSpace::destroy): Change uses of m_heap.usedBlocks to + m_heap.blocks.size(), and m_heap.numBlocks to m_heap.blocks.capacity(). + + (JSC::MarkedSpace::allocateBlock): + (JSC::MarkedSpace::freeBlock): No need to manage our vector manually anymore. + + (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. + +2011-02-08 Geoffrey Garen + + 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. + + * runtime/MarkedSpace.cpp: + * runtime/MarkedSpace.h: + (JSC::MarkedSpace::contains): Simplified the contains check, and inlined + the whole thing, now that it's so simple. + +2011-02-08 Daniel Bates + + Rubber-stamped by Martin Robinson. + + Rename enum ProtectionSeting [sic] to ProtectionSetting. + + * jit/ExecutableAllocator.cpp: + (JSC::ExecutableAllocator::reprotectRegion): + * jit/ExecutableAllocator.h: + +2011-02-08 Balazs Kelemen + + Reviewed by Andreas Kling. + + [Qt] Should not always define USE_SYSTEM_MALLOC + https://bugs.webkit.org/show_bug.cgi?id=54007 + + * wtf/Platform.h: + +2011-02-08 Dan Bernstein + + Reviewed by Maciej Stachowiak. + + LLVM Compiler build fix. + + * runtime/WriteBarrier.h: + (JSC::WriteBarrier::WriteBarrier): + +2011-02-07 Ryosuke Niwa + + Reviewed by Darin Adler. + + JSVariableObject::setRegisters should take PassOwnArrayPtr for registersArray. + https://bugs.webkit.org/show_bug.cgi?id=53902 + + * 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-02-07 Geoffrey Garen + + Reviewed by Sam Weinig. + + Removed some dead code from Heap + https://bugs.webkit.org/show_bug.cgi?id=53969 + + SunSpider reports no change. + + * 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. + +2011-02-07 Geoffrey Garen + + Reviewed by Oliver Hunt. + + 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. + + (JSC::MarkedSpace::containsSlowCase): Use the new mark invariant to + simplify testing whether an object is live. + +2011-02-07 Beth Dakin + + Reviewed by Eric Seidel. + + Fix for https://bugs.webkit.org/show_bug.cgi?id=53950 + USE_WK_SCROLLBAR_PAINTER in ScrollbarThemeMac should be in + Platform.h instead + + * wtf/Platform.h: + +2011-02-07 Darin Adler + + Reviewed by Antti Koivisto. + + Add built-in decoder for UTF-8 for improved performance + https://bugs.webkit.org/show_bug.cgi?id=53898 + + * wtf/unicode/UnicodeMacrosFromICU.h: Added U8_MAX_LENGTH and + U8_APPEND_UNSAFE. Also fixed header. + +2011-02-07 Adam Roben + + Delete precompiled headers whenever any .vsprops file changes + + 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. + + I also made some drive-by fixes while I was in the area. + + Fixes react-to-vsprops-changes.py doesn't force precompiled + headers to be rebuilt, but should + + Reviewed by David Kilzer. + + * 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). + + * 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. + +2011-02-07 Antti Koivisto + + Not reviewed. + + ASSERTS_DISABLED -> ASSERT_DISABLED + + * wtf/BloomFilter.h: + +2011-02-06 Ryosuke Niwa + + Unreviewed; speculative Qt build fix. + + * JavaScriptCore.pro: + +2011-02-06 Ryosuke Niwa + + Reviewed by Darin Adler. + + OwnArraryPtr.h uses deleteOwnedPtr but doesn’t include OwnPtrCommon.h + https://bugs.webkit.org/show_bug.cgi?id=52867 + + 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): + +2011-02-04 David Kilzer + + BUILD FIX: REALLY remove the last vestiges of JSVALUE32! + + Remove last vestiges of JSVALUE32 + + + * DerivedSources.make: Removed dependency on + JavaScriptCore.JSVALUE32.exp. + +2011-02-04 David Kilzer + + Remove last vestiges of JSVALUE32 + + + Reviewed by Darin Adler. + + Support for JSVALUE32 was originaly removed in r70111. + + * 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. + +2011-02-04 David Kilzer + + Use static_cast and other style cleanup in YarrInterpreter.cpp + + + Reviewed by John Sullivan. + + * 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. + +2011-02-04 Sheriff Bot + + 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 + + It broke Windows builds (Requested by Ossy_ on #webkit). + + * 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. + +2011-02-04 Jessie Berlin + + Windows build fix. Unreviewed. + + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: + +2011-02-04 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. + +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. + +2011-02-03 Geoffrey Garen + + Reviewed by Sam Weinig. + + 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. + + * runtime/MarkedSpace.cpp: + (JSC::MarkedSpace::allocateBlock): + (JSC::MarkedSpace::containsSlowCase): + (JSC::MarkedSpace::clearMarkBits): Updated for const-ness. + + * 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. + +2011-02-03 Patrick Gansterer + + Reviewed by Darin Adler. + + Avoid strlen() in AtomicString::fromUTF8 + https://bugs.webkit.org/show_bug.cgi?id=50516 + + Add an overload to calculateStringHashFromUTF8 to get + strlen() of the input data with only one call. + + This change shows about 3% performance win on the xml-parser benchmark. + + * 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: + +2011-02-02 Gavin Barraclough + + Windows build fix. + + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: + +2011-02-02 Gavin Barraclough + + oops, build fix! + + * wtf/Assertions.cpp: + +2011-02-02 Gavin Barraclough + + Reviewed by Sam Weinig. + + Bug 53650 - Add a BACKTRACE macro to Assertions.h + + Add a BACKTRACE macro to Assertions.h, which will print a backtrace on + debug Mac builds, make CRASH (and thus ASSERT) automatically call this. + + * JavaScriptCore.exp: + * wtf/Assertions.cpp: + * wtf/Assertions.h: + +2011-02-02 Michael Saboff + + Reviewed by Gavin Barraclough. + + Improper backtrack of nested non-capturing greedy paren to prior paren + https://bugs.webkit.org/show_bug.cgi?id=53261 + + 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. + + * 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): + +2011-02-02 Jeff Miller + + Reviewed by Darin Adler and Steve Falkenburg. + + Add DerivedSources.make to some Visual Studio projects + https://bugs.webkit.org/show_bug.cgi?id=53607 + + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: Add DerivedSources.make. + +2011-02-02 Steve Lacey + + Reviewed by Eric Carlson. + + Implement basic media statistics on media elements. + https://bugs.webkit.org/show_bug.cgi?id=53322 + + * Configurations/FeatureDefines.xcconfig: + +2011-02-02 Kevin Ollivier + + [wx] Build fixes for wxWebKit. + + * wtf/wx/StringWx.cpp: + (WTF::String::String): + +2011-02-01 Geoffrey Garen + + Reviewed by Sam Weinig. + + 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): + +2011-02-02 Sam Weinig + + Fix windows clean build. + + * DerivedSources.make: + +2011-02-02 Alejandro G. Castro + + Reviewed by Martin Robinson. + + [GTK] Fix dist compilation + https://bugs.webkit.org/show_bug.cgi?id=53579 + + * GNUmakefile.am: Added WriteBarrier.h to the sources, it was + added in r77151 + +2011-02-01 Sheriff Bot + + Unreviewed, rolling out r77297. + http://trac.webkit.org/changeset/77297 + https://bugs.webkit.org/show_bug.cgi?id=53538 + + caused leopard crashes (Requested by paroga on #webkit). + + * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: + * wtf/text/AtomicString.cpp: + (WTF::AtomicString::fromUTF8): + * wtf/unicode/UTF8.cpp: + (WTF::Unicode::calculateStringHashFromUTF8): + * wtf/unicode/UTF8.h: + +2011-02-01 Sam Weinig + + Fix Mac production builds. + + * JavaScriptCore.xcodeproj/project.pbxproj: + +2011-02-01 Sam Weinig + + Try to fix the windows build. + + * DerivedSources.make: + +2011-02-01 Patrick Gansterer + + Reviewed by Darin Adler. + + Avoid strlen() in AtomicString::fromUTF8 + https://bugs.webkit.org/show_bug.cgi?id=50516 + + Add an overload to calculateStringHashFromUTF8 to get + strlen() of the input data with only one call. + + This change shows about 3% performance win on the xml-parser benchmark. + + * 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: + +2011-02-01 Sam Weinig + + Reviewed by Beth Dakin. + + Part 2 for + Adopt WKScrollbarPainterController + + Use header detection to define scrollbar painting controller #define. + + * DerivedSources.make: + * JavaScriptCore.xcodeproj/project.pbxproj: + +2011-02-01 Geoffrey Garen + + Reviewed by Oliver Hunt. + + Refactor JSGlobalObject-related tear-down + https://bugs.webkit.org/show_bug.cgi?id=53478 + + While investigating crashes caused by r77082, I noticed some strange + destructor-time behaviors. This patch makes them less strange. + + * 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/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. + +2011-02-01 Geoffrey Garen + + 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. + + * 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. + +2011-01-31 Oliver Hunt + + Reviewed by Geoffrey Garen. + + Update JSObject storage for new marking API + https://bugs.webkit.org/show_bug.cgi?id=53467 + + JSObject no longer uses EncodedJSValue for its property storage. + This produces a stream of mechanical changes to PropertySlot and + anonymous storage APIs. + + * 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): + +2011-02-01 Daniel Bates + + Reviewed by Antonio Gomes. + + Modify RandomNumberSeed.h to use USE(MERSENNE_TWISTER_19937) + https://bugs.webkit.org/show_bug.cgi?id=53506 + + 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. + + * wtf/RandomNumberSeed.h: + (WTF::initializeRandomNumberGenerator): + +2011-02-01 Dave Tapuska + + Reviewed by Gavin Barraclough. + + 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. + + https://bugs.webkit.org/show_bug.cgi?id=46095 + + * assembler/MacroAssemblerARM.h: + (JSC::MacroAssemblerARM::set32Test32): + (JSC::MacroAssemblerARM::set32Test8): + +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. diff --git a/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig b/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig index 46d5de4..3971037 100644 --- a/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig +++ b/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig @@ -38,10 +38,10 @@ ENABLE_ACCELERATED_2D_CANVAS_macosx = $(ENABLE_ACCELERATED_2D_CANVAS_macosx_$(TA ENABLE_ACCELERATED_2D_CANVAS_macosx_1060 = ; ENABLE_ACCELERATED_2D_CANVAS_macosx_1070 = ; -ENABLE_3D_CANVAS = $(ENABLE_3D_CANVAS_$(REAL_PLATFORM_NAME)); -ENABLE_3D_CANVAS_macosx = $(ENABLE_3D_CANVAS_macosx_$(TARGET_MAC_OS_X_VERSION_MAJOR)); -ENABLE_3D_CANVAS_macosx_1060 = ENABLE_3D_CANVAS; -ENABLE_3D_CANVAS_macosx_1070 = ENABLE_3D_CANVAS; +ENABLE_WEBGL = $(ENABLE_WEBGL_$(REAL_PLATFORM_NAME)); +ENABLE_WEBGL_macosx = $(ENABLE_WEBGL_macosx_$(TARGET_MAC_OS_X_VERSION_MAJOR)); +ENABLE_WEBGL_macosx_1060 = ENABLE_WEBGL; +ENABLE_WEBGL_macosx_1070 = ENABLE_WEBGL; ENABLE_3D_RENDERING = $(ENABLE_3D_RENDERING_$(REAL_PLATFORM_NAME)); ENABLE_3D_RENDERING_iphoneos = ENABLE_3D_RENDERING; @@ -91,6 +91,8 @@ ENABLE_NOTIFICATIONS = ; ENABLE_OFFLINE_WEB_APPLICATIONS = ENABLE_OFFLINE_WEB_APPLICATIONS; ENABLE_PROGRESS_TAG = ENABLE_PROGRESS_TAG; +ENABLE_REGISTER_PROTOCOL_HANDLER = ; + ENABLE_SHARED_WORKERS = $(ENABLE_SHARED_WORKERS_$(REAL_PLATFORM_NAME)); ENABLE_SHARED_WORKERS_macosx = ENABLE_SHARED_WORKERS; @@ -106,6 +108,8 @@ ENABLE_SVG_FOREIGN_OBJECT = ENABLE_SVG_FOREIGN_OBJECT; ENABLE_SVG_USE = ENABLE_SVG_USE; ENABLE_VIDEO = ENABLE_VIDEO; +ENABLE_MEDIA_STATISTICS = ; + ENABLE_WEB_AUDIO = ; ENABLE_WEB_SOCKETS = $(ENABLE_WEB_SOCKETS_$(REAL_PLATFORM_NAME)); @@ -121,4 +125,4 @@ ENABLE_XHTMLMP = ; ENABLE_XPATH = ENABLE_XPATH; ENABLE_XSLT = ENABLE_XSLT; -FEATURE_DEFINES = $(ENABLE_LINK_PREFETCH) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_3D_CANVAS) $(ENABLE_3D_RENDERING) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_DATABASE) $(ENABLE_DATAGRID) $(ENABLE_DATALIST) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM_STORAGE) $(ENABLE_EVENTSOURCE) $(ENABLE_FILTERS) $(ENABLE_FILE_SYSTEM) $(ENABLE_FULLSCREEN_API) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_RESIZER) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_MATHML) $(ENABLE_METER_TAG) $(ENABLE_NOTIFICATIONS) $(ENABLE_OFFLINE_WEB_APPLICATIONS) $(ENABLE_PROGRESS_TAG) $(ENABLE_SHARED_WORKERS) $(ENABLE_SVG) $(ENABLE_SVG_ANIMATION) $(ENABLE_SVG_AS_IMAGE) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_FOREIGN_OBJECT) $(ENABLE_SVG_USE) $(ENABLE_VIDEO) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WML) $(ENABLE_WORKERS) $(ENABLE_XHTMLMP) $(ENABLE_XPATH) $(ENABLE_XSLT); +FEATURE_DEFINES = $(ENABLE_LINK_PREFETCH) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_WEBGL) $(ENABLE_3D_RENDERING) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_DATABASE) $(ENABLE_DATAGRID) $(ENABLE_DATALIST) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM_STORAGE) $(ENABLE_EVENTSOURCE) $(ENABLE_FILTERS) $(ENABLE_FILE_SYSTEM) $(ENABLE_FULLSCREEN_API) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_RESIZER) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_MATHML) $(ENABLE_METER_TAG) $(ENABLE_NOTIFICATIONS) $(ENABLE_OFFLINE_WEB_APPLICATIONS) $(ENABLE_PROGRESS_TAG) $(ENABLE_REGISTER_PROTOCOL_HANDLER) $(ENABLE_SHARED_WORKERS) $(ENABLE_SVG) $(ENABLE_SVG_ANIMATION) $(ENABLE_SVG_AS_IMAGE) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_FOREIGN_OBJECT) $(ENABLE_SVG_USE) $(ENABLE_VIDEO) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WML) $(ENABLE_WORKERS) $(ENABLE_XHTMLMP) $(ENABLE_XPATH) $(ENABLE_XSLT); diff --git a/Source/JavaScriptCore/Configurations/JavaScriptCore.xcconfig b/Source/JavaScriptCore/Configurations/JavaScriptCore.xcconfig index 69b2491..adf594e 100644 --- a/Source/JavaScriptCore/Configurations/JavaScriptCore.xcconfig +++ b/Source/JavaScriptCore/Configurations/JavaScriptCore.xcconfig @@ -26,11 +26,11 @@ JSVALUE_MODEL = $(JSVALUE_MODEL_$(CURRENT_ARCH)); JSVALUE_MODEL_ = UNKNOWN_JSVALUE_MODEL; -JSVALUE_MODEL_armv6 = 32; +JSVALUE_MODEL_armv6 = 32_64; JSVALUE_MODEL_armv7 = 32_64; JSVALUE_MODEL_i386 = 32_64; JSVALUE_MODEL_ppc = 32_64; -JSVALUE_MODEL_ppc64 = 32; +JSVALUE_MODEL_ppc64 = 64; JSVALUE_MODEL_x86_64 = 64; EXPORTED_SYMBOLS_FILE = $(BUILT_PRODUCTS_DIR)/DerivedSources/JavaScriptCore/JavaScriptCore.JSVALUE$(JSVALUE_MODEL).exp; diff --git a/Source/JavaScriptCore/Configurations/Version.xcconfig b/Source/JavaScriptCore/Configurations/Version.xcconfig index 4b884e2..cee5010 100644 --- a/Source/JavaScriptCore/Configurations/Version.xcconfig +++ b/Source/JavaScriptCore/Configurations/Version.xcconfig @@ -22,7 +22,7 @@ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. MAJOR_VERSION = 534; -MINOR_VERSION = 16; +MINOR_VERSION = 20; TINY_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION); diff --git a/Source/JavaScriptCore/DerivedSources.make b/Source/JavaScriptCore/DerivedSources.make index 748e254..0ff9cdf 100644 --- a/Source/JavaScriptCore/DerivedSources.make +++ b/Source/JavaScriptCore/DerivedSources.make @@ -27,7 +27,6 @@ VPATH = \ $(JavaScriptCore) \ $(JavaScriptCore)/parser \ - $(JavaScriptCore)/pcre \ $(JavaScriptCore)/docs \ $(JavaScriptCore)/runtime \ $(JavaScriptCore)/interpreter \ @@ -40,7 +39,6 @@ all : \ DatePrototype.lut.h \ HeaderDetection.h \ JSONObject.lut.h \ - JavaScriptCore.JSVALUE32.exp \ JavaScriptCore.JSVALUE32_64.exp \ JavaScriptCore.JSVALUE64.exp \ Lexer.lut.h \ @@ -50,7 +48,6 @@ all : \ RegExpJitTables.h \ RegExpObject.lut.h \ StringPrototype.lut.h \ - chartables.c \ docs/bytecode.html \ # @@ -61,11 +58,6 @@ all : \ Lexer.lut.h: create_hash_table Keywords.table $^ > $@ -# character tables for PCRE - -chartables.c : dftables - $^ $@ - docs/bytecode.html: make-bytecode-docs.pl Interpreter.cpp perl $^ $@ @@ -76,16 +68,26 @@ RegExpJitTables.h: create_regex_tables # export files -JavaScriptCore.JSVALUE32.exp: JavaScriptCore.exp JavaScriptCore.JSVALUE32only.exp - cat $^ > $@ - JavaScriptCore.JSVALUE32_64.exp: JavaScriptCore.exp JavaScriptCore.JSVALUE32_64only.exp cat $^ > $@ JavaScriptCore.JSVALUE64.exp: JavaScriptCore.exp JavaScriptCore.JSVALUE64only.exp cat $^ > $@ + # header detection -HeaderDetection.h : DerivedSources.make - if [ -f $(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders/pthread_machdep.h ]; then echo "#define HAVE_PTHREAD_MACHDEP_H 1" > $@; else echo > $@; fi +ifeq ($(OS),MACOS) + +HeaderDetection.h : DerivedSources.make /System/Library/CoreServices/SystemVersion.plist + rm -f $@ + echo "/* This is a generated file. Do not edit. */" > $@ + if [ -f $(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders/pthread_machdep.h ]; then echo "#define HAVE_PTHREAD_MACHDEP_H 1" >> $@; else echo >> $@; fi + if [ -f $(SDKROOT)/System/Library/Frameworks/AppKit.framework/PrivateHeaders/NSScrollerImpPair_Private.h ]; then echo "#define USE_WK_SCROLLBAR_PAINTER_AND_CONTROLLER 1" >> $@; else echo >> $@; fi + +else + +HeaderDetection.h : + echo > $@ + +endif diff --git a/Source/JavaScriptCore/DerivedSources.pro b/Source/JavaScriptCore/DerivedSources.pro index 4d724be..eac4dd9 100644 --- a/Source/JavaScriptCore/DerivedSources.pro +++ b/Source/JavaScriptCore/DerivedSources.pro @@ -83,15 +83,6 @@ msvcstubs.input = JIT_STUB_FILES msvcstubs.CONFIG += no_link addExtraCompiler(msvcstubs) -# GENERATOR: "chartables.c": compile and execute the chartables generator (and add it to sources) -win32-msvc*|wince*: PREPROCESSOR = "--preprocessor=\"$$QMAKE_CC /E\"" -ctgen.output = $$JSC_GENERATED_SOURCES_DIR/chartables.c -ctgen.wkScript = $$PWD/pcre/dftables -ctgen.input = ctgen.wkScript -ctgen.commands = perl $$ctgen.wkScript ${QMAKE_FILE_OUT} $$PREPROCESSOR -ctgen.clean = ${QMAKE_FILE_OUT} ${QMAKE_VAR_JSC_GENERATED_SOURCES_DIR}${QMAKE_FILE_BASE} -addExtraCompiler(ctgen) - #GENERATOR: "RegExpJitTables.h": tables used by Yarr retgen.output = $$JSC_GENERATED_SOURCES_DIR/RegExpJitTables.h retgen.wkScript = $$PWD/create_regex_tables diff --git a/Source/JavaScriptCore/GNUmakefile.am b/Source/JavaScriptCore/GNUmakefile.am index 7272471..e6ccf2e 100644 --- a/Source/JavaScriptCore/GNUmakefile.am +++ b/Source/JavaScriptCore/GNUmakefile.am @@ -11,7 +11,6 @@ javascriptcore_cppflags += \ -I$(srcdir)/Source/JavaScriptCore/jit \ -I$(srcdir)/Source/JavaScriptCore/jit \ -I$(srcdir)/Source/JavaScriptCore/parser \ - -I$(srcdir)/Source/JavaScriptCore/pcre \ -I$(srcdir)/Source/JavaScriptCore/profiler \ -I$(srcdir)/Source/JavaScriptCore/runtime \ -I$(srcdir)/Source/JavaScriptCore/wtf \ @@ -23,7 +22,6 @@ javascriptcore_cppflags += \ -I$(srcdir)/Source/JavaScriptCore/yarr \ -I$(top_builddir)/Source/JavaScriptCore \ -I$(top_builddir)/Source/JavaScriptCore/parser \ - -I$(top_builddir)/Source/JavaScriptCore/pcre \ -I$(top_builddir)/Source/JavaScriptCore/runtime javascriptcore_h_api += \ @@ -48,8 +46,7 @@ javascriptcore_built_nosources += \ Source/JavaScriptCore/runtime/NumberConstructor.lut.h \ Source/JavaScriptCore/runtime/RegExpConstructor.lut.h \ Source/JavaScriptCore/runtime/RegExpObject.lut.h \ - Source/JavaScriptCore/runtime/StringPrototype.lut.h \ - Source/JavaScriptCore/pcre/chartables.c + Source/JavaScriptCore/runtime/StringPrototype.lut.h javascriptcore_sources += \ Source/JavaScriptCore/API/APICast.h \ @@ -202,15 +199,10 @@ javascriptcore_sources += \ Source/JavaScriptCore/parser/ResultType.h \ Source/JavaScriptCore/parser/SourceCode.h \ Source/JavaScriptCore/parser/SourceProvider.h \ + Source/JavaScriptCore/parser/SourceProviderCache.cpp \ + Source/JavaScriptCore/parser/SourceProviderCache.h \ + Source/JavaScriptCore/parser/SourceProviderCacheItem.h \ Source/JavaScriptCore/parser/SyntaxChecker.h \ - Source/JavaScriptCore/pcre/pcre_compile.cpp \ - Source/JavaScriptCore/pcre/pcre_exec.cpp \ - Source/JavaScriptCore/pcre/pcre.h \ - Source/JavaScriptCore/pcre/pcre_internal.h \ - Source/JavaScriptCore/pcre/pcre_tables.cpp \ - Source/JavaScriptCore/pcre/pcre_ucp_searchfuncs.cpp \ - Source/JavaScriptCore/pcre/pcre_xclass.cpp \ - Source/JavaScriptCore/pcre/ucpinternal.h \ Source/JavaScriptCore/profiler/CallIdentifier.h \ Source/JavaScriptCore/profiler/Profile.cpp \ Source/JavaScriptCore/profiler/ProfileGenerator.cpp \ @@ -239,11 +231,12 @@ javascriptcore_sources += \ Source/JavaScriptCore/runtime/CallData.cpp \ Source/JavaScriptCore/runtime/CallData.h \ Source/JavaScriptCore/runtime/ClassInfo.h \ + Source/JavaScriptCore/runtime/MarkedBlock.cpp \ + Source/JavaScriptCore/runtime/MarkedBlock.h \ Source/JavaScriptCore/runtime/MarkedSpace.cpp \ Source/JavaScriptCore/runtime/MarkedSpace.h \ Source/JavaScriptCore/runtime/Heap.cpp \ Source/JavaScriptCore/runtime/Heap.h \ - Source/JavaScriptCore/runtime/CollectorHeapIterator.h \ Source/JavaScriptCore/runtime/CommonIdentifiers.cpp \ Source/JavaScriptCore/runtime/CommonIdentifiers.h \ Source/JavaScriptCore/runtime/Completion.cpp \ @@ -343,6 +336,8 @@ javascriptcore_sources += \ Source/JavaScriptCore/runtime/Lookup.h \ Source/JavaScriptCore/runtime/MachineStackMarker.cpp \ Source/JavaScriptCore/runtime/MachineStackMarker.h \ + Source/JavaScriptCore/runtime/ConservativeSet.cpp \ + Source/JavaScriptCore/runtime/ConservativeSet.h \ Source/JavaScriptCore/runtime/MarkStack.cpp \ Source/JavaScriptCore/runtime/MarkStack.h \ Source/JavaScriptCore/runtime/MathObject.cpp \ @@ -423,6 +418,7 @@ javascriptcore_sources += \ Source/JavaScriptCore/runtime/WeakGCMap.h \ Source/JavaScriptCore/runtime/WeakGCPtr.h \ Source/JavaScriptCore/runtime/WeakRandom.h \ + Source/JavaScriptCore/runtime/WriteBarrier.h \ Source/JavaScriptCore/wtf/AlwaysInline.h \ Source/JavaScriptCore/wtf/ASCIICType.h \ Source/JavaScriptCore/wtf/Assertions.cpp \ @@ -430,10 +426,13 @@ javascriptcore_sources += \ Source/JavaScriptCore/wtf/Atomics.h \ Source/JavaScriptCore/wtf/AVLTree.h \ Source/JavaScriptCore/wtf/Bitmap.h \ + Source/JavaScriptCore/wtf/BloomFilter.h \ Source/JavaScriptCore/wtf/BumpPointerAllocator.h \ Source/JavaScriptCore/wtf/ByteArray.cpp \ Source/JavaScriptCore/wtf/ByteArray.h \ Source/JavaScriptCore/wtf/CrossThreadRefCounted.h \ + Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp \ + Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.h \ Source/JavaScriptCore/wtf/CurrentTime.cpp \ Source/JavaScriptCore/wtf/CurrentTime.h \ Source/JavaScriptCore/wtf/DateMath.cpp \ @@ -482,9 +481,10 @@ javascriptcore_sources += \ Source/JavaScriptCore/wtf/NotFound.h \ Source/JavaScriptCore/wtf/NullPtr.h \ Source/JavaScriptCore/wtf/OSAllocator.h \ + Source/JavaScriptCore/wtf/OSRandomSource.cpp \ + Source/JavaScriptCore/wtf/OSRandomSource.h \ Source/JavaScriptCore/wtf/OwnArrayPtr.h \ Source/JavaScriptCore/wtf/OwnFastMallocPtr.h \ - Source/JavaScriptCore/wtf/OwnArrayPtrCommon.h \ Source/JavaScriptCore/wtf/OwnPtrCommon.h \ Source/JavaScriptCore/wtf/OwnPtr.h \ Source/JavaScriptCore/wtf/PageAllocation.h \ @@ -547,6 +547,7 @@ javascriptcore_sources += \ Source/JavaScriptCore/wtf/ThreadSpecific.h \ Source/JavaScriptCore/wtf/TypeTraits.cpp \ Source/JavaScriptCore/wtf/TypeTraits.h \ + Source/JavaScriptCore/wtf/unicode/CharacterNames.h \ Source/JavaScriptCore/wtf/unicode/CollatorDefault.cpp \ Source/JavaScriptCore/wtf/unicode/Collator.h \ Source/JavaScriptCore/wtf/unicode/Unicode.h \ @@ -609,9 +610,6 @@ Source/JavaScriptCore/%.lut.h: $(srcdir)/Source/JavaScriptCore/create_hash_table Source/JavaScriptCore/RegExpJitTables.h: $(srcdir)/Source/JavaScriptCore/create_regex_tables $(AM_V_GEN)$(PYTHON) $^ > $@ -Source/JavaScriptCore/pcre/chartables.c: $(srcdir)/Source/JavaScriptCore/pcre/dftables - $(AM_V_GEN)$(PERL) $^ $@ - jsc: $(javascriptcore_built_nosources) Programs/jsc-@WEBKITGTK_API_MAJOR_VERSION@$(EXEEXT); bin_PROGRAMS += \ @@ -686,10 +684,6 @@ EXTRA_DIST += \ Source/JavaScriptCore/icu/LICENSE \ Source/JavaScriptCore/icu/README \ Source/JavaScriptCore/parser/Keywords.table \ - Source/JavaScriptCore/pcre/AUTHORS \ - Source/JavaScriptCore/pcre/COPYING \ - Source/JavaScriptCore/pcre/dftables \ - Source/JavaScriptCore/pcre/ucptable.cpp \ Source/JavaScriptCore/THANKS # Clean rules for JavaScriptCore @@ -702,7 +696,6 @@ CLEANFILES += \ Source/JavaScriptCore/runtime/RegExpConstructor.lut.h \ Source/JavaScriptCore/runtime/RegExpObject.lut.h \ Source/JavaScriptCore/runtime/StringPrototype.lut.h \ - Source/JavaScriptCore/pcre/chartables.c \ Programs/jsc \ Programs/jsc-@WEBKITGTK_API_MAJOR_VERSION@ \ Programs/minidom diff --git a/Source/JavaScriptCore/JavaScriptCore.JSVALUE32only.exp b/Source/JavaScriptCore/JavaScriptCore.JSVALUE32only.exp deleted file mode 100644 index 73efb9d..0000000 --- a/Source/JavaScriptCore/JavaScriptCore.JSVALUE32only.exp +++ /dev/null @@ -1,2 +0,0 @@ -__ZN3JSC10JSFunctionC1EPNS_9ExecStateEPNS_14JSGlobalObjectEN3WTF17NonNullPassRefPtrINS_9StructureEEEiRKNS_10IdentifierEPFPvS2_E -__ZN3JSC17PrototypeFunctionC1EPNS_9ExecStateEPNS_14JSGlobalObjectEN3WTF17NonNullPassRefPtrINS_9StructureEEEiRKNS_10IdentifierEPFPvS2_E diff --git a/Source/JavaScriptCore/JavaScriptCore.exp b/Source/JavaScriptCore/JavaScriptCore.exp index 2e999ef..564d7db 100644 --- a/Source/JavaScriptCore/JavaScriptCore.exp +++ b/Source/JavaScriptCore/JavaScriptCore.exp @@ -93,11 +93,9 @@ _WTFLogVerbose _WTFReportArgumentAssertionFailure _WTFReportAssertionFailure _WTFReportAssertionFailureWithMessage +_WTFReportBacktrace _WTFReportError _WTFReportFatalError -__Z12jsRegExpFreeP8JSRegExp -__Z15jsRegExpCompilePKti24JSRegExpIgnoreCaseOption23JSRegExpMultilineOptionPjPPKc -__Z15jsRegExpExecutePK8JSRegExpPKtiiPii __ZN14OpaqueJSString6createERKN3JSC7UStringE __ZN3JSC10Identifier11addSlowCaseEPNS_12JSGlobalDataEPN3WTF10StringImplE __ZN3JSC10Identifier11addSlowCaseEPNS_9ExecStateEPN3WTF10StringImplE @@ -166,7 +164,6 @@ __ZN3JSC14SamplingThread4stopEv __ZN3JSC14SamplingThread5startEj __ZN3JSC14TimeoutChecker10didTimeOutEPNS_9ExecStateE __ZN3JSC14TimeoutChecker5resetEv -__ZN3JSC14heapStatisticsEPNS_12JSGlobalDataE __ZN3JSC14throwTypeErrorEPNS_9ExecStateE __ZN3JSC15JSWrapperObject12markChildrenERNS_9MarkStackE __ZN3JSC15createTypeErrorEPNS_9ExecStateERKNS_7UStringE @@ -183,7 +180,7 @@ __ZN3JSC17BytecodeGenerator21setDumpsGeneratedCodeEb __ZN3JSC17PropertyNameArray3addEPN3WTF10StringImplE __ZN3JSC17constructFunctionEPNS_9ExecStateERKNS_7ArgListERKNS_10IdentifierERKNS_7UStringEi __ZN3JSC17createSyntaxErrorEPNS_9ExecStateERKNS_7UStringE -__ZN3JSC18DebuggerActivationC1EPNS_8JSObjectE +__ZN3JSC18DebuggerActivationC1ERNS_12JSGlobalDataEPNS_8JSObjectE __ZN3JSC18PropertyDescriptor11setWritableEb __ZN3JSC18PropertyDescriptor12setUndefinedEv __ZN3JSC18PropertyDescriptor13setDescriptorENS_7JSValueEj @@ -193,6 +190,8 @@ __ZN3JSC18PropertyDescriptor17defaultAttributesE __ZN3JSC18PropertyDescriptor21setAccessorDescriptorENS_7JSValueES1_j __ZN3JSC18PropertyDescriptor9setGetterENS_7JSValueE __ZN3JSC18PropertyDescriptor9setSetterENS_7JSValueE +__ZN3JSC19SourceProviderCache5clearEv +__ZN3JSC19SourceProviderCacheD1Ev __ZN3JSC19initializeThreadingEv __ZN3JSC20MarkedArgumentBuffer10slowAppendENS_7JSValueE __ZN3JSC20createReferenceErrorEPNS_9ExecStateERKNS_7UStringE @@ -207,23 +206,24 @@ __ZN3JSC24createStackOverflowErrorEPNS_9ExecStateE __ZN3JSC25evaluateInGlobalCallFrameERKNS_7UStringERNS_7JSValueEPNS_14JSGlobalObjectE __ZN3JSC35createInterruptedExecutionExceptionEPNS_12JSGlobalDataE __ZN3JSC3NaNE -__ZN3JSC4Heap14primaryHeapEndEv __ZN3JSC4Heap15addWeakGCHandleEPNS_6JSCellE -__ZN3JSC4Heap15recordExtraCostEm __ZN3JSC4Heap16objectTypeCountsEv -__ZN3JSC4Heap16primaryHeapBeginEv __ZN3JSC4Heap17collectAllGarbageEv __ZN3JSC4Heap17globalObjectCountEv __ZN3JSC4Heap19setActivityCallbackEN3WTF10PassOwnPtrINS_18GCActivityCallbackEEE __ZN3JSC4Heap20protectedObjectCountEv __ZN3JSC4Heap25protectedObjectTypeCountsEv __ZN3JSC4Heap26protectedGlobalObjectCountEv +__ZN3JSC4Heap29reportExtraMemoryCostSlowCaseEm __ZN3JSC4Heap6isBusyEv __ZN3JSC4Heap7destroyEv __ZN3JSC4Heap7protectENS_7JSValueE __ZN3JSC4Heap8allocateEm __ZN3JSC4Heap9unprotectENS_7JSValueE __ZN3JSC4callEPNS_9ExecStateENS_7JSValueENS_8CallTypeERKNS_8CallDataES2_RKNS_7ArgListE +__ZN3JSC4Yarr11YarrPatternC1ERKNS_7UStringEbbPPKc +__ZN3JSC4Yarr11byteCompileERNS0_11YarrPatternEPN3WTF20BumpPointerAllocatorE +__ZN3JSC4Yarr9interpretEPNS0_15BytecodePatternEPKtjjPi __ZN3JSC6JSCell11getCallDataERNS_8CallDataE __ZN3JSC6JSCell11getJSNumberEv __ZN3JSC6JSCell14deletePropertyEPNS_9ExecStateERKNS_10IdentifierE @@ -250,7 +250,7 @@ __ZN3JSC7JSArray18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE __ZN3JSC7JSArray4infoE __ZN3JSC7JSArray9setLengthEj __ZN3JSC7JSArrayC1EN3WTF17NonNullPassRefPtrINS_9StructureEEE -__ZN3JSC7JSArrayC1EN3WTF17NonNullPassRefPtrINS_9StructureEEERKNS_7ArgListE +__ZN3JSC7JSArrayC1ERNS_12JSGlobalDataEN3WTF17NonNullPassRefPtrINS_9StructureEEERKNS_7ArgListE __ZN3JSC7JSArrayC2EN3WTF17NonNullPassRefPtrINS_9StructureEEE __ZN3JSC7JSArrayD2Ev __ZN3JSC7JSValue13isValidCalleeEv @@ -295,7 +295,7 @@ __ZN3JSC8JSObject18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE __ZN3JSC8JSObject18getPrimitiveNumberEPNS_9ExecStateERdRNS_7JSValueE __ZN3JSC8JSObject19getOwnPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayENS_15EnumerationModeE __ZN3JSC8JSObject21getPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18PropertyDescriptorE -__ZN3JSC8JSObject22fillGetterPropertySlotERNS_12PropertySlotEPNS_7JSValueE +__ZN3JSC8JSObject22fillGetterPropertySlotERNS_12PropertySlotEPNS_16WriteBarrierBaseINS_7UnknownEEE __ZN3JSC8JSObject23allocatePropertyStorageEmm __ZN3JSC8JSObject24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18PropertyDescriptorE __ZN3JSC8JSObject3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE @@ -431,6 +431,7 @@ __ZN3WTF23dayInMonthFromDayInYearEib __ZN3WTF23waitForThreadCompletionEjPPv __ZN3WTF27releaseFastMallocFreeMemoryEv __ZN3WTF28setMainThreadCallbacksPausedEb +__ZN3WTF29cryptographicallyRandomValuesEPvm __ZN3WTF36lockAtomicallyInitializedStaticMutexEv __ZN3WTF37parseDateFromNullTerminatedCharactersEPKc __ZN3WTF38unlockAtomicallyInitializedStaticMutexEv @@ -516,10 +517,11 @@ __ZNK3JSC18PropertyDescriptor20isAccessorDescriptorEv __ZNK3JSC18PropertyDescriptor6getterEv __ZNK3JSC18PropertyDescriptor6setterEv __ZNK3JSC18PropertyDescriptor8writableEv +__ZNK3JSC19SourceProviderCache8byteSizeEv __ZNK3JSC24JSObjectWithGlobalObject12globalObjectEv -__ZNK3JSC4Heap10statisticsEv __ZNK3JSC4Heap11objectCountEv __ZNK3JSC4Heap4sizeEv +__ZNK3JSC4Heap8capacityEv __ZNK3JSC6JSCell11toPrimitiveEPNS_9ExecStateENS_22PreferredPrimitiveTypeE __ZNK3JSC6JSCell12toThisObjectEPNS_9ExecStateE __ZNK3JSC6JSCell14isGetterSetterEv diff --git a/Source/JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp b/Source/JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp index 56304fa..08e590b 100644 --- a/Source/JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp +++ b/Source/JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp @@ -170,7 +170,7 @@ ], }, { - 'target_name': 'pcre', + 'target_name': 'yarr', 'type': '<(library)', 'dependencies': [ 'wtf', @@ -183,18 +183,19 @@ 'msvs_guid': '49909552-0B0C-4C14-8CF6-DB8A2ADE0934', 'actions': [ { - 'action_name': 'dftables', + 'action_name': 'retgen', 'inputs': [ - '../pcre/dftables', + '../create_regex_tables', ], 'outputs': [ - '<(INTERMEDIATE_DIR)/chartables.c', + '<(INTERMEDIATE_DIR)/RegExpJitTables.h', ], - 'action': ['perl', '-w', '<@(_inputs)', '<@(_outputs)'], + 'action': ['python', '<@(_inputs)', '<@(_outputs)'], }, ], 'include_dirs': [ '<(INTERMEDIATE_DIR)', + '../runtime', ], 'sources': [ '<@(javascriptcore_files)', @@ -203,10 +204,9 @@ # First exclude everything ... ['exclude', '../'], # ... Then include what we want. - ['include', '../pcre/'], - # ucptable.cpp is #included by pcre_ucp_searchfunchs.cpp and is not - # intended to be compiled directly. - ['exclude', '../pcre/ucptable.cpp$'], + ['include', '../yarr/'], + # The Yarr JIT isn't used in WebCore. + ['exclude', '../yarr/YarrJIT\\.(h|cpp)$'], ], 'export_dependent_settings': [ 'wtf', diff --git a/Source/JavaScriptCore/JavaScriptCore.gypi b/Source/JavaScriptCore/JavaScriptCore.gypi index 6ca18a0..754fd2b 100644 --- a/Source/JavaScriptCore/JavaScriptCore.gypi +++ b/Source/JavaScriptCore/JavaScriptCore.gypi @@ -144,16 +144,10 @@ 'parser/ResultType.h', 'parser/SourceCode.h', 'parser/SourceProvider.h', + 'parser/SourceProviderCache.cpp', + 'parser/SourceProviderCache.h', + 'parser/SourceProviderCacheItem.h', 'parser/SyntaxChecker.h', - 'pcre/pcre.h', - 'pcre/pcre_compile.cpp', - 'pcre/pcre_exec.cpp', - 'pcre/pcre_internal.h', - 'pcre/pcre_tables.cpp', - 'pcre/pcre_ucp_searchfuncs.cpp', - 'pcre/pcre_xclass.cpp', - 'pcre/ucpinternal.h', - 'pcre/ucptable.cpp', 'profiler/CallIdentifier.h', 'profiler/Profile.cpp', 'profiler/Profile.h', @@ -182,11 +176,12 @@ 'runtime/CallData.cpp', 'runtime/CallData.h', 'runtime/ClassInfo.h', + 'runtime/MarkedBlock.cpp', + 'runtime/MarkedBlock.h', 'runtime/MarkedSpace.cpp', 'runtime/MarkedSpace.h', 'runtime/Heap.cpp', 'runtime/Heap.h', - 'runtime/CollectorHeapIterator.h', 'runtime/CommonIdentifiers.cpp', 'runtime/CommonIdentifiers.h', 'runtime/Completion.cpp', @@ -280,6 +275,8 @@ 'runtime/Lookup.h', 'runtime/MachineStackMarker.cpp', 'runtime/MachineStackMarker.h', + 'runtime/ConservativeSet.cpp', + 'runtime/ConservativeSet.h', 'runtime/MarkStack.cpp', 'runtime/MarkStack.h', 'runtime/MarkStackWin.cpp', @@ -361,11 +358,14 @@ 'wtf/Atomics.h', 'wtf/AVLTree.h', 'wtf/Bitmap.h', + 'wtf/BloomFilter.h', 'wtf/ByteArray.cpp', 'wtf/ByteArray.h', 'wtf/chromium/ChromiumThreading.h', 'wtf/chromium/MainThreadChromium.cpp', 'wtf/CrossThreadRefCounted.h', + 'wtf/CryptographicallyRandomNumber.cpp', + 'wtf/CryptographicallyRandomNumber.h', 'wtf/CurrentTime.cpp', 'wtf/CurrentTime.h', 'wtf/DateMath.cpp', @@ -408,6 +408,8 @@ 'wtf/OSAllocatorPosix.cpp', 'wtf/OSAllocatorWin.cpp', 'wtf/OSAllocator.h', + 'wtf/OSRandomSource.cpp', + 'wtf/OSRandomSource.h', 'wtf/OwnArrayPtr.h', 'wtf/OwnFastMallocPtr.h', 'wtf/OwnPtr.h', @@ -477,6 +479,7 @@ 'wtf/text/TextPosition.h', 'wtf/text/WTFString.cpp', 'wtf/text/WTFString.h', + 'wtf/unicode/CharacterNames.h', 'wtf/unicode/Collator.h', 'wtf/unicode/CollatorDefault.cpp', 'wtf/unicode/glib/UnicodeGLib.cpp', @@ -498,7 +501,7 @@ 'wtf/win/MainThreadWin.cpp', 'wtf/win/OwnPtrWin.cpp', 'wtf/wx/MainThreadWx.cpp', - 'yarr/Yarr.h' + 'yarr/Yarr.h', 'yarr/YarrInterpreter.cpp', 'yarr/YarrInterpreter.h', 'yarr/YarrJIT.cpp', @@ -511,3 +514,4 @@ ] } } + diff --git a/Source/JavaScriptCore/JavaScriptCore.order b/Source/JavaScriptCore/JavaScriptCore.order index 3cb3d1d..9e4004f 100644 --- a/Source/JavaScriptCore/JavaScriptCore.order +++ b/Source/JavaScriptCore/JavaScriptCore.order @@ -185,11 +185,9 @@ __ZN3WTF31clearPthreadHandleForIdentifierEj __ZN3WTF12detachThreadEj __ZN3WTFL26pthreadHandleForIdentifierEj __ZN7WebCore6StringC1EPKtj -__Z15jsRegExpCompilePKti24JSRegExpIgnoreCaseOption23JSRegExpMultilineOptionPjPPKc __ZL30calculateCompiledPatternLengthPKti24JSRegExpIgnoreCaseOptionR11CompileDataR9ErrorCode __ZL11checkEscapePPKtS0_P9ErrorCodeib __ZL13compileBranchiPiPPhPPKtS3_P9ErrorCodeS_S_R11CompileData -__Z15jsRegExpExecutePK8JSRegExpPKtiiPii __ZL5matchPKtPKhiR9MatchData __ZN7WebCore6String6formatEPKcz __ZNK7WebCore6String19characterStartingAtEj @@ -1534,7 +1532,6 @@ __ZN3WTF6VectorItLm0EE6appendItEEvPKT_m _cti_op_to_primitive __ZN3JSC15constructNumberEPNS_9ExecStateENS_7JSValueE __ZNK3JSC12NumberObject9classInfoEv -__Z12jsRegExpFreeP8JSRegExp __ZN3JSC13BooleanObjectD1Ev __ZN3JSCL18stringFromCharCodeEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE __ZN3JSC10makeStringIPKcNS_7UStringES2_EES3_T_T0_T1_ @@ -1545,7 +1542,6 @@ __ZN3JSC8JSObject18getPrimitiveNumberEPNS_9ExecStateERdRNS_7JSValueE __ZN3JSCL24dateProtoFuncGetFullYearEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE __ZN3JSC12RegExpObject3putEPNS_9ExecStateERKNS_10IdentifierENS_7JSValueERNS_15PutPropertySlotE __ZN3JSCL24setRegExpObjectLastIndexEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueE -__Z15jsc_pcre_xclassiPKh __ZN3JSCL28regExpConstructorLeftContextEPNS_9ExecStateENS_7JSValueERKNS_10IdentifierE __ZNK3JSC17RegExpConstructor14getLeftContextEPNS_9ExecStateE _cti_to_object @@ -1790,7 +1786,6 @@ __ZN3JSCL28dateProtoFuncGetMilliSecondsEPNS_9ExecStateEPNS_8JSObjectENS_7JSValue __ZN3JSC10makeStringINS_7UStringES1_EES1_T_T0_ __ZN3JSC13tryMakeStringINS_7UStringES1_EEN3WTF10PassRefPtrIN7WebCore10StringImplEEET_T0_ __ZN3JSC23MacroAssemblerX86Common8branch16ENS0_9ConditionENS_22AbstractMacroAssemblerINS_12X86AssemblerEE9BaseIndexENS4_5Imm32E -__Z22jsc_pcre_ucp_othercasej __ZN3JSC8JSString18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE __ZN3JSCL24dateProtoFuncSetUTCHoursEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE __ZN3JSCL26dateProtoFuncSetUTCMinutesEPNS_9ExecStateEPNS_8JSObjectENS_7JSValueERKNS_7ArgListE diff --git a/Source/JavaScriptCore/JavaScriptCore.pri b/Source/JavaScriptCore/JavaScriptCore.pri index a816c97..c1de599 100644 --- a/Source/JavaScriptCore/JavaScriptCore.pri +++ b/Source/JavaScriptCore/JavaScriptCore.pri @@ -1,6 +1,6 @@ # JavaScriptCore - Qt4 build info -include(../../common.pri) +include(../common.pri) VPATH += $$PWD @@ -23,6 +23,7 @@ CONFIG(standalone_package): DEFINES *= NDEBUG JAVASCRIPTCORE_INCLUDEPATH = \ $$PWD \ $$PWD/.. \ + $$PWD/../ThirdParty \ $$PWD/assembler \ $$PWD/bytecode \ $$PWD/bytecompiler \ @@ -30,7 +31,6 @@ JAVASCRIPTCORE_INCLUDEPATH = \ $$PWD/interpreter \ $$PWD/jit \ $$PWD/parser \ - $$PWD/pcre \ $$PWD/profiler \ $$PWD/runtime \ $$PWD/wtf \ @@ -90,7 +90,8 @@ defineTest(addJavaScriptCoreLib) { QMAKE_LIBDIR = $$pathToJavaScriptCoreOutput $$QMAKE_LIBDIR webkit2 { # FIXME Workaround for undefined reference linking issues until the build system gets redesigned - LIBS += -Wl,-whole-archive -l$$JAVASCRIPTCORE_TARGET -Wl,-no-whole-archive + mac: LIBS += -Wl,-all_load -l$$JAVASCRIPTCORE_TARGET -WL,-noall_load + else: LIBS += -Wl,-whole-archive -l$$JAVASCRIPTCORE_TARGET -Wl,-no-whole-archive } else { LIBS += -l$$JAVASCRIPTCORE_TARGET } @@ -113,3 +114,4 @@ defineTest(addJavaScriptCoreLib) { return(true) } + diff --git a/Source/JavaScriptCore/JavaScriptCore.pro b/Source/JavaScriptCore/JavaScriptCore.pro index 9d254b7..1b5e28a 100644 --- a/Source/JavaScriptCore/JavaScriptCore.pro +++ b/Source/JavaScriptCore/JavaScriptCore.pro @@ -1,6 +1,6 @@ # JavaScriptCore - qmake build info CONFIG += building-libs -include($$PWD/../../WebKit.pri) +include($$PWD/../WebKit.pri) include(JavaScriptCore.pri) TEMPLATE = lib @@ -65,7 +65,7 @@ wince* { SOURCES += $$QT_SOURCE_TREE/src/3rdparty/ce-compat/ce_time.c } -include(pcre/pcre.pri) +include(yarr/yarr.pri) include(wtf/wtf.pri) INSTALLDEPS += all @@ -115,6 +115,7 @@ SOURCES += \ parser/Nodes.cpp \ parser/ParserArena.cpp \ parser/Parser.cpp \ + parser/SourceProviderCache.cpp \ profiler/Profile.cpp \ profiler/ProfileGenerator.cpp \ profiler/ProfileNode.cpp \ @@ -127,6 +128,7 @@ SOURCES += \ runtime/BooleanObject.cpp \ runtime/BooleanPrototype.cpp \ runtime/CallData.cpp \ + runtime/MarkedBlock.cpp \ runtime/MarkedSpace.cpp \ runtime/Heap.cpp \ runtime/CommonIdentifiers.cpp \ @@ -179,6 +181,7 @@ SOURCES += \ runtime/MarkStackPosix.cpp \ runtime/MarkStackSymbian.cpp \ runtime/MarkStackWin.cpp \ + runtime/ConservativeSet.cpp \ runtime/MarkStack.cpp \ runtime/MathObject.cpp \ runtime/NativeErrorConstructor.cpp \ @@ -210,10 +213,7 @@ SOURCES += \ runtime/Structure.cpp \ runtime/TimeoutChecker.cpp \ runtime/UString.cpp \ - yarr/YarrPattern.cpp \ - yarr/YarrInterpreter.cpp \ yarr/YarrJIT.cpp \ - yarr/YarrSyntaxChecker.cpp # Generated files, simply list them for JavaScriptCore @@ -226,5 +226,7 @@ symbian: { } QMAKE_CXXFLAGS.ARMCC += -OTime -O3 } + # Disable C++0x mode in JSC for those who enabled it in their Qt's mkspec *-g++*:QMAKE_CXXFLAGS -= -std=c++0x -std=gnu++0x + diff --git a/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore.make b/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore.make index 1f83397..68075f9 100644 --- a/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore.make +++ b/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore.make @@ -1,7 +1,7 @@ -!IF !defined(BUILDSTYLE) -BUILDSTYLE=Release -!ELSEIF "$(BUILDSTYLE)"=="DEBUG" +!IF defined(BUILDSTYLE) && "$(BUILDSTYLE)"=="DEBUG" BUILDSTYLE=Debug_All +!ELSE +BUILDSTYLE=Release_PGO !ENDIF install: @@ -9,30 +9,29 @@ install: set WebKitLibrariesDir=$(SRCROOT)\AppleInternal set WebKitOutputDir=$(OBJROOT) set ConfigurationBuildDir=$(OBJROOT)\$(BUILDSTYLE) - set WebKitVSPropsRedirectionDir=$(SRCROOT)\AppleInternal\tools\vsprops\OpenSource\1\2\3\ -!IF "$(BUILDSTYLE)"=="Release" - BUILDSTYLE=Release_PGO + set WebKitVSPropsRedirectionDir=$(SRCROOT)\AppleInternal\tools\vsprops\OpenSource\1\2\3\4\ +!IF "$(BUILDSTYLE)"=="Release_PGO" devenv "JavaScriptCoreSubmit.sln" /rebuild $(BUILDSTYLE) set PATH=$(SYSTEMDRIVE)\cygwin\bin;$(PATH) - xcopy "$(SRCROOT)\AppleInternal\tests\SunSpider\*" "$(ConfigurationBuildDir)\tests\SunSpider" /e/v/i/h/y - cd "$(ConfigurationBuildDir)\tests\SunSpider" + xcopy "$(SRCROOT)\AppleInternal\tests\SunSpider\*" "%ConfigurationBuildDir%\tests\SunSpider" /e/v/i/h/y + cd "%ConfigurationBuildDir%\tests\SunSpider" perl sunspider --shell ../../bin/jsc.exe --runs 3 - del "$(ConfigurationBuildDir)\bin\JavaScriptCore.dll" + del "%ConfigurationBuildDir%\bin\JavaScriptCore.dll" cd "$(SRCROOT)\JavaScriptCore.vcproj" devenv "JavaScriptCoreSubmit.sln" /build Release_PGO_Optimize !ELSE devenv "JavaScriptCoreSubmit.sln" /rebuild $(BUILDSTYLE) !ENDIF - -xcopy "$(ConfigurationBuildDir)\bin\JavaScriptCore.dll" "$(DSTROOT)\AppleInternal\bin\" /e/v/i/h/y - -xcopy "$(ConfigurationBuildDir)\bin\JavaScriptCore_debug.dll" "$(DSTROOT)\AppleInternal\bin\" /e/v/i/h/y - -xcopy "$(ConfigurationBuildDir)\bin\JavaScriptCore.pdb" "$(DSTROOT)\AppleInternal\bin\" /e/v/i/h/y - -xcopy "$(ConfigurationBuildDir)\bin\JavaScriptCore_debug.pdb" "$(DSTROOT)\AppleInternal\bin\" /e/v/i/h/y - -xcopy "$(ConfigurationBuildDir)\bin\jsc.exe" "$(DSTROOT)\AppleInternal\bin\" /e/v/i/h/y - -xcopy "$(ConfigurationBuildDir)\bin\jsc_debug.exe" "$(DSTROOT)\AppleInternal\bin\" /e/v/i/h/y - -xcopy "$(ConfigurationBuildDir)\bin\jsc.pdb" "$(DSTROOT)\AppleInternal\bin\" /e/v/i/h/y - -xcopy "$(ConfigurationBuildDir)\bin\jsc_debug.pdb" "$(DSTROOT)\AppleInternal\bin\" /e/v/i/h/y - xcopy "$(ConfigurationBuildDir)\include\*" "$(DSTROOT)\AppleInternal\include\" /e/v/i/h/y - xcopy "$(ConfigurationBuildDir)\lib\*" "$(DSTROOT)\AppleInternal\lib\" /e/v/i/h/y - xcopy "$(ConfigurationBuildDir)\bin\JavaScriptCore.resources\*" "$(DSTROOT)\AppleInternal\bin\JavaScriptCore.resources" /e/v/i/h/y + -xcopy "%ConfigurationBuildDir%\bin\JavaScriptCore.dll" "$(DSTROOT)\AppleInternal\bin\" /e/v/i/h/y + -xcopy "%ConfigurationBuildDir%\bin\JavaScriptCore_debug.dll" "$(DSTROOT)\AppleInternal\bin\" /e/v/i/h/y + -xcopy "%ConfigurationBuildDir%\bin\JavaScriptCore.pdb" "$(DSTROOT)\AppleInternal\bin\" /e/v/i/h/y + -xcopy "%ConfigurationBuildDir%\bin\JavaScriptCore_debug.pdb" "$(DSTROOT)\AppleInternal\bin\" /e/v/i/h/y + -xcopy "%ConfigurationBuildDir%\bin\jsc.exe" "$(DSTROOT)\AppleInternal\bin\" /e/v/i/h/y + -xcopy "%ConfigurationBuildDir%\bin\jsc_debug.exe" "$(DSTROOT)\AppleInternal\bin\" /e/v/i/h/y + -xcopy "%ConfigurationBuildDir%\bin\jsc.pdb" "$(DSTROOT)\AppleInternal\bin\" /e/v/i/h/y + -xcopy "%ConfigurationBuildDir%\bin\jsc_debug.pdb" "$(DSTROOT)\AppleInternal\bin\" /e/v/i/h/y + xcopy "%ConfigurationBuildDir%\include\*" "$(DSTROOT)\AppleInternal\include\" /e/v/i/h/y + xcopy "%ConfigurationBuildDir%\lib\*" "$(DSTROOT)\AppleInternal\lib\" /e/v/i/h/y + xcopy "%ConfigurationBuildDir%\bin\JavaScriptCore.resources\*" "$(DSTROOT)\AppleInternal\bin\JavaScriptCore.resources" /e/v/i/h/y -mkdir "$(DSTROOT)\AppleInternal\Sources\JavaScriptCore" - xcopy "$(ConfigurationBuildDir)\obj\JavaScriptCore\DerivedSources\*" "$(DSTROOT)\AppleInternal\Sources\JavaScriptCore" /e/v/i/h/y + xcopy "%ConfigurationBuildDir%\obj\JavaScriptCore\DerivedSources\*" "$(DSTROOT)\AppleInternal\Sources\JavaScriptCore" /e/v/i/h/y diff --git a/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def b/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def index 4ddad24..010db39 100644 --- a/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def +++ b/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def @@ -9,8 +9,8 @@ EXPORTS ??0DropAllLocks@JSLock@JSC@@QAE@W4JSLockBehavior@2@@Z ??0DynamicGlobalObjectScope@JSC@@QAE@PAVExecState@1@PAVJSGlobalObject@1@@Z ??0InternalFunction@JSC@@IAE@PAVJSGlobalData@1@PAVJSGlobalObject@1@V?$NonNullPassRefPtr@VStructure@JSC@@@WTF@@ABVIdentifier@1@@Z + ??0JSArray@JSC@@QAE@AAVJSGlobalData@1@V?$NonNullPassRefPtr@VStructure@JSC@@@WTF@@ABVArgList@1@@Z ??0JSArray@JSC@@QAE@V?$NonNullPassRefPtr@VStructure@JSC@@@WTF@@@Z - ??0JSArray@JSC@@QAE@V?$NonNullPassRefPtr@VStructure@JSC@@@WTF@@ABVArgList@1@@Z ??0JSByteArray@JSC@@QAE@PAVExecState@1@V?$NonNullPassRefPtr@VStructure@JSC@@@WTF@@PAVByteArray@4@PBUClassInfo@1@@Z ??0JSFunction@JSC@@QAE@PAVExecState@1@PAVJSGlobalObject@1@V?$NonNullPassRefPtr@VStructure@JSC@@@WTF@@HABVIdentifier@1@P6I_J0@Z@Z ??0JSObjectWithGlobalObject@JSC@@IAE@PAVJSGlobalObject@1@V?$NonNullPassRefPtr@VStructure@JSC@@@WTF@@@Z @@ -26,6 +26,7 @@ EXPORTS ??0UString@JSC@@QAE@PBDI@Z ??0UString@JSC@@QAE@PB_WI@Z ??0WTFThreadData@WTF@@QAE@XZ + ??0YarrPattern@Yarr@JSC@@QAE@ABVUString@2@_N1PAPBD@Z ??1ClientData@JSGlobalData@JSC@@UAE@XZ ??1Collator@WTF@@QAE@XZ ??1Debugger@JSC@@UAE@XZ @@ -35,6 +36,7 @@ EXPORTS ??1Mutex@WTF@@QAE@XZ ??1RefCountedLeakCounter@WTF@@QAE@XZ ??1RegExp@JSC@@QAE@XZ + ??1SourceProviderCache@JSC@@QAE@XZ ??1Structure@JSC@@QAE@XZ ??1ThreadCondition@WTF@@QAE@XZ ??1WTFThreadData@WTF@@QAE@XZ @@ -42,6 +44,7 @@ EXPORTS ??8JSC@@YA_NABVUString@0@0@Z ??8WTF@@YA_NABVCString@0@0@Z ?NaN@JSC@@3NB + ?absoluteTimeToWaitTimeoutInterval@WTF@@YAKN@Z ?add@Identifier@JSC@@SA?AV?$PassRefPtr@VStringImpl@WTF@@@WTF@@PAVExecState@2@PBD@Z ?add@PropertyNameArray@JSC@@QAEXPAVStringImpl@WTF@@@Z ?addBytes@MD5@WTF@@QAEXPBEI@Z @@ -59,7 +62,10 @@ EXPORTS ?attach@Debugger@JSC@@QAEXPAVJSGlobalObject@2@@Z ?broadcast@ThreadCondition@WTF@@QAEXXZ ?bufferLengthForStringDecimal@DecimalNumber@WTF@@QBEIXZ + ?byteCompile@Yarr@JSC@@YA?AV?$PassOwnPtr@UBytecodePattern@Yarr@JSC@@@WTF@@AAUYarrPattern@12@PAVBumpPointerAllocator@4@@Z + ?byteSize@SourceProviderCache@JSC@@QBEIXZ ?calculateDSTOffset@WTF@@YANNN@Z + ?calculateStringHashAndLengthFromUTF8@Unicode@WTF@@YAIPBDAAI1@Z ?calculateStringHashFromUTF8@Unicode@WTF@@YAIPBD0AAI@Z ?calculateUTCOffset@WTF@@YAHXZ ?calculatedFunctionName@DebuggerCallFrame@JSC@@QBE?AVUString@2@XZ @@ -67,6 +73,7 @@ EXPORTS ?callOnMainThread@WTF@@YAXP6AXPAX@Z0@Z ?callOnMainThreadAndWait@WTF@@YAXP6AXPAX@Z0@Z ?cancelCallOnMainThread@WTF@@YAXP6AXPAX@Z0@Z + ?capacity@Heap@JSC@@QBEIXZ ?changePrototypeTransition@Structure@JSC@@SA?AV?$PassRefPtr@VStructure@JSC@@@WTF@@PAV12@VJSValue@2@@Z ?checkCurrentIdentifierTable@Identifier@JSC@@CAXPAVExecState@2@@Z ?checkCurrentIdentifierTable@Identifier@JSC@@CAXPAVJSGlobalData@2@@Z @@ -75,6 +82,7 @@ EXPORTS ?classInfo@InternalFunction@JSC@@UBEPBUClassInfo@2@XZ ?classInfo@JSCell@JSC@@UBEPBUClassInfo@2@XZ ?className@JSObject@JSC@@UBE?AVUString@2@XZ + ?clear@SourceProviderCache@JSC@@QAEXXZ ?collate@Collator@WTF@@QBE?AW4Result@12@PB_WI0I@Z ?collectAllGarbage@Heap@JSC@@QAEXXZ ?configurable@PropertyDescriptor@JSC@@QBE_NXZ @@ -94,6 +102,7 @@ EXPORTS ?createInheritorID@JSObject@JSC@@AAEPAVStructure@2@XZ ?createInterruptedExecutionException@JSC@@YAPAVJSObject@1@PAVJSGlobalData@1@@Z ?createLeaked@JSGlobalData@JSC@@SA?AV?$PassRefPtr@VJSGlobalData@JSC@@@WTF@@W4ThreadStackType@2@@Z + ?createRangeError@JSC@@YAPAVJSObject@1@PAVExecState@1@ABVUString@1@@Z ?createReferenceError@JSC@@YAPAVJSObject@1@PAVExecState@1@ABVUString@1@@Z ?createSingleCharacterString@SmallStrings@JSC@@AAEXPAVJSGlobalData@2@E@Z ?createStackOverflowError@JSC@@YAPAVJSObject@1@PAVExecState@1@@Z @@ -103,6 +112,7 @@ EXPORTS ?createThread@WTF@@YAIP6APAXPAX@Z0@Z ?createThread@WTF@@YAIP6APAXPAX@Z0PBD@Z ?createTypeError@JSC@@YAPAVJSObject@1@PAVExecState@1@ABVUString@1@@Z + ?cryptographicallyRandomValues@WTF@@YAXPAXI@Z ?currentThread@WTF@@YAIXZ ?currentTime@WTF@@YANXZ ?data@CString@WTF@@QBEPBDXZ @@ -152,7 +162,7 @@ EXPORTS ?fastRealloc@WTF@@YAPAXPAXI@Z ?fastStrDup@WTF@@YAPADPBD@Z ?fastZeroedMalloc@WTF@@YAPAXI@Z - ?fillGetterPropertySlot@JSObject@JSC@@QAEXAAVPropertySlot@2@PAVJSValue@2@@Z + ?fillGetterPropertySlot@JSObject@JSC@@QAEXAAVPropertySlot@2@PAV?$WriteBarrierBase@W4Unknown@JSC@@@2@@Z ?focus@Profile@JSC@@QAEXPBVProfileNode@2@@Z ?free@WeakGCHandlePool@JSC@@QAEXPAVWeakGCHandle@2@@Z ?from@Identifier@JSC@@SA?AV12@PAVExecState@2@H@Z @@ -202,6 +212,7 @@ EXPORTS ?initializeMainThread@WTF@@YAXXZ ?initializeThreading@JSC@@YAXXZ ?initializeThreading@WTF@@YAXXZ + ?interpret@Yarr@JSC@@YAHPAUBytecodePattern@12@PB_WIIPAH@Z ?isAccessorDescriptor@PropertyDescriptor@JSC@@QBE_NXZ ?isBusy@Heap@JSC@@QAE_NXZ ?isDataDescriptor@PropertyDescriptor@JSC@@QBE_NXZ @@ -213,9 +224,6 @@ EXPORTS ?isVariableObject@JSVariableObject@JSC@@UBE_NXZ ?jsNumberCell@JSC@@YA?AVJSValue@1@PAVExecState@1@N@Z ?jsOwnedString@JSC@@YAPAVJSString@1@PAVJSGlobalData@1@ABVUString@1@@Z - ?jsRegExpCompile@@YAPAUJSRegExp@@PB_WHW4JSRegExpIgnoreCaseOption@@W4JSRegExpMultilineOption@@PAIPAPBD@Z - ?jsRegExpExecute@@YAHPBUJSRegExp@@PB_WHHPAHH@Z - ?jsRegExpFree@@YAXPAUJSRegExp@@@Z ?jsString@JSC@@YAPAVJSString@1@PAVJSGlobalData@1@ABVUString@1@@Z ?length@CString@WTF@@QBEIXZ ?lock@JSLock@JSC@@SAXW4JSLockBehavior@2@@Z @@ -246,7 +254,7 @@ EXPORTS ?protect@Heap@JSC@@QAEXVJSValue@2@@Z ?protectedGlobalObjectCount@Heap@JSC@@QAEIXZ ?protectedObjectCount@Heap@JSC@@QAEIXZ - ?protectedObjectTypeCounts@Heap@JSC@@QAEPAV?$HashCountedSet@PBDU?$PtrHash@PBD@WTF@@U?$HashTraits@PBD@2@@WTF@@XZ + ?protectedObjectTypeCounts@Heap@JSC@@QAE?AV?$PassOwnPtr@V?$HashCountedSet@PBDU?$PtrHash@PBD@WTF@@U?$HashTraits@PBD@2@@WTF@@@WTF@@XZ ?put@JSCell@JSC@@UAEXPAVExecState@2@ABVIdentifier@2@VJSValue@2@AAVPutPropertySlot@2@@Z ?put@JSCell@JSC@@UAEXPAVExecState@2@IVJSValue@2@@Z ?put@JSGlobalObject@JSC@@UAEXPAVExecState@2@ABVIdentifier@2@VJSValue@2@AAVPutPropertySlot@2@@Z @@ -264,10 +272,10 @@ EXPORTS ?putWithAttributes@JSObject@JSC@@UAEXPAVJSGlobalData@2@IVJSValue@2@I@Z ?randomNumber@WTF@@YANXZ ?recompileAllJSFunctions@Debugger@JSC@@QAEXPAVJSGlobalData@2@@Z - ?recordExtraCost@Heap@JSC@@AAEXI@Z ?reifyString@StringBuilder@WTF@@AAEXXZ ?releaseDecommitted@OSAllocator@WTF@@SAXPAXI@Z ?releaseStack@MarkStack@JSC@@CAXPAXI@Z + ?reportExtraMemoryCostSlowCase@Heap@JSC@@AAEXI@Z ?reserveAndCommit@OSAllocator@WTF@@SAPAXIW4Usage@12@_N1@Z ?reset@ParserArena@JSC@@QAEXXZ ?reset@TimeoutChecker@JSC@@QAEXXZ @@ -358,4 +366,5 @@ EXPORTS WTFReportArgumentAssertionFailure WTFReportAssertionFailure WTFReportAssertionFailureWithMessage + WTFReportBacktrace WTFReportError diff --git a/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj b/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj index 12310d8..260779e 100644 --- a/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj +++ b/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj @@ -594,15 +594,19 @@ > + + + + + + @@ -1323,42 +1335,6 @@ - - - - - - - - - - - - - - - - - - + + + + + + diff --git a/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops b/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops index 2a85beb..4a7f4d3 100644 --- a/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops +++ b/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops @@ -6,7 +6,7 @@ > diff --git a/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make b/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make index 65e3215..314a794 100644 --- a/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make +++ b/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make @@ -1,58 +1,60 @@ all: - touch "$(CONFIGURATIONBUILDDIR)\buildfailed" - bash build-generated-files.sh "$(CONFIGURATIONBUILDDIR)" "$(WEBKITLIBRARIESDIR)" - -bash -c "python react-to-vsprops-changes.py" - -mkdir 2>NUL "$(CONFIGURATIONBUILDDIR)\include\JavaScriptCore" - xcopy /y /d "..\..\API\APICast.h" "$(CONFIGURATIONBUILDDIR)\include\JavaScriptCore" - xcopy /y /d "..\..\API\JavaScript.h" "$(CONFIGURATIONBUILDDIR)\include\JavaScriptCore" - xcopy /y /d "..\..\API\JSBase.h" "$(CONFIGURATIONBUILDDIR)\include\JavaScriptCore" - xcopy /y /d "..\..\API\JSContextRef.h" "$(CONFIGURATIONBUILDDIR)\include\JavaScriptCore" - xcopy /y /d "..\..\API\JSContextRefPrivate.h" "$(CONFIGURATIONBUILDDIR)\include\JavaScriptCore" - xcopy /y /d "..\..\API\JSObjectRef.h" "$(CONFIGURATIONBUILDDIR)\include\JavaScriptCore" - xcopy /y /d "..\..\API\JSObjectRefPrivate.h" "$(CONFIGURATIONBUILDDIR)\include\JavaScriptCore" - xcopy /y /d "..\..\API\JSStringRef.h" "$(CONFIGURATIONBUILDDIR)\include\JavaScriptCore" - xcopy /y /d "..\..\API\JSStringRefCF.h" "$(CONFIGURATIONBUILDDIR)\include\JavaScriptCore" - xcopy /y /d "..\..\API\JSStringRefBSTR.h" "$(CONFIGURATIONBUILDDIR)\include\JavaScriptCore" - xcopy /y /d "..\..\API\JSValueRef.h" "$(CONFIGURATIONBUILDDIR)\include\JavaScriptCore" - xcopy /y /d "..\..\API\JavaScriptCore.h" "$(CONFIGURATIONBUILDDIR)\include\JavaScriptCore" - xcopy /y /d "..\..\API\JSRetainPtr.h" "$(CONFIGURATIONBUILDDIR)\include\JavaScriptCore" - xcopy /y /d "..\..\API\JSWeakObjectMapRefInternal.h" "$(CONFIGURATIONBUILDDIR)\include\JavaScriptCore" - xcopy /y /d "..\..\API\JSWeakObjectMapRefPrivate.h" "$(CONFIGURATIONBUILDDIR)\include\JavaScriptCore" - xcopy /y /d "..\..\API\JSRetainPtr.h" "$(CONFIGURATIONBUILDDIR)\include\JavaScriptCore" - xcopy /y /d "..\..\API\OpaqueJSString.h" "$(CONFIGURATIONBUILDDIR)\include\JavaScriptCore" - xcopy /y /d "..\..\API\WebKitAvailability.h" "$(CONFIGURATIONBUILDDIR)\include\JavaScriptCore" + touch "%ConfigurationBuildDir%\buildfailed" + bash build-generated-files.sh "%ConfigurationBuildDir%" "$(WEBKITLIBRARIESDIR)" +!IF "$(PRODUCTION)"!="1" + bash -c "python react-to-vsprops-changes.py" +!ENDIF + -mkdir 2>NUL "%ConfigurationBuildDir%\include\JavaScriptCore" + xcopy /y /d "..\..\API\APICast.h" "%ConfigurationBuildDir%\include\JavaScriptCore" + xcopy /y /d "..\..\API\JavaScript.h" "%ConfigurationBuildDir%\include\JavaScriptCore" + xcopy /y /d "..\..\API\JSBase.h" "%ConfigurationBuildDir%\include\JavaScriptCore" + xcopy /y /d "..\..\API\JSContextRef.h" "%ConfigurationBuildDir%\include\JavaScriptCore" + xcopy /y /d "..\..\API\JSContextRefPrivate.h" "%ConfigurationBuildDir%\include\JavaScriptCore" + xcopy /y /d "..\..\API\JSObjectRef.h" "%ConfigurationBuildDir%\include\JavaScriptCore" + xcopy /y /d "..\..\API\JSObjectRefPrivate.h" "%ConfigurationBuildDir%\include\JavaScriptCore" + xcopy /y /d "..\..\API\JSStringRef.h" "%ConfigurationBuildDir%\include\JavaScriptCore" + xcopy /y /d "..\..\API\JSStringRefCF.h" "%ConfigurationBuildDir%\include\JavaScriptCore" + xcopy /y /d "..\..\API\JSStringRefBSTR.h" "%ConfigurationBuildDir%\include\JavaScriptCore" + xcopy /y /d "..\..\API\JSValueRef.h" "%ConfigurationBuildDir%\include\JavaScriptCore" + xcopy /y /d "..\..\API\JavaScriptCore.h" "%ConfigurationBuildDir%\include\JavaScriptCore" + xcopy /y /d "..\..\API\JSRetainPtr.h" "%ConfigurationBuildDir%\include\JavaScriptCore" + xcopy /y /d "..\..\API\JSWeakObjectMapRefInternal.h" "%ConfigurationBuildDir%\include\JavaScriptCore" + xcopy /y /d "..\..\API\JSWeakObjectMapRefPrivate.h" "%ConfigurationBuildDir%\include\JavaScriptCore" + xcopy /y /d "..\..\API\JSRetainPtr.h" "%ConfigurationBuildDir%\include\JavaScriptCore" + xcopy /y /d "..\..\API\OpaqueJSString.h" "%ConfigurationBuildDir%\include\JavaScriptCore" + xcopy /y /d "..\..\API\WebKitAvailability.h" "%ConfigurationBuildDir%\include\JavaScriptCore" - -mkdir 2>NUL "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore" + -mkdir 2>NUL "%ConfigurationBuildDir%\include\private\JavaScriptCore" - xcopy /y /d "..\..\wtf\*.h" "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore" - xcopy /y /d "..\..\wtf\text\*.h" "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore" - xcopy /y /d "..\..\wtf\unicode\*.h" "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore" - xcopy /y /d "..\..\wtf\unicode\icu\*.h" "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore" - xcopy /y /d "..\..\parser\*.h" "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore" - xcopy /y /d "..\..\runtime\*.h" "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore" - xcopy /y /d "..\..\bytecode\*.h" "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore" - xcopy /y /d "..\..\interpreter\*.h" "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore" - xcopy /y /d "..\..\assembler\*.h" "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore" - xcopy /y /d "..\..\jit\*.h" "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore" - xcopy /y /d "..\..\debugger\*.h" "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore" - xcopy /y /d "..\..\profiler\*.h" "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore" - xcopy /y /d "..\..\create_hash_table" "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore" - xcopy /y /d "..\..\pcre\pcre.h" "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore" - xcopy /y /d "..\..\wtf\text\AtomicString.cpp" "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore" - xcopy /y /d "..\..\wtf\text\StringBuilder.cpp" "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore" - xcopy /y /d "..\..\wtf\text\StringImpl.cpp" "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore" - xcopy /y /d "..\..\wtf\text\WTFString.cpp" "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore" + xcopy /y /d "..\..\wtf\*.h" "%ConfigurationBuildDir%\include\private\JavaScriptCore" + xcopy /y /d "..\..\wtf\text\*.h" "%ConfigurationBuildDir%\include\private\JavaScriptCore" + xcopy /y /d "..\..\wtf\unicode\*.h" "%ConfigurationBuildDir%\include\private\JavaScriptCore" + xcopy /y /d "..\..\wtf\unicode\icu\*.h" "%ConfigurationBuildDir%\include\private\JavaScriptCore" + xcopy /y /d "..\..\parser\*.h" "%ConfigurationBuildDir%\include\private\JavaScriptCore" + xcopy /y /d "..\..\runtime\*.h" "%ConfigurationBuildDir%\include\private\JavaScriptCore" + xcopy /y /d "..\..\bytecode\*.h" "%ConfigurationBuildDir%\include\private\JavaScriptCore" + xcopy /y /d "..\..\interpreter\*.h" "%ConfigurationBuildDir%\include\private\JavaScriptCore" + xcopy /y /d "..\..\assembler\*.h" "%ConfigurationBuildDir%\include\private\JavaScriptCore" + xcopy /y /d "..\..\jit\*.h" "%ConfigurationBuildDir%\include\private\JavaScriptCore" + xcopy /y /d "..\..\debugger\*.h" "%ConfigurationBuildDir%\include\private\JavaScriptCore" + xcopy /y /d "..\..\profiler\*.h" "%ConfigurationBuildDir%\include\private\JavaScriptCore" + xcopy /y /d "..\..\create_hash_table" "%ConfigurationBuildDir%\include\private\JavaScriptCore" + xcopy /y /d "..\..\wtf\text\AtomicString.cpp" "%ConfigurationBuildDir%\include\private\JavaScriptCore" + xcopy /y /d "..\..\wtf\text\StringBuilder.cpp" "%ConfigurationBuildDir%\include\private\JavaScriptCore" + xcopy /y /d "..\..\wtf\text\StringImpl.cpp" "%ConfigurationBuildDir%\include\private\JavaScriptCore" + xcopy /y /d "..\..\wtf\text\WTFString.cpp" "%ConfigurationBuildDir%\include\private\JavaScriptCore" + xcopy /y /d "..\..\yarr\*.h" "%ConfigurationBuildDir%\include\private\JavaScriptCore" - -mkdir 2>NUL "$(CONFIGURATIONBUILDDIR)\bin\JavaScriptCore.resources" - xcopy /y /d "..\JavaScriptCore.resources\*" "$(CONFIGURATIONBUILDDIR)\bin\JavaScriptCore.resources" + -mkdir 2>NUL "%ConfigurationBuildDir%\bin\JavaScriptCore.resources" + xcopy /y /d "..\JavaScriptCore.resources\*" "%ConfigurationBuildDir%\bin\JavaScriptCore.resources" - -del "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore\stdbool.h" "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore\stdint.h" - -del "$(CONFIGURATIONBUILDDIR)\buildfailed" + -del "%ConfigurationBuildDir%\include\private\JavaScriptCore\stdbool.h" "%ConfigurationBuildDir%\include\private\JavaScriptCore\stdint.h" + -del "%ConfigurationBuildDir%\buildfailed" clean: - -del "$(CONFIGURATIONBUILDDIR)\buildfailed" - -del /s /q "$(CONFIGURATIONBUILDDIR)\include\JavaScriptCore\JavaScriptCore" - -del /s /q "$(CONFIGURATIONBUILDDIR)\obj\JavaScriptCore\DerivedSources" - -del /s /q "$(CONFIGURATIONBUILDDIR)\include\private\JavaScriptCore" - -del /s /q "$(CONFIGURATIONBUILDDIR)\bin\JavaScriptCore.resources" + -del "%ConfigurationBuildDir%\buildfailed" + -del /s /q "%ConfigurationBuildDir%\include\JavaScriptCore\JavaScriptCore" + -del /s /q "%ConfigurationBuildDir%\obj\JavaScriptCore\DerivedSources" + -del /s /q "%ConfigurationBuildDir%\include\private\JavaScriptCore" + -del /s /q "%ConfigurationBuildDir%\bin\JavaScriptCore.resources" diff --git a/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj b/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj index b8383c4..2437071 100644 --- a/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj +++ b/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj @@ -87,6 +87,10 @@ > + + diff --git a/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py b/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py index ab1df83..e12840f 100644 --- a/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py +++ b/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py @@ -19,11 +19,14 @@ def main(): # Delete any manifest-related files because Visual Studio isn't smart # enough to figure out that it might need to rebuild them. obj_directory = os.path.join(os.environ['CONFIGURATIONBUILDDIR'], 'obj') - for manifest_file in glob.iglob(os.path.join(obj_directory, '*', '*', '*.manifest*')): - manifest_time = os.path.getmtime(manifest_file) - if manifest_time < newest_vsprops_time: - print 'Deleting %s' % manifest_file - os.remove(manifest_file) + for manifest_file in glob.iglob(os.path.join(obj_directory, '*', '*.manifest*')): + delete_if_older_than(manifest_file, newest_vsprops_time) + + # Delete any precompiled headers because Visual Studio isn't smart enough + # to figure out that it might need to rebuild them, even if we touch + # wtf/Platform.h below. + for precompiled_header in glob.iglob(os.path.join(obj_directory, '*', '*.pch')): + delete_if_older_than(precompiled_header, newest_vsprops_time) # Touch wtf/Platform.h so all files will be recompiled. This is necessary # to pick up changes to preprocessor macros (e.g., ENABLE_*). @@ -33,5 +36,11 @@ def main(): os.utime(wtf_platform_h, None) +def delete_if_older_than(path, reference_time): + if os.path.getmtime(path) < reference_time: + print 'Deleting %s' % path + os.remove(path) + + if __name__ == '__main__': sys.exit(main()) diff --git a/Source/JavaScriptCore/JavaScriptCore.vcproj/WTF/WTF.vcproj b/Source/JavaScriptCore/JavaScriptCore.vcproj/WTF/WTF.vcproj index 457392d..55371f3 100644 --- a/Source/JavaScriptCore/JavaScriptCore.vcproj/WTF/WTF.vcproj +++ b/Source/JavaScriptCore/JavaScriptCore.vcproj/WTF/WTF.vcproj @@ -400,6 +400,10 @@ Name="unicode" > + + @@ -533,6 +537,10 @@ > + + @@ -553,6 +561,14 @@ > + + + + @@ -745,11 +761,15 @@ > + + sourceProvider, unsigned sourceOffset, SymbolTable* symTab, bool isConstructor) : m_globalObject(globalObject) + , m_heap(&m_globalObject->globalData().heap) , m_numCalleeRegisters(0) , m_numVars(0) , m_numParameters(0) @@ -1529,12 +1530,11 @@ void CodeBlock::refStructures(Instruction* vPC) const void CodeBlock::markAggregate(MarkStack& markStack) { for (size_t i = 0; i < m_constantRegisters.size(); ++i) - markStack.append(m_constantRegisters[i].jsValue()); + markStack.deprecatedAppend(&m_constantRegisters[i]); for (size_t i = 0; i < m_functionExprs.size(); ++i) m_functionExprs[i]->markAggregate(markStack); for (size_t i = 0; i < m_functionDecls.size(); ++i) m_functionDecls[i]->markAggregate(markStack); - markStack.append(m_globalObject); } HandlerInfo* CodeBlock::handlerForBytecodeOffset(unsigned bytecodeOffset) diff --git a/Source/JavaScriptCore/bytecode/CodeBlock.h b/Source/JavaScriptCore/bytecode/CodeBlock.h index 1cd0863..f8498b4 100644 --- a/Source/JavaScriptCore/bytecode/CodeBlock.h +++ b/Source/JavaScriptCore/bytecode/CodeBlock.h @@ -248,7 +248,8 @@ namespace JSC { protected: CodeBlock(ScriptExecutable* ownerExecutable, CodeType, JSGlobalObject*, PassRefPtr, unsigned sourceOffset, SymbolTable* symbolTable, bool isConstructor); - JSGlobalObject* m_globalObject; + DeprecatedPtr m_globalObject; + Heap* m_heap; public: virtual ~CodeBlock(); @@ -485,7 +486,7 @@ namespace JSC { unsigned addRegExp(RegExp* r) { createRareDataIfNecessary(); unsigned size = m_rareData->m_regexps.size(); m_rareData->m_regexps.append(r); return size; } RegExp* regexp(int index) const { ASSERT(m_rareData); return m_rareData->m_regexps[index].get(); } - JSGlobalObject* globalObject() { return m_globalObject; } + JSGlobalObject* globalObject() { return m_globalObject.get(); } // Jump Tables @@ -616,17 +617,14 @@ namespace JSC { GlobalCodeBlock(ScriptExecutable* ownerExecutable, CodeType codeType, JSGlobalObject* globalObject, PassRefPtr sourceProvider, unsigned sourceOffset) : CodeBlock(ownerExecutable, codeType, globalObject, sourceProvider, sourceOffset, &m_unsharedSymbolTable, false) { - m_globalObject->codeBlocks().add(this); + m_heap->codeBlocks().add(this); } ~GlobalCodeBlock() { - if (m_globalObject) - m_globalObject->codeBlocks().remove(this); + m_heap->codeBlocks().remove(this); } - void clearGlobalObject() { m_globalObject = 0; } - private: SymbolTable m_unsharedSymbolTable; }; diff --git a/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp b/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp index 78c373a..0964344 100644 --- a/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp +++ b/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp @@ -251,7 +251,7 @@ BytecodeGenerator::BytecodeGenerator(ProgramNode* programNode, const ScopeChain& for (SymbolTable::iterator it = symbolTable->begin(); it != end; ++it) registerFor(it->second.getIndex()).setIndex(it->second.getIndex() + m_globalVarStorageOffset); - BatchedTransitionOptimizer optimizer(globalObject); + BatchedTransitionOptimizer optimizer(*m_globalData, globalObject); const VarStack& varStack = programNode->varStack(); const FunctionStack& functionStack = programNode->functionStack(); @@ -903,7 +903,7 @@ PassRefPtr