summaryrefslogtreecommitdiffstats
path: root/Source/JavaScriptCore/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/ChangeLog')
-rw-r--r--Source/JavaScriptCore/ChangeLog28394
1 files changed, 6618 insertions, 21776 deletions
diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog
index 12e0cfd..bb10264 100644
--- a/Source/JavaScriptCore/ChangeLog
+++ b/Source/JavaScriptCore/ChangeLog
@@ -1,9803 +1,4498 @@
-2011-02-13 Jeremy Moskovich <jeremy@chromium.org>
+2011-04-19 Oliver Hunt <oliver@apple.com>
- 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 <zwarich@apple.com>
-
- 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 <abarth@webkit.org>
-
- 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 <abarth@webkit.org>
-
- 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 <dbates@rim.com>
-
- 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 <ggaren@apple.com>
-
- 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 <ggaren@apple.com>
-
- 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 <ggaren@apple.com>
-
- 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 <ggaren@apple.com>
-
- 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 <ggaren@apple.com>
-
- Try to fix the Windows build: added an exported symbol.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
-
-2011-02-11 Geoffrey Garen <ggaren@apple.com>
-
- 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 <abarth@webkit.org>
-
- 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 <abarth@webkit.org>
-
- 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 <ggaren@apple.com>
-
- 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 <ggaren@apple.com>
-
- 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 <msaboff@apple.com>
-
- 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 <joepeck@webkit.org>
-
- 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 <joepeck@webkit.org>
-
- 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 <ggaren@apple.com>
-
- 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 <paroga@webkit.org>
-
- 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 <aroben@apple.com>
-
- 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 <http://webkit.org/b/54208> 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 <mitz@apple.com>
+ Reviewed by Gavin Barraclough.
- LLVM Compiler build fix.
+ Remove unneeded deprecated methods from MarkStack
+ https://bugs.webkit.org/show_bug.cgi?id=58853
- * runtime/MarkedBlock.cpp:
- (JSC::MarkedBlock::create):
+ Remove deprecated methods
-2011-02-10 Peter Varga <pvarga@webkit.org>
+ * heap/MarkStack.h:
- Reviewed by Csaba Osztrogonác.
+2011-04-19 Mark Rowe <mrowe@apple.com>
- Remove PCRE source from trunk
- https://bugs.webkit.org/show_bug.cgi?id=54188
+ Things work best when the Xcode project refers to the file at a path that exists.
- * 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 <paroga@webkit.org>
-
- 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 <jarred@sencha.com>
-
- 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 <paroga@webkit.org>
-
- 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 <mrowe@apple.com>
-
- Reviewed by Sam Weinig.
-
- <rdar://problem/8805364> 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 <barraclough@apple.com>
-
- 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 <ggaren@apple.com>
-
- 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 <abarth@webkit.org>
-
- Another attempt to fix the Qt Windows build.
-
- * config.h:
- * wtf/OSRandomSource.cpp:
- (WTF::randomValuesFromOS):
-
-2011-02-09 Adam Barth <abarth@webkit.org>
-
- Attempt to fix the Qt Windows build.
-
- * wtf/OSRandomSource.cpp:
- (WTF::randomValuesFromOS):
-
-2011-02-09 Adam Barth <abarth@webkit.org>
+2011-04-19 Renata Hodovan <reni@webkit.org>
Reviewed by Eric Seidel.
- Add WTF::cryptographicallyRandomNumber
- https://bugs.webkit.org/show_bug.cgi?id=54083
+ Move the alignment related macros in Vector.h to new Alignment.h.
+ https://bugs.webkit.org/show_bug.cgi?id=56000
- 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/Alignment.h: Added.
* 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 <ggaren@apple.com>
-
- 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 <ggaren@apple.com>
-
- 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.
+ * wtf/Vector.h:
-2011-02-09 Peter Varga <pvarga@webkit.org>
+2011-04-19 Oliver Hunt <oliver@apple.com>
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 <ggaren@apple.com>
-
- 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 <ggaren@apple.com>
-
- 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 <ggaren@apple.com>
-
- 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 <dbates@rim.com>
-
- 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 <kbalazs@webkit.org>
-
- Reviewed by Andreas Kling.
+ Remove DeprecatedPtr
+ https://bugs.webkit.org/show_bug.cgi?id=58718
- [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 <mitz@apple.com>
-
- Reviewed by Maciej Stachowiak.
-
- LLVM Compiler build fix.
+ Remove the class an all functions that still exist to support it.
+ * heap/MarkStack.h:
+ (JSC::MarkStack::append):
+ * runtime/JSValue.h:
* runtime/WriteBarrier.h:
- (JSC::WriteBarrier::WriteBarrier):
-2011-02-07 Ryosuke Niwa <rniwa@webkit.org>
+2011-04-19 Jungshik Shin <jshin@chromium.org>
- Reviewed by Darin Adler.
+ Reviewed by David Levin
- JSVariableObject::setRegisters should take PassOwnArrayPtr for registersArray.
- https://bugs.webkit.org/show_bug.cgi?id=53902
+ Add U+FEFF (Zero width no-break space) to CharacterNames.h.
+ It's added to the list of characters to treat as zero-width
+ in WebCore.
- * runtime/Arguments.h:
- (JSC::JSActivation::copyRegisters): Uses OwnArrayPtr<Register> instead of Register*.
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::copyGlobalsFrom): Ditto.
- * runtime/JSGlobalObject.h:
- (JSC::JSGlobalObject::setRegisters): Takes PassOwnArrayPtr<Register> instead of Register*
- for registerArray.
- * runtime/JSVariableObject.h:
- (JSC::JSVariableObject::copyRegisterArray): Returns PassOwnArrayPtr<Register> instead of Register*.
- (JSC::JSVariableObject::setRegisters): Takes PassOwnArrayPtr<Register> instead of Register*
- for registerArray.
-
-2011-02-07 Geoffrey Garen <ggaren@apple.com>
-
- Reviewed by Sam Weinig.
+ https://bugs.webkit.org/show_bug.cgi?id=48860
- 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 <ggaren@apple.com>
-
- 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 <bdakin@apple.com>
-
- 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 <darin@apple.com>
-
- Reviewed by Antti Koivisto.
+ * wtf/unicode/CharacterNames.h:
- Add built-in decoder for UTF-8 for improved performance
- https://bugs.webkit.org/show_bug.cgi?id=53898
+2011-04-19 Csaba Osztrogonác <ossy@webkit.org>
- * wtf/unicode/UnicodeMacrosFromICU.h: Added U8_MAX_LENGTH and
- U8_APPEND_UNSAFE. Also fixed header.
+ [Qt] REGRESSION(84176): http/tests/xmlhttprequest/event-listener-gc.html fails
+ https://bugs.webkit.org/show_bug.cgi?id=58871
-2011-02-07 Adam Roben <aroben@apple.com>
+ Unreviewed, rolling out r84176, r84178, r84186, r84212 and r84231.
+ http://trac.webkit.org/changeset/84176 (original patch)
+ http://trac.webkit.org/changeset/84178 (original patch - part 2)
+ http://trac.webkit.org/changeset/84186 (build fix)
+ http://trac.webkit.org/changeset/84212
+ http://trac.webkit.org/changeset/84231 (skip failing test)
- Delete precompiled headers whenever any .vsprops file changes
+ original bugs:
+ - https://bugs.webkit.org/show_bug.cgi?id=58718
+ - https://bugs.webkit.org/show_bug.cgi?id=58853
- 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 <http://webkit.org/b/53826> react-to-vsprops-changes.py doesn't force precompiled
- headers to be rebuilt, but should
+ * heap/MarkStack.h:
+ (JSC::MarkStack::deprecatedAppendValues):
+ (JSC::MarkStack::append):
+ (JSC::MarkStack::deprecatedAppend):
+ * runtime/JSValue.h:
+ * runtime/WriteBarrier.h:
+ (JSC::DeprecatedPtr::DeprecatedPtr):
+ (JSC::DeprecatedPtr::get):
+ (JSC::DeprecatedPtr::operator*):
+ (JSC::DeprecatedPtr::operator->):
+ (JSC::DeprecatedPtr::slot):
+ (JSC::DeprecatedPtr::operator UnspecifiedBoolType*):
+ (JSC::DeprecatedPtr::operator!):
+ (JSC::operator==):
- Reviewed by David Kilzer.
+2011-04-18 Oliver Hunt <oliver@apple.com>
- * 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).
+ Reviewed by Gavin Barraclough.
- * 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.
+ Remove unneeded deprecated methods from MarkStack
+ https://bugs.webkit.org/show_bug.cgi?id=58853
-2011-02-07 Antti Koivisto <antti@apple.com>
+ Remove deprecated methods
- Not reviewed.
-
- ASSERTS_DISABLED -> ASSERT_DISABLED
+ * heap/MarkStack.h:
- * wtf/BloomFilter.h:
+2011-04-18 Oliver Hunt <oliver@apple.com>
-2011-02-06 Ryosuke Niwa <rniwa@webkit.org>
+ Reviewed by Adam Roben.
- Unreviewed; speculative Qt build fix.
+ Off by one initialising repeat callframe
+ https://bugs.webkit.org/show_bug.cgi?id=58838
+ <rdar://problem/8756810>
- * JavaScriptCore.pro:
+ If the end of a callframe made for a repeat call landed on
+ a page boundary the following page may not have been committed
+ which means that the off by one could lead to a crash. However
+ it could only happen in this case and only on windows which is
+ why it was so hard to repro. Alas given the steps needed to
+ reproduce are such that it's not really possible to make a
+ testcase.
-2011-02-06 Ryosuke Niwa <rniwa@webkit.org>
+ This fix makes the code a little less squirrely by not trying
+ to avoid the unnecessary initialisation of |this|.
- Reviewed by Darin Adler.
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::prepareForRepeatCall):
- OwnArraryPtr.h uses deleteOwnedPtr but doesn’t include OwnPtrCommon.h
- https://bugs.webkit.org/show_bug.cgi?id=52867
+2011-04-18 Gavin Barraclough <barraclough@apple.com>
- Removed LOOSE_OWN_ARRAY_PTR and OwnArrayPtr<T>::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.
+ Reviewed by Geoff Garen.
- * 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
+ Bug 58829 - DFG JIT - Optimize add/sub immediate, multiply.
-2011-02-06 Antti Koivisto <antti@apple.com>
+ Add code generation for add/subtract instruction with immediate operands
+ (where a child is a constant), and don't bail to non-speculative if an
+ integer multiple results in a +0 result (only if it should be generating -0).
- Reviewed by Maciej Stachowiak.
+ * dfg/DFGSpeculativeJIT.cpp:
+ (JSC::DFG::SpeculativeJIT::compile):
+ * dfg/DFGSpeculativeJIT.h:
+ (JSC::DFG::SpeculativeJIT::isDoubleConstantWithInt32Value):
- 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.
+2011-04-18 Gavin Barraclough <barraclough@apple.com>
- * 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 <ggaren@apple.com>
-
- 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):
+ Reviewed by Geoff Garen.
-2011-02-04 David Kilzer <ddkilzer@apple.com>
+ Bug 58817 - DFG JIT - if speculative compilation fails, throw away code.
- BUILD FIX: REALLY remove the last vestiges of JSVALUE32!
+ If we detect a logical conflict, throw away generated code,
+ and only compile through the NonSpeculativeJIT.
- <rdar://problem/8957409> Remove last vestiges of JSVALUE32
- <http://webkit.org/b/53779>
+ * assembler/AbstractMacroAssembler.h:
+ (JSC::AbstractMacroAssembler::rewindToLabel):
+ * assembler/AssemblerBuffer.h:
+ (JSC::AssemblerBuffer::rewindToOffset):
+ * assembler/MacroAssemblerX86Common.h:
+ (JSC::MacroAssemblerX86Common::branchAdd32):
+ (JSC::MacroAssemblerX86Common::branchSub32):
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::rewindToLabel):
+ (JSC::X86Assembler::X86InstructionFormatter::rewindToLabel):
+ * dfg/DFGJITCompiler.cpp:
+ (JSC::DFG::JITCompiler::linkSpeculationChecks):
+ (JSC::DFG::JITCompiler::compileFunction):
+ * dfg/DFGNode.h:
+ * dfg/DFGNonSpeculativeJIT.cpp:
+ (JSC::DFG::NonSpeculativeJIT::compile):
+ * dfg/DFGSpeculativeJIT.cpp:
+ (JSC::DFG::SpeculativeJIT::compile):
+ * dfg/DFGSpeculativeJIT.h:
+ (JSC::DFG::SpeculationCheckIndexIterator::SpeculationCheckIndexIterator):
+
+2011-04-18 Oliver Hunt <oliver@apple.com>
- * DerivedSources.make: Removed dependency on
- JavaScriptCore.JSVALUE32.exp.
+ Reviewed by Gavin Barraclough.
-2011-02-04 David Kilzer <ddkilzer@apple.com>
+ Remove DeprecatedPtr
+ https://bugs.webkit.org/show_bug.cgi?id=58718
- <rdar://problem/8957409> Remove last vestiges of JSVALUE32
- <http://webkit.org/b/53779>
+ As simple as it sounds.
- Reviewed by Darin Adler.
+ * runtime/JSValue.h:
+ * runtime/WriteBarrier.h:
- Support for JSVALUE32 was originaly removed in r70111.
+2011-04-17 Cameron Zwarich <zwarich@apple.com>
- * 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.
+ Reviewed by Dan Bernstein.
-2011-02-04 David Kilzer <ddkilzer@apple.com>
+ JSC no longer builds with Clang due to -Woverloaded-virtual warning
+ https://bugs.webkit.org/show_bug.cgi?id=58760
- Use static_cast and other style cleanup in YarrInterpreter.cpp
- <http://webkit.org/b/53772>
+ Rename Structure's specificValue overload of put to putSpecificValue to avoid
+ Clang's warning for overloading a virtual function.
- Reviewed by John Sullivan.
+ * runtime/Structure.cpp:
+ (JSC::Structure::addPropertyTransition):
+ (JSC::Structure::addPropertyWithoutTransition):
+ (JSC::Structure::putSpecificValue):
+ * runtime/Structure.h:
- * 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-04-17 Patrick Gansterer <paroga@webkit.org>
-2011-02-04 Sheriff Bot <webkit.review.bot@gmail.com>
+ Reviewed by Adam Barth.
- 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
+ Remove WTF_PLATFORM_SGL
+ https://bugs.webkit.org/show_bug.cgi?id=58743
- It broke Windows builds (Requested by Ossy_ on #webkit).
+ WTF_PLATFORM_SGL and PLATFORM(SGL) are not used in the code anywhere.
- * 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 <jberlin@apple.com>
- Windows build fix. Unreviewed.
+2011-04-17 Patrick Gansterer <paroga@webkit.org>
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
-
-2011-02-04 Peter Varga <pvarga@webkit.org>
-
- Reviewed by Gavin Barraclough.
+ Reviewed by Adam Barth.
- Replace PCRE with Yarr in WebCore
- https://bugs.webkit.org/show_bug.cgi?id=53496
+ Rename PLATFORM(CA) to USE(CA)
+ https://bugs.webkit.org/show_bug.cgi?id=58742
- * 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 <loislo@chromium.org>
-
- 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 <ggaren@apple.com>
-
- 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 <ggaren@apple.com>
-
- 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 <koz@chromium.org>
-
- 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 <ggaren@apple.com>
-
- 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 <ggaren@apple.com>
-
- 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 <ggaren@apple.com>
-
- 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 <paroga@webkit.org>
-
- 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.
+2011-04-17 Patrick Gansterer <paroga@webkit.org>
- 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 <barraclough@apple.com>
-
- Windows build fix.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
-
-2011-02-02 Gavin Barraclough <barraclough@apple.com>
-
- oops, build fix!
-
- * wtf/Assertions.cpp:
-
-2011-02-02 Gavin Barraclough <barraclough@apple.com>
-
- 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.
+ Reviewed by Adam Barth.
- * JavaScriptCore.exp:
- * wtf/Assertions.cpp:
- * wtf/Assertions.h:
+ Rename PLATFORM(CG) to USE(CG)
+ https://bugs.webkit.org/show_bug.cgi?id=58729
-2011-02-02 Michael Saboff <msaboff@apple.com>
+ * wtf/Platform.h:
- Reviewed by Gavin Barraclough.
+2011-04-16 Patrick Gansterer <paroga@webkit.org>
- Improper backtrack of nested non-capturing greedy paren to prior paren
- https://bugs.webkit.org/show_bug.cgi?id=53261
+ Reviewed by Eric Seidel.
- 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.
+ Rename PLATFORM(CAIRO) to USE(CAIRO)
+ https://bugs.webkit.org/show_bug.cgi?id=55192
- * 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):
+ * wtf/Platform.h:
+ * wtf/gobject/GTypedefs.h:
-2011-02-02 Jeff Miller <jeffm@apple.com>
+2011-04-15 Sheriff Bot <webkit.review.bot@gmail.com>
- Reviewed by Darin Adler and Steve Falkenburg.
+ Unreviewed, rolling out r84067.
+ http://trac.webkit.org/changeset/84067
+ https://bugs.webkit.org/show_bug.cgi?id=58724
- Add DerivedSources.make to some Visual Studio projects
- https://bugs.webkit.org/show_bug.cgi?id=53607
+ qt build are failing. (Requested by loislo2 on #webkit).
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: Add DerivedSources.make.
+ * heap/MarkStack.h:
+ (JSC::MarkStack::append):
+ * runtime/JSValue.h:
+ * runtime/WriteBarrier.h:
+ (JSC::DeprecatedPtr::DeprecatedPtr):
+ (JSC::DeprecatedPtr::get):
+ (JSC::DeprecatedPtr::operator*):
+ (JSC::DeprecatedPtr::operator->):
+ (JSC::DeprecatedPtr::slot):
+ (JSC::DeprecatedPtr::operator UnspecifiedBoolType*):
+ (JSC::DeprecatedPtr::operator!):
+ (JSC::operator==):
-2011-02-02 Steve Lacey <sjl@chromium.org>
+2011-04-15 Shishir Agrawal <shishir@chromium.org>
- Reviewed by Eric Carlson.
+ Reviewed by James Robinson.
- Implement basic media statistics on media elements.
- https://bugs.webkit.org/show_bug.cgi?id=53322
+ Add a flag to guard Page Visibility API changes.
+ https://bugs.webkit.org/show_bug.cgi?id=58464
* Configurations/FeatureDefines.xcconfig:
-2011-02-02 Kevin Ollivier <kevino@theolliviers.com>
-
- [wx] Build fixes for wxWebKit.
-
- * wtf/wx/StringWx.cpp:
- (WTF::String::String):
-
-2011-02-01 Geoffrey Garen <ggaren@apple.com>
-
- 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 <sam@webkit.org>
-
- Fix windows clean build.
+2011-04-15 Gavin Barraclough <barraclough@apple.com>
- * DerivedSources.make:
-
-2011-02-02 Alejandro G. Castro <alex@igalia.com>
+ Errrk! - build fix from !x86-64.
- Reviewed by Martin Robinson.
+ * dfg/DFGNode.h:
- [GTK] Fix dist compilation
- https://bugs.webkit.org/show_bug.cgi?id=53579
+2011-04-15 David Levin <levin@chromium.org>
- * GNUmakefile.am: Added WriteBarrier.h to the sources, it was
- added in r77151
+ Revert of r83974.
-2011-02-01 Sheriff Bot <webkit.review.bot@gmail.com>
+ JavaScriptCore shouldn't depend on ../ThirdParty/gtest/xcode/gtest.xcodeproj
+ https://bugs.webkit.org/show_bug.cgi?id=58716
- 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 <sam@webkit.org>
-
- Fix Mac production builds.
-
- * JavaScriptCore.xcodeproj/project.pbxproj:
-
-2011-02-01 Sam Weinig <sam@webkit.org>
-
- Try to fix the windows build.
-
- * DerivedSources.make:
-
-2011-02-01 Patrick Gansterer <paroga@webkit.org>
-
- 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 <sam@webkit.org>
-
- Reviewed by Beth Dakin.
-
- Part 2 for <rdar://problem/8492788>
- Adopt WKScrollbarPainterController
-
- Use header detection to define scrollbar painting controller #define.
-
- * DerivedSources.make:
* JavaScriptCore.xcodeproj/project.pbxproj:
+ * wtf/tests/RunAllWtfTests.cpp: Removed.
+ * wtf/tests/StringTests.cpp: Removed.
-2011-02-01 Geoffrey Garen <ggaren@apple.com>
-
- 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 <ggaren@apple.com>
-
- 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 <oliver@apple.com>
-
- 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 <dbates@rim.com>
-
- 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 <dtapuska@rim.com>
+2011-04-15 Oliver Hunt <oliver@apple.com>
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 <darin@chromium.org>
-
- 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 <oliver@apple.com>
-
- Reviewed by Sam Weinig.
-
- Bogus callframe during stack unwinding
- https://bugs.webkit.org/show_bug.cgi?id=53454
+ Remove DeprecatedPtr
+ https://bugs.webkit.org/show_bug.cgi?id=58718
- 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.
+ As simple as it sounds.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::unwindCallFrame):
-
-2011-01-31 Michael Saboff <msaboff@apple.com>
-
- Reviewed by Geoffrey Garen.
+ * heap/MarkStack.h:
+ (JSC::MarkStack::append):
+ * runtime/JSValue.h:
+ * runtime/WriteBarrier.h:
- Potentially Unsafe HashSet of RuntimeObject* in RootObject definition
- https://bugs.webkit.org/show_bug.cgi?id=53271
+2011-04-15 Gavin Barraclough <barraclough@apple.com>
- Reapplying this change again.
- Changed isValid() to use .get() as a result of change r77151.
+ Reviewed by Oliver Hunt.
- Added new isValid() methods to check if a contained object in
- a WeakGCMap is valid when using an unchecked iterator.
+ Add a simple tool to gather statistics on whether functions
+ are completed through the new or old JIT.
- * runtime/WeakGCMap.h:
- (JSC::WeakGCMap::isValid):
+ * dfg/DFGNode.h:
+ * dfg/DFGNonSpeculativeJIT.cpp:
+ (JSC::DFG::NonSpeculativeJIT::compile):
+ * dfg/DFGSpeculativeJIT.cpp:
+ (JSC::DFG::SpeculativeJIT::compile):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompile):
-2011-01-31 Oliver Hunt <oliver@apple.com>
+2011-04-15 Oliver Hunt <oliver@apple.com>
- Convert markstack to a slot visitor API
- https://bugs.webkit.org/show_bug.cgi?id=53219
+ GC allocate Structure
+ https://bugs.webkit.org/show_bug.cgi?id=58483
- rolling r77098, r77099, r77100, r77109, and
- r77111 back in, along with a few more Qt fix attempts.
+ Rolling r83894 r83827 r83810 r83809 r83808 back in with
+ a workaround for the gcc bug seen by the gtk bots
+ * API/JSCallbackConstructor.cpp:
+ (JSC::JSCallbackConstructor::JSCallbackConstructor):
+ * API/JSCallbackConstructor.h:
+ (JSC::JSCallbackConstructor::createStructure):
+ * API/JSCallbackFunction.h:
+ (JSC::JSCallbackFunction::createStructure):
* API/JSCallbackObject.h:
- (JSC::JSCallbackObjectData::setPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren):
- (JSC::JSCallbackObject::setPrivateProperty):
+ (JSC::JSCallbackObject::createStructure):
* API/JSCallbackObjectFunctions.h:
- (JSC::::put):
- (JSC::::staticFunctionGetter):
- * API/JSObjectRef.cpp:
- (JSObjectMakeConstructor):
- (JSObjectSetPrivateProperty):
- * API/JSWeakObjectMapRefInternal.h:
+ (JSC::::JSCallbackObject):
+ * API/JSContextRef.cpp:
+ * JavaScriptCore.JSVALUE32_64only.exp:
+ * JavaScriptCore.JSVALUE64only.exp:
* JavaScriptCore.exp:
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::~CodeBlock):
+ (JSC::CodeBlock::markStructures):
(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):
+ (JSC::MethodCallLinkInfo::setSeen):
+ (JSC::GlobalResolveInfo::GlobalResolveInfo):
+ * bytecode/Instruction.h:
+ (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
+ (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
+ (JSC::PolymorphicAccessStructureList::markAggregate):
+ (JSC::Instruction::Instruction):
+ * bytecode/StructureStubInfo.cpp:
+ (JSC::StructureStubInfo::deref):
+ (JSC::StructureStubInfo::markAggregate):
+ * bytecode/StructureStubInfo.h:
+ (JSC::StructureStubInfo::initGetByIdSelf):
+ (JSC::StructureStubInfo::initGetByIdProto):
+ (JSC::StructureStubInfo::initGetByIdChain):
+ (JSC::StructureStubInfo::initPutByIdTransition):
+ (JSC::StructureStubInfo::initPutByIdReplace):
* debugger/DebuggerActivation.cpp:
(JSC::DebuggerActivation::DebuggerActivation):
- (JSC::DebuggerActivation::markChildren):
* debugger/DebuggerActivation.h:
- * debugger/DebuggerCallFrame.cpp:
- (JSC::DebuggerCallFrame::evaluate):
- * interpreter/CallFrame.h:
- (JSC::ExecState::exception):
+ (JSC::DebuggerActivation::createStructure):
+ * heap/Handle.h:
+ * heap/MarkStack.cpp:
+ (JSC::MarkStack::markChildren):
+ (JSC::MarkStack::drain):
+ * heap/MarkedBlock.cpp:
+ (JSC::MarkedBlock::MarkedBlock):
+ (JSC::MarkedBlock::sweep):
+ * heap/Strong.h:
+ (JSC::Strong::Strong):
+ (JSC::Strong::set):
* interpreter/Interpreter.cpp:
- (JSC::Interpreter::resolve):
- (JSC::Interpreter::resolveSkip):
(JSC::Interpreter::resolveGlobal):
(JSC::Interpreter::resolveGlobalDynamic):
- (JSC::Interpreter::resolveBaseAndProperty):
- (JSC::Interpreter::unwindCallFrame):
- (JSC::appendSourceToError):
- (JSC::Interpreter::execute):
+ (JSC::Interpreter::tryCachePutByID):
+ (JSC::Interpreter::uncachePutByID):
(JSC::Interpreter::tryCacheGetByID):
+ (JSC::Interpreter::uncacheGetByID):
(JSC::Interpreter::privateExecute):
+ * jit/JIT.h:
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::privateCompilePutByIdTransition):
+ (JSC::JIT::patchMethodCallProto):
+ (JSC::JIT::privateCompileGetByIdProto):
+ (JSC::JIT::privateCompileGetByIdSelfList):
+ (JSC::JIT::privateCompileGetByIdProtoList):
+ (JSC::JIT::privateCompileGetByIdChainList):
+ (JSC::JIT::privateCompileGetByIdChain):
+ * jit/JITPropertyAccess32_64.cpp:
+ (JSC::JIT::privateCompilePutByIdTransition):
+ (JSC::JIT::patchMethodCallProto):
+ (JSC::JIT::privateCompileGetByIdProto):
+ (JSC::JIT::privateCompileGetByIdSelfList):
+ (JSC::JIT::privateCompileGetByIdProtoList):
+ (JSC::JIT::privateCompileGetByIdChainList):
+ (JSC::JIT::privateCompileGetByIdChain):
* jit/JITStubs.cpp:
+ (JSC::JITThunks::tryCachePutByID):
(JSC::JITThunks::tryCacheGetByID):
(JSC::DEFINE_STUB_FUNCTION):
+ (JSC::getPolymorphicAccessStructureListSlot):
+ * jit/JSInterfaceJIT.h:
+ (JSC::JSInterfaceJIT::storePtrWithWriteBarrier):
* jsc.cpp:
- (GlobalObject::GlobalObject):
- * runtime/ArgList.cpp:
- (JSC::MarkedArgumentBuffer::markLists):
- * runtime/Arguments.cpp:
- (JSC::Arguments::markChildren):
- (JSC::Arguments::getOwnPropertySlot):
- (JSC::Arguments::getOwnPropertyDescriptor):
- (JSC::Arguments::put):
+ (cleanupGlobalData):
* runtime/Arguments.h:
- (JSC::Arguments::setActivation):
+ (JSC::Arguments::createStructure):
(JSC::Arguments::Arguments):
+ (JSC::JSActivation::copyRegisters):
* runtime/ArrayConstructor.cpp:
(JSC::ArrayConstructor::ArrayConstructor):
(JSC::constructArrayWithSizeQuirk):
+ * runtime/ArrayConstructor.h:
* runtime/ArrayPrototype.cpp:
+ (JSC::ArrayPrototype::ArrayPrototype):
(JSC::arrayProtoFuncSplice):
+ * runtime/ArrayPrototype.h:
+ (JSC::ArrayPrototype::createStructure):
* runtime/BatchedTransitionOptimizer.h:
(JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
- (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer):
* runtime/BooleanConstructor.cpp:
(JSC::BooleanConstructor::BooleanConstructor):
- (JSC::constructBoolean):
- (JSC::constructBooleanFromImmediateBoolean):
+ * runtime/BooleanConstructor.h:
+ * runtime/BooleanObject.cpp:
+ (JSC::BooleanObject::BooleanObject):
+ * runtime/BooleanObject.h:
+ (JSC::BooleanObject::createStructure):
* runtime/BooleanPrototype.cpp:
(JSC::BooleanPrototype::BooleanPrototype):
- * runtime/ConservativeSet.cpp:
- (JSC::ConservativeSet::grow):
- * runtime/ConservativeSet.h:
- (JSC::ConservativeSet::~ConservativeSet):
- (JSC::ConservativeSet::mark):
+ * runtime/BooleanPrototype.h:
* runtime/DateConstructor.cpp:
(JSC::DateConstructor::DateConstructor):
+ * runtime/DateConstructor.h:
* runtime/DateInstance.cpp:
(JSC::DateInstance::DateInstance):
+ * runtime/DateInstance.h:
+ (JSC::DateInstance::createStructure):
* runtime/DatePrototype.cpp:
- (JSC::dateProtoFuncSetTime):
- (JSC::setNewValueFromTimeArgs):
- (JSC::setNewValueFromDateArgs):
- (JSC::dateProtoFuncSetYear):
+ (JSC::DatePrototype::DatePrototype):
+ * runtime/DatePrototype.h:
+ (JSC::DatePrototype::createStructure):
+ * runtime/Error.cpp:
+ (JSC::StrictModeTypeErrorFunction::StrictModeTypeErrorFunction):
* runtime/ErrorConstructor.cpp:
(JSC::ErrorConstructor::ErrorConstructor):
+ * runtime/ErrorConstructor.h:
* runtime/ErrorInstance.cpp:
(JSC::ErrorInstance::ErrorInstance):
+ (JSC::ErrorInstance::create):
+ * runtime/ErrorInstance.h:
+ (JSC::ErrorInstance::createStructure):
* runtime/ErrorPrototype.cpp:
(JSC::ErrorPrototype::ErrorPrototype):
+ * runtime/ErrorPrototype.h:
+ * runtime/ExceptionHelpers.cpp:
+ (JSC::InterruptedExecutionError::InterruptedExecutionError):
+ (JSC::TerminatedExecutionError::TerminatedExecutionError):
+ * runtime/Executable.cpp:
+ * runtime/Executable.h:
+ (JSC::ExecutableBase::ExecutableBase):
+ (JSC::ExecutableBase::createStructure):
+ (JSC::NativeExecutable::createStructure):
+ (JSC::NativeExecutable::NativeExecutable):
+ (JSC::ScriptExecutable::ScriptExecutable):
+ (JSC::EvalExecutable::createStructure):
+ (JSC::ProgramExecutable::createStructure):
+ (JSC::FunctionExecutable::createStructure):
* runtime/FunctionConstructor.cpp:
(JSC::FunctionConstructor::FunctionConstructor):
+ * runtime/FunctionConstructor.h:
* runtime/FunctionPrototype.cpp:
(JSC::FunctionPrototype::FunctionPrototype):
- * runtime/GetterSetter.cpp:
- (JSC::GetterSetter::markChildren):
+ * runtime/FunctionPrototype.h:
+ (JSC::FunctionPrototype::createStructure):
* 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):
+ (JSC::GetterSetter::createStructure):
+ * runtime/InitializeThreading.cpp:
+ (JSC::initializeThreadingOnce):
* runtime/InternalFunction.cpp:
(JSC::InternalFunction::InternalFunction):
+ * runtime/InternalFunction.h:
+ (JSC::InternalFunction::createStructure):
* runtime/JSAPIValueWrapper.h:
- (JSC::JSAPIValueWrapper::value):
+ (JSC::JSAPIValueWrapper::createStructure):
(JSC::JSAPIValueWrapper::JSAPIValueWrapper):
* runtime/JSActivation.cpp:
- (JSC::JSActivation::markChildren):
- (JSC::JSActivation::put):
+ (JSC::JSActivation::JSActivation):
+ * runtime/JSActivation.h:
+ (JSC::JSActivation::createStructure):
* 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):
+ (JSC::JSArray::createStructure):
* runtime/JSByteArray.cpp:
(JSC::JSByteArray::JSByteArray):
+ (JSC::JSByteArray::createStructure):
+ * runtime/JSByteArray.h:
+ (JSC::JSByteArray::JSByteArray):
+ * runtime/JSCell.cpp:
+ (JSC::isZombie):
* runtime/JSCell.h:
- (JSC::JSCell::MarkStack::append):
- (JSC::JSCell::MarkStack::internalAppend):
- (JSC::JSCell::MarkStack::deprecatedAppend):
+ (JSC::JSCell::JSCell::JSCell):
+ (JSC::JSCell::JSCell::addressOfStructure):
+ (JSC::JSCell::JSCell::structure):
+ (JSC::JSCell::JSCell::markChildren):
+ (JSC::JSCell::JSValue::isZombie):
* runtime/JSFunction.cpp:
(JSC::JSFunction::JSFunction):
- (JSC::JSFunction::getOwnPropertySlot):
+ * runtime/JSFunction.h:
+ (JSC::JSFunction::createStructure):
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::storeVPtrs):
+ (JSC::JSGlobalData::JSGlobalData):
+ (JSC::JSGlobalData::clearBuiltinStructures):
+ (JSC::JSGlobalData::createLeaked):
* runtime/JSGlobalData.h:
+ (JSC::allocateGlobalHandle):
* runtime/JSGlobalObject.cpp:
- (JSC::markIfNeeded):
(JSC::JSGlobalObject::reset):
- (JSC::JSGlobalObject::resetPrototype):
(JSC::JSGlobalObject::markChildren):
+ (JSC::JSGlobalObject::copyGlobalsFrom):
* 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):
+ (JSC::JSGlobalObject::JSGlobalObject):
+ (JSC::JSGlobalObject::createStructure):
+ (JSC::Structure::prototypeChain):
+ (JSC::Structure::isValid):
+ (JSC::constructEmptyArray):
+ * runtime/JSNotAnObject.h:
+ (JSC::JSNotAnObject::JSNotAnObject):
+ (JSC::JSNotAnObject::createStructure):
* runtime/JSONObject.cpp:
- (JSC::Stringifier::Holder::object):
- (JSC::Stringifier::Holder::objectSlot):
- (JSC::Stringifier::markAggregate):
- (JSC::Stringifier::stringify):
- (JSC::Stringifier::Holder::appendNextProperty):
- (JSC::Walker::callReviver):
- (JSC::Walker::walk):
+ (JSC::JSONObject::JSONObject):
+ * runtime/JSONObject.h:
+ (JSC::JSONObject::createStructure):
* runtime/JSObject.cpp:
(JSC::JSObject::defineGetter):
(JSC::JSObject::defineSetter):
+ (JSC::JSObject::seal):
+ (JSC::JSObject::freeze):
+ (JSC::JSObject::preventExtensions):
(JSC::JSObject::removeDirect):
- (JSC::JSObject::putDirectFunction):
- (JSC::JSObject::putDirectFunctionWithoutTransition):
- (JSC::putDescriptor):
- (JSC::JSObject::defineOwnProperty):
+ (JSC::JSObject::createInheritorID):
* runtime/JSObject.h:
- (JSC::JSObject::getDirectOffset):
- (JSC::JSObject::putDirectOffset):
- (JSC::JSObject::putUndefinedAtDirectOffset):
- (JSC::JSObject::flattenDictionaryObject):
+ (JSC::JSObject::createStructure):
+ (JSC::JSObject::JSObject):
+ (JSC::JSNonFinalObject::createStructure):
+ (JSC::JSNonFinalObject::JSNonFinalObject):
+ (JSC::JSFinalObject::create):
+ (JSC::JSFinalObject::createStructure):
+ (JSC::JSFinalObject::JSFinalObject):
+ (JSC::constructEmptyObject):
+ (JSC::createEmptyObjectStructure):
+ (JSC::JSObject::~JSObject):
+ (JSC::JSObject::setPrototype):
+ (JSC::JSObject::setStructure):
+ (JSC::JSObject::inheritorID):
(JSC::JSObject::putDirectInternal):
- (JSC::JSObject::putDirect):
- (JSC::JSObject::putDirectFunction):
- (JSC::JSObject::putDirectWithoutTransition):
- (JSC::JSObject::putDirectFunctionWithoutTransition):
- (JSC::JSValue::putDirect):
- (JSC::JSObject::allocatePropertyStorageInline):
+ (JSC::JSObject::transitionTo):
(JSC::JSObject::markChildrenDirect):
+ * runtime/JSObjectWithGlobalObject.cpp:
+ (JSC::JSObjectWithGlobalObject::JSObjectWithGlobalObject):
+ * runtime/JSObjectWithGlobalObject.h:
+ (JSC::JSObjectWithGlobalObject::createStructure):
+ (JSC::JSObjectWithGlobalObject::JSObjectWithGlobalObject):
* runtime/JSPropertyNameIterator.cpp:
(JSC::JSPropertyNameIterator::JSPropertyNameIterator):
+ (JSC::JSPropertyNameIterator::create):
(JSC::JSPropertyNameIterator::get):
* runtime/JSPropertyNameIterator.h:
- * runtime/JSStaticScopeObject.cpp:
- (JSC::JSStaticScopeObject::markChildren):
- * runtime/JSString.cpp:
- (JSC::StringObject::create):
+ (JSC::JSPropertyNameIterator::createStructure):
+ (JSC::JSPropertyNameIterator::setCachedStructure):
+ (JSC::Structure::setEnumerationCache):
+ * runtime/JSStaticScopeObject.h:
+ (JSC::JSStaticScopeObject::JSStaticScopeObject):
+ (JSC::JSStaticScopeObject::createStructure):
+ * runtime/JSString.h:
+ (JSC::RopeBuilder::JSString):
+ (JSC::RopeBuilder::createStructure):
+ * runtime/JSType.h:
+ * runtime/JSTypeInfo.h:
+ (JSC::TypeInfo::TypeInfo):
* runtime/JSValue.h:
- * runtime/JSWrapperObject.cpp:
- (JSC::JSWrapperObject::markChildren):
+ * runtime/JSVariableObject.h:
+ (JSC::JSVariableObject::createStructure):
+ (JSC::JSVariableObject::JSVariableObject):
+ (JSC::JSVariableObject::copyRegisterArray):
* 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):
+ (JSC::JSWrapperObject::createStructure):
+ (JSC::JSWrapperObject::JSWrapperObject):
+ * runtime/JSZombie.cpp:
+ * runtime/JSZombie.h:
+ (JSC::JSZombie::JSZombie):
+ (JSC::JSZombie::createStructure):
* runtime/MathObject.cpp:
(JSC::MathObject::MathObject):
+ * runtime/MathObject.h:
+ (JSC::MathObject::createStructure):
* runtime/NativeErrorConstructor.cpp:
(JSC::NativeErrorConstructor::NativeErrorConstructor):
+ (JSC::NativeErrorConstructor::markChildren):
+ (JSC::constructWithNativeErrorConstructor):
+ * runtime/NativeErrorConstructor.h:
+ (JSC::NativeErrorConstructor::createStructure):
* runtime/NativeErrorPrototype.cpp:
(JSC::NativeErrorPrototype::NativeErrorPrototype):
+ * runtime/NativeErrorPrototype.h:
* runtime/NumberConstructor.cpp:
(JSC::NumberConstructor::NumberConstructor):
- (JSC::constructWithNumberConstructor):
+ * runtime/NumberConstructor.h:
+ (JSC::NumberConstructor::createStructure):
* runtime/NumberObject.cpp:
- (JSC::constructNumber):
+ (JSC::NumberObject::NumberObject):
+ * runtime/NumberObject.h:
+ (JSC::NumberObject::createStructure):
* runtime/NumberPrototype.cpp:
(JSC::NumberPrototype::NumberPrototype):
+ * runtime/NumberPrototype.h:
* 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/ObjectConstructor.h:
+ (JSC::ObjectConstructor::createStructure):
+ * runtime/ObjectPrototype.cpp:
+ (JSC::ObjectPrototype::ObjectPrototype):
+ * runtime/ObjectPrototype.h:
+ * runtime/PropertyMapHashTable.h:
+ (JSC::PropertyTable::PropertyTable):
* runtime/RegExpConstructor.cpp:
(JSC::RegExpConstructor::RegExpConstructor):
- * runtime/ScopeChain.cpp:
- (JSC::ScopeChainNode::print):
+ (JSC::RegExpMatchesArray::RegExpMatchesArray):
+ * runtime/RegExpConstructor.h:
+ (JSC::RegExpConstructor::createStructure):
+ * runtime/RegExpObject.cpp:
+ (JSC::RegExpObject::RegExpObject):
+ * runtime/RegExpObject.h:
+ (JSC::RegExpObject::createStructure):
+ * runtime/RegExpPrototype.cpp:
+ (JSC::RegExpPrototype::RegExpPrototype):
+ * runtime/RegExpPrototype.h:
* runtime/ScopeChain.h:
- (JSC::ScopeChainNode::~ScopeChainNode):
- (JSC::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):
+ (JSC::ScopeChainNode::ScopeChainNode):
+ (JSC::ScopeChainNode::createStructure):
+ * runtime/StrictEvalActivation.cpp:
+ (JSC::StrictEvalActivation::StrictEvalActivation):
* runtime/StringConstructor.cpp:
(JSC::StringConstructor::StringConstructor):
+ * runtime/StringConstructor.h:
* runtime/StringObject.cpp:
(JSC::StringObject::StringObject):
* runtime/StringObject.h:
+ (JSC::StringObject::createStructure):
+ * runtime/StringObjectThatMasqueradesAsUndefined.h:
+ (JSC::StringObjectThatMasqueradesAsUndefined::StringObjectThatMasqueradesAsUndefined):
+ (JSC::StringObjectThatMasqueradesAsUndefined::createStructure):
* runtime/StringPrototype.cpp:
(JSC::StringPrototype::StringPrototype):
+ * runtime/StringPrototype.h:
+ (JSC::StringPrototype::createStructure):
* runtime/Structure.cpp:
+ (JSC::StructureTransitionTable::remove):
+ (JSC::StructureTransitionTable::add):
(JSC::Structure::Structure):
+ (JSC::Structure::~Structure):
+ (JSC::Structure::materializePropertyMap):
+ (JSC::Structure::addPropertyTransitionToExistingStructure):
(JSC::Structure::addPropertyTransition):
+ (JSC::Structure::removePropertyTransition):
+ (JSC::Structure::changePrototypeTransition):
+ (JSC::Structure::despecifyFunctionTransition):
+ (JSC::Structure::getterSetterTransition):
(JSC::Structure::toDictionaryTransition):
+ (JSC::Structure::toCacheableDictionaryTransition):
+ (JSC::Structure::toUncacheableDictionaryTransition):
+ (JSC::Structure::sealTransition):
+ (JSC::Structure::freezeTransition):
+ (JSC::Structure::preventExtensionsTransition):
(JSC::Structure::flattenDictionaryStructure):
+ (JSC::Structure::copyPropertyTable):
+ (JSC::Structure::put):
+ (JSC::Structure::markChildren):
* runtime/Structure.h:
- (JSC::Structure::storedPrototype):
- (JSC::Structure::storedPrototypeSlot):
+ (JSC::Structure::create):
+ (JSC::Structure::setPrototypeWithoutTransition):
+ (JSC::Structure::createStructure):
+ (JSC::JSCell::createDummyStructure):
+ (JSC::StructureTransitionTable::keyForWeakGCMapFinalizer):
+ * runtime/StructureChain.cpp:
+ (JSC::StructureChain::StructureChain):
+ (JSC::StructureChain::markChildren):
+ * runtime/StructureChain.h:
+ (JSC::StructureChain::create):
+ (JSC::StructureChain::head):
+ (JSC::StructureChain::createStructure):
+ * runtime/StructureTransitionTable.h:
+ (JSC::StructureTransitionTable::WeakGCMapFinalizerCallback::finalizerContextFor):
+ (JSC::StructureTransitionTable::WeakGCMapFinalizerCallback::keyForFinalizer):
+ (JSC::StructureTransitionTable::~StructureTransitionTable):
+ (JSC::StructureTransitionTable::slot):
+ (JSC::StructureTransitionTable::setMap):
+ (JSC::StructureTransitionTable::singleTransition):
+ (JSC::StructureTransitionTable::clearSingleTransition):
+ (JSC::StructureTransitionTable::setSingleTransition):
* runtime/WeakGCMap.h:
- (JSC::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::DefaultWeakGCMapFinalizerCallback::finalizerContextFor):
+ (JSC::DefaultWeakGCMapFinalizerCallback::keyForFinalizer):
+ (JSC::WeakGCMap::contains):
+ (JSC::WeakGCMap::find):
+ (JSC::WeakGCMap::remove):
+ (JSC::WeakGCMap::add):
+ (JSC::WeakGCMap::set):
+ (JSC::WeakGCMap::finalize):
+ * runtime/WriteBarrier.h:
+ (JSC::writeBarrier):
(JSC::WriteBarrierBase::set):
- (JSC::WriteBarrierBase::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 <danw@gnome.org>
+ (JSC::WriteBarrierBase::setWithoutWriteBarrier):
- Reviewed by Gustavo Noronha Silva.
+2011-04-15 Fridrich Strba <fridrich.strba@bluewin.ch>
- wss (websockets ssl) support for gtk via new gio TLS support
- https://bugs.webkit.org/show_bug.cgi?id=50344
+ Reviewed by Gavin Barraclough.
- Add a GPollableOutputStream typedef for TLS WebSockets support
+ Correctly prefix symbols. Since gcc 4.5.0, Windows x64 symbols
+ are not prefixed by underscore anymore. This is consistent with
+ what MSVC does.
+ https://bugs.webkit.org/show_bug.cgi?id=58573
- * wtf/gobject/GTypedefs.h:
+ * jit/JITStubs.cpp:
-2011-01-31 Gavin Barraclough <barraclough@apple.com>
+2011-04-15 Gavin Barraclough <barraclough@apple.com>
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 <webkit.review.bot@gmail.com>
-
- 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 <ossy@webkit.org>
+ Bug 58705 - DFG JIT Add support for flow control (branch, jump).
+
+ Add support for control flow by breaking the CodeBlock up into multiple
+ basic blocks, generating code for each basic block in turn through the
+ speculative JIT & then the non-speculative JIT.
+
+ * dfg/DFGByteCodeParser.cpp:
+ (JSC::DFG::ByteCodeParser::setTemporary):
+ (JSC::DFG::ByteCodeParser::addToGraph):
+ (JSC::DFG::ByteCodeParser::parseBlock):
+ (JSC::DFG::ByteCodeParser::parse):
+ * dfg/DFGGraph.cpp:
+ (JSC::DFG::Graph::dump):
+ * dfg/DFGGraph.h:
+ (JSC::DFG::BasicBlock::BasicBlock):
+ (JSC::DFG::BasicBlock::getBytecodeOffset):
+ (JSC::DFG::Graph::blockIndexForBytecodeOffset):
+ * dfg/DFGJITCodeGenerator.h:
+ (JSC::DFG::JITCodeGenerator::JITCodeGenerator):
+ (JSC::DFG::JITCodeGenerator::addBranch):
+ (JSC::DFG::JITCodeGenerator::linkBranches):
+ (JSC::DFG::JITCodeGenerator::BranchRecord::BranchRecord):
+ * dfg/DFGNode.h:
+ (JSC::DFG::Node::Node):
+ (JSC::DFG::Node::isJump):
+ (JSC::DFG::Node::isBranch):
+ (JSC::DFG::Node::takenBytecodeOffset):
+ (JSC::DFG::Node::notTakenBytecodeOffset):
+ * dfg/DFGNonSpeculativeJIT.cpp:
+ (JSC::DFG::NonSpeculativeJIT::compile):
+ * dfg/DFGNonSpeculativeJIT.h:
+ * dfg/DFGSpeculativeJIT.cpp:
+ (JSC::DFG::SpeculativeJIT::compile):
+ * dfg/DFGSpeculativeJIT.h:
+
+2011-04-15 Gavin Barraclough <barraclough@apple.com>
- 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
+ Reviewed by Geoff Garen.
- Qt build is broken
+ Bug 58701 - DFG JIT - add GetLocal/SetLocal nodes
+
+ Use these for both access to arguments & local variables, adds ability
+ to set locals, such that values will persist between basic blocks.
+
+ * dfg/DFGByteCodeParser.cpp:
+ (JSC::DFG::ByteCodeParser::ByteCodeParser):
+ (JSC::DFG::ByteCodeParser::get):
+ (JSC::DFG::ByteCodeParser::set):
+ (JSC::DFG::ByteCodeParser::getVariable):
+ (JSC::DFG::ByteCodeParser::setVariable):
+ (JSC::DFG::ByteCodeParser::getArgument):
+ (JSC::DFG::ByteCodeParser::setArgument):
+ (JSC::DFG::ByteCodeParser::getThis):
+ (JSC::DFG::ByteCodeParser::setThis):
+ (JSC::DFG::ByteCodeParser::VariableRecord::VariableRecord):
+ (JSC::DFG::ByteCodeParser::parseBlock):
+ * dfg/DFGGraph.cpp:
+ (JSC::DFG::Graph::dump):
+ (JSC::DFG::Graph::derefChildren):
+ * dfg/DFGGraph.h:
+ (JSC::DFG::Graph::ref):
+ (JSC::DFG::Graph::deref):
+ * dfg/DFGNode.h:
+ (JSC::DFG::Node::hasLocal):
+ (JSC::DFG::Node::local):
+ * dfg/DFGNonSpeculativeJIT.cpp:
+ (JSC::DFG::NonSpeculativeJIT::compile):
+ * dfg/DFGSpeculativeJIT.cpp:
+ (JSC::DFG::SpeculativeJIT::compile):
+
+2011-04-15 Gavin Barraclough <barraclough@apple.com>
- * 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.
+ Reviewed by Sam Weinig.
-2011-01-30 Simon Fraser <simon.fraser@apple.com>
+ Bug 58696 - DFG JIT split handling of vars/temporaries
+
+ Presently all callee registers are treated as having single block scope,
+ since the DFG JIT can only compile single block functions. In order to
+ expand the JIT to support control flow we will need to change to retaining
+ locals (but not temporaries) across basic block boundaries.
+
+ * dfg/DFGByteCodeParser.cpp:
+ (JSC::DFG::ByteCodeParser::ByteCodeParser):
+ (JSC::DFG::ByteCodeParser::get):
+ (JSC::DFG::ByteCodeParser::set):
+ (JSC::DFG::ByteCodeParser::getVariable):
+ (JSC::DFG::ByteCodeParser::setVariable):
+ (JSC::DFG::ByteCodeParser::getTemporary):
+ (JSC::DFG::ByteCodeParser::setTemporary):
+ (JSC::DFG::ByteCodeParser::getArgument):
+ (JSC::DFG::ByteCodeParser::getInt32Constant):
+ (JSC::DFG::ByteCodeParser::getDoubleConstant):
+ (JSC::DFG::ByteCodeParser::getJSConstant):
+ (JSC::DFG::ByteCodeParser::constantUndefined):
+ (JSC::DFG::ByteCodeParser::constantNull):
+ (JSC::DFG::ByteCodeParser::one):
+ (JSC::DFG::ByteCodeParser::parseBlock):
+ (JSC::DFG::ByteCodeParser::parse):
+ (JSC::DFG::parse):
+ * dfg/DFGNode.h:
+ * dfg/DFGScoreBoard.h:
+ (JSC::DFG::ScoreBoard::ScoreBoard):
+ (JSC::DFG::ScoreBoard::~ScoreBoard):
+ (JSC::DFG::ScoreBoard::allocate):
+ (JSC::DFG::ScoreBoard::use):
+
+2011-04-15 Michael Saboff <msaboff@apple.com>
- Build fix the build fix. I assume Oliver meant m_cell, not m_value.
+ Reviewed by Oliver Hunt.
- * runtime/WriteBarrier.h:
- (JSC::WriteBarrierBase::clear):
+ globalObject moved to JSObjectWithGlobalObject.cpp inhibits inlining
+ https://bugs.webkit.org/show_bug.cgi?id=58677
-2011-01-30 Oliver Hunt <oliver@apple.com>
+ Moved JSObjectWithGlobalObject::globalObject() to
+ runtime/JSObjectWithGlobalObject.h to allow the compiler to inline
+ it for a performance benefit. An equivalent instance had been in
+ a header file before r60057.
- More Qt build fixes
+ * JavaScriptCore.exp:
+ * runtime/JSObjectWithGlobalObject.cpp:
+ * runtime/JSObjectWithGlobalObject.h:
+ (JSC::JSObjectWithGlobalObject::globalObject):
- * runtime/WriteBarrier.h:
- (JSC::WriteBarrierBase::clear):
+2011-04-14 Oliver Hunt <oliver@apple.com>
-2011-01-30 Oliver Hunt <oliver@apple.com>
+ Reviewed by Geoffrey Garen.
- Convert markstack to a slot visitor API
- https://bugs.webkit.org/show_bug.cgi?id=53219
+ Make JSNodeFilterCondition handle its lifetime correctly
+ https://bugs.webkit.org/show_bug.cgi?id=58622
- rolling r77006 and r77020 back in.
+ Add export
- * 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 <ggaren@apple.com>
+2011-04-14 Alexey Proskuryakov <ap@apple.com>
- Reviewed by Oliver Hunt.
+ Reviewed by Dan Bernstein.
- 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.
+ WebKit2: Password field input does not switch to ASCII-compatible source
+ https://bugs.webkit.org/show_bug.cgi?id=58583
+ <rdar://problem/9059651>
- * 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
- (<rdar://problem/8885843>).
+ * wtf/Platform.h: Removed WTF_USE_CARBON_SECURE_INPUT_MODE. It's now only used by Chromium,
+ and shouldn't be enabled on any other platforms, so there is no reason to make it
+ configurable via Platform.h.
- (JSC::Heap::allocate):
- (JSC::Heap::collectAllGarbage): Use the shared reset function.
+2011-04-15 Dmitry Lomov <dslomov@google.com>
- (JSC::Heap::reset):
- * runtime/Heap.h: Carved a new shared reset function out of the old
- collectAllGarbage.
-
-2011-01-30 Sheriff Bot <webkit.review.bot@gmail.com>
-
- 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 <leo.yang@torchmobile.com.cn>
-
- 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 <ikipou@gmail.com>
+ Reviewed by David Levin.
- Reviewed by Kenneth Rohde Christiansen.
+ Add a sample test case for GTest framework
+ https://bugs.webkit.org/show_bug.cgi?id=58509
- [Qt] JavaScriptCore does not link on Mac if building WebKit 2
- https://bugs.webkit.org/show_bug.cgi?id=53377
+ Add an example of GTest testcase, complete with a runner, to JavaScriptCore.
- The option "-whole-archive" is not availabe with the libtool of Mac OS X,
- instead, we can use "-all_load" on Mac.
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * wtf/tests/RunAllWtfTests.cpp: Added.
+ (main):
+ * wtf/tests/StringTests.cpp: Added.
- * JavaScriptCore.pri:
+2011-04-15 Anna Cavender <annacc@chromium.org>
-2011-01-29 Geoffrey Garen <ggaren@apple.com>
+ Reviewed by Eric Carlson.
- Sorry Leopard bot -- I committed a change by accident.
+ Renaming TRACK feature define to VIDEO_TRACK
+ https://bugs.webkit.org/show_bug.cgi?id=53556
- * JavaScriptCore.exp: You may have your symbols back now.
+ * Configurations/FeatureDefines.xcconfig:
-2011-01-29 Geoffrey Garen <ggaren@apple.com>
+2011-04-14 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Cameron Zwarich.
+ Rubber stamped by Geoffrey Garen.
- 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?".
+ Hide DFG_JIT_RESTRICTIONS behind ARITHMETIC_OP() macro, and rename
+ m_regressionGuard to m_parseFailed, such that it can be reused for
+ other failure cases.
- * 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.
+ * dfg/DFGByteCodeParser.cpp:
+ (JSC::DFG::ByteCodeParser::ByteCodeParser):
+ (JSC::DFG::ByteCodeParser::parse):
-2011-01-29 Geoffrey Garen <ggaren@apple.com>
+2011-04-14 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Cameron Zwarich.
-
- Simplified heap destruction
- https://bugs.webkit.org/show_bug.cgi?id=53392
+ Reviewed by Geoffrey Garen.
- * 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.
+ Bug 58620 - DFG JIT - loading of arguments should not be lazy
+
+ This optimization is overly simplistic. It only works because we never
+ write out definitions to arguments (since we currently only compile
+ single block functions). Revert this for now, we may want to reintroduce
+ something like this again in the future, but it will need to be aware
+ how to schedule definitions to arguments versus lazy loads that have not
+ yet been performed.
+
+ * dfg/DFGGenerationInfo.h:
+ (JSC::DFG::GenerationInfo::needsSpill):
+ * dfg/DFGGraph.cpp:
+ (JSC::DFG::Graph::dump):
+ * dfg/DFGGraph.h:
+ * dfg/DFGJITCodeGenerator.cpp:
+ (JSC::DFG::JITCodeGenerator::fillInteger):
+ (JSC::DFG::JITCodeGenerator::fillDouble):
+ (JSC::DFG::JITCodeGenerator::fillJSValue):
+ * dfg/DFGJITCodeGenerator.h:
+ (JSC::DFG::JITCodeGenerator::initConstantInfo):
+ * dfg/DFGJITCompiler.cpp:
+ (JSC::DFG::JITCompiler::fillNumericToDouble):
+ (JSC::DFG::JITCompiler::fillInt32ToInteger):
+ (JSC::DFG::JITCompiler::fillToJS):
+ * dfg/DFGNonSpeculativeJIT.cpp:
+ (JSC::DFG::NonSpeculativeJIT::isKnownInteger):
+ (JSC::DFG::NonSpeculativeJIT::isKnownNumeric):
+ (JSC::DFG::NonSpeculativeJIT::compile):
+ * dfg/DFGSpeculativeJIT.cpp:
+ (JSC::DFG::SpeculativeJIT::fillSpeculateIntInternal):
+ (JSC::DFG::SpeculativeJIT::fillSpeculateCell):
+ (JSC::DFG::SpeculativeJIT::compile):
+
+2011-04-14 Gavin Barraclough <barraclough@apple.com>
-2011-01-29 Geoffrey Garen <ggaren@apple.com>
+ Reviewed by Geoffrey Garen.
- Reviewed by Maciej Stachowiak.
+ Bug 58600 - DFG JIT bugs in ValueToInt, PutByVal
- 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.
+ The bug in PutByVal is that an operand is in JSValueOperand - when this
+ locks an integer into a register it will always retag the value without
+ checking if the register is already locked. This is a problem where the
+ value being stored by a PutByVal is the same as the subscript.
+ The subscript is locked into a register first, as a strict integer.
+ Locking the value results in the subscript being modified.
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::allocate): Updated for rename and returning a value
- rather than taking a value by reference.
+ The bug in ValueToInt related to the function of sillentFillAllRegisters.
+ The problem is that this method will restore all register values from
+ prior to the call, overwriting the result of the call out. Allow a
+ register to be passed to specifically be excluded from being preserved.
- * runtime/MarkedSpace.h: Code reuse is good.
+ * assembler/ARMAssembler.h:
+ (JSC::ARMAssembler::debugOffset):
+ * assembler/ARMv7Assembler.h:
+ (JSC::ARMv7Assembler::ARMInstructionFormatter::debugOffset):
+ * assembler/AbstractMacroAssembler.h:
+ (JSC::AbstractMacroAssembler::debugOffset):
+ * assembler/AssemblerBuffer.h:
+ (JSC::AssemblerBuffer::debugOffset):
+ * assembler/LinkBuffer.h:
+ (JSC::LinkBuffer::debugAddress):
+ * assembler/MIPSAssembler.h:
+ (JSC::MIPSAssembler::debugOffset):
+ * assembler/MacroAssemblerX86_64.h:
+ (JSC::MacroAssemblerX86_64::orPtr):
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::debugOffset):
+ (JSC::X86Assembler::X86InstructionFormatter::debugOffset):
+ * dfg/DFGByteCodeParser.cpp:
+ (JSC::DFG::ByteCodeParser::parse):
+ * dfg/DFGGenerationInfo.h:
+ * dfg/DFGJITCodeGenerator.cpp:
+ (JSC::DFG::JITCodeGenerator::fillJSValue):
+ * dfg/DFGJITCodeGenerator.h:
+ (JSC::DFG::JITCodeGenerator::isConstant):
+ * dfg/DFGJITCompiler.cpp:
+ (JSC::DFG::JITCompiler::compileFunction):
+ * dfg/DFGJITCompiler.h:
+ (JSC::DFG::JITCompiler::isConstant):
+ * dfg/DFGNonSpeculativeJIT.cpp:
+ (JSC::DFG::NonSpeculativeJIT::valueToNumber):
+ (JSC::DFG::NonSpeculativeJIT::valueToInt32):
+ (JSC::DFG::NonSpeculativeJIT::numberToInt32):
+ (JSC::DFG::NonSpeculativeJIT::isKnownInteger):
+ (JSC::DFG::NonSpeculativeJIT::isKnownNumeric):
+ (JSC::DFG::NonSpeculativeJIT::compile):
+ * dfg/DFGNonSpeculativeJIT.h:
+ (JSC::DFG::NonSpeculativeJIT::silentSpillGPR):
+ (JSC::DFG::NonSpeculativeJIT::silentSpillFPR):
+ (JSC::DFG::NonSpeculativeJIT::silentFillGPR):
+ (JSC::DFG::NonSpeculativeJIT::silentFillFPR):
+ (JSC::DFG::NonSpeculativeJIT::silentSpillAllRegisters):
+ (JSC::DFG::NonSpeculativeJIT::silentFillAllRegisters):
+ * dfg/DFGSpeculativeJIT.cpp:
+ (JSC::DFG::SpeculativeJIT::compile):
+
+2011-04-14 Geoffrey Garen <ggaren@apple.com>
- * wtf/Bitmap.h:
- (WTF::::testAndSet): Added, since this is the one thing Bitmap was missing
- which CollectorBitmap had. (Renamed from the less conventional "getset".)
+ Reviewed by Oliver Hunt.
- (WTF::::nextPossiblyUnset): Renamed and changed to return a value for
- clarity. It's all the same with inlining.
+ Drain the mark stack while marking weak handles, not after.
+ https://bugs.webkit.org/show_bug.cgi?id=58574
-2011-01-28 Geoffrey Garen <ggaren@apple.com>
+ Otherwise, items that would have caused more weak handle marking are
+ processed after all weak handle marking has finished, and referenced
+ weak handles get recycled.
- Reviewed by Maciej Stachowiak.
+ * heap/HandleHeap.cpp:
+ (JSC::HandleHeap::markWeakHandles): Removed looping from here, since we
+ want Heap::markRoots to be responsible for draining the mark stack.
- Some more Heap cleanup.
- https://bugs.webkit.org/show_bug.cgi?id=53357
+ * heap/Heap.cpp:
+ (JSC::Heap::markRoots): Moved looping to here, as explained above.
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Updated exported symbols.
+ For efficiency's sake, drain the mark stack before starting to mark weak
+ handles. Otherwise, items drained while marking weak handles may force
+ an extra trip through the weak handle list.
- * runtime/Heap.cpp:
- (JSC::Heap::reportExtraMemoryCostSlowCase): Renamed recordExtraCost to
- reportExtraMemoryCostSlowCase to match our naming conventions.
+ For correctness's sake, drain the mark stack each time through the weak
+ handle list. Otherwise, opaque roots that would make weak handles reachable
+ are not discovered until after weak handle marking is over.
- (JSC::Heap::capacity): Renamed size to capacity because this function
- returns the capacity of the heap, including unused portions.
+2011-04-14 Oliver Hunt <oliver@apple.com>
- * 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.
+ Reviewed by Geoffrey Garen.
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::capacity): Renamed size to capacity because this
- function returns the capacity of the heap, including unused portions.
+ Make protected object list in caches window reflect reality
+ https://bugs.webkit.org/show_bug.cgi?id=58565
- * runtime/MarkedSpace.h: Removed statistics and the Statistics class because
- the same information can be gotten just by calling size() and capacity().
+ Make sure the heap includes objects protected by Strong handles
+ in its list of protected objects.
- * runtime/MemoryStatistics.cpp:
- * runtime/MemoryStatistics.h: Ditto.
+ * heap/HandleHeap.h:
+ * heap/Heap.cpp:
+ (JSC::HandleHeap::protectedObjectTypeCounts):
-2011-01-29 Daniel Bates <dbates@rim.com>
+2011-04-14 Satish Sampath <satish@chromium.org>
- Reviewed by Eric Seidel.
+ Reviewed by Anders Carlsson.
- Move wince/mt19937ar.c to ThirdParty and make it a policy choice
- https://bugs.webkit.org/show_bug.cgi?id=53253
+ Don't emit RegExp tables for chromium where they are not used
+ https://bugs.webkit.org/show_bug.cgi?id=58544
- Make inclusion of MT19937 a policy decision.
+ * JavaScriptCore.gyp/JavaScriptCore.gyp:
+ * create_regex_tables: Added the "--notables" command line argument.
- 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.
+2011-04-13 Geoffrey Garen <ggaren@apple.com>
- * 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).
+ Try to fix ASSERTs seen on Windows bots.
+
+ * wtf/HashTable.h:
+ (WTF::hashTableSwap): Force MSVC to use the right version of swap.
-2011-01-29 Cameron Zwarich <zwarich@apple.com>
+2011-04-13 Ryuan Choi <ryuan.choi@samsung.com>
- Reviewed by David Kilzer.
+ Reviewed by Kenneth Rohde Christiansen.
- Bug 53374 - Remove uses of unsafe string functions in debugging code
- https://bugs.webkit.org/show_bug.cgi?id=53374
+ [CMAKE] Separate DerivedSources.
+ https://bugs.webkit.org/show_bug.cgi?id=58427
- * runtime/RegExp.cpp:
- (JSC::RegExp::printTraceData):
+ * CMakeLists.txt: Change DERIVED_SOURCES_DIR to DERIVED_SOURCES_JAVASCRIPTCORE_DIR.
-2011-01-29 Cameron Zwarich <zwarich@apple.com>
+2011-04-13 Geoffrey Garen <ggaren@apple.com>
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.
+ Switched DOM wrappers to use HashMap of Weak<T> instead of WeakGCMap<T>
+ https://bugs.webkit.org/show_bug.cgi?id=58482
+
+ This will allow wrappers to make individual decisions about their lifetimes.
-2011-01-29 Patrick Gansterer <paroga@webkit.org>
+ * heap/HandleHeap.h:
+ (JSC::HandleHeap::copyWeak): New function for copying a weak handle.
+ It's wasn't previously possible to perform this operation using HandleHeap
+ API because the HandleHeap doesn't expose its underlying Node structure.
- Reviewed by David Kilzer.
+ * heap/Local.h:
+ (JSC::::set):
+ * heap/Strong.h:
+ (JSC::Strong::set): Added ASSERTs to verify that dead objects are not
+ resurrected by placement into handles.
- Move CharacterNames.h into WTF directory
- https://bugs.webkit.org/show_bug.cgi?id=49618
+ (JSC::swap): Added a swap helper, so use of Strong<T> inside a hash table
+ is efficient.
- * 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:
+ * heap/Weak.h:
+ (JSC::Weak::Weak): Fixed a bug where copying a weak pointer would not
+ copy its weak callback and context.
-2011-01-28 Simon Fraser <simon.fraser@apple.com>
+ (JSC::Weak::operator=): Added an assignment operator, since the default
+ C++ assignment operator did the wrong thing.
- Reviewed by Gavin Barraclough.
+ (JSC::Weak::set): Added ASSERTs to verify that dead objects are not
+ resurrected by placement into handles.
- 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.
+ (JSC::swap): Added a swap helper, so use of Strong<T> inside a hash table
+ is efficient, and can be done without copying, which is illegal during
+ the handle finalization phase.
- * wtf/MathExtras.h:
- (clampToInteger):
- (clampToPositiveInteger):
+2011-04-13 Oliver Hunt <oliver@apple.com>
-2011-01-28 Sheriff Bot <webkit.review.bot@gmail.com>
+ Reviewed by Gavin Barraclough.
- 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
+ Make PropertyMapEntry use a WriteBarrier for specificValue
+ https://bugs.webkit.org/show_bug.cgi?id=58407
- "Broke Windows tests" (Requested by rniwa on #webkit).
+ Make PropertyMapEntry use a WriteBarrier for specificValue, and then
+ propagate the required JSGlobalData through all the methods it ends
+ up being needed.
- * 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/JSClassRef.cpp:
+ (OpaqueJSClass::prototype):
+ * API/JSContextRef.cpp:
* API/JSObjectRef.cpp:
- (JSObjectMakeConstructor):
- (JSObjectSetPrivateProperty):
- * API/JSWeakObjectMapRefInternal.h:
+ (JSObjectMake):
+ (JSObjectSetPrototype):
* 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):
+ (JSC::InternalFunction::name):
+ (JSC::InternalFunction::displayName):
* 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):
+ (JSC::JSActivation::getOwnPropertySlot):
* runtime/JSFunction.cpp:
- (JSC::JSFunction::JSFunction):
+ (JSC::JSFunction::name):
+ (JSC::JSFunction::displayName):
(JSC::JSFunction::getOwnPropertySlot):
- * runtime/JSGlobalData.h:
* runtime/JSGlobalObject.cpp:
- (JSC::markIfNeeded):
+ (JSC::JSGlobalObject::putWithAttributes):
(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::put):
+ (JSC::JSObject::deleteProperty):
(JSC::JSObject::defineGetter):
(JSC::JSObject::defineSetter):
+ (JSC::JSObject::lookupGetter):
+ (JSC::JSObject::lookupSetter):
+ (JSC::JSObject::getPropertySpecificValue):
+ (JSC::JSObject::getOwnPropertyNames):
+ (JSC::JSObject::seal):
+ (JSC::JSObject::freeze):
+ (JSC::JSObject::preventExtensions):
(JSC::JSObject::removeDirect):
- (JSC::JSObject::putDirectFunction):
- (JSC::JSObject::putDirectFunctionWithoutTransition):
- (JSC::putDescriptor):
+ (JSC::JSObject::getOwnPropertyDescriptor):
(JSC::JSObject::defineOwnProperty):
* runtime/JSObject.h:
- (JSC::JSObject::getDirectOffset):
- (JSC::JSObject::putDirectOffset):
- (JSC::JSObject::flattenDictionaryObject):
+ (JSC::JSObject::getDirect):
+ (JSC::JSObject::getDirectLocation):
+ (JSC::JSObject::isSealed):
+ (JSC::JSObject::isFrozen):
+ (JSC::JSObject::setPrototypeWithCycleCheck):
+ (JSC::JSObject::setPrototype):
+ (JSC::JSObject::inlineGetOwnPropertySlot):
(JSC::JSObject::putDirectInternal):
- (JSC::JSObject::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):
+ (JSC::objectConstructorCreate):
+ (JSC::objectConstructorSeal):
+ (JSC::objectConstructorFreeze):
+ (JSC::objectConstructorPreventExtensions):
+ (JSC::objectConstructorIsSealed):
+ (JSC::objectConstructorIsFrozen):
* 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/PropertyMapHashTable.h:
+ (JSC::PropertyMapEntry::PropertyMapEntry):
+ (JSC::PropertyTable::PropertyTable):
+ (JSC::PropertyTable::copy):
* runtime/Structure.cpp:
- (JSC::Structure::Structure):
+ (JSC::Structure::materializePropertyMap):
+ (JSC::Structure::despecifyDictionaryFunction):
(JSC::Structure::addPropertyTransition):
+ (JSC::Structure::removePropertyTransition):
+ (JSC::Structure::changePrototypeTransition):
+ (JSC::Structure::despecifyFunctionTransition):
+ (JSC::Structure::getterSetterTransition):
(JSC::Structure::toDictionaryTransition):
- (JSC::Structure::flattenDictionaryStructure):
+ (JSC::Structure::toCacheableDictionaryTransition):
+ (JSC::Structure::toUncacheableDictionaryTransition):
+ (JSC::Structure::sealTransition):
+ (JSC::Structure::freezeTransition):
+ (JSC::Structure::preventExtensionsTransition):
+ (JSC::Structure::isSealed):
+ (JSC::Structure::isFrozen):
+ (JSC::Structure::addPropertyWithoutTransition):
+ (JSC::Structure::removePropertyWithoutTransition):
+ (JSC::Structure::copyPropertyTable):
+ (JSC::Structure::get):
+ (JSC::Structure::despecifyFunction):
+ (JSC::Structure::despecifyAllFunctions):
+ (JSC::Structure::put):
+ (JSC::Structure::getPropertyNames):
* runtime/Structure.h:
- (JSC::Structure::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 <barraclough@apple.com>
+ (JSC::Structure::get):
+ (JSC::Structure::materializePropertyMapIfNecessary):
- Reviewed by Geoff Garen.
+2011-04-13 Paul Knight <pknight@apple.com>
- 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 <oliver@apple.com>
+ Reviewed by Gavin Barraclough.
- Reviewed by Geoffrey Garen.
+ BACKTRACE() macro should check for Debug configuration in macro, not WTFReportBacktrace definition
+ https://bugs.webkit.org/show_bug.cgi?id=58405
- Convert markstack to a slot visitor API
- https://bugs.webkit.org/show_bug.cgi?id=53219
+ The BACKTRACE() macro requires JavaScriptCore be built with a Debug
+ configuration in order for it to be enabled. Move the NDEBUG check to
+ the header so it will be enabled when the calling framework or
+ application is built with a Debug configuration, similar to how
+ ASSERT() and friends work.
- Move the MarkStack over to a slot based marking API.
+ * wtf/Assertions.cpp:
+ * wtf/Assertions.h:
- 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.
+2011-04-12 Ben Taylor <bentaylor.solx86@gmail.com>
- The change over to this model has produced a large amount of
- code changes, but they are mostly mechanical (forwarding JSGlobalData,
- etc).
+ Reviewed by Alexey Proskuryakov.
- * 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==):
+ https://bugs.webkit.org/show_bug.cgi?id=58131
-2011-01-28 Adam Roben <aroben@apple.com>
+ Provide a workaround for an obscure Studio 12 compiler bug, which
+ couldn't call src->~T() on a const T *src.
- Chromium build fix after r76967
+ * wtf/Vector.h:
- * wtf/ThreadingPrimitives.h: Use OS(WINDOWS) instead of PLATFORM(WIN), to match other
- similar macros in this file.
+2011-04-12 Gavin Barraclough <barraclough@apple.com>
-2011-01-28 Michael Saboff <msaboff@apple.com>
+ Reviewed by Oliver Hunt.
- Potentially Unsafe HashSet of RuntimeObject* in RootObject definition
- https://bugs.webkit.org/show_bug.cgi?id=53271
+ https://bugs.webkit.org/show_bug.cgi?id=58395
+ Exceptions thrown from property getters called from Array prototype functions can be missed
- Reapplying this this change. No change from prior patch in
- JavaScriptCore.
+ This is caught by an ASSERT in the top of Interpreter::executeCall.
+ Check for exceptions after accessing properties that could be getters.
- Added new isValid() methods to check if a contained object in
- a WeakGCMap is valid when using an unchecked iterator.
+ * runtime/ArrayPrototype.cpp:
+ (JSC::arrayProtoFuncSort):
+ (JSC::arrayProtoFuncFilter):
+ (JSC::arrayProtoFuncMap):
+ (JSC::arrayProtoFuncEvery):
+ (JSC::arrayProtoFuncForEach):
+ (JSC::arrayProtoFuncSome):
+ (JSC::arrayProtoFuncReduce):
+ (JSC::arrayProtoFuncReduceRight):
+ - Add exception checks.
- * runtime/WeakGCMap.h:
- (JSC::WeakGCMap::isValid):
+2011-04-12 Oliver Hunt <oliver@apple.com>
-2011-01-27 Adam Roben <aroben@apple.com>
+ Reviewed by Geoffrey Garen.
- Extract code to convert a WTF absolute time to a Win32 wait interval into a separate
- function
+ Make API callback objects use weak handles to run their finalizers
+ https://bugs.webkit.org/show_bug.cgi?id=58389
- Fixes <http://webkit.org/b/53208> <rdar://problem/8922490> BinarySemaphore should wrap a
- Win32 event
+ Make the API object's private data struct act as a finalizer for
+ an api object if the callback object has a API defined finalizer.
- Reviewed by Dave Hyatt.
+ * API/JSCallbackObject.cpp:
+ (JSC::JSCallbackObjectData::finalize):
+ * API/JSCallbackObject.h:
+ * API/JSCallbackObjectFunctions.h:
+ (JSC::::init):
+ * heap/Handle.h:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Export the new function.
+2011-04-12 Geoffrey Garen <ggaren@apple.com>
- * wtf/ThreadingPrimitives.h: Declare the new function.
+ Reviewed by Geoffrey Garen.
- * wtf/ThreadingWin.cpp:
- (WTF::ThreadCondition::timedWait): Moved code to convert the absolute time to a wait
- interval from here...
- (WTF::absoluteTimeToWaitTimeoutInterval): ...to here.
+ Cleaned up hash traits, and added hash traits for handles
+ https://bugs.webkit.org/show_bug.cgi?id=58381
-2011-01-28 Sam Weinig <sam@webkit.org>
+ * heap/Handle.h:
+ (JSC::HandleBase::swap):
+ (JSC::Handle::Handle):
+ (JSC::Handle::swap): Implemented swap, so we can rehash efficiently, and
+ without creating new handles (which is not allowed during handle finalization).
- Reviewed by Maciej Stachowiak.
+ * heap/Strong.h:
+ (JSC::Strong::swap): Use new SimpleClassHashTraits to avoid duplication.
- Add basic rubber banding support
- <rdar://problem/8219429>
- https://bugs.webkit.org/show_bug.cgi?id=53277
+ * heap/Weak.h:
+ (JSC::Weak::isHashTableDeletedValue):
+ (JSC::Weak::Weak):
+ (JSC::Weak::swap):
+ (JSC::Weak::hashTableDeletedValue): Ditto.
- * wtf/Platform.h: Add ENABLE for rubber banding.
+ * wtf/HashTraits.h:
+ (WTF::SimpleClassHashTraits::constructDeletedValue):
+ (WTF::SimpleClassHashTraits::isDeletedValue): Added SimpleClassHashTraits,
+ which are analogous to SimpleClassVectorTraits, since they are used in a
+ bunch of places.
-2011-01-28 Sheriff Bot <webkit.review.bot@gmail.com>
+ * wtf/RetainPtr.h: Use new SimpleClassHashTraits to avoid duplication.
- Unreviewed, rolling out r76893.
- http://trac.webkit.org/changeset/76893
- https://bugs.webkit.org/show_bug.cgi?id=53287
+ * wtf/text/StringHash.h: Use new SimpleClassHashTraits to avoid duplication.
- It made some tests crash on GTK and Qt debug bots (Requested
- by Ossy on #webkit).
+2011-04-12 Geoffrey Garen <ggaren@apple.com>
- * runtime/WeakGCMap.h:
+ Reviewed by Sam Weinig.
-2011-01-27 Adam Barth <abarth@webkit.org>
+ Cleaned up some Vector traits, and added missing Vector traits for handles
+ https://bugs.webkit.org/show_bug.cgi?id=58372
- Reviewed by Eric Seidel.
+ * heap/Local.h: Inherit from SimpleClassVectorTraits to avoid duplication.
- Add WTFString method to compare equality with Vector<UChar>
- https://bugs.webkit.org/show_bug.cgi?id=53266
+ * heap/Strong.h: Ditto.
- I'm planning to use this method in the new XSS filter implementation,
- but it seems generally useful.
+ * heap/Weak.h: Ditto.
- * wtf/text/StringImpl.h:
- (WTF::equalIgnoringNullity):
- * wtf/text/WTFString.h:
- (WTF::equalIgnoringNullity):
+ * parser/JSParser.cpp: Fixed a traits error. No test case because this
+ particular trait is not currently exercised by the parser.
-2011-01-27 Michael Saboff <msaboff@apple.com>
+ * runtime/UString.h: No need to override canInitializeWithMemset, since
+ our base class sets it to true.
- Potentially Unsafe HashSet of RuntimeObject* in RootObject definition
- https://bugs.webkit.org/show_bug.cgi?id=53271
+ * wtf/VectorTraits.h: Inherit from VectorTraitsBase to avoid duplication.
- Added new isValid() methods to check if a contained object in
- a WeakGCMap is valid when using an unchecked iterator.
+ * wtf/text/WTFString.h: No need to override canInitializeWithMemset, since
+ our base class sets it to true.
- * runtime/WeakGCMap.h:
- (JSC::WeakGCMap::isValid):
+2011-04-12 Thouraya ANDOLSI <thouraya.andolsi@st.com>
-2011-01-26 Sam Weinig <sam@webkit.org>
+ Reviewed by Eric Seidel.
- Reviewed by Maciej Stachowiak.
+ [Qt] Enable JIT build for SH4 platforms.
+ https://bugs.webkit.org/show_bug.cgi?id=58317
+ enable JIT build for QT backend for SH4 platforms.
- Add events to represent the start/end of a gesture scroll
- https://bugs.webkit.org/show_bug.cgi?id=53215
+ * JavaScriptCore.pro:
+ * wtf/Platform.h:
- * wtf/Platform.h: Add ENABLE for gesture events.
+2011-04-11 Ben Taylor <bentaylor.solx86@gmail.com>
-2011-01-26 Yael Aharon <yael.aharon@nokia.com>
+ Reviewed by Alexey Proskuryakov.
- Reviewed by Laszlo Gombos.
+ https://bugs.webkit.org/show_bug.cgi?id=58289
- [Qt][Symbian] Fix --minimal build
- https://bugs.webkit.org/show_bug.cgi?id=52839
+ Fix compilation on Solaris/Studio 12 C++ in wtf/FastMalloc.cpp,
+ WTF::TCMalloc_PageHeap::runScavengerThread(void*) expected to return a value.
- Move definition of USE_SYSTEM_MALLOC out of pri file.
- Put it in platform.h instead.
+ * wtf/FastMalloc.cpp:
+ (WTF::TCMalloc_PageHeap::runScavengerThread):
- * wtf/Platform.h:
- * wtf/TCSystemAlloc.cpp:
- * wtf/wtf.pri:
+2011-04-11 Mark Rowe <mrowe@apple.com>
-2011-01-26 Patrick Gansterer <paroga@webkit.org>
+ Fix the build.
- Reviewed by Andreas Kling.
+ * JavaScriptCore.xcodeproj/project.pbxproj: Headers used outside of JavaScriptCore need to be marked as private.
- [WINCE] Add JIT support to build system
- https://bugs.webkit.org/show_bug.cgi?id=53079
+2011-04-11 Anna Cavender <annacc@chromium.org>
- * CMakeListsWinCE.txt:
+ Reviewed by Eric Carlson.
-2011-01-25 Adam Roben <aroben@apple.com>
+ Setup ENABLE(TRACK) feature define
+ https://bugs.webkit.org/show_bug.cgi?id=53556
- Windows Production build fix
- Reviewed by Steve Falkenburg.
+ * Configurations/FeatureDefines.xcconfig:
- * 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-04-11 Geoffrey Garen <ggaren@apple.com>
-2011-01-25 Steve Falkenburg <sfalken@apple.com>
+ Try to fix a few builds.
+
+ Updated a few more build configurations for file moves.
- Rubber-stamped by Adam Roben.
+ * CMakeListsWinCE.txt:
- Windows production build fix.
- Use correct environment variable escaping
+2011-04-11 Gavin Barraclough <barraclough@apple.com>
- * JavaScriptCore.vcproj/JavaScriptCore.make:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
+ Reviewed by Sam Weinig.
-2011-01-25 Oliver Hunt <oliver@apple.com>
+ Bug 58263 - Use EncodedValueDescriptor on both JSVALUE32_64, JSVALUE64
- Reviewed by Gavin Barraclough.
+ The JSJITInterface already uses EncodedValueDescriptor to access the tag/payload
+ separately on JSVALUE64, even though EncodedValueDescriptor is not used in
+ JSVALUE64's implementation of JSValue. Remove the separate definition for m_ptr
+ on X86_64. Using the union allows us to remove a layer of makeImmediate()/
+ immedaiteValue() methods.
- JSON.stringify processing time exponentially grows with size of object
- https://bugs.webkit.org/show_bug.cgi?id=51922
+ * dfg/DFGNonSpeculativeJIT.cpp:
+ (JSC::DFG::NonSpeculativeJIT::compile):
+ * dfg/DFGSpeculativeJIT.cpp:
+ (JSC::DFG::SpeculativeJIT::compile):
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::emitTagAsBoolImmediate):
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::emit_op_not):
+ (JSC::JIT::emit_op_jeq_null):
+ (JSC::JIT::emit_op_jneq_null):
+ (JSC::JIT::emit_op_get_pnames):
+ (JSC::JIT::emit_op_eq_null):
+ (JSC::JIT::emit_op_neq_null):
+ (JSC::JIT::emitSlow_op_not):
+ * runtime/JSCell.h:
+ * runtime/JSValue.h:
+ * runtime/JSValueInlineMethods.h:
+ (JSC::JSValue::encode):
+ (JSC::JSValue::decode):
+ (JSC::JSValue::operator==):
+ (JSC::JSValue::operator!=):
+ (JSC::JSValue::JSValue):
+ (JSC::JSValue::operator bool):
+ (JSC::JSValue::asInt32):
+ (JSC::JSValue::isUndefinedOrNull):
+ (JSC::JSValue::isBoolean):
+ (JSC::JSValue::isCell):
+ (JSC::JSValue::isInt32):
+ (JSC::JSValue::asDouble):
+ (JSC::JSValue::isNumber):
+ (JSC::JSValue::asCell):
- 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.
+2011-04-11 Geoffrey Garen <ggaren@apple.com>
- * runtime/JSONObject.cpp:
- (JSC::Stringifier::appendQuotedString):
+ Try to fix a few builds.
+
+ Updated a few more build configurations for file moves.
-2011-01-25 Antti Koivisto <antti@apple.com>
+ * CMakeListsEfl.txt:
+ * wscript:
- Not reviewed.
-
- Try to fix windows build.
+2011-04-11 Geoffrey Garen <ggaren@apple.com>
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ Build fix: Updated a file name.
-2011-01-25 Antti Koivisto <antti@apple.com>
+ * CMakeLists.txt:
- Reviewed by Oliver Hunt.
+2011-04-11 Geoffrey Garen <ggaren@apple.com>
- 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.
+ Rubber-stamped by Sam Weinig.
+
+ Moved remaining heap implementation files to the heap folder.
+ * Android.mk:
* CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.exp:
+ * GNUmakefile.list.am:
* 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 <mamendonca@rim.com>
-
- 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 <cmarrin@apple.com>
-
- 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 <aroben@apple.com>
-
- Windows Production build fix
-
- * JavaScriptCore.vcproj/JavaScriptCore.make: Added a missing "set".
-
-2011-01-25 Patrick Gansterer <paroga@webkit.org>
-
- 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 <aroben@apple.com>
-
- Windows Production build fix
+ * heap/ConservativeRoots.cpp: Copied from runtime/ConservativeSet.cpp.
+ * heap/ConservativeRoots.h: Copied from runtime/ConservativeSet.h.
+ * heap/Handle.h:
+ * heap/Heap.cpp:
+ * heap/MachineStackMarker.cpp: Copied from runtime/MachineStackMarker.cpp.
+ * heap/MachineStackMarker.h: Copied from runtime/MachineStackMarker.h.
+ * heap/MarkStack.cpp: Copied from runtime/MarkStack.cpp.
+ * heap/MarkStack.h: Copied from runtime/MarkStack.h.
+ * heap/MarkStackPosix.cpp: Copied from runtime/MarkStackPosix.cpp.
+ * heap/MarkStackSymbian.cpp: Copied from runtime/MarkStackSymbian.cpp.
+ * heap/MarkStackWin.cpp: Copied from runtime/MarkStackWin.cpp.
+ * heap/MarkedBlock.cpp: Copied from runtime/MarkedBlock.cpp.
+ * heap/MarkedBlock.h: Copied from runtime/MarkedBlock.h.
+ * heap/MarkedSpace.cpp: Copied from runtime/MarkedSpace.cpp.
+ * heap/MarkedSpace.h: Copied from runtime/MarkedSpace.h.
+ * interpreter/RegisterFile.cpp:
+ * runtime/ConservativeSet.cpp: Removed.
+ * runtime/ConservativeSet.h: Removed.
+ * runtime/MachineStackMarker.cpp: Removed.
+ * runtime/MachineStackMarker.h: Removed.
+ * runtime/MarkStack.cpp: Removed.
+ * runtime/MarkStack.h: Removed.
+ * runtime/MarkStackPosix.cpp: Removed.
+ * runtime/MarkStackSymbian.cpp: Removed.
+ * runtime/MarkStackWin.cpp: Removed.
+ * runtime/MarkedBlock.cpp: Removed.
+ * runtime/MarkedBlock.h: Removed.
+ * runtime/MarkedSpace.cpp: Removed.
+ * runtime/MarkedSpace.h: Removed.
+
+2011-04-11 Gavin Barraclough <barraclough@apple.com>
- * JavaScriptCore.vcproj/JavaScriptCore.make: Update for move of JavaScriptCore into Source.
+ Windows build fix.
-2011-01-24 Peter Varga <pvarga@webkit.org>
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- Reviewed by Oliver Hunt.
+2011-04-09 Gavin Barraclough <barraclough@apple.com>
- Optimize regex patterns which contain empty alternatives
- https://bugs.webkit.org/show_bug.cgi?id=51395
+ Reviewed by Sam Weinig.
- Eliminate the empty alternatives from the regex pattern and convert it to do
- the matching in an easier way.
+ Bug 58198 - Clean up JSValue implementation for JSVALUE64
- * yarr/YarrPattern.cpp:
- (JSC::Yarr::YarrPatternConstructor::atomParenthesesEnd):
+ Remove JSNumberCell, JSImmediate, unify some methods between JSVALUE32_64/JSVALUE64
-2011-01-24 Andras Becsi <abecsi@webkit.org>
+ JSNumberCell.h largely just contained the constructors for JSValue on JSVALUE64,
+ which should not have been here. JSImmediate mostly contained uncalled methods,
+ along with the internal implementation of the JSValue constructors split unnecessarily
+ across a number of layers of function calls. These could largely be merged back
+ together. Many methods and constructors from JSVALUE32_64 and JSVALUE64 can by unified.
- Reviewed by Csaba Osztrogonác.
+ The .cpp files were empty.
- [Qt] Move project files into Source
- https://bugs.webkit.org/show_bug.cgi?id=52891
+ Moving all these methods into JSValue.h seems to be a repro measurable regression, so
+ I have kept these methods in a separate JSValueInlineMethods.h. Adding the 64-bit tag
+ values as static const members of JSValue also measures as a repro regression, so I
+ have made these #defines.
- * JavaScriptCore.pri:
+ * Android.mk:
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * JavaScriptCore.exp:
+ * JavaScriptCore.gypi:
* JavaScriptCore.pro:
- * jsc.pro:
-
-2011-01-23 Mark Rowe <mrowe@apple.com>
-
- 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.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
+ - Removed JSImmediate.h, JSNumberCell.h.
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::emitLoad):
+ - Removed class JSImmediate.
+ * dfg/DFGNonSpeculativeJIT.cpp:
+ (JSC::DFG::NonSpeculativeJIT::compile):
+ - Removed class JSImmediate.
+ * dfg/DFGSpeculativeJIT.cpp:
+ (JSC::DFG::SpeculativeJIT::compile):
+ - Removed class JSImmediate.
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::compileBinaryArithOpSlowCase):
+ - Removed class JSImmediate.
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::emitJumpIfJSCell):
+ (JSC::JIT::emitJumpIfNotJSCell):
+ (JSC::JIT::emitJumpIfImmediateInteger):
+ (JSC::JIT::emitJumpIfNotImmediateInteger):
+ (JSC::JIT::emitFastArithDeTagImmediate):
+ (JSC::JIT::emitFastArithDeTagImmediateJumpIfZero):
+ (JSC::JIT::emitFastArithReTagImmediate):
+ (JSC::JIT::emitTagAsBoolImmediate):
+ - Removed class JSImmediate.
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::emit_op_not):
+ (JSC::JIT::emit_op_jeq_null):
+ (JSC::JIT::emit_op_jneq_null):
+ (JSC::JIT::emit_op_get_pnames):
+ (JSC::JIT::emit_op_eq_null):
+ (JSC::JIT::emit_op_neq_null):
+ (JSC::JIT::emitSlow_op_not):
+ - Removed class JSImmediate.
+ * jit/JSInterfaceJIT.h:
+ - Removed class JSImmediate.
+ * runtime/JSCell.h:
+ - Removed JSImmediate.h, JSNumberCell.h.
+ * runtime/JSImmediate.cpp: Removed.
+ * runtime/JSImmediate.h: Removed.
+ * runtime/JSNumberCell.cpp: Removed.
+ * runtime/JSNumberCell.h: Removed.
+ - Removed.
+ * runtime/JSObject.h:
+ - Removed JSImmediate.h, JSNumberCell.h.
+ * runtime/JSString.h:
+ - Removed JSImmediate.h, JSNumberCell.h.
+ * runtime/JSValue.h:
+ - Added tags for JSVALUE64, moved out some JSVALUE32_64 methods, unified with JSVALUE64.
+ * runtime/JSValueInlineMethods.h: Added.
+ (JSC::JSValue::toInt32):
+ (JSC::JSValue::toUInt32):
+ (JSC::JSValue::isUInt32):
+ (JSC::JSValue::asUInt32):
+ (JSC::JSValue::uncheckedGetNumber):
+ (JSC::JSValue::toJSNumber):
+ (JSC::jsNaN):
+ (JSC::JSValue::getNumber):
+ (JSC::JSValue::getBoolean):
+ (JSC::JSValue::JSValue):
+ (JSC::JSValue::encode):
+ (JSC::JSValue::decode):
+ (JSC::JSValue::operator bool):
+ (JSC::JSValue::operator==):
+ (JSC::JSValue::operator!=):
+ (JSC::JSValue::isUndefined):
+ (JSC::JSValue::isNull):
+ (JSC::JSValue::isUndefinedOrNull):
+ (JSC::JSValue::isCell):
+ (JSC::JSValue::isInt32):
+ (JSC::JSValue::isDouble):
+ (JSC::JSValue::isTrue):
+ (JSC::JSValue::isFalse):
+ (JSC::JSValue::tag):
+ (JSC::JSValue::payload):
+ (JSC::JSValue::asInt32):
+ (JSC::JSValue::asDouble):
+ (JSC::JSValue::asCell):
+ (JSC::JSValue::isNumber):
+ (JSC::JSValue::isBoolean):
+ (JSC::JSValue::makeImmediate):
+ (JSC::JSValue::immediateValue):
+ (JSC::reinterpretDoubleToIntptr):
+ (JSC::reinterpretIntptrToDouble):
+ - Methods moved here from JSImmediate.h/JSNumberCell.h/JSValue.h.
+ * runtime/Operations.h:
+ - Removed JSImmediate.h, JSNumberCell.h.
+ * wtf/StdLibExtras.h:
+ - Export bitwise_cast.
-2011-01-23 Patrick Gansterer <paroga@webkit.org>
-
- 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 <paroga@webkit.org>
-
- 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 <paroga@webkit.org>
-
- 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 <paroga@webkit.org>
+2011-04-11 Thouraya ANDOLSI <thouraya.andolsi@st.com>
Reviewed by Oliver Hunt.
- Remove obsolete JSVALUE32 code
- https://bugs.webkit.org/show_bug.cgi?id=52948
+ SH4 JIT SUPPORT.
+ https://bugs.webkit.org/show_bug.cgi?id=44329
- r70111 removed support for JSVALUE32.
- ARM, MIPS and X86 support JSVALUE32_64 only.
+ Add JIT remaining part for SH4 platforms.
+ * assembler/MacroAssemblerSH4.h:
+ * jit/JIT.h:
+ * jit/JITInlineMethods.h:
+ * jit/JITOpcodes32_64.cpp:
+ * jit/JITPropertyAccess32_64.cpp:
* jit/JITStubs.cpp:
+ * jit/JITStubs.h:
+ * jit/JSInterfaceJIT.h:
-2011-01-22 Geoffrey Garen <ggaren@apple.com>
-
- 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 <ggaren@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- Rubber-stamped by Maciej Stachowiak.
+2011-04-10 Geoffrey Garen <ggaren@apple.com>
- A few of Maciej's review suggestions for my last patch.
- https://bugs.webkit.org/show_bug.cgi?id=52946
+ Rubber-stamped by Beth Dakin.
- SunSpider reports no change.
+ Moved Heap.h and Heap.cpp to the heap folder, because anything less
+ would be uncivilized.
* Android.mk:
* CMakeLists.txt:
- * GNUmakefile.am:
+ * GNUmakefile.list.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 <paroga@webkit.org>
-
- Unreviewed WinCE build fix for r76430.
-
- * runtime/MachineStackMarker.cpp:
- (JSC::swapIfBackwards):
-
-2011-01-21 Geoffrey Garen <ggaren@apple.com>
-
- 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 <ggaren@apple.com>
-
- Try to fix build: moved helper function out of #ifdef.
-
- * runtime/MachineStackMarker.cpp:
- (JSC::swapIfBackwards):
-
-2011-01-21 Geoffrey Garen <ggaren@apple.com>
-
- 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 <ggaren@apple.com>
-
- 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 <mrowe@apple.com>
-
- Reviewed by Sam Weinig.
-
- Work around a Clang bug <rdar://problem/8876150> 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 <msaboff@apple.com>
-
- Reviewed by Oliver Hunt.
-
- [RegexFuzz] Hang with forward assertion
- https://bugs.webkit.org/show_bug.cgi?id=52825
- <rdar://problem/8894332>
-
- The backtrackTo label from the first term in a list of terms is
- being overwritten by processing of subsequent terms. Changed
- copyBacktrackToLabel() to check for an existing bcaktrackTo label
- before copying and renamed it to propagateBacktrackToLabel() since
- it no longer copies.
-
- * yarr/YarrJIT.cpp:
- (JSC::Yarr::YarrGenerator::BacktrackDestination::propagateBacktrackToLabel):
- (JSC::Yarr::YarrGenerator::generateParenthesesSingle):
-
-2011-01-21 Geoffrey Garen <ggaren@apple.com>
-
- Reviewed by Sam Weinig.
-
- Moved the mark stack from global data to the heap, since it pertains
- to the heap, and not the virtual machine as a whole.
- https://bugs.webkit.org/show_bug.cgi?id=52930
-
- SunSpider reports no change.
-
- * runtime/Heap.cpp:
- (JSC::Heap::Heap):
- (JSC::Heap::markRoots):
- * runtime/Heap.h:
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- * runtime/JSGlobalData.h:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * heap/Heap.cpp: Copied from JavaScriptCore/runtime/Heap.cpp.
+ * heap/Heap.h: Copied from JavaScriptCore/runtime/Heap.h.
+ * runtime/Heap.cpp: Removed.
+ * runtime/Heap.h: Removed.
-2011-01-21 Peter Gal <galpeter@inf.u-szeged.hu>
+2011-04-10 Patrick Gansterer <paroga@webkit.org>
Reviewed by Darin Adler.
- REGRESSION(r76177): All JavaScriptCore tests fail on ARM
- https://bugs.webkit.org/show_bug.cgi?id=52814
-
- Get the approximateByteSize value before releasing the OwnPtr.
-
- * parser/JSParser.cpp:
- (JSC::JSParser::parseFunctionInfo):
-
-2011-01-21 Xan Lopez <xlopez@igalia.com>
+ Remove duplicated code from AtomicString::fromUTF8()
+ https://bugs.webkit.org/show_bug.cgi?id=53711
- Reviewed by Martin Robinson.
-
- Remove unnecessary <stdio.h> include
- https://bugs.webkit.org/show_bug.cgi?id=52884
-
- * jit/JIT.cpp: remove unnecessary include.
-
-2011-01-20 Ryosuke Niwa <rniwa@webkit.org>
+ * JavaScriptCore.exp:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * wtf/text/AtomicString.cpp:
+ (WTF::AtomicString::fromUTF8Internal):
+ * wtf/text/AtomicString.h:
+ (WTF::AtomicString::fromUTF8):
+ * wtf/unicode/UTF8.cpp:
+ (WTF::Unicode::calculateStringHashAndLengthFromUTF8):
+ * wtf/unicode/UTF8.h:
- Reviewed by Maciej Stachowiak.
+2011-04-10 Maciej Stachowiak <mjs@apple.com>
- Added OwnPtrCommon.h because OwnArrayPtr::set calls deleteOwnedPtr.
+ Not reviewed.
- * wtf/OwnArrayPtr.h:
+ Fix build (at least on Lion) by adding some newish header files to
+ PrivateHeaders.
-2011-01-20 Patrick Gansterer <paroga@webkit.org>
+ * JavaScriptCore.xcodeproj/project.pbxproj:
- Reviewed by Oliver Hunt.
+2011-04-09 Geoffrey Garen <ggaren@apple.com>
- [WINCE] Remove obsolete JSVALUE32 code
- https://bugs.webkit.org/show_bug.cgi?id=52450
+ Not reviewed.
- Remove the "offset hack" in create_jit_stubs, since we
- only support JSVALUE32_64 in the meantime.
+ Try recommitting some things svn left out of its last commit.
- * create_jit_stubs: Removed offset argument
- * jit/JITStubs.cpp:
+ * heap/Handle.h:
+ (JSC::HandleBase::operator!):
+ (JSC::HandleBase::HandleBase):
+ (JSC::HandleBase::slot):
+ (JSC::HandleBase::setSlot):
+ (JSC::Handle::Handle):
+ * heap/HandleHeap.cpp:
+ (JSC::HandleHeap::markWeakHandles):
+ (JSC::HandleHeap::finalizeWeakHandles):
+ (JSC::HandleHeap::isValidWeakNode):
+ * heap/HandleHeap.h:
+ (JSC::HandleHeap::globalData):
-2011-01-20 Geoffrey Garen <ggaren@apple.com>
+2011-04-08 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
- When marking conservatively, guard against reviving dead objects.
- https://bugs.webkit.org/show_bug.cgi?id=52840
+ A few heap-related renames and file moves.
+
+ WeakGCPtr<T> => Weak<T>
+ Global<T> => Strong<T>
+ collector/ => heap/
+ collector/* => heap/*
+ runtime/WeakGCPtr.h => heap/Weak.h
- SunSpider and v8 say no change.
+ (Eventually, even more files should move into the heap directory. Like
+ Heap.h and Heap.cpp, for example.)
+ * API/JSClassRef.h:
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * GNUmakefile.list.am:
+ * JavaScriptCore.gypi:
+ * JavaScriptCore.pri:
+ * JavaScriptCore.pro:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
+ * JavaScriptCore.vcproj/JavaScriptCore/copy-files.cmd:
+ * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * bytecode/SamplingTool.h:
+ * bytecompiler/BytecodeGenerator.h:
+ * collector: Removed.
+ * collector/handles: Removed.
+ * collector/handles/Global.h: Removed.
+ * collector/handles/Handle.h: Removed.
+ * collector/handles/HandleHeap.cpp: Removed.
+ * collector/handles/HandleHeap.h: Removed.
+ * collector/handles/HandleStack.cpp: Removed.
+ * collector/handles/HandleStack.h: Removed.
+ * collector/handles/Local.h: Removed.
+ * collector/handles/LocalScope.h: Removed.
+ * heap: Copied from collector.
+ * heap/Handle.h: Copied from collector/handles/Handle.h.
+ * heap/HandleHeap.cpp: Copied from collector/handles/HandleHeap.cpp.
+ * heap/HandleHeap.h: Copied from collector/handles/HandleHeap.h.
+ * heap/HandleStack.cpp: Copied from collector/handles/HandleStack.cpp.
+ * heap/HandleStack.h: Copied from collector/handles/HandleStack.h.
+ * heap/Local.h: Copied from collector/handles/Local.h.
+ * heap/LocalScope.h: Copied from collector/handles/LocalScope.h.
+ * heap/Strong.h: Copied from collector/handles/Global.h.
+ (JSC::Strong::Strong):
+ (JSC::Strong::~Strong):
+ (JSC::Strong::operator=):
+ * heap/Weak.h: Copied from runtime/WeakGCPtr.h.
+ (JSC::Weak::Weak):
+ (JSC::Weak::~Weak):
+ * heap/handles: Removed.
* interpreter/RegisterFile.h:
- (JSC::RegisterFile::markCallFrames): Updated to use the ConservativeSet API.
-
- * runtime/Heap.cpp:
- (JSC::Heap::recordExtraCost): No need to guard against conservative
- marking reviving dead objects anymore, since the conservative marking
- mechanism guards against this now.
-
- (JSC::Heap::markConservatively):
- (JSC::Heap::markProtectedObjects):
- (JSC::Heap::markTempSortVectors): Don't drain the mark stack inside a
- marking function. We want to establish a separation of concerns between
- visiting roots and draining the mark stack.
-
- (JSC::Heap::markRoots): Gather the set of conservative references before
- clearning mark bits, because conservative marking now uses the mark bits
- to determine if a reference is valid, and avoid reviving dead objects.
-
- (JSC::Heap::collectAllGarbage): No need to guard against conservative
- marking reviving dead objects anymore, since the conservative marking
- mechanism guards against this now.
+ * jit/JITStubs.cpp:
+ (JSC::JITThunks::hostFunctionStub):
+ * jit/JITStubs.h:
+ * runtime/Structure.h:
+ * runtime/WeakGCPtr.h: Removed.
- * runtime/Heap.h: Updated to use the ConservativeSet API.
+2011-04-08 Alpha Lam <hclam@chromium.org>
- * runtime/MachineStackMarker.cpp:
- (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal):
- (JSC::MachineStackMarker::markCurrentThreadConservatively):
- (JSC::MachineStackMarker::markOtherThreadConservatively):
- (JSC::MachineStackMarker::markMachineStackConservatively):
- * runtime/MachineStackMarker.h: Ditto.
+ Unreviewed, rolling out r83335.
+ http://trac.webkit.org/changeset/83335
+ https://bugs.webkit.org/show_bug.cgi?id=53556
- * runtime/MarkStack.h:
- (JSC::ConservativeSet::add):
- (JSC::ConservativeSet::mark): Added ConservativeSet, for gathering the
- set of conservative references. This is different from MarkStack, since
- we don't mark the set until it is completely gathered.
+ GTK and QT bots are broken
- * runtime/MarkedSpace.cpp:
- (JSC::MarkedSpace::freeBlock):
- (JSC::MarkedSpace::resizeBlocks):
- (JSC::MarkedSpace::markConservatively):
- * runtime/MarkedSpace.h: When marking conservatively, guard against
- reviving dead objects.
-
-2011-01-20 Siddharth Mathur <siddharth.mathur@nokia.com>
+ * Configurations/FeatureDefines.xcconfig:
- Reviewed by Geoffrey Garen.
+2011-04-08 Gavin Barraclough <barraclough@apple.com>
- [Symbian] Fix StackBounds::initialize()
- https://bugs.webkit.org/show_bug.cgi?id=52842
+ Ooops, typo, build fix.
- * wtf/StackBounds.cpp:
- (WTF::StackBounds::initialize): Use TThreadStackInfo.iLimit for stack limit
+ * dfg/DFGByteCodeParser.cpp:
+ (JSC::DFG::ByteCodeParser::parse):
-2011-01-20 Michael Saboff <msaboff@apple.com>
+2011-04-08 Gavin Barraclough <barraclough@apple.com>
Reviewed by Oliver Hunt.
- <rdar://problem/8890203> [RegexFuzz] Crash in generated code (52773)
- https://bugs.webkit.org/show_bug.cgi?id=52773
+ Bug 58154 - Add support for comparison operators to the DFG JIT.
+
+ Add support for <, <=, ==, ===, and also !. Add support for all corresponding
+ bytecode ops, including the not- and -null forms. Initially add functionally
+ correct support, we'll revisit the performance.
+
+ * dfg/DFGByteCodeParser.cpp:
+ (JSC::DFG::ByteCodeParser::ByteCodeParser):
+ (JSC::DFG::ByteCodeParser::constantNull):
+ (JSC::DFG::ByteCodeParser::parse):
+ - Add support for parsing of bytecode opcodes,
+ * dfg/DFGJITCodeGenerator.h:
+ (JSC::DFG::JITCodeGenerator::callOperation):
+ - Add new operation call types, return bool values.
+ * dfg/DFGNode.h:
+ - Add new node types.
+ * dfg/DFGNonSpeculativeJIT.cpp:
+ (JSC::DFG::NonSpeculativeJIT::compile):
+ - Add code generation for new nodes.
+ * dfg/DFGOperations.cpp:
+ (JSC::DFG::operationCompareLess):
+ (JSC::DFG::operationCompareLessEq):
+ (JSC::DFG::operationCompareEq):
+ (JSC::DFG::operationCompareStrictEq):
+ (JSC::DFG::dfgConvertJSValueToBoolean):
+ * dfg/DFGOperations.h:
+ - Add operation callbacks to implement new ops.
+ * dfg/DFGSpeculativeJIT.cpp:
+ (JSC::DFG::SpeculativeJIT::compile):
+ - Add code generation for new nodes.
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ - Switched to a simpler <0 check, rather than relying on an internal value in JSImmediate.
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::privateCompilePatchGetArrayLength):
+ - Switched to a simpler <0 check, rather than relying on an internal value in JSImmediate.
+ * runtime/JSImmediate.h:
+ - Make tag values public, rather than relying on a friend - this matches JSVALUE32_64.
- Fixed case where an existing DataLabelPtr is overwritten. The
- replacing DataLabelPtr is now resolved immediately in
- linkDataLabelToBacktrackIfExists(). Cleanup - eliminated bool
- return value for the routine as it was never used.
+2011-04-07 Anna Cavender <annacc@chromium.org>
- * yarr/YarrJIT.cpp:
- (JSC::Yarr::YarrGenerator::TermGenerationState::linkDataLabelToBacktrackIfExists):
+ Reviewed by Eric Carlson.
-2011-01-20 Andras Becsi <abecsi@webkit.org>
+ Setup ENABLE(TRACK) feature define
+ https://bugs.webkit.org/show_bug.cgi?id=53556
- Reviewed by Csaba Osztrogonác.
- [Qt][WK2] WebKit2 enabled build fails to link
+ * Configurations/FeatureDefines.xcconfig:
- Work around undefined reference linking issues until the buildsystem gets redesigned.
- These issues first occured in minimal builds (see BUG 50519).
+2011-04-07 Balazs Kelemen <kbalazs@webkit.org>
- * JavaScriptCore.pri: link as whole-archive for WebKit2 builds
+ Reviewed by Kenneth Rohde Christiansen.
-2011-01-20 Zoltan Horvath <zoltan@webkit.org>
+ [WK2][Qt][GTK] Introduce common use flag for the shared UNIX domain socket IPC implementation
+ https://bugs.webkit.org/show_bug.cgi?id=58030
- Reviewed by Csaba Osztrogonác.
+ * wtf/Platform.h: Introduce USE(UNIX_DOMAIN_SOCKETS) for WebKit2.
- Refactoring of the custom allocation framework
- https://bugs.webkit.org/show_bug.cgi?id=49897
+2011-04-08 Adam Roben <aroben@apple.com>
- Inheriting from FastAllocBase can result in objects getting larger (bug #33896, #46589).
- The modification replaces Noncopyable and FastAllocBase classes and these inherits with their
- equivalent macro implementation at the necessary places.
+ Clean build fix
- * wtf/FastAllocBase.h: Turn FastAllocBase's implementation into a macro.
+ * JavaScriptCore.vcproj/JavaScriptCore/copy-files.cmd: Don't try to delete directories that
+ don't exist. Also switched from del /s to rmdir /s, which has the benefit of deleting the
+ directory itself in addition to the files it contains.
-2011-01-20 Mark Rowe <mrowe@apple.com>
+2011-04-07 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
- Follow-up to r75766 / <rdar://problem/5469576>.
-
- We were failing to initialize the key, causing all sorts of unexpected behavior.
+ Some Handle<T> cleanup
+ https://bugs.webkit.org/show_bug.cgi?id=58109
- * wtf/FastMalloc.cpp:
- (WTF::setThreadHeap):
- (WTF::TCMalloc_ThreadCache::GetThreadHeap):
- (WTF::TCMalloc_ThreadCache::InitTSD): Ensure that the key is initialized.
-
-2011-01-18 Geoffrey Garen <ggaren@apple.com>
+ * bytecode/SamplingTool.h: Sorted alphabetically because that's the
+ WebKit style. Added a Global.h #include that was previously missing
+ but harmless.
- Reviewed by Darin Adler.
-
- Rolled back in r76078, with crash fixed.
- https://bugs.webkit.org/show_bug.cgi?id=52668
+ * collector/handles/Global.h:
+ (JSC::Global::Global): Added a null constructor. No need for a special
+ tag, and the tag is incompatible with some data structures.
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::markChildren): Account for the fact that the global
- object moves its variables into and out of the register file. While out
- of the register file, the symbol table's size is not an accurate count
- for the size of the register array, since the BytecodeGenerator might
- be compiling, adding items to the symbol table.
+ (JSC::Global::isHashTableDeletedValue):
+ (JSC::Global::~Global):
+ (JSC::Global::set):
+ (JSC::Global::operator=):
+ (JSC::Global::clear):
+ (JSC::Global::hashTableDeletedValue): Reordered constructors to be near
+ each other.
+
+ (JSC::Global::setWithWriteBarrier): Renamed internalSet to
+ setWithWriteBarrier for clarity, and funneled more code into using set
+ and setWithWriteBarrier to reduce duplication.
+
+ * collector/handles/Handle.h:
+ (JSC::HandleBase::operator!):
+ (JSC::HandleBase::HandleBase): Removed isEmpty(), since we already have
+ boolean and ! operators.
+
+ (JSC::HandleBase::slot):
+ (JSC::HandleBase::setSlot):
+ (JSC::Handle::Handle): Added general support for null Handles. This was
+ previously outlawed by ASSERTs, but our code has grown to support and
+ rely on null Handles.
-2011-01-18 Darin Adler <darin@apple.com>
+ * collector/handles/HandleHeap.cpp:
+ (JSC::HandleHeap::markWeakHandles):
+ (JSC::HandleHeap::finalizeWeakHandles):
+ (JSC::HandleHeap::isValidWeakNode): Migrated from isValidWeakHandle,
+ and beefed this up a bit.
- Reviewed by Geoffrey Garen.
-
- Stack overflow when converting an Error object to string
- https://bugs.webkit.org/show_bug.cgi?id=46410
+ * collector/handles/HandleHeap.h:
+ (JSC::HandleHeap::globalData): Added accessor, used by some new set functions.
- * Android.mk: Added StringRecursionChecker.cpp and
- StringRecursionChecker.h.
- * CMakeLists.txt: Ditto.
- * GNUmakefile.am: Ditto.
- * JavaScriptCore.gypi: Ditto.
- * JavaScriptCore.pro: Ditto.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Ditto.
- * JavaScriptCore.xcodeproj/project.pbxproj: Ditto.
+ * collector/handles/Local.h: Moved hash traits to the bottom of the file,
+ since this file is about the Local class, not the traits.
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncToString): Use StringRecursionChecker instead
- of the older hand-written code to do the same thing.
- (JSC::arrayProtoFuncToLocaleString): Ditto.
- (JSC::arrayProtoFuncJoin): Ditto.
+ (JSC::::Local): Updated for removal of invalidate().
- * runtime/ErrorPrototype.cpp:
- (JSC::errorProtoFuncToString): Use StringRecursionChecker.
+ (JSC::::operator): Deployed "using" to avoid a lot of this->
+ template funny business.
- * runtime/JSGlobalData.h: Renamed arrayVisitedElements to
- stringRecursionCheckVisitedObjects.
+ (JSC::::setWithSlotCheck): Renamed from internalSet, more specific now.
- * runtime/RegExpPrototype.cpp:
- (JSC::regExpProtoFuncToString): Use StringRecursionChecker.
-
- * runtime/StringRecursionChecker.cpp: Added.
- * runtime/StringRecursionChecker.h: Added.
-
-2011-01-19 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Gavin Barraclough.
+ * interpreter/RegisterFile.h:
+ (JSC::RegisterFile::RegisterFile): Updated to use null constructor.
- Remove non-spec support for callable RegExp
- https://bugs.webkit.org/show_bug.cgi?id=28285
+ * jit/JITStubs.cpp:
+ (JSC::JITThunks::hostFunctionStub):
- Remove support for callable regexps. If it breaks sites we can
- just roll this out.
+ * runtime/JSPropertyNameIterator.h:
+ (JSC::Structure::setEnumerationCache):
+ * runtime/Structure.h: Removed clearEnumerationCache
+ because it was an unused holdover from when the enumeration cache was
+ not a handle.
- * runtime/RegExpObject.cpp:
- * runtime/RegExpObject.h:
- * tests/mozilla/expected.html: update results.
+ * runtime/WeakGCMap.h:
+ (JSC::WeakGCMap::set): Finish initializing our handle before putting it
+ in the table. This seemed more logical, and at one point was required
+ to avoid triggering an ASSERT.
-2011-01-19 Antti Koivisto <antti@apple.com>
+ * runtime/WeakGCPtr.h: Inherit from Handle instead of rolling our own
+ handle-like behavior, to avoid duplication.
- Reviewed by Oliver Hunt.
+ (JSC::WeakGCPtr::WeakGCPtr):
+ (JSC::WeakGCPtr::~WeakGCPtr):
+ (JSC::WeakGCPtr::get):
+ (JSC::WeakGCPtr::clear):
+ (JSC::WeakGCPtr::set):
+ (JSC::WeakGCPtr::setWithWriteBarrier): Removed duplicate code and
+ standardized on Handle idioms.
- Cache function offsets to speed up javascript parsing
- https://bugs.webkit.org/show_bug.cgi?id=52622
-
- Use cache to save function offsets and some other info.
- This avoids quite a bit of work when reparsing the source.
+2011-04-07 Adam Barth <abarth@webkit.org>
- * parser/ASTBuilder.h:
- * parser/JSParser.cpp:
- (JSC::JSParser::CachedFunctionInfo::CachedFunctionInfo):
- (JSC::JSParser::CachedFunctionInfo::approximateByteSize):
- (JSC::JSParser::CachedFunctionInfo::closeBraceToken):
- (JSC::JSParser::Scope::copyCapturedVariablesToVector):
- (JSC::JSParser::Scope::saveFunctionInfo):
- (JSC::JSParser::Scope::restoreFunctionInfo):
- (JSC::JSParser::findCachedFunctionInfo):
- (JSC::JSParser::JSParser):
- (JSC::JSParser::parseProgram):
- (JSC::JSParser::parseFunctionInfo):
- * parser/Lexer.h:
- (JSC::Lexer::setOffset):
- (JSC::Lexer::setLineNumber):
- (JSC::Lexer::sourceProvider):
- * parser/SourceProvider.h:
- (JSC::SourceProviderCache::SourceProviderCache):
- (JSC::SourceProviderCache::~SourceProviderCache):
- (JSC::SourceProviderCache::byteSize):
- (JSC::SourceProviderCache::add):
- (JSC::SourceProviderCache::get):
- (JSC::SourceProvider::SourceProvider):
- (JSC::SourceProvider::~SourceProvider):
- (JSC::SourceProvider::cache):
- (JSC::SourceProvider::notifyCacheSizeChanged):
- (JSC::SourceProvider::cacheSizeChanged):
- * parser/SyntaxChecker.h:
-
-2011-01-19 Mark Rowe <mrowe@apple.com>
+ Reviewed by Martin Robinson.
- Reviewed by Darin Adler.
+ Refactor Gtk build system to separate list of files
+ https://bugs.webkit.org/show_bug.cgi?id=58090
- Follow-up to r75766 / <rdar://problem/5469576>.
+ This is the first step towards generating part of the GTK build system
+ using GYP. In the first iteration, our plan is to just generate the
+ list of files. This patch is the first step, which is to separate out
+ the part of JavaScriptCore build system that we intend to generate from
+ the rest of the build system.
- * DerivedSources.make: Evaluate the SDKROOT variable correctly.
+ * GNUmakefile.am:
+ * GNUmakefile.list.am: Added.
-2011-01-19 Oliver Hunt <oliver@apple.com>
+2011-04-07 Zoltan Herczeg <zherczeg@webkit.org>
Reviewed by Gavin Barraclough.
- [jsfunfuzz] Defining a function called __proto__ inside an eval triggers an assertion
- https://bugs.webkit.org/show_bug.cgi?id=52672
+ Mapping booleans the same way as integers
+ https://bugs.webkit.org/show_bug.cgi?id=56913
- Rather than coming up with a somewhat convoluted mechanism to ensure that
- developers can override the global objects prototype with a function named
- __proto__ and expect it to work, we just disallow it at the syntax level.
+ Instead of having a seperate tag field for booleans,
+ the logical values are stored in the payload field
+ (for JSValue32_64 representation).
- * parser/JSParser.cpp:
- (JSC::JSParser::parseFunctionInfo):
+ 1.007x speedup on SunSpider.
-2011-01-19 Michael Saboff <msaboff@apple.com>
+ * jit/JIT.h:
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::emitStoreBool):
+ * jit/JITOpcodes32_64.cpp:
+ (JSC::JIT::emit_op_instanceof):
+ (JSC::JIT::emit_op_not):
+ (JSC::JIT::emit_op_jfalse):
+ (JSC::JIT::emitSlow_op_jfalse):
+ (JSC::JIT::emit_op_jtrue):
+ (JSC::JIT::emitSlow_op_jtrue):
+ (JSC::JIT::emit_op_jeq_null):
+ (JSC::JIT::emit_op_jneq_null):
+ (JSC::JIT::emit_op_eq):
+ (JSC::JIT::emitSlow_op_eq):
+ (JSC::JIT::emit_op_neq):
+ (JSC::JIT::emitSlow_op_neq):
+ (JSC::JIT::compileOpStrictEq):
+ (JSC::JIT::emit_op_eq_null):
+ (JSC::JIT::emit_op_neq_null):
+ * jit/JSInterfaceJIT.h:
+ * runtime/JSValue.h:
+ (JSC::JSValue::JSValue):
+ (JSC::JSValue::isTrue):
+ (JSC::JSValue::isFalse):
+ (JSC::JSValue::getBoolean):
- Reviewed by Darin Adler.
+2011-04-07 Eric Seidel <eric@webkit.org>
- <rdar://problem/8882994> Regression: Simple nested backtrack hangs
- https://bugs.webkit.org/show_bug.cgi?id=52675
+ Reviewed by Adam Barth.
- The changeset (r76076) for https://bugs.webkit.org/show_bug.cgi?id=52540
- broke simple backtracking in some cases. Reworked that change to
- link both jumps and labels.
+ Add stub support for generating Gtk build system from gyp
+ https://bugs.webkit.org/show_bug.cgi?id=58086
- * yarr/YarrJIT.cpp:
- (JSC::Yarr::YarrGenerator::BacktrackDestination::hasBacktrackToLabel):
- (JSC::Yarr::YarrGenerator::TermGenerationState::propagateBacktrackingFrom):
- (JSC::Yarr::YarrGenerator::generateParenthesesSingle):
+ This does not produce a buildable JavaScriptCore, but it
+ does allow running gyp/configure --port=gtk and having
+ it generate a gtk.Makefile which we can use for testing
+ the rest of the plumbing.
-2011-01-19 Pavel Podivilov <podivilov@chromium.org>
+ * gyp/gtk.gyp: Added.
- Reviewed by Yury Semikhatsky.
+2011-04-07 Andrew Scherkus <scherkus@chromium.org>
- Web Inspector: [JSC] scripts have incorrect starting line (always 1).
- https://bugs.webkit.org/show_bug.cgi?id=52721
+ Revert ENABLE_TRACK patch due to compile failures.
- * debugger/Debugger.cpp:
- (JSC::Debugger::recompileAllJSFunctions):
- * debugger/Debugger.h:
- * parser/Parser.h:
- (JSC::Parser::parse):
- * parser/SourceCode.h:
- (JSC::SourceCode::SourceCode):
- * parser/SourceProvider.h:
- (JSC::SourceProvider::startPosition):
+ * Configurations/FeatureDefines.xcconfig:
-2011-01-19 Csaba Osztrogonác <ossy@webkit.org>
+2011-04-07 Adam Barth <abarth@webkit.org>
- Reviewed by Laszlo Gombos and Tor Arne Vestbø.
+ Fix whitespace in GNUmakefile.am.
- [Qt] Remove unnecessary "../Source" from paths
- after moving source files into Source is finished.
+ * GNUmakefile.am:
- * JavaScriptCore.pri:
+2011-04-07 Gavin Barraclough <barraclough@apple.com>
-2011-01-19 Benjamin Kalman <kalman@chromium.org>
+ Fix a couple of typos in comments that Darin spotted.
- Reviewed by Darin Adler.
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::emit_op_not):
+ * runtime/JSImmediate.h:
- Don't return void from void function String::split
- https://bugs.webkit.org/show_bug.cgi?id=52684
+2011-04-06 Gavin Barraclough <barraclough@apple.com>
- * wtf/text/WTFString.cpp:
- (WTF::String::split):
+ Reviewed by Geoff Garen.
+ Bug 58057 - Store boolean payload in low bit of JSImmediate
-2011-01-18 Kenneth Russell <kbr@google.com>
+ And remove some uncalled functions from JSImmediate.h
- Unreviewed, rolling out r76078.
- http://trac.webkit.org/changeset/76078
- https://bugs.webkit.org/show_bug.cgi?id=52668
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::emitTagAsBoolImmediate):
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::emit_op_not):
+ * runtime/JSImmediate.h:
+ (JSC::JSImmediate::makeInt):
+ (JSC::JSImmediate::makeBool):
+ (JSC::JSImmediate::intValue):
+ (JSC::JSImmediate::boolValue):
+ (JSC::JSImmediate::asInt32):
+ (JSC::JSImmediate::toDouble):
+ (JSC::JSValue::asInt32):
+ (JSC::JSValue::isUInt32):
+ (JSC::JSValue::asUInt32):
- Caused crashes of fast/canvas/webgl/constants.html,
- fast/canvas/webgl/gl-enum-tests.html, and possibly other layout
- test crashes in Release mode. WebGL crashes were observed with
- "run-webkit-tests fast/canvas/webgl". It was necessary to run
- multiple tests to provoke the crash.
+2011-04-07 Liang Qi <liang.qi@nokia.com>
- * interpreter/RegisterFile.h:
- (JSC::RegisterFile::markGlobals):
- * runtime/JSActivation.cpp:
- (JSC::JSActivation::markChildren):
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::markChildren):
+ Reviewed by Laszlo Gombos.
-2011-01-18 Oliver Hunt <oliver@apple.com>
+ [Qt][Symbian] Enable webkit build with GCCE on Symbian.
+ https://bugs.webkit.org/show_bug.cgi?id=57841
- Reviewed by Gavin Barraclough.
+ * wtf/MathExtras.h: GCCE compiler doesn't support those std static functions.
- [jsfunfuzz] Assertion asking activation for arguments when arguments is overridden
- https://bugs.webkit.org/show_bug.cgi?id=52690
+2011-04-06 Dai Mikurube <dmikurube@chromium.org>
- Clean up code to retrieve arguments from activation and function objects.
- Remove the incorrect assertion from JSActivation's argumentsGetter.
+ Reviewed by David Levin.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::retrieveArguments):
- * runtime/JSActivation.cpp:
- (JSC::JSActivation::argumentsGetter):
+ Add QUOTA build flag for unified quota API
+ https://bugs.webkit.org/show_bug.cgi?id=57918
-2011-01-18 Geoffrey Garen <ggaren@apple.com>
+ * Configurations/FeatureDefines.xcconfig: Added QUOTA build flag
+2011-04-06 Kevin Ollivier <kevino@theolliviers.com>
+
Reviewed by Darin Adler.
+
+ Make sure JS_EXPORT_PRIVATE is an empty define when we aren't using the export macros.
+
+ https://bugs.webkit.org/show_bug.cgi?id=27551
- Removed RegisterFile::markGlobals because it was obtuse, and it
- unnecessarily relied on conservative marking.
- https://bugs.webkit.org/show_bug.cgi?id=52668
-
- * interpreter/RegisterFile.h: Removed markGlobals.
-
- * runtime/JSActivation.cpp:
- (JSC::JSActivation::markChildren): Added a comment explaning why some
- JSActivations don't always mark their registers arrays.
-
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::markChildren): Instead of calling markGlobals, mark
- the registers array directly.
-
-2011-01-18 Michael Saboff <msaboff@apple.com>
-
- Reviewed by Oliver Hunt.
-
- <rdar://problem/8875432> Regression: Some text-only e-mails cause hang beneath RegExp::match (52540)
- https://bugs.webkit.org/show_bug.cgi?id=52540
- https://bugs.webkit.org/show_bug.cgi?id=52662
-
- Directly use backtrack label with parentheses nested under a
- non-capturing parentheses. Also linked current parentheses
- tail code object for possible parens nested within a non-capturing
- parentheses.
-
- * yarr/YarrJIT.cpp:
- (JSC::Yarr::YarrGenerator::BacktrackDestination::linkBacktrackToLabel):
- (JSC::Yarr::YarrGenerator::generateParenthesesSingle):
+ * config.h:
-2011-01-18 Daniel Bates <dbates@rim.com>
+2011-04-06 Oliver Hunt <oliver@apple.com>
Reviewed by Gavin Barraclough.
- Only use moving memory model assumption in ExecutableAllocator::intializePageSize() for Symbian OS
- https://bugs.webkit.org/show_bug.cgi?id=52517
-
- Patch by David Tapuska
-
- Currently, we compile code with respect to the Symbian-specific moving memory model
- assumption for all ARMv5 or lower architectures. Instead, we should only compile
- such code when building for Symbian OS on those architectures because this model
- is Symbian-specific.
-
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutableAllocator::intializePageSize):
-
-2011-01-18 Dimitry Andric <dim@freebsd.org>
-
- Reviewed by Andreas Kling.
-
- Fix linking JavaScriptCore on FreeBSD/amd64
- https://bugs.webkit.org/show_bug.cgi?id=52591
-
- Linking of JavaScriptCore on FreeBSD/amd64 fails, for the same reason as
- in bug 28422: cti_vm_throw needs a "@plt" suffix, otherwise the linker
- complains about the relocation type.
-
- * jit/JITStubs.cpp: use @plt suffix on x86_64 platforms, for both Linux
- and FreeBSD.
-
-2011-01-18 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Antti Koivisto.
-
- [jsfunfuzz] Assertion in codegen for array of NaN constants
- https://bugs.webkit.org/show_bug.cgi?id=52643
-
- Don't cache NaN literals in the code generator, as NaN doesn't compare
- as equal to itself it causes problems when rehashing the number cache.
-
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::emitLoad):
-
-2011-01-17 Jarred Nicholls <jarred@sencha.com>
-
- Reviewed by Csaba Osztrogonác.
-
- REGRESSION(r75709): Return value of fscanf() shouldn't be ignored.
- https://bugs.webkit.org/show_bug.cgi?id=52585
-
- gcc 4.4.4+ has warn_unused_value attribute on fscanf, so we should check
- the return value to get around the gcc warning
-
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::maybeModifyVMPoolSize):
+ Stop JSObject::isUsingInlineStorage() from using the structure
+ https://bugs.webkit.org/show_bug.cgi?id=57986
-2011-01-17 Michael Saboff <msaboff@apple.com>
+ Make the isUsingInlineStorage() implementation just look at
+ whether the property storage is inside the object.
- Reviewed by Oliver Hunt.
-
- [regexfuzz] Crash running regex with lookahead
- https://bugs.webkit.org/show_bug.cgi?id=52548
+ * runtime/JSObject.h:
+ (JSC::JSObject::isUsingInlineStorage):
+ (JSC::JSObject::JSObject):
- Eliminated agressive chaining of backtracks. This code was overwriting
- already valid backtrack information.
+2011-04-06 Gavin Barraclough <barraclough@apple.com>
- * yarr/YarrJIT.cpp:
- (JSC::Yarr::YarrGenerator::ParenthesesTail::processBacktracks):
+ Rubber stamped by Geoff Garen.
-2011-01-17 Tony Gentilcore <tonyg@chromium.org>
+ Update comments documenting JSVALUE64/JSVALUE32_64 JSValue representations.
- Reviewed by Alexey Proskuryakov.
+ * runtime/JSImmediate.h:
+ * runtime/JSValue.h:
- Fix some headers with missing or misspelled #ifndef guards
- https://bugs.webkit.org/show_bug.cgi?id=52545
+2011-04-06 Lucas De Marchi <lucas.demarchi@profusion.mobi>
- * wtf/RefPtrHashMap.h:
+ cmake: Fix build for ARMv7
-2011-01-17 Dan Bernstein <mitz@apple.com>
+ * CMakeLists.txt: add missing file.
- Rubber-stamped by Mark Rowe.
+2011-04-06 Liang Qi <liang.qi@nokia.com>
- Update xcodeproj svn:ignore to include xcuserdata.
+ Reviewed by Benjamin Poulain.
- * JavaScriptCore.xcodeproj: Modified property svn:ignore.
+ Correct a include file name.
+ https://bugs.webkit.org/show_bug.cgi?id=57839
-2011-01-16 Adam Barth <abarth@webkit.org>
+ * wtf/PageAllocatorSymbian.h: It should be case sensitive. This fix
+ builds on Unix hosts.
- Rubber-stamped by Eric Seidel.
+2011-04-06 Adam Roben <aroben@apple.com>
- Move WebKit into Source
- https://bugs.webkit.org/show_bug.cgi?id=52530
+ Build fix after r83056
- * JavaScriptCore.gyp/JavaScriptCore.gyp:
+ * JavaScriptCore.vcproj/JavaScriptCore/copy-files.cmd: Added property svn:executable.
-2011-01-16 Oliver Hunt <oliver@apple.com>
+2011-04-06 Adam Roben <aroben@apple.com>
- Reviewed by Sam Weinig.
+ Move JavaScriptCoreGenerated's file-copying logic out to a new script
- [jsfunfuzz] Parser doesn't correctly validate for-loop syntax
- https://bugs.webkit.org/show_bug.cgi?id=52516
+ Hopefully this will make it easier to modify this logic in the future. I also made the
+ script much quieter than the old logic, since it didn't seem helpful to see long lists of
+ filenames during the copying phase.
- Ensure that we always check for a semicolon after encountering
- multiple declarations in the initialiser portion of a for-loop.
+ If we like this new style, we could copy it for our other projects.
- * parser/JSParser.cpp:
- (JSC::JSParser::parseForStatement):
+ Fixes <http://webkit.org/b/57950> JavaScriptCoreGenerated's file-copying logic is hard to
+ modify and noisy
-2011-01-16 Oliver Hunt <oliver@apple.com>
+ Reviewed by Steve Falkenburg.
- Reviewed by Geoffrey Garen.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: Moved logic to copy
+ files from here...
+ * JavaScriptCore.vcproj/JavaScriptCore/copy-files.cmd: ...to here. (Added.)
- Strict mode restrictions on arguments and eval usage aren't complete
- https://bugs.webkit.org/show_bug.cgi?id=52528
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: Added copy-files.cmd
+ for convenience.
- Fix a few bugs in strict mode where we incorrect allow mutation of
- arguments and eval in the parser.
+2011-04-05 Geoffrey Garen <ggaren@apple.com>
- Alas the "optimisation" used by the syntax checker for validating
- binary and unary expressions was too aggressive: we do actually need
- a stack for operations and operands although it needn't be as complete
- as that used for the full AST builder.
+ Try to fix the Windows build.
- Also disallow assignment to arguments in all cases as allowing arguments
- to be assignable is always an error in strict mode, regardless of context.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Who likes export files? I do!
- * parser/ASTBuilder.h:
- (JSC::ASTBuilder::BinaryExprContext::BinaryExprContext):
- (JSC::ASTBuilder::UnaryExprContext::UnaryExprContext):
- * parser/JSParser.cpp:
- (JSC::JSParser::parseAssignmentExpression):
- (JSC::JSParser::parseBinaryExpression):
- (JSC::JSParser::parseUnaryExpression):
- * parser/SyntaxChecker.h:
- (JSC::SyntaxChecker::BinaryExprContext::BinaryExprContext):
- (JSC::SyntaxChecker::BinaryExprContext::~BinaryExprContext):
- (JSC::SyntaxChecker::UnaryExprContext::UnaryExprContext):
- (JSC::SyntaxChecker::UnaryExprContext::~UnaryExprContext):
- (JSC::SyntaxChecker::appendBinaryExpressionInfo):
- (JSC::SyntaxChecker::operatorStackPop):
-
-2011-01-15 Geoffrey Garen <ggaren@apple.com>
+2011-04-05 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
- Rolled back in r75886.
- https://bugs.webkit.org/show_bug.cgi?id=52527
-
- r75886 broke the GTK Linux bot because Linux was -- quite surprisingly --
- set up to use the constants for embedded devices.
+ Introduced the concept of opaque roots, in preparation for marking the DOM with them
+ https://bugs.webkit.org/show_bug.cgi?id=57903
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::maybeModifyVMPoolSize): Separated Linux constants from embedded
- constants.
+ * JavaScriptCore.exp: Who likes export files? I do!
-2011-01-15 Sheriff Bot <webkit.review.bot@gmail.com>
+ * collector/handles/HandleHeap.cpp:
+ (JSC::isValidWeakHandle): Factored out a helper function for ASSERTs.
- Unreviewed, rolling out r75886.
- http://trac.webkit.org/changeset/75886
- https://bugs.webkit.org/show_bug.cgi?id=52526
+ (JSC::WeakHandleOwner::~WeakHandleOwner): Moved from header to avoid
+ weak linkage problems.
- "Broke GTK+ 64bit" (Requested by xan_ on #webkit).
+ (JSC::WeakHandleOwner::isReachableFromOpaqueRoots): New callback.
+ Currently unused.
- * jit/ExecutableAllocatorFixedVMPool.cpp:
+ (JSC::WeakHandleOwner::finalize): Switched from pure virtual to a
+ default empty implementation, since not all clients necessarily want
+ or need non-trivial finalizers.
-2011-01-15 Geoffrey Garen <ggaren@apple.com>
+ (JSC::HandleHeap::markWeakHandles): Split updateWeakHandles into two
+ passes. The first pass marks all reachable weak handles. The second pass
+ finalizes all unreachable weak handles. This must be two passes because
+ we don't know the set of finalizable weak handles until we're done
+ marking all weak handles.
- Reviewed by Sam Weinig.
-
- <rdar://problem/8870429> Shrink the executable pool on embedded devices
-
- * jit/ExecutableAllocatorFixedVMPool.cpp: Dropped the pool size from 32MB
- to 16MB.
-
-2011-01-15 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Maciej Stachowiak.
-
- Incorrect behavior changing attributes of an accessor
- https://bugs.webkit.org/show_bug.cgi?id=52515
-
- defineProperty doesn't correctly handle changing attributes of an accessor
- property. This is because we don't pass the full descriptor to the
- putDescriptor helper function, which means we have insufficient information
- to do the right thing. Once that's passed the correct behavior is relatively
- simple to implement.
+ (JSC::HandleHeap::finalizeWeakHandles): Use new helper function.
- * runtime/JSObject.cpp:
- (JSC::putDescriptor):
- (JSC::JSObject::defineOwnProperty):
+ * collector/handles/HandleHeap.h: Ditto.
-2011-01-14 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Maciej Stachowiak.
-
- [jsfunfuzz] Incorrect handling of consecutive duplicate labels
- https://bugs.webkit.org/show_bug.cgi?id=52505
-
- Compare StringImpl*'s instead of Identifier*'s when looking for duplicate
- labels.
-
- * parser/JSParser.cpp:
- (JSC::JSParser::parseExpressionOrLabelStatement):
-
-2011-01-14 Simon Fraser <simon.fraser@apple.com>
-
- No review.
-
- Initialize m_operationInProgress after r75855.
-
- * runtime/Heap.cpp:
- (JSC::Heap::Heap):
-
-2011-01-14 Geoffrey Garen <ggaren@apple.com>
-
- Reverted accidentally committed code from my last checkin.
-
- * runtime/Heap.cpp:
+ * runtime/Heap.cpp:
+ (JSC::Heap::destroy):
(JSC::Heap::markRoots):
+ (JSC::Heap::reset): Split out handle marking from handle finalization.
-2011-01-14 Geoffrey Garen <ggaren@apple.com>
-
- Reviewed by Sam Weinig.
-
- Try to fix the GTK bot.
+ * runtime/MarkStack.cpp:
+ (JSC::MarkStack::reset):
+ * runtime/MarkStack.h:
+ (JSC::MarkStack::addOpaqueRoot):
+ (JSC::MarkStack::containsOpaqueRoot):
+ (JSC::MarkStack::opaqueRootCount):
+ (JSC::HeapRootMarker::markStack): New helper functions for managing the
+ set of opaque roots.
- * runtime/Heap.cpp:
- (JSC::Heap::Heap):
- (JSC::Heap::markRoots): Kids, remember to initialize your data members.
- Knowing is half the battle.
+ * runtime/WeakGCMap.h:
+ (JSC::WeakGCMap::finalize): Renamed to match parent class declaration.
-2011-01-14 Oliver Hunt <oliver@apple.com>
+2011-04-05 Balazs Kelemen <kbalazs@webkit.org>
- Reviewed by Stephanie Lewis.
+ Reviewed by Darin Adler.
- [jsfunfuzz] We should be clearing the lexers temporary character buffers when switching to strict mode
- https://bugs.webkit.org/show_bug.cgi?id=52501
+ Build fix for YarrParser.h
+ https://bugs.webkit.org/show_bug.cgi?id=57822
- Clear the temporary character buffers used for reading escaped characters and
- numbers.
+ * yarr/YarrParser.h:
+ (JSC::Yarr::Parser::CharacterClassParserDelegate::CharacterClassParserDelegate):
- * parser/Lexer.h:
- (JSC::Lexer::setOffset):
+2011-04-05 Steve Falkenburg <sfalken@apple.com>
-2011-01-14 Geoffrey Garen <ggaren@apple.com>
+ Follow-up Windows build fix.
+ Don't skip react-to-vsprops-changes.py for all production builds,
+ only those initiated via JavaScriptCore.make.
- Try to fix non-Dtrace builds: #include Tracing.h instead of TracingDtrace.h.
+ * JavaScriptCore.vcproj/JavaScriptCore.make:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
- * runtime/Heap.cpp:
+2011-04-05 Oliver Hunt <oliver@apple.com>
-2011-01-13 Geoffrey Garen <ggaren@apple.com>
+ Reviewed by Darin Adler.
- Reviewed by Oliver Hunt.
+ REGRESSION (r82849): 85,000+ JSC-related leaks seen on SnowLeopard Intel Leaks
+ https://bugs.webkit.org/show_bug.cgi?id=57857
- Split out a MarkedSpace strategy object from Heap.
- https://bugs.webkit.org/show_bug.cgi?id=52421
-
- SunSpider reports no change.
+ Whoops, accidentally removed a deref().
- * Android.mk:
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj: Updated our 7 build systems. Which is cool.
+ * bytecode/StructureStubInfo.cpp:
+ (JSC::StructureStubInfo::deref):
- * runtime/Heap.cpp:
- (JSC::Heap::Heap):
- (JSC::Heap::destroy):
- (JSC::Heap::recordExtraCost):
- (JSC::Heap::allocate):
- (JSC::Heap::markConservatively):
- (JSC::Heap::markRoots):
- (JSC::Heap::objectCount):
- (JSC::Heap::statistics):
- (JSC::Heap::size):
- (JSC::Heap::isBusy):
- (JSC::Heap::collectAllGarbage):
- (JSC::Heap::primaryHeapBegin):
- (JSC::Heap::primaryHeapEnd):
- * runtime/Heap.h:
- (JSC::Heap::globalData):
- (JSC::Heap::markedSpace):
- (JSC::Heap::isCellMarked):
- (JSC::Heap::checkMarkCell):
- (JSC::Heap::markCell): Moved all code pertaining to managing chunks of
- collector memory out of this class. Heap now just delegates to MarkedSpace.
+2011-04-05 Steve Falkenburg <sfalken@apple.com>
- * runtime/JSCell.h:
- (JSC::JSCell::Heap::heap): Updated for MarkedSpace delegation.
+ Windows build fix.
- * runtime/JSValue.h: Moved the ValueStringPair typedef to help with #includes.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: Add per-configuration vsprops files.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedCommon.vsprops: Removed inheritance from common.vsprops.
+ Set production environment variable before calling make.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedDebug.vsprops: Added.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedDebugAll.vsprops: Added.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedDebugCairoCFLite.vsprops: Added.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedProduction.vsprops: Added.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedRelease.vsprops: Added.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedReleaseCairoCFLite.vsprops: Added.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedReleasePGO.vsprops: Added.
- * runtime/MarkedSpace.cpp: Copied from runtime/Heap.cpp.
- (JSC::MarkedSpace::MarkedSpace):
- (JSC::MarkedSpace::destroy):
- (JSC::MarkedSpace::allocateBlock):
- (JSC::MarkedSpace::freeBlock):
- (JSC::MarkedSpace::allocate):
- (JSC::MarkedSpace::resizeBlocks):
- (JSC::MarkedSpace::growBlocks):
- (JSC::MarkedSpace::shrinkBlocks):
- (JSC::MarkedSpace::markConservatively):
- (JSC::MarkedSpace::clearMarkBits):
- (JSC::MarkedSpace::markedCells):
- (JSC::MarkedSpace::sweep):
- (JSC::MarkedSpace::objectCount):
- (JSC::MarkedSpace::addToStatistics):
- (JSC::MarkedSpace::statistics):
- (JSC::MarkedSpace::size):
- (JSC::MarkedSpace::reset):
- (JSC::MarkedSpace::primaryHeapBegin):
- (JSC::MarkedSpace::primaryHeapEnd):
- * runtime/MarkedSpace.h: Copied from runtime/Heap.h.
- (JSC::MarkedSpace::globalData):
- (JSC::MarkedSpace::didShrink):
- (JSC::MarkedSpace::cellBlock):
- (JSC::MarkedSpace::cellOffset):
- (JSC::MarkedSpace::isCellMarked):
- (JSC::MarkedSpace::checkMarkCell):
- (JSC::MarkedSpace::markCell): Moved all code pertaining to managing chunks of
- collector memory into this class.
-
- * runtime/MemoryStatistics.cpp:
- (JSC::heapStatistics):
- * runtime/MemoryStatistics.h: Updated for MarkedSpace delegation.
-
-2011-01-14 Oliver Hunt <oliver@apple.com>
+2011-04-05 Oliver Hunt <oliver@apple.com>
Reviewed by Gavin Barraclough.
- [jsfunfuzz] parser doesn't enforce continue restrictions correctly.
- https://bugs.webkit.org/show_bug.cgi?id=52493
-
- This patch reworks handling of break, continue and label statements
- to correctly handle all the valid and invalid cases. Previously certain
- errors would be missed by the parser in strict mode, but the bytecode
- generator needed to handle those cases for non-strict code so nothing
- failed, it simply became non-standard behaviour.
+ Make caches window show more info about non-jsobject GC values
+ https://bugs.webkit.org/show_bug.cgi?id=57874
- Now that we treat break and continue errors as early faults in non-strict
- mode as well that safety net has been removed so the parser bugs result in
- crashes at codegen time.
+ Add ClassInfo to the various internal JS types that currently
+ don't have any, and make the text for caches window show the
+ classname for non-JSObject instances.
- * parser/JSParser.cpp:
- (JSC::JSParser::ScopeLabelInfo::ScopeLabelInfo):
- (JSC::JSParser::next):
- (JSC::JSParser::nextTokenIsColon):
- (JSC::JSParser::continueIsValid):
- Continue is only valid in loops so we can't use breakIsValid()
- (JSC::JSParser::pushLabel):
- We now track whether the label is for a loop (and is therefore a
- valid target for continue.
- (JSC::JSParser::popLabel):
- (JSC::JSParser::getLabel):
- Replace hasLabel with getLabel so that we can validate the target
- when parsing continue statements.
- (JSC::JSParser::Scope::continueIsValid):
- (JSC::JSParser::Scope::pushLabel):
- (JSC::JSParser::Scope::getLabel):
- (JSC::JSParser::JSParser):
- (JSC::JSParser::parseBreakStatement):
- (JSC::JSParser::parseContinueStatement):
- (JSC::LabelInfo::LabelInfo):
- (JSC::JSParser::parseExpressionOrLabelStatement):
- Consecutive labels now get handled iteratively so that we can determine
- whether they're valid targets for continue.
- * parser/Lexer.cpp:
- (JSC::Lexer::nextTokenIsColon):
- * parser/Lexer.h:
- (JSC::Lexer::setOffset):
-
-2011-01-14 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by Adam Roben.
-
- Use the Windows thread pool instead of an extra thread for FastMalloc scavenging
- https://bugs.webkit.org/show_bug.cgi?id=45186
-
- * wtf/FastMalloc.cpp:
- (WTF::TCMalloc_PageHeap::scheduleScavenger): Added missing this pointer to CreateTimerQueueTimer().
-
-2011-01-14 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by Adam Roben.
-
- Use the Windows thread pool instead of an extra thread for FastMalloc scavenging
- https://bugs.webkit.org/show_bug.cgi?id=45186
-
- r75819 accidentally changed the initial state of the scavenge timer.
-
- * wtf/FastMalloc.cpp:
- (WTF::TCMalloc_PageHeap::initializeScavenger): Changed initial state of m_scavengingSuspended to true.
-
-2011-01-14 Patrick Gansterer <paroga@webkit.org>
-
- Unreviewed Windows Release build fix.
+ * runtime/Executable.cpp:
+ * runtime/Executable.h:
+ (JSC::ExecutableBase::createStructure):
+ (JSC::NativeExecutable::createStructure):
+ (JSC::NativeExecutable::NativeExecutable):
+ (JSC::EvalExecutable::createStructure):
+ (JSC::ProgramExecutable::createStructure):
+ (JSC::FunctionExecutable::createStructure):
+ * runtime/Heap.cpp:
+ (JSC::TypeCounter::typeName):
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::JSGlobalData):
+ * runtime/JSGlobalData.h:
+ * runtime/ScopeChain.cpp:
+ * runtime/ScopeChain.h:
+ (JSC::ScopeChainNode::createStructure):
+ * runtime/StructureChain.cpp:
+ * runtime/StructureChain.h:
+ (JSC::StructureChain::createStructure):
- * wtf/FastMalloc.cpp:
- (WTF::TCMalloc_PageHeap::scavengerTimerFired):
+2011-04-05 Nikolas Zimmermann <nzimmermann@rim.com>
-2011-01-14 Patrick Gansterer <paroga@webkit.org>
+ Reviewed by Andreas Kling.
- Unreviewed Windows Release build fix.
+ Cleanup StringConcatenate
+ https://bugs.webkit.org/show_bug.cgi?id=57836
- * wtf/FastMalloc.cpp:
- (WTF::TCMalloc_PageHeap::scavengerTimerFired):
+ Don't use PassRefPtr in local variables, properly store in RefPtrs and release on return.
+ Add a makeString() variant taking 9 arguments, needed by a follow-up patch.
-2011-01-14 Patrick Gansterer <paroga@webkit.org>
+ * wtf/text/StringConcatenate.h:
+ (WTF::tryMakeString):
+ (WTF::makeString):
- Reviewed by Adam Roben.
+2011-04-04 Sheriff Bot <webkit.review.bot@gmail.com>
- Use the Windows thread pool instead of an extra thread for FastMalloc scavenging
- https://bugs.webkit.org/show_bug.cgi?id=45186
+ Unreviewed, rolling out r82876.
+ http://trac.webkit.org/changeset/82876
+ https://bugs.webkit.org/show_bug.cgi?id=57816
- Use CreateTimerQueueTimer() to start periodicScavenge() and stop it with DeleteTimerQueueTimer().
+ Caused a lot of test crashes (Requested by tkent on #webkit).
+ * JavaScriptCore.exp:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
* wtf/FastMalloc.cpp:
- (WTF::TCMalloc_PageHeap::initializeScavenger):
+ (WTF::tryFastMalloc):
+ (WTF::fastMalloc):
+ (WTF::tryFastCalloc):
+ (WTF::fastCalloc):
+ (WTF::fastFree):
+ (WTF::tryFastRealloc):
+ (WTF::fastRealloc):
+ (WTF::fastMallocSize):
(WTF::TCMalloc_PageHeap::isScavengerSuspended):
(WTF::TCMalloc_PageHeap::scheduleScavenger):
- (WTF::TCMalloc_PageHeap::rescheduleScavenger):
(WTF::TCMalloc_PageHeap::suspendScavenger):
- (WTF::scavengerTimerFired):
- (WTF::TCMalloc_PageHeap::periodicScavenge):
(WTF::TCMalloc_PageHeap::signalScavenger):
+ (WTF::TCMallocStats::malloc):
+ (WTF::TCMallocStats::free):
+ (WTF::TCMallocStats::fastCalloc):
+ (WTF::TCMallocStats::tryFastCalloc):
+ (WTF::TCMallocStats::calloc):
+ (WTF::TCMallocStats::fastRealloc):
+ (WTF::TCMallocStats::tryFastRealloc):
+ (WTF::TCMallocStats::realloc):
+ (WTF::TCMallocStats::fastMallocSize):
+ * wtf/FastMalloc.h:
+ (WTF::Internal::fastMallocMatchValidationType):
+ (WTF::Internal::fastMallocMatchValidationValue):
+ (WTF::Internal::setFastMallocMatchValidationType):
+ (WTF::fastMallocMatchValidateFree):
+ * wtf/Platform.h:
-2011-01-14 Laszlo Gombos <laszlo.1.gombos@nokia.com>
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Align import/export directives
- https://bugs.webkit.org/show_bug.cgi?id=52208
-
- * API/JSBase.h: Align import/export directives with
- WebKit2/Shared/API/c/WKBase.h
-
-2011-01-14 Michael Saboff <msaboff@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Incorrect backtracking for nested alternatives
- https://bugs.webkit.org/show_bug.cgi?id=52387
-
- In the process of propigating a datalabel it wasn't getting connected
- to a destination when the destination was an indirect jump. Added
- code to recognize a direct backtrack destination that was an indirect
- jump and added mechanism to associate DataLabelPtrs with indirect
- jump entries.
- Removed dead method
- BacktrackDestination::linkDataLabelToHereIfExists()
-
- * yarr/YarrJIT.cpp:
- (JSC::Yarr::YarrGenerator::IndirectJumpEntry::IndirectJumpEntry):
- (JSC::Yarr::YarrGenerator::IndirectJumpEntry::addDataLabel):
- (JSC::Yarr::YarrGenerator::GenerationState::addIndirectJumpEntry):
- (JSC::Yarr::YarrGenerator::GenerationState::emitIndirectJumpTable):
- Changes to link indirect jumps with DataLabelPtr's.
- (JSC::Yarr::YarrGenerator::BacktrackDestination::clearSubDataLabelPtr):
- (JSC::Yarr::YarrGenerator::TermGenerationState::linkDataLabelToBacktrackIfExists):
- Updated to handle immediate linking of indirect jumps to
- DataLabelPtr.
- (JSC::Yarr::YarrGenerator::generateParenthesesDisjunction): Changed to
- reflect updated linkDataLabelToBacktrackIfExists().
-
-2011-01-14 Pavel Podivilov <podivilov@chromium.org>
-
- Reviewed by Yury Semikhatsky.
-
- Web Inspector: provide script column offset to frontend.
- https://bugs.webkit.org/show_bug.cgi?id=52377
-
- * parser/SourceCode.h:
- (JSC::SourceCode::SourceCode):
- (JSC::SourceCode::firstColumn):
-
-2011-01-13 Darin Adler <darin@apple.com>
-
- Reviewed by Geoff Garen.
-
- <rdar://problem/5469576> Use __PTK_FRAMEWORK_JAVASCRIPTCORE_KEY0 if available.
-
- * DerivedSources.make: Create a header file, HeaderDetection.h, that tells
- us whether pthread_machdep.h is available.
- * wtf/FastMalloc.cpp: If __PTK_FRAMEWORK_JAVASCRIPTCORE_KEY0 is available, then
- don't do the pthread_getspecific_function_pointer trick.
- (WTF::setThreadHeap): Ditto, but set thread-specific data.
- (WTF::TCMalloc_ThreadCache::GetThreadHeap): Ditto, but get rather than set.
-
-2011-01-13 Xan Lopez <xlopez@igalia.com>
-
- Reviewed by Gavin Barraclough.
-
- JIT requires VM overcommit (particularly on x86-64), Linux does not by default support this without swap?
- https://bugs.webkit.org/show_bug.cgi?id=42756
-
- The FixedVMPool Allocator does not work well on systems where
- allocating very large amounts of memory upfront is not reasonable,
- like Linux without overcommit enabled. As a workaround, on Linux,
- default to the values used in embedded environments (in the MB
- range), and only jump to the GB range if we detect at runtime that
- overcommit is enabled. Should fix crashes on Linux/x86_64 with
- less than 3 or 4GB of RAM.
-
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::free): use new variables for VM pool
- size and coalesce limit.
- (JSC::ExecutableAllocator::isValid): swap the variables from
- embedded to generic values at runtime, on linux, if overcommit is
- enabled.
- (JSC::ExecutableAllocator::underMemoryPressure): use new variables
- for VM pool size and coalesce limit.
-
-2011-01-12 Xan Lopez <xlopez@igalia.com>
-
- Reviewed by Martin Robinson.
-
- Add new Yarr.h header to the list file.
-
- * GNUmakefile.am: ditto.
-
-2011-01-12 Martin Robinson <mrobinson@igalia.com>
-
- Missing Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h in WebKitGtk tarball
- https://bugs.webkit.org/show_bug.cgi?id=52299
-
- * GNUmakefile.am: Fix the GTK+ build on ARMv7 by including missing source
- files in the source list.
+2011-04-04 Oliver Hunt <oliver@apple.com>
-2011-01-12 Peter Varga <pvarga@webkit.org>
+ Reviewed by Antti Koivisto.
- Reviewed by Gavin Barraclough.
+ Stop JSCell.h from including Structure.h
+ https://bugs.webkit.org/show_bug.cgi?id=57809
- Add Yarr.h to YARR
- https://bugs.webkit.org/show_bug.cgi?id=51021
+ * runtime/GetterSetter.h:
+ * runtime/JSAPIValueWrapper.h:
+ * runtime/JSCell.h:
+ (JSC::JSCell::JSValue::toThisObject):
+ * runtime/JSString.h:
+ * runtime/ScopeChain.h:
+ * runtime/Structure.h:
+ (JSC::JSCell::isObject):
+ (JSC::JSCell::isString):
+ (JSC::JSCell::classInfo):
+ (JSC::JSCell::createDummyStructure):
+ (JSC::JSValue::needsThisConversion):
+ (JSC::MarkStack::internalAppend):
+ * runtime/StructureChain.h:
- Move other common constants and functions from YARR's different files
- to Yarr.h.
- Use Yarr.h header instead of including other YARR headers where it
- is possible.
+2011-04-04 Oliver Hunt <oliver@apple.com>
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/RegExp.cpp:
- * yarr/Yarr.h: Added.
- * yarr/YarrInterpreter.cpp:
- * yarr/YarrInterpreter.h:
- * yarr/YarrJIT.cpp:
- (JSC::Yarr::jitCompile):
- (JSC::Yarr::execute):
- * yarr/YarrJIT.h:
- * yarr/YarrParser.h:
- * yarr/YarrPattern.cpp:
- (JSC::Yarr::YarrPattern::compile):
- (JSC::Yarr::YarrPattern::YarrPattern):
- * yarr/YarrPattern.h:
+ Fix clang build.
-2011-01-12 Sheriff Bot <webkit.review.bot@gmail.com>
+ * wtf/FastMalloc.cpp:
+ (WTF::fastMalloc):
+ (WTF::fastCalloc):
+ (WTF::fastRealloc):
- Unreviewed, rolling out r75595.
- http://trac.webkit.org/changeset/75595
- https://bugs.webkit.org/show_bug.cgi?id=52286
+2011-04-04 Oliver Hunt <oliver@apple.com>
- It broke fast/regex/pcre-test-1.html (Requested by Ossy on
- #webkit).
+ Remove accidental change to Platform.h
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/RegExp.cpp:
- * yarr/Yarr.h: Removed.
- * yarr/YarrInterpreter.cpp:
- * yarr/YarrInterpreter.h:
- * yarr/YarrJIT.cpp:
- (JSC::Yarr::jitCompile):
- * yarr/YarrJIT.h:
- (JSC::Yarr::execute):
- * yarr/YarrParser.h:
- * yarr/YarrPattern.cpp:
- (JSC::Yarr::compile):
- (JSC::Yarr::YarrPattern::YarrPattern):
- * yarr/YarrPattern.h:
+ * wtf/Platform.h:
-2011-01-12 Peter Varga <pvarga@webkit.org>
+2011-04-04 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Gavin Barraclough.
+ Reviewed by Oliver Hunt.
- Add Yarr.h to YARR
- https://bugs.webkit.org/show_bug.cgi?id=51021
+ Fixed a weak-handle-related leak in RegisterFile
+ https://bugs.webkit.org/show_bug.cgi?id=57793
- Move other common constants and functions from YARR's different files
- to Yarr.h.
- Use Yarr.h header instead of including other YARR headers where it
- is possible.
+ * interpreter/RegisterFile.cpp: Nixed leaky GlobalObjectNotifier.
+ * interpreter/RegisterFile.h:
+ (JSC::RegisterFile::GlobalObjectOwner::finalize):
+ (JSC::RegisterFile::RegisterFile): Replaced GlobalObjectNotifier with
+ a per-RegisterFile weak handle owner, which does not leak.
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/RegExp.cpp:
- * yarr/Yarr.h: Added.
- * yarr/YarrInterpreter.cpp:
- * yarr/YarrInterpreter.h:
- * yarr/YarrJIT.cpp:
- (JSC::Yarr::jitCompile):
- (JSC::Yarr::execute):
- * yarr/YarrJIT.h:
- * yarr/YarrParser.h:
- * yarr/YarrPattern.cpp:
- (JSC::Yarr::YarrPattern::compile):
- (JSC::Yarr::YarrPattern::YarrPattern):
- * yarr/YarrPattern.h:
+ * runtime/WeakGCPtr.h:
+ (JSC::WeakGCPtr::set): Allow set() to take a context argument, since
+ RegisterFile now needs this. (Seems like it was an accidental omission
+ all along.)
-2011-01-11 Michael Saboff <msaboff@apple.com>
+2011-04-04 Oliver Hunt <oliver@apple.com>
Reviewed by Geoffrey Garen.
- Missing call to popTempSortVector() for exception case in JSArray::sort.
- https://bugs.webkit.org/show_bug.cgi?id=50718
-
- Fix to patch of 50718 that added pushTempSortVector() and
- popTempSortVector() to JSArray::sort() to mark elements during sort.
- Need to add popTempSortVector() for the return case if toString()
- had an exception.
-
- * runtime/JSArray.cpp:
- (JSC::JSArray::sort): Added popTempSortVector()
-
-2011-01-11 Xan Lopez <xlopez@igalia.com>
+ Make malloc validation useful
+ https://bugs.webkit.org/show_bug.cgi?id=57502
- Reviewed by Darin Adler.
+ This patch changes FAST_MALLOC_MATCH_VALIDATION with a general
+ corruption check that tags the beginning and end of all allocations
+ to check for write overflows and overwrites the contents of
+ memory on free in order to (hopefully) show up use-after-free issues
+ sooner.
- Microoptimization in ~JSString
- https://bugs.webkit.org/show_bug.cgi?id=52222
+ We also turn it on by default for debug builds.
- The case where m_fibers is 0 seems to be the most common one
- (almost 1/2 of the time, followed at some distance by m_fibers = 1
- in 1/4 of the cases in a typical SunSpider execution). We can save
- one comparison in this common case by doing a bit of refactoring
- in the JSString destructor; overall a 0.3% progression, but only
- the string tests show improvement.
+ * JavaScriptCore.exp:
+ * wtf/FastMalloc.cpp:
+ (WTF::tryFastMalloc):
+ (WTF::fastMalloc):
+ (WTF::tryFastCalloc):
+ (WTF::fastCalloc):
+ (WTF::fastFree):
+ (WTF::tryFastRealloc):
+ (WTF::fastRealloc):
+ (WTF::TCMalloc_PageHeap::isScavengerSuspended):
+ (WTF::TCMalloc_PageHeap::scheduleScavenger):
+ (WTF::TCMalloc_PageHeap::suspendScavenger):
+ (WTF::TCMalloc_PageHeap::signalScavenger):
+ (WTF::TCMallocStats::malloc):
+ (WTF::TCMallocStats::free):
+ (WTF::TCMallocStats::fastCalloc):
+ (WTF::TCMallocStats::tryFastCalloc):
+ (WTF::TCMallocStats::calloc):
+ (WTF::TCMallocStats::fastRealloc):
+ (WTF::TCMallocStats::tryFastRealloc):
+ (WTF::TCMallocStats::realloc):
+ * wtf/FastMalloc.h:
+ (WTF::Internal::fastMallocValidationHeader):
+ (WTF::Internal::fastMallocValidationSuffix):
+ (WTF::Internal::fastMallocMatchValidationType):
+ (WTF::Internal::setFastMallocMatchValidationType):
+ (WTF::fastMallocMatchValidateFree):
+ (WTF::fastMallocValidate):
+ * wtf/Platform.h:
- * runtime/JSString.h:
- (JSC::RopeBuilder::~JSString):
+2011-04-04 Geoffrey Garen <ggaren@apple.com>
-2011-01-10 Michael Saboff <msaboff@apple.com>
+ Reviewed by Oliver Hunt.
- Reviewed by Geoffrey Garen.
+ Renamed clearWeakPointers => updateWeakHandles and removed misleading comment
+ https://bugs.webkit.org/show_bug.cgi?id=57790
- ASSERTION Failure in JSC::binaryChop
- https://bugs.webkit.org/show_bug.cgi?id=25614
+ * collector/handles/HandleHeap.cpp:
+ (JSC::HandleHeap::updateWeakHandles): Updated for rename.
- Changed JITStubs::cti_register_file_check() to use the current stack's
- return PC to find the bytecode for handling the exception in the prior
- frame. Also added the appropriate arrity check routine call to the
- JIT to bytecode vector (m_callReturnIndexVector) in the CodeBlock.
+ * collector/handles/HandleHeap.h: Removed comment claiming that this
+ function should only be called during teardown, because it's actually
+ called after every GC pass.
- * jit/JIT.cpp:
- (JSC::JIT::privateCompile): Changed the arrity check call location
- so that it gets added to the m_calls list so that it's included in
- CodeBlock::m_callReturnIndexVector.
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION): Use the current call frame's return PC.
+ * runtime/Heap.cpp:
+ (JSC::Heap::destroy):
+ (JSC::Heap::markRoots): Updated for rename.
-2011-01-10 Daniel Bates <dbates@rim.com>
+2011-04-04 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Martin Robinson.
+ Reviewed by Oliver Hunt.
- Remove extraneous COMPILER(GCC) condition when checking GCC_VERSION_AT_LEAST()
- https://bugs.webkit.org/show_bug.cgi?id=52178
+ Standardized handling of handles for immediate values
+ https://bugs.webkit.org/show_bug.cgi?id=57788
- It is sufficient to test GCC_VERSION_AT_LEAST() instead of both COMPILER(GCC) and
- GCC_VERSION_AT_LEAST(). Notice GCC_VERSION_AT_LEAST() is defined to be 0 when we
- are not compiling with GCC.
+ * collector/handles/HandleHeap.cpp:
+ (JSC::HandleHeap::clearWeakPointers): Don't check for null or non-cell
+ values here, because our write barrier guarantees that such values are
+ not in the weak list.
- Fixes style issues at the callsites (i.e. replace comma with comma-space in
- macro function argument list). Also, makes a spelling correction in a comment.
+ (JSC::HandleHeap::writeBarrier): Standardized on checking for null before
+ checking for cell, and on using early return instead of if/else.
- * jit/ExecutableAllocator.h:
- (JSC::ExecutableAllocator::cacheFlush):
- * wtf/Platform.h:
+ * collector/handles/HandleHeap.h:
+ (JSC::HandleHeap::deallocate):
+ (JSC::HandleHeap::makeWeak): Ditto.
-2011-01-10 Geoffrey Garen <ggaren@apple.com>
+2011-04-04 Geoffrey Garen <ggaren@apple.com>
- Build fix: removed some uses of nextNumber that I missed last time.
-
- * runtime/Heap.cpp:
- (JSC::Heap::reset):
- (JSC::Heap::collectAllGarbage):
+ Not reviewed.
-2011-01-10 Daniel Bates <dbates@rim.com>
+ Removed a redundant variable from HandleHeap
+ https://bugs.webkit.org/show_bug.cgi?id=57786
+
+ Forgot to commit the file that actually removes the data member!
+
+ * collector/handles/HandleHeap.h:
- Reviewed by Darin Adler.
+2011-04-04 Geoffrey Garen <ggaren@apple.com>
- Use __builtin_expect when compiling using RVCT in GNU mode
- https://bugs.webkit.org/show_bug.cgi?id=51866
+ Reviewed by Oliver Hunt.
- We should only use __builtin_expect if we are compiling with GCC or RVCT 3 or higher in GNU mode
- as pointed out by Siddharth Mathur per <http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0202h/Cjabddedbde.html>.
+ Removed a redundant variable from HandleHeap
+ https://bugs.webkit.org/show_bug.cgi?id=57786
+
+ We don't need a specific variable to indicate that we're in the middle
+ of the finalization phase, since m_nextToFinalize already does this.
- * wtf/AlwaysInline.h:
- * wtf/Platform.h: Removed define WTF_COMPILER_RVCT4_OR_GREATER. Instead added macro
- function RVCT_VERSION_AT_LEAST so that we can test for an arbitrary minimum RVCT
- version.
+ * collector/handles/HandleHeap.cpp:
+ (JSC::HandleHeap::HandleHeap):
+ (JSC::HandleHeap::clearWeakPointers):
+ (JSC::HandleHeap::writeBarrier):
-2011-01-10 Geoffrey Garen <ggaren@apple.com>
+2011-04-04 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
- Moved Collector.* => Heap.*, since the file contains a class named "Heap".
-
- * API/JSCallbackObject.cpp:
- * Android.mk:
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * interpreter/Interpreter.cpp:
+ Renamed Finalizer => WeakHandleOwner (in preparation for adding a reachability callback)
+ https://bugs.webkit.org/show_bug.cgi?id=57775
+
+ Also renamed noFinalizer => emptyWeakOwner, since this is really an
+ optimization for a weak owner with empty callbacks.
+
+ * collector/handles/HandleHeap.cpp:
+ (JSC::HandleHeap::clearWeakPointers): Updated for renames. Removed
+ redundant initialization of m_nextToFinalize. Moved deletion check inside
+ weak owner check, since the weak owner can't delete the node if there is
+ no weak owner!
+
+ * collector/handles/HandleHeap.h:
+ (JSC::WeakHandleOwner::~WeakHandleOwner):
+ (JSC::HandleHeap::makeWeak): Updated for renames.
+
+ (JSC::HandleHeap::hasWeakOwner): Changed getFinalizer to hasWeakOwner,
+ to clarify this function's role in assertions.
+
+ (JSC::HandleHeap::Node::Node):
+ (JSC::HandleHeap::Node::makeWeak):
+ (JSC::HandleHeap::Node::isWeak):
+ (JSC::HandleHeap::Node::weakOwner):
+ (JSC::HandleHeap::Node::weakOwnerContext):
+ (JSC::HandleHeap::Node::emptyWeakOwner):
+ * interpreter/RegisterFile.cpp:
+ (JSC::RegisterFile::globalObjectCollectedNotifier):
* interpreter/RegisterFile.h:
- * jit/JITStubs.cpp:
- * runtime/Collector.cpp: Removed.
- * runtime/Collector.h: Removed.
- * runtime/CollectorHeapIterator.h:
- * runtime/GCActivityCallbackCF.cpp:
- * runtime/Heap.cpp: Copied from JavaScriptCore/runtime/Collector.cpp.
- * runtime/Heap.h: Copied from JavaScriptCore/runtime/Collector.h.
- * runtime/InitializeThreading.cpp:
- * runtime/JSCell.h:
- * runtime/JSGlobalData.cpp:
- * runtime/JSGlobalData.h:
- * runtime/JSLock.cpp:
- * runtime/JSNumberCell.h:
- * runtime/MachineStackMarker.cpp:
- * runtime/MemoryStatistics.h:
- * runtime/Protect.h:
- * runtime/UString.cpp:
* runtime/WeakGCMap.h:
* runtime/WeakGCPtr.h:
+ (JSC::WeakGCPtr::WeakGCPtr):
+ (JSC::WeakGCPtr::set): Updated for renames.
-2011-01-10 Xan Lopez <xlopez@igalia.com>
-
- Reviewed by Gavin Barraclough.
-
- Remove unused isString() case in JSString::toPrimitiveString()
- https://bugs.webkit.org/show_bug.cgi?id=52167
-
- We never call toPrimitiveString() with strings, so remove the
- check and add an ASSERT ensuring this never happens. 0.7% overall
- progression in sunspider, since one of the call sites is very hot.
-
- * runtime/JSString.h:
- (JSC::JSValue::toPrimitiveString):
-
-2011-01-10 Peter Varga <pvarga@inf.u-szeged.hu>
-
- Reviewed by Gavin Barraclough.
-
- Rename the existing YARR files and classes
- https://bugs.webkit.org/show_bug.cgi?id=51872
-
- Replace the "Regex" prefix with "Yarr" in the name of YARR files and classes.
-
- * Android.mk:
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/RegExp.cpp:
- (JSC::RegExp::compile):
- (JSC::RegExp::match):
- (JSC::RegExp::printTraceData):
- * yarr/YarrInterpreter.cpp: Renamed from Source/JavaScriptCore/yarr/RegexInterpreter.cpp.
- (JSC::Yarr::Interpreter::appendParenthesesDisjunctionContext):
- (JSC::Yarr::Interpreter::popParenthesesDisjunctionContext):
- (JSC::Yarr::Interpreter::DisjunctionContext::DisjunctionContext):
- (JSC::Yarr::Interpreter::DisjunctionContext::operator new):
- (JSC::Yarr::Interpreter::allocDisjunctionContext):
- (JSC::Yarr::Interpreter::freeDisjunctionContext):
- (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::ParenthesesDisjunctionContext):
- (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::operator new):
- (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::restoreOutput):
- (JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::getDisjunctionContext):
- (JSC::Yarr::Interpreter::allocParenthesesDisjunctionContext):
- (JSC::Yarr::Interpreter::freeParenthesesDisjunctionContext):
- (JSC::Yarr::Interpreter::InputStream::InputStream):
- (JSC::Yarr::Interpreter::InputStream::next):
- (JSC::Yarr::Interpreter::InputStream::rewind):
- (JSC::Yarr::Interpreter::InputStream::read):
- (JSC::Yarr::Interpreter::InputStream::readPair):
- (JSC::Yarr::Interpreter::InputStream::readChecked):
- (JSC::Yarr::Interpreter::InputStream::reread):
- (JSC::Yarr::Interpreter::InputStream::prev):
- (JSC::Yarr::Interpreter::InputStream::getPos):
- (JSC::Yarr::Interpreter::InputStream::setPos):
- (JSC::Yarr::Interpreter::InputStream::atStart):
- (JSC::Yarr::Interpreter::InputStream::atEnd):
- (JSC::Yarr::Interpreter::InputStream::checkInput):
- (JSC::Yarr::Interpreter::InputStream::uncheckInput):
- (JSC::Yarr::Interpreter::InputStream::isNotAvailableInput):
- (JSC::Yarr::Interpreter::testCharacterClass):
- (JSC::Yarr::Interpreter::checkCharacter):
- (JSC::Yarr::Interpreter::checkCasedCharacter):
- (JSC::Yarr::Interpreter::checkCharacterClass):
- (JSC::Yarr::Interpreter::tryConsumeBackReference):
- (JSC::Yarr::Interpreter::matchAssertionBOL):
- (JSC::Yarr::Interpreter::matchAssertionEOL):
- (JSC::Yarr::Interpreter::matchAssertionWordBoundary):
- (JSC::Yarr::Interpreter::backtrackPatternCharacter):
- (JSC::Yarr::Interpreter::backtrackPatternCasedCharacter):
- (JSC::Yarr::Interpreter::matchCharacterClass):
- (JSC::Yarr::Interpreter::backtrackCharacterClass):
- (JSC::Yarr::Interpreter::matchBackReference):
- (JSC::Yarr::Interpreter::backtrackBackReference):
- (JSC::Yarr::Interpreter::recordParenthesesMatch):
- (JSC::Yarr::Interpreter::resetMatches):
- (JSC::Yarr::Interpreter::parenthesesDoBacktrack):
- (JSC::Yarr::Interpreter::matchParenthesesOnceBegin):
- (JSC::Yarr::Interpreter::matchParenthesesOnceEnd):
- (JSC::Yarr::Interpreter::backtrackParenthesesOnceBegin):
- (JSC::Yarr::Interpreter::backtrackParenthesesOnceEnd):
- (JSC::Yarr::Interpreter::matchParenthesesTerminalBegin):
- (JSC::Yarr::Interpreter::matchParenthesesTerminalEnd):
- (JSC::Yarr::Interpreter::backtrackParenthesesTerminalBegin):
- (JSC::Yarr::Interpreter::backtrackParenthesesTerminalEnd):
- (JSC::Yarr::Interpreter::matchParentheticalAssertionBegin):
- (JSC::Yarr::Interpreter::matchParentheticalAssertionEnd):
- (JSC::Yarr::Interpreter::backtrackParentheticalAssertionBegin):
- (JSC::Yarr::Interpreter::backtrackParentheticalAssertionEnd):
- (JSC::Yarr::Interpreter::matchParentheses):
- (JSC::Yarr::Interpreter::backtrackParentheses):
- (JSC::Yarr::Interpreter::lookupForBeginChars):
- (JSC::Yarr::Interpreter::matchDisjunction):
- (JSC::Yarr::Interpreter::matchNonZeroDisjunction):
- (JSC::Yarr::Interpreter::interpret):
- (JSC::Yarr::Interpreter::Interpreter):
- (JSC::Yarr::ByteCompiler::ParenthesesStackEntry::ParenthesesStackEntry):
- (JSC::Yarr::ByteCompiler::ByteCompiler):
- (JSC::Yarr::ByteCompiler::compile):
- (JSC::Yarr::ByteCompiler::checkInput):
- (JSC::Yarr::ByteCompiler::assertionBOL):
- (JSC::Yarr::ByteCompiler::assertionEOL):
- (JSC::Yarr::ByteCompiler::assertionWordBoundary):
- (JSC::Yarr::ByteCompiler::atomPatternCharacter):
- (JSC::Yarr::ByteCompiler::atomCharacterClass):
- (JSC::Yarr::ByteCompiler::atomBackReference):
- (JSC::Yarr::ByteCompiler::atomParenthesesOnceBegin):
- (JSC::Yarr::ByteCompiler::atomParenthesesTerminalBegin):
- (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternBegin):
- (JSC::Yarr::ByteCompiler::atomParentheticalAssertionBegin):
- (JSC::Yarr::ByteCompiler::atomParentheticalAssertionEnd):
- (JSC::Yarr::ByteCompiler::popParenthesesStack):
- (JSC::Yarr::ByteCompiler::dumpDisjunction):
- (JSC::Yarr::ByteCompiler::closeAlternative):
- (JSC::Yarr::ByteCompiler::closeBodyAlternative):
- (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternEnd):
- (JSC::Yarr::ByteCompiler::atomParenthesesOnceEnd):
- (JSC::Yarr::ByteCompiler::atomParenthesesTerminalEnd):
- (JSC::Yarr::ByteCompiler::regexBegin):
- (JSC::Yarr::ByteCompiler::regexEnd):
- (JSC::Yarr::ByteCompiler::alternativeBodyDisjunction):
- (JSC::Yarr::ByteCompiler::alternativeDisjunction):
- (JSC::Yarr::ByteCompiler::emitDisjunction):
- (JSC::Yarr::byteCompile):
- (JSC::Yarr::interpret):
- * yarr/YarrInterpreter.h: Renamed from Source/JavaScriptCore/yarr/RegexInterpreter.h.
- (JSC::Yarr::ByteTerm::ByteTerm):
- (JSC::Yarr::ByteTerm::BOL):
- (JSC::Yarr::ByteTerm::CheckInput):
- (JSC::Yarr::ByteTerm::EOL):
- (JSC::Yarr::ByteTerm::WordBoundary):
- (JSC::Yarr::ByteTerm::BackReference):
- (JSC::Yarr::ByteTerm::BodyAlternativeBegin):
- (JSC::Yarr::ByteTerm::BodyAlternativeDisjunction):
- (JSC::Yarr::ByteTerm::BodyAlternativeEnd):
- (JSC::Yarr::ByteTerm::AlternativeBegin):
- (JSC::Yarr::ByteTerm::AlternativeDisjunction):
- (JSC::Yarr::ByteTerm::AlternativeEnd):
- (JSC::Yarr::ByteTerm::SubpatternBegin):
- (JSC::Yarr::ByteTerm::SubpatternEnd):
- (JSC::Yarr::ByteTerm::invert):
- (JSC::Yarr::ByteTerm::capture):
- (JSC::Yarr::ByteDisjunction::ByteDisjunction):
- (JSC::Yarr::BytecodePattern::BytecodePattern):
- (JSC::Yarr::BytecodePattern::~BytecodePattern):
- * yarr/YarrJIT.cpp: Renamed from Source/JavaScriptCore/yarr/RegexJIT.cpp.
- (JSC::Yarr::YarrGenerator::optimizeAlternative):
- (JSC::Yarr::YarrGenerator::matchCharacterClassRange):
- (JSC::Yarr::YarrGenerator::matchCharacterClass):
- (JSC::Yarr::YarrGenerator::jumpIfNoAvailableInput):
- (JSC::Yarr::YarrGenerator::jumpIfAvailableInput):
- (JSC::Yarr::YarrGenerator::checkInput):
- (JSC::Yarr::YarrGenerator::atEndOfInput):
- (JSC::Yarr::YarrGenerator::notAtEndOfInput):
- (JSC::Yarr::YarrGenerator::jumpIfCharEquals):
- (JSC::Yarr::YarrGenerator::jumpIfCharNotEquals):
- (JSC::Yarr::YarrGenerator::readCharacter):
- (JSC::Yarr::YarrGenerator::storeToFrame):
- (JSC::Yarr::YarrGenerator::storeToFrameWithPatch):
- (JSC::Yarr::YarrGenerator::loadFromFrame):
- (JSC::Yarr::YarrGenerator::loadFromFrameAndJump):
- (JSC::Yarr::YarrGenerator::IndirectJumpEntry::IndirectJumpEntry):
- (JSC::Yarr::YarrGenerator::IndirectJumpEntry::addJump):
- (JSC::Yarr::YarrGenerator::AlternativeBacktrackRecord::AlternativeBacktrackRecord):
- (JSC::Yarr::YarrGenerator::GenerationState::GenerationState):
- (JSC::Yarr::YarrGenerator::GenerationState::addIndirectJumpEntry):
- (JSC::Yarr::YarrGenerator::GenerationState::emitIndirectJumpTable):
- (JSC::Yarr::YarrGenerator::GenerationState::incrementParenNestingLevel):
- (JSC::Yarr::YarrGenerator::GenerationState::decrementParenNestingLevel):
- (JSC::Yarr::YarrGenerator::GenerationState::addParenthesesTail):
- (JSC::Yarr::YarrGenerator::GenerationState::emitParenthesesTail):
- (JSC::Yarr::YarrGenerator::GenerationState::addJumpToNextInteration):
- (JSC::Yarr::YarrGenerator::GenerationState::addJumpsToNextInteration):
- (JSC::Yarr::YarrGenerator::GenerationState::addDataLabelToNextIteration):
- (JSC::Yarr::YarrGenerator::GenerationState::linkToNextIteration):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::BacktrackDestination):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::clear):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::clearDataLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::hasDestination):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::isStackOffset):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::isLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::isJumpList):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::hasDataLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::copyTarget):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::copyTo):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::addBacktrackJump):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::setStackOffset):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::setLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::setNextBacktrackLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::copyBacktrackToLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::setBacktrackToLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::setBacktrackJumpList):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::setBacktrackSourceLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::setDataLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::setSubDataLabelPtr):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::linkToNextBacktrack):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::getStackOffset):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::getLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::getBacktrackJumps):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::getDataLabel):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::jumpToBacktrack):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::linkDataLabelToHereIfExists):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::plantJumpToBacktrackIfExists):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::linkAlternativeBacktracks):
- (JSC::Yarr::YarrGenerator::BacktrackDestination::linkAlternativeBacktracksTo):
- (JSC::Yarr::YarrGenerator::TermGenerationState::TermGenerationState):
- (JSC::Yarr::YarrGenerator::TermGenerationState::resetAlternative):
- (JSC::Yarr::YarrGenerator::TermGenerationState::alternativeValid):
- (JSC::Yarr::YarrGenerator::TermGenerationState::nextAlternative):
- (JSC::Yarr::YarrGenerator::TermGenerationState::alternative):
- (JSC::Yarr::YarrGenerator::TermGenerationState::isLastAlternative):
- (JSC::Yarr::YarrGenerator::TermGenerationState::resetTerm):
- (JSC::Yarr::YarrGenerator::TermGenerationState::termValid):
- (JSC::Yarr::YarrGenerator::TermGenerationState::nextTerm):
- (JSC::Yarr::YarrGenerator::TermGenerationState::term):
- (JSC::Yarr::YarrGenerator::TermGenerationState::isLastTerm):
- (JSC::Yarr::YarrGenerator::TermGenerationState::getSubParenNum):
- (JSC::Yarr::YarrGenerator::TermGenerationState::isMainDisjunction):
- (JSC::Yarr::YarrGenerator::TermGenerationState::setParenthesesTail):
- (JSC::Yarr::YarrGenerator::TermGenerationState::getParenthesesTail):
- (JSC::Yarr::YarrGenerator::TermGenerationState::lookaheadTerm):
- (JSC::Yarr::YarrGenerator::TermGenerationState::isSinglePatternCharacterLookaheadTerm):
- (JSC::Yarr::YarrGenerator::TermGenerationState::inputOffset):
- (JSC::Yarr::YarrGenerator::TermGenerationState::clearBacktrack):
- (JSC::Yarr::YarrGenerator::TermGenerationState::jumpToBacktrack):
- (JSC::Yarr::YarrGenerator::TermGenerationState::plantJumpToBacktrackIfExists):
- (JSC::Yarr::YarrGenerator::TermGenerationState::linkDataLabelToBacktrackIfExists):
- (JSC::Yarr::YarrGenerator::TermGenerationState::addBacktrackJump):
- (JSC::Yarr::YarrGenerator::TermGenerationState::setBacktrackDataLabel):
- (JSC::Yarr::YarrGenerator::TermGenerationState::setBackTrackStackOffset):
- (JSC::Yarr::YarrGenerator::TermGenerationState::setBacktrackLabel):
- (JSC::Yarr::YarrGenerator::TermGenerationState::linkAlternativeBacktracks):
- (JSC::Yarr::YarrGenerator::TermGenerationState::linkAlternativeBacktracksTo):
- (JSC::Yarr::YarrGenerator::TermGenerationState::setBacktrackLink):
- (JSC::Yarr::YarrGenerator::TermGenerationState::chainBacktracks):
- (JSC::Yarr::YarrGenerator::TermGenerationState::chainBacktrackJumps):
- (JSC::Yarr::YarrGenerator::TermGenerationState::getBacktrackDestination):
- (JSC::Yarr::YarrGenerator::TermGenerationState::propagateBacktrackingFrom):
- (JSC::Yarr::YarrGenerator::ParenthesesTail::ParenthesesTail):
- (JSC::Yarr::YarrGenerator::ParenthesesTail::processBacktracks):
- (JSC::Yarr::YarrGenerator::ParenthesesTail::setNextIteration):
- (JSC::Yarr::YarrGenerator::ParenthesesTail::addAfterParenJump):
- (JSC::Yarr::YarrGenerator::ParenthesesTail::generateCode):
- (JSC::Yarr::YarrGenerator::generateAssertionBOL):
- (JSC::Yarr::YarrGenerator::generateAssertionEOL):
- (JSC::Yarr::YarrGenerator::matchAssertionWordchar):
- (JSC::Yarr::YarrGenerator::generateAssertionWordBoundary):
- (JSC::Yarr::YarrGenerator::generatePatternCharacterSingle):
- (JSC::Yarr::YarrGenerator::generatePatternCharacterPair):
- (JSC::Yarr::YarrGenerator::generatePatternCharacterFixed):
- (JSC::Yarr::YarrGenerator::generatePatternCharacterGreedy):
- (JSC::Yarr::YarrGenerator::generatePatternCharacterNonGreedy):
- (JSC::Yarr::YarrGenerator::generateCharacterClassSingle):
- (JSC::Yarr::YarrGenerator::generateCharacterClassFixed):
- (JSC::Yarr::YarrGenerator::generateCharacterClassGreedy):
- (JSC::Yarr::YarrGenerator::generateCharacterClassNonGreedy):
- (JSC::Yarr::YarrGenerator::generateParenthesesDisjunction):
- (JSC::Yarr::YarrGenerator::generateParenthesesSingle):
- (JSC::Yarr::YarrGenerator::generateParenthesesGreedyNoBacktrack):
- (JSC::Yarr::YarrGenerator::generateParentheticalAssertion):
- (JSC::Yarr::YarrGenerator::generateTerm):
- (JSC::Yarr::YarrGenerator::generateDisjunction):
- (JSC::Yarr::YarrGenerator::generateEnter):
- (JSC::Yarr::YarrGenerator::generateReturn):
- (JSC::Yarr::YarrGenerator::YarrGenerator):
- (JSC::Yarr::YarrGenerator::generate):
- (JSC::Yarr::YarrGenerator::compile):
- (JSC::Yarr::jitCompile):
- * yarr/YarrJIT.h: Renamed from Source/JavaScriptCore/yarr/RegexJIT.h.
- (JSC::Yarr::YarrCodeBlock::YarrCodeBlock):
- (JSC::Yarr::YarrCodeBlock::~YarrCodeBlock):
- (JSC::Yarr::YarrCodeBlock::setFallBack):
- (JSC::Yarr::YarrCodeBlock::isFallBack):
- (JSC::Yarr::YarrCodeBlock::set):
- (JSC::Yarr::YarrCodeBlock::execute):
- (JSC::Yarr::YarrCodeBlock::getAddr):
- (JSC::Yarr::execute):
- * yarr/YarrParser.h: Renamed from Source/JavaScriptCore/yarr/RegexParser.h.
- (JSC::Yarr::Parser::CharacterClassParserDelegate::CharacterClassParserDelegate):
- (JSC::Yarr::Parser::CharacterClassParserDelegate::begin):
- (JSC::Yarr::Parser::CharacterClassParserDelegate::atomPatternCharacter):
- (JSC::Yarr::Parser::CharacterClassParserDelegate::atomBuiltInCharacterClass):
- (JSC::Yarr::Parser::CharacterClassParserDelegate::end):
- (JSC::Yarr::Parser::CharacterClassParserDelegate::assertionWordBoundary):
- (JSC::Yarr::Parser::CharacterClassParserDelegate::atomBackReference):
- (JSC::Yarr::Parser::Parser):
- (JSC::Yarr::Parser::parseEscape):
- (JSC::Yarr::Parser::parseAtomEscape):
- (JSC::Yarr::Parser::parseCharacterClassEscape):
- (JSC::Yarr::Parser::parseCharacterClass):
- (JSC::Yarr::Parser::parseParenthesesBegin):
- (JSC::Yarr::Parser::parseParenthesesEnd):
- (JSC::Yarr::Parser::parseQuantifier):
- (JSC::Yarr::Parser::parseTokens):
- (JSC::Yarr::Parser::parse):
- (JSC::Yarr::Parser::saveState):
- (JSC::Yarr::Parser::restoreState):
- (JSC::Yarr::Parser::atEndOfPattern):
- (JSC::Yarr::Parser::peek):
- (JSC::Yarr::Parser::peekIsDigit):
- (JSC::Yarr::Parser::peekDigit):
- (JSC::Yarr::Parser::consume):
- (JSC::Yarr::Parser::consumeDigit):
- (JSC::Yarr::Parser::consumeNumber):
- (JSC::Yarr::Parser::consumeOctal):
- (JSC::Yarr::Parser::tryConsume):
- (JSC::Yarr::Parser::tryConsumeHex):
- (JSC::Yarr::parse):
- * yarr/YarrPattern.cpp: Renamed from Source/JavaScriptCore/yarr/RegexPattern.cpp.
- (JSC::Yarr::CharacterClassConstructor::CharacterClassConstructor):
- (JSC::Yarr::CharacterClassConstructor::reset):
- (JSC::Yarr::CharacterClassConstructor::append):
- (JSC::Yarr::CharacterClassConstructor::putChar):
- (JSC::Yarr::CharacterClassConstructor::isUnicodeUpper):
- (JSC::Yarr::CharacterClassConstructor::isUnicodeLower):
- (JSC::Yarr::CharacterClassConstructor::putRange):
- (JSC::Yarr::CharacterClassConstructor::charClass):
- (JSC::Yarr::CharacterClassConstructor::addSorted):
- (JSC::Yarr::CharacterClassConstructor::addSortedRange):
- (JSC::Yarr::BeginCharHelper::BeginCharHelper):
- (JSC::Yarr::BeginCharHelper::addBeginChar):
- (JSC::Yarr::BeginCharHelper::merge):
- (JSC::Yarr::BeginCharHelper::addCharacter):
- (JSC::Yarr::BeginCharHelper::linkHotTerms):
- (JSC::Yarr::YarrPatternConstructor::YarrPatternConstructor):
- (JSC::Yarr::YarrPatternConstructor::~YarrPatternConstructor):
- (JSC::Yarr::YarrPatternConstructor::reset):
- (JSC::Yarr::YarrPatternConstructor::assertionBOL):
- (JSC::Yarr::YarrPatternConstructor::assertionEOL):
- (JSC::Yarr::YarrPatternConstructor::assertionWordBoundary):
- (JSC::Yarr::YarrPatternConstructor::atomPatternCharacter):
- (JSC::Yarr::YarrPatternConstructor::atomBuiltInCharacterClass):
- (JSC::Yarr::YarrPatternConstructor::atomCharacterClassBegin):
- (JSC::Yarr::YarrPatternConstructor::atomCharacterClassAtom):
- (JSC::Yarr::YarrPatternConstructor::atomCharacterClassRange):
- (JSC::Yarr::YarrPatternConstructor::atomCharacterClassBuiltIn):
- (JSC::Yarr::YarrPatternConstructor::atomCharacterClassEnd):
- (JSC::Yarr::YarrPatternConstructor::atomParenthesesSubpatternBegin):
- (JSC::Yarr::YarrPatternConstructor::atomParentheticalAssertionBegin):
- (JSC::Yarr::YarrPatternConstructor::atomParenthesesEnd):
- (JSC::Yarr::YarrPatternConstructor::atomBackReference):
- (JSC::Yarr::YarrPatternConstructor::copyDisjunction):
- (JSC::Yarr::YarrPatternConstructor::copyTerm):
- (JSC::Yarr::YarrPatternConstructor::quantifyAtom):
- (JSC::Yarr::YarrPatternConstructor::disjunction):
- (JSC::Yarr::YarrPatternConstructor::regexBegin):
- (JSC::Yarr::YarrPatternConstructor::regexEnd):
- (JSC::Yarr::YarrPatternConstructor::regexError):
- (JSC::Yarr::YarrPatternConstructor::setupAlternativeOffsets):
- (JSC::Yarr::YarrPatternConstructor::setupDisjunctionOffsets):
- (JSC::Yarr::YarrPatternConstructor::setupOffsets):
- (JSC::Yarr::YarrPatternConstructor::checkForTerminalParentheses):
- (JSC::Yarr::YarrPatternConstructor::optimizeBOL):
- (JSC::Yarr::YarrPatternConstructor::addBeginTerm):
- (JSC::Yarr::YarrPatternConstructor::setupDisjunctionBeginTerms):
- (JSC::Yarr::YarrPatternConstructor::setupAlternativeBeginTerms):
- (JSC::Yarr::YarrPatternConstructor::setupBeginChars):
- (JSC::Yarr::compile):
- (JSC::Yarr::YarrPattern::YarrPattern):
- * yarr/YarrPattern.h: Renamed from Source/JavaScriptCore/yarr/RegexPattern.h.
- (JSC::Yarr::CharacterRange::CharacterRange):
- (JSC::Yarr::CharacterClassTable::create):
- (JSC::Yarr::CharacterClassTable::CharacterClassTable):
- (JSC::Yarr::CharacterClass::CharacterClass):
- (JSC::Yarr::PatternTerm::PatternTerm):
- (JSC::Yarr::PatternTerm::ForwardReference):
- (JSC::Yarr::PatternTerm::BOL):
- (JSC::Yarr::PatternTerm::EOL):
- (JSC::Yarr::PatternTerm::WordBoundary):
- (JSC::Yarr::PatternTerm::invert):
- (JSC::Yarr::PatternTerm::capture):
- (JSC::Yarr::PatternTerm::quantify):
- (JSC::Yarr::PatternAlternative::PatternAlternative):
- (JSC::Yarr::PatternAlternative::lastTerm):
- (JSC::Yarr::PatternAlternative::removeLastTerm):
- (JSC::Yarr::PatternAlternative::setOnceThrough):
- (JSC::Yarr::PatternAlternative::onceThrough):
- (JSC::Yarr::PatternDisjunction::PatternDisjunction):
- (JSC::Yarr::PatternDisjunction::~PatternDisjunction):
- (JSC::Yarr::PatternDisjunction::addNewAlternative):
- (JSC::Yarr::TermChain::TermChain):
- (JSC::Yarr::BeginChar::BeginChar):
- (JSC::Yarr::YarrPattern::~YarrPattern):
- (JSC::Yarr::YarrPattern::reset):
- (JSC::Yarr::YarrPattern::containsIllegalBackReference):
- (JSC::Yarr::YarrPattern::newlineCharacterClass):
- (JSC::Yarr::YarrPattern::digitsCharacterClass):
- (JSC::Yarr::YarrPattern::spacesCharacterClass):
- (JSC::Yarr::YarrPattern::wordcharCharacterClass):
- (JSC::Yarr::YarrPattern::nondigitsCharacterClass):
- (JSC::Yarr::YarrPattern::nonspacesCharacterClass):
- (JSC::Yarr::YarrPattern::nonwordcharCharacterClass):
-
-2011-01-10 Gavin Barraclough <barraclough@apple.com>
-
- Windows build fix.
-
- * parser/SyntaxChecker.h:
-
-2011-01-10 Dave Tapuska <dtapuska@rim.com>
+2011-04-04 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
+ Fix WinCE build.
- Add CTI ASM versions for RVCT ARM THUMB2 mode.
+ * bytecode/Instruction.h:
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::tryCachePutByID):
+ (JSC::Interpreter::tryCacheGetByID):
- https://bugs.webkit.org/show_bug.cgi?id=52154
+2011-04-04 Adam Roben <aroben@apple.com>
- * jit/JITStubs.cpp:
- (JSC::ctiTrampoline):
- (JSC::ctiVMThrowTrampoline):
- (JSC::ctiOpThrowNotCaught):
+ Delete mt.dep files when doing a clean build due to .vsprops file changes
-2011-01-10 Gavin Barraclough <barraclough@apple.com>
+ Apparently this is yet another file that Visual Studio can't figure out it needs to rebuild.
- Qt build fix.
+ Fixes <http://webkit.org/b/57777> r82850 failed to build on Windows Debug (Build)
- * JavaScriptCore.pro:
+ Reviewed by Brian Weinstein.
-2011-01-10 Gavin Barraclough <barraclough@apple.com>
+ * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py:
+ (main): Added dep to the list of extensions we look for when choosing files to delete.
- Reviewed by Oliver Hunt.
+2011-04-01 Oliver Hunt <oliver@apple.com>
- Bug 52079 - Syntax errors should be early errors.
+ Reviewed by Geoffrey Garen.
- From chapter 16 the spec:
- An implementation must report most errors at the time the relevant ECMAScript language construct is
- evaluated. An early error is an error that can be detected and reported prior to the evaluation of
- any construct in the Program containing the error. An implementation must report early errors in a
- Program prior to the first evaluation of that Program. Early errors in eval code are reported at
- the time eval is called but prior to evaluation of any construct within the eval code. All errors
- that are not early errors are runtime errors.
+ Make StructureChain GC allocated
+ https://bugs.webkit.org/show_bug.cgi?id=56695
- An implementation must treat any instance of the following kinds of errors as an early error:
- * Any syntax error."
+ Make StructureChain GC allocated, and make the various owners
+ mark it correctly.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- Added new files.
+ * JavaScriptCore.exp:
* bytecode/CodeBlock.cpp:
- Removed op_throw_syntax_error.
- * bytecode/Opcode.h:
- Removed op_throw_syntax_error.
+ (JSC::CodeBlock::dump):
+ (JSC::CodeBlock::derefStructures):
+ (JSC::CodeBlock::refStructures):
+ (JSC::CodeBlock::markAggregate):
+ * bytecode/Instruction.h:
+ (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
+ (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
+ (JSC::PolymorphicAccessStructureList::derefStructures):
+ (JSC::PolymorphicAccessStructureList::markAggregate):
+ (JSC::Instruction::Instruction):
+ * bytecode/StructureStubInfo.cpp:
+ (JSC::StructureStubInfo::deref):
+ (JSC::StructureStubInfo::markAggregate):
+ * bytecode/StructureStubInfo.h:
+ (JSC::StructureStubInfo::initGetByIdChain):
+ (JSC::StructureStubInfo::initPutByIdTransition):
* bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::generate):
- If m_expressionTooDeep then throw a runtime error.
- (JSC::BytecodeGenerator::BytecodeGenerator):
- Initialize m_expressionTooDeep.
- (JSC::BytecodeGenerator::emitThrowExpressionTooDeepException):
- Sets m_expressionTooDeep.
- * bytecompiler/BytecodeGenerator.h:
- Added m_expressionTooDeep, removed emitThrowSyntaxError.
- * bytecompiler/NodesCodegen.cpp:
- (JSC::RegExpNode::emitBytecode):
- (JSC::ContinueNode::emitBytecode):
- (JSC::BreakNode::emitBytecode):
- (JSC::ReturnNode::emitBytecode):
- (JSC::LabelNode::emitBytecode):
- Conditions that threw syntax error are now handled during parsing;
- during bytecompilation these are now just ASSERTs.
+ (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
+ (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
+ * collector/handles/Handle.h:
+ (JSC::HandleConverter::operator->):
+ (JSC::HandleConverter::operator*):
* interpreter/Interpreter.cpp:
(JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- * jit/JIT.h:
* jit/JITOpcodes.cpp:
+ (JSC::JIT::emit_op_jneq_ptr):
* jit/JITOpcodes32_64.cpp:
+ (JSC::JIT::emit_op_jneq_ptr):
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::privateCompileGetByIdChainList):
+ * jit/JITPropertyAccess32_64.cpp:
+ (JSC::JIT::privateCompileGetByIdChainList):
* jit/JITStubs.cpp:
- * jit/JITStubs.h:
- Removed op_throw_syntax_error.
- * parser/ASTBuilder.h:
- (JSC::ASTBuilder::createRegExp):
- Renamed; added syntax check.
- * parser/JSParser.cpp:
- (JSC::JSParser::breakIsValid):
- (JSC::JSParser::hasLabel):
- (JSC::JSParser::Scope::Scope):
- (JSC::JSParser::Scope::setIsFunction):
- (JSC::JSParser::Scope::isFunctionBoundary):
- (JSC::JSParser::ScopeRef::hasContainingScope):
- (JSC::JSParser::ScopeRef::containingScope):
- (JSC::JSParser::AutoPopScopeRef::AutoPopScopeRef):
- (JSC::JSParser::AutoPopScopeRef::~AutoPopScopeRef):
- (JSC::JSParser::AutoPopScopeRef::setPopped):
- (JSC::JSParser::popScopeInternal):
- (JSC::JSParser::popScope):
- (JSC::jsParse):
- (JSC::JSParser::JSParser):
- (JSC::JSParser::parseProgram):
- (JSC::JSParser::parseBreakStatement):
- (JSC::JSParser::parseContinueStatement):
- (JSC::JSParser::parseReturnStatement):
- (JSC::JSParser::parseTryStatement):
- (JSC::JSParser::parseFunctionInfo):
- (JSC::JSParser::parseExpressionOrLabelStatement):
- (JSC::JSParser::parsePrimaryExpression):
- * parser/JSParser.h:
- * parser/Nodes.h:
- * parser/Parser.cpp:
- (JSC::Parser::parse):
- * parser/SyntaxChecker.h:
- (JSC::SyntaxChecker::createRegExp):
- Renamed; added syntax check.
- * runtime/ExceptionHelpers.cpp:
- (JSC::createOutOfMemoryError):
- (JSC::throwOutOfMemoryError):
- * runtime/ExceptionHelpers.h:
- Broke out createOutOfMemoryError.
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::compileInternal):
- (JSC::ProgramExecutable::compileInternal):
- (JSC::FunctionExecutable::compileForCallInternal):
- (JSC::FunctionExecutable::compileForConstructInternal):
- Add check for exception after bytecode generation.
- * runtime/RegExpConstructor.cpp:
- (JSC::constructRegExp):
- * runtime/RegExpPrototype.cpp:
- (JSC::regExpProtoFuncCompile):
- RegExp error prefixes not included in error string.
- * yarr/RegexParser.h:
- (JSC::Yarr::Parser::parse):
- Removed regexBegin/regexEnd/regexError.
- * yarr/RegexPattern.cpp:
- (JSC::Yarr::RegexPatternConstructor::regexBegin):
- Removed regexEnd/regexError.
- (JSC::Yarr::compileRegex):
- Add call to regexBegin (no longer called from the parser).
- * yarr/YarrSyntaxChecker.cpp: Added.
- (JSC::Yarr::SyntaxChecker::assertionBOL):
- (JSC::Yarr::SyntaxChecker::assertionEOL):
- (JSC::Yarr::SyntaxChecker::assertionWordBoundary):
- (JSC::Yarr::SyntaxChecker::atomPatternCharacter):
- (JSC::Yarr::SyntaxChecker::atomBuiltInCharacterClass):
- (JSC::Yarr::SyntaxChecker::atomCharacterClassBegin):
- (JSC::Yarr::SyntaxChecker::atomCharacterClassAtom):
- (JSC::Yarr::SyntaxChecker::atomCharacterClassRange):
- (JSC::Yarr::SyntaxChecker::atomCharacterClassBuiltIn):
- (JSC::Yarr::SyntaxChecker::atomCharacterClassEnd):
- (JSC::Yarr::SyntaxChecker::atomParenthesesSubpatternBegin):
- (JSC::Yarr::SyntaxChecker::atomParentheticalAssertionBegin):
- (JSC::Yarr::SyntaxChecker::atomParenthesesEnd):
- (JSC::Yarr::SyntaxChecker::atomBackReference):
- (JSC::Yarr::SyntaxChecker::quantifyAtom):
- (JSC::Yarr::SyntaxChecker::disjunction):
- (JSC::Yarr::checkSyntax):
- * yarr/YarrSyntaxChecker.h: Added.
- Check RegExp syntax.
-
-2011-01-10 Adam Roben <aroben@apple.com>
-
- Roll out r75289
-
- It was causing assertion failures. See <http://webkit.org/b/52156>.
-
- * wtf/StackBounds.cpp:
- (WTF::StackBounds::initialize):
-
-2011-01-08 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by Darin Adler.
-
- Unify string table adding in AtomicString
- https://bugs.webkit.org/show_bug.cgi?id=51927
-
- Move code for adding a string into a separate function.
- This removes multiple occurrence of the same logic.
-
- * wtf/text/AtomicString.cpp:
- (WTF::addToStringTable): Added.
- (WTF::AtomicString::add): Use addToStringTable().
- (WTF::AtomicString::fromUTF8): Ditto.
-
-2011-01-07 Geoffrey Garen <ggaren@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- Split machine stack marking functions into their own class (MachineStackMarker)
- https://bugs.webkit.org/show_bug.cgi?id=52088
-
- * API/APIShims.h:
- (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock): Moved registerThread()
- call behind an #ifdef because we shouldn't be registering threads at all
- if we don't support usage on multiple threads.
-
- * Android.mk:
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj: Updated projects.
-
- * runtime/Collector.cpp:
- (JSC::Heap::Heap):
- (JSC::Heap::destroy):
- (JSC::Heap::markRoots):
- * runtime/Collector.h:
- (JSC::Heap::machineStackMarker): Moved code to machineStackMarker.
-
+ (JSC::JITThunks::tryCachePutByID):
+ (JSC::JITThunks::tryCacheGetByID):
+ (JSC::getPolymorphicAccessStructureListSlot):
+ (JSC::DEFINE_STUB_FUNCTION):
+ * runtime/JSCell.h:
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::JSGlobalData):
* runtime/JSGlobalData.h:
- (JSC::JSGlobalData::makeUsableFromMultipleThreads): Removed an unnecessary
- level of indirection, to make Heap less of a God class.
-
- * runtime/MachineStackMarker.h: Copied from Source/JavaScriptCore/runtime/Collector.h.
- * runtime/MachineStackMarker.cpp: Copied from Source/JavaScriptCore/runtime/Collector.cpp.
- (JSC::MachineStackMarker::MachineStackMarker):
- (JSC::MachineStackMarker::~MachineStackMarker):
- (JSC::MachineStackMarker::makeUsableFromMultipleThreads):
- (JSC::MachineStackMarker::registerThread):
- (JSC::MachineStackMarker::unregisterThread):
- (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal):
- (JSC::MachineStackMarker::markCurrentThreadConservatively):
- (JSC::MachineStackMarker::markOtherThreadConservatively):
- (JSC::MachineStackMarker::markMachineStackConservatively): Moved code from Heap.
-
-2011-01-07 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Geoff Garen.
-
- Bug 26276 - Need a mechanism to determine stack extent on WINDOWS, SOLARIS, OPENBSD, SYMBIAN, HAIKU, WINCE platforms
-
- Fix for win32. The base of the stack is stored in the "deallocation stack" field of the
- Thread Information Block - see: http://en.wikipedia.org/wiki/Win32_Thread_Information_Block
- for more information!
-
- * wtf/StackBounds.cpp:
- (WTF::StackBounds::initialize):
-
-2011-01-07 Adam Roben <aroben@apple.com>
-
- Update react-to-vsprops-changes.py after r74855
-
- * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py:
-
-2011-01-07 Carlos Garcia Campos <cgarcia@igalia.com>
-
- Reviewed by Martin Robinson.
-
- [GTK] Port scrollbar painting to GtkStyleContext
- https://bugs.webkit.org/show_bug.cgi?id=52051
-
- * wtf/gobject/GTypedefs.h: Add GtkStyleContext forward
- declaration.
-
-2011-01-07 Daniel Bates <dbates@rim.com>
-
- Reviewed by Martin Robinson.
-
- Enable PCRE computed gotos when compiling with RCVT 4.0 or greater in GNU mode
- https://bugs.webkit.org/show_bug.cgi?id=52034
-
- Derived from a patch by Eli Fidler.
-
- RVCT 4 or greater in GNU mode supports the computed goto GNU language extension
- as per <http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0348c/ch03s07s12.html>.
-
- * pcre/pcre_exec.cpp: Modified to check for feature, HAVE(COMPUTED_GOTO), instead
- of hardcoding the GCC compiler.
- * wtf/Platform.h: Define WTF_COMPILER_RVCT4_OR_GREATER if __ARMCC_VERSION >= 400000.
-
-2011-01-06 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Geoff Garen.
-
- Bug 52035 - Unregistering DOMWrapperWorlds is unsafe
-
- The method DOMWrapperWorld::unregisterWorld() effectively calls the DOMWrapperWorld's
- destructor early, in order to release wrappers once we know we no longer intend to use them.
- Whilst it is okay to have a method to throw away wrappers (assuming we know we're willing to
- lose any state stored on them) it is not okay to deregister the world from the JSGlobalData.
- A sequence of events that triggers the bug would look like this:
-
- (1) Create a DOMWrapperWorld.
- (2) Register a timer in the world.
- (3) Call unregisterWorld() on the world.
- (4) Timer goes off, code is executed in the world, creates a Node not attached to a Document.
- (5) We attempt to lookup a wrapper map for the world on the JSGlobalData, but because we've
- called forgetWorld() none exists.
- (6) Attempt to add a wrapper to a NULL map.
-
- Fix the problem by not removing the JSGlobalData's wrapper map until the world really goes away.
-
- * runtime/WeakGCMap.h:
- (JSC::WeakGCMap::clear):
-
-2011-01-06 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Darin Adler.
-
- Bug 52021 - zeroDouble broken on ARMv7
-
- The bug here is that zeroDouble was working incorrectly,
- leading to op_loop_if_true failing - specifically in the
- case where the value being checked is 0.0 encoded as a
- double (rather than an integer immediate).
-
- Additionally this patch removes a redundant duplicate compare
- in some (many) case.
-
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::vcmp_F64):
- (JSC::ARMv7Assembler::vcmpz_F64):
- * assembler/MacroAssemblerARM.h:
- (JSC::MacroAssemblerARM::branchDoubleNonZero):
- (JSC::MacroAssemblerARM::branchDoubleZeroOrNaN):
- * assembler/MacroAssemblerARMv7.h:
- (JSC::MacroAssemblerARMv7::branchDouble):
- (JSC::MacroAssemblerARMv7::branchDoubleNonZero):
- (JSC::MacroAssemblerARMv7::branchDoubleZeroOrNaN):
- (JSC::MacroAssemblerARMv7::compare32):
- * assembler/MacroAssemblerMIPS.h:
- (JSC::MacroAssemblerMIPS::branchDoubleNonZero):
- (JSC::MacroAssemblerMIPS::branchDoubleZeroOrNaN):
- * assembler/MacroAssemblerX86Common.h:
- (JSC::MacroAssemblerX86Common::branchDoubleNonZero):
- (JSC::MacroAssemblerX86Common::branchDoubleZeroOrNaN):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_jfalse):
- (JSC::JIT::emit_op_jtrue):
-
-2011-01-06 Michael Saboff <msaboff@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- Added debug code to compare the results of JIT regexp with
- interpreted regexp and displays discrepencies. This debug code is
- controlled by the ENABLE_YARR_JIT_DEBUG macro in wtf/Platform.h and
- is only valid if ENABLE_YARR_JIT is enabled.
-
- Fixed a discovered problem in RegExp::printTraceData, changing
- m_pattern to the getter pattern().
- Also deleted an extraneous semicolon.
-
- Enhancement: Add Regexp Debug Compare between JIT and Interpreter
- https://bugs.webkit.org/show_bug.cgi?id=51834
-
- * runtime/RegExp.cpp:
- (JSC::RegExp::compile):
- (JSC::RegExp::match):
- (JSC::RegExp::printTraceData):
- * wtf/Platform.h:
-
-2011-01-06 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by Eric Seidel.
-
- [WINCE] Remove JSC::g_stackBase
- https://bugs.webkit.org/show_bug.cgi?id=51779
-
- * wtf/StackBounds.cpp:
-
-2011-01-06 Joone Hur <joone.hur@collabora.co.uk>
-
- Reviewed by Eric Seidel.
-
- WML Parser should treat line/column number in a consistent way
- https://bugs.webkit.org/show_bug.cgi?id=51601
-
- Add the equality operators to TextPosition class.
-
- * wtf/text/TextPosition.h:
- (WTF::TextPosition::operator==): Added.
- (WTF::TextPosition::operator!=): Added.
- (WTF::TextPosition::belowRangePosition): Use belowBase() instead of base().
- (WTF::ZeroBasedNumber::operator==): Added.
- (WTF::ZeroBasedNumber::operator!=): Added.
- (WTF::OneBasedNumber::operator==): Added.
- (WTF::OneBasedNumber::operator!=): Added.
-
-2011-01-06 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by Gavin Barraclough.
-
- [WINCE] Determine stack extent
- https://bugs.webkit.org/show_bug.cgi?id=26276
-
- Scan the stack for writeable pages and use the limits.
-
- * wtf/StackBounds.cpp:
- (WTF::detectGrowingDownward):
- (WTF::isPageWritable):
- (WTF::getLowerStackBound):
- (WTF::getUpperStackBound):
- (WTF::StackBounds::initialize):
-
-2011-01-05 Steve Falkenburg <sfalken@apple.com>
-
- Windows build fix.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: Revert change to additional library search path needed to find ICU.
+ * runtime/JSGlobalObject.cpp:
+ (JSC::markIfNeeded):
+ * runtime/JSGlobalObject.h:
+ (JSC::Structure::prototypeChain):
+ * runtime/JSObject.h:
+ (JSC::JSObject::putDirectInternal):
+ (JSC::JSObject::markChildrenDirect):
+ * runtime/JSPropertyNameIterator.cpp:
+ (JSC::JSPropertyNameIterator::create):
+ (JSC::JSPropertyNameIterator::get):
+ (JSC::JSPropertyNameIterator::markChildren):
+ * runtime/JSPropertyNameIterator.h:
+ (JSC::JSPropertyNameIterator::setCachedPrototypeChain):
+ * runtime/JSZombie.cpp:
+ (JSC::JSZombie::leakedZombieStructure):
+ * runtime/JSZombie.h:
+ * runtime/MarkStack.h:
+ (JSC::MarkStack::append):
+ * runtime/MarkedBlock.cpp:
+ (JSC::MarkedBlock::sweep):
+ * runtime/Structure.cpp:
+ (JSC::Structure::addPropertyTransition):
+ * runtime/Structure.h:
+ (JSC::Structure::markAggregate):
+ * runtime/StructureChain.cpp:
+ (JSC::StructureChain::StructureChain):
+ (JSC::StructureChain::~StructureChain):
+ (JSC::StructureChain::markChildren):
+ * runtime/StructureChain.h:
+ (JSC::StructureChain::create):
+ (JSC::StructureChain::createStructure):
+ * runtime/WriteBarrier.h:
+ (JSC::WriteBarrierBase::get):
+ (JSC::WriteBarrierBase::operator*):
+ (JSC::WriteBarrierBase::operator->):
-2011-01-05 Steve Falkenburg <sfalken@apple.com>
+2011-04-01 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Darin Adler.
+ Reviewed by Oliver Hunt.
- Debug and Release builds on Windows clobber each other
- https://bugs.webkit.org/show_bug.cgi?id=49185
+ Removed some complexity from HandleHeap
+ https://bugs.webkit.org/show_bug.cgi?id=57650
- Changes the structure of WebKitBuild build products directory so we
- completely separate each build configuration into independent directories.
+ Eliminated pointer-tagging flags.
- Although we previously had per-configuration directories for obj, this change adds
- per-configuration directories for bin, lib, obj, and include. Each configuration's
- build products are stored within a directory inside of WebKitBuild.
-
- Most use of $(WebKitOutputDir) in the build files has been replaced by $(ConfigurationBuildDir),
- defined in common.vsprops to be $(WebKitOutputDir)\$(ConfigurationName).
-
- For PGO, $(ConfigurationBuildDir) points to the same directory (Release_PGO) to allow
- for proper operation of the instrumentation/optimization scripts.
-
- * JavaScriptCore.vcproj/JavaScriptCore.make:
- * JavaScriptCore.vcproj/JavaScriptCore.sln:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedCommon.vsprops:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePGOOptimize.vsprops: Added.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePostBuild.cmd:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePreBuild.cmd:
- * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh:
- * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py:
- * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops:
- * JavaScriptCore.vcproj/WTF/WTFPostBuild.cmd:
- * JavaScriptCore.vcproj/WTF/WTFPreBuild.cmd:
- * JavaScriptCore.vcproj/jsc/jsc.vcproj:
- * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
- * JavaScriptCore.vcproj/jsc/jscPostBuild.cmd:
- * JavaScriptCore.vcproj/jsc/jscPreBuild.cmd:
- * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops:
- * JavaScriptCore.vcproj/testapi/testapiPostBuild.cmd:
- * JavaScriptCore.vcproj/testapi/testapiPreBuild.cmd:
-
-2011-01-05 Brent Fulgham <bfulgham@webkit.org>
-
- Unreviewed build fix.
-
- * wtf/Encoder.h: Add <stdint.h> include for systems that
- do not natively know about uint8_t, etc.
-
-2011-01-05 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by Andreas Kling.
-
- [CMake] Fix the usage of SOURCE_GROUP
- https://bugs.webkit.org/show_bug.cgi?id=51739
-
- * CMakeLists.txt:
-
-2011-01-05 Andras Becsi <abecsi@webkit.org>
-
- Reviewed by Csaba Osztrogonác.
-
- [Qt][V8] Fix the build after recent changes.
-
- * pcre/pcre.pri: Correct the path after Source was introduced.
-
-2011-01-04 Steve Falkenburg <sfalken@apple.com>
-
- Build fix. Update path to FindSafari after source code reorganization.
-
- * JavaScriptCore.vcproj/JavaScriptCore.sln:
-
-2011-01-04 Daniel Bates <dbates@rim.com>
-
- Fix the Android build after changeset 74975 <http://trac.webkit.org/changeset/74975>
- (https://bugs.webkit.org/show_bug.cgi?id=51855).
-
- * wtf/ThreadingPthreads.cpp: Add include of PassOwnPtr.h.
- (WTF::runThreadWithRegistration): Use -> instead of . to dereference pointer.
-
-2011-01-04 Martin Robinson <mrobinson@igalia.com>
-
- Try to fix the EFL build.
-
- * wtf/CMakeLists.txt: Remove PlatformRefPtr from the CMake source list.
-
-2011-01-04 James Robinson <jamesr@chromium.org>
-
- Reviewed by Darin Adler.
-
- StackBounds initialization in WTFThreadData should be guarded by #if USE(JSC)
- https://bugs.webkit.org/show_bug.cgi?id=51881
-
- The StackBounds class is only used by JavaScriptCore.
-
- * wtf/WTFThreadData.cpp:
- (WTF::WTFThreadData::WTFThreadData):
- * wtf/WTFThreadData.h:
- (WTF::WTFThreadData::resetCurrentIdentifierTable):
-
-2011-01-03 Martin Robinson <mrobinson@igalia.com>
-
- Reviewed by Darin Adler.
-
- Remove the last non-GObject usage of PlatformRefPtr and move the code to GRefPtr
- https://bugs.webkit.org/show_bug.cgi?id=51846
-
- * GNUmakefile.am: Remove PlatformRefPtr.h from the sources list.
- * JavaScriptCore.vcproj/WTF/WTF.vcproj: Ditto.
- * jit/ExecutableAllocator.h: Change references to PlatformRefPtr to RefPtr.
- (JSC::ExecutableAllocator::cacheFlush): Ditto.
- * wtf/PlatformRefPtr.h: Removed.
- * wtf/RandomNumber.cpp: Change references to PlatformRefPtr to RefPtr.
- (WTF::randomNumber): Ditto.
- * wtf/brew/RefPtrBrew.h: Ditto.
- (WTF::refIfNotNull): Added.
- (WTF::derefIfNotNull): Added.
- * wtf/brew/ShellBrew.h: Change references to PlatformRefPtr to RefPtr.
- (WTF::createRefPtrInstance): Modified to return a RefPtr.
- * wtf/gobject/GRefPtr.cpp:
- (WTF::refGPtr): Moved from PlatformRefPtr here.
- (WTF::derefGPtr): Ditto.
- * wtf/gobject/GRefPtr.h: Ditto.
- (WTF::GRefPtr::GRefPtr): Ditto.
- (WTF::GRefPtr::~GRefPtr): Ditto.
- (WTF::GRefPtr::clear): Ditto.
- (WTF::GRefPtr::isHashTableDeletedValue): Ditto.
- (WTF::GRefPtr::get): Ditto.
- (WTF::GRefPtr::operator*): Ditto.
- (WTF::GRefPtr::operator->): Ditto.
- (WTF::GRefPtr::operator!): Ditto.
- (WTF::GRefPtr::operator UnspecifiedBoolType): Ditto.
- (WTF::GRefPtr::hashTableDeletedValue): Ditto.
- (WTF::::operator): Ditto.
- (WTF::::swap): Ditto.
- (WTF::swap): Ditto.
- (WTF::operator==): Ditto.
- (WTF::operator!=): Ditto.
- (WTF::static_pointer_cast): Ditto.
- (WTF::const_pointer_cast): Ditto.
- (WTF::getPtr): Ditto.
- (WTF::adoptGRef): Ditto.
- (WTF::refGPtr): Ditto.
- (WTF::derefGPtr): Ditto.
-
-2011-01-04 Daniel Bates <dbates@rim.com>
-
- Reviewed by Adam Roben.
-
- LEAK: Deallocate instance of ThreadFunctionInvocation if thread creation fails
- https://bugs.webkit.org/show_bug.cgi?id=51860
-
- * wtf/ThreadingWin.cpp:
- (WTF::createThreadInternal):
-
-2011-01-04 Laszlo Gombos <laszlo.1.gombos@nokia.com>
-
- Reviewed by Ariya Hidayat.
-
- [Qt][Symbian] Make sure that WebKit headers are included before platform headers on Symbian
- https://bugs.webkit.org/show_bug.cgi?id=31273
-
- On Symbian PREPEND_INCLUDEPATH is the best way to make sure that WebKit headers
- are included before platform headers. On all other platforms continue to use
- INCLUDEPATH (as before). This is a continuation of r65877.
-
- No new tests as there is no new functionality.
-
- * JavaScriptCore.pri:
-
-2011-01-04 Darin Adler <darin@apple.com>
-
- Try to fix Windows build.
-
- * wtf/ThreadingWin.cpp: Added include of PassOwnPtr.h. Fixed paragraphing
- of conditional includes.
- (WTF::wtfThreadEntryPoint): Use -> instead of . to dereference pointer.
- (WTF::createThreadInternal): Tweaked #if to not need separate macro.
-
-2011-01-04 Daniel Bates <dbates@rim.com>
-
- Reviewed by Adam Roben.
-
- Extract ThreadFunctionInvocation into separate file and share between Apple Windows and Android
- https://bugs.webkit.org/show_bug.cgi?id=51855
-
- Both the Apple Windows and Android ports implement a similar adapter structure,
- called ThreadFunctionInvocation and ThreadData respectively, as part of
- their thread creation process. Instead, we should share such an adapter
- structure and remove duplicate code.
-
- * JavaScriptCore.gypi: Added header wtf/ThreadFunctionInvocation.h.
- * wtf/ThreadFunctionInvocation.h: Added.
- (WTF::ThreadFunctionInvocation::ThreadFunctionInvocation):
- * wtf/ThreadingPthreads.cpp: Removed Android-specific structure ThreadData; Instead, use ThreadFunctionInvocation.
- (WTF::runThreadWithRegistration):
- (WTF::createThreadInternal):
- * wtf/ThreadingWin.cpp: Moved structure ThreadFunctionInvocation to its own file so that
- it can be shared with the Android implementation of createThreadInternal().
- (WTF::wtfThreadEntryPoint): Use OwnPtr to hold passed instance of ThreadFunctionInvocation.
-
-2011-01-04 Daniel Bates <dbates@rim.com>
-
- Reviewed by Darin Adler.
-
- Use __builtin_expect when compiling using RVCT in GNU mode
- https://bugs.webkit.org/show_bug.cgi?id=51866
-
- Derived from a patch by Dave Tapuska.
-
- * wtf/AlwaysInline.h:
-
-2011-01-03 Darin Adler <darin@apple.com>
-
- Reviewed by Brady Eidson.
-
- * wtf/Forward.h: Added Decoder and Encoder.
-
-2011-01-03 Brady Eidson <beidson@apple.com>
-
- Reviewed by Darin Adler.
-
- Add Encode/Decode machinery Darin and I plan to work with for back/forward stuff in WebKit2.
-
- Starting out with a pure virtual interface to be implemented in WK2, but we might change that later.
-
- * GNUmakefile.am:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/CMakeLists.txt:
-
- * wtf/Decoder.h: Added.
- * wtf/Encoder.h: Added.
-
-2011-01-03 Laszlo Gombos <laszlo.1.gombos@nokia.com>
-
- Unreviewed build fix.
-
- [Qt] Add NullPtr.cpp introduced in r71155 to the Qt build system.
-
- This fix is required for builds where HAVE(NULLPTR) is false
- (e.g. some MSVC and Symbian builds).
-
- * wtf/wtf.pri:
-
-2011-01-02 Dan Bernstein <mitz@apple.com>
-
- Rubber-stamped by Simon Fraser.
-
- <rdar://problem/8812159> Update copyright strings
-
- * Info.plist:
-
-2011-01-02 Csaba Osztrogonác <ossy@webkit.org>
-
- Fix GTK+ build after r74855.
-
- Reviewed by Xan Lopez.
-
- * GNUmakefile.am: Fix include pathes.
-
-2011-01-02 Adam Barth <abarth@webkit.org>
-
- One more .. missing in the Qt build.
-
- * jsc.pro:
-
-2011-01-02 Xan Lopez <xlopez@igalia.com>
-
- Fix GTK+ build.
-
- * GNUmakefile.am: add -I$(srcdir)/Source to the JSC cppflags so
- that anyone can include its headers without adding the prefix
- 'Source/'.
-
-2011-01-02 Carl Lobo <carllobo@gmail.com>
-
- Reviewed by Adam Barth.
-
- Fix Windows Build for non-production where VSPropsRedirectionDir is not defined.
- https://bugs.webkit.org/show_bug.cgi?id=51797
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.vcproj/jsc/jsc.vcproj:
- * JavaScriptCore.vcproj/testapi/testapi.vcproj:
-
-2011-01-01 Adam Barth <abarth@webkit.org>
-
- Fix relative include paths in an attempt to fix the Qt build.
-
- * JavaScriptCore.pri:
- * JavaScriptCore.pro:
-
-2011-01-01 Adam Barth <abarth@webkit.org>
-
- Another speculative build fix for GTK.
-
- * GNUmakefile.am:
-
-2011-01-01 Adam Barth <abarth@webkit.org>
-
- Speculative build fix for GTK. Update the paths in GNUmakefile to
- include "Source".
-
- * GNUmakefile.am:
-
-2011-01-01 Adam Barth <abarth@webkit.org>
-
- Update relative paths in JavaScriptCore.gyp to account for the extra
- level of directories.
-
- * JavaScriptCore.gyp/JavaScriptCore.gyp:
-
-2010-12-31 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by Darin Adler.
-
- Add a fast case for ASCII strings in HashAndUTF8CharactersTranslator::equal
- https://bugs.webkit.org/show_bug.cgi?id=50517
-
- This change shows about 2% performance win on the xml-parser benchmark.
-
- * wtf/text/AtomicString.cpp:
- (WTF::HashAndUTF8CharactersTranslator::equal):
-
-2010-12-30 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by Ariya Hidayat.
-
- [CMake] Add WTF_HEADERS
- https://bugs.webkit.org/show_bug.cgi?id=51741
-
- Add the WTF headers to show them in Visual Studio.
-
- * wtf/CMakeLists.txt:
- * wtf/CMakeListsWinCE.txt:
-
-2010-12-30 Konstantin Tokarev <annulen@yandex.ru>
-
- Reviewed by David Kilzer.
-
- [Qt] Don't build wtf/TCSystemAlloc.cpp if --system-malloc option is
- used
- https://bugs.webkit.org/show_bug.cgi?id=51672
-
- * wtf/wtf.pri: Replaced USE_SYSTEM_MALLOC with USE_SYSTEM_MALLOC=1
-
-2010-12-30 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by Darin Adler.
-
- Use OS(WINDOWS) instead of COMPILER(MSVC) in FastMalloc.cpp
- https://bugs.webkit.org/show_bug.cgi?id=51743
-
- Most of the ifdefs belong to windows and not to the MSVC compiler.
-
- * wtf/FastMalloc.cpp:
-
-2010-12-29 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Sam Weinig.
-
- Bug 51724 - In strict mode string literals should allow \0, but disallow \8 and \9.
-
- * parser/Lexer.cpp:
- (JSC::Lexer::parseString):
+ Tied being weak to having a finalizer (or at least a finalizer sentinel).
-2010-12-29 Helder Correia <helder@sencha.com>
+ * collector/handles/HandleHeap.cpp:
+ (JSC::HandleHeap::clearWeakPointers): Removed the special self-destroying
+ flag. It was unused. If we bring it back, we'll probably use a shared
+ autodeallocating finalizer instead.
- Reviewed by Eric Seidel.
-
- <VT> and <FF> are not valid JSON whitespace characters
- https://bugs.webkit.org/show_bug.cgi?id=51671
-
- Vertical Tab and Form Feed are not allowed white spaces by the JSON
- RFC 4627: http://www.ietf.org/rfc/rfc4627.txt (2. JSON Grammar).
+ * collector/handles/HandleHeap.h:
+ (JSC::HandleHeap::makeWeak): makeWeak and adding a finalizer are now
+ a single, atomic operation -- this makes the relationship between
+ finalizers and weak pointers clearer, and impossible to get wrong.
- Tests: ietestcenter/Javascript/15.12.1.1-0-2.html
- ietestcenter/Javascript/15.12.1.1-0-3.html
+ (JSC::HandleHeap::Node::Node):
+ (JSC::HandleHeap::Node::handleHeap): No more flags.
- * runtime/LiteralParser.cpp:
- (JSC::isJSONWhiteSpace):
- (JSC::LiteralParser::Lexer::lex):
-
-2010-12-28 Helder Correia <helder@sencha.com>
-
- Reviewed by Eric Seidel.
-
- JSON.stringify must exist as a function taking 3 parameters
- https://bugs.webkit.org/show_bug.cgi?id=51667
-
- The reported function length is 1 instead.
-
- Test: ietestcenter/Javascript/15.12.3-0-2.html
-
- * runtime/JSONObject.cpp:
+ (JSC::HandleHeap::Node::makeWeak):
+ (JSC::HandleHeap::Node::isWeak): Ditto above. We use a special sentienl
+ value in the finalizer slot to indicate that a handle is weak but doesn't
+ require an external function call for finalization.
-2010-12-28 Helder Correia <helder@sencha.com>
+2011-04-01 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig.
-
- JSON.parse must exist as a function taking 2 parameters
- https://bugs.webkit.org/show_bug.cgi?id=51666
-
- Support for revivers was introduced in bug 26591, but the function
- length has since remained unchanged.
-
- Test: ietestcenter/Javascript/15.12.2-0-2.html
-
- * runtime/JSONObject.cpp:
-
-2010-12-27 Jake Helfert <jake@jakeonthenet.com>
-
- Reviewed and reworked by Darin Adler.
+ Reviewed by Oliver Hunt.
- Building WebKit with Visual Studio 2010 fails due
- to ambiguous assignment operator errors.
- https://bugs.webkit.org/show_bug.cgi?id=51116
+ Removed WeakGCMap::deprecatedRemove because it was deprecated and unused
+ https://bugs.webkit.org/show_bug.cgi?id=57648
- * wtf/NullPtr.h: Added a HAVE(NULLPTR) definition for use with
- Platform.h HAVE macro, and included the Visual Studio 2010 compiler
- as one of the ones that has nullptr.
- * wtf/NullPtr.cpp: Updated condition to match.
-
- * wtf/PassOwnArrayPtr.h: Don't include the operator=(nullptr_t)
- overload if we are compiling in loose mode and the compiler has
- nullptr, because assignment of 0 will otherwise encounter
- ambiguitity with this overload and the overload for loose mode
- that takes a raw pointer. The conditional can be removed when we
- get rid of loose mode.
- * wtf/PassOwnPtr.h: Ditto.
-
- * wtf/PassRefPtr.h: Don't include the operator=(nullptr_t) overload
- if the compiler has nullptr, because assignment of 0 would be
- ambiguous with the overload that takes a raw pointer. The conditional
- can be removed if we ever decide we no longer need to support
- assigning 0, but might need a way to catch that usage on older compilers.
- * wtf/RefPtr.h: Ditto.
- * wtf/RetainPtr.h: Ditto
-
- * JavaScriptCore.xcodeproj/project.pbxproj: Added NullPtr.cpp,
- accidentally omitted when the file was first added.
-
-2010-12-26 Xan Lopez <xlopez@igalia.com>
+ * runtime/WeakGCMap.h:
- Reviewed by Eric Seidel.
+2011-04-01 Adam Roben <aroben@apple.com>
- [GTK] Add standalone target for JSC
- https://bugs.webkit.org/show_bug.cgi?id=51607
+ Maintain the invariant that Lexer::m_current is set to -1 when at the end of the code buffer
- * GNUmakefile.am: add convenience target to only build jsc and its
- dependencies.
+ Covered by existing tests.
-2010-12-24 Patrick Gansterer <paroga@webkit.org>
+ Fixes <http://webkit.org/b/56699>.
- Reviewed by Eric Seidel.
-
- [WINCE] Add CPU(MIPS) detection
- https://bugs.webkit.org/show_bug.cgi?id=51342
+ Reviewed by Oliver Hunt.
- WinCE usually defines MIPS and _MIPS_.
+ * parser/Lexer.h:
+ (JSC::Lexer::setOffset): Copied code from Lexer::shift to update m_current, because
+ supposedly the idiom that function uses is fast.
- * wtf/Platform.h:
+2011-03-31 Thouraya ANDOLSI <thouraya.andolsi@st.com>
-2010-12-23 Gavin Barraclough <barraclough@apple.com>
+ Reviewed by Oliver Hunt.
- Reviewed by Sam Weinig.
+ SH4 JIT SUPPORT.
+ https://bugs.webkit.org/show_bug.cgi?id=44329
- Rename RegexCompiler.cpp to RegexPattern.cpp.
- Implicitly call compileRegex from RegexPattern's constructor.
+ Add YARR support for SH4 platforms (disabled by default).
- * Android.mk:
- * CMakeLists.txt:
* GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/RegExp.cpp:
- (JSC::RegExp::compile):
- * yarr/RegexCompiler.cpp: Removed.
- * yarr/RegexCompiler.h: Removed.
- * yarr/RegexInterpreter.cpp:
- * yarr/RegexJIT.cpp:
- * yarr/RegexPattern.cpp: Copied from JavaScriptCore/yarr/RegexCompiler.cpp.
- (JSC::Yarr::compileRegex):
- (JSC::Yarr::RegexPattern::RegexPattern):
- * yarr/RegexPattern.h:
-
-2010-12-23 Patrick Gansterer <paroga@webkit.org>
-
- Unreviewed build fix for WinCE after r74360.
-
- Move the OS(WINDOWS) section after the OS(WINCE) section
- and add missing argument to the getStackMax call.
-
- * wtf/StackBounds.cpp:
- (WTF::StackBounds::initialize):
-
-2010-12-22 Laszlo Gombos <laszlo.1.gombos@nokia.com>
-
- Unreviewed build fix.
-
- [Symbian] Make sure OSAllocatorSymbian builds
-
- This patch only addresses the build problem.
-
- https://bugs.webkit.org/show_bug.cgi?id=51128 tracks the full
- (re)implementation of the Symbian allocator.
-
- * wtf/OSAllocatorSymbian.cpp:
- (WTF::OSAllocator::reserveUncommitted):
- (WTF::OSAllocator::reserveAndCommit):
- (WTF::OSAllocator::commit):
-
-2010-12-22 Dan Bernstein <mitz@apple.com>
-
- Changed WebKitTools to Tools.
-
- * JavaScriptCore.vcproj/JavaScriptCore.sln:
-
-2010-12-22 Dan Bernstein <mitz@apple.com>
-
- Rubber-stamped by Mark Rowe.
-
- Changed WebKitTools to Tools in script build phases.
-
- * JavaScriptCore.xcodeproj/project.pbxproj:
-
-2010-12-22 Andrei Popescu <andreip@google.com>
-
- Unreviewed build fix.
-
- Fix Chromium Linux shared library build.
- [Chromium] r74431 broke the Chromium Linux shared library build
- https://bugs.webkit.org/show_bug.cgi?id=51462
-
- * JavaScriptCore.gyp/JavaScriptCore.gyp:
- * JavaScriptCore.gypi:
-
-2010-12-21 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r74462.
- http://trac.webkit.org/changeset/74462
- https://bugs.webkit.org/show_bug.cgi?id=51449
-
- broke chromium win (Requested by tonyg-cr on #webkit).
-
- * JavaScriptCore.gypi:
-
-2010-12-21 Tony Gentilcore <tonyg@chromium.org>
-
- Unreviewed build fix.
-
- [chromium] Build fix after r74431
- https://bugs.webkit.org/show_bug.cgi?id=51447
-
- * JavaScriptCore.gypi:
-
-2010-12-21 Gavin Barraclough <barraclough@apple.com>
-
- Windows build fix.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
-
-2010-12-21 Gavin Barraclough <barraclough@apple.com>
-
- Windows build fix.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
-
-2010-12-21 Gavin Barraclough <barraclough@apple.com>
-
- Speculative build fix.
-
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutableAllocator::underMemoryPressure):
-
-2010-12-21 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Bug 26276 - Need a mechanism to determine stack extent
-
- This patch adds accurate stack size calculation for:
- DARWIN, QNX, UNIX
- We still need to fix:
- WINDOWS, SOLARIS, OPENBSD, SYMBIAN, HAIKU, WINCE
+ * assembler/MacroAssembler.h:
+ * assembler/MacroAssemblerSH4.cpp: Added.
+ * assembler/MacroAssemblerSH4.h: Added.
+ * assembler/SH4Assembler.h: Added.
+ * yarr/YarrJIT.cpp:
- * wtf/StackBounds.cpp:
- (WTF::StackBounds::initialize):
+2011-03-30 Adam Roben <aroben@apple.com>
-2010-12-21 Gavin Barraclough <barraclough@apple.com>
+ Clean build fix
- Reviewed by Geoff Garen.
-
- <rdar://problem/8765333> CRASH running out of executable memory, loading io9.com
- https://bugs.webkit.org/show_bug.cgi?id=51443
+ * JavaScriptCore.vcproj/JavaScriptCore.sln: Serialized project dependencies so projects
+ don't try to build in parallel (which doesn't mesh with our buildfailed mechanism).
- The problem here is that each page uses a reasonable amount of memory, (~4Mb),
- and that when miultiple pages are open we keep all JIT code for all functions
- in all pages alive.
+2011-03-30 Oliver Hunt <oliver@apple.com>
- Add a check to detect high memory pressure situations in the executable allocator
- (>50% of available memory allocated), and upon a top level entry into JSC (no code
- running on the stack) in this situation throw away all JIT code.
+ Rollout r82500
- * JavaScriptCore.exp:
- * debugger/Debugger.cpp:
- (JSC::Debugger::recompileAllJSFunctions): stop passing exec to recompile.
- * jit/ExecutableAllocator.h:
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::ExecutablePool::systemAlloc): Count allocations.
- (JSC::ExecutablePool::systemRelease): Count deallocations.
- (JSC::ExecutablePool::underMemoryPressure): Check memory pressure.
- * jit/ExecutableAllocatorPosix.cpp:
- (JSC::ExecutablePool::underMemoryPressure): Stub out; only meaningful with FixedVMPool.
- * jit/ExecutableAllocatorWin.cpp:
- (JSC::ExecutablePool::underMemoryPressure): Stub out; only meaningful with FixedVMPool.
- * runtime/Executable.cpp:
- (JSC::FunctionExecutable::recompile): Remove ExecState argument to recompile.
- * runtime/Executable.h:
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::dump):
+ (JSC::CodeBlock::derefStructures):
+ (JSC::CodeBlock::refStructures):
+ (JSC::CodeBlock::markAggregate):
+ * bytecode/Instruction.h:
+ (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
+ (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
+ (JSC::PolymorphicAccessStructureList::derefStructures):
+ (JSC::Instruction::Instruction):
+ * bytecode/StructureStubInfo.cpp:
+ (JSC::StructureStubInfo::deref):
+ * bytecode/StructureStubInfo.h:
+ (JSC::StructureStubInfo::initGetByIdChain):
+ (JSC::StructureStubInfo::initPutByIdTransition):
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
+ (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::emit_op_jneq_ptr):
+ * jit/JITOpcodes32_64.cpp:
+ (JSC::JIT::emit_op_jneq_ptr):
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::privateCompileGetByIdChainList):
+ * jit/JITPropertyAccess32_64.cpp:
+ (JSC::JIT::privateCompileGetByIdChainList):
+ * jit/JITStubs.cpp:
+ (JSC::getPolymorphicAccessStructureListSlot):
+ (JSC::DEFINE_STUB_FUNCTION):
+ * runtime/JSCell.h:
* runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::recompileAllJSFunctions): throws away all JIT code.
+ (JSC::JSGlobalData::JSGlobalData):
* runtime/JSGlobalData.h:
+ * runtime/JSGlobalObject.cpp:
+ (JSC::markIfNeeded):
* runtime/JSGlobalObject.h:
- (JSC::DynamicGlobalObjectScope::DynamicGlobalObjectScope): add check / call to throw away.
+ (JSC::Structure::prototypeChain):
+ * runtime/JSObject.h:
+ (JSC::JSObject::markChildrenDirect):
+ * runtime/JSPropertyNameIterator.cpp:
+ (JSC::JSPropertyNameIterator::create):
+ (JSC::JSPropertyNameIterator::get):
+ (JSC::JSPropertyNameIterator::markChildren):
+ * runtime/JSPropertyNameIterator.h:
+ (JSC::JSPropertyNameIterator::setCachedPrototypeChain):
+ * runtime/MarkStack.h:
+ (JSC::MarkStack::append):
+ * runtime/Structure.h:
+ * runtime/StructureChain.cpp:
+ (JSC::StructureChain::StructureChain):
+ * runtime/StructureChain.h:
+ (JSC::StructureChain::create):
-2010-12-21 Gavin Barraclough <barraclough@apple.com>
+2011-03-29 Matthew Delaney <mdelaney@apple.com>
- Reviewed by Geoff Garen.
+ Reviewed by Simon Fraser.
- <rdar://problem/8241425> JIT executable memory excessive usage due to regex caching
- https://bugs.webkit.org/show_bug.cgi?id=51434
+ Use the Accelerate vImage vectorized (un)premultiplyImageData functions for ImageBufferCG
- Reduce the amount of memory the RegExpCache can hold on to on iOS.
- Currently the RegExpCache can hold 256 RegExp objects. If each falls into a separate
- ExecutablePool, with a common size of 16Kb, this means we end up holding onto 4Mb of
- memory. Firstly, we can reduce this by simply reducing the size of the cache to 32
- entries. Secondly, we can use a separate set of ExecutablePools for JIT code generated
- from RegExp objects. This helps in two ways (1) it increases the probability that
- RegExps in the cache share the same pool, and (2) it means that a RegExp can't end
- up holding on to a large ExecutablePool containing a translation of JS code.
- (A RegExp could end up keeping a larger RegExp alive that happened to be sharing the
- same pool, but large RegExp patterns are less common).
+ https://bugs.webkit.org/show_bug.cgi?id=53134
- * runtime/JSGlobalData.h:
- * runtime/RegExpCache.h:
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::compile):
+ * wtf/Platform.h: Added in WTF flag for using the Accelerate framework
-2010-12-21 Gavin Barraclough <barraclough@apple.com>
+2011-03-30 Steve Falkenburg <sfalken@apple.com>
- Windows build fix.
+ Reviewed by Adam Roben.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ Share most vsprops between Release and Production builds in releaseproduction.vsprops
+ https://bugs.webkit.org/show_bug.cgi?id=57508
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreProduction.vsprops:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreRelease.vsprops:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleaseCairoCFLite.vsprops:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGO.vsprops:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGOOptimize.vsprops:
+ * JavaScriptCore.vcproj/WTF/WTFProduction.vsprops:
+ * JavaScriptCore.vcproj/WTF/WTFRelease.vsprops:
+ * JavaScriptCore.vcproj/WTF/WTFReleaseCairoCFLite.vsprops:
+ * JavaScriptCore.vcproj/WTF/WTFReleasePGO.vsprops:
+ * JavaScriptCore.vcproj/jsc/jscProduction.vsprops:
+ * JavaScriptCore.vcproj/jsc/jscRelease.vsprops:
+ * JavaScriptCore.vcproj/jsc/jscReleaseCairoCFLite.vsprops:
+ * JavaScriptCore.vcproj/jsc/jscReleasePGO.vsprops:
+ * JavaScriptCore.vcproj/testapi/testapiProduction.vsprops:
+ * JavaScriptCore.vcproj/testapi/testapiRelease.vsprops:
+ * JavaScriptCore.vcproj/testapi/testapiReleaseCairoCFLite.vsprops:
+
+2011-03-30 Mark Rowe <mrowe@apple.com>
-2010-12-21 Gavin Barraclough <barraclough@apple.com>
+ Reviewed by Adam Roben.
- Eeeep! build fix!
+ Explicitly prevent testapi and minidom from being installed rather than relying
+ on Xcode's current behavior of not installing if INSTALL_PATH is not explicitly
+ set at the target level.
- * wtf/OSAllocator.h:
- (WTF::OSAllocator::decommitAndRelease):
+ <rdar://problem/9206357>
-2010-12-21 Gavin Barraclough <barraclough@apple.com>
+ * JavaScriptCore.xcodeproj/project.pbxproj:
- Ooops, fixed typo in comment.
+2011-03-30 Timur Iskhodzhanov <timurrrr@google.com>
- * wtf/OSAllocator.h:
+ Reviewed by Alexey Proskuryakov.
-2010-12-21 Geoffrey Garen <ggaren@apple.com>
+ Add some dynamic annotations to JavaScriptCore/wtf
+ https://bugs.webkit.org/show_bug.cgi?id=53747
- Reviewed by Gavin Barraclough & Oliver Hunt.
+ By using these annotations we can improve the precision of finding
+ WebKit errors using dynamic analysis tools like ThreadSanitizer and Valgrind.
+ These annotations don't affect the compiled binaries unless USE(DYNAMIC_ANNOTATIONS) is "1".
- Added PageAllocationAligned, a cross-platform abstraction for memory allocations with arbitrary alignment requirements
- https://bugs.webkit.org/show_bug.cgi?id=51359
-
- I think this patch fixes <rdar://problem/8107952> [5.0.1] WER crash in
- Heap::allocateBlock (1902752929), and some other leaks and crashes as well.
+ These files don't add new functionality, so don't need extra tests.
- * Android.mk:
- * CMakeLists.txt:
* GNUmakefile.am:
* JavaScriptCore.gypi:
* JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj: Updated build files.
-
- * runtime/AlignedMemoryAllocator.h: Removed. Supplanted by
- PageAllocationAligned.
-
- * runtime/Collector.cpp:
- (JSC::Heap::destroy):
- (JSC::Heap::allocateBlock):
- (JSC::Heap::freeBlock):
- (JSC::Heap::addWeakGCHandle):
- * runtime/Collector.h: Switched from AlignedMemoryAllocator to
- PageAllocationAligned.
-
- * runtime/GCHandle.cpp:
- * runtime/GCHandle.h: Ditto.
-
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::PageAllocation): Removed aligned memory allocation
- functions. Supplanted by PageAllocationAligned.
-
- * wtf/PageAllocationAligned.cpp: Added.
- (WTF::PageAllocationAligned::allocate):
- (WTF::PageAllocationAligned::deallocate):
- * wtf/PageAllocationAligned.h: Added.
- (WTF::PageAllocationAligned::PageAllocationAligned): New cross-platform
- class for doing aligned memory allocation. This class properly matches
- allocation and deallocation library calls, fixing a long-standing bug
- in PageAllocation.
-
- * wtf/Platform.h: Removed some defunction VM platform defines.
-
- * wtf/wtf.pri: Updated build files.
-
-2010-12-21 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- ASSERTION FAILED: base->index() == m_codeBlock->argumentsRegister() while loading taobao.com
- https://bugs.webkit.org/show_bug.cgi?id=49006
-
- This problem was caused by having a parameter named 'arguments'.
- The fix is to treat parameters named 'arguments' as shadowing
- the actual arguments property, and so logically turn the function
- into one that doesn't "use" arguments.
-
- This required a bit of fiddling in the parser to ensure we correctly
- propagate the 'feature' of shadowing is set correctly.
-
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::createArgumentsIfNecessary):
- Change assertion to an early return as we may now reference
- a property named 'arguments' without being in a function that
- has the ArgumentsFeature
- * parser/JSParser.cpp:
- (JSC::JSParser::Scope::Scope):
- (JSC::JSParser::Scope::declareParameter):
- (JSC::JSParser::Scope::shadowsArguments):
- (JSC::JSParser::parseProgram):
- (JSC::JSParser::parseFormalParameters):
- (JSC::JSParser::parseFunctionInfo):
- * parser/Nodes.h:
- (JSC::ScopeNode::usesArguments):
-
-2010-12-21 Daniel Bates <dbates@rim.com>
-
- Reviewed by Eric Seidel and Darin Adler.
-
- Deallocate GregorianDateTime.timeZone (if allocated) when copying so that we don't leak memory.
- https://bugs.webkit.org/show_bug.cgi?id=51367
-
- Inspired by a patch by George Staikos.
-
- * wtf/DateMath.cpp:
- (JSC::msToGregorianDateTime): Modified to set timeZone to nullptr since timeZone is now
- of type OwnPtrArray<char>.
- * wtf/DateMath.h: Change timeZone to type OwnArrayPtr<char>; Removed destructor since it is no longer needed.
- (JSC::GregorianDateTime::GregorianDateTime): Modified to use OwnPtrArray semantics for timeZone.
- (JSC::GregorianDateTime::operator tm): Ditto.
- (JSC::GregorianDateTime::copyFrom): Ditto.
-
-2010-12-21 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r74402.
- http://trac.webkit.org/changeset/74402
- https://bugs.webkit.org/show_bug.cgi?id=51402
-
- This patch broke the Windows 7 Release Layout Tests (Requested
- by jessieberlin on #webkit).
-
- * wtf/StackBounds.cpp:
- (WTF::estimateStackBound):
- (WTF::StackBounds::initialize):
-
-2010-12-21 Peter Varga <pvarga@inf.u-szeged.hu>
-
- Reviewed by Csaba Osztrogonác.
-
- Unify the name of parentheses in YARR: rename parenthesis to
- parentheses.
-
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::RegexPatternConstructor::atomParenthesesEnd):
-
-2010-12-21 Laszlo Gombos <laszlo.1.gombos@nokia.com>
-
- Reviewed by Andreas Kling.
-
- [Qt] Set BUILDING_QT__ consistently
- https://bugs.webkit.org/show_bug.cgi?id=51341
-
- * JavaScriptCore.pri: Remove the definition of BUILDING_QT__ as it
- is already defined in WebKit.pri.
-
-2010-12-20 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Bug 26276 - Need a mechanism to determine stack extent
-
- This patch adds accurate stack size calculation for:
- DARWIN, WINDOWS, QNX, UNIX
- We still need to fix:
- SOLARIS, OPENBSD, SYMBIAN, HAIKU, WINCE
-
- * wtf/StackBounds.cpp:
- (WTF::StackBounds::initialize):
-
-2010-12-20 Gavin Barraclough <barraclough@apple.com>
-
- PPC build fix; stop using std::swap on PageAllocation/PageReservation,
- this was failing on some compilers since the lack of default construction
- for the m_executable/m_writable fields meant the value being swapped may
- not have been fully initialized.
-
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::deallocate):
- * wtf/PageBlock.h:
- * wtf/PageReservation.h:
- (WTF::PageReservation::deallocate):
-
-2010-12-20 Oliver Hunt <oliver@apple.com>
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * wtf/CMakeLists.txt:
+ * wtf/DynamicAnnotations.cpp: Added.
+ (WTFAnnotateBenignRaceSized):
+ (WTFAnnotateHappensBefore):
+ (WTFAnnotateHappensAfter):
+ * wtf/DynamicAnnotations.h: Added.
+ * wtf/ThreadSafeRefCounted.h:
+ (WTF::ThreadSafeRefCountedBase::derefBase):
+ * wtf/text/StringStatics.cpp:
+ (WTF::StringImpl::empty):
+
+2011-03-30 Oliver Hunt <oliver@apple.com>
Reviewed by Geoffrey Garen.
- |delete name| in strict mode code should be an early error
- https://bugs.webkit.org/show_bug.cgi?id=50431
-
- Disallow the |delete IDENTIFIER| production in strict mode, and removed
- a bunch of now unnecessary code.
-
- * parser/JSParser.cpp:
- (JSC::JSParser::Scope::collectFreeVariables):
- (JSC::jsParse):
- (JSC::JSParser::parseProgram):
- (JSC::JSParser::parseUnaryExpression):
- * parser/JSParser.h:
- * parser/Parser.cpp:
- (JSC::Parser::parse):
- * parser/Parser.h:
- (JSC::Parser::parse):
-
-2010-12-20 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Olver Hunt.
-
- Bug 51358 - Should check stack depth rather than using recursion limits in byte compilation
-
- The current implementation of recursion limit checking is not safe on smaller stacks.
- Switch to using a common mechanism, shared with the parser, to check recursion limits.
+ Make StructureChain GC allocated
+ https://bugs.webkit.org/show_bug.cgi?id=56695
- Make bytecompiler use StackBounds. Empirical testing shows emitStrcat to have the largest
- footprint on the stack, at just under 1k on x86-64. Given this, the default recursion
- check (requiring 4k of available space to recurse) seems reasonable.
+ Make StructureChain GC allocated, and make the various owners
+ mark it correctly.
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::dump):
+ (JSC::CodeBlock::derefStructures):
+ (JSC::CodeBlock::refStructures):
+ (JSC::CodeBlock::markAggregate):
+ * bytecode/Instruction.h:
+ (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
+ (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
+ (JSC::PolymorphicAccessStructureList::derefStructures):
+ (JSC::PolymorphicAccessStructureList::markAggregate):
+ (JSC::Instruction::Instruction):
+ * bytecode/StructureStubInfo.cpp:
+ (JSC::StructureStubInfo::deref):
+ (JSC::StructureStubInfo::markAggregate):
+ * bytecode/StructureStubInfo.h:
+ (JSC::StructureStubInfo::initGetByIdChain):
+ (JSC::StructureStubInfo::initPutByIdTransition):
* bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- * bytecompiler/BytecodeGenerator.h:
- (JSC::BytecodeGenerator::emitNode):
- (JSC::BytecodeGenerator::emitNodeInConditionContext):
- * bytecompiler/NodesCodegen.cpp:
- (JSC::BinaryOpNode::emitStrcat):
-
-2010-12-20 Tony Gentilcore <tonyg@chromium.org>
-
- Unreviewed build fix.
-
- Include pthread to fix chromium mac build (broken by r74360)
- https://bugs.webkit.org/show_bug.cgi?id=51356
-
- * wtf/StackBounds.cpp:
-
-2010-12-20 Xan Lopez <xlopez@igalia.com>
-
- Reviewed by Gustavo Noronha.
-
- * GNUmakefile.am: add missing files.
-
-2010-12-18 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Bug 26276 - Need a mechanism to determine stack extent
-
- This patch adds a class 'StackBounds', to hold information about the machine stack.
- The implementation of this class broadly adheres to the current implmentation of
- stack limit checking, and as such does not solve the problem of determining stack
- extent, but gives us a common place to do so.
-
- Currently two mechanism are provided to determine the stack origin (the point the
- stack is growing away from). currentThreadStackBase() in Collector provides a
- more accurate determination of the stack origin, so use this to calculate
- StackBounds::m_origin; WTFThreadData::approximatedStackStart is less accurate, and
- as such can be removed. Cache the StackBounds on WTFThreadData such that they
- need only be determined once per thread, and for non-API contexts cache this
- information in JSGlobalData, to save a thread-specific access.
-
- For the time being retain the estimate of stack size used by JSC's parser
- (128 * sizeof(void*) * 1024), with a view to replacing this with something more
- accurate in the near future.
-
- * parser/JSParser.cpp:
- (JSC::JSParser::canRecurse):
- (JSC::JSParser::JSParser):
- Change to use StackBounds.
- * runtime/Collector.cpp:
- (JSC::Heap::registerThread):
- (JSC::Heap::markCurrentThreadConservativelyInternal):
- Change to use StackBounds, cached on JSGlobalData.
+ (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
+ (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::emit_op_jneq_ptr):
+ * jit/JITOpcodes32_64.cpp:
+ (JSC::JIT::emit_op_jneq_ptr):
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::privateCompileGetByIdChainList):
+ * jit/JITPropertyAccess32_64.cpp:
+ (JSC::JIT::privateCompileGetByIdChainList):
+ * jit/JITStubs.cpp:
+ (JSC::getPolymorphicAccessStructureListSlot):
+ (JSC::DEFINE_STUB_FUNCTION):
+ * runtime/JSCell.h:
* runtime/JSGlobalData.cpp:
(JSC::JSGlobalData::JSGlobalData):
* runtime/JSGlobalData.h:
- (JSC::JSGlobalData::stack):
- Add a cached copy of StackBounds.
- * wtf/StackBounds.cpp: Copied from JavaScriptCore/runtime/Collector.cpp.
- (WTF::estimateStackBound):
- (WTF::StackBounds::initialize):
- (WTF::getStackMax):
- Copy code from Collector.cpp to determine stack origin.
- * wtf/StackBounds.h: Added.
- (WTF::StackBounds::StackBounds):
- No argument constructor; returns a null StackBounds.
- (WTF::StackBounds::currentThreadStackBounds):
- Returns a StackBounds object representing the stack limits
- of the current thread.
- (WTF::StackBounds::origin):
- Returns to stack origin (the point the stack is growing away
- from; the highest extent of the stack on machines where the
- stack grows downwards.
- (WTF::StackBounds::recursionLimit):
- Returns a limit value that is 'a comfortable distance from
- the end of the stack'. Our concept of this is currently 1 page
- away from the end, however the default value may be tuned in
- the future, and clients may override passing a larger delta;
- should only be called on StackBounds object representing the
- stack of the thread this method is called on (checked by
- checkConsistency).
- (WTF::StackBounds::recursionCheck):
- Checks whether we are currently 'a comfortable distance from
- the end of the stack'. Our concept of this is currently 1 page
- away from the end, however the default value may be tuned in
- the future, and clients may override passing a larger delta
- to apply when checking, if they wish to do so. This method
- should only be called on StackBounds object representing the
- stack of the thread this method is called on (checked by
- checkConsistency).
- (WTF::StackBounds::current):
- Approximate current stack position. On machines where the stack
- is growing downwards this is the lowest address that might need
- conservative collection.
- (WTF::StackBounds::isGrowingDownward):
- True for all platforms other than WINCE, which has to check.
- (WTF::StackBounds::checkConsistency):
- This is called in methods that shoulds only be operating on a
- valid set of bounds; as such we expect m_origin != m_bounds
- (i.e. stack size != zero) - we're really testing that this
- object is not null (the constructor initializes both fields
- to zero). Also checks that current() is within the stack's
- bounds.
- * wtf/WTFThreadData.cpp:
- (WTF::WTFThreadData::WTFThreadData):
- * wtf/WTFThreadData.h:
- (WTF::WTFThreadData::stack):
- Add the StackBounds member variable.
-
-2010-12-17 Geoffrey Garen <ggaren@apple.com>
-
- Reviewed by Sam Weinig.
-
- Factored common page set management into a new PageBlock base class
- https://bugs.webkit.org/show_bug.cgi?id=51285
-
- * Android.mk:
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * interpreter/RegisterFile.h:
- (JSC::RegisterFile::RegisterFile):
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutableAllocator::intializePageSize):
- * wtf/PageAllocation.cpp: Removed.
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::deallocate):
- (WTF::PageAllocation::PageAllocation):
- * wtf/PageReservation.h:
- (WTF::PageReservation::commit):
- (WTF::PageReservation::decommit):
- (WTF::PageReservation::deallocate):
- (WTF::PageReservation::PageReservation):
- * wtf/wtf.pri:
-
-2010-12-17 Michael Saboff <msaboff@apple.com>
-
- Reviewed by Oliver Hunt.
-
- RegExp Jit'ed expression crashes clicking link on yelp.com
- https://bugs.webkit.org/show_bug.cgi?id=51284
-
- When transitioning between an non-repeating beginning of line
- anchored expression and the remaining refactored repeating
- expression, we should not clear any residual datalabel in
- state's m_backtrack. It will be resolved and cleared in subsequent
- code when linkAlternativeBacktracks() is called for the repeating
- alternative(s).
-
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::BacktrackDestination::clear):
- (JSC::Yarr::RegexGenerator::TermGenerationState::clearBacktrack):
-
-2010-12-17 Dan Bernstein <mitz@apple.com>
-
- Rubber-stamped by Mark Rowe.
-
- Updated for the renaming of WebKitTools to Tools
-
- * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh:
-
-2010-12-17 Ariya Hidayat <ariya@sencha.com>
-
- Reviewed by Oliver Hunt.
-
- [JSC] parseAssignmentExpression should use TreeBuilder::CreatesAST
- https://bugs.webkit.org/show_bug.cgi?id=51268
-
- * parser/JSParser.cpp:
- (JSC::JSParser::parseAssignmentExpression):
-
-2010-12-17 Geoffrey Garen <ggaren@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Removed RChunk from PageAllocation/PageReservation, since it's now unused.
- https://bugs.webkit.org/show_bug.cgi?id=51276
-
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::PageAllocation):
- * wtf/PageReservation.h:
- (WTF::PageReservation::PageReservation):
-
-2010-12-17 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- Incorrect encoding of some constants in ARMv7 JIT
- https://bugs.webkit.org/show_bug.cgi?id=51273
- <rdar://problem/8650210>
-
- When using immediate encoding 3 we need to write the byte
- that holds a duplicated value.
-
- * assembler/ARMv7Assembler.h:
- (JSC::ARMThumbImmediate::makeEncodedImm):
-
-2010-12-16 Evan Martin <evan@chromium.org>
-
- Reviewed by Darin Fisher.
-
- [chromium] useless warnings when building on Windows
- https://bugs.webkit.org/show_bug.cgi?id=50985
-
- Disable some compiler warnings that aren't indicative of real problems.
-
- * JavaScriptCore.gyp/JavaScriptCore.gyp:
-
-2010-12-16 Pratik Solanki <psolanki@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- https://bugs.webkit.org/show_bug.cgi?id=51166
- ExecutableAllocator::cacheFlush should call sys_cache_control
-
- * jit/ExecutableAllocator.h:
- (JSC::ExecutableAllocator::cacheFlush): Use the more correct and forward looking API -
- sys_cache_control(kCacheFunctionPrepareForExecution,...).
-
-2010-12-16 Ariya Hidayat <ariya@sencha.com>
-
- Reviewed by Andreas Kling.
-
- [JSC] Const correctness in ASTBuilder and SyntaxChecker
- https://bugs.webkit.org/show_bug.cgi?id=51141
-
- * parser/ASTBuilder.h:
- (JSC::ASTBuilder::getName):
- (JSC::ASTBuilder::getType):
- (JSC::ASTBuilder::isResolve):
- * parser/SyntaxChecker.h:
- (JSC::SyntaxChecker::operatorStackPop):
-
-2010-12-15 Kenneth Russell <kbr@google.com>
-
- Reviewed by James Robinson.
-
- Web Audio API: port FFTFrame to MKL
- https://bugs.webkit.org/show_bug.cgi?id=50986
-
- Fixed bug in log2 emulation function provided for Windows port of
- Web Audio API.
-
- * wtf/MathExtras.h:
- (log2):
-
-2010-12-14 Mark Rowe <mrowe@apple.com>
-
- Reviewed by Sam Weinig.
-
- <http://webkit.org/b/51064> Reproducible crash inside WebCore::MediaPlayerPrivateQTKit::createQTMovie when loading <video>
-
- * wtf/text/WTFString.h: Prevent String from being implicitly convertable to bool.
- It was previously implicitly convertible to bool on Mac via operator NSString*,
- but since that always has a non-zero return value it would give unexpected results.
-
-2010-12-14 Laszlo Gombos <laszlo.1.gombos@nokia.com>
-
- Reviewed by Eric Seidel.
-
- [Qt] [Symbian] Do not use pkg-config on Symbian as it is not supported
- https://bugs.webkit.org/show_bug.cgi?id=50231
-
- Guard CONFIG+=link_pkgconfig with !symbian.
-
- * jsc.pro:
-
-2010-12-14 Cameron Zwarich <zwarich@apple.com>
-
- Not reviewed.
-
- Revert accidental change disabling the JIT for most platforms.
-
- * wtf/Platform.h:
-
-2010-12-13 Cameron Zwarich <zwarich@apple.com>
-
- Reviewed by Eric Seidel.
-
- Clang fails to build the JSC interpreter
- https://bugs.webkit.org/show_bug.cgi?id=51016
-
- Clang does not allow indirect gotos out of scopes with cleanup. GCC 4.2 allows
- them, but it does not correctly generate the cleanup, causing a leak if the
- cleanup decrements a reference count.
-
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute): Put an Identifier into its own scope.
-
-2010-12-14 Carlos Garcia Campos <cgarcia@igalia.com>
-
- Reviewed by Martin Robinson.
-
- [GTK] Simplify context-menu handling code
- https://bugs.webkit.org/show_bug.cgi?id=49658
-
- * wtf/PlatformRefPtr.h: Add leakRef()
-
-2010-12-13 Cameron Zwarich <zwarich@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- JavaScriptCore should not use "asm volatile" outside of a function
- https://bugs.webkit.org/show_bug.cgi?id=50991
-
- * jit/JITStubs.cpp: Remove the volatile keyword from asm statements.
-
-2010-12-13 Steve Falkenburg <sfalken@apple.com>
-
- Windows production build fix.
- Try copying ICU 4.6 in addition to 4.4 and 4.2.
+ * runtime/JSGlobalObject.cpp:
+ (JSC::markIfNeeded):
+ * runtime/JSGlobalObject.h:
+ (JSC::Structure::prototypeChain):
+ * runtime/JSObject.h:
+ (JSC::JSObject::markChildrenDirect):
+ * runtime/JSPropertyNameIterator.cpp:
+ (JSC::JSPropertyNameIterator::create):
+ (JSC::JSPropertyNameIterator::get):
+ (JSC::JSPropertyNameIterator::markChildren):
+ * runtime/JSPropertyNameIterator.h:
+ (JSC::JSPropertyNameIterator::setCachedPrototypeChain):
+ * runtime/MarkStack.h:
+ (JSC::MarkStack::append):
+ * runtime/Structure.h:
+ (JSC::Structure::cachedPrototypeChainSlot):
+ * runtime/StructureChain.cpp:
+ (JSC::StructureChain::StructureChain):
+ * runtime/StructureChain.h:
+ (JSC::StructureChain::create):
+ (JSC::StructureChain::createStructure):
- * JavaScriptCore.vcproj/jsc/jscPostBuild.cmd:
+2011-03-30 Steve Falkenburg <sfalken@apple.com>
-2010-12-13 Michael Saboff <msaboff@apple.com>
+ Reviewed by Adam Roben.
- Reviewed by Oliver Hunt.
+ Update Windows production build logic for new production configurations
+ https://bugs.webkit.org/show_bug.cgi?id=57494
- REGRESSION: mobileme mail viewing is broken
- https://bugs.webkit.org/show_bug.cgi?id=50884
+ * JavaScriptCore.vcproj/JavaScriptCore.make:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreProduction.vsprops:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGO.vsprops:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGOOptimize.vsprops:
+ * JavaScriptCore.vcproj/WTF/WTFProduction.vsprops:
+ * JavaScriptCore.vcproj/WTF/WTFReleasePGO.vsprops:
+ * JavaScriptCore.vcproj/jsc/jscProduction.vsprops:
+ * JavaScriptCore.vcproj/jsc/jscReleasePGO.vsprops:
+ * JavaScriptCore.vcproj/testapi/testapiProduction.vsprops:
- Fixed problem where simple parenthesis (those without capture and
- with a fixed count) where not propagating backtrack to labels for
- nested parentheses. Also added the nesting level for the parentheses
- state created in that case as well.
+2011-03-30 Steve Falkenburg <sfalken@apple.com>
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::BacktrackDestination::copyBacktrackToLabel):
- (JSC::Yarr::RegexGenerator::TermGenerationState::isLastTerm):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::generateCode):
- (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
+ Reviewed by Adam Roben.
-2010-12-13 Peter Varga <pvarga@inf.u-szeged.hu>
+ Rename Windows configuration Release_LTCG to Production for clarity
+ https://bugs.webkit.org/show_bug.cgi?id=57465
- Reviewed by Gavin Barraclough.
+ * JavaScriptCore.vcproj/JavaScriptCore.sln:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreProduction.vsprops: Copied from Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleaseLTCG.vsprops.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleaseLTCG.vsprops: Removed.
+ * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln:
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj:
+ * JavaScriptCore.vcproj/WTF/WTFProduction.vsprops: Copied from Source/JavaScriptCore/JavaScriptCore.vcproj/WTF/WTFReleaseLTCG.vsprops.
+ * JavaScriptCore.vcproj/WTF/WTFReleaseLTCG.vsprops: Removed.
+ * JavaScriptCore.vcproj/jsc/jsc.vcproj:
+ * JavaScriptCore.vcproj/jsc/jscProduction.vsprops: Copied from Source/JavaScriptCore/JavaScriptCore.vcproj/jsc/jscReleaseLTCG.vsprops.
+ * JavaScriptCore.vcproj/jsc/jscReleaseLTCG.vsprops: Removed.
+ * JavaScriptCore.vcproj/testapi/testapi.vcproj:
+ * JavaScriptCore.vcproj/testapi/testapiProduction.vsprops: Copied from Source/JavaScriptCore/JavaScriptCore.vcproj/testapi/testapiReleaseLTCG.vsprops.
+ * JavaScriptCore.vcproj/testapi/testapiReleaseLTCG.vsprops: Removed.
- Reduce the size of the RegexStackSpaceForBackTrackInfoParentheses in YARR
- https://bugs.webkit.org/show_bug.cgi?id=49385
+2011-03-30 Zoltan Herczeg <zherczeg@inf.u-szeged.hu>
- Remove the BackTrackInfoParentheses struct prevBegin and prevEnd members.
+ Reviewed by Maciej Stachowiak.
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::matchParentheses):
- (JSC::Yarr::Interpreter::backtrackParentheses):
- * yarr/RegexPattern.h:
+ Add the NEXT_OPCODE() macro to the DFG-JIT parser
+ https://bugs.webkit.org/show_bug.cgi?id=57322
-2010-12-10 Michael Saboff <msaboff@apple.com>
+ In JavaScriptCore we use macros to jump to the next opcode
+ (both in interpreter and JIT). This macro is added to the
+ DFG-JIT parser as well.
- Reviewed by Gavin Barraclough.
+ * dfg/DFGByteCodeParser.cpp:
+ (JSC::DFG::ByteCodeParser::parse):
- REGRESSION Hang inside Yarr::RegexCodeBlock::execute when visiting
- bugs.webkit.org
- https://bugs.webkit.org/show_bug.cgi?id=50816
-
- First nested parentheses of the second or greater alternative
- where backtracking to the prior parentheses. Changed the default
- handling of initial parentheses for all alternatives to go back
- to the immediate outer paren.
-
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::GenerationState::addParenthesesTail):
- (JSC::Yarr::RegexGenerator::TermGenerationState::TermGenerationState):
- (JSC::Yarr::RegexGenerator::TermGenerationState::isLastTerm):
- (JSC::Yarr::RegexGenerator::TermGenerationState::getTermIndex):
- (JSC::Yarr::RegexGenerator::TermGenerationState::setParenthesesTail):
- (JSC::Yarr::RegexGenerator::TermGenerationState::getParenthesesTail):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::ParenthesesTail):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::processBacktracks):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::generateCode):
- (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
-
-2010-12-11 Patrick Gansterer <paroga@webkit.org>
+2011-03-29 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
- Add an overload to makeString for Vector<char>
- https://bugs.webkit.org/show_bug.cgi?id=50123
-
- Also cleanup StringTypeAdapter.
-
- * wtf/text/StringConcatenate.h:
-
-2010-12-10 Siddharth Mathur <siddharth.mathur@nokia.com>
-
- Reviewed by Eric Seidel.
-
- [Qt] Build fix for Symbian: don't compile POSIX memory management implementation
- https://bugs.webkit.org/show_bug.cgi?id=50707
-
- * wtf/wtf.pri:
-
-2010-12-10 Steve Falkenburg <sfalken@apple.com>
-
- Windows production build fix.
+ ~25% regression on v8-splay in the SunSpider harness
+ https://bugs.webkit.org/show_bug.cgi?id=56128
- Don't stop if react-to-vsprops-changes.py exits with an error,
- since this will occur in production builds.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
-
-2010-12-10 Brian Weinstein <bweinstein@apple.com>
-
- Reviewed by Adam Roben.
-
- Turn on USE(CROSS_PLATFORM_CONTEXT_MENUS) for Windows.
+ I'm not sure if this is the root cause of the regression Stephanie
+ measured, but it seems to get us back to previous v8-splay times.
+
+ SunSpider reports no change. v8-splay says 41% faster.
- * wtf/Platform.h:
+ * runtime/Heap.cpp:
+ (JSC::Heap::reset): Make marking proportional to 1X the size of the heap,
+ not .5X the size of the heap. When the heap is large, this makes a big
+ difference. (Our old heap growth policy matched this. You can see by
+ looking at resizeBlocks in revisions prior to r77699.)
-2010-12-10 Martin Robinson <mrobinson@igalia.com>
+2011-03-29 Steve Falkenburg <sfalken@apple.com>
- Unreviewed, rolling out r73703.
- http://trac.webkit.org/changeset/73703
- https://bugs.webkit.org/show_bug.cgi?id=49658
+ Reviewed by Darin Adler.
- This patch is causing crashes on the GTK+ bots.
+ Use per-configuration vsprops in JavaScriptCore to avoid WebKitVSPropsRedirectionDir removal by MSVC IDE
+ https://bugs.webkit.org/show_bug.cgi?id=57350
+
+ Visual Studio's IDE was removing instances of $(WebKitVSPropsRedirectionDir) from
+ InheritedPropertySheet rules in our vcproj files when the vcproj was edited from within
+ the IDE. To avoid this, add a separate vsprops file for each project configuration that
+ contains the required inherited property sheets.
- * wtf/PlatformRefPtr.h:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreDebug.vsprops: Added.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreDebugAll.vsprops: Added.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreDebugCairoCFLite.vsprops: Added.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreRelease.vsprops: Added.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleaseCairoCFLite.vsprops: Added.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleaseLTCG.vsprops: Added.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGO.vsprops: Added.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGOOptimize.vsprops: Added.
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj:
+ * JavaScriptCore.vcproj/WTF/WTFDebug.vsprops: Added.
+ * JavaScriptCore.vcproj/WTF/WTFDebugAll.vsprops: Added.
+ * JavaScriptCore.vcproj/WTF/WTFDebugCairoCFLite.vsprops: Added.
+ * JavaScriptCore.vcproj/WTF/WTFRelease.vsprops: Added.
+ * JavaScriptCore.vcproj/WTF/WTFReleaseCairoCFLite.vsprops: Added.
+ * JavaScriptCore.vcproj/WTF/WTFReleaseLTCG.vsprops: Added.
+ * JavaScriptCore.vcproj/WTF/WTFReleasePGO.vsprops: Added.
+ * JavaScriptCore.vcproj/jsc/jsc.vcproj:
+ * JavaScriptCore.vcproj/jsc/jscDebug.vsprops: Added.
+ * JavaScriptCore.vcproj/jsc/jscDebugAll.vsprops: Added.
+ * JavaScriptCore.vcproj/jsc/jscDebugCairoCFLite.vsprops: Added.
+ * JavaScriptCore.vcproj/jsc/jscRelease.vsprops: Added.
+ * JavaScriptCore.vcproj/jsc/jscReleaseCairoCFLite.vsprops: Added.
+ * JavaScriptCore.vcproj/jsc/jscReleaseLTCG.vsprops: Added.
+ * JavaScriptCore.vcproj/jsc/jscReleasePGO.vsprops: Added.
+ * JavaScriptCore.vcproj/testapi/testapi.vcproj:
+ * JavaScriptCore.vcproj/testapi/testapiDebug.vsprops: Added.
+ * JavaScriptCore.vcproj/testapi/testapiDebugAll.vsprops: Added.
+ * JavaScriptCore.vcproj/testapi/testapiDebugCairoCFLite.vsprops: Added.
+ * JavaScriptCore.vcproj/testapi/testapiRelease.vsprops: Added.
+ * JavaScriptCore.vcproj/testapi/testapiReleaseCairoCFLite.vsprops: Added.
+ * JavaScriptCore.vcproj/testapi/testapiReleaseLTCG.vsprops: Added.
-2010-12-10 Patrick Gansterer <paroga@webkit.org>
+2011-03-29 Oliver Hunt <oliver@apple.com>
Reviewed by Eric Seidel.
- Cleanup StringWx.cpp
- https://bugs.webkit.org/show_bug.cgi?id=50525
+ REGRESSION(r82173): Causes assertion and test failures in run-javascriptcore-tests on Windows (Requested by aroben on #webkit).
+ https://bugs.webkit.org/show_bug.cgi?id=57333
- Use StringImpl::createUninitialized to avoid memcpy and fix style issues.
+ constructDate now takes the global object explicitly as it may be called
+ by functions other than the constructor itself.
- * wtf/wx/StringWx.cpp:
- (WTF::String::String):
-
-2010-12-10 Carlos Garcia Campos <cgarcia@igalia.com>
-
- Reviewed by Martin Robinson.
-
- [GTK] Simplify context-menu handling code
- https://bugs.webkit.org/show_bug.cgi?id=49658
-
- * wtf/PlatformRefPtr.h:
-
-2010-12-09 Michael Saboff <msaboff@apple.com>
+ * API/JSObjectRef.cpp:
+ (JSObjectMakeDate):
+ * runtime/DateConstructor.cpp:
+ (JSC::constructDate):
+ (JSC::constructWithDateConstructor):
+ * runtime/DateConstructor.h:
- Reviewed by Gavin Barraclough.
+2011-03-29 Ben Taylor <bentaylor.solx86@gmail.com>
- REGRESSION (r73065?): A regex no longer works
- https://bugs.webkit.org/show_bug.cgi?id=50570
-
- Changed the handling of adjacent parentheses backtracks in two ways.
- First, only outer most paren backtracks default to back tracking
- to the "next character" looping code. Second, added a jump around
- backtracks that fall through to the next backtrack where the
- second backtrack has some greedy processing before the backtracking
- from outside the parentheses code.
- Also cleaned up extraneous white spce, removing white space at the
- end of or that makes up a whole line.
-
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::GenerationState::GenerationState):
- (JSC::Yarr::RegexGenerator::GenerationState::incrementParenNestingLevel):
- (JSC::Yarr::RegexGenerator::GenerationState::decrementParenNestingLevel):
- (JSC::Yarr::RegexGenerator::GenerationState::addParenthesesTail):
- (JSC::Yarr::RegexGenerator::GenerationState::emitParenthesesTail):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::ParenthesesTail):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::setNextIteration):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::generateCode):
- (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
-
-2010-12-09 Michael Saboff <msaboff@apple.com>
+ Reviewed by Benjamin Poulain.
- Reviewed by Geoffrey Garen.
+ https://bugs.webkit.org/show_bug.cgi?id=41953
- Addressed the "FIXME" issues in array sort for toString() methods that
- mutate the array in either size or contents. The change is to mark
- the temporary array contents so that they are not garbage collected
- and to make sure the array is large enough to hold the contents
- of the sorted temporary vector.
- https://bugs.webkit.org/show_bug.cgi?id=50718
+ Fix compile error on Solaris 10/Sun Studio 12 CC emanating from MathExtras.h
- * runtime/Collector.cpp:
- (JSC::Heap::addTempSortVector):
- (JSC::Heap::removeTempSortVector):
- (JSC::Heap::markTempSortVectors):
- (JSC::Heap::markRoots):
- * runtime/Collector.h:
- * runtime/JSArray.cpp:
- (JSC::JSArray::sort):
- * runtime/JSValue.h:
+ * wtf/MathExtras.h:
-2010-12-09 Michael Saboff <msaboff@apple.com>
+2011-03-29 Ben Taylor <bentaylor.solx86@gmail.com>
Reviewed by Darin Adler.
- Changed setting of backtrack labels to not overwrite a prior
- label. Where losing prior labe which then reverted back to
- next character label.
- https://bugs.webkit.org/show_bug.cgi?id=50579
-
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::BacktrackDestination::setBacktrackToLabel):
-
-2010-12-08 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Sam Weinig.
-
- Permit Character Class Escape in CharacterRange in Character Class.
- https://bugs.webkit.org/show_bug.cgi?id=50483
- https://bugs.webkit.org/show_bug.cgi?id=50538
- https://bugs.webkit.org/show_bug.cgi?id=50654
- https://bugs.webkit.org/show_bug.cgi?id=50646
-
- We recently tightened up our spec conformance in generating syntax
- error in these cases, however testing in the wild has shown this
- to be problematic. This reverts the previous change in allowing
- class escapes (e.g. \d) in ranges in character classes ([]), but
- does retain some closer conformance to the spec in only allowing
- ranges that would be permitted per the grammar rules in the spec
- (e.g. in /[\d-a-z]/ "a-z" cannot be considered as a range).
-
- * yarr/RegexParser.h:
- (JSC::Yarr::Parser::CharacterClassParserDelegate::atomPatternCharacter):
- (JSC::Yarr::Parser::CharacterClassParserDelegate::atomBuiltInCharacterClass):
- (JSC::Yarr::Parser::parse):
-
-2010-12-08 Geoffrey Garen <ggaren@apple.com>
-
- Reviewed by Sam Weinig.
-
- Try to fix crash-on-launch seen on Windows builder.
-
- * wtf/OSAllocatorWin.cpp:
- (WTF::OSAllocator::release): Disabled an ASSERT, because it checks for
- a bug that hasn't been fixed yet.
-
-2010-12-08 Geoffrey Garen <ggaren@apple.com>
-
- Try to fix Windows build.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Updated .def file.
-
-2010-12-08 Geoffrey Garen <ggaren@apple.com>
-
- Try to fix Windows build.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Updated .def
- file to remove a symbol -- the next build failure will say which symbol
- to add back.
-
-2010-12-08 Geoffrey Garen <ggaren@apple.com>
-
- Try to fix Windows build.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Updated .def file.
-
-2010-12-08 Geoffrey Garen <ggaren@apple.com>
-
- Try to fix GTK Linux build.
-
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutablePool::systemAlloc):
- * runtime/AlignedMemoryAllocator.h:
- (JSC::::AlignedMemoryAllocator): Updated for Usage enum moving to OSAllocator.
-
-2010-12-07 Geoffrey Garen <ggaren@apple.com>
-
- Reviewed by Sam Weinig.
-
- Migrated OS-specific allocation code from PageReservation and PageAllocation to OSAllocator
- https://bugs.webkit.org/show_bug.cgi?id=50653
-
- * JavaScriptCore.exp: Updated for new function signature.
-
- * interpreter/RegisterFile.h:
- (JSC::RegisterFile::RegisterFile):
- (JSC::RegisterFile::grow):
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::reuse):
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator): Removed checkAllocatedOkay.
- OSAllocator is now the central location for verifying that allocation succeeds.
- This allowed me to remove some complicating cross-platform cruft.
-
- * runtime/AlignedMemoryAllocator.h:
- (JSC::::allocate): Updated for code motion.
-
- * wtf/OSAllocator.h: Added Usage, writable, and executable parameters, to
- support VM features required by clients of PageAllocation and PageReservation.
-
- * wtf/OSAllocatorPosix.cpp:
- (WTF::OSAllocator::reserve):
- (WTF::OSAllocator::reserveAndCommit):
- (WTF::OSAllocator::commit): Moved PageAllocation support for randomizing
- executable memory here.
-
- * wtf/OSAllocatorSymbian.cpp:
- (WTF::OSAllocator::reserve):
- (WTF::OSAllocator::reserveAndCommit):
- (WTF::OSAllocator::commit): Updated for new function signatures.
-
- * wtf/OSAllocatorWin.cpp:
- (WTF::protection):
- (WTF::OSAllocator::reserve):
- (WTF::OSAllocator::reserveAndCommit):
- (WTF::OSAllocator::commit):
- (WTF::OSAllocator::release): Updated for new function signatures. Moved
- some protection-related and WINCE-related code from PageAllocation here.
-
- * wtf/PageAllocation.cpp: Nixed cross-platform lastError abstraction, since
- it was only used by checkAllocatedOkay, which is now gone.
-
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::allocate):
- (WTF::PageAllocation::allocateAligned):
- (WTF::PageAllocation::deallocate):
- (WTF::PageAllocation::isPowerOfTwo):
- (WTF::PageAllocation::systemAllocateAligned): Removed system* functions,
- and replaced calls to them with calls to OSAllocator.
-
- * wtf/PageReservation.h:
- (WTF::PageReservation::commit):
- (WTF::PageReservation::decommit):
- (WTF::PageReservation::reserve):
- (WTF::PageReservation::deallocate):
- (WTF::PageReservation::PageReservation): Ditto. Added m_writable and
- m_executable because these flags are now required when committing memory.
-
-2010-12-08 Chris Rogers <crogers@google.com>
-
- Reviewed by Kenneth Russell.
-
- Add web audio files to mac port Xcode projects
- https://bugs.webkit.org/show_bug.cgi?id=50721
-
- * JavaScriptCore.xcodeproj/project.pbxproj:
-
-2010-12-08 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- Marking the active global object re-enters through markConservatively
- https://bugs.webkit.org/show_bug.cgi?id=50711
-
- draining of the MarkStack is not allowed to be re-entrant, we got away
- with this simply due to the logic in MarkStack::drain implicitly handling
- changes that could be triggered by the re-entry.
-
- Just to be safe this patch removes the re-entry through markConservatively
- so we don't accidentally introduce such an issue in future. I've also
- added an assertion to catch such errors.
-
- * runtime/Collector.cpp:
- (JSC::Heap::markConservatively):
- (JSC::Heap::markCurrentThreadConservativelyInternal):
- (JSC::Heap::markOtherThreadConservatively):
- * runtime/JSArray.h:
- (JSC::MarkStack::drain):
- * runtime/MarkStack.h:
- (JSC::MarkStack::MarkStack):
+ https://bugs.webkit.org/show_bug.cgi?id=57231
+ Add conditional for SUNCC supporting alignment macros
-2010-12-08 Chris Marrin <cmarrin@apple.com>
+ Compile fix for Solaris 10/Sun Studio 12 CC
- Reviewed by Simon Fraser.
-
- Share code between Mac (CA) and Windows (CACF) GraphicsLayer implementations
- https://bugs.webkit.org/show_bug.cgi?id=49388
-
- Added a WTF_PLATFORM_CA flag. Set when platform is MAC or IOS or (WINDOWS AND CG)
- which was decided was the best way to identify a build with CoreAnimation
-
- * wtf/Platform.h:
-
-2010-12-07 Anders Carlsson <andersca@apple.com>
-
- Build fix follow up build fix.
-
- * pcre/pcre_ucp_searchfuncs.cpp:
- (jsc_pcre_ucp_othercase):
+ * wtf/Vector.h:
-2010-12-07 Anders Carlsson <andersca@apple.com>
+2011-03-29 Ben Taylor <bentaylor.solx86@gmail.com>
Reviewed by Darin Adler.
- Fix clang++ build
- https://bugs.webkit.org/show_bug.cgi?id=50645
-
- Explicitly cast offset to int.
+ https://bugs.webkit.org/show_bug.cgi?id=57256
- * pcre/pcre_ucp_searchfuncs.cpp:
- (jsc_pcre_ucp_othercase):
+ Fix crash on misaligned reads on Solaris 10/Sparc
-2010-12-07 Kenneth Russell <kbr@google.com>
-
- Reviewed by David Levin.
-
- Fix compilation of core web audio files on Windows
- https://bugs.webkit.org/show_bug.cgi?id=50603
-
- Added log2 definition to MathExtras.h on Windows platform.
+ * wtf/text/AtomicString.cpp:
+ (WTF::equal):
- * wtf/MathExtras.h:
- (log2):
+2011-03-28 Oliver Hunt <oliver@apple.com>
-2010-12-07 Antti Koivisto <antti@apple.com>
+ Reviewed by Geoffrey Garen.
- Reviewed by Gavin Barraclough.
+ instanceof Array test fails when using iframes
+ https://bugs.webkit.org/show_bug.cgi?id=17250
- https://bugs.webkit.org/show_bug.cgi?id=50412
- http://www.wunderground.com/US/CA/Hayward.html causes big memory spike during page loading
-
- Creating a substring caused the original string be flattened if it was in the rope form. This could use
- significant amount of memory by reducing buffer sharing between strings.
-
- Add a rope specific substring function that constructs the substring by reusing the rope fibers
- instead of flattening the rope.
-
- No change observed in SunSpider.
+ This is a problem with all built in constructors, the use of
+ lexicalGlobalObject rather than the constructors own
+ global object reference means that a builtin will always use
+ the prototype from the lexical global object rather than that
+ of the constructors origin.
+ * API/JSObjectRef.cpp:
+ (JSObjectMakeFunction):
+ (JSObjectMakeRegExp):
+ * JavaScriptCore.exp:
+ * runtime/ArrayConstructor.cpp:
+ (JSC::constructArrayWithSizeQuirk):
+ * runtime/BooleanConstructor.cpp:
+ (JSC::constructBoolean):
+ (JSC::constructBooleanFromImmediateBoolean):
+ * runtime/BooleanConstructor.h:
+ * runtime/DateConstructor.cpp:
+ (JSC::constructDate):
+ * runtime/DateInstance.cpp:
+ * runtime/DateInstance.h:
+ * runtime/ErrorConstructor.cpp:
+ (JSC::constructWithErrorConstructor):
+ (JSC::callErrorConstructor):
+ * runtime/FunctionConstructor.cpp:
+ (JSC::constructWithFunctionConstructor):
+ (JSC::callFunctionConstructor):
+ (JSC::constructFunction):
+ * runtime/FunctionConstructor.h:
+ * runtime/JSCell.cpp:
+ (JSC::JSCell::getOwnPropertySlot):
+ (JSC::JSCell::put):
+ (JSC::JSCell::deleteProperty):
+ (JSC::JSCell::toThisObject):
+ (JSC::JSCell::toObject):
+ * runtime/JSCell.h:
+ (JSC::JSCell::JSValue::toObject):
+ * runtime/JSNotAnObject.cpp:
+ (JSC::JSNotAnObject::toObject):
+ * runtime/JSNotAnObject.h:
+ * runtime/JSObject.cpp:
+ (JSC::JSObject::toObject):
+ * runtime/JSObject.h:
* runtime/JSString.cpp:
- (JSC::JSString::substringFromRope):
+ (JSC::StringObject::create):
+ (JSC::JSString::toObject):
+ (JSC::JSString::toThisObject):
* runtime/JSString.h:
- (JSC::jsSubstring):
- * runtime/StringPrototype.cpp:
- (JSC::stringProtoFuncSubstr):
- (JSC::stringProtoFuncSubstring):
-
-2010-12-06 Geoffrey Garen <ggaren@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- Simplified some ASLR-related code in PageAllocation/Reservation
- https://bugs.webkit.org/show_bug.cgi?id=50599
-
- Removed reserveAt, allocateAt, and friends, since they all existed to
- serve one feature: ASLR for executable memory on x86_64 on Mac. Moved
- ASLR code down into systemAllocate -- now, any time you allocate
- executable memory on a supporting platform, the memory's location is
- randomized.
-
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator): No need for the caller
- to randomize anything.
-
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::systemAllocate): Removed some *At() functions, and
- beefed up executable allocation with randomization.
-
- * wtf/PageReservation.h:
- (WTF::PageReservation::systemReserve): Removed some *At() functions.
+ * runtime/JSValue.cpp:
+ (JSC::JSValue::toObjectSlowCase):
+ (JSC::JSValue::toThisObjectSlowCase):
+ (JSC::JSValue::synthesizeObject):
+ * runtime/JSValue.h:
+ * runtime/NumberConstructor.cpp:
+ (JSC::constructWithNumberConstructor):
+ * runtime/NumberObject.cpp:
+ (JSC::constructNumber):
+ * runtime/NumberObject.h:
+ * runtime/ObjectConstructor.cpp:
+ (JSC::constructObject):
+ (JSC::constructWithObjectConstructor):
+ (JSC::callObjectConstructor):
+ * runtime/RegExpConstructor.cpp:
+ (JSC::constructRegExp):
+ (JSC::constructWithRegExpConstructor):
+ (JSC::callRegExpConstructor):
+ * runtime/RegExpConstructor.h:
+ * runtime/StringConstructor.cpp:
+ (JSC::constructWithStringConstructor):
+ * runtime/StringObject.h:
-2010-12-06 Geoffrey Garen <ggaren@apple.com>
+2011-03-28 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Maciej Stachowiak.
+ Reviewed by Oliver Hunt.
- reserveAndCommit doesn't commit on MADVISE_FREE_REUSE systems
- https://bugs.webkit.org/show_bug.cgi?id=50588
+ REGRESSION [r78794-r79249] Allocation of memory is slow when number of active objects is large
+ https://bugs.webkit.org/show_bug.cgi?id=56823
- * wtf/OSAllocatorPosix.cpp:
- (WTF::OSAllocator::reserve):
- (WTF::OSAllocator::reserveAndCommit):
- (WTF::OSAllocator::commit): Tightened up some comments. Changed
- reserveAndCommit to actually commit on MADVISE_FREE_REUSE systems.
-
-2010-12-06 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by Andreas Kling.
-
- [WINCE] Add build system
- https://bugs.webkit.org/show_bug.cgi?id=50522
-
- * CMakeListsWinCE.txt: Added.
- * shell/CMakeListsWinCE.txt: Added.
- * wtf/CMakeListsWinCE.txt: Added.
-
-2010-12-06 John Tantalo <john.tantalo@gmail.com>
-
- Reviewed by Geoffrey Garen.
-
- jsc does not ignore shebang
- https://bugs.webkit.org/show_bug.cgi?id=49576
-
- * jsc.cpp:
- (fillBufferWithContentsOfFile):
- - translate shebang into a valid JavaScript comment so the lexer ignores it
-
-2010-12-05 Adam Roben <aroben@apple.com>
-
- Windows production build fix
-
- Put spaces after trailing backslashes when setting
- %WebKitVSPropsRedirectionDir%. According to MSDN
- <http://msdn.microsoft.com/en-us/library/2kzfk8c7(v=VS.80).aspx>:
+ Partial fix for most of the problem. (TOT still shows a regression, though.)
- A backslash ( \ ) followed by a newline character is interpreted as
- a space in the command; use a backslash at the end of a line to
- continue a command onto the next line. NMAKE interprets the
- backslash literally if any other character, including a space or
- tab, follows the backslash.
-
- * JavaScriptCore.vcproj/JavaScriptCore.make:
-
-2010-12-04 Patrick Gansterer <paroga@webkit.org>
-
- Unreviewed, build fix after r69132.
-
- * shell/CMakeLists.txt: Fix directory name (jsc -> shell).
-
-2010-12-04 Xan Lopez <xlopez@igalia.com>
+ * runtime/Heap.cpp:
+ (JSC::Heap::reportExtraMemoryCostSlowCase): Use highWaterMark(), instead of
+ capacity(), since capacity() is O(n) relative to the size of the heap.
- Reviewed by Martin Robinson.
+ In limited circumstances, capacity() is also worse than highWaterMark()
+ for measuring extra cost relative to heap size, since capacity() only
+ measures the *current* capacity of the heap, but the heap will grow if
+ necessary to attain highWaterMark().
- [GTK] Drop GdkDrawable usage, it's deprecated in GTK+3.x and we can use GdkWindow
- https://bugs.webkit.org/show_bug.cgi?id=50451
+2011-03-28 Oliver Hunt <oliver@apple.com>
- * wtf/gobject/GTypedefs.h: add GdkWindow defines.
+ REGRESSION(r82130): It made all tests crash (Requested by Ossy on #webkit).
+ https://bugs.webkit.org/show_bug.cgi?id=57251
-2010-12-03 Gavin Barraclough <barraclough@apple.com>
+ Build fix, had remnant of another patch in r82130
- Rubber stamped by Oliver Hunt.
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::privateCompileGetByIdChainList):
- Bug 50509 - set* methods on MacroAssembler are awfully named.
+2011-03-27 Oliver Hunt <oliver@apple.com>
- Methods set32 and setTest32 compare 32-bit operands, and set a 32-bit results based on the comparison.
- set8 compares 32-bit operands, and sets an 8-bit result based on the comparison.
- setTest8 compares 8-bit operands, and sets a 32-bit result based on the comparison.
+ Reviewed by Maciej Stachowiak.
- Rename to clarify.
+ Add additional immediate types to allow us to distinguish the source of a JIT immediate
+ https://bugs.webkit.org/show_bug.cgi?id=57190
- set32 -> set32Compare32
- setTest32 -> set32Test32
- set8 -> set8Compare32
- setTest8 -> set32Test8
+ Allow us to distinguish whether a JIT immediate is a value that we
+ control (TrustedImm32 and TrustedImmPtr) vs. ones that can be controlled
+ or influenced by code we are compiling. Currently we do nothing with this
+ information -- this change is large and mechanical but would obscure any
+ logic changes that we would have made.
+ * assembler/AbstractMacroAssembler.h:
+ (JSC::AbstractMacroAssembler::TrustedImmPtr::TrustedImmPtr):
+ (JSC::AbstractMacroAssembler::ImmPtr::ImmPtr):
+ (JSC::AbstractMacroAssembler::TrustedImm32::TrustedImm32):
+ (JSC::AbstractMacroAssembler::Imm32::Imm32):
* assembler/MacroAssembler.h:
+ (JSC::MacroAssembler::pop):
+ (JSC::MacroAssembler::poke):
+ (JSC::MacroAssembler::branchPtr):
+ (JSC::MacroAssembler::branch32):
+ (JSC::MacroAssembler::addPtr):
+ (JSC::MacroAssembler::andPtr):
+ (JSC::MacroAssembler::orPtr):
+ (JSC::MacroAssembler::subPtr):
+ (JSC::MacroAssembler::xorPtr):
(JSC::MacroAssembler::setPtr):
+ (JSC::MacroAssembler::storePtr):
+ (JSC::MacroAssembler::branchTestPtr):
+ (JSC::MacroAssembler::branchSubPtr):
+ (JSC::MacroAssembler::branchTest8):
* assembler/MacroAssemblerARM.h:
+ (JSC::MacroAssemblerARM::add32):
+ (JSC::MacroAssemblerARM::and32):
+ (JSC::MacroAssemblerARM::lshift32):
+ (JSC::MacroAssemblerARM::mul32):
+ (JSC::MacroAssemblerARM::or32):
+ (JSC::MacroAssemblerARM::rshift32):
+ (JSC::MacroAssemblerARM::urshift32):
+ (JSC::MacroAssemblerARM::sub32):
+ (JSC::MacroAssemblerARM::xor32):
+ (JSC::MacroAssemblerARM::store32):
+ (JSC::MacroAssemblerARM::push):
+ (JSC::MacroAssemblerARM::move):
+ (JSC::MacroAssemblerARM::branch8):
+ (JSC::MacroAssemblerARM::branch32):
+ (JSC::MacroAssemblerARM::branch32WithUnalignedHalfWords):
+ (JSC::MacroAssemblerARM::branch16):
+ (JSC::MacroAssemblerARM::branchTest8):
+ (JSC::MacroAssemblerARM::branchTest32):
+ (JSC::MacroAssemblerARM::branchAdd32):
+ (JSC::MacroAssemblerARM::branchMul32):
+ (JSC::MacroAssemblerARM::branchSub32):
(JSC::MacroAssemblerARM::set32Compare32):
(JSC::MacroAssemblerARM::set8Compare32):
(JSC::MacroAssemblerARM::set32Test32):
(JSC::MacroAssemblerARM::set32Test8):
+ (JSC::MacroAssemblerARM::moveWithPatch):
+ (JSC::MacroAssemblerARM::branchPtrWithPatch):
+ (JSC::MacroAssemblerARM::storePtrWithPatch):
* assembler/MacroAssemblerARMv7.h:
+ (JSC::MacroAssemblerARMv7::add32):
+ (JSC::MacroAssemblerARMv7::and32):
+ (JSC::MacroAssemblerARMv7::lshift32):
+ (JSC::MacroAssemblerARMv7::mul32):
+ (JSC::MacroAssemblerARMv7::or32):
+ (JSC::MacroAssemblerARMv7::rshift32):
+ (JSC::MacroAssemblerARMv7::urshift32):
+ (JSC::MacroAssemblerARMv7::sub32):
+ (JSC::MacroAssemblerARMv7::xor32):
+ (JSC::MacroAssemblerARMv7::load32):
+ (JSC::MacroAssemblerARMv7::load32WithAddressOffsetPatch):
+ (JSC::MacroAssemblerARMv7::load16):
+ (JSC::MacroAssemblerARMv7::store32WithAddressOffsetPatch):
+ (JSC::MacroAssemblerARMv7::store32):
+ (JSC::MacroAssemblerARMv7::loadDouble):
+ (JSC::MacroAssemblerARMv7::storeDouble):
+ (JSC::MacroAssemblerARMv7::push):
+ (JSC::MacroAssemblerARMv7::move):
+ (JSC::MacroAssemblerARMv7::compare32):
+ (JSC::MacroAssemblerARMv7::test32):
+ (JSC::MacroAssemblerARMv7::branch32):
+ (JSC::MacroAssemblerARMv7::branch32WithUnalignedHalfWords):
+ (JSC::MacroAssemblerARMv7::branch16):
+ (JSC::MacroAssemblerARMv7::branch8):
+ (JSC::MacroAssemblerARMv7::branchTest32):
+ (JSC::MacroAssemblerARMv7::branchTest8):
+ (JSC::MacroAssemblerARMv7::branchAdd32):
+ (JSC::MacroAssemblerARMv7::branchMul32):
+ (JSC::MacroAssemblerARMv7::branchSub32):
+ (JSC::MacroAssemblerARMv7::nearCall):
+ (JSC::MacroAssemblerARMv7::call):
(JSC::MacroAssemblerARMv7::set32Compare32):
(JSC::MacroAssemblerARMv7::set8Compare32):
(JSC::MacroAssemblerARMv7::set32Test32):
(JSC::MacroAssemblerARMv7::set32Test8):
+ (JSC::MacroAssemblerARMv7::moveWithPatch):
+ (JSC::MacroAssemblerARMv7::branchPtrWithPatch):
+ (JSC::MacroAssemblerARMv7::storePtrWithPatch):
+ (JSC::MacroAssemblerARMv7::tailRecursiveCall):
+ (JSC::MacroAssemblerARMv7::makeJump):
+ (JSC::MacroAssemblerARMv7::makeBranch):
+ (JSC::MacroAssemblerARMv7::setupArmAddress):
+ (JSC::MacroAssemblerARMv7::makeBaseIndexBase):
+ (JSC::MacroAssemblerARMv7::moveFixedWidthEncoding):
* assembler/MacroAssemblerMIPS.h:
+ (JSC::MacroAssemblerMIPS::add32):
+ (JSC::MacroAssemblerMIPS::and32):
+ (JSC::MacroAssemblerMIPS::lshift32):
+ (JSC::MacroAssemblerMIPS::mul32):
+ (JSC::MacroAssemblerMIPS::or32):
+ (JSC::MacroAssemblerMIPS::rshift32):
+ (JSC::MacroAssemblerMIPS::urshift32):
+ (JSC::MacroAssemblerMIPS::sub32):
+ (JSC::MacroAssemblerMIPS::xor32):
+ (JSC::MacroAssemblerMIPS::load32):
+ (JSC::MacroAssemblerMIPS::load32WithAddressOffsetPatch):
+ (JSC::MacroAssemblerMIPS::store32WithAddressOffsetPatch):
+ (JSC::MacroAssemblerMIPS::store32):
+ (JSC::MacroAssemblerMIPS::push):
+ (JSC::MacroAssemblerMIPS::move):
+ (JSC::MacroAssemblerMIPS::branch8):
+ (JSC::MacroAssemblerMIPS::branch32):
+ (JSC::MacroAssemblerMIPS::branch32WithUnalignedHalfWords):
+ (JSC::MacroAssemblerMIPS::branch16):
+ (JSC::MacroAssemblerMIPS::branchTest32):
+ (JSC::MacroAssemblerMIPS::branchTest8):
+ (JSC::MacroAssemblerMIPS::branchAdd32):
+ (JSC::MacroAssemblerMIPS::branchMul32):
+ (JSC::MacroAssemblerMIPS::branchSub32):
(JSC::MacroAssemblerMIPS::set8Compare32):
(JSC::MacroAssemblerMIPS::set32Compare32):
(JSC::MacroAssemblerMIPS::set32Test8):
(JSC::MacroAssemblerMIPS::set32Test32):
+ (JSC::MacroAssemblerMIPS::moveWithPatch):
+ (JSC::MacroAssemblerMIPS::branchPtrWithPatch):
+ (JSC::MacroAssemblerMIPS::storePtrWithPatch):
+ (JSC::MacroAssemblerMIPS::tailRecursiveCall):
+ (JSC::MacroAssemblerMIPS::loadDouble):
+ (JSC::MacroAssemblerMIPS::storeDouble):
+ (JSC::MacroAssemblerMIPS::branchTruncateDoubleToInt32):
+ * assembler/MacroAssemblerX86.h:
+ (JSC::MacroAssemblerX86::add32):
+ (JSC::MacroAssemblerX86::addWithCarry32):
+ (JSC::MacroAssemblerX86::and32):
+ (JSC::MacroAssemblerX86::or32):
+ (JSC::MacroAssemblerX86::sub32):
+ (JSC::MacroAssemblerX86::store32):
+ (JSC::MacroAssemblerX86::branch32):
+ (JSC::MacroAssemblerX86::moveWithPatch):
+ (JSC::MacroAssemblerX86::branchPtrWithPatch):
+ (JSC::MacroAssemblerX86::storePtrWithPatch):
* assembler/MacroAssemblerX86Common.h:
+ (JSC::MacroAssemblerX86Common::add32):
+ (JSC::MacroAssemblerX86Common::and32):
+ (JSC::MacroAssemblerX86Common::lshift32):
+ (JSC::MacroAssemblerX86Common::mul32):
+ (JSC::MacroAssemblerX86Common::or32):
+ (JSC::MacroAssemblerX86Common::rshift32):
+ (JSC::MacroAssemblerX86Common::urshift32):
+ (JSC::MacroAssemblerX86Common::sub32):
+ (JSC::MacroAssemblerX86Common::xor32):
+ (JSC::MacroAssemblerX86Common::store32):
+ (JSC::MacroAssemblerX86Common::branchTruncateDoubleToInt32):
+ (JSC::MacroAssemblerX86Common::push):
+ (JSC::MacroAssemblerX86Common::move):
+ (JSC::MacroAssemblerX86Common::branch8):
+ (JSC::MacroAssemblerX86Common::branch32):
+ (JSC::MacroAssemblerX86Common::branch32WithUnalignedHalfWords):
+ (JSC::MacroAssemblerX86Common::branch16):
+ (JSC::MacroAssemblerX86Common::branchTest32):
+ (JSC::MacroAssemblerX86Common::branchTest8):
+ (JSC::MacroAssemblerX86Common::branchAdd32):
+ (JSC::MacroAssemblerX86Common::branchMul32):
+ (JSC::MacroAssemblerX86Common::branchSub32):
(JSC::MacroAssemblerX86Common::set8Compare32):
(JSC::MacroAssemblerX86Common::set32Compare32):
(JSC::MacroAssemblerX86Common::set32Test8):
(JSC::MacroAssemblerX86Common::set32Test32):
+ * assembler/MacroAssemblerX86_64.h:
+ (JSC::MacroAssemblerX86_64::add32):
+ (JSC::MacroAssemblerX86_64::and32):
+ (JSC::MacroAssemblerX86_64::or32):
+ (JSC::MacroAssemblerX86_64::sub32):
+ (JSC::MacroAssemblerX86_64::loadDouble):
+ (JSC::MacroAssemblerX86_64::addDouble):
+ (JSC::MacroAssemblerX86_64::convertInt32ToDouble):
+ (JSC::MacroAssemblerX86_64::store32):
+ (JSC::MacroAssemblerX86_64::call):
+ (JSC::MacroAssemblerX86_64::tailRecursiveCall):
+ (JSC::MacroAssemblerX86_64::makeTailRecursiveCall):
+ (JSC::MacroAssemblerX86_64::addPtr):
+ (JSC::MacroAssemblerX86_64::andPtr):
+ (JSC::MacroAssemblerX86_64::orPtr):
+ (JSC::MacroAssemblerX86_64::subPtr):
+ (JSC::MacroAssemblerX86_64::xorPtr):
+ (JSC::MacroAssemblerX86_64::storePtr):
+ (JSC::MacroAssemblerX86_64::setPtr):
+ (JSC::MacroAssemblerX86_64::branchPtr):
+ (JSC::MacroAssemblerX86_64::branchTestPtr):
+ (JSC::MacroAssemblerX86_64::branchSubPtr):
+ (JSC::MacroAssemblerX86_64::moveWithPatch):
+ (JSC::MacroAssemblerX86_64::branchPtrWithPatch):
+ (JSC::MacroAssemblerX86_64::storePtrWithPatch):
+ (JSC::MacroAssemblerX86_64::branchTest8):
+ * dfg/DFGJITCodeGenerator.h:
+ (JSC::DFG::JITCodeGenerator::callOperation):
+ * dfg/DFGJITCompiler.cpp:
+ (JSC::DFG::JITCompiler::jitAssertIsInt32):
+ (JSC::DFG::JITCompiler::emitCount):
+ * dfg/DFGJITCompiler.h:
+ (JSC::DFG::JITCompiler::emitPutImmediateToCallFrameHeader):
+ * dfg/DFGNonSpeculativeJIT.cpp:
+ (JSC::DFG::NonSpeculativeJIT::compile):
+ * dfg/DFGSpeculativeJIT.cpp:
+ (JSC::DFG::SpeculativeJIT::fillSpeculateCell):
+ (JSC::DFG::SpeculativeJIT::compile):
+ * jit/JIT.cpp:
+ (JSC::JIT::emitTimeoutCheck):
+ (JSC::JIT::privateCompile):
+ * jit/JIT.h:
+ * jit/JITArithmetic.cpp:
+ (JSC::JIT::emit_op_urshift):
+ (JSC::JIT::emitSlow_op_urshift):
+ (JSC::JIT::emit_op_post_inc):
+ (JSC::JIT::emit_op_post_dec):
+ (JSC::JIT::emit_op_pre_inc):
+ (JSC::JIT::emit_op_pre_dec):
+ (JSC::JIT::emit_op_mod):
+ * jit/JITArithmetic32_64.cpp:
+ (JSC::JIT::emit_op_negate):
+ (JSC::JIT::emit_op_jnless):
+ (JSC::JIT::emit_op_jless):
+ (JSC::JIT::emit_op_jlesseq):
+ (JSC::JIT::emit_op_lshift):
+ (JSC::JIT::emitRightShift):
+ (JSC::JIT::emitRightShiftSlowCase):
+ (JSC::JIT::emit_op_bitand):
+ (JSC::JIT::emit_op_bitor):
+ (JSC::JIT::emit_op_bitxor):
+ (JSC::JIT::emit_op_bitnot):
+ (JSC::JIT::emit_op_post_inc):
+ (JSC::JIT::emit_op_post_dec):
+ (JSC::JIT::emitSlow_op_post_dec):
+ (JSC::JIT::emit_op_pre_inc):
+ (JSC::JIT::emit_op_pre_dec):
+ (JSC::JIT::emit_op_add):
+ (JSC::JIT::emitAdd32Constant):
+ (JSC::JIT::emit_op_sub):
+ (JSC::JIT::emitSub32Constant):
+ (JSC::JIT::emitBinaryDoubleOp):
+ (JSC::JIT::emit_op_mul):
+ (JSC::JIT::emitSlow_op_mul):
+ (JSC::JIT::emit_op_div):
+ (JSC::JIT::emit_op_mod):
+ * jit/JITCall.cpp:
+ (JSC::JIT::compileOpCallVarargs):
+ (JSC::JIT::compileOpCall):
+ (JSC::JIT::compileOpCallSlowCase):
+ * jit/JITCall32_64.cpp:
+ (JSC::JIT::compileOpCallVarargs):
+ (JSC::JIT::emit_op_ret_object_or_this):
+ (JSC::JIT::compileOpCall):
+ (JSC::JIT::compileOpCallSlowCase):
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::emitPutCellToCallFrameHeader):
+ (JSC::JIT::emitPutIntToCallFrameHeader):
+ (JSC::JIT::emitPutImmediateToCallFrameHeader):
+ (JSC::JIT::emitLoadCharacterString):
+ (JSC::JIT::restoreArgumentReferenceForTrampoline):
+ (JSC::JIT::checkStructure):
+ (JSC::JIT::setSamplingFlag):
+ (JSC::JIT::clearSamplingFlag):
+ (JSC::JIT::emitCount):
+ (JSC::JIT::sampleInstruction):
+ (JSC::JIT::sampleCodeBlock):
+ (JSC::JIT::emitStoreInt32):
+ (JSC::JIT::emitStoreCell):
+ (JSC::JIT::emitStoreBool):
+ (JSC::JIT::emitJumpSlowCaseIfNotJSCell):
+ (JSC::JIT::emitInitRegister):
+ (JSC::JIT::emitJumpIfJSCell):
+ (JSC::JIT::emitJumpIfNotJSCell):
+ (JSC::JIT::emitJumpIfImmediateInteger):
+ (JSC::JIT::emitJumpIfNotImmediateInteger):
+ (JSC::JIT::emitFastArithDeTagImmediate):
+ (JSC::JIT::emitFastArithDeTagImmediateJumpIfZero):
+ (JSC::JIT::emitFastArithReTagImmediate):
+ (JSC::JIT::emitTagAsBoolImmediate):
* jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_eq):
- (JSC::JIT::emit_op_neq):
- (JSC::JIT::compileOpStrictEq):
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ (JSC::JIT::privateCompileCTINativeCall):
+ (JSC::JIT::emit_op_check_has_instance):
+ (JSC::JIT::emit_op_instanceof):
+ (JSC::JIT::emit_op_ret_object_or_this):
+ (JSC::JIT::emit_op_resolve):
+ (JSC::JIT::emit_op_to_primitive):
+ (JSC::JIT::emit_op_resolve_base):
+ (JSC::JIT::emit_op_ensure_property_exists):
+ (JSC::JIT::emit_op_resolve_skip):
+ (JSC::JIT::emit_op_resolve_global):
+ (JSC::JIT::emitSlow_op_resolve_global):
+ (JSC::JIT::emit_op_not):
+ (JSC::JIT::emit_op_jfalse):
+ (JSC::JIT::emit_op_jeq_null):
+ (JSC::JIT::emit_op_jneq_null):
+ (JSC::JIT::emit_op_jneq_ptr):
+ (JSC::JIT::emit_op_jsr):
+ (JSC::JIT::emit_op_resolve_with_base):
+ (JSC::JIT::emit_op_new_func_exp):
+ (JSC::JIT::emit_op_jtrue):
+ (JSC::JIT::emit_op_get_pnames):
+ (JSC::JIT::emit_op_next_pname):
+ (JSC::JIT::emit_op_to_jsnumber):
+ (JSC::JIT::emit_op_push_new_scope):
+ (JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_eq_null):
(JSC::JIT::emit_op_neq_null):
+ (JSC::JIT::emit_op_init_lazy_reg):
+ (JSC::JIT::emit_op_convert_this):
+ (JSC::JIT::emit_op_convert_this_strict):
+ (JSC::JIT::emitSlow_op_not):
+ (JSC::JIT::emitSlow_op_neq):
+ (JSC::JIT::emit_op_get_arguments_length):
+ (JSC::JIT::emitSlow_op_get_arguments_length):
+ (JSC::JIT::emit_op_get_argument_by_val):
+ (JSC::JIT::emitSlow_op_resolve_global_dynamic):
+ (JSC::JIT::emit_op_new_regexp):
+ (JSC::JIT::emit_op_load_varargs):
+ (JSC::JIT::emitSlow_op_load_varargs):
+ (JSC::JIT::emit_op_new_func):
* jit/JITOpcodes32_64.cpp:
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ (JSC::JIT::privateCompileCTINativeCall):
+ (JSC::JIT::emit_op_loop_if_lesseq):
+ (JSC::JIT::emit_op_check_has_instance):
+ (JSC::JIT::emit_op_instanceof):
+ (JSC::JIT::emit_op_get_scoped_var):
+ (JSC::JIT::emit_op_put_scoped_var):
+ (JSC::JIT::emit_op_tear_off_activation):
+ (JSC::JIT::emit_op_tear_off_arguments):
+ (JSC::JIT::emit_op_resolve):
+ (JSC::JIT::emit_op_to_primitive):
+ (JSC::JIT::emit_op_resolve_base):
+ (JSC::JIT::emit_op_ensure_property_exists):
+ (JSC::JIT::emit_op_resolve_skip):
+ (JSC::JIT::emit_op_resolve_global):
+ (JSC::JIT::emitSlow_op_resolve_global):
+ (JSC::JIT::emit_op_not):
+ (JSC::JIT::emit_op_jfalse):
+ (JSC::JIT::emit_op_jtrue):
+ (JSC::JIT::emit_op_jeq_null):
+ (JSC::JIT::emit_op_jneq_null):
+ (JSC::JIT::emit_op_jneq_ptr):
+ (JSC::JIT::emit_op_jsr):
(JSC::JIT::emit_op_eq):
+ (JSC::JIT::emitSlow_op_eq):
(JSC::JIT::emit_op_neq):
+ (JSC::JIT::emitSlow_op_neq):
(JSC::JIT::compileOpStrictEq):
(JSC::JIT::emit_op_eq_null):
(JSC::JIT::emit_op_neq_null):
+ (JSC::JIT::emit_op_resolve_with_base):
+ (JSC::JIT::emit_op_new_func_exp):
+ (JSC::JIT::emit_op_get_pnames):
+ (JSC::JIT::emit_op_next_pname):
+ (JSC::JIT::emit_op_to_jsnumber):
+ (JSC::JIT::emit_op_push_new_scope):
+ (JSC::JIT::emit_op_catch):
+ (JSC::JIT::emit_op_create_activation):
+ (JSC::JIT::emit_op_create_arguments):
+ (JSC::JIT::emit_op_convert_this):
+ (JSC::JIT::emit_op_convert_this_strict):
+ (JSC::JIT::emit_op_get_arguments_length):
+ (JSC::JIT::emitSlow_op_get_arguments_length):
+ (JSC::JIT::emit_op_get_argument_by_val):
+ (JSC::JIT::softModulo):
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::stringGetByValStubGenerator):
+ (JSC::JIT::emit_op_get_by_val):
+ (JSC::JIT::emitSlow_op_get_by_val):
+ (JSC::JIT::emit_op_get_by_pname):
+ (JSC::JIT::emit_op_put_by_val):
+ (JSC::JIT::emit_op_put_by_index):
+ (JSC::JIT::emit_op_put_getter):
+ (JSC::JIT::emit_op_put_setter):
+ (JSC::JIT::emit_op_del_by_id):
+ (JSC::JIT::emit_op_get_by_id):
+ (JSC::JIT::emit_op_put_by_id):
+ (JSC::JIT::emit_op_method_check):
+ (JSC::JIT::compileGetByIdHotPath):
+ (JSC::JIT::compileGetByIdSlowCase):
+ (JSC::JIT::emitSlow_op_put_by_id):
+ (JSC::JIT::testPrototype):
+ (JSC::JIT::privateCompilePutByIdTransition):
+ (JSC::JIT::privateCompilePatchGetArrayLength):
+ (JSC::JIT::privateCompileGetByIdProto):
+ (JSC::JIT::privateCompileGetByIdSelfList):
+ (JSC::JIT::privateCompileGetByIdProtoList):
+ (JSC::JIT::privateCompileGetByIdChainList):
+ (JSC::JIT::privateCompileGetByIdChain):
+ * jit/JITPropertyAccess32_64.cpp:
+ (JSC::JIT::emit_op_put_getter):
+ (JSC::JIT::emit_op_put_setter):
+ (JSC::JIT::emit_op_del_by_id):
+ (JSC::JIT::emit_op_get_by_id):
+ (JSC::JIT::emit_op_put_by_id):
+ (JSC::JIT::emit_op_method_check):
+ (JSC::JIT::stringGetByValStubGenerator):
+ (JSC::JIT::emit_op_get_by_val):
+ (JSC::JIT::emitSlow_op_get_by_val):
+ (JSC::JIT::emit_op_put_by_val):
+ (JSC::JIT::compileGetByIdHotPath):
+ (JSC::JIT::compileGetByIdSlowCase):
+ (JSC::JIT::emitSlow_op_put_by_id):
+ (JSC::JIT::testPrototype):
+ (JSC::JIT::privateCompilePutByIdTransition):
+ (JSC::JIT::privateCompilePatchGetArrayLength):
+ (JSC::JIT::privateCompileGetByIdProto):
+ (JSC::JIT::privateCompileGetByIdSelfList):
+ (JSC::JIT::privateCompileGetByIdProtoList):
+ (JSC::JIT::privateCompileGetByIdChainList):
+ (JSC::JIT::privateCompileGetByIdChain):
+ (JSC::JIT::emit_op_get_by_pname):
+ * jit/JITStubCall.h:
+ (JSC::JITStubCall::addArgument):
+ * jit/JITStubs.cpp:
+ (JSC::getPolymorphicAccessStructureListSlot):
+ (JSC::DEFINE_STUB_FUNCTION):
+ * jit/JSInterfaceJIT.h:
+ (JSC::JSInterfaceJIT::emitJumpIfNotJSCell):
+ (JSC::JSInterfaceJIT::emitLoadInt32):
+ (JSC::JSInterfaceJIT::emitLoadDouble):
+ * jit/SpecializedThunkJIT.h:
+ (JSC::SpecializedThunkJIT::SpecializedThunkJIT):
+ (JSC::SpecializedThunkJIT::loadJSStringArgument):
+ (JSC::SpecializedThunkJIT::tagReturnAsInt32):
+ (JSC::SpecializedThunkJIT::tagReturnAsJSCell):
+ * jit/ThunkGenerators.cpp:
+ (JSC::charToString):
+ (JSC::powThunkGenerator):
+ * yarr/YarrJIT.cpp:
+ (JSC::Yarr::YarrGenerator::matchCharacterClass):
+ (JSC::Yarr::YarrGenerator::storeToFrame):
+ (JSC::Yarr::YarrGenerator::storeToFrameWithPatch):
+ (JSC::Yarr::YarrGenerator::ParenthesesTail::generateCode):
+ (JSC::Yarr::YarrGenerator::generatePatternCharacterSingle):
+ (JSC::Yarr::YarrGenerator::generatePatternCharacterFixed):
+ (JSC::Yarr::YarrGenerator::generatePatternCharacterGreedy):
+ (JSC::Yarr::YarrGenerator::generatePatternCharacterNonGreedy):
+ (JSC::Yarr::YarrGenerator::generateCharacterClassFixed):
+ (JSC::Yarr::YarrGenerator::generateCharacterClassGreedy):
+ (JSC::Yarr::YarrGenerator::generateCharacterClassNonGreedy):
+ (JSC::Yarr::YarrGenerator::generateParenthesesSingle):
+ (JSC::Yarr::YarrGenerator::generateDisjunction):
-2010-12-03 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Geoff Garen.
-
- Incorrect logic for returning memory at the end of linking.
- Reviewed by Geoff Garen.
-
- At the end of linking we return any space at the end of the
- allocated executable region that was saved due to branch
- compaction. This is currently by done by subtracting the
- different from the m_freePtr in the allocation pool. This
- can be incorrect if your allocation was made from a new
- page that was not selected for subsequent allocations.
-
- This patch corrects this behaviour by verifying that the
- memory being returned actually comes from the current
- allocation pool.
-
- * assembler/LinkBuffer.h:
- (JSC::LinkBuffer::linkCode):
- * jit/ExecutableAllocator.h:
- (JSC::ExecutablePool::tryShrink):
-
-2010-12-03 Michael Saboff <msaboff@apple.com>
-
- Reviewed by Gavin Barraclough
-
- Changes to significantly reduce branches to branches in JIT'ed
- parentheses backtrack processing. The changes include the following:
- - Taking the backtracking processing out of line and adding it as
- code at the end of the JIT'ed routine.
- - Allow backtracks to be direct via an indirect branch for an address
- pushed onto the stack. If the use of an indirect branch is from a
- conditional jump, then we emit a trampoline at the end of the
- routine.
- - Propogate backtracks instead of adding trampolines. Backtracks are
- propogated to where they are used. This change also eliminated
- trampoline branch code that aren't used.
- - Added global expression state to keep track of parentheses tail
- code and indirect branches.
- Other changes made to support these changes.
- - Split invertOrCapture flag on Patterns to two separate flags. Added
- getters for these flags. Rippled these changes to both the JIT
- and interpreter code.
- - Split BacktrackDestination out off TermGenerationState struct.
- This is done to hold references to a backtrack for later code
- generation.
- https://bugs.webkit.org/show_bug.cgi?id=50295
-
- * assembler/ARMAssembler.h:
- (JSC::ARMAssembler::JmpDst::isSet):
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::JmpDst::isSet):
- * assembler/AbstractMacroAssembler.h:
- (JSC::AbstractMacroAssembler::Label::isSet):
- (JSC::AbstractMacroAssembler::DataLabelPtr::isUsed):
- (JSC::AbstractMacroAssembler::DataLabelPtr::used):
- (JSC::AbstractMacroAssembler::JumpList::clear):
- * assembler/MIPSAssembler.h:
- (JSC::MIPSAssembler::JmpDst::isSet):
- * assembler/X86Assembler.h:
- (JSC::X86Assembler::JmpDst::isSet):
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::RegexPatternConstructor::atomParenthesesSubpatternBegin):
- (JSC::Yarr::RegexPatternConstructor::atomParentheticalAssertionBegin):
- (JSC::Yarr::RegexPatternConstructor::atomBackReference):
- (JSC::Yarr::RegexPatternConstructor::setupAlternativeBeginTerms):
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::ByteCompiler::atomParenthesesOnceBegin):
- (JSC::Yarr::ByteCompiler::atomParenthesesTerminalBegin):
- (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternBegin):
- (JSC::Yarr::ByteCompiler::atomParentheticalAssertionBegin):
- (JSC::Yarr::ByteCompiler::atomParentheticalAssertionEnd):
- (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternEnd):
- (JSC::Yarr::ByteCompiler::atomParenthesesOnceEnd):
- (JSC::Yarr::ByteCompiler::atomParenthesesTerminalEnd):
- (JSC::Yarr::ByteCompiler::emitDisjunction):
- * yarr/RegexInterpreter.h:
- (JSC::Yarr::ByteTerm::ByteTerm):
- (JSC::Yarr::ByteTerm::BackReference):
- (JSC::Yarr::ByteTerm::invert):
- (JSC::Yarr::ByteTerm::capture):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::IndirectJumpEntry::IndirectJumpEntry):
- (JSC::Yarr::RegexGenerator::IndirectJumpEntry::addJump):
- (JSC::Yarr::RegexGenerator::GenerationState::GenerationState):
- (JSC::Yarr::RegexGenerator::GenerationState::addIndirectJumpEntry):
- (JSC::Yarr::RegexGenerator::GenerationState::emitIndirectJumpTable):
- (JSC::Yarr::RegexGenerator::GenerationState::addParenthesesTail):
- (JSC::Yarr::RegexGenerator::GenerationState::emitParenthesesTail):
- (JSC::Yarr::RegexGenerator::GenerationState::addJumpToNextInteration):
- (JSC::Yarr::RegexGenerator::GenerationState::addJumpsToNextInteration):
- (JSC::Yarr::RegexGenerator::GenerationState::addDataLabelToNextIteration):
- (JSC::Yarr::RegexGenerator::GenerationState::linkToNextIteration):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::BacktrackDestination):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::clear):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::clearDataLabel):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::haveDestination):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::isStackOffset):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::isLabel):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::isJumpList):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::haveDataLabel):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::copyTarget):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::copyTo):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::addBacktrackJump):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::setStackOffset):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::setLabel):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::setNextBacktrackLabel):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::setBacktrackToLabel):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::setBacktrackJumpList):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::setBacktrackSourceLabel):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::setDataLabel):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::setSubDataLabelPtr):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::linkToNextBacktrack):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::getStackOffset):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::getLabel):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::getBacktrackJumps):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::getDataLabel):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::jumpToBacktrack):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::linkDataLabelToHereIfExists):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::plantJumpToBacktrackIfExists):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::linkAlternativeBacktracks):
- (JSC::Yarr::RegexGenerator::BacktrackDestination::linkAlternativeBacktracksTo):
- (JSC::Yarr::RegexGenerator::TermGenerationState::TermGenerationState):
- (JSC::Yarr::RegexGenerator::TermGenerationState::resetAlternative):
- (JSC::Yarr::RegexGenerator::TermGenerationState::isLastAlternative):
- (JSC::Yarr::RegexGenerator::TermGenerationState::clearBacktrack):
- (JSC::Yarr::RegexGenerator::TermGenerationState::jumpToBacktrack):
- (JSC::Yarr::RegexGenerator::TermGenerationState::plantJumpToBacktrackIfExists):
- (JSC::Yarr::RegexGenerator::TermGenerationState::linkDataLabelToBacktrackIfExists):
- (JSC::Yarr::RegexGenerator::TermGenerationState::addBacktrackJump):
- (JSC::Yarr::RegexGenerator::TermGenerationState::setDataLabelPtr):
- (JSC::Yarr::RegexGenerator::TermGenerationState::setBackTrackStackOffset):
- (JSC::Yarr::RegexGenerator::TermGenerationState::setBacktrackLabel):
- (JSC::Yarr::RegexGenerator::TermGenerationState::linkAlternativeBacktracks):
- (JSC::Yarr::RegexGenerator::TermGenerationState::linkAlternativeBacktracksTo):
- (JSC::Yarr::RegexGenerator::TermGenerationState::setBacktrackLink):
- (JSC::Yarr::RegexGenerator::TermGenerationState::chainBacktracks):
- (JSC::Yarr::RegexGenerator::TermGenerationState::chainBacktrackJumps):
- (JSC::Yarr::RegexGenerator::TermGenerationState::getBacktrackDestination):
- (JSC::Yarr::RegexGenerator::TermGenerationState::propagateBacktrackingFrom):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::ParenthesesTail):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::processBacktracks):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::setNextIteration):
- (JSC::Yarr::RegexGenerator::ParenthesesTail::generateCode):
- (JSC::Yarr::RegexGenerator::generateAssertionBOL):
- (JSC::Yarr::RegexGenerator::generateAssertionEOL):
- (JSC::Yarr::RegexGenerator::generateAssertionWordBoundary):
- (JSC::Yarr::RegexGenerator::generatePatternCharacterSingle):
- (JSC::Yarr::RegexGenerator::generatePatternCharacterPair):
- (JSC::Yarr::RegexGenerator::generatePatternCharacterFixed):
- (JSC::Yarr::RegexGenerator::generatePatternCharacterGreedy):
- (JSC::Yarr::RegexGenerator::generatePatternCharacterNonGreedy):
- (JSC::Yarr::RegexGenerator::generateCharacterClassSingle):
- (JSC::Yarr::RegexGenerator::generateCharacterClassFixed):
- (JSC::Yarr::RegexGenerator::generateCharacterClassGreedy):
- (JSC::Yarr::RegexGenerator::generateCharacterClassNonGreedy):
- (JSC::Yarr::RegexGenerator::generateParenthesesDisjunction):
- (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
- (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack):
- (JSC::Yarr::RegexGenerator::generateParentheticalAssertion):
- (JSC::Yarr::RegexGenerator::generateDisjunction):
- (JSC::Yarr::RegexGenerator::compile):
- * yarr/RegexPattern.h:
- (JSC::Yarr::PatternTerm::PatternTerm):
- (JSC::Yarr::PatternTerm::invert):
- (JSC::Yarr::PatternTerm::capture):
-
-2010-12-03 Chris Rogers <crogers@google.com>
-
- Reviewed by Kenneth Russell.
-
- First steps to adding web audio files to build systems
- https://bugs.webkit.org/show_bug.cgi?id=49952
-
- * wtf/Complex.h:
-
-2010-12-03 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by Andreas Kling.
-
- Move StringWx.cpp into wtf directory
- https://bugs.webkit.org/show_bug.cgi?id=50060
-
- * wtf/wx/StringWx.cpp: Renamed from WebCore/platform/text/wx/StringWx.cpp.
- (WTF::String::String):
-
-2010-12-03 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by Andreas Kling.
-
- Move StringBrew.cpp into wtf directory
- https://bugs.webkit.org/show_bug.cgi?id=50058
-
- * wtf/brew/StringBrew.cpp: Renamed from WebCore/platform/text/brew/StringBrew.cpp.
- (WTF::String::String):
-
-2010-12-03 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by Andreas Kling.
-
- Move StringHaiku.cpp into wtf directory
- https://bugs.webkit.org/show_bug.cgi?id=50057
-
- * wtf/haiku/StringHaiku.cpp: Renamed from WebCore/platform/text/haiku/StringHaiku.cpp.
- (WTF::String::String):
- (WTF::String::operator BString):
-
-2010-12-02 Geoffrey Garen <ggaren@apple.com>
-
- Try to fix Windows build.
-
- * runtime/GCActivityCallback.cpp:
- (JSC::DefaultGCActivityCallback::synchronize): Added a non-CF implementation.
-
-2010-12-02 Geoffrey Garen <ggaren@apple.com>
-
- Reviewed by Gavin Barraclough.
+2011-03-28 Andras Becsi <abecsi@webkit.org>
- Fixed <rdar://problem/8310571> CrashTracer: 60 crashes in Photo Booth at
- com.apple.JavaScriptCore: JSC::Heap::markRoots + 746
-
- * API/APIShims.h:
- (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock): Call our new
- synchronize() function.
+ Reviewed by Csaba Osztrogonác.
- * runtime/Collector.cpp:
- (JSC::Heap::activityCallback):
- * runtime/Collector.h: Added an activityCallback() accessor, for the
- call above.
+ [Qt] Fix the linking of jsc with MinGW after r81963.
- * runtime/GCActivityCallback.h:
- (JSC::GCActivityCallback::synchronize):
- * runtime/GCActivityCallbackCF.cpp:
- (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback):
- (JSC::DefaultGCActivityCallback::~DefaultGCActivityCallback):
- (JSC::DefaultGCActivityCallback::operator()):
- (JSC::DefaultGCActivityCallback::synchronize): Track the run loop we're
- scheduled in. If we begin/resume execution within a new run loop, reschedule
- on it. This prevents a crash when using a lockless context group on
- multiple threads -- the crash would happen if the GC timer scheduled on
- thread A, then you continued execution on thread B, then the thread A
- timer fired.
+ * jsc.pro: add -l and remove the lib suffix.
-2010-12-02 Darin Adler <darin@apple.com>
+2011-03-27 Ben Taylor <bentaylor.solx86@gmail.com>
- * wtf/ASCIICType.h: Fix wrong type from last check-in.
+ Reviewed by Alexey Proskuryakov.
-2010-12-02 Darin Adler <darin@apple.com>
+ https://bugs.webkit.org/show_bug.cgi?id=57170 Fix last elements
+ in an enum to remove a trailing comma. Sun Studio 12 CC errors out.
- Try to fix certain builds (Qt Windows).
+ Compile fix only, no actual code change.
- * wtf/ASCIICType.h: Added an overload for unsigned because in obsolete
- versions of ICU, UChar32 can be a typedef for unsigned. Adding this
- overload should make us compatible with these old ICUs.
+ * wtf/MessageQueue.h:
-2010-12-02 Patrick Gansterer <paroga@webkit.org>
+2011-03-25 Oliver Hunt <oliver@apple.com>
Reviewed by Darin Adler.
- Add AtomicString::fromUTF8
- https://bugs.webkit.org/show_bug.cgi?id=45594
-
- Unicode::calculateStringHashFromUTF8 creates a StringHash out of UTF8 input data and
- calculates the required length for the UTF16 conversation in one step.
- This is then used in a specialized translator for the string table of AtomicString.
-
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * wtf/text/AtomicString.cpp:
- (WTF::CStringTranslator::equal):
- (WTF::HashAndUTF8CharactersTranslator::hash):
- (WTF::HashAndUTF8CharactersTranslator::equal):
- (WTF::HashAndUTF8CharactersTranslator::translate):
- (WTF::AtomicString::add):
- (WTF::AtomicString::addSlowCase):
- (WTF::AtomicString::find):
- (WTF::AtomicString::fromUTF8):
- * wtf/text/AtomicString.h:
- * wtf/text/StringImpl.h:
- * wtf/text/WTFString.h:
- * wtf/unicode/UTF8.cpp:
- (WTF::Unicode::readUTF8Sequence):
- (WTF::Unicode::convertUTF8ToUTF16):
- (WTF::Unicode::calculateStringHashFromUTF8):
- (WTF::Unicode::equalUTF16WithUTF8):
- * wtf/unicode/UTF8.h:
-
-2010-12-02 Geoffrey Garen <ggaren@apple.com>
-
- Reviewed by Sam Weinig.
+ Allow defineOwnProperty to work on DOMObjects
+ https://bugs.webkit.org/show_bug.cgi?id=57129
- Added a little hardening to OSAllocator.
+ Fix a couple of places where we uses getter()/setter() rather
+ than [gs]etterPresent().
- * wtf/OSAllocatorPosix.cpp:
- (WTF::OSAllocator::release):
- * wtf/OSAllocatorWin.cpp:
- (WTF::OSAllocator::reserve):
- (WTF::OSAllocator::reserveAndCommit):
- (WTF::OSAllocator::commit):
- (WTF::OSAllocator::decommit):
- (WTF::OSAllocator::release): CRASH() if the OS's virtual memory system
- reports an error.
+ * runtime/JSObject.cpp:
+ (JSC::JSObject::defineOwnProperty):
-2010-12-02 Csaba Osztrogonác <ossy@webkit.org>
+2011-03-25 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Geoffrey Garen.
+ Reviewed by Oliver Hunt.
- [Qt] Make platform managing of OSAllocator better than r73106
- https://bugs.webkit.org/show_bug.cgi?id=50385
+ Crash when paused at a breakpoint caused by inaccurate Activation records.
+ https://bugs.webkit.org/show_bug.cgi?id=57120
- * wtf/OSAllocatorPosix.cpp: Remove platform specific guard.
- * wtf/OSAllocatorSymbian.cpp: Remove platform specific guard.
- * wtf/OSAllocatorWin.cpp: Remove platform specific guard.
- * wtf/wtf.pri: Add the correct platform specific source file instead of all of them.
+ * runtime/JSActivation.cpp:
+ (JSC::JSActivation::symbolTableGet):
+ (JSC::JSActivation::symbolTablePut):
+ (JSC::JSActivation::getOwnPropertyNames):
+ (JSC::JSActivation::symbolTablePutWithAttributes):
-2010-12-02 Patrick Gansterer <paroga@webkit.org>
+2011-03-24 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Andreas Kling.
+ Reviewed by Oliver Hunt.
- [WINCE] Use GetTickCount() for srand()
- https://bugs.webkit.org/show_bug.cgi?id=50338
+ Crash in debugger beneath MarkStack::drain @ me.com, ibm.com
+ https://bugs.webkit.org/show_bug.cgi?id=57080
+ <rdar://problem/8525907>
- time() is not a native function on WinCE, so use GetTickCount() instead.
+ The crash was caused by changes in the executable after recompilation.
- * wtf/RandomNumberSeed.h:
- (WTF::initializeRandomNumberGenerator):
+ The fix is for the activation to copy the data it needs instead of
+ relying on the data in the executable.
+
+ SunSpider and v8 report no change.
-2010-12-02 Norbert Leser <norbert.leser@nokia.com>
+ * runtime/Arguments.h:
+ (JSC::JSActivation::copyRegisters): Use our own data members instead of
+ reading data out of the executable.
- Reviewed by Laszlo Gombos.
+ * runtime/JSActivation.cpp:
+ (JSC::JSActivation::JSActivation): Initialize our data members.
- [Qt] [Symbian] Reintroduce compiler optimizations for JSC
- https://bugs.webkit.org/show_bug.cgi?id=50270
+ (JSC::JSActivation::markChildren):
+ (JSC::JSActivation::symbolTableGet):
+ (JSC::JSActivation::symbolTablePut):
+ (JSC::JSActivation::getOwnPropertyNames):
+ (JSC::JSActivation::symbolTablePutWithAttributes):
+ (JSC::JSActivation::isDynamicScope):
+ (JSC::JSActivation::argumentsGetter): Use our own data members instead of
+ reading data out of the executable.
- Add compiler optimization (symbian ARM target) which was lost after split from WebCore.
- Tested via Sunspider and V8 - both of which show significant performance improvement.
+ * runtime/JSActivation.h: Added new data members to track data previously
+ tracked by the executable. Since I've removed the executable pointer,
+ on a 64bit system, I've only made activations bigger by an int.
- * JavaScriptCore.pro:
+2011-03-25 David Kilzer <ddkilzer@apple.com>
-2010-12-02 Peter Varga <pvarga@inf.u-szeged.hu>
+ Remove duplicate entry from JavaScriptCore.exp
- Reviewed by Gavin Barraclough.
+ JSC::createStackOverflowError(JSC::ExecState*) was originally
+ exported in r60057, then duplicated in r60392.
- Move regex parsing and fallback handling to runtime/RegExp.cpp
- https://bugs.webkit.org/show_bug.cgi?id=50015
+ * JavaScriptCore.exp: Removed duplicate entry.
- * runtime/RegExp.cpp:
- (JSC::RegExp::RegExp):
- (JSC::RegExp::create):
- (JSC::RegExp::compile):
- (JSC::RegExp::match):
- (JSC::RegExp::printTraceData):
- * runtime/RegExp.h:
- (JSC::RegExp::pattern):
- * yarr/RegexInterpreter.cpp:
- * yarr/RegexInterpreter.h:
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::compile):
- (JSC::Yarr::jitCompileRegex):
- * yarr/RegexJIT.h:
- (JSC::Yarr::RegexCodeBlock::RegexCodeBlock):
- (JSC::Yarr::RegexCodeBlock::setFallBack):
- (JSC::Yarr::RegexCodeBlock::isFallBack):
- (JSC::Yarr::executeRegex):
+2011-03-25 Jarred Nicholls <jarred@sencha.com>
-2010-12-01 Geoffrey Garen <ggaren@apple.com>
+ Reviewed by Ariya Hidayat.
- Try to fix the GTK build.
+ [Qt] MSVC Build Error - need to link advapi32.lib for jsc.exe
+ https://bugs.webkit.org/show_bug.cgi?id=56098
- * GNUmakefile.am: Use a full path to OSAllocator*.cpp.
+ Need to link advapi32.lib for jsc.exe since wtf/OSRandomSource.cpp uses the Win32 Crypto API
-2010-12-01 Geoffrey Garen <ggaren@apple.com>
+ * jsc.pro:
- Try to fix the EFL Linux build.
+2011-03-24 Nikolas Zimmermann <nzimmermann@rim.com>
- * CMakeListsEfl.txt: Added OSAllocator to the project.
+ Reviewed by Darin Adler.
-2010-12-01 Geoffrey Garen <ggaren@apple.com>
+ Introduce WTF HexNumber.h
+ https://bugs.webkit.org/show_bug.cgi?id=56099
- Try to fix the Qt build: Include all OS files for Qt's sake, and then
- use #ifdefs in the files to exclude things based on OS.
-
- This is a pretty bad way to manage platforms -- hopefully we can
- fix the Qt build system and move away from this in the future.
+ Introduce a set of functions that ease converting from a bye or a number to a hex string,
+ replacing several of these conversions and String::format("%x") usages all over WebCore.
- * wtf/OSAllocatorPosix.cpp:
- * wtf/OSAllocatorSymbian.cpp:
- * wtf/OSAllocatorWin.cpp:
- * wtf/wtf.pri:
+ * GNUmakefile.am: Add HexNumber.h to build.
+ * JavaScriptCore.exp: Export StringBuilder::reserveCapacity.
+ * JavaScriptCore.gypi: Add HexNumber.h to build.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Export StringBuilder::reserveCapacity.
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj: Add HexNumber.h to build.
+ * JavaScriptCore.xcodeproj/project.pbxproj: Ditto.
+ * wtf/CMakeLists.txt: Ditto.
+ * wtf/HexNumber.h: Added.
+ (WTF::Internal::hexDigitsForMode): Internal helper.
+ (WTF::appendByteAsHex): Free function, that appends a byte as hex string into a destination.
+ (WTF::placeByteAsHex): Ditto, but places the result using *foo++ = '..' or foo[index++] = '..'
+ (WTF::appendUnsignedAsHex): Free function, that appends a number as hex string into a destination.
-2010-12-01 Geoffrey Garen <ggaren@apple.com>
+2011-03-24 Geoffrey Garen <ggaren@apple.com>
- Try to fix the Chromium build.
+ Windows build fix take 2: Add new symobl.
- * JavaScriptCore.gypi: This is a Windows build file, so use OSAllocatorWin.cpp.
+ (I should have used the EWS bots for this!)
-2010-12-01 Geoffrey Garen <ggaren@apple.com>
-
- Try to fix the GTK build.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * GNUmakefile.am: Added OSAllocator to another project.
+2011-03-24 Geoffrey Garen <ggaren@apple.com>
-2010-12-01 Geoffrey Garen <ggaren@apple.com>
+ Windows build fix take 1: Removed old symobl.
- Try to fix the GTK Linux build.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * JavaScriptCore.gypi: Added OSAllocator to the project.
+2011-03-24 Geoffrey Garen <ggaren@apple.com>
-2010-12-01 Geoffrey Garen <ggaren@apple.com>
+ Reviewed by Oliver Hunt.
- Try to fix the Qt Linux build.
+ Ensure that all compilation takes place within a dynamic global object scope
+ https://bugs.webkit.org/show_bug.cgi?id=57054
+ <rdar://problem/9083011>
- * wtf/OSAllocatorPosix.cpp: Use the right errno.h.
+ Otherwise, entry to the global object scope might throw away the code
+ we just compiled, causing a crash.
-2010-12-01 Geoffrey Garen <ggaren@apple.com>
+ * JavaScriptCore.exp: Updated for signature change.
- Try to fix Windows build: export some more symbols.
+ * debugger/Debugger.cpp:
+ (JSC::evaluateInGlobalCallFrame):
+ * debugger/DebuggerCallFrame.cpp:
+ (JSC::DebuggerCallFrame::evaluate): Removed explicit compilation calls
+ here because (a) they took place outside a dynamic global object scope
+ and (b) they were redundant.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * interpreter/CachedCall.h:
+ (JSC::CachedCall::CachedCall): Updated for signature change.
-2010-12-01 Geoffrey Garen <ggaren@apple.com>
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::execute):
+ (JSC::Interpreter::executeCall):
+ (JSC::Interpreter::executeConstruct): Declare our dynamic global object
+ scope earlier, to ensure that compilation takes place within it.
- Try to fix the Qt Linux build.
+ * runtime/Completion.cpp:
+ (JSC::evaluate): Removed explicit compilation calls here because (a)
+ they took place outside a dynamic global object scope and (b) they were
+ redundant.
- * wtf/wtf.pri: Use the POSIX OSAllocator for Qt Linux.
+ * runtime/Executable.h:
+ (JSC::EvalExecutable::compile):
+ (JSC::ProgramExecutable::compile):
+ (JSC::FunctionExecutable::compileForCall):
+ (JSC::FunctionExecutable::compileForConstruct): Added an ASSERT to
+ verify our new invariant that all compilation takes place within a
+ dynamic global object scope.
-2010-12-01 Geoffrey Garen <ggaren@apple.com>
+ * runtime/JSGlobalObject.cpp:
+ (JSC::DynamicGlobalObjectScope::DynamicGlobalObjectScope):
+ * runtime/JSGlobalObject.h: Changed the signature of DynamicGlobalObjectScope
+ to require a JSGlobalData instead of an ExecState* since it is often
+ easier to provide the former, and the latter was not necessary.
- Windows build fix: commit doesn't have a return value.
+2011-03-24 Oliver Hunt <oliver@apple.com>
- * wtf/OSAllocatorWin.cpp:
- (WTF::OSAllocator::commit):
+ Reviewed by Geoffrey Garen.
-2010-12-01 Geoffrey Garen <ggaren@apple.com>
+ REGRESSION (r79987-r80210): Crash in JSWeakObjectMapClear
+ https://bugs.webkit.org/show_bug.cgi?id=55671
- Build fix: Export some symbols.
+ This is no longer necessary, and it seems that with the new weakmap
+ model it's simply unsafe, so this reduces it to a no-op.
- * JavaScriptCore.exp:
+ * API/JSWeakObjectMapRefPrivate.cpp:
-2010-12-01 Geoffrey Garen <ggaren@apple.com>
+2011-03-24 Ben Taylor <bentaylor.solx86@gmail.com>
- Build fix.
+ Reviewed by Darin Adler.
- * JavaScriptCore.xcodeproj/project.pbxproj: Export OSAllocator.h as private
- so other projects can see it.
+ https://bugs.webkit.org/show_bug.cgi?id=20302
+ Correct implementation of signbit on Solaris
- * wtf/OSAllocatorPosix.cpp: #include UnusedParam.h for UNUSED_PARAM.
+ * wtf/MathExtras.h:
+ (signbit):
-2010-12-01 Geoffrey Garen <ggaren@apple.com>
+2011-03-23 Mark Rowe <mrowe@apple.com>
- Reviewed by Sam Weinig.
-
- Baby step toward a cross-platform virtual memory abstraction: created
- an all-static OSAllocator class and changed MarkStack to use it.
+ Reviewed by Darin Adler.
- * JavaScriptCore.exp: These functions are inlined now.
+ <rdar://problem/7959320> Threads that use APIs above the BSD layer must be registered with the Obj-C GC.
- * JavaScriptCore.vcproj/WTF/WTF.vcproj: Added OSAllocatorWin.cpp.
+ * wtf/ThreadingPthreads.cpp:
+ (WTF::initializeCurrentThreadInternal):
- * JavaScriptCore.xcodeproj/project.pbxproj: Added OSAllocatorPosix.cpp.
+2011-03-23 Mark Rowe <mrowe@apple.com>
- * runtime/MarkStack.h:
- (JSC::MarkStack::allocateStack):
- (JSC::MarkStack::releaseStack): Use OSAllocator instead of rolling our
- own platform-specific code.
+ Stop setting OTHER_OPTIONS in JavaScriptCore's Makefile.
- * runtime/MarkStackNone.cpp: Removed. Nothing used this.
+ It's not necessary to pass "-target All" as xcodebuild always builds the
+ first target in the project unless otherwise specified. The presence of
+ that option also breaks "make clean" since that results in both the
+ -target and -alltargets options being passed to xcodebuild.
- * runtime/MarkStackPosix.cpp:
- * runtime/MarkStackSymbian.cpp:
- * runtime/MarkStackWin.cpp: Removed custom platform-specific code, since
- we use the OSAllocator abstraction now.
+ * Makefile:
- * wtf/OSAllocator.h: Added.
- * wtf/OSAllocatorPosix.cpp: Added.
- (WTF::OSAllocator::reserve):
- (WTF::OSAllocator::reserveAndCommit):
- (WTF::OSAllocator::commit):
- (WTF::OSAllocator::decommit):
- (WTF::OSAllocator::release):
- * wtf/OSAllocatorSymbian.cpp: Added.
- (WTF::OSAllocator::reserve):
- (WTF::OSAllocator::reserveAndCommit):
- (WTF::OSAllocator::commit):
- (WTF::OSAllocator::decommit):
- (WTF::OSAllocator::release):
- * wtf/OSAllocatorWin.cpp: Added.
- (WTF::OSAllocator::reserve):
- (WTF::OSAllocator::reserveAndCommit):
- (WTF::OSAllocator::commit):
- (WTF::OSAllocator::decommit):
- (WTF::OSAllocator::release): The new OSAllocator abstraction.
+2011-03-23 Pavel Feldman <pfeldman@chromium.org>
- * wtf/wtf.pri: Added OSAllocatorSymbian.cpp.
+ Not reviewed: bring back Vector::contains that was removed as a part of roll back.
-2010-12-01 Steve Falkenburg <sfalken@apple.com>
+ * wtf/Vector.h:
+ (WTF::::contains):
- Reviewed by Adam Roben.
+2011-03-23 Sheriff Bot <webkit.review.bot@gmail.com>
- WinCairo build should not use link-time code generation (LTCG)
- https://bugs.webkit.org/show_bug.cgi?id=50353
+ Unreviewed, rolling out r81686.
+ http://trac.webkit.org/changeset/81686
+ https://bugs.webkit.org/show_bug.cgi?id=56914
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.vcproj/jsc/jsc.vcproj:
- * JavaScriptCore.vcproj/testapi/testapi.vcproj:
-
-010-12-01 Steve Falkenburg <sfalken@apple.com>
-
- Reviewed by Adam Roben.
+ Breaks webkit_tests in Chromium again. (Requested by pfeldman
+ on #webkit).
- vcproj changes can't be applied cleanly by the Windows EWS bot
- https://bugs.webkit.org/show_bug.cgi?id=50328
-
- * JavaScriptCore.vcproj/JavaScriptCore.sln: Modified property svn:eol-style.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Modified property svn:eol-style.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCF.vsprops: Added property svn:eol-style.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCFLite.vsprops: Added property svn:eol-style.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: Added property svn:eol-style.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: Modified property svn:eol-style.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedCommon.vsprops: Added property svn:eol-style.
- * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln: Modified property svn:eol-style.
- * JavaScriptCore.vcproj/WTF/WTF.vcproj: Modified property svn:eol-style.
- * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops: Added property svn:eol-style.
- * JavaScriptCore.vcproj/jsc/jsc.vcproj: Modified property svn:eol-style.
- * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: Added property svn:eol-style.
- * JavaScriptCore.vcproj/testapi/testapi.vcproj: Modified property svn:eol-style.
- * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops: Added property svn:eol-style.
-
-2010-12-01 Gavin Barraclough <barraclough@apple.com>
+ * wtf/Vector.h:
- Reviewed by Sam Weinig.
+2011-03-23 Adam Barth <abarth@webkit.org>
- Bug 50298 - /()()()()()()()()()(?:(\10a|b)(X|Y))+/.exec("bXXaYYaY") ASSERTs
+ Reviewed by Eric Seidel.
- For unmatched subpattens we previously used to set the subpattern end to -1,
- but now we only set the start value. E.g. consider the following:
- /a(b)?c/.exec("ac");
- Previously we would generate an internal results array of:
- [ 0, 2, -1, -1 ]
- Since fairly recently we have generated results of:
- [ 0, 2, -1, ??? ]
- (With the end index of the subpattern uninitialized).
+ JavaScriptCore GYP build should work on a case-sensitive file system
+ https://bugs.webkit.org/show_bug.cgi?id=56911
- Update these ASSERTs to account for this.
+ The issue is that there are two UString.h headers, one named UString.h
+ and one named ustring.h. This patch excludes ustring.h from the header
+ map to avoid confusion. While I was editing this part of the GYP file,
+ I cleaned up the exclude rules to be more modern.
- Also, when stripping out self-referencing backreferences, (e.g. /(\1)/) we
- were checking the wrong property on the pattern term. We should have been
- looking at term.parentheses.subpatternId, but instead were checking
- term.subpatternId. The latter is actually only the subpatternId for
- back reference terms. Rename this to backReferenceSubpatternId.
+ * gyp/JavaScriptCore.gyp:
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::matchBackReference):
- (JSC::Yarr::Interpreter::backtrackBackReference):
+2011-03-22 Geoffrey Garen <ggaren@apple.com>
-2010-11-30 Gavin Barraclough <barraclough@apple.com>
+ Reviewed by Maciej Stachowiak.
- Rubber stamped by Sam Weinig.
+ REGRESSION (r78382): No scripts appear in the Web Inspector's Scripts
+ panel on Windows, and many inspector regression tests are failing
+ https://bugs.webkit.org/show_bug.cgi?id=54490
+
+ The bug was caused by two different classes using the same name (Recompiler).
- Bug 50297 - \s in YARR should match BOMs.
+ * debugger/Debugger.cpp:
+ * runtime/JSGlobalData.cpp:
+ (WTF::Recompiler::operator()): Put Recompiler in an anonymous namespace,
+ so our two recompilers' inline functions don't stomp each other at
+ link time.
- From section 15.10.2.12 CharacterClassEscape contains:
+2011-03-22 Sam Weinig <sam@webkit.org>
- The production CharacterClassEscape :: s evaluates by returning the set of characters containing the
- characters that are on the right-hand side of the WhiteSpace (7.2) or LineTerminator (7.3) productions.
+ Reviewed by Mark Rowe.
- Table 2 in section 7.2 contains:
+ Remove USE_WK_SCROLLBAR_PAINTER_AND_CONTROLLER.
+ <rdar://problem/8944718>
- \uFEFF Byte Order Mark <BOM>
+ * DerivedSources.make:
+ Remove generation of USE_WK_SCROLLBAR_PAINTER_AND_CONTROLLER.
- * create_regex_tables:
- Add BOM to spaces table.
+2011-03-22 Gabor Loki <loki@webkit.org>
-2010-11-30 Gavin Barraclough <barraclough@apple.com>
+ Reviewed by Csaba Osztrogonác.
- Reviewed by Darin Adler.
+ [Qt] Add DFG module to build system (disabled by default).
+ https://bugs.webkit.org/show_bug.cgi?id=56845
- Fixed review comments following bug #48101.
- Mostly typos, plus gave quantifyInfinite a symbolic name.
-
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::RegexPatternConstructor::quantifyAtom):
- (JSC::Yarr::RegexPatternConstructor::checkForTerminalParentheses):
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::backtrackParenthesesOnceEnd):
- (JSC::Yarr::Interpreter::matchParenthesesTerminalBegin):
- (JSC::Yarr::Interpreter::backtrackParenthesesTerminalBegin):
- (JSC::Yarr::Interpreter::backtrackParenthesesTerminalEnd):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::generatePatternCharacterGreedy):
- (JSC::Yarr::RegexGenerator::generatePatternCharacterNonGreedy):
- (JSC::Yarr::RegexGenerator::generateCharacterClassGreedy):
- * yarr/RegexParser.h:
- (JSC::Yarr::Parser::parseTokens):
- (JSC::Yarr::parse):
-
-2010-11-30 Steve Falkenburg <sfalken@apple.com>
+ * JavaScriptCore.pri:
+ * JavaScriptCore.pro:
- Reviewed by Darin Adler.
+2011-03-22 Eric Seidel <eric@webkit.org>
- WTF project missing build-stopping code from its pre-build event
- https://bugs.webkit.org/show_bug.cgi?id=50281
+ Reviewed by Adam Barth.
- * JavaScriptCore.vcproj/WTF/WTFPreBuild.cmd:
+ Add support to build-webkit for building with gyp-generated project files
+ https://bugs.webkit.org/show_bug.cgi?id=56877
-2010-11-30 Patrick Gansterer <paroga@webkit.org>
+ Found a couple missing Private headers while trying to make WebCore build.
- Reviewed by Darin Adler.
+ * JavaScriptCore.gypi:
- Cleanup UTF8.cpp
- https://bugs.webkit.org/show_bug.cgi?id=49581
+2011-03-22 Eric Seidel <eric@webkit.org>
- Use macros and functions instead of range values directly.
+ Reviewed by Adam Barth.
- * wtf/unicode/UTF8.cpp:
- (WTF::Unicode::inlineUTF8SequenceLength):
- (WTF::Unicode::UTF8SequenceLength):
- (WTF::Unicode::convertUTF16ToUTF8):
- (WTF::Unicode::readUTF8Sequence):
- (WTF::Unicode::convertUTF8ToUTF16):
- * wtf/unicode/UnicodeMacrosFromICU.h: Added U_IS_SUPPLEMENTARY macro.
+ Make it possible to build JavaScriptCore and WebCore gyp builds outside of Source
+ https://bugs.webkit.org/show_bug.cgi?id=56867
-2010-11-30 Geoffrey Garen <ggaren@apple.com>
+ This should make it possible to build the gyp-generated JavaScriptCore.xcodeproj
+ from a JavaScriptCore directory outside of Source.
- Reviewed by Gavin Barraclough.
+ * gyp/JavaScriptCore.gyp:
+ * gyp/run-if-exists.sh: Added.
+ * gyp/update-info-plist.sh: Added.
- Fixed a crash seen when using a PageAllocation to store itself.
+2011-03-22 Eric Seidel <eric@webkit.org>
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::systemDeallocate): Zero out m_base before unmapping
- it, in case unmapping m_base unmaps the PageAllocation.
+ Reviewed by Adam Barth.
- * wtf/BumpPointerAllocator.h:
- (WTF::BumpPointerPool::destroy): Now this work-around isn't needed!
+ Add Profiling Configuration to JavaScriptCore gyp build
+ https://bugs.webkit.org/show_bug.cgi?id=56862
-2010-11-30 Xan Lopez <xlopez@igalia.com>
+ It appears this is identical to Release, but I suspect
+ there is someone/thing who uses the Profiling target
+ so we're adding it for completeness.
- Reviewed by Darin Adler.
+ * gyp/JavaScriptCore.gyp:
- m_hasNonEnumerableProperties is never initialized in Structure
- https://bugs.webkit.org/show_bug.cgi?id=50266
+2011-03-22 Adam Barth <abarth@webkit.org>
- * runtime/Structure.cpp:
- (JSC::Structure::Structure): initialize member variable.
+ Reviewed by Eric Seidel.
-2010-11-29 Steve Falkenburg <sfalken@apple.com>
+ Remove os_win32_files variable from the GYP build
+ https://bugs.webkit.org/show_bug.cgi?id=56804
- Windows build fix (part 1). Use correct environment variable syntax in cmd files.
+ Now that our understanding of GYP is sufficiently advanced, we don't
+ need os_win32_files any more. (Turns out Eric was right, as he always
+ is.)
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePostBuild.cmd:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePreBuild.cmd:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePreLink.cmd:
- * JavaScriptCore.vcproj/WTF/WTFPostBuild.cmd:
- * JavaScriptCore.vcproj/jsc/jscPostBuild.cmd:
- * JavaScriptCore.vcproj/jsc/jscPreBuild.cmd:
- * JavaScriptCore.vcproj/jsc/jscPreLink.cmd:
- * JavaScriptCore.vcproj/testapi/testapiPostBuild.cmd:
- * JavaScriptCore.vcproj/testapi/testapiPreBuild.cmd:
- * JavaScriptCore.vcproj/testapi/testapiPreLink.cmd:
+ * JavaScriptCore.gypi:
-2010-11-29 Dan Bernstein <mitz@apple.com>
+2011-03-22 Adam Barth <abarth@webkit.org>
- Reviewed by Darin Adler.
+ Reviewed by Eric Seidel.
- WTF support for <rdar://problem/8650085> adding word-prefix search options to the text search API.
- https://bugs.webkit.org/show_bug.cgi?id=50038
+ GYP build of JavaScriptCore should be able to link from an empty WebKitBuild directory
+ https://bugs.webkit.org/show_bug.cgi?id=56803
- * wtf/unicode/UnicodeMacrosFromICU.h: Copied additional macros from icu/unicode/utf16.h.
+ Previously, we thought we should generate the derived source files in
+ the shared intermediate build products directory, but there are
+ assumptions built into other parts of the Mac build system that the
+ derived source files will be generated in a particular subdirectory of
+ the build products directory.
-2010-11-29 Steve Falkenburg <sfalken@apple.com>
+ This patch is a partial revert of the change that moved the derived
+ source files to the shared intermediate directory. After this patch,
+ the GYP build can build JavaScriptCore without help from the main
+ normal build system.
- Reviewed by Darin Adler.
+ * JavaScriptCore.gypi:
+ * gyp/JavaScriptCore.gyp:
+ * gyp/generate-derived-sources.sh:
+ * gyp/generate-dtrace-header.sh:
- JavaScriptCore projects on Windows should use cmd files for build events
- https://bugs.webkit.org/show_bug.cgi?id=50193
+2011-03-22 Jay Civelli <jcivelli@chromium.org>
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePostBuild.cmd: Added.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePreBuild.cmd: Added.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePreLink.cmd: Added.
- * JavaScriptCore.vcproj/WTF/WTFPostBuild.cmd: Added property svn:eol-style.
- * JavaScriptCore.vcproj/WTF/WTFPreBuild.cmd: Added property svn:eol-style.
- * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
- * JavaScriptCore.vcproj/jsc/jscPostBuild.cmd: Added.
- * JavaScriptCore.vcproj/jsc/jscPreBuild.cmd: Added.
- * JavaScriptCore.vcproj/jsc/jscPreLink.cmd: Added.
- * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops:
- * JavaScriptCore.vcproj/testapi/testapiPostBuild.cmd: Added.
- * JavaScriptCore.vcproj/testapi/testapiPreBuild.cmd: Added.
- * JavaScriptCore.vcproj/testapi/testapiPreLink.cmd: Added.
+ Reviewed by David Levin.
-2010-11-29 Dai Mikurube <dmikurube@google.com>
+ Adding a contains method to Vector.
+ https://bugs.webkit.org/show_bug.cgi?id=55859
- Reviewed by Kent Tamura.
+ * wtf/Vector.h:
+ (WTF::Vector::contains):
- when empty, clicking "down" on outer-spin-button returns "max value"
- https://bugs.webkit.org/show_bug.cgi?id=45491
+2011-03-22 Gabor Loki <loki@webkit.org>
- It is required to calculate UTC/DST offsets to retrieve the current local milliseconds for
- date/time type inputs. WTF::currentTimeMS() returns a UTC time, and WTF::getLocalTime()
- returns a struct tm, not milliseconds.
+ Reviewed by Alexey Proskuryakov.
- Calculating milliseconds from a struct tm is not simple since timegm() cannot be used in all
- environments. This calculation is already done in calculateUTCOffset(), and complicated.
- Duplicating this complicated calculation is unreasonable because of maintainability.
- To achieve this without duplication, we must call calculate{UTC|DST}Offset in some way.
+ Fix a bunch of typos in DFG.
+ https://bugs.webkit.org/show_bug.cgi?id=56813
+
+ * dfg/DFGByteCodeParser.cpp:
+ (JSC::DFG::parse):
+ * dfg/DFGGenerationInfo.h:
+ (JSC::DFG::GenerationInfo::setSpilled):
+ * dfg/DFGGraph.cpp:
+ (JSC::DFG::Graph::dump):
+ * dfg/DFGGraph.h:
+ * dfg/DFGJITCodeGenerator.h:
+ (JSC::DFG::JITCodeGenerator::setupStubArguments):
+ * dfg/DFGJITCompiler.cpp:
+ (JSC::DFG::JITCompiler::compileFunction):
+ * dfg/DFGJITCompiler.h:
+ * dfg/DFGNode.h:
+ * dfg/DFGNonSpeculativeJIT.h:
+ * dfg/DFGOperations.h:
+ * dfg/DFGRegisterBank.h:
+ (JSC::DFG::RegisterBank::allocate):
+ * dfg/DFGScoreBoard.h:
+ (JSC::DFG::ScoreBoard::~ScoreBoard):
+ (JSC::DFG::ScoreBoard::allocate):
+ * dfg/DFGSpeculativeJIT.cpp:
+ (JSC::DFG::SpeculativeJIT::compile):
+ * dfg/DFGSpeculativeJIT.h:
+
+2011-03-22 Adam Barth <abarth@webkit.org>
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * wtf/DateMath.cpp: Changed calculateUTCOffset() and calculateDSTOffset() to external functions.
- (WTF::calculateUTCOffset):
- (WTF::calculateDSTOffset):
- * wtf/DateMath.h:
+ Reviewed by Eric Seidel.
-2010-11-29 Chris Rogers <crogers@google.com>
+ Production configuration in GYP isn&apos;t set up correctly
+ https://bugs.webkit.org/show_bug.cgi?id=56786
- Reviewed by Kenneth Russell.
+ Update JavaScriptCore.gyp with information mined from
+ JavaScriptCore.xcodeproj.
- Switch web audio code to use FloatPoint3D instead of Vector3
- https://bugs.webkit.org/show_bug.cgi?id=50186
+ * JavaScriptCore.gypi:
+ * gyp/JavaScriptCore.gyp:
- * wtf/Vector3.h: Removed.
+2011-03-22 Kent Tamura <tkent@chromium.org>
-2010-11-29 Steve Falkenburg <sfalken@apple.com>
+ Reviewed by Eric Seidel.
- Reviewed by Adam Roben.
+ REGRESSION(r80096): Number type input unexpectedly rounds fractional values
+ https://bugs.webkit.org/show_bug.cgi?id=56367
- Add a mechanism for Windows pre-build/pre-link/post-build events to be separated into individual cmd files
- https://bugs.webkit.org/show_bug.cgi?id=49858
+ Introduce clampToInteger(unsigned).
+
+ * wtf/MathExtras.h:
+ (clampToInteger): Added.
- We're migrating our prebuild/prelink/postbuild steps out of vcproj and vsprops files:
- - To simplify editing (editing vsprops build steps is confusing).
- - For more readable diffs.
+2011-03-21 Adam Barth <abarth@webkit.org>
- * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops:
- * JavaScriptCore.vcproj/WTF/WTFPostBuild.cmd: Added.
- * JavaScriptCore.vcproj/WTF/WTFPreBuild.cmd: Added.
+ Reviewed by Eric Seidel.
-2010-11-29 Geoffrey Garen <ggaren@apple.com>
+ GYP build should not have include paths that point within the source tree
+ https://bugs.webkit.org/show_bug.cgi?id=56788
- Reviewed by Gavin Barraclough.
+ Turns out we don't need these include paths anymore now that we have
+ header maps working properly.
- Improved accuracy of command-line SunSpider.
+ * gyp/JavaScriptCore.gyp:
+ - Also, remove jsc.cpp from the excluded list because it's not part
+ of the jsc_files variable instead of the javascriptcore_files
+ variable.
- * jsc.cpp:
- (functionRun): Changed the "run" function to run a given test in
- its own global object. Previously, all tests ran in the same global
- object, which created name conflicts, and made globals from previous
- tests artificially survive into later tests.
-
- Also changed "run" to return the elapsed milliseconds when running a
- given test, for slightly more accurate numbers.
+2011-03-21 Adam Barth <abarth@webkit.org>
- (functionCheckSyntax): Ditto on returning elapsed milliseconds.
+ Reviewed by Eric Seidel.
-2010-11-29 Darin Adler <darin@apple.com>
+ Solve the Assertions.cpp / -Wno-missing-format-attribute mystery
+ https://bugs.webkit.org/show_bug.cgi?id=56780
- Reviewed by Andreas Kling.
+ The reason we couldn't resolve this warning in the GYP build was that
+ the normal build disables this warning specifically for this file.
+ This patch takes the same approach as the previous patch to
+ WebCoreObjCExtras.mm in that it uses a pragma to suppress the warning
+ (rather than a build system configuration).
- Remove a couple unneeded overflow checks
- https://bugs.webkit.org/show_bug.cgi?id=49816
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ - Remove the special-case for this file.
+ * gyp/JavaScriptCore.gyp:
+ - Remove the work-around for this issue.
+ * wtf/Assertions.cpp:
+ - Add a pragma disabling this warning for this file.
- * wtf/text/CString.cpp:
- (WTF::CString::init): Use an ASSERT instead of
- an overflow check with CRASH.
+2011-03-21 Adam Barth <abarth@webkit.org>
-2010-11-29 Adam Roben <aroben@apple.com>
+ Reviewed by Dimitri Glazkov.
- Robustify react-to-vsprops-changes.py against changes to its location
- or the location of the .vsprops files
+ WebCore GYP build shouldn't crash on startup
+ https://bugs.webkit.org/show_bug.cgi?id=56776
- Suggested by John Sullivan.
+ Debug builds shouldn't define NDEBUG. This same logic exists in the
+ project.pbxproj file.
- * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py:
- Removed file_modification_times.
- (main): Use glob.glob to find the .vsprops files and assert that we found some.
+ * gyp/JavaScriptCore.gyp:
-2010-11-29 Adam Roben <aroben@apple.com>
+2011-03-21 Robert Kroeger <rjkroege@chromium.org>
- Touch wtf/Platform.h whenever any .vsprops file changes
+ Reviewed by Antonio Gomes.
- This will cause all files to be recompiled, which will make changes to
- preprocessor macros (e.g., ENABLE_*) actually take effect.
+ Flag to enable/disable a GestureReocognizer framework
- Fixes <http://webkit.org/b/50167> Windows build fails when ENABLE_*
- macros are changed (because not enough files are rebuilt)
+ https://bugs.webkit.org/show_bug.cgi?id=49345
- Reviewed by John Sullivan.
+ * wtf/Platform.h:
- * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py:
- (main): Touch wtf/Platform.h if it's older than any .vsprops file. Also
- added some comments and logging to make it clearer what the script is
- doing and why.
+2011-03-21 Adam Barth <abarth@webkit.org>
-2010-11-29 Adam Roben <aroben@apple.com>
+ Reviewed by Dimitri Glazkov.
- Update react-to-vsprops-changes.py after r72555
+ Add new files to JavaScriptCore.gypi
+ https://bugs.webkit.org/show_bug.cgi?id=56766
- .vsprops files are no longer accessed relative to $WebKitLibrariesDir.
+ * JavaScriptCore.gypi:
- Fixes <http://webkit.org/b/50166> REGRESSION (r72555):
- react-to-vsprops-changes.py no longer works for people with a
- non-default $WebKitLibrariesDir
+2011-03-21 Sheriff Bot <webkit.review.bot@gmail.com>
- Reviewed by John Sullivan.
+ Unreviewed, rolling out r81377.
+ http://trac.webkit.org/changeset/81377
+ https://bugs.webkit.org/show_bug.cgi?id=56765
- * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py:
- (main): Always look in WebKitLibraries/win for .vsprops files, not in
- $WebKitLibrariesDir.
+ WebPageSerializerTest.MultipleFrames is broken (Requested by
+ simonjam on #webkit).
-2010-11-28 Gavin Barraclough <barraclough@apple.com>
+ * wtf/Vector.h:
- Reviewed by Sam Weinig.
+2011-03-21 Gabor Loki <loki@webkit.org>
- Bug 48100 - YARR allows what seems like a bogus character-class range
+ Reviewed by Csaba Osztrogonác.
- Per ECMA-262 character classes containing character ranges containing
- character classes are invalid, eg:
- /[\d-x]/
- /[x-\d]/
- /[\d-\d]/
- These should throw a syntax error.
+ Extend constant pool to be able to store 16 bit instructions with a constant
+ https://bugs.webkit.org/show_bug.cgi?id=46796
- * yarr/RegexParser.h:
+ The putShortWithConstantInt function inserts a 16 bit instruction which
+ refers a 32 bits constant or literal. This is a vital function for those
+ target which loads a PC relative value with a 16 bit instruction (like
+ Thumb-2 instruction set and SH4 architecture).
-2010-11-27 Gavin Barraclough <barraclough@apple.com>
+ * assembler/AssemblerBuffer.h:
+ (JSC::AssemblerBuffer::putIntegral):
+ (JSC::AssemblerBuffer::putIntegralUnchecked):
+ * assembler/AssemblerBufferWithConstantPool.h:
- Reviewed by Sam Weinig.
+2011-03-21 Philippe Normand <pnormand@igalia.com>
- Bug 48101 - Yarr gives different results for /(?:a*?){2,}/
-
- The test cases in the linked mozilla bug demonstrate a couple of
- problems in subpattern matching. These bugs lie in the optimized
- cases - for matching parentheses with a quantity count of 1, and
- for matching greedy quantified parentheses at the end of a regex
- (which do not backtrack).
-
- In both of these cases we are failing to correctly handle empty
- matches. In the case of parentheses-single matches (quantity count
- one) we are failing to test for empty matches at all. In the case
- of terminal subpattern matches we do currently check, however there
- is a subtler bug here too. In the case of an empty match we will
- presently immediately fall through to the next alternative (or
- complete the regex match), whereas upon a failed match we should
- be backtracking into the failing alternative, to give it a chance
- to match further (e.g. consider /a??b?|a/.exec("ab") - upon first
- attempting to match the first alternative this will match the empty
- string - since a?? is non-greedy, however rather than moving on to
- the second alternative we should be re-matching the first one, at
- which point the non-greedy a?? will match, and as such the result
- should be "ab", not "a").
-
- Terminal subpattern matching contains a second bug, too. The frame
- location values in the subpattern should be being allocated with
- the outer disjunction's frame (as we do for the parentheses-single
- optimization). Consider the following three regexes:
- /a*(?:b*)*c*/
- /a*(?:b*)c*/
- /a*(?:b*)*/
- Considering only the frame location required by the atoms a,b, and
- c, (ignoring space associated with the nested subpattern) the first
- regex (a normal subpattern match) requires a frame size of 2 for
- the outer disjunction, (to backtrack terms a & c), with each
- iteration of the subpattern requiring a frame of size 1 (in order
- to backtrack b). In the case of the second regex (where the
- parentheses-single optimization will kick in) the outer frame must
- be set up with a frame size of 3, since the outer frame will also
- be used when running the nested subpattern. We will currently only
- allocate a farme of size 1 for the outer disjuntion (to contain a),
- howver the frame size should be 2 (since the subpattern will be
- evaluated in the outer frame). In addition to failing to allocate
- frame space the frame offsets are also presently invalid - in the
- case of the last regex b's frame location will be set assuming it
- to be the first term in the frame, whereas in this case b lies
- after the term a, and should be taking a separate frame location.
-
- In order to correctly allocate the frame for terminal subpattern
- matches we must move this optimization back up from the JIT into
- the compiler (and thus interpreter too), since this is where the
- frame allocation takes place.
-
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::RegexPatternConstructor::setupAlternativeOffsets):
- (JSC::Yarr::RegexPatternConstructor::checkForTerminalParentheses):
- (JSC::Yarr::compileRegex):
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::matchParenthesesOnceBegin):
- (JSC::Yarr::Interpreter::matchParenthesesOnceEnd):
- (JSC::Yarr::Interpreter::backtrackParenthesesOnceBegin):
- (JSC::Yarr::Interpreter::backtrackParenthesesOnceEnd):
- (JSC::Yarr::Interpreter::matchParenthesesTerminalBegin):
- (JSC::Yarr::Interpreter::matchParenthesesTerminalEnd):
- (JSC::Yarr::Interpreter::backtrackParenthesesTerminalBegin):
- (JSC::Yarr::Interpreter::backtrackParenthesesTerminalEnd):
- (JSC::Yarr::Interpreter::matchDisjunction):
- (JSC::Yarr::ByteCompiler::atomParenthesesOnceBegin):
- (JSC::Yarr::ByteCompiler::atomParenthesesTerminalBegin):
- (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternBegin):
- (JSC::Yarr::ByteCompiler::atomParentheticalAssertionEnd):
- (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternEnd):
- (JSC::Yarr::ByteCompiler::atomParenthesesOnceEnd):
- (JSC::Yarr::ByteCompiler::atomParenthesesTerminalEnd):
- (JSC::Yarr::ByteCompiler::emitDisjunction):
- * yarr/RegexInterpreter.h:
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
- (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack):
- (JSC::Yarr::RegexGenerator::generateTerm):
- * yarr/RegexPattern.h:
- (JSC::Yarr::PatternTerm::PatternTerm):
+ Unreviewed, GTK distcheck build fix.
-2010-11-24 Patrick Gansterer <paroga@webkit.org>
+ * GNUmakefile.am:
- Reviewed by Csaba Osztrogonác.
+2011-03-20 Bill Budge <bbudge@chromium.org>
- Remove Bakefile build system files
- https://bugs.webkit.org/show_bug.cgi?id=49983
+ Reviewed by Adam Barth.
- r53757 only removed the content, but not the files.
- This patch removes that empty files.
+ Rename ThreadSafeShared to ThreadSafeRefCounted
+ https://bugs.webkit.org/show_bug.cgi?id=56714
- * JavaScriptCoreSources.bkl: Removed.
- * jscore.bkl: Removed.
+ No new tests. Exposes no new functionality.
-2010-11-24 Gabor Loki <loki@webkit.org>
+ * API/JSClassRef.h:
+ * API/OpaqueJSString.h:
+ * GNUmakefile.am:
+ * JavaScriptCore.gypi:
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * wtf/Atomics.h:
+ * wtf/CMakeLists.txt:
+ * wtf/CrossThreadRefCounted.h:
+ (WTF::CrossThreadRefCounted::CrossThreadRefCounted):
+ (WTF::::crossThreadCopy):
+ * wtf/ThreadSafeRefCounted.h: Copied from wtf/ThreadSafeShared.h.
+ (WTF::ThreadSafeRefCountedBase::ThreadSafeRefCountedBase):
+ (WTF::ThreadSafeRefCountedBase::ref):
+ (WTF::ThreadSafeRefCountedBase::refCount):
+ (WTF::ThreadSafeRefCountedBase::derefBase):
+ (WTF::ThreadSafeRefCounted::ThreadSafeRefCounted):
+ * wtf/ThreadSafeShared.h: Removed.
+ * wtf/Threading.h:
- Reviewed by Csaba Osztrogonác.
+2011-03-19 Patrick Gansterer <paroga@webkit.org>
- Merge the usage of jumps and calls at ARM-JIT
- https://bugs.webkit.org/show_bug.cgi?id=50008
+ Reviewed by Darin Adler.
- Those JmpSrc objects which represent jumps (not calls) should point to
- after the jump instruction.
+ Remove StringImpl::computeHash()
+ https://bugs.webkit.org/show_bug.cgi?id=49894
- * assembler/ARMAssembler.h:
- (JSC::ARMAssembler::blx):
- (JSC::ARMAssembler::loadBranchTarget):
- (JSC::ARMAssembler::getAbsoluteJumpAddress):
- (JSC::ARMAssembler::linkJump):
- (JSC::ARMAssembler::relinkJump):
- (JSC::ARMAssembler::linkCall):
- (JSC::ARMAssembler::relinkCall):
- (JSC::ARMAssembler::getRelocatedAddress):
- (JSC::ARMAssembler::getDifferenceBetweenLabels):
- (JSC::ARMAssembler::getCallReturnOffset):
- * assembler/MacroAssemblerARM.h:
- (JSC::MacroAssemblerARM::call):
+ Replace remainig StringImpl::computeHash with StringImpl::computeHashStringHasher.
-2010-11-24 Carlos Garcia Campos <cgarcia@igalia.com>
+ * wtf/text/AtomicString.cpp:
+ (WTF::CStringTranslator::hash):
+ (WTF::UCharBufferTranslator::hash):
+ (WTF::HashAndCharactersTranslator::hash):
+ * wtf/text/StringImpl.h:
+ (WTF::StringImpl::setHash):
+ (WTF::StringImpl::hash):
- Reviewed by Xan Lopez.
+2011-03-19 Patrick Gansterer <paroga@webkit.org>
- [GTK] Optimize foldCase, toLower and toUpper methods in glib unicode backend
- https://bugs.webkit.org/show_bug.cgi?id=48625
-
- GLib methods use UTF-8 strings, so we have to convert from UTF-16 to
- UTF-8 to perform the case operations and then convert back the result to
- UTF-16. GLib conversion methods return a new allocated string, so we
- have to memcpy the result into the destination buffer too. Using our
- own methods to convert between UTF-8 and UTF-16 from wtf/unicode/UTF8.h
- we don't need such memcpy, since they take an already allocated buffer
- rather than returning a new one. There's another optimization for the
- case when the destination buffer is not large enough. In that case,
- methods should return the expected destination buffer size and are
- called again with a new buffer. We can avoid the conversion to UTF-16 by
- pre-calculating the required size for the destination buffer.
-
- * wtf/unicode/glib/UnicodeGLib.cpp:
- (WTF::Unicode::getUTF16LengthFromUTF8):
- (WTF::Unicode::convertCase):
- (WTF::Unicode::foldCase):
- (WTF::Unicode::toLower):
- (WTF::Unicode::toUpper):
-
-2010-11-23 Patrick Gansterer <paroga@webkit.org>
+ Reviewed by Darin Adler.
- Reviewed by Sam Weinig.
+ Rename WTF::StringHasher methods
+ https://bugs.webkit.org/show_bug.cgi?id=53532
- Use WTF::StringHasher directly in JavaScriptCore
- https://bugs.webkit.org/show_bug.cgi?id=49893
+ Rename createHash to computeHash and createBlobHash to hashMemory.
+ Also add a using WTF::StringHasher in the header file.
* profiler/CallIdentifier.h:
(JSC::CallIdentifier::Hash::hash):
* runtime/Identifier.cpp:
(JSC::IdentifierCStringTranslator::hash):
(JSC::IdentifierUCharBufferTranslator::hash):
+ * wtf/StringHasher.h:
+ (WTF::StringHasher::computeHash):
+ (WTF::StringHasher::hashMemory):
+ * wtf/text/StringHash.h:
+ (WTF::CaseFoldingHash::hash):
+ * wtf/text/StringImpl.h:
+ (WTF::StringImpl::computeHash):
+ * wtf/unicode/UTF8.cpp:
+ (WTF::Unicode::calculateStringHashAndLengthFromUTF8Internal):
-2010-11-22 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by Sam Weinig.
-
- Add WTF::FixedArray::size()
- https://bugs.webkit.org/show_bug.cgi?id=49891
-
- Add a method to get the size of a FixedArray.
-
- * wtf/FixedArray.h:
- (WTF::FixedArray::size):
-
-2010-11-22 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by Adam Roben.
-
- [WINCE] Set correct preprocessor definitions
- https://bugs.webkit.org/show_bug.cgi?id=49887
+2011-03-18 Geoffrey Garen <ggaren@apple.com>
- * wtf/Platform.h:
+ Reviewed by Oliver Hunt.
-2010-11-22 Adam Roben <aroben@apple.com>
-
- Use paths relative to $WebKitVSPropsRedirectionDir to access shared .vsprops files
-
- Apple's Windows build allows placing header files and import libraries for WebKit's
- dependencies (CoreGraphics, CFNetwork, SQLite, etc.) outside the source tree via the
- $WebKitLibrariesDir environment variable. This is both required for production builds and
- convenient for Apple-internal developer builds. Apple's production builds also require that
- WebKit's shared .vsprops files be accessed relative to $WebKitLibrariesDir. In production
- builds, the files are copied into that directory tree by the
- WebKitLibraries/win/tools/WinTools.make file. In Apple-internal developer builds, the
- copying is done by
- JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make.
-
- This .vsprops copying is problematic in one very important case: when a developer updates
- their source tree and then tries to build. Visual Studio only reads .vsprops files when a
- project is first loaded. So, when Visual Studio is first opened after the .vsprops files are
- updated, it reads in the old files that were already residing in $WebKitLibrariesDir. When a
- build is started, JavaScriptCoreGenerated.make copies the new .vsprops files into
- $WebKitLibrariesDir, but Visual Studio will not pick up the changes. The rest of the build
- will proceed with out-of-date .vsprops files, which will likely result in a build failure.
-
- To fix this, we now use normal relative paths to access the .vsprops files in the source
- tree rather than in $WebKitLibrariesDir, but prefix those paths with a new environment
- variable, $WebKitVSPropsRedirectionDir. In developer builds, this environment variable is
- unset, so the normal relative paths are used to read the .vsprops files out of the source
- tree directly. In production builds, this environment variable is set to a fake directory
- that will cause the .vsprops files in $WebKitLibrariesDir to be found when the relative path
- is resolved.
+ [GTK] JSC crashes in 32bit Release bots after r80743
+ https://bugs.webkit.org/show_bug.cgi?id=56180
- For example, JavaScriptCore.vcproj uses this path for FeatureDefines.vsprops:
-
- $(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops
-
- In developer builds, where $WebKitVSPropsRedirectionDir is unset, this will point to the
- files in WebKitLibraries\win\tools\vsprops in the source tree. In production builds,
- JavaScriptCore.make sets $WebKitVSPropsRedirectionDir to
- "$(SRCROOT)\AppleInternal\tools\vsprops\OpenSource\1\2\3\", so the full path for
- FeatureDefines.vsprops becomes:
-
- $(SRCROOT)\AppleInternal\tools\vsprops\OpenSource\1\2\3\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops
-
- which resolves to:
-
- $(SRCROOT)\AppleInternal\tools\vsprops\OpenSource\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops
-
- (We rely on the fact that Windows doesn't care whether the directories "1", "2", and "3"
- actually exist since they are matched by an equal number of ".." path components.)
-
- Note that Visual Studio still won't pick up changes made to .vsprops files while Visual
- Studio is open, but that problem hasn't seemed to cause developers many headaches so far.
-
- Fixes <http://webkit.org/b/49181> Windows build fails mysteriously when .vsprops files are
- updated
-
- Reviewed by Dave Hyatt.
+ The crash was caused by referencing GC memory from a GC destructor. This
+ is not safe because destruction time / order is not guaranteed.
- * JavaScriptCore.vcproj/JavaScriptCore.make: Set $WebKitVSPropsRedirectionDir so that
- production builds can find the .vsprops files.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: Stopy copying the
- .vsprops files. It isn't needed anymore.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.vcproj/jsc/jsc.vcproj:
- * JavaScriptCore.vcproj/testapi/testapi.vcproj:
- Changed to use paths relative to $WebKitVSPropsRedirectionDir to access shared .vsprops
- files.
-
-2010-11-19 Peter Varga <pvarga@inf.u-szeged.hu>
-
- Reviewed by Gavin Barraclough.
-
- YARR JIT should fallback to YARR Interpreter instead of PCRE.
- https://bugs.webkit.org/show_bug.cgi?id=46719
-
- Remove the ENABLE_YARR macro and the option of matching regular
- expressions with PCRE from JavaScriptCore.
-
- * runtime/JSGlobalData.h:
- * runtime/RegExp.cpp:
- (JSC::RegExp::compile):
- (JSC::RegExp::match):
- * tests/mozilla/expected.html:
- * wtf/Platform.h:
- * yarr/RegexCompiler.cpp:
- * yarr/RegexCompiler.h:
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::byteCompileRegex):
- * yarr/RegexInterpreter.h:
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::jitCompileRegex):
- * yarr/RegexJIT.h:
- (JSC::Yarr::RegexCodeBlock::RegexCodeBlock):
- (JSC::Yarr::RegexCodeBlock::~RegexCodeBlock):
- (JSC::Yarr::RegexCodeBlock::getFallback):
- (JSC::Yarr::RegexCodeBlock::isFallback):
- (JSC::Yarr::RegexCodeBlock::setFallback):
- (JSC::Yarr::executeRegex):
- * yarr/RegexParser.h:
- * yarr/RegexPattern.h:
-
-2010-11-20 Kwang Yul Seo <skyul@company100.net>
-
- Reviewed by David Kilzer.
-
- [BREWMP] Replace DBGPRINTF and DBGPRINTF_FATAL with dbg_Message
- https://bugs.webkit.org/show_bug.cgi?id=49520
-
- DBGPRINTF and DBGPRINTF_FATAL macros are prohibited in Mod1. Use dbg_Message instead.
-
- * wtf/Assertions.cpp:
- * wtf/Assertions.h:
-
-2010-11-20 Gabor Loki <loki@webkit.org>
-
- Reviewed by Gavin Barraclough.
-
- Support JIT_OPTIMIZE_MOD on Thumb-2
- https://bugs.webkit.org/show_bug.cgi?id=49432
-
- Rewrite the soft modulo operation into macroassembler form, and move it
- to JSValue32_64 section.
- Add support for soft modulo on Thumb-2 JIT also.
-
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::clz):
- * assembler/MacroAssemblerARM.h:
- (JSC::MacroAssemblerARM::countLeadingZeros32):
- (JSC::MacroAssemblerARM::relativeTableJump):
- * assembler/MacroAssemblerARMv7.h:
- (JSC::MacroAssemblerARMv7::countLeadingZeros32):
- (JSC::MacroAssemblerARMv7::relativeTableJump):
- * jit/JITArithmetic.cpp:
- (JSC::JIT::emit_op_mod):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::softModulo):
- * jit/JITStubs.cpp:
- (JSC::JITThunks::JITThunks):
- * wtf/Platform.h:
-
-2010-11-20 David Kilzer <ddkilzer@apple.com>
-
- <http://webkit.org/b/49848> Make it possible to display the last character of a secure text field unobscured
-
- Reviewed by Darin Adler.
+ * profiler/ProfileGenerator.cpp:
+ (JSC::ProfileGenerator::create):
+ (JSC::ProfileGenerator::ProfileGenerator):
+ (JSC::ProfileGenerator::willExecute):
+ (JSC::ProfileGenerator::didExecute):
+ * profiler/ProfileGenerator.h:
+ (JSC::ProfileGenerator::origin): Made ExecState* the first argument,
+ to match the rest of this class and JSC.
+
+ Use a JSGlobalObject* instead of an ExecState* with an indirect reference
+ to a JSGlobalObject* to track our origin. This is simpler and more
+ efficient, and it removes the destruction order dependency that was causing
+ our crash.
- * JavaScriptCore.exp:
- * wtf/text/StringImpl.cpp:
- (WTF::StringImpl::secure): Added argument that controls whether
- the last character is obscured or not. Implemented behavior.
- * wtf/text/StringImpl.h:
- (WTF::StringImpl::LastCharacterBehavior): Added enum.
- (WTF::StringImpl::secure): Updated method signature.
+ * profiler/Profiler.cpp:
+ (JSC::Profiler::startProfiling): Updated for change to JSGlobalObject*.
+ (JSC::Profiler::stopProfiling): New function for stopping all profiles
+ for a given global object. This is more straight-forward than multiplexing
+ through the old function.
-2010-11-19 William Chan <willchan@chromium.org>
+ (JSC::dispatchFunctionToProfiles): Updated for change to JSGlobalObject*.
+ * profiler/Profiler.h: Ditto.
- Reviewed by David Levin.
+ * runtime/JSGlobalObject.cpp:
+ (JSC::JSGlobalObject::~JSGlobalObject): Ditto.
- Add USE(CHROMIUM_NET)
+2011-03-17 Geoffrey Garen <ggaren@apple.com>
- Indicates the use of Chromium's network stack. Chromium's network
- stack performs better when it has full view of all resource requests,
- so USE(CHROMIUM_NET) can be used to bypass throttles.
+ Reviewed by Oliver Hunt.
- https://bugs.webkit.org/show_bug.cgi?id=49778
+ 1 Structure leaked beneath JSGlobalData::storeVPtrs()
+ https://bugs.webkit.org/show_bug.cgi?id=56595
- * wtf/Platform.h:
+ * runtime/Executable.cpp:
+ (JSC::EvalExecutable::EvalExecutable):
+ (JSC::ProgramExecutable::ProgramExecutable):
+ (JSC::FunctionExecutable::FunctionExecutable):
+ * runtime/Executable.h:
+ (JSC::ExecutableBase::ExecutableBase):
+ (JSC::NativeExecutable::NativeExecutable):
+ (JSC::VPtrHackExecutable::VPtrHackExecutable):
+ (JSC::ScriptExecutable::ScriptExecutable): Use a raw pointer instead of
+ PassRefPtr, like JSString does, since JSGlobalData owns the singleton
+ exectuable structure.
-2010-11-19 Steve Falkenburg <sfalken@apple.com>
+2011-03-17 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Adam Roben.
+ Reviewed by Mark Rowe.
- Add Debug_Cairo_CFLite and Release_Cairo_CFLite configurations for all vcproj files
- https://bugs.webkit.org/show_bug.cgi?id=49819
+ Fixed some string leaks seen on the buildbot
+ https://bugs.webkit.org/show_bug.cgi?id=56619
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops:
- * JavaScriptCore.vcproj/jsc/jsc.vcproj:
- * JavaScriptCore.vcproj/testapi/testapi.vcproj:
+ * runtime/PropertyMapHashTable.h:
+ (JSC::PropertyTable::~PropertyTable): DEref!
-2010-11-19 Oliver Hunt <oliver@apple.com>
+2011-03-17 Oliver Hunt <oliver@apple.com>
Reviewed by Geoffrey Garen.
- Don't check for constant registers when we can guarantee that the register won't be in the constant pool
- https://bugs.webkit.org/show_bug.cgi?id=49814
+ Crash in JSC::MarkStack::drain Under Stress
+ https://bugs.webkit.org/show_bug.cgi?id=56470
- Add uncheckedR(int) to CallFrame, and replace all the uses of r() with uncheckedR()
- when we can guarantee that the register is not referring to a constant.
- This makes the interpreter about 0.5% faster, and makes the CallFrame initialisation
- logic correct when we're using a faked callframe (as in the case of the globalExec).
-
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::createActivation):
- * debugger/DebuggerCallFrame.cpp:
- (JSC::DebuggerCallFrame::thisObject):
- * interpreter/CallFrame.h:
- (JSC::ExecState::uncheckedR):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::resolve):
- (JSC::Interpreter::resolveSkip):
- (JSC::Interpreter::resolveGlobal):
- (JSC::Interpreter::resolveGlobalDynamic):
- (JSC::Interpreter::resolveBase):
- (JSC::Interpreter::resolveBaseAndProperty):
- (JSC::Interpreter::callEval):
- (JSC::Interpreter::unwindCallFrame):
- (JSC::Interpreter::throwException):
- (JSC::Interpreter::execute):
- (JSC::Interpreter::executeCall):
- (JSC::Interpreter::executeConstruct):
- (JSC::Interpreter::prepareForRepeatCall):
- (JSC::Interpreter::createExceptionScope):
- (JSC::Interpreter::privateExecute):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * runtime/JSActivation.cpp:
- (JSC::JSActivation::argumentsGetter):
-
-2010-11-19 Steve Falkenburg <sfalken@apple.com>
-
- Reviewed by Darin Adler.
-
- Normalize Cairo/CFLite project/solution configuration names
- https://bugs.webkit.org/show_bug.cgi?id=49818
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.vcproj/jsc/jsc.vcproj:
- * JavaScriptCore.vcproj/testapi/testapi.vcproj:
-
-2010-11-18 Steve Falkenburg <sfalken@apple.com>
-
- Reviewed by Adam Roben.
-
- Windows vcproj configuration names should be normalized across projects
- https://bugs.webkit.org/show_bug.cgi?id=49776
-
- * JavaScriptCore.vcproj/JavaScriptCore.sln:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedCommon.vsprops: Added.
- * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln:
-
-2010-11-19 Patrick Gansterer <paroga@webkit.org>
-
- Unreviewed, build fix after r72360.
-
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::bytecodeOffset):
-
-2010-11-18 Gavin Barraclough <barraclough@apple.com>
-
- Rubber stamped by Geoff Garen.
-
- Bug 49577 - Function.prototype should be non-configurable
-
- Ooops, Function.prototype should not be enumerable!
-
- * runtime/JSFunction.cpp:
- (JSC::JSFunction::getOwnPropertySlot):
-
-2010-11-18 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Oliver Hunt.
+ We perform a number of gc allocations while when
+ we are setting up new globals in a piece of global
+ code. We do this by adding new properties to the
+ symbol table, and then expanding the storage to fit
+ at the end.
- Bug 49708 - Stop recompiling functions to regenerate exception info.
+ If a GC happens during this time we will report an
+ incorrect size for the global object's symbol table
+ storage.
- Instead only hold info as necessary – keep divot info is the inspector
- is enabled, line number info is debugging or profiling, and handler
- info for functions with try/catch.
+ This patch corrects this by growing the storage size
+ before we starting adding entries to the symbol table.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dumpStatistics):
- (JSC::CodeBlock::CodeBlock):
- (JSC::CodeBlock::lineNumberForBytecodeOffset):
- (JSC::CodeBlock::expressionRangeForBytecodeOffset):
- (JSC::CodeBlock::shrinkToFit):
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::bytecodeOffset):
- (JSC::CodeBlock::addExpressionInfo):
- (JSC::CodeBlock::addLineInfo):
- (JSC::CodeBlock::hasExpressionInfo):
- (JSC::CodeBlock::hasLineInfo):
- (JSC::CodeBlock::needsCallReturnIndices):
- (JSC::CodeBlock::callReturnIndexVector):
- * bytecode/SamplingTool.cpp:
- (JSC::SamplingTool::dump):
* bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
- * bytecompiler/BytecodeGenerator.h:
- (JSC::BytecodeGenerator::emitNode):
- (JSC::BytecodeGenerator::emitNodeInConditionContext):
- (JSC::BytecodeGenerator::emitExpressionInfo):
- (JSC::BytecodeGenerator::addLineInfo):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::unwindCallFrame):
- (JSC::appendSourceToError):
- (JSC::Interpreter::throwException):
- (JSC::Interpreter::privateExecute):
- (JSC::Interpreter::retrieveLastCaller):
- * interpreter/Interpreter.h:
- * jit/JIT.cpp:
- (JSC::JIT::privateCompile):
- * jit/JITStubs.cpp:
- (JSC::jitThrow):
- (JSC::DEFINE_STUB_FUNCTION):
- * runtime/Collector.cpp:
- (JSC::Heap::markRoots):
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::compileInternal):
- (JSC::ProgramExecutable::compileInternal):
- (JSC::FunctionExecutable::compileForCallInternal):
- (JSC::FunctionExecutable::compileForConstructInternal):
- * runtime/Executable.h:
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- * runtime/JSGlobalData.h:
- (JSC::JSGlobalData::usingAPI):
- * runtime/JSGlobalObject.h:
- (JSC::JSGlobalObject::supportsRichSourceInfo):
- (JSC::JSGlobalObject::globalData):
-
-2010-11-18 Adam Roben <aroben@apple.com>
-
- Add a script to delete manifest-related files when they are older than
- any .vsprops file
-
- Changes to .vsprops files can cause the manifest files to become
- invalid, and Visual Studio doesn't always figure out that it needs to
- rebuild them.
+ * runtime/JSGlobalObject.cpp:
+ (JSC::JSGlobalObject::resizeRegisters):
- Reviewed by Sam Weinig.
+2011-03-17 Geoffrey Garen <ggaren@apple.com>
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
- Call the new script.
+ Reviewed by Oliver Hunt.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj:
- Added the new script.
+ 1 Structure leaked beneath JSGlobalData::storeVPtrs()
+ https://bugs.webkit.org/show_bug.cgi?id=56595
- * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py: Added.
- (file_modification_times): Generator to return the modification time of
- each file in a directory hierarchy.
- (main): Get the modification time of the newest vsprops file, then find
- all manifest-related files in the obj directory. Delete all
- manifest-related files that are older than the newest vsprops file.
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::storeVPtrs): Take local ownership of the Structure
+ we're using, since the Executable is not designed to own the Structure.
-2010-11-18 Mark Rowe <mrowe@apple.com>
+2011-03-17 Gavin Barraclough <barraclough@apple.com>
- Rubber-stamped by Adam Roben.
+ Rubber Stamped by Sam Weinig.
- <rdar://problem/8602509&8602717&8602724> Enable compaction support.
+ Add missing register-register branchTest8 to MacroAssemblerX86Common/X86Assembler.
- * Configurations/JavaScriptCore.xcconfig:
+ * assembler/MacroAssemblerX86Common.h:
+ (JSC::MacroAssemblerX86Common::branchTest8):
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::testb_rr):
-2010-11-18 Gavin Barraclough <barraclough@apple.com>
+2011-03-17 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
+ Reviewed by Sam Weinig.
- Bug 49635 - Profiler implementation is fragile
-
- The profile presently requires the exception handling mechanism to explicitly
- remove all stack frames that are exited during the exception unwind mechanism.
- This is fragile in a number of ways:
- * We have to change bytecode register allocation when compiling code to run
- when profiling, to preserve the callee function (this is also required to
- call did_call after the call has returned).
- * In the JIT we have to maintain additional data structures
- (CodeBlock::RareData::m_functionRegisterInfos) to map back to the register
- containing the callee.
- * In the interpreter we use 'magic values' to offset into the instruction
- stream to rediscover the register containing the function.
-
- Instead, move profiling into the head and tail of functions.
- * This correctly accounts the cost of the call itself to the caller.
- * This allows us to access the callee function object from the callframe.
- * This means that at the point a call is made we can track the stack depth
- on the ProfileNode.
- * When unwinding we can simply report the depth at which the exception is
- being handled - all call frames above this level are freed.
+ Bug 56603 - DFG JIT related cleanup
+ Move node generation out to separate function, move binarySearch algorithm out
+ to StdLibExtras, fix Graph::dump() to print comma between non-node children,
+ even if there are no node children.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::shrinkToFit):
* bytecode/CodeBlock.h:
+ (JSC::getCallReturnOffset):
+ (JSC::CodeBlock::getStubInfo):
+ (JSC::CodeBlock::getCallLinkInfo):
+ (JSC::CodeBlock::getMethodCallLinkInfo):
(JSC::CodeBlock::bytecodeOffset):
- (JSC::CodeBlock::methodCallLinkInfo):
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::emitCall):
- (JSC::BytecodeGenerator::emitCallVarargs):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::unwindCallFrame):
- (JSC::Interpreter::throwException):
- (JSC::Interpreter::execute):
- (JSC::Interpreter::executeCall):
- (JSC::Interpreter::executeConstruct):
- (JSC::Interpreter::privateExecute):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * profiler/Profile.cpp:
- (JSC::Profile::Profile):
- * profiler/ProfileGenerator.cpp:
- (JSC::ProfileGenerator::addParentForConsoleStart):
- (JSC::ProfileGenerator::willExecute):
- (JSC::ProfileGenerator::didExecute):
- (JSC::ProfileGenerator::exceptionUnwind):
- (JSC::ProfileGenerator::stopProfiling):
- * profiler/ProfileGenerator.h:
- * profiler/ProfileNode.cpp:
- (JSC::ProfileNode::ProfileNode):
- (JSC::ProfileNode::willExecute):
- * profiler/ProfileNode.h:
- (JSC::ProfileNode::create):
- (JSC::ProfileNode::callerCallFrame):
- * profiler/Profiler.cpp:
- (JSC::dispatchFunctionToProfiles):
- (JSC::Profiler::_willExecute):
- (JSC::Profiler::_didExecute):
- (JSC::Profiler::exceptionUnwind):
- * profiler/Profiler.h:
-
-2010-11-18 Steve Falkenburg <sfalken@apple.com>
-
- Reviewed by Adam Roben.
-
- Remove leftover Windows Debug_Internal configurations
- https://bugs.webkit.org/show_bug.cgi?id=49758
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.vcproj/jsc/jsc.vcproj:
- * JavaScriptCore.vcproj/testapi/testapi.vcproj:
-
-2010-11-18 Chao-ying Fu <fu@mips.com>
-
- Reviewed by Csaba Osztrogonác.
-
- Avoid increasing required alignment of target type warning
- https://bugs.webkit.org/show_bug.cgi?id=43963
-
- * runtime/UString.h:
- (JSC::UStringHash::equal):
+ - Move binaryChop to binarySearch in StdLibExtras
+ * dfg/DFGByteCodeParser.cpp:
+ (JSC::DFG::ByteCodeParser::ByteCodeParser):
+ (JSC::DFG::ByteCodeParser::parse):
+ (JSC::DFG::parse):
+ - Make m_noArithmetic a member, initialize m_currentIndex in the constructor.
+ * dfg/DFGByteCodeParser.h:
+ - Change parse() to not take a start index (always 0).
+ * dfg/DFGGraph.cpp:
+ (JSC::DFG::Graph::dump):
+ - Fix Graph::dump() to print comma between non-node children, even if there are no node children.
+ * dfg/DFGJITCodeGenerator.h:
+ (JSC::DFG::JITCodeGenerator::JITCodeGenerator):
+ - Initialize m_compileIndex in constructor.
+ * dfg/DFGNonSpeculativeJIT.cpp:
+ (JSC::DFG::NonSpeculativeJIT::compile):
+ * dfg/DFGNonSpeculativeJIT.h:
+ - Spilt out compilation of individual node.
+ * dfg/DFGOperations.cpp:
+ (JSC::DFG::operationConvertThis):
+ * dfg/DFGOperations.h:
+ - Cleanup parameter name.
+ * dfg/DFGSpeculativeJIT.cpp:
+ (JSC::DFG::SpeculativeJIT::compile):
+ * dfg/DFGSpeculativeJIT.h:
+ - Spilt out compilation of individual node.
+ * runtime/Executable.cpp:
+ (JSC::tryDFGCompile):
+ - Change parse() to not take a start index (always 0).
* wtf/StdLibExtras.h:
+ (WTF::binarySearch):
+ - Move binaryChop to binarySearch in StdLibExtras
-2010-11-17 Sam Weinig <sam@webkit.org>
-
- Reviewed by Anders Carlsson.
+2011-03-17 Anders Carlsson <andersca@apple.com>
- Add stubbed out ScrollAnimator for the Mac
- https://bugs.webkit.org/show_bug.cgi?id=49678
+ Reviewed by Geoffrey Garen.
- * wtf/Platform.h: Enable SMOOTH_SCROLLING on the Mac, this has no
- change in behavior at the moment.
+ Fix clang build.
-2010-11-17 David Kilzer <ddkilzer@apple.com>
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::storeVPtrs):
- <http://webkit.org/b/49634> Make overflow guards in WTF::String::utf8 explicit
+2011-03-17 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
- Add an explicit overflow check prior to allocating our buffer,
- rather than implicitly relying on the guard in convertUTF16ToUTF8.
-
- * wtf/text/WTFString.cpp:
- (WTF::String::utf8):
-
-2010-11-17 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r72197.
- http://trac.webkit.org/changeset/72197
- https://bugs.webkit.org/show_bug.cgi?id=49661
+ 1 Structure leaked beneath JSGlobalData::storeVPtrs()
+ https://bugs.webkit.org/show_bug.cgi?id=56595
- broke fast/regex/test1.html (Requested by stampho on #webkit).
-
- * runtime/JSGlobalData.h:
- * runtime/RegExp.cpp:
- (JSC::RegExpRepresentation::~RegExpRepresentation):
- (JSC::RegExp::compile):
- (JSC::RegExp::match):
- * tests/mozilla/expected.html:
- * wtf/Platform.h:
- * yarr/RegexCompiler.cpp:
- * yarr/RegexCompiler.h:
- * yarr/RegexInterpreter.cpp:
- * yarr/RegexInterpreter.h:
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::jitCompileRegex):
- * yarr/RegexJIT.h:
- (JSC::Yarr::RegexCodeBlock::RegexCodeBlock):
- (JSC::Yarr::RegexCodeBlock::~RegexCodeBlock):
- (JSC::Yarr::RegexCodeBlock::getFallback):
- (JSC::Yarr::RegexCodeBlock::setFallback):
- (JSC::Yarr::executeRegex):
- * yarr/RegexParser.h:
- * yarr/RegexPattern.h:
-
-2010-11-17 Peter Varga <pvarga@inf.u-szeged.hu>
-
- Reviewed by Gavin Barraclough.
-
- YARR JIT should fallback to YARR Interpreter instead of PCRE.
- https://bugs.webkit.org/show_bug.cgi?id=46719
-
- Remove the ENABLE_YARR macro and the option of matching regular
- expressions with PCRE from JavaScriptCore.
-
- * runtime/JSGlobalData.h:
- * runtime/RegExp.cpp:
- (JSC::RegExp::compile):
- (JSC::RegExp::match):
- * tests/mozilla/expected.html:
- * wtf/Platform.h:
- * yarr/RegexCompiler.cpp:
- * yarr/RegexCompiler.h:
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::byteCompileRegex):
- * yarr/RegexInterpreter.h:
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::jitCompileRegex):
- * yarr/RegexJIT.h:
- (JSC::Yarr::RegexCodeBlock::RegexCodeBlock):
- (JSC::Yarr::RegexCodeBlock::~RegexCodeBlock):
- (JSC::Yarr::RegexCodeBlock::getFallback):
- (JSC::Yarr::RegexCodeBlock::isFallback):
- (JSC::Yarr::RegexCodeBlock::setFallback):
- (JSC::Yarr::executeRegex):
- * yarr/RegexParser.h:
- * yarr/RegexPattern.h:
-
-2010-11-17 Peter Varga <pvarga@inf.u-szeged.hu>
-
- Reviewed by Gavin Barraclough.
-
- Extend YARR Interpreter with beginning character look-up optimization
- https://bugs.webkit.org/show_bug.cgi?id=45751
-
- Add beginning character look-up optimization which sets the start
- index to the first possible successful pattern match.
- Extend YARR Interpreter with lookupForBeginChars function which
- implements the beginning character look-up optimization.
-
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::InputStream::readPair):
- (JSC::Yarr::Interpreter::InputStream::isNotAvailableInput):
- (JSC::Yarr::Interpreter::lookupForBeginChars):
- (JSC::Yarr::Interpreter::matchDisjunction):
- (JSC::Yarr::Interpreter::interpret):
- * yarr/RegexInterpreter.h:
- (JSC::Yarr::BytecodePattern::BytecodePattern):
-
-2010-11-17 Alexis Menard <alexis.menard@nokia.com>, Simon Hausmann <simon.hausmann@nokia.com>
-
- Reviewed by Kenneth Christiansen, Tor Arne Vestbø.
-
- [Qt] Add support for use GStreamer with the Qt build
-
- Enable the build/inclusion of the wtf/QObject convenience classes.
-
- * JavaScriptCore.pri:
- * wtf/wtf.pri:
-
-2010-11-17 Peter Varga <pvarga@inf.u-szeged.hu>
-
- Reviewed by Gavin Barraclough.
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::storeVPtrs): Now that we have an executable, we need
+ to explicitly run its destructor.
- Collect the beginning characters in a RegExp pattern for look-up
- optimization
- https://bugs.webkit.org/show_bug.cgi?id=45748
-
- Extend the YARR's parser with an algorithm which collects the potential
- beginning characters from a RegExp pattern for later look-up optimization.
-
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::BeginCharHelper::BeginCharHelper):
- (JSC::Yarr::BeginCharHelper::addBeginChar):
- (JSC::Yarr::BeginCharHelper::merge):
- (JSC::Yarr::BeginCharHelper::addCharacter):
- (JSC::Yarr::BeginCharHelper::linkHotTerms):
- (JSC::Yarr::RegexPatternConstructor::RegexPatternConstructor):
- (JSC::Yarr::RegexPatternConstructor::addBeginTerm):
- (JSC::Yarr::RegexPatternConstructor::setupDisjunctionBeginTerms):
- (JSC::Yarr::RegexPatternConstructor::setupAlternativeBeginTerms):
- (JSC::Yarr::RegexPatternConstructor::setupBeginChars):
- (JSC::Yarr::compileRegex):
- * yarr/RegexPattern.h:
- (JSC::Yarr::TermChain::TermChain):
- (JSC::Yarr::BeginChar::BeginChar):
- (JSC::Yarr::RegexPattern::RegexPattern):
- (JSC::Yarr::RegexPattern::reset):
-
-2010-11-17 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r72160.
- http://trac.webkit.org/changeset/72160
- https://bugs.webkit.org/show_bug.cgi?id=49646
-
- Broke lots of fast/profiler tests, among others (Requested by
- aroben on #webkit).
+2011-03-17 Jeff Miller <jeffm@apple.com>
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- (JSC::CodeBlock::functionRegisterForBytecodeOffset):
- (JSC::CodeBlock::shrinkToFit):
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::addFunctionRegisterInfo):
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::emitCall):
- (JSC::BytecodeGenerator::emitCallVarargs):
- (JSC::BytecodeGenerator::emitReturn):
- (JSC::BytecodeGenerator::emitConstruct):
- * bytecompiler/BytecodeGenerator.h:
- (JSC::CallArguments::profileHookRegister):
- * bytecompiler/NodesCodegen.cpp:
- (JSC::CallArguments::CallArguments):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::unwindCallFrame):
- (JSC::Interpreter::throwException):
- (JSC::Interpreter::execute):
- (JSC::Interpreter::executeCall):
- (JSC::Interpreter::executeConstruct):
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- * jit/JIT.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_profile_will_call):
- (JSC::JIT::emit_op_profile_did_call):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_profile_will_call):
- (JSC::JIT::emit_op_profile_did_call):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * jit/JITStubs.h:
- * profiler/Profile.cpp:
- (JSC::Profile::Profile):
- * profiler/ProfileGenerator.cpp:
- (JSC::ProfileGenerator::addParentForConsoleStart):
- (JSC::ProfileGenerator::willExecute):
- (JSC::ProfileGenerator::didExecute):
- (JSC::ProfileGenerator::stopProfiling):
- * profiler/ProfileGenerator.h:
- * profiler/ProfileNode.cpp:
- (JSC::ProfileNode::ProfileNode):
- (JSC::ProfileNode::willExecute):
- * profiler/ProfileNode.h:
- (JSC::ProfileNode::create):
- (JSC::ProfileNode::operator==):
- * profiler/Profiler.cpp:
- (JSC::dispatchFunctionToProfiles):
- (JSC::Profiler::willExecute):
- (JSC::Profiler::didExecute):
- * profiler/Profiler.h:
+ Use a consistent set of file patterns in the svn:ignore property for all .xcodeproj directories, specifically:
+
+ *.mode*
+ *.pbxuser
+ *.perspective*
+ project.xcworkspace
+ xcuserdata
-2010-11-16 Gavin Barraclough <barraclough@apple.com>
+ * JavaScriptCore.xcodeproj: Modified property svn:ignore.
- Reviewed by Sam Weinig.
+2011-03-17 Gavin Barraclough <barraclough@apple.com>
- Bug 49635 - Profiler implementation is fragile
-
- The profile presently requires the exception handling mechanism to explicitly
- remove all stack frames that are exited during the exception unwind mechanism.
- This is fragile in a number of ways:
- * We have to change bytecode register allocation when compiling code to run
- when profiling, to preserve the callee function (this is also required to
- call did_call after the call has returned).
- * In the JIT we have to maintain additional data structures
- (CodeBlock::RareData::m_functionRegisterInfos) to map back to the register
- containing the callee.
- * In the interpreter we use 'magic values' to offset into the instruction
- stream to rediscover the register containing the function.
-
- Instead, move profiling into the head and tail of functions.
- * This correctly accounts the cost of the call itself to the caller.
- * This allows us to access the callee function object from the callframe.
- * This means that at the point a call is made we can track the stack depth
- on the ProfileNode.
- * When unwinding we can simply report the depth at which the exception is
- being handled - all call frames above this level are freed.
+ Reverting r81197, breaks JIT + INTERPRETER build.
- * JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- (JSC::CodeBlock::shrinkToFit):
+ (JSC::CodeBlock::hasGlobalResolveInstructionAtBytecodeOffset):
+ (JSC::CodeBlock::hasGlobalResolveInfoAtBytecodeOffset):
* bytecode/CodeBlock.h:
- (JSC::CodeBlock::bytecodeOffset):
- (JSC::CodeBlock::methodCallLinkInfo):
+ (JSC::CodeBlock::addPropertyAccessInstruction):
+ (JSC::CodeBlock::addGlobalResolveInstruction):
+ (JSC::CodeBlock::addStructureStubInfo):
* bytecode/Opcode.h:
+ * bytecode/StructureStubInfo.h:
* bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
+ (JSC::BytecodeGenerator::emitResolve):
+ (JSC::BytecodeGenerator::emitResolveWithBase):
+ (JSC::BytecodeGenerator::emitGetById):
+ (JSC::BytecodeGenerator::emitPutById):
+ (JSC::BytecodeGenerator::emitDirectPutById):
(JSC::BytecodeGenerator::emitCall):
- (JSC::BytecodeGenerator::emitCallVarargs):
- (JSC::BytecodeGenerator::emitReturn):
(JSC::BytecodeGenerator::emitConstruct):
- * bytecompiler/BytecodeGenerator.h:
- (JSC::CallArguments::count):
- * bytecompiler/NodesCodegen.cpp:
- (JSC::CallArguments::CallArguments):
- * interpreter/Interpreter.cpp:
- (JSC::ProfileHostCall::ProfileHostCall):
- (JSC::ProfileHostCall::~ProfileHostCall):
- (JSC::Interpreter::unwindCallFrame):
- (JSC::Interpreter::throwException):
- (JSC::Interpreter::execute):
- (JSC::Interpreter::executeCall):
- (JSC::Interpreter::executeConstruct):
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- * jit/JIT.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_profile_has_called):
- (JSC::JIT::emit_op_profile_will_return):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_profile_has_called):
- (JSC::JIT::emit_op_profile_will_return):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * jit/JITStubs.h:
- * profiler/Profile.cpp:
- (JSC::Profile::Profile):
- * profiler/ProfileGenerator.cpp:
- (JSC::ProfileGenerator::addParentForConsoleStart):
- (JSC::ProfileGenerator::willExecute):
- (JSC::ProfileGenerator::didExecute):
- (JSC::ProfileGenerator::exceptionUnwind):
- (JSC::ProfileGenerator::stopProfiling):
- * profiler/ProfileGenerator.h:
- * profiler/ProfileNode.cpp:
- (JSC::ProfileNode::ProfileNode):
- (JSC::ProfileNode::willExecute):
- * profiler/ProfileNode.h:
- (JSC::ProfileNode::create):
- (JSC::ProfileNode::operator==):
- (JSC::ProfileNode::exec):
- * profiler/Profiler.cpp:
- (JSC::dispatchFunctionToProfiles):
- (JSC::Profiler::hasCalled):
- (JSC::Profiler::willEvaluate):
- (JSC::Profiler::willReturn):
- (JSC::Profiler::didEvaluate):
- (JSC::Profiler::exceptionUnwind):
- * profiler/Profiler.h:
+ (JSC::BytecodeGenerator::emitCatch):
-2010-11-16 Brian Weinstein <bweinstein@apple.com>
+2011-03-17 Ben Taylor <bentaylor.solx86@gmail.com>
- Reviewed by Adam Roben and Steve Falkenburg.
+ Reviewed by Alexey Proskuryakov.
- Touch Platform.h to force a rebuild for Windows.
+ Add a COMPILER(SUNCC) define for Sun Studio 12.
+ https://bugs.webkit.org/show_bug.cgi?56444
+ derived from patch 1 of 16 originally from https://bugs.webkit.org/show_bug.cgi?id=24932
* wtf/Platform.h:
-2010-11-16 Steve Falkenburg <sfalken@apple.com>
+2011-03-17 Jay Civelli <jcivelli@chromium.org>
- Reviewed by Adam Roben.
-
- Disable LTCG for Windows Release builds. Add new Release_LTCG configuration.
- https://bugs.webkit.org/show_bug.cgi?id=49632
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.vcproj/jsc/jsc.vcproj:
- * JavaScriptCore.vcproj/testapi/testapi.vcproj:
-
-2010-11-16 Peter Varga <pvarga@inf.u-szeged.hu>
-
- Reviewed by Gavin Barraclough.
-
- The number of recursive match calls isn't limited in YARR Interpreter
- https://bugs.webkit.org/show_bug.cgi?id=47906
-
- Check the number of the matchDisjunction recursive calls to avoid unbounded
- recursion.
- Now the matchDisjunction function returns JSRegExpResult instead of bool.
- The JSRegExpResult enum contains the result of matching or the error code
- of the failure (like HitLimit) which terminates the matching.
- The error codes are based on pcre's jsRegExpExecute error codes.
-
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::parenthesesDoBacktrack):
- (JSC::Yarr::Interpreter::matchParentheses):
- (JSC::Yarr::Interpreter::backtrackParentheses):
- (JSC::Yarr::Interpreter::matchDisjunction):
- (JSC::Yarr::Interpreter::matchNonZeroDisjunction):
- (JSC::Yarr::Interpreter::interpret):
- (JSC::Yarr::Interpreter::Interpreter):
- * yarr/RegexInterpreter.h:
-
-2010-11-16 Brian Weinstein <bweinstein@apple.com>
-
- Rest of the Windows build fix.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
-
-2010-11-16 Gavin Barraclough <barraclough@apple.com>
-
- Windows build fix pt 1.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ Reviewed by David Levin.
-2010-11-16 Gavin Barraclough <barraclough@apple.com>
+ Adding a contains method to Vector.
+ https://bugs.webkit.org/show_bug.cgi?id=55859
- Reviewed by Oliver Hunt.
+ * wtf/Vector.h:
+ (WTF::::operator):
+ (WTF::::contains):
- https://bugs.webkit.org/show_bug.cgi?id=49606
+2011-03-17 Patrick Gansterer <paroga@webkit.org>
- The bug here is that we read the prototype from the RHS argument using a regular
- op_get_by_id before op_instanceof has checked that this is an object implementing
- HasInstance. This incorrect behaviour gives rise to further unnecessary complexity
- in the code base, since we have additional logic (implemented using the
- GetByIdExceptionInfo data structures on CodeBlock) to convert not an object errors
- from the get_by_id into invalid parameter errors. Having fixed this bug this code
- is all redundant, since in these cases the get_by_id will never have been reached.
+ Fix the interpreter build.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- (JSC::CodeBlock::shrinkToFit):
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::addExpressionInfo):
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::emitCheckHasInstance):
- * bytecompiler/BytecodeGenerator.h:
- * bytecompiler/NodesCodegen.cpp:
- (JSC::InstanceOfNode::emitBytecode):
* interpreter/Interpreter.cpp:
- (JSC::Interpreter::throwException):
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- (JSC::JIT::privateCompileSlowCases):
- * jit/JIT.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_check_has_instance):
- (JSC::JIT::emit_op_instanceof):
- (JSC::JIT::emitSlow_op_check_has_instance):
- (JSC::JIT::emitSlow_op_instanceof):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_check_has_instance):
- (JSC::JIT::emit_op_instanceof):
- (JSC::JIT::emitSlow_op_check_has_instance):
- (JSC::JIT::emitSlow_op_instanceof):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * jit/JITStubs.h:
- * runtime/ExceptionHelpers.cpp:
- (JSC::createInterruptedExecutionException):
- (JSC::createTerminatedExecutionException):
- (JSC::createUndefinedVariableError):
- (JSC::createNotAFunctionError):
- (JSC::createNotAnObjectError):
- * runtime/ExceptionHelpers.h:
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- * runtime/JSGlobalData.h:
- * runtime/JSNotAnObject.cpp:
- (JSC::JSNotAnObject::toPrimitive):
- (JSC::JSNotAnObject::getPrimitiveNumber):
- (JSC::JSNotAnObject::toBoolean):
- (JSC::JSNotAnObject::toNumber):
- (JSC::JSNotAnObject::toString):
- (JSC::JSNotAnObject::toObject):
- (JSC::JSNotAnObject::getOwnPropertySlot):
- (JSC::JSNotAnObject::getOwnPropertyDescriptor):
- (JSC::JSNotAnObject::put):
- (JSC::JSNotAnObject::deleteProperty):
- (JSC::JSNotAnObject::getOwnPropertyNames):
- * runtime/JSNotAnObject.h:
- (JSC::JSNotAnObject::JSNotAnObject):
- * runtime/JSObject.h:
- (JSC::JSObject::isActivationObject):
- * runtime/JSValue.cpp:
- (JSC::JSValue::toObjectSlowCase):
- (JSC::JSValue::synthesizeObject):
- (JSC::JSValue::synthesizePrototype):
-
-2010-11-15 Darin Adler <darin@apple.com>
+ (JSC::Interpreter::privateExecute): Added globalData to inheritorID().
- Reviewed by Sam Weinig.
-
- Harden additional string functions against large lengths
- https://bugs.webkit.org/show_bug.cgi?id=49574
-
- * wtf/text/CString.cpp:
- (WTF::CString::init): Check for length that is too large for CString.
- (WTF::CString::newUninitialized): Ditto.
- (WTF::CString::copyBufferIfNeeded): Fix types so the length stays
- in a size_t.
-
- * wtf/text/WTFString.cpp:
- (WTF::String::append): Check for length that is too large.
+2011-03-16 Sam Weinig <sam@webkit.org>
-2010-11-15 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Sam Weinig.
-
- Bug 49577 - Function.prototype should be non-configurable
-
- JSC lazily allocates the prototype property of Function objects.
-
- We check the prototype exists on 'get', but not on 'put'.
- If you 'put' without having first done a 'get' you can end up with a configurable
- prototype (prototype should only ever be non-configurable).
-
- This is visible in a couple of ways:
- * 'delete' on the property may succeed. (the next access will result in a new,
- reset prototype object).
- * the prototype may be set to a getter.
-
- * runtime/JSFunction.cpp:
- (JSC::JSFunction::getOwnPropertyNames):
- Reify the prototype property before allowing an enumerate including don't enum properties.
- (JSC::JSFunction::put):
- Reify the prototype property before any put to it.
-
-2010-11-15 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Geoff Garen.
-
- Bug 49488 - Only add source specific information to exceptions in Interpreter::throwException
-
- Three types of source location information are added to errors.
-
- (1) Divot information.
-
- This was added with the intention of using it to provide better source highlighting in the inspector.
- We may still want to do so, but we probably should not be exposing these values in a manner visible to
- user scripts – only through an internal C++ interface. The code adding divot properties to objects has
- been removed.
-
- (2) Line number information.
-
- Line number information is presently sometimes added at the point the exception is created, and sometimes
- added at the point the exception passes through throwException. Change this so that throwException has
- the sole responsibility for adding line number and source file information.
-
- (3) Source snippets in the message of certain type errors (e.g. 'doc' in `Result of expression 'doc' [undefined] is not an object.`).
-
- These messages are currently created at the point the exceptions is raised. Instead reformat the message
- such that the source snippet is located at the end (`Result of expression 'b1' [undefined] is not an object.`
- becomes `'undefined' is not an object (evaluating 'b1.property')`), and append these to the message at
- the in throw Exception. This presents a number of advantages:
- * we no longer need to have source location information to create these TypeErrors.
- * we can chose to append source location information in other error messages, including those where
- passing source location to the point of construction would be inconvenient.
- * we can chose in future to omit to append source location information when running in a non-debug mode.
-
- This also cleans up some error output, e.g. removing double brackets ('[[]]') around objects in output,
- removing double periods (..) at end of lines, and adding slightly more context to some errors.
-
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::expressionRangeForBytecodeOffset):
- - Separated called to access line and range information.
-
- * bytecode/CodeBlock.h:
- - Separated called to access line and range information.
+ Fix the interpreter build.
* interpreter/Interpreter.cpp:
(JSC::Interpreter::resolve):
@@ -9805,2340 +4500,1570 @@
(JSC::Interpreter::resolveGlobal):
(JSC::Interpreter::resolveGlobalDynamic):
(JSC::Interpreter::resolveBaseAndProperty):
- (JSC::isInvalidParamForIn):
- (JSC::isInvalidParamForInstanceOf):
- - Update parameters passed to error constructors.
- (JSC::appendSourceToError):
- - Update message property to add location information (previously added in createErrorMessage, in ExceptionHelpers)
- (JSC::Interpreter::throwException):
- - Updated to call appendSourceToError.
(JSC::Interpreter::privateExecute):
- - Update parameters passed to error constructors.
-
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- - Update parameters passed to error constructors.
-
- * runtime/Error.cpp:
- (JSC::addErrorInfo):
- (JSC::hasErrorInfo):
- - Removed divot properties.
+ Remove .get()s.
- * runtime/Error.h:
- - Removed divot properties.
+2011-03-16 Adam Barth <abarth@webkit.org>
- * runtime/ErrorInstance.cpp:
- (JSC::ErrorInstance::ErrorInstance):
- - Initialize new property.
-
- * runtime/ErrorInstance.h:
- (JSC::ErrorInstance::appendSourceToMessage):
- (JSC::ErrorInstance::setAppendSourceToMessage):
- (JSC::ErrorInstance::clearAppendSourceToMessage):
- - Added flag to check for errors needing location information appending.
- (JSC::ErrorInstance::isErrorInstance):
- - Added virtual method to check for ErrorInstances.
-
- * runtime/ExceptionHelpers.cpp:
- (JSC::createUndefinedVariableError):
- (JSC::createInvalidParamError):
- (JSC::createNotAConstructorError):
- (JSC::createNotAFunctionError):
- (JSC::createNotAnObjectError):
- - Update parameters passed to error constructors, stopped adding line number information early, changed TypeError messages.
-
- * runtime/ExceptionHelpers.h:
- - Updated function signatures.
-
- * runtime/JSFunction.cpp:
- (JSC::callHostFunctionAsConstructor):
- - Update parameters passed to error constructors.
-
- * runtime/JSObject.h:
- (JSC::JSObject::isErrorInstance):
- - Added virtual method to check for ErrorInstances.
-
-2010-11-12 Anders Carlsson <andersca@apple.com>
-
- Reviewed by Adam Roben.
-
- CString(const char*) crashes when passed a null pointer
- https://bugs.webkit.org/show_bug.cgi?id=49450
-
- * wtf/text/CString.cpp:
- (WTF::CString::CString):
- Return early if str is null.
-
-2010-11-11 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Bug 49420 - Clean up syntax/reference error throw.
-
- Some errors detected at compile time are thrown at runtime. We currently do so using a op_new_error/op_throw bytecode pair.
- This is not ideal. op_throw is used for explicit user throw statements, and has different requirements in terms or meta data
- attached to the exception (controlled by the explicitThrow parameter passed to Interpreter::throwException). To work around
- this, op_new_error has to add the meta data at an early stage, which is unlike other VM exceptions being raised.
-
- We can simplify this and bring into line with other exception behaviour by changing new_error from just allocating an
- Exception instance to also throwing it – but as a regular VM throw, correctly passing explicitThrow as false.
-
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- (JSC::CodeBlock::expressionRangeForBytecodeOffset):
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::emitThrowReferenceError):
- (JSC::BytecodeGenerator::emitThrowSyntaxError):
- (JSC::BytecodeGenerator::emitThrowExpressionTooDeepException):
- * bytecompiler/BytecodeGenerator.h:
- (JSC::BytecodeGenerator::emitNodeInConditionContext):
- * bytecompiler/NodesCodegen.cpp:
- (JSC::ThrowableExpressionData::emitThrowReferenceError):
- (JSC::ThrowableExpressionData::emitThrowSyntaxError):
- (JSC::RegExpNode::emitBytecode):
- (JSC::PostfixErrorNode::emitBytecode):
- (JSC::PrefixErrorNode::emitBytecode):
- (JSC::AssignErrorNode::emitBytecode):
- (JSC::ForInNode::emitBytecode):
- (JSC::ContinueNode::emitBytecode):
- (JSC::BreakNode::emitBytecode):
- (JSC::ReturnNode::emitBytecode):
- (JSC::LabelNode::emitBytecode):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- * jit/JIT.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_throw_reference_error):
- (JSC::JIT::emit_op_throw_syntax_error):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_throw_reference_error):
- (JSC::JIT::emit_op_throw_syntax_error):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * jit/JITStubs.h:
- * parser/Nodes.h:
-
-2010-11-11 Darin Adler <darin@apple.com>
-
- Reviewed by Sam Weinig.
-
- Harden some string functions against large lengths
- https://bugs.webkit.org/show_bug.cgi?id=49293
-
- * wtf/text/StringImpl.cpp:
- (WTF::StringImpl::create): Fix incorrect use of PassRefPtr. Check for
- strlen results that are too large for StringImpl.
- (WTF::StringImpl::lower): Check for lengths that are too large for
- int32_t.
- (WTF::StringImpl::upper): Fix incorrect use of PassRefPtr. Check for
- lengths that are too large for int32_t.
- (WTF::StringImpl::secure): Fix incorect use of PassRefPtr. Use unsigned
- rather than int and int32_t so we can handle any length.
- (WTF::StringImpl::foldCase): Fix incorrect use of PassRefPtr. Check for
- lengths that are too large for int32_t.
- (WTF::StringImpl::find): Check for strlen results that are too large for
- StringImpl.
- (WTF::StringImpl::findIgnoringCase): Ditto.
- (WTF::StringImpl::replace): Fix incorrect use of PassRefPtr.
- (WTF::StringImpl::createWithTerminatingNullCharacter): Check before
- incrementing length.
-
-2010-11-11 Dan Horák <dan@danny.cz>
-
- Reviewed by Andreas Kling.
+ Reviewed by James Robinson.
- Add support for the s390/s390x architectures, it's big-endian
- with s390 being 32-bit and s390x being 64-bit.
+ Remove USE(BUILTIN_UTF8_CODEC)
+ https://bugs.webkit.org/show_bug.cgi?id=56508
- https://bugs.webkit.org/show_bug.cgi?id=34786
+ We added this recently when we were unsure about the stability of the
+ built-in UTF-8 codec. However, the codec seems to be stable, so we
+ don't need the macro.
* wtf/Platform.h:
-2010-11-10 Csaba Osztrogonác <ossy@webkit.org>
+2011-03-16 Daniel Bates <dbates@rim.com>
- Reviewed by David Hyatt.
-
- HTML5 Ruby support should be mandatory feature
- https://bugs.webkit.org/show_bug.cgi?id=49272
-
- Remove Ruby as optional feature.
-
- * Configurations/FeatureDefines.xcconfig:
- * JavaScriptCorePrefix.h:: Touch it to avoid incremental build failure on Windows.
-
-2010-11-10 Peter Rybin <peter.rybin@gmail.com>
-
- Reviewed by Adam Barth.
-
- HTML parser should provide script column position within HTML document to JavaScript engine
- https://bugs.webkit.org/show_bug.cgi?id=45271
-
- Adds TextPosition* classes -- a structure that stores line/column/generation
- level coordinates inside text document. Adds *BasedNumber classes -- typesafe int
- wrappers that emphasize whether int number is used as zero-based or
- one-based.
-
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/text/TextPosition.h: Added.
- (WTF::TextPosition::TextPosition):
- (WTF::TextPosition::minimumPosition):
- (WTF::TextPosition::belowRangePosition):
- (WTF::ZeroBasedNumber::fromZeroBasedInt):
- (WTF::ZeroBasedNumber::ZeroBasedNumber):
- (WTF::ZeroBasedNumber::zeroBasedInt):
- (WTF::ZeroBasedNumber::base):
- (WTF::ZeroBasedNumber::belowBase):
- (WTF::OneBasedNumber::fromOneBasedInt):
- (WTF::OneBasedNumber::OneBasedNumber):
- (WTF::OneBasedNumber::oneBasedInt):
- (WTF::OneBasedNumber::convertAsZeroBasedInt):
- (WTF::OneBasedNumber::convertToZeroBased):
- (WTF::OneBasedNumber::base):
- (WTF::OneBasedNumber::belowBase):
- (WTF::toZeroBasedTextPosition):
- (WTF::toOneBasedTextPosition):
- (WTF::ZeroBasedNumber::convertToOneBased):
-
-2010-11-09 Gabor Loki <loki@webkit.org>
-
- Reviewed by Gavin Barraclough.
-
- ARM JIT asserts when loading http://reader.google.com in debug mode
- https://bugs.webkit.org/show_bug.cgi?id=48912
-
- There are several cases when the uninterrupted sequence is larger than
- maximum required offset for pathing the same sequence. Eg.: if in a
- uninterrupted sequence the last macroassembler's instruction is a stub
- call, it emits store instruction(s) which should not be included in the
- calculation of length of uninterrupted sequence. So, the insnSpace and
- constSpace should be upper limit instead of hard limit.
-
- * jit/JIT.h:
- * jit/JITInlineMethods.h:
- (JSC::JIT::endUninterruptedSequence):
-
-2010-11-09 David Kilzer <ddkilzer@apple.com>
-
- <http://webkit.org/b/49279> Fix include statements for local headers
-
- Reviewed by Gavin Barraclough.
-
- Use "Foo.h" instead of <Foo.h> for local headers.
-
- * assembler/AbstractMacroAssembler.h: Also fixed sort order.
- * assembler/CodeLocation.h:
- * yarr/RegexJIT.h:
- * yarr/RegexParser.h:
-
-2010-11-08 Adam Roben <aroben@apple.com>
-
- Roll out r71532
-
- It broke the build for Cygwin 1.7 installs. Cygwin 1.7's default
- .bashrc unsets %TEMP%, which broke copy-tools.cmd.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj:
- * JavaScriptCore.vcproj/JavaScriptCore/copy-tools.cmd: Removed.
- * JavaScriptCore.vcproj/JavaScriptCore/show-alert.js: Removed.
-
-2010-11-08 Martin Robinson <mrobinson@igalia.com>
-
- Reviewed by Xan Lopez.
-
- >=webkitgtk-1.2.5: parallel build fails with libtool: link: cannot find the library `libwebkit-1.0.la' or unhandled argument `libwebkit-1.0.la'
- https://bugs.webkit.org/show_bug.cgi?id=49128
-
- r59042 introduced a C++-style comment in Platform.h, which is often
- included in C source files. Change it to a C-style comment.
-
- * wtf/Platform.h: Fix the C++-style comment.
-
-2010-11-08 Adam Roben <aroben@apple.com>
-
- Show a message and cause the build to immediately fail when any
- .vsprops files are copied
-
- When $WebKitLibrariesDir is set to a non-standard location, the
- .vsprops files have to be copied from WebKitLibraries/win to
- $WebKitLibrariesDir. When this happens, Visual Studio doesn't pick up
- changes to the .vsprops files until the next time it opens the solution
- file. Before this patch, the build would soldier on with the old
- .vsprops files, leading to strange build failures. Now we detect that
- the .vsprops files have been updated, display a message to the user
- telling them what to do, and make the build fail immediately.
-
- Fixes <http://webkit.org/b/49181> Windows build fail mysteriously when
- .vsprops files are updated
-
- Reviewed by Steve Falkenburg.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
- Moved code to copy the tools directory to the new copy-tools.cmd
- script. Moved that after the command that writes the buildfailed file
- so the build will be considered a failure if copy-tools.cmd fails.
- Changed to write the project name into buildfailed like all our other
- projects do, so those other projects will know that the failure was due
- to this project.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj:
- Added new scripts.
-
- * JavaScriptCore.vcproj/JavaScriptCore/copy-tools.cmd: Added. Copies
- the tools directory to $WebKitLibrariesDir. If any files were copied,
- we display a message to the user and exit with error code 1 to cause
- the build to fail. In non-interactive builds, we just print the message
- to the build log. In interactive builds, we show the message in an
- alert.
-
- * JavaScriptCore.vcproj/JavaScriptCore/show-alert.js: Added. Uses
- Windows Scripting Host to display a message in an alert.
-
-2010-11-07 Sam Magnuson <smagnuson@netflix.com>
-
- Reviewed by Andreas Kling.
-
- [Qt] make install does not cause JavaScriptCore to be built
- https://bugs.webkit.org/show_bug.cgi?id=49114
-
- * JavaScriptCore.pro:
-
-2010-11-05 Oliver Hunt <oliver@apple.com>
+ Reviewed by Darin Adler.
- Reviewed by Gavin Barraclough.
+ Make JIT build for ARM Thumb-2 with RVCT
+ https://bugs.webkit.org/show_bug.cgi?id=56440
- Website consistently crashing TOT in JIT::execute() on news.com.au
- https://bugs.webkit.org/show_bug.cgi?id=48954
+ Derived from a patch by Dave Tapuska.
- The problem here was the strict pass of this conversion was loading the
- this structure into one register but doing the flags check off a different
- register. This is clearly wrong. I have been unable to trigger the crash
- with a reduction, but I've added an assertion to the this conversion to
- attempt to make it more readily catchable in future.
+ Also, modify the RVCT stub template to indicate that it preserves 8 byte stack alignment.
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_convert_this_strict):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_convert_this_strict):
* jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
-
-2010-11-04 Xan Lopez <xlopez@igalia.com>
-
- Reviewed by Adam Barth.
-
- Use leakRef instead of releaseRef
- https://bugs.webkit.org/show_bug.cgi?id=48974
-
- Use leakRef instead of the deprecated releaseRef. This was renamed
- some time ago because 'releaseRef' is too close to 'release',
- which does something completely different.
-
-2010-11-04 Eric Seidel <eric@webkit.org>
-
- Reviewed by Gavin Barraclough.
-
- REGRESSION(49798): Crash in HTMLObjectElement::parseMappedAttribute
- https://bugs.webkit.org/show_bug.cgi?id=48789
- The contract for all String/AtomicString methods seems to be that it's
- safe to call them, even when the String is null (impl() returns 0).
- This contract was broken by r49798 (unintentionally) when optimizing
- for dromeo.
- This patch adds a null check to AtomicString::lower() fixing this
- crash and preventing future confusion.
+2011-03-16 Chao-ying Fu <fu@mips.com>
- * wtf/text/AtomicString.cpp:
- (WTF::AtomicString::lower):
-
-2010-11-04 Adam Barth <abarth@webkit.org>
+ Reviewed by Darin Adler.
- Enabled ICCJPEG on Chromium Mac
- https://bugs.webkit.org/show_bug.cgi?id=48977
+ Fix MIPS build with const *void
+ https://bugs.webkit.org/show_bug.cgi?id=56513
- * wtf/Platform.h:
+ * assembler/MacroAssemblerMIPS.h:
+ (JSC::MacroAssemblerMIPS::load32):
+ (JSC::MacroAssemblerMIPS::store32):
-2010-11-03 Oliver Hunt <oliver@apple.com>
+2011-03-16 Oliver Hunt <oliver@apple.com>
- Reviewed by Gavin Barraclough.
+ Reviewed by Darin Adler.
- Crash in Function.prototype.call.apply
- https://bugs.webkit.org/show_bug.cgi?id=48485
+ Remove unnecessary caller tracking shenanigans from CodeBlock
+ https://bugs.webkit.org/show_bug.cgi?id=56483
- The problem here was op_load_varargs failing to ensure that
- there was sufficient space for the entire callframe prior to
- op_call_varargs. This meant that when we then re-entered the
- VM it was possible to stomp over an earlier portion of the
- stack, so causing sub-optimal behaviour.
+ This removes some leftover cruft from when we made CodeBlock
+ mark its callees. Removing it gives us a 0.7% progression,
+ reducing the overall regression to ~1.3%.
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::emitLoadVarargs):
- * bytecompiler/BytecodeGenerator.h:
- * bytecompiler/NodesCodegen.cpp:
- (JSC::ApplyFunctionCallDotNode::emitBytecode):
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::shrinkToFit):
+ * bytecode/CodeBlock.h:
+ (JSC::CallLinkInfo::CallLinkInfo):
* jit/JIT.cpp:
- (JSC::JIT::privateCompile):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_load_varargs):
-
-2010-11-03 Kenneth Russell <kbr@google.com>
-
- Reviewed by Chris Marrin.
-
- Redesign extension mechanism in GraphicsContext3D
- https://bugs.webkit.org/show_bug.cgi?id=46894
-
- * JavaScriptCore.exp:
- - Exposed String::split(const String&, Vector<String>).
-
-2010-11-03 Adam Roben <aroben@apple.com>
-
- Bring WTF.vcproj up to date
-
- * JavaScriptCore.vcproj/WTF/WTF.vcproj: Added filters for the text and
- unicode directories, added new files, removed old files.
-
-2010-11-03 Gabor Loki <loki@webkit.org>
-
- Reviewed by Andreas Kling.
-
- Remove unused initializeWeakRandomNumberGenerator
- https://bugs.webkit.org/show_bug.cgi?id=48899
-
- WeakRandom class is used instead of weakRandomNumber and its initializer.
-
- * wtf/RandomNumberSeed.h:
+ (JSC::JIT::linkCall):
+ (JSC::JIT::linkConstruct):
-2010-11-03 Gabor Loki <loki@webkit.org>
+2011-03-15 Oliver Hunt <oliver@apple.com>
Reviewed by Geoffrey Garen.
- Unused class: JSFastMath with JSValue64
- https://bugs.webkit.org/show_bug.cgi?id=48835
-
- Remove unused JSFastMath class.
-
- * runtime/JSImmediate.h:
-
-2010-11-02 Adam Roben <aroben@apple.com>
-
- Windows build fix after r71127
-
- MSVC isn't smart enough to figure out that the definition of the global
- nullptr variable isn't needed, so we provide one for it.
-
- Fixes <http://webkit.org/b/48862> Windows build is broken due to
- undefined symbol nullptr
-
- Reviewed by Anders Carlsson.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Export nullptr.
-
- * JavaScriptCore.vcproj/WTF/WTF.vcproj: Added NullPtr.cpp and let VS
- resort the files.
-
- * wtf/NullPtr.cpp: Added.
-
-2010-11-02 Martin Robinson <mrobinson@igalia.com>
-
- Reviewed by Xan Lopez.
-
- Remove special handling of HashTableDeletedValue in PlatformRefPtr and manually manage memory that cannot be controlled by HashTraits
- https://bugs.webkit.org/show_bug.cgi?id=48841
+ Make Structure creation require a JSGlobalData
+ https://bugs.webkit.org/show_bug.cgi?id=56438
- Remove special handling of HashTableDeletedValue in PlatformRefPtr.
- This is better handled on a case-by-case basis, when HashTraits
- cannot account for it.
+ Mechanical change to make Structure::create require JSGlobalData&, and
+ require all users to provide the globalData.
- * wtf/PlatformRefPtr.h:
- (WTF::PlatformRefPtr::~PlatformRefPtr):
- (WTF::PlatformRefPtr::clear):
- (WTF::::operator):
-
-2010-10-29 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- REGRESSION: r69429-r69611: Crash in JSC::Interpreter::privateExecute
- https://bugs.webkit.org/show_bug.cgi?id=47573
-
- I think the interpreter portion of this was introduced by
- an incorrect but silent merge when I updated prior to committing.
- The JIT change is basically just a correctness fix, but it is
- needed to prevent the testcase from asserting in debug builds.
-
- The basic problem is incorrectly setting the activation object
- on an arguments object. The crash was due to us setting a null
- activation in the interpreter, in the jit we were setting the
- activation of a strict mode arguments object.
-
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
+ * API/JSCallbackConstructor.h:
+ (JSC::JSCallbackConstructor::createStructure):
+ * API/JSCallbackFunction.h:
+ (JSC::JSCallbackFunction::createStructure):
+ * API/JSCallbackObject.h:
+ (JSC::JSCallbackObject::createStructure):
+ * API/JSContextRef.cpp:
+ * JavaScriptCore.exp:
+ * debugger/DebuggerActivation.cpp:
+ (JSC::DebuggerActivation::DebuggerActivation):
+ * debugger/DebuggerActivation.h:
+ (JSC::DebuggerActivation::createStructure):
* jit/JITStubs.cpp:
(JSC::DEFINE_STUB_FUNCTION):
- * wtf/Platform.h:
-
-2010-10-29 Csaba Osztrogonác <ossy@webkit.org>
-
- Reviewed by Adam Roben and David Kilzer.
-
- Fix and cleanup of build systems
- https://bugs.webkit.org/show_bug.cgi?id=48342
-
- * Configurations/FeatureDefines.xcconfig: Add missing ENABLE_FULLSCREEN_API
-
-2010-10-28 Kwang Yul Seo <skyul@company100.net>
-
- Reviewed by Darin Adler.
-
- Include stddef.h unconditionally in Assertions.h
- https://bugs.webkit.org/show_bug.cgi?id=48573
-
- There is no reason to have stddef.h include be MSVC-only.
-
- * wtf/Assertions.h:
-
-2010-10-28 Herczeg Zoltan <zherczeg@webkit.org>
-
- Rubber stamped by Csaba Osztrogonác.
-
- Try to fix interpreter build.
-
- Needed parentheses around assignment to avoid GCC warning after
- http://trac.webkit.org/changeset/70703
-
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
-
-2010-10-28 Peter Varga <pvarga@inf.u-szeged.hu>
-
- Reviewed by Csaba Osztrogonác.
-
- resetAssertionMatches() is an unused function in YARR Interpreter
- https://bugs.webkit.org/show_bug.cgi?id=48503
-
- The resetAssertionMatches() function is removed from YARR Interpreter
- because it's never called.
-
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::resetMatches):
+ * jsc.cpp:
+ (GlobalObject::GlobalObject):
+ (functionRun):
+ (jscmain):
+ * runtime/Arguments.h:
+ (JSC::Arguments::createStructure):
+ * runtime/ArrayPrototype.h:
+ (JSC::ArrayPrototype::createStructure):
+ * runtime/BooleanObject.h:
+ (JSC::BooleanObject::createStructure):
+ * runtime/DateInstance.h:
+ (JSC::DateInstance::createStructure):
+ * runtime/DatePrototype.h:
+ (JSC::DatePrototype::createStructure):
+ * runtime/ErrorInstance.h:
+ (JSC::ErrorInstance::createStructure):
+ * runtime/Executable.h:
+ (JSC::ExecutableBase::createStructure):
+ (JSC::EvalExecutable::createStructure):
+ (JSC::ProgramExecutable::createStructure):
+ (JSC::FunctionExecutable::createStructure):
+ * runtime/FunctionPrototype.h:
+ (JSC::FunctionPrototype::createStructure):
+ * runtime/GetterSetter.h:
+ (JSC::GetterSetter::createStructure):
+ * runtime/InternalFunction.h:
+ (JSC::InternalFunction::createStructure):
+ * runtime/JSAPIValueWrapper.h:
+ (JSC::JSAPIValueWrapper::createStructure):
+ * runtime/JSActivation.h:
+ (JSC::JSActivation::createStructure):
+ * runtime/JSArray.cpp:
+ (JSC::JSArray::JSArray):
+ * runtime/JSArray.h:
+ (JSC::JSArray::createStructure):
+ * runtime/JSByteArray.cpp:
+ (JSC::JSByteArray::createStructure):
+ * runtime/JSByteArray.h:
+ (JSC::JSByteArray::JSByteArray):
+ * runtime/JSCell.h:
+ (JSC::JSCell::JSCell::createDummyStructure):
+ * runtime/JSFunction.h:
+ (JSC::JSFunction::createStructure):
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::storeVPtrs):
+ (JSC::JSGlobalData::JSGlobalData):
+ * runtime/JSGlobalObject.cpp:
+ (JSC::JSGlobalObject::reset):
+ * runtime/JSGlobalObject.h:
+ (JSC::JSGlobalObject::JSGlobalObject):
+ (JSC::JSGlobalObject::createStructure):
+ * runtime/JSNotAnObject.h:
+ (JSC::JSNotAnObject::createStructure):
+ * runtime/JSONObject.h:
+ (JSC::JSONObject::createStructure):
+ * runtime/JSObject.cpp:
+ (JSC::JSObject::createInheritorID):
+ * runtime/JSObject.h:
+ (JSC::JSObject::createStructure):
+ (JSC::JSNonFinalObject::createStructure):
+ (JSC::JSFinalObject::createStructure):
+ (JSC::createEmptyObjectStructure):
+ (JSC::JSObject::inheritorID):
+ * runtime/JSObjectWithGlobalObject.h:
+ (JSC::JSObjectWithGlobalObject::createStructure):
+ * runtime/JSPropertyNameIterator.h:
+ (JSC::JSPropertyNameIterator::createStructure):
+ * runtime/JSStaticScopeObject.h:
+ (JSC::JSStaticScopeObject::createStructure):
+ * runtime/JSString.h:
+ (JSC::RopeBuilder::createStructure):
+ * runtime/JSVariableObject.h:
+ (JSC::JSVariableObject::createStructure):
+ * runtime/JSWrapperObject.h:
+ (JSC::JSWrapperObject::createStructure):
+ * runtime/JSZombie.h:
+ (JSC::JSZombie::createStructure):
+ * runtime/MathObject.h:
+ (JSC::MathObject::createStructure):
+ * runtime/NativeErrorConstructor.cpp:
+ (JSC::NativeErrorConstructor::NativeErrorConstructor):
+ * runtime/NativeErrorConstructor.h:
+ (JSC::NativeErrorConstructor::createStructure):
+ * runtime/NumberConstructor.h:
+ (JSC::NumberConstructor::createStructure):
+ * runtime/NumberObject.h:
+ (JSC::NumberObject::createStructure):
+ * runtime/ObjectConstructor.h:
+ (JSC::ObjectConstructor::createStructure):
+ * runtime/RegExpConstructor.h:
+ (JSC::RegExpConstructor::createStructure):
+ * runtime/RegExpObject.h:
+ (JSC::RegExpObject::createStructure):
+ * runtime/ScopeChain.h:
+ (JSC::ScopeChainNode::createStructure):
+ * runtime/StringObject.h:
+ (JSC::StringObject::createStructure):
+ * runtime/StringObjectThatMasqueradesAsUndefined.h:
+ (JSC::StringObjectThatMasqueradesAsUndefined::createStructure):
+ * runtime/StringPrototype.h:
+ (JSC::StringPrototype::createStructure):
+ * runtime/Structure.h:
+ (JSC::Structure::create):
-2010-10-28 Zoltan Herczeg <zherczeg@webkit.org>
+2011-03-16 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Andreas Kling.
+ Reviewed by Oliver Hunt.
- Wrong instruction form for BKPT
- https://bugs.webkit.org/show_bug.cgi?id=48427
+ Some conservative root gathering cleanup
+ https://bugs.webkit.org/show_bug.cgi?id=56447
+
+ SunSpider says 0.5% - 1.8% faster.
- One '0' is missing from BKPT instruction.
- Thanks for Jacob Bramley for reporting this error.
+ * interpreter/RegisterFile.cpp:
+ (JSC::RegisterFile::gatherConservativeRoots):
+ * interpreter/RegisterFile.h: New helper function for doing the
+ conservative gathering of the register file. It's still conservative,
+ since the register file may contain uninitialized values, but it's
+ moving-safe, because it only visits values tagged as pointers, so there's
+ no risk of mistaking an integer for a pointer and accidentally changing it.
- * assembler/ARMAssembler.h:
+ * runtime/ConservativeSet.cpp:
+ (JSC::ConservativeRoots::add):
+ * runtime/ConservativeSet.h: Added a single-value add function, used above.
-2010-10-28 Xan Lopez <xlopez@igalia.com>
+ * runtime/Heap.cpp:
+ (JSC::Heap::markRoots): Separated machine stack conservative roots from
+ register file conservative roots because machine stack roots must be
+ pinned, but register file roots need not be pinned.
+
+ Adopted new interface for passing the current stack extent to the machine
+ stack root gathering routine. This allows us to exclude marking-related
+ data structures on the stack, and thus avoid double-marking the set of
+ machine roots.
- Try to fix Snow Leopard build.
+ * runtime/MachineStackMarker.cpp:
+ (JSC::MachineThreads::gatherFromCurrentThread):
+ (JSC::MachineThreads::gatherConservativeRoots):
+ * runtime/MachineStackMarker.h: Added new interface, described above.
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::testPrototype):
+ * runtime/MarkedBlock.h:
+ (JSC::MarkedBlock::firstAtom):
+ * wtf/StdLibExtras.h:
+ (WTF::roundUpToMultipleOf): Moved roundUpToMultipleOf so it could be used
+ by MachineStacks.
-2010-10-28 Xan Lopez <xlopez@igalia.com>
+2011-03-16 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
- Do not have two different asCell APIs in JSValue
- https://bugs.webkit.org/show_bug.cgi?id=47979
+ A little bit of MarkStack cleanup
+ https://bugs.webkit.org/show_bug.cgi?id=56443
+
+ Moved MarkStack functions into MarkStack.h/.cpp.
+
+ SunSpider reports no change.
- Remove JSCell* asCell(JSValue) in favor of only using
- JSValue::asCell().
+ * runtime/JSArray.h:
+ * runtime/JSCell.h: Moved from here...
+ * runtime/MarkStack.cpp:
+ (JSC::MarkStack::markChildren):
+ (JSC::MarkStack::drain): ...to here. Also, no need to inline drain. It's
+ a huge function, and not called many times.
- * API/APICast.h:
- (toRef):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::testPrototype):
- * jit/JITStubs.cpp:
- (JSC::JITThunks::tryCachePutByID):
- (JSC::JITThunks::tryCacheGetByID):
- (JSC::DEFINE_STUB_FUNCTION):
- * runtime/GetterSetter.h:
- (JSC::asGetterSetter):
- * runtime/JSByteArray.h:
- (JSC::asByteArray):
- * runtime/JSCell.h:
- (JSC::JSCell::getCallData):
- (JSC::JSCell::getConstructData):
- * runtime/JSString.h:
- (JSC::RopeBuilder::appendValueInConstructAndIncrementLength):
- (JSC::asString):
- * runtime/JSValue.h:
- * runtime/Operations.cpp:
- (JSC::jsIsObjectType):
- * runtime/Operations.h:
- (JSC::normalizePrototypeChain):
- * runtime/Protect.h:
- (JSC::gcProtect):
- (JSC::gcUnprotect):
+ * runtime/MarkStack.h:
+ (JSC::MarkStack::~MarkStack): Moved near constructor, per style guide.
+ (JSC::MarkStack::append):
+ (JSC::MarkStack::deprecatedAppend):
+ (JSC::MarkStack::internalAppend): Moved to here.
-2010-10-27 Chao-ying Fu <fu@mips.com>
+2011-03-15 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
- Support emit_op_mod() for MIPS on JSVALUE32_64
- https://bugs.webkit.org/show_bug.cgi?id=46511
+ Removed another deprecatedAppend
+ https://bugs.webkit.org/show_bug.cgi?id=56429
- This patch uses MIPS div instructions for op_mod to improve performance.
+ * collector/handles/HandleHeap.cpp:
+ (JSC::HandleHeap::markStrongHandles):
+ * collector/handles/HandleHeap.h: Use HeapRootMarker, since handles are
+ marked directly by the Heap.
- * jit/JITArithmetic32_64.cpp:
- (JSC::JIT::emit_op_mod):
-
-2010-10-27 Brent Fulgham <bfulgham@webkit.org>
-
- Unreviewed build correction.
+ * runtime/Heap.cpp:
+ (JSC::Heap::markRoots): Ditto.
- * wtf/Platform.h: Make sure ACCELERATED_COMPOSITING is
- turned off in the WinCairo port. This isn't supported (yet.)
+2011-03-15 Geoffrey Garen <ggaren@apple.com>
-2010-10-27 Chris Rogers <crogers@google.com>
+ Reviewed by Oliver Hunt.
- Reviewed by Chris Marrin.
+ Removed some more deprecated / unsafe append
+ https://bugs.webkit.org/show_bug.cgi?id=56428
- Add ENABLE_WEB_AUDIO feature enable flag (initially disabled) to build-webkit
- https://bugs.webkit.org/show_bug.cgi?id=48279
+ * collector/handles/HandleStack.cpp:
+ (JSC::HandleStack::mark):
+ * collector/handles/HandleStack.h: Mark the handle stack using a HeapRoot
+ marker, since it's a heap root.
+
+ * runtime/ArgList.cpp:
+ (JSC::MarkedArgumentBuffer::markLists):
+ (JSC::MarkedArgumentBuffer::slowAppend):
+ * runtime/ArgList.h: Ditto.
- * Configurations/FeatureDefines.xcconfig:
+ * runtime/Heap.cpp:
+ (JSC::Heap::markRoots): Added a mark call for marking the handle stack.
+ It seems like Oliver forgot this in his last patch. (!)
-2010-10-27 Brian Weinstein <bweinstein@apple.com>
+ * runtime/MarkStack.h: Removed appendSlots, since it would allow an
+ object to embed JSValues directly instead of using WriteBarrier.
- Windows build fix.
+ (JSC::MarkStack::append): Added a private append for a list of values.
- * jit/JITStubs.cpp:
- (JSC::jitThrow):
+ (JSC::HeapRootMarker::mark): Access to the above.
-2010-10-27 Gavin Barraclough <barraclough@apple.com>
+2011-03-15 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
- Bug 48365 - Remove output parameters from JITStackFrame
-
- The JIT stub functions presently use the stackframe to provide a couple of additional return values.
- * In the case of uncaught exceptions the exception value is returned on the stackframe.exception property.
- * In the case of caught exceptions the updated value for the callFrame register is returned on the stackframe.callFrame property.
-
- Change exception returns such that exceptions are always returned on JSGlobalData::exception.
- Change op_catch such that the new CallFrame value is returned from op_throw / vm_throw in regT0.
+ Removed a few more deprecatedAppends, and removed HeapRoot<T>
+ https://bugs.webkit.org/show_bug.cgi?id=56422
+
+ Added HeapRootMarker, a privileged class for marking direct heap roots
+ that are iterated during each garbage collection. This is easier to use
+ and more reliable than HeapRoot<T>, so I've removed HeapRoot<T>.
- * JavaScriptCore.xcodeproj/project.pbxproj:
* debugger/Debugger.cpp:
(JSC::evaluateInGlobalCallFrame):
* debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::evaluate):
- * interpreter/CachedCall.h:
- (JSC::CachedCall::CachedCall):
- (JSC::CachedCall::call):
* interpreter/CallFrame.h:
(JSC::ExecState::exception):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::callEval):
- (JSC::Interpreter::Interpreter):
- (JSC::Interpreter::execute):
- (JSC::Interpreter::executeCall):
- (JSC::Interpreter::executeConstruct):
- (JSC::Interpreter::prepareForRepeatCall):
- (JSC::Interpreter::privateExecute):
- * interpreter/Interpreter.h:
- * jit/JITCode.h:
- (JSC::JITCode::execute):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_catch):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_catch):
* jit/JITStubs.cpp:
- (JSC::ctiTrampoline):
- (JSC::jitThrow):
(JSC::DEFINE_STUB_FUNCTION):
- * jit/JITStubs.h:
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncFilter):
- (JSC::arrayProtoFuncMap):
- (JSC::arrayProtoFuncEvery):
- (JSC::arrayProtoFuncForEach):
- (JSC::arrayProtoFuncSome):
- (JSC::arrayProtoFuncReduce):
- (JSC::arrayProtoFuncReduceRight):
- * runtime/CallData.cpp:
- (JSC::call):
* runtime/Completion.cpp:
- (JSC::evaluate):
- * runtime/ConstructData.cpp:
- (JSC::construct):
- * runtime/ExceptionHelpers.cpp:
- (JSC::createErrorForInvalidGlobalAssignment):
- (JSC::throwOutOfMemoryError):
- (JSC::throwStackOverflowError):
- * runtime/ExceptionHelpers.h:
- * runtime/JSArray.cpp:
- (JSC::JSArray::sort):
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::globalFuncEval):
- * runtime/StringPrototype.cpp:
- (JSC::stringProtoFuncReplace):
+ (JSC::evaluate): exception is no longer a HeapRoot<T>, so no need to
+ call .get() on it.
-2010-10-27 Gabor Loki <loki@webkit.org>
+ * runtime/Heap.cpp:
+ (JSC::Heap::markProtectedObjects):
+ (JSC::Heap::markTempSortVectors):
+ (JSC::Heap::markRoots):
+ * runtime/Heap.h: Updated to use HeapRootMarker.
- Reviewed by Oliver Hunt.
+ * runtime/JSCell.h:
+ (JSC::JSCell::MarkStack::append): Added private functions for
+ HeapRootMarker to use.
- https://bugs.webkit.org/show_bug.cgi?id=48060
- Speed up op_jeq_null and op_jneq_null.
+ * runtime/JSGlobalData.h: exception is no longer a HeapRoot<T>.
- For both opcodes the NullTag and UndefinedTag are checked to control the
- jump. These values can be simply checked by AboveOrEqual or Below
- condition if they are the two highest unsigned integers from JSValue's
- Tag field.
+ * runtime/MarkStack.h:
+ (JSC::HeapRootMarker::HeapRootMarker):
+ (JSC::HeapRootMarker::mark): Added private functions for
+ HeapRootMarker to use.
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_jeq_null):
- (JSC::JIT::emit_op_jneq_null):
- * runtime/JSValue.h:
+ * runtime/SmallStrings.cpp:
+ (JSC::SmallStrings::markChildren): Updated to use HeapRootMarker.
+
+ * runtime/SmallStrings.h:
+ (JSC::SmallStrings::emptyString):
+ (JSC::SmallStrings::singleCharacterString):
+ (JSC::SmallStrings::singleCharacterStrings): Updated to use HeapRootMarker.
-2010-10-25 Geoffrey Garen <ggaren@apple.com>
+ * runtime/WriteBarrier.h: Removed HeapRoot<T>.
+
+2011-03-14 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
- https://bugs.webkit.org/show_bug.cgi?id=41948
- REGRESSION(r60392): Registerfile can be unwound too far following an exception
+ Made the global object moving-GC-safe
+ https://bugs.webkit.org/show_bug.cgi?id=56348
SunSpider reports no change.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::throwException): Walk the stack to calculate the high
- water mark currently in use. It's not safe to assume that the current
- CallFrame's high water mark is the highest high water mark because
- calls do not always set up at the end of a CallFrame. A large caller
- CallFrame can encompass a small callee CallFrame.
-
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTINativeCall):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTINativeCall): Make sure to set a 0 CodeBlock
- in the CallFrame of a host call, like the Interpreter does, instead of
- leaving the CodeBlock field uninitialized. The backtracing code requires
- a valid CodeBlock field in each CallFrame.
-
-2010-10-27 Gabor Loki <loki@webkit.org>
-
- Reviewed by Csaba Osztrogonác.
-
- Add cmn to branch32(reg, imm) on ARM
- https://bugs.webkit.org/show_bug.cgi?id=48062
-
- The conditional comparison can be done with cmn if the imm value is
- negative and can fit into the cmn instruction.
-
- * assembler/MacroAssemblerARM.h:
- (JSC::MacroAssemblerARM::branch32):
-
-2010-10-26 Oliver Hunt <oliver@apple.com>
-
- Interpreter build fix.
-
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
-
-2010-10-25 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- Remove exec and globalData arguments from jsNumber
- https://bugs.webkit.org/show_bug.cgi?id=48270
-
- Remove the now unused exec and globalData arguments from jsNumber
- and mechanically update all users of jsNumber.
-
- * API/JSValueRef.cpp:
- (JSValueMakeNumber):
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::emitLoad):
- * bytecompiler/NodesCodegen.cpp:
- (JSC::ArrayNode::emitBytecode):
- * jit/JITArithmetic.cpp:
- (JSC::JIT::emit_op_mod):
- * jit/JITArithmetic32_64.cpp:
- (JSC::JIT::emit_op_mod):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_jfalse):
- (JSC::JIT::emit_op_jtrue):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * jsc.cpp:
- (functionRun):
- * runtime/Arguments.cpp:
- (JSC::Arguments::getOwnPropertySlot):
- (JSC::Arguments::getOwnPropertyDescriptor):
- * runtime/ArrayConstructor.cpp:
- (JSC::ArrayConstructor::ArrayConstructor):
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncPop):
- (JSC::arrayProtoFuncPush):
- (JSC::arrayProtoFuncShift):
- (JSC::arrayProtoFuncSplice):
- (JSC::arrayProtoFuncUnShift):
- (JSC::arrayProtoFuncFilter):
- (JSC::arrayProtoFuncMap):
- (JSC::arrayProtoFuncEvery):
- (JSC::arrayProtoFuncForEach):
- (JSC::arrayProtoFuncSome):
- (JSC::arrayProtoFuncReduce):
- (JSC::arrayProtoFuncReduceRight):
- (JSC::arrayProtoFuncIndexOf):
- (JSC::arrayProtoFuncLastIndexOf):
- * runtime/BooleanConstructor.cpp:
- (JSC::BooleanConstructor::BooleanConstructor):
- * runtime/CachedTranscendentalFunction.h:
- (JSC::CachedTranscendentalFunction::operator()):
- * runtime/DateConstructor.cpp:
- (JSC::DateConstructor::DateConstructor):
- (JSC::dateParse):
- (JSC::dateNow):
- (JSC::dateUTC):
- * runtime/DateInstance.cpp:
- (JSC::DateInstance::DateInstance):
- * runtime/DatePrototype.cpp:
- (JSC::dateProtoFuncGetFullYear):
- (JSC::dateProtoFuncGetUTCFullYear):
- (JSC::dateProtoFuncGetMonth):
- (JSC::dateProtoFuncGetUTCMonth):
- (JSC::dateProtoFuncGetDate):
- (JSC::dateProtoFuncGetUTCDate):
- (JSC::dateProtoFuncGetDay):
- (JSC::dateProtoFuncGetUTCDay):
- (JSC::dateProtoFuncGetHours):
- (JSC::dateProtoFuncGetUTCHours):
- (JSC::dateProtoFuncGetMinutes):
- (JSC::dateProtoFuncGetUTCMinutes):
- (JSC::dateProtoFuncGetSeconds):
- (JSC::dateProtoFuncGetUTCSeconds):
- (JSC::dateProtoFuncGetMilliSeconds):
- (JSC::dateProtoFuncGetUTCMilliseconds):
- (JSC::dateProtoFuncGetTimezoneOffset):
- (JSC::dateProtoFuncSetTime):
- (JSC::setNewValueFromTimeArgs):
- (JSC::setNewValueFromDateArgs):
- (JSC::dateProtoFuncSetYear):
- (JSC::dateProtoFuncGetYear):
- * runtime/Error.cpp:
- (JSC::addErrorSourceInfo):
- (JSC::addErrorDivotInfo):
- * runtime/ErrorConstructor.cpp:
- (JSC::ErrorConstructor::ErrorConstructor):
- * runtime/FunctionConstructor.cpp:
- (JSC::FunctionConstructor::FunctionConstructor):
- * runtime/FunctionPrototype.cpp:
- (JSC::FunctionPrototype::FunctionPrototype):
- * runtime/JSArray.cpp:
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- * runtime/JSByteArray.cpp:
- (JSC::JSByteArray::JSByteArray):
- * runtime/JSByteArray.h:
- (JSC::JSByteArray::getIndex):
- * runtime/JSFunction.cpp:
- (JSC::JSFunction::JSFunction):
- (JSC::JSFunction::lengthGetter):
- (JSC::JSFunction::getOwnPropertyDescriptor):
* runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::reset):
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::globalFuncParseInt):
- (JSC::globalFuncParseFloat):
- * runtime/JSNumberCell.h:
- (JSC::JSValue::JSValue):
- (JSC::jsNaN):
- (JSC::JSValue::toJSNumber):
- * runtime/JSONObject.cpp:
- (JSC::unwrapBoxedPrimitive):
- (JSC::PropertyNameForFunctionCall::value):
- (JSC::JSONStringify):
- * runtime/JSString.cpp:
- (JSC::JSString::getStringPropertyDescriptor):
- * runtime/JSString.h:
- (JSC::JSString::getStringPropertySlot):
- * runtime/JSValue.h:
- (JSC::jsDoubleNumber):
- (JSC::jsNumber):
- (JSC::jsNaN):
- (JSC::JSValue::JSValue):
- (JSC::JSValue::toJSNumber):
- * runtime/LiteralParser.cpp:
- (JSC::LiteralParser::parse):
- * runtime/MathObject.cpp:
- (JSC::MathObject::MathObject):
- (JSC::mathProtoFuncAbs):
- (JSC::mathProtoFuncACos):
- (JSC::mathProtoFuncASin):
- (JSC::mathProtoFuncATan):
- (JSC::mathProtoFuncATan2):
- (JSC::mathProtoFuncCeil):
- (JSC::mathProtoFuncCos):
- (JSC::mathProtoFuncExp):
- (JSC::mathProtoFuncFloor):
- (JSC::mathProtoFuncLog):
- (JSC::mathProtoFuncMax):
- (JSC::mathProtoFuncMin):
- (JSC::mathProtoFuncPow):
- (JSC::mathProtoFuncRandom):
- (JSC::mathProtoFuncRound):
- (JSC::mathProtoFuncSin):
- (JSC::mathProtoFuncSqrt):
- (JSC::mathProtoFuncTan):
- * runtime/NativeErrorConstructor.cpp:
- (JSC::NativeErrorConstructor::NativeErrorConstructor):
- * runtime/NumberConstructor.cpp:
- (JSC::NumberConstructor::NumberConstructor):
- (JSC::numberConstructorNaNValue):
- (JSC::numberConstructorNegInfinity):
- (JSC::numberConstructorPosInfinity):
- (JSC::numberConstructorMaxValue):
- (JSC::numberConstructorMinValue):
- (JSC::constructWithNumberConstructor):
- (JSC::callNumberConstructor):
- * runtime/NumberPrototype.cpp:
- (JSC::NumberPrototype::NumberPrototype):
- * runtime/ObjectConstructor.cpp:
- (JSC::ObjectConstructor::ObjectConstructor):
- * runtime/Operations.cpp:
- (JSC::jsAddSlowCase):
- * runtime/Operations.h:
- (JSC::jsAdd):
- * runtime/PrototypeFunction.cpp:
- (JSC::PrototypeFunction::PrototypeFunction):
- * runtime/RegExpConstructor.cpp:
- (JSC::RegExpConstructor::RegExpConstructor):
- (JSC::RegExpMatchesArray::fillArrayInstance):
- * runtime/RegExpObject.cpp:
- (JSC::regExpObjectLastIndex):
- * runtime/StringConstructor.cpp:
- (JSC::StringConstructor::StringConstructor):
- * runtime/StringPrototype.cpp:
- (JSC::StringPrototype::StringPrototype):
- (JSC::stringProtoFuncReplace):
- (JSC::stringProtoFuncCharCodeAt):
- (JSC::stringProtoFuncIndexOf):
- (JSC::stringProtoFuncLastIndexOf):
- (JSC::stringProtoFuncSearch):
- (JSC::stringProtoFuncLocaleCompare):
-
-2010-10-25 David Tapuska <dtapuska@rim.com>
-
- Reviewed by David Kilzer.
-
- Enable VFP if our compiler settings indicated we had a hardware
- VFP.
+ (JSC::JSGlobalObject::markChildren): Removed a dubious comment that
+ suggested we do not need to visit all our references during GC, since
+ that is not true in a moving GC.
- https://bugs.webkit.org/show_bug.cgi?id=46096
+ Re-sorted data members by type, removed one duplicate, and added back
+ the one missing mark I found.
- * assembler/MacroAssemblerARM.cpp:
- (JSC::isVFPPresent):
+ * runtime/JSGlobalObject.h: Re-sorted data members by type.
-2010-10-25 Sheriff Bot <webkit.review.bot@gmail.com>
+2011-03-15 Oliver Hunt <oliver@apple.com>
- Unreviewed, rolling out r70451.
- http://trac.webkit.org/changeset/70451
- https://bugs.webkit.org/show_bug.cgi?id=48249
-
- Broke set-unloaded-frame-location.html under Qt (Requested by
- caseq on #webkit).
-
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/text/TextPosition.h: Removed.
-
-2010-10-25 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by David Kilzer.
-
- Replace _countof with WTF_ARRAY_LENGTH
- https://bugs.webkit.org/show_bug.cgi?id=48229
-
- * wtf/Platform.h:
-
-2010-10-25 Peter Rybin <peter.rybin@gmail.com>
+ Reviewed by Geoffrey Garen.
- Reviewed by Adam Barth.
+ Introduce Local<T> to allow us to start moving to precise marking of locals
+ https://bugs.webkit.org/show_bug.cgi?id=56394
- HTML parser should provide script column position within HTML document to JavaScript engine
- https://bugs.webkit.org/show_bug.cgi?id=45271
+ Introduce a new handle type, Local<T> and a scoping mechanism
+ LocalScope to allow us to start moving towards precise marking
+ of temporaries and local variables.
- Adds TextPosition* classes -- a structure that stores line/column/generation
- level coordinates inside text document. Adds *BasedNumber classes -- typesafe int
- wrappers that emphasize whether int number is used as zero-based or
- one-based.
+ We also start to use the new Local<> type in the JSON stringifier
+ so that we can have some coverage of their behaviour in the initial
+ checkin.
* GNUmakefile.am:
* JavaScriptCore.gypi:
+ * JavaScriptCore.pro:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/text/TextPosition.h: Added.
- (WTF::TextPosition::TextPosition):
- (WTF::TextPosition::minimumPosition):
- (WTF::TextPosition::belowRangePosition):
- (WTF::ZeroBasedNumber::fromZeroBasedInt):
- (WTF::ZeroBasedNumber::ZeroBasedNumber):
- (WTF::ZeroBasedNumber::zeroBasedInt):
- (WTF::ZeroBasedNumber::base):
- (WTF::ZeroBasedNumber::belowBase):
- (WTF::OneBasedNumber::fromOneBasedInt):
- (WTF::OneBasedNumber::OneBasedNumber):
- (WTF::OneBasedNumber::oneBasedInt):
- (WTF::OneBasedNumber::convertAsZeroBasedInt):
- (WTF::OneBasedNumber::convertToZeroBased):
- (WTF::OneBasedNumber::base):
- (WTF::OneBasedNumber::belowBase):
- (WTF::toZeroBasedTextPosition):
- (WTF::toOneBasedTextPosition):
- (WTF::ZeroBasedNumber::convertToOneBased):
-
-2010-10-24 Kwang Yul Seo <skyul@company100.net>
-
- Reviewed by David Kilzer.
-
- Check endianness with __BIG_ENDIAN in RVCT.
- https://bugs.webkit.org/show_bug.cgi?id=46122
-
- RVCT defines __BIG_ENDIAN if compiling for a big-endian target.
-
- * wtf/Platform.h:
-
-2010-10-24 Dan Bernstein <mitz@apple.com>
-
- Rubber-stamped by Dave Kilzer.
-
- Removed empty directories.
-
- * JavaScriptCore: Removed.
- * JavaScriptCore/runtime: Removed.
-
-2010-10-24 Patrick Gansterer <paroga@webkit.org>
-
- Unreviewed, fix typo of last build fix.
-
- * wtf/DateMath.cpp:
-
-2010-10-24 Patrick Gansterer <paroga@webkit.org>
-
- Unreviewed build fix for chromium.
-
- * wtf/DateMath.cpp: Added missing include.
-
-2010-10-24 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by David Kilzer.
-
- Add WTF_ARRAY_LENGTH macro to WTF
- https://bugs.webkit.org/show_bug.cgi?id=32828
-
- Unify the different implementations and usages.
-
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * runtime/DatePrototype.cpp:
- (JSC::formatLocaleDate):
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::reset):
+ * collector/handles/Handle.h:
+ (JSC::::asObject):
+ * collector/handles/HandleStack.cpp: Added.
+ (JSC::HandleStack::HandleStack):
+ (JSC::HandleStack::mark):
+ (JSC::HandleStack::grow):
+ * collector/handles/HandleStack.h: Added.
+ (JSC::HandleStack::enterScope):
+ (JSC::HandleStack::zapTo):
+ (JSC::HandleStack::leaveScope):
+ (JSC::HandleStack::push):
+ * collector/handles/Local.h: Added.
+ (JSC::Local::internalSet):
+ (JSC::::Local):
+ (JSC::::operator):
+ (JSC::LocalStack::LocalStack):
+ (JSC::LocalStack::peek):
+ (JSC::LocalStack::pop):
+ (JSC::LocalStack::push):
+ (JSC::LocalStack::isEmpty):
+ (JSC::LocalStack::size):
+ * collector/handles/LocalScope.h: Added.
+ (JSC::LocalScope::LocalScope):
+ (JSC::LocalScope::~LocalScope):
+ (JSC::LocalScope::release):
+ * runtime/Heap.cpp:
+ (JSC::Heap::markRoots):
+ * runtime/Heap.h:
+ (JSC::Heap::allocateLocalHandle):
+ (JSC::Heap::handleStack):
+ * runtime/JSCell.h:
+ (JSC::JSCell::::getString):
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::JSGlobalData):
+ * runtime/JSGlobalData.h:
+ (JSC::JSGlobalData::allocateLocalHandle):
* runtime/JSONObject.cpp:
- (JSC::Stringifier::appendQuotedString):
- (JSC::Stringifier::toJSON):
+ (JSC::Stringifier::Stringifier):
+ (JSC::Stringifier::stringify):
(JSC::Stringifier::appendStringifiedValue):
- * runtime/UString.cpp:
- (JSC::UString::number):
- * wtf/DateMath.cpp:
- (WTF::parseDateFromNullTerminatedCharacters):
- * wtf/StdLibExtras.h:
-
-2010-10-24 Dirk Schulze <krit@webkit.org>
-
- Reviewed by Nikolas Zimmermann.
-
- Filter example Chiseled from SVG Wow! is slow
- https://bugs.webkit.org/show_bug.cgi?id=48174
-
- Added 'using WTF::ByteArray;' at the end of ByteArray.h
-
- * wtf/ByteArray.h:
+ (JSC::Stringifier::Holder::Holder):
+ (JSC::Walker::Walker):
+ (JSC::Walker::walk):
+ (JSC::JSONProtoFuncParse):
+ (JSC::JSONProtoFuncStringify):
+ (JSC::JSONStringify):
+ * runtime/JSONObject.h:
+ * runtime/MarkStack.h:
+ (JSC::MarkStack::appendValues):
+ (JSC::MarkStack::appendSlots):
-2010-10-24 Patrick Gansterer <paroga@webkit.org>
+2011-03-15 Gavin Barraclough <barraclough@apple.com>
- Reviewed by David Kilzer.
+ Rubber Stamped by Sam Weinig.
- Inline WTF::bitwise_cast and fix style
- https://bugs.webkit.org/show_bug.cgi?id=48208
+ Bug 56420 - Remove ENABLE(JIT) code from ByteCompiler
+ Some methods have unnecessary differences in name/arguments for interpreter/JIT.
- * wtf/StdLibExtras.h:
- (WTF::bitwise_cast):
- (WTF::bitCount):
+ * bytecode/CodeBlock.cpp:
+ * bytecode/CodeBlock.h:
+ (JSC::HandlerInfo::HandlerInfo):
+ (JSC::CodeBlock::addPropertyAccessInfo):
+ (JSC::CodeBlock::addGlobalResolveInfo):
+ (JSC::CodeBlock::addCallLinkInfo):
+ (JSC::CodeBlock::globalResolveInfo):
+ * bytecode/Opcode.h:
+ * bytecode/StructureStubInfo.h:
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::emitResolve):
+ (JSC::BytecodeGenerator::emitResolveWithBase):
+ (JSC::BytecodeGenerator::emitGetById):
+ (JSC::BytecodeGenerator::emitPutById):
+ (JSC::BytecodeGenerator::emitDirectPutById):
+ (JSC::BytecodeGenerator::emitCall):
+ (JSC::BytecodeGenerator::emitConstruct):
+ (JSC::BytecodeGenerator::emitCatch):
-2010-10-23 Xan Lopez <xlopez@igalia.com>
+2011-03-15 Gavin Barraclough <barraclough@apple.com>
Reviewed by Sam Weinig.
- Unify globalData APIs
- https://bugs.webkit.org/show_bug.cgi?id=47969
+ Fix broken assert in new code.
- Make JSGlobalObject::globalData return a reference and adapt
- callers. This unifies the API with the existing
- CallFrame::globalData, which also returns a reference.
+ * dfg/DFGAliasTracker.h:
+ (JSC::DFG::AliasTracker::recordPutByVal):
+ - recordPutByVal is called for both PutByVal & PutByValAlias.
- * debugger/Debugger.cpp:
- (JSC::evaluateInGlobalCallFrame):
- * interpreter/CallFrame.h:
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::dumpRegisters):
- * jsc.cpp:
- (runWithScripts):
- * parser/JSParser.cpp:
- (JSC::jsParse):
- * parser/Parser.cpp:
- (JSC::Parser::parse):
- * parser/Parser.h:
- (JSC::Parser::parse):
- * runtime/Error.cpp:
- (JSC::createError):
- (JSC::createEvalError):
- (JSC::createRangeError):
- (JSC::createReferenceError):
- (JSC::createSyntaxError):
- (JSC::createTypeError):
- (JSC::createURIError):
- * runtime/FunctionConstructor.cpp:
- (JSC::constructFunction):
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::~JSGlobalObject):
- (JSC::JSGlobalObject::markChildren):
- * runtime/JSGlobalObject.h:
- (JSC::JSGlobalObject::globalData):
-
-2010-10-23 Dimitri Glazkov <dglazkov@chromium.org>
+2011-03-15 Gavin Barraclough <barraclough@apple.com>
- Unreviewed, rolling out r70369.
- http://trac.webkit.org/changeset/70369
- https://bugs.webkit.org/show_bug.cgi?id=47974
+ Rubber stamped by Sam Weinig.
- Caused weird artifacts in expected results.
+ Removed redundant code from BytecodeGenerator.
- * wtf/Platform.h:
+ * bytecompiler/BytecodeGenerator.cpp:
+ * bytecompiler/BytecodeGenerator.h:
+ - delete uncalled code missed when reparsing was removed.
-2010-10-23 Martin Robinson <mrobinson@igalia.com>
+2011-03-15 Kevin Ollivier <kevino@theolliviers.com>
- Reviewed by Xan Lopez.
+ Reviewed by Darin Adler.
- Crashes randomly in cairo_scaled_font_destroy
- https://bugs.webkit.org/show_bug.cgi?id=46794
+ Introduce WTF_USE_EXPORT_MACROS, which will allow us to put shared library import/export
+ info into the headers rather than in export symbol definition files, but disable it on
+ all platforms initially so we can deal with port build issues one port at a time.
+
+ https://bugs.webkit.org/show_bug.cgi?id=27551
- Make PlatformRefPtr aware of hashTableDeletedValue. When PlatformRefPtr
- goes away this should probably be handled in the future via some special
- hooks in RefCounted (or its contained type).
+ * API/JSBase.h:
+ * config.h:
+ * wtf/Assertions.h:
+ * wtf/ExportMacros.h: Added.
+ * wtf/Platform.h:
- * wtf/PlatformRefPtr.h:
- (WTF::PlatformRefPtr::~PlatformRefPtr):
- (WTF::PlatformRefPtr::clear):
- (WTF::::operator):
+2011-03-14 Laszlo Gombos <laszlo.1.gombos@nokia.com>
-2010-10-22 Adam Roben <aroben@apple.com>
+ Unreviewed build fix.
- Remove the QuartzCorePresent.h mechanism
+ Buildfix when JIT is not enabled after r81079
+ https://bugs.webkit.org/show_bug.cgi?id=56361
- This header was used to detect whether QuartzCore headers were present
- on the system. Everyone should have these headers now so we no longer
- need to detect.
+ * runtime/Executable.cpp:
- Reviewed by Sam Weinig.
+2011-03-14 Geoffrey Garen <ggaren@apple.com>
- * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh: Remove
- code to generate QuartzCorePresent.h.
+ Reviewed by Oliver Hunt.
- * wtf/Platform.h: Stop including QuartzCorePresent.h on Windows and
- collapse all USE_ACCELERATED_COMPOSITING settings into one #ifdef.
+ Made the global object moving-GC-safe
+ https://bugs.webkit.org/show_bug.cgi?id=56348
+
+ SunSpider reports no change.
-2010-10-22 Adam Barth <abarth@webkit.org>
+ * runtime/JSGlobalObject.cpp:
+ (JSC::JSGlobalObject::markChildren): Removed a dubious comment that
+ suggested we do not need to visit all our references during GC, since
+ that is not true in a moving GC.
- Unreviewed, rolling out r70290.
- http://trac.webkit.org/changeset/70290
- https://bugs.webkit.org/show_bug.cgi?id=48111
+ Re-sorted data members by type, removed one duplicate, and added back
+ the one missing mark I found.
- Undelete Android build files.
+ * runtime/JSGlobalObject.h: Re-sorted data members by type.
- * Android.mk: Added.
+2011-03-14 Geoffrey Garen <ggaren@apple.com>
-2010-10-22 Zoltan Herczeg <zherczeg@webkit.org>
+ Reviewed by Oliver Hunt.
- Reviewed by Csaba Osztrogonác.
+ Made JSWrapperObject and subclasses moving-GC-safe
+ https://bugs.webkit.org/show_bug.cgi?id=56346
+
+ SunSpider reports no change.
- JSC interpreter regressions after r69940
- https://bugs.webkit.org/show_bug.cgi?id=47839
+ * runtime/BooleanObject.cpp:
+ (JSC::BooleanObject::BooleanObject):
+ * runtime/DateInstance.cpp:
+ (JSC::DateInstance::DateInstance): No more need for JSGlobalData, since
+ we don't initialize the wrapped value in our constructor.
- Wrong "if": It should test whether the result exists,
- and not the opposite. It is an interpreter bug, hence
- the bots does not capture it.
+ * runtime/DateInstance.h: Don't set the OverridesMarkChildren flag because
+ we do not in fact override markChildren.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::resolveBase):
+ * runtime/DatePrototype.h: Declare an anonymous slot, since wrapper object
+ no longer does so for us. Also added an ASSERT to catch a latent bug,
+ where DatePrototype stomped on its base class's anonymous slot. Hard-coded
+ anonymous slots are a plague on our code. This doesn't cause any problems
+ in our existing code since the base class never reads the anonymous slot
+ it declares, but it caused crashes when I tried to start using the slot
+ in an initial version of this patch.
-2010-10-21 Adam Barth <abarth@webkit.org>
+ * runtime/JSWrapperObject.h:
+ (JSC::JSWrapperObject::JSWrapperObject):
+ (JSC::JSWrapperObject::internalValue):
+ (JSC::JSWrapperObject::setInternalValue): Resolved a problem where
+ our internal value was stored in two places: an anonymous slot, and a
+ data member which was not always visited during GC. Now, we only use the
+ data member, and we always visit it. (Instead of relying on certain
+ subclasses to set the OverridesMarkChildren bit, we set it ourselves.)
- Reviewed by David Levin.
+ * runtime/NumberObject.cpp:
+ (JSC::NumberObject::NumberObject): No more need for JSGlobalData, since
+ we don't initialize the wrapped value in our constructor.
- Remove Android build system
- https://bugs.webkit.org/show_bug.cgi?id=48111
+ * runtime/NumberObject.h: Removed meaningless declaration.
- * Android.mk: Removed.
+ * runtime/StringObject.cpp:
+ (JSC::StringObject::StringObject): No more need for JSGlobalData, since
+ we don't initialize the wrapped value in our constructor.
-2010-10-21 Kwang Yul Seo <skyul@company100.net>
+ * runtime/StringObject.h: Don't set the OverridesMarkChildren flag because
+ we do not in fact override markChildren.
- Reviewed by Kent Tamura.
+ * runtime/StringPrototype.h: Declare an anonymous slot, since wrapper object
+ no longer does so for us. Also added an ASSERT to catch a latent bug,
+ where DatePrototype stomped on its base class's anonymous slot. Hard-coded
+ anonymous slots are a plague on our code.
- [BREWMP] Add a String constructor which takes AECHAR*
- https://bugs.webkit.org/show_bug.cgi?id=45043
+2011-03-14 Michael Saboff <msaboff@apple.com>
- Add String(const AECHAR*) constructor for convenience.
+ Reviewed by Gavin Barraclough.
- * wtf/text/WTFString.h:
+ Look-ahead assertions with back references don’t work as expected
+ https://bugs.webkit.org/show_bug.cgi?id=56082
-2010-10-21 Carlos Garcia Campos <cgarcia@igalia.com>
+ Changed parentheses assertion processing to temporarily back out the
+ number of known characters after the assertion while processing the
+ assertion. This was done so that assertions don't fail due to
+ checking the number of required characters as additional to the
+ rest of the express since assertions don't "consume" input.
+ Added a byte code to uncheck characters to support the change.
- Reviewed by Martin Robinson.
+ * yarr/YarrInterpreter.cpp:
+ (JSC::Yarr::Interpreter::matchDisjunction):
+ (JSC::Yarr::ByteCompiler::uncheckInput):
+ (JSC::Yarr::ByteCompiler::emitDisjunction):
+ * yarr/YarrInterpreter.h:
+ (JSC::Yarr::ByteTerm::UncheckInput):
- [GTK] Use GCharsetConverter instead of g_iconv in TextCodecGtk
- https://bugs.webkit.org/show_bug.cgi?id=47896
+2011-03-14 Viatcheslav Ostapenko <ostapenko.viatcheslav@nokia.com>
- * wtf/gobject/GTypedefs.h:
+ Reviewed by Laszlo Gombos.
-2010-10-21 Adam Barth <abarth@webkit.org>
+ [Qt] Warning that round/roundf functions are already defined when compiled with RVCT 4 on symbian.
+ https://bugs.webkit.org/show_bug.cgi?id=56133
- Unreviewed, rolling out r70174.
- http://trac.webkit.org/changeset/70174
- https://bugs.webkit.org/show_bug.cgi?id=41948
+ Add condition to not compile webkit internal math round functions on RVCT compiler versions
+ from 3.0.0 because they are already defined in compiler math library.
- This patch reverts a change that causes
- http/tests/xmlhttprequest/origin-whitelisting-removal.html to crash.
+ * wtf/MathExtras.h:
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::throwException):
+2011-03-14 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Geoffrey Garen & Oliver Hunt.
+
+ Bug 56284 - Add a dataflow intermediate representation for use in JIT generation.
+
+ The JSC JIT presently generates code directly from the bytecode used by the interpreter.
+ This is not an optimal intermediate representation for JIT code generation, since it does
+ not capture liveness information of values, and provides little opportunity to perform
+ any static analysis for even primitive types. The JIT currently generates two code paths,
+ a fast path handling common cases, and a slower path handling less common operand types.
+ However the slow path jumps back into the fast path, meaning that information arising
+ from the earlier type checks cannot be propagated to later operations.
+
+ This patch adds:
+ * a dataflow intermediate representation capable of describing a single basic block
+ of operations,
+ * a mechanism to convert a simple, single-block bytecode functions to the new IR,
+ * and a JIT code generator capable of generating code from this representation.
+
+ The JIT generates two code paths, with the slower path not reentering the fast path
+ mid-block, allowing speculative optimizations to be made on the hot path, with type
+ information arising from these speculative decisions able to be propagated through the
+ dataflow. Code generation of both speculative and non-speculative paths exploits the type
+ and liveness information represented in the dataflow graph to attempt to avoid redundant
+ boxing and type-checking of values, and to remove unnecessary spills of temporary values
+ to the RegisterFile.
+
+ The dataflow JIT currently can only support a subset of bytecode operations, limited to
+ arithmetic, bit-ops, and basic property access. Functions that cannot be compiled by the
+ dataflow JIT will be run using the existing JIT. The coverage of the dataflow JIT will be
+ expanded to include, control-flow, function calls, and then the long-tail of remaining
+ bytecode instructions. The JIT presently only support JSVALUE64, and as a consequence of
+ this only supports x86-64.
+
+ The status of the dataflow JIT is currently work-in-progress. Limitations of the present
+ JIT code generation may cause performance regressions, particularly:
+ * the policy to only generate arithmetic code on the speculative path using integer
+ instructions, never using floating point.
+ * the policy to only generate arithmetic code on the non-speculative path using
+ floating point instructions, never using integer.
+ * always generating JSValue adds on the non-speculative path as a call out to a
+ C-function, never handling this in JIT code.
+ * always assuming by-Value property accesses on the speculative path to be array
+ accesses.
+ * generating all by-Value property accesses from the non-speculative path as a call
+ out to a C-function.
+ * generating all by-Indentifer property accesses as a call out to a C-function.
+ Due to these regressions, the code is landed in a state where it is disabled in most
+ cases by the ENABLE_DFG_JIT_RESTRICTIONS guard in Platform.h. As these regressions are
+ addressed, the JIT will be allowed to trigger in more cases.
-2010-10-20 Simon Fraser <simon.fraser@apple.com>
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ - Added new files to Xcode project.
+ * dfg: Added.
+ - Added directory for new code.
+ * dfg/DFGByteCodeParser.cpp: Added.
+ * dfg/DFGByteCodeParser.h: Added.
+ - Contruct a DFG::Graph representation from a bytecode CodeBlock.
+ * dfg/DFGGenerationInfo.h: Added.
+ - Track type & register information for VirtualRegisters during JIT code generation.
+ * dfg/DFGGraph.cpp: Added.
+ * dfg/DFGGraph.h: Added.
+ - Dataflow graph intermediate representation for code generation.
+ * dfg/DFGJITCodeGenerator.cpp: Added.
+ * dfg/DFGJITCodeGenerator.h: Added.
+ - Base class for SpeculativeJIT & NonSpeculativeJIT to share common functionality.
+ * dfg/DFGJITCompiler.cpp: Added.
+ * dfg/DFGJITCompiler.h: Added.
+ - Class responsible for driving code generation of speculativeJIT & non-speculative
+ code paths from the dataflow graph.
+ * dfg/DFGNonSpeculativeJIT.cpp: Added.
+ * dfg/DFGNonSpeculativeJIT.h: Added.
+ - Used to generate the non-speculative code path, this make no assumptions
+ about operand types.
+ * dfg/DFGOperations.cpp: Added.
+ * dfg/DFGOperations.h: Added.
+ - Helper functions called from the JIT generated code.
+ * dfg/DFGRegisterBank.h: Added.
+ - Used to track contents of physical registers during JIT code generation.
+ * dfg/DFGSpeculativeJIT.cpp: Added.
+ * dfg/DFGSpeculativeJIT.h: Added.
+ - Used to generate the speculative code path, this make assumptions about
+ operand types to enable optimization.
+ * runtime/Executable.cpp:
+ - Add code to attempt to use the DFG JIT to compile a function, with fallback
+ to the existing JIT.
+ * wtf/Platform.h:
+ - Added compile guards to enable the DFG JIT.
- Fix the EFL build.
+2011-03-14 Geoffrey Garen <ggaren@apple.com>
- * wtf/CMakeLists.txt:
+ Reviewed by Oliver Hunt.
-2010-10-20 Simon Fraser <simon.fraser@apple.com>
+ Removed more cases of DeprecatedPtr (exception, SmallStrings)
+ https://bugs.webkit.org/show_bug.cgi?id=56332
- Fix Windows build: export needed symbols.
+ * runtime/Identifier.cpp:
+ (JSC::Identifier::add):
+ (JSC::Identifier::addSlowCase): Use a variable instead of a hard-coded
+ constant, to make this code less brittle.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * runtime/JSGlobalData.h: Use HeapRoot instead of DeprecatedPtr because
+ this reference is owned and managed directly by the heap.
-2010-10-19 Simon Fraser <simon.fraser@apple.com>
+ * runtime/JSString.cpp:
+ (JSC::JSString::substringFromRope):
+ * runtime/JSString.h:
+ (JSC::jsSingleCharacterString):
+ (JSC::jsSingleCharacterSubstring):
+ (JSC::jsString):
+ (JSC::jsStringWithFinalizer):
+ (JSC::jsSubstring):
+ (JSC::jsOwnedString): Use a variable instead of a hard-coded
+ constant, to make this code less brittle.
- Reviewed by Gavin Barraclough.
+ * runtime/SmallStrings.cpp:
+ (JSC::SmallStringsStorage::rep):
+ (JSC::SmallStringsStorage::SmallStringsStorage):
+ (JSC::SmallStrings::SmallStrings):
+ (JSC::SmallStrings::markChildren):
+ (JSC::SmallStrings::clear):
+ (JSC::SmallStrings::count): Use a variable instead of a hard-coded
+ constant, to make this code less brittle.
- https://bugs.webkit.org/show_bug.cgi?id=47851
-
- Add methods to DecimalNumber to return the buffer length
- required for decimal and exponential output.
-
- Make some of the DecimalNumber code non-inline (no
- effect on Sunspider), adding DecimalNumber.cpp to various
- build systems.
+ * runtime/SmallStrings.h:
+ (JSC::SmallStrings::singleCharacterString): Use HeapRoot instead of
+ DeprecatedPtr because these references are owned and managed directly by
+ the heap.
- Make some DecimalNumber methods 'const'.
-
- * Android.mk:
- * Android.v8.wtf.mk:
- * GNUmakefile.am:
- * JavaScriptCore.exp:
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/NumberPrototype.cpp:
- (JSC::numberProtoFuncToExponential):
- (JSC::numberProtoFuncToFixed):
- (JSC::numberProtoFuncToPrecision):
- * wtf/DecimalNumber.cpp: Added.
- (WTF::DecimalNumber::bufferLengthForStringDecimal):
- (WTF::DecimalNumber::bufferLengthForStringExponential):
- (WTF::DecimalNumber::toStringDecimal):
- (WTF::DecimalNumber::toStringExponential):
- * wtf/DecimalNumber.h:
- (WTF::DecimalNumber::sign):
- (WTF::DecimalNumber::exponent):
- (WTF::DecimalNumber::significand):
- (WTF::DecimalNumber::precision):
- * wtf/dtoa.cpp:
- (WTF::dtoa):
- * wtf/dtoa.h:
- * wtf/wtf.pri:
-
-2010-10-20 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r70165.
- http://trac.webkit.org/changeset/70165
- https://bugs.webkit.org/show_bug.cgi?id=48007
-
- It broke tests on Qt bot (Requested by Ossy on #webkit).
-
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/text/TextPosition.h: Removed.
-
-2010-10-20 Brian Weinstein <bweinstein@apple.com>
+ Stop using FixedArray because we only want a very limited set
+ of classes to be able to use HeapRoot. (Replaced with manual ASSERTs.)
- Reviewed by Adam Roben.
-
- Fix the Windows build after r70165. Move the copying of JavaScript headers from JavaScriptCore's post-build
- step to JavaScriptCoreGenerated, so the copying is done even when a cpp file in JavaScriptCore is changed.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
+ * runtime/WriteBarrier.h:
+ (JSC::operator==):
+ (JSC::WriteBarrier::WriteBarrier):
+ (JSC::HeapRoot::HeapRoot):
+ (JSC::HeapRoot::operator=): Added HeapRoot, which is allowed to set
+ without write barrier because we assume all HeapRoots are scanned during
+ all GC passes.
-2010-10-20 Dumitru Daniliuc <dumi@chromium.org>
+2011-03-14 Brian Weinstein <bweinstein@apple.com>
- Unreviewed, fixing the Win build.
+ Reviewed by Adam Roben and Gavin Barraclough.
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
+ FileSystemWin.cpp needs listDirectory() implementation
+ https://bugs.webkit.org/show_bug.cgi?id=56331
+ <rdar://problem/9126635>
+
+ Give StringConcatenate the ability to deal with const UChar*'s as a String type to append.
-2010-10-20 Geoffrey Garen <ggaren@apple.com>
+ * wtf/text/StringConcatenate.h:
- Reviewed by Darin Adler.
-
- https://bugs.webkit.org/show_bug.cgi?id=41948
- REGRESSION(r60392): Registerfile can be unwound too far following an exception
+2011-03-14 Mark Rowe <mrowe@apple.com>
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::throwException): Walk the stack to calculate the high
- water mark currently in use. It's not safe to assume that the current
- CallFrame's high water mark is the highest high water mark because
- calls do not always set up at the end of a CallFrame. A large caller
- CallFrame can encompass a small callee CallFrame.
+ Reviewed by Oliver Hunt.
-2010-10-20 Peter Rybin <peter.rybin@gmail.com>
+ <http://webkit.org/b/56304> REGRESSION(r80892): 100,000+ leaks seen on the build bot
- Reviewed by Adam Barth.
+ * API/JSClassRef.cpp:
+ (OpaqueJSClass::OpaqueJSClass): Don't leak any existing entry for the given name if
+ the class definition contains duplicates. This also removes what look to be leaks
+ of the StringImpl instances that are used as keys: the HashMap key type is a RefPtr
+ which retains / releases the instances at the appropriate time, so explicitly calling
+ ref is not necessary.
- HTML parser should provide script column position within HTML document to JavaScript engine
- https://bugs.webkit.org/show_bug.cgi?id=45271
+2011-03-14 Oliver Hunt <oliver@apple.com>
- Adds TextPosition* classes -- a structure that stores line/column/generation
- level coordinates inside text document. Adds *BasedNumber classes -- typesafe int
- wrappers that emphasize whether int number is used as zero-based or
- one-based.
+ Fix windows build
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/text/TextPosition.h: Added.
- (WTF::TextPosition::TextPosition):
- (WTF::TextPosition::minimumPosition):
- (WTF::TextPosition::belowRangePosition):
- (WTF::ZeroBasedNumber::fromZeroBasedInt):
- (WTF::ZeroBasedNumber::ZeroBasedNumber):
- (WTF::ZeroBasedNumber::zeroBasedInt):
- (WTF::ZeroBasedNumber::base):
- (WTF::ZeroBasedNumber::belowBase):
- (WTF::OneBasedNumber::fromOneBasedInt):
- (WTF::OneBasedNumber::OneBasedNumber):
- (WTF::OneBasedNumber::oneBasedInt):
- (WTF::OneBasedNumber::convertAsZeroBasedInt):
- (WTF::OneBasedNumber::convertToZeroBased):
- (WTF::OneBasedNumber::base):
- (WTF::OneBasedNumber::belowBase):
- (WTF::toZeroBasedTextPosition):
- (WTF::toOneBasedTextPosition):
- (WTF::ZeroBasedNumber::convertToOneBased):
-
-2010-10-19 Kwang Yul Seo <skyul@company100.net>
-
- Reviewed by David Kilzer.
-
- [BREWMP] Turn off JIT for simulator build
- https://bugs.webkit.org/show_bug.cgi?id=47937
-
- We don't need to test x86 JIT.
+ * jit/JSInterfaceJIT.h:
+ (JSC::JSInterfaceJIT::emitLoadInt32):
+ (JSC::JSInterfaceJIT::tagFor):
+ (JSC::JSInterfaceJIT::payloadFor):
+ (JSC::JSInterfaceJIT::intPayloadFor):
+ (JSC::JSInterfaceJIT::intTagFor):
+ (JSC::JSInterfaceJIT::addressFor):
- * wtf/Platform.h:
+2011-03-11 Oliver Hunt <oliver@apple.com>
-2010-10-19 Oliver Hunt <oliver@apple.com>
+ Reviewed by Gavin Barraclough.
- Reviewed by Geoffrey Garen.
+ Ensure all values are correctly tagged in the registerfile
+ https://bugs.webkit.org/show_bug.cgi?id=56214
- Remove support for JSVALUE32 from JSC
- https://bugs.webkit.org/show_bug.cgi?id=47948
+ This patch makes sure that all JSCell pointers written to
+ the registerfile are correctly tagged as JSCells, and replaces
+ raw int usage with the immediate representation.
- Remove all the code for supporting JSVALUE32 from JSC.
+ For performance, register pressure, and general saneness reasons
+ I've added abstractions for reading and writing the tag
+ and payload of integer registers directly for the JSVALUE64
+ encoding.
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- (JSC::JIT::privateCompileSlowCases):
+ * interpreter/Register.h:
+ (JSC::Register::withInt):
+ (JSC::Register::withCallee):
+ (JSC::Register::operator=):
+ (JSC::Register::i):
+ (JSC::Register::activation):
+ (JSC::Register::function):
+ (JSC::Register::propertyNameIterator):
+ (JSC::Register::scopeChain):
* jit/JIT.h:
- * jit/JITArithmetic.cpp:
- (JSC::JIT::emit_op_lshift):
- (JSC::JIT::emitSlow_op_lshift):
- (JSC::JIT::emit_op_rshift):
- (JSC::JIT::emitSlow_op_rshift):
- (JSC::JIT::emit_op_urshift):
- (JSC::JIT::emitSlow_op_urshift):
- (JSC::JIT::emit_op_jnless):
- (JSC::JIT::emitSlow_op_jnless):
- (JSC::JIT::emit_op_jless):
- (JSC::JIT::emitSlow_op_jless):
- (JSC::JIT::emit_op_jlesseq):
- (JSC::JIT::emitSlow_op_jlesseq):
- (JSC::JIT::emit_op_bitand):
- (JSC::JIT::emit_op_post_inc):
- (JSC::JIT::emit_op_post_dec):
- (JSC::JIT::emit_op_pre_inc):
- (JSC::JIT::emit_op_pre_dec):
- (JSC::JIT::emit_op_mod):
- (JSC::JIT::emitSlow_op_mod):
* jit/JITCall.cpp:
+ (JSC::JIT::compileOpCallInitializeCallFrame):
+ (JSC::JIT::compileOpCallVarargs):
+ (JSC::JIT::compileOpCall):
+ * jit/JITCall32_64.cpp:
+ (JSC::JIT::compileOpCallInitializeCallFrame):
+ (JSC::JIT::compileOpCallVarargs):
+ (JSC::JIT::compileOpCall):
+ (JSC::JIT::compileOpCallSlowCase):
* jit/JITInlineMethods.h:
- (JSC::JIT::emitGetFromCallFrameHeaderPtr):
- (JSC::JIT::emitGetFromCallFrameHeader32):
+ (JSC::JIT::emitPutToCallFrameHeader):
+ (JSC::JIT::emitPutCellToCallFrameHeader):
+ (JSC::JIT::emitPutIntToCallFrameHeader):
* jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_loop_if_lesseq):
- (JSC::JIT::emit_op_bitnot):
+ (JSC::JIT::privateCompileCTINativeCall):
+ (JSC::JIT::emit_op_get_pnames):
+ (JSC::JIT::emit_op_next_pname):
+ (JSC::JIT::emit_op_load_varargs):
+ (JSC::JIT::emitSlow_op_load_varargs):
+ * jit/JITOpcodes32_64.cpp:
+ (JSC::JIT::privateCompileCTINativeCall):
+ (JSC::JIT::emit_op_get_pnames):
(JSC::JIT::emit_op_next_pname):
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::emit_op_get_by_val):
- (JSC::JIT::emit_op_put_by_val):
- * jit/JITStubs.h:
* jit/JSInterfaceJIT.h:
+ (JSC::JSInterfaceJIT::intPayloadFor):
+ (JSC::JSInterfaceJIT::intTagFor):
* jit/SpecializedThunkJIT.h:
+ (JSC::SpecializedThunkJIT::returnJSValue):
(JSC::SpecializedThunkJIT::returnDouble):
- (JSC::SpecializedThunkJIT::tagReturnAsInt32):
- * jit/ThunkGenerators.cpp:
- (JSC::sqrtThunkGenerator):
- (JSC::powThunkGenerator):
- * runtime/Collector.cpp:
- (JSC::isPossibleCell):
- (JSC::typeName):
- * runtime/JSCell.h:
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- * runtime/JSGlobalData.h:
- * runtime/JSGlobalObject.h:
- (JSC::Structure::prototypeForLookup):
- * runtime/JSImmediate.h:
- (JSC::reinterpretIntptrToDouble):
- (JSC::JSImmediate::isIntegerNumber):
- (JSC::JSImmediate::isDouble):
- (JSC::JSImmediate::areBothImmediateIntegerNumbers):
- (JSC::JSImmediate::makeDouble):
- (JSC::JSImmediate::doubleValue):
- (JSC::JSImmediate::toBoolean):
- (JSC::JSImmediate::fromNumberOutsideIntegerRange):
- (JSC::JSImmediate::from):
- (JSC::JSImmediate::toDouble):
- (JSC::JSFastMath::rightShiftImmediateNumbers):
- * runtime/JSNumberCell.cpp:
- * runtime/JSNumberCell.h:
- * runtime/JSObject.h:
- (JSC::JSObject::JSObject):
- * runtime/JSValue.h:
- * runtime/NumberObject.h:
- * wtf/Platform.h:
+ (JSC::SpecializedThunkJIT::returnInt32):
+ (JSC::SpecializedThunkJIT::returnJSCell):
-2010-10-19 Csaba Osztrogonác <ossy@webkit.org>
-
- Reviewed by Geoffrey Garen.
-
- BytecodeGenerator::m_lastOpcodePosition must be initialized in all constructors
- https://bugs.webkit.org/show_bug.cgi?id=47920
-
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator): Add missing member initialization.
-
-2010-10-19 Kwang Yul Seo <skyul@company100.net>
-
- Reviewed by David Kilzer.
-
- RVCT fails to compile DateMath.cpp due to overloaded function pow
- https://bugs.webkit.org/show_bug.cgi?id=47844
-
- Choose std::pow(double, double) among multiple overloaded pow functions
- to fix build for RVCT.
-
- * wtf/DateMath.cpp:
- (WTF::parseES5DateFromNullTerminatedCharacters):
-
-2010-10-19 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by David Kilzer.
-
- Use UChar instead of wchar_t in UnicodeWinCE
- https://bugs.webkit.org/show_bug.cgi?id=47904
-
- Make UnicodeWinCE more portable, so we can use it for other ports too.
-
- * wtf/unicode/wince/UnicodeWinCE.cpp:
- (WTF::Unicode::toLower):
- (WTF::Unicode::toUpper):
- (WTF::Unicode::foldCase):
- (WTF::Unicode::isPrintableChar):
- (WTF::Unicode::isSpace):
- (WTF::Unicode::isLetter):
- (WTF::Unicode::isUpper):
- (WTF::Unicode::isLower):
- (WTF::Unicode::isDigit):
- (WTF::Unicode::isPunct):
- (WTF::Unicode::isAlphanumeric):
- (WTF::Unicode::toTitleCase):
- (WTF::Unicode::mirroredChar):
- (WTF::Unicode::digitValue):
- * wtf/unicode/wince/UnicodeWinCE.h:
- (WTF::Unicode::isSeparatorSpace):
- (WTF::Unicode::isHighSurrogate):
- (WTF::Unicode::isLowSurrogate):
- (WTF::Unicode::umemcasecmp):
- (WTF::Unicode::surrogateToUcs4):
-
-2010-10-19 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by Andreas Kling.
-
- Fix style of UnicodeWinCE
- https://bugs.webkit.org/show_bug.cgi?id=47818
-
- * wtf/unicode/wince/UnicodeWinCE.cpp:
- (WTF::Unicode::toLower):
- (WTF::Unicode::toUpper):
- * wtf/unicode/wince/UnicodeWinCE.h:
-
-2010-10-18 Xan Lopez <xlopez@igalia.com>
-
- Reviewed by Martin Robinson.
-
- * GNUmakefile.am: add missing file.
-
-2010-10-18 Oliver Hunt <oliver@apple.com>
+2011-03-13 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
- Strict mode: Functions created with the function constructor don't implement strict mode semantics
- https://bugs.webkit.org/show_bug.cgi?id=47860
-
- When creating the FunctionExecutable for a new function the function constructor
- was always passing false for whether or not a function was strict, rather than
- using the information from the freshly parsed function itself.
-
- * runtime/Executable.cpp:
- (JSC::FunctionExecutable::fromGlobalCode):
-
-2010-10-18 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Darin Adler.
-
- Strict mode: |this| should be undefined if it is not explicitly provided
- https://bugs.webkit.org/show_bug.cgi?id=47833
-
- To make strict mode behave correctly we want to pass undefined instead of null
- as the default this value. This has no impact on behaviour outside of strict
- mode as both values are replaced with the global object if necessary.
-
- * bytecompiler/NodesCodegen.cpp:
- (JSC::FunctionCallValueNode::emitBytecode):
- (JSC::FunctionCallResolveNode::emitBytecode):
- (JSC::CallFunctionCallDotNode::emitBytecode):
- (JSC::ApplyFunctionCallDotNode::emitBytecode):
-
-
-2010-10-18 Darin Adler <darin@apple.com>
-
- Reviewed by Anders Carlsson.
+ A few Heap-related renames (sans file moves, which should come next)
+ https://bugs.webkit.org/show_bug.cgi?id=56283
+
+ ConservativeSet => ConservativeRoots. "Set" was misleading, since items
+ are not uniqued. Also, "Roots" is more specific about what's in the set.
+
+ MachineStackMarker => MachineThreads. "Threads" is more descriptive of
+ the fact that this class maintains a set of all threads using JSC.
+ "Stack" was misleading, since this class traverses stacks and registers.
+ "Mark" was misleading, since this class doesn't mark anything anymore.
+
+ registerThread => addCurrentThread. "Current" is more specific.
+ unregisterThread => removeCurrentThread. "Current" is more specific.
+
+ "currentThreadRegistrar" => threadSpecific. The only point of this data
+ structure is to register a thread-specific destructor with a pointer to
+ this.
+
+ "mark...Conservatively" => "gather". "Mark" is not true, since these
+ functions don't mark anything. "Conservatively" is redundant, since they
+ take "ConservativeRoots" as an argument.
- Make a nullptr that works with OwnPtr and RefPtr
- https://bugs.webkit.org/show_bug.cgi?id=47756
+ * API/APIShims.h:
+ (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock):
+ * JavaScriptCore.exp:
+ * runtime/ConservativeSet.cpp:
+ (JSC::ConservativeRoots::grow):
+ (JSC::ConservativeRoots::add):
+ * runtime/ConservativeSet.h:
+ (JSC::ConservativeRoots::ConservativeRoots):
+ (JSC::ConservativeRoots::~ConservativeRoots):
+ (JSC::ConservativeRoots::size):
+ (JSC::ConservativeRoots::roots):
+ * runtime/Heap.cpp:
+ (JSC::Heap::Heap):
+ (JSC::Heap::markRoots):
+ * runtime/Heap.h:
+ (JSC::Heap::machineThreads):
+ * runtime/JSGlobalData.h:
+ (JSC::JSGlobalData::makeUsableFromMultipleThreads):
+ * runtime/MachineStackMarker.cpp:
+ (JSC::MachineThreads::MachineThreads):
+ (JSC::MachineThreads::~MachineThreads):
+ (JSC::MachineThreads::makeUsableFromMultipleThreads):
+ (JSC::MachineThreads::addCurrentThread):
+ (JSC::MachineThreads::removeThread):
+ (JSC::MachineThreads::removeCurrentThread):
+ (JSC::MachineThreads::gatherFromCurrentThreadInternal):
+ (JSC::MachineThreads::gatherFromCurrentThread):
+ (JSC::MachineThreads::gatherFromOtherThread):
+ (JSC::MachineThreads::gatherConservativeRoots):
+ * runtime/MachineStackMarker.h:
+ * runtime/MarkStack.h:
+ (JSC::MarkStack::append):
- * JavaScriptCore.xcodeproj/project.pbxproj: Added NullPtr.h.
+2011-03-13 David Kilzer <ddkilzer@apple.com>
- * wtf/NullPtr.h: Added.
+ BUILD FIX for armv7 after r80969
- * wtf/OwnArrayPtr.h: Add an overload of = taking nullptr.
- * wtf/OwnPtr.h: Ditto.
- * wtf/PassOwnArrayPtr.h: Ditto.
- * wtf/PassOwnPtr.h: Ditto.
- * wtf/PassRefPtr.h: Ditto.
- * wtf/RefPtr.h: Ditto.
- * wtf/RetainPtr.h: Ditto.
+ Bug 56270 - The JIT 'friend's many classes in JSC; start unwinding this.
+ <https://bugs.webkit.org/show_bug.cgi?id=56270>
-2010-10-18 Oliver Hunt <oliver@apple.com>
+ * assembler/MacroAssemblerARMv7.h:
+ (JSC::MacroAssemblerARMv7::load32): Made void* address argument
+ const.
+ (JSC::MacroAssemblerARMv7::store32): Ditto.
- Reviewed by Sam Weinig.
+2011-03-13 Geoffrey Garen <ggaren@apple.com>
- Strict mode: JIT doesn't check for |this| being an immediate before dereferencing
- https://bugs.webkit.org/show_bug.cgi?id=47826
+ Not reviewed.
- There's no guarantee that |this| will be a cell in a strict mode function, so
- don't claim that it is.
+ Try to fix the Mac build.
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::isKnownNotImmediate):
+ * JavaScriptCore.xcodeproj/project.pbxproj: Make sure to forward
+ ConervativeSet.h, since it's now visible when compiling other projects.
-2010-10-18 Zoltan Herczeg <zherczeg@webkit.org>
+2011-03-13 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
- if (0) throw "x" ; else { } throws parse error after r69906
- https://bugs.webkit.org/show_bug.cgi?id=47807
-
- r69906 introduced a bug: the semicolon is not parsed after a throw
- expression anymore. Thus, the semicolon terminates the "if" parsing
- in the example above, and the else token results a parse error.
-
- * parser/JSParser.cpp:
- (JSC::JSParser::parseThrowStatement):
-
-2010-10-18 Peter Varga <pvarga@inf.u-szeged.hu>
+ Removed another case of DeprecatedPtr (ConservativeSet)
+ https://bugs.webkit.org/show_bug.cgi?id=56281
+
+ The ConservativeSet is an internal data structure used during marking,
+ so direct pointers are fine.
- Reviewed by Andreas Kling.
+ * runtime/ConservativeSet.cpp:
+ (JSC::ConservativeSet::grow):
+ * runtime/ConservativeSet.h: Added some accessors, for use by MarkStack::append.
+ (JSC::ConservativeSet::~ConservativeSet): Fixed a typo where we calculated
+ the size of the set based on sizeof(DeprecatedPtr<T>*) instead of
+ sizeof(DeprecatedPtr<T>). I'm not sure if this had real-world implications or not.
+ (JSC::ConservativeSet::size):
+ (JSC::ConservativeSet::set): Use direct pointers, as stated above.
- Remove some unnecessary lines of code from Parser.cpp
- https://bugs.webkit.org/show_bug.cgi?id=47816
+ * runtime/Heap.cpp:
+ (JSC::Heap::markRoots):
+ * runtime/MarkStack.h:
+ (JSC::MarkStack::append): Created a special case of append for
+ ConservativeSet. I didn't want to add back a generic "append JSCell*"
+ function, since other class might start using that wrong. (In the end,
+ this function might go away, since the Heap will want to do something
+ slightly more interesting with the conservative set, but this is OK for
+ now.)
- * parser/Parser.cpp:
+2011-03-13 Geoffrey Garen <ggaren@apple.com>
-2010-10-18 Xan Lopez <xlopez@igalia.com>
+ Reviewed by Oliver Hunt.
- Reviewed by Csaba Osztrogonác.
+ Removed another case of DeprecatedPtr (PutPropertySlot)
+ https://bugs.webkit.org/show_bug.cgi?id=56278
- Build broken with JIT disabled
- https://bugs.webkit.org/show_bug.cgi?id=47801
+ * runtime/PutPropertySlot.h:
+ (JSC::PutPropertySlot::setExistingProperty):
+ (JSC::PutPropertySlot::setNewProperty):
+ (JSC::PutPropertySlot::base): Direct pointer is fine for PutPropertySlot,
+ since it's a stack-allocated temporary.
- This is a regression caused by r69940.
+2011-03-13 Geoffrey Garen <ggaren@apple.com>
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::resolveBase):
+ Reviewed by Oliver Hunt.
-2010-10-18 Zoltan Horvath <zoltan@webkit.org>
+ Removed one case of DeprecatedPtr (ScopeChainIterator)
+ https://bugs.webkit.org/show_bug.cgi?id=56277
- Reviewed by Darin Adler.
+ * runtime/ScopeChain.h: Direct pointer is fine for ScopeChainIterator,
+ since it's a stack-allocated temporary.
- Change FastAllocBase implementation into a macro
- https://bugs.webkit.org/show_bug.cgi?id=42998
+2011-03-13 Gavin Barraclough <barraclough@apple.com>
- It was investigated in bug #33896 that inheriting classes from FastAllocBase
- can result in objects getting larger which leads to memory regressions.
- Using a macro instead of inheriting classes from FastAllocBase would solve the issue.
+ Reviewed by Sam Weinig.
- * wtf/FastAllocBase.h: Add a WTF_MAKE_FAST_ALLOCATED macro
+ Bug 56273 - Add three operand forms to MacroAssember operations.
-2010-10-17 Oliver Hunt <oliver@apple.com>
+ Adding for X86(_64) for now, should be rolled out to other backends as necessary.
+ These may allow more efficient code generation in some cases, avoiding the need
+ for unnecessary register-register move instructions.
- Reviewed by Sam Weinig.
+ * assembler/AbstractMacroAssembler.h:
+ (JSC::AbstractMacroAssembler::Jump::link):
+ (JSC::AbstractMacroAssembler::Jump::linkTo):
+ - marked these methods const.
+ (JSC::AbstractMacroAssembler::Jump::isSet):
+ - add a method to check whether a Jump object has been set to
+ reference an instruction, or is in a null, unset state.
+ * assembler/MacroAssemblerCodeRef.h:
+ (JSC::FunctionPtr::FunctionPtr):
+ - add non-explicit constructor, for FunctionPtr's to C/C++ functions.
+ * assembler/MacroAssemblerX86Common.h:
+ (JSC::MacroAssemblerX86Common::and32):
+ (JSC::MacroAssemblerX86Common::lshift32):
+ (JSC::MacroAssemblerX86Common::or32):
+ (JSC::MacroAssemblerX86Common::rshift32):
+ (JSC::MacroAssemblerX86Common::urshift32):
+ (JSC::MacroAssemblerX86Common::xor32):
+ (JSC::MacroAssemblerX86Common::moveDouble):
+ (JSC::MacroAssemblerX86Common::addDouble):
+ (JSC::MacroAssemblerX86Common::divDouble):
+ (JSC::MacroAssemblerX86Common::subDouble):
+ (JSC::MacroAssemblerX86Common::mulDouble):
+ (JSC::MacroAssemblerX86Common::branchTruncateDoubleToInt32):
+ (JSC::MacroAssemblerX86Common::branchTest32):
+ (JSC::MacroAssemblerX86Common::branchTest8):
+ (JSC::MacroAssemblerX86Common::branchAdd32):
+ (JSC::MacroAssemblerX86Common::branchMul32):
+ (JSC::MacroAssemblerX86Common::branchSub32):
+ - add three operand forms of these instructions.
+ * assembler/MacroAssemblerX86_64.h:
+ (JSC::MacroAssemblerX86_64::addDouble):
+ (JSC::MacroAssemblerX86_64::convertInt32ToDouble):
+ (JSC::MacroAssemblerX86_64::loadPtr):
+ (JSC::MacroAssemblerX86_64::branchTestPtr):
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::JmpSrc::isSet):
+ - add a method to check whether a JmpSrc object has been set to
+ reference an instruction, or is in a null, unset state.
+ (JSC::X86Assembler::movsd_rr):
+ - added FP register-register move.
+ (JSC::X86Assembler::linkJump):
+ - Add an assert to check jumps aren't linked more than once.
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::emitLoadInt32ToDouble):
+ - load integers to the FPU via regsiters on x86-64.
- Strict mode: arguments is not valid as the base expression for pre- or post-fix expressions
- https://bugs.webkit.org/show_bug.cgi?id=47791
+2011-03-13 Gavin Barraclough <barraclough@apple.com>
- Simple fix, check for arguments in addition to eval.
+ ARM build fix.
- * parser/JSParser.cpp:
- (JSC::JSParser::parseUnaryExpression):
+ * assembler/MacroAssemblerARM.h:
+ (JSC::MacroAssemblerARM::load32):
-2010-10-17 Oliver Hunt <oliver@apple.com>
+2011-03-13 Gavin Barraclough <barraclough@apple.com>
Reviewed by Sam Weinig.
- Strict mode: Assignment that would create a global should be a late ReferenceError, not a syntax failure
- https://bugs.webkit.org/show_bug.cgi?id=47788
-
- Fixing this required a couple of changes:
- * resolve_base now has a flag to indicate whether it is being used for a put in strict mode.
- this allows us to throw an exception when we're doing a completely generic resolve for
- assignment, and that assignment would create a new global.
- * There is a new opcode 'op_ensure_property_exists' that is used to determine whether
- the property being assigned to already exists on the global object. This currently
- has no caching, but such caching could be added relatively trivially. It is only used
- in the case where we know that a property will be placed on the global object, and
- we cannot verify that the property already exists.
+ Bug 56270 - The JIT 'friend's many classes in JSC; start unwinding this.
- In the jit we plant a call to cti_op_resolve_base_strict_put in the effected case rather
- than making op_resolve_base have an additional runtime branch.
+ The JIT need to 'friend' other classes in order to be able to calculate offsets
+ of various properties, or the absolute addresses of members within specific objects,
+ in order to JIT generate code that will access members within the class when run.
- There's also a new helper function to create the exception for the invalid assignment.
+ Instead of using friends in these cases, switch to providing specific accessor
+ methods to provide this information. In the case of offsets, these can be static
+ functions, and in the case of pointers to members within a specific object these can
+ be const methods returning pointers to const values, to prevent clients from
+ modifying values otherwise encapsulated within classes.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::emitResolveBase):
- (JSC::BytecodeGenerator::emitResolveBaseForPut):
- * bytecompiler/BytecodeGenerator.h:
- * bytecompiler/NodesCodegen.cpp:
- (JSC::AssignResolveNode::emitBytecode):
- (JSC::ForInNode::emitBytecode):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::resolveBase):
- (JSC::Interpreter::privateExecute):
+ * bytecode/SamplingTool.h:
+ * interpreter/Register.h:
+ * interpreter/RegisterFile.h:
+ * runtime/JSArray.h:
+ * runtime/JSCell.h:
+ * runtime/JSTypeInfo.h:
+ * runtime/JSVariableObject.h:
+ * runtime/Structure.h:
+ * wtf/RefCounted.h:
+ - Change these classes to no longer friend the JIT, add accessors for member offsets.
* jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- * jit/JIT.h:
+ * jit/JITCall32_64.cpp:
+ * jit/JITInlineMethods.h:
* jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_resolve_base):
- (JSC::JIT::emit_op_ensure_property_exists):
* jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_resolve_base):
- (JSC::JIT::emit_op_ensure_property_exists):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * jit/JITStubs.h:
- * parser/JSParser.cpp:
- (JSC::JSParser::parseProgram):
- * runtime/ExceptionHelpers.cpp:
- (JSC::createErrorForInvalidGlobalAssignment):
- * runtime/ExceptionHelpers.h:
- * runtime/Operations.h:
- (JSC::resolveBase):
-
-2010-10-17 Simon Fraser <simon.fraser@apple.com>
-
- First part of fix for Windows build failure. Will wait for the
- next set of link errors to determine the mangled forms for dtoaRoundSF
- and dtoaRoundDP.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
-
-2010-10-17 Simon Fraser <simon.fraser@apple.com>
-
- Reviewed by Nikolas Zimmermann.
-
- Very large and small numbers fail to round-trip through CSS
- https://bugs.webkit.org/show_bug.cgi?id=20674
-
- New exports required to use DecimalNumber in WebCore.
-
- * JavaScriptCore.exp:
- * JavaScriptCore.xcodeproj/project.pbxproj:
-
-2010-10-16 Kyusun Kim <maniagoon@company100.net>
-
- Reviewed by Alexey Proskuryakov.
-
- Add using declarations for currentTimeMS() and parseDateFromNullTerminatedCharacters()
- https://bugs.webkit.org/show_bug.cgi?id=47758
-
- * wtf/CurrentTime.h:
- * wtf/DateMath.h:
-
-2010-10-16 Patrick Gansterer <paroga@webkit.org>
+ * jit/JITPropertyAccess.cpp:
+ * jit/JITPropertyAccess32_64.cpp:
+ - Change the JIT to use class accessors, rather than taking object ofsets directly.
+ * assembler/AbstractMacroAssembler.h:
+ * assembler/MacroAssemblerX86_64.h:
+ * assembler/X86Assembler.h:
+ - Since the accessors for objects members return const pointers to retain encapsulation,
+ methods generating code with absolute addresses must be able to handle const pointers
+ (the JIT doesn't write to these values, do dies treat the pointer to value as const
+ from within the C++ code of the JIT, if not at runtime!).
- Reviewed by Adam Barth.
+2011-03-12 Sheriff Bot <webkit.review.bot@gmail.com>
- Rename StringHasherFunctions.h to StringHasher.h
- https://bugs.webkit.org/show_bug.cgi?id=47200
+ Unreviewed, rolling out r80919.
+ http://trac.webkit.org/changeset/80919
+ https://bugs.webkit.org/show_bug.cgi?id=56251
- Now StringHasherFunctions.h only contains the StringHasher class, so rename it to the correct name.
+ all windows bots failed to compile this change (Requested by
+ loislo on #webkit).
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
* JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/StringHashFunctions.h: Removed.
- * wtf/StringHasher.h: Copied from JavaScriptCore/wtf/StringHashFunctions.h.
- * wtf/text/StringHash.h:
- * wtf/text/StringImpl.h:
-
-2010-10-15 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Sam Weinig.
-
- Automatic Semicolon Insertion incorrectly inserts semicolon after break, continue, and return followed by a newline
- https://bugs.webkit.org/show_bug.cgi?id=47762
-
- The old YACC parser depended on the lexer for some classes of semicolon insertion.
- The new parser handles ASI entirely on its own so when the lexer inserts a semicolon
- on its own the net result is a spurious semicolon in the input stream. This can result
- in incorrect parsing in some cases:
-
- if (0)
- break
- ;else {}
-
- Would result in a parse failure as the output from the lexer is essentially
-
- if (0)
- break
- ;;else
-
- So the second semicolon is interpreted as a empty statement, which terminates the if,
- making the else an error.
-
-
- * parser/JSParser.cpp:
- (JSC::JSParser::parseThrowStatement):
- Parsing of throw statement was wrong, and only worked due to the weird behaviour
- in the lexer
- * parser/Lexer.cpp:
- (JSC::Lexer::lex):
- Remove bogus semicolon insertion from the newline handling
-
-2010-10-15 Nikolas Zimmermann <nzimmermann@rim.com>
-
- Reviewed by Dirk Schulze.
-
- Replace some String::format() usages by StringConcatenate in WebKit
- https://bugs.webkit.org/show_bug.cgi?id=47714
-
- * wtf/text/StringConcatenate.h: Add UChar specific StringTypeAdapter, to accept single UChars in makeString().
-
-2010-10-15 Ilya Tikhonovsky <loislo@chromium.org>
-
- Unreviewed build fix for Debug Leopard which is failng to compile after r69842.
-
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::ByteCompiler::emitDisjunction):
-
-2010-10-15 Peter Varga <pvarga@inf.u-szeged.hu>
-
- Reviewed by Gavin Barraclough.
-
- The parenthetical assertion checking isn't working in some cases with YARR
- Interpreter
- https://bugs.webkit.org/show_bug.cgi?id=46893
-
- Calculate the countToCheck value of a TypeParentheticalAssertion by
- subtracting the number of characters which follows
- a TypeParentheticalAssertion term with the number of characters which should
- be matched by terms which are contained
- in the TypeParentheticalAssertion term (minimumSize).
-
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::ByteCompiler::emitDisjunction):
-
-2010-10-14 Nathan Vander Wilt <nate@andyet.net>
-
- Reviewed by Darin Adler.
-
- Added parser for ECMAScript 5 standard date format, so Date.parse can handle RFC 3339 timestamps: https://bugs.webkit.org/show_bug.cgi?id=44632
-
+ * bytecode/StructureStubInfo.cpp:
+ * interpreter/Register.h:
+ (JSC::Register::withInt):
+ (JSC::Register::withCallee):
+ (JSC::Register::operator=):
+ (JSC::Register::i):
+ (JSC::Register::activation):
+ (JSC::Register::function):
+ (JSC::Register::propertyNameIterator):
+ (JSC::Register::scopeChain):
+ * jit/JIT.h:
+ * jit/JITCall.cpp:
+ (JSC::JIT::compileOpCallInitializeCallFrame):
+ (JSC::JIT::compileOpCallVarargs):
+ (JSC::JIT::compileOpCall):
+ * jit/JITCall32_64.cpp:
+ (JSC::JIT::compileOpCallInitializeCallFrame):
+ (JSC::JIT::compileOpCallVarargs):
+ (JSC::JIT::compileOpCall):
+ (JSC::JIT::compileOpCallSlowCase):
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::emitPutToCallFrameHeader):
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::privateCompileCTINativeCall):
+ (JSC::JIT::emit_op_get_pnames):
+ (JSC::JIT::emit_op_next_pname):
+ (JSC::JIT::emit_op_load_varargs):
+ (JSC::JIT::emitSlow_op_load_varargs):
+ * jit/JITOpcodes32_64.cpp:
+ (JSC::JIT::privateCompileCTINativeCall):
+ (JSC::JIT::emit_op_get_pnames):
+ (JSC::JIT::emit_op_next_pname):
+ * jit/JSInterfaceJIT.h:
+ (JSC::JSInterfaceJIT::payloadFor):
+ * jit/SpecializedThunkJIT.h:
+ (JSC::SpecializedThunkJIT::returnJSValue):
+ (JSC::SpecializedThunkJIT::returnDouble):
+ (JSC::SpecializedThunkJIT::returnInt32):
+ (JSC::SpecializedThunkJIT::returnJSCell):
+ * runtime/ArgList.cpp:
* runtime/DateConversion.cpp:
- (JSC::parseDate):
+ * runtime/GCActivityCallbackCF.cpp:
+ * runtime/Identifier.cpp:
+ * runtime/JSActivation.h:
+ (JSC::asActivation):
+ * runtime/JSLock.cpp:
+ * runtime/JSNumberCell.cpp:
+ * runtime/JSObject.h:
+ * runtime/JSPropertyNameIterator.h:
+ * runtime/JSValue.h:
+ * runtime/JSZombie.cpp:
+ * runtime/MarkedBlock.cpp:
+ * runtime/MarkedSpace.cpp:
+ * runtime/PropertyNameArray.cpp:
+ * runtime/ScopeChain.h:
+ (JSC::ExecState::globalThisValue):
* wtf/DateMath.cpp:
- (WTF::ymdhmsToSeconds):
- (WTF::parseES5DateFromNullTerminatedCharacters):
- * wtf/DateMath.h:
-2010-10-14 Nikolas Zimmermann <nzimmermann@rim.com>
+2011-03-11 Oliver Hunt <oliver@apple.com>
Reviewed by Gavin Barraclough.
- Replace lots of String::format() usages by StringConcatenate
- https://bugs.webkit.org/show_bug.cgi?id=47664
-
- Add StringTypeAdapter<char> to accept single characters for makeString().
-
- * wtf/text/StringConcatenate.h:
- (WTF::makeString):
-
-2010-10-14 David Goodwin <david_goodwin@apple.com>
-
- Reviewed by Darin Adler.
+ Ensure all values are correctly tagged in the registerfile
+ https://bugs.webkit.org/show_bug.cgi?id=56214
- need way to measure size of JITed ARM code
- https://bugs.webkit.org/show_bug.cgi?id=47121
+ This patch makes sure that all JSCell pointers written to
+ the registerfile are correctly tagged as JSCells, and replaces
+ raw int usage with the immediate representation.
- * assembler/LinkBuffer.h:
- (JSC::LinkBuffer::linkCode):
- (JSC::LinkBuffer::dumpLinkStats):
- (JSC::LinkBuffer::dumpCode):
+ For performance, register pressure, and general saneness reasons
+ I've added abstractions for reading and writing the tag
+ and payload of integer registers directly for the JSVALUE64
+ encoding.
-2010-10-14 Peter Varga <pvarga@inf.u-szeged.hu>
+ * interpreter/Register.h:
+ (JSC::Register::withInt):
+ (JSC::Register::withCallee):
+ (JSC::Register::operator=):
+ (JSC::Register::i):
+ (JSC::Register::activation):
+ (JSC::Register::function):
+ (JSC::Register::propertyNameIterator):
+ (JSC::Register::scopeChain):
+ * jit/JIT.h:
+ * jit/JITCall.cpp:
+ (JSC::JIT::compileOpCallInitializeCallFrame):
+ (JSC::JIT::compileOpCallVarargs):
+ (JSC::JIT::compileOpCall):
+ * jit/JITCall32_64.cpp:
+ (JSC::JIT::compileOpCallInitializeCallFrame):
+ (JSC::JIT::compileOpCallVarargs):
+ (JSC::JIT::compileOpCall):
+ (JSC::JIT::compileOpCallSlowCase):
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::emitPutToCallFrameHeader):
+ (JSC::JIT::emitPutCellToCallFrameHeader):
+ (JSC::JIT::emitPutIntToCallFrameHeader):
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::privateCompileCTINativeCall):
+ (JSC::JIT::emit_op_get_pnames):
+ (JSC::JIT::emit_op_next_pname):
+ (JSC::JIT::emit_op_load_varargs):
+ (JSC::JIT::emitSlow_op_load_varargs):
+ * jit/JITOpcodes32_64.cpp:
+ (JSC::JIT::privateCompileCTINativeCall):
+ (JSC::JIT::emit_op_get_pnames):
+ (JSC::JIT::emit_op_next_pname):
+ * jit/JSInterfaceJIT.h:
+ (JSC::JSInterfaceJIT::intPayloadFor):
+ (JSC::JSInterfaceJIT::intTagFor):
+ * jit/SpecializedThunkJIT.h:
+ (JSC::SpecializedThunkJIT::returnJSValue):
+ (JSC::SpecializedThunkJIT::returnDouble):
+ (JSC::SpecializedThunkJIT::returnInt32):
+ (JSC::SpecializedThunkJIT::returnJSCell):
- Reviewed by Gavin Barraclough.
+2011-03-11 Dimitri Glazkov <dglazkov@chromium.org>
- The backreference checking isn't working in some cases with YARR Interpreter
- https://bugs.webkit.org/show_bug.cgi?id=46904
+ Reviewed by Eric Seidel.
- The Interpreter::matchBackReference() function returns true without matching
- when a backreference points to the same parentheses where it is.
+ Introduce project_dir variable and make paths a whole lot saner. Ok, a little bit saner.
+ https://bugs.webkit.org/show_bug.cgi?id=56231
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::matchBackReference):
+ * JavaScriptCore.gypi: Added project_dir variable.
+ * gyp/JavaScriptCore.gyp: Changed to use project_dir, rather than DEPTH/JavaScriptCore.
+ * gyp/generate-dtrace-header.sh: Changed to use project_dir.
-2010-10-14 No'am Rosenthal <noam.rosenthal@nokia.com>
+2011-03-11 Dimitri Glazkov <dglazkov@chromium.org>
- Reviewed by Andreas Kling.
+ Reviewed by Adam Barth.
- [Qt] Text breaking is slow: enable ICU as an opt-in
- https://bugs.webkit.org/show_bug.cgi?id=40332
+ Start using derived sources correctly and link minidom with JavaScriptCore gyp project.
+ https://bugs.webkit.org/show_bug.cgi?id=56217
- Added a config flag that enables ICU as an opt-in instead of the Qt specific code.
- Because of the inclusion of ICU headers, some explicit casting was necessary in UnicodeQt4.h
+ * gyp/JavaScriptCore.gyp: Added derived source files and passing of shared directory
+ to the scripts.
+ * gyp/generate-derived-sources.sh: Changed to use passed directory.
+ * gyp/generate-dtrace-header.sh: Ditto.
- * JavaScriptCore.pri:
- * wtf/unicode/qt4/UnicodeQt4.h:
- (WTF::Unicode::toLower):
- (WTF::Unicode::toUpper):
- (WTF::Unicode::toTitleCase):
- (WTF::Unicode::foldCase):
- (WTF::Unicode::isPrintableChar):
- (WTF::Unicode::isSeparatorSpace):
- (WTF::Unicode::isPunct):
- (WTF::Unicode::isLower):
- (WTF::Unicode::mirroredChar):
- (WTF::Unicode::combiningClass):
- (WTF::Unicode::direction):
- (WTF::Unicode::category):
-
-2010-10-14 Anton Faern <anton@bladehawke.com>
+2011-03-11 Eric Carlson <eric.carlson@apple.com>
- Reviewed by Csaba Osztrogonác.
+ Reviewed by Sam Weinig.
- https://bugs.webkit.org/show_bug.cgi?id=47658
- NetBSD was not included in the WTF_PLATFORM_FOO to WTF_OS_FOO
- change. This means that OS(NETBSD) is also undefined.
+ <rdar://problem/8955589> Adopt AVFoundation media back end on Lion.
- * wtf/Platform.h: s/_PLATFORM_/_OS_/ for NetBSD
+ No new tests, existing media tests cover this.
-2010-10-13 David Goodwin <david_goodwin@apple.com>
+ * JavaScriptCore.exp: Export cancelCallOnMainThread
+ * wtf/Platform.h: Define WTF_USE_AVFOUNDATION.
- Reviewed by Oliver Hunt.
+2011-03-11 Dimitri Glazkov <dglazkov@chromium.org>
- ARMv7 JIT should generated conditional branches when possible
- https://bugs.webkit.org/show_bug.cgi?id=47384
+ Reviewed by Adam Barth.
- Use different jump padding sizes for conditional and unconditional
- jumps (12 bytes and 10 bytes respectively). This allows the JIT to
- include the IT instruction as part of the conditional jump sequence
- which in turn allows it to optimize away the IT using an ARMv7
- conditional branch instruction. Use 2-byte B(T1) and 4-byte B(T3) for
- conditional branches when displacement is in range. Also use IT/B(T4)
- for conditional branch when displacement does not fit in B(T3).
+ Tweak dylib paths and add dtrace header generation action to JavaScriptCore gyp project.
+ https://bugs.webkit.org/show_bug.cgi?id=56207
- For unconditional jump, instruction selection options are:
- B(T2), B(T4), MOVW/MOVT/BX. For conditional jump, instruction selection
- options are: B(T1), B(T3), IT/B(T4), ITTT/MOVW/MOVT/BX.
+ * JavaScriptCore.gypi: Added Tracing.d to the sources.
+ * gyp/generate-dtrace-header.sh: Added.
+ * gyp/JavaScriptCore.gyp: Updated dylib paths (now the project can see them),
+ and added DTrace header generating step.
- * assembler/ARMv7Assembler.cpp:
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::JmpSrc::JmpSrc):
- (JSC::ARMv7Assembler::ifThenElse):
- (JSC::ARMv7Assembler::jumpSizeDelta):
- (JSC::ARMv7Assembler::canCompact):
- (JSC::ARMv7Assembler::computeJumpType):
- (JSC::ARMv7Assembler::link):
- (JSC::ARMv7Assembler::canBeJumpT1):
- (JSC::ARMv7Assembler::canBeJumpT3):
- (JSC::ARMv7Assembler::canBeJumpT4):
- (JSC::ARMv7Assembler::linkJumpT1):
- (JSC::ARMv7Assembler::linkJumpT3):
- (JSC::ARMv7Assembler::linkJumpT4):
- (JSC::ARMv7Assembler::linkConditionalJumpT4):
- (JSC::ARMv7Assembler::linkBX):
- (JSC::ARMv7Assembler::linkConditionalBX):
- (JSC::ARMv7Assembler::linkJumpAbsolute):
- * assembler/LinkBuffer.h:
- (JSC::LinkBuffer::linkCode):
- * assembler/MacroAssemblerARMv7.h:
- (JSC::MacroAssemblerARMv7::canCompact):
- (JSC::MacroAssemblerARMv7::computeJumpType):
- (JSC::MacroAssemblerARMv7::jumpSizeDelta):
- (JSC::MacroAssemblerARMv7::jump):
- (JSC::MacroAssemblerARMv7::nearCall):
- (JSC::MacroAssemblerARMv7::call):
- (JSC::MacroAssemblerARMv7::ret):
- (JSC::MacroAssemblerARMv7::tailRecursiveCall):
- (JSC::MacroAssemblerARMv7::makeJump):
- (JSC::MacroAssemblerARMv7::makeBranch):
+2011-03-10 Oliver Hunt <oliver@apple.com>
-2010-10-13 Fridrich Strba <fridrich.strba@bluewin.ch>
+ Reviewed by Gavin Barraclough.
- Reviewed by Darin Adler.
+ Fix allocation of native function with a cached thunk
+ https://bugs.webkit.org/show_bug.cgi?id=56127
- Don't depend on Windows on sched_yield and sched.h
- https://bugs.webkit.org/show_bug.cgi?id=45543
+ Fix this race condition found while fixing zombies.
- sched.h is part of pthreads and sched_yield is implemented
- in pthreads-win32 as Sleep(0). This patch avoids a gratuitous
- dependency on pthreads-win32 in this file.
+ * collector/handles/HandleHeap.cpp:
+ (JSC::HandleHeap::clearWeakPointers):
+ * runtime/Heap.cpp:
+ (JSC::Heap::reset):
+ * runtime/JSFunction.cpp:
+ (JSC::JSFunction::JSFunction):
+ (JSC::JSFunction::markChildren):
+ * runtime/JSValue.h:
+ (JSC::JSValue::decode):
+ * runtime/JSZombie.cpp:
+ (JSC::JSZombie::leakedZombieStructure):
+ * runtime/JSZombie.h:
+ (JSC::JSZombie::createStructure):
+ * runtime/MarkedBlock.cpp:
- * wtf/TCSpinLock.h:
- (TCMalloc_SlowLock):
+2011-03-10 Luiz Agostini <luiz.agostini@openbossa.org>
-2010-10-13 Kwang Yul Seo <skyul@company100.net>
+ Reviewed by Andreas Kling.
- Reviewed by Kent Tamura.
+ [Qt] fast/workers/stress-js-execution.html is crashing on Qt bot (intermittently)
+ https://bugs.webkit.org/show_bug.cgi?id=33008
- [BREWMP] Port unicode
- https://bugs.webkit.org/show_bug.cgi?id=45716
+ Defining WTF_USE_PTHREAD_BASED_QT=1 for platforms where QThread uses pthread internally.
+ Symbian is excluded because pthread_kill does not work on it. Mac is excluded because
+ it has its own ways to do JSC threading.
- Brew MP port uses only the subset of ICU library to reduce the binary size.
- Follow the WinCE's implementation.
+ Defining WTF_USE_PTHREADS inside MachineStackMarker.cpp if USE(PTHREAD_BASED_QT) is true.
+ * runtime/MachineStackMarker.cpp:
* wtf/Platform.h:
- * wtf/unicode/Unicode.h:
- * wtf/unicode/brew/UnicodeBrew.cpp: Added.
- (WTF::Unicode::toLower):
- (WTF::Unicode::toUpper):
- (WTF::Unicode::foldCase):
- (WTF::Unicode::isPrintableChar):
- (WTF::Unicode::isUpper):
- (WTF::Unicode::isLower):
- (WTF::Unicode::isDigit):
- (WTF::Unicode::isPunct):
- (WTF::Unicode::isAlphanumeric):
- (WTF::Unicode::toTitleCase):
- (WTF::Unicode::direction):
- (WTF::Unicode::category):
- (WTF::Unicode::decompositionType):
- (WTF::Unicode::combiningClass):
- (WTF::Unicode::mirroredChar):
- (WTF::Unicode::digitValue):
- (WTF::Unicode::isSpace):
- (WTF::Unicode::isLetter):
- * wtf/unicode/brew/UnicodeBrew.h: Added.
- (WTF::Unicode::isArabicChar):
- (WTF::Unicode::isSeparatorSpace):
- (WTF::Unicode::hasLineBreakingPropertyComplexContext):
- (WTF::Unicode::hasLineBreakingPropertyComplexContextOrIdeographic):
- (WTF::Unicode::umemcasecmp):
-
-2010-10-13 Gavin Barraclough <barraclough@apple.com>
- Windows build fix.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+2011-03-10 Gavin Barraclough <barraclough@apple.com>
-2010-10-13 Adam Barth <abarth@webkit.org>
+ Reviewed by Oliver Hunt.
- Reviewed by Maciej Stachowiak.
+ Bug 56077 - ES5 conformance issues with RegExp.prototype
- [WTFURL] Add URLQueryCanonicalizer
- https://bugs.webkit.org/show_bug.cgi?id=45088
+ There are three issues causing test failures in sputnik.
- This class canonicalizes the query component of URLs. The main tricky
- bit there is the convertCharset function, which I've moved to a
- templated dependency. There'll likely be more about that in future
- patches.
+ (1) lastIndex should be converted at the point it is used, not the point it is set (this is visible if valueOf is overridden).
+ (2) The 'length' property of the test/exec functions should be 1.
+ (3) If no input is specified, the input to test()/exec() is "undefined" (i.e. ToString(undefined)) - not RegExp.input.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/url/src/URLEscape.cpp: Added.
- * wtf/url/src/URLEscape.h: Added.
- (WTF::appendEscapedCharacter):
- * wtf/url/src/URLQueryCanonicalizer.h: Added.
- (WTF::URLQueryCanonicalizer::canonicalize):
- (WTF::URLQueryCanonicalizer::isAllASCII):
- (WTF::URLQueryCanonicalizer::appendRaw8BitQueryString):
- (WTF::URLQueryCanonicalizer::convertToQueryEncoding):
+ * runtime/RegExpObject.cpp:
+ (JSC::RegExpObject::markChildren):
+ - Added to mark lastIndex
+ (JSC::regExpObjectLastIndex):
+ (JSC::setRegExpObjectLastIndex):
+ - lastIndex is now stored as a JSValue.
+ (JSC::RegExpObject::match):
+ - Use accessor methods to get/set lastIndex, add fast case for isUInt32 (don't convert to double).
+ * runtime/RegExpObject.h:
+ (JSC::RegExpObject::setLastIndex):
+ (JSC::RegExpObject::setLastIndex):
+ - Set lastIndex, either from a size_t or a JSValue.
+ (JSC::RegExpObject::getLastIndex):
+ - Get lastIndex.
+ (JSC::RegExpObject::RegExpObjectData::RegExpObjectData):
+ - Initialize as a JSValue.
+ * runtime/RegExpPrototype.cpp:
+ (JSC::RegExpPrototype::RegExpPrototype):
+ - Add test/exec properties with length 1.
+ * runtime/StringPrototype.cpp:
+ (JSC::stringProtoFuncMatch):
+ (JSC::stringProtoFuncSearch):
+ - Do not read RegExp.input if none is provided.
+ * tests/mozilla/js1_2/regexp/RegExp_input.js:
+ * tests/mozilla/js1_2/regexp/RegExp_input_as_array.js:
+ - Update these tests (they relied on non-ES5 behaviour).
-2010-10-13 Gavin Barraclough <barraclough@apple.com>
+2011-03-10 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
- Bug 43987 - Downloading using XHR is much slower than before
- Change StringBuilder to use overcapacity in a StringImpl, rather than a Vector.
- Fundamentally this should be the same (copies current contents to expand capacity,
- rather than using a rope), but this approach allows the intermadiate state of the
- String to be inspected in the buffer without copying to resolve.
+ Rolled back in 80277 and 80280 with event handler layout test failures fixed.
+ https://bugs.webkit.org/show_bug.cgi?id=55653
- * runtime/JSONObject.cpp:
- (JSC::Stringifier::appendQuotedString):
- (JSC::Stringifier::Holder::appendNextProperty):
- Renamed StringBuilder::size() -> length() (to match other String types).
-
- * runtime/UStringBuilder.h:
- (JSC::UStringBuilder::append):
- (JSC::UStringBuilder::toUString):
- Update for changes in parent class, can just 'using' the append methods.
-
- * wtf/text/StringBuilder.cpp: Added.
- (WTF::StringBuilder::reifyString):
- (WTF::StringBuilder::resize):
- (WTF::StringBuilder::reserveCapacity):
- (WTF::StringBuilder::allocateBuffer):
- (WTF::StringBuilder::appendUninitialized):
- (WTF::StringBuilder::append):
- (WTF::StringBuilder::shrinkToFit):
- * wtf/text/StringBuilder.h:
- (WTF::StringBuilder::StringBuilder):
- (WTF::StringBuilder::append):
- (WTF::StringBuilder::toString):
- (WTF::StringBuilder::toStringPreserveCapacity):
- (WTF::StringBuilder::length):
- (WTF::StringBuilder::isEmpty):
- (WTF::StringBuilder::operator[]):
- (WTF::StringBuilder::clear):
- Class updated to use overcapacity in a StringImpl, rather than a Vector.
+ The failures were caused by a last minute typo: assigning to currentEvent
+ instead of m_currentEvent.
- * Android.mk:
- * Android.v8.wtf.mk:
- * GNUmakefile.am:
* JavaScriptCore.exp:
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.vcproj/jsc/jsc.vcproj:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
* JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/CMakeLists.txt:
- * wtf/wtf.pri:
-
-2010-10-13 Adam Roben <aroben@apple.com>
-
- Export tryFastRealloc for WebKit2's benefit
-
- Rubber-stamped by Anders Carlsson.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Added
- tryFastRealloc. Removed RegExpObject::info, which is now exported via
- JS_EXPORTDATA.
-
-2010-10-13 Adam Barth <abarth@webkit.org>
-
- Reviewed by Maciej Stachowiak.
-
- [WTFURL] Add a mechanism for classifying types of characters
- https://bugs.webkit.org/show_bug.cgi?id=45085
-
- Various characters have different escaping rules depending on where
- they are in URLs. This patch adds a table containing that information.
+ * bytecompiler/BytecodeGenerator.cpp:
+ * jit/JITOpcodes.cpp:
+ * jit/JITOpcodes32_64.cpp:
+ * runtime/Arguments.h:
+ * runtime/JSActivation.cpp:
+ * runtime/JSActivation.h:
+ * runtime/JSCell.h:
+ * runtime/JSGlobalObject.cpp:
+ * runtime/JSGlobalObject.h:
+ * runtime/JSObject.cpp:
+ * runtime/JSStaticScopeObject.cpp:
+ * runtime/JSStaticScopeObject.h:
+ * runtime/JSVariableObject.h:
+ * runtime/MarkedSpace.cpp:
+ * runtime/MarkedSpace.h:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/url/src/URLCharacterTypes.cpp: Added.
- * wtf/url/src/URLCharacterTypes.h: Added.
- (WTF::URLCharacterTypes::isQueryChar):
- (WTF::URLCharacterTypes::isIPv4Char):
- (WTF::URLCharacterTypes::isHexChar):
- (WTF::URLCharacterTypes::isCharOfType):
+2011-03-09 Oliver Hunt <oliver@apple.com>
-2010-10-13 Xan Lopez <xlopez@igalia.com>
+ Reviewed by Gavin Barraclough.
- Reviewed by Csaba Osztrogonác.
+ jquery/manipulation.html fails after r80598
+ https://bugs.webkit.org/show_bug.cgi?id=56019
- Missing parameters for bytecode dump of next_pname
- https://bugs.webkit.org/show_bug.cgi?id=47590
+ When linking a call, codeblock now takes ownership of the linked function
+ This removes the need for unlinking, and thus the incorrectness that was
+ showing up in these tests.
* bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump): add missing parameters to the dump.
+ (JSC::CodeBlock::~CodeBlock):
+ (JSC::CodeBlock::markAggregate):
+ * bytecode/CodeBlock.h:
+ (JSC::CallLinkInfo::CallLinkInfo):
+ (JSC::CallLinkInfo::setUnlinked):
+ (JSC::CodeBlock::addCaller):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompile):
+ (JSC::JIT::linkCall):
+ (JSC::JIT::linkConstruct):
+ * jit/JIT.h:
+ * runtime/Executable.cpp:
+ * runtime/Executable.h:
-2010-10-13 Nikolas Zimmermann <nzimmermann@rim.com>
+2011-03-09 Daniel Bates <dbates@rim.com>
- Reviewed by Dirk Schulze.
+ Attempt to fix the WinCE build after changeset 80684 <http://trac.webkit.org/changeset/80684>
+ (Bug #56041<https://bugs.webkit.org/show_bug.cgi?id=56041>).
- Add wtf/text/StringConcatenate
- https://bugs.webkit.org/show_bug.cgi?id=47584
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute): Substitute variable callFrame for exec in call to createSyntaxError().
- Move runtime/StringConcatenate.h to wtf/text, make it work for Strings too.
- Add a special runtime/UStringConcatenate.h class that inherits from StringConcatenate, and extends it for use with UString.
- Exactly the same design that has been followed while refactoring StringBuilder.
+2011-03-09 Gavin Barraclough <barraclough@apple.com>
- The UString variants can all be removed as soon as WTF::String & JSC::UString converge.
+ Reviewed by Sam Weinig.
- * GNUmakefile.am: Add wtf/text/StringConcatenate.h and runtime/UStringConcatenate.h.
- * JavaScriptCore.gypi: Ditto.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Ditto.
- * JavaScriptCore.vcproj/WTF/WTF.vcproj: Ditto.
- * JavaScriptCore.xcodeproj/project.pbxproj: Ditto.
- * bytecode/CodeBlock.cpp: s/makeString/makeUString/
- (JSC::escapeQuotes):
- (JSC::valueToSourceString):
- (JSC::constantName):
- (JSC::idName):
- (JSC::CodeBlock::registerName):
- (JSC::regexpToSourceString):
- (JSC::regexpName):
- * bytecompiler/NodesCodegen.cpp: Ditto.
- (JSC::substitute):
- * profiler/Profiler.cpp: Ditto.
- (JSC::Profiler::createCallIdentifier):
- * runtime/ExceptionHelpers.cpp: Ditto.
- (JSC::createUndefinedVariableError):
- (JSC::createErrorMessage):
- (JSC::createInvalidParamError):
- * runtime/FunctionConstructor.cpp: Ditto.
- (JSC::constructFunction):
- * runtime/FunctionPrototype.cpp: Ditto.
- (JSC::insertSemicolonIfNeeded):
- * runtime/JSONObject.cpp: Ditto.
- (JSC::Stringifier::indent):
- * runtime/JSStringBuilder.h:
- (JSC::jsMakeNontrivialString):
- * runtime/RegExpConstructor.cpp: Ditto.
- (JSC::constructRegExp):
- * runtime/RegExpObject.cpp: Ditto.
- (JSC::RegExpObject::match):
- * runtime/RegExpPrototype.cpp: Ditto.
- (JSC::regExpProtoFuncCompile):
- * runtime/StringConcatenate.h: Removed.
- * runtime/UStringConcatenate.h: Added. Only contains the StringTypeAdapter<JSC::UString> code and the makeUString variants, the rest lives in wtf/text/StringConcatenate.h
- (JSC::makeUString):
- * wtf/text/StringConcatenate.h: Copied from runtime/StringConcatenate.h.
- (WTF::makeString):
+ Bug 56041 - RexExp constructor should only accept flags "gim"
+ Fix for issues introduced in r80667.
-2010-10-12 Gavin Barraclough <barraclough@apple.com>
+ Invalid flags to a RegExp literal are a late syntax error!
- Windows build fix.
+ * bytecode/CodeBlock.h:
+ (JSC::CodeBlock::addRegExp):
+ - Pass a PassRefPtr<RegExp>
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::addRegExp):
+ (JSC::BytecodeGenerator::emitNewRegExp):
+ * bytecompiler/BytecodeGenerator.h:
+ - Pass a PassRefPtr<RegExp>
+ * bytecompiler/NodesCodegen.cpp:
+ (JSC::RegExpNode::emitBytecode):
+ - Should not be ASSERTing that the flags are valid - this is a late(er) error.
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+ - Need to check for error from RegExp constructor.
+ * jit/JITStubs.cpp:
+ (JSC::DEFINE_STUB_FUNCTION):
+ - Need to check for error from RegExp constructor.
+ * runtime/RegExp.h:
+ (JSC::RegExp::isValid):
+ - Make isValid check that the regexp was created with valid flags.
+ * runtime/RegExpKey.h:
+ - Since we'll not create RegExp objects with invalid flags, separate out the deleted value.
- * wtf/text/StringBuilder.h:
- (WTF::StringBuilder::length):
+2011-03-09 Gavin Barraclough <barraclough@apple.com>
-2010-10-12 Nikolas Zimmermann <nzimmermann@rim.com>
+ Windows build fix part 2.
- Reviewed by Gavin Barraclough.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- Unify JSC::StringBuilder & WebCore::StringBuilder
- https://bugs.webkit.org/show_bug.cgi?id=47538
+2011-03-09 Gavin Barraclough <barraclough@apple.com>
- Move runtime/StringBuilder.h to wtf/text/StringBuilder.h. Rename build() to toString() and return a WTF::String().
- Move the append(const JSC::UString&) method into runtime/UStringBuilder.h.
- UStringBuilder inherits from StringBuilder.h and adds append(const JSC::UString&) and UString toUString() functionality.
+ Windows build fix part 1.
- No new code, just move code around.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * GNUmakefile.am: Add wtf/text/StringBuilder.h / runtime/UStringBuilder.h. Remove runtime/StringBuilder.h.
- * JavaScriptCore.gypi: Ditto.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Ditto.
- * JavaScriptCore.vcproj/WTF/WTF.vcproj: Ditto.
- * JavaScriptCore.xcodeproj/project.pbxproj: Ditto.
- * runtime/Executable.cpp:
- (JSC::FunctionExecutable::paramString): Use UStringBuilder, instead of StringBuilder. Rename build() -> toUString().
- * runtime/FunctionConstructor.cpp:
- (JSC::constructFunction): Ditto.
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::globalFuncUnescape): Ditto.
- * runtime/JSONObject.cpp:
- (JSC::Stringifier::stringify): Ditto.
- (JSC::Stringifier::appendQuotedString): Ditto.
- (JSC::Stringifier::appendStringifiedValue): Ditto.
- (JSC::Stringifier::startNewLine): Ditto.
- (JSC::Stringifier::Holder::appendNextProperty): Ditto.
- * runtime/LiteralParser.cpp:
- (JSC::LiteralParser::Lexer::lexString): Ditto.
- * runtime/NumberPrototype.cpp: Remove unneeded JSStringBuilder.h / StringBuilder.h include.
- * runtime/StringBuilder.h: Removed.
- * runtime/UStringBuilder.h: Added. Inherits from WTF::StringBuilder, extending it by two methods.
- (JSC::UStringBuilder::append): append(const JSC::UString&)
- (JSC::UStringBuilder::toUString):
- * wtf/text/StringBuilder.h: Copied from runtime/StringBuilder.h. Move JSC::UString parts into runtime/UStringBuilder.h
- (WTF::StringBuilder::append): Renamed m_buffer to buffer everywhere.
- (WTF::StringBuilder::isEmpty): Ditto (+ constify method).
- (WTF::StringBuilder::reserveCapacity): Ditto.
- (WTF::StringBuilder::resize): Ditto.
- (WTF::StringBuilder::size): Ditto.
- (WTF::StringBuilder::operator[]): Ditto.
- (WTF::StringBuilder::toString): Ditto (+ renamed from build()). Returns a String, not an UString. The old build() method is now named toUString() and lives in UStringBuilder.
-
-2010-10-12 Michael Saboff <msaboff@apple.com>
+2011-03-09 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
+ Reviewed by Darin Adler.
- Cleaned up the processing of replacements after regular expression
- processing, especially the case where there wasn't a match.
- Changed to use empty strings instead of computing a zero length sub
- string.
- https://bugs.webkit.org/show_bug.cgi?id=47506
+ Bug 56041 - RexExp constructor should only accept flags "gim"
+ We also should be passing the flags around as a bitfield rather than a string,
+ and should not have redundant, incompatible code for converting the string to a bitfield!
+ * JavaScriptCore.exp:
+ * bytecompiler/NodesCodegen.cpp:
+ (JSC::RegExpNode::emitBytecode):
+ - Need to parse flags string to enum.
+ * runtime/RegExp.cpp:
+ (JSC::regExpFlags):
+ (JSC::RegExp::RegExp):
+ (JSC::RegExp::create):
+ - Add method to parse flags string to enum, change constructor/create args to take enum.
+ * runtime/RegExp.h:
+ (JSC::RegExp::global):
+ (JSC::RegExp::ignoreCase):
+ (JSC::RegExp::multiline):
+ - Change to use new enum values.
+ * runtime/RegExpCache.cpp:
+ (JSC::RegExpCache::lookupOrCreate):
+ (JSC::RegExpCache::create):
+ * runtime/RegExpCache.h:
+ - Changed to use regExpFlags enum instead of int/const UString&.
+ * runtime/RegExpConstructor.cpp:
+ (JSC::constructRegExp):
+ - Add use new enum parsing, check for error.
+ * runtime/RegExpKey.h:
+ (JSC::RegExpKey::RegExpKey):
+ * runtime/RegExpPrototype.cpp:
+ (JSC::RegExpPrototype::RegExpPrototype):
+ - Pass NoFlags value instead of empty string.
+ (JSC::regExpProtoFuncCompile):
+ - Add use new enum parsing, check for error.
* runtime/StringPrototype.cpp:
- (JSC::jsSpliceSubstringsWithSeparators):
- (JSC::stringProtoFuncReplace):
-
-2010-10-11 Patrick Gansterer <paroga@webkit.org>
-
- Unreviewed.
-
- Clang build fix after r69472.
- https://bugs.webkit.org/show_bug.cgi?id=46523
-
- * wtf/text/StringHash.h:
-
-2010-10-11 Oliver Hunt <oliver@apple.com>
+ (JSC::stringProtoFuncMatch):
+ (JSC::stringProtoFuncSearch):
+ - Pass NoFlags value instead of empty string.
- Undo last minute change to 32bit build.
+2011-03-08 Gavin Barraclough <barraclough@apple.com>
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_convert_this_strict):
+ Reviewed by Sam Weinig
-2010-10-11 Brian Weinstein <bweinstein@apple.com>
+ Bug 55994 - Functions on Array.prototype should check length first.
+ These methods are designed to work on generic objects too, and if 'length'
+ is a getter that throws an exception, ensure this is correctly thrown
+ (even if other exceptions would be thrown, too).
- Build fix for Windows. Add a necessary export from r69516.
+ Make the length check the first thing we do.
+ This change shows a progression on SunSpider on my machine, but this is likely bogus.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * runtime/ArrayPrototype.cpp:
+ (JSC::arrayProtoFuncToString):
+ (JSC::arrayProtoFuncToLocaleString):
+ (JSC::arrayProtoFuncJoin):
+ (JSC::arrayProtoFuncPop):
+ (JSC::arrayProtoFuncPush):
+ (JSC::arrayProtoFuncReverse):
+ (JSC::arrayProtoFuncShift):
+ (JSC::arrayProtoFuncSlice):
+ (JSC::arrayProtoFuncSort):
+ (JSC::arrayProtoFuncSplice):
+ (JSC::arrayProtoFuncUnShift):
+ (JSC::arrayProtoFuncFilter):
+ (JSC::arrayProtoFuncMap):
+ (JSC::arrayProtoFuncEvery):
+ (JSC::arrayProtoFuncForEach):
+ (JSC::arrayProtoFuncSome):
+ (JSC::arrayProtoFuncReduce):
+ (JSC::arrayProtoFuncReduceRight):
+ (JSC::arrayProtoFuncIndexOf):
+ (JSC::arrayProtoFuncLastIndexOf):
-2010-10-11 Oliver Hunt <oliver@apple.com>
+2011-03-07 Oliver Hunt <oliver@apple.com>
- Fix interpreter build -- was broken by incorrect merge.
+ Reviewed by Gavin Barraclough.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
+ Make CodeBlock GC write barrier safe
+ https://bugs.webkit.org/show_bug.cgi?id=55910
-2010-10-01 Oliver Hunt <oliver@apple.com>
+ In order to make CodeBlock WriteBarrier safe it was necessary
+ to make it have a single GC owner, and for that reason I have
+ made ExecutableBase a GC allocated object. This required
+ updating their creation routines as well as all sites that hold
+ a reference to them. GC objects that held Executable's have been
+ converted to WriteBarriers, and all other sites now use Global<>.
- Reviewed by Gavin Barraclough.
+ As an added benefit this gets rid of JSGlobalData's list of
+ GlobalCodeBlocks.
- [ES5] Implement strict mode
- https://bugs.webkit.org/show_bug.cgi?id=10701
-
- Initial strict mode implementation. This is the simplest
- implementation that could possibly work and adds (hopefully)
- all of the restrictions required by strict mode. There are
- a number of inefficiencies, especially in the handling of
- arguments and eval as smart implementations would make this
- patch more complicated.
-
- The SyntaxChecker AST builder has become somewhat more complex
- as strict mode does require more parse tree information to
- validate the syntax.
-
- Summary of major changes to the parser:
- * We track when we enter strict mode (this may come as a surprise)
- * Strict mode actually requires a degree of AST knowledge to validate
- so the SyntaxChecker now produces values that can be used to distinguish
- "node" types.
- * We now track variables that are written to. We do this to
- statically identify writes to global properties that don't exist
- and abort at that point. This should actually make it possible
- to optimise some other cases in the future but for now it's
- purely for validity checking. Currently writes are only tracked
- in strict mode code.
- * Labels are now tracked as it is now a syntax error to jump to a label
- that does not exist (or to use break, continue, or return in a context
- where they would be invalid).
-
- Runtime changes:
- * In order to get correct hanlding of the Arguments object all
- strict mode functions that reference arguments create and tearoff
- the arguments object on entry. This is not strictly necessary
- but was the least work necessary to get the correct behaviour.
- * PutPropertySlot now tracks whether it is being used for a strict
- mode write, and if so Object::put will throw when a write can't be
- completed.
- * StrictEvalActivation was added as an "activation" object for strict
- mode eval (so that strict eval does not introduce new variables into
- the containing scope).
+ Perf testing shows a 0.5% progression on v8, vs. a 0.3% regression
+ on SunSpider. Given none of the tests that show regressions
+ demonstrate a regression on their own, and sampling shows up nothing.
+ I suspect we're just getting one or two additional gc passes at
+ the end of the run.
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.exp:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dump):
(JSC::CodeBlock::CodeBlock):
- (JSC::CodeBlock::reparseForExceptionInfoIfNecessary):
+ (JSC::EvalCodeCache::markAggregate):
+ (JSC::CodeBlock::markAggregate):
* bytecode/CodeBlock.h:
- (JSC::CodeBlock::isStrictMode):
+ (JSC::CodeBlock::ownerExecutable):
+ (JSC::CodeBlock::addConstant):
+ (JSC::CodeBlock::constantRegister):
+ (JSC::CodeBlock::getConstant):
+ (JSC::CodeBlock::addFunctionDecl):
+ (JSC::CodeBlock::addFunctionExpr):
+ (JSC::GlobalCodeBlock::GlobalCodeBlock):
+ (JSC::ExecState::r):
* bytecode/EvalCodeCache.h:
(JSC::EvalCodeCache::get):
- * bytecode/Opcode.h:
+ * bytecode/SamplingTool.h:
+ (JSC::ScriptSampleRecord::ScriptSampleRecord):
* bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::createArgumentsIfNecessary):
- (JSC::BytecodeGenerator::emitReturn):
+ (JSC::BytecodeGenerator::addConstantValue):
+ (JSC::BytecodeGenerator::emitEqualityOp):
* bytecompiler/BytecodeGenerator.h:
- (JSC::BytecodeGenerator::isStrictMode):
(JSC::BytecodeGenerator::makeFunction):
* debugger/Debugger.cpp:
(JSC::evaluateInGlobalCallFrame):
@@ -12146,12005 +6071,2922 @@
(JSC::DebuggerCallFrame::evaluate):
* interpreter/Interpreter.cpp:
(JSC::Interpreter::callEval):
- (JSC::Interpreter::unwindCallFrame):
- (JSC::Interpreter::execute):
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- (JSC::JIT::privateCompileSlowCases):
- * jit/JIT.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_get_pnames):
- (JSC::JIT::emit_op_convert_this_strict):
- (JSC::JIT::emitSlow_op_convert_this_strict):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_get_pnames):
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::emitLoadDouble):
+ (JSC::JIT::emitLoadInt32ToDouble):
* jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
+ (JSC::JITThunks::JITThunks):
+ (JSC::JITThunks::hostFunctionStub):
+ (JSC::JITThunks::clearHostFunctionStubs):
* jit/JITStubs.h:
- * parser/ASTBuilder.h:
- (JSC::ASTBuilder::createFunctionBody):
- (JSC::ASTBuilder::isResolve):
- * parser/JSParser.cpp:
- (JSC::JSParser::next):
- (JSC::JSParser::startLoop):
- (JSC::JSParser::endLoop):
- (JSC::JSParser::startSwitch):
- (JSC::JSParser::endSwitch):
- (JSC::JSParser::setStrictMode):
- (JSC::JSParser::strictMode):
- (JSC::JSParser::isValidStrictMode):
- (JSC::JSParser::declareParameter):
- (JSC::JSParser::breakIsValid):
- (JSC::JSParser::pushLabel):
- (JSC::JSParser::popLabel):
- (JSC::JSParser::hasLabel):
- (JSC::JSParser::DepthManager::DepthManager):
- (JSC::JSParser::DepthManager::~DepthManager):
- (JSC::JSParser::Scope::Scope):
- (JSC::JSParser::Scope::startSwitch):
- (JSC::JSParser::Scope::endSwitch):
- (JSC::JSParser::Scope::startLoop):
- (JSC::JSParser::Scope::endLoop):
- (JSC::JSParser::Scope::inLoop):
- (JSC::JSParser::Scope::breakIsValid):
- (JSC::JSParser::Scope::pushLabel):
- (JSC::JSParser::Scope::popLabel):
- (JSC::JSParser::Scope::hasLabel):
- (JSC::JSParser::Scope::isFunction):
- (JSC::JSParser::Scope::declareVariable):
- (JSC::JSParser::Scope::declareWrite):
- (JSC::JSParser::Scope::deleteProperty):
- (JSC::JSParser::Scope::declareParameter):
- (JSC::JSParser::Scope::setNeedsFullActivation):
- (JSC::JSParser::Scope::collectFreeVariables):
- (JSC::JSParser::Scope::getUncapturedWrittenVariables):
- (JSC::JSParser::Scope::getDeletedVariables):
- (JSC::JSParser::Scope::setStrictMode):
- (JSC::JSParser::Scope::strictMode):
- (JSC::JSParser::Scope::isValidStrictMode):
- (JSC::JSParser::pushScope):
- (JSC::JSParser::popScope):
- (JSC::JSParser::declareVariable):
- (JSC::JSParser::declareWrite):
- (JSC::JSParser::deleteProperty):
- (JSC::jsParse):
- (JSC::JSParser::JSParser):
- (JSC::JSParser::parseProgram):
- (JSC::JSParser::parseSourceElements):
- (JSC::JSParser::parseDoWhileStatement):
- (JSC::JSParser::parseWhileStatement):
- (JSC::JSParser::parseVarDeclarationList):
- (JSC::JSParser::parseConstDeclarationList):
- (JSC::JSParser::parseForStatement):
- (JSC::JSParser::parseBreakStatement):
- (JSC::JSParser::parseContinueStatement):
- (JSC::JSParser::parseReturnStatement):
- (JSC::JSParser::parseWithStatement):
- (JSC::JSParser::parseSwitchStatement):
- (JSC::JSParser::parseSwitchClauses):
- (JSC::JSParser::parseSwitchDefaultClause):
- (JSC::JSParser::parseTryStatement):
- (JSC::JSParser::parseBlockStatement):
- (JSC::JSParser::parseStatement):
- (JSC::JSParser::parseFormalParameters):
- (JSC::JSParser::parseFunctionBody):
- (JSC::JSParser::parseFunctionInfo):
- (JSC::JSParser::parseFunctionDeclaration):
- (JSC::JSParser::parseExpressionOrLabelStatement):
- (JSC::JSParser::parseIfStatement):
- (JSC::JSParser::parseExpression):
- (JSC::JSParser::parseAssignmentExpression):
- (JSC::JSParser::parseConditionalExpression):
- (JSC::JSParser::parseBinaryExpression):
- (JSC::JSParser::parseStrictObjectLiteral):
- (JSC::JSParser::parsePrimaryExpression):
- (JSC::JSParser::parseMemberExpression):
- (JSC::JSParser::parseUnaryExpression):
- * parser/JSParser.h:
- * parser/Lexer.cpp:
- (JSC::Lexer::parseString):
- (JSC::Lexer::lex):
- * parser/Lexer.h:
- (JSC::Lexer::isReparsing):
- * parser/Nodes.cpp:
- (JSC::ScopeNode::ScopeNode):
- (JSC::FunctionBodyNode::FunctionBodyNode):
- (JSC::FunctionBodyNode::create):
- * parser/Nodes.h:
- (JSC::ScopeNode::isStrictMode):
- * parser/Parser.cpp:
- (JSC::Parser::parse):
- * parser/Parser.h:
- (JSC::Parser::parse):
- * parser/SyntaxChecker.h:
- (JSC::SyntaxChecker::SyntaxChecker):
- (JSC::SyntaxChecker::makeFunctionCallNode):
- (JSC::SyntaxChecker::appendToComma):
- (JSC::SyntaxChecker::createCommaExpr):
- (JSC::SyntaxChecker::makeAssignNode):
- (JSC::SyntaxChecker::makePrefixNode):
- (JSC::SyntaxChecker::makePostfixNode):
- (JSC::SyntaxChecker::makeTypeOfNode):
- (JSC::SyntaxChecker::makeDeleteNode):
- (JSC::SyntaxChecker::makeNegateNode):
- (JSC::SyntaxChecker::makeBitwiseNotNode):
- (JSC::SyntaxChecker::createLogicalNot):
- (JSC::SyntaxChecker::createUnaryPlus):
- (JSC::SyntaxChecker::createVoid):
- (JSC::SyntaxChecker::thisExpr):
- (JSC::SyntaxChecker::createResolve):
- (JSC::SyntaxChecker::createObjectLiteral):
- (JSC::SyntaxChecker::createArray):
- (JSC::SyntaxChecker::createNumberExpr):
- (JSC::SyntaxChecker::createString):
- (JSC::SyntaxChecker::createBoolean):
- (JSC::SyntaxChecker::createNull):
- (JSC::SyntaxChecker::createBracketAccess):
- (JSC::SyntaxChecker::createDotAccess):
- (JSC::SyntaxChecker::createRegex):
- (JSC::SyntaxChecker::createNewExpr):
- (JSC::SyntaxChecker::createConditionalExpr):
- (JSC::SyntaxChecker::createAssignResolve):
- (JSC::SyntaxChecker::createFunctionExpr):
- (JSC::SyntaxChecker::createFunctionBody):
- (JSC::SyntaxChecker::appendBinaryExpressionInfo):
- (JSC::SyntaxChecker::operatorStackPop):
- * runtime/Arguments.cpp:
- (JSC::Arguments::createStrictModeCallerIfNecessary):
- (JSC::Arguments::createStrictModeCalleeIfNecessary):
- (JSC::Arguments::getOwnPropertySlot):
- (JSC::Arguments::getOwnPropertyDescriptor):
- (JSC::Arguments::put):
- (JSC::Arguments::deleteProperty):
- * runtime/Arguments.h:
- (JSC::Arguments::Arguments):
- * runtime/CommonIdentifiers.cpp:
- (JSC::CommonIdentifiers::CommonIdentifiers):
- * runtime/CommonIdentifiers.h:
- * runtime/Error.cpp:
- (JSC::StrictModeTypeErrorFunction::StrictModeTypeErrorFunction):
- (JSC::StrictModeTypeErrorFunction::constructThrowTypeError):
- (JSC::StrictModeTypeErrorFunction::getConstructData):
- (JSC::StrictModeTypeErrorFunction::callThrowTypeError):
- (JSC::StrictModeTypeErrorFunction::getCallData):
- (JSC::createTypeErrorFunction):
- * runtime/Error.h:
+ * runtime/Completion.cpp:
+ (JSC::checkSyntax):
+ (JSC::evaluate):
* runtime/Executable.cpp:
(JSC::EvalExecutable::EvalExecutable):
(JSC::ProgramExecutable::ProgramExecutable):
(JSC::FunctionExecutable::FunctionExecutable):
- (JSC::EvalExecutable::compileInternal):
- (JSC::ProgramExecutable::checkSyntax):
- (JSC::ProgramExecutable::compileInternal):
- (JSC::FunctionExecutable::compileForCallInternal):
- (JSC::FunctionExecutable::compileForConstructInternal):
- (JSC::FunctionExecutable::reparseExceptionInfo):
- (JSC::EvalExecutable::reparseExceptionInfo):
+ (JSC::FunctionExecutable::~FunctionExecutable):
+ (JSC::EvalExecutable::markChildren):
+ (JSC::ProgramExecutable::markChildren):
+ (JSC::FunctionExecutable::markChildren):
(JSC::FunctionExecutable::fromGlobalCode):
- (JSC::ProgramExecutable::reparseExceptionInfo):
* runtime/Executable.h:
+ (JSC::ExecutableBase::ExecutableBase):
+ (JSC::ExecutableBase::createStructure):
+ (JSC::NativeExecutable::create):
+ (JSC::NativeExecutable::NativeExecutable):
+ (JSC::VPtrHackExecutable::VPtrHackExecutable):
(JSC::ScriptExecutable::ScriptExecutable):
- (JSC::ScriptExecutable::isStrictMode):
(JSC::EvalExecutable::create):
+ (JSC::EvalExecutable::createStructure):
+ (JSC::ProgramExecutable::create):
+ (JSC::ProgramExecutable::createStructure):
(JSC::FunctionExecutable::create):
+ (JSC::FunctionExecutable::createStructure):
+ * runtime/FunctionConstructor.cpp:
+ (JSC::constructFunction):
+ * runtime/Heap.cpp:
+ (JSC::Heap::destroy):
+ (JSC::Heap::markRoots):
+ * runtime/Heap.h:
* runtime/JSActivation.cpp:
- (JSC::JSActivation::toStrictThisObject):
+ (JSC::JSActivation::JSActivation):
+ (JSC::JSActivation::markChildren):
* runtime/JSActivation.h:
+ (JSC::JSActivation::JSActivationData::JSActivationData):
+ * runtime/JSCell.h:
* runtime/JSFunction.cpp:
- (JSC::createDescriptorForThrowingProperty):
- (JSC::JSFunction::getOwnPropertySlot):
- (JSC::JSFunction::getOwnPropertyDescriptor):
- (JSC::JSFunction::put):
+ (JSC::JSFunction::JSFunction):
+ (JSC::JSFunction::~JSFunction):
+ (JSC::JSFunction::markChildren):
+ * runtime/JSFunction.h:
* runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::storeVPtrs):
(JSC::JSGlobalData::JSGlobalData):
+ (JSC::JSGlobalData::getHostFunction):
* runtime/JSGlobalData.h:
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::reset):
- * runtime/JSGlobalObject.h:
- (JSC::JSGlobalObject::internalFunctionStructure):
* runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncEval):
* runtime/JSObject.cpp:
- (JSC::JSObject::put):
- (JSC::JSObject::toStrictThisObject):
- (JSC::throwTypeError):
- * runtime/JSObject.h:
- (JSC::JSObject::isStrictModeFunction):
- (JSC::JSObject::putDirectInternal):
- (JSC::JSObject::putDirect):
- (JSC::JSValue::putDirect):
- (JSC::JSValue::toStrictThisObject):
* runtime/JSStaticScopeObject.cpp:
- (JSC::JSStaticScopeObject::toStrictThisObject):
+ (JSC::JSStaticScopeObject::markChildren):
* runtime/JSStaticScopeObject.h:
- * runtime/JSValue.h:
+ (JSC::JSStaticScopeObject::JSStaticScopeObjectData::JSStaticScopeObjectData):
+ (JSC::JSStaticScopeObject::JSStaticScopeObject):
+ * runtime/JSZombie.cpp:
+ (JSC::JSZombie::leakedZombieStructure):
* runtime/JSZombie.h:
- (JSC::JSZombie::toStrictThisObject):
- * runtime/PutPropertySlot.h:
- (JSC::PutPropertySlot::PutPropertySlot):
- (JSC::PutPropertySlot::isStrictMode):
- * runtime/StrictEvalActivation.cpp: Added.
- (JSC::StrictEvalActivation::StrictEvalActivation):
- (JSC::StrictEvalActivation::deleteProperty):
- (JSC::StrictEvalActivation::toThisObject):
- (JSC::StrictEvalActivation::toStrictThisObject):
- * runtime/StrictEvalActivation.h: Added.
-
-2010-10-10 Patrick Gansterer <paroga@webkit.org>
-
- Unreviewed.
-
- Windows build fix after r69472.
-
- * wtf/text/StringHash.h:
- (WTF::CaseFoldingHash::hash):
-
-2010-10-10 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by Adam Barth.
-
- Use WTF::StringHasher in WTF::CaseFoldingHash
- https://bugs.webkit.org/show_bug.cgi?id=46523
-
- * wtf/text/StringHash.h:
- (WTF::CaseFoldingHash::foldCase):
- (WTF::CaseFoldingHash::hash):
-
-2010-10-09 Pratik Solanki <psolanki@apple.com>
-
- Reviewed by Xan Lopez.
-
- https://bugs.webkit.org/show_bug.cgi?id=47445
- Remove unused function WTFThreadData::initializeIdentifierTable()
-
- * wtf/WTFThreadData.h:
-
-2010-10-08 Michael Saboff <msaboff@apple.com>
-
- Reviewed by Darin Adler.
-
- Added check to start of subexpression being positive before using
- subexpression in replacement.
- https://bugs.webkit.org/show_bug.cgi?id=47324
-
- * runtime/StringPrototype.cpp:
- (JSC::substituteBackreferencesSlow):
-
-2010-10-08 Chris Evans <cevans@google.com>
-
- Reviewed by David Levin.
-
- https://bugs.webkit.org/show_bug.cgi?id=47393
-
- Use unsigned consistently to check for max StringImpl length.
- Add a few integer overflow checks.
- Uses the existing paradigm of CRASH() when we can't reasonably handle a crazily large request.
+ (JSC::JSZombie::createStructure):
+ * runtime/MarkedSpace.h:
- * wtf/text/WTFString.cpp:
- * wtf/text/StringImpl.h:
- * wtf/text/StringImpl.cpp:
- Better use of size_t vs. unsigned; check for integer overflows.
+2011-03-07 Andy Estes <aestes@apple.com>
-2010-10-07 David Goodwin <david_goodwin@apple.com>
+ Reviewed by Dan Bernstein.
- Reviewed by Oliver Hunt.
+ REGRESSION (r79060): Timestamp is missing from tweets in twitter.
+ https://bugs.webkit.org/show_bug.cgi?id=55228
- ARM JIT generates undefined operations due to partially uninitialized ShiftTypeAndAmount
- https://bugs.webkit.org/show_bug.cgi?id=47356
+ A change to the date parser to handle the case where the year is
+ specified before the time zone inadvertently started accepting strings
+ such as '+0000' as valid years. Those strings actually represent time
+ zones in an offset of hours and minutes from UTC, not years.
- * assembler/ARMv7Assembler.h:
+ * wtf/DateMath.cpp:
+ (WTF::parseDateFromNullTerminatedCharacters): If the current character
+ in dateString is '+' or '-', do not try to parse the next token as a
+ year.
-2010-10-06 Chris Evans <cevans@google.com>
+2011-03-06 Yuta Kitamura <yutak@chromium.org>
- Reviewed by David Levin.
+ Reviewed by Kent Tamura.
- https://bugs.webkit.org/show_bug.cgi?id=47248
+ Add SHA-1 for new WebSocket protocol
+ https://bugs.webkit.org/show_bug.cgi?id=55039
- Use size_t consistently in CString, to prevent theoretical trouble
- with > 4GB strings on 64-bit platforms.
+ The code is based on Chromium's portable SHA-1 implementation
+ (src/base/sha1_portable.cc). Modifications were made in order
+ to make the code comply with WebKit coding style.
- * wtf/text/CString.h:
- * wtf/text/CString.cpp:
- Use size_t for string lengths.
- * wtf/MD5.cpp:
- (WTF::expectMD5): use suitable format string + cast for size_t.
+ * GNUmakefile.am:
* JavaScriptCore.exp:
- Update symbol name.
-
-2010-10-06 Anders Carlsson <andersca@apple.com>
-
- Reviewed by Sam Weinig.
-
- Start cleaning up Arguments.h
- https://bugs.webkit.org/show_bug.cgi?id=47304
-
- * wtf/TypeTraits.h:
- * wtf/TypeTraits.cpp:
- Add RemoveReference type trait.
-
-2010-10-06 Rafael Antognolli <antognolli@profusion.mobi>
-
- Unreviewed build fix.
-
- [EFL] Build fix for glib support.
- https://bugs.webkit.org/show_bug.cgi?id=47221
-
- If compiling with GLib support enabled, we also need to link wtf against
- glib library.
-
- * wtf/CMakeListsEfl.txt:
-
-2010-10-05 Kwang Yul Seo <skyul@company100.net>
+ * JavaScriptCore.gypi:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * wtf/CMakeLists.txt:
+ * wtf/MD5.cpp:
+ (WTF::MD5::MD5):
+ * wtf/SHA1.cpp: Added.
+ (WTF::testSHA1): This function will be run the first time SHA1
+ constructor is called. This function computes a few hash values
+ and checks the results in debug builds. However, constructor is
+ probably not a good place to run these tests, so we need to find
+ a good place for it (bug 55853).
+ (WTF::expectSHA1):
+ (WTF::f):
+ (WTF::k):
+ (WTF::rotateLeft):
+ (WTF::SHA1::SHA1):
+ (WTF::SHA1::addBytes):
+ (WTF::SHA1::computeHash):
+ (WTF::SHA1::finalize):
+ (WTF::SHA1::processBlock):
+ (WTF::SHA1::reset):
+ * wtf/SHA1.h: Added.
+ (WTF::SHA1::addBytes):
+ * wtf/wtf.pri:
- Reviewed by Gavin Barraclough.
+2011-03-05 Adam Barth <abarth@webkit.org>
- [BREWMP] Port ExecutableAllocator::cacheFlush to enable ARM JIT
- https://bugs.webkit.org/show_bug.cgi?id=47117
+ Reviewed by Dimitri Glazkov.
- Use IMemCache1 to flush data cache and invalidate instruction cache.
+ Add Derived Sources to WebCore GYP build
+ https://bugs.webkit.org/show_bug.cgi?id=55813
- * jit/ExecutableAllocator.h:
- (JSC::ExecutableAllocator::cacheFlush):
+ Rename the action to be friendlier.
-2010-10-05 Leandro Pereira <leandro@profusion.mobi>
+ * gyp/JavaScriptCore.gyp:
- Unreviewed. Build fix.
+2011-03-04 Viatcheslav Ostapenko <ostapenko.viatcheslav@nokia.com>
- Moved "jsc" directory to "shell", so that the name does not clash with the
- JavaScriptCore shell in some build systems.
- http://webkit.org/b/47049
+ Reviewed by Laszlo Gombos.
- * CMakeLists.txt: Changed reference from "jsc" to "shell".
- * jsc: Removed.
- * jsc/CMakeLists.txt: Removed.
- * jsc/CMakeListsEfl.txt: Removed.
- * shell: Copied from JavaScriptCore/jsc.
+ [Qt] Need symbian version of cryptographicallyRandomValuesFromOS
+ https://bugs.webkit.org/show_bug.cgi?id=55782
-2010-10-05 Kwang Yul Seo <skyul@company100.net>
+ Implement Symbian version of cryptographicallyRandomValuesFromOS
- Reviewed by Kent Tamura.
+ * wtf/OSRandomSource.cpp:
+ (WTF::cryptographicallyRandomValuesFromOS):
- [BREWMP] Use PlatformRefPtr in randomNumber
- https://bugs.webkit.org/show_bug.cgi?id=46989
+2011-03-04 Gavin Barraclough <barraclough@apple.com>
- Use PlatformRefPtr to free memory automatically.
+ Reviewed by Cameron Zwarich.
- * wtf/RandomNumber.cpp:
- (WTF::randomNumber):
+ Bug 55815 - Should throw an exception from JSObject::defineOwnProperty if !isExtensible().
-2010-10-05 Oliver Hunt <oliver@apple.com>
+ * runtime/JSObject.cpp:
+ (JSC::JSObject::defineOwnProperty):
+ Add missing check.
- Reviewed by Darin Adler.
+2011-03-04 Gavin Barraclough <barraclough@apple.com>
- REGRESSION(r68338): JavaScript error on PowerPC only (crashes on Interpreter built for x86_64)
- https://bugs.webkit.org/show_bug.cgi?id=46690
+ Rubber stamped by olliej.
- Use the correct register value when initialising the arguments
- object in the interpreter. This is covered by existing tests.
+ Bug 54945 - The web page hangs towards the end of page load in Interpreter enabled javascript code in the latest webkit trunk.
* interpreter/Interpreter.cpp:
(JSC::Interpreter::privateExecute):
+ (1) don't infinite loop.
+ (2) goto 1.
-2010-10-04 David Goodwin <david_goodwin@apple.com>
+2011-03-04 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Oliver Hunt.
+ cmake build fix.
- ARMv7 JIT should take advantage of 2-byte branches to reduce code size
- https://bugs.webkit.org/show_bug.cgi?id=47007
+ * CMakeLists.txt:
- * assembler/ARMv7Assembler.cpp:
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::computeJumpType):
- (JSC::ARMv7Assembler::link):
- (JSC::ARMv7Assembler::canBeJumpT2):
- (JSC::ARMv7Assembler::canBeJumpT4):
- (JSC::ARMv7Assembler::linkBX):
- (JSC::ARMv7Assembler::linkJumpT4):
- (JSC::ARMv7Assembler::linkJumpT2):
- (JSC::ARMv7Assembler::linkJumpAbsolute):
+2011-03-04 Adam Barth <abarth@webkit.org>
-2010-10-04 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+ Reviewed by Dimitri Glazkov.
- Reviewed by Antonio Gomes.
+ Add Copy Files step to JavaScriptCore GYP build for apitest and minidom
+ https://bugs.webkit.org/show_bug.cgi?id=55798
- [EFL] Use fast malloc for WebKit EFL
- https://bugs.webkit.org/show_bug.cgi?id=46691
+ * JavaScriptCore.gypi:
+ * gyp/JavaScriptCore.gyp:
- Use fast malloc for WebKit EFL because the fast malloc is to allocate
- memory quickly.
+2011-03-04 Adam Barth <abarth@webkit.org>
- * wtf/CMakeListsEfl.txt:
+ Reviewed by Dimitri Glazkov.
-2010-10-04 Oliver Hunt <oliver@apple.com>
+ Remove unneeded round-trips through ../Source in the Chromium GYP build
+ https://bugs.webkit.org/show_bug.cgi?id=55795
- Reviewed by Geoff Garen.
+ * JavaScriptCore.gyp/JavaScriptCore.gyp:
- Lazily create activation objects
- https://bugs.webkit.org/show_bug.cgi?id=47107
+2011-03-04 Adam Barth <abarth@webkit.org>
- Make it possible to lazily create the activation object
- for a function that needs one. This allows us to reduce
- the overhead of entering a function that may require
- an activation in some cases, but not always.
+ Reviewed by Dimitri Glazkov.
- This does make exception handling a little more complex as
- it's now necessary to verify that a callframes activation
- has been created, and create it if not, in all of the
- paths used in exception handling.
+ Use target_defaults to reduce boilerplate in GYP build system
+ https://bugs.webkit.org/show_bug.cgi?id=55790
- We also need to add logic to check for the existence of
- the activation in the scoped_var opcodes, as well as
- op_ret, op_ret_object_or_this and op_tearoff_activation
- so that we can avoid creating an activation unnecesarily
- on function exit.
+ Instead of setting up the configuration in each target, just defer to
+ target_defaults. Also, removed a define that was redundant with the
+ xcconfig.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- (JSC::CodeBlock::reparseForExceptionInfoIfNecessary):
- (JSC::CodeBlock::createActivation):
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::setActivationRegister):
- (JSC::CodeBlock::activationRegister):
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::emitNewFunctionInternal):
- (JSC::BytecodeGenerator::emitNewFunctionExpression):
- (JSC::BytecodeGenerator::createActivationIfNecessary):
- * bytecompiler/BytecodeGenerator.h:
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::resolveSkip):
- (JSC::Interpreter::resolveGlobalDynamic):
- (JSC::Interpreter::resolveBase):
- (JSC::Interpreter::unwindCallFrame):
- (JSC::Interpreter::throwException):
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- * jit/JIT.h:
- * jit/JITCall32_64.cpp:
- (JSC::JIT::emit_op_ret):
- (JSC::JIT::emit_op_ret_object_or_this):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_end):
- (JSC::JIT::emit_op_get_scoped_var):
- (JSC::JIT::emit_op_put_scoped_var):
- (JSC::JIT::emit_op_tear_off_activation):
- (JSC::JIT::emit_op_ret):
- (JSC::JIT::emit_op_ret_object_or_this):
- (JSC::JIT::emit_op_create_activation):
- (JSC::JIT::emit_op_resolve_global_dynamic):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_get_scoped_var):
- (JSC::JIT::emit_op_put_scoped_var):
- (JSC::JIT::emit_op_tear_off_activation):
- (JSC::JIT::emit_op_create_activation):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
+ * gyp/JavaScriptCore.gyp:
-2010-10-04 Adam Barth <abarth@webkit.org>
+2011-03-03 Gavin Barraclough <barraclough@apple.com>
Reviewed by Sam Weinig.
- Remove ENABLE_SANDBOX
- https://bugs.webkit.org/show_bug.cgi?id=47032
-
- * Configurations/FeatureDefines.xcconfig:
-
-2010-10-01 Pratik Solanki <psolanki@apple.com>
-
- Reviewed by Geoffrey Garen.
- Specify ALWAYS_INLINE at function declaration not function definition
- https://bugs.webkit.org/show_bug.cgi?id=46960
-
- For functions defined with ALWAYS_INLINE, add the attribute to the declaration as well.
-
- * bytecompiler/BytecodeGenerator.h:
- * wtf/FastMalloc.cpp:
-
-2010-10-01 Kwang Yul Seo <skyul@company100.net>
-
- Unreviewed.
-
- [BREWMP] Change Collector BLOCK_SIZE to 64KB
- https://bugs.webkit.org/show_bug.cgi?id=46436
+ Bug 55736 - Implement seal/freeze/preventExtensions for normal object types.
+ Provide basic functionallity from section 15.2.4 of ECMA-262.
+ This support will need expanding to cover arrays, too.
- Lower BLOCK_SIZE to 64KB because Brew MP runs on low end devices.
+ Shows a 0.5% progression on SunSpidey, this seems to be due to changing
+ ObjectConstructor to use a static table.
- * runtime/Collector.h:
+ * DerivedSources.make:
+ * JavaScriptCore.exp:
+ * interpreter/CallFrame.h:
+ (JSC::ExecState::objectConstructorTable):
+ Add a static table for ObjectConstructor.
+ * runtime/CommonIdentifiers.h:
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::JSGlobalData):
+ (JSC::JSGlobalData::~JSGlobalData):
+ Add a static table for ObjectConstructor.
+ * runtime/JSGlobalData.h:
+ * runtime/JSGlobalObject.cpp:
+ (JSC::JSGlobalObject::reset):
+ Add a static table for ObjectConstructor.
+ * runtime/JSObject.cpp:
+ (JSC::JSObject::seal):
+ (JSC::JSObject::freeze):
+ (JSC::JSObject::preventExtensions):
+ Transition the object's structure.
+ (JSC::JSObject::defineOwnProperty):
+ Check isExtensible.
+ * runtime/JSObject.h:
+ (JSC::JSObject::isSealed):
+ (JSC::JSObject::isFrozen):
+ (JSC::JSObject::isExtensible):
+ These wrap method on structure.
+ (JSC::JSObject::putDirectInternal):
+ Check isExtensible.
+ * runtime/ObjectConstructor.cpp:
+ (JSC::ObjectConstructor::ObjectConstructor):
+ (JSC::ObjectConstructor::getOwnPropertySlot):
+ (JSC::ObjectConstructor::getOwnPropertyDescriptor):
+ Change ObjectConstructor to use a static table.
+ (JSC::objectConstructorSeal):
+ (JSC::objectConstructorFreeze):
+ (JSC::objectConstructorPreventExtensions):
+ (JSC::objectConstructorIsSealed):
+ (JSC::objectConstructorIsFrozen):
+ (JSC::objectConstructorIsExtensible):
+ Add new methods on Object.
+ * runtime/ObjectConstructor.h:
+ (JSC::ObjectConstructor::createStructure):
+ * runtime/Structure.cpp:
+ (JSC::Structure::Structure):
+ init/propagate m_preventExtensions
+ (JSC::Structure::sealTransition):
+ (JSC::Structure::freezeTransition):
+ (JSC::Structure::preventExtensionsTransition):
+ transition the structure, materializing the property map, setting m_preventExtensions & changing attributes.
+ (JSC::Structure::isSealed):
+ (JSC::Structure::isFrozen):
+ check attributes to detect if object is sealed/frozen.
+ * runtime/Structure.h:
+ (JSC::Structure::isExtensible):
+ checks the m_preventExtensions flag.
-2010-10-01 Viatcheslav Ostapenko <ostapenko.viatcheslav@nokia.com>
+2011-03-04 Steve Falkenburg <sfalken@apple.com>
- Reviewed by Andreas Kling.
+ Reviewed by Jon Honeycutt.
- [Qt] Stack overflow on symbian platform.
- https://bugs.webkit.org/show_bug.cgi?id=40598
+ Adopt VersionStamper tool for Windows WebKit DLLs
+ https://bugs.webkit.org/show_bug.cgi?id=55784
+ <rdar://problem/9021273>
- Move big allocation in arrayProtoFuncToString from stack to heap.
- JSC::arrayProtoFuncToString function can be called recursivly and
- 1K allocation on stack cahse stack overflow.
- Can be useful for other platforms with limited stack size.
-
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncToString):
-
-2010-09-30 Kwang Yul Seo <skyul@company100.net>
+ We now use a tool to stamp the version number onto the Apple WebKit DLLs
+ during the post-build step.
- Reviewed by Kent Tamura.
-
- [BREWMP] Add a factory function which returns an instance wrapped in PlatformRefPtr.
- https://bugs.webkit.org/show_bug.cgi?id=46373
-
- A Brew MP instance has reference count 1 when it is created, so call adoptPlatformRef
- to wrap the instance in PlatformRefPtr.
-
- * wtf/brew/ShellBrew.h:
- (WTF::createRefPtrInstance):
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.rc: Removed.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePostBuild.cmd:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePreBuild.cmd:
-2010-09-30 Kwang Yul Seo <skyul@company100.net>
+2011-03-04 Adam Barth <abarth@webkit.org>
- Reviewed by Kent Tamura.
+ Reviewed by Dimitri Glazkov.
- [BREWMP] Port PlatformRefPtr
- https://bugs.webkit.org/show_bug.cgi?id=46370
+ JavaScriptCore GYP build should use a header map
+ https://bugs.webkit.org/show_bug.cgi?id=55712
- Implement refPlatformPtr and derefPlatformPtr to use PlatformRefPtr in Brew MP.
+ This patch moves the os-win32 files into their own variable so that we
+ can use a header map in the Apple Mac Xcode build. The problem is that
+ the header map searches the whole project rather than just the files
+ included in a given target. Another solution to this problem is to
+ make GYP smarter about filtering out what files are added to the
+ project file.
- * wtf/brew/RefPtrBrew.h: Added.
- (WTF::refPlatformPtr):
- (WTF::derefPlatformPtr):
+ * JavaScriptCore.gypi:
+ * gyp/JavaScriptCore.gyp:
-2010-09-29 Sam Weinig <sam@webkit.org>
+2011-03-03 Ryosuke Niwa <rniwa@webkit.org>
Reviewed by Darin Adler.
- Add additional checks to StringBuffer.
- <rdar://problem/7756381>
-
- * wtf/text/StringBuffer.h:
- (WTF::StringBuffer::StringBuffer):
- (WTF::StringBuffer::resize):
-
-2010-09-30 Chris Marrin <cmarrin@apple.com>
-
- Reviewed by Simon Fraser.
-
- Make 2D accelerated canvas rendering build on Mac
- https://bugs.webkit.org/show_bug.cgi?id=46007
-
- Added ACCELERATED_2D_CANVAS to FeatureDefines
-
- * Configurations/FeatureDefines.xcconfig:
-
-2010-09-30 Kevin Ollivier <kevino@theolliviers.com>
-
- [wx] wxMSW build fix. Make sure we copy the compiler flags and remove exception handling from
- the copy so as not to alter global settings.
-
- * wscript:
-
-2010-09-30 Peter Varga <pvarga@inf.u-szeged.hu>
-
- Reviewed by Gavin Barraclough.
-
- The case-insensitivity backreference checking isn't working with YARR
- Interpreter
- https://bugs.webkit.org/show_bug.cgi?id=46882
-
- Add ignorecase checking to the Interpreter::tryConsumeBackReference() function.
-
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::tryConsumeBackReference):
-
-2010-09-30 Kwang Yul Seo <skyul@company100.net>
-
- Reviewed by Andreas Kling.
-
- [BREWMP] Leave initializeRandomNumberGenerator empty.
- https://bugs.webkit.org/show_bug.cgi?id=46851
-
- On Brew MP, AEECLSID_RANDOM initializes itself.
-
- * wtf/RandomNumberSeed.h:
- (WTF::initializeRandomNumberGenerator):
-
-2010-09-30 Gabor Loki <loki@webkit.org>
-
- Reviewed by Csaba Osztrogonác.
-
- Remove unnecessary cacheFlush calls from Thumb-2
- https://bugs.webkit.org/show_bug.cgi?id=46702
-
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::relinkCall):
- (JSC::ARMv7Assembler::repatchInt32):
- (JSC::ARMv7Assembler::repatchPointer):
-
-2010-09-29 Patrick Gansterer <paroga@webkit.org>
-
- Unreviewed.
-
- Next try to fix cygwin build.
-
- * wtf/Assertions.cpp:
-
-2010-09-29 Patrick Gansterer <paroga@webkit.org>
-
- Unreviewed.
-
- Build fix for cygwin #2. It's OS(WINDOWS), not OS(WIN).
-
- * wtf/Assertions.cpp:
-
-2010-09-29 Patrick Gansterer <paroga@webkit.org>
-
- Unreviewed.
-
- Build fix for cygwin.
-
- * wtf/Assertions.cpp:
-
-2010-09-29 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by Andreas Kling.
-
- [WINCE] Buildfix for Assertions.cpp after r68511.
- https://bugs.webkit.org/show_bug.cgi?id=46807
-
- Some, but not all WinCE environments have support for IsDebuggerPresent().
- Add HAVE(ISDEBUGGERPRESENT) to make this a build option.
- HAVE(ISDEBUGGERPRESENT) will be 1 for all OS(WIN) by default.
-
- * wtf/Assertions.cpp:
- * wtf/Platform.h:
+ Remove LOOSE_PASS_OWN_ARRAY_PTR from PassOwnArrayPtr.h
+ https://bugs.webkit.org/show_bug.cgi?id=55554
-2010-09-29 Peter Varga <pvarga@inf.u-szeged.hu>
-
- Reviewed by Csaba Osztrogonác.
-
- JSC compile fails on 32bit platform when Regexp Tracing is enabled
- https://bugs.webkit.org/show_bug.cgi?id=46713
-
- Fix the cast of pointer in regexp tracing to avoid the warning.
-
- * runtime/RegExp.cpp:
- (JSC::RegExp::match):
-
-2010-09-28 Anders Carlsson <andersca@apple.com>
-
- Reviewed by Sam Weinig.
-
- Begin hooking up painting in the plug-in process
- https://bugs.webkit.org/show_bug.cgi?id=46766
-
- * JavaScriptCore.exp:
- Add tryFastRealloc, used by WebKit2.
-
-2010-09-28 Philippe Normand <pnormand@igalia.com>
-
- Reviewed by Martin Robinson.
-
- Guard GRefPtr/GOwnPtr files with ENABLE(GLIB_SUPPORT)
- https://bugs.webkit.org/show_bug.cgi?id=46721
-
- Enable GOwnPtr/GRefPtr build only if glib support has been
- explicitly enabled using the WTF_ENABLE_GLIB_SUPPORT macro.
-
- * wtf/gobject/GOwnPtr.cpp:
- * wtf/gobject/GOwnPtr.h:
- * wtf/gobject/GRefPtr.cpp:
- * wtf/gobject/GRefPtr.h:
-
-2010-09-28 İsmail Dönmez <ismail@namtrac.org>
-
- Reviewed by Andreas Kling.
-
- Test for WINCE instead of WINCEBASIC, compiler always defines WINCE.
- Remove reference to unexisting path JavaScriptCore/os-wince.
-
- * JavaScriptCore.pri:
- * wtf/Assertions.cpp:
-
-2010-09-27 Michael Saboff <msaboff@apple.com>
+ * runtime/JSGlobalObject.cpp:
+ (JSC::JSGlobalObject::copyGlobalsTo): Pass nullptr instead of 0.
+ (JSC::JSGlobalObject::resizeRegisters): Ditto; also use OwnArrayPtr instead of a raw pointer.
+ * runtime/JSGlobalObject.h:
+ (JSC::JSGlobalObject::addStaticGlobals): Ditto.
+ * wtf/PassOwnArrayPtr.h: Removed #define LOOSE_PASS_OWN_ARRAY_PTR
+ (WTF::PassOwnArrayPtr::PassOwnArrayPtr): Added a constructor that takes nullptr_t.
- Reviewed by Geoffrey Garen.
+2011-03-03 Adam Barth <abarth@webkit.org>
- Changed the initialization of JSArray objects to have space for
- 3 elements for the constructor that takes a ArgList argument.
- This improves v8-deltablue performance by about 2.8% by reducing
- the number of realloc() calls.
- https://bugs.webkit.org/show_bug.cgi?id=46664
+ Reviewed by Dimitri Glazkov.
- * runtime/JSArray.cpp:
- (JSC::JSArray::JSArray):
+ Add jsc to JavaScriptCore GYP build
+ https://bugs.webkit.org/show_bug.cgi?id=55711
-2010-09-27 Gavin Barraclough <barraclough@apple.com>
+ * JavaScriptCore.gypi:
+ - Move jsc.cpp into jsc_files because it's really part of the jsc
+ target.
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ - Remove extraneous files from the normal jsc build. I probably
+ added these by mistake at some point.
+ * gyp/JavaScriptCore.gyp:
+ - Add the jsc target to the GYP file.
- Reviewed by Darin Adler.
+2011-03-03 Adam Barth <abarth@webkit.org>
- Bug 46680 - Inlining string concatenation can regress interpreter performance
- <rdar://problem/8362752> REGRESSION: ~6.4% sunspider regression in interpreter
- Do not inline calls to string concatenation in the interpret loop.
+ Reviewed by Dimitri Glazkov.
- * interpreter/Interpreter.cpp:
- (JSC::concatenateStrings):
- (JSC::Interpreter::privateExecute):
+ Add testapi to JavaScriptCore GYP build
+ https://bugs.webkit.org/show_bug.cgi?id=55707
-2010-09-27 Anders Carlsson <andersca@apple.com>
+ The new testapi target is slightly incomplete. There's a resource
+ copying step that we don't quite have yet.
- Fix thinko.
+ This patch also cleans up some of the configuration issues in
+ JavaScriptCore.xcodeproj. It seems kind of wordy to repeat these for
+ each target. I suspect there's a more compact way of defining the
+ configurations, but this removes the "Default" configuration, which is
+ progress.
- * runtime/JSCell.h:
+ * JavaScriptCore.gypi:
+ * gyp/JavaScriptCore.gyp:
-2010-09-27 Anders Carlsson <andersca@apple.com>
+2011-03-03 Adam Barth <abarth@webkit.org>
- Reviewed by Adam Roben.
+ Reviewed by Eric Seidel.
- Try to fix Windows build.
+ Teach JavaScriptCore GYP build about private headers
+ https://bugs.webkit.org/show_bug.cgi?id=55532
- * runtime/JSCell.h:
- (JSC::MSVCBugWorkaround::MSVCBugWorkaround):
- (JSC::MSVCBugWorkaround::~MSVCBugWorkaround):
+ This patch distinguishes between public and private framework headers
+ so that public headers are copied into the Headers directory and
+ private headers are copied into the PrivateHeaders directory.
-2010-09-27 Erik Arvidsson <arv@chromium.org>
+ * gyp/JavaScriptCore.gyp:
- Reviewed by Darin Adler.
+2011-03-03 Geoffrey Garen <ggaren@apple.com>
- Add operator == for AtomicString and Vector<Uchar>
- https://bugs.webkit.org/show_bug.cgi?id=46509
+ Rolled out 80277 and 80280 because they caused event handler layout test
+ failures.
* JavaScriptCore.exp:
- * wtf/text/AtomicString.cpp:
- (WTF::operator==):
- * wtf/text/AtomicString.h:
- (WTF::operator==):
- (WTF::operator!=):
-
-2010-09-27 Anders Carlsson <andersca@apple.com>
-
- Try to fix the Windows build.
-
- * wtf/Noncopyable.h:
-
-2010-09-26 Anders Carlsson <andersca@apple.com>
-
- Reviewed by Alexey Proskuryakov and Adam Barth.
-
- Add WTF_MAKE_NONCOPYABLE macro
- https://bugs.webkit.org/show_bug.cgi?id=46589
-
- Going forward, we'd like to get rid of the Noncopyable and FastAllocBase classes. The
- reason for this is that the Itanium C++ ABI states that no empty classes of the same type
- can be laid out at the same offset in the class. This can result in objects getting larger
- which leads to memory regressions. (One example of this is the String class which grew by
- sizeof(void*) when both its base class and its first member variable inherited indirectly
- from FastAllocBase).
-
- * wtf/Noncopyable.h:
- Add a WTF_MAKE_NONCOPYABLE macro and get rid of NoncopyableCustomAllocated.
-
- * runtime/JSCell.h:
- * wtf/RefCounted.h:
- Don't inherit from NoncopyableCustomAllocated. Instead, use WTF_MAKE_NONCOPYABLE.
-
-2010-09-27 Philippe Normand <pnormand@igalia.com>
-
- Reviewed by Martin Robinson.
-
- [GTK] use ENABLE(GLIB_SUPPORT)
- https://bugs.webkit.org/show_bug.cgi?id=46630
-
- * wtf/Platform.h: Include GTypedefs.h only if glib support
- is explicitly enabled.
-
-2010-09-25 Holger Hans Peter Freyther <holger@moiji-mobile.com>
-
- Reviewed by Adam Barth.
-
- jsc: Document the strcat opcode.
- https://bugs.webkit.org/show_bug.cgi?id=46571
-
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
-
-2010-09-21 Holger Hans Peter Freyther <holger@moiji-mobile.com>
-
- Reviewed by Adam Barth.
-
- make-bytecode-docs.pl: Add a comment to the generated HTML
- https://bugs.webkit.org/show_bug.cgi?id=46570
-
- Generate an HTML Comment that this file was generated from
- Interpreter.cpp with the make-bytecode-docs.pl script.
-
- * docs/make-bytecode-docs.pl:
-
-2010-09-27 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by Adam Barth.
-
- Remove WTF::stringHash functions
- https://bugs.webkit.org/show_bug.cgi?id=46520
-
- Since r68289 the stringHash functions are only wrappers around StringHasher::createHash.
- So use StringHasher::createHash directly and remove stringHash.
-
- * wtf/StringHashFunctions.h:
- * wtf/text/StringImpl.h:
- (WTF::StringImpl::computeHash): Use WTF::StringHasher::createHash directly.
-
-2010-09-26 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by Adam Barth.
-
- Add WTF::StringHasher::createBlobHash
- https://bugs.webkit.org/show_bug.cgi?id=46514
-
- Add this function for hashing FormElementKey and QualifiedNameComponents.
-
- * wtf/StringHashFunctions.h:
- (WTF::StringHasher::createBlobHash):
-
-2010-09-26 Patrick Gansterer <paroga@webkit.org>
-
- Reviewed by Adam Barth.
-
- REGRESSION (r68289): Assertion failure in StringHasher::addCharacter() (ch != invalidCharacterValue)
- running websocket/tests/bad-sub-protocol-non-ascii.html
- https://bugs.webkit.org/show_bug.cgi?id=46553
-
- Because we use StringHasher for binary data too, so the check for invalid unicode input is wrong.
- Add an additional member variable to indicate if we have an pending character
- instead of only using an invalid character for this purpose.
-
- * wtf/StringHashFunctions.h:
- (WTF::StringHasher::StringHasher):
- (WTF::StringHasher::addCharacters):
- (WTF::StringHasher::addCharacter):
- (WTF::StringHasher::hash):
-
-2010-09-26 Mark Hahnenberg <mhahnenb@gmail.com>
-
- Reviewed by Oliver Hunt.
-
- valueOf called in wrong order in atan2 and date constructors.
- https://bugs.webkit.org/show_bug.cgi?id=26978
-
- Fixed the bug where the arguments to atan2 were being evaluated
- out of order.
-
- * runtime/MathObject.cpp:
- (JSC::mathProtoFuncATan2):
-
-2010-09-26 Mark Hahnenberg <mhahnenb@gmail.com>
-
- Reviewed by Oliver Hunt.
-
- valueOf called in wrong order in atan2 and date constructors.
- https://bugs.webkit.org/show_bug.cgi?id=26978
-
- Fixed the issue where the parameters to the Date constructor
- were being evaluated to numbers more than once.
-
- * runtime/DateConstructor.cpp:
- (JSC::constructDate):
- (JSC::dateUTC):
-
-2010-09-25 Oliver Hunt <oliver@apple.com>
-
- Fix various builds
-
- Relearning the lesson that last minute changes are bad.
-
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::emitGetArgumentsLength):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emitSlow_op_get_argument_by_val):
-
-2010-09-25 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Cameron Zwarich.
-
- Avoid constructing arguments object when accessing length and index properties
- https://bugs.webkit.org/show_bug.cgi?id=46572
-
- Add opcodes to read argument length and properties, and then implement them.
- Much like other lazy opcodes these opcodes take a fast path when the arguments
- object has not been instantiated, and fall back on generic access mechanisms
- if they are acting on an instantiated object.
-
- 3% win on v8-earleyboyer, no change elsewhere.
-
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::emitGetArgumentsLength):
- (JSC::BytecodeGenerator::emitGetArgumentByVal):
- * bytecompiler/BytecodeGenerator.h:
- * bytecompiler/NodesCodegen.cpp:
- (JSC::BracketAccessorNode::emitBytecode):
- (JSC::DotAccessorNode::emitBytecode):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- (JSC::JIT::privateCompileSlowCases):
- * jit/JIT.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_get_arguments_length):
- (JSC::JIT::emitSlow_op_get_arguments_length):
- (JSC::JIT::emit_op_get_argument_by_val):
- (JSC::JIT::emitSlow_op_get_argument_by_val):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_get_arguments_length):
- (JSC::JIT::emitSlow_op_get_arguments_length):
- (JSC::JIT::emit_op_get_argument_by_val):
- (JSC::JIT::emitSlow_op_get_argument_by_val):
-
-2010-09-25 Patrick Gansterer <paroga@webkit.org>
-
- Unreviewed.
-
- Fix typo in StringHasher class
- https://bugs.webkit.org/show_bug.cgi?id=45970
-
- * wtf/StringHashFunctions.h:
- (WTF::StringHasher::createHash):
-
-2010-09-24 Patrick Gansterer <paroga@paroga.com>
-
- Reviewed by Gavin Barraclough.
-
- Add WTF::StringHasher
- https://bugs.webkit.org/show_bug.cgi?id=45970
-
- StringHasher is a class for calculation stringHash out of character string.
- This class will unify the different usages of the same algorithm.
-
- * wtf/StringHashFunctions.h:
- (WTF::StringHasher::StringHasher):
- (WTF::StringHasher::addCharacters):
- (WTF::StringHasher::addCharacter):
- (WTF::StringHasher::hash):
- (WTF::StringHasher::createHash):
- (WTF::StringHasher::defaultCoverter):
- (WTF::StringHasher::addCharactersToHash):
- (WTF::stringHash):
-
-2010-09-24 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- Variable declarations inside a catch scope don't get propogated to the parent scope
- https://bugs.webkit.org/show_bug.cgi?id=46501
-
- Add logic to make variable declaration look for a scope for the
- new variable. This allows us to create a scope (eg. for catch)
- and then seal it, so that additional variable declarations
- contained are propogated to the correct target. Strangely this
- comes out as a performance win, but I think it's mostly cache
- effects.
-
- * parser/JSParser.cpp:
- (JSC::JSParser::Scope::Scope):
- (JSC::JSParser::Scope::preventNewDecls):
- (JSC::JSParser::Scope::allowsNewDecls):
- (JSC::JSParser::declareVariable):
- (JSC::JSParser::parseVarDeclarationList):
- (JSC::JSParser::parseConstDeclarationList):
- (JSC::JSParser::parseTryStatement):
- (JSC::JSParser::parseFormalParameters):
- (JSC::JSParser::parseFunctionDeclaration):
-
-2010-09-24 İsmail Dönmez <ismail@namtrac.org>
-
- Reviewed by Csaba Osztrogonác.
-
- Add a Windows compatible inttypes.h header to fix WinCE build.
- https://bugs.webkit.org/show_bug.cgi?id=46463
-
- * os-win32/inttypes.h: Added.
-
-2010-09-24 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- REGRESSION(r68223): It broke 2-3 tests on bots (Requested by Ossy on #webkit).
- https://bugs.webkit.org/show_bug.cgi?id=46448
-
- Roll this back in, with additional logic to prevent us from delaying construction
- of functions named "arguments"
-
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- * bytecode/Opcode.h:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
* bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::emitInitLazyRegister):
- (JSC::BytecodeGenerator::registerFor):
- (JSC::BytecodeGenerator::createLazyRegisterIfNecessary):
- (JSC::BytecodeGenerator::constRegisterFor):
- (JSC::BytecodeGenerator::emitNewFunction):
- (JSC::BytecodeGenerator::emitLazyNewFunction):
- (JSC::BytecodeGenerator::emitNewFunctionInternal):
- * bytecompiler/BytecodeGenerator.h:
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- * jit/JIT.h:
* jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_init_lazy_reg):
- (JSC::JIT::emit_op_new_func):
* jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_init_lazy_reg):
- * parser/Nodes.h:
- (JSC::ScopeNode::needsActivationForMoreThanVariables):
-
-2010-09-23 Sheriff Bot <webkit.review.bot@gmail.com>
+ * runtime/Arguments.h:
+ * runtime/JSActivation.cpp:
+ * runtime/JSActivation.h:
+ * runtime/JSCell.h:
+ * runtime/JSGlobalObject.cpp:
+ * runtime/JSGlobalObject.h:
+ * runtime/JSObject.cpp:
+ * runtime/JSStaticScopeObject.cpp:
+ * runtime/JSStaticScopeObject.h:
+ * runtime/JSVariableObject.h:
+ * runtime/MarkedSpace.cpp:
+ * runtime/MarkedSpace.h:
- Unreviewed, rolling out r68223.
- http://trac.webkit.org/changeset/68223
- https://bugs.webkit.org/show_bug.cgi?id=46448
+2011-03-03 Kevin Ollivier <kevino@theolliviers.com>
- It broke 2-3 tests on bots (Requested by Ossy on #webkit).
+ [wx] Build fix. Alter order of headers included to make sure windows.h
+ is configured by wx, and skip Posix implementation file we don't use on Win.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::registerFor):
- (JSC::BytecodeGenerator::constRegisterFor):
- (JSC::BytecodeGenerator::emitNewFunction):
- * bytecompiler/BytecodeGenerator.h:
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- * jit/JIT.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_new_func):
- (JSC::JIT::emit_op_init_arguments):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_new_func):
- (JSC::JIT::emit_op_init_arguments):
- * parser/Nodes.h:
+ * wscript:
+ * wtf/wx/StringWx.cpp:
-2010-09-23 Oliver Hunt <oliver@apple.com>
+2011-03-03 Oliver Hunt <oliver@apple.com>
Reviewed by Geoffrey Garen.
- Delay construction of functions that aren't captured
- https://bugs.webkit.org/show_bug.cgi?id=46433
+ JSVariableObject needs to use WriteBarrier for symboltable property storage
+ https://bugs.webkit.org/show_bug.cgi?id=55698
- If a function isn't captured by an activation there's no
- way it can be accessed indirectly, so we can delay the
- construction until it's used (similar to what we do with
- arguments). We rename the existing op_init_arguments to
- op_init_lazy_reg and removed its implicit handling of
- the anonymous argument register, and make op_new_function
- take a parameter to indicate whether it should null check
- the target slot before creating the function object.
+ Replace the direct usage of Register in JSVariableObject (and descendents)
+ with WriteBarrier. This requires updating the Arguments object to use
+ WriteBarrier as well.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::emitInitLazyRegister):
- (JSC::BytecodeGenerator::registerFor):
- (JSC::BytecodeGenerator::createLazyRegisterIfNecessary):
- (JSC::BytecodeGenerator::constRegisterFor):
- (JSC::BytecodeGenerator::emitNewFunction):
- (JSC::BytecodeGenerator::emitLazyNewFunction):
- (JSC::BytecodeGenerator::emitNewFunctionInternal):
- * bytecompiler/BytecodeGenerator.h:
* interpreter/Interpreter.cpp:
+ (JSC::Interpreter::unwindCallFrame):
(JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- * jit/JIT.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_init_lazy_reg):
- (JSC::JIT::emit_op_new_func):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_init_lazy_reg):
- * parser/Nodes.h:
- (JSC::ScopeNode::needsActivationForMoreThanVariables):
-
-2010-09-23 David Kilzer <ddkilzer@apple.com>
-
- <rdar://problem/8460731> ~9.9% speedup when compiling interpreter with llvm-gcc-4.2
- https://bugs.webkit.org/show_bug.cgi?id=46423
-
- Reviewed by Oliver Hunt.
-
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute): Disable the gcc computed
- goto hacks added in r55564 when compiling with llvm-gcc-4.2.
-
-2010-09-23 Lucas De Marchi <lucas.demarchi@profusion.mobi>
-
- Reviewed by Darin Adler.
-
- Fix usage of enum as if it was a define
- https://bugs.webkit.org/show_bug.cgi?id=46355
-
- pthread.h defines PTHREAD_MUTEX_DEFAULT and PTHREAD_MUTEX_NORMAL as an
- enum. Hence, it cannot be used by the preprocessor which always
- evaluates that condition as true. This was giving a warning when
- compiling with gcc and "-Wundef" flag.
-
- The second path, when PTHREAD_MUTEX_DEFAULT is not the same of
- PTHREAD_MUTEX_NORMAL, is not slow. So, let's eliminate the first path
- and get rid of that #if.
-
- * wtf/ThreadingPthreads.cpp: Always call pthread_mutexattr_init() to
- set mutex type to PTHREAD_MUTEX_NORMAL.
- (WTF::Mutex::Mutex):
-
-2010-09-23 Michael Saboff <msaboff@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- Removed extraneous truncation of ovector on entry and error exit.
- Changed the initialization to -1 of vector to only initialize
- the start indecies, which is sufficient for the pattern/subpatterns.
- Changed the JIT code to not clear the end index for subpatterns
- as it isn't needed. These changes are worth ~2.7% on v8-regexp.
- https://bugs.webkit.org/show_bug.cgi?id=46404
-
- * runtime/RegExp.cpp:
- (JSC::RegExp::match):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
-
-2010-09-22 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Geoff Garen.
-
- Only copy captured variables into activation
- https://bugs.webkit.org/show_bug.cgi?id=46330
-
- We now track free variable information which means that
- we no longer need to copy every variable defined in a
- function. With this patch activations only retain those
- variables needed for correctness. In order to interact
- safely with the inspector this means that JSActivation
- now provides its own lookup functions so it can avoid
- trying to read or write to variables that have been
- optimised out.
-
- * bytecode/CodeBlock.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- * parser/Nodes.h:
- (JSC::ScopeNode::capturedVariableCount):
- (JSC::ScopeNode::captures):
+ (JSC::Interpreter::retrieveArguments):
+ * jit/JITStubs.cpp:
+ (JSC::DEFINE_STUB_FUNCTION):
+ * runtime/ArgList.h:
+ (JSC::MarkedArgumentBuffer::initialize):
+ * runtime/Arguments.cpp:
+ (JSC::Arguments::markChildren):
+ (JSC::Arguments::copyToRegisters):
+ (JSC::Arguments::fillArgList):
+ (JSC::Arguments::getOwnPropertySlot):
+ (JSC::Arguments::getOwnPropertyDescriptor):
+ (JSC::Arguments::put):
* runtime/Arguments.h:
+ (JSC::Arguments::setActivation):
+ (JSC::Arguments::Arguments):
+ (JSC::Arguments::copyRegisters):
(JSC::JSActivation::copyRegisters):
- * runtime/Executable.cpp:
- (JSC::FunctionExecutable::FunctionExecutable):
- (JSC::FunctionExecutable::compileForCallInternal):
- (JSC::FunctionExecutable::compileForConstructInternal):
- * runtime/Executable.h:
- (JSC::FunctionExecutable::capturedVariableCount):
* runtime/JSActivation.cpp:
(JSC::JSActivation::markChildren):
(JSC::JSActivation::symbolTableGet):
(JSC::JSActivation::symbolTablePut):
- (JSC::JSActivation::getOwnPropertyNames):
(JSC::JSActivation::symbolTablePutWithAttributes):
+ (JSC::JSActivation::put):
+ (JSC::JSActivation::putWithAttributes):
+ (JSC::JSActivation::argumentsGetter):
* runtime/JSActivation.h:
+ * runtime/JSGlobalObject.cpp:
+ (JSC::JSGlobalObject::put):
+ (JSC::JSGlobalObject::putWithAttributes):
+ (JSC::JSGlobalObject::markChildren):
+ (JSC::JSGlobalObject::copyGlobalsFrom):
+ (JSC::JSGlobalObject::copyGlobalsTo):
+ (JSC::JSGlobalObject::resizeRegisters):
+ * runtime/JSGlobalObject.h:
+ (JSC::JSGlobalObject::setRegisters):
+ (JSC::JSGlobalObject::addStaticGlobals):
+ * runtime/JSStaticScopeObject.cpp:
+ (JSC::JSStaticScopeObject::put):
+ (JSC::JSStaticScopeObject::putWithAttributes):
+ * runtime/JSVariableObject.cpp:
+ (JSC::JSVariableObject::symbolTableGet):
+ * runtime/JSVariableObject.h:
+ (JSC::JSVariableObject::registerAt):
+ (JSC::JSVariableObject::JSVariableObjectData::JSVariableObjectData):
+ (JSC::JSVariableObject::symbolTableGet):
+ (JSC::JSVariableObject::symbolTablePut):
+ (JSC::JSVariableObject::symbolTablePutWithAttributes):
+ (JSC::JSVariableObject::copyRegisterArray):
+ (JSC::JSVariableObject::setRegisters):
-2010-09-23 Ismail Donmez <ismail@namtrac.org>
-
- Reviewed by Andreas Kling.
-
- Fix jsc.exe build for Windows CE
-
- * jsc.pro: Add mmtimer.lib for Windows CE.
-
-2010-09-23 Ismail Donmez <ismail@namtrac.org>
-
- Unreviewed.
-
- JIT should be disabled on Windows CE. Broken in r64176.
-
- * wtf/Platform.h:
-
-2010-09-23 Peter Varga <pvarga@inf.u-szeged.hu>
-
- Reviewed by Gavin Barraclough.
-
- Reduce the number of BOL checks in YARR Interpreter
- https://bugs.webkit.org/show_bug.cgi?id=46260
-
- Extend the YARR Interpreter with an optimization which reduces the number of
- BOL assertion checks. If a "TypeBodyAlternative" byteTerm is followed by a
- "TypeAssertionBOL" byteTerm it will be checked just one time.
-
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::matchDisjunction):
- (JSC::Yarr::ByteCompiler::compile):
- (JSC::Yarr::ByteCompiler::regexBegin):
- (JSC::Yarr::ByteCompiler::alternativeBodyDisjunction):
- (JSC::Yarr::ByteCompiler::emitDisjunction):
- * yarr/RegexInterpreter.h:
- (JSC::Yarr::ByteTerm::BodyAlternativeBegin):
- (JSC::Yarr::ByteTerm::BodyAlternativeDisjunction):
- (JSC::Yarr::ByteTerm::BodyAlternativeEnd):
- (JSC::Yarr::ByteTerm::AlternativeBegin):
- (JSC::Yarr::ByteTerm::AlternativeDisjunction):
- (JSC::Yarr::ByteTerm::AlternativeEnd):
-
-2010-09-22 Michael Saboff <msaboff@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- Fixed the cross over from alternatives executed once and
- those that loop. This fixed the problem where the index
- was getting messed up for looping alternatives causing an
- infinite loop.
- https://bugs.webkit.org/show_bug.cgi?id=46189
-
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::generateDisjunction):
-
-2010-09-22 Steve Falkenburg <sfalken@apple.com>
-
- Rubber stamped by Jon Honeycutt.
-
- Allow jsc.exe to be run against unversioned ICU.
-
- * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
-
-2010-09-22 Kwang Yul Seo <skyul@company100.net>
-
- Reviewed by Laszlo Gombos.
-
- Use "typedef wchar_t JSChar" when compiled with RVCT
- https://bugs.webkit.org/show_bug.cgi?id=40651
-
- Use wchar_t for JSChar and UChar when compiled with RVCT.
- Linux is the exception for this rule.
-
- * API/JSStringRef.h:
- * wtf/unicode/qt4/UnicodeQt4.h:
-
-2010-09-22 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- [INTERPRETER] Two tests fail with SputnikError: #1.1: if argArray is neither an array nor an arguments object (see 10.1.8), a TypeError exception is thrown
- https://bugs.webkit.org/show_bug.cgi?id=44245
-
- Remove incorrect code from op_load_varargs in the interpreter.
-
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
-
-2010-09-22 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Gavin Barraclough.
+2011-03-03 Geoffrey Garen <ggaren@apple.com>
- [JIT] fast/js/sputnik/Conformance/15_Native_Objects/15.3_Function/15.3.5/S15.3.5.3_A2_T6.html fails
- https://bugs.webkit.org/show_bug.cgi?id=44246
+ Try to fix Windows build.
- JIT code generated for instanceof was not checking to ensure that the prototype property was
- an object, this patch ensures that it does.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Removed obsolete symbol.
- * jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_instanceof):
- (JSC::JIT::emitSlow_op_instanceof):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_instanceof):
- (JSC::JIT::emitSlow_op_instanceof):
+ * runtime/JSStaticScopeObject.cpp:
+ (JSC::JSStaticScopeObject::getOwnPropertySlot): Don't mark this function
+ inline -- it's virtual.
-2010-09-22 Patrick Gansterer <paroga@webkit.org>
+2011-03-02 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
- Inline UTF8SequenceLength
- https://bugs.webkit.org/show_bug.cgi?id=45589
-
- * wtf/unicode/UTF8.cpp:
- (WTF::Unicode::convertUTF8ToUTF16): Use inline version of UTF8SequenceLength to improve performance.
-
-2010-09-21 Oliver Hunt <oliver@apple.com>
-
- RS=Gavin Barraclough.
+ Moved all variable object storage inline -- upping the object size limit to 1K
+ https://bugs.webkit.org/show_bug.cgi?id=55653
- Fix codeblock dumping
-
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- * runtime/Executable.h:
- (JSC::ScriptExecutable::ScriptExecutable):
-
-2010-09-21 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- Speed up function.apply(..., arguments)
- https://bugs.webkit.org/show_bug.cgi?id=46207
-
- Add code to do argument copying inline in the case
- where we're using Function.apply to forward our arguments
- directly.
-
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileSlowCases):
- Splitted op_load_varargs into fast and slow paths, so add the call
- to the slow path generator.
- * jit/JIT.h:
- * jit/JITCall32_64.cpp:
- Remove 32bit specific emit_op_load_varargs as the logic is the
- same for all value representations
+ * JavaScriptCore.exp:
+ * bytecompiler/BytecodeGenerator.cpp:
* jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_load_varargs):
- Copy arguments inline
- (JSC::JIT::emitSlow_op_load_varargs):
-
-2010-09-21 Geoffrey Garen <ggaren@apple.com>
-
- Reviewed by Oliver Hunt.
-
- <rdar://problem/8363003> REGRESSION: ~1.4% sunspider regression in
- interpreter due to 54724 and 54596
-
- Fixed a typo (using "UNLIKELY" instead of "LIKELY").
-
- * wtf/PassRefPtr.h:
- (WTF::refIfNotNull):
- (WTF::derefIfNotNull): It is likely that m_ptr != 0 because most RefPtrs
- hold real data. Also, in cases where they do not hold real data, the
- compiler usually sees a call to release() right before the call to the
- destructor, so it can probably optimize out the test completely.
-
-2010-09-21 Fridrich Strba <fridrich.strba@bluewin.ch>
-
- Reviewed by Martin Robinson.
-
- Build issues with Windows versions of the GTK+ port
- https://bugs.webkit.org/show_bug.cgi?id=45844
-
- Link with winmm.dll when necessary and specify the executable extension
- explicitely so that the Programs/jsc-@WEBKITGTK_API_MAJOR_VERSION@
- rule actually works.
-
- Don't try to build the ThreadSpecificWin.cpp since GTK+ port uses
- a section in ThreadSpecific.cpp
-
- * GNUmakefile.am:
-
-2010-09-21 Martin Robinson <mrobinson@igalia.com>
-
- Reviewed by Xan Lopez.
-
- [GTK] 'make dist' should be fixed in preparation for the next release
- https://bugs.webkit.org/show_bug.cgi?id=46129
-
- * GNUmakefile.am: Update the sources list to include missing headers.
-
-2010-09-21 Dave Tapuska <dtapuska@rim.com>
-
- Reviewed by Csaba Osztrogonác.
-
- https://bugs.webkit.org/show_bug.cgi?id=45673
-
- r65596 caused ENABLE_PROFILER_REFERENCE_OFFSET to not be
- 8 byte aligned. A non 8 byte divisible value for this will
- cause the sp to become non 8 byte aligned.
-
- Verify and correct offset values that r65596 effected that
- weren't updated.
-
- * jit/JITStubs.cpp:
- * jit/JITStubs.h:
-
-2010-09-21 Xan Lopez <xlopez@igalia.com>
-
- Reviewed by Martin Robinson.
-
- Fix Opcode stats compilation
- https://bugs.webkit.org/show_bug.cgi?id=46079
-
- The FixedArray API had changed, and <stdio.h> was not included for
- printf.
-
- * bytecode/Opcode.cpp:
- (JSC::OpcodeStats::~OpcodeStats):
-
-2010-09-20 Michael Saboff <msaboff@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- Fixed detection of alternative smaller than the first alternative
- to only check looping alternatives.
- https://bugs.webkit.org/show_bug.cgi?id=46049
-
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::generateDisjunction):
-
-2010-09-20 Peter Varga <pvarga@inf.u-szeged.hu>
-
- Reviewed by Geoffrey Garen.
-
- REGRESSION(67790): jsc tests are failed with YARR interpreter
- https://bugs.webkit.org/show_bug.cgi?id=46083
-
- Fix the initializing of the lastSubpatternId member of
- parentheses.
-
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::RegexPatternConstructor::atomParenthesesEnd):
-
-2010-09-20 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Bug 46077 - ASSERT failure in YARR JIT
-
- We will currently attempt to loop if there are multiple alternatives, they are all
- BOL predicated, and the last alternative is longer then the first - however if all
- alternatives are BOL predicated the head of loop label will not have been set, and
- we'll try to link a jump to an undefined label. Stop doing so.
-
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::generateDisjunction):
-
-2010-09-20 Adam Roben <aroben@apple.com>
-
- Export RegExpObject::info from JavaScriptCore
-
- This allows obj->inherits(&RegExpObject::info) to work correctly from
- outside JavaScriptCore.dll on Windows.
-
- Fixes <http://webkit.org/b/46098>
- fast/loader/stateobjects/pushstate-object-types.html fails on Windows
-
- Reviewed by John Sullivan.
-
- * runtime/RegExpObject.h: Added JS_EXPORTDATA to the info member, as
- we already have for some other classes whose info members have to be
- used from outside the DLL.
-
-2010-09-19 Gavin Barraclough <barraclough@apple.com>
-
- Windows build fix pt 2.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * runtime/Arguments.h:
+ * runtime/JSActivation.h: Removed out-of-line storage. Changed d-> to m_.
-2010-09-19 Gavin Barraclough <barraclough@apple.com>
+ * runtime/JSCell.h:
+ (JSC::JSCell::MarkedSpace::sizeClassFor): Added an imprecise size class
+ to accomodate objects up to 1K.
- Windows build fix pt 1.
+ * runtime/JSGlobalObject.cpp:
+ * runtime/JSGlobalObject.h: Removed out-of-line storage. Changed d-> to m_.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * runtime/JSObject.cpp: Don't ASSERT that JSFinalObject fills the maximum
+ object size, since it doesn't anymore.
-2010-09-19 Gavin Barraclough <barraclough@apple.com>
+ * runtime/JSStaticScopeObject.cpp:
+ * runtime/JSStaticScopeObject.h:
+ * runtime/JSVariableObject.h: Removed out-of-line storage. Changed d-> to m_.
- Build fix - implicit double-to-int conversion invalid on 32-bit.
+ * runtime/MarkedSpace.cpp:
+ (JSC::MarkedSpace::MarkedSpace):
+ (JSC::MarkedSpace::reset):
+ * runtime/MarkedSpace.h: Added an imprecise size class to accomodate objects up to 1K.
- * runtime/DatePrototype.cpp:
- (JSC::fillStructuresUsingDateArgs):
- (JSC::dateProtoFuncSetYear):
+2011-03-03 Timothy Hatcher <timothy@apple.com>
-2010-09-19 Gavin Barraclough <barraclough@apple.com>
+ Make APIShims usable from WebCore.
Reviewed by Oliver Hunt.
- Bug 46065 - Unify implementation of ToInt32 and ToUInt32, don't use fmod.
-
- These methods implement the same conversion (see discussion in the notes
- of sections of 9.5 and 9.6 of the spec), only differing in how the result
- is interpretted.
-
- Date prototype is incorrectly using toInt32, and this is causing us to
- provide an output value indicating whether the input to ToInt32 was finite
- (the corresponding methods on Date are actually spec'ed to use ToInteger,
- not ToInt32). This patch partially fixes this in order to remove this
- bogus output value, hoewever more work will be require to bring Date
- fully up to spec compliance (the constructor is still performing ToInt32
- conversions).
-
- * JavaScriptCore.exp:
- * runtime/DatePrototype.cpp:
- (JSC::fillStructuresUsingTimeArgs):
- (JSC::fillStructuresUsingDateArgs):
- (JSC::dateProtoFuncSetYear):
- * runtime/JSValue.cpp:
- (JSC::toInt32):
- * runtime/JSValue.h:
- (JSC::toUInt32):
- (JSC::JSValue::toInt32):
- (JSC::JSValue::toUInt32):
-
-2010-09-18 Darin Adler <darin@apple.com>
-
- First step in fixing Windows build.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- Removed incorrect symbol. The build will probably still fail,
- but the failure will tell us what symbol to add.
-
-2010-09-18 Michael Saboff <msaboff@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- Added code to unroll regular expressions containing ^.
- Alternatives that begin with ^ are tagged during parsing
- and rolled up in containing sub expression structs.
- After parsing, a regular expression flagged as containing
- a ^ (a.k.a. BOL) is processed further in optimizeBOL().
- A copy of the disjunction is made excluding alternatives that
- are rooted with BOL. The original alternatives are flagged
- to only be executed once. The copy of the other alternatives are
- added to the original expression.
- In the case that all original alternatives are flagged, there
- won't be any looping alternatives.
- The JIT generator will emit code accordingly, executing the
- original alternatives once and then looping over the
- alternatives that aren't anchored with a BOL (if any).
- https://bugs.webkit.org/show_bug.cgi?id=45787
-
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::RegexPatternConstructor::assertionBOL):
- (JSC::Yarr::RegexPatternConstructor::atomParenthesesEnd):
- (JSC::Yarr::RegexPatternConstructor::copyDisjunction):
- (JSC::Yarr::RegexPatternConstructor::copyTerm):
- (JSC::Yarr::RegexPatternConstructor::optimizeBOL):
- (JSC::Yarr::compileRegex):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::generateDisjunction):
- * yarr/RegexPattern.h:
- (JSC::Yarr::PatternAlternative::PatternAlternative):
- (JSC::Yarr::PatternAlternative::setOnceThrough):
- (JSC::Yarr::PatternAlternative::onceThrough):
- (JSC::Yarr::PatternDisjunction::PatternDisjunction):
- (JSC::Yarr::RegexPattern::RegexPattern):
- (JSC::Yarr::RegexPattern::reset):
-
-2010-09-18 Patrick Gansterer <paroga@paroga.com>
-
- Reviewed by Darin Adler.
-
- Rename Wince files to WinCE
- https://bugs.webkit.org/show_bug.cgi?id=37287
-
- * wtf/unicode/Unicode.h:
- * wtf/unicode/wince/UnicodeWinCE.cpp: Copied from JavaScriptCore/wtf/unicode/wince/UnicodeWince.cpp.
- * wtf/unicode/wince/UnicodeWinCE.h: Copied from JavaScriptCore/wtf/unicode/wince/UnicodeWince.h.
- * wtf/unicode/wince/UnicodeWince.cpp: Removed.
- * wtf/unicode/wince/UnicodeWince.h: Removed.
- * wtf/wince/FastMallocWinCE.h: Copied from JavaScriptCore/wtf/wince/FastMallocWince.h.
- * wtf/wince/FastMallocWince.h: Removed.
-
-2010-09-18 Ademar de Souza Reis Jr <ademar.reis@openbossa.org>
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Enable Platform Strategies on Qt
-
- [Qt] Turn on PLATFORM_STRATEGIES
- https://bugs.webkit.org/show_bug.cgi?id=45831
-
- * wtf/Platform.h: Enable Platform Strategies when building QtWebkit
-
-2010-09-17 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- Imprecise tracking of variable capture leads to overly pessimistic creation of activations
- https://bugs.webkit.org/show_bug.cgi?id=46020
-
- The old logic for track free and captured variables would cause us
- to decide we needed an activation in every function along the scope
- chain between a variable capture and its declaration. We now track
- captured variables precisely which requires a bit of additional work
-
- The most substantial change is that the parsing routine needs to
- be passed the list of function parameters when reparsing a function
- as when reparsing we don't parse the function declaration itself only
- its body.
-
+ * ForwardingHeaders/JavaScriptCore/APIShims.h: Added.
+ * GNUmakefile.am:
* JavaScriptCore.exp:
- * parser/JSParser.cpp:
- (JSC::JSParser::Scope::Scope):
- (JSC::JSParser::Scope::needsFullActivation):
- We need to distinguish between use of a feature that requires
- an activation and eval so we now get this additional flag.
- (JSC::JSParser::Scope::collectFreeVariables):
- (JSC::JSParser::Scope::getCapturedVariables):
- We can't simply return the list of "capturedVariables" now as
- is insufficiently precise, so we compute them instead.
- (JSC::JSParser::popScope):
- (JSC::jsParse):
- (JSC::JSParser::JSParser):
- (JSC::JSParser::parseProgram):
- (JSC::JSParser::parseWithStatement):
- (JSC::JSParser::parseTryStatement):
- (JSC::JSParser::parseFunctionInfo):
- (JSC::JSParser::parseFunctionDeclaration):
- (JSC::JSParser::parseProperty):
- (JSC::JSParser::parseMemberExpression):
- * parser/JSParser.h:
- * parser/Parser.cpp:
- (JSC::Parser::parse):
- * parser/Parser.h:
- (JSC::Parser::parse):
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::compileInternal):
- (JSC::ProgramExecutable::checkSyntax):
- (JSC::ProgramExecutable::compileInternal):
- (JSC::FunctionExecutable::compileForCallInternal):
- (JSC::FunctionExecutable::compileForConstructInternal):
- (JSC::FunctionExecutable::reparseExceptionInfo):
- (JSC::EvalExecutable::reparseExceptionInfo):
- (JSC::FunctionExecutable::fromGlobalCode):
- Pass function parameters (if available) to the parser.
-
-2010-09-17 Anders Carlsson <andersca@apple.com>
-
- Reviewed by Sam Weinig.
-
- Add IsFloatingPoint and IsArithmetic type traits
- https://bugs.webkit.org/show_bug.cgi?id=46018
-
- * wtf/TypeTraits.h:
- * wtf/TypeTraits.cpp:
-
-2010-09-17 Martin Robinson <mrobinson@igalia.com>
-
- Reviewed by Oliver Hunt.
-
- [GTK] FontPlatformDataFreeType should use smart pointers to hold its members
- https://bugs.webkit.org/show_bug.cgi?id=45917
-
- Added support to PlatformRefPtr for handling HashTableDeletedValue.
-
- * wtf/PlatformRefPtr.h:
- (WTF::PlatformRefPtr::PlatformRefPtr): Added a constructor that takes HashTableDeletedValue.
- (WTF::PlatformRefPtr::isHashTableDeletedValue): Added.
-
-2010-09-16 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- Crash due to timer triggered GC on one heap while another heap is active
- https://bugs.webkit.org/show_bug.cgi?id=45932
- <rdar://problem/8318446>
-
- The GC timer may trigger for one heap while another heap is active. This
- is safe, but requires us to ensure that we have temporarily associated the
- thread's identifierTable with the heap we're collecting on. Otherwise we
- may end up with the identifier tables in an inconsistent state leading to
- an eventual crash.
-
- * runtime/Collector.cpp:
- (JSC::Heap::allocate):
- (JSC::Heap::reset):
- (JSC::Heap::collectAllGarbage):
- Add assertions to ensure we have the correct identifierTable active
- while collecting.
- * runtime/GCActivityCallbackCF.cpp:
- (JSC::DefaultGCActivityCallbackPlatformData::trigger):
- Temporarily make the expected IdentifierTable active
- * wtf/WTFThreadData.h:
- (JSC::IdentifierTable::remove):
- Make it possible to see when IdentifierTable::remove has succeeded
- * wtf/text/StringImpl.cpp:
- (WTF::StringImpl::~StringImpl):
- CRASH if an StringImpl is an Identifier but isn't present in the
- active IdentifierTable. If we get to this state something has
- gone wrong and we should just crash immediately.
-
-2010-09-16 Martin Robinson <mrobinson@igalia.com>
-
- Reviewed by Xan Lopez.
-
- [GTK] Implement dissolveDragImageToFraction
- https://bugs.webkit.org/show_bug.cgi?id=45826
-
- * wtf/gobject/GTypedefs.h: Added forward declarations for GtkWindow and GdkEventExpose.
-
-2010-09-16 Eric Uhrhane <ericu@chromium.org>
-
- Reviewed by Jian Li.
-
- Unify FILE_SYSTEM and FILE_WRITER enables under the name FILE_SYSTEM.
- https://bugs.webkit.org/show_bug.cgi?id=45798
-
- * Configurations/FeatureDefines.xcconfig:
-
-2010-09-15 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- Use free variable analysis to improve activation performance
- https://bugs.webkit.org/show_bug.cgi?id=45837
-
- Adds free and captured variable tracking to the JS parser. This
- allows us to avoid construction of an activation object in some
- cases. Future patches will make more use of this information to
- improve those cases where activations are still needed.
-
- * parser/ASTBuilder.h:
- * parser/JSParser.cpp:
- (JSC::JSParser::Scope::Scope):
- (JSC::JSParser::Scope::declareVariable):
- (JSC::JSParser::Scope::useVariable):
- (JSC::JSParser::Scope::collectFreeVariables):
- (JSC::JSParser::Scope::capturedVariables):
- (JSC::JSParser::ScopeRef::ScopeRef):
- (JSC::JSParser::ScopeRef::operator->):
- (JSC::JSParser::ScopeRef::index):
- (JSC::JSParser::currentScope):
- (JSC::JSParser::pushScope):
- (JSC::JSParser::popScope):
- (JSC::JSParser::parseProgram):
- (JSC::JSParser::parseVarDeclarationList):
- (JSC::JSParser::parseConstDeclarationList):
- (JSC::JSParser::parseTryStatement):
- (JSC::JSParser::parseFormalParameters):
- (JSC::JSParser::parseFunctionInfo):
- (JSC::JSParser::parseFunctionDeclaration):
- (JSC::JSParser::parsePrimaryExpression):
- * parser/Nodes.cpp:
- (JSC::ScopeNodeData::ScopeNodeData):
- (JSC::ScopeNode::ScopeNode):
- (JSC::ProgramNode::ProgramNode):
- (JSC::ProgramNode::create):
- (JSC::EvalNode::EvalNode):
- (JSC::EvalNode::create):
- (JSC::FunctionBodyNode::FunctionBodyNode):
- (JSC::FunctionBodyNode::create):
- * parser/Nodes.h:
- (JSC::ScopeNode::needsActivation):
- (JSC::ScopeNode::hasCapturedVariables):
- * parser/Parser.cpp:
- (JSC::Parser::didFinishParsing):
- * parser/Parser.h:
- (JSC::Parser::parse):
- * parser/SyntaxChecker.h:
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::compileInternal):
- (JSC::ProgramExecutable::compileInternal):
- (JSC::FunctionExecutable::compileForCallInternal):
- (JSC::FunctionExecutable::compileForConstructInternal):
- * runtime/Executable.h:
- (JSC::ScriptExecutable::needsActivation):
- (JSC::ScriptExecutable::recordParse):
-
-2010-09-14 Hyung Song <beergun@company100.net>
-
- Reviewed by Kent Tamura.
-
- [BREWMP] Add IMemGroup and IMemSpace to OwnPtr type.
- https://bugs.webkit.org/show_bug.cgi?id=44764
-
- * wtf/OwnPtrCommon.h:
- * wtf/brew/OwnPtrBrew.cpp:
- (WTF::deleteOwnedPtr):
-
-2010-09-14 Darin Adler <darin@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- Sort with non-numeric custom sort function fails on array with length but no values
- https://bugs.webkit.org/show_bug.cgi?id=45781
-
- * runtime/JSArray.cpp:
- (JSC::JSArray::sort): Replaced early exit for an array of length zero to instead
- exit for any array without values, even if it has a non-0 length.
-
-2010-09-14 Steve Falkenburg <sfalken@apple.com>
-
- Windows production build fix.
- Roll out r65143.
-
+ * JavaScriptCore.gypi:
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
-
-2010-09-14 Kwang Yul Seo <skyul@company100.net>
-
- Reviewed by Darin Adler.
-
- Share UnicodeMacrosFromICU.h
- https://bugs.webkit.org/show_bug.cgi?id=45710
-
- glib, qt4 and wince use the same macros from ICU.
- Remove the code duplication and use the same header file.
-
- * wtf/unicode/UnicodeMacrosFromICU.h: Copied from JavaScriptCore/wtf/unicode/glib/UnicodeMacrosFromICU.h.
- * wtf/unicode/glib/UnicodeMacrosFromICU.h: Removed.
- * wtf/unicode/qt4/UnicodeQt4.h:
- * wtf/unicode/wince/UnicodeWince.h:
-
-2010-09-13 Darin Adler <darin@apple.com>
-
- Reviewed by Adam Barth.
-
- Preparation for eliminating deprecatedParseURL
- https://bugs.webkit.org/show_bug.cgi?id=45695
-
- * wtf/text/WTFString.h: Added isAllSpecialCharacters, moved here from
- the HTML tree builder.
-
-2010-09-13 Darin Fisher <darin@chromium.org>
-
- Reviewed by David Levin.
-
- Add option to conditionally compile smooth scrolling support.
- https://bugs.webkit.org/show_bug.cgi?id=45689
-
- ENABLE(SMOOTH_SCROLLING) is disabled by default for all platforms.
-
- * wtf/Platform.h:
-
-2010-09-13 Adam Roben <aroben@apple.com>
-
- Copy JavaScriptCore's generated sources to the right directory
-
- * JavaScriptCore.vcproj/JavaScriptCore.make: Fixed typo.
-
-2010-09-13 Kwang Yul Seo <skyul@company100.net>
-
- Reviewed by Kent Tamura.
-
- [BREWMP] Don't call _msize
- https://bugs.webkit.org/show_bug.cgi?id=45556
-
- Because Brew MP uses its own memory allocator, it is not correct to use
- _msize in fastMallocSize. Add !PLATFORM(BREWMP) guard.
-
- * wtf/FastMalloc.cpp:
- (WTF::fastMallocSize):
-
-2010-09-11 Simon Hausmann <simon.hausmann@nokia.com>
-
- Reviewed by Andreas Kling.
-
- [Qt] V8 port: webcore project files changes
- https://bugs.webkit.org/show_bug.cgi?id=45141
-
- * JavaScriptCore.pro: Moved wtf specific files to wtf.pri,
- so that they can also be used from WebCore.pro for v8 builds.
- * wtf/wtf.pri: Added.
-
-2010-09-10 Fridrich Strba <fridrich.strba@bluewin.ch>
-
- Reviewed by Andreas Kling.
-
- Add a define missing when building with glib unicode backend
- https://bugs.webkit.org/show_bug.cgi?id=45544
-
- * wtf/unicode/glib/UnicodeMacrosFromICU.h:
-
-2010-09-10 Stephanie Lewis <slewis@apple.com>
-
- Reviewed by Alexey Proskuryakov.
-
- Refactor JavaScriptCore memory statistics so that WebKit doesn't need to know
- about the JIT and other implementation details of JavaScriptCore. Necessary
- to fix PPC build.
-
- https://bugs.webkit.org/show_bug.cgi?id=45528
-
- * JavaScriptCore.exp:
* JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/MemoryStatistics.cpp: Added.
- (JSC::memoryStatistics):
- * runtime/MemoryStatistics.h: Added.
-
-2010-09-09 Michael Saboff <msaboff@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- Added a regular expression tracing facility. This tracing is connected
- to jsc. Every compiled regular expression object is added to a list.
- When the process exits, each regular expression dumps its pattern,
- JIT address, number of times it was executed and the number of matches.
- This tracing is controlled by the macro ENABLE_REGEXP_TRACING in
- wtf/Platform.h.
- https://bugs.webkit.org/show_bug.cgi?id=45401
-
- * JavaScriptCore.exp:
- * jsc.cpp:
- (runWithScripts):
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- (JSC::JSGlobalData::~JSGlobalData):
- (JSC::JSGlobalData::addRegExpToTrace):
- (JSC::JSGlobalData::dumpRegExpTrace):
- * runtime/JSGlobalData.h:
- * runtime/RegExp.cpp:
- (JSC::RegExp::RegExp):
- (JSC::RegExp::create):
- (JSC::RegExp::match):
- * runtime/RegExp.h:
- * wtf/Platform.h:
- * yarr/RegexJIT.h:
- (JSC::Yarr::RegexCodeBlock::getAddr):
-
-2010-09-09 John Therrell <jtherrell@apple.com>
-
- 32-bit build fix.
-
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutableAllocator::committedByteCount):
-
-2010-09-09 John Therrell <jtherrell@apple.com>
-
- Reviewed by Alexey Proskuryakov.
-
- Added statistics sampling and reporting for JavaScriptCore's RegisterFile and ExecutableAllocator classes
- https://bugs.webkit.org/show_bug.cgi?id=45134
-
- Added thread-safe committed byte counting and reporting functionality to RegisterFile and
- ExecutableAllocator.
-
- * JavaScriptCore.exp:
- Exported new symbols to allow for WebKit to get statistics from JavaScriptCore classes.
-
- * interpreter/RegisterFile.cpp:
- (JSC::registerFileStatisticsMutex):
- Added function which returns a static Mutex used for locking during read/write access to
- static committed byte count variable.
- (JSC::RegisterFile::~RegisterFile):
- Added call to addToStatistics since memory is decommitted here.
- (JSC::RegisterFile::releaseExcessCapacity):
- Added call to addToStatistics since memory is decommitted here.
- (JSC::RegisterFile::initializeThreading):
- Added function which calls registerFileStatisticsMutex().
- (JSC::RegisterFile::committedByteCount):
- Added function which returns the current committed byte count for RegisterFile.
- (JSC::RegisterFile::addToCommittedByteCount):
- Added function which updates committed byte count.
-
- * interpreter/RegisterFile.h:
- (JSC::RegisterFile::RegisterFile):
- Added call to addToStatistics since memory is committed here.
- (JSC::RegisterFile::grow):
- Added call to addToStatistics since memory is committed here.
-
- * jit/ExecutableAllocator.h:
- Added function prototype for public static function committedByteCount().
-
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::release):
- Added call to addToStatistics since memory is decommitted here.
- (JSC::FixedVMPoolAllocator::reuse):
- Added call to addToStatistics since memory is committed here.
- (JSC::FixedVMPoolAllocator::addToCommittedByteCount):
- Added function which updates committed byte count.
- (JSC::ExecutableAllocator::committedByteCount):
- Added function which returns the current committed byte count for ExecutableAllocator.
-
- * runtime/InitializeThreading.cpp:
- (JSC::initializeThreadingOnce):
- Added call to RegisterFile::initializeThreading.
-2010-09-09 Mark Rowe <mrowe@apple.com>
+2011-03-03 Peter Varga <pvarga@webkit.org>
Reviewed by Oliver Hunt.
- <http://webkit.org/b/45502> JSObjectSetPrivateProperty does not handle NULL values as it claims
-
- * API/JSObjectRef.cpp:
- (JSObjectSetPrivateProperty): Don't call toJS if we have a NULL value as that will cause an assertion
- failure. Instead map NULL directly to the null JSValue.
- * API/tests/testapi.c:
- (main): Add test coverage for the NULL value case.
-
-2010-09-09 Csaba Osztrogonác <ossy@webkit.org>
-
- Reviewed by Gavin Barraclough.
-
- [Qt] JSVALUE32_64 not works on Windows platform with MinGW compiler
- https://bugs.webkit.org/show_bug.cgi?id=29268
-
- * wtf/Platform.h: Enable JSVALUE32_64 for Qt/Windows/MinGW, because it works now.
-
-2010-09-08 Zoltan Herczeg <zherczeg@webkit.org>
-
- Reviewed by Darin Adler.
-
- Removing doneSemicolon label in the lexer
- https://bugs.webkit.org/show_bug.cgi?id=45289
-
- As a side effect of moving the multiline comment parsing
- to a separate function, an opportunity raised to simplify
- the single line comment parsing, and removing doneSemicolon
- label. Slight performance increase on --parse-only
- tests (from 32.8ms to 31.5ms)
-
- * parser/Lexer.cpp:
- (JSC::Lexer::lex):
-
-2010-09-08 Xan Lopez <xlopez@igalia.com>
-
- Reviewed by Alexey Proskuryakov.
-
- Remove accessor for private member variable in JSParser
- https://bugs.webkit.org/show_bug.cgi?id=45378
+ Begin Characters Optimization Causes YARR Interpreter Errors
+ https://bugs.webkit.org/show_bug.cgi?id=55479
- m_token is private to JSParser, so it does not seem to be useful
- to have an accessor for it. On top of that, the file was both
- using the accessor and directly accessing the member variable,
- only one style should be used.
+ The addBeginTerm function is removed because it doesn't correctly handle those
+ cases when an "invalid" term has been
+ collected (e.g. CharacterClass). Move the removed function to the
+ setupAlternativeBeginTerms method's switch-case
+ where the non-allowed cases are correctly handled.
-2010-09-08 Csaba Osztrogonác <ossy@webkit.org>
+ Reenable the Beginning Character Optimization in the YARR Interpreter again.
- Reviewed by Oliver Hunt.
-
- [Qt] REGRESSION(63348): jsc is broken
- https://bugs.webkit.org/show_bug.cgi?id=42818
-
- Need fastcall conventions on Qt/Win/MinGW.
- Based on patches of Gavin Barraclough: r63947 and r63948.
-
- * jit/JITStubs.cpp:
- * jit/JITStubs.h:
-
-2010-09-08 Robert Hogan <robert@webkit.org>
-
- Reviewed by Antonio Gomes.
-
- Remove some unnecessary duplicate calls to string functions
-
- https://bugs.webkit.org/show_bug.cgi?id=45314
-
- * wtf/text/WTFString.cpp:
- (WTF::String::format):
+ * yarr/YarrPattern.cpp:
+ (JSC::Yarr::YarrPatternConstructor::setupAlternativeBeginTerms):
+ (JSC::Yarr::YarrPattern::compile):
-2010-09-08 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
+2011-03-02 Jessie Berlin <jberlin@apple.com>
- Reviewed by Andreas Kling.
+ Reviewed by Adam Roben.
- Re-Disable JIT for MSVC 64bit to fix the build on this compiler.
- https://bugs.webkit.org/show_bug.cgi?id=45382
+ WebKit2: Use CFNetwork Sessions API.
+ https://bugs.webkit.org/show_bug.cgi?id=55435
- It was enabled in the cleanup made in r64176, though it is still
- not implemented.
+ Add the ability to create a Private Browsing storage session.
* wtf/Platform.h:
+ Add a new #define for using CF Storage Sessions.
-2010-09-08 Martin Robinson <mrobinson@igalia.com>
-
- Reviewed by Xan Lopez.
+2011-03-02 Oliver Hunt <oliver@apple.com>
- [GTK] Need a WebSocket implementation
- https://bugs.webkit.org/show_bug.cgi?id=45197
-
- Add a GIO-based WebSocket implementation.
-
- * wtf/gobject/GRefPtr.cpp: Added PlatformRefPtr support for GSource.
- (WTF::refPlatformPtr):
- (WTF::derefPlatformPtr):
- * wtf/gobject/GRefPtr.h: Added new template specialization declarations.
- * wtf/gobject/GTypedefs.h: Add some more GLib/GIO forward declarations.
+ Reviewed by Gavin Barraclough.
-2010-08-30 Maciej Stachowiak <mjs@apple.com>
+ Remove "register slot" concept from PropertySlot
+ https://bugs.webkit.org/show_bug.cgi?id=55621
- Reviewed by Darin Adler.
+ PropertySlot had already stopped storing Register "slots"
+ so this patch is simply removing that api entirely.
+ This exposed a problem in the ProgramNode constructor for
+ BytecodeGenerator where it reads from the registerfile
+ before it has initialised it.
- Handle MediaQueryExp memory management exclusively with smart pointers
- https://bugs.webkit.org/show_bug.cgi?id=44874
-
- Implemented a non-copying sort function to make it possible to sort a Vector
- of OwnPtrs (which cannot be copied). This is required for the above.
+ This bug wasn't a problem before as we were merely testing
+ for property existence rather than the actual value, and
+ used to work because setRegisterSlot didn't check that the
+ provided slot contained an initialised value.
- * wtf/NonCopyingSort.h: Added.
- (WTF::nonCopyingSort): It's secretly heapsort.
- (WTF::heapSort): heapsort implementation.
- (WTF::siftDown): Helper function for heapsort.
- (WTF::heapify): ditto
+ To get around this issue we now use symbolTableHasProperty
+ to do the symbol table check without trying to read the
+ RegisterFile.
- Adjust build systems.
-
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::BytecodeGenerator):
+ * runtime/Arguments.cpp:
+ (JSC::Arguments::getOwnPropertySlot):
+ * runtime/JSActivation.cpp:
+ (JSC::JSActivation::symbolTableGet):
+ * runtime/JSGlobalObject.h:
+ (JSC::JSGlobalObject::symbolTableHasProperty):
+ * runtime/JSVariableObject.h:
+ (JSC::JSVariableObject::symbolTableGet):
+ * runtime/PropertySlot.h:
-2010-09-08 Zoltan Herczeg <zherczeg@webkit.org>
-
- Reviewed by Darin Adler.
-
- Refactoring multiline comments in the lexer
- https://bugs.webkit.org/show_bug.cgi?id=45289
-
- MultiLine comment parsing is moved to a separate function.
-
- Slight performance increase on --parse-only tests (from 33.6ms to 32.8ms)
- SunSpider reports no change (from 523.1ms to 521.2ms).
-
- * parser/Lexer.cpp:
- (JSC::Lexer::parseMultilineComment):
- (JSC::Lexer::lex):
- * parser/Lexer.h:
-
-2010-09-07 James Robinson <jamesr@chromium.org>
-
- Compile fix attempt for windows.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
-
-2010-09-07 Mihai Parparita <mihaip@chromium.org>
-
- Reviewed by James Robinson.
-
- Fix Windows build after r66936
- https://bugs.webkit.org/show_bug.cgi?id=45348
-
- Add symbol names that were missing from r66936.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
-
-2010-09-07 Mihai Parparita <mihaip@chromium.org>
-
- Reviewed by Oliver Hunt.
-
- pushState and replaceState do not clone RegExp objects correctly
- https://bugs.webkit.org/show_bug.cgi?id=44718
-
- Move internal representation of JSC::RegExp (which depends on wether
- YARR and YARR_JIT is enabled) into RegExpRepresentation which can live
- in the implementation only. This makes it feasible to use RegExp in
- WebCore without bringing in all of YARR.
-
- * JavaScriptCore.exp: Export RegExp and RegExpObject functions that are
- needed inside WebCore's JSC bindings.
- * runtime/RegExp.cpp:
- (JSC::RegExpRepresentation::~RegExpRepresentation):
- (JSC::RegExp::RegExp):
- (JSC::RegExp::~RegExp):
- (JSC::RegExp::compile):
- (JSC::RegExp::match):
- * runtime/RegExp.h:
-
-2010-09-07 Anders Carlsson <andersca@apple.com>
-
- Reviewed by Darin Adler.
-
- <rdar://problem/8381749> -Wcast-align warning emitted when building with clang
-
- Remove the -Wcast-align-warning since it isn't really useful, and clang is more aggressive about warning than gcc.
-
- * Configurations/Base.xcconfig:
-
-2010-09-07 Zoltan Horvath <zoltan@webkit.org>
-
- Reviewed by Darin Adler.
-
- REGRESSION(66741): Undefined pthread macros
- https://bugs.webkit.org/show_bug.cgi?id=45246
-
- PTHREAD_MUTEX_NORMAL and PTHREAD_MUTEX_DEFAULT (introduced in r60487) are not defined on Linux,
- but used in a statement. Add an additional check to test this.
-
- * wtf/FastMalloc.cpp:
- (WTF::TCMalloc_PageHeap::initializeScavenger):
-
-2010-09-06 Oliver Hunt <oliver@apple.com>
-
- Windows build fix
-
-2010-09-05 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Sam Weinig.
-
- SerializedScriptValue needs to use a flat storage mechanism
- https://bugs.webkit.org/show_bug.cgi?id=45244
-
- Export JSArray::put
-
- * JavaScriptCore.exp:
-
-2010-09-06 Chao-ying Fu <fu@mips.com>
-
- Reviewed by Oliver Hunt.
+2011-03-02 Daniel Cheng <dcheng@chromium.org>
- Support JSVALUE32_64 on MIPS
- https://bugs.webkit.org/show_bug.cgi?id=43999
+ Reviewed by David Levin.
- Add missing functions to support JSVALUE32_64 on MIPS.
- Remove JSVALUE32 as the default for MIPS.
+ Add feature define for data transfer items
+ https://bugs.webkit.org/show_bug.cgi?id=55510
- * assembler/MIPSAssembler.h:
- (JSC::MIPSAssembler::divd):
- (JSC::MIPSAssembler::mthc1):
- (JSC::MIPSAssembler::cvtwd):
- * assembler/MacroAssemblerMIPS.h:
- (JSC::MacroAssemblerMIPS::neg32):
- (JSC::MacroAssemblerMIPS::branchOr32):
- (JSC::MacroAssemblerMIPS::set8):
- (JSC::MacroAssemblerMIPS::loadDouble):
- (JSC::MacroAssemblerMIPS::divDouble):
- (JSC::MacroAssemblerMIPS::convertInt32ToDouble):
- (JSC::MacroAssemblerMIPS::branchDouble):
- (JSC::MacroAssemblerMIPS::branchConvertDoubleToInt32):
- (JSC::MacroAssemblerMIPS::zeroDouble):
- * jit/JIT.h:
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTINativeCall):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::privateCompilePutByIdTransition):
- * jit/JITStubs.cpp:
- (JSC::JITThunks::JITThunks):
- * jit/JITStubs.h:
+ * Configurations/FeatureDefines.xcconfig:
* wtf/Platform.h:
-2010-09-06 Robert Hogan <robert@webkit.org>
-
- Unreviewed, compile fix.
-
- Fix compile failure in r66843
-
- Revert to original patch in bugzilla. Leave bug open for
- discussion on potential removal of double utf8 conversion.
+2011-03-02 Adam Roben <aroben@apple.com>
- https://bugs.webkit.org/show_bug.cgi?id=45240
-
- * wtf/text/WTFString.cpp:
- (WTF::String::format):
-
-2010-09-06 Robert Hogan <robert@webkit.org>
-
- Reviewed by Andreas Kling.
+ Delete old .res files whenever any .vsprops file changes
- [Qt] utf8 encoding of console() messages
+ Prospective fix for <http://webkit.org/b/55599> r80079 caused incremental Windows builds to
+ fail
- Unskip:
- http/tests/security/xssAuditor/embed-tag-null-char.html
- http/tests/security/xssAuditor/object-embed-tag-null-char.html
-
- Both tests failed because Qt's implementation of String::format()
- is casting a utf8 result to String, which assumes latin1 in
- its constructor. So instead of casting a QString to a String, use
- StringImpl::create() instead. Unfortunately, this involves a lot
- of extra casts but the end result is correct.
-
- https://bugs.webkit.org/show_bug.cgi?id=45240
-
- * wtf/text/WTFString.cpp:
- (WTF::String::format):
-
-2010-09-03 Alexey Proskuryakov <ap@apple.com>
-
- Reviewed by Darin Adler.
-
- https://bugs.webkit.org/show_bug.cgi?id=45135
- <rdar://problem/7823714> TCMalloc_PageHeap doesn't hold a mutex while manipulating shared data
-
- * wtf/FastMalloc.cpp:
- (WTF::TCMalloc_PageHeap::initializeScavenger): Make sure to create a non-recursive mutex
- regardless of platform default, so that we can assert that it's held (this is for platforms
- that don't have libdispatch).
- (WTF::TCMalloc_PageHeap::signalScavenger): Assert that the mutex is held, so we can look
- at m_scavengeThreadActive. For platforms that have libdispatch, assert that pageheap_lock
- is held.
- (WTF::TCMalloc_PageHeap::periodicScavenge): Make sure that pageheap_lock is held before
- manipulating m_scavengeThreadActive. Otherwise, there is an obvious race condition, and we
- can make unbalanced calls to dispatch_resume().
-
-2010-09-03 Lucas De Marchi <lucas.demarchi@profusion.mobi>
+ Reviewed by Tony Chang.
- Reviewed by Martin Robinson.
-
- [EFL] Regression (66531) Build break with Glib Support
- https://bugs.webkit.org/show_bug.cgi?id=45011
-
- Move GtkTypedefs.h to GTypedefs.h and let it inside gobject directory
- since when glib is enabled, EFL port needs it, too.
-
- * CMakeListsEfl.txt: Include gobject directory to find new header
- file.
- * GNUmakefile.am: Ditto.
- * wtf/CMakeListsEfl.txt: Ditto.
- * wtf/Platform.h: Include header if port is EFL and glib support is
- enabled.
- * wtf/gtk/GtkTypedefs.h: Removed.
- * wtf/gobject/GTypedefs.h: Added. Sections specific to GTK are now
- guarded by PLATFORM(GTK).
-
-2010-09-03 Csaba Osztrogonác <ossy@webkit.org>
-
- Reviewed by Simon Hausmann.
-
- Fix warning in wtf/ByteArray.h
- https://bugs.webkit.org/show_bug.cgi?id=44672
-
- * wtf/ByteArray.h: Use maximal sized array for MSVC and unsized array for other compilers.
-
-2010-09-02 Adam Barth <abarth@webkit.org>
-
- Reviewed by Eric Seidel.
-
- Actually parse a URL from ParsedURL
- https://bugs.webkit.org/show_bug.cgi?id=45080
-
- This patch only handles standard URLs. At some point we'll need to
- distinguish between standard URLs and other kinds of URLs.
-
- * wtf/url/api/ParsedURL.cpp:
- (WTF::ParsedURL::ParsedURL):
+ * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py:
+ (main): Restructured code to loop over a set of file extensions, deleting any old files that
+ have that extension. Now deletes .res files, too. (We previously deleted any file matching
+ *.manifest*, but that turned out to just be the union of *.manifest and *.res.)
-2010-09-02 Adam Barth <abarth@webkit.org>
+2011-03-02 Adam Barth <abarth@webkit.org>
- Reviewed by Eric Seidel.
+ Reviewed by Dimitri Glazkov.
- Add ParsedURL and URLString to WTFURL API
- https://bugs.webkit.org/show_bug.cgi?id=45078
+ Teach JavaScriptCore GYP build how to build minidom
+ https://bugs.webkit.org/show_bug.cgi?id=55536
- Currently there's no actual URL parsing going on, but this patch is a
- start to sketching out the API.
+ * JavaScriptCore.gypi:
+ * gyp/JavaScriptCore.gyp:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/url/api/ParsedURL.cpp: Added.
- (WTF::ParsedURL::ParsedURL):
- (WTF::ParsedURL::scheme):
- (WTF::ParsedURL::username):
- (WTF::ParsedURL::password):
- (WTF::ParsedURL::host):
- (WTF::ParsedURL::port):
- (WTF::ParsedURL::path):
- (WTF::ParsedURL::query):
- (WTF::ParsedURL::fragment):
- (WTF::ParsedURL::segment):
- * wtf/url/api/ParsedURL.h: Added.
- (WTF::ParsedURL::spec):
- * wtf/url/api/URLString.h: Added.
- (WTF::URLString::URLString):
- (WTF::URLString::string):
-
-2010-09-02 Adam Barth <abarth@webkit.org>
+2011-03-01 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
- Add WTFURL to the JavaScriptCore build on Mac
- https://bugs.webkit.org/show_bug.cgi?id=45075
-
- Building code is good.
+ JavaScriptCore GYP build should copy some headers into the target framework
+ https://bugs.webkit.org/show_bug.cgi?id=55524
- * JavaScriptCore.xcodeproj/project.pbxproj:
-
-2010-09-02 Alexey Proskuryakov <ap@apple.com>
-
- Reviewed by Oliver Hunt.
-
- https://bugs.webkit.org/show_bug.cgi?id=43230
- <rdar://problem/8254215> REGRESSION: Memory leak within JSParser::JSParser
-
- One can't delete a ThreadSpecific object that has data in it. It's not even possible to
- enumerate data objects in all threads, much less destroy them from a thread that's destroying
- the ThreadSpecific.
-
- * parser/JSParser.cpp:
- (JSC::JSParser::JSParser):
- * runtime/JSGlobalData.h:
- * wtf/WTFThreadData.cpp:
- (WTF::WTFThreadData::WTFThreadData):
- * wtf/WTFThreadData.h:
- (WTF::WTFThreadData::approximatedStackStart):
- Moved stack guard tracking from JSGlobalData to WTFThreadData.
-
- * wtf/ThreadSpecific.h: Made destructor unimplemented. It's dangerous, and we probably won't
- ever face a situation where we'd want to delete a ThreadSpecific object.
-
-2010-09-01 Gavin Barraclough <barraclough@apple.com>
-
- Rubber stamped by Oliver Hunt.
+ After this patch, all the framework headers are exported as public
+ headers. We need to teach GYP how to handle private headers.
- Ecma-262 15.11.1.1 states that if the argument is undefined then an
- Error object's message property should be set to the empty string.
-
- * runtime/ErrorInstance.cpp:
- (JSC::ErrorInstance::ErrorInstance):
- (JSC::ErrorInstance::create):
- * runtime/ErrorInstance.h:
- * runtime/ErrorPrototype.cpp:
- (JSC::ErrorPrototype::ErrorPrototype):
-
-2010-08-31 Darin Adler <darin@apple.com>
-
- Reviewed by Anders Carlsson.
+ I struggled to determine how to store the information about whether a
+ header was public, private, or project (i.e., not exported).
+ Generally, the GYPI should just list the files, but it seemed siliy to
+ have an almost duplicated list of files in the GYP file itself. If
+ this design doesn't scale, we might have to revisit it in the future.
- * wtf/FastMalloc.cpp:
- (WTF::TCMalloc_PageHeap::scavenge): Replaced somewhat-quirky code that
- mixed types with code that uses size_t.
-
- * wtf/TCPageMap.h: Removed names of unused arguments to avoid warning.
-
-2010-08-31 Martin Robinson <mrobinson@igalia.com>
-
- Reviewed by Gustavo Noronha Silva.
-
- [GTK] Isolate all GTK+ typedefs into one file
- https://bugs.webkit.org/show_bug.cgi?id=44900
-
- * GNUmakefile.am: Add GtkTypedefs.h to the source lists.
- * wtf/Platform.h: #include GtkTypedefs.h for the GTK+ build.
- * wtf/ThreadingPrimitives.h: Remove GTK+ typedefs.
- * wtf/gobject/GOwnPtr.h: Ditto.
- * wtf/gobject/GRefPtr.h: Ditto.
- * wtf/gtk/GtkTypedefs.h: Added.
-
-2010-08-31 Martin Robinson <mrobinson@igalia.com>
-
- Reviewed by Gustavo Noronha Silva.
-
- [GTK] Fix 'make dist' in preparation of the 1.3.3 release
- https://bugs.webkit.org/show_bug.cgi?id=44978
-
- * GNUmakefile.am: Adding missing headers to the sources list.
-
-2010-08-31 Chao-ying Fu <fu@mips.com>
-
- Reviewed by Oliver Hunt.
-
- Support emit_op_mod() for MIPS
- https://bugs.webkit.org/show_bug.cgi?id=42855
-
- This patch uses MIPS div instructions for op_mod to improve performance.
-
- * assembler/MIPSAssembler.h:
- (JSC::MIPSAssembler::div):
- * jit/JITArithmetic.cpp:
- (JSC::JIT::emit_op_mod):
- (JSC::JIT::emitSlow_op_mod):
-
-2010-08-31 Csaba Osztrogonác <ossy@webkit.org>
-
- Reviewed by Darin Adler.
-
- Modify ASSERT_UNUSED and UNUSED_PARAM similar to Qt's Q_UNUSED.
- https://bugs.webkit.org/show_bug.cgi?id=44870
-
- * wtf/Assertions.h:
- * wtf/UnusedParam.h:
-
-2010-08-31 Benjamin Poulain <benjamin.poulain@nokia.com>
-
- Reviewed by Kenneth Rohde Christiansen.
-
- JSC TimeoutChecker::didTimeOut overflows on ARM
- https://bugs.webkit.org/show_bug.cgi?id=38538
-
- Make getCPUTime() return values relative to the first call.
- The previous implementation relied on simply on currentTime(), which
- return a time since epoch and not a time since the thread started. This
- made the return value of getCPUTime() overflow on 32 bits.
-
- * runtime/TimeoutChecker.cpp:
- (JSC::getCPUTime):
-
-2010-08-30 Mihai Parparita <mihaip@chromium.org>
-
- Reviewed by Adam Barth.
-
- HISTORY_ALWAYS_ASYNC should be removed (history should always be async)
- https://bugs.webkit.org/show_bug.cgi?id=44315
-
- Remove ENABLE_HISTORY_ALWAYS_ASYNC #define.
-
- * wtf/Platform.h:
-
-2010-08-30 Chris Rogers <crogers@google.com>
-
- Reviewed by Kenneth Russell.
-
- Fix namespace for wtf/Complex.h and wtf/Vector3.h
- https://bugs.webkit.org/show_bug.cgi?id=44892
-
- * wtf/Complex.h:
- * wtf/Vector3.h:
-
-2010-08-30 Andy Estes <aestes@apple.com>
-
- Reviewed by Eric Carlson.
-
- Strings returned by asciiDebug() should be NULL-terminated.
- https://bugs.webkit.org/show_bug.cgi?id=44866
-
- * wtf/text/WTFString.cpp:
- (asciiDebug):
-
-2010-08-30 Zoltan Herczeg <zherczeg@webkit.org>
-
- Reviewed by Darin Adler.
-
- Refactor number parsing in the lexer
- https://bugs.webkit.org/show_bug.cgi?id=44104
-
- Number parsing was full of gotos, and needed a complete
- redesign to remove them (Only one remained). Furthermore
- integer arithmetic is empolyed for fast cases (= small
- integer numbers).
-
- * parser/Lexer.cpp:
- (JSC::Lexer::parseHex):
- (JSC::Lexer::parseOctal):
- (JSC::Lexer::parseDecimal):
- (JSC::Lexer::parseNumberAfterDecimalPoint):
- (JSC::Lexer::parseNumberAfterExponentIndicator):
- (JSC::Lexer::lex):
- * parser/Lexer.h:
-
-2010-08-29 Darin Adler <darin@apple.com>
-
- Fix Qt build.
-
- * wtf/unicode/glib/UnicodeMacrosFromICU.h: Added U_IS_BMP.
- * wtf/unicode/qt4/UnicodeQt4.h: Ditto.
- * wtf/unicode/wince/UnicodeWince.h: Ditto.
-
-2010-08-29 Kwang Yul Seo <skyul@company100.net>
-
- Reviewed by Kent Tamura.
-
- [BREWMP] Port vprintf_stderr_common
- https://bugs.webkit.org/show_bug.cgi?id=33568
-
- Use BREW's DBGPRINTF to output debug messages.
-
- * wtf/Assertions.cpp:
-
-2010-08-28 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Bug 44830 - In Array's prototype functyions we're incorrectly handing large index values
-
- We are in places casting doubles to unsigneds, and unsigneds to ints, without always check
- that the result is within bounds. This is problematic in the case of double-to-unsigned
- conversion because we should be saturating to array length.
-
- Also, the error return value from Array.splice should be [], not undefined.
-
- I don't see any security concerns here. These methods are spec'ed in such a way that they
- can be applied to non Array objects, so in all cases the (potentially bogus) indices are
- being passed to functions that will safely check accesses are within bounds.
-
- * runtime/ArrayPrototype.cpp:
- (JSC::argumentClampedIndexFromStartOrEnd):
- (JSC::arrayProtoFuncJoin):
- (JSC::arrayProtoFuncConcat):
- (JSC::arrayProtoFuncReverse):
- (JSC::arrayProtoFuncShift):
- (JSC::arrayProtoFuncSlice):
- (JSC::arrayProtoFuncSort):
- (JSC::arrayProtoFuncSplice):
- (JSC::arrayProtoFuncUnShift):
- (JSC::arrayProtoFuncFilter):
- (JSC::arrayProtoFuncMap):
- (JSC::arrayProtoFuncEvery):
- (JSC::arrayProtoFuncForEach):
- (JSC::arrayProtoFuncSome):
- (JSC::arrayProtoFuncReduce):
- (JSC::arrayProtoFuncReduceRight):
- (JSC::arrayProtoFuncIndexOf):
- (JSC::arrayProtoFuncLastIndexOf):
- * runtime/JSValue.h:
- (JSC::JSValue::toUInt32):
+ * JavaScriptCore.gyp/JavaScriptCore.gyp:
+ * JavaScriptCore.gypi:
+ * gyp/JavaScriptCore.gyp:
-2010-08-28 Pratik Solanki <psolanki@apple.com>
+2011-03-01 Sheriff Bot <webkit.review.bot@gmail.com>
- Reviewed by Dan Bernstein.
+ Unreviewed, rolling out r80079.
+ http://trac.webkit.org/changeset/80079
+ https://bugs.webkit.org/show_bug.cgi?id=55547
- Add an ENABLE define for purgeable memory support
- https://bugs.webkit.org/show_bug.cgi?id=44777
+ "Broke the Win debug build?" (Requested by dcheng on #webkit).
* wtf/Platform.h:
-2010-08-27 Kimmo Kinnunen <kimmo.t.kinnunen@nokia.com>
-
- Reviewed by Kenneth Rohde Christiansen.
-
- [Qt] NPAPI Plugin metadata should be cached, and loading a plugin should not require loading every plugin
- https://bugs.webkit.org/show_bug.cgi?id=43179
-
- Add ENABLE_NETSCAPE_PLUGIN_METADATA_CACHE flag to enable persistent
- NPAPI Plugin Cache. The flag is enabled by default.
-
- * wtf/Platform.h: Add ENABLE_NETSCAPE_PLUGIN_METADATA_CACHE
-
-2010-07-27 Jer Noble <jer.noble@apple.com>
-
- Reviewed by Eric Carlson.
-
- Add JavaScript API to allow a page to go fullscreen.
- rdar://problem/6867795
- https://bugs.webkit.org/show_bug.cgi?id=43099
-
- * wtf/Platform.h: Enable FULLSCREEN_API mode for the Mac (except iOS).
-
-2010-08-27 Gavin Barraclough <barraclough@apple.com>
-
- Windows build fix pt 2.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
-
-2010-08-27 Gavin Barraclough <barraclough@apple.com>
-
- Windows build fix pt 1.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
-
-2010-08-27 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Bug 44745 - Number.toFixed/toExponential/toPrecision are inaccurate.
-
- These methods should be using a version of dtoa that can generate results accurate
- to the requested precision, whereas our version of dtoa is only currently able to
- support producing results sufficiently accurate to distinguish the value from any
- other IEEE-754 double precision number.
-
- This change has no impact on benchmarks we track.
-
- On microbenchmarks for these functions, this is a slight regression where a high
- precision is requested (dtoa now need to iterate further to generate a a greater
- number of digits), but with smaller precision values (hopefully more common) this
- improves performance, since it reduced the accurate of result dtoa is required,
- to produce, and removes the need to pre-round values before calling dtoa.
-
- * JavaScriptCore.exp:
- doubleToStringInJavaScriptFormat renamed to numberToString
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- doubleToStringInJavaScriptFormat renamed to numberToString
-
- * runtime/UString.cpp:
- (JSC::UString::number):
- doubleToStringInJavaScriptFormat renamed to numberToString
-
- * wtf/DecimalNumber.h:
- (WTF::DecimalNumber::DecimalNumber):
- (WTF::DecimalNumber::toStringDecimal):
- (WTF::DecimalNumber::toStringExponential):
- Remove all pre-rounding of values, instead call dtoa correctly.
-
- * wtf/dtoa.cpp:
- (WTF::dtoa):
- * wtf/dtoa.h:
- Reenable support for rounding to specific-figures/decimal-places in dtoa.
- Modify to remove unbiased rounding, provide ECMA required away-from-zero.
- Rewrite doubleToStringInJavaScriptFormat to use DecimalNumber, rename to
- numberToString.
-
-2010-08-27 Chao-ying Fu <fu@mips.com>
-
- Reviewed by Oliver Hunt.
-
- Byte alignment issue on MIPS
- https://bugs.webkit.org/show_bug.cgi?id=29415
-
- MIPS accesses one byte at a time for now to avoid the help from the
- kernel to fix unaligned accesses.
-
- * wtf/text/AtomicString.cpp:
- (WebCore::equal):
- * wtf/text/StringHash.h:
- (WebCore::StringHash::equal):
-
-2010-08-27 Xan Lopez <xlopez@igalia.com>
-
- Reviewed by Tor Arne Vestbø.
-
- Fix a couple of typos in comment.
-
- * bytecode/CodeBlock.h:
-
-2010-08-26 Gavin Barraclough <barraclough@apple.com>
-
- Windows build fix.
-
- * wtf/dtoa.cpp:
+2011-03-01 Daniel Cheng <dcheng@chromium.org>
-2010-08-26 Gavin Barraclough <baraclough@apple.com>
-
- Reviewed by Sam Weinig.
-
- Bug 44735 - Clean up dtoa.cpp
- Remove unused & unmaintained code paths, reformat code to match
- coding standard & use platform #defines from Platform.h directly.
-
- * wtf/dtoa.cpp:
- (WTF::storeInc):
- (WTF::multadd):
- (WTF::s2b):
- (WTF::lo0bits):
- (WTF::mult):
- (WTF::pow5mult):
- (WTF::lshift):
- (WTF::diff):
- (WTF::ulp):
- (WTF::b2d):
- (WTF::d2b):
- (WTF::ratio):
- (WTF::):
- (WTF::strtod):
- (WTF::quorem):
- (WTF::dtoa):
-
-2010-08-26 Gavin Barraclough <barraclough@apple.com>
-
- Rubber Stamped by Oliver Hunt.
-
- Partially revert r65959. The toString changes regressed the v8 tests,
- but keep the toFixed/toExponential/toPrecision changes.
-
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * runtime/NumberPrototype.cpp:
- * runtime/UString.cpp:
- (JSC::UString::number):
- * wtf/DecimalNumber.h:
- * wtf/dtoa.cpp:
- (WTF::append):
- (WTF::doubleToStringInJavaScriptFormat):
- * wtf/dtoa.h:
- * wtf/text/WTFString.cpp:
- * wtf/text/WTFString.h:
-
-2010-08-26 James Robinson <jamesr@chromium.org>
-
- Reviewed by Darin Fisher.
-
- [chromium] Remove the USE(GLES2_RENDERING) define and associated code
- https://bugs.webkit.org/show_bug.cgi?id=43761
+ Reviewed by David Levin.
- Remove WTF_USE_GLES2_RENDERING from the list of defines in chromium, it's unused.
+ Add feature define for data transfer items
+ https://bugs.webkit.org/show_bug.cgi?id=55510
* wtf/Platform.h:
-2010-08-26 Gavin Barraclough <barraclough@apple.com>
+2011-03-01 Oliver Hunt <oliver@apple.com>
- Rolling out r64608, this regressed performance.
+ Reviewed by Joseph Pecoraro.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * assembler/ARMAssembler.cpp:
- (JSC::ARMAssembler::executableCopy):
- * assembler/LinkBuffer.h:
- (JSC::LinkBuffer::LinkBuffer):
- (JSC::LinkBuffer::~LinkBuffer):
- (JSC::LinkBuffer::performFinalization):
- * assembler/MIPSAssembler.h:
- (JSC::MIPSAssembler::executableCopy):
- * assembler/X86Assembler.h:
- (JSC::X86Assembler::executableCopy):
- * bytecode/StructureStubInfo.h:
- (JSC::StructureStubInfo::initGetByIdProto):
- (JSC::StructureStubInfo::initGetByIdChain):
- (JSC::StructureStubInfo::initGetByIdSelfList):
- (JSC::StructureStubInfo::initGetByIdProtoList):
- (JSC::StructureStubInfo::initPutByIdTransition):
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutablePool::systemAlloc):
- * jit/ExecutableAllocator.h:
- (JSC::ExecutablePool::create):
- (JSC::ExecutableAllocator::ExecutableAllocator):
- (JSC::ExecutableAllocator::poolForSize):
- (JSC::ExecutablePool::ExecutablePool):
- (JSC::ExecutablePool::poolAllocate):
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::allocInternal):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompile):
- * jit/JIT.h:
- (JSC::JIT::compileGetByIdProto):
- (JSC::JIT::compileGetByIdSelfList):
- (JSC::JIT::compileGetByIdProtoList):
- (JSC::JIT::compileGetByIdChainList):
- (JSC::JIT::compileGetByIdChain):
- (JSC::JIT::compilePutByIdTransition):
- (JSC::JIT::compilePatchGetArrayLength):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- (JSC::JIT::privateCompileCTINativeCall):
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::stringGetByValStubGenerator):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- (JSC::JIT::privateCompileGetByIdProto):
- (JSC::JIT::privateCompileGetByIdSelfList):
- (JSC::JIT::privateCompileGetByIdProtoList):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::stringGetByValStubGenerator):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- (JSC::JIT::privateCompileGetByIdProto):
- (JSC::JIT::privateCompileGetByIdSelfList):
- (JSC::JIT::privateCompileGetByIdProtoList):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
- * jit/JITStubs.cpp:
- (JSC::JITThunks::tryCachePutByID):
- (JSC::JITThunks::tryCacheGetByID):
- (JSC::DEFINE_STUB_FUNCTION):
- (JSC::getPolymorphicAccessStructureListSlot):
- * jit/JITStubs.h:
- * jit/SpecializedThunkJIT.h:
- (JSC::SpecializedThunkJIT::finalize):
- * runtime/ExceptionHelpers.cpp:
- * runtime/ExceptionHelpers.h:
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::compileInternal):
- (JSC::ProgramExecutable::compileInternal):
- (JSC::FunctionExecutable::compileForCallInternal):
- (JSC::FunctionExecutable::compileForConstructInternal):
- (JSC::FunctionExecutable::reparseExceptionInfo):
- (JSC::EvalExecutable::reparseExceptionInfo):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::compile):
+ Misaligned memory access in CloneDeserializer on all ARM arch.
+ https://bugs.webkit.org/show_bug.cgi?id=48742
-2010-08-26 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Brady Eidson.
-
- Bug 44655 - Add debug only convenience methods to obtain a Vector<char> from a String/StringImpl.
-
- * wtf/text/WTFString.cpp:
- (asciiDebug):
- Return a Vector<char> containing the contents of a string as ASCII.
-
-2010-08-26 Sam Weinig <sam@webkit.org>
-
- Reviewed by Darin Adler.
-
- Add PassOwnArrayPtr
- https://bugs.webkit.org/show_bug.cgi?id=44627
-
- * GNUmakefile.am:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- Add the new files.
-
- * wtf/Forward.h:
- Forward declare PassOwnArrayPtr.
-
- * wtf/OwnArrayPtr.h:
- Mimic the OwnPtr interface.
-
- * wtf/OwnArrayPtrCommon.h: Added.
- (WTF::deleteOwnedArrayPtr):
- Move delete function here so it can be shared by OwnArrayPtr and
- PassOwnArrayPtr.
-
- * wtf/PassOwnArrayPtr.h: Added.
- Mimic the PassOwnPtr interface.
-
-2010-08-26 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Gavin Barraclough.
+ Add a CPU class for architectures that need aligned addresses
+ for memory access.
- [JSC] JavaScript parsing error when loading Equifax web page
- https://bugs.webkit.org/show_bug.cgi?id=42900
-
- '-->' is ostensibly only meant to occur when there is only
- whitespace preceeding it on the line. However firefox treats
- multiline comments as a space character, so they are allowed.
- One side effect of the firefox model is that any line terminators
- inside the multiline comment are ignored, so
-
- foo/*
- */-->
-
- is treated as
-
- foo -->
-
- and so '-->' will not be a comment in this case. Happily this simply
- means that to fix this issue all we need to do is stop updating
- m_atLineStart when handling multiline comments.
-
- * parser/Lexer.cpp:
- (JSC::Lexer::lex):
-
-2010-08-25 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- Improve overflow handling in StringImpl::Replace
- https://bugs.webkit.org/show_bug.cgi?id=42502
- <rdar://problem/8203794>
-
- Harden StringImpl::replace against overflow -- I can't see how this
- could be abused, but it's better to be safe than sorry.
-
- * wtf/text/StringImpl.cpp:
- (WTF::StringImpl::replace):
-
-2010-08-26 Martin Robinson <mrobinson@igalia.com>
-
- Reviewed by Xan Lopez.
-
- [GTK] The GNUmakefile.am files contain a myriad of confusing preprocessor and compiler flag definitions
- https://bugs.webkit.org/show_bug.cgi?id=44624
-
- Clean up GNUmakefile.am.
-
- * GNUmakefile.am: Alphabetize the include order in javascriptcore_cppflags. Move
- a couple include lines from the top-level GNUmakefile.am.
-
-2010-08-25 Xan Lopez <xlopez@igalia.com>
-
- Reviewed by Kent Tamura.
-
- Local variables 'k' and 'y' in s2b() in dtoa.cpp are computed but not used
- https://bugs.webkit.org/show_bug.cgi?id=29259
-
- Remove unused code in dtoa.cpp, spotted by Wan-Teh Chang.
-
- * wtf/dtoa.cpp:
- (WTF::s2b):
+ * wtf/Platform.h:
-2010-08-25 Kwang Yul Seo <skyul@company100.net>
+2011-03-01 Adam Barth <abarth@webkit.org>
- Reviewed by Kevin Ollivier.
+ Reviewed by Dimitri Glazkov.
- [BREWMP] Add build system
- https://bugs.webkit.org/show_bug.cgi?id=44645
+ Add pre- and post-build actions for JavaScriptCore GYP build
+ https://bugs.webkit.org/show_bug.cgi?id=55507
- Make waf script portable so that we can add more ports.
+ After this patch, we have all the steps for building the main
+ JavaScriptCore framework except the "copy headers" step, which I'll do
+ next.
- * wscript:
+ * gyp/JavaScriptCore.gyp:
-2010-08-25 Michael Saboff <msaboff@apple.com>
+2011-03-01 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
- Remove the single entry regular expression cache introduced as part of
- the fix for https://bugs.webkit.org/show_bug.cgi?id=41238.
- The performance problem in Dromaeo that initiated that bug is no
- longer present. Dromaeo has been modified so that the regular
- expression tests are somewhat random and don't benefit from a
- single entry cache.
-
- * runtime/RegExp.cpp:
- (JSC::RegExp::RegExp):
- (JSC::RegExp::match):
- * runtime/RegExp.h:
-
-2010-08-25 Martin Robinson <mrobinson@igalia.com>
-
- Reviewed by Gustavo Noronha Silva.
-
- Cairo and EFL port shouldn't depend on glib.
- https://bugs.webkit.org/show_bug.cgi?id=44354
-
- Replace GRefPtr with PlatformRefPtr. Keep GLib specific bits in
- GRefPtr.h.
-
- * GNUmakefile.am: Add PlatformRefPtr.h to the source list.
- * wtf/PlatformRefPtr.h: Migrated from GRefPtr.h.
- (WTF::PlatformRefPtr::PlatformRefPtr): Ditto.
- (WTF::PlatformRefPtr::~PlatformRefPtr): Ditto.
- (WTF::PlatformRefPtr::clear): Ditto.
- (WTF::PlatformRefPtr::get): Ditto.
- (WTF::PlatformRefPtr::operator*): Ditto.
- (WTF::PlatformRefPtr::operator->): Ditto.
- (WTF::PlatformRefPtr::operator!): Ditto.
- (WTF::PlatformRefPtr::operator UnspecifiedBoolType): Ditto.
- (WTF::PlatformRefPtr::hashTableDeletedValue): Ditto.
- (WTF::::operator): Ditto.
- (WTF::::swap): Ditto.
- (WTF::swap): Ditto.
- (WTF::operator==): Ditto.
- (WTF::operator!=): Ditto.
- (WTF::static_pointer_cast): Ditto.
- (WTF::const_pointer_cast): Ditto.
- (WTF::getPtr): Ditto.
- (WTF::adoptPlatformRef): Ditto.
- * wtf/gobject/GRefPtr.cpp: Changes to reflect new names.
- (WTF::refPlatformPtr):
- (WTF::derefPlatformPtr):
- * wtf/gobject/GRefPtr.h: Ditto.
- (WTF::refPlatformPtr):
- (WTF::derefPlatformPtr):
-
-2010-08-25 Xan Lopez <xlopez@igalia.com>
-
- Reviewed by Alexey Proskuryakov.
-
- Remove dead code in JSGlobalObject
- https://bugs.webkit.org/show_bug.cgi?id=44615
-
- The recursion data member in the JSGlobalObject and its getter
- plus inc/dec methods seems to be unused, remove them.
-
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::init):
- * runtime/JSGlobalObject.h:
-
-2010-08-25 Michael Saboff <msaboff@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- Changed the initial and subsequent allocation of vector storage to
- Array()s. The changes are to limit sparse arrays to 100000 entries
- and fixed the sparse map to vector storage conversion to use the
- minimum amount of memory needed to store the current number of entries.
- These changes address https://bugs.webkit.org/show_bug.cgi?id=43707
-
- * runtime/JSArray.cpp:
- (JSC::JSArray::putSlowCase):
- (JSC::JSArray::getNewVectorLength):
-
-2010-08-16 Gabor Loki <loki@webkit.org>
-
- Reviewed by Gavin Barraclough.
-
- Avoid increasing required alignment of target type warning
- https://bugs.webkit.org/show_bug.cgi?id=43963
-
- Fix platform independent alignment warnings.
-
- * wtf/ListHashSet.h:
- (WTF::ListHashSetNodeAllocator::pool):
-
-2010-08-19 Gabor Loki <loki@webkit.org>
-
- Reviewed by Gavin Barraclough.
-
- Enable truncated floating point feature on ARM
- https://bugs.webkit.org/show_bug.cgi?id=44233
-
- Enable truncated floating point feature with the help of VCVTR.S32.F64
- instruction. If VCVTR.S32.F64 can't fit the result into a 32-bit
- integer/register, it saturates at INT_MAX or INT_MIN. Testing this
- looks quicker than testing FPSCR for exception.
-
- Inspired by Jacob Bramley's patch from JaegerMonkey
-
- * assembler/ARMAssembler.h:
- (JSC::ARMAssembler::):
- (JSC::ARMAssembler::cmn_r):
- (JSC::ARMAssembler::vcvtr_s32_f64_r):
- * assembler/MacroAssemblerARM.h:
- (JSC::MacroAssemblerARM::supportsFloatingPointTruncate):
- (JSC::MacroAssemblerARM::branchTruncateDoubleToInt32):
-
-2010-08-24 Gavin Barraclough <barraclough@apple.com>
-
- Windows build fix.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
-
-2010-08-24 Gavin Barraclough <barraclough@apple.com>
-
- Windows build fix.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * wtf/DecimalNumber.h:
- (WTF::DecimalNumber::intPow10):
- * wtf/dtoa.cpp:
- * wtf/dtoa.h:
-
-2010-08-23 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Oliver Hunt.
-
- https://bugs.webkit.org/show_bug.cgi?id=44487
-
- Number.toExponential/toFixed/toPrecision all contain a spaghetti of duplicated
- code & unnecessary complexity. Add a new DecimalNumber class to encapsulate
- double to string conversion, share the implementations of rounding &
- decimal-fraction/exponential formatting.
+ Rolled back in r79627 now that the underlying cause for it crashing is fixed.
+ https://bugs.webkit.org/show_bug.cgi?id=55159
* JavaScriptCore.exp:
- Update exports.
-
- * runtime/NumberPrototype.cpp:
- (JSC::toThisNumber):
- (JSC::getIntegerArgumentInRange):
- Helper methods used in implementing toExponential/toFixed/toString.
- (JSC::numberProtoFuncToExponential):
- (JSC::numberProtoFuncToFixed):
- (JSC::numberProtoFuncToPrecision):
- Reimplemented using new DecimalNumber class.
-
- * runtime/UString.cpp:
- (JSC::UString::number):
- Updated to call numberToString.
-
- * wtf/DecimalNumber.h: Added.
- (WTF::):
- (WTF::DecimalNumber::DecimalNumber):
- (WTF::DecimalNumber::toStringDecimal):
- (WTF::DecimalNumber::toStringExponential):
- (WTF::DecimalNumber::sign):
- (WTF::DecimalNumber::exponent):
- (WTF::DecimalNumber::significand):
- (WTF::DecimalNumber::precision):
- (WTF::DecimalNumber::init):
- (WTF::DecimalNumber::isZero):
- (WTF::DecimalNumber::roundToPrecision):
- New class to perform double to string conversion.
- Has three constructors, which allow conversion with no rounding,
- rounding to significant-figures, or rounding to decimal-places,
- and two methods for formatting strings, either using decimal
- fraction or exponential encoding. Internal implementation uses
- pre-rounding of the values before calling dtoa rather than
- relying on dtoa to correctly round, which does not produce
- fully accurate results. Hopefully we can address this in the
- near future.
-
- * wtf/dtoa.cpp:
- (WTF::intPow10):
- * wtf/dtoa.h:
- intPow10 is used internally by DecimalNumber.
-
- * wtf/text/WTFString.cpp:
- (WTF::copyToString):
- (WTF::nanOrInfToString):
- Used internally in numberToString for NaN/Infinity handling.
- (WTF::numberToString):
- Added new method to convert doubles to strings.
-
- * wtf/text/WTFString.h:
- Added declaration for numberToString. This is here because
- we should switch over to using this for all double to string
- conversion in WebCore (see section 2.4.4.3 of the HTML5 spec).
-
-2010-08-24 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Geoff Garen.
-
- Don't seed the JS random number generator from time()
- https://bugs.webkit.org/show_bug.cgi?id=41868
- <rdar://problem/8171025>
-
- Switch to using the secure random number generator to
- seed the fast random generator, and make the generator
- be per global object.
-
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- * runtime/JSGlobalData.h:
- * runtime/JSGlobalObject.h:
- (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
- (JSC::JSGlobalObject::weakRandomNumber):
- * runtime/MathObject.cpp:
- (JSC::mathProtoFuncRandom):
-
-2010-08-24 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Beth Dakin.
-
- Make overflow guards in UString::utf8 explicit
- https://bugs.webkit.org/show_bug.cgi?id=44540
-
- Add an explicit overflow check prior to allocating our buffer,
- rather than implicitly relying on the guard in convertUTF16ToUTF8.
-
- * runtime/UString.cpp:
- (JSC::UString::utf8):
-
-2010-08-24 Yael Aharon <yael.aharon@nokia.com>
-
- Reviewed by Simon Hausmann.
-
- [Symbian] Fix commit/decommit of system memory using RChunk
-
- Swap accidentially reversed start and m_base values for determining the
- offset within the RChunk.
-
- * wtf/PageReservation.h:
- (WTF::PageReservation::systemCommit):
- (WTF::PageReservation::systemDecommit):
-
-2010-08-23 Patrick Gansterer <paroga@paroga.com>
-
- Rubber-stamped by Gabor Loki.
-
- [WINCE] Buildfix for GeneratedJITStubs after r64818
- https://bugs.webkit.org/show_bug.cgi?id=44469
-
- Use " THUNK_RETURN_ADDRESS_OFFSET" instead of "#offset#".
-
- * jit/JITStubs.cpp:
-
-2010-08-23 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Darin Adler.
-
- [REGRESSION] Interpreter incorrectly excludes prototype chain when validating put_by_id_transition
- https://bugs.webkit.org/show_bug.cgi?id=44240
- <rdar://problem/8328995>
-
- Fix an error I introduced when cleaning up the interpreter side of the logic
- to prevent setters being called in object initialisers.
-
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
-
-2010-08-23 Michael Saboff <msaboff@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Fixed case where a single character search string in a string.replace()
- did not properly handle back reference replacement. The fix is to
- check for a '$' as part of the check to see if we can execute the
- single character replace optimization.
- https://bugs.webkit.org/show_bug.cgi?id=44067
-
- * runtime/StringPrototype.cpp:
- (JSC::stringProtoFuncReplace):
-
-2010-08-23 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- JSON.stringify is much slower than Firefox on particular pathological input
- https://bugs.webkit.org/show_bug.cgi?id=44456
-
- Make StringBuilder::reserveCapacity reserve additional space so we don't end up
- repeatedly copying the entire result string.
-
- * runtime/StringBuilder.h:
- (JSC::StringBuilder::append):
- (JSC::StringBuilder::reserveCapacity):
-
-2010-08-23 Jian Li <jianli@chromium.org>
-
- Reviewed by Darin Fisher.
-
- Handle blob resource.
- https://bugs.webkit.org/show_bug.cgi?id=43941
-
- * JavaScriptCore.exp: Add an export that is neede by BlobResourceHandle.
-
-2010-08-19 Andreas Kling <andreas.kling@nokia.com>
-
- Reviewed by Geoffrey Garen.
-
- JSC: Move the static_cast into to(U)Int32 fast case
- https://bugs.webkit.org/show_bug.cgi?id=44037
-
- Do the static_cast<(u)int32_t> inline to avoid the function call overhead
- for easily converted values (within (u)int32_t range.)
-
- * runtime/JSValue.cpp:
- (JSC::toInt32SlowCase):
- (JSC::toUInt32SlowCase):
- * runtime/JSValue.h:
- (JSC::JSValue::toInt32):
- (JSC::JSValue::toUInt32):
-
-2010-08-18 Andreas Kling <andreas.kling@nokia.com>
-
- Reviewed by Geoffrey Garen.
-
- REGRESSION(r58469): Math.pow() always returns double-backed JSValue which is extremely slow as array subscript
- https://bugs.webkit.org/show_bug.cgi?id=43742
-
- Add codegen for pow() to return Int32 values when possible.
-
- * jit/ThunkGenerators.cpp:
- (JSC::powThunkGenerator):
-
-2010-08-18 Gabor Loki <loki@webkit.org>
-
- Reviewed by Gavin Barraclough.
-
- The JITStackFrame is wrong using Thumb-2 JIT with JSVALUE32_64
- https://bugs.webkit.org/show_bug.cgi?id=43897
-
- A 64 bits wide member in a structure is aligned to 8 bytes on ARM by
- default, but this is not taken into account in the offset defines of
- JITStackFrame.
-
- * jit/JITStubs.cpp:
- * jit/JITStubs.h:
-
-2010-08-18 Gavin Barraclough <barraclough@apple.com>
-
- Rubber stamped by Sam Weinig.
-
- Rename UString::substr to substringSharingImpl, add to WTF::String.
- Now WTF::String can do everything that JSC::UString can do!
-
- * JavaScriptCore.exp:
- * bytecode/CodeBlock.cpp:
- (JSC::escapeQuotes):
- * bytecompiler/NodesCodegen.cpp:
- (JSC::substitute):
- * parser/SourceProvider.h:
- (JSC::UStringSourceProvider::getRange):
- * runtime/FunctionPrototype.cpp:
- (JSC::insertSemicolonIfNeeded):
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::parseInt):
- * runtime/JSONObject.cpp:
- (JSC::gap):
- (JSC::Stringifier::indent):
- (JSC::Stringifier::unindent):
- * runtime/JSString.cpp:
- (JSC::JSString::replaceCharacter):
- * runtime/NumberPrototype.cpp:
- (JSC::numberProtoFuncToFixed):
- (JSC::numberProtoFuncToPrecision):
- * runtime/StringPrototype.cpp:
- (JSC::stringProtoFuncReplace):
- (JSC::trimString):
- * runtime/UString.cpp:
- (JSC::UString::substringSharingImpl):
- * runtime/UString.h:
- * wtf/text/WTFString.cpp:
- (WTF::String::substringSharingImpl):
- * wtf/text/WTFString.h:
-
-2010-08-18 Gavin Barraclough <barraclough@apple.com>
-
- Windows build fix.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * JavaScriptCore.xcodeproj/project.pbxproj:
-
-2010-08-18 Gavin Barraclough <barraclough@apple.com>
-
- Windows build fix.
-
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
* JavaScriptCore.xcodeproj/project.pbxproj:
+ * runtime/Heap.cpp:
+ (JSC::Heap::allocateSlowCase):
+ * runtime/Heap.h:
+ * runtime/JSCell.h:
+ (JSC::JSCell::MarkedSpace::sizeClassFor):
+ (JSC::JSCell::Heap::allocate):
+ (JSC::JSCell::JSCell::operator new):
+ * runtime/MarkedBlock.h:
+ * runtime/MarkedSpace.cpp:
+ (JSC::MarkedSpace::MarkedSpace):
+ (JSC::MarkedSpace::allocateBlock):
+ (JSC::MarkedSpace::reset):
+ * runtime/MarkedSpace.h:
+ (JSC::MarkedSpace::SizeClass::SizeClass):
-2010-08-17 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Sam Weinig.
-
- Bug 44146 - Remove toDouble/toUInt32 methods from UString.
-
- These methods all implement JavaScript language specific behaviour, and as such
- are not suited to being on a generic string object. They are also inefficient
- and incorrectly used, refactor & cleanup. Uses of these methods really divide
- out into two cases.
-
- ToNumber:
- Uses of toDouble from JSString and from parseFloat are implementing ecma's
- ToNumber conversion from strings (see ecma-262 9.3.1), so UString::toDouble
- should largely just be moved out to a global jsToNumber function. ToNumber is
- capable of recognizing either decimal or hexadecimal numbers, but parseFloat
- should only recognize decimal values. This is currently handled by testing for
- hexadecimal before calling toDouble, which should unnecessary - instead we can
- just split out the two parts to the grammar into separate functions. Also,
- strtod recognizes a set of literals (nan, inf, and infinity - all with any
- capitalization) - which are not defined by any of the specs we are implementing.
- To handle this we need to perform additional work in toDouble to convert the
- unsupported cases of infinities back to NaNs. Instead we should simply remove
- support for this literals from strtod. This should provide a more desirable
- behaviour for all clients of strtod.
-
- Indexed properties:
- Uses of the toStrictUInt32 methods are were all converting property names to
- indices, and all uses of toUInt32 were incorrect; in all cases we should have
- been calling toUInt32. This error results in some incorrect behaviour in the
- DOM (accessing property "0 " of a NodeList should fail; it currently does not).
- Move this method onto Identifier (our canonical property name), and make it
- always perform a strict conversion. Add a layout test to check NodeList does
- convert indexed property names correctly.
-
- * JavaScriptCore.exp:
- * runtime/Arguments.cpp:
- (JSC::Arguments::getOwnPropertySlot):
- (JSC::Arguments::getOwnPropertyDescriptor):
- (JSC::Arguments::put):
- (JSC::Arguments::deleteProperty):
- * runtime/Identifier.cpp:
- (JSC::Identifier::toUInt32):
- * runtime/Identifier.h:
- (JSC::Identifier::toUInt32):
- * runtime/JSArray.cpp:
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- (JSC::JSArray::put):
- (JSC::JSArray::deleteProperty):
- * runtime/JSArray.h:
- (JSC::Identifier::toArrayIndex):
- * runtime/JSByteArray.cpp:
- (JSC::JSByteArray::getOwnPropertySlot):
- (JSC::JSByteArray::getOwnPropertyDescriptor):
- (JSC::JSByteArray::put):
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::isInfinity):
- (JSC::jsHexIntegerLiteral):
- (JSC::jsStrDecimalLiteral):
- (JSC::jsToNumber):
- (JSC::parseFloat):
- * runtime/JSGlobalObjectFunctions.h:
- * runtime/JSString.cpp:
- (JSC::JSString::getPrimitiveNumber):
- (JSC::JSString::toNumber):
- (JSC::JSString::getStringPropertyDescriptor):
- * runtime/JSString.h:
- (JSC::JSString::getStringPropertySlot):
- * runtime/ObjectPrototype.cpp:
- (JSC::ObjectPrototype::put):
- * runtime/StringObject.cpp:
- (JSC::StringObject::deleteProperty):
- * runtime/UString.cpp:
- * runtime/UString.h:
- * wtf/dtoa.cpp:
- (WTF::strtod):
-
-2010-08-17 Gavin Barraclough <barraclough@apple.com>
+2011-03-01 Mark Rowe <mrowe@apple.com>
Reviewed by Sam Weinig.
- Bug 44099 - REGRESSION(r65468): Crashes in StringImpl::find
-
- Bug 44080 introuduced a couple of cases in which array bounds could be overrun.
- One of these was fixed in r65493, this patch fixes the other and address the
- concerns voiced in comment #6 by restructuring the loops to remove the code
- dupliction without introducing an additional if check.
-
- * wtf/text/StringImpl.cpp:
- (WTF::StringImpl::find):
- (WTF::StringImpl::findIgnoringCase):
- (WTF::StringImpl::reverseFind):
- (WTF::StringImpl::reverseFindIgnoringCase):
-
-2010-08-17 No'am Rosenthal <noam.rosenthal@nokia.com>
-
- Reviewed by Ariya Hidayat.
-
- [Qt] Move the accelerated compositing build flag to the right place
- https://bugs.webkit.org/show_bug.cgi?id=43882
-
- * wtf/Platform.h:
-
-2010-08-17 Yuta Kitamura <yutak@chromium.org>
-
- Reviewed by Shinichiro Hamaji.
-
- Avoid uninitialized memory read in StringImpl::find().
-
- REGRESSION(r65468): Crashes in StringImpl::find
- https://bugs.webkit.org/show_bug.cgi?id=44099
-
- * wtf/text/StringImpl.cpp:
- (WTF::StringImpl::find):
-
-2010-08-16 Gavin Barraclough <barraclough@apple.com>
-
- Rubber stamped by Sam Weinig
-
- Add VectorTraits to String & DefaultHash traits to UString to unify behaviour.
-
- * runtime/UString.h:
- (JSC::UStringHash::hash):
- (JSC::UStringHash::equal):
- (WTF::):
- * wtf/text/WTFString.h:
- (WTF::):
-
-2010-08-16 Gavin Barraclough <barraclough@apple.com>
-
- Rubber stamped by Sam Weinig
-
- Remove unnecessary includes from UString.h, add new includes as necessary.
-
- * profiler/CallIdentifier.h:
- * profiler/ProfileNode.h:
- * runtime/DateConversion.cpp:
- * runtime/Identifier.h:
- (JSC::IdentifierRepHash::hash):
- * runtime/RegExpCache.h:
- * runtime/RegExpKey.h:
- * runtime/UString.cpp:
- (JSC::UString::substr):
- * runtime/UString.h:
- * wtf/text/WTFString.h:
-
-2010-08-16 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Sam Weinig
+ Replace two script phases that do nothing but copy files with copy files build phases.
- Bug 44080 - String find/reverseFind methods need tidying up
- These methods have a couple of problems with their interface, and implementation.
-
- These methods take and int index, and return an int - however this is problematic
- since on 64-bit string indices may have a full 32-bit range. This spills out into
- surrounding code, which unsafely casts string indices from unsigned to int. Code
- checking the result of these methods check for a mix of "== -1", "< 0", and
- "== notFound". Clean this up by changing these methods to take an unsigned
- starting index, and return a size_t. with a failed match indicated by notFound.
- reverseFind also has a special meaning for the starting index argument, in that a
- negative index is interpreted as an offset back from the end of the string. Remove
- this functionality, in the (1!) case where it is used we should just calculate the
- offset by subtracting from the string's length.
-
- The implementation has a few problems too. The code is not in webkit style, in
- using assorted abbreviations in variable names, and implementations of similar
- find methods with differing argument types were unnecessarily inconsistent. When
- find is passed const char* data the string would be handled as latin1 (zero
- extended to UTF-16) for all characters but the first; this is sign extended.
- Case-insensitive find is broken for unicode strings; the hashing optimization is
- not unicode safe, and could result in false negatives.
-
- Unify UString find methods to match String.
+ This speeds up the build by a few seconds on high-end Mac Pros.
- * JavaScriptCore.exp:
- * bytecode/CodeBlock.cpp:
- (JSC::escapeQuotes):
- * bytecompiler/NodesCodegen.cpp:
- (JSC::substitute):
- * runtime/JSString.cpp:
- (JSC::JSString::replaceCharacter):
- * runtime/RegExp.cpp:
- (JSC::RegExp::RegExp):
- * runtime/RegExpKey.h:
- (JSC::RegExpKey::getFlagsValue):
- * runtime/StringPrototype.cpp:
- (JSC::substituteBackreferencesSlow):
- (JSC::substituteBackreferences):
- (JSC::stringProtoFuncReplace):
- (JSC::stringProtoFuncIndexOf):
- (JSC::stringProtoFuncLastIndexOf):
- (JSC::stringProtoFuncSplit):
- * runtime/UString.cpp:
- * runtime/UString.h:
- (JSC::UString::find):
- (JSC::UString::reverseFind):
- * wtf/text/AtomicString.h:
- (WTF::AtomicString::find):
- * wtf/text/StringImpl.cpp:
- (WTF::StringImpl::find):
- (WTF::StringImpl::findCaseInsensitive):
- (WTF::StringImpl::reverseFind):
- (WTF::StringImpl::reverseFindCaseInsensitive):
- (WTF::StringImpl::endsWith):
- (WTF::StringImpl::replace):
- * wtf/text/StringImpl.h:
- (WTF::StringImpl::startsWith):
- * wtf/text/WTFString.cpp:
- (WTF::String::split):
- * wtf/text/WTFString.h:
- (WTF::String::find):
- (WTF::String::reverseFind):
- (WTF::String::findCaseInsensitive):
- (WTF::String::reverseFindCaseInsensitive):
- (WTF::String::contains):
- (WTF::find):
- (WTF::reverseFind):
-
-2010-08-16 Kevin Ollivier <kevino@theolliviers.com>
-
- [wx] Build fix, do not build WebCore as a convenience library as this leads to
- errors in the Win build w/export symbols and causes problems with DOM bindings
- debugging in gdb.
-
- * wscript:
-
-2010-08-16 Leandro Pereira <leandro@profusion.mobi>
+ * JavaScriptCore.xcodeproj/project.pbxproj:
- [EFL] Build fix after r65366.
+2011-03-01 David Kilzer <ddkilzer@apple.com>
- * CMakeLists.txt: Use if (VAR) instead of if (${VAR}) to check if
- they're empty.
- * jsc/CMakeLists.txt: Ditto.
- * wtf/CMakeLists.txt: Ditto.
+ Spring cleaning!
-2010-08-15 Kevin Ollivier <kevino@theolliviers.com>
+ Rubber-stamped by Mark Rowe.
- [wx] Build fix, don't build intermediate source in DerivedSources dir.
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ (Copy Into Framework): Remove "set -x" and its comment.
- * wscript:
+2011-03-01 Michael Saboff <msaboff@apple.com>
-2010-08-14 Patrick Gansterer <paroga@paroga.com>
+ Reviewed by Darin Adler.
- Reviewed by Kenneth Rohde Christiansen.
+ TinyMCE not working in nightlies
+ https://bugs.webkit.org/show_bug.cgi?id=54978
- [CMake] Add preprocessor detection for generator scripts
- https://bugs.webkit.org/show_bug.cgi?id=43984
+ Disabling setupBeginChars() to temporarily work arround the test
+ failure. Filed https://bugs.webkit.org/show_bug.cgi?id=55479
+ to track fixing the issue.
- * CMakeLists.txt:
+ * yarr/YarrPattern.cpp:
+ (JSC::Yarr::YarrPattern::compile):
-2010-08-14 Patrick Gansterer <paroga@paroga.com>
+2011-02-23 Joseph Pecoraro <joepeck@webkit.org>
Reviewed by Kenneth Rohde Christiansen.
- [CMake] Set target properties only if available
- https://bugs.webkit.org/show_bug.cgi?id=43978
-
- * CMakeLists.txt:
- * jsc/CMakeLists.txt:
- * wtf/CMakeLists.txt:
-
-2010-08-13 Kevin Ollivier <kevino@theolliviers.com>
+ Viewport parsing no longer accepts "1.0;" value as valid.
+ https://bugs.webkit.org/show_bug.cgi?id=53705
- [wx] Build fix, add CString to the list of forwards.
-
- * wtf/Forward.h:
-
-2010-08-13 Gavin Barraclough <barraclough@apple.com>
-
- Windows build fix
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
-
-2010-08-13 Gavin Barraclough <barraclough@apple.com>
-
- Windows build fix
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
-
-2010-08-13 Gavin Barraclough <barraclough@apple.com>
-
- Windows build fix
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
-
-2010-08-13 Gavin Barraclough <barraclough@apple.com>
-
- Rubber stamped by Sam Weinig.
- Switch String::/UString::ascii() to return a CString.
+ Include a didReadNumber parameter to String -> float / double
+ conversion functions. This way, if the "ok" boolean out
+ parameter is false, you can check to see if there in fact
+ was a valid number parsed with garbage at the end. Examples
+ of that would be parsing "123x456" would have ok = false,
+ but didReadNumber = true.
* JavaScriptCore.exp:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- * bytecode/SamplingTool.cpp:
- (JSC::SamplingTool::dump):
- * interpreter/CallFrame.cpp:
- (JSC::CallFrame::dumpCaller):
- * jsc.cpp:
- (runWithScripts):
- (runInteractive):
- * runtime/Identifier.h:
- (JSC::Identifier::ascii):
- * runtime/ScopeChain.cpp:
- (JSC::ScopeChainNode::print):
- * runtime/UString.cpp:
- (JSC::UString::ascii):
- (JSC::UString::latin1):
- * runtime/UString.h:
* wtf/text/StringImpl.cpp:
- (WTF::StringImpl::asciiOLD):
+ (WTF::StringImpl::toDouble):
+ (WTF::StringImpl::toFloat):
* wtf/text/StringImpl.h:
* wtf/text/WTFString.cpp:
- (WTF::String::ascii):
- (WTF::String::latin1):
+ (WTF::String::toDouble):
+ (WTF::String::toFloat):
+ (WTF::charactersToDouble):
+ (WTF::charactersToFloat):
* wtf/text/WTFString.h:
-2010-08-13 Gabor Loki <loki@webkit.org>
+2011-02-28 Geoffrey Garen <ggaren@apple.com>
Reviewed by Gavin Barraclough.
- Avoid increasing required alignment of target type warning on ARM
- https://bugs.webkit.org/show_bug.cgi?id=38045
-
- The reinterpret_cast<Type1*>([pointer to Type2]) expressions - where
- sizeof(Type1) > sizeof(Type2) - cause the following warning on ARM:
- increases required alignment of target type warnings.
- Casting the type of [pointer to Type2] object to void* bypasses the
- warning.
-
- * assembler/ARMAssembler.cpp:
- (JSC::ARMAssembler::executableCopy):
- * assembler/AssemblerBuffer.h:
- (JSC::AssemblerBuffer::putShortUnchecked):
- (JSC::AssemblerBuffer::putIntUnchecked):
- (JSC::AssemblerBuffer::putInt64Unchecked):
- * interpreter/RegisterFile.h:
- (JSC::RegisterFile::RegisterFile):
- (JSC::RegisterFile::grow):
- * jit/JITStubs.cpp:
- * pcre/pcre_compile.cpp:
- (jsRegExpCompile):
- * runtime/JSArray.cpp:
- (JSC::JSArray::putSlowCase):
- (JSC::JSArray::increaseVectorLength):
- (JSC::JSArray::increaseVectorPrefixLength):
- (JSC::JSArray::shiftCount):
- (JSC::JSArray::unshiftCount):
- * wtf/FastMalloc.cpp:
- (WTF::PageHeapAllocator::New):
- (WTF::TCMalloc_Central_FreeList::Populate):
- * wtf/MD5.cpp:
- (WTF::reverseBytes):
- (WTF::MD5::addBytes):
- (WTF::MD5::checksum):
- * wtf/StdLibExtras.h:
- (isPointerTypeAlignmentOkay):
- (reinterpret_cast_ptr):
- * wtf/Vector.h:
- (WTF::VectorBuffer::inlineBuffer):
- * wtf/qt/StringQt.cpp:
- (WTF::String::String):
-
-2010-08-13 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Sam Weinig
+ Past-the-end writes in VM exceptions (caused crashes in r79627)
+ https://bugs.webkit.org/show_bug.cgi?id=55448
+
+ Some exceptions had the wrong structures, so they misoverestimated their
+ inline storage sizes.
- Unify UString::UTF8String() & String::utf8() methods,
- remove UString::cost() & make atArrayIndex a free function.
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::JSGlobalData): Use the right structure.
- * JavaScriptCore.exp:
- * bytecode/CodeBlock.cpp:
- (JSC::constantName):
- (JSC::idName):
- (JSC::CodeBlock::registerName):
- (JSC::regexpName):
- (JSC::printGlobalResolveInfo):
- (JSC::printStructureStubInfo):
- (JSC::CodeBlock::printStructure):
- (JSC::CodeBlock::printStructures):
- * jsc.cpp:
- (functionPrint):
- (functionDebug):
- (runInteractive):
- (fillBufferWithContentsOfFile):
- * pcre/pcre_exec.cpp:
- (Histogram::~Histogram):
- * profiler/CallIdentifier.h:
- (JSC::CallIdentifier::c_str):
- * profiler/Profile.cpp:
- (JSC::Profile::debugPrintDataSampleStyle):
- * profiler/ProfileGenerator.cpp:
- (JSC::ProfileGenerator::willExecute):
- (JSC::ProfileGenerator::didExecute):
- * profiler/ProfileNode.cpp:
- (JSC::ProfileNode::debugPrintData):
- (JSC::ProfileNode::debugPrintDataSampleStyle):
- * runtime/Arguments.cpp:
- (JSC::Arguments::getOwnPropertySlot):
- (JSC::Arguments::getOwnPropertyDescriptor):
- (JSC::Arguments::put):
- (JSC::Arguments::deleteProperty):
- * runtime/DateConversion.cpp:
- (JSC::parseDate):
- * runtime/Identifier.h:
- (JSC::Identifier::toStrictUInt32):
- * runtime/JSArray.cpp:
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- (JSC::JSArray::put):
- (JSC::JSArray::deleteProperty):
- * runtime/JSArray.h:
- (JSC::toArrayIndex):
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::encode):
- (JSC::parseInt):
- (JSC::globalFuncJSCPrint):
- * runtime/JSString.h:
- (JSC::RopeBuilder::JSString):
- * runtime/UString.cpp:
- (JSC::UString::toDouble):
- (JSC::putUTF8Triple):
- (JSC::UString::utf8):
- * runtime/UString.h:
- (JSC::UString::~UString):
- (JSC::UString::isNull):
- (JSC::UString::isEmpty):
- (JSC::UString::impl):
- * wtf/text/WTFString.cpp:
- (WTF::String::utf8):
- * wtf/text/WTFString.h:
- (WTF::String::~String):
- (WTF::String::swap):
- (WTF::String::isNull):
- (WTF::String::isEmpty):
- (WTF::String::impl):
- (WTF::String::length):
- (WTF::String::String):
- (WTF::String::isHashTableDeletedValue):
+ * runtime/JSObject.h:
+ (JSC::JSNonFinalObject::JSNonFinalObject):
+ (JSC::JSFinalObject::JSFinalObject): ASSERT that our structure capacity
+ is correct to verify this doesn't happen again.
-2010-08-12 Zoltan Herczeg <zherczeg@webkit.org>
+2011-03-01 Andras Becsi <abecsi@webkit.org>
- Reviewed by Gavin Barraclough.
+ Reviewed by Csaba Osztrogonác.
- Refactoring the fpu code generator for the ARM port
- https://bugs.webkit.org/show_bug.cgi?id=43842
+ [Qt] Clean up the project files and move common options to WebKit.pri.
- Support up to 32 double precision registers, and the
- recent VFP instruction formats. This patch is mainly
- a style change which keeps the current functionality.
+ * JavaScriptCore.pri: Move options also needed in WebCore into WebKit.pri.
+ * JavaScriptCore.pro: Deduplicate options.
+ * jsc.pro: Ditto.
- * assembler/ARMAssembler.h:
- (JSC::ARMRegisters::):
- (JSC::ARMAssembler::):
- (JSC::ARMAssembler::emitInst):
- (JSC::ARMAssembler::emitDoublePrecisionInst):
- (JSC::ARMAssembler::emitSinglePrecisionInst):
- (JSC::ARMAssembler::vadd_f64_r):
- (JSC::ARMAssembler::vdiv_f64_r):
- (JSC::ARMAssembler::vsub_f64_r):
- (JSC::ARMAssembler::vmul_f64_r):
- (JSC::ARMAssembler::vcmp_f64_r):
- (JSC::ARMAssembler::vsqrt_f64_r):
- (JSC::ARMAssembler::vmov_vfp_r):
- (JSC::ARMAssembler::vmov_arm_r):
- (JSC::ARMAssembler::vcvt_f64_s32_r):
- (JSC::ARMAssembler::vcvt_s32_f64_r):
- (JSC::ARMAssembler::vmrs_apsr):
- * assembler/MacroAssemblerARM.h:
- (JSC::MacroAssemblerARM::addDouble):
- (JSC::MacroAssemblerARM::divDouble):
- (JSC::MacroAssemblerARM::subDouble):
- (JSC::MacroAssemblerARM::mulDouble):
- (JSC::MacroAssemblerARM::sqrtDouble):
- (JSC::MacroAssemblerARM::convertInt32ToDouble):
- (JSC::MacroAssemblerARM::branchDouble):
- (JSC::MacroAssemblerARM::branchConvertDoubleToInt32):
+2011-03-01 Adam Barth <abarth@webkit.org>
-2010-08-12 Sheriff Bot <webkit.review.bot@gmail.com>
+ Reviewed by Eric Seidel.
- Unreviewed, rolling out r65295.
- http://trac.webkit.org/changeset/65295
- https://bugs.webkit.org/show_bug.cgi?id=43950
+ Teach JavaScriptCore GYP build about DEPTH
+ https://bugs.webkit.org/show_bug.cgi?id=55425
- It broke 4 sputnik tests (Requested by Ossy on #webkit).
+ In addition to teaching the JavaScriptCore GYP build about DEPTH, this
+ change overrides the GCC warning configuration to disable a warning
+ that's causing probems in Assertions.cpp. With that warning disabled,
+ JavaScriptCore builds again.
- * JavaScriptCore.exp:
- * bytecode/CodeBlock.cpp:
- (JSC::constantName):
- (JSC::idName):
- (JSC::CodeBlock::registerName):
- (JSC::regexpName):
- (JSC::printGlobalResolveInfo):
- (JSC::printStructureStubInfo):
- (JSC::CodeBlock::printStructure):
- (JSC::CodeBlock::printStructures):
- * jsc.cpp:
- (functionPrint):
- (functionDebug):
- (runInteractive):
- (fillBufferWithContentsOfFile):
- * pcre/pcre_exec.cpp:
- (Histogram::~Histogram):
- * profiler/CallIdentifier.h:
- (JSC::CallIdentifier::c_str):
- * profiler/Profile.cpp:
- (JSC::Profile::debugPrintDataSampleStyle):
- * profiler/ProfileGenerator.cpp:
- (JSC::ProfileGenerator::willExecute):
- (JSC::ProfileGenerator::didExecute):
- * profiler/ProfileNode.cpp:
- (JSC::ProfileNode::debugPrintData):
- (JSC::ProfileNode::debugPrintDataSampleStyle):
- * runtime/Arguments.cpp:
- (JSC::Arguments::getOwnPropertySlot):
- (JSC::Arguments::getOwnPropertyDescriptor):
- (JSC::Arguments::put):
- (JSC::Arguments::deleteProperty):
- * runtime/DateConversion.cpp:
- (JSC::parseDate):
- * runtime/Identifier.h:
- (JSC::Identifier::Identifier):
- (JSC::Identifier::toArrayIndex):
- * runtime/JSArray.cpp:
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- (JSC::JSArray::put):
- (JSC::JSArray::deleteProperty):
- * runtime/JSArray.h:
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::encode):
- (JSC::parseInt):
- (JSC::globalFuncJSCPrint):
- * runtime/JSString.h:
- (JSC::RopeBuilder::JSString):
- * runtime/UString.cpp:
- (JSC::UString::toDouble):
- (JSC::UString::UTF8String):
- * runtime/UString.h:
- (JSC::UString::isNull):
- (JSC::UString::isEmpty):
- (JSC::UString::impl):
- (JSC::UString::cost):
- (JSC::UString::~UString):
- (JSC::UString::toArrayIndex):
- * wtf/text/WTFString.cpp:
- (WTF::String::utf8):
- * wtf/text/WTFString.h:
- (WTF::String::String):
- (WTF::String::isHashTableDeletedValue):
- (WTF::String::length):
- (WTF::String::operator[]):
- (WTF::String::isNull):
- (WTF::String::isEmpty):
- (WTF::String::impl):
+ * gyp/JavaScriptCore.gyp:
-2010-08-12 Gavin Barraclough <barraclough@apple.com>
+2011-02-28 Gavin Barraclough <barraclough@apple.com>
Windows build fix.
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
-2010-08-12 Gavin Barraclough <barraclough@apple.com>
+2011-02-28 Sheriff Bot <webkit.review.bot@gmail.com>
- Reviewed by Sam Weinig
+ Unreviewed, rolling out r79948.
+ http://trac.webkit.org/changeset/79948
+ https://bugs.webkit.org/show_bug.cgi?id=55439
- Unify UString::UTF8String() & String::utf8() methods,
- remove UString::cost() & make atArrayIndex a free function.
-
- * JavaScriptCore.exp:
- * bytecode/CodeBlock.cpp:
- (JSC::constantName):
- (JSC::idName):
- (JSC::CodeBlock::registerName):
- (JSC::regexpName):
- (JSC::printGlobalResolveInfo):
- (JSC::printStructureStubInfo):
- (JSC::CodeBlock::printStructure):
- (JSC::CodeBlock::printStructures):
- * jsc.cpp:
- (functionPrint):
- (functionDebug):
- (runInteractive):
- (fillBufferWithContentsOfFile):
- * pcre/pcre_exec.cpp:
- (Histogram::~Histogram):
- * profiler/CallIdentifier.h:
- (JSC::CallIdentifier::c_str):
- * profiler/Profile.cpp:
- (JSC::Profile::debugPrintDataSampleStyle):
- * profiler/ProfileGenerator.cpp:
- (JSC::ProfileGenerator::willExecute):
- (JSC::ProfileGenerator::didExecute):
- * profiler/ProfileNode.cpp:
- (JSC::ProfileNode::debugPrintData):
- (JSC::ProfileNode::debugPrintDataSampleStyle):
- * runtime/Arguments.cpp:
- (JSC::Arguments::getOwnPropertySlot):
- (JSC::Arguments::getOwnPropertyDescriptor):
- (JSC::Arguments::put):
- (JSC::Arguments::deleteProperty):
- * runtime/DateConversion.cpp:
- (JSC::parseDate):
- * runtime/Identifier.h:
- (JSC::Identifier::toStrictUInt32):
- * runtime/JSArray.cpp:
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- (JSC::JSArray::put):
- (JSC::JSArray::deleteProperty):
- * runtime/JSArray.h:
- (JSC::toArrayIndex):
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::encode):
- (JSC::parseInt):
- (JSC::globalFuncJSCPrint):
- * runtime/JSString.h:
- (JSC::RopeBuilder::JSString):
- * runtime/UString.cpp:
- (JSC::UString::toDouble):
- (JSC::putUTF8Triple):
- (JSC::UString::utf8):
- * runtime/UString.h:
- (JSC::UString::~UString):
- (JSC::UString::isNull):
- (JSC::UString::isEmpty):
- (JSC::UString::impl):
- * wtf/text/WTFString.cpp:
- (WTF::String::utf8):
- * wtf/text/WTFString.h:
- (WTF::String::~String):
- (WTF::String::swap):
- (WTF::String::isNull):
- (WTF::String::isEmpty):
- (WTF::String::impl):
- (WTF::String::length):
- (WTF::String::String):
- (WTF::String::isHashTableDeletedValue):
-
-2010-08-12 Gavin Barraclough <barraclough@apple.com>
-
- Eeerk! - revert accidentally committed changes in UString!
-
- * JavaScriptCore.exp:
- * runtime/UString.cpp:
- (JSC::UString::UString):
- * runtime/UString.h:
-
-2010-08-12 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Sam Weinig
-
- Change UString constructors to match those in WTF::String.
- This changes behaviour of UString((char*)0) to create null
- strings, akin to UString() rather than UString::empty().
- (This matches String). Remove unused constructors from
- UString, and add null-terminated UTF-16 constructor, to
- match String. Move String's constructor into the .cpp to
- match UString.
-
- * JavaScriptCore.exp:
- * debugger/DebuggerCallFrame.cpp:
- (JSC::DebuggerCallFrame::calculatedFunctionName):
- * runtime/RegExpKey.h:
- (JSC::RegExpKey::RegExpKey):
- * runtime/SmallStrings.cpp:
- (JSC::SmallStrings::createSingleCharacterString):
- * runtime/UString.cpp:
- (JSC::UString::UString):
- * runtime/UString.h:
- (JSC::UString::UString):
- (JSC::UString::swap):
- (JSC::UString::adopt):
- (JSC::UString::operator[]):
- * wtf/text/WTFString.h:
- (WTF::String::String):
- (WTF::String::adopt):
- (WTF::String::operator[]):
-
-2010-08-12 David Levin <levin@chromium.org>
-
- Reviewed by NOBODY (build fix).
-
- * runtime/UString.h: Removed unneccessary #include.
-
-2010-08-12 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Sam Weinig
-
- Revert changes to ALWAYS_INLINEness of a couple of functions in UString.
- This appears to have degraded performance.
-
- * runtime/UString.cpp:
- (JSC::UString::ascii):
- * runtime/UString.h:
- (JSC::UString::length):
- (JSC::UString::isEmpty):
- (JSC::UString::~UString):
-
-2010-08-12 Csaba Osztrogonác <ossy@webkit.org>
-
- Reviewed by Antonio Gomes.
-
- [Qt] Fix warnings: unknown conversion type character 'l' in format
- https://bugs.webkit.org/show_bug.cgi?id=43359
-
- Qt port doesn't call any printf in String::format(...), consequently
- using __attribute__((format(printf,m,n))) is incorrect and causes
- false positive warnings on Windows if you build with MinGW.
-
- Qt port calls QString::vsprintf(...) , which is platform
- independent, and handles %lli, %llu and %llx on all platforms.
- (http://trac.webkit.org/changeset/35712)
-
- * wtf/text/WTFString.h:
-
-2010-08-12 Gabor Loki <loki@webkit.org>
-
- Reviewed by Geoffrey Garen.
-
- Fix the array subscript is above array bounds warning in ByteArray on ARM.
- https://bugs.webkit.org/show_bug.cgi?id=43358
-
- The warning is very similar to this one: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37861
-
- * wtf/ByteArray.cpp:
- (WTF::ByteArray::create):
-
-2010-08-12 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
-
- Reviewed by Martin Robinson.
-
- [GTK] Use GSettings to save/restore Web Inspector settings
- https://bugs.webkit.org/show_bug.cgi?id=43512
-
- * wtf/gobject/GRefPtr.cpp: Added support for GVariant, used by our
- GSettings support.
- (WTF::refGPtr):
- (WTF::derefGPtr):
- * wtf/gobject/GRefPtr.h:
-
-2010-08-12 Gabor Loki <loki@webkit.org>
-
- Reviewed by Simon Hausmann.
-
- The scratch register should be saved in YARR with ARM JIT
- https://bugs.webkit.org/show_bug.cgi?id=43910
-
- Reported by Jocelyn Turcotte.
+ "caused crashes on the SL release bot" (Requested by ggaren on
+ #webkit).
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::generateEnter):
- (JSC::Yarr::RegexGenerator::generateReturn):
+ * runtime/JSGlobalData.h:
+ * runtime/WriteBarrier.h:
-2010-08-11 Gavin Barraclough <barraclough@apple.com>
+2011-02-28 Gavin Barraclough <barraclough@apple.com>
Windows build fix.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/Forward.h:
-
-2010-08-11 Leo Yang <leo.yang@torchmobile.com.cn>
-
- Reviewed by Geoffrey Garen.
-
- Date("") should be an invalid date. For IE, Firefox and Chrome, Date("") is invalid date,
- which means isNaN(new Date("")) should return true.
- https://bugs.webkit.org/show_bug.cgi?id=43793
- Tests: fast/js/date-constructor.html
-
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::resetDateCache):
-
-2010-08-11 Gavin Barraclough <barraclough@apple.com>
-
- Windows & !JIT build fix.
-
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/RegExp.cpp:
- (JSC::RegExp::match):
-
-2010-08-11 Gavin Barraclough <barraclough@apple.com>
-
- Rubber stamp by sam weinig
-
- Touch a file to stop the bot rolling a bit change out!
-
- * runtime/UString.cpp:
- (JSC::UString::ascii):
-
-2010-08-11 Kevin Ollivier <kevino@theolliviers.com>
- [wx] Build fix for wx and WebDOM bindings, add CString classes to the list of forwards.
+2011-02-28 Gavin Barraclough <barraclough@apple.com>
- * wtf/Forward.h:
+ Reviewed by Sam Weinig & Darin Adler.
-2010-08-11 Gavin Barraclough <barraclough@apple.com>
+ Bug 55423 - Clean up property tables in Structure
- Rubber stamps by Darin Adler & Sam Weinig.
+ Encapsulate, reduce duplication of table search code,
+ and reduce the size of the tables (remove the index,
+ just maintain the tables in the correct order).
- Bug 43867 - Some UString cleanup
+ Shows a 0.5% - 1% progression on sunspider.
- Change JSC::UString data(), size(), and from(), to characters(), length(), and number() to match WTF::String.
- Move string concatenation methods to a new header to simplify down UString.h. Remove is8Bit().
-
- * API/JSClassRef.cpp:
- (OpaqueJSClass::~OpaqueJSClass):
- (OpaqueJSClass::className):
- * API/OpaqueJSString.cpp:
- (OpaqueJSString::create):
* JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * bytecode/CodeBlock.cpp:
- (JSC::constantName):
- (JSC::idName):
- (JSC::CodeBlock::registerName):
- (JSC::regexpName):
- * bytecode/EvalCodeCache.h:
- (JSC::EvalCodeCache::get):
- * bytecompiler/NodesCodegen.cpp:
- (JSC::ResolveNode::emitBytecode):
- (JSC::FunctionCallResolveNode::emitBytecode):
- (JSC::ReadModifyResolveNode::emitBytecode):
- (JSC::processClauseList):
- * parser/ASTBuilder.h:
- (JSC::ASTBuilder::createRegex):
- * parser/ParserArena.h:
- (JSC::IdentifierArena::makeNumericIdentifier):
- * parser/SourceProvider.h:
- (JSC::UStringSourceProvider::data):
- (JSC::UStringSourceProvider::length):
- * profiler/Profiler.cpp:
- * runtime/Arguments.cpp:
- (JSC::Arguments::getOwnPropertySlot):
- (JSC::Arguments::getOwnPropertyNames):
- (JSC::Arguments::put):
- (JSC::Arguments::deleteProperty):
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncToString):
- * runtime/DatePrototype.cpp:
- (JSC::formatLocaleDate):
- * runtime/ExceptionHelpers.cpp:
- * runtime/FunctionConstructor.cpp:
- * runtime/FunctionPrototype.cpp:
- (JSC::insertSemicolonIfNeeded):
- * runtime/Identifier.h:
- (JSC::Identifier::characters):
- (JSC::Identifier::length):
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::decode):
- (JSC::parseInt):
- (JSC::parseFloat):
- (JSC::globalFuncEscape):
- (JSC::globalFuncUnescape):
- * runtime/JSNumberCell.cpp:
- (JSC::JSNumberCell::toString):
- * runtime/JSONObject.cpp:
- (JSC::gap):
- (JSC::Stringifier::appendQuotedString):
- (JSC::Stringifier::appendStringifiedValue):
- (JSC::Stringifier::indent):
- (JSC::Stringifier::unindent):
- (JSC::Walker::walk):
- * runtime/JSString.cpp:
- (JSC::JSString::replaceCharacter):
- (JSC::JSString::getIndexSlowCase):
- * runtime/JSString.h:
- (JSC::RopeBuilder::JSString):
- (JSC::RopeBuilder::appendValueInConstructAndIncrementLength):
- (JSC::RopeBuilder::fiberCount):
- (JSC::jsSingleCharacterSubstring):
- (JSC::jsNontrivialString):
- (JSC::JSString::getIndex):
- (JSC::jsString):
- (JSC::jsStringWithFinalizer):
- (JSC::jsSubstring):
- (JSC::jsOwnedString):
- * runtime/JSStringBuilder.h:
- (JSC::JSStringBuilder::append):
- * runtime/LiteralParser.h:
- (JSC::LiteralParser::Lexer::Lexer):
- * runtime/NumberPrototype.cpp:
- (JSC::numberProtoFuncToString):
- (JSC::numberProtoFuncToFixed):
- (JSC::numberProtoFuncToExponential):
- (JSC::numberProtoFuncToPrecision):
- * runtime/NumericStrings.h:
- (JSC::NumericStrings::add):
- (JSC::NumericStrings::lookupSmallString):
- * runtime/Operations.h:
- (JSC::jsString):
- * runtime/RegExp.cpp:
- (JSC::RegExp::match):
- * runtime/RegExpCache.cpp:
- (JSC::RegExpCache::lookupOrCreate):
- (JSC::RegExpCache::create):
- * runtime/RegExpConstructor.cpp:
- (JSC::RegExpConstructor::getRightContext):
- * runtime/RegExpObject.cpp:
- (JSC::RegExpObject::match):
- * runtime/RegExpPrototype.cpp:
- (JSC::regExpProtoFuncToString):
- * runtime/StringBuilder.h:
- (JSC::StringBuilder::append):
- * runtime/StringConcatenate.h: Copied from JavaScriptCore/runtime/UString.h.
- (JSC::):
- (JSC::sumWithOverflow):
- (JSC::tryMakeString):
- (JSC::makeString):
- * runtime/StringObject.cpp:
- (JSC::StringObject::getOwnPropertyNames):
- * runtime/StringPrototype.cpp:
- (JSC::substituteBackreferencesSlow):
- (JSC::localeCompare):
- (JSC::jsSpliceSubstringsWithSeparators):
- (JSC::stringProtoFuncReplace):
- (JSC::stringProtoFuncCharAt):
- (JSC::stringProtoFuncCharCodeAt):
- (JSC::stringProtoFuncIndexOf):
- (JSC::stringProtoFuncLastIndexOf):
- (JSC::stringProtoFuncSlice):
- (JSC::stringProtoFuncSplit):
- (JSC::stringProtoFuncSubstr):
- (JSC::stringProtoFuncSubstring):
- (JSC::stringProtoFuncToLowerCase):
- (JSC::stringProtoFuncToUpperCase):
- (JSC::stringProtoFuncFontsize):
- (JSC::stringProtoFuncLink):
- (JSC::trimString):
- * runtime/UString.cpp:
- (JSC::UString::number):
- (JSC::UString::ascii):
- (JSC::UString::operator[]):
- (JSC::UString::toDouble):
- (JSC::UString::find):
- (JSC::UString::rfind):
- (JSC::UString::substr):
- (JSC::operator==):
- (JSC::operator<):
- (JSC::operator>):
- (JSC::UString::UTF8String):
- * runtime/UString.h:
- (JSC::UString::UString):
- (JSC::UString::adopt):
- (JSC::UString::length):
- (JSC::UString::characters):
- (JSC::UString::isNull):
- (JSC::UString::isEmpty):
- (JSC::UString::impl):
- (JSC::UString::cost):
- (JSC::operator==):
- (JSC::operator!=):
- (JSC::codePointCompare):
- (JSC::UString::toArrayIndex):
- (JSC::IdentifierRepHash::hash):
- (WTF::):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::jitCompileRegex):
- * yarr/RegexParser.h:
- (JSC::Yarr::Parser::Parser):
-
-2010-08-11 Gabor Loki <loki@webkit.org>
-
- Qt build fix (ARMv7).
-
- Fix invalid conversion from int to Condition.
- Add ARMv7Assembler.cpp to JavaScriptCore.pro.
-
- * JavaScriptCore.pro:
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::):
- (JSC::ARMv7Assembler::JmpSrc::JmpSrc):
-
-2010-08-11 Nathan Lawrence <nlawrence@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- At collection time, we frequently want to mark a cell, while checking
- whether it was originally checked. Previously, this was a get
- operation follwed by a set operation. Fusing the two saves
- computation and gives a 0.5% sunspider speedup.
-
- * runtime/Collector.h:
- (JSC::CollectorBitmap::getset):
- (JSC::Heap::checkMarkCell):
- * runtime/JSArray.h:
- (JSC::MarkStack::drain):
- * runtime/JSCell.h:
- (JSC::MarkStack::append):
-
-2010-08-11 Steve Falkenburg <sfalken@apple.com>
-
- Reviewed by Adam Roben.
-
- Improve vsprops copying for Windows build
- https://bugs.webkit.org/show_bug.cgi?id=41982
-
- When we detect a new SDK, always copy a new set of vsprops files.
- Previously, if someone updated their SDK after updating their sources,
- they could end up with out-of-date vsprops files.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
-
-2010-08-10 Darin Adler <darin@apple.com>
-
- Reviewed by Sam Weinig.
-
- Add leakRef and clear to all RefPtr variants
- https://bugs.webkit.org/show_bug.cgi?id=42389
-
- * API/JSRetainPtr.h: Changed all uses of "template <...>" to instead do
- "template<...>". We should probably put this in the style guide and do it
- consitently. Fixed other minor style issues. Defined many of the inlined
- functions outside the class definition, to avoid style checker warnings
- about multiple statements on a single line and for slightly better clarity
- of the class definition itself. Renamed releaseRef to leakRef. Added a
- releaseRef that calls leakRef so we don't have to rename all callers oat
- once. Added a clear function.
-
- * wtf/PassRefPtr.h: Changed all uses of releaseRef to leakRef.
-n
- * wtf/RefPtr.h: Changed all uses of "template <...>" to instead do
- "template<...>". Tidied up declarations and comments a bit.
- Changed all uses of releaseRef to leakRef.
-
- * wtf/RetainPtr.h: Changed all uses of "template <...>" to instead do
- "template<...>". Defined many of the inlined functions outside the class
- definition, to avoid style checker warnings about multiple statements on
- a single line and for slightly better clarity of the class definition itself.
- Renamed releaseRef to leakRef. Added a releaseRef that calls leakRef so we
- don't have to rename all callers at once. Added a clear function.
-
-2010-08-10 Dumitru Daniliuc <dumi@chromium.org>
-
- Unreviewed, reverting an unintentional change to a file submitted in r65108.
-
- * bytecode/CodeBlock.h:
- (JSC::binaryChop):
-
-2010-08-10 Gavin Barraclough <barraclough@apple.com>
-
- Rubber stamped by Sam Weinig
-
- Bug 43817 - Remove UString::Rep
- UString::Rep has for a long time been replaced by UStringImpl (Rep
- remaining as a typedef). UStringImpl has since been removed too
- (unified with StringImpl). Remove Rep, rename rep() to impl() and
- m_rep to m_impl. Also add impl() method to Identifier, and rename
- its UString member from _ustring to m_string.
-
- * API/JSCallbackObject.h:
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
- (JSC::JSCallbackObjectData::JSPrivatePropertyMap::deletePrivateProperty):
- * API/JSCallbackObjectFunctions.h:
- (JSC::::getOwnPropertySlot):
- (JSC::::put):
- (JSC::::deleteProperty):
- (JSC::::getOwnPropertyNames):
- (JSC::::staticValueGetter):
- (JSC::::staticFunctionGetter):
- * API/JSClassRef.cpp:
- (tryCreateStringFromUTF8):
- (OpaqueJSClass::OpaqueJSClass):
- (OpaqueJSClass::~OpaqueJSClass):
- (OpaqueJSClassContextData::OpaqueJSClassContextData):
- * API/JSClassRef.h:
- * API/OpaqueJSString.cpp:
- (OpaqueJSString::ustring):
- * bytecode/EvalCodeCache.h:
- (JSC::EvalCodeCache::get):
- * bytecode/JumpTable.h:
- (JSC::StringJumpTable::offsetForValue):
- (JSC::StringJumpTable::ctiForValue):
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::addVar):
- (JSC::BytecodeGenerator::addGlobalVar):
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::addParameter):
- (JSC::BytecodeGenerator::registerFor):
- (JSC::BytecodeGenerator::willResolveToArguments):
- (JSC::BytecodeGenerator::uncheckedRegisterForArguments):
- (JSC::BytecodeGenerator::constRegisterFor):
- (JSC::BytecodeGenerator::isLocal):
- (JSC::BytecodeGenerator::isLocalConstant):
- (JSC::BytecodeGenerator::addConstant):
- (JSC::BytecodeGenerator::emitLoad):
- (JSC::BytecodeGenerator::findScopedProperty):
- (JSC::keyForCharacterSwitch):
- (JSC::prepareJumpTableForStringSwitch):
- * bytecompiler/BytecodeGenerator.h:
- * bytecompiler/NodesCodegen.cpp:
- (JSC::processClauseList):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * parser/JSParser.cpp:
- (JSC::JSParser::parseStrictObjectLiteral):
- * pcre/pcre_exec.cpp:
- (Histogram::add):
- * profiler/CallIdentifier.h:
- (JSC::CallIdentifier::Hash::hash):
- * profiler/Profile.cpp:
- * profiler/ProfileNode.cpp:
- (JSC::ProfileNode::debugPrintDataSampleStyle):
- * profiler/ProfileNode.h:
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncToString):
- * runtime/Identifier.cpp:
- (JSC::Identifier::equal):
- (JSC::IdentifierCStringTranslator::hash):
- (JSC::IdentifierCStringTranslator::equal):
- (JSC::IdentifierCStringTranslator::translate):
- (JSC::Identifier::add):
- (JSC::IdentifierUCharBufferTranslator::hash):
- (JSC::IdentifierUCharBufferTranslator::equal):
- (JSC::IdentifierUCharBufferTranslator::translate):
- (JSC::Identifier::addSlowCase):
- * runtime/Identifier.h:
- (JSC::Identifier::Identifier):
- (JSC::Identifier::ustring):
- (JSC::Identifier::impl):
- (JSC::Identifier::data):
- (JSC::Identifier::size):
- (JSC::Identifier::ascii):
- (JSC::Identifier::isNull):
- (JSC::Identifier::isEmpty):
- (JSC::Identifier::toUInt32):
- (JSC::Identifier::toStrictUInt32):
- (JSC::Identifier::toArrayIndex):
- (JSC::Identifier::toDouble):
- (JSC::Identifier::equal):
- (JSC::Identifier::add):
- * runtime/InitializeThreading.cpp:
- (JSC::initializeThreadingOnce):
- * runtime/InternalFunction.cpp:
- (JSC::InternalFunction::displayName):
- * runtime/JSFunction.cpp:
- (JSC::JSFunction::displayName):
- * runtime/JSGlobalObject.h:
- (JSC::JSGlobalObject::addStaticGlobals):
- * runtime/JSStaticScopeObject.h:
- (JSC::JSStaticScopeObject::JSStaticScopeObject):
- * runtime/JSString.h:
- (JSC::):
- (JSC::RopeBuilder::appendStringInConstruct):
- (JSC::RopeBuilder::appendValueInConstructAndIncrementLength):
- (JSC::jsSingleCharacterSubstring):
- (JSC::jsSubstring):
- * runtime/JSVariableObject.cpp:
- (JSC::JSVariableObject::deleteProperty):
- (JSC::JSVariableObject::symbolTableGet):
- * runtime/JSVariableObject.h:
- (JSC::JSVariableObject::symbolTableGet):
- (JSC::JSVariableObject::symbolTablePut):
- (JSC::JSVariableObject::symbolTablePutWithAttributes):
- * runtime/Lookup.cpp:
- (JSC::HashTable::createTable):
- (JSC::HashTable::deleteTable):
- * runtime/Lookup.h:
- (JSC::HashEntry::initialize):
- (JSC::HashEntry::setKey):
- (JSC::HashEntry::key):
- (JSC::HashTable::entry):
* runtime/PropertyMapHashTable.h:
+ (JSC::isPowerOf2):
+ (JSC::nextPowerOf2):
+ bit ops used to calculate table size.
(JSC::PropertyMapEntry::PropertyMapEntry):
- * runtime/PropertyNameArray.cpp:
- (JSC::PropertyNameArray::add):
- * runtime/PropertyNameArray.h:
- (JSC::PropertyNameArray::add):
- (JSC::PropertyNameArray::addKnownUnique):
- * runtime/RegExp.cpp:
- (JSC::RegExp::match):
- * runtime/RegExpCache.cpp:
- (JSC::RegExpCache::create):
- * runtime/RegExpKey.h:
- (JSC::RegExpKey::RegExpKey):
- * runtime/SmallStrings.cpp:
- (JSC::SmallStringsStorage::rep):
- (JSC::SmallStrings::singleCharacterStringRep):
- * runtime/SmallStrings.h:
- * runtime/StringPrototype.cpp:
- (JSC::jsSpliceSubstringsWithSeparators):
- (JSC::stringProtoFuncMatch):
- (JSC::stringProtoFuncSearch):
+ (JSC::PropertyTable::ordered_iterator::operator++):
+ (JSC::PropertyTable::ordered_iterator::operator==):
+ (JSC::PropertyTable::ordered_iterator::operator!=):
+ (JSC::PropertyTable::ordered_iterator::operator*):
+ (JSC::PropertyTable::ordered_iterator::operator->):
+ (JSC::PropertyTable::ordered_iterator::ordered_iterator):
+ implementation of the iterator types
+ (JSC::PropertyTable::PropertyTable):
+ (JSC::PropertyTable::~PropertyTable):
+ constructors take an initial capacity for the table,
+ a table to copy, or both.
+ (JSC::PropertyTable::begin):
+ (JSC::PropertyTable::end):
+ create in-order iterators.
+ (JSC::PropertyTable::find):
+ search the hash table
+ (JSC::PropertyTable::add):
+ add a value to the hash table
+ (JSC::PropertyTable::remove):
+ remove a value from the hash table
+ (JSC::PropertyTable::size):
+ (JSC::PropertyTable::isEmpty):
+ accessors.
+ (JSC::PropertyTable::propertyStorageSize):
+ (JSC::PropertyTable::clearDeletedOffsets):
+ (JSC::PropertyTable::hasDeletedOffset):
+ (JSC::PropertyTable::getDeletedOffset):
+ (JSC::PropertyTable::addDeletedOffset):
+ cache deleted (available) offsets in the property storage array.
+ (JSC::PropertyTable::copy):
+ take a copy of the PropertyTable, potentially expanding the capacity.
+ (JSC::PropertyTable::sizeInMemory):
+ used for DEBUG build statistics
+ (JSC::PropertyTable::reinsert):
+ (JSC::PropertyTable::rehash):
+ (JSC::PropertyTable::tableCapacity):
+ (JSC::PropertyTable::deletedEntryIndex):
+ (JSC::PropertyTable::skipDeletedEntries):
+ (JSC::PropertyTable::table):
+ (JSC::PropertyTable::usedCount):
+ (JSC::PropertyTable::dataSize):
+ (JSC::PropertyTable::sizeForCapacity):
+ (JSC::PropertyTable::canInsert):
+ these methods provide internal implementation.
* runtime/Structure.cpp:
+ (JSC::Structure::dumpStatistics):
(JSC::Structure::~Structure):
+ (JSC::Structure::materializePropertyMap):
(JSC::Structure::despecifyDictionaryFunction):
- (JSC::Structure::addPropertyTransitionToExistingStructure):
(JSC::Structure::addPropertyTransition):
+ (JSC::Structure::flattenDictionaryStructure):
(JSC::Structure::copyPropertyTable):
(JSC::Structure::get):
(JSC::Structure::despecifyFunction):
+ (JSC::Structure::despecifyAllFunctions):
(JSC::Structure::put):
- (JSC::Structure::hasTransition):
(JSC::Structure::remove):
+ (JSC::Structure::createPropertyMap):
+ (JSC::Structure::getPropertyNames):
+ (JSC::PropertyTable::checkConsistency):
(JSC::Structure::checkConsistency):
+ factored out code to PropertyMapHashTable.h
* runtime/Structure.h:
+ (JSC::Structure::propertyStorageSize):
+ (JSC::Structure::isEmpty):
(JSC::Structure::get):
- (JSC::Structure::hasTransition):
- * runtime/StructureTransitionTable.h:
- * runtime/SymbolTable.h:
- * runtime/UString.cpp:
- (JSC::UString::UString):
- (JSC::UString::toStrictUInt32):
- (JSC::UString::substr):
- * runtime/UString.h:
- (JSC::UString::UString):
- (JSC::UString::adopt):
- (JSC::UString::data):
- (JSC::UString::size):
- (JSC::UString::isNull):
- (JSC::UString::isEmpty):
- (JSC::UString::impl):
- (JSC::UString::cost):
- (JSC::operator==):
- (JSC::codePointCompare):
- (JSC::IdentifierRepHash::hash):
- (WTF::):
-
-2010-08-10 Gavin Barraclough <barraclough@apple.com>
-
- Bug 43816 - Remove UStringImpl
- The class was actually removed a long time ago, replaced by StringImpl.
- UStringImpl is just a typedef onto StringImpl. Remove this.
+ factored out code to PropertyMapHashTable.h
- * API/JSClassRef.cpp:
- (OpaqueJSClass::OpaqueJSClass):
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/JSString.cpp:
- (JSC::JSString::resolveRope):
- (JSC::JSString::replaceCharacter):
- * runtime/JSString.h:
- (JSC::RopeBuilder::RopeIterator::operator*):
- (JSC::RopeBuilder::JSString):
- (JSC::RopeBuilder::appendStringInConstruct):
- (JSC::RopeBuilder::appendValueInConstructAndIncrementLength):
- (JSC::jsSingleCharacterSubstring):
- (JSC::jsSubstring):
- * runtime/JSStringBuilder.h:
- (JSC::jsMakeNontrivialString):
- * runtime/RopeImpl.cpp:
- (JSC::RopeImpl::derefFibersNonRecursive):
- * runtime/RopeImpl.h:
- (JSC::RopeImpl::deref):
- * runtime/SmallStrings.cpp:
- (JSC::SmallStringsStorage::SmallStringsStorage):
- * runtime/StringConstructor.cpp:
- (JSC::stringFromCharCodeSlowCase):
- * runtime/StringPrototype.cpp:
- (JSC::jsSpliceSubstringsWithSeparators):
- (JSC::stringProtoFuncFontsize):
- (JSC::stringProtoFuncLink):
- * runtime/UString.cpp:
- (JSC::initializeUString):
- * runtime/UString.h:
- (JSC::UString::adopt):
- (JSC::tryMakeString):
- (JSC::makeString):
- * runtime/UStringImpl.h: Removed.
-
-2010-08-10 Patrick Gansterer <paroga@paroga.com>
+2011-02-28 Xan Lopez <xlopez@igalia.com>
- Reviewed by Eric Seidel.
+ Another fix build :(
- Make FastMalloc more portable.
- https://bugs.webkit.org/show_bug.cgi?id=41790
+ Fix typo.
- * wtf/FastMalloc.cpp:
- (WTF::TCMalloc_Central_FreeList::Populate):
- (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
-
-2010-08-10 Patrick Gansterer <paroga@paroga.com>
-
- Reviewed by David Levin.
-
- [WINCE] Buildfix for CE 6.0
- https://bugs.webkit.org/show_bug.cgi?id=43027
-
- CE 6.0 doesn't define localtime in the system include files.
-
- * wtf/Platform.h: Include ce_time.h on all OS(WINCE).
-
-2010-08-10 Gavin Barraclough <barraclough@apple.com>
-
- Rubber stamped by Sam Weinig.
-
- Bug 43786 - Move AtomicStringHash from WebCore to WTF
- Also remove deprecated string headers from WebCore/platform/text.
-
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/text/AtomicString.h:
- * wtf/text/AtomicStringHash.h: Copied from WebCore/platform/text/AtomicStringHash.h.
-
-2010-08-09 Oliver Hunt <oliver@apple.com>
-
- Fix Qt/ARM again, this time including the other changed file.
-
- * jit/JIT.h:
-
-2010-08-09 Oliver Hunt <oliver@apple.com>
-
- Fix Qt/ARM
-
- C++ overload resolution I stab at thee
-
- * jit/JITInlineMethods.h:
- (JSC::JIT::beginUninterruptedSequence):
- (JSC::JIT::endUninterruptedSequence):
-
-2010-08-09 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- Allow an assembler/macroassembler to compact branches to more concise forms when linking
- https://bugs.webkit.org/show_bug.cgi?id=43745
-
- This patch makes it possible for an assembler to convert jumps into a different
- (presumably more efficient) form at link time. Currently implemented in the
- ARMv7 JIT as that already had logic to delay linking of jumps until the end of
- compilation already. The ARMv7 JIT chooses between either a 4 byte short jump
- or a full 32-bit offset (and rewrites ITTT instructions as appropriate), so does
- not yet produce the most compact form possible. The general design of the linker
- should make it relatively simple to introduce new branch types with little effort,
- as the linker has no knowledge of the exact form of any of the branches.
-
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * assembler/ARMv7Assembler.cpp: Added.
- (JSC::):
- Record jump sizes
-
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::LinkRecord::LinkRecord):
- (JSC::ARMv7Assembler::LinkRecord::from):
- (JSC::ARMv7Assembler::LinkRecord::setFrom):
- (JSC::ARMv7Assembler::LinkRecord::to):
- (JSC::ARMv7Assembler::LinkRecord::type):
- (JSC::ARMv7Assembler::LinkRecord::linkType):
- (JSC::ARMv7Assembler::LinkRecord::setLinkType):
- Encapsulate LinkRecord fields so we can compress the values somewhat
-
- (JSC::ARMv7Assembler::JmpSrc::JmpSrc):
- Need to record the jump type now
-
- (JSC::ARMv7Assembler::b):
- (JSC::ARMv7Assembler::blx):
- (JSC::ARMv7Assembler::bx):
- Need to pass the jump types
-
- (JSC::ARMv7Assembler::executableOffsetFor):
- (JSC::ARMv7Assembler::jumpSizeDelta):
- (JSC::ARMv7Assembler::linkRecordSourceComparator):
- (JSC::ARMv7Assembler::computeJumpType):
- (JSC::ARMv7Assembler::convertJumpTo):
- (JSC::ARMv7Assembler::recordLinkOffsets):
- (JSC::ARMv7Assembler::jumpsToLink):
- (JSC::ARMv7Assembler::link):
- (JSC::ARMv7Assembler::unlinkedCode):
- Helper functions for the linker
-
- (JSC::ARMv7Assembler::linkJump):
- (JSC::ARMv7Assembler::canBeShortJump):
- (JSC::ARMv7Assembler::linkLongJump):
- (JSC::ARMv7Assembler::linkShortJump):
- (JSC::ARMv7Assembler::linkJumpAbsolute):
- Moving code around for the various jump linking functions
-
- * assembler/AbstractMacroAssembler.h:
- (JSC::AbstractMacroAssembler::beginUninterruptedSequence):
- (JSC::AbstractMacroAssembler::endUninterruptedSequence):
- We have to track uninterrupted sequences in any assembler that compacts
- branches as that's not something we're allowed to do in such sequences.
- AbstractMacroAssembler has a nop version of these functions as it makes the
- code elsewhere nicer.
-
- * assembler/LinkBuffer.h:
- (JSC::LinkBuffer::LinkBuffer):
- (JSC::LinkBuffer::link):
- (JSC::LinkBuffer::patch):
- (JSC::LinkBuffer::locationOf):
- (JSC::LinkBuffer::locationOfNearCall):
- (JSC::LinkBuffer::returnAddressOffset):
- (JSC::LinkBuffer::trampolineAt):
- Updated these functions to adjust for any changed offsets in the linked code
-
- (JSC::LinkBuffer::applyOffset):
- A helper function to deal with the now potentially moved labels
-
- (JSC::LinkBuffer::linkCode):
- The new and mighty linker function
-
- * assembler/MacroAssemblerARMv7.h:
- (JSC::MacroAssemblerARMv7::MacroAssemblerARMv7):
- (JSC::MacroAssemblerARMv7::beginUninterruptedSequence):
- (JSC::MacroAssemblerARMv7::endUninterruptedSequence):
- (JSC::MacroAssemblerARMv7::jumpsToLink):
- (JSC::MacroAssemblerARMv7::unlinkedCode):
- (JSC::MacroAssemblerARMv7::computeJumpType):
- (JSC::MacroAssemblerARMv7::convertJumpTo):
- (JSC::MacroAssemblerARMv7::recordLinkOffsets):
- (JSC::MacroAssemblerARMv7::jumpSizeDelta):
- (JSC::MacroAssemblerARMv7::link):
- (JSC::MacroAssemblerARMv7::jump):
- (JSC::MacroAssemblerARMv7::branchMul32):
- (JSC::MacroAssemblerARMv7::breakpoint):
- (JSC::MacroAssemblerARMv7::nearCall):
- (JSC::MacroAssemblerARMv7::call):
- (JSC::MacroAssemblerARMv7::ret):
- (JSC::MacroAssemblerARMv7::tailRecursiveCall):
- (JSC::MacroAssemblerARMv7::executableOffsetFor):
- (JSC::MacroAssemblerARMv7::inUninterruptedSequence):
- (JSC::MacroAssemblerARMv7::makeJump):
- (JSC::MacroAssemblerARMv7::makeBranch):
- All branches need to pass on their type now
-
- * jit/ExecutableAllocator.h:
- (JSC::ExecutablePool::returnLastBytes):
- We can't know ahead of time how much space will be necessary to
- hold the linked code if we're compacting branches, this new
- function allows us to return the unused bytes at the end of linking
-
- * jit/JIT.cpp:
- (JSC::JIT::JIT):
- (JSC::JIT::privateCompile):
- * jit/JIT.h:
- (JSC::JIT::compile):
- The JIT class now needs to take a linker offset so that recompilation
- can generate the same jumps when using branch compaction.
- * jit/JITArithmetic32_64.cpp:
- (JSC::JIT::emitSlow_op_mod):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- (JSC::JIT::privateCompileCTINativeCall):
- Update for new trampolineAt changes
-
- * wtf/FastMalloc.cpp:
- (WTF::TCMallocStats::):
- * wtf/Platform.h:
-
-2010-08-09 Gavin Barraclough <barraclough@apple.com>
-
- Qt build fix III.
-
- * wtf/text/WTFString.h:
-
-2010-08-09 Gavin Barraclough <barraclough@apple.com>
-
- Qt build fix.
-
- * wtf/qt/StringQt.cpp:
+ * runtime/MachineStackMarker.cpp:
+ (JSC::freePlatformThreadRegisters):
-2010-08-06 Gavin Barraclough <barraclough@apple.com>
+2011-02-28 Xan Lopez <xlopez@igalia.com>
- Rubber stamped by Sam Weinig
+ Unreviewed build fix for Snow Leopard.
- Bug 43594 - Add string forwards to Forward.h
- This allows us to remove forward declarations for these classes from
- WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+ * runtime/MachineStackMarker.cpp:
+ (JSC::freePlatformThreadRegisters):
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/Forward.h:
+2011-02-28 Alejandro G. Castro <alex@igalia.com>
-2010-08-07 Sheriff Bot <webkit.review.bot@gmail.com>
+ Unreviewed, fix SnowLeopard compilation after r79952.
- Unreviewed, rolling out r64938.
- http://trac.webkit.org/changeset/64938
- https://bugs.webkit.org/show_bug.cgi?id=43685
+ * runtime/MachineStackMarker.cpp:
+ (JSC::freePlatformThreadRegisters):
- Did not compile on several ports (Requested by abarth on
- #webkit).
+2011-02-28 Mark Rowe <mrowe@apple.com>
- * Android.mk:
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * assembler/AbstractMacroAssembler.h:
- * assembler/MacroAssembler.h:
- * assembler/MacroAssemblerX86.h:
- (JSC::MacroAssemblerX86::load32):
- (JSC::MacroAssemblerX86::store32):
- * assembler/X86Assembler.h:
- (JSC::X86Assembler::movl_rm):
- (JSC::X86Assembler::movl_mr):
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::markAggregate):
- * bytecode/Instruction.h:
- (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::):
- (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
- (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
- * bytecode/StructureStubInfo.cpp:
- (JSC::StructureStubInfo::deref):
- * bytecode/StructureStubInfo.h:
- (JSC::StructureStubInfo::initGetByIdProto):
- (JSC::StructureStubInfo::initGetByIdChain):
- (JSC::StructureStubInfo::):
- * jit/JIT.h:
- * jit/JITMarkObjects.cpp: Removed.
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::compileGetDirectOffset):
- (JSC::JIT::testPrototype):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::privateCompileGetByIdProto):
- (JSC::JIT::privateCompileGetByIdProtoList):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::compileGetDirectOffset):
- (JSC::JIT::testPrototype):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::privateCompileGetByIdProto):
- (JSC::JIT::privateCompileGetByIdProtoList):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
- * jit/JITStubs.cpp:
- (JSC::setupPolymorphicProtoList):
- * wtf/Platform.h:
-
-2010-08-07 Nathan Lawrence <nlawrence@apple.com>
+ Reviewed by Darin Adler.
- Reviewed by Geoffrey Garen.
+ <http://webkit.org/b/55430> OwnArrayPtr.h's LOOSE_OWN_ARRAY_PTR results in link errors.
- The JIT code contains a number of direct references to GC'd objects.
- When we have movable objects, these references will need to be
- updated.
+ * wtf/OwnArrayPtr.h:
+ (WTF::::set): Implement OwnArrayPtr::set.
- * Android.mk:
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * assembler/AbstractMacroAssembler.h:
- (JSC::AbstractMacroAssembler::int32AtLocation):
- (JSC::AbstractMacroAssembler::pointerAtLocation):
- (JSC::AbstractMacroAssembler::jumpTarget):
- * assembler/MacroAssembler.h:
- (JSC::MacroAssembler::loadPtrWithPatch):
- Normally, loadPtr will optimize when the register is eax. Since
- the slightly smaller instruction changes the offsets, it messes up
- our ability to repatch the code. We added this new instruction
- that garuntees a constant size.
- * assembler/MacroAssemblerX86.h:
- (JSC::MacroAssemblerX86::load32WithPatch):
- Changed load32 in the same way described above.
- (JSC::MacroAssemblerX86::load32):
- Moved the logic to optimize laod32 from movl_mr to load32
- (JSC::MacroAssemblerX86::store32):
- Moved the logic to optimize store32 from movl_rm to store32
- * assembler/X86Assembler.h:
- (JSC::X86Assembler::movl_rm):
- (JSC::X86Assembler::movl_mr):
- (JSC::X86Assembler::int32AtLocation):
- (JSC::X86Assembler::pointerAtLocation):
- (JSC::X86Assembler::jumpTarget):
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::markAggregate):
- * bytecode/Instruction.h:
- As described in StructureStubInfo.h, we needed to add additional
- fields to both StructureStubInfo and
- PolymorphicAccessStructureList so that we can determine the
- structure of the JITed code at patch time.
- (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
- (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
- * bytecode/StructureStubInfo.cpp:
- (JSC::StructureStubInfo::markAggregate):
- Added this function to mark the JITed code that correosponds to
- this structure stub info.
- * bytecode/StructureStubInfo.h:
- (JSC::StructureStubInfo::initGetByIdProto):
- (JSC::StructureStubInfo::initGetByIdChain):
- (JSC::StructureStubInfo::):
- * jit/JIT.h:
- * jit/JITMarkObjects.cpp: Added.
- (JSC::JIT::patchPrototypeStructureAddress):
- (JSC::JIT::patchGetDirectOffset):
- (JSC::JIT::markGetByIdProto):
- (JSC::JIT::markGetByIdChain):
- (JSC::JIT::markGetByIdProtoList):
- (JSC::JIT::markPutByIdTransition):
- (JSC::JIT::markGlobalObjectReference):
- * jit/JITPropertyAccess.cpp:
- Added asserts for the patch offsets.
- (JSC::JIT::compileGetDirectOffset):
- (JSC::JIT::testPrototype):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::privateCompileGetByIdProto):
- (JSC::JIT::privateCompileGetByIdProtoList):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::compileGetDirectOffset):
- (JSC::JIT::testPrototype):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::privateCompileGetByIdProto):
- (JSC::JIT::privateCompileGetByIdProtoList):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
- * jit/JITStubs.cpp:
- (JSC::setupPolymorphicProtoList):
- * wtf/Platform.h:
- Added ENABLE_MOVABLE_GC_OBJECTS flag
+2011-02-28 Martin Zoubek <martin.zoubek@acision.com> and Alejandro G. Castro <alex@igalia.com>
-2010-08-07 Michael Saboff <msaboff@apple.com>
+ Reviewed by Martin Robinson.
- Reviewed by Geoffrey Garen.
+ Multithread support for JSC on UNIX
+ https://bugs.webkit.org/show_bug.cgi?id=26838
- Revert JSArray to point to the beginning of the contained ArrayStorage
- struct. This is described in
- https://bugs.webkit.org/show_bug.cgi?id=43526.
+ Implement suspendThread() and resumeThread() for systems with
+ pthread.h using thread signal handler.
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::emit_op_get_by_val):
- (JSC::JIT::emit_op_put_by_val):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::emit_op_get_by_val):
- (JSC::JIT::emit_op_put_by_val):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- * runtime/JSArray.cpp:
- (JSC::JSArray::JSArray):
- (JSC::JSArray::~JSArray):
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- (JSC::JSArray::put):
- (JSC::JSArray::putSlowCase):
- (JSC::JSArray::deleteProperty):
- (JSC::JSArray::getOwnPropertyNames):
- (JSC::JSArray::getNewVectorLength):
- (JSC::JSArray::increaseVectorLength):
- (JSC::JSArray::increaseVectorPrefixLength):
- (JSC::JSArray::setLength):
- (JSC::JSArray::pop):
- (JSC::JSArray::push):
- (JSC::JSArray::shiftCount):
- (JSC::JSArray::unshiftCount):
- (JSC::JSArray::sortNumeric):
- (JSC::JSArray::sort):
- (JSC::JSArray::fillArgList):
- (JSC::JSArray::copyToRegisters):
- (JSC::JSArray::compactForSorting):
- (JSC::JSArray::subclassData):
- (JSC::JSArray::setSubclassData):
- (JSC::JSArray::checkConsistency):
- * runtime/JSArray.h:
- (JSC::JSArray::length):
- (JSC::JSArray::canGetIndex):
- (JSC::JSArray::getIndex):
- (JSC::JSArray::setIndex):
- (JSC::JSArray::uncheckedSetIndex):
- (JSC::JSArray::markChildrenDirect):
+ * runtime/MachineStackMarker.cpp:
+ (JSC::pthreadSignalHandlerSuspendResume):
+ (JSC::MachineStackMarker::Thread::Thread):
+ (JSC::getCurrentPlatformThread):
+ (JSC::suspendThread):
+ (JSC::resumeThread):
+ (JSC::getPlatformThreadRegisters):
+ (JSC::otherThreadStackPointer):
+ (JSC::freePlatformThreadRegisters):
+ (JSC::MachineStackMarker::markOtherThreadConservatively):
+ * wtf/Platform.h: Added Gtk port to use
+ ENABLE_JSC_MULTIPLE_THREADS.
-2010-08-07 Kwang Yul Seo <skyul@company100.net>
+2011-02-28 Oliver Hunt <oliver@apple.com>
- Reviewed by Eric Seidel.
+ Reviewed by Darin Adler.
- Add ENABLE(YARR) guard around JSGlobalData::m_regexAllocator
- https://bugs.webkit.org/show_bug.cgi?id=43399
+ Stop using DeprecatedPtr for the global exception slot
+ https://bugs.webkit.org/show_bug.cgi?id=55424
- m_regexAllocator is used only by RegExp::compile which is guarded with ENABLE(YARR).
+ Create GCRootPtr to signify that the exception slot is
+ a gcroot, and so is exempt from the usual writebarrier
+ restrictions.
* runtime/JSGlobalData.h:
+ * runtime/WriteBarrier.h:
+ (JSC::GCRootPtr::GCRootPtr):
+ (JSC::GCRootPtr::operator=):
-2010-08-07 Patrick Roland Gansterer <paroga@paroga.com>
-
- Reviewed by Eric Seidel.
-
- [Qt] Enable JIT on WinCE
- https://bugs.webkit.org/show_bug.cgi?id=43303
-
- Add ExtraCompiler for generating GeneratedJITStubs_MSVC.asm.
-
- * DerivedSources.pro:
-
-2010-08-07 Dan Bernstein <mitz@apple.com>
-
- Reviewed by Anders Carlsson.
-
- Created a separate SimpleFontData constructor exclusively for SVG fonts and moved the CTFontRef
- from SimpleFontData to FontPlatformData.
- https://bugs.webkit.org/show_bug.cgi?id=43674
-
- * wtf/Platform.h: Moved definitions of WTF_USE_CORE_TEXT and WTF_USE_ATSUI here from WebCore/config.h.
-
-2010-08-07 Zoltan Herczeg <zherczeg@webkit.org>
-
- Reviewed by Eric Seidel.
-
- Bitmap.h has no default constructor
- https://bugs.webkit.org/show_bug.cgi?id=43619
-
- Without a constructor, the initial bits of the Bitmap class
- are undefinied. If only a few, or zero bits are 0, the memory
- area provided by AlignedMemoryAllocator can be easly exhausted.
-
- Csaba Osztrogonác helped to find this bug.
-
- * wtf/Bitmap.h:
- (WTF::::Bitmap):
+2011-02-28 Adam Barth <abarth@webkit.org>
-2010-08-06 Rafael Antognolli <antognolli@profusion.mobi>
+ Reviewed by Dimitri Glazkov.
- [EFL] Build fix.
+ Use more xcconfig files in JavaScriptCore gyp build
+ https://bugs.webkit.org/show_bug.cgi?id=55391
- * CMakeLists.txt: add runtime/CGHandle.cpp.
+ The GYP experts tell me that we have have a total of two xcconfig
+ files: one for the xcodeproj as a whole and one for each target. This
+ patch uses that technique to re-use the existing xcconfig files and
+ eliminate the duplication.
-2010-08-06 Jessie Berlin <jberlin@apple.com>
+ Technically, this patch introduces some build errors because the
+ xcconfig files assume that the xcodeproj file is one level higher in
+ the directory hierarchy. Specifically, the xcodeproj file can no
+ longer find the Info.plist or the prefix header. I plan to fix that in
+ a subsequent patch.
- Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
- Unreviewed.
+ Also, this patch introduces the Release and Production configurations,
+ which should work correctly now.
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/Forward.h:
+ * gyp/JavaScriptCore.gyp:
-2010-08-06 Jessie Berlin <jberlin@apple.com>
+2011-02-28 Jon Honeycutt <jhoneycutt@apple.com>
- Windows Build Fix (continued). Unreviewed.
+ Windows build fix.
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ Add symbol to export.
-2010-08-06 Jessie Berlin <jberlin@apple.com>
-
- Windows Build Fix. Unreviewed.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- Add GCHandle.h and GCHandle.cpp.
-
-2010-08-06 Nathan Lawrence <nlawrence@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- https://bugs.webkit.org/show_bug.cgi?id=43207
-
- WeakGCPtr's should instead of directly pointing to the GC'd object
- should be directed to an array of pointers that can be updated for
- movable objects.
-
- * Android.mk:
- * GNUmakefile.am:
- * JavaScriptCore.exp:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/Collector.cpp:
- (JSC::Heap::destroy):
- (JSC::Heap::allocateBlock):
- (JSC::Heap::freeBlock):
- (JSC::Heap::updateWeakGCHandles):
- (JSC::WeakGCHandlePool::update):
- (JSC::Heap::addWeakGCHandle):
- (JSC::Heap::markRoots):
- * runtime/Collector.h:
- (JSC::Heap::weakGCHandlePool):
- * runtime/GCHandle.cpp: Added.
- (JSC::WeakGCHandle::pool):
- (JSC::WeakGCHandlePool::WeakGCHandlePool):
- (JSC::WeakGCHandlePool::allocate):
- (JSC::WeakGCHandlePool::free):
- (JSC::WeakGCHandlePool::operator new):
- * runtime/GCHandle.h: Added.
- (JSC::WeakGCHandle::isValidPtr):
- (JSC::WeakGCHandle::isPtr):
- (JSC::WeakGCHandle::isNext):
- (JSC::WeakGCHandle::invalidate):
- (JSC::WeakGCHandle::get):
- (JSC::WeakGCHandle::set):
- (JSC::WeakGCHandle::getNextInFreeList):
- (JSC::WeakGCHandle::setNextInFreeList):
- (JSC::WeakGCHandlePool::isFull):
- * runtime/WeakGCPtr.h:
- (JSC::WeakGCPtr::WeakGCPtr):
- (JSC::WeakGCPtr::~WeakGCPtr):
- (JSC::WeakGCPtr::get):
- (JSC::WeakGCPtr::clear):
- (JSC::WeakGCPtr::assign):
- (JSC::get):
-
-2010-08-06 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
-
- Reviewed by Antonio Gomes.
-
- [Qt] Fix warnings about difference in symbol visiblity on Mac OS X
-
- * jsc.pro:
-
-2010-08-06 Zoltan Herczeg <zherczeg@webkit.org>
-
- Reviewed by Darin Adler.
-
- Refactor identifier parsing in lexer
- https://bugs.webkit.org/show_bug.cgi?id=41845
-
- The code is refactored to avoid gotos. The new code
- has the same performance as the old one.
-
- SunSpider --parse-only: no change (from 34.0ms to 33.6ms)
- SunSpider: no change (from 523.2ms to 523.5ms)
-
- * parser/Lexer.cpp:
- (JSC::Lexer::parseIdent):
- (JSC::Lexer::lex):
- * parser/Lexer.h:
-
-2010-08-06 Gabor Loki <loki@webkit.org>
+2011-02-28 Oliver Hunt <oliver@apple.com>
Reviewed by Gavin Barraclough.
- The ARM JIT does not support JSValue32_64 with RVCT
- https://bugs.webkit.org/show_bug.cgi?id=43411
-
- JSValue32_64 is enabled for RVCT by default.
-
- * create_jit_stubs:
- * jit/JITStubs.cpp:
- (JSC::ctiTrampoline):
- (JSC::ctiVMThrowTrampoline):
- (JSC::ctiOpThrowNotCaught):
- * wtf/Platform.h:
-
-2010-08-05 Chao-ying Fu <fu@mips.com>
-
- Reviewed by Darin Adler.
+ Make ScopeChainNode GC allocated
+ https://bugs.webkit.org/show_bug.cgi?id=55283
- Define WTF_USE_ARENA_ALLOC_ALIGNMENT_INTEGER for MIPS
- https://bugs.webkit.org/show_bug.cgi?id=43514
-
- MIPS needs to define WTF_USE_ARENA_ALLOC_ALIGNMENT_INTEGER, so that
- RenderArena::allocate() can return 8-byte aligned memory to avoid
- exceptions on sdc1/ldc1.
-
- * wtf/Platform.h:
-
-2010-08-05 Gavin Barraclough <barraclough@apple.com>
-
- Rubber stamped by Sam Weinig
-
- Bug 43594 - Add string forwards to Forward.h
- This allows us to remove forward declarations for these classes from
- WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
-
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/Forward.h:
-
-2010-08-05 Geoffrey Garen <ggaren@apple.com>
-
- Reviewed by Mark Rowe.
-
- Fixed leak seen on buildbot.
-
- * runtime/GCActivityCallbackCF.cpp:
- (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback):
- (JSC::DefaultGCActivityCallback::~DefaultGCActivityCallback):
- (JSC::DefaultGCActivityCallback::operator()): Make out timer a RetainPtr,
- since anything less would be uncivilized.
-
-2010-08-05 Andy Estes <aestes@apple.com>
-
- Reviewed by David Kilzer.
-
- Rename iOS-related OS and PLATFORM macros.
- https://bugs.webkit.org/show_bug.cgi?id=43493
-
- Rename WTF_OS_IPHONE_OS to WTF_OS_IOS, WTF_PLATFORM_IPHONE to
- WTF_PLATFORM_IOS, and WTF_PLATFORM_IPHONE_SIMULATOR to
- WTF_PLATFORM_IOS_SIMULATOR.
-
- * jit/ExecutableAllocator.h:
- * jit/JITStubs.cpp:
- * profiler/ProfilerServer.mm:
- (-[ProfilerServer init]):
- * wtf/FastMalloc.cpp:
- (WTF::TCMallocStats::):
- * wtf/Platform.h:
- * wtf/unicode/icu/CollatorICU.cpp:
- (WTF::Collator::userDefault):
-
-2010-08-05 Nathan Lawrence <nlawrence@apple.com>
-
- Reviewed by Darin Adler.
-
- https://bugs.webkit.org/show_bug.cgi?id=43464
-
- Currently, the global object is being embedded in the JavaScriptCore
- bytecode, however since the global object is the same for all opcodes
- in a code block, we can have the global object just be a member of the
- associated code block.
-
- Additionally, I added an assert inside of emitOpcode that verifies
- that the last generated opcode was of the correct length.
+ Simplify lifetime and other issues with the scopechain
+ by making it gc allocated. This allows us to simplify
+ function exit and unwinding, as well as making the
+ current iterative refcounting go away.
+ * JavaScriptCore.exp:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
* bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::CodeBlock):
- (JSC::CodeBlock::derefStructures):
- (JSC::CodeBlock::markAggregate):
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::globalObject):
- (JSC::GlobalCodeBlock::GlobalCodeBlock):
- (JSC::ProgramCodeBlock::ProgramCodeBlock):
- (JSC::EvalCodeBlock::EvalCodeBlock):
- (JSC::FunctionCodeBlock::FunctionCodeBlock):
- * bytecode/Opcode.h:
- (JSC::opcodeLength):
+ (JSC::CodeBlock::createActivation):
+ * bytecode/StructureStubInfo.cpp:
* bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::emitOpcode):
- Added an assert to check that the last generated opcode is the
- correct length.
- (JSC::BytecodeGenerator::rewindBinaryOp):
- Changed the last opcode to op_end since the length will no longer
- be correct.
- (JSC::BytecodeGenerator::rewindUnaryOp):
- Changed the last opcode to op_end since the length will no longer
- be correct.
- (JSC::BytecodeGenerator::emitResolve):
- (JSC::BytecodeGenerator::emitGetScopedVar):
- (JSC::BytecodeGenerator::emitPutScopedVar):
- (JSC::BytecodeGenerator::emitResolveWithBase):
+ (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
+ (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
* bytecompiler/BytecodeGenerator.h:
+ * debugger/Debugger.cpp:
+ (JSC::Recompiler::operator()):
+ * debugger/DebuggerCallFrame.h:
+ (JSC::DebuggerCallFrame::scopeChain):
+ * interpreter/CachedCall.h:
+ (JSC::CachedCall::CachedCall):
+ * interpreter/CallFrame.h:
* interpreter/Interpreter.cpp:
- (JSC::Interpreter::resolveGlobal):
- (JSC::Interpreter::resolveGlobalDynamic):
+ (JSC::depth):
+ (JSC::Interpreter::unwindCallFrame):
+ (JSC::Interpreter::throwException):
+ (JSC::Interpreter::execute):
+ (JSC::Interpreter::executeCall):
+ (JSC::Interpreter::executeConstruct):
(JSC::Interpreter::privateExecute):
+ * jit/JITCall.cpp:
+ (JSC::JIT::compileOpCallInitializeCallFrame):
+ (JSC::JIT::compileOpCall):
+ * jit/JITCall32_64.cpp:
+ (JSC::JIT::compileOpCallInitializeCallFrame):
+ (JSC::JIT::emit_op_ret):
+ (JSC::JIT::emit_op_ret_object_or_this):
+ (JSC::JIT::compileOpCall):
* jit/JITOpcodes.cpp:
- (JSC::JIT::emit_op_get_global_var):
- (JSC::JIT::emit_op_put_global_var):
- (JSC::JIT::emit_op_resolve_global):
- (JSC::JIT::emitSlow_op_resolve_global):
- (JSC::JIT::emit_op_resolve_global_dynamic):
- (JSC::JIT::emitSlow_op_resolve_global_dynamic):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_get_global_var):
- (JSC::JIT::emit_op_put_global_var):
- (JSC::JIT::emit_op_resolve_global):
- (JSC::JIT::emitSlow_op_resolve_global):
- * jit/JITStubs.cpp:
- (JSC::cti_op_resolve_global):
- * runtime/Executable.cpp:
- (JSC::FunctionExecutable::compileForCallInternal):
- (JSC::FunctionExecutable::compileForConstructInternal):
- (JSC::FunctionExecutable::reparseExceptionInfo):
-
-2010-08-05 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Sam Weinig.
-
- Bug 43185 - Switch RegisterFile over to use PageAllocation
-
- Remove platform-specific memory allocation code.
-
- * interpreter/RegisterFile.cpp:
- (JSC::RegisterFile::~RegisterFile):
- (JSC::RegisterFile::releaseExcessCapacity):
- * interpreter/RegisterFile.h:
- (JSC::RegisterFile::RegisterFile):
- (JSC::RegisterFile::grow):
- (JSC::RegisterFile::checkAllocatedOkay):
- * wtf/PageAllocation.cpp:
- (WTF::PageAllocation::lastError):
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::allocate):
- (WTF::PageAllocation::allocateAt):
- (WTF::PageAllocation::allocateAligned):
- (WTF::PageAllocation::pageSize):
- (WTF::PageAllocation::isPageAligned):
- (WTF::PageAllocation::isPowerOfTwo):
- * wtf/PageReservation.h:
- (WTF::PageReservation::commit):
- (WTF::PageReservation::decommit):
- (WTF::PageReservation::reserve):
- (WTF::PageReservation::reserveAt):
-
-2010-08-05 Michael Saboff <msaboff@apple.com>
-
- Reviewed by Darin Adler.
-
- Fixed https://bugs.webkit.org/show_bug.cgi?id=43401 where array
- content aren't properly initialized as part of unshift.
-
- * runtime/JSArray.cpp:
- (JSC::JSArray::unshiftCount):
-
-2010-08-05 Jian Li <jianli@chromium.org>
-
- Reviewed by David Levin.
-
- Unify blob related feature defines to ENABLE(BLOB).
- https://bugs.webkit.org/show_bug.cgi?id=43081
-
- * Configurations/FeatureDefines.xcconfig:
-
-2010-08-05 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
-
- Rubber-stamped by Xan Lopez.
-
- Remove GHashTable left-overs. GHashTable is ref-counted, and is
- correctly supported by GRefPtr.
-
- * wtf/gobject/GOwnPtr.h:
-
-2010-08-05 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
-
- Unreviewed.
-
- Typo fix that makes distcheck happy.
-
- * GNUmakefile.am:
-
-2010-08-03 Geoffrey Garen <ggaren@apple.com>
-
- Reviewed by Oliver Hunt and Beth Dakin.
-
- https://bugs.webkit.org/show_bug.cgi?id=43461
- Invalid NaN parsing
-
- * wtf/dtoa.cpp: Turn off the dtoa feature that allows you to specify a
- non-standard NaN representation, since our NaN encoding assumes that all
- true NaNs have the standard bit pattern.
-
- * API/JSValueRef.cpp:
- (JSValueMakeNumber): Don't allow an API client to accidentally specify
- a non-standard NaN either.
-
-2010-08-04 Gavin Barraclough <barraclough@apple.com>
-
- Windows build fix part II.
-
- * wtf/PageReservation.h:
- (WTF::PageReservation::systemReserve):
-
-2010-08-04 Gavin Barraclough <barraclough@apple.com>
-
- Windows build fix.
-
- * wtf/PageReservation.h:
- (WTF::PageReservation::systemReserve):
-
-2010-08-04 Gavin Barraclough <barraclough@apple.com>
-
- Build fix - add new header to !Mac projects.
-
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
-
-2010-08-04 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Sam Weinig.
-
- Bug 43515 - Fix small design issues with PageAllocation, split out PageReservation.
-
- The PageAllocation class has a number of issues:
- * Changes in bug #43269 accidentally switched SYMBIAN over to use malloc/free to allocate
- blocks of memory for the GC heap, instead of allocating RChunks. Revert this change in
- behaviour.
- * In order for PageAllocation to work correctly on WinCE we should be decommitting memory
- before deallocating. In order to simplify understanding the expected state at deallocate,
- split behaviour out into PageAllocation and PageReservation classes. Require that all
- memory be decommitted before calling deallocate on a PageReservation, add asserts to
- enforce this.
- * add many missing asserts.
- * inline more functions.
- * remove ability to create sub-PageAllocations from an existing PageAllocations object -
- this presented an interface that would allow sub regions to be deallocated, which would
- not have provided expected behaviour.
- * remove writable/executable arguments to commit, this value can be cached at the point
- the memory is reserved.
- * remove writable/executable arguments to allocateAligned, protection other than RW is not
- supported.
- * add missing checks for overflow & failed allocation to mmap path through allocateAligned.
-
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutableAllocator::intializePageSize):
- * jit/ExecutableAllocator.h:
- (JSC::ExecutablePool::Allocation::Allocation):
- (JSC::ExecutablePool::Allocation::base):
- (JSC::ExecutablePool::Allocation::size):
- (JSC::ExecutablePool::Allocation::operator!):
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::reuse):
- (JSC::FixedVMPoolAllocator::coalesceFreeSpace):
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
- (JSC::FixedVMPoolAllocator::alloc):
- (JSC::FixedVMPoolAllocator::free):
- (JSC::FixedVMPoolAllocator::allocInternal):
- * runtime/AlignedMemoryAllocator.h:
- (JSC::::allocate):
- (JSC::::AlignedMemoryAllocator):
- * runtime/Collector.cpp:
- (JSC::Heap::allocateBlock):
- * runtime/Collector.h:
- * wtf/PageAllocation.cpp:
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::operator!):
- (WTF::PageAllocation::allocate):
- (WTF::PageAllocation::allocateAt):
- (WTF::PageAllocation::allocateAligned):
- (WTF::PageAllocation::deallocate):
- (WTF::PageAllocation::pageSize):
- (WTF::PageAllocation::systemAllocate):
- (WTF::PageAllocation::systemAllocateAt):
- (WTF::PageAllocation::systemAllocateAligned):
- (WTF::PageAllocation::systemDeallocate):
- (WTF::PageAllocation::systemPageSize):
- * wtf/PageReservation.h: Copied from JavaScriptCore/wtf/PageAllocation.h.
- (WTF::PageReservation::PageReservation):
- (WTF::PageReservation::commit):
- (WTF::PageReservation::decommit):
- (WTF::PageReservation::reserve):
- (WTF::PageReservation::reserveAt):
- (WTF::PageReservation::deallocate):
- (WTF::PageReservation::systemCommit):
- (WTF::PageReservation::systemDecommit):
- (WTF::PageReservation::systemReserve):
- (WTF::PageReservation::systemReserveAt):
- * wtf/Platform.h:
-
-2010-08-04 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r64655.
- http://trac.webkit.org/changeset/64655
- https://bugs.webkit.org/show_bug.cgi?id=43496
-
- JavaScriptCore references patch seems to have caused
- regressions in QT and GTK builds (Requested by nlawrence on
- #webkit).
-
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::markAggregate):
- * runtime/Collector.cpp:
- (JSC::Heap::markConservatively):
- * runtime/JSCell.h:
- (JSC::JSValue::asCell):
- (JSC::MarkStack::append):
- * runtime/JSGlobalObject.cpp:
- (JSC::markIfNeeded):
- * runtime/JSONObject.cpp:
- (JSC::Stringifier::Holder::object):
- * runtime/JSObject.h:
- (JSC::JSObject::prototype):
- * runtime/JSStaticScopeObject.cpp:
- (JSC::JSStaticScopeObject::markChildren):
- * runtime/JSValue.h:
- (JSC::JSValue::):
- (JSC::JSValue::JSValue):
- (JSC::JSValue::asCell):
- * runtime/MarkStack.h:
- * runtime/NativeErrorConstructor.cpp:
- * runtime/NativeErrorConstructor.h:
- * runtime/Structure.h:
- (JSC::Structure::storedPrototype):
-
-2010-08-04 Gavin Barraclough <barraclough@apple.com>
-
- Rubber stamped by Sam Weinig.
-
- Enable JSVALUE64 for CPU(PPC64).
- Basic browsing seems to work.
-
- * wtf/Platform.h:
-
-2010-08-04 Nathan Lawrence <nlawrence@apple.com>
-
- Reviewed by Darin Adler.
-
- Refactoring MarkStack::append to take a reference. This is in
- preparation for movable objects when we will need to update pointers.
- http://bugs.webkit.org/show_bug.cgi?id=41177
-
- Unless otherwise noted, all changes are to either return by reference
- or pass a reference to MarkStack::append.
-
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::markAggregate):
- * runtime/Collector.cpp:
- (JSC::Heap::markConservatively):
- Added a temporary variable to prevent marking from changing an
- unknown value on the stack
- * runtime/JSCell.h:
- (JSC::JSValue::asCell):
- (JSC::MarkStack::append):
- (JSC::MarkStack::appendInternal):
- * runtime/JSGlobalObject.cpp:
- (JSC::markIfNeeded):
- * runtime/JSONObject.cpp:
- (JSC::Stringifier::Holder::object):
- * runtime/JSObject.h:
- (JSC::JSObject::prototype):
- * runtime/JSStaticScopeObject.cpp:
- (JSC::JSStaticScopeObject::markChildren):
- * runtime/JSValue.h:
- (JSC::JSValue::JSValue):
- (JSC::JSValue::asCell):
- * runtime/MarkStack.h:
- * runtime/NativeErrorConstructor.cpp:
- (JSC::NativeErrorConstructor::createStructure):
- Changed the structure flags to include a custom markChildren.
- (JSC::NativeErrorConstructor::markChildren):
- Update the prototype of the stored structure.
- * runtime/NativeErrorConstructor.h:
- Added structure flags.
- * runtime/Structure.h:
- (JSC::Structure::storedPrototype):
-
-2010-08-03 Nathan Lawrence <nlawrence@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Tightened up some get_by_id_chain* code generation
- https://bugs.webkit.org/show_bug.cgi?id=40935
-
- This is in the style of
- https://bugs.webkit.org/show_bug.cgi?id=30539, and changed code to
- call accessor functions when it was not necessary to directly access
- the private variables.
-
- * jit/JIT.h:
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::compileGetDirectOffset):
- (JSC::JIT::testPrototype):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::testPrototype):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
-
-2010-08-03 Adam Roben <aroben@apple.com>
-
- Turn on PLATFORM_STRATEGIES on Windows
-
- Fixes <http://webkit.org/b/43431>.
-
- Reviewed by Anders Carlsson.
-
- * wtf/Platform.h:
-
-2010-08-04 Gabor Loki <loki@webkit.org>
-
- Reviewed by Geoffrey Garen.
-
- Enable JSValue32_64 for GCC on ARM by default
- https://bugs.webkit.org/show_bug.cgi?id=43410
-
- * wtf/Platform.h:
-
-2010-08-03 Gavin Barraclough <barraclough@apple.com>
-
- Speculative windows build fix.
-
- * wtf/Bitmap.h:
-
-2010-08-03 Gavin Barraclough <barraclough@apple.com>
-
- Build fix following r64624.
-
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * wtf/PageAllocation.h:
-
-2010-08-03 Nathan Lawrence <nlawrence@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- https://bugs.webkit.org/show_bug.cgi?id=43269
-
- Added new allocateAligned methods to PageAllocation. In order to
- prevent a regress in performance, the function needs to be inlined.
-
- Additionally, I ported the symbian block allocator to use
- PageAllocation and added a new WTF::Bitmap class to support this.
-
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/AlignedMemoryAllocator.h: Added.
- (JSC::AlignedMemory::deallocate):
- (JSC::AlignedMemory::base):
- (JSC::AlignedMemory::AlignedMemory):
- (JSC::AlignedMemoryAllocator::destroy):
- (JSC::AlignedMemoryAllocator::allocate):
- (JSC::AlignedMemoryAllocator::AlignedMemoryAllocator):
- (JSC::AlignedMemoryAllocator::~AlignedMemoryAllocator):
- (JSC::AlignedMemoryAllocator::free):
- * runtime/Collector.cpp:
- (JSC::Heap::Heap):
- (JSC::Heap::destroy):
- (JSC::Heap::allocateBlock):
- (JSC::Heap::freeBlock):
- (JSC::Heap::freeBlocks):
- (JSC::Heap::allocate):
- (JSC::Heap::shrinkBlocks):
- (JSC::Heap::markConservatively):
- (JSC::Heap::clearMarkBits):
- (JSC::Heap::markedCells):
- * runtime/Collector.h:
- (JSC::CollectorHeap::collectorBlock):
- * runtime/CollectorHeapIterator.h:
- (JSC::CollectorHeapIterator::operator*):
- (JSC::LiveObjectIterator::operator++):
- (JSC::DeadObjectIterator::operator++):
- * wtf/Bitmap.h: Added.
- (WTF::Bitmap::get):
- (WTF::Bitmap::set):
- (WTF::Bitmap::clear):
- (WTF::Bitmap::clearAll):
- (WTF::Bitmap::advanceToNextFreeBit):
- (WTF::Bitmap::count):
- (WTF::Bitmap::isEmpty):
- (WTF::Bitmap::isFull):
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::operator UnspecifiedBoolType):
- (WTF::PageAllocation::allocateAligned):
- (WTF::PageAllocation::reserveAligned):
- * wtf/Platform.h:
- * wtf/symbian: Removed.
- * wtf/symbian/BlockAllocatorSymbian.cpp: Removed.
- * wtf/symbian/BlockAllocatorSymbian.h: Removed.
-
-2010-08-03 Michael Saboff <msaboff@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- Fix for https://bugs.webkit.org/show_bug.cgi?id=43314. The prior code
- was using the wrong "length" value to move array contents when adding
- space to the beginning of an array for an unshift() or similar
- operation. Instead of using m_vectorLength, the length of the
- allocated JSValue array, the code was using m_length, the declared
- length of the array. These two values do not need to match.
-
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/JSArray.cpp:
- (JSC::JSArray::increaseVectorPrefixLength):
-
-2010-08-03 Chao-ying Fu <fu@mips.com>
-
- Reviewed by Gavin Barraclough.
-
- Fix following https://bugs.webkit.org/show_bug.cgi?id=43089
- (accidentally inverted a compiler version check).
-
- * jit/ExecutableAllocator.h:
- (JSC::ExecutableAllocator::cacheFlush):
-
-2010-08-03 Patrick Gansterer <paroga@paroga.com>
-
- Reviewed by Gavin Barraclough.
-
- Implement DEFINE_STUB_FUNCTION for WinCE.
- https://bugs.webkit.org/show_bug.cgi?id=34953
-
- * jit/JITStubs.cpp:
- (JSC::):
- (JSC::DEFINE_STUB_FUNCTION):
-
-2010-08-02 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Bug 43390 - Do not CRASH if we run out of room for jit code.
-
- Change the ExecutableAllocator implementations not to crash, and to return 0 if memory cannot be allocated.
- The assemblers should pass this through without trying to use it in executableCopy.
- Change the LinkBuffer to handle this, and to provide an allocationSuccessful() method to test for this.
-
- Change the JIT to throw an exception if allocation fails.
- Make JIT optimizations fail gracefully if memory cannot be allocated (use non-optimized path).
- Change YARR JIT to fallback to PCRE
-
- * assembler/ARMAssembler.cpp:
- (JSC::ARMAssembler::executableCopy):
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::executableCopy):
- * assembler/LinkBuffer.h:
- (JSC::LinkBuffer::allocationSuccessful):
- * assembler/MIPSAssembler.h:
- (JSC::MIPSAssembler::executableCopy):
- * assembler/X86Assembler.h:
- (JSC::X86Assembler::executableCopy):
- * bytecode/StructureStubInfo.h:
- (JSC::StructureStubInfo::initGetByIdProto):
- (JSC::StructureStubInfo::initGetByIdChain):
- (JSC::StructureStubInfo::initGetByIdSelfList):
- (JSC::StructureStubInfo::initGetByIdProtoList):
- (JSC::StructureStubInfo::initPutByIdTransition):
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutablePool::systemAlloc):
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::allocInternal):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompile):
- * jit/JIT.h:
- (JSC::JIT::compileGetByIdProto):
- (JSC::JIT::compileGetByIdSelfList):
- (JSC::JIT::compileGetByIdProtoList):
- (JSC::JIT::compileGetByIdChainList):
- (JSC::JIT::compileGetByIdChain):
- (JSC::JIT::compilePutByIdTransition):
- (JSC::JIT::compilePatchGetArrayLength):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
+ (JSC::JIT::emit_op_end):
+ (JSC::JIT::emit_op_ret):
+ (JSC::JIT::emit_op_ret_object_or_this):
* jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- (JSC::JIT::privateCompileCTINativeCall):
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::stringGetByValStubGenerator):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- (JSC::JIT::privateCompileGetByIdProto):
- (JSC::JIT::privateCompileGetByIdSelfList):
- (JSC::JIT::privateCompileGetByIdProtoList):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::stringGetByValStubGenerator):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- (JSC::JIT::privateCompileGetByIdProto):
- (JSC::JIT::privateCompileGetByIdSelfList):
- (JSC::JIT::privateCompileGetByIdProtoList):
- (JSC::JIT::privateCompileGetByIdChainList):
- (JSC::JIT::privateCompileGetByIdChain):
+ (JSC::JIT::emit_op_end):
* jit/JITStubs.cpp:
- (JSC::JITThunks::tryCachePutByID):
- (JSC::JITThunks::tryCacheGetByID):
(JSC::DEFINE_STUB_FUNCTION):
- (JSC::setupPolymorphicProtoList):
* jit/JITStubs.h:
- * jit/SpecializedThunkJIT.h:
- (JSC::SpecializedThunkJIT::finalize):
- * runtime/ExceptionHelpers.cpp:
- (JSC::createOutOfMemoryError):
- * runtime/ExceptionHelpers.h:
+ * runtime/ArgList.cpp:
+ * runtime/Completion.cpp:
+ (JSC::evaluate):
+ * runtime/Completion.h:
+ * runtime/DateConversion.cpp:
* runtime/Executable.cpp:
(JSC::EvalExecutable::compileInternal):
(JSC::ProgramExecutable::compileInternal):
(JSC::FunctionExecutable::compileForCallInternal):
(JSC::FunctionExecutable::compileForConstructInternal):
- (JSC::FunctionExecutable::reparseExceptionInfo):
- (JSC::EvalExecutable::reparseExceptionInfo):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::compile):
-
-2010-08-03 Geoffrey Garen <ggaren@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Fixed a crash seen on the GTK 64bit buildbot.
-
- When JSArray is allocated for the vptr stealing hack, it's not allocated
- in the heap, so the JSArray constructor can't safely call Heap::heap().
-
- Since this was subtle enough to confuse smart people, I've changed JSArray
- to have an explicit vptr stealing constructor.
-
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/JSArray.cpp:
- (JSC::JSArray::JSArray):
- * runtime/JSArray.h:
- (JSC::JSArray::):
+ * runtime/FunctionConstructor.cpp:
+ (JSC::constructFunction):
+ * runtime/GCActivityCallbackCF.cpp:
+ * runtime/Identifier.cpp:
+ * runtime/JSCell.h:
+ * runtime/JSChunk.cpp: Added.
+ * runtime/JSChunk.h: Added.
+ * runtime/JSFunction.cpp:
+ (JSC::JSFunction::JSFunction):
+ (JSC::JSFunction::markChildren):
+ (JSC::JSFunction::getCallData):
+ (JSC::JSFunction::getOwnPropertySlot):
+ (JSC::JSFunction::getConstructData):
+ * runtime/JSFunction.h:
+ (JSC::JSFunction::scope):
+ (JSC::JSFunction::setScope):
* runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::storeVPtrs):
-
-2010-08-03 Alex Milowski <alex@milowski.com>
-
- Reviewed by Beth Dakin.
-
- Changed the ENABLE_MATHML value to enable MathML by default.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2010-08-03 Michael Saboff <msaboff@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- Change to keep returned pointer from malloc family functions to
- quiet memory leak detect. The pointer is saved in the new m_allocBase
- member of the ArrayStorage structure. This fixes the issue found in
- https://bugs.webkit.org/show_bug.cgi?id=43229.
-
- As part of this change, we use m_allocBase when reallocating and
- freeing the memory associated with ArrayStorage.
-
- * runtime/JSArray.cpp:
- (JSC::JSArray::JSArray):
- (JSC::JSArray::~JSArray):
- (JSC::JSArray::putSlowCase):
- (JSC::JSArray::increaseVectorLength):
- (JSC::JSArray::increaseVectorPrefixLength):
- * runtime/JSArray.h:
-
-2010-08-03 Geoffrey Garen <ggaren@apple.com>
-
- Reviewed by Mark Rowe.
-
- https://bugs.webkit.org/show_bug.cgi?id=43444
- PLATFORM(CF) is false on Windows in JavaScriptCore
-
- Moved some PLATFORM(WIN) #defines down into JavaScriptCore.
-
- * wtf/Platform.h: Added WTF_PLATFORM_CF 1 and WTF_USE_PTHREADS 0, inherited
- from WebCore/config.h. Removed WTF_USE_WININET 1 since WebCore/config.h
- just #undefined that later.
-
-2010-08-03 Geoffrey Garen <ggaren@apple.com>
-
- Try to fix Windows build: Don't use GCActivityCallbackCF on Windows, since
- PLATFORM(CF) is not defined on Windows.
-
- We'll need to enable the GC activity callback some other way, but this
- change should get the build back to normal.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
-
- * runtime/GCActivityCallbackCF.cpp: Make it easier to detect this error
- in the future with an explicit error message.
-
-2010-08-03 Geoffrey Garen <ggaren@apple.com>
-
- Try to fix Windows build: update .def file.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
-
-2010-08-03 Nathan Lawrence <nlawrence@apple.com>
-
- Reviewed by Oliver Hunt.
-
- https://bugs.webkit.org/show_bug.cgi?id=41318
- GC should reclaim garbage even when new objects are not being allocated rapidly
-
- Added a callback in JavaScriptCore that gets triggered after an
- allocation causes the heap to reset. This is useful for adding a
- timer that will trigger garbage collection after the "last" allocation.
-
- Also needed was to add lock and unlock methods to JSLock that needed
- only a JSGlobalData object versus an ExecState object.
-
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.exp:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::emit_op_put_by_val):
- * runtime/Collector.cpp:
- (JSC::Heap::Heap):
- (JSC::Heap::reset):
- (JSC::Heap::setActivityCallback):
- * runtime/Collector.h:
- * runtime/GCActivityCallback.cpp: Added.
- (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback):
- (JSC::DefaultGCActivityCallback::~DefaultGCActivityCallback):
- (JSC::DefaultGCActivityCallback::operator()):
- * runtime/GCActivityCallback.h: Added.
- (JSC::GCActivityCallback::~GCActivityCallback):
- (JSC::GCActivityCallback::operator()):
- (JSC::GCActivityCallback::GCActivityCallback):
- (JSC::DefaultGCActivityCallback::create):
- * runtime/GCActivityCallbackCF.cpp: Added.
- (JSC::DefaultGCActivityCallbackPlatformData::trigger):
- (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback):
- (JSC::DefaultGCActivityCallback::~DefaultGCActivityCallback):
- (JSC::DefaultGCActivityCallback::operator()):
+ (JSC::JSGlobalData::JSGlobalData):
+ * runtime/JSGlobalData.h:
+ * runtime/JSGlobalObject.cpp:
+ (JSC::JSGlobalObject::init):
+ (JSC::JSGlobalObject::markChildren):
+ * runtime/JSGlobalObject.h:
+ (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
+ (JSC::JSGlobalObject::globalScopeChain):
+ * runtime/JSGlobalObjectFunctions.cpp:
+ (JSC::globalFuncEval):
* runtime/JSLock.cpp:
- (JSC::JSLock::JSLock):
- * runtime/JSLock.h:
-
-2010-08-02 Kevin Ollivier <kevino@theolliviers.com>
-
- [wx] Build fix after removal of need to compile ExecutableAllocatorPosix.cpp
-
- * wscript:
-
-2010-08-02 Mahesh Kulkarni <mahesh.kulkarni@nokia.com>
-
- Reviewed by Simon Hausmann.
-
- [QT] build fix for symbian
- https://bugs.webkit.org/show_bug.cgi?id=43234
+ * runtime/JSNumberCell.cpp:
+ * runtime/JSZombie.cpp:
+ * runtime/MarkedBlock.cpp:
+ * runtime/MarkedSpace.cpp:
+ * runtime/PropertyNameArray.cpp:
+ * runtime/ScopeChain.cpp:
+ (JSC::ScopeChainNode::print):
+ (JSC::ScopeChainNode::localDepth):
+ (JSC::ScopeChainNode::markChildren):
+ * runtime/ScopeChain.h:
+ (JSC::ScopeChainNode::ScopeChainNode):
+ (JSC::ScopeChainNode::createStructure):
+ (JSC::ScopeChainNode::push):
+ (JSC::ScopeChainNode::pop):
+ (JSC::ScopeChainIterator::ScopeChainIterator):
+ (JSC::ScopeChainIterator::operator*):
+ (JSC::ScopeChainIterator::operator->):
+ (JSC::ScopeChainIterator::operator++):
+ (JSC::ScopeChainNode::begin):
+ (JSC::ScopeChainNode::end):
+ (JSC::ExecState::globalData):
+ (JSC::ExecState::lexicalGlobalObject):
+ (JSC::ExecState::globalThisValue):
+ * runtime/ScopeChainMark.h:
+ * wtf/DateMath.cpp:
- 1) wrong order of passing param's
- 2) static_cast complains on symbian so using reinterpret_cast
+2011-02-27 Adam Barth <abarth@webkit.org>
- No new tests added. Just a build fix for qt symbian
+ Reviewed by Eric Seidel.
- * wtf/PageAllocation.cpp:
- (WTF::PageAllocation::commit):
- (WTF::PageAllocation::decommit):
- (WTF::PageAllocation::reserve):
+ Implement WTF::randomNumber in terms of WTF::cryptographicallyRandomNumber when possible
+ https://bugs.webkit.org/show_bug.cgi?id=55326
-2010-07-30 Luiz Agostini <luiz.agostini@openbossa.org>
+ Currently, randomNumber does a bunch of platform-specific work that to
+ get a cryptographic randomness when available. Instead, we should use
+ cryptographicallyRandomNumber, which abstracts this work.
+ Unfortunately, we can't remove all of the WTF::randomNumber
+ implementation because not every port has access to cryptographically
+ random numbers.
- Reviewed by Simon Fraser.
+ * wtf/RandomNumber.cpp:
+ (WTF::randomNumber):
- Enabling view modes to all platforms
- https://bugs.webkit.org/show_bug.cgi?id=37505
+2011-02-27 Benjamin Poulain <ikipou@gmail.com>
- Removing ENABLE_WIDGETS_10_SUPPORT flag.
+ Reviewed by Darin Adler.
- As view mode media feature is not part of widget 1.0 specification
- any more the ENABLE_WIDGETS_10_SUPPORT flag may be removed. The only use
- of this flag was related to view mode media feature implementation in Qt.
+ Eliminate DeprecatedPtrList from RenderBlock
+ https://bugs.webkit.org/show_bug.cgi?id=54972
- * wtf/Platform.h:
+ Add methods find() and contains() using an adaptor to ListHashSet.
+ Those method are like the one of HashSet, they allow to find objects
+ based on a different key than the one used to define the set.
-2010-07-30 Andy Estes <aestes@apple.com>
+ Add convenience methods for direct access to the head and tail of the list.
+ Those methods are providing similar API/behavior as Vector.
- Reviewed by David Kilzer.
+ * wtf/ListHashSet.h:
+ (WTF::::first):
+ (WTF::::last):
+ (WTF::::removeLast):
+ (WTF::ListHashSetTranslatorAdapter::hash):
+ (WTF::ListHashSetTranslatorAdapter::equal):
+ (WTF::::find):
+ (WTF::::contains):
- Add Xcode support for compiling WebKit against iOS SDKs.
- https://bugs.webkit.org/show_bug.cgi?id=42796
+2011-02-26 Patrick Gansterer <paroga@webkit.org>
- * Configurations/Base.xcconfig:
- * Configurations/DebugRelease.xcconfig:
- * Configurations/FeatureDefines.xcconfig:
+ Reviewed by Andreas Kling.
-2010-07-30 Dumitru Daniliuc <dumi@chromium.org>
+ Add support for DragonFly BSD
+ https://bugs.webkit.org/show_bug.cgi?id=54407
- Reviewed by Davin Levin.
+ DragonFly BSD is based on FreeBSD, so handle it like FreeBSD.
- Added a yield() function.
- https://bugs.webkit.org/show_bug.cgi?id=42843
+ * wtf/Platform.h:
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * wtf/Threading.h:
- * wtf/ThreadingPthreads.cpp:
- (WTF::yield):
- * wtf/ThreadingWin.cpp:
- (WTF::yield):
- * wtf/gtk/ThreadingGtk.cpp:
- (WTF::yield):
- * wtf/qt/ThreadingQt.cpp:
- (WTF::yield):
+2011-02-26 Adam Barth <abarth@webkit.org>
-2010-07-30 Rafael Antognolli <antognolli@profusion.mobi>
+ Reviewed by Dimitri Glazkov.
- Reviewed by Antonio Gomes.
+ JavaScriptCore should use the xcconfig file instead of importing that information into GYP
+ https://bugs.webkit.org/show_bug.cgi?id=55282
- [EFL] Add library version and soname to EFL generated libraries and binary.
- https://bugs.webkit.org/show_bug.cgi?id=43212
+ Technically, this breaks the build because I had removed one of the
+ warnings in this config file, but this change seems like an
+ improvement.
- Add version and soname to libjavascriptcore.so and libwtf.so in case of
- linking as shared libraries, and version to jsc executable.
+ * gyp/JavaScriptCore.gyp:
- * CMakeLists.txt:
- * jsc/CMakeLists.txt:
- * wtf/CMakeLists.txt:
+2011-02-26 Thouraya ANDOLSI <thouraya.andolsi@st.com>
-2010-07-30 Mahesh Kulkarni <mahesh.kulkarni@nokia.com>
+ Reviewed by Nikolas Zimmermann.
- Reviewed by Simon Hausmann.
+ SH4 JIT SUPPORT
+ https://bugs.webkit.org/show_bug.cgi?id=44329
- [QT] build fix for symbian
- https://bugs.webkit.org/show_bug.cgi?id=43234
+ Provide an ExecutableAllocater::cacheFlush() implementation for
+ Linux/SH4.
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::PageAllocation):
+ * jit/ExecutableAllocator.h:
+ (JSC::ExecutableAllocator::cacheFlush):
-2010-07-29 Sheriff Bot <webkit.review.bot@gmail.com>
+2011-02-25 Sheriff Bot <webkit.review.bot@gmail.com>
- Unreviewed, rolling out r64313.
- http://trac.webkit.org/changeset/64313
- https://bugs.webkit.org/show_bug.cgi?id=43233
+ Unreviewed, rolling out r79627.
+ http://trac.webkit.org/changeset/79627
+ https://bugs.webkit.org/show_bug.cgi?id=55274
- Some Chromium bots are not happy with it for some unknown
- reason. (Requested by dumi on #webkit).
+ broke worker tests (Requested by olliej on #webkit).
* JavaScriptCore.exp:
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * wtf/Threading.h:
- * wtf/ThreadingPthreads.cpp:
- * wtf/ThreadingWin.cpp:
- * wtf/gtk/ThreadingGtk.cpp:
- * wtf/qt/ThreadingQt.cpp:
-
-2010-07-29 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r64302.
- http://trac.webkit.org/changeset/64302
- https://bugs.webkit.org/show_bug.cgi?id=43223
-
- Assertion is bogus (Requested by olliej on #webkit).
-
- * assembler/ARMAssembler.cpp:
- (JSC::ARMAssembler::executableCopy):
- * assembler/AssemblerBuffer.h:
- (JSC::AssemblerBuffer::putShortUnchecked):
- (JSC::AssemblerBuffer::putIntUnchecked):
- (JSC::AssemblerBuffer::putInt64Unchecked):
- * jit/JITStubs.cpp:
- * pcre/pcre_compile.cpp:
- (jsRegExpCompile):
- * wtf/FastMalloc.cpp:
- (WTF::PageHeapAllocator::New):
- (WTF::TCMalloc_Central_FreeList::Populate):
- * wtf/MD5.cpp:
- (WTF::reverseBytes):
- (WTF::MD5::addBytes):
- (WTF::MD5::checksum):
- * wtf/StdLibExtras.h:
- * wtf/Vector.h:
- (WTF::VectorBuffer::inlineBuffer):
- * wtf/qt/StringQt.cpp:
- (WebCore::String::String):
-
-2010-07-29 Michael Saboff <msaboff@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- Changed the handling for removing and adding elements at the front
- of an array. The code now keeps a bias that indicates the amount of
- JSValue sized holes are prior to the ArrayStorage block. This means
- that shift operations are now memmove's of the header part of
- the ArrayStorage and unshift operations are similar, but may require a
- realloc first to create the space. Similar operations are performed
- for special cases of splice and slice.
- Also optimized the new Array(size) case so that we don't allocate and
- initialize array elements until the JS code starts using elements.
- The array growth code is slightly more aggressive for initial growth
- based on size growth of any previous array.
-
- * Configurations/JavaScriptCore.xcconfig:
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::emit_op_get_by_val):
- (JSC::JIT::emit_op_put_by_val):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::emit_op_get_by_val):
- (JSC::JIT::emit_op_put_by_val):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncShift):
- (JSC::arrayProtoFuncSplice):
- (JSC::arrayProtoFuncUnShift):
- * runtime/JSArray.cpp:
- (JSC::JSArray::JSArray):
- (JSC::JSArray::~JSArray):
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- (JSC::JSArray::put):
- (JSC::JSArray::putSlowCase):
- (JSC::JSArray::deleteProperty):
- (JSC::JSArray::getOwnPropertyNames):
- (JSC::JSArray::getNewVectorLength):
- (JSC::JSArray::increaseVectorLength):
- (JSC::JSArray::increaseVectorPrefixLength):
- (JSC::JSArray::setLength):
- (JSC::JSArray::pop):
- (JSC::JSArray::push):
- (JSC::JSArray::shiftCount):
- (JSC::JSArray::unshiftCount):
- (JSC::JSArray::sortNumeric):
- (JSC::JSArray::sort):
- (JSC::JSArray::fillArgList):
- (JSC::JSArray::copyToRegisters):
- (JSC::JSArray::compactForSorting):
- (JSC::JSArray::subclassData):
- (JSC::JSArray::setSubclassData):
- (JSC::JSArray::checkConsistency):
- * runtime/JSArray.h:
- (JSC::JSArray::length):
- (JSC::JSArray::canGetIndex):
- (JSC::JSArray::getIndex):
- (JSC::JSArray::setIndex):
- (JSC::JSArray::uncheckedSetIndex):
- (JSC::JSArray::arrayStorage):
- (JSC::JSArray::setArrayStorage):
- (JSC::JSArray::markChildrenDirect):
+ * runtime/Heap.cpp:
+ (JSC::Heap::allocate):
+ * runtime/Heap.h:
+ * runtime/JSCell.h:
+ (JSC::JSCell::JSCell::operator new):
+ (JSC::JSCell::MarkedSpace::sizeClassFor):
+ (JSC::JSCell::MarkedSpace::allocate):
+ * runtime/MarkedBlock.h:
+ * runtime/MarkedSpace.cpp:
+ (JSC::MarkedSpace::MarkedSpace):
+ (JSC::MarkedSpace::allocateBlock):
+ (JSC::MarkedSpace::reset):
+ * runtime/MarkedSpace.h:
+ (JSC::MarkedSpace::SizeClass::SizeClass):
-2010-07-29 Michael Saboff <msaboff@apple.com>
+2011-02-25 Michael Saboff <msaboff@apple.com>
Reviewed by Darin Adler.
- Changed MINIMUM_CELL_SIZE to be fixed at 64 bytes.
-
- * runtime/Collector.h:
+ Leak in JSParser::Scope of ScopeLabelInfo Vector
+ https://bugs.webkit.org/show_bug.cgi?id=55249
-2010-07-28 Dumitru Daniliuc <dumi@chromium.org>
-
- Reviewed by David Levin.
+ Changed m_labels to be an OwnPtr<>. Added VectorTraits
+ and Scope copy constructor to support this change.
- Added a yield() function.
- https://bugs.webkit.org/show_bug.cgi?id=42843
+ * parser/JSParser.cpp:
+ (JSC::JSParser::Scope::~Scope):
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * wtf/Threading.h:
- * wtf/ThreadingPthreads.cpp:
- (WTF::yield):
- * wtf/ThreadingWin.cpp:
- (WTF::yield):
- * wtf/gtk/ThreadingGtk.cpp:
- (WTF::yield):
- * wtf/qt/ThreadingQt.cpp:
- (WTF::yield):
+2011-02-25 Fumitoshi Ukai <ukai@chromium.org>
-2010-07-29 Michael Saboff <msaboff@apple.com>
+ Reviewed by Adam Barth.
- Reviewed by Oliver Hunt.
+ WebSocket uses insecure random numbers
+ https://bugs.webkit.org/show_bug.cgi?id=54714
- Fixed issue where RegExp greedy jit code loops when no input is
- consumed. Changed the code to only loop if some input was consumed,
- but fall through if we successfully match an alternative that
- doesn't consume any input.
- https://bugs.webkit.org/show_bug.cgi?id=42664
+ * JavaScriptCore.exp: Export WTF::cryptographicallyRandomNumber()
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack):
+2011-02-25 Patrick Gansterer <paroga@webkit.org>
-2010-07-29 Gabor Loki <loki@webkit.org>
+ Reviewed by Adam Roben.
- Reviewed by Gavin Barraclough.
+ Move timeBeginPeriod into OS(WINDOWS) section
+ https://bugs.webkit.org/show_bug.cgi?id=55247
- Avoid increasing required alignment of target type warning on ARM
- https://bugs.webkit.org/show_bug.cgi?id=38045
+ * jsc.cpp:
+ (main): timeBeginPeriod is available on all Windows versions and not compiler specific.
- The reinterpret_cast<Type1*>([pointer to Type2]) expressions - where
- sizeof(Type1) > sizeof(Type2) - cause the following warning on ARM:
- increases required alignment of target type warnings.
- Casting the type of [pointer to Type2] object to void* bypasses the
- warning.
+2011-02-25 Patrick Gansterer <paroga@webkit.org>
- * assembler/ARMAssembler.cpp:
- (JSC::ARMAssembler::executableCopy):
- * assembler/AssemblerBuffer.h:
- (JSC::AssemblerBuffer::putShortUnchecked):
- (JSC::AssemblerBuffer::putIntUnchecked):
- (JSC::AssemblerBuffer::putInt64Unchecked):
- * jit/JITStubs.cpp:
- * pcre/pcre_compile.cpp:
- (jsRegExpCompile):
- * wtf/FastMalloc.cpp:
- (WTF::PageHeapAllocator::New):
- (WTF::TCMalloc_Central_FreeList::Populate):
- * wtf/MD5.cpp:
- (WTF::reverseBytes):
- (WTF::MD5::addBytes):
- (WTF::MD5::checksum):
- * wtf/StdLibExtras.h:
- (reinterpret_cast_ptr):
- * wtf/Vector.h:
- (WTF::VectorBuffer::inlineBuffer):
- * wtf/qt/StringQt.cpp:
- (WebCore::String::String):
+ Unreviewed WinCE build fix for r79695.
-2010-07-29 Martin Robinson <mrobinson@igalia.com>
+ * jsc.cpp:
+ (main): SetErrorMode isn't available on WinCE.
- Unreviewed build fix.
+2011-02-25 Adam Roben <aroben@apple.com>
- Include a missing header in the source list to fix 'make dist.'
+ Work around Cygwin's crash-suppression behavior
- * GNUmakefile.am: Include missing header.
+ Cygwin calls ::SetErrorMode(SEM_FAILCRITICALERRORS), which any processes it launches will
+ inherit. This is bad for testing/debugging, as it causes the post-mortem debugger not to be
+ invoked. (Cygwin does this because it makes crashes more UNIX-y.) We reset the error mode
+ when our test apps launch to work around Cygwin's behavior.
-2010-07-28 Gavin Barraclough <barraclough@apple.com>
+ Fixes <http://webkit.org/b/55222> Test apps crash silently (without invoking post-mortem
+ debugger) when launched from Cygwin 1.7
Reviewed by Darin Adler.
- Bug 43162 - Add support for MADV_FREE to PageAllocation.
-
- * wtf/PageAllocation.cpp:
- (WTF::PageAllocation::commit):
- (WTF::PageAllocation::decommit):
-
-2010-07-27 Kinuko Yasuda <kinuko@chromium.org>
-
- Reviewed by Ojan Vafai.
-
- Add FILE_SYSTEM build flag for FileSystem API
- https://bugs.webkit.org/show_bug.cgi?id=42915
-
- * Configurations/FeatureDefines.xcconfig:
-
-2010-07-27 Gavin Barraclough <barraclough@apple.com>
-
- Temporarily rolling out http://trac.webkit.org/changeset/64177,
- this seems to give QT ARM/Win a headache (specifically, looks
- like structure layour differs, objects get too large -
- "..\..\..\JavaScriptCore\runtime\ArrayPrototype.cpp:41:"
- "error: size of array 'dummyclass_fits_in_cell' is negative").
-
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::emit_op_get_by_val):
- (JSC::JIT::emit_op_put_by_val):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::emit_op_get_by_val):
- (JSC::JIT::emit_op_put_by_val):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncShift):
- (JSC::arrayProtoFuncSplice):
- (JSC::arrayProtoFuncUnShift):
- * runtime/JSArray.cpp:
- (JSC::increasedVectorLength):
- (JSC::JSArray::JSArray):
- (JSC::JSArray::~JSArray):
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- (JSC::JSArray::put):
- (JSC::JSArray::putSlowCase):
- (JSC::JSArray::deleteProperty):
- (JSC::JSArray::getOwnPropertyNames):
- (JSC::JSArray::increaseVectorLength):
- (JSC::JSArray::setLength):
- (JSC::JSArray::pop):
- (JSC::JSArray::push):
- (JSC::JSArray::sortNumeric):
- (JSC::JSArray::sort):
- (JSC::JSArray::fillArgList):
- (JSC::JSArray::copyToRegisters):
- (JSC::JSArray::compactForSorting):
- (JSC::JSArray::subclassData):
- (JSC::JSArray::setSubclassData):
- (JSC::JSArray::checkConsistency):
- * runtime/JSArray.h:
- (JSC::JSArray::length):
- (JSC::JSArray::canGetIndex):
- (JSC::JSArray::getIndex):
- (JSC::JSArray::setIndex):
- (JSC::JSArray::uncheckedSetIndex):
- (JSC::JSArray::markChildrenDirect):
-
-2010-07-27 Gavin Barraclough <barraclough@apple.com>
-
- Speculative build fix for Chromium/Win
+ * API/tests/testapi.c: Added a now-needed #include.
+ (main):
+ * jsc.cpp:
+ (main):
+ Call ::SetErrorMode(0) to undo Cygwin's folly.
- * wtf/Platform.h:
+ * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops: Define NOMINMAX like many of our
+ other projects do so that windows.h won't define min/max macros that interfere with
+ std::numeric_limits<T>::min/max.
-2010-07-27 Gavin Barraclough <barraclough@apple.com>
+2011-02-24 Adam Barth <abarth@webkit.org>
- Oh! that makes more sense! Maybe C++-style comments are bringing teh bad mojo.
+ Reviewed by Eric Seidel.
- * wtf/Platform.h:
+ Add GYP project for JavaScriptCore
+ https://bugs.webkit.org/show_bug.cgi?id=55027
-2010-07-27 Gavin Barraclough <barraclough@apple.com>
+ Again, this GYP files is very rough, but it succeeds in building
+ JavaScriptCore. There's a lot more work to do here, especially in the
+ area of sharing with JavaScriptGlue.gyp. This patch is more of a
+ checkpoint so that other folks can help out if they wish.
- Speculative build fix for GTK/64 ... seems to be barfing on a comment o_O
+ * gyp: Added.
+ * gyp/JavaScriptCore.gyp: Added.
+ * gyp/generate-derived-sources.sh: Added.
- * wtf/Platform.h:
+2011-02-24 Adam Barth <abarth@webkit.org>
-2010-07-27 Michael Saboff <msaboff@apple.com>
+ Reviewed by Eric Seidel.
- Reviewed by Gavin Barraclough.
+ Add missing files to JavaScriptCore.gypi
+ https://bugs.webkit.org/show_bug.cgi?id=55193
- Changed the handling for removing and adding elements at the front
- of an array. The code now keeps a bias that indicates the amount of
- JSValue sized holes are prior to the ArrayStorage block. This means
- that shift operations are now memmove's of the header part of
- the ArrayStorage and unshift operations are similar, but may require a
- realloc first to create the space. Similar operations are performed
- for special cases of splice and slice.
- Also optimized the new Array(size) case so that we don't allocate and
- initialize array elements until the JS code starts using elements.
- The array growth code is slightly more aggressive for initial growth
- based on size growth of any previous array.
-
- * Configurations/JavaScriptCore.xcconfig:
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::emit_op_get_by_val):
- (JSC::JIT::emit_op_put_by_val):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::emit_op_get_by_val):
- (JSC::JIT::emit_op_put_by_val):
- (JSC::JIT::privateCompilePatchGetArrayLength):
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncShift):
- (JSC::arrayProtoFuncSplice):
- (JSC::arrayProtoFuncUnShift):
- * runtime/JSArray.cpp:
- (JSC::JSArray::JSArray):
- (JSC::JSArray::~JSArray):
- (JSC::JSArray::getOwnPropertySlot):
- (JSC::JSArray::getOwnPropertyDescriptor):
- (JSC::JSArray::put):
- (JSC::JSArray::putSlowCase):
- (JSC::JSArray::deleteProperty):
- (JSC::JSArray::getOwnPropertyNames):
- (JSC::JSArray::getNewVectorLength):
- (JSC::JSArray::increaseVectorLength):
- (JSC::JSArray::increaseVectorPrefixLength):
- (JSC::JSArray::setLength):
- (JSC::JSArray::pop):
- (JSC::JSArray::push):
- (JSC::JSArray::shiftCount):
- (JSC::JSArray::unshiftCount):
- (JSC::JSArray::sortNumeric):
- (JSC::JSArray::sort):
- (JSC::JSArray::fillArgList):
- (JSC::JSArray::copyToRegisters):
- (JSC::JSArray::compactForSorting):
- (JSC::JSArray::subclassData):
- (JSC::JSArray::setSubclassData):
- (JSC::JSArray::checkConsistency):
- * runtime/JSArray.h:
- (JSC::JSArray::length):
- (JSC::JSArray::canGetIndex):
- (JSC::JSArray::getIndex):
- (JSC::JSArray::setIndex):
- (JSC::JSArray::uncheckedSetIndex):
- (JSC::JSArray::arrayStorage):
- (JSC::JSArray::setArrayStorage):
- (JSC::JSArray::markChildrenDirect):
+ I forgot to add mm files in my previous patch.
-2010-07-27 Gavin Barraclough <barraclough@apple.com>
+ * JavaScriptCore.gyp/JavaScriptCore.gyp:
+ * JavaScriptCore.gypi:
- Reviewed by Oliver Hunt.
+2011-02-24 Adam Barth <abarth@webkit.org>
- Bug 43089 - Cleanup JIT related switched in Platform.h
+ Reviewed by Eric Seidel.
- The code the enable to JIT checks every permutation of platform & OS individually, but
- now the JIT is enabled on the majority much all x86/x86-64/ARM/MIPS systems. It should
- be cleaner to just enable by default on these platforms, and explicitly disable on configs
- that don't aren't supported.
+ Remove unused parameter name in GCActivityCallback.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=55194
- Also, rename ENABLE_JIT_OPTIMIZE_MOD to ENABLE_JIT_USE_SOFT_MODULO. I always find this
- confusing since enabling this "optimization" would be possible, but would be a regression
- on x86/x86-64 systems! I think it's clearer to reserve "JIT_OPTIMIZE" for compiler
- technologies applicable to all platforms, and make a more optional behaviour like this a
- "USE".
+ This change is not strictly required for the GYP-based build system,
+ but I noticed this error when working on the new build system.
- * jit/ExecutableAllocator.h:
- (JSC::ExecutableAllocator::cacheFlush):
- * jit/JIT.h:
- * jit/JITArithmetic.cpp:
- (JSC::JIT::emit_op_mod):
- (JSC::JIT::emitSlow_op_mod):
- * jit/JITArithmetic32_64.cpp:
- (JSC::JIT::emit_op_mod):
- (JSC::JIT::emitSlow_op_mod):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * wtf/Platform.h:
+ * runtime/GCActivityCallback.cpp:
+ (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback):
-2010-07-27 James Robinson <jamesr@chromium.org>
+2011-02-24 James Robinson <jamesr@chromium.org>
Reviewed by Darin Fisher.
- [chromium] Make PLATFORM(CHROMIUM) and not OS(MAC) turn USE(GLES2_RENDERING) on
- https://bugs.webkit.org/show_bug.cgi?id=43084
+ Add a USE() macro to control use of the built-in UTF8 codec
+ https://bugs.webkit.org/show_bug.cgi?id=55189
- This turns USE(GLES2_RENDERING) on for chromium on windows/linux. This causes no
- change in behavior, that's all controlled by ENABLE() macros that are currently off.
+ Defaults USE(BUILTIN_UTF8_CODEC) to true for all platforms except chromium, which controls the flag via features.gypi.
* wtf/Platform.h:
-2010-07-23 Helder Correia <heldercorreia@codeaurora.org>
-
- Reviewed by Darin Adler.
-
- Canvas tests 2d.imageData.object.round and 2d.imageData.object.wrap are
- failing. For canvas image data manipulation, the values passed should
- be truncated and wrapped. Also fix the canvas-ImageData-behaviour test
- to expect wrapping rather than clamping, and add some new checkings.
- https://bugs.webkit.org/show_bug.cgi?id=40272
-
- * runtime/JSByteArray.h:
- (JSC::JSByteArray::setIndex):
- (JSC::JSByteArray::JSByteArray):
-
-2010-07-27 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Bug 42621 - Add a bump allocator for the YARR interpreter
-
- The regex engine requires lifo allocation, however currently uses the general purpose
- malloc/free memory allocation. A simple bump pointer allocator should provide a lower
- overhead allocation solution.
-
- When using YARR interpreter, 15% progression on v8-regex.
-
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * runtime/JSGlobalData.h:
- * runtime/RegExp.cpp:
- (JSC::RegExp::compile):
- * wtf/BumpPointerAllocator.h: Added.
- (WTF::BumpPointerPool::ensureCapacity):
- (WTF::BumpPointerPool::alloc):
- (WTF::BumpPointerPool::dealloc):
- (WTF::BumpPointerPool::operator new):
- (WTF::BumpPointerPool::BumpPointerPool):
- (WTF::BumpPointerPool::create):
- (WTF::BumpPointerPool::shrink):
- (WTF::BumpPointerPool::destroy):
- (WTF::BumpPointerPool::ensureCapacityCrossPool):
- (WTF::BumpPointerPool::deallocCrossPool):
- (WTF::BumpPointerAllocator::BumpPointerAllocator):
- (WTF::BumpPointerAllocator::~BumpPointerAllocator):
- (WTF::BumpPointerAllocator::startAllocator):
- (WTF::BumpPointerAllocator::stopAllocator):
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::Interpreter::allocDisjunctionContext):
- (JSC::Yarr::Interpreter::freeDisjunctionContext):
- (JSC::Yarr::Interpreter::allocParenthesesDisjunctionContext):
- (JSC::Yarr::Interpreter::freeParenthesesDisjunctionContext):
- (JSC::Yarr::Interpreter::interpret):
- (JSC::Yarr::Interpreter::Interpreter):
- (JSC::Yarr::ByteCompiler::compile):
- (JSC::Yarr::byteCompileRegex):
- * yarr/RegexInterpreter.h:
- (JSC::Yarr::BytecodePattern::BytecodePattern):
-
-2010-07-26 Gavin Barraclough <barraclough@apple.com>
-
- Windows build fix from Chromium/GTK build fix!
-
- * wtf/PageAllocation.cpp:
-
-2010-07-26 Gavin Barraclough <barraclough@apple.com>
-
- Chromium/GTK build fix
-
- * wtf/PageAllocation.cpp:
-
-2010-07-26 Gavin Barraclough <barraclough@apple.com>
-
- Build fix for !Mac platforms.
-
- * Android.mk:
- * CMakeLists.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
-
-2010-07-26 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Bug 43009 - Abstract out page allocation from executable allocators
-
- It would be great to have a single platform abstraction for block allocation, rather than copy/paste code.
-
- In this initial implementation I've made Symbian fall back to use malloc/free for non-executable memory.
- I think this will match current behaviour for the next client we will want to port across (RegisterFile &
- Collector).
-
- * CMakeListsEfl.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutableAllocator::intializePageSize):
- (JSC::ExecutablePool::systemAlloc):
- (JSC::ExecutablePool::systemRelease):
- (JSC::ExecutableAllocator::isValid):
- * jit/ExecutableAllocator.h:
- (JSC::ExecutablePool::ExecutablePool):
- (JSC::ExecutablePool::poolAllocate):
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::release):
- (JSC::FixedVMPoolAllocator::reuse):
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
- (JSC::FixedVMPoolAllocator::alloc):
- (JSC::FixedVMPoolAllocator::free):
- (JSC::FixedVMPoolAllocator::isValid):
- (JSC::FixedVMPoolAllocator::isWithinVMPool):
- (JSC::ExecutablePool::systemAlloc):
- (JSC::ExecutablePool::systemRelease):
- * jit/ExecutableAllocatorPosix.cpp: Removed.
- * jit/ExecutableAllocatorSymbian.cpp: Removed.
- * jit/ExecutableAllocatorWin.cpp: Removed.
- * wscript:
- * wtf/PageAllocator.cpp: Added.
- (WTF::protection):
- (WTF::PageAllocation::commit):
- (WTF::PageAllocation::decommit):
- (WTF::PageAllocator::allocate):
- (WTF::PageAllocator::reserve):
- (WTF::PageAllocator::deallocate):
- (WTF::PageAllocator::pagesize):
- * wtf/PageAllocator.h: Added.
- (WTF::PageAllocation::PageAllocation):
- (WTF::PageAllocation::base):
- (WTF::PageAllocation::size):
- (WTF::PageAllocation::chunk):
- (WTF::PageAllocation::operator!):
- (WTF::PageAllocator::):
-
-2010-07-26 Gavin Barraclough <barraclough@apple.com>
-
- Rolling out r64097:64100, oops, more b0rked than I relized by my last changes, sorry!
-
- * CMakeListsEfl.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutableAllocator::reprotectRegion):
- (JSC::ExecutableAllocator::cacheFlush):
- * jit/ExecutableAllocator.h:
- (JSC::ExecutablePool::ExecutablePool):
- (JSC::ExecutablePool::poolAllocate):
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::release):
- (JSC::FixedVMPoolAllocator::reuse):
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
- (JSC::FixedVMPoolAllocator::alloc):
- (JSC::FixedVMPoolAllocator::free):
- (JSC::FixedVMPoolAllocator::isValid):
- (JSC::FixedVMPoolAllocator::isWithinVMPool):
- (JSC::ExecutablePool::systemAlloc):
- (JSC::ExecutablePool::systemRelease):
- * jit/ExecutableAllocatorPosix.cpp: Added.
- (JSC::ExecutableAllocator::intializePageSize):
- (JSC::ExecutablePool::systemAlloc):
- (JSC::ExecutablePool::systemRelease):
- (JSC::ExecutableAllocator::isValid):
- * jit/ExecutableAllocatorSymbian.cpp: Added.
- (JSC::ExecutableAllocator::intializePageSize):
- (JSC::ExecutablePool::systemAlloc):
- (JSC::ExecutablePool::systemRelease):
- (JSC::ExecutableAllocator::isValid):
- * jit/ExecutableAllocatorWin.cpp: Added.
- (JSC::ExecutableAllocator::intializePageSize):
- (JSC::ExecutablePool::systemAlloc):
- (JSC::ExecutablePool::systemRelease):
- (JSC::ExecutableAllocator::isValid):
- * wscript:
- * wtf/PageAllocation.cpp: Removed.
- * wtf/PageAllocation.h: Removed.
-
-2010-07-26 Gavin Barraclough <barraclough@apple.com>
-
- Speculative !debug build fix II.
-
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::PageAllocation):
-
-2010-07-26 Gavin Barraclough <barraclough@apple.com>
-
- Speculative !debug build fix.
-
- * wtf/PageAllocation.h:
- (WTF::PageAllocation::PageAllocation):
-
-2010-07-26 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Bug 43009 - Abstract out page allocation from executable allocators
-
- It would be great to have a single platform abstraction for block allocation, rather than copy/paste code.
-
- In this initial implementation I've made Symbian fall back to use malloc/free for non-executable memory.
- I think this will match current behaviour for the next client we will want to port across (RegisterFile &
- Collector).
-
- * CMakeListsEfl.txt:
- * GNUmakefile.am:
- * JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutableAllocator::intializePageSize):
- (JSC::ExecutablePool::systemAlloc):
- (JSC::ExecutablePool::systemRelease):
- (JSC::ExecutableAllocator::isValid):
- * jit/ExecutableAllocator.h:
- (JSC::ExecutablePool::ExecutablePool):
- (JSC::ExecutablePool::poolAllocate):
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::release):
- (JSC::FixedVMPoolAllocator::reuse):
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
- (JSC::FixedVMPoolAllocator::alloc):
- (JSC::FixedVMPoolAllocator::free):
- (JSC::FixedVMPoolAllocator::isValid):
- (JSC::FixedVMPoolAllocator::isWithinVMPool):
- (JSC::ExecutablePool::systemAlloc):
- (JSC::ExecutablePool::systemRelease):
- * jit/ExecutableAllocatorPosix.cpp: Removed.
- * jit/ExecutableAllocatorSymbian.cpp: Removed.
- * jit/ExecutableAllocatorWin.cpp: Removed.
- * wscript:
- * wtf/PageAllocator.cpp: Added.
- (WTF::protection):
- (WTF::PageAllocation::commit):
- (WTF::PageAllocation::decommit):
- (WTF::PageAllocator::allocate):
- (WTF::PageAllocator::reserve):
- (WTF::PageAllocator::deallocate):
- (WTF::PageAllocator::pagesize):
- * wtf/PageAllocator.h: Added.
- (WTF::PageAllocation::PageAllocation):
- (WTF::PageAllocation::base):
- (WTF::PageAllocation::size):
- (WTF::PageAllocation::chunk):
- (WTF::PageAllocation::operator!):
- (WTF::PageAllocator::):
-
-2009-10-30 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
-
- Reviewed by Kenneth Rohde Christiansen.
-
- [Qt] Use the default timeout interval for JS as the HTML tokenizer delay for setHtml()
-
- This ensures that long-running JavaScript (for example due to a modal alert() dialog),
- will not trigger a deferred load after only 500ms (the default tokenizer delay) while
- still giving a reasonable timeout (10 seconds) to prevent deadlock.
-
- https://bugs.webkit.org/show_bug.cgi?id=29381
-
- * runtime/TimeoutChecker.h: Add getter for the timeout interval
-
-2010-07-25 Patrick Gansterer <paroga@paroga.com>
-
- Reviewed by Kent Tamura.
-
- [WINCE] Buildfix for JSC in release mode
- https://bugs.webkit.org/show_bug.cgi?id=42934
-
- * jsc.cpp: Don't use __try on WinCE.
-
-2010-07-24 Patrick Gansterer <paroga@paroga.com>
-
- Reviewed by Darin Adler.
-
- [MSVC] Ensure 4 byte alignment on ARM
- https://bugs.webkit.org/show_bug.cgi?id=42935
-
- * jit/JITStubs.h: Added #pragma pack(4) around JITStackFrame.
-
-2010-07-24 Patrick Gansterer <paroga@paroga.com>
+2011-02-24 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
- [WINCE] Cleanup defines in Platform.h
- https://bugs.webkit.org/show_bug.cgi?id=42933
-
- * wtf/Platform.h:
-
-2010-07-23 Rafael Antognolli <antognolli@profusion.mobi>
-
- Reviewed by Antonio Gomes.
-
- [EFL] Cleanup glib support (make it optional)
- https://bugs.webkit.org/show_bug.cgi?id=42480
-
- Remove gobject/GRefPtr.cpp if not using soup/glib.
-
- * wtf/CMakeListsEfl.txt:
-
-2010-07-23 Patrick Gansterer <paroga@paroga.com>
-
- Reviewed by Adam Roben.
-
- [WINCE] Implement TCSpinLock.
- https://bugs.webkit.org/show_bug.cgi?id=41792
-
- Implement the SpinLock with InterlockedExchange from the Windows API.
-
- * wtf/TCSpinLock.h:
- (TCMalloc_SpinLock::Lock):
- (TCMalloc_SpinLock::Unlock):
- (TCMalloc_SpinLock::IsHeld):
- (TCMalloc_SpinLock::Init):
- (TCMalloc_SlowLock):
-
-2010-07-22 Csaba Osztrogonác <ossy@webkit.org>
-
- Unreviewed rolling out r63947 and r63948, because they broke Qt Windows build.
-
- * jit/JITStubs.cpp:
- * jit/JITStubs.h:
-
-2010-07-22 Gavin Barraclough <barraclough@apple.com>
-
- Eeeep! r63947 hosed all non-x86 builds!
-
- * jit/JITStubs.h:
-
-2010-07-22 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Bug 42818 - [Qt] REGRESSION(63348): jsc is broken
- Speculative fix, need fastcall conventions on Qt/Win.
-
- * jit/JITStubs.cpp:
- * jit/JITStubs.h:
-
-2010-07-22 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- Do more constant folding
- https://bugs.webkit.org/show_bug.cgi?id=42867
-
- Constant fold a few more operations. SunSpider says this is
- a win but I suspect that's just code motion at play.
-
- * parser/ASTBuilder.h:
- (JSC::ASTBuilder::makeModNode):
- (JSC::ASTBuilder::makeURightShiftNode):
- (JSC::ASTBuilder::makeBitOrNode):
- (JSC::ASTBuilder::makeBitAndNode):
- (JSC::ASTBuilder::makeBitXOrNode):
- (JSC::ASTBuilder::makeBinaryNode):
-
-2010-07-22 Kent Hansen <kent.hansen@nokia.com>
-
- Reviewed by Kent Tamura.
-
- Error properties of the Global Object are missing the DontEnum attribute
- https://bugs.webkit.org/show_bug.cgi?id=28771
-
- Add the attributes to become spec compliant.
-
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::reset):
-
-2010-07-20 Steve Falkenburg <sfalken@apple.com>
-
- Reviewed by Adam Roben.
-
- WebKit on Windows should build optionally with an unversioned ICU DLL
- https://bugs.webkit.org/show_bug.cgi?id=42722
- <rdar://problem/8211743> JavaScriptCore needs to link against unversioned ICU
-
- Dynamically create a new header, ICUVersion.h, as part of build-generated-files.sh.
- Header contains a preprocessor define (U_DISABLE_RENAMING) indicating to ICU whether the ICU API
- should be namespaced with the current ICU version number. Proper value is determined
- by checking for the presence of libicuuc.lib, the unversioned copy of ICU.
+ Variable-sized allocation (but still capped at 64 bytes)
+ https://bugs.webkit.org/show_bug.cgi?id=55159
- To get the proper value for U_DISABLE_RENAMING into all source files, we force
- the include of ICUVersion.h (our generated header) via the compiler options.
-
- Since the versioned and unversioned ICU have different filenames (libicuuc.lib vs icuuc.lib)
- we copy the ICU lib to an intermediate location under obj with a common name. This
- allows us to link properly with either without adding a new build configuration.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
- Copy ICU libs into a common location with a common name.
- Add additional library search path to pick up icu lib.
- Change ICU library filename specified to linker.
- Add forced include of ICUVersion.h.
- * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh: Generate ICUVersion.h
- * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops: Add forced include of ICUVersion.h.
- * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
- Copy ICU libs into a common location with a common name.
- Add additional library search path to pick up icu lib.
- Change ICU library filename specified to linker.
- Add forced include of ICUVersion.h.
- * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops:
- Copy ICU libs into a common location with a common name.
- Add additional library search path to pick up icu lib.
- Change ICU library filename specified to linker.
- Add forced include of ICUVersion.h.
-
-2010-07-20 Steve Falkenburg <sfalken@apple.com>
-
- Re-save vsprops files after no-op edits in Visual Studio
- to fix manual edit issues.
-
-2010-07-20 Mahesh Kulkarni <mahesh.kulkarni@nokia.com>
-
- Reviewed by Steve Block.
-
- Need to be able to configure Geolocation policy regarding user permissions
- https://bugs.webkit.org/show_bug.cgi?id=42068
+ SunSpider reports no change.
- If CLIENT_BASED_GEOLOCATION is enabled, enable preemtive permission policy
- by default
+ * JavaScriptCore.exp: Some day, I hope not to have to edit this file.
- * wtf/Platform.h:
+ * runtime/Heap.cpp:
+ (JSC::Heap::allocateSlowCase): Split allocation into a fast and slow
+ case, so the fast case can inline size class selection and turn it into
+ a compile-time constant.
-2010-07-20 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r63742.
- http://trac.webkit.org/changeset/63742
- https://bugs.webkit.org/show_bug.cgi?id=42641
-
- Broke Leopard Intel build. (Requested by bbandix on #webkit).
-
- * wtf/Platform.h:
-
-2010-07-20 Mahesh Kulkarni <mahesh.kulkarni@nokia.com>
-
- Reviewed by Steve Block.
+ Changed the collect-on-every allocation debugging switch to collect only
+ on every slow allocation, so you can still flip the switch without
+ recompiling the world. This may also be preferable for debugging purposes,
+ since collecting after every single allocation can be unusably slow,
+ and can mask problems by running destructors early.
- Need to be able to configure Geolocation policy regarding user permissions
- https://bugs.webkit.org/show_bug.cgi?id=42068
+ * runtime/Heap.h: Ditto.
- If CLIENT_BASED_GEOLOCATION is enabled, enable preemtive permission policy
- by default
-
- * wtf/Platform.h:
+ * runtime/JSCell.h:
+ (JSC::JSCell::MarkedSpace::sizeClassFor):
+ (JSC::JSCell::Heap::allocate):
+ (JSC::JSCell::JSCell::operator new): The inlining mentioned above.
+
+ * runtime/MarkedBlock.h: Dropped the block size from 256KB to 16KB. With
+ multiple size classes, allocating a full 256KB for the first allocation
+ in a given class can be pathologically wasteful. (8KB, or 4KB Mac and
+ 8KB Windows, would be even better, but that seems to be a peformance
+ regression for now.)
-2010-07-19 Dirk Schulze <krit@webkit.org>
-
- Reviewed by Nikolas Zimmermann.
-
- SVG CleanUp of SVGPathData parsing
- https://bugs.webkit.org/show_bug.cgi?id=41410
-
- Added piOverTwo to MathExtras.
-
- * wtf/MathExtras.h:
-
-2010-07-19 Mike Moretti <mike.moretti@nokia.com>
-
- Reviewed by Laszlo Gombos.
-
- [Symbian] Build fix after r63404.
-
- Implement isValid() function for the Symbian executable allocator.
-
- * jit/ExecutableAllocatorSymbian.cpp:
- (JSC::ExecutableAllocator::isValid):
-
-2010-07-19 Chris Marrin <cmarrin@apple.com>
-
- Reviewed by Darin Adler.
-
- https://bugs.webkit.org/show_bug.cgi?id=42118
- Disable WebGL on Leopard for now.
-
- LayoutTests fail on some graphics hardware on Leopard because one of the features we use,
- GL_ARB_framebuffer_object, is not universally available in Leopard like it is in
- SnowLeopard. This will allow LayoutTests to pass on Leopard until we add logic to use a
- software OpenGL driver on machines without this support.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2010-07-16 Darin Adler <darin@apple.com>
-
- Reviewed by Sam Weinig.
-
- Use OwnPtr for CodeBlock objects
- https://bugs.webkit.org/show_bug.cgi?id=42490
-
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::EvalExecutable): Moved this here and made it non-inline.
- Eliminated the code that used to initialize the raw pointer since it's now
- an OwnPtr.
- (JSC::EvalExecutable::~EvalExecutable): Removed the explicit delete here.
- (JSC::ProgramExecutable::ProgramExecutable): Ditto.
- (JSC::ProgramExecutable::~ProgramExecutable): Ditto.
- (JSC::FunctionExecutable::FunctionExecutable): Ditto.
- (JSC::FunctionExecutable::~FunctionExecutable): Ditto.
- (JSC::EvalExecutable::compileInternal): Added use of adoptPtr and get.
- (JSC::ProgramExecutable::compileInternal): Ditto.
- (JSC::FunctionExecutable::compileForCallInternal): Ditto.
- (JSC::FunctionExecutable::compileForConstructInternal): Ditto.
- (JSC::FunctionExecutable::recompile): Use clear instead of delete followed
- by assignment of 0.
-
- * runtime/Executable.h: Moved constructors to the cpp file and changed
- raw pointers to OwnPtr.
-
-2010-07-19 Lucas De Marchi <lucas.demarchi@profusion.mobi>
-
- Reviewed by Kenneth Rohde Christiansen.
-
- [EFL] Fix build on 64-bit systems. According to
- JavaScriptCore/wtf/Platform.h, x86_64 uses fixed allocator, which
- needs jit/ExecutableAllocatorFixedVMPool.cpp to be included in build
- system.
- https://bugs.webkit.org/show_bug.cgi?id=42559
-
- * CMakeListsEfl.txt: add missing file for x86_64.
-
-2010-07-16 Leandro Pereira <leandro@profusion.mobi>
-
- [EFL] Unreviewed build system cleanup.
-
- Move ExecutableAllocator{FixedVMPool,Posix,Symbian,Win}.cpp from
- root CMakeLists.txt to the platform CMakeLists.txt.
+ * runtime/MarkedSpace.cpp:
+ (JSC::MarkedSpace::MarkedSpace):
+ (JSC::MarkedSpace::allocateBlock):
+ (JSC::MarkedSpace::reset): There's more than one size class now, and its
+ cell size is not constant.
- * CMakeLists.txt:
- * CMakeListsEfl.txt: Add ExecutableAllocatorPosix.cpp.
+ * runtime/MarkedSpace.h:
+ (JSC::MarkedSpace::SizeClass::SizeClass): Ditto.
-2010-07-16 Oliver Hunt <oliver@apple.com>
+2011-02-23 Oliver Hunt <oliver@apple.com>
Reviewed by Geoffrey Garen.
- ES5 allows use of reserved words as IdentifierName
- https://bugs.webkit.org/show_bug.cgi?id=42471
-
- Modify the lexer to allow us to avoid identifying reserved
- words in those contexts where they are valid identifiers, and
- we know it's safe. Additionally tag the reserved word tokens
- so we can easily identify them in those cases where we can't
- guarantee that we've skipped reserved word identification.
-
- * parser/JSParser.cpp:
- (JSC::JSParser::next):
- (JSC::JSParser::parseProperty):
- (JSC::JSParser::parseMemberExpression):
- * parser/JSParser.h:
- (JSC::):
- * parser/Lexer.cpp:
- (JSC::Lexer::lex):
- * parser/Lexer.h:
- (JSC::Lexer::):
-
-2010-07-16 Anders Carlsson <andersca@apple.com>
-
- Reviewed by Sam Weinig.
-
- clang++ build fixes for JavaScriptCore and WebCore
- https://bugs.webkit.org/show_bug.cgi?id=42478
+ Make WeakGCMap use new handle infrastructure
+ https://bugs.webkit.org/show_bug.cgi?id=55100
- * runtime/RegExpKey.h:
- (JSC::operator==):
- Move the RegExpKey equals operator into the JSC namespace so it can be found by ADL.
-
-2010-07-16 Anders Carlsson <andersca@apple.com>
-
- Reviewed by David Levin.
+ Remove old WeakGCMap implementation and move over to new handle
+ based logic.
- Really add WARN_UNUSED_RESULT to leakRef
- https://bugs.webkit.org/show_bug.cgi?id=42464
+ This has a number of benefits, most notably it makes a WeakGCMap
+ always reflect the true state of the world by as all entries are
+ removed at the first gc cycle that makes them dead. This allows
+ us to get rid of code in a wide variety of objects where the only
+ purpose was to remove themselves from maps.
- * wtf/PassRefPtr.h:
- (WTF::PassRefPtr::):
- (WTF::NonNullPassRefPtr::):
- Put the WARN_UNUSED_RESULT attribute at the right place.
-
- * wtf/RetainPtr.h:
- (WTF::RetainPtr::releaseRef):
- Remove WARN_UNUSED_RESULT here for now, it leads to two warnings that need
- to be fixed first.
-
-2010-07-15 Victor Wang <victorw@chromium.org>
-
- Reviewed by David Levin.
-
- [Chromium] Disable c4291 for chromium windows multi dll build.
-
- https://bugs.webkit.org/show_bug.cgi?id=42177
-
- * JavaScriptCore.gyp/JavaScriptCore.gyp:
-
-2010-07-15 Geoffrey Garen <ggaren@apple.com>
-
- Reviewed by Maciej Stachowiak.
-
- Crash entering mail.yahoo.com
- https://bugs.webkit.org/show_bug.cgi?id=42394
-
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::argumentNumberFor): Added a NULL check. If the
- identifier we're resolving is not a local variable, registerFor returns
- NULL.
-
- * bytecompiler/NodesCodegen.cpp:
- (JSC::FunctionBodyNode::emitBytecode): Unrelated to the crash, but I
- noticed this while working on it: No need to NULL-check returnNode,
- since an early return has already done so.
-
-2010-07-15 Martin Robinson <mrobinson@igalia.com>
-
- Reviewed by Oliver Hunt.
-
- [GTK] Simplify the distribution step
- https://bugs.webkit.org/show_bug.cgi?id=42414
-
- * GNUmakefile.am: Add extra dist files directly to EXTRA_DIST instead
- of adding them by proxy via javascriptcore_dist. Sort the EXTRA_DIST list.
- Refer to create_hash_table and create_regexp_tables directly, as is the
- behavior with other code generation scripts.
-
-2010-07-15 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Geoff Garen.
-
- Fix dumping of op_put_by_id.
-
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::printPutByIdOp):
-
-2010-07-15 Zoltan Herczeg <zherczeg@webkit.org>
-
- Reviewed by Darin Adler.
-
- Refactoring some parts of the lexer
- https://bugs.webkit.org/show_bug.cgi?id=41845
-
- This patch is a precursor of refactoring the identifier
- parsing, which currently slows down the lexer, and not
- ready for landing. This patch contains those sources,
- which does not slow down the lexer (mainly style changes).
-
- SunSpider: no change (529.4ms to 528.7ms)
- --parse-only: no change (31.0ms to 31.2ms)
-
- * parser/Lexer.cpp:
- (JSC::isIdentStart): using typesOfASCIICharacters to determine
- whether the current character is in identifier start
- (JSC::isIdentPart): using typesOfASCIICharacters to determine
- whether the current character is in identifier part
- (JSC::Lexer::parseString): style fix
- (JSC::Lexer::lex): removing the else after the main which
- which reduces code duplication
-
-2010-07-15 Mark Rowe <mrowe@apple.com>
-
- Update the sorting in the Xcode project files.
-
- * JavaScriptCore.xcodeproj/project.pbxproj:
-
-2010-07-14 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Gavin Barraclough.
+ It also means that we no longer need to have special "unchecked"
+ versions of any functions on WeakGCMap. Alas in order to maintain
+ compatibility with the JSWeakObjectMapClear API it is still
+ necessary to have an api that resembles uncheckedRemove, this is
+ now deprecatedRemove and will be dealt with in a later patch.
- Make sure that mixed interpreter/jit builds don't try to use the jit if the allocator fails
- https://bugs.webkit.org/show_bug.cgi?id=42310
+ In order to get correct semantics in WeakGCMap we need more
+ contextual information in the finalizer, so we've added an
+ abstract class based finaliser and a context parameter to the
+ calls.
- Add some null checks to deal with the Fixed VM allocator failing
- to get the requested executable region, delay the creation of the
- JITStubs in JSGlobalData until after we know whether we're using
- the JIT.
+ The new an improved WeakGCMap also results in sigificantly more
+ churn in the weak handle lists so exposed some potential problems
+ during the post mark phase which have been rectified as well.
- * jit/ExecutableAllocator.h:
- (JSC::ExecutableAllocator::ExecutableAllocator):
- (JSC::ExecutableAllocator::poolForSize):
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
- (JSC::FixedVMPoolAllocator::alloc):
- (JSC::FixedVMPoolAllocator::free):
- (JSC::FixedVMPoolAllocator::isValid):
- (JSC::ExecutableAllocator::isValid):
- (JSC::ExecutablePool::systemAlloc):
- (JSC::ExecutablePool::systemRelease):
- * jit/ExecutableAllocatorPosix.cpp:
- (JSC::ExecutableAllocator::isValid):
- * jit/ExecutableAllocatorWin.cpp:
- (JSC::ExecutableAllocator::isValid):
- * jit/JIT.cpp:
- (JSC::JIT::linkCall):
- (JSC::JIT::linkConstruct):
- * jit/JIT.h:
- (JSC::JIT::compileCTIMachineTrampolines):
- (JSC::JIT::compileCTINativeCall):
- * jit/JITArithmetic.cpp:
- (JSC::JIT::emit_op_mod):
- * jit/JITArithmetic32_64.cpp:
- (JSC::JIT::emit_op_mod):
- * jit/JITCall.cpp:
- (JSC::JIT::compileOpCallVarargs):
- (JSC::JIT::compileOpCall):
- (JSC::JIT::compileOpCallSlowCase):
- * jit/JITCall32_64.cpp:
- (JSC::JIT::compileOpCallVarargs):
- (JSC::JIT::compileOpCall):
- (JSC::JIT::compileOpCallSlowCase):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTINativeCall):
- * jit/JITStubs.cpp:
- (JSC::JITThunks::JITThunks):
- (JSC::JITThunks::tryCacheGetByID):
- (JSC::JITThunks::hostFunctionStub):
- * jit/ThunkGenerators.cpp:
- (JSC::charCodeAtThunkGenerator):
- (JSC::charAtThunkGenerator):
- (JSC::fromCharCodeThunkGenerator):
- (JSC::sqrtThunkGenerator):
- (JSC::powThunkGenerator):
- * runtime/Executable.h:
- (JSC::NativeExecutable::create):
+ * API/JSWeakObjectMapRefPrivate.cpp:
+ * API/JSWeakObjectMapRefPrivate.h:
+ * runtime/Heap.cpp:
+ (JSC::Heap::globalObjectCount):
+ (JSC::Heap::protectedGlobalObjectCount):
* runtime/JSGlobalData.cpp:
(JSC::JSGlobalData::JSGlobalData):
- (JSC::JSGlobalData::getHostFunction):
* runtime/JSGlobalData.h:
- (JSC::JSGlobalData::getCTIStub):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::jitCompileRegex):
-
-2010-07-14 Gavin Barraclough <barraclough@apple.com>
-
- Speculative Qt/Windows build fix.
-
- * jit/JITStubs.h:
-
-2010-07-14 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Oliver Hunt.
-
- https://bugs.webkit.org/show_bug.cgi?id=42280
- JIT_STUB_ARGUMENT_VA_LIST is only slowing us down! Remove it!
-
- * jit/JIT.h:
- * jit/JITInlineMethods.h:
- (JSC::JIT::restoreArgumentReferenceForTrampoline):
- * jit/JITStubs.cpp:
- * jit/JITStubs.h:
- * wtf/Platform.h:
-
-2010-07-14 Oliver Hunt <oliver@apple.com>
-
- RS=Geoff Garen.
-
- Guard the CF path of interpreter vs. jit selection with PLATFORM(CF)
-
- This allows the code to work on windows as well. Also unifies the
- environment variable with the preference name.
-
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
-
-2010-07-14 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Don Melton.
-
- Crash when trying to enable JIT and Interpreter in a single build.
-
- CFPreferences code added at the last minute failed to account for
- the preference not being present and then attempted to CFRelease
- a null value.
-
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
-
-2010-07-14 Zoltan Herczeg <zherczeg@webkit.org>
-
- Reviewed by Darin Adler.
-
- Change indentations in the lexer
- https://bugs.webkit.org/show_bug.cgi?id=41845
-
- This patch fixes an old, indentation error comes from kjs,
- as webkit has a different style rule for switches, and change
- the indentation of the main switch, which is a temporary
- style error. This change makes easier to see the behavioural
- changes in the follow-up patch.
-
- No behavioural changes.
-
- * parser/Lexer.cpp:
- (JSC::singleEscape):
- (JSC::Lexer::lex):
-
-2010-07-13 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r63262.
- http://trac.webkit.org/changeset/63262
- https://bugs.webkit.org/show_bug.cgi?id=42229
-
- broke Windows compile (Requested by bweinstein on #webkit).
-
- * API/tests/testapi.c:
- (assertEqualsAsCharactersPtr):
- (main):
- * testapi.pro: Removed.
+ * runtime/JSGlobalObject.cpp:
+ (JSC::JSGlobalObject::~JSGlobalObject):
+ (JSC::JSGlobalObject::init):
+ * runtime/WeakGCMap.h:
+ (JSC::WeakGCMap::iterator::iterator):
+ (JSC::WeakGCMap::iterator::get):
+ (JSC::WeakGCMap::iterator::getSlot):
+ (JSC::WeakGCMap::iterator::operator++):
+ (JSC::WeakGCMap::iterator::operator==):
+ (JSC::WeakGCMap::iterator::operator!=):
+ (JSC::WeakGCMap::WeakGCMap):
+ (JSC::WeakGCMap::isEmpty):
+ (JSC::WeakGCMap::clear):
+ (JSC::WeakGCMap::get):
+ (JSC::WeakGCMap::getSlot):
+ (JSC::WeakGCMap::set):
+ (JSC::WeakGCMap::take):
+ (JSC::WeakGCMap::size):
+ (JSC::WeakGCMap::deprecatedRemove):
+ (JSC::WeakGCMap::begin):
+ (JSC::WeakGCMap::end):
+ (JSC::WeakGCMap::~WeakGCMap):
+ (JSC::WeakGCMap::finalize):
+ * runtime/WeakGCPtr.h:
+ (JSC::WeakGCPtr::WeakGCPtr):
+ (JSC::WeakGCPtr::set):
-2010-07-13 Oliver Hunt <oliver@apple.com>
+2011-02-24 Oliver Hunt <oliver@apple.com>
Reviewed by Gavin Barraclough.
- ES5 requires BOMs to be treated as whitespace
- https://bugs.webkit.org/show_bug.cgi?id=42218
-
- Add BOM character to the Lexer's definition of whitespace,
- and remove the logic that dealt with stripping BOMs and
- caching the cleaned string.
-
- * parser/Lexer.h:
- (JSC::Lexer::isWhiteSpace):
- * parser/SourceProvider.h:
- (JSC::UStringSourceProvider::create):
- (JSC::UStringSourceProvider::UStringSourceProvider):
- * wtf/text/StringImpl.h:
-
-2010-07-13 Andreas Kling <andreas.kling@nokia.com>
-
- Reviewed by Darin Adler.
-
- Avoid slow-path for put() in Array.splice()
- https://bugs.webkit.org/show_bug.cgi?id=41920
-
- Defer creation of the returned array until its final size is known
- to avoid growing it while adding elements.
-
- * runtime/JSArray.cpp:
- (JSC::JSArray::JSArray): Add two modes of creation, CreateInitialized (old)
- and CreateCompact (which should only be used when constructing arrays whose
- size and contents are known at the time of creation.)
- (JSC::JSArray::setLength): Skip first consistency check if in CreateCompact
- initialization mode. (Only applies to non-empty arrays.)
- (JSC::JSArray::checkConsistency): Build fix (JSValue::type() is gone)
- * runtime/JSArray.h:
- (JSC::JSArray::uncheckedSetIndex): Added for fast initialization of compact
- arrays. Does no bounds or other sanity checking.
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncSplice): Optimized creation of the returned JSArray.
- * runtime/ArrayConstructor.cpp:
- (JSC::constructArrayWithSizeQuirk): Pass CreateInitialized to ctor.
- * runtime/JSGlobalObject.h:
- (JSC::constructEmptyArray): Pass CreateInitialized to ctor.
- * runtime/RegExpConstructor.cpp:
- (JSC::RegExpMatchesArray::RegExpMatchesArray): Pass CreateInitialized to ctor.
-
-2010-07-13 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Bug 42207 - Clean up interface to compile executables, always check for exceptions
-
- Presently interface to compile executable is inconsistent between eval/program and
- function code, and is error prone in allowing a caller to byte compile without JIT
- compiling an executable (we rely on all executables with codeblocks having JIT code).
- Unify on an interface where all compilation is performed by a single compile (with
- ForCall|ForConstruct variants) method, and make all clients check for errors.
-
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::unwindCallFrame):
- (JSC::Interpreter::execute):
- (JSC::Interpreter::executeCall):
- (JSC::Interpreter::executeConstruct):
- (JSC::Interpreter::prepareForRepeatCall):
- (JSC::Interpreter::privateExecute):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * parser/Parser.h:
- (JSC::Parser::isFunctionBodyNode):
- (JSC::Parser::parse):
- * runtime/ArrayPrototype.cpp:
- (JSC::isNumericCompareFunction):
- * runtime/ExceptionHelpers.cpp:
- (JSC::createStackOverflowError):
- * runtime/ExceptionHelpers.h:
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::compileInternal):
- (JSC::ProgramExecutable::checkSyntax):
- (JSC::ProgramExecutable::compileInternal):
- (JSC::FunctionExecutable::compileForCallInternal):
- (JSC::FunctionExecutable::compileForConstructInternal):
- (JSC::FunctionExecutable::reparseExceptionInfo):
- (JSC::EvalExecutable::reparseExceptionInfo):
- (JSC::FunctionExecutable::fromGlobalCode):
- * runtime/Executable.h:
- (JSC::EvalExecutable::compile):
- (JSC::EvalExecutable::generatedBytecode):
- (JSC::EvalExecutable::generatedJITCode):
- (JSC::ProgramExecutable::compile):
- (JSC::ProgramExecutable::generatedBytecode):
- (JSC::ProgramExecutable::generatedJITCode):
- (JSC::FunctionExecutable::generatedBytecode):
- (JSC::FunctionExecutable::compileForCall):
- (JSC::FunctionExecutable::compileForConstruct):
- (JSC::FunctionExecutable::generatedJITCodeForConstructWithArityCheck):
- * runtime/FunctionConstructor.cpp:
- (JSC::constructFunction):
- * runtime/JSActivation.cpp:
- (JSC::JSActivation::argumentsGetter):
- * runtime/JSGlobalData.h:
- (JSC::JSGlobalData::canUseJIT):
-
-2010-07-13 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
-
- Reviewed by Oliver Hunt.
-
- testapi.c depends on the Core Foundation.
- https://bugs.webkit.org/show_bug.cgi?id=40058
-
- Separate CoreFoundation specific tests in JSC's testapi.c. Enabling it
- to compile in Qt environments.
-
- All tests should work except for the JSStringCreateWithCharacters() function,
- because its tests depend on Core Foundation specific functions.
-
- * API/tests/testapi.c:
- (testJSStringRefCF): moved CoreFoundation specific tests to this function.
- (main): The moves plus some minor tweaks.
- * testapi.pro: Added.
+ Make weaklist processing deal with weak handles being removed during the iteration
+ https://bugs.webkit.org/show_bug.cgi?id=55105
+
+ It is possible for the handle heap to end up in a broken state if
+ a handle's finalizer removes either the current or next handle
+ to be visited during the post-gc cleanup. This patch removes that
+ problem by allowing the deallocate(Node*) routine to update the
+ iterator if it is called during finalization.
+
+ * collector/handles/HandleHeap.cpp:
+ (JSC::HandleHeap::HandleHeap):
+ (JSC::HandleHeap::updateAfterMark):
+ (JSC::HandleHeap::clearWeakPointers):
+ (JSC::HandleHeap::writeBarrier):
+ (JSC::HandleHeap::protectedGlobalObjectCount):
+ * collector/handles/HandleHeap.h:
+ (JSC::Finalizer::~Finalizer):
+ (JSC::HandleHeap::getFinalizer):
+ (JSC::HandleHeap::deallocate):
+ (JSC::HandleHeap::makeWeak):
+ (JSC::HandleHeap::makeSelfDestroying):
+ (JSC::HandleHeap::Node::Node):
+ (JSC::HandleHeap::Node::setFinalizer):
+ (JSC::HandleHeap::Node::finalizer):
+ (JSC::HandleHeap::Node::finalizerContext):
+ * interpreter/RegisterFile.cpp:
+ (JSC::RegisterFile::setGlobalObject):
+ (JSC::GlobalObjectNotifier::finalize):
+ (JSC::RegisterFile::globalObjectCollectedNotifier):
+ * interpreter/RegisterFile.h:
+ (JSC::RegisterFile::RegisterFile):
+ * runtime/Heap.cpp:
+ (JSC::Heap::destroy):
+ * runtime/WeakGCPtr.h:
+ (JSC::WeakGCPtr::WeakGCPtr):
+ (JSC::WeakGCPtr::set):
-2010-07-13 Gavin Barraclough <barraclough@apple.com>
+2011-02-24 Michael Saboff <msaboff@apple.com>
Reviewed by Oliver Hunt.
- Bug 42182 - Change how numeric compare functions are detected
-
- There are three problems with the current mechanism:
- * It requires that a function executable be bytecode compiled without
- being JIT generated (in order to copy the bytecode from the numeric
- compare function). This is a problem since we have an invariant when
- running with the JIT that functions are never bytecode compiled without
- also being JIT generated (after checking the codeblock we assume the
- function has JIT code). To help maintain this invariant
- * This implementation will prevent us from experimenting with alternate
- compilation paths which do not compile via bytecode.
- * It doesn't work. Functions passing more than two arguments will match
- if they are comparing their last two arguments, not the first two.
- Generally the mapping back from bytecode to semantics may be more
- complex then initially expected.
-
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::generate):
- (JSC::BytecodeGenerator::setIsNumericCompareFunction):
- (JSC::BytecodeGenerator::argumentNumberFor):
- * bytecompiler/BytecodeGenerator.h:
- * bytecompiler/NodesCodegen.cpp:
- (JSC::BlockNode::singleStatement):
- (JSC::FunctionBodyNode::emitBytecode):
- * parser/Nodes.h:
- (JSC::ExpressionNode::isSubtract):
- (JSC::BinaryOpNode::lhs):
- (JSC::BinaryOpNode::rhs):
- (JSC::SubNode::isSubtract):
- (JSC::ReturnNode::value):
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- * runtime/JSGlobalData.h:
-
-2010-07-12 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- REGRESSION: Crash at JSC::JIT::privateCompile(JSC::MacroAssemblerCodePtr*)
- https://bugs.webkit.org/show_bug.cgi?id=41763
-
- There are two parts to this patch, the first is to fix the actual
- problem. When calling copyStringWithoutBOMs on a string we know
- to contain BOMs we return a value indicating that there are no
- BOMs.
-
- The second part of this fix is simply to harden the path that
- led to a crash when parsing failed.
-
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- Harden compilation stubs against parser failure.
- * parser/Lexer.cpp:
- (JSC::Lexer::sourceCode):
- Add assertions to ensure that subranges into a source provider
- are always actually braces. Hopefully this should catch similar
- failures in future. These assertions fire on existing tests
- without this fix.
- * runtime/Executable.h:
- (JSC::FunctionExecutable::tryJitCodeForCall):
- (JSC::FunctionExecutable::tryJitCodeForConstruct):
- * wtf/text/StringImpl.h:
- (WebCore::StringImpl::copyStringWithoutBOMs):
- Make copyStringWithBOMs do the right thing.
-
-2010-07-13 Gabor Loki <loki@webkit.org>
-
- Reviewed by Gavin Barraclough.
-
- Fix the constant encoding in data transfer instructions on ARM
- https://bugs.webkit.org/show_bug.cgi?id=42166
-
- The getImm function is designed to produce modified immediate constant
- for data processing instructions. It should not be used to encode
- any constant for data transfer. In the current situation there is no
- way to use any immediate constant for data transfer. So, the moveImm
- function is the desired method to pass the offset value to the data
- transfer instructions.
-
- Reported by Jacob Bramley.
-
- * assembler/ARMAssembler.cpp:
- (JSC::ARMAssembler::dataTransfer32):
- * assembler/MacroAssemblerARM.h:
- (JSC::MacroAssemblerARM::call32):
-
-2010-07-09 Darin Adler <darin@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- String to number coercion is not spec compliant
- https://bugs.webkit.org/show_bug.cgi?id=31349
-
- ToNumber should ignore NBSP (\u00a0)
- https://bugs.webkit.org/show_bug.cgi?id=25490
-
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::parseIntOverflow): Added a version that works on UChar.
- * runtime/JSGlobalObjectFunctions.h: Ditto.
-
- * runtime/UString.cpp:
- (JSC::isInfinity): Added helper functions.
- (JSC::UString::toDouble): Use isStrWhiteSpace instead of
- isSASCIISpace to define what we should skip. Got rid of the
- code that used CString and UTF8String, instead processing the
- UChar of the string directly, except for when we call strtod.
- For strtod, use our own home-grown conversion function that
- does not try to do any UTF-16 processing. Tidied up the logic
- a bit as well.
-
-2010-07-12 Martin Robinson <mrobinson@igalia.com>
-
- Reviewed by Xan Lopez.
+ PatternAlternative leaked in YarrPatternConstructor::atomParenthesesEnd()
+ https://bugs.webkit.org/show_bug.cgi?id=55156
- [GTK] make dist is broken because of missing headers and other miscellaneous reasons
- https://bugs.webkit.org/show_bug.cgi?id=42107
+ Added code to delete unneeded PatternAlternative after it is removed
+ from m_alternatives Vector.
- * GNUmakefile.am: Add missing header to the sources list.
-
-2010-07-12 Adam Roben <aroben@apple.com>
-
- Stop generating stripped symbols for Release builds
-
- It turns out we can strip the symbols after-the-fact using PDBCopy.
-
- Fixes <http://webkit.org/b/42085>.
-
- Reviewed by Steve Falkenburg.
+ * yarr/YarrPattern.cpp:
+ (JSC::Yarr::YarrPatternConstructor::atomParenthesesEnd):
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
- Removed the pre-link event, which just created the public\sym
- directory.
+2011-02-24 Eric Seidel <eric@webkit.org>
-2010-07-12 Anders Carlsson <andersca@apple.com>
+ Reviewed by Anders Carlsson.
- Reviewed by Dan Bernstein.
+ VectorBuffer should not call malloc(0)
+ https://bugs.webkit.org/show_bug.cgi?id=55091
- Add WARN_UNUSED_RETURN to the smart pointer "leak" member functions
- https://bugs.webkit.org/show_bug.cgi?id=42086
+ Turns out the malloc() call which was so hot in:
+ https://bugs.webkit.org/show_bug.cgi?id=55005
+ was actually just malloc(0).
- * wtf/OwnPtr.h:
- * wtf/PassOwnPtr.h:
- * wtf/PassRefPtr.h:
- (WTF::PassRefPtr::releaseRef):
- (WTF::NonNullPassRefPtr::leakRef):
- (WTF::NonNullPassRefPtr::releaseRef):
- * wtf/RetainPtr.h:
- (WTF::RetainPtr::releaseRef):
+ We shouldn't be calling malloc(0) anyway, since there is no need to
+ and it might actually do work on some systems.
+ I believe on Mac it ends up taking the standard spinlocks (expensive)
+ and the code on Brew actually does a malloc(1) instead. Neither is desirable.
-2010-07-10 Oliver Hunt <oliver@apple.com>
+ * wtf/Vector.h:
+ (WTF::VectorBufferBase::allocateBuffer):
+ (WTF::VectorBufferBase::tryAllocateBuffer):
- Reviewed by Maciej Stachowiak.
+2011-02-24 Patrick Gansterer <paroga@webkit.org>
- HAVE_COMPUTED_GOTO is dependent on the interpreter being enabled
- https://bugs.webkit.org/show_bug.cgi?id=42039
+ Reviewed by Darin Adler.
- Separate the existence of computed goto support in the compiler
- from whether or not we are using the interpreter. All the current
- HAVE(COMPUTED_GOTO) guards are for the interpreter, but I'd like
- the option of using it elsewhere. The interpreter now uses
- ENABLE(COMPUTED_GOTO_INTERPRETER)
+ Remove obsolete PLATFORM(CI)
+ https://bugs.webkit.org/show_bug.cgi?id=55082
- * bytecode/Instruction.h:
- (JSC::Instruction::Instruction):
- * bytecode/Opcode.h:
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::Interpreter):
- (JSC::Interpreter::isOpcode):
- (JSC::Interpreter::privateExecute):
- * interpreter/Interpreter.h:
- (JSC::Interpreter::getOpcode):
- (JSC::Interpreter::getOpcodeID):
* wtf/Platform.h:
-2010-07-10 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- Remove switches from inner expression loops in the parser
- https://bugs.webkit.org/show_bug.cgi?id=42035
-
- Use bitmasks and flags on the token types to identify unary and
- binary operators, rather than switching on the token type to
- identify them.
-
- * parser/JSParser.cpp:
- (JSC::isUnaryOp):
- (JSC::JSParser::isBinaryOperator):
- * parser/JSParser.h:
- (JSC::):
-
-2010-07-09 Leon Clarke <leonclarke@google.com>
-
- Reviewed by Adam Barth.
-
- add support for link prefetching
- https://bugs.webkit.org/show_bug.cgi?id=3652
-
- * Configurations/FeatureDefines.xcconfig:
+2011-02-24 Martin Robinson <mrobinson@igalia.com>
-2010-07-09 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Darin Adler.
+ Reviewed by Xan Lopez.
- Tidy up lexer token ids
- https://bugs.webkit.org/show_bug.cgi?id=42014
+ [GTK] Remove the GFile GOwnPtr specialization
+ https://bugs.webkit.org/show_bug.cgi?id=55154
- Stop using character literals to identify single character tokens
- and instead use symbolic names for all tokens.
+ Remove the GFile specialization of GOwnPtr. It's sufficient to use GRefPtr
+ to track GFiles since they are just regular reference-counted GObjects.
- * parser/ASTBuilder.h:
- (JSC::ASTBuilder::makeBinaryNode):
- * parser/JSParser.cpp:
- (JSC::JSParser::consume):
- (JSC::JSParser::match):
- (JSC::JSParser::autoSemiColon):
- (JSC::JSParser::JSParser):
- (JSC::JSParser::parseProgram):
- (JSC::JSParser::allowAutomaticSemicolon):
- (JSC::JSParser::parseDoWhileStatement):
- (JSC::JSParser::parseWhileStatement):
- (JSC::JSParser::parseVarDeclarationList):
- (JSC::JSParser::parseConstDeclarationList):
- (JSC::JSParser::parseForStatement):
- (JSC::JSParser::parseReturnStatement):
- (JSC::JSParser::parseWithStatement):
- (JSC::JSParser::parseSwitchStatement):
- (JSC::JSParser::parseSwitchClauses):
- (JSC::JSParser::parseSwitchDefaultClause):
- (JSC::JSParser::parseTryStatement):
- (JSC::JSParser::parseDebuggerStatement):
- (JSC::JSParser::parseStatement):
- (JSC::JSParser::parseFormalParameters):
- (JSC::JSParser::parseFunctionInfo):
- (JSC::JSParser::parseExpressionOrLabelStatement):
- (JSC::JSParser::parseIfStatement):
- (JSC::JSParser::parseExpression):
- (JSC::JSParser::parseAssignmentExpression):
- (JSC::JSParser::parseConditionalExpression):
- (JSC::isUnaryOp):
- (JSC::JSParser::isBinaryOperator):
- (JSC::JSParser::parseBinaryExpression):
- (JSC::JSParser::parseProperty):
- (JSC::JSParser::parseObjectLiteral):
- (JSC::JSParser::parseStrictObjectLiteral):
- (JSC::JSParser::parseArrayLiteral):
- (JSC::JSParser::parsePrimaryExpression):
- (JSC::JSParser::parseArguments):
- (JSC::JSParser::parseMemberExpression):
- (JSC::JSParser::parseUnaryExpression):
- * parser/JSParser.h:
- (JSC::):
- * parser/Lexer.cpp:
- (JSC::):
- (JSC::Lexer::lex):
- * parser/Lexer.h:
+ * wtf/gobject/GOwnPtr.cpp: Remove GFile specialization.
+ * wtf/gobject/GOwnPtr.h: Ditto.
-2010-07-09 Gavin Barraclough <barraclough@apple.com>
+2011-02-24 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Oliver Hunt.
+ Reviewed by Eric Seidel.
- Bug 42015 - Enable JSValue32_64 on ARMv7
+ Rename PLATFORM(SKIA) to USE(SKIA)
+ https://bugs.webkit.org/show_bug.cgi?id=55090
- * Configurations/JavaScriptCore.xcconfig:
- * jit/JIT.h:
- * jit/JITStubs.cpp:
* wtf/Platform.h:
-2010-07-09 Kenneth Russell <kbr@google.com>
+2011-02-24 Patrick Gansterer <paroga@webkit.org>
- Reviewed by Dimitri Glazkov.
-
- Assertion failure in String::utf8() for certain invalid UTF16 inputs
- https://bugs.webkit.org/show_bug.cgi?id=41983
-
- * wtf/text/WTFString.cpp:
- (WebCore::String::utf8):
- - Fixed assertion when sourceExhausted is returned from convertUTF16ToUTF8.
-
-2010-07-09 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- Remove a couple of excess writes from the lexer
- https://bugs.webkit.org/show_bug.cgi?id=41981
-
- Remove a couple of fields from JSTokenInfo, and rename the remaining ones
- to something more accurate
-
- * parser/JSParser.cpp:
- (JSC::JSParser::next):
- (JSC::JSParser::tokenStart):
- (JSC::JSParser::tokenLine):
- (JSC::JSParser::tokenEnd):
- * parser/JSParser.h:
- (JSC::JSTokenInfo::JSTokenInfo):
- * parser/Lexer.cpp:
- (JSC::Lexer::lex):
+ Reviewed by Alexey Proskuryakov.
-2010-07-08 Oliver Hunt <oliver@apple.com>
+ Remove pthreads dependecy for JSLock
+ https://bugs.webkit.org/show_bug.cgi?id=54832
- Reviewed by Sam Weinig.
+ JSLock is only needed to support an obsolete execution model where JavaScriptCore
+ automatically protected against concurrent access from multiple threads.
+ So it's safe to disable it on non-mac platforms where we don't have native pthreads.
- Property declarations in an object literal should not consider the prototype chain when being added to the new object
- https://bugs.webkit.org/show_bug.cgi?id=41929
-
- To fix this all we need to do is ensure that all new properties are
- added with putDirect rather than a fully generic call to put. This
- is safe as an object literal is by definition going to produce a
- completely normal object.
+ * runtime/JSLock.cpp:
- Rather than duplicating all the put_by_id logic we add an additional
- flag to op_put_by_id to indicate it should be using putDirect. In
- the interpreter this adds a runtime branch, but in the jit this is
- essentially free as the branch is taken at compile time. This does
- actually improve object literal creation time even in the interpreter
- as we no longer need to walk the prototype chain to verify that the
- cached put is safe.
+2011-02-24 Chao-ying Fu <fu@mips.com>
- We still emit normal put_by_id code when emitting __proto__ as we want
- to get the correct handling for changing the prototype.
+ Reviewed by Eric Seidel.
- Sunspider claims this is a 0.7% speedup which is conceivably real due
- to the performance improvement in object literals, but I suspect its
- really just the result of code motion.
+ Fix MIPS build with new patchOffsetPut/GetByIdPropertyMapOffset1/2 values
+ https://bugs.webkit.org/show_bug.cgi?id=54997
- * bytecode/Opcode.h:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::emitPutById):
- (JSC::BytecodeGenerator::emitDirectPutById):
- * bytecompiler/BytecodeGenerator.h:
- * bytecompiler/NodesCodegen.cpp:
- (JSC::PropertyListNode::emitBytecode):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
* jit/JIT.h:
- (JSC::JIT::compilePutByIdTransition):
- * jit/JITPropertyAccess.cpp:
- (JSC::JIT::emit_op_put_by_id):
- (JSC::JIT::emitSlow_op_put_by_id):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::patchPutByIdReplace):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::emitSlow_op_put_by_id):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::patchPutByIdReplace):
* jit/JITStubs.cpp:
- (JSC::JITThunks::tryCachePutByID):
- (JSC::DEFINE_STUB_FUNCTION):
- * jit/JITStubs.h:
- (JSC::):
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- * runtime/JSObject.h:
- (JSC::JSObject::putDirect):
- (JSC::JSValue::putDirect):
- * runtime/JSValue.h:
-
-2010-07-08 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Sam Weinig.
-
- String.prototype methods should CheckObjectCoercible (test this is not null or undefined).
-
- * runtime/StringPrototype.cpp:
- (JSC::stringProtoFuncCharAt):
- (JSC::stringProtoFuncCharCodeAt):
- (JSC::stringProtoFuncConcat):
- (JSC::stringProtoFuncIndexOf):
- (JSC::stringProtoFuncLastIndexOf):
- (JSC::stringProtoFuncMatch):
- (JSC::stringProtoFuncSearch):
- (JSC::stringProtoFuncSlice):
- (JSC::stringProtoFuncSplit):
- (JSC::stringProtoFuncSubstr):
- (JSC::stringProtoFuncSubstring):
- (JSC::stringProtoFuncToLowerCase):
- (JSC::stringProtoFuncToUpperCase):
- (JSC::stringProtoFuncLocaleCompare):
- (JSC::trimString):
-
-2010-07-08 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Sam Weinig.
-
- Date.prototype.toJSON takes one argument, report this correctly.
-
- * runtime/DatePrototype.cpp:
-
-2010-07-08 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Sam Weinig.
-
- RegExp's prototype should be an object of type RegExp.
-
- * runtime/RegExpPrototype.cpp:
- (JSC::RegExpPrototype::RegExpPrototype):
- * runtime/RegExpPrototype.h:
-
-2010-07-08 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- JavaScript parser violates ECMA automatic semicolon insertion rule
- https://bugs.webkit.org/show_bug.cgi?id=41844
-
- Remove (very) old and bogus logic that automatically inserted a semicolon
- at the end of a script's source.
-
- * parser/Lexer.cpp:
- (JSC::Lexer::lex):
-
-2010-07-08 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Anders Carlson.
-
- Tidy up the lexer
-
- Remove some of the old yacc/lex-isms still present in the lexer
-
- * parser/JSParser.h:
- (JSC::):
- * parser/Lexer.cpp:
- (JSC::Lexer::parseString):
- (JSC::Lexer::lex):
- * parser/Lexer.h:
-
-2010-07-08 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- Make object-literal parsing conformant with the spec.
- https://bugs.webkit.org/show_bug.cgi?id=41892
-
- Bring our parsing of object literals into conformance with the ES5 spec.
- Basically disallow conflicting accessor vs. normal property definitions
- The bulk of this patch is just fiddling to maintain performance.
-
- * parser/ASTBuilder.h:
- (JSC::ASTBuilder::createGetterOrSetterProperty):
- (JSC::ASTBuilder::createProperty):
- (JSC::ASTBuilder::getName):
- (JSC::ASTBuilder::getType):
- * parser/JSParser.cpp:
- (JSC::jsParse):
- (JSC::JSParser::JSParser):
- (JSC::JSParser::parseProperty):
- (JSC::JSParser::parseObjectLiteral):
- (JSC::JSParser::parseStrictObjectLiteral):
- * parser/JSParser.h:
- * parser/Lexer.cpp:
- (JSC::Lexer::clear):
- * parser/Lexer.h:
- (JSC::Lexer::currentOffset):
- (JSC::Lexer::setOffset):
- Add logic to allow us to roll the lexer back in the input stream.
- * parser/Nodes.h:
- (JSC::PropertyNode::):
- (JSC::PropertyNode::type):
- * parser/Parser.cpp:
- (JSC::Parser::parse):
- * parser/SourceProvider.h:
- (JSC::SourceProvider::SourceProvider):
- (JSC::SourceProvider::isValid):
- (JSC::SourceProvider::setValid):
- SourceProvider now records whether the input text
- has already been validated.
- * parser/SyntaxChecker.h:
- (JSC::SyntaxChecker::SyntaxChecker):
- (JSC::SyntaxChecker::Property::Property):
- (JSC::SyntaxChecker::Property::operator!):
- (JSC::SyntaxChecker::createProperty):
- (JSC::SyntaxChecker::createPropertyList):
- (JSC::SyntaxChecker::createGetterOrSetterProperty):
- The SyntaxChecker mode now needs to maintain a bit more information
- to ensure that we can validate object literals correctly.
-
-2010-07-08 Darin Adler <darin@apple.com>
-
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::sharedInstance): Fix typo.
-
-2010-07-08 Darin Adler <darin@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Fix assertion seen on the Leopard buildbot.
- The single shared instance of JSGlobalData was not being
- adopted after creation.
-
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::sharedInstance): Do adoptRef and then leakRef.
-
-2010-07-08 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Sam Weinig.
-
- BOMs are whitespace.
-
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::isStrWhiteSpace):
-
-2010-07-08 Martin Robinson <mrobinson@igalia.com>
-
- Unreviewed.
-
- Try fix the GTK+ build by touching this file.
-
- * jit/ExecutableAllocatorFixedVMPool.cpp:
-
-2010-07-08 Gavin Barraclough <barraclough@apple.com>
-
- GTK build fix take two.
-
- * GNUmakefile.am:
-
-2010-07-08 Gavin Barraclough <barraclough@apple.com>
-
- GTK build fix.
-
- * GNUmakefile.am:
-
-2010-07-08 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Sam Weinig.
-
- https://bugs.webkit.org/show_bug.cgi?id=41641
-
- Update compile flags to allow use of ExecutableAllocatorFixedVMPool on platforms
- other than x86-64 (this may be useful on 32-bit platforms, too).
-
- Simplify ifdefs by dividing into thwo broad allocation strategies
- (ENABLE_EXECUTABLE_ALLOCATOR_FIXED & ENABLE_EXECUTABLE_ALLOCATOR_DEMAND).
-
- Rename constant used in the code to have names descriptive of their purpose,
- rather than their specific value on a given platform.
-
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutableAllocator::reprotectRegion):
- (JSC::ExecutableAllocator::cacheFlush):
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
- (JSC::FixedVMPoolAllocator::free):
- (JSC::ExecutablePool::systemAlloc):
- * jit/ExecutableAllocatorPosix.cpp:
- * jit/ExecutableAllocatorSymbian.cpp:
- * jit/ExecutableAllocatorWin.cpp:
- * wtf/Platform.h:
+ (JSC::JITThunks::JITThunks):
-2010-07-08 Xan Lopez <xlopez@igalia.com>
+2011-02-24 Andras Becsi <abecsi@webkit.org>
- Reviewed by Gustavo Noronha.
+ Reviewed by Laszlo Gombos.
- Silence a few noisy build rules.
+ [Qt] MinGW build fails to link
+ https://bugs.webkit.org/show_bug.cgi?id=55050
- * GNUmakefile.am:
+ Prepend the libraries of subcomponents instead of appending them
+ to fix the library order according to the dependency of the libraries
-2010-07-08 Sheriff Bot <webkit.review.bot@gmail.com>
+ * JavaScriptCore.pri: rename addJavaScriptCore to prependJavaScriptCore
+ * jsc.pro: ditto
- Unreviewed, rolling out r62765.
- http://trac.webkit.org/changeset/62765
- https://bugs.webkit.org/show_bug.cgi?id=41840
-
- All jscore and layout tests crash on Qt bot (Requested by Ossy
- on #webkit).
+2011-02-24 Eric Seidel <eric@webkit.org>
- * wtf/FastMalloc.cpp:
- (WTF::TCMalloc_PageHeap::initializeScavenger):
- (WTF::TCMalloc_PageHeap::signalScavenger):
- (WTF::TCMalloc_PageHeap::scavengerThread):
-
-2010-07-08 Andreas Kling <andreas.kling@nokia.com>
+ Reviewed by Adam Barth.
- Reviewed by Oliver Hunt.
+ Deque<T> should support inline capacity
+ https://bugs.webkit.org/show_bug.cgi?id=55032
- Interpreter: Crash in op_load_varargs on 64-bit
- https://bugs.webkit.org/show_bug.cgi?id=41795
+ The title says it all. There are currently no places
+ which use this code yet, however it's been tested in conjunction
+ with code for bug 55005.
- Added missing cast of argCount to int32_t in op_load_varargs.
+ This also adds an ASSERT that capacity is never 1. If you were able
+ to set the capacity equal to 1, the Deque would just get confused
+ and happily append your item but still think it had size 0.
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
+ * wtf/Deque.h:
+ (WTF::DequeIterator::DequeIterator):
+ (WTF::DequeConstIterator::DequeConstIterator):
+ (WTF::DequeReverseIterator::DequeReverseIterator):
+ (WTF::DequeConstReverseIterator::DequeConstReverseIterator):
+ (WTF::::checkValidity):
+ (WTF::::checkIndexValidity):
+ (WTF::::invalidateIterators):
+ (WTF::::Deque):
+ (WTF::deleteAllValues):
+ (WTF::::operator):
+ (WTF::::destroyAll):
+ (WTF::::~Deque):
+ (WTF::::swap):
+ (WTF::::clear):
+ (WTF::::findIf):
+ (WTF::::expandCapacityIfNeeded):
+ (WTF::::expandCapacity):
+ (WTF::::takeFirst):
+ (WTF::::append):
+ (WTF::::prepend):
+ (WTF::::removeFirst):
+ (WTF::::remove):
+ (WTF::::addToIteratorsList):
+ (WTF::::removeFromIteratorsList):
+ (WTF::::DequeIteratorBase):
+ (WTF::::~DequeIteratorBase):
+ (WTF::::isEqual):
+ (WTF::::increment):
+ (WTF::::decrement):
+ (WTF::::after):
+ (WTF::::before):
+ * wtf/Vector.h:
-2010-07-08 Patrick Gansterer <paroga@paroga.com>
+2011-02-22 Adam Barth <abarth@webkit.org>
- Reviewed by Geoffrey Garen.
+ Reviewed by Ojan Vafai.
- Make FastMalloc more portable.
- https://bugs.webkit.org/show_bug.cgi?id=41790
+ Add missing files to JavaScriptCore.gypi
+ https://bugs.webkit.org/show_bug.cgi?id=55020
- Use WTF::Mutex instead of pthread_mutex_t and
- replace pthread_cond_t with WTF::ThreadCondition.
+ gypi files are supposed to list every file under the sun. This patch
+ adds some missing files and sorts the rest.
- * wtf/FastMalloc.cpp:
- (WTF::TCMalloc_PageHeap::initializeScavenger):
- (WTF::TCMalloc_PageHeap::signalScavenger):
- (WTF::TCMalloc_PageHeap::scavengerThread):
+ * JavaScriptCore.gypi:
-2010-07-08 Patrick Gansterer <paroga@paroga.com>
+2011-02-23 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
- Remove needless #include <fcntl.h> from TCSystemAlloc.cpp.
- https://bugs.webkit.org/show_bug.cgi?id=41777
-
- * wtf/TCSystemAlloc.cpp:
-
-2010-07-07 Darin Adler <darin@apple.com>
-
- Fixed build in configurations like PowerPC.
-
- * runtime/RegExpConstructor.cpp: Added include of PassOwnPtr.h.
- * runtime/RegExpObject.cpp: Ditto.
- * wtf/SizeLimits.cpp: Changed compile time assertion to work
- even on platforms where two bool members do not end up taking
- the same size as one int member!
-
-2010-07-07 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- Lazy mode of parser allows invalid syntax in object literals.
- https://bugs.webkit.org/show_bug.cgi?id=41809
-
- Make the parser itself validate getter and setter syntax rather
- than offloading it to the AST builder.
-
- * parser/ASTBuilder.h:
- (JSC::ASTBuilder::createGetterOrSetterProperty):
- * parser/JSParser.cpp:
- (JSC::JSParser::parseProperty):
-
-2010-07-07 Dumitru Daniliuc <dumi@chromium.org>
-
- Reviewed by Adam Roben.
-
- Revert r62689.
- https://bugs.webkit.org/show_bug.cgi?id=41804
-
- * runtime/Collector.cpp:
- (JSC::Heap::freeBlocks):
-
-2010-07-07 Adam Barth <abarth@webkit.org>
-
- Reviewed by Sam Weinig.
-
- Add reverseFind to Vector and deploy in HTML5 parser
- https://bugs.webkit.org/show_bug.cgi?id=41778
-
- This method seems generally useful. I'm slightly surprised we don't
- have it already.
-
- * wtf/Vector.h:
- (WTF::::reverseFind):
-
-2010-07-07 Darin Adler <darin@apple.com>
-
- Reviewed by Adam Barth.
-
- Turn on adoptRef assertion for RefCounted
- https://bugs.webkit.org/show_bug.cgi?id=41547
-
- * wtf/CrossThreadRefCounted.h: Fixed include style. Includes of other
- WTF headers should use "" includes; consistent in most WTF headers.
- Added a call to relaxAdoptionRequirement.
-
- * wtf/RefCounted.h: Fixed include style. Removed LOOSE_REF_COUNTED.
- Added relaxAdoptionRequirement.
-
-2010-07-07 Anders Carlsson <andersca@apple.com>
-
- Try to fix the Windows build.
+ Refactored MarkedSpace to operate in terms of size classes
+ https://bugs.webkit.org/show_bug.cgi?id=55106
+
+ SunSpider reports no change.
- * runtime/Collector.cpp:
- (JSC::Heap::freeBlocks):
+ * runtime/JSCell.h:
+ (JSC::JSCell::MarkedSpace::sizeClassFor):
+ (JSC::JSCell::MarkedSpace::allocate): Delegate allocation based on size
+ class. Since these functions are inline, the compiler can constant fold
+ them.
-2010-07-07 Darin Adler <darin@apple.com>
+ * runtime/MarkedBlock.h:
+ (JSC::MarkedBlock::cellSize):
+ (JSC::MarkedBlock::size): Factored out a cellSize() helper.
- Reviewed by Adam Barth.
+ * runtime/MarkedSpace.cpp:
+ (JSC::MarkedSpace::allocateBlock):
+ (JSC::MarkedSpace::allocateFromSizeClass):
+ (JSC::MarkedSpace::shrink):
+ (JSC::MarkedSpace::reset):
+ * runtime/MarkedSpace.h:
+ (JSC::MarkedSpace::SizeClass::SizeClass):
+ (JSC::MarkedSpace::SizeClass::reset): Changed to operate in terms of
+ abstract SizeClass objects, which are independent linked lists of blocks
+ of a certain size class, instead of a single m_heap object.
- More OwnPtr work
- https://bugs.webkit.org/show_bug.cgi?id=41727
+2011-02-23 Adam Barth <abarth@webkit.org>
- * API/JSCallbackObject.h:
- (JSC::JSCallbackObjectData::setPrivateProperty): Use adoptPtr.
- * API/JSCallbackObjectFunctions.h:
- (JSC::JSCallbackObject::JSCallbackObject): Ditto.
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::CodeBlock): Ditto.
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::createRareDataIfNecessary): Ditto.
- * parser/Nodes.cpp:
- (JSC::ScopeNode::ScopeNode): Ditto.
- * parser/ParserArena.cpp:
- (JSC::ParserArena::ParserArena): Ditto.
- * runtime/Arguments.h:
- (JSC::Arguments::Arguments): Ditto.
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::compile): Ditto.
- (JSC::ProgramExecutable::compile): Ditto.
- (JSC::FunctionExecutable::compileForCall): Ditto.
- (JSC::FunctionExecutable::compileForConstruct): Ditto.
- (JSC::FunctionExecutable::reparseExceptionInfo): Ditto.
- (JSC::EvalExecutable::reparseExceptionInfo): Ditto.
- * runtime/JSArray.cpp:
- (JSC::JSArray::sort): Ditto.
- * runtime/RegExpConstructor.cpp:
- (JSC::RegExpConstructor::RegExpConstructor): Ditto.
- * runtime/RegExpObject.cpp:
- (JSC::RegExpObject::RegExpObject): Ditto.
- * runtime/SmallStrings.cpp:
- (JSC::SmallStrings::createSingleCharacterString): Ditto.
- (JSC::SmallStrings::singleCharacterStringRep): Ditto.
-
- * wtf/unicode/icu/CollatorICU.cpp:
- (WTF::Collator::userDefault): Use adoptPtr.
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::ByteCompiler::ByteCompiler): Ditto.
- (JSC::Yarr::ByteCompiler::compile): Ditto.
- (JSC::Yarr::ByteCompiler::regexBegin): Ditto.
- (JSC::Yarr::byteCompileRegex): Ditto.
- * yarr/RegexInterpreter.h:
- (JSC::Yarr::BytecodePattern::BytecodePattern): Ditto.
+ Reviewed by James Robinson.
-2010-07-07 Darin Adler <darin@apple.com>
+ [Chromium] Use WebKitClient for OSRandomSource instead of trying to talk to the file system in the sandbox
+ https://bugs.webkit.org/show_bug.cgi?id=55093
- Reviewed by Adam Barth.
+ Exclude OSRandomSource.cpp from the Chromium build. This function is
+ implemented in WebKit/chromium/src instead.
- Make clear set the pointer to 0 before deletion
- https://bugs.webkit.org/show_bug.cgi?id=41727
+ * JavaScriptCore.gyp/JavaScriptCore.gyp:
- * wtf/OwnArrayPtr.h: Changed code so we always set the pointer to its new
- value before deleting the old one, including in the set function and the
- clear function. This required changing safeDelete.
- * wtf/OwnPtr.h: Ditto. Also removed some extra null checks.
- * wtf/PassOwnPtr.h: Ditto.
+2011-02-23 Oliver Hunt <oliver@apple.com>
- * wtf/PassRefPtr.h: Changed code so we always set the pointer to its new
- value before deref'ing the old one in the clear function. Also added a
- leakRef function for NonNullPassRefPtr.
- * wtf/RefPtr.h: Ditto.
+ Roll out r64156 as it introduces incorrect behaviour.
- * wtf/gobject/GOwnPtr.h: More of the same.
- * wtf/gobject/GRefPtr.h: Ditto.
+ * runtime/JSByteArray.h:
+ (JSC::JSByteArray::setIndex):
-2010-07-07 Zoltan Herczeg <zherczeg@webkit.org>
+2011-02-23 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
- Refactored string parsing inside the lexer
- https://bugs.webkit.org/show_bug.cgi?id=41606
-
- Does not use goto. Although the last sunspider
- parse-only tests yields 1.044x speedup, I think the
- patch can have a slight improvement at most.
-
- * parser/Lexer.cpp:
- (JSC::singleEscape):
- (JSC::Lexer::parseString):
- (JSC::Lexer::lex):
- * parser/Lexer.h:
-
-2010-07-06 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Maciej Stachowiak.
-
- Make it possible to have both the JIT and Interpreter available in a single build
- https://bugs.webkit.org/show_bug.cgi?id=41722
-
- Separate the concept of !ENABLE(JIT) and ENABLE(INTERPRETER) and make it possible
- to have both JIT and INTERPRETER enabled at the same time. This doesn't add
- support for mix mode execution, but it does allow a single build to contain all
- the code needed to use either the interpreter or the jit.
-
- If both ENABLE(INTERPRETER) and ENABLE(JIT) are true then setting the environment
- variable JSC_FORCE_INTERPRETER will force JSC to use the interpreter.
-
- This patch basically consists of replacing !ENABLE(JIT) with ENABLE(INTERPRETER),
- or converting #if ENABLE(JIT) ... #else ... into #if ENABLE(JIT) ... #endif
- #if ENABLE(INTERPRETER), etc. There are also a few functions that need to be
- renamed to resolve return type ambiguity.
-
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::~CodeBlock):
- (JSC::CodeBlock::shrinkToFit):
- * bytecode/CodeBlock.h:
- * interpreter/CallFrame.h:
- (JSC::ExecState::returnVPC):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::unwindCallFrame):
- (JSC::Interpreter::throwException):
- (JSC::Interpreter::execute):
- (JSC::Interpreter::executeCall):
- (JSC::Interpreter::executeConstruct):
- (JSC::Interpreter::prepareForRepeatCall):
- (JSC::Interpreter::privateExecute):
- (JSC::Interpreter::retrieveLastCaller):
- * interpreter/Interpreter.h:
- * runtime/ArrayPrototype.cpp:
- (JSC::isNumericCompareFunction):
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::generateJITCode):
- (JSC::ProgramExecutable::generateJITCode):
- (JSC::FunctionExecutable::generateJITCodeForCall):
- (JSC::FunctionExecutable::generateJITCodeForConstruct):
- (JSC::FunctionExecutable::reparseExceptionInfo):
- (JSC::EvalExecutable::reparseExceptionInfo):
- * runtime/JSFunction.cpp:
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- * runtime/JSGlobalData.h:
- (JSC::JSGlobalData::canUseJIT):
- * wtf/Platform.h:
-
-2010-07-06 Darin Adler <darin@apple.com>
-
- Reviewed by Adam Barth.
-
- Add adoptPtr and leakPtr functions for OwnPtr and PassOwnPtr
- https://bugs.webkit.org/show_bug.cgi?id=41320
-
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::reparseForExceptionInfoIfNecessary): Use assignment
- instead of set since the result of reparseExceptionInfo is now a
- PassOwnPtr.
-
- * bytecode/CodeBlock.h: Change extractExceptionInfo to return a
- PassOwnPtr instead of a raw pointer.
-
- * runtime/Executable.cpp:
- (JSC::FunctionExecutable::reparseExceptionInfo): Return a PassOwnPtr.
- (JSC::EvalExecutable::reparseExceptionInfo): Ditto.
- (JSC::ProgramExecutable::reparseExceptionInfo): Added. This was
- in the header before, but it's better to not have it there to reduce
- header dependencies. Return a PassOwnPtr.
-
- * runtime/Executable.h: Made reparseExceptionInfo return a PassOwnPtr,
- and put it in the private sections of classes other than the base class.
-
- * wtf/MessageQueue.h:
- (WTF::MessageQueue::append): Use leakPtr instead of release.
- (WTF::MessageQueue::appendAndCheckEmpty): Ditto.
- (WTF::MessageQueue::prepend): Ditto.
-
- * wtf/OwnPtr.h: Tweaked formatting. Changed the release function to return
- a PassOwnPtr rather than a raw pointer. Added a leakPtr function that
- returns a raw pointer. Put the constructor that takes a raw pointer and
- the set function into a section guarded by LOOSE_OWN_PTR. Adapted to the
- new adoptPtr function from PassOwnPtr.h.
-
- * wtf/PassOwnPtr.h: Tweaked formatting. Renamed the release function
- to leakPtr. Added an adoptPtr function that creates a new PassOwnPtr.
- Put the constructor and assignment operators that take a raw pointer
- into a section guarded by LOOSE_PASS_OWN_PTR.
-
-2010-07-06 Sam Weinig <sam@webkit.org>
-
- Reviewed by Darin Adler
-
- Update comment in StringExtras.h to be more accurate.
-
- * wtf/StringExtras.h:
+ Moved the "nextAtom" allocation pointer into MarkedBlock for better encapsulation
+ https://bugs.webkit.org/show_bug.cgi?id=55079
+
+ SunSpider reports no change.
-2010-07-06 Sheriff Bot <webkit.review.bot@gmail.com>
+ * runtime/Heap.cpp:
+ (JSC::Heap::reset): Moved Zombie sweeping here, up from MarkedSpace,
+ since we want Heap to logically control MarkedSpace. MarkedSpace should
+ never choose to sweep itself.
- Unreviewed, rolling out r62511.
- http://trac.webkit.org/changeset/62511
- https://bugs.webkit.org/show_bug.cgi?id=41686
+ * runtime/JSCell.h:
+ (JSC::JSCell::MarkedBlock::allocate): Updated for nextAtom becoming a
+ member of MarkedBlock. No need to reset nextAtom to firstAtom() when
+ we reach the end of a block, since there's now an explicit reset pass
+ during GC.
- Breaks Linux/64bit compilation (Requested by xan_ on #webkit).
+ * runtime/MarkedBlock.cpp:
+ (JSC::MarkedBlock::MarkedBlock):
+ * runtime/MarkedBlock.h:
+ (JSC::MarkedBlock::reset): Added the nextAtom data member, and reordered
+ some data members to improve cache locality.
- * jit/ExecutableAllocator.cpp:
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
- (JSC::FixedVMPoolAllocator::free):
- (JSC::ExecutablePool::systemAlloc):
- * jit/ExecutableAllocatorPosix.cpp:
- (JSC::ExecutableAllocator::reprotectRegion):
- (JSC::ExecutableAllocator::cacheFlush):
- * jit/ExecutableAllocatorSymbian.cpp:
- * jit/ExecutableAllocatorWin.cpp:
- * wtf/Platform.h:
+ * runtime/MarkedSpace.cpp:
+ (JSC::MarkedSpace::MarkedSpace):
+ (JSC::MarkedSpace::allocate):
+ (JSC::MarkedSpace::reset):
+ * runtime/MarkedSpace.h:
+ (JSC::CollectorHeap::CollectorHeap): Removed nextAtom, and added an
+ explicit reset pass.
-2010-07-05 Gavin Barraclough <barraclough@apple.com>
+2011-02-23 James Robinson <jamesr@chromium.org>
- Reviewed by Sam Weinig.
+ Unreviewed, rolling out r79428.
+ http://trac.webkit.org/changeset/79428
+ https://bugs.webkit.org/show_bug.cgi?id=54714
- https://bugs.webkit.org/show_bug.cgi?id=41641
+ Does not work in the Chromium sandbox
- Update compile flags to allow use of ExecutableAllocatorFixedVMPool on platforms
- other than x86-64 (this may be useful on 32-bit platforms, too).
+ * JavaScriptCore.exp:
- Simplify ifdefs by dividing into thwo broad allocation strategies
- (ENABLE_EXECUTABLE_ALLOCATOR_FIXED & ENABLE_EXECUTABLE_ALLOCATOR_DEMAND).
+2011-02-23 Adam Roben <aroben@apple.com>
- Rename constant used in the code to have names descriptive of their purpose,
- rather than their specific value on a given platform.
+ Fix an off-by-one error in JSC::appendSourceToError
- * jit/ExecutableAllocator.cpp:
- (JSC::ExecutableAllocator::reprotectRegion):
- (JSC::ExecutableAllocator::cacheFlush):
- * jit/ExecutableAllocatorFixedVMPool.cpp:
- (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
- (JSC::FixedVMPoolAllocator::free):
- (JSC::ExecutablePool::systemAlloc):
- * jit/ExecutableAllocatorPosix.cpp:
- * jit/ExecutableAllocatorSymbian.cpp:
- * jit/ExecutableAllocatorWin.cpp:
- * wtf/Platform.h:
+ Looks like this bug has been around since the code was first added in r35245.
-2010-07-05 Steve Block <steveblock@google.com>
+ Fixes <http://webkit.org/b/55052> <rdar://problem/9043512> Crash in JSC::appendSourceToError
+ when running fast/dom/objc-big-method-name.html on Windows with full page heap enabled
Reviewed by Darin Adler.
- ThreadingPthreads.cpp should use JNIUtility.h on Android, not outdated jni_utility.h
- https://bugs.webkit.org/show_bug.cgi?id=41594
-
- * wtf/ThreadingPthreads.cpp:
-
-2010-07-04 Mark Rowe <mrowe@apple.com>
-
- Build fix after r62456.
-
* interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute): Be slightly more consistent in using uint32_t to prevent
- warnings about comparisons between signed and unsigned types, and attempts to call an overload
- of std::min that doesn't exist.
-
-2010-07-02 Sam Weinig <sam@webkit.org>
-
- Reviewed by Darin Adler.
-
- Patch for https://bugs.webkit.org/show_bug.cgi?id=41553
- Make StringExtras.h versions of snprintf and vsnprintf match the unix versions.
-
- - MSVC does not ensure the buffers are null terminated as the unix versions do.
-
- * runtime/JSGlobalObjectFunctions.cpp: Cleanup includes.
- * runtime/UString.cpp: Clean up includes.
- (JSC::UString::from): Don't pass sizeof(buf) - 1, that is wrong.
- * wtf/StringExtras.h:
- (snprintf): Ensure null termination of buffer.
- (vsnprintf): Ditto.
+ (JSC::appendSourceToError): When trimming whitespace off the end of the string, examine the
+ character at stop-1 rather than at stop. At this point in the code, stop represents the
+ index just past the end of the characters we care about, and can even be just past the end
+ of the entire data buffer.
-2010-07-03 Yong Li <yoli@rim.com>
+2011-02-23 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
-
- Make Arguments::MaxArguments clamping work for numbers >= 0x80000000 in
- the interpreter as well as the JIT.
-
- https://bugs.webkit.org/show_bug.cgi?id=41351
- rdar://problem/8142141
-
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute): Fix signed integer overflow problem
- in op_load_varargs handling. 0xFFFFFFFF was read as -1.
-
-2010-06-26 Jeremy Orlow <jorlow@chromium.org>
-
- Reviewed by Dumitru Daniliuc.
-
- Support for keys and in-memory storage for IndexedDB
- https://bugs.webkit.org/show_bug.cgi?id=41252
-
- Set the role to Private.
-
- * JavaScriptCore.xcodeproj/project.pbxproj:
-
-2010-07-02 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- Move BOM handling out of the lexer and parser
- https://bugs.webkit.org/show_bug.cgi?id=41539
-
- Doing the BOM stripping in the lexer meant that we could
- end up having to strip the BOMs from a source multiple times.
- To deal with this we now require all strings provided by
- a SourceProvider to already have had the BOMs stripped.
- This also simplifies some of the lexer logic.
-
- * parser/Lexer.cpp:
- (JSC::Lexer::setCode):
- (JSC::Lexer::sourceCode):
- * parser/SourceProvider.h:
- (JSC::SourceProvider::SourceProvider):
- (JSC::UStringSourceProvider::create):
- (JSC::UStringSourceProvider::getRange):
- (JSC::UStringSourceProvider::UStringSourceProvider):
- * wtf/text/StringImpl.h:
- (WebCore::StringImpl::copyStringWithoutBOMs):
-
-2010-07-03 Patrick Gansterer <paroga@paroga.com>
-
- Reviewed by Kent Tamura.
-
- [WINCE] Implement Unicode::isAlphanumeric and Unicode::isArabicChar.
- https://bugs.webkit.org/show_bug.cgi?id=41411
-
- * wtf/unicode/wince/UnicodeWince.cpp:
- (WTF::Unicode::isAlphanumeric):
- * wtf/unicode/wince/UnicodeWince.h:
- (WTF::Unicode::isArabicChar):
-
-2010-07-03 Kwang Yul Seo <skyul@company100.net>
-
- Reviewed by Kent Tamura.
-
- [BREWMP] Change the CRASH() macro to print "WebKit CRASH" log.
- https://bugs.webkit.org/show_bug.cgi?id=41524
-
- Print "WebKit CRASH" before crashing.
-
- * wtf/Assertions.h:
-
-2010-07-02 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Bug 41565 - Repatching in ARMv7Assembler::repatchLoadPtrToLEA is broken
-
- This method tried to repatch a LDR (T2) into an ADD (T3) - but it only
- repatches the first instruction word. The layout of the fields in the
- second word is different, and also needs repatching.
-
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::repatchLoadPtrToLEA):
-
-2010-07-02 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- Clamp the number of arguments supported by function.apply
- https://bugs.webkit.org/show_bug.cgi?id=41351
- <rdar://problem/8142141>
-
- Add clamping logic to function.apply similar to that
- enforced by firefox. We have a smaller clamp than
- firefox as our calling convention means that stack
- usage is proportional to argument count -- the firefox
- limit is larger than you could actually call.
-
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * runtime/Arguments.h:
- (JSC::Arguments::):
-
-2010-07-02 Chao-ying Fu <fu@mips.com>
-
- Reviewed by Oliver Hunt.
-
- Re-enable JIT_OPTIMIZE_NATIVE_CALL on MIPS
- https://bugs.webkit.org/show_bug.cgi?id=40179
-
- Add the MIPS part to re-enable JIT_OPTIMIZE_NATIVE_CALL.
-
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTINativeCall):
- * wtf/Platform.h:
-
-2010-07-02 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Bug 41552 - Clean up ARMv7 vfp code generation
- Emit separate opcode individually, remove magic numbers.
-
- Also remove invalid assert from JSImmediate (number cells are not CELL_MASK aligned).
-
- * assembler/ARMv7Assembler.h:
- (JSC::ARMv7Assembler::):
- (JSC::ARMv7Assembler::vadd_F64):
- (JSC::ARMv7Assembler::vcmp_F64):
- (JSC::ARMv7Assembler::vcvt_F64_S32):
- (JSC::ARMv7Assembler::vcvtr_S32_F64):
- (JSC::ARMv7Assembler::vdiv_F64):
- (JSC::ARMv7Assembler::vldr):
- (JSC::ARMv7Assembler::vmov_F64_0):
- (JSC::ARMv7Assembler::vmov):
- (JSC::ARMv7Assembler::vmrs):
- (JSC::ARMv7Assembler::vmul_F64):
- (JSC::ARMv7Assembler::vstr):
- (JSC::ARMv7Assembler::vsub_F64):
- (JSC::ARMv7Assembler::VFPOperand::VFPOperand):
- (JSC::ARMv7Assembler::VFPOperand::bits1):
- (JSC::ARMv7Assembler::VFPOperand::bits4):
- (JSC::ARMv7Assembler::vcvtOp):
- (JSC::ARMv7Assembler::ARMInstructionFormatter::vfpOp):
- (JSC::ARMv7Assembler::ARMInstructionFormatter::vfpMemOp):
- * assembler/MacroAssemblerARMv7.h:
- (JSC::MacroAssemblerARMv7::branchDouble):
- * runtime/JSImmediate.h:
- (JSC::JSValue::isCell):
-
-2010-07-02 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r62410.
- http://trac.webkit.org/changeset/62410
- https://bugs.webkit.org/show_bug.cgi?id=41549
-
- accursed last minute changes (Requested by olliej on #webkit).
-
- * parser/Lexer.cpp:
- (JSC::Lexer::setCode):
- (JSC::Lexer::copyCodeWithoutBOMs):
- (JSC::Lexer::sourceCode):
- * parser/SourceProvider.h:
- (JSC::):
- (JSC::SourceProvider::SourceProvider):
- (JSC::SourceProvider::hasBOMs):
- (JSC::UStringSourceProvider::create):
- (JSC::UStringSourceProvider::getRange):
- (JSC::UStringSourceProvider::UStringSourceProvider):
- * wtf/text/StringImpl.h:
-
-2010-07-02 Sam Weinig <sam@webkit.org>
-
- Reviewed by Geoffrey Garen.
-
- Patch for https://bugs.webkit.org/show_bug.cgi?id=41548
- Use snprintf instead of sprintf everywhere in JavaScriptCore
-
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::encode):
- (JSC::globalFuncEscape):
- * runtime/UString.cpp:
- (JSC::UString::from):
-
-2010-07-02 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- Move BOM handling out of the lexer and parser
- https://bugs.webkit.org/show_bug.cgi?id=41539
-
- Doing the BOM stripping in the lexer meant that we could
- end up having to strip the BOMs from a source multiple times.
- To deal with this we now require all strings provided by
- a SourceProvider to already have had the BOMs stripped.
- This also simplifies some of the lexer logic.
-
- * parser/Lexer.cpp:
- (JSC::Lexer::setCode):
- (JSC::Lexer::sourceCode):
- * parser/SourceProvider.h:
- (JSC::SourceProvider::SourceProvider):
- (JSC::UStringSourceProvider::create):
- (JSC::UStringSourceProvider::getRange):
- (JSC::UStringSourceProvider::UStringSourceProvider):
- * wtf/text/StringImpl.h:
- (WebCore::StringImpl::copyStringWithoutBOMs):
-
-2010-07-02 Renata Hodovan <reni@inf.u-szeged.hu>
-
- Reviewed by Oliver Hunt.
- [ Updated after rollout. ]
-
- Merged RegExp constructor and RegExp::create methods.
- Both functions are called with three parameters and check whether
- flags (the third param) is given or not.
- Avoid extra hash lookups in RegExpCache::create by passing a pre-computed
- iterator parameter.
- https://bugs.webkit.org/show_bug.cgi?id=41055
-
- * runtime/RegExp.cpp:
- (JSC::RegExp::RegExp):
- * runtime/RegExp.h:
- * runtime/RegExpCache.cpp:
- (JSC::RegExpCache::lookupOrCreate):
- (JSC::RegExpCache::create):
- * runtime/RegExpCache.h:
-
-2010-07-02 Martin Robinson <mrobinson@igalia.com>
-
- Unreviewed. Build fix for GTK+.
-
- Build Lexer.lut.h with the rest of the .lut.h files. Later these should
- all probably be moved to DerivedSources.
-
- * GNUmakefile.am:
-
-2010-06-23 Martin Robinson <mrobinson@igalia.com>
-
- Reviewed by Gustavo Noronha Silva.
-
- [GTK] Separate DerivedSources per-project
- https://bugs.webkit.org/show_bug.cgi?id=41109
-
- Generate JavaScriptCore derived sources in <builddir>/DerivedSources/JavaScriptCore.
-
- * GNUmakefile.am:
-
-2010-07-02 Peter Varga <pvarga@inf.u-szeged.hu>
-
- Reviewed by Oliver Hunt.
-
- The alternativeFrameLocation value is wrong in the emitDisjunction function in
- case of PatternTerm::TypeParentheticalAssertion. This value needs to be
- computed from term.frameLocation instead of term.inputPosition. This mistake caused glibc
- memory corruption in some cases.
- Layout test added for checking of TypeParentheticalAssertion case.
- https://bugs.webkit.org/show_bug.cgi?id=41458
-
- * yarr/RegexInterpreter.cpp:
- (JSC::Yarr::ByteCompiler::emitDisjunction):
-
-2010-07-01 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Maciej Stachowiak.
-
- Add a FixedArray template to encapsulate fixed length arrays
- https://bugs.webkit.org/show_bug.cgi?id=41506
-
- This new type is used in place of fixed length C arrays so
- that debug builds can guard against attempts to go beyond
- the end of the array.
-
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * bytecode/Opcode.cpp:
- (JSC::OpcodeStats::~OpcodeStats):
- * pcre/pcre_compile.cpp:
- (calculateCompiledPatternLength):
- * runtime/Collector.cpp:
- (JSC::Heap::allocateBlock):
- (JSC::Heap::allocate):
- * runtime/Collector.h:
- (JSC::CollectorBitmap::clearAll):
- * runtime/CollectorHeapIterator.h:
- (JSC::CollectorHeapIterator::operator*):
- * runtime/DateInstanceCache.h:
- * runtime/JSString.cpp:
- (JSC::JSString::replaceCharacter):
- * runtime/JSString.h:
- (JSC::RopeBuilder::JSStringFinalizerStruct::):
- * runtime/NumericStrings.h:
- * runtime/RegExpCache.h:
- * runtime/SmallStrings.h:
- (JSC::SmallStrings::singleCharacterStrings):
- * wtf/AVLTree.h:
- * wtf/FixedArray.h: Added.
- (WTF::FixedArray::operator[]):
- (WTF::FixedArray::data):
-
-2010-07-01 Zoltan Herczeg <zherczeg@webkit.org>
-
- Reviewed by Oliver Hunt.
-
- Improve the main lexer switch by mapping input characters to their type
- https://bugs.webkit.org/show_bug.cgi?id=41459
-
- Sunsipder: no change (from 532.9ms to 531.5ms)
- SunSpider --parse-only: 1.025x as fast (from 33.1ms to 32.3ms)
-
- * parser/Lexer.cpp:
- (JSC::):
- (JSC::Lexer::lex):
-
-2010-07-01 Sam Weinig <sam@webkit.org>
-
- Rubber-stamped by Ander Carlsson.
-
- Define HAVE_HOSTED_CORE_ANIMATION on Snow Leopard.
-
- * wtf/Platform.h:
+ Rolled back in r79367 with SnowLeopard Release bot crash fixed.
+ https://bugs.webkit.org/show_bug.cgi?id=54999
+
+ The crash was caused by failure to update the "nextBlock" pointer when
+ removing a block from the list while shrinking. The fix is to update the
+ "nextBlock" pointer.
+
+ This crash was very rare because it only happened in cases where the very
+ first block in the heap contained no marked cells.
-2010-07-01 Gavin Barraclough <barraclough@apple.com>
+2011-02-23 Dan Bernstein <mitz@apple.com>
- Reviewed by Oliver Hunt.
+ Reviewed by Gavin Barraclough.
- Bug 41490 - Add missing operations to MacroAssemblerARMv7
- Also, make single, double, quad register numbers in ARMv7Assembler distinct & strongly typed.
+ Include frame numbers in backtraces.
+ https://bugs.webkit.org/show_bug.cgi?id=55060
- * assembler/ARMv7Assembler.h:
- (JSC::ARMRegisters::):
- (JSC::ARMRegisters::asSingle):
- (JSC::ARMRegisters::asDouble):
- (JSC::VFPImmediate::VFPImmediate):
- (JSC::VFPImmediate::isValid):
- (JSC::VFPImmediate::value):
- (JSC::ARMv7Assembler::singleRegisterMask):
- (JSC::ARMv7Assembler::doubleRegisterMask):
- (JSC::ARMv7Assembler::):
- (JSC::ARMv7Assembler::add_S):
- (JSC::ARMv7Assembler::neg):
- (JSC::ARMv7Assembler::orr_S):
- (JSC::ARMv7Assembler::sub):
- (JSC::ARMv7Assembler::sub_S):
- (JSC::ARMv7Assembler::vadd_F64):
- (JSC::ARMv7Assembler::vcmp_F64):
- (JSC::ARMv7Assembler::vcvt_F64_S32):
- (JSC::ARMv7Assembler::vcvtr_S32_F64):
- (JSC::ARMv7Assembler::vdiv_F64):
- (JSC::ARMv7Assembler::vldr):
- (JSC::ARMv7Assembler::vmov_F64_0):
- (JSC::ARMv7Assembler::vmov):
- (JSC::ARMv7Assembler::vmul_F64):
- (JSC::ARMv7Assembler::vstr):
- (JSC::ARMv7Assembler::vsub_F64):
- (JSC::ARMv7Assembler::vcvt):
- (JSC::ARMv7Assembler::vmem):
- * assembler/AbstractMacroAssembler.h:
- * assembler/MacroAssemblerARM.h:
- * assembler/MacroAssemblerARMv7.h:
- (JSC::MacroAssemblerARMv7::fpTempRegisterAsSingle):
- (JSC::MacroAssemblerARMv7::neg32):
- (JSC::MacroAssemblerARMv7::loadDouble):
- (JSC::MacroAssemblerARMv7::divDouble):
- (JSC::MacroAssemblerARMv7::convertInt32ToDouble):
- (JSC::MacroAssemblerARMv7::branchConvertDoubleToInt32):
- (JSC::MacroAssemblerARMv7::zeroDouble):
- (JSC::MacroAssemblerARMv7::branchOr32):
- (JSC::MacroAssemblerARMv7::set32):
- (JSC::MacroAssemblerARMv7::set8):
- * assembler/MacroAssemblerMIPS.h:
- * assembler/MacroAssemblerX86Common.h:
+ * wtf/Assertions.cpp:
-2010-07-01 Oliver Hunt <oliver@apple.com>
+2011-02-23 Xan Lopez <xlopez@igalia.com>
- Reviewed by Geoff Garen.
+ Reviewed by Gavin Barraclough.
- Improve reentrancy logic in polymorphic cache stubs
- <https://bugs.webkit.org/show_bug.cgi?id=41482>
- <rdar://problem/8094380>
+ latest jsc for armv7 crashes in sunspider tests
+ https://bugs.webkit.org/show_bug.cgi?id=54667
- Make the polymorphic cache stubs handle reentrancy
- better.
+ Update JIT offset values in ARMv7 after r78732. Fixes crashes in
+ SunSpider and JavaScript tests.
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- (JSC::getPolymorphicAccessStructureListSlot):
+ * jit/JIT.h: update values.
-2010-07-01 Antti Koivisto <koivisto@iki.fi>
+2011-02-23 Sheriff Bot <webkit.review.bot@gmail.com>
- Revert accidental commit.
+ Unreviewed, rolling out r79418.
+ http://trac.webkit.org/changeset/79418
+ https://bugs.webkit.org/show_bug.cgi?id=55043
- * runtime/Collector.cpp:
- (JSC::Heap::allocateBlock):
+ "breaks shlib linux build" (Requested by morrita on #webkit).
-2010-06-30 Darin Adler <darin@apple.com>
+ * JavaScriptCore.gyp/JavaScriptCore.gyp:
+ * JavaScriptCore.gypi:
- Reviewed by Adam Barth.
+2011-02-23 Patrick Gansterer <paroga@webkit.org>
- Add assertion, off by default, for when you forget to do adoptRef
- https://bugs.webkit.org/show_bug.cgi?id=41422
+ Reviewed by Alexey Proskuryakov.
- * wtf/PassRefPtr.h: Tweaked formatting. Added a new adopted
- function, called on the pointer by adoptRef, with an empty inline
- default version, meant to be overloaded. Unified the inlining
- with a macro named REF_DEREF_INLINE to make it clearer what's
- going on in the refIfNotNull/derefIfNotNull functions. Renamed
- releaseRef to leakRef, but left the old name in for compatibility
- for now.
+ Use DEFINE_STATIC_LOCAL for ignoreSetMutex in Structure.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=54831
- * wtf/RefCounted.h: Added code to require adoption and assert if
- you don't call adoptRef. For now, it is turned off because of the
- LOOSE_REF_COUNTED define in this header. Later we can turn it on
- once we get everything working without asserting.
+ * runtime/InitializeThreading.cpp:
+ (JSC::initializeThreadingOnce):
+ * runtime/Structure.cpp:
+ (JSC::ignoreSetMutex):
+ (JSC::Structure::Structure):
+ (JSC::Structure::~Structure):
+ (JSC::Structure::initializeThreading):
+ * runtime/Structure.h:
-2010-06-29 Michael Saboff <msaboff@apple.com>
+2011-02-23 Patrick Gansterer <paroga@webkit.org>
Reviewed by Darin Adler.
- Bug 41238 - RegExp performance slow on Dromaeo benchmark
-
- Other javascript engines appear to cache prior results of regular
- expression operations.
-
- Suggest adding some sort of caching mechanism to regular expression
- processing.
-
- Added a single entry cache of match() results to RegExp class.
-
- Also added performance improvements to UString == operator.
- First check the impls for equality. Then get the length of
- each of the non-null impls. Next check the sizes for equality.
- Then check the data for the case of different impls that point
- to the same data (most likely due to substrings from the beginning of
- another string). Lastly we check the underlying data for equality.
-
- * runtime/RegExp.cpp:
- (JSC::RegExp::RegExp):
- (JSC::RegExp::match):
- * runtime/RegExp.h:
- * runtime/UString.h:
- (JSC::operator==):
-
-2010-06-29 Nathan Lawrence <nlawrence@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- WTF::HashSet iterators are quasi-mutable. Changing the value through
- dereferencing an iterator will not change the behavior of methods like
- contains or find, but will change the behavior of iterating.
-
- * wtf/HashSet.h:
- (WTF::::begin):
- (WTF::::end):
- (WTF::::find):
- (WTF::::remove):
- * wtf/HashTable.h:
-
-2010-06-29 Martin Robinson <mrobinson@igalia.com>
-
- Reviewed by Xan Lopez.
-
- [GTK] Clean up the source lists in the GNUMakefile.am files
- https://bugs.webkit.org/show_bug.cgi?id=41229
-
- Clean up the GNUMakefile.am a little bit. Alphabetize and conglomerate
- the source lists.
-
- * GNUmakefile.am:
-
-2010-06-29 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
-
- Reviewed by Kenneth Rohde Christiansen.
-
- [Qt] Fix QtScript build after QScriptValuePrivate ctor changes
- https://bugs.webkit.org/show_bug.cgi?id=41307
-
- * qt/api/qscriptvalue_p.h:
- (QScriptValuePrivate::prototype):
- * qt/benchmarks/qscriptengine/qscriptengine.pro:
-
-2010-06-28 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
-
- Reviewed by Kenneth Rohde Christiansen.
-
- [Qt] QScriptEngine API should contain a newArray function
- https://bugs.webkit.org/show_bug.cgi?id=39115
-
- * qt/api/qscriptengine.cpp:
- (QScriptEngine::newArray):
- * qt/api/qscriptengine.h:
- * qt/api/qscriptengine_p.cpp:
- (QScriptEnginePrivate::newArray):
- * qt/api/qscriptengine_p.h:
- * qt/tests/qscriptengine/tst_qscriptengine.cpp:
- (tst_QScriptEngine::newArray):
-
-2010-06-28 Xan Lopez <xlopez@igalia.com>
-
- Reviewed by Gustavo Noronha.
-
- Install jsc as jsc-X where X is the major API version to allow
- parallel installation of both GTK+ 2.x and 3.x versions.
+ Rename PLATFORM(CF) to USE(CF)
+ https://bugs.webkit.org/show_bug.cgi?id=53540
- * GNUmakefile.am:
-
-2010-06-28 John Gregg <johnnyg@google.com>
-
- Reviewed by Kent Tamura.
-
- add ENABLE_DIRECTORY_UPLOAD build support
- https://bugs.webkit.org/show_bug.cgi?id=41100
-
- * Configurations/FeatureDefines.xcconfig:
-
-2010-06-28 Xan Lopez <xlopez@igalia.com>
-
- Revert to build jsc, since the tests expect this.
-
- * GNUmakefile.am:
-
-2010-06-28 Zoltan Herczeg <zherczeg@webkit.org>
-
- Reviewed by Oliver Hunt.
-
- Only one character lookahead should be enough for the lexer
- https://bugs.webkit.org/show_bug.cgi?id=41213
-
- The lexer had 4 character lookahead before, which required
- a complex shifting mechanism. This can be improved by using
- only one character lookahead for most decisions, and a
- peek() function as a fallback when it is absolutely necessary.
-
- * parser/Lexer.cpp:
- (JSC::Lexer::currentCharacter):
- (JSC::Lexer::currentOffset):
- (JSC::Lexer::setCode):
- (JSC::Lexer::shift):
- (JSC::Lexer::peek):
- (JSC::Lexer::getUnicodeCharacter):
- (JSC::Lexer::shiftLineTerminator):
- (JSC::Lexer::lastTokenWasRestrKeyword):
- (JSC::Lexer::lex):
- (JSC::Lexer::scanRegExp):
- (JSC::Lexer::skipRegExp):
- * parser/Lexer.h:
-
-2010-06-28 Lucas De Marchi <lucas.demarchi@profusion.mobi>
-
- Unreviewed build fix.
-
- [EFL] Build fix for latest version of Ecore library.
- Ecore recently changed return type of callbacks from int to Eina_Bool.
-
- * wtf/efl/MainThreadEfl.cpp:
- (WTF::timeoutFired): Return Eina_Bool instead of int.
-
-2010-06-28 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
-
- Reviewed by Kenneth Rohde Christiansen.
-
- [Qt] QScriptValue should have API for accessing object properties
- https://bugs.webkit.org/show_bug.cgi?id=40903
-
- Make possible to access properties inside QScriptValues. While this
- still doesn't support the ResolveLocal parameter, it is already useful
- for testing the API.
-
- The tests from upstream QtScript weren't imported since most of them
- depend on the setProperty() function as well. A simple test was created.
-
- * qt/api/qscriptvalue.cpp:
- (QScriptValue::property):
- * qt/api/qscriptvalue.h:
- (QScriptValue::):
- * qt/api/qscriptvalue_p.h:
- (QScriptValuePrivate::property):
- * qt/tests/qscriptvalue/tst_qscriptvalue.cpp:
- (tst_QScriptValue::propertySimple):
- * qt/tests/qscriptvalue/tst_qscriptvalue.h:
-
-2010-06-28 Xan Lopez <xlopez@igalia.com>
-
- Reviewed by Gustavo Noronha.
-
- [GTK] Add support for GTK+3
- https://bugs.webkit.org/show_bug.cgi?id=41253
-
- Suffix jsc with the API version of the library, so that
- libwebkitgtk 1.x and 3.x can install jsc.
-
- * GNUmakefile.am:
-
-2010-06-27 Kwang Yul Seo <skyul@company100.net>
-
- Reviewed by Kent Tamura.
-
- [BREWMP] Turn ENABLE(SINGLE_THREADED) on.
- https://bugs.webkit.org/show_bug.cgi?id=41135
-
- Brew MP does not support preemptive multi-threading.
- Disable threading for Brew MP.
-
- * wtf/Platform.h:
-
-2010-06-26 Tony Gentilcore <tonyg@chromium.org>
-
- Reviewed by Dimitri Glazkov.
-
- Add an ENABLE_WEB_TIMING option for enabling Web Timing support.
- https://bugs.webkit.org/show_bug.cgi?id=38924
-
- * Configurations/FeatureDefines.xcconfig:
-
-2010-06-25 Nathan Lawrence <nlawrence@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- We assume in testapi.c that the value aHeapRef refers to will not be
- moved. When we have movable objects, this will not be the case.
-
- * API/tests/testapi.c:
- (main):
-
-2010-06-25 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r61924.
- http://trac.webkit.org/changeset/61924
- https://bugs.webkit.org/show_bug.cgi?id=41240
-
- It was rolled out, but cq+ wasn't removed (Requested by Ossy_
- on #webkit).
-
- * runtime/RegExp.cpp:
- (JSC::RegExp::RegExp):
- (JSC::RegExp::create):
- * runtime/RegExp.h:
- * runtime/RegExpCache.cpp:
- (JSC::RegExpCache::lookupOrCreate):
- (JSC::RegExpCache::create):
- * runtime/RegExpCache.h:
-
-2010-06-25 Renata Hodovan <reni@inf.u-szeged.hu>
-
- Reviewed by Geoffrey Garen.
-
- Merge RegExp constructor and RegExp::create methods into one.
- Both of function are called with tree parameters and check whether
- flags (the third param) is given or not.
- Simplify hash lookups in RegExpCache::create with giving them an extra
- iterator parameter.
- https://bugs.webkit.org/show_bug.cgi?id=41055
-
- * runtime/RegExp.cpp:
- (JSC::RegExp::RegExp):
- * runtime/RegExp.h:
- * runtime/RegExpCache.cpp:
- (JSC::RegExpCache::lookupOrCreate):
- (JSC::RegExpCache::create):
- * runtime/RegExpCache.h:
-
-2010-06-25 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
-
- Reviewed by Simon Hausmann.
-
- Introduce QtScript benchmarks.
-
- The QtScript performance should be tested regularly. The patch introduces
- micro benchmarks for existing API.
-
- [Qt] Performance of the QtScript API is not tested.
- https://bugs.webkit.org/show_bug.cgi?id=40911
-
- * qt/benchmarks/benchmarks.pri: Copied from JavaScriptCore/qt/tests/tests.pri.
- * qt/benchmarks/benchmarks.pro: Added.
- * qt/benchmarks/qscriptengine/qscriptengine.pro: Added.
- * qt/benchmarks/qscriptengine/tst_qscriptengine.cpp: Added.
- (tst_QScriptEngine::checkSyntax_data):
- (tst_QScriptEngine::checkSyntax):
- (tst_QScriptEngine::constructor):
- (tst_QScriptEngine::evaluateString_data):
- (tst_QScriptEngine::evaluateString):
- (tst_QScriptEngine::evaluateProgram_data):
- (tst_QScriptEngine::evaluateProgram):
- (tst_QScriptEngine::newObject):
- (tst_QScriptEngine::nullValue):
- (tst_QScriptEngine::undefinedValue):
- (tst_QScriptEngine::globalObject):
- (tst_QScriptEngine::toStringHandle):
- * qt/benchmarks/qscriptvalue/qscriptvalue.pro: Added.
- * qt/benchmarks/qscriptvalue/tst_qscriptvalue.cpp: Added.
- (tst_QScriptValue::tst_QScriptValue):
- (tst_QScriptValue::~tst_QScriptValue):
- (tst_QScriptValue::values_data):
- (tst_QScriptValue::ctorBool):
- (tst_QScriptValue::ctorReal):
- (tst_QScriptValue::ctorNumber):
- (tst_QScriptValue::ctorQString):
- (tst_QScriptValue::ctorCString):
- (tst_QScriptValue::ctorSpecial):
- (tst_QScriptValue::ctorQScriptValue):
- (tst_QScriptValue::isValid_data):
- (tst_QScriptValue::isValid):
- (tst_QScriptValue::isBool_data):
- (tst_QScriptValue::isBool):
- (tst_QScriptValue::isNumber_data):
- (tst_QScriptValue::isNumber):
- (tst_QScriptValue::isFunction_data):
- (tst_QScriptValue::isFunction):
- (tst_QScriptValue::isNull_data):
- (tst_QScriptValue::isNull):
- (tst_QScriptValue::isString_data):
- (tst_QScriptValue::isString):
- (tst_QScriptValue::isUndefined_data):
- (tst_QScriptValue::isUndefined):
- (tst_QScriptValue::isObject_data):
- (tst_QScriptValue::isObject):
- (tst_QScriptValue::isError_data):
- (tst_QScriptValue::isError):
- (tst_QScriptValue::toString_data):
- (tst_QScriptValue::toString):
- (tst_QScriptValue::toNumber_data):
- (tst_QScriptValue::toNumber):
- (tst_QScriptValue::toBool_data):
- (tst_QScriptValue::toBool):
- (tst_QScriptValue::toInteger_data):
- (tst_QScriptValue::toInteger):
- (tst_QScriptValue::toInt32_data):
- (tst_QScriptValue::toInt32):
- (tst_QScriptValue::toUInt32_data):
- (tst_QScriptValue::toUInt32):
- (tst_QScriptValue::toUInt16_data):
- (tst_QScriptValue::toUInt16):
- (tst_QScriptValue::toObject_data):
- (tst_QScriptValue::toObject):
- (tst_QScriptValue::equals_data):
- (tst_QScriptValue::equals):
- (tst_QScriptValue::strictlyEquals_data):
- (tst_QScriptValue::strictlyEquals):
- (tst_QScriptValue::instanceOf_data):
- (tst_QScriptValue::instanceOf):
-
-2010-06-25 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- Remove old js parser
- https://bugs.webkit.org/show_bug.cgi?id=41222
-
- Remove the old yacc parser, this also solves the tiger problem. Which
- was a conflict between yacc generated token values and those in the
- custom parser
-
- * Android.mk:
- * CMakeLists.txt:
- * DerivedSources.make:
- * DerivedSources.pro:
- * GNUmakefile.am:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * parser/Grammar.y: Removed.
- * parser/JSParser.cpp:
- * parser/JSParser.h:
- * parser/Lexer.cpp:
- * parser/NodeConstructors.h:
- (JSC::Node::Node):
- * parser/Parser.cpp:
- (JSC::Parser::parse):
+ * runtime/DatePrototype.cpp:
+ * runtime/GCActivityCallbackCF.cpp:
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::JSGlobalData):
+ * wtf/CurrentTime.cpp:
* wtf/Platform.h:
+ * wtf/text/AtomicString.h:
+ * wtf/text/StringImpl.h:
+ (WTF::StringImpl::computeHash):
+ * wtf/text/WTFString.h:
+ * wtf/unicode/icu/CollatorICU.cpp:
+ (WTF::Collator::userDefault):
-2010-06-25 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
-
- Reviewed by Simon Hausmann.
-
- New QtScript API; setPrototype() and prototype().
-
- This patch implements QScriptValue's prototype accessors.
-
- [Qt] QScriptValue should have accessors to a prototype.
- https://bugs.webkit.org/show_bug.cgi?id=39356
-
- * qt/api/qscriptvalue.cpp:
- (QScriptValue::prototype):
- (QScriptValue::setPrototype):
- * qt/api/qscriptvalue.h:
- * qt/api/qscriptvalue_p.h:
- (QScriptValuePrivate::prototype):
- (QScriptValuePrivate::setPrototype):
- * qt/tests/qscriptvalue/tst_qscriptvalue.cpp:
- (tst_QScriptValue::getSetPrototype):
- * qt/tests/qscriptvalue/tst_qscriptvalue.h:
-
-2010-06-25 Lucas De Marchi <lucas.demarchi@profusion.mobi>
-
- Reviewed by Kenneth Rohde Christiansen.
-
- [CMake] Add option to enable JIT.
- JIT is disabled by default, but now it's possible to enable it through
- an option to CMake: -DENABLE_JIT will enable it.
- https://bugs.webkit.org/show_bug.cgi?id=40936
-
- * CMakeLists.txt: Add missing files and re-sort.
-
-2010-06-25 Lucas De Marchi <lucas.demarchi@profusion.mobi>
-
- Reviewed by Gustavo Noronha Silva.
-
- [CMake] Remove unused variable in EFL build system. It was previously
- being used to set the flags of each port but it was superseded by
- other flags.
- https://bugs.webkit.org/show_bug.cgi?id=40931
-
- * jsc/CMakeLists.txt:
-
-2010-06-25 Nathan Lawrence <nlawrence@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- Aligning AssemblerBuffer to 128 bytes gives a 0.4% speedup on
- sunspider.
-
- * assembler/AssemblerBuffer.h:
- (JSC::AssemblerBuffer::AssemblerBuffer):
-
-2010-06-25 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r61842.
- http://trac.webkit.org/changeset/61842
- https://bugs.webkit.org/show_bug.cgi?id=41208
-
- It broke Windows build (Requested by Ossy_ on #webkit).
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * wtf/OwnPtrCommon.h:
- * wtf/brew/OwnPtrBrew.h: Removed.
- * wtf/win/OwnPtrWin.h: Removed.
-
-2010-06-25 Sheriff Bot <webkit.review.bot@gmail.com>
+2011-02-23 Fumitoshi Ukai <ukai@chromium.org>
- Unreviewed, rolling out r61833.
- http://trac.webkit.org/changeset/61833
- https://bugs.webkit.org/show_bug.cgi?id=41205
+ Unreviewed build fix for Windows.
- It broke Leopard and GTK (Requested by Ossy_ on #webkit).
+ WebSocket uses insecure random numbers
+ https://bugs.webkit.org/show_bug.cgi?id=54714
- * runtime/RegExp.cpp:
- (JSC::RegExp::RegExp):
- (JSC::RegExp::create):
- * runtime/RegExp.h:
- * runtime/RegExpCache.cpp:
- (JSC::RegExpCache::lookupOrCreate):
- (JSC::RegExpCache::create):
- * runtime/RegExpCache.h:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Export WTF::cryptographicallyRandomNumber()
-2010-06-25 Kwang Yul Seo <skyul@company100.net>
+2011-02-23 Fumitoshi Ukai <ukai@chromium.org>
Reviewed by Adam Barth.
- Change OwnPtrCommon to include platform-specific headers
- https://bugs.webkit.org/show_bug.cgi?id=40279
-
- Adding new type to OwnPtrCommon needlessly causes all ports to do full rebuilds.
- Change OwnPtrCommon to include platform-specific headers to avoid all ports rebuilds.
-
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * wtf/OwnPtrCommon.h:
- * wtf/brew/OwnPtrBrew.h: Added.
- * wtf/win/OwnPtrWin.h: Added.
-
-2010-06-25 Patrick Gansterer <paroga@paroga.com>
-
- Reviewed by Darin Adler.
-
- Add the possibility for a head and footer section to create_jit_stubs.
- https://bugs.webkit.org/show_bug.cgi?id=36050
-
- * create_jit_stubs:
-
-2010-06-24 Renata Hodovan <reni@inf.u-szeged.hu>
-
- Reviewed by Geoffrey Garen.
-
- Merge RegExp constructor and RegExp::create methods into one.
- Both of function are called with tree parameters and check whether
- flags (the third param) is given or not.
- Simplify hash lookups in RegExpCache::create with giving them an extra
- iterator parameter.
- https://bugs.webkit.org/show_bug.cgi?id=41055
-
- * runtime/RegExp.cpp:
- (JSC::RegExp::RegExp):
- * runtime/RegExp.h:
- * runtime/RegExpCache.cpp:
- (JSC::RegExpCache::lookupOrCreate):
- (JSC::RegExpCache::create):
- * runtime/RegExpCache.h:
-
-2010-06-24 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Maciej Stachowiak.
-
- Incorrect use of '+ 4' and 0 instead of tag and payload offsets in JSValue32_64
- https://bugs.webkit.org/show_bug.cgi?id=41193
-
- I noticed a use of '+ 4' in some of the 32_64 code paths and realised there
- were a few places where endianness was being hardcoded. This patch fixes
- the errors i could find through code inspection.
-
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::emit_op_resolve_global):
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::emit_op_get_by_val):
- (JSC::JIT::emit_op_put_by_val):
- (JSC::JIT::compileGetDirectOffset):
- (JSC::JIT::privateCompilePutByIdTransition):
- (JSC::JIT::patchGetByIdSelf):
- (JSC::JIT::patchPutByIdReplace):
-
-2010-06-24 Oliver Hunt <oliver@apple.com>
-
- Build fix
-
- Temporarily get the tiger bot working again by disabling the
- new JS parser. GCC on tiger is miscompiling the parser and
- I don't have access to a tiger machine right now.
-
- * wtf/Platform.h:
+ WebSocket uses insecure random numbers
+ https://bugs.webkit.org/show_bug.cgi?id=54714
- 2010-06-21 Nathan Lawrence <nlawrence@apple.com>
-
- Reviewed by Geoff Garen.
-
- https://bugs.webkit.org/show_bug.cgi?id=40128
- Fixed broken debug functionality.
-
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::dumpRegisters):
- Fixed to work with updated call frame.
- * runtime/JSImmediate.h:
- (JSC::JSValue::isCell):
- Added assert for aligned cell.
- * runtime/JSValue.cpp:
- (JSC::JSValue::description):
- Fixed to work with current JSValue implementation.
- * runtime/JSZombie.cpp:
- (JSC::JSZombie::leakedZombieStructure):
- JSombies compile again.
-
-2010-06-24 Leandro Pereira <leandro@profusion.mobi>
-
- Unreviewed build fix.
-
- * CMakeLists.txt: Add JSParser.cpp.
-
-2010-06-24 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Maciej Stachowiak.
+ * JavaScriptCore.exp: Export WTF::cryptographicallyRandomNumber()
- Single character string replacement may replace too many characters
- https://bugs.webkit.org/show_bug.cgi?id=41138
- <rdar://problem/8097496>
+2011-02-22 Adam Barth <abarth@webkit.org>
- Simple fix to stop the rope path of single character replacement
- once the first replacement occurs.
-
- * runtime/JSString.cpp:
- (JSC::JSString::replaceCharacter):
-
-2010-06-24 Gabor Loki <loki@webkit.org>
-
- Reviewed by Gavin Barraclough.
-
- Fix the length of instruction stream controlled by constant pool
- https://bugs.webkit.org/show_bug.cgi?id=40293
-
- The initial/maximum length of instruction stream (m_maxDistance) should
- be set when the first constant arrives to the constant pool. Otherwise
- the constant pool could be placed into an uninterrupted sequence.
-
- * assembler/AssemblerBufferWithConstantPool.h:
- (JSC::):
-
-2010-06-24 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- We assume bytecodeOffset will always return a value > 1,
- so we adjust the failure case to return 1 instead of 0.
-
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::bytecodeOffset):
+ Reviewed by Ojan Vafai.
-2010-06-23 Oliver Hunt <oliver@apple.com>
+ Add missing files to JavaScriptCore.gypi
+ https://bugs.webkit.org/show_bug.cgi?id=55020
- Reviewed by Gavin Barraclough.
+ gypi files are supposed to list every file under the sun. This patch
+ adds some missing files and sorts the rest.
- Custom-written JavaScript parser
- https://bugs.webkit.org/show_bug.cgi?id=34019
+ * JavaScriptCore.gypi:
- Implement a recursive descent parser similar to that used by V8 and
- SpiderMonkey. Greater than 2x improvement in SunSpider parsing tests.
+2011-02-22 Sheriff Bot <webkit.review.bot@gmail.com>
- The parser consists of a JSParser class that uses a TreeBuilder to actually
- build the AST. There are currently two builders -- the ASTBuilder and
- SyntaxChecker which separate the job of building an AST for code generation
- and simply checking syntactic correctness.
+ Unreviewed, rolling out r79367.
+ http://trac.webkit.org/changeset/79367
+ https://bugs.webkit.org/show_bug.cgi?id=55012
- There's still some less than ideal code remaining in the parser to allow
- us to retain the existing lexing code with minimal changes. We'll tidy
- this up at a later date.
+ all layout tests are crashing on Snow Leopard (Requested by
+ rniwa on #webkit).
* GNUmakefile.am:
* JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
- * parser/ASTBuilder.h: Added.
- (JSC::ASTBuilder::BinaryOpInfo::BinaryOpInfo):
- (JSC::ASTBuilder::AssignmentInfo::AssignmentInfo):
- (JSC::ASTBuilder::ASTBuilder):
- (JSC::ASTBuilder::createSourceElements):
- (JSC::ASTBuilder::varDeclarations):
- (JSC::ASTBuilder::funcDeclarations):
- (JSC::ASTBuilder::features):
- (JSC::ASTBuilder::numConstants):
- (JSC::ASTBuilder::appendToComma):
- (JSC::ASTBuilder::createCommaExpr):
- (JSC::ASTBuilder::createLogicalNot):
- (JSC::ASTBuilder::createUnaryPlus):
- (JSC::ASTBuilder::createVoid):
- (JSC::ASTBuilder::thisExpr):
- (JSC::ASTBuilder::createResolve):
- (JSC::ASTBuilder::createObjectLiteral):
- (JSC::ASTBuilder::createArray):
- (JSC::ASTBuilder::createNumberExpr):
- (JSC::ASTBuilder::createString):
- (JSC::ASTBuilder::createBoolean):
- (JSC::ASTBuilder::createNull):
- (JSC::ASTBuilder::createBracketAccess):
- (JSC::ASTBuilder::createDotAccess):
- (JSC::ASTBuilder::createRegex):
- (JSC::ASTBuilder::createNewExpr):
- (JSC::ASTBuilder::createConditionalExpr):
- (JSC::ASTBuilder::createAssignResolve):
- (JSC::ASTBuilder::createFunctionExpr):
- (JSC::ASTBuilder::createFunctionBody):
- (JSC::ASTBuilder::createGetterOrSetterProperty):
- (JSC::ASTBuilder::createArguments):
- (JSC::ASTBuilder::createArgumentsList):
- (JSC::ASTBuilder::createProperty):
- (JSC::ASTBuilder::createPropertyList):
- (JSC::ASTBuilder::createElementList):
- (JSC::ASTBuilder::createFormalParameterList):
- (JSC::ASTBuilder::createClause):
- (JSC::ASTBuilder::createClauseList):
- (JSC::ASTBuilder::setUsesArguments):
- (JSC::ASTBuilder::createFuncDeclStatement):
- (JSC::ASTBuilder::createBlockStatement):
- (JSC::ASTBuilder::createExprStatement):
- (JSC::ASTBuilder::createIfStatement):
- (JSC::ASTBuilder::createForLoop):
- (JSC::ASTBuilder::createForInLoop):
- (JSC::ASTBuilder::createEmptyStatement):
- (JSC::ASTBuilder::createVarStatement):
- (JSC::ASTBuilder::createReturnStatement):
- (JSC::ASTBuilder::createBreakStatement):
- (JSC::ASTBuilder::createContinueStatement):
- (JSC::ASTBuilder::createTryStatement):
- (JSC::ASTBuilder::createSwitchStatement):
- (JSC::ASTBuilder::createWhileStatement):
- (JSC::ASTBuilder::createDoWhileStatement):
- (JSC::ASTBuilder::createLabelStatement):
- (JSC::ASTBuilder::createWithStatement):
- (JSC::ASTBuilder::createThrowStatement):
- (JSC::ASTBuilder::createDebugger):
- (JSC::ASTBuilder::createConstStatement):
- (JSC::ASTBuilder::appendConstDecl):
- (JSC::ASTBuilder::appendStatement):
- (JSC::ASTBuilder::addVar):
- (JSC::ASTBuilder::combineCommaNodes):
- (JSC::ASTBuilder::evalCount):
- (JSC::ASTBuilder::appendBinaryExpressionInfo):
- (JSC::ASTBuilder::operatorStackPop):
- (JSC::ASTBuilder::operatorStackHasHigherPrecedence):
- (JSC::ASTBuilder::getFromOperandStack):
- (JSC::ASTBuilder::shrinkOperandStackBy):
- (JSC::ASTBuilder::appendBinaryOperation):
- (JSC::ASTBuilder::operatorStackAppend):
- (JSC::ASTBuilder::popOperandStack):
- (JSC::ASTBuilder::appendUnaryToken):
- (JSC::ASTBuilder::unaryTokenStackLastType):
- (JSC::ASTBuilder::unaryTokenStackLastStart):
- (JSC::ASTBuilder::unaryTokenStackRemoveLast):
- (JSC::ASTBuilder::assignmentStackAppend):
- (JSC::ASTBuilder::createAssignment):
- (JSC::ASTBuilder::Scope::Scope):
- (JSC::ASTBuilder::setExceptionLocation):
- (JSC::ASTBuilder::incConstants):
- (JSC::ASTBuilder::usesThis):
- (JSC::ASTBuilder::usesCatch):
- (JSC::ASTBuilder::usesClosures):
- (JSC::ASTBuilder::usesArguments):
- (JSC::ASTBuilder::usesAssignment):
- (JSC::ASTBuilder::usesWith):
- (JSC::ASTBuilder::usesEval):
- (JSC::ASTBuilder::createNumber):
- (JSC::ASTBuilder::makeTypeOfNode):
- (JSC::ASTBuilder::makeDeleteNode):
- (JSC::ASTBuilder::makeNegateNode):
- (JSC::ASTBuilder::makeBitwiseNotNode):
- (JSC::ASTBuilder::makeMultNode):
- (JSC::ASTBuilder::makeDivNode):
- (JSC::ASTBuilder::makeAddNode):
- (JSC::ASTBuilder::makeSubNode):
- (JSC::ASTBuilder::makeLeftShiftNode):
- (JSC::ASTBuilder::makeRightShiftNode):
- (JSC::ASTBuilder::makeFunctionCallNode):
- (JSC::ASTBuilder::makeBinaryNode):
- (JSC::ASTBuilder::makeAssignNode):
- (JSC::ASTBuilder::makePrefixNode):
- (JSC::ASTBuilder::makePostfixNode):
- * parser/JSParser.cpp: Added.
- (JSC::JSParser::AllowInOverride::AllowInOverride):
- (JSC::JSParser::AllowInOverride::~AllowInOverride):
- (JSC::JSParser::token):
- (JSC::JSParser::next):
- (JSC::JSParser::consume):
- (JSC::JSParser::match):
- (JSC::JSParser::tokenStart):
- (JSC::JSParser::tokenLine):
- (JSC::JSParser::tokenEnd):
- (JSC::JSParser::):
- (JSC::JSParser::autoSemiColon):
- (JSC::JSParser::canRecurse):
- (JSC::JSParser::lastTokenEnd):
- (JSC::jsParse):
- (JSC::JSParser::JSParser):
- (JSC::JSParser::parseProgram):
- (JSC::JSParser::allowAutomaticSemicolon):
- (JSC::JSParser::parseSourceElements):
- (JSC::JSParser::parseVarDeclaration):
- (JSC::JSParser::parseConstDeclaration):
- (JSC::JSParser::parseDoWhileStatement):
- (JSC::JSParser::parseWhileStatement):
- (JSC::JSParser::parseVarDeclarationList):
- (JSC::JSParser::parseConstDeclarationList):
- (JSC::JSParser::parseForStatement):
- (JSC::JSParser::parseBreakStatement):
- (JSC::JSParser::parseContinueStatement):
- (JSC::JSParser::parseReturnStatement):
- (JSC::JSParser::parseThrowStatement):
- (JSC::JSParser::parseWithStatement):
- (JSC::JSParser::parseSwitchStatement):
- (JSC::JSParser::parseSwitchClauses):
- (JSC::JSParser::parseSwitchDefaultClause):
- (JSC::JSParser::parseTryStatement):
- (JSC::JSParser::parseDebuggerStatement):
- (JSC::JSParser::parseBlockStatement):
- (JSC::JSParser::parseStatement):
- (JSC::JSParser::parseFormalParameters):
- (JSC::JSParser::parseFunctionBody):
- (JSC::JSParser::parseFunctionInfo):
- (JSC::JSParser::parseFunctionDeclaration):
- (JSC::JSParser::parseExpressionOrLabelStatement):
- (JSC::JSParser::parseExpressionStatement):
- (JSC::JSParser::parseIfStatement):
- (JSC::JSParser::parseExpression):
- (JSC::JSParser::parseAssignmentExpression):
- (JSC::JSParser::parseConditionalExpression):
- (JSC::isUnaryOp):
- (JSC::JSParser::isBinaryOperator):
- (JSC::JSParser::parseBinaryExpression):
- (JSC::JSParser::parseProperty):
- (JSC::JSParser::parseObjectLiteral):
- (JSC::JSParser::parseArrayLiteral):
- (JSC::JSParser::parsePrimaryExpression):
- (JSC::JSParser::parseArguments):
- (JSC::JSParser::parseMemberExpression):
- (JSC::JSParser::parseUnaryExpression):
- * parser/JSParser.h: Added.
- (JSC::):
- (JSC::JSTokenInfo::JSTokenInfo):
- * parser/Lexer.cpp:
- (JSC::Lexer::lex):
- * parser/Lexer.h:
- (JSC::Lexer::setLastLineNumber):
- (JSC::Lexer::lastLineNumber):
- * parser/NodeConstructors.h:
- (JSC::Node::Node):
- * parser/Parser.cpp:
- (JSC::Parser::parse):
- * parser/SyntaxChecker.h: Added.
- (JSC::SyntaxChecker::SyntaxChecker):
- (JSC::SyntaxChecker::createSourceElements):
- (JSC::SyntaxChecker::makeFunctionCallNode):
- (JSC::SyntaxChecker::appendToComma):
- (JSC::SyntaxChecker::createCommaExpr):
- (JSC::SyntaxChecker::makeAssignNode):
- (JSC::SyntaxChecker::makePrefixNode):
- (JSC::SyntaxChecker::makePostfixNode):
- (JSC::SyntaxChecker::makeTypeOfNode):
- (JSC::SyntaxChecker::makeDeleteNode):
- (JSC::SyntaxChecker::makeNegateNode):
- (JSC::SyntaxChecker::makeBitwiseNotNode):
- (JSC::SyntaxChecker::createLogicalNot):
- (JSC::SyntaxChecker::createUnaryPlus):
- (JSC::SyntaxChecker::createVoid):
- (JSC::SyntaxChecker::thisExpr):
- (JSC::SyntaxChecker::createResolve):
- (JSC::SyntaxChecker::createObjectLiteral):
- (JSC::SyntaxChecker::createArray):
- (JSC::SyntaxChecker::createNumberExpr):
- (JSC::SyntaxChecker::createString):
- (JSC::SyntaxChecker::createBoolean):
- (JSC::SyntaxChecker::createNull):
- (JSC::SyntaxChecker::createBracketAccess):
- (JSC::SyntaxChecker::createDotAccess):
- (JSC::SyntaxChecker::createRegex):
- (JSC::SyntaxChecker::createNewExpr):
- (JSC::SyntaxChecker::createConditionalExpr):
- (JSC::SyntaxChecker::createAssignResolve):
- (JSC::SyntaxChecker::createFunctionExpr):
- (JSC::SyntaxChecker::createFunctionBody):
- (JSC::SyntaxChecker::createArguments):
- (JSC::SyntaxChecker::createArgumentsList):
- (JSC::SyntaxChecker::createProperty):
- (JSC::SyntaxChecker::createPropertyList):
- (JSC::SyntaxChecker::createElementList):
- (JSC::SyntaxChecker::createFormalParameterList):
- (JSC::SyntaxChecker::createClause):
- (JSC::SyntaxChecker::createClauseList):
- (JSC::SyntaxChecker::setUsesArguments):
- (JSC::SyntaxChecker::createFuncDeclStatement):
- (JSC::SyntaxChecker::createBlockStatement):
- (JSC::SyntaxChecker::createExprStatement):
- (JSC::SyntaxChecker::createIfStatement):
- (JSC::SyntaxChecker::createForLoop):
- (JSC::SyntaxChecker::createForInLoop):
- (JSC::SyntaxChecker::createEmptyStatement):
- (JSC::SyntaxChecker::createVarStatement):
- (JSC::SyntaxChecker::createReturnStatement):
- (JSC::SyntaxChecker::createBreakStatement):
- (JSC::SyntaxChecker::createContinueStatement):
- (JSC::SyntaxChecker::createTryStatement):
- (JSC::SyntaxChecker::createSwitchStatement):
- (JSC::SyntaxChecker::createWhileStatement):
- (JSC::SyntaxChecker::createWithStatement):
- (JSC::SyntaxChecker::createDoWhileStatement):
- (JSC::SyntaxChecker::createLabelStatement):
- (JSC::SyntaxChecker::createThrowStatement):
- (JSC::SyntaxChecker::createDebugger):
- (JSC::SyntaxChecker::createConstStatement):
- (JSC::SyntaxChecker::appendConstDecl):
- (JSC::SyntaxChecker::createGetterOrSetterProperty):
- (JSC::SyntaxChecker::appendStatement):
- (JSC::SyntaxChecker::addVar):
- (JSC::SyntaxChecker::combineCommaNodes):
- (JSC::SyntaxChecker::evalCount):
- (JSC::SyntaxChecker::appendBinaryExpressionInfo):
- (JSC::SyntaxChecker::operatorStackPop):
- * runtime/JSGlobalData.h:
- * wtf/Platform.h:
- * wtf/ThreadSpecific.h:
- (WTF::T):
-
-2010-06-23 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
-
- Reviewed by Simon Hausmann.
-
- Optimization of the QScriptValuePrivate.
-
- Patch change only internals of the QScriptValuePrivate.
- Most of the QScriptValuePrivate's attributes were moved
- into an union.
-
- [Qt] Optimization of the QScriptVAluePrivate.
- https://bugs.webkit.org/show_bug.cgi?id=40415
-
- * qt/api/qscriptengine_p.cpp:
- (QScriptEnginePrivate::globalObject):
- * qt/api/qscriptvalue_p.h:
- (QScriptValuePrivate::):
- (QScriptValuePrivate::~QScriptValuePrivate):
- (QScriptValuePrivate::QScriptValuePrivate):
- (QScriptValuePrivate::toString):
- (QScriptValuePrivate::toNumber):
- (QScriptValuePrivate::toBool):
- (QScriptValuePrivate::toObject):
- (QScriptValuePrivate::equals):
- (QScriptValuePrivate::strictlyEquals):
- (QScriptValuePrivate::assignEngine):
- (QScriptValuePrivate::operator JSValueRef):
- (QScriptValuePrivate::operator JSObjectRef):
- (QScriptValuePrivate::refinedJSValue):
+ * runtime/MarkedBlock.cpp:
+ (JSC::MarkedBlock::MarkedBlock):
+ * runtime/MarkedBlock.h:
+ * runtime/MarkedSpace.cpp:
+ (JSC::MarkedSpace::destroy):
+ (JSC::MarkedSpace::allocateBlock):
+ (JSC::MarkedSpace::freeBlock):
+ (JSC::MarkedSpace::allocate):
+ (JSC::MarkedSpace::shrink):
+ (JSC::MarkedSpace::reset):
+ * runtime/MarkedSpace.h:
+ (JSC::CollectorHeap::collectorBlock):
+ * wtf/CMakeLists.txt:
+ * wtf/DoublyLinkedList.h: Removed.
-2010-06-23 Kwang Yul Seo <skyul@company100.net>
+2011-02-22 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
- [GTK] Implement ThreadSpecific with glib
- https://bugs.webkit.org/show_bug.cgi?id=39829
-
- Implement ThreadSpecific with glib's GStaticPrivate.
- This patch makes it possible to build GTK port without pthread.
-
- * wtf/ThreadSpecific.h:
- (WTF::::ThreadSpecific):
- (WTF::::~ThreadSpecific):
- (WTF::::get):
- (WTF::::set):
- (WTF::::destroy):
-
-2010-06-23 Leandro Pereira <leandro@profusion.mobi>
-
- Unreviewed build fix.
-
- * CMakeLists.txt: Add runtime/RegExpCache.cpp.
-
-2010-06-22 Renata Hodovan <hodovan@inf.u-szeged.hu>
-
- Reviewed by Geoffrey Garen.
-
- Adding regular expression caching to JavaScriptCore
- https://bugs.webkit.org/show_bug.cgi?id=38142
-
- The cache is based on Round Robin eviction policy, and
- can cache at most 256 character long regular expressions,
- and at most 256 of them. These values can be changed at compile time.
+ Manage MarkedBlocks in a linked list instead of a vector, so arbitrary removal is O(1)
+ https://bugs.webkit.org/show_bug.cgi?id=54999
+
+ SunSpider reports no change.
* GNUmakefile.am:
* JavaScriptCore.gypi:
- * JavaScriptCore.pro:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- * JavaScriptCore.xcodeproj/project.pbxproj:
- * bytecompiler/NodesCodegen.cpp:
- (JSC::RegExpNode::emitBytecode):
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::JSGlobalData):
- (JSC::JSGlobalData::~JSGlobalData):
- * runtime/JSGlobalData.h:
- (JSC::JSGlobalData::regExpCache):
- * runtime/RegExpCache.cpp: Added.
- (JSC::RegExpCache::lookupOrCreate):
- (JSC::RegExpCache::create):
- (JSC::RegExpCache::RegExpCache):
- * runtime/RegExpCache.h: Added.
- * runtime/RegExpConstructor.cpp:
- (JSC::constructRegExp):
- * runtime/RegExpKey.h: Added.
- (JSC::RegExpKey::RegExpKey):
- (JSC::RegExpKey::getFlagsValue):
- (WTF::operator==):
- (WTF::):
- * runtime/RegExpPrototype.cpp:
- (JSC::regExpProtoFuncCompile):
- * runtime/StringPrototype.cpp:
- (JSC::stringProtoFuncMatch):
- (JSC::stringProtoFuncSearch):
-
-2010-06-22 Gabor Loki <loki@webkit.org>
-
- Reviewed by Geoffrey Garen.
-
- Add native call support for ARM and Thumb-2 JIT.
- https://bugs.webkit.org/show_bug.cgi?id=40231
-
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTINativeCall):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTINativeCall):
- * wtf/Platform.h:
-
-2010-06-21 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- Make JSC more resilient in the face of parse failures
- https://bugs.webkit.org/show_bug.cgi?id=40951
-
- A number of recent bugs have occurred due to issues like miscounting
- BOMs, etc which lead to interesting crashes later on. Adding this
- logic hardens JSC in the face of these errors, and has no impact on
- performance (32bit jit actually gets 0.7% faster but I put that down
- to cache effects).
-
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::reparseForExceptionInfoIfNecessary):
- (JSC::CodeBlock::lineNumberForBytecodeOffset):
- (JSC::CodeBlock::expressionRangeForBytecodeOffset):
- (JSC::CodeBlock::getByIdExceptionInfoForBytecodeOffset):
- * bytecode/CodeBlock.h:
- (JSC::CodeBlock::bytecodeOffset):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::execute):
- (JSC::Interpreter::executeCall):
- (JSC::Interpreter::executeConstruct):
- (JSC::Interpreter::prepareForRepeatCall):
- (JSC::Interpreter::privateExecute):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * runtime/ArrayPrototype.cpp:
- (JSC::isNumericCompareFunction):
- * runtime/Executable.cpp:
- (JSC::FunctionExecutable::compileForCall):
- (JSC::FunctionExecutable::compileForConstruct):
- (JSC::FunctionExecutable::generateJITCodeForCall):
- (JSC::FunctionExecutable::generateJITCodeForConstruct):
- (JSC::FunctionExecutable::reparseExceptionInfo):
- (JSC::EvalExecutable::reparseExceptionInfo):
- * runtime/Executable.h:
- (JSC::FunctionExecutable::bytecodeForCall):
- (JSC::FunctionExecutable::bytecodeForConstruct):
- * runtime/JSGlobalData.cpp:
- (JSC::JSGlobalData::numericCompareFunction):
-
-2010-06-21 John Sullivan <sullivan@apple.com>
-
- Reviewed by Adam Roben.
-
- RetainPtr can't be used in HashMaps or HashSets
- <https://bugs.webkit.org/show_bug.cgi?id=40938>
-
- Added hashing knowledge similar to that in COMPtr.h.
-
- * wtf/RetainPtr.h:
- (WTF::RetainPtr::RetainPtr):
- New function, copied from COMPtr.h but for the type change.
- (WTF::RetainPtr::isHashTableDeletedValue):
- Ditto.
- (WTF::RetainPtr::hashTableDeletedValue):
- Ditto.
- Added template code for HashTraits and PtrHash copied from COMPtr.h but for the type change.
- The only difference is that constructDeletedValue() matches the RefPtr implementation (in HashTraits.h)
- rather than the COMPtr implementation.
-
-2010-06-19 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- Need to ensure that we grow the RegisterFile when creating a callframe for host code
- https://bugs.webkit.org/show_bug.cgi?id=40858
- <rdar://problem/8108986>
-
- In the past the use of the callframe in hostcode was much more
- limited. Now that we expect the callframe to always be valid
- we need to grow the RegisterFile so that this is actually the
- case. In this particular case the problem was failing to grow
- the registerfile could lead to a callframe that extended beyond
- RegisterFiler::end(), so vm re-entry would clobber the callframe
- other scenarios could also lead to badness.
-
- I was unable to construct a simple testcase to trigger badness,
- and any such testcase would be so dependent on exact vm stack
- layout that it would be unlikely to work as a testcase following
- any callframe or register allocation changes anyway.
-
- Thankfully the new assertion I added should help to catch these
- failures in future, and triggers on a couple of tests currently.
-
- * interpreter/CallFrame.cpp:
- (JSC::CallFrame::registerFile):
- * interpreter/CallFrame.h:
- (JSC::ExecState::init):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
-
-2010-06-21 Satish Sampath <satish@chromium.org>
-
- Reviewed by Steve Block.
-
- Speech Input Patch 0: Added compilation argument to conditionally compile pending patches.
- https://bugs.webkit.org/show_bug.cgi?id=40878
-
- * Configurations/FeatureDefines.xcconfig:
-
-2010-06-21 Kwang Yul Seo <skyul@company100.net>
-
- Reviewed by Kent Tamura.
-
- [BREWMP] Use global new/delete operator overloading with USE_SYSTEM_MALLOC=1
- https://bugs.webkit.org/show_bug.cgi?id=40653
-
- Currently, other ports do not use global new/delete operator overloading
- when USE_SYSTEM_MALLOC=1. Brew MP uses system malloc, but it needs to enable
- "global fastMalloc new" because the default new/delete causes crash on device.
- We need to replace them with Brew MP's MALLOC/FREE.
-
- * wtf/FastMalloc.h:
-
-2010-06-18 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
-
- Reviewed by Simon Hausmann.
-
- [Qt] Work around a build problem with libjscore on Symbian.
- https://bugs.webkit.org/show_bug.cgi?id=40840
-
- Sbsv2 sometimes have problems with debug/release configuration
- determination causing QtWebKit in release to try linking with the debug
- JavaScriptCore static library. This patch limit the jscore/jscored
- r58306 fix necessary for mac builds only to the mac platform to prevent the
- different name problem.
-
- The real fix would be to fix qmake or the toolchain, this patch might
- help meanwhile.
-
- * JavaScriptCore.pri:
-
-2010-06-21 Patrick Gansterer <paroga@paroga.com>
-
- Reviewed by Kent Tamura.
-
- Buildfix after r61338.
- https://bugs.webkit.org/show_bug.cgi?id=40888
-
- roundUpAllocationSize is needed in RegisterFile.h.
-
- * jit/ExecutableAllocator.h:
-
-2010-06-19 Kwang Yul Seo <skyul@company100.net>
-
- Reviewed by Darin Adler.
-
- Include <string.h> in StringExtras.h
- https://bugs.webkit.org/show_bug.cgi?id=40808
-
- Without string.h, RVCT 2.2 can't compile StringExtras.h.
- It can't find strlen and strncmp.
-
- * wtf/StringExtras.h:
-
-2010-06-19 Thiago Macieira <thiago.macieira@nokia.com>
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Don't use __attribute__((may_alias)) with the Intel compiler,
- as it doesn't understand it.
-
- * wtf/Vector.h:
-
-2010-06-19 Thiago Macieira <thiago.macieira@nokia.com>
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Fix compilation with the Intel C++ compiler (11.1.072).
-
- Like RVCT, label pointers must be void*, not const void*.
-
- * bytecode/Opcode.h:
-
-2010-06-19 Thiago Macieira <thiago.macieira@nokia.com>
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add the WTF_COMPILER_INTEL for when the Intel compiler is used
- for building. Usually, the Intel compiler masquerades as
- another compiler in the system and gets away with it, but some
- times specific fixes are required (such as when using language
- extensions).
-
- * wtf/Platform.h:
-
-2010-06-18 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Geoffrey Garen.
-
- Incorrect handling of multiple BOMs scattered through a file.
- https://bugs.webkit.org/show_bug.cgi?id=40865
-
- When determining the offset of open and close braces in a source
- with BOMs we were finishing our count early as we failed to account
- for BOMs prior to the open/close brace positions effecting those
- positions.
-
- * parser/Lexer.cpp:
- (JSC::Lexer::sourceCode):
-
-2010-06-17 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Sam Weinig.
-
- Don't throw away exception information for functions that use exceptions
- https://bugs.webkit.org/show_bug.cgi?id=40786
-
- Simple patch to stop JSC from throwing away the exception information
- of a function that uses "exceptiony" features like try and throw. This
- is a speed up for catching expressions but it's difficult to quantify as
- the old cost of reparsing is amortised over all exceptions caught in the
- effected function.
-
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::reparseForExceptionInfoIfNecessary):
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::generate):
- (JSC::BytecodeGenerator::emitCatch):
- * bytecompiler/BytecodeGenerator.h:
- (JSC::BytecodeGenerator::emitThrow):
-
-2010-06-18 Anders Carlsson <andersca@apple.com>
-
- Reviewed by Sam Weinig.
-
- Add PlatformStrategies and PluginStrategy classes.
- https://bugs.webkit.org/show_bug.cgi?id=40850
-
- * wtf/Platform.h:
-
-2010-06-18 Leandro Pereira <leandro@profusion.mobi>
-
- [EFL] Unreviewed build fix.
-
- * wtf/CMakeLists.txt: Add MD5.cpp.
-
-2010-06-17 Shu Chang <chang.shu@nokia.com>
-
- Reviewed by Kenneth Rohde Christiansen.
-
- [Qt] Fix the link error on symbian with ENABLE_JIT=0.
- 1. Add "#if ENABLE(JIT)" in the header file;
- 2. Put feature enable/disable logic to a common.pri so
- that both JavaScriptCore.pri and WebCore.pri can share.
-
- https://bugs.webkit.org/show_bug.cgi?id=40780
-
- * JavaScriptCore.pri:
- * jit/ExecutableAllocator.h:
-
-2010-06-17 Darin Adler <darin@apple.com>
-
- Reviewed by Sam Weinig.
-
- Use adoptRef and create functions in more code paths
- https://bugs.webkit.org/show_bug.cgi?id=40760
-
- * API/JSClassRef.h: Removed unneeded include of RefCounted.h.
- * API/JSWeakObjectMapRefPrivate.cpp: Ditto.
-
- * bytecode/CodeBlock.h:
- (JSC::FunctionCodeBlock::FunctionCodeBlock): Use the
- SharedSymbolTable::create function instead of calling new directly.
-
- * runtime/SymbolTable.h: Added a create function to the SharedSymbolTable
- class and made the constructor private.
-
-2010-06-17 Mark Brand <mabrand@mabrand.nl>
-
- Reviewed by Simon Hausmann.
-
- [Qt] use "win32-g++*" scope to match all MinGW makespecs
-
- The scope "win32-g++" comes from the name of the makespec. However, it
- is frequently used to check for MinGW. This works fine as long as
- win32-g++ is the only makespec for MinGW. Now we need the wildcard
- to cover "win32-g++-cross" as well.
-
- * JavaScriptCore.pro:
-
-2010-06-16 Darin Adler <darin@apple.com>
-
- Reviewed by David Levin.
-
- Deploy adoptRef in more places, including all HTML and MathML elements
- https://bugs.webkit.org/show_bug.cgi?id=39941
-
- * wtf/ThreadSafeShared.h: Made the constructor protected and removed the
- unneeded support for initial reference counts other than 1.
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj:
+ * JavaScriptCore.xcodeproj/project.pbxproj: So many build systems, so little time.
+ * wtf/CMakeLists.txt:
-2010-06-16 Peter Varga <pvarga@inf.u-szeged.hu>
+ * runtime/MarkedBlock.cpp:
+ (JSC::MarkedBlock::MarkedBlock):
+ * runtime/MarkedBlock.h:
+ (JSC::MarkedBlock::setPrev):
+ (JSC::MarkedBlock::setNext):
+ (JSC::MarkedBlock::prev):
+ (JSC::MarkedBlock::next): Added linked list data members and accessors.
- Reviewed by Geoffrey Garen.
+ * runtime/MarkedSpace.cpp:
+ (JSC::MarkedSpace::destroy):
+ (JSC::MarkedSpace::allocateBlock): Stop using vector, since it doesn't exist anymore.
- Store matchBegin directly in the array of output instead of the stack.
- https://bugs.webkit.org/show_bug.cgi?id=38988
+ (JSC::MarkedSpace::freeBlocks): New helper function for updating relevant
+ data structures when freeing blocks.
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::generateDisjunction):
- (JSC::Yarr::RegexGenerator::generate):
+ (JSC::MarkedSpace::allocate): Updated for nextBlock being a pointer and
+ not a vector index.
-2010-06-15 Anders Carlsson <andersca@apple.com>
+ (JSC::MarkedSpace::shrink): Construct a temporary list of empties and
+ then free them, to avoid modifying our hash table while iterating it.
+ This wasn't a concern before because we were using indirect array
+ indexing, not direct pointer indexing.
- Reviewed by Sam Weinig.
+ (JSC::MarkedSpace::reset): Updated for nextBlock being a pointer and
+ not a vector index.
- Make JavaScriptCore build with clang++.
+ * runtime/MarkedSpace.h:
+ (JSC::CollectorHeap::CollectorHeap): Changed data type from vector to linked list.
- * jit/JITInlineMethods.h:
- (JSC::JIT::emitPutVirtualRegister):
- Explicitly cast to an int.
+ * wtf/DoublyLinkedList.h: Added. New linked list class.
+ (WTF::::DoublyLinkedList):
+ (WTF::::isEmpty):
+ (WTF::::head):
+ (WTF::::append):
+ (WTF::::remove):
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::compileRegex):
- Return 0 instead of false.
+2011-02-22 Gavin Barraclough <barraclough@apple.com>
-2010-06-15 Adam Roben <aroben@apple.com>
+ Windows build fix.
- Make WebCore's and JavaScriptCore's DerivedSources available for debugging in production builds
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- Fixes <http://webkit.org/b/40626> <rdar://problem/8094205>.
+2011-02-22 Gavin Barraclough <barraclough@apple.com>
Reviewed by Sam Weinig.
- * JavaScriptCore.vcproj/JavaScriptCore.make: Copy the contents of
- JavaScriptCore's DerivedSources directory to
- AppleInternal/Sources/JavaScriptCore.
-
-2010-06-15 Gabor Loki <loki@webkit.org>
-
- Rubber-stamped by Eric Seidel.
-
- Fix invalid access to non-static data member warning in JITPropertyAccess32_64 on ARM
- https://bugs.webkit.org/show_bug.cgi?id=40423
-
- Using OBJECT_OFFSETOF macro instead of objectof to bypass access to
- non-static data member warning.
-
- * jit/JITPropertyAccess32_64.cpp:
- (JSC::JIT::privateCompilePutByIdTransition):
-
-2010-06-11 Eric Seidel <eric@webkit.org>
-
- Reviewed by Adam Barth.
-
- Rename the rest of the *Tokenizer classes to *DocumentParser
- https://bugs.webkit.org/show_bug.cgi?id=40507
-
- * wtf/Platform.h:
- - fixed a comment to match new names.
-
-2010-06-11 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
-
- Reviewed by Simon Hausmann.
-
- [Qt] Explicit conversions from QtScript types to JSC opaque types were removed.
- https://bugs.webkit.org/show_bug.cgi?id=40412
-
- Conversion between a JSC C types and a QtScript private types, takes
- main part of the source code. In most cases a mapping between the types
- is one to one. New cast operators were added to simplify the code.
-
- The QScriptValuePrivate could be casted to the JSValueRef and the JSObjectRef.
- The QScriptEnginePrivate could be casted to the JSGlobalContext.
- The QScriptProgramPrivate could be casted to the JSStringRef.
-
- * qt/api/qscriptengine_p.cpp:
- (QScriptEnginePrivate::evaluate):
- (QScriptEnginePrivate::newObject):
- (QScriptEnginePrivate::globalObject):
- * qt/api/qscriptengine_p.h:
- (QScriptEnginePrivate::operator JSGlobalContextRef):
- * qt/api/qscriptprogram_p.h:
- (QScriptProgramPrivate::operator JSStringRef):
- * qt/api/qscriptsyntaxcheckresult.cpp:
- (QScriptSyntaxCheckResultPrivate::~QScriptSyntaxCheckResultPrivate):
- (QScriptSyntaxCheckResultPrivate::errorMessage):
- (QScriptSyntaxCheckResultPrivate::errorLineNumber):
- * qt/api/qscriptvalue_p.h:
- (QScriptValuePrivate::~QScriptValuePrivate):
- (QScriptValuePrivate::QScriptValuePrivate):
- (QScriptValuePrivate::isBool):
- (QScriptValuePrivate::isNumber):
- (QScriptValuePrivate::isNull):
- (QScriptValuePrivate::isString):
- (QScriptValuePrivate::isUndefined):
- (QScriptValuePrivate::isFunction):
- (QScriptValuePrivate::toString):
- (QScriptValuePrivate::toNumber):
- (QScriptValuePrivate::toBool):
- (QScriptValuePrivate::toObject):
- (QScriptValuePrivate::equals):
- (QScriptValuePrivate::strictlyEquals):
- (QScriptValuePrivate::instanceOf):
- (QScriptValuePrivate::call):
- (QScriptValuePrivate::operator JSValueRef):
- (QScriptValuePrivate::operator JSObjectRef):
- (QScriptValuePrivate::setValue):
- (QScriptValuePrivate::inherits):
- (QScriptValuePrivate::refinedJSValue):
-
-2010-05-31 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
-
- Reviewed by Simon Hausmann.
-
- [Qt] Implement the simple text code path.
- https://bugs.webkit.org/show_bug.cgi?id=40077
-
- Remove the FONT_FAST_PATH macro and use the Qt's
- fast text implementation instead of the one of WebKit.
-
- The Qt::TextBypassShaping flag is used to tell Qt to
- only use the glyph advances.
-
- Qt 4.7 is needed to get this flag thus the complex path is always
- used if QtWebKit is compiled against an earlier version.
-
- Contrary to the WebKit's implementation, the complex code path
- is taken if the text is RightToLeft, justified or is formatted
- with non-zero letter or word spacing.
-
- * wtf/Platform.h:
-
-2010-06-11 Luiz Agostini <luiz.agostini@openbossa.org>
-
- Reviewed by Kenneth Rohde Christiansen.
-
- add codePointCompare to JavaScriptCore.exp
- https://bugs.webkit.org/show_bug.cgi?id=40426
+ Bug 54988 - Re-create StructureTransitionTable class, encapsulate transition table
+
+ The Structure class keeps a table of transitions to derived Structure types. Since
+ this table commonly contains a single entry we employ an optimization where instead
+ of holding a map, we may hold a pointer directly to a single instance of the mapped
+ type. We use an additional bit of data to flag whether the pointer is currently
+ pointing to a table of transitions, or a singleton transition. Previously we had
+ commonly used a pattern of storing data in the low bits of pointers, but had moved
+ away from this since it causes false leaks to be reported by the leaks tool. However
+ in this case, the entries in the map are weak links - this pointer will never be
+ responsible for keeping an object alive. As such we can use this approach provided
+ that the bit is set when a table is not in use (otherwise the table would appear to
+ be leaked).
+
+ Additionally, the transition table currently allows two entries to exist for a given
+ key - one specialized to a particular value, and one not specialized. This is
+ unnecessary, wasteful, and a little inconsistent. (If you create an entry for a
+ specialized value, then a non-specialized entry, both will exist. If you create an
+ entry for a non-specialized value, then try to create a specialized entry, only a
+ non-specialized form will be allowed.)
+
+ This shows a small progression on v8.
* JavaScriptCore.exp:
+ * runtime/JSObject.h:
+ (JSC::JSObject::putDirectInternal):
+ * runtime/Structure.cpp:
+ (JSC::StructureTransitionTable::contains):
+ (JSC::StructureTransitionTable::get):
+ (JSC::StructureTransitionTable::remove):
+ (JSC::StructureTransitionTable::add):
+ (JSC::Structure::dumpStatistics):
+ (JSC::Structure::Structure):
+ (JSC::Structure::~Structure):
+ (JSC::Structure::addPropertyTransitionToExistingStructure):
+ (JSC::Structure::addPropertyTransition):
+ * runtime/Structure.h:
+ (JSC::Structure::get):
+ * runtime/StructureTransitionTable.h:
+ (JSC::StructureTransitionTable::Hash::hash):
+ (JSC::StructureTransitionTable::Hash::equal):
+ (JSC::StructureTransitionTable::HashTraits::emptyValue):
+ (JSC::StructureTransitionTable::HashTraits::constructDeletedValue):
+ (JSC::StructureTransitionTable::HashTraits::isDeletedValue):
+ (JSC::StructureTransitionTable::StructureTransitionTable):
+ (JSC::StructureTransitionTable::~StructureTransitionTable):
+ (JSC::StructureTransitionTable::isUsingSingleSlot):
+ (JSC::StructureTransitionTable::map):
+ (JSC::StructureTransitionTable::setMap):
+ (JSC::StructureTransitionTable::singleTransition):
+ (JSC::StructureTransitionTable::setSingleTransition):
+
+2011-02-22 Andras Becsi <abecsi@webkit.org>
-2010-06-10 Oliver Hunt <oliver@apple.com>
-
- Reviewed by Maciej Stachowiak.
-
- Math Javascript Bug on Safari 5 (webkit 533.16) under "32bit" mode
- https://bugs.webkit.org/show_bug.cgi?id=40367
-
- If we're in the slow case of right shift we must write the type tag as
- the only reason we hit this code path is because we know we're working
- with a double. eg. we are guaranteed that the tag cannot be reused.
-
- * jit/JITArithmetic32_64.cpp:
- (JSC::JIT::emitRightShiftSlowCase):
-
-2010-06-10 Kwang Yul Seo <skyul@company100.net>
-
- Reviewed by Eric Seidel.
-
- Remove weakRandomNumber
- https://bugs.webkit.org/show_bug.cgi?id=40291
-
- weakRandomNumber is used nowhere. Currently, WeakRandom is used instead.
-
- * wtf/RandomNumber.cpp:
- * wtf/RandomNumber.h:
-
-2010-06-09 Alexey Proskuryakov <ap@apple.com>
-
- Reviewed by Brady Eidson.
-
- Export StringImpl::ascii(). It might be not very useful, but it's a public function.
-
- * JavaScriptCore.exp:
-
-2010-06-09 Leandro Pereira <leandro@profusion.mobi>
-
- Reviewed by Adam Treat.
-
- [EFL] Allow building core libraries as shared objects to speed up
- linking time on machines with small amounts of memory.
- http://webkit.org/b/39899
-
- * CMakeLists.txt: If building with shared core, install the lib.
- * jsc/CMakeListsEfl.txt: Needs Glib and Ecore to link dynamically.
- * wtf/CMakeLists.txt: If building with shared core, install the lib.
-
-2010-06-09 Gabor Loki <loki@webkit.org>
-
- Reviewed by David Levin.
-
- Remove some unused variable warnings from JITOpcodes
- https://bugs.webkit.org/show_bug.cgi?id=40298
-
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTINativeCall):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTINativeCall):
-
-2010-05-18 Yuzo Fujishima <yuzo@google.com>
-
- Reviewed by Shinichiro Hamaji.
-
- Fix for Bug 34529 - [CSSOM] issues with cssText and selectorText
- Add U16_LENGTH that is needed to implement CSS character serialization.
- https://bugs.webkit.org/show_bug.cgi?id=34529
-
- * wtf/unicode/qt4/UnicodeQt4.h:
- * wtf/unicode/wince/UnicodeWince.h:
-
-2010-06-08 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r60830.
- http://trac.webkit.org/changeset/60830
- https://bugs.webkit.org/show_bug.cgi?id=40305
-
- Broke the Windows build (Requested by abarth on #webkit).
-
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * wtf/OwnPtrCommon.h:
- * wtf/brew/OwnPtrBrew.h: Removed.
- * wtf/win/OwnPtrWin.h: Removed.
-
-2010-06-08 MORITA Hajime <morrita@google.com>
-
- Unreviewed. An attempt to fix test break.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2010-06-08 Kwang Yul Seo <skyul@company100.net>
-
- Reviewed by Adam Barth.
-
- Change OwnPtrCommon to include platform-specific headers
- https://bugs.webkit.org/show_bug.cgi?id=40279
-
- Adding new type to OwnPtrCommon needlessly causes all ports to do full rebuilds.
- Change OwnPtrCommon to include platform-specific headers to avoid all ports rebuilds.
-
- * JavaScriptCore.vcproj/WTF/WTF.vcproj:
- * wtf/OwnPtrCommon.h:
- * wtf/brew/OwnPtrBrew.h: Added.
- * wtf/win/OwnPtrWin.h: Added.
+ Reviewed by Laszlo Gombos.
-2010-06-07 MORITA Hajime <morrita@google.com>
-
- Reviewed by Kent Tamura.
+ [Qt] Redesign the build system
+ https://bugs.webkit.org/show_bug.cgi?id=51339
- https://bugs.webkit.org/show_bug.cgi?id=40219
- [Mac] ENABLE_METER_TAG should be enabled
-
- Added ENABLE_METER_TAG.
+ Part 2.
- * Configurations/FeatureDefines.xcconfig:
+ Build WebCore as a static library, compile the WebKit API and WebKit2 API
+ in a final step and link to WebKit2, WebCore and JSC libraries to fix
+ linking issues resulting from stripped away symbols.
-2010-06-07 Kwang Yul Seo <skyul@company100.net>
+ * JavaScriptCore.pri: Remove the workaround.
- Reviewed by Eric Seidel.
+2011-02-21 Adam Roben <aroben@apple.com>
- [BREWMP] Add more types to OwnPtr
- https://bugs.webkit.org/show_bug.cgi?id=39667
+ Fix linker warning on Windows
- Add ISSL and ISocket to the list of OwnPtr-ed type.
+ r79135 tried to export JSObject::s_info by adding it to JavaScriptCore.def. This is the
+ obvious way (since it's how we export functions), but unfortunately it doesn't work correct.
+ r79222 made us export it the right way (using the JS_EXPORTDATA macro), but forgot to remove
+ it from JavaScriptCore.def. This caused us to get linker warnings about exporting the symbol
+ multiple times.
- * wtf/OwnPtrCommon.h:
- * wtf/brew/OwnPtrBrew.cpp:
- (WTF::deleteOwnedPtr):
+ Rubber-stamped by Anders Carlsson.
-2010-06-07 Benjamin Poulain <benjamin.poulain@nokia.com>
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Removed JSObject::s_info.
- Reviewed by Simon Hausmann.
+2011-02-21 Brian Weinstein <bweinstein@apple.com>
- [Qt] Crash when compiling on Snow Leopard and running on Leopard
- https://bugs.webkit.org/show_bug.cgi?id=31403
+ Reviewed by Adam Roben.
- Disable the use of pthread_setname_np and other symbols
- when targetting Leopard.
+ WebResourceCacheManager should be responsible for managing the CFURLCache as well
+ as the WebCore memory cache.
+ https://bugs.webkit.org/show_bug.cgi?id=54886
+ Part of <rdar://problem/8971738>
- Use the defines TARGETING_XX instead of BUILDING_ON_XX
- for features that cannot be used before Snow Leopard.
+ Add a new use flag for using the CFURLCache.
* wtf/Platform.h:
-2010-06-07 Gabor Loki <loki@webkit.org>
-
- Reviewed by NOBODY (JSVALUE32_64 build fix).
+2011-02-21 Xan Lopez <xlopez@igalia.com>
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTINativeCall):
+ Reviewed by Gavin Barraclough.
-2010-06-06 Gavin Barraclough <barraclough@apple.com>
+ Use ASSERT_JIT_OFFSET in JITPropertyAccess32_64.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=54901
- Reviewed by NOBODY (windows build fix pt 2).
+ * jit/JIT.h: swap actual and expected values in message, they were
+ reversed.
+ * jit/JITCall32_64.cpp:
+ (JSC::JIT::compileOpCall): use ASSERT_JIT_OFFSET instead of
+ a simple ASSERT.
+ * jit/JITPropertyAccess32_64.cpp:
+ (JSC::JIT::emit_op_method_check): ditto.
+ (JSC::JIT::compileGetByIdHotPath): ditto.
+ (JSC::JIT::compileGetByIdSlowCase): ditto.
+ (JSC::JIT::emit_op_put_by_id): ditto.
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+2011-02-21 Gavin Barraclough <barraclough@apple.com>
-2010-06-06 Gavin Barraclough <barraclough@apple.com>
+ Ruber stamped by Sam Weinig
- Reviewed by NOBODY (windows build fix pt 1).
+ Bug 54899 - Math.LOG10E should be 0.4342944819032518
+ This value is quoted in section 15.8.1.5 of the spec.
- * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * runtime/MathObject.cpp:
+ (JSC::MathObject::MathObject):
-2010-06-06 Gavin Barraclough <barraclough@apple.com>
+2011-02-21 Gavin Barraclough <barraclough@apple.com>
Reviewed by Sam Weinig.
- Bug 40214 - Clean up error construction / throwing in JSC.
-
- The one egregious insanity here is that creating an error requires
- a VM-entry-esqe-host call (the string argument is wrapped as a JS
- object & pushed on the RegisterFile, then unwrapped back to a
- UString). Changing this also means you only require a global
- object, not an ExecState, to create an error.
-
- The methods to create error objects are also parameterized
- requiring a switch on the type, which can be made cleaner and
- faster by moving to a separate method per error type. Code to add
- divot information to error had been duplicated, and is coalesced
- back into a single function.
-
- Convenience methods added to create & throw type & syntax error
- with a default error message, since this is a common case.
-
- Also, errors are currently thrown either using
- "throwError(exec, error)" or "exec->setException(error)" - unify
- on the former, since this is more commonly used. Add
- "throwVMError(exec, error)" equivalents, as a convenience for
- cases where the result was being wrapped in "JSValue::encode(...)".
+ Bug 54894 - Make inheritance structure described by ClassInfo match C++ class hierarchy.
+
+ The ClassInfo objects describe an inheritance hierarchy, with each ClassInfo instance
+ containing a pointer to its parent class. These links should reflect the inheritance
+ hierarchy of C++ classes below JSObject. For the large part it does, but in some cases
+ entries in the C++ hierarchy are skipped over. This presently likely doesn't matter,
+ since intervening C++ classes may not have ClassInfo - but would be a potential bug
+ were ClassInfo were to be added.
* API/JSCallbackConstructor.cpp:
- (JSC::constructJSCallback):
* API/JSCallbackFunction.cpp:
- (JSC::JSCallbackFunction::call):
* API/JSCallbackObjectFunctions.h:
- (JSC::::getOwnPropertySlot):
- (JSC::::put):
- (JSC::::deleteProperty):
- (JSC::::construct):
- (JSC::::hasInstance):
- (JSC::::call):
- (JSC::::toNumber):
- (JSC::::toString):
- (JSC::::staticValueGetter):
- (JSC::::staticFunctionGetter):
- (JSC::::callbackGetter):
- * API/JSObjectRef.cpp:
- (JSObjectMakeError):
- * JavaScriptCore.exp:
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::emitNewError):
- (JSC::BytecodeGenerator::emitThrowExpressionTooDeepException):
- * bytecompiler/BytecodeGenerator.h:
- * bytecompiler/NodesCodegen.cpp:
- (JSC::ThrowableExpressionData::emitThrowError):
- (JSC::RegExpNode::emitBytecode):
- (JSC::PostfixErrorNode::emitBytecode):
- (JSC::PrefixErrorNode::emitBytecode):
- (JSC::AssignErrorNode::emitBytecode):
- (JSC::ForInNode::emitBytecode):
- (JSC::ContinueNode::emitBytecode):
- (JSC::BreakNode::emitBytecode):
- (JSC::ReturnNode::emitBytecode):
- (JSC::LabelNode::emitBytecode):
- * interpreter/CallFrame.h:
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::throwException):
- (JSC::Interpreter::privateExecute):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * jsc.cpp:
- (functionRun):
- (functionLoad):
- (functionCheckSyntax):
- * parser/Nodes.h:
- * runtime/ArrayConstructor.cpp:
- (JSC::constructArrayWithSizeQuirk):
+ * runtime/Arguments.h:
* runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncToString):
- (JSC::arrayProtoFuncToLocaleString):
- (JSC::arrayProtoFuncJoin):
- (JSC::arrayProtoFuncFilter):
- (JSC::arrayProtoFuncMap):
- (JSC::arrayProtoFuncEvery):
- (JSC::arrayProtoFuncForEach):
- (JSC::arrayProtoFuncSome):
- (JSC::arrayProtoFuncReduce):
- (JSC::arrayProtoFuncReduceRight):
- * runtime/BooleanPrototype.cpp:
- (JSC::booleanProtoFuncToString):
- (JSC::booleanProtoFuncValueOf):
+ * runtime/BooleanObject.cpp:
+ * runtime/DateInstance.cpp:
* runtime/DatePrototype.cpp:
- (JSC::dateProtoFuncToString):
- (JSC::dateProtoFuncToUTCString):
- (JSC::dateProtoFuncToISOString):
- (JSC::dateProtoFuncToDateString):
- (JSC::dateProtoFuncToTimeString):
- (JSC::dateProtoFuncToLocaleString):
- (JSC::dateProtoFuncToLocaleDateString):
- (JSC::dateProtoFuncToLocaleTimeString):
- (JSC::dateProtoFuncGetTime):
- (JSC::dateProtoFuncGetFullYear):
- (JSC::dateProtoFuncGetUTCFullYear):
- (JSC::dateProtoFuncToGMTString):
- (JSC::dateProtoFuncGetMonth):
- (JSC::dateProtoFuncGetUTCMonth):
- (JSC::dateProtoFuncGetDate):
- (JSC::dateProtoFuncGetUTCDate):
- (JSC::dateProtoFuncGetDay):
- (JSC::dateProtoFuncGetUTCDay):
- (JSC::dateProtoFuncGetHours):
- (JSC::dateProtoFuncGetUTCHours):
- (JSC::dateProtoFuncGetMinutes):
- (JSC::dateProtoFuncGetUTCMinutes):
- (JSC::dateProtoFuncGetSeconds):
- (JSC::dateProtoFuncGetUTCSeconds):
- (JSC::dateProtoFuncGetMilliSeconds):
- (JSC::dateProtoFuncGetUTCMilliseconds):
- (JSC::dateProtoFuncGetTimezoneOffset):
- (JSC::dateProtoFuncSetTime):
- (JSC::setNewValueFromTimeArgs):
- (JSC::setNewValueFromDateArgs):
- (JSC::dateProtoFuncSetMilliSeconds):
- (JSC::dateProtoFuncSetUTCMilliseconds):
- (JSC::dateProtoFuncSetSeconds):
- (JSC::dateProtoFuncSetUTCSeconds):
- (JSC::dateProtoFuncSetMinutes):
- (JSC::dateProtoFuncSetUTCMinutes):
- (JSC::dateProtoFuncSetHours):
- (JSC::dateProtoFuncSetUTCHours):
- (JSC::dateProtoFuncSetDate):
- (JSC::dateProtoFuncSetUTCDate):
- (JSC::dateProtoFuncSetMonth):
- (JSC::dateProtoFuncSetUTCMonth):
- (JSC::dateProtoFuncSetFullYear):
- (JSC::dateProtoFuncSetUTCFullYear):
- (JSC::dateProtoFuncSetYear):
- (JSC::dateProtoFuncGetYear):
- (JSC::dateProtoFuncToJSON):
- * runtime/Error.cpp:
- (JSC::createError):
- (JSC::createEvalError):
- (JSC::createRangeError):
- (JSC::createReferenceError):
- (JSC::createSyntaxError):
- (JSC::createTypeError):
- (JSC::createURIError):
- (JSC::addErrorSourceInfo):
- (JSC::addErrorDivotInfo):
- (JSC::addErrorInfo):
- (JSC::hasErrorInfo):
- (JSC::throwError):
- (JSC::throwTypeError):
- (JSC::throwSyntaxError):
- * runtime/Error.h:
- (JSC::throwVMError):
- (JSC::throwVMTypeError):
- * runtime/ErrorConstructor.cpp:
- (JSC::constructWithErrorConstructor):
- (JSC::callErrorConstructor):
- * runtime/ErrorConstructor.h:
* runtime/ErrorInstance.cpp:
- (JSC::ErrorInstance::ErrorInstance):
- (JSC::ErrorInstance::create):
- * runtime/ErrorInstance.h:
- * runtime/ErrorPrototype.cpp:
- (JSC::ErrorPrototype::ErrorPrototype):
- * runtime/ExceptionHelpers.cpp:
- (JSC::createStackOverflowError):
- (JSC::createUndefinedVariableError):
- (JSC::createInvalidParamError):
- (JSC::createNotAConstructorError):
- (JSC::createNotAFunctionError):
- (JSC::createNotAnObjectError):
- (JSC::throwOutOfMemoryError):
- * runtime/ExceptionHelpers.h:
- * runtime/Executable.cpp:
- (JSC::EvalExecutable::compile):
- (JSC::ProgramExecutable::checkSyntax):
- (JSC::ProgramExecutable::compile):
- * runtime/FunctionConstructor.cpp:
- (JSC::constructFunction):
- * runtime/FunctionPrototype.cpp:
- (JSC::functionProtoFuncToString):
- (JSC::functionProtoFuncApply):
- (JSC::functionProtoFuncCall):
- * runtime/Identifier.cpp:
- (JSC::Identifier::from):
- * runtime/Identifier.h:
+ * runtime/InternalFunction.cpp:
+ * runtime/JSActivation.cpp:
* runtime/JSArray.cpp:
- (JSC::JSArray::put):
* runtime/JSFunction.cpp:
- (JSC::callHostFunctionAsConstructor):
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::encode):
- (JSC::decode):
- (JSC::globalFuncEval):
* runtime/JSONObject.cpp:
- (JSC::Stringifier::appendStringifiedValue):
- (JSC::Walker::walk):
- (JSC::JSONProtoFuncParse):
- (JSC::JSONProtoFuncStringify):
- * runtime/JSObject.cpp:
- (JSC::throwSetterError):
- (JSC::JSObject::put):
- (JSC::JSObject::putWithAttributes):
- (JSC::JSObject::defaultValue):
- (JSC::JSObject::hasInstance):
- (JSC::JSObject::defineOwnProperty):
* runtime/JSObject.h:
- * runtime/JSValue.cpp:
- (JSC::JSValue::toObjectSlowCase):
- (JSC::JSValue::synthesizeObject):
- (JSC::JSValue::synthesizePrototype):
+ * runtime/JSZombie.h:
+ * runtime/MathObject.cpp:
* runtime/NativeErrorConstructor.cpp:
- (JSC::constructWithNativeErrorConstructor):
- (JSC::callNativeErrorConstructor):
- * runtime/NativeErrorConstructor.h:
- * runtime/NumberPrototype.cpp:
- (JSC::numberProtoFuncToString):
- (JSC::numberProtoFuncToLocaleString):
- (JSC::numberProtoFuncValueOf):
- (JSC::numberProtoFuncToFixed):
- (JSC::numberProtoFuncToExponential):
- (JSC::numberProtoFuncToPrecision):
- * runtime/ObjectConstructor.cpp:
- (JSC::objectConstructorGetPrototypeOf):
- (JSC::objectConstructorGetOwnPropertyDescriptor):
- (JSC::objectConstructorGetOwnPropertyNames):
- (JSC::objectConstructorKeys):
- (JSC::toPropertyDescriptor):
- (JSC::objectConstructorDefineProperty):
- (JSC::objectConstructorDefineProperties):
- (JSC::objectConstructorCreate):
- * runtime/ObjectPrototype.cpp:
- (JSC::objectProtoFuncDefineGetter):
- (JSC::objectProtoFuncDefineSetter):
+ * runtime/NumberConstructor.cpp:
+ * runtime/NumberObject.cpp:
* runtime/RegExpConstructor.cpp:
- (JSC::constructRegExp):
* runtime/RegExpObject.cpp:
- (JSC::RegExpObject::match):
- * runtime/RegExpPrototype.cpp:
- (JSC::regExpProtoFuncTest):
- (JSC::regExpProtoFuncExec):
- (JSC::regExpProtoFuncCompile):
- (JSC::regExpProtoFuncToString):
+ * runtime/StringObject.cpp:
* runtime/StringPrototype.cpp:
- (JSC::stringProtoFuncToString):
-
-2010-06-05 Kwang Yul Seo <skyul@company100.net>
-
- Reviewed by Eric Seidel.
- [BREWMP] Add PLATFORM(BREWMP) guard for using std::xxx
- https://bugs.webkit.org/show_bug.cgi?id=39710
+2011-02-21 Adam Roben <aroben@apple.com>
- Build fix for BREW MP.
-
- * wtf/MathExtras.h:
-
-2010-06-04 Adam Barth <abarth@webkit.org>
-
- Reviewed by Darin Adler.
+ Export JSObject::s_info from JavaScriptCore.dll
- HTML5 parser should be within 1% of old parser performance
- https://bugs.webkit.org/show_bug.cgi?id=40172
+ This matches what we do for all other ClassInfo objects that WebCore needs access to.
- Fix cast in this operator= to allow for assignment between vectors with
- different inline capacities (as clearly intended by its author).
+ Fixes <http://webkit.org/b/54881> REGRESSION (r79132): Lots of tests crashing in
+ JSCell::inherits on Windows
- * wtf/Vector.h:
- (WTF::::operator):
+ Reviewed by Sam Weinig.
-2010-06-04 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
+ * runtime/JSObject.h: Added JS_EXPORTDATA to s_info.
- Reviewed by Kenneth Rohde Christiansen.
+2011-02-21 Kristian Amlie <kristian.amlie@nokia.com>
- New QtScript API; QScriptValue::instanceOf.
+ Reviewed by Andreas Kling.
- New function create an easy way to check value's prototype hierarchy.
+ Switched to compiler based detection, where the error actually is.
- [Qt] QScriptValue should have an instanceOf method
- https://bugs.webkit.org/show_bug.cgi?id=40120
+ It is not the platform that needs the workaround, it is the compiler.
- * qt/api/qscriptvalue.cpp:
- (QScriptValue::instanceOf):
- * qt/api/qscriptvalue.h:
- * qt/api/qscriptvalue_p.h:
- (QScriptValuePrivate::instanceOf):
- * qt/tests/qscriptvalue/tst_qscriptvalue.h:
- * qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp:
- (tst_QScriptValue::instanceOf_initData):
- (tst_QScriptValue::instanceOf_makeData):
- (tst_QScriptValue::instanceOf_test):
+ QtWebKit fails to compile on Windows XP with msvc-2008
+ https://bugs.webkit.org/show_bug.cgi?id=54746
-2010-06-04 Gavin Barraclough <barraclough@apple.com>
+ * bytecode/CodeBlock.h:
+ * runtime/RegExpObject.h:
- Reviewed by NOBODY (interpreter build fix).
+2011-02-20 Gavin Barraclough <barraclough@apple.com>
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
+ Reviewed by Oliver Hunt.
-2010-06-04 Mark Rowe <mrowe@apple.com>
+ https://bugs.webkit.org/show_bug.cgi?id=54839
+ Remove PrototypeFunction, NativeFunctionWrapper, and GlobalEvalFunction.
- Silence some warnings seen on the build bot.
+ Historically, Native functions used to be represented by PrototypeFunctions, however
+ since introducing call optimizations to the JIT this has used JSFunctions for host
+ calls too. At the point this change was made, the interpreter continued to use
+ PrototypeFunctions, however since fallback from the JIT to interpreter was introduced
+ the interpreter has had to be able to run using host functions represented using
+ JSFunctions - leading to an unnecessary and redundant divergence in behaviour between
+ interpreter only builds, and situations where the JIT has fallen back to interpreting.
- * JavaScriptCore.JSVALUE32_64only.exp: Add a trailing newline.
- * JavaScriptCore.JSVALUE32only.exp: Ditto.
- * JavaScriptCore.JSVALUE64only.exp: Ditto.
- * JavaScriptCore.xcodeproj/project.pbxproj: Remove the .exp files from all targets so that Xcode doesn't
- complain about not knowing how to compile them.
+ NativeFunctionWrapper only existed to select between PrototypeFunction and JSFunction
+ for wrappers for host functions, and as such can also be removed.
-2010-06-04 Gavin Barraclough <barraclough@apple.com>
+ GlobalEvalFunction is a redundant wrapper that happens to be derived from
+ PrototypeFunction. It existed to hold a reference to the global object - but since all
+ functions how derive from JSObjectWithGlobalObject, this no longer requires an
+ additional class to provide this functionality.
- Reviewed by Oliver Hunt.
+ * JavaScriptCore.JSVALUE32_64only.exp:
+ * JavaScriptCore.JSVALUE64only.exp:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ Removed symbols / references to files.
- Bug 40187 - Change function signature of NativeConstructor to match NativeFunction
+ * runtime/GlobalEvalFunction.cpp: Removed.
+ * runtime/GlobalEvalFunction.h: Removed.
+ * runtime/NativeFunctionWrapper.h: Removed.
+ * runtime/PrototypeFunction.cpp: Removed.
+ * runtime/PrototypeFunction.h: Removed.
+ Removed.
- Mostly for consistency, but constructor & args arguments are redundant,
- and this will help if we wish to be able to JIT calls to more constructors.
+ * runtime/Executable.cpp:
+ (JSC::NativeExecutable::~NativeExecutable):
+ * runtime/Executable.h:
+ (JSC::NativeExecutable::create):
+ (JSC::NativeExecutable::NativeExecutable):
+ (JSC::JSFunction::nativeFunction):
+ * runtime/JSFunction.cpp:
+ (JSC::callHostFunctionAsConstructor):
+ (JSC::JSFunction::JSFunction):
+ (JSC::JSFunction::getCallData):
+ * runtime/JSFunction.h:
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::getHostFunction):
+ * runtime/JSGlobalData.h:
+ (JSC::JSGlobalData::getCTIStub):
+ Added interpreter-friendly constructors for NativeExecutables.
- * API/JSCallbackConstructor.cpp:
- (JSC::constructJSCallback):
- * API/JSCallbackObject.h:
- * API/JSCallbackObjectFunctions.h:
- (JSC::::construct):
+ * bytecompiler/BytecodeGenerator.cpp:
* interpreter/Interpreter.cpp:
- (JSC::Interpreter::executeConstruct):
- * interpreter/Interpreter.h:
* jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
+ * jsc.cpp:
* runtime/ArrayConstructor.cpp:
- (JSC::constructWithArrayConstructor):
- * runtime/BooleanConstructor.cpp:
- (JSC::constructWithBooleanConstructor):
- * runtime/ConstructData.cpp:
- (JSC::construct):
- * runtime/ConstructData.h:
+ * runtime/BooleanPrototype.cpp:
+ * runtime/BooleanPrototype.h:
+ * runtime/CallData.h:
* runtime/DateConstructor.cpp:
- (JSC::constructWithDateConstructor):
- * runtime/Error.cpp:
- (JSC::constructNativeError):
- (JSC::Error::create):
- * runtime/ErrorConstructor.cpp:
- (JSC::constructWithErrorConstructor):
- * runtime/FunctionConstructor.cpp:
- (JSC::constructWithFunctionConstructor):
- * runtime/NativeErrorConstructor.cpp:
- (JSC::constructWithNativeErrorConstructor):
- * runtime/NativeErrorConstructor.h:
- (JSC::NativeErrorConstructor::errorStructure):
- * runtime/NumberConstructor.cpp:
- (JSC::constructWithNumberConstructor):
+ * runtime/DateConstructor.h:
+ * runtime/ErrorPrototype.cpp:
+ * runtime/ErrorPrototype.h:
+ * runtime/FunctionPrototype.cpp:
+ * runtime/FunctionPrototype.h:
+ * runtime/JSGlobalObject.cpp:
+ * runtime/JSGlobalObject.h:
+ * runtime/JSGlobalObjectFunctions.cpp:
+ * runtime/Lookup.cpp:
+ * runtime/NumberPrototype.cpp:
+ * runtime/NumberPrototype.h:
* runtime/ObjectConstructor.cpp:
- (JSC::constructWithObjectConstructor):
- * runtime/RegExpConstructor.cpp:
- (JSC::constructWithRegExpConstructor):
+ * runtime/ObjectConstructor.h:
+ * runtime/ObjectPrototype.cpp:
+ * runtime/ObjectPrototype.h:
+ * runtime/RegExpPrototype.cpp:
+ * runtime/RegExpPrototype.h:
+ * runtime/SmallStrings.h:
* runtime/StringConstructor.cpp:
- (JSC::constructWithStringConstructor):
-
-2010-06-04 Tony Gentilcore <tonyg@chromium.org>
-
- Reviewed by Adam Barth.
+ * runtime/StringConstructor.h:
+ Removed use of redundant classes.
- Add a takeFirst() method to Deque and use it where appropriate.
- https://bugs.webkit.org/show_bug.cgi?id=40089
+2011-02-19 Laszlo Gombos <laszlo.1.gombos@nokia.com>
- * wtf/Deque.h:
- (WTF::::takeFirst):
- * wtf/MainThread.cpp:
- (WTF::dispatchFunctionsFromMainThread):
- * wtf/MessageQueue.h:
- (WTF::::tryGetMessage):
+ Unreviewed build fix for Symbian.
-2010-06-04 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
-
- Reviewed by Kenneth Rohde Christiansen.
+ [Symbian] Revert the removal of linking
+ against hal after r79126.
- Remove a QEXPECT_FAIL flag from an autotest.
+ Dependency on the hal library can not be removed
+ as it is still used (e.g. in MarkStackSymbian.cpp).
- Test tst_QScriptEngine::globalObject pass after 36600 bug
- fix have been applied.
-
- [Qt] Expected fail in the tst_QScriptEngine::globalObject should be removed.
- https://bugs.webkit.org/show_bug.cgi?id=40114
-
- * qt/tests/qscriptengine/tst_qscriptengine.cpp:
- (tst_QScriptEngine::globalObject):
-
-2010-06-04 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Fix QScriptValue::equals.
-
- Handling for a few edge cases were added. Now comparison between
- NaN, an invalid objects should works as supposed.
-
- [Qt] QScriptValue::equals problems
- https://bugs.webkit.org/show_bug.cgi?id=40110
-
- * qt/api/qscriptvalue.cpp:
- (QScriptValue::equals):
- * qt/api/qscriptvalue_p.h:
- (QScriptValuePrivate::equals):
- * qt/tests/qscriptvalue/tst_qscriptvalue.h:
- * qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp:
- (tst_QScriptValue::equals_initData):
- (tst_QScriptValue::equals_makeData):
- (tst_QScriptValue::equals_test):
+ * JavaScriptCore.pri:
-2010-06-03 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
+2011-02-19 Gavin Barraclough <barraclough@apple.com>
- Reviewed by Kenneth Rohde Christiansen.
-
- New states in QScriptValuePrivate.
+ Interpreter build fix.
- The CSpecial state was divided into CNull and CUndefined. It simplify
- the QScriptValue code by avoiding a few "cast" and "if".
- Moreover the MSVS compiler didn't like casting between a double and an
- enum which is avoided now.
+ * runtime/ArrayConstructor.cpp:
+ * runtime/BooleanPrototype.cpp:
+ * runtime/DateConstructor.cpp:
+ * runtime/ErrorPrototype.cpp:
+ * runtime/FunctionPrototype.cpp:
+ * runtime/Lookup.cpp:
+ * runtime/NumberPrototype.cpp:
+ * runtime/ObjectConstructor.cpp:
+ * runtime/ObjectPrototype.cpp:
+ * runtime/RegExpPrototype.cpp:
+ * runtime/StringConstructor.cpp:
- [Qt] The QScriptValuePrivate::CSpecial is too generic.
- https://bugs.webkit.org/show_bug.cgi?id=40067
+2011-02-19 Gavin Barraclough <barraclough@apple.com>
- * qt/api/qscriptvalue_p.h:
- (QScriptValuePrivate::):
- (QScriptValuePrivate::QScriptValuePrivate):
- (QScriptValuePrivate::isNull):
- (QScriptValuePrivate::isUndefined):
- (QScriptValuePrivate::toString):
- (QScriptValuePrivate::toNumber):
- (QScriptValuePrivate::toBool):
- (QScriptValuePrivate::toObject):
- (QScriptValuePrivate::assignEngine):
- (QScriptValuePrivate::isNumberBased):
+ Build fix!!
-2010-06-03 Gavin Barraclough <barraclough@apple.com>
+ * JavaScriptCore.exp:
- Reviewed by NOBODY (Qt build fix).
+2011-02-19 Gavin Barraclough <barraclough@apple.com>
- * wtf/Platform.h:
+ Windows build fix!!
-2010-06-03 Gavin Barraclough <barraclough@apple.com>
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- Reviewed by Mark Rowe.
+2011-02-19 Gavin Barraclough <barraclough@apple.com>
- Bug 40150 - ENABLE_JIT_OPTIMIZE_NATIVE_CALL on all x86/x86_64 platforms
- This was fixed in bug #40094.
+ Windows build fix!
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
- * wtf/Platform.h:
-
-2010-06-03 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by NOBODY (Interpreter build fix).
- * JavaScriptCore.JSVALUE32_64only.exp:
- * JavaScriptCore.JSVALUE32only.exp:
- * JavaScriptCore.JSVALUE64only.exp:
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
+2011-02-19 Gavin Barraclough <barraclough@apple.com>
-2010-06-03 Gavin Barraclough <barraclough@apple.com>
+ Build fix!
- Reviewed by NOBODY (windows build fix II).
+ * JavaScriptCore.exp:
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+2011-02-18 Gavin Barraclough <barraclough@apple.com>
-2010-06-03 Gavin Barraclough <barraclough@apple.com>
+ Reviewed by Sam Weinig.
- Reviewed by NOBODY (windows build fix).
+ Bug 54786 - Devirtualize JSCell::classInfo()
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ Instead of making a virtual function call, add a pointer to the ClassInfo
+ onto Structure.
-2010-06-02 Gavin Barraclough <barraclough@apple.com>
+ This removes a virtual function call, and paves the way towards removing all
+ the createStructure methods, and StructureFlags/AnonymousSlotCount properties
+ (these should be able to move onto ClassInfo).
- Reviewed by Oliver Hunt.
+ Calls to Structure::create must now pass a pointer to the ClassInfo for the
+ structure. All objects now have a ClassInfo pointer, non-object cell types
+ still do not.
- Bug 40094 - The return type of NativeFunction should be EncodedJSValue
- On Windows & Linux, using JSVALUE32_64, EncodedJSValue is returned in registers, but JSValue is not.
+ Changes are most mechanical, involving three steps:
+ * Remove virtual classInfo() methods.
+ * Add &s_info parameter to calls to Structure::create.
+ * Rename ClassInfo static members on classes from 'info' to 's_info',
+ for consistency.
+ * API/JSCallbackConstructor.cpp:
+ * API/JSCallbackConstructor.h:
* API/JSCallbackFunction.cpp:
- (JSC::JSCallbackFunction::call):
* API/JSCallbackFunction.h:
+ * API/JSCallbackObject.cpp:
* API/JSCallbackObject.h:
* API/JSCallbackObjectFunctions.h:
- (JSC::::call):
+ * API/JSObjectRef.cpp:
+ * API/JSValueRef.cpp:
+ * API/JSWeakObjectMapRefPrivate.cpp:
* JavaScriptCore.exp:
+ * debugger/Debugger.cpp:
+ * debugger/DebuggerActivation.h:
+ * debugger/DebuggerCallFrame.cpp:
* interpreter/Interpreter.cpp:
- (JSC::Interpreter::executeCall):
+ * jit/JITCall32_64.cpp:
+ * jit/JITOpcodes.cpp:
* jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * jit/JITStubs.h:
- * jsc.cpp:
- (functionPrint):
- (functionDebug):
- (functionGC):
- (functionVersion):
- (functionRun):
- (functionLoad):
- (functionCheckSyntax):
- (functionSetSamplingFlags):
- (functionClearSamplingFlags):
- (functionReadline):
- (functionQuit):
+ * profiler/Profiler.cpp:
+ * runtime/Arguments.cpp:
+ * runtime/Arguments.h:
* runtime/ArrayConstructor.cpp:
- (JSC::callArrayConstructor):
- (JSC::arrayConstructorIsArray):
* runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncToString):
- (JSC::arrayProtoFuncToLocaleString):
- (JSC::arrayProtoFuncJoin):
- (JSC::arrayProtoFuncConcat):
- (JSC::arrayProtoFuncPop):
- (JSC::arrayProtoFuncPush):
- (JSC::arrayProtoFuncReverse):
- (JSC::arrayProtoFuncShift):
- (JSC::arrayProtoFuncSlice):
- (JSC::arrayProtoFuncSort):
- (JSC::arrayProtoFuncSplice):
- (JSC::arrayProtoFuncUnShift):
- (JSC::arrayProtoFuncFilter):
- (JSC::arrayProtoFuncMap):
- (JSC::arrayProtoFuncEvery):
- (JSC::arrayProtoFuncForEach):
- (JSC::arrayProtoFuncSome):
- (JSC::arrayProtoFuncReduce):
- (JSC::arrayProtoFuncReduceRight):
- (JSC::arrayProtoFuncIndexOf):
- (JSC::arrayProtoFuncLastIndexOf):
- * runtime/BooleanConstructor.cpp:
- (JSC::callBooleanConstructor):
+ * runtime/ArrayPrototype.h:
+ * runtime/BooleanObject.cpp:
+ * runtime/BooleanObject.h:
* runtime/BooleanPrototype.cpp:
- (JSC::booleanProtoFuncToString):
- (JSC::booleanProtoFuncValueOf):
- * runtime/CallData.h:
* runtime/DateConstructor.cpp:
- (JSC::callDate):
- (JSC::dateParse):
- (JSC::dateNow):
- (JSC::dateUTC):
+ * runtime/DateInstance.cpp:
+ * runtime/DateInstance.h:
* runtime/DatePrototype.cpp:
- (JSC::dateProtoFuncToString):
- (JSC::dateProtoFuncToUTCString):
- (JSC::dateProtoFuncToISOString):
- (JSC::dateProtoFuncToDateString):
- (JSC::dateProtoFuncToTimeString):
- (JSC::dateProtoFuncToLocaleString):
- (JSC::dateProtoFuncToLocaleDateString):
- (JSC::dateProtoFuncToLocaleTimeString):
- (JSC::dateProtoFuncGetTime):
- (JSC::dateProtoFuncGetFullYear):
- (JSC::dateProtoFuncGetUTCFullYear):
- (JSC::dateProtoFuncToGMTString):
- (JSC::dateProtoFuncGetMonth):
- (JSC::dateProtoFuncGetUTCMonth):
- (JSC::dateProtoFuncGetDate):
- (JSC::dateProtoFuncGetUTCDate):
- (JSC::dateProtoFuncGetDay):
- (JSC::dateProtoFuncGetUTCDay):
- (JSC::dateProtoFuncGetHours):
- (JSC::dateProtoFuncGetUTCHours):
- (JSC::dateProtoFuncGetMinutes):
- (JSC::dateProtoFuncGetUTCMinutes):
- (JSC::dateProtoFuncGetSeconds):
- (JSC::dateProtoFuncGetUTCSeconds):
- (JSC::dateProtoFuncGetMilliSeconds):
- (JSC::dateProtoFuncGetUTCMilliseconds):
- (JSC::dateProtoFuncGetTimezoneOffset):
- (JSC::dateProtoFuncSetTime):
- (JSC::dateProtoFuncSetMilliSeconds):
- (JSC::dateProtoFuncSetUTCMilliseconds):
- (JSC::dateProtoFuncSetSeconds):
- (JSC::dateProtoFuncSetUTCSeconds):
- (JSC::dateProtoFuncSetMinutes):
- (JSC::dateProtoFuncSetUTCMinutes):
- (JSC::dateProtoFuncSetHours):
- (JSC::dateProtoFuncSetUTCHours):
- (JSC::dateProtoFuncSetDate):
- (JSC::dateProtoFuncSetUTCDate):
- (JSC::dateProtoFuncSetMonth):
- (JSC::dateProtoFuncSetUTCMonth):
- (JSC::dateProtoFuncSetFullYear):
- (JSC::dateProtoFuncSetUTCFullYear):
- (JSC::dateProtoFuncSetYear):
- (JSC::dateProtoFuncGetYear):
- (JSC::dateProtoFuncToJSON):
- * runtime/ErrorConstructor.cpp:
- (JSC::callErrorConstructor):
+ * runtime/DatePrototype.h:
+ * runtime/ErrorInstance.cpp:
+ * runtime/ErrorInstance.h:
* runtime/ErrorPrototype.cpp:
- (JSC::errorProtoFuncToString):
- * runtime/FunctionConstructor.cpp:
- (JSC::callFunctionConstructor):
* runtime/FunctionPrototype.cpp:
- (JSC::callFunctionPrototype):
- (JSC::functionProtoFuncToString):
- (JSC::functionProtoFuncApply):
- (JSC::functionProtoFuncCall):
+ * runtime/FunctionPrototype.h:
+ * runtime/GetterSetter.h:
+ * runtime/GlobalEvalFunction.h:
+ * runtime/InternalFunction.cpp:
+ * runtime/InternalFunction.h:
+ * runtime/JSAPIValueWrapper.h:
+ * runtime/JSActivation.cpp:
+ * runtime/JSActivation.h:
+ * runtime/JSArray.cpp:
+ * runtime/JSArray.h:
+ * runtime/JSByteArray.cpp:
+ * runtime/JSByteArray.h:
+ * runtime/JSCell.cpp:
* runtime/JSCell.h:
- (JSC::getCallData):
- (JSC::getConstructData):
* runtime/JSFunction.cpp:
- (JSC::callHostFunctionAsConstructor):
* runtime/JSFunction.h:
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::globalFuncEval):
- (JSC::globalFuncParseInt):
- (JSC::globalFuncParseFloat):
- (JSC::globalFuncIsNaN):
- (JSC::globalFuncIsFinite):
- (JSC::globalFuncDecodeURI):
- (JSC::globalFuncDecodeURIComponent):
- (JSC::globalFuncEncodeURI):
- (JSC::globalFuncEncodeURIComponent):
- (JSC::globalFuncEscape):
- (JSC::globalFuncUnescape):
- (JSC::globalFuncJSCPrint):
- * runtime/JSGlobalObjectFunctions.h:
+ * runtime/JSGlobalData.cpp:
+ * runtime/JSGlobalObject.cpp:
+ * runtime/JSGlobalObject.h:
+ * runtime/JSNotAnObject.h:
* runtime/JSONObject.cpp:
- (JSC::JSONProtoFuncParse):
- (JSC::JSONProtoFuncStringify):
+ * runtime/JSONObject.h:
* runtime/JSObject.cpp:
- (JSC::callDefaultValueFunction):
- * runtime/JSValue.h:
+ * runtime/JSObject.h:
+ * runtime/JSObjectWithGlobalObject.h:
+ * runtime/JSPropertyNameIterator.h:
+ * runtime/JSStaticScopeObject.h:
+ * runtime/JSString.h:
+ * runtime/JSVariableObject.h:
+ * runtime/JSWrapperObject.h:
+ * runtime/JSZombie.cpp:
+ * runtime/JSZombie.h:
+ * runtime/Lookup.cpp:
* runtime/MathObject.cpp:
- (JSC::mathProtoFuncAbs):
- (JSC::mathProtoFuncACos):
- (JSC::mathProtoFuncASin):
- (JSC::mathProtoFuncATan):
- (JSC::mathProtoFuncATan2):
- (JSC::mathProtoFuncCeil):
- (JSC::mathProtoFuncCos):
- (JSC::mathProtoFuncExp):
- (JSC::mathProtoFuncFloor):
- (JSC::mathProtoFuncLog):
- (JSC::mathProtoFuncMax):
- (JSC::mathProtoFuncMin):
- (JSC::mathProtoFuncPow):
- (JSC::mathProtoFuncRandom):
- (JSC::mathProtoFuncRound):
- (JSC::mathProtoFuncSin):
- (JSC::mathProtoFuncSqrt):
- (JSC::mathProtoFuncTan):
+ * runtime/MathObject.h:
* runtime/NativeErrorConstructor.cpp:
- (JSC::callNativeErrorConstructor):
+ * runtime/NativeErrorConstructor.h:
* runtime/NumberConstructor.cpp:
- (JSC::callNumberConstructor):
+ * runtime/NumberConstructor.h:
+ * runtime/NumberObject.cpp:
+ * runtime/NumberObject.h:
* runtime/NumberPrototype.cpp:
- (JSC::numberProtoFuncToString):
- (JSC::numberProtoFuncToLocaleString):
- (JSC::numberProtoFuncValueOf):
- (JSC::numberProtoFuncToFixed):
- (JSC::numberProtoFuncToExponential):
- (JSC::numberProtoFuncToPrecision):
* runtime/ObjectConstructor.cpp:
- (JSC::callObjectConstructor):
- (JSC::objectConstructorGetPrototypeOf):
- (JSC::objectConstructorGetOwnPropertyDescriptor):
- (JSC::objectConstructorGetOwnPropertyNames):
- (JSC::objectConstructorKeys):
- (JSC::toPropertyDescriptor):
- (JSC::objectConstructorDefineProperty):
- (JSC::objectConstructorDefineProperties):
- (JSC::objectConstructorCreate):
* runtime/ObjectPrototype.cpp:
- (JSC::objectProtoFuncValueOf):
- (JSC::objectProtoFuncHasOwnProperty):
- (JSC::objectProtoFuncIsPrototypeOf):
- (JSC::objectProtoFuncDefineGetter):
- (JSC::objectProtoFuncDefineSetter):
- (JSC::objectProtoFuncLookupGetter):
- (JSC::objectProtoFuncLookupSetter):
- (JSC::objectProtoFuncPropertyIsEnumerable):
- (JSC::objectProtoFuncToLocaleString):
- (JSC::objectProtoFuncToString):
- * runtime/ObjectPrototype.h:
* runtime/RegExpConstructor.cpp:
- (JSC::callRegExpConstructor):
+ * runtime/RegExpConstructor.h:
* runtime/RegExpObject.cpp:
- (JSC::callRegExpObject):
+ * runtime/RegExpObject.h:
* runtime/RegExpPrototype.cpp:
- (JSC::regExpProtoFuncTest):
- (JSC::regExpProtoFuncExec):
- (JSC::regExpProtoFuncCompile):
- (JSC::regExpProtoFuncToString):
+ * runtime/ScopeChain.cpp:
* runtime/StringConstructor.cpp:
- (JSC::stringFromCharCode):
- (JSC::callStringConstructor):
+ * runtime/StringObject.cpp:
+ * runtime/StringObject.h:
+ * runtime/StringObjectThatMasqueradesAsUndefined.h:
* runtime/StringPrototype.cpp:
- (JSC::stringProtoFuncReplace):
- (JSC::stringProtoFuncToString):
- (JSC::stringProtoFuncCharAt):
- (JSC::stringProtoFuncCharCodeAt):
- (JSC::stringProtoFuncConcat):
- (JSC::stringProtoFuncIndexOf):
- (JSC::stringProtoFuncLastIndexOf):
- (JSC::stringProtoFuncMatch):
- (JSC::stringProtoFuncSearch):
- (JSC::stringProtoFuncSlice):
- (JSC::stringProtoFuncSplit):
- (JSC::stringProtoFuncSubstr):
- (JSC::stringProtoFuncSubstring):
- (JSC::stringProtoFuncToLowerCase):
- (JSC::stringProtoFuncToUpperCase):
- (JSC::stringProtoFuncLocaleCompare):
- (JSC::stringProtoFuncBig):
- (JSC::stringProtoFuncSmall):
- (JSC::stringProtoFuncBlink):
- (JSC::stringProtoFuncBold):
- (JSC::stringProtoFuncFixed):
- (JSC::stringProtoFuncItalics):
- (JSC::stringProtoFuncStrike):
- (JSC::stringProtoFuncSub):
- (JSC::stringProtoFuncSup):
- (JSC::stringProtoFuncFontcolor):
- (JSC::stringProtoFuncFontsize):
- (JSC::stringProtoFuncAnchor):
- (JSC::stringProtoFuncLink):
- (JSC::stringProtoFuncTrim):
- (JSC::stringProtoFuncTrimLeft):
- (JSC::stringProtoFuncTrimRight):
-
-2010-06-02 Mark Rowe <mrowe@apple.com>
-
- Reviewed by Gavin Barraclough.
-
- Add value-representation specific sections to the mac export file.
+ * runtime/StringPrototype.h:
+ * runtime/Structure.cpp:
+ * runtime/Structure.h:
- * Configurations/JavaScriptCore.xcconfig:
- * DerivedSources.make:
- * JavaScriptCore.JSVALUE32_64only.exp: Added.
- * JavaScriptCore.JSVALUE32only.exp: Added.
- * JavaScriptCore.JSVALUE64only.exp: Added.
- * JavaScriptCore.xcodeproj/project.pbxproj:
+2011-02-19 David Kilzer <ddkilzer@apple.com>
-2010-06-02 Mark Rowe <mrowe@apple.com>
+ <http://webkit.org/b/54808> Change jsc target to build directly into JavaScriptCore.framework/Resources/jsc
- Reviewed by Gavin Barraclough.
+ Reviewed by Dan Bernstein.
- <rdar://problem/8054988> Work around an LLVM GCC code generation bug that results in crashes inside PCRE.
+ * Configurations/Base.xcconfig: Added
+ JAVASCRIPTCORE_FRAMEWORKS_DIR variable.
+ * Configurations/JavaScriptCore.xcconfig: Used
+ JAVASCRIPTCORE_FRAMEWORKS_DIR to define INSTALL_PATH.
+ * JavaScriptCore.xcodeproj/project.pbxproj: Set the INSTALL_PATH
+ for Production configuration of jsc target.
+ (Copy Into Framework): Removed old build phase.
+ (Fix Framework Reference): Renamed build phase to "Copy Into
+ Framework". Added "set -x" call to make the script print the
+ commands it is running. Added code to exit early for Production
+ builds since this was never intended for them. Added code to
+ copy jsc into the JavaScriptCore.framework/Resources directory.
+
+2011-02-19 Siddharth Mathur <siddharth.mathur@nokia.com>
- * pcre/pcre_exec.cpp:
- (repeatInformationFromInstructionOffset): Change the type of instructionOffset to int. There's no good
- reason for it to be a short, and using int prevents this code from triggering the LLVM GCC bug.
+ Reviewed by Laszlo Gombos.
-2010-06-02 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
+ [Symbian] OSAllocator implementation for Symbian OS.
+ Manages both data and code region requests. V8 and Sunspider tested
+ OK with interpreter. Not tested with JSC JIT yet as it has unrelated
+ failures. Also no thread safety yet.
+ https://bugs.webkit.org/show_bug.cgi?id=51128
- Reviewed by Kenneth Rohde Christiansen.
+ * JavaScriptCore.pri: removed HAL linkage
+ * wtf/Bitmap.h:
+ (WTF::::findRunOfZeros): find run of zeros in a bitmap. quick n dirty
+ * wtf/OSAllocator.h:
+ (WTF::OSAllocator::decommitAndRelease): decommit explicitly
+ * wtf/OSAllocatorSymbian.cpp: Impl. of OSAllocator interface
+ (WTF::allocateCodeChunk): utility for code chunks
+ (WTF::deallocateCodeChunk): utility for code chunks
+ (WTF::dataAllocatorInstance): getter for data allocator instance
+ (WTF::OSAllocator::reserveUncommitted):
+ (WTF::OSAllocator::releaseDecommitted):
+ (WTF::OSAllocator::commit):
+ (WTF::OSAllocator::decommit):
+ (WTF::OSAllocator::reserveAndCommit):
+ (WTF::PageAllocatorSymbian::PageAllocatorSymbian): maps requests
+ to one underlying Symbian chunk
+ (WTF::PageAllocatorSymbian::~PageAllocatorSymbian):
+ (WTF::PageAllocatorSymbian::reserve):
+ (WTF::PageAllocatorSymbian::release):
+ (WTF::PageAllocatorSymbian::commit):
+ (WTF::PageAllocatorSymbian::decommit):
+ (WTF::PageAllocatorSymbian::contains):
+ * wtf/PageAllocatorSymbian.h: Added.
+ (WTF::SymbianChunk::SymbianChunk): wrapper around RChunk
+ (WTF::SymbianChunk::~SymbianChunk):
+ (WTF::SymbianChunk::contains):
+
+2011-02-19 Yong Li <yoli@rim.com>
- Fix the QScriptValue::strictlyEquals function.
+ Reviewed by Eric Seidel.
- Handling for a few edge cases was added.
+ https://bugs.webkit.org/show_bug.cgi?id=54687
+ When being built with armcc, "int" bit fields are treated as
+ unsigned integers, which will fail the comparisons like "m_offset == -1".
+ Using "signed" fixes the problem.
- New autotest that covers the QScriptValue::strictlyEquals function.
+ * assembler/ARMAssembler.h:
+ * assembler/ARMv7Assembler.h:
- [Qt] QScriptValue::strictlyEquals is broken
- https://bugs.webkit.org/show_bug.cgi?id=36600
+2011-02-18 Geoffrey Garen <ggaren@apple.com>
- * qt/api/qscriptvalue.cpp:
- (QScriptValue::strictlyEquals):
- * qt/api/qscriptvalue_p.h:
- (QScriptValuePrivate::strictlyEquals):
- * qt/tests/qscriptvalue/qscriptvalue.pro:
- * qt/tests/qscriptvalue/tst_qscriptvalue.h:
- * qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp: Added.
- (tst_QScriptValue::strictlyEquals_initData):
- (tst_QScriptValue::strictlyEquals_makeData):
- (tst_QScriptValue::strictlyEquals_test):
+ Reviewed by Sam Weinig.
-2010-06-02 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
+ Made MarkedSpace block iteration size-class agnostic
+ https://bugs.webkit.org/show_bug.cgi?id=54792
+
+ SunSpider reports no change.
- Reviewed by Kenneth Rohde Christiansen.
+ * runtime/MarkedSpace.cpp:
+ (JSC::MarkedSpace::clearMarks):
+ (JSC::MarkedSpace::sweep):
+ (JSC::MarkedSpace::objectCount):
+ (JSC::MarkedSpace::size):
+ (JSC::MarkedSpace::capacity):
+ * runtime/MarkedSpace.h:
+ (JSC::MarkedSpace::forEach): Iterate blocks in hashing order instead of
+ size class list order. This is a much simpler convention in a world
+ of many different size classes.
- New function QScriptEngine::newObject.
+2011-02-18 Kristian Amlie <kristian.amlie@nokia.com>
- The function creates a object of class Object and returns it
- as a QScriptValue.
+ Reviewed by Andreas Kling.
- [Qt] QScriptEngine API should contain a newObject function
- https://bugs.webkit.org/show_bug.cgi?id=39114
+ Added friend exception to Qt platform, which also compiles Windows.
- * qt/api/qscriptengine.cpp:
- (QScriptEngine::newObject):
- * qt/api/qscriptengine.h:
- * qt/api/qscriptengine_p.cpp:
- (QScriptEnginePrivate::newObject):
- * qt/api/qscriptengine_p.h:
- * qt/tests/qscriptengine/tst_qscriptengine.cpp:
- (tst_QScriptEngine::newObject):
+ QtWebKit fails to compile on Windows XP with msvc-2008
+ https://bugs.webkit.org/show_bug.cgi?id=54746
-2010-06-02 Gabor Loki <loki@webkit.org>
+ * bytecode/CodeBlock.h:
+ * runtime/RegExpObject.h:
- Reviewed by Gavin Barraclough.
- https://bugs.webkit.org/show_bug.cgi?id=40011
+2011-02-18 Geoffrey Garen <ggaren@apple.com>
- Thumb-2 build fix: The offset parameter of ldrh should be encoded as an
- imm12 immediate constant in load16. If it is not fit in the instruction
- a temporary register has to be used.
+ (Rolled back in r79022 with crash fixed.)
- * assembler/MacroAssemblerARMv7.h:
- (JSC::MacroAssemblerARMv7::load16):
+ Reviewed by Sam Weinig.
-2010-06-02 Sterling Swigart <sswigart@google.com>
+ Use hashing instead of linear search in the conservative pointer test
+ https://bugs.webkit.org/show_bug.cgi?id=54767
+
+ SunSpider reports no change.
- Reviewed by David Levin.
+ * runtime/MarkedSpace.cpp:
+ (JSC::MarkedSpace::destroy): No need to explicitly clear the blocks array,
+ since freeBlock removes items for us.
- Image Resizer Patch 0: Added compilation argument to conditionally compile pending patches.
- https://bugs.webkit.org/show_bug.cgi?id=39906
+ (JSC::MarkedSpace::freeBlock): Fixed a typo that always removed the last
+ block from the block set instead of the block being freed. Changed to
+ remove a block from our data structures before deallocating it, since
+ this is slightly cleaner.
- * Configurations/FeatureDefines.xcconfig:
+ * runtime/MarkedSpace.h:
+ (JSC::MarkedSpace::contains): Variable-sized objects will use more,
+ smaller blocks, so it's important for the contains check not to be O(n)
+ in the number of blocks.
-2010-06-01 Gavin Barraclough <barraclough@apple.com>
+2011-02-18 chris reiss <christopher.reiss@nokia.com>
- Reviewed by Sam Weinig.
+ Reviewed by Andreas Kling.
- Bug 40021 - Refactor bytecode generation for calls so that register for this & args are allocated together
+ REGRESSION: Date.parse("Tue Nov 23 20:40:05 2010 GMT") returns NaN
+ https://bugs.webkit.org/show_bug.cgi?id=49989
- This is a useful stepping stone towards reversing argument order.
+ updated test fast/js/script-tests/date-parse-test.js
- * bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::addParameter):
- (JSC::BytecodeGenerator::emitCall):
- (JSC::BytecodeGenerator::emitCallEval):
- (JSC::BytecodeGenerator::emitConstruct):
- * bytecompiler/BytecodeGenerator.h:
- (JSC::CallArguments::thisRegister):
- (JSC::CallArguments::argumentRegister):
- (JSC::CallArguments::callFrame):
- (JSC::CallArguments::count):
- (JSC::BytecodeGenerator::shouldEmitProfileHooks):
- * bytecompiler/NodesCodegen.cpp:
- (JSC::NewExprNode::emitBytecode):
- (JSC::CallArguments::CallArguments):
- (JSC::EvalFunctionCallNode::emitBytecode):
- (JSC::FunctionCallValueNode::emitBytecode):
- (JSC::FunctionCallResolveNode::emitBytecode):
- (JSC::FunctionCallBracketNode::emitBytecode):
- (JSC::FunctionCallDotNode::emitBytecode):
- (JSC::CallFunctionCallDotNode::emitBytecode):
- (JSC::ApplyFunctionCallDotNode::emitBytecode):
-
-2010-06-01 Yong Li <yoli@rim.com>
+ * wtf/DateMath.cpp:
+ (WTF::parseDateFromNullTerminatedCharacters):
- Reviewed by Darin Adler.
+2011-02-18 Sheriff Bot <webkit.review.bot@gmail.com>
- Explicitly use PTHREAD_MUTEX_NORMAL to create pthread mutex.
- https://bugs.webkit.org/show_bug.cgi?id=39893
+ Unreviewed, rolling out r79022.
+ http://trac.webkit.org/changeset/79022
+ https://bugs.webkit.org/show_bug.cgi?id=54775
- * wtf/ThreadingPthreads.cpp:
- (WTF::Mutex::Mutex):
+ It broke the whole world (Requested by Ossy on #webkit).
-2010-06-01 Kwang Yul Seo <skyul@company100.net>
+ * runtime/MarkedSpace.h:
+ (JSC::MarkedSpace::contains):
- Reviewed by Xan Lopez.
+2011-02-18 Yael Aharon <yael.aharon@nokia.com>
- [GTK] Use DEFINE_STATIC_LOCAL for threadMapMutex and threadMap
- https://bugs.webkit.org/show_bug.cgi?id=39831
+ Reviewed by Dave Hyatt.
- Use DEFINE_STATIC_LOCAL for static local variables.
+ Add support for dir=auto
+ https://bugs.webkit.org/show_bug.cgi?id=50916
- * wtf/gtk/ThreadingGtk.cpp:
- (WTF::threadMapMutex):
- (WTF::threadMap):
- (WTF::identifierByGthreadHandle):
+ Change defaultWritingDirection() to return if the writing direction
+ was determined from a letter with strong directionality or not.
-2010-06-01 Kent Tamura <tkent@chromium.org>
+ * JavaScriptCore.exp:
+ * JavaScriptCore.order:
+ * wtf/text/StringImpl.cpp:
+ (WTF::StringImpl::defaultWritingDirection):
+ * wtf/text/StringImpl.h:
+ * wtf/text/WTFString.h:
+ (WTF::String::defaultWritingDirection):
- Reviewed by Shinichiro Hamaji.
+2011-02-18 Geoffrey Garen <ggaren@apple.com>
- Fix style errors of dtoa
- https://bugs.webkit.org/show_bug.cgi?id=39972
+ Reviewed by Sam Weinig.
- Fix all errors reported by check-webkit-style.
+ Use hashing instead of linear search in the conservative pointer test
+ https://bugs.webkit.org/show_bug.cgi?id=54767
+
+ SunSpider reports no change.
- * wtf/dtoa.cpp:
- * wtf/dtoa.h:
+ * runtime/MarkedSpace.h:
+ (JSC::MarkedSpace::contains): Variable-sized objects will use more,
+ smaller blocks, so it's important for the contains check not to be O(n)
+ in the number of blocks.
-2010-05-30 Darin Adler <darin@apple.com>
+2011-02-18 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
- * wtf/OwnArrayPtr.h:
- (WTF::OwnArrayPtr::set): Fix the assertion in here to match the one in OwnPtr.
- At some point someone fixed the "asserts when assigning to 0 and the pointer is
- already 0" issue in OwnPtr but forgot to do it here.
-
-2010-05-29 Geoffrey Garen <ggaren@apple.com>
-
- Windows build fix: Updated exported symbols.
+ Tightened some usage accounting code in MarkedSpace
+ https://bugs.webkit.org/show_bug.cgi?id=54761
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
-
-2010-05-29 Geoffrey Garen <ggaren@apple.com>
-
- Disabled ENABLE_JIT_OPTIMIZE_NATIVE_CALL on Windows for now, until I
- can figure out why it's crashing.
-
- * wtf/Platform.h:
+ SunSpider reports no change.
-2010-05-29 Geoffrey Garen <ggaren@apple.com>
+ * runtime/Heap.cpp:
+ (JSC::Heap::Heap): Initialize the marked space high water mark on
+ construction, instead of relying on some implicit subtleties to make
+ not initializing it work out OK.
- Fixed Windows crash seen on buildbot.
+ * runtime/Heap.h: Fixed up includes.
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTINativeCall): __fastcall puts the first
- argument in ecx.
+ * runtime/MarkedBlock.h: Made firstAtom() static so clients can call it
+ even without having allocated a block.
-2010-05-28 Geoffrey Garen <ggaren@apple.com>
+ * runtime/MarkedSpace.cpp:
+ (JSC::MarkedSpace::MarkedSpace): Don't pre-allocate a block, since this
+ would be prohibitively expensive with multiple size classes.
- Windows build fix: Updated exported symbols.
+ (JSC::MarkedSpace::allocateBlock):
+ (JSC::MarkedSpace::freeBlock): Track allocated blocks in a hash set,
+ since linear search in the contains check will be prohibitively
+ expensive once we're using lots of smaller blocks.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ (JSC::MarkedSpace::allocate): Don't assume that we always have a block
+ allocated, since we don't anymore. (See above.)
-2010-05-28 Geoffrey Garen <ggaren@apple.com>
+ (JSC::MarkedSpace::reset):
+ * runtime/MarkedSpace.h: Updated for changes mentioned above.
- Qt build fix: disable a little more stuff when JIT_OPTIMIZE_NATIVE_CALL
- is disabled.
+2011-02-17 Geoffrey Garen <ggaren@apple.com>
- * runtime/Lookup.cpp:
- (JSC::setUpStaticFunctionSlot):
- * runtime/Lookup.h:
- * wtf/Platform.h:
+ Reviewed by Sam Weinig.
-2010-05-28 Geoffrey Garen <ggaren@apple.com>
+ Made object allocation secretly variable-sized (Shhhh!)
+ https://bugs.webkit.org/show_bug.cgi?id=54721
+
+ SunSpider reports no change.
+
+ Internally, MarkedBlock now makes variable-sized allocations, even
+ though MarkedSpace doesn't take advantage of this yet.
- Windows build fix: Updated exported symbols.
+ * runtime/MarkedBlock.cpp:
+ (JSC::MarkedBlock::MarkedBlock): No need to ASSERT that allocations are
+ fixed-sized.
- * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * runtime/MarkedBlock.h: Shrunk the atom size so we can allocate things
+ that are not multiples of 64 bytes.
-2010-05-28 Geoffrey Garen <ggaren@apple.com>
+2011-02-17 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig, Gavin Barraclough, Oliver Hunt.
+ Reviewed by Sam Weinig.
- Simplified the host calling convention.
+ Fixed some math errors when when using variable-sized cells
+ https://bugs.webkit.org/show_bug.cgi?id=54717
- 22.5% speedup on 32-bit host function calls. 9.5% speedup on 64-bit host
- function calls.
-
- No change on SunSpider.
-
- All JS calls (but not constructs, yet) now go through the normal JS
- calling convention via the RegisterFile. As a result, the host calling
- convention, which used to be this
-
- JSValue (JSC_HOST_CALL *NativeFunction)(ExecState*, JSObject*, JSValue thisValue, const ArgList&)
-
- is now this
-
- JSValue (JSC_HOST_CALL *NativeFunction)(ExecState*)
-
- Callee, 'this', and argument access all hapen relative to the ExecState*,
- which is a pointer into the RegisterFile.
-
- This patch comes in two parts.
-
- PART ONE: Functional code changes.
+ SunSpider reports no change.
- * wtf/Platform.h: Disabled optimized calls on platforms I didn't test.
- We can re-enable once we verify that host calls on these platforms are
- correct.
-
- * debugger/DebuggerCallFrame.cpp:
- (JSC::DebuggerCallFrame::functionName):
- (JSC::DebuggerCallFrame::calculatedFunctionName): Updated for change to
- ExecState::callee().
-
- (JSC::DebuggerCallFrame::thisObject): Updated for removal of ExecState::thisValue().
-
- * interpreter/CallFrame.cpp:
- * interpreter/CallFrame.h:
- (JSC::ExecState::callee):
- (JSC::ExecState::scopeChain):
- (JSC::ExecState::init): Changed callee() to be JSObject* instead of
- JSFunction* -- now, it might be some other callable host object.
-
- (JSC::ExecState::hostThisRegister):
- (JSC::ExecState::hostThisValue):
- (JSC::ExecState::argumentCount):
- (JSC::ExecState::argumentCountIncludingThis):
- (JSC::ExecState::argument):
- (JSC::ExecState::setArgumentCountIncludingThis):
- (JSC::ExecState::setCallee): Added convenient accessors for arguments
- from within a host function. Removed thisValue() because it was too
- tempting to use incorrectly, and it only had one or two clients, anyway.
+ Computer Science Barbie says, "Math is not so hard afterall!"
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::callEval): Updated for removal of ExecState::thisValue().
+ * runtime/JSCell.h:
+ (JSC::JSCell::MarkedBlock::allocate): Round up when calculating the
+ minimum number of atoms required for a cell, since rounding down
+ will get you splinched.
- (JSC::Interpreter::throwException): Be sure to shrink the register file
- before invoking the exception handler, to reduce the chances that the
- handler will re-throw in the case of stack overflow. (Re-throwing is now
- more likely than it used to be, since standardizing the calling convention
- implicitly added stack overflow checks to some places where they used to be missing.)
+ * runtime/MarkedBlock.cpp:
+ (JSC::MarkedBlock::MarkedBlock):
+ (JSC::MarkedBlock::sweep):
+ * runtime/MarkedBlock.h:
+ (JSC::MarkedBlock::forEach): Changed a bunch of != tests to < tests
+ because m_endAtom is actually a fuzzy end -- iterating from firstAtom()
+ may not hit m_endAtom exactly.
- (JSC::Interpreter::execute): Clarified the scope of DynamicGlobalObjectScope.
- Updated for CallFrame::init API change.
+2011-02-17 Geoffrey Garen <ggaren@apple.com>
- (JSC::Interpreter::executeCall): Clarified scope of DynamicGlobalObjectScope.
- Updated for CallFrame::init API change. Added support for calling a host
- function.
+ Reviewed by Sam Weinig.
- (JSC::Interpreter::executeConstruct): Clarified scope of DynamicGlobalObjectScope.
- Updated for CallFrame::init API change.
+ A little more abstraction for MarkedSpace::contains
+ https://bugs.webkit.org/show_bug.cgi?id=54715
- (JSC::Interpreter::prepareForRepeatCall): Updated for CallFrame::init API change.
+ * runtime/MarkedBlock.h:
+ (JSC::MarkedBlock::contains): Added a contains function, so MarkedSpace
+ doesn't have to know how MarkedBlock tracks containment internally.
- (JSC::Interpreter::privateExecute): Updated for CallFrame::init API change.
- Added some explicit JSValue(JSObject*) initialization, since relaxing
- the JSFunction* restriction on callee has made register types more ambiguous.
- Removed toThisObject() conversion, since all callees do it themselves now.
- Updated host function call for new host function signature. Updated for
- change to ExecState::argumentCount() API.
+ * runtime/MarkedSpace.h:
+ (JSC::MarkedSpace::contains): Call through to MarkedBlock to figure out
+ if a cell that seems to be in a block is valid.
- * interpreter/Register.h:
- (JSC::Register::):
- (JSC::Register::operator=):
- (JSC::Register::function): Changed callee() to be JSObject* instead of
- JSFunction* -- now, it might be some other callable host object.
+2011-02-17 Geoffrey Garen <ggaren@apple.com>
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTINativeCall):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTINativeCall): Deleted a bunch of code that
- set up the arguments to host functions -- all but one of the arguments
- are gone now. This is the actual optimization.
+ Reviewed by Sam Weinig.
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION): Updated for ExecState and Register API
- changes noted above. Removed toThisObject() conversion, since all callees
- do it themselves now.
+ Removed the invariant that the last cell in a block is always marked
+ https://bugs.webkit.org/show_bug.cgi?id=54713
- * runtime/ArgList.h:
- (JSC::ArgList::ArgList): ArgList is getting close to unused. Added a
- temporary shim for converting from ExecState* to ArgList where it's still
- necessary.
-
- * runtime/Arguments.h:
- (JSC::Arguments::getArgumentsData):
- (JSC::Arguments::Arguments): Updated for ExecState and Register API
- changes noted above.
-
- * runtime/CallData.cpp:
- (JSC::call): Changed call always to call Interpreter::executeCall, even
- for host functions. This ensures that the normal calling convention is
- set up in the RegsiterFile when calling from C++ to host function.
-
- * runtime/CallData.h: Changed host function signature as described above.
-
- * runtime/ConstructData.cpp:
- (JSC::construct): Moved JSFunction::construct code here so I could nix
- JSFunction::call and JSFunction::call. We want a JSFunction-agnostic
- way to call and construct, so that everything works naturally for non-
- JSFunction objects.
-
- * runtime/JSFunction.cpp:
- (JSC::callHostFunctionAsConstructor):
- * runtime/JSFunction.h: Updated for ExecState and Register API changes
- noted above. Nixed JSFunction::call and JSFunction::construct, noted above.
-
- * runtime/JSGlobalObject.cpp:
- (JSC::JSGlobalObject::init): Ditto.
-
- PART TWO: Global search and replace.
+ SunSpider reports no change.
- In the areas below, I used global search-and-replace to change
- (ExecState*, JSObject*, JSValue, const ArgList&) => (ExecState*)
- args.size() => exec->argumentCount()
- args.at(i) => exec->argument(i)
+ This adds one branch to allocation, but simplifies the mark invariant,
+ especially in a world of variable-sized cells. Now, it really is true
+ that any cell whose mark bit is set is a valid, live cell whose
+ constructor has run and whose destructor has not run.
- * API/JSCallbackFunction.cpp:
- (JSC::JSCallbackFunction::call):
- * API/JSCallbackFunction.h:
- * API/JSCallbackObject.h:
- * API/JSCallbackObjectFunctions.h:
- (JSC::::call):
- * JavaScriptCore.exp:
- * jsc.cpp:
- (functionPrint):
- (functionDebug):
- (functionGC):
- (functionVersion):
- (functionRun):
- (functionLoad):
- (functionCheckSyntax):
- (functionSetSamplingFlags):
- (functionClearSamplingFlags):
- (functionReadline):
- (functionQuit):
- * runtime/ArrayConstructor.cpp:
- (JSC::callArrayConstructor):
- (JSC::arrayConstructorIsArray):
- * runtime/ArrayPrototype.cpp:
- (JSC::arrayProtoFuncToString):
- (JSC::arrayProtoFuncToLocaleString):
- (JSC::arrayProtoFuncJoin):
- (JSC::arrayProtoFuncConcat):
- (JSC::arrayProtoFuncPop):
- (JSC::arrayProtoFuncPush):
- (JSC::arrayProtoFuncReverse):
- (JSC::arrayProtoFuncShift):
- (JSC::arrayProtoFuncSlice):
- (JSC::arrayProtoFuncSort):
- (JSC::arrayProtoFuncSplice):
- (JSC::arrayProtoFuncUnShift):
- (JSC::arrayProtoFuncFilter):
- (JSC::arrayProtoFuncMap):
- (JSC::arrayProtoFuncEvery):
- (JSC::arrayProtoFuncForEach):
- (JSC::arrayProtoFuncSome):
- (JSC::arrayProtoFuncReduce):
- (JSC::arrayProtoFuncReduceRight):
- (JSC::arrayProtoFuncIndexOf):
- (JSC::arrayProtoFuncLastIndexOf):
- * runtime/BooleanConstructor.cpp:
- (JSC::callBooleanConstructor):
- * runtime/BooleanPrototype.cpp:
- (JSC::booleanProtoFuncToString):
- (JSC::booleanProtoFuncValueOf):
- * runtime/DateConstructor.cpp:
- (JSC::callDate):
- (JSC::dateParse):
- (JSC::dateNow):
- (JSC::dateUTC):
- * runtime/DatePrototype.cpp:
- (JSC::formatLocaleDate):
- (JSC::fillStructuresUsingTimeArgs):
- (JSC::fillStructuresUsingDateArgs):
- (JSC::dateProtoFuncToString):
- (JSC::dateProtoFuncToUTCString):
- (JSC::dateProtoFuncToISOString):
- (JSC::dateProtoFuncToDateString):
- (JSC::dateProtoFuncToTimeString):
- (JSC::dateProtoFuncToLocaleString):
- (JSC::dateProtoFuncToLocaleDateString):
- (JSC::dateProtoFuncToLocaleTimeString):
- (JSC::dateProtoFuncGetTime):
- (JSC::dateProtoFuncGetFullYear):
- (JSC::dateProtoFuncGetUTCFullYear):
- (JSC::dateProtoFuncToGMTString):
- (JSC::dateProtoFuncGetMonth):
- (JSC::dateProtoFuncGetUTCMonth):
- (JSC::dateProtoFuncGetDate):
- (JSC::dateProtoFuncGetUTCDate):
- (JSC::dateProtoFuncGetDay):
- (JSC::dateProtoFuncGetUTCDay):
- (JSC::dateProtoFuncGetHours):
- (JSC::dateProtoFuncGetUTCHours):
- (JSC::dateProtoFuncGetMinutes):
- (JSC::dateProtoFuncGetUTCMinutes):
- (JSC::dateProtoFuncGetSeconds):
- (JSC::dateProtoFuncGetUTCSeconds):
- (JSC::dateProtoFuncGetMilliSeconds):
- (JSC::dateProtoFuncGetUTCMilliseconds):
- (JSC::dateProtoFuncGetTimezoneOffset):
- (JSC::dateProtoFuncSetTime):
- (JSC::setNewValueFromTimeArgs):
- (JSC::setNewValueFromDateArgs):
- (JSC::dateProtoFuncSetMilliSeconds):
- (JSC::dateProtoFuncSetUTCMilliseconds):
- (JSC::dateProtoFuncSetSeconds):
- (JSC::dateProtoFuncSetUTCSeconds):
- (JSC::dateProtoFuncSetMinutes):
- (JSC::dateProtoFuncSetUTCMinutes):
- (JSC::dateProtoFuncSetHours):
- (JSC::dateProtoFuncSetUTCHours):
- (JSC::dateProtoFuncSetDate):
- (JSC::dateProtoFuncSetUTCDate):
- (JSC::dateProtoFuncSetMonth):
- (JSC::dateProtoFuncSetUTCMonth):
- (JSC::dateProtoFuncSetFullYear):
- (JSC::dateProtoFuncSetUTCFullYear):
- (JSC::dateProtoFuncSetYear):
- (JSC::dateProtoFuncGetYear):
- (JSC::dateProtoFuncToJSON):
- * runtime/ErrorConstructor.cpp:
- (JSC::callErrorConstructor):
- * runtime/ErrorPrototype.cpp:
- (JSC::errorProtoFuncToString):
- * runtime/FunctionConstructor.cpp:
- (JSC::callFunctionConstructor):
- * runtime/FunctionPrototype.cpp:
- (JSC::callFunctionPrototype):
- (JSC::functionProtoFuncToString):
- (JSC::functionProtoFuncApply):
- (JSC::functionProtoFuncCall):
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::encode):
- (JSC::decode):
- (JSC::globalFuncEval):
- (JSC::globalFuncParseInt):
- (JSC::globalFuncParseFloat):
- (JSC::globalFuncIsNaN):
- (JSC::globalFuncIsFinite):
- (JSC::globalFuncDecodeURI):
- (JSC::globalFuncDecodeURIComponent):
- (JSC::globalFuncEncodeURI):
- (JSC::globalFuncEncodeURIComponent):
- (JSC::globalFuncEscape):
- (JSC::globalFuncUnescape):
- (JSC::globalFuncJSCPrint):
- * runtime/JSGlobalObjectFunctions.h:
- * runtime/JSONObject.cpp:
- (JSC::JSONProtoFuncParse):
- (JSC::JSONProtoFuncStringify):
- * runtime/JSString.h:
- * runtime/MathObject.cpp:
- (JSC::mathProtoFuncAbs):
- (JSC::mathProtoFuncACos):
- (JSC::mathProtoFuncASin):
- (JSC::mathProtoFuncATan):
- (JSC::mathProtoFuncATan2):
- (JSC::mathProtoFuncCeil):
- (JSC::mathProtoFuncCos):
- (JSC::mathProtoFuncExp):
- (JSC::mathProtoFuncFloor):
- (JSC::mathProtoFuncLog):
- (JSC::mathProtoFuncMax):
- (JSC::mathProtoFuncMin):
- (JSC::mathProtoFuncPow):
- (JSC::mathProtoFuncRandom):
- (JSC::mathProtoFuncRound):
- (JSC::mathProtoFuncSin):
- (JSC::mathProtoFuncSqrt):
- (JSC::mathProtoFuncTan):
- * runtime/NativeErrorConstructor.cpp:
- (JSC::callNativeErrorConstructor):
- * runtime/NumberConstructor.cpp:
- (JSC::callNumberConstructor):
- * runtime/NumberPrototype.cpp:
- (JSC::numberProtoFuncToString):
- (JSC::numberProtoFuncToLocaleString):
- (JSC::numberProtoFuncValueOf):
- (JSC::numberProtoFuncToFixed):
- (JSC::numberProtoFuncToExponential):
- (JSC::numberProtoFuncToPrecision):
- * runtime/ObjectConstructor.cpp:
- (JSC::callObjectConstructor):
- (JSC::objectConstructorGetPrototypeOf):
- (JSC::objectConstructorGetOwnPropertyDescriptor):
- (JSC::objectConstructorGetOwnPropertyNames):
- (JSC::objectConstructorKeys):
- (JSC::objectConstructorDefineProperty):
- (JSC::objectConstructorDefineProperties):
- (JSC::objectConstructorCreate):
- * runtime/ObjectPrototype.cpp:
- (JSC::objectProtoFuncValueOf):
- (JSC::objectProtoFuncHasOwnProperty):
- (JSC::objectProtoFuncIsPrototypeOf):
- (JSC::objectProtoFuncDefineGetter):
- (JSC::objectProtoFuncDefineSetter):
- (JSC::objectProtoFuncLookupGetter):
- (JSC::objectProtoFuncLookupSetter):
- (JSC::objectProtoFuncPropertyIsEnumerable):
- (JSC::objectProtoFuncToLocaleString):
- (JSC::objectProtoFuncToString):
- * runtime/ObjectPrototype.h:
- * runtime/Operations.h:
- (JSC::jsString):
- * runtime/RegExpConstructor.cpp:
- (JSC::callRegExpConstructor):
- * runtime/RegExpObject.cpp:
- (JSC::RegExpObject::test):
- (JSC::RegExpObject::exec):
- (JSC::callRegExpObject):
- (JSC::RegExpObject::match):
- * runtime/RegExpObject.h:
- * runtime/RegExpPrototype.cpp:
- (JSC::regExpProtoFuncTest):
- (JSC::regExpProtoFuncExec):
- (JSC::regExpProtoFuncCompile):
- (JSC::regExpProtoFuncToString):
- * runtime/StringConstructor.cpp:
- (JSC::stringFromCharCodeSlowCase):
- (JSC::stringFromCharCode):
- (JSC::callStringConstructor):
- * runtime/StringPrototype.cpp:
- (JSC::stringProtoFuncReplace):
- (JSC::stringProtoFuncToString):
- (JSC::stringProtoFuncCharAt):
- (JSC::stringProtoFuncCharCodeAt):
- (JSC::stringProtoFuncConcat):
- (JSC::stringProtoFuncIndexOf):
- (JSC::stringProtoFuncLastIndexOf):
- (JSC::stringProtoFuncMatch):
- (JSC::stringProtoFuncSearch):
- (JSC::stringProtoFuncSlice):
- (JSC::stringProtoFuncSplit):
- (JSC::stringProtoFuncSubstr):
- (JSC::stringProtoFuncSubstring):
- (JSC::stringProtoFuncToLowerCase):
- (JSC::stringProtoFuncToUpperCase):
- (JSC::stringProtoFuncLocaleCompare):
- (JSC::stringProtoFuncBig):
- (JSC::stringProtoFuncSmall):
- (JSC::stringProtoFuncBlink):
- (JSC::stringProtoFuncBold):
- (JSC::stringProtoFuncFixed):
- (JSC::stringProtoFuncItalics):
- (JSC::stringProtoFuncStrike):
- (JSC::stringProtoFuncSub):
- (JSC::stringProtoFuncSup):
- (JSC::stringProtoFuncFontcolor):
- (JSC::stringProtoFuncFontsize):
- (JSC::stringProtoFuncAnchor):
- (JSC::stringProtoFuncLink):
- (JSC::stringProtoFuncTrim):
- (JSC::stringProtoFuncTrimLeft):
- (JSC::stringProtoFuncTrimRight):
-
-2010-05-28 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
+ * runtime/JSCell.h:
+ (JSC::JSCell::MarkedBlock::allocate): Changed this do-while into a while
+ since we can no longer rely on a set mark bit to break out of this loop
+ before it reaches the end of the block.
- Reviewed by Geoffrey Garen.
+ * runtime/MarkedBlock.cpp:
+ (JSC::MarkedBlock::MarkedBlock):
+ (JSC::MarkedBlock::sweep):
+ * runtime/MarkedBlock.h:
+ (JSC::MarkedBlock::isEmpty):
+ (JSC::MarkedBlock::clearMarks):
+ (JSC::MarkedBlock::markCount):
+ (JSC::MarkedBlock::forEach): No need to set a special last mark bit.
- Fix the JSObjectSetPrototype function.
+2011-02-17 Sheriff Bot <webkit.review.bot@gmail.com>
- A cycle in a prototype chain can cause an application hang or
- even crash.
- A check for a prototype chain cycles was added to
- the JSObjectSetPrototype.
+ Unreviewed, rolling out r78856 and r78907.
+ http://trac.webkit.org/changeset/78856
+ http://trac.webkit.org/changeset/78907
+ https://bugs.webkit.org/show_bug.cgi?id=54705
- JSObjectSetPrototype doesn't check for cycle in prototype chain.
- https://bugs.webkit.org/show_bug.cgi?id=39360
+ These seem to break tests on 32-bit builds. (Requested by
+ aroben on #webkit).
- * API/JSObjectRef.cpp:
- (JSObjectSetPrototype):
- * API/tests/testapi.c:
- (assertTrue):
- (checkForCycleInPrototypeChain):
- (main):
- * runtime/JSObject.cpp:
- (JSC::JSObject::put):
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * collector/handles/Global.h:
+ (JSC::Global::internalSet):
+ * collector/handles/Handle.h:
+ (JSC::HandleTypes::getFromSlot):
+ (JSC::HandleTypes::toJSValue):
+ (JSC::HandleTypes::validateUpcast):
+ (JSC::HandleConverter::operator->):
+ (JSC::HandleConverter::operator*):
+ (JSC::Handle::Handle):
+ (JSC::Handle::get):
+ * runtime/JSArray.cpp:
+ (JSC::JSArray::sortNumeric):
* runtime/JSObject.h:
- (JSC::JSObject::setPrototypeWithCycleCheck):
-
-2010-05-28 Chao-ying Fu <fu@mips.com>
-
- Reviewed by Eric Seidel.
-
- Fix MIPS JIT DoubleGreaterThanOrEqual Operands
- https://bugs.webkit.org/show_bug.cgi?id=39504
-
- Swapped two operands of left and right for DoubleGreaterThanOrEqual.
- This patch fixed two layout tests as follows.
- fast/js/comparison-operators-greater.html
- fast/js/comparison-operators-less.html
-
- * assembler/MacroAssemblerMIPS.h:
- (JSC::MacroAssemblerMIPS::branchDouble):
+ (JSC::JSObject::inlineGetOwnPropertySlot):
+ * runtime/SlotAccessor.h: Removed.
+ * runtime/WeakGCPtr.h:
+ (JSC::WeakGCPtr::get):
+ (JSC::WeakGCPtr::internalSet):
+ * runtime/WriteBarrier.h:
+ (JSC::DeprecatedPtr::DeprecatedPtr):
+ (JSC::DeprecatedPtr::get):
+ (JSC::DeprecatedPtr::operator*):
+ (JSC::DeprecatedPtr::operator->):
+ (JSC::DeprecatedPtr::slot):
+ (JSC::DeprecatedPtr::operator UnspecifiedBoolType*):
+ (JSC::DeprecatedPtr::operator!):
+ (JSC::WriteBarrierBase::set):
+ (JSC::WriteBarrierBase::get):
+ (JSC::WriteBarrierBase::operator*):
+ (JSC::WriteBarrierBase::operator->):
+ (JSC::WriteBarrierBase::clear):
+ (JSC::WriteBarrierBase::slot):
+ (JSC::WriteBarrierBase::operator UnspecifiedBoolType*):
+ (JSC::WriteBarrierBase::operator!):
+ (JSC::WriteBarrierBase::setWithoutWriteBarrier):
+ (JSC::WriteBarrier::WriteBarrier):
-2010-05-28 Gavin Barraclough <barraclough@apple.com>
+2011-02-17 Csaba Osztrogonác <ossy@webkit.org>
- Reviewed by Geoff Garen.
+ Unreviewed.
- Move jit compilation from linking thunks into cti_vm_lazyLink methods.
+ [Qt] Buildfix.
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
+ * wtf/RetainPtr.h: Add missing PLATFORM(CF) guard.
-2010-05-28 Gavin Barraclough <barraclough@apple.com>
+2011-02-17 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Sam Weinig.
+ Reviewed by Oliver Hunt.
- Bug 39898 - Move arity check into callee.
+ Made MarkedBlock variable-sized
+ https://bugs.webkit.org/show_bug.cgi?id=54692
- We can reduce the size of the virtual call trampolines by moving the arity check
- into the callee functions. As a following step we will be able to remove the
- check for native function / codeblocks by performing translation in a lazy stub.
+ SunSpider reports no change.
- * interpreter/CallFrame.h:
- (JSC::ExecState::init):
- (JSC::ExecState::setReturnPC):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompile):
- (JSC::JIT::linkCall):
- (JSC::JIT::linkConstruct):
- * jit/JIT.h:
- (JSC::JIT::compile):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * runtime/Executable.cpp:
- (JSC::FunctionExecutable::generateJITCodeForCall):
- (JSC::FunctionExecutable::generateJITCodeForConstruct):
- (JSC::FunctionExecutable::reparseExceptionInfo):
- * runtime/Executable.h:
- (JSC::NativeExecutable::NativeExecutable):
- (JSC::FunctionExecutable::generatedJITCodeForCallWithArityCheck):
- (JSC::FunctionExecutable::generatedJITCodeForConstructWithArityCheck):
-
-2010-05-27 Luiz Agostini <luiz.agostini@openbossa.org>
-
- Reviewed by Darin Adler.
-
- UTF-16 code points compare() for String objects
- https://bugs.webkit.org/show_bug.cgi?id=39701
-
- Moving compare() implementation from UString to StringImpl for it to be shared
- with String. Adding overloaded free functions codePointCompare() in StringImpl
- and WTFString. Renaming function compare in UString to codePointCompare to be
- consistent.
+ Each MarkedBlock is now composed of a set of fixed-sized atoms, with one
+ mark bit per atom. A given cell may be composed of one or more atoms.
+
+ * runtime/Heap.cpp:
+ (JSC::Heap::allocate): Made fixed-sizedness a property of MarkedSpace,
+ bubbling it up from MarkedBlock, since MarkedBlock now supports variable-
+ sizedness.
- * runtime/JSArray.cpp:
- (JSC::compareByStringPairForQSort):
- * runtime/UString.cpp:
- * runtime/UString.h:
- (JSC::codePointCompare):
- * wtf/text/StringImpl.cpp:
- (WebCore::codePointCompare):
- * wtf/text/StringImpl.h:
- * wtf/text/WTFString.cpp:
- (WebCore::codePointCompare):
- * wtf/text/WTFString.h:
+ * runtime/JSCell.h:
+ (JSC::JSCell::MarkedBlock::allocate): Removed use of CELLS_PER_BLOCK and
+ (implicit) one constants -- these quantities are not constant anymore.
+ Updated for switch from cell to atom.
-2010-05-26 Darin Adler <darin@apple.com>
+ * runtime/MarkedBlock.cpp:
+ (JSC::MarkedBlock::create):
+ (JSC::MarkedBlock::destroy):
+ (JSC::MarkedBlock::MarkedBlock):
+ (JSC::MarkedBlock::sweep):
+ * runtime/MarkedBlock.h:
+ (JSC::MarkedBlock::firstAtom):
+ (JSC::MarkedBlock::atoms):
+ (JSC::MarkedBlock::isAtomAligned):
+ (JSC::MarkedBlock::blockFor):
+ (JSC::MarkedBlock::isEmpty):
+ (JSC::MarkedBlock::clearMarks):
+ (JSC::MarkedBlock::size):
+ (JSC::MarkedBlock::capacity):
+ (JSC::MarkedBlock::atomNumber):
+ (JSC::MarkedBlock::isMarked):
+ (JSC::MarkedBlock::testAndSetMarked):
+ (JSC::MarkedBlock::setMarked):
+ (JSC::MarkedBlock::forEach): Same as above. Also removed use of CELL_SIZE
+ and BLOCK_SIZE, and switched away from calling arbitrary pointers cells.
- Reviewed by Kent Tamura.
+ * runtime/MarkedSpace.cpp:
+ (JSC::MarkedSpace::MarkedSpace):
+ (JSC::MarkedSpace::allocateBlock):
+ (JSC::MarkedSpace::allocate):
+ (JSC::MarkedSpace::reset):
+ * runtime/MarkedSpace.h:
+ (JSC::CollectorHeap::CollectorHeap):
+ (JSC::MarkedSpace::contains): Updated for renames. Made fixed-sizedness
+ a property of MarkedSpace.
- Null characters handled incorrectly in ToNumber conversion
- https://bugs.webkit.org/show_bug.cgi?id=38088
+2011-02-17 Oliver Hunt <oliver@apple.com>
- * runtime/JSGlobalObjectFunctions.cpp:
- (JSC::parseInt): Changed code to use UTF8String().data() instead of
- ascii() to fix the thread safety issue. Code path is covered by existing
- tests in run-javascriptcore-tests.
- (JSC::parseFloat): Moved comment to UString::toDouble since the issue
- affects all clients, not just parseFloat. Specifically, this also affects
- standard JavaScript numeric conversion, ToNumber.
+ Attempt to fix windows build
- * runtime/UString.cpp:
- (JSC::UString::toDouble): Added a comment about incorrect space skipping.
- Changed trailing junk check to use the length of the CString instead of
- checking for a null character. Also got rid of a little unneeded logic
- in the case where we tolerate trailing junk.
+ * runtime/WriteBarrier.h:
-2010-05-27 Nathan Lawrence <nlawrence@apple.com>
+2011-02-17 Oliver Hunt <oliver@apple.com>
Reviewed by Geoffrey Garen.
- Search for the new allocation one word at a time. Improves
- performance on SunSpider by approximately 1%.
- http://bugs.webkit.org/show_bug.cgi?id=39758
-
- * runtime/Collector.cpp:
- (JSC::Heap::allocate):
- * runtime/Collector.h:
- (JSC::CollectorBitmap::advanceToNextPossibleFreeCell):
-
-2010-05-27 Kevin Ollivier <kevino@theolliviers.com>
-
- [wx] Build fixes for Windows after recent changes.
-
- * wscript:
-
-2010-05-27 Gustavo Noronha Silva <gns@gnome.org>
-
- More build fixage for make dist.
-
- * GNUmakefile.am:
-
-2010-05-27 Kwang Yul Seo <skyul@company100.net>
-
- Reviewed by Darin Adler.
-
- RVCT does not have strnstr.
- https://bugs.webkit.org/show_bug.cgi?id=39719
-
- Add COMPILER(RVCT) guard to strnstr in StringExtras.h as RVCT does not provide strnstr.
+ Refactor WriteBarrier and DeprecatedPtr to have less code duplication.
+ https://bugs.webkit.org/show_bug.cgi?id=54608
- * wtf/StringExtras.h:
+ Make use of the tricks used for Handle, et al to avoid duplicating all
+ of the logic for DeprecatedPtr and WriteBarrier simply to support known
+ vs. unknown types.
-2010-05-26 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Bug 39795 - Add support for YARR JIT generation of greedy quantified parens at the end of the main disjunction.
- (relanding r60267)
-
- If the last item in a main disjunction is a quantified set of parentheses,
- this is easier to code generate for than the general case for quantified
- parentheses. This is because we never need to backtrack into the parentheses
- - the first match will be the final and accepted match.
-
- This patch also somewhat reverts a recent change to when fallback to PCRE
- occurs. At the minute the compiler is tracking on patterns which will
- require JIT fallback. This is handy from a performance perspective (it saves
- the failed attempt at JIT compilation), but it means introducing knowledge
- of the JITs capabilities into the other layers of the regex compilers. For
- the specific feature of back-references, add a flag tracking their presence
- on the pattern, and make these expressions fallback without attempting to
- JIT. For parentheses, return to detecting which cases are have or have not
- been handled during JIT compilation.
-
- 18% progression on tagcloud, ~1.5% overall on sunspidey.
-
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::RegexPatternConstructor::atomBackReference):
- (JSC::Yarr::RegexPatternConstructor::quantifyAtom):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::TermGenerationState::isLastTerm):
- (JSC::Yarr::RegexGenerator::TermGenerationState::isMainDisjunction):
- (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack):
- (JSC::Yarr::RegexGenerator::generateTerm):
- (JSC::Yarr::RegexGenerator::RegexGenerator):
- (JSC::Yarr::RegexGenerator::shouldFallBack):
- (JSC::Yarr::jitCompileRegex):
- * yarr/RegexPattern.h:
- (JSC::Yarr::RegexPattern::RegexPattern):
- (JSC::Yarr::RegexPattern::reset):
-
-2010-05-26 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by NOBODY (revert).
-
- Temporarily rolling out r60267, I appear to have hoesed perf at the last minute. :-/ Fixing.
-
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::RegexPatternConstructor::atomBackReference):
- (JSC::Yarr::RegexPatternConstructor::quantifyAtom):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::TermGenerationState::term):
- (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
- (JSC::Yarr::RegexGenerator::generateTerm):
- (JSC::Yarr::RegexGenerator::RegexGenerator):
- (JSC::Yarr::jitCompileRegex):
- * yarr/RegexPattern.h:
- (JSC::Yarr::RegexPattern::RegexPattern):
- (JSC::Yarr::RegexPattern::reset):
-
-2010-05-26 Gustavo Noronha Silva <gns@gnome.org>
-
- Build fixes for make distcheck.
-
- * GNUmakefile.am:
-
-2010-05-26 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Oliver Hunt.
-
- Bug 39795 - Add support for YARR JIT generation of greedy quantified parens at the end of the main disjunction.
-
- If the last item in a main disjunction is a quantified set of parentheses,
- this is easier to code generate for than the general case for quantified
- parentheses. This is because we never need to backtrack into the parentheses
- - the first match will be the final and accepted match.
-
- This patch also somewhat reverts a recent change to when fallback to PCRE
- occurs. At the minute the compiler is tracking on patterns which will
- require JIT fallback. This is handy from a performance perspective (it saves
- the failed attempt at JIT compilation), but it means introducing knowledge
- of the JITs capabilities into the other layers of the regex compilers. For
- the specific feature of back-references, add a flag tracking their presence
- on the pattern, and make these expressions fallback without attempting to
- JIT. For parentheses, return to detecting which cases are have or have not
- been handled during JIT compilation.
-
- 18% progression on tagcloud, ~1.5% overall on sunspidey.
-
- * yarr/RegexCompiler.cpp:
- (JSC::Yarr::RegexPatternConstructor::atomBackReference):
- (JSC::Yarr::RegexPatternConstructor::quantifyAtom):
- * yarr/RegexJIT.cpp:
- (JSC::Yarr::RegexGenerator::TermGenerationState::isLastTerm):
- (JSC::Yarr::RegexGenerator::TermGenerationState::isMainDisjunction):
- (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack):
- (JSC::Yarr::RegexGenerator::generateTerm):
- (JSC::Yarr::RegexGenerator::RegexGenerator):
- (JSC::Yarr::RegexGenerator::shouldFallBack):
- (JSC::Yarr::jitCompileRegex):
- * yarr/RegexPattern.h:
- (JSC::Yarr::RegexPattern::RegexPattern):
- (JSC::Yarr::RegexPattern::reset):
-
-2010-05-26 Geoffrey Garen <ggaren@apple.com>
-
- Reviewed by Sam Weinig.
-
- Fixed a crash seen on the Leopard bot, caused by merge.
-
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION): Get the return address from the callframe,
- since it's no longer passed to us as an argument.
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * collector/handles/Global.h:
+ (JSC::Global::internalSet):
+ * collector/handles/Handle.h:
+ (JSC::Handle::Handle):
+ (JSC::Handle::get):
+ * runtime/JSArray.cpp:
+ (JSC::JSArray::sortNumeric):
+ * runtime/JSObject.h:
+ (JSC::JSObject::inlineGetOwnPropertySlot):
+ * runtime/SlotAccessor.h: Added.
+ (JSC::SlotTypes::getFromBaseType):
+ (JSC::SlotTypes::convertToBaseType):
+ (JSC::SlotTypes::getFromSlot):
+ (JSC::SlotTypes::toJSValue):
+ (JSC::SlotTypes::validateUpcast):
+ (JSC::SlotAccessor::operator->):
+ (JSC::SlotAccessor::operator*):
+ * runtime/WeakGCPtr.h:
+ (JSC::WeakGCPtr::get):
+ (JSC::WeakGCPtr::internalSet):
+ * runtime/WriteBarrier.h:
+ (JSC::DeprecatedPtr::DeprecatedPtr):
+ (JSC::DeprecatedPtr::get):
+ (JSC::DeprecatedPtr::slot):
+ (JSC::DeprecatedPtr::operator=):
+ (JSC::WriteBarrierTranslator::convertToStorage):
+ (JSC::WriteBarrierTranslator::convertFromStorage):
+ (JSC::WriteBarrierBase::set):
+ (JSC::WriteBarrierBase::get):
+ (JSC::WriteBarrierBase::clear):
+ (JSC::WriteBarrierBase::slot):
+ (JSC::WriteBarrierBase::operator UnspecifiedBoolType*):
+ (JSC::WriteBarrierBase::operator!):
+ (JSC::WriteBarrierBase::setWithoutWriteBarrier):
+ (JSC::WriteBarrier::WriteBarrier):
-2010-05-25 Geoffrey Garen <ggaren@apple.com>
+2011-02-17 Kevin Ollivier <kevino@theolliviers.com>
- Fixed build failure caused by merge.
+ [wx] Revert incorrect blind fix and restore previous working code.
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION): On error, return a single value, since this
- function no longer returns a pair.
+ * wtf/wx/StringWx.cpp:
+ (WTF::String::String):
-2010-05-25 Geoffrey Garen <ggaren@apple.com>
+2011-02-16 Geoffrey Garen <ggaren@apple.com>
- Reviewed by Oliver Hunt.
+ Reviewed by Maciej Stachowiak.
- <rdar://problem/8020221>
-
- Fixed a crash seen on Windows when calling a function with too many
- arguments.
-
- SunSpider reports no change.
+ Intermittent crashes beneath MarkStack::drain
+ https://bugs.webkit.org/show_bug.cgi?id=54614
+ <rdar://problem/8971070>
- No test because the ASSERT I added fires in existing tests.
-
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION): Make sure to grow the registerFile when too
- many arguments have been provided, since the caller only allocated enough
- registerFile space for the arguments it provided, not enough for the extra
- copy of arguments we're going to need.
-
-2010-05-25 Kwang Yul Seo <skyul@company100.net>
-
- Reviewed by Darin Adler.
+ The crashes were caused by a GC happening after the global object's
+ property table had grown (due to compilation), but before the properties
+ had been fully initialized by program execution.
- Build fix for JSFunction
- https://bugs.webkit.org/show_bug.cgi?id=39658
-
- MSVC can't compile one of JSFunction constructors when JIT is disabled.
- "PassRefPtr<NativeExecutable>" causes the compile error as NativeExecutable is not defined.
- Add ENABLE(JIT) guard to the constructor.
-
- * runtime/JSFunction.cpp:
- (JSC::JSFunction::JSFunction):
- * runtime/JSFunction.h:
-
-2010-05-24 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Sam Weinig.
-
- Bug 39643 - Clean up code generation in the JIT of stub function calls for op_call.
-
- Presently, as soon as op-call strays off the hot path we set up a set of values on
- the stack to be passed as arguments to cti functions, in case any should be called.
-
- Instead, hoist the setup of the callframe to happen slightly sooner, and make the
- cti functions to compile & check arity read these values from the callframe. This
- allows up to remove the deprecated methods to manually set up cti arguments, rather
- than using JITStubCall.h.
-
- * interpreter/CallFrame.h:
- * jit/JIT.h:
- * jit/JITCall.cpp:
- (JSC::JIT::compileOpCallInitializeCallFrame):
- (JSC::JIT::compileOpCallVarargs):
- (JSC::JIT::compileOpCallVarargsSlowCase):
- (JSC::JIT::compileOpCall):
- (JSC::JIT::compileOpCallSlowCase):
- * jit/JITCall32_64.cpp:
- (JSC::JIT::compileOpCallInitializeCallFrame):
- (JSC::JIT::compileOpCallVarargs):
- (JSC::JIT::compileOpCallVarargsSlowCase):
- (JSC::JIT::compileOpCall):
- (JSC::JIT::compileOpCallSlowCase):
- * jit/JITInlineMethods.h:
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- * jit/JITStubs.h:
- (JSC::):
-
-2010-05-24 Gavin Barraclough <barraclough@apple.com>
-
- Reviewed by Sam Weinig.
- Relanding r60075.
-
- * bytecode/CodeBlock.cpp:
- (JSC::CodeBlock::dump):
- (JSC::CodeBlock::getByIdExceptionInfoForBytecodeOffset):
- * bytecode/CodeBlock.h:
- * bytecode/Opcode.h:
* bytecompiler/BytecodeGenerator.cpp:
- (JSC::BytecodeGenerator::BytecodeGenerator):
- (JSC::BytecodeGenerator::emitConstruct):
- * bytecompiler/BytecodeGenerator.h:
- (JSC::BytecodeGenerator::emitGetByIdExceptionInfo):
- * interpreter/Interpreter.cpp:
- (JSC::Interpreter::privateExecute):
- * jit/JIT.cpp:
- (JSC::JIT::privateCompileMainPass):
- * jit/JIT.h:
- * jit/JITCall.cpp:
- (JSC::JIT::compileOpCall):
- (JSC::JIT::compileOpCallSlowCase):
- * jit/JITCall32_64.cpp:
- (JSC::JIT::compileOpCall):
- (JSC::JIT::compileOpCallSlowCase):
- * jit/JITOpcodes.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- (JSC::JIT::privateCompileCTINativeCall):
- (JSC::JIT::emit_op_neq_null):
- (JSC::JIT::emit_op_convert_this):
- (JSC::JIT::emit_op_get_callee):
- (JSC::JIT::emit_op_create_this):
- * jit/JITOpcodes32_64.cpp:
- (JSC::JIT::privateCompileCTIMachineTrampolines):
- (JSC::JIT::privateCompileCTINativeCall):
- (JSC::JIT::emit_op_get_callee):
- (JSC::JIT::emit_op_create_this):
- * jit/JITStubs.cpp:
- (JSC::DEFINE_STUB_FUNCTION):
- (JSC::JITThunks::hostFunctionStub):
- * jit/JITStubs.h:
- (JSC::JITThunks::ctiNativeConstruct):
- (JSC::):
- * runtime/ExceptionHelpers.cpp:
- (JSC::createNotAnObjectError):
- * runtime/Executable.h:
- (JSC::NativeExecutable::create):
- (JSC::NativeExecutable::NativeExecutable):
- * runtime/JSFunction.cpp:
- (JSC::callHostFunctionAsConstructor):
- * runtime/JSFunction.h:
- * wtf/Platform.h:
+ (JSC::BytecodeGenerator::BytecodeGenerator): Explicitly resize the global
+ object's register storage immediately, without waiting for program
+ execution to do it for us. This ensures that the global object's count
+ of global variables is consistent with the size of its global variable
+ storage at all times, and it ensures that all global variables are
+ properly initialized from the get-go.
+
+ * runtime/JSGlobalObject.cpp:
+ (JSC::JSGlobalObject::resizeRegisters):
+ * runtime/JSGlobalObject.h: Added a helper function for growing the
+ global object's register storage, and initializing new registers.
-== Rolled over to ChangeLog-2010-05-24 ==
+== Rolled over to ChangeLog-2011-02-16 ==