summaryrefslogtreecommitdiffstats
path: root/Source/JavaScriptCore/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/ChangeLog')
-rw-r--r--Source/JavaScriptCore/ChangeLog18229
1 files changed, 18229 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog
new file mode 100644
index 0000000..54ac1e9
--- /dev/null
+++ b/Source/JavaScriptCore/ChangeLog
@@ -0,0 +1,18229 @@
+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.
+
+2011-01-05 Steve Falkenburg <sfalken@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Debug and Release builds on Windows clobber each other
+ https://bugs.webkit.org/show_bug.cgi?id=49185
+
+ Changes the structure of WebKitBuild build products directory so we
+ completely separate each build configuration into independent directories.
+
+ Although we previously had per-configuration directories for obj, this change adds
+ per-configuration directories for bin, lib, obj, and include. Each configuration's
+ build products are stored within a directory inside of WebKitBuild.
+
+ Most use of $(WebKitOutputDir) in the build files has been replaced by $(ConfigurationBuildDir),
+ defined in common.vsprops to be $(WebKitOutputDir)\$(ConfigurationName).
+
+ For PGO, $(ConfigurationBuildDir) points to the same directory (Release_PGO) to allow
+ for proper operation of the instrumentation/optimization scripts.
+
+ * JavaScriptCore.vcproj/JavaScriptCore.make:
+ * JavaScriptCore.vcproj/JavaScriptCore.sln:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedCommon.vsprops:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePGOOptimize.vsprops: Added.
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePostBuild.cmd:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePreBuild.cmd:
+ * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh:
+ * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py:
+ * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln:
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj:
+ * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops:
+ * JavaScriptCore.vcproj/WTF/WTFPostBuild.cmd:
+ * JavaScriptCore.vcproj/WTF/WTFPreBuild.cmd:
+ * JavaScriptCore.vcproj/jsc/jsc.vcproj:
+ * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
+ * JavaScriptCore.vcproj/jsc/jscPostBuild.cmd:
+ * JavaScriptCore.vcproj/jsc/jscPreBuild.cmd:
+ * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops:
+ * JavaScriptCore.vcproj/testapi/testapiPostBuild.cmd:
+ * JavaScriptCore.vcproj/testapi/testapiPreBuild.cmd:
+
+2011-01-05 Brent Fulgham <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):
+
+2010-12-29 Helder Correia <helder@sencha.com>
+
+ 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).
+
+ Tests: ietestcenter/Javascript/15.12.1.1-0-2.html
+ ietestcenter/Javascript/15.12.1.1-0-3.html
+
+ * runtime/LiteralParser.cpp:
+ (JSC::isJSONWhiteSpace):
+ (JSC::LiteralParser::Lexer::lex):
+
+2010-12-28 Helder Correia <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:
+
+2010-12-28 Helder Correia <helder@sencha.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.
+
+ Building WebKit with Visual Studio 2010 fails due
+ to ambiguous assignment operator errors.
+ https://bugs.webkit.org/show_bug.cgi?id=51116
+
+ * wtf/NullPtr.h: Added a HAVE(NULLPTR) definition for use with
+ Platform.h HAVE macro, and included the Visual Studio 2010 compiler
+ as one of the ones that has nullptr.
+ * wtf/NullPtr.cpp: Updated condition to match.
+
+ * wtf/PassOwnArrayPtr.h: Don't include the operator=(nullptr_t)
+ overload if we are compiling in loose mode and the compiler has
+ nullptr, because assignment of 0 will otherwise encounter
+ ambiguitity with this overload and the overload for loose mode
+ that takes a raw pointer. The conditional can be removed when we
+ get rid of loose mode.
+ * wtf/PassOwnPtr.h: Ditto.
+
+ * wtf/PassRefPtr.h: Don't include the operator=(nullptr_t) overload
+ if the compiler has nullptr, because assignment of 0 would be
+ ambiguous with the overload that takes a raw pointer. The conditional
+ can be removed if we ever decide we no longer need to support
+ assigning 0, but might need a way to catch that usage on older compilers.
+ * wtf/RefPtr.h: Ditto.
+ * wtf/RetainPtr.h: Ditto
+
+ * JavaScriptCore.xcodeproj/project.pbxproj: Added NullPtr.cpp,
+ accidentally omitted when the file was first added.
+
+2010-12-26 Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Eric Seidel.
+
+ [GTK] Add standalone target for JSC
+ https://bugs.webkit.org/show_bug.cgi?id=51607
+
+ * GNUmakefile.am: add convenience target to only build jsc and its
+ dependencies.
+
+2010-12-24 Patrick Gansterer <paroga@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ [WINCE] Add CPU(MIPS) detection
+ https://bugs.webkit.org/show_bug.cgi?id=51342
+
+ WinCE usually defines MIPS and _MIPS_.
+
+ * wtf/Platform.h:
+
+2010-12-23 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Rename RegexCompiler.cpp to RegexPattern.cpp.
+ Implicitly call compileRegex from RegexPattern's constructor.
+
+ * Android.mk:
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * JavaScriptCore.gypi:
+ * JavaScriptCore.pro:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * runtime/RegExp.cpp:
+ (JSC::RegExp::compile):
+ * yarr/RegexCompiler.cpp: Removed.
+ * yarr/RegexCompiler.h: Removed.
+ * yarr/RegexInterpreter.cpp:
+ * yarr/RegexJIT.cpp:
+ * yarr/RegexPattern.cpp: Copied from JavaScriptCore/yarr/RegexCompiler.cpp.
+ (JSC::Yarr::compileRegex):
+ (JSC::Yarr::RegexPattern::RegexPattern):
+ * yarr/RegexPattern.h:
+
+2010-12-23 Patrick Gansterer <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
+
+ * wtf/StackBounds.cpp:
+ (WTF::StackBounds::initialize):
+
+2010-12-21 Gavin Barraclough <barraclough@apple.com>
+
+ 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
+
+ The problem here is that each page uses a reasonable amount of memory, (~4Mb),
+ and that when miultiple pages are open we keep all JIT code for all functions
+ in all pages alive.
+
+ Add a check to detect high memory pressure situations in the executable allocator
+ (>50% of available memory allocated), and upon a top level entry into JSC (no code
+ running on the stack) in this situation throw away all JIT code.
+
+ * JavaScriptCore.exp:
+ * debugger/Debugger.cpp:
+ (JSC::Debugger::recompileAllJSFunctions): stop passing exec to recompile.
+ * jit/ExecutableAllocator.h:
+ * jit/ExecutableAllocatorFixedVMPool.cpp:
+ (JSC::ExecutablePool::systemAlloc): Count allocations.
+ (JSC::ExecutablePool::systemRelease): Count deallocations.
+ (JSC::ExecutablePool::underMemoryPressure): Check memory pressure.
+ * jit/ExecutableAllocatorPosix.cpp:
+ (JSC::ExecutablePool::underMemoryPressure): Stub out; only meaningful with FixedVMPool.
+ * jit/ExecutableAllocatorWin.cpp:
+ (JSC::ExecutablePool::underMemoryPressure): Stub out; only meaningful with FixedVMPool.
+ * runtime/Executable.cpp:
+ (JSC::FunctionExecutable::recompile): Remove ExecState argument to recompile.
+ * runtime/Executable.h:
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::recompileAllJSFunctions): throws away all JIT code.
+ * runtime/JSGlobalData.h:
+ * runtime/JSGlobalObject.h:
+ (JSC::DynamicGlobalObjectScope::DynamicGlobalObjectScope): add check / call to throw away.
+
+2010-12-21 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ <rdar://problem/8241425> JIT executable memory excessive usage due to regex caching
+ https://bugs.webkit.org/show_bug.cgi?id=51434
+
+ Reduce the amount of memory the RegExpCache can hold on to on iOS.
+ Currently the RegExpCache can hold 256 RegExp objects. If each falls into a separate
+ ExecutablePool, with a common size of 16Kb, this means we end up holding onto 4Mb of
+ memory. Firstly, we can reduce this by simply reducing the size of the cache to 32
+ entries. Secondly, we can use a separate set of ExecutablePools for JIT code generated
+ from RegExp objects. This helps in two ways (1) it increases the probability that
+ RegExps in the cache share the same pool, and (2) it means that a RegExp can't end
+ up holding on to a large ExecutablePool containing a translation of JS code.
+ (A RegExp could end up keeping a larger RegExp alive that happened to be sharing the
+ same pool, but large RegExp patterns are less common).
+
+ * runtime/JSGlobalData.h:
+ * runtime/RegExpCache.h:
+ * yarr/RegexJIT.cpp:
+ (JSC::Yarr::RegexGenerator::compile):
+
+2010-12-21 Gavin Barraclough <barraclough@apple.com>
+
+ Windows build fix.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+
+2010-12-21 Gavin Barraclough <barraclough@apple.com>
+
+ Eeeep! build fix!
+
+ * wtf/OSAllocator.h:
+ (WTF::OSAllocator::decommitAndRelease):
+
+2010-12-21 Gavin Barraclough <barraclough@apple.com>
+
+ Ooops, fixed typo in comment.
+
+ * wtf/OSAllocator.h:
+
+2010-12-21 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Gavin Barraclough & Oliver Hunt.
+
+ Added PageAllocationAligned, a cross-platform abstraction for memory allocations with arbitrary alignment requirements
+ https://bugs.webkit.org/show_bug.cgi?id=51359
+
+ I think this patch fixes <rdar://problem/8107952> [5.0.1] WER crash in
+ Heap::allocateBlock (1902752929), and some other leaks and crashes as well.
+
+ * Android.mk:
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * JavaScriptCore.gypi:
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj:
+ * JavaScriptCore.xcodeproj/project.pbxproj: Updated build files.
+
+ * runtime/AlignedMemoryAllocator.h: Removed. Supplanted by
+ PageAllocationAligned.
+
+ * runtime/Collector.cpp:
+ (JSC::Heap::destroy):
+ (JSC::Heap::allocateBlock):
+ (JSC::Heap::freeBlock):
+ (JSC::Heap::addWeakGCHandle):
+ * runtime/Collector.h: Switched from AlignedMemoryAllocator to
+ PageAllocationAligned.
+
+ * runtime/GCHandle.cpp:
+ * runtime/GCHandle.h: Ditto.
+
+ * wtf/PageAllocation.h:
+ (WTF::PageAllocation::PageAllocation): Removed aligned memory allocation
+ functions. Supplanted by PageAllocationAligned.
+
+ * wtf/PageAllocationAligned.cpp: Added.
+ (WTF::PageAllocationAligned::allocate):
+ (WTF::PageAllocationAligned::deallocate):
+ * wtf/PageAllocationAligned.h: Added.
+ (WTF::PageAllocationAligned::PageAllocationAligned): New cross-platform
+ class for doing aligned memory allocation. This class properly matches
+ allocation and deallocation library calls, fixing a long-standing bug
+ in PageAllocation.
+
+ * wtf/Platform.h: Removed some defunction VM platform defines.
+
+ * wtf/wtf.pri: Updated build files.
+
+2010-12-21 Oliver Hunt <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>
+
+ 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 bytecompiler use StackBounds. Empirical testing shows emitStrcat to have the largest
+ footprint on the stack, at just under 1k on x86-64. Given this, the default recursion
+ check (requiring 4k of available space to recurse) seems reasonable.
+
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::BytecodeGenerator):
+ * bytecompiler/BytecodeGenerator.h:
+ (JSC::BytecodeGenerator::emitNode):
+ (JSC::BytecodeGenerator::emitNodeInConditionContext):
+ * bytecompiler/NodesCodegen.cpp:
+ (JSC::BinaryOpNode::emitStrcat):
+
+2010-12-20 Tony Gentilcore <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.
+ * 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.
+
+ * JavaScriptCore.vcproj/jsc/jscPostBuild.cmd:
+
+2010-12-13 Michael Saboff <msaboff@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ REGRESSION: mobileme mail viewing is broken
+ https://bugs.webkit.org/show_bug.cgi?id=50884
+
+ 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.
+
+ * yarr/RegexJIT.cpp:
+ (JSC::Yarr::RegexGenerator::BacktrackDestination::copyBacktrackToLabel):
+ (JSC::Yarr::RegexGenerator::TermGenerationState::isLastTerm):
+ (JSC::Yarr::RegexGenerator::ParenthesesTail::generateCode):
+ (JSC::Yarr::RegexGenerator::generateParenthesesSingle):
+
+2010-12-13 Peter Varga <pvarga@inf.u-szeged.hu>
+
+ Reviewed by Gavin Barraclough.
+
+ Reduce the size of the RegexStackSpaceForBackTrackInfoParentheses in YARR
+ https://bugs.webkit.org/show_bug.cgi?id=49385
+
+ Remove the BackTrackInfoParentheses struct prevBegin and prevEnd members.
+
+ * yarr/RegexInterpreter.cpp:
+ (JSC::Yarr::Interpreter::matchParentheses):
+ (JSC::Yarr::Interpreter::backtrackParentheses):
+ * yarr/RegexPattern.h:
+
+2010-12-10 Michael Saboff <msaboff@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ 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>
+
+ 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.
+
+ 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.
+
+ * wtf/Platform.h:
+
+2010-12-10 Martin Robinson <mrobinson@igalia.com>
+
+ Unreviewed, rolling out r73703.
+ http://trac.webkit.org/changeset/73703
+ https://bugs.webkit.org/show_bug.cgi?id=49658
+
+ This patch is causing crashes on the GTK+ bots.
+
+ * wtf/PlatformRefPtr.h:
+
+2010-12-10 Patrick Gansterer <paroga@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ Cleanup StringWx.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=50525
+
+ Use StringImpl::createUninitialized to avoid memcpy and fix style issues.
+
+ * 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>
+
+ Reviewed by Gavin Barraclough.
+
+ 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 Geoffrey Garen.
+
+ 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
+
+ * 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:
+
+2010-12-09 Michael Saboff <msaboff@apple.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):
+
+2010-12-08 Chris Marrin <cmarrin@apple.com>
+
+ 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):
+
+2010-12-07 Anders Carlsson <andersca@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Fix clang++ build
+ https://bugs.webkit.org/show_bug.cgi?id=50645
+
+ Explicitly cast offset to int.
+
+ * pcre/pcre_ucp_searchfuncs.cpp:
+ (jsc_pcre_ucp_othercase):
+
+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/MathExtras.h:
+ (log2):
+
+2010-12-07 Antti Koivisto <antti@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ 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.
+
+ * runtime/JSString.cpp:
+ (JSC::JSString::substringFromRope):
+ * 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.
+
+2010-12-06 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ reserveAndCommit doesn't commit on MADVISE_FREE_REUSE systems
+ https://bugs.webkit.org/show_bug.cgi?id=50588
+
+ * 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>:
+
+ 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>
+
+ Reviewed by Martin Robinson.
+
+ [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
+
+ * wtf/gobject/GTypedefs.h: add GdkWindow defines.
+
+2010-12-03 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Oliver Hunt.
+
+ Bug 50509 - set* methods on MacroAssembler are awfully named.
+
+ 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.
+
+ Rename to clarify.
+
+ set32 -> set32Compare32
+ setTest32 -> set32Test32
+ set8 -> set8Compare32
+ setTest8 -> set32Test8
+
+ * assembler/MacroAssembler.h:
+ (JSC::MacroAssembler::setPtr):
+ * assembler/MacroAssemblerARM.h:
+ (JSC::MacroAssemblerARM::set32Compare32):
+ (JSC::MacroAssemblerARM::set8Compare32):
+ (JSC::MacroAssemblerARM::set32Test32):
+ (JSC::MacroAssemblerARM::set32Test8):
+ * assembler/MacroAssemblerARMv7.h:
+ (JSC::MacroAssemblerARMv7::set32Compare32):
+ (JSC::MacroAssemblerARMv7::set8Compare32):
+ (JSC::MacroAssemblerARMv7::set32Test32):
+ (JSC::MacroAssemblerARMv7::set32Test8):
+ * assembler/MacroAssemblerMIPS.h:
+ (JSC::MacroAssemblerMIPS::set8Compare32):
+ (JSC::MacroAssemblerMIPS::set32Compare32):
+ (JSC::MacroAssemblerMIPS::set32Test8):
+ (JSC::MacroAssemblerMIPS::set32Test32):
+ * assembler/MacroAssemblerX86Common.h:
+ (JSC::MacroAssemblerX86Common::set8Compare32):
+ (JSC::MacroAssemblerX86Common::set32Compare32):
+ (JSC::MacroAssemblerX86Common::set32Test8):
+ (JSC::MacroAssemblerX86Common::set32Test32):
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::emit_op_eq):
+ (JSC::JIT::emit_op_neq):
+ (JSC::JIT::compileOpStrictEq):
+ (JSC::JIT::emit_op_eq_null):
+ (JSC::JIT::emit_op_neq_null):
+ * jit/JITOpcodes32_64.cpp:
+ (JSC::JIT::emit_op_eq):
+ (JSC::JIT::emit_op_neq):
+ (JSC::JIT::compileOpStrictEq):
+ (JSC::JIT::emit_op_eq_null):
+ (JSC::JIT::emit_op_neq_null):
+
+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.
+
+ 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.
+
+ * runtime/Collector.cpp:
+ (JSC::Heap::activityCallback):
+ * runtime/Collector.h: Added an activityCallback() accessor, for the
+ call above.
+
+ * 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.
+
+2010-12-02 Darin Adler <darin@apple.com>
+
+ * wtf/ASCIICType.h: Fix wrong type from last check-in.
+
+2010-12-02 Darin Adler <darin@apple.com>
+
+ Try to fix certain builds (Qt Windows).
+
+ * 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.
+
+2010-12-02 Patrick Gansterer <paroga@webkit.org>
+
+ 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.
+
+ Added a little hardening to OSAllocator.
+
+ * 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.
+
+2010-12-02 Csaba Osztrogonác <ossy@webkit.org>
+
+ Reviewed by Geoffrey Garen.
+
+ [Qt] Make platform managing of OSAllocator better than r73106
+ https://bugs.webkit.org/show_bug.cgi?id=50385
+
+ * 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.
+
+2010-12-02 Patrick Gansterer <paroga@webkit.org>
+
+ Reviewed by Andreas Kling.
+
+ [WINCE] Use GetTickCount() for srand()
+ https://bugs.webkit.org/show_bug.cgi?id=50338
+
+ time() is not a native function on WinCE, so use GetTickCount() instead.
+
+ * wtf/RandomNumberSeed.h:
+ (WTF::initializeRandomNumberGenerator):
+
+2010-12-02 Norbert Leser <norbert.leser@nokia.com>
+
+ Reviewed by Laszlo Gombos.
+
+ [Qt] [Symbian] Reintroduce compiler optimizations for JSC
+ https://bugs.webkit.org/show_bug.cgi?id=50270
+
+ 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.
+
+ * JavaScriptCore.pro:
+
+2010-12-02 Peter Varga <pvarga@inf.u-szeged.hu>
+
+ Reviewed by Gavin Barraclough.
+
+ Move regex parsing and fallback handling to runtime/RegExp.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=50015
+
+ * 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):
+
+2010-12-01 Geoffrey Garen <ggaren@apple.com>
+
+ Try to fix the GTK build.
+
+ * GNUmakefile.am: Use a full path to OSAllocator*.cpp.
+
+2010-12-01 Geoffrey Garen <ggaren@apple.com>
+
+ Try to fix the EFL Linux build.
+
+ * CMakeListsEfl.txt: Added OSAllocator to the project.
+
+2010-12-01 Geoffrey Garen <ggaren@apple.com>
+
+ 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.
+
+ * wtf/OSAllocatorPosix.cpp:
+ * wtf/OSAllocatorSymbian.cpp:
+ * wtf/OSAllocatorWin.cpp:
+ * wtf/wtf.pri:
+
+2010-12-01 Geoffrey Garen <ggaren@apple.com>
+
+ Try to fix the Chromium build.
+
+ * JavaScriptCore.gypi: This is a Windows build file, so use OSAllocatorWin.cpp.
+
+2010-12-01 Geoffrey Garen <ggaren@apple.com>
+
+ Try to fix the GTK build.
+
+ * GNUmakefile.am: Added OSAllocator to another project.
+
+2010-12-01 Geoffrey Garen <ggaren@apple.com>
+
+ Try to fix the GTK Linux build.
+
+ * JavaScriptCore.gypi: Added OSAllocator to the project.
+
+2010-12-01 Geoffrey Garen <ggaren@apple.com>
+
+ Try to fix the Qt Linux build.
+
+ * wtf/OSAllocatorPosix.cpp: Use the right errno.h.
+
+2010-12-01 Geoffrey Garen <ggaren@apple.com>
+
+ Try to fix Windows build: export some more symbols.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+
+2010-12-01 Geoffrey Garen <ggaren@apple.com>
+
+ Try to fix the Qt Linux build.
+
+ * wtf/wtf.pri: Use the POSIX OSAllocator for Qt Linux.
+
+2010-12-01 Geoffrey Garen <ggaren@apple.com>
+
+ Windows build fix: commit doesn't have a return value.
+
+ * wtf/OSAllocatorWin.cpp:
+ (WTF::OSAllocator::commit):
+
+2010-12-01 Geoffrey Garen <ggaren@apple.com>
+
+ Build fix: Export some symbols.
+
+ * JavaScriptCore.exp:
+
+2010-12-01 Geoffrey Garen <ggaren@apple.com>
+
+ Build fix.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj: Export OSAllocator.h as private
+ so other projects can see it.
+
+ * wtf/OSAllocatorPosix.cpp: #include UnusedParam.h for UNUSED_PARAM.
+
+2010-12-01 Geoffrey Garen <ggaren@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.
+
+ * JavaScriptCore.exp: These functions are inlined now.
+
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj: Added OSAllocatorWin.cpp.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj: Added OSAllocatorPosix.cpp.
+
+ * runtime/MarkStack.h:
+ (JSC::MarkStack::allocateStack):
+ (JSC::MarkStack::releaseStack): Use OSAllocator instead of rolling our
+ own platform-specific code.
+
+ * runtime/MarkStackNone.cpp: Removed. Nothing used this.
+
+ * runtime/MarkStackPosix.cpp:
+ * runtime/MarkStackSymbian.cpp:
+ * runtime/MarkStackWin.cpp: Removed custom platform-specific code, since
+ we use the OSAllocator abstraction now.
+
+ * 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.
+
+ * wtf/wtf.pri: Added OSAllocatorSymbian.cpp.
+
+2010-12-01 Steve Falkenburg <sfalken@apple.com>
+
+ Reviewed by Adam Roben.
+
+ WinCairo build should not use link-time code generation (LTCG)
+ https://bugs.webkit.org/show_bug.cgi?id=50353
+
+ * 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.
+
+ 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>
+
+ Reviewed by Sam Weinig.
+
+ Bug 50298 - /()()()()()()()()()(?:(\10a|b)(X|Y))+/.exec("bXXaYYaY") ASSERTs
+
+ 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).
+
+ Update these ASSERTs to account for this.
+
+ 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.
+
+ * yarr/RegexInterpreter.cpp:
+ (JSC::Yarr::Interpreter::matchBackReference):
+ (JSC::Yarr::Interpreter::backtrackBackReference):
+
+2010-11-30 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamped by Sam Weinig.
+
+ Bug 50297 - \s in YARR should match BOMs.
+
+ From section 15.10.2.12 CharacterClassEscape contains:
+
+ 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.
+
+ Table 2 in section 7.2 contains:
+
+ \uFEFF Byte Order Mark <BOM>
+
+ * create_regex_tables:
+ Add BOM to spaces table.
+
+2010-11-30 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Darin Adler.
+
+ 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>
+
+ Reviewed by Darin Adler.
+
+ WTF project missing build-stopping code from its pre-build event
+ https://bugs.webkit.org/show_bug.cgi?id=50281
+
+ * JavaScriptCore.vcproj/WTF/WTFPreBuild.cmd:
+
+2010-11-30 Patrick Gansterer <paroga@webkit.org>
+
+ Reviewed by Darin Adler.
+
+ Cleanup UTF8.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=49581
+
+ Use macros and functions instead of range values directly.
+
+ * 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.
+
+2010-11-30 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Fixed a crash seen when using a PageAllocation to store itself.
+
+ * wtf/PageAllocation.h:
+ (WTF::PageAllocation::systemDeallocate): Zero out m_base before unmapping
+ it, in case unmapping m_base unmaps the PageAllocation.
+
+ * wtf/BumpPointerAllocator.h:
+ (WTF::BumpPointerPool::destroy): Now this work-around isn't needed!
+
+2010-11-30 Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Darin Adler.
+
+ m_hasNonEnumerableProperties is never initialized in Structure
+ https://bugs.webkit.org/show_bug.cgi?id=50266
+
+ * runtime/Structure.cpp:
+ (JSC::Structure::Structure): initialize member variable.
+
+2010-11-29 Steve Falkenburg <sfalken@apple.com>
+
+ Windows build fix (part 1). Use correct environment variable syntax in cmd files.
+
+ * 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:
+
+2010-11-29 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Darin Adler.
+
+ 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
+
+ * wtf/unicode/UnicodeMacrosFromICU.h: Copied additional macros from icu/unicode/utf16.h.
+
+2010-11-29 Steve Falkenburg <sfalken@apple.com>
+
+ Reviewed by Darin Adler.
+
+ JavaScriptCore projects on Windows should use cmd files for build events
+ https://bugs.webkit.org/show_bug.cgi?id=50193
+
+ * 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.
+
+2010-11-29 Dai Mikurube <dmikurube@google.com>
+
+ Reviewed by Kent Tamura.
+
+ when empty, clicking "down" on outer-spin-button returns "max value"
+ https://bugs.webkit.org/show_bug.cgi?id=45491
+
+ 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.
+
+ 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.
+
+ * JavaScriptCore.exp:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+ * wtf/DateMath.cpp: Changed calculateUTCOffset() and calculateDSTOffset() to external functions.
+ (WTF::calculateUTCOffset):
+ (WTF::calculateDSTOffset):
+ * wtf/DateMath.h:
+
+2010-11-29 Chris Rogers <crogers@google.com>
+
+ Reviewed by Kenneth Russell.
+
+ Switch web audio code to use FloatPoint3D instead of Vector3
+ https://bugs.webkit.org/show_bug.cgi?id=50186
+
+ * wtf/Vector3.h: Removed.
+
+2010-11-29 Steve Falkenburg <sfalken@apple.com>
+
+ Reviewed by Adam Roben.
+
+ 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
+
+ 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.
+
+ * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops:
+ * JavaScriptCore.vcproj/WTF/WTFPostBuild.cmd: Added.
+ * JavaScriptCore.vcproj/WTF/WTFPreBuild.cmd: Added.
+
+2010-11-29 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Improved accuracy of command-line SunSpider.
+
+ * 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.
+
+ (functionCheckSyntax): Ditto on returning elapsed milliseconds.
+
+2010-11-29 Darin Adler <darin@apple.com>
+
+ Reviewed by Andreas Kling.
+
+ Remove a couple unneeded overflow checks
+ https://bugs.webkit.org/show_bug.cgi?id=49816
+
+ * wtf/text/CString.cpp:
+ (WTF::CString::init): Use an ASSERT instead of
+ an overflow check with CRASH.
+
+2010-11-29 Adam Roben <aroben@apple.com>
+
+ Robustify react-to-vsprops-changes.py against changes to its location
+ or the location of the .vsprops files
+
+ Suggested by John Sullivan.
+
+ * 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.
+
+2010-11-29 Adam Roben <aroben@apple.com>
+
+ Touch wtf/Platform.h whenever any .vsprops file changes
+
+ This will cause all files to be recompiled, which will make changes to
+ preprocessor macros (e.g., ENABLE_*) actually take effect.
+
+ Fixes <http://webkit.org/b/50167> Windows build fails when ENABLE_*
+ macros are changed (because not enough files are rebuilt)
+
+ Reviewed by John Sullivan.
+
+ * 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.
+
+2010-11-29 Adam Roben <aroben@apple.com>
+
+ Update react-to-vsprops-changes.py after r72555
+
+ .vsprops files are no longer accessed relative to $WebKitLibrariesDir.
+
+ Fixes <http://webkit.org/b/50166> REGRESSION (r72555):
+ react-to-vsprops-changes.py no longer works for people with a
+ non-default $WebKitLibrariesDir
+
+ Reviewed by John Sullivan.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/react-to-vsprops-changes.py:
+ (main): Always look in WebKitLibraries/win for .vsprops files, not in
+ $WebKitLibrariesDir.
+
+2010-11-28 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Bug 48100 - YARR allows what seems like a bogus character-class range
+
+ 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.
+
+ * yarr/RegexParser.h:
+
+2010-11-27 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ 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):
+
+2010-11-24 Patrick Gansterer <paroga@webkit.org>
+
+ Reviewed by Csaba Osztrogonác.
+
+ Remove Bakefile build system files
+ https://bugs.webkit.org/show_bug.cgi?id=49983
+
+ r53757 only removed the content, but not the files.
+ This patch removes that empty files.
+
+ * JavaScriptCoreSources.bkl: Removed.
+ * jscore.bkl: Removed.
+
+2010-11-24 Gabor Loki <loki@webkit.org>
+
+ Reviewed by Csaba Osztrogonác.
+
+ Merge the usage of jumps and calls at ARM-JIT
+ https://bugs.webkit.org/show_bug.cgi?id=50008
+
+ Those JmpSrc objects which represent jumps (not calls) should point to
+ after the jump instruction.
+
+ * 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):
+
+2010-11-24 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Reviewed by Xan Lopez.
+
+ [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 Sam Weinig.
+
+ Use WTF::StringHasher directly in JavaScriptCore
+ https://bugs.webkit.org/show_bug.cgi?id=49893
+
+ * profiler/CallIdentifier.h:
+ (JSC::CallIdentifier::Hash::hash):
+ * runtime/Identifier.cpp:
+ (JSC::IdentifierCStringTranslator::hash):
+ (JSC::IdentifierUCharBufferTranslator::hash):
+
+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
+
+ * wtf/Platform.h:
+
+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.
+
+ 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.
+
+ * 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.
+
+ * 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.
+
+2010-11-19 William Chan <willchan@chromium.org>
+
+ Reviewed by David Levin.
+
+ Add USE(CHROMIUM_NET)
+
+ 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.
+
+ https://bugs.webkit.org/show_bug.cgi?id=49778
+
+ * wtf/Platform.h:
+
+2010-11-19 Steve Falkenburg <sfalken@apple.com>
+
+ Reviewed by Adam Roben.
+
+ Add Debug_Cairo_CFLite and Release_Cairo_CFLite configurations for all vcproj files
+ https://bugs.webkit.org/show_bug.cgi?id=49819
+
+ * 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:
+
+2010-11-19 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
+
+ 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.
+
+ Bug 49708 - Stop recompiling functions to regenerate exception info.
+
+ 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.
+
+ * 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.
+
+ Reviewed by Sam Weinig.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
+ Call the new script.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj:
+ Added the new script.
+
+ * 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.
+
+2010-11-18 Mark Rowe <mrowe@apple.com>
+
+ Rubber-stamped by Adam Roben.
+
+ <rdar://problem/8602509&8602717&8602724> Enable compaction support.
+
+ * Configurations/JavaScriptCore.xcconfig:
+
+2010-11-18 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ 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.
+
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::shrinkToFit):
+ * bytecode/CodeBlock.h:
+ (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):
+ * wtf/StdLibExtras.h:
+
+2010-11-17 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Anders Carlsson.
+
+ Add stubbed out ScrollAnimator for the Mac
+ https://bugs.webkit.org/show_bug.cgi?id=49678
+
+ * wtf/Platform.h: Enable SMOOTH_SCROLLING on the Mac, this has no
+ change in behavior at the moment.
+
+2010-11-17 David Kilzer <ddkilzer@apple.com>
+
+ <http://webkit.org/b/49634> Make overflow guards in WTF::String::utf8 explicit
+
+ 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
+
+ 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.
+
+ 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).
+
+ * 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:
+
+2010-11-16 Gavin Barraclough <barraclough@apple.com>
+
+ 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.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::dump):
+ (JSC::CodeBlock::shrinkToFit):
+ * bytecode/CodeBlock.h:
+ (JSC::CodeBlock::bytecodeOffset):
+ (JSC::CodeBlock::methodCallLinkInfo):
+ * 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::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:
+
+2010-11-16 Brian Weinstein <bweinstein@apple.com>
+
+ Reviewed by Adam Roben and Steve Falkenburg.
+
+ Touch Platform.h to force a rebuild for Windows.
+
+ * wtf/Platform.h:
+
+2010-11-16 Steve Falkenburg <sfalken@apple.com>
+
+ 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:
+
+2010-11-16 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ https://bugs.webkit.org/show_bug.cgi?id=49606
+
+ 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.
+
+ * 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>
+
+ 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.
+
+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.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::resolve):
+ (JSC::Interpreter::resolveSkip):
+ (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.
+
+ * runtime/Error.h:
+ - Removed divot properties.
+
+ * 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.
+
+ Add support for the s390/s390x architectures, it's big-endian
+ with s390 being 32-bit and s390x being 64-bit.
+
+ https://bugs.webkit.org/show_bug.cgi?id=34786
+
+ * wtf/Platform.h:
+
+2010-11-10 Csaba Osztrogonác <ossy@webkit.org>
+
+ 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 Gavin Barraclough.
+
+ Website consistently crashing TOT in JIT::execute() on news.com.au
+ https://bugs.webkit.org/show_bug.cgi?id=48954
+
+ 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.
+
+ * 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.
+
+ * wtf/text/AtomicString.cpp:
+ (WTF::AtomicString::lower):
+
+2010-11-04 Adam Barth <abarth@webkit.org>
+
+ Enabled ICCJPEG on Chromium Mac
+ https://bugs.webkit.org/show_bug.cgi?id=48977
+
+ * wtf/Platform.h:
+
+2010-11-03 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Crash in Function.prototype.call.apply
+ https://bugs.webkit.org/show_bug.cgi?id=48485
+
+ 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.
+
+ * bytecode/Opcode.h:
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::emitLoadVarargs):
+ * bytecompiler/BytecodeGenerator.h:
+ * bytecompiler/NodesCodegen.cpp:
+ (JSC::ApplyFunctionCallDotNode::emitBytecode):
+ * 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:
+
+2010-11-03 Gabor Loki <loki@webkit.org>
+
+ 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
+
+ Remove special handling of HashTableDeletedValue in PlatformRefPtr.
+ This is better handled on a case-by-case basis, when HashTraits
+ cannot account for it.
+
+ * 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):
+ * 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):
+
+2010-10-28 Zoltan Herczeg <zherczeg@webkit.org>
+
+ Reviewed by Andreas Kling.
+
+ Wrong instruction form for BKPT
+ https://bugs.webkit.org/show_bug.cgi?id=48427
+
+ One '0' is missing from BKPT instruction.
+ Thanks for Jacob Bramley for reporting this error.
+
+ * assembler/ARMAssembler.h:
+
+2010-10-28 Xan Lopez <xlopez@igalia.com>
+
+ Try to fix Snow Leopard build.
+
+ * jit/JITPropertyAccess.cpp:
+ (JSC::JIT::testPrototype):
+
+2010-10-28 Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Oliver Hunt.
+
+ Do not have two different asCell APIs in JSValue
+ https://bugs.webkit.org/show_bug.cgi?id=47979
+
+ Remove JSCell* asCell(JSValue) in favor of only using
+ JSValue::asCell().
+
+ * 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):
+
+2010-10-27 Chao-ying Fu <fu@mips.com>
+
+ Reviewed by Oliver Hunt.
+
+ Support emit_op_mod() for MIPS on JSVALUE32_64
+ https://bugs.webkit.org/show_bug.cgi?id=46511
+
+ This patch uses MIPS div instructions for op_mod to improve performance.
+
+ * jit/JITArithmetic32_64.cpp:
+ (JSC::JIT::emit_op_mod):
+
+2010-10-27 Brent Fulgham <bfulgham@webkit.org>
+
+ Unreviewed build correction.
+
+ * wtf/Platform.h: Make sure ACCELERATED_COMPOSITING is
+ turned off in the WinCairo port. This isn't supported (yet.)
+
+2010-10-27 Chris Rogers <crogers@google.com>
+
+ Reviewed by Chris Marrin.
+
+ Add ENABLE_WEB_AUDIO feature enable flag (initially disabled) to build-webkit
+ https://bugs.webkit.org/show_bug.cgi?id=48279
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2010-10-27 Brian Weinstein <bweinstein@apple.com>
+
+ Windows build fix.
+
+ * jit/JITStubs.cpp:
+ (JSC::jitThrow):
+
+2010-10-27 Gavin Barraclough <barraclough@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.
+
+ * 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):
+
+2010-10-27 Gabor Loki <loki@webkit.org>
+
+ Reviewed by Oliver Hunt.
+
+ https://bugs.webkit.org/show_bug.cgi?id=48060
+ Speed up op_jeq_null and op_jneq_null.
+
+ 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.
+
+ * jit/JITOpcodes32_64.cpp:
+ (JSC::JIT::emit_op_jeq_null):
+ (JSC::JIT::emit_op_jneq_null):
+ * runtime/JSValue.h:
+
+2010-10-25 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
+
+ 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.
+
+ https://bugs.webkit.org/show_bug.cgi?id=46096
+
+ * assembler/MacroAssemblerARM.cpp:
+ (JSC::isVFPPresent):
+
+2010-10-25 Sheriff Bot <webkit.review.bot@gmail.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 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-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):
+ * runtime/JSONObject.cpp:
+ (JSC::Stringifier::appendQuotedString):
+ (JSC::Stringifier::toJSON):
+ (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:
+
+2010-10-24 Patrick Gansterer <paroga@webkit.org>
+
+ Reviewed by David Kilzer.
+
+ Inline WTF::bitwise_cast and fix style
+ https://bugs.webkit.org/show_bug.cgi?id=48208
+
+ * wtf/StdLibExtras.h:
+ (WTF::bitwise_cast):
+ (WTF::bitCount):
+
+2010-10-23 Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Sam Weinig.
+
+ Unify globalData APIs
+ https://bugs.webkit.org/show_bug.cgi?id=47969
+
+ Make JSGlobalObject::globalData return a reference and adapt
+ callers. This unifies the API with the existing
+ CallFrame::globalData, which also returns a reference.
+
+ * 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>
+
+ Unreviewed, rolling out r70369.
+ http://trac.webkit.org/changeset/70369
+ https://bugs.webkit.org/show_bug.cgi?id=47974
+
+ Caused weird artifacts in expected results.
+
+ * wtf/Platform.h:
+
+2010-10-23 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Xan Lopez.
+
+ Crashes randomly in cairo_scaled_font_destroy
+ https://bugs.webkit.org/show_bug.cgi?id=46794
+
+ 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).
+
+ * wtf/PlatformRefPtr.h:
+ (WTF::PlatformRefPtr::~PlatformRefPtr):
+ (WTF::PlatformRefPtr::clear):
+ (WTF::::operator):
+
+2010-10-22 Adam Roben <aroben@apple.com>
+
+ Remove the QuartzCorePresent.h mechanism
+
+ 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.
+
+ Reviewed by Sam Weinig.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh: Remove
+ code to generate QuartzCorePresent.h.
+
+ * wtf/Platform.h: Stop including QuartzCorePresent.h on Windows and
+ collapse all USE_ACCELERATED_COMPOSITING settings into one #ifdef.
+
+2010-10-22 Adam Barth <abarth@webkit.org>
+
+ Unreviewed, rolling out r70290.
+ http://trac.webkit.org/changeset/70290
+ https://bugs.webkit.org/show_bug.cgi?id=48111
+
+ Undelete Android build files.
+
+ * Android.mk: Added.
+
+2010-10-22 Zoltan Herczeg <zherczeg@webkit.org>
+
+ Reviewed by Csaba Osztrogonác.
+
+ JSC interpreter regressions after r69940
+ https://bugs.webkit.org/show_bug.cgi?id=47839
+
+ 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.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::resolveBase):
+
+2010-10-21 Adam Barth <abarth@webkit.org>
+
+ Reviewed by David Levin.
+
+ Remove Android build system
+ https://bugs.webkit.org/show_bug.cgi?id=48111
+
+ * Android.mk: Removed.
+
+2010-10-21 Kwang Yul Seo <skyul@company100.net>
+
+ Reviewed by Kent Tamura.
+
+ [BREWMP] Add a String constructor which takes AECHAR*
+ https://bugs.webkit.org/show_bug.cgi?id=45043
+
+ Add String(const AECHAR*) constructor for convenience.
+
+ * wtf/text/WTFString.h:
+
+2010-10-21 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Reviewed by Martin Robinson.
+
+ [GTK] Use GCharsetConverter instead of g_iconv in TextCodecGtk
+ https://bugs.webkit.org/show_bug.cgi?id=47896
+
+ * wtf/gobject/GTypedefs.h:
+
+2010-10-21 Adam Barth <abarth@webkit.org>
+
+ Unreviewed, rolling out r70174.
+ http://trac.webkit.org/changeset/70174
+ https://bugs.webkit.org/show_bug.cgi?id=41948
+
+ This patch reverts a change that causes
+ http/tests/xmlhttprequest/origin-whitelisting-removal.html to crash.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::throwException):
+
+2010-10-20 Simon Fraser <simon.fraser@apple.com>
+
+ Fix the EFL build.
+
+ * wtf/CMakeLists.txt:
+
+2010-10-20 Simon Fraser <simon.fraser@apple.com>
+
+ Fix Windows build: export needed symbols.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+
+2010-10-19 Simon Fraser <simon.fraser@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ 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.
+
+ 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>
+
+ 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:
+
+2010-10-20 Dumitru Daniliuc <dumi@chromium.org>
+
+ Unreviewed, fixing the Win build.
+
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj:
+
+2010-10-20 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=41948
+ REGRESSION(r60392): Registerfile can be unwound too far following an exception
+
+ * 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.
+
+2010-10-20 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-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.
+
+ * wtf/Platform.h:
+
+2010-10-19 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Geoffrey Garen.
+
+ Remove support for JSVALUE32 from JSC
+ https://bugs.webkit.org/show_bug.cgi?id=47948
+
+ Remove all the code for supporting JSVALUE32 from JSC.
+
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ (JSC::JIT::privateCompileSlowCases):
+ * 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:
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::emitGetFromCallFrameHeaderPtr):
+ (JSC::JIT::emitGetFromCallFrameHeader32):
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::emit_op_loop_if_lesseq):
+ (JSC::JIT::emit_op_bitnot):
+ (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:
+ * jit/SpecializedThunkJIT.h:
+ (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:
+
+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>
+
+ 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.
+
+ Make a nullptr that works with OwnPtr and RefPtr
+ https://bugs.webkit.org/show_bug.cgi?id=47756
+
+ * JavaScriptCore.xcodeproj/project.pbxproj: Added NullPtr.h.
+
+ * wtf/NullPtr.h: Added.
+
+ * 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.
+
+2010-10-18 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Strict mode: JIT doesn't check for |this| being an immediate before dereferencing
+ https://bugs.webkit.org/show_bug.cgi?id=47826
+
+ There's no guarantee that |this| will be a cell in a strict mode function, so
+ don't claim that it is.
+
+ * bytecode/CodeBlock.h:
+ (JSC::CodeBlock::isKnownNotImmediate):
+
+2010-10-18 Zoltan Herczeg <zherczeg@webkit.org>
+
+ 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>
+
+ Reviewed by Andreas Kling.
+
+ Remove some unnecessary lines of code from Parser.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=47816
+
+ * parser/Parser.cpp:
+
+2010-10-18 Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Csaba Osztrogonác.
+
+ Build broken with JIT disabled
+ https://bugs.webkit.org/show_bug.cgi?id=47801
+
+ This is a regression caused by r69940.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::resolveBase):
+
+2010-10-18 Zoltan Horvath <zoltan@webkit.org>
+
+ Reviewed by Darin Adler.
+
+ Change FastAllocBase implementation into a macro
+ https://bugs.webkit.org/show_bug.cgi?id=42998
+
+ 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.
+
+ * wtf/FastAllocBase.h: Add a WTF_MAKE_FAST_ALLOCATED macro
+
+2010-10-17 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ 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
+
+ Simple fix, check for arguments in addition to eval.
+
+ * parser/JSParser.cpp:
+ (JSC::JSParser::parseUnaryExpression):
+
+2010-10-17 Oliver Hunt <oliver@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.
+
+ 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.
+
+ There's also a new helper function to create the exception for the invalid assignment.
+
+ * 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):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompileMainPass):
+ * jit/JIT.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>
+
+ Reviewed by Adam Barth.
+
+ Rename StringHasherFunctions.h to StringHasher.h
+ https://bugs.webkit.org/show_bug.cgi?id=47200
+
+ Now StringHasherFunctions.h only contains the StringHasher class, so rename it to the correct name.
+
+ * 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
+
+ * runtime/DateConversion.cpp:
+ (JSC::parseDate):
+ * wtf/DateMath.cpp:
+ (WTF::ymdhmsToSeconds):
+ (WTF::parseES5DateFromNullTerminatedCharacters):
+ * wtf/DateMath.h:
+
+2010-10-14 Nikolas Zimmermann <nzimmermann@rim.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.
+
+ need way to measure size of JITed ARM code
+ https://bugs.webkit.org/show_bug.cgi?id=47121
+
+ * assembler/LinkBuffer.h:
+ (JSC::LinkBuffer::linkCode):
+ (JSC::LinkBuffer::dumpLinkStats):
+ (JSC::LinkBuffer::dumpCode):
+
+2010-10-14 Peter Varga <pvarga@inf.u-szeged.hu>
+
+ Reviewed by Gavin Barraclough.
+
+ The backreference checking isn't working in some cases with YARR Interpreter
+ https://bugs.webkit.org/show_bug.cgi?id=46904
+
+ The Interpreter::matchBackReference() function returns true without matching
+ when a backreference points to the same parentheses where it is.
+
+ * yarr/RegexInterpreter.cpp:
+ (JSC::Yarr::Interpreter::matchBackReference):
+
+2010-10-14 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ Reviewed by Andreas Kling.
+
+ [Qt] Text breaking is slow: enable ICU as an opt-in
+ https://bugs.webkit.org/show_bug.cgi?id=40332
+
+ 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
+
+ * 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>
+
+ Reviewed by Csaba Osztrogonác.
+
+ 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.
+
+ * wtf/Platform.h: s/_PLATFORM_/_OS_/ for NetBSD
+
+2010-10-13 David Goodwin <david_goodwin@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ ARMv7 JIT should generated conditional branches when possible
+ https://bugs.webkit.org/show_bug.cgi?id=47384
+
+ 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).
+
+ 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.
+
+ * 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):
+
+2010-10-13 Fridrich Strba <fridrich.strba@bluewin.ch>
+
+ Reviewed by Darin Adler.
+
+ Don't depend on Windows on sched_yield and sched.h
+ https://bugs.webkit.org/show_bug.cgi?id=45543
+
+ 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.
+
+ * wtf/TCSpinLock.h:
+ (TCMalloc_SlowLock):
+
+2010-10-13 Kwang Yul Seo <skyul@company100.net>
+
+ Reviewed by Kent Tamura.
+
+ [BREWMP] Port unicode
+ https://bugs.webkit.org/show_bug.cgi?id=45716
+
+ Brew MP port uses only the subset of ICU library to reduce the binary size.
+ Follow the WinCE's implementation.
+
+ * 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:
+
+2010-10-13 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Maciej Stachowiak.
+
+ [WTFURL] Add URLQueryCanonicalizer
+ https://bugs.webkit.org/show_bug.cgi?id=45088
+
+ 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.
+
+ * 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):
+
+2010-10-13 Gavin Barraclough <barraclough@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.
+
+ * 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.
+
+ * 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.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.
+
+ * 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):
+
+2010-10-13 Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Csaba Osztrogonác.
+
+ Missing parameters for bytecode dump of next_pname
+ https://bugs.webkit.org/show_bug.cgi?id=47590
+
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::dump): add missing parameters to the dump.
+
+2010-10-13 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Reviewed by Dirk Schulze.
+
+ Add wtf/text/StringConcatenate
+ https://bugs.webkit.org/show_bug.cgi?id=47584
+
+ 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.
+
+ The UString variants can all be removed as soon as WTF::String & JSC::UString converge.
+
+ * 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):
+
+2010-10-12 Gavin Barraclough <barraclough@apple.com>
+
+ Windows build fix.
+
+ * wtf/text/StringBuilder.h:
+ (WTF::StringBuilder::length):
+
+2010-10-12 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Unify JSC::StringBuilder & WebCore::StringBuilder
+ https://bugs.webkit.org/show_bug.cgi?id=47538
+
+ 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.
+
+ No new code, just move code around.
+
+ * 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>
+
+ Reviewed by Oliver Hunt.
+
+ 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
+
+ * 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>
+
+ Undo last minute change to 32bit build.
+
+ * jit/JITOpcodes32_64.cpp:
+ (JSC::JIT::emit_op_convert_this_strict):
+
+2010-10-11 Brian Weinstein <bweinstein@apple.com>
+
+ Build fix for Windows. Add a necessary export from r69516.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+
+2010-10-11 Oliver Hunt <oliver@apple.com>
+
+ Fix interpreter build -- was broken by incorrect merge.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+
+2010-10-01 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ [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).
+
+ * 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):
+ * bytecode/CodeBlock.h:
+ (JSC::CodeBlock::isStrictMode):
+ * bytecode/EvalCodeCache.h:
+ (JSC::EvalCodeCache::get):
+ * bytecode/Opcode.h:
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::BytecodeGenerator):
+ (JSC::BytecodeGenerator::createArgumentsIfNecessary):
+ (JSC::BytecodeGenerator::emitReturn):
+ * bytecompiler/BytecodeGenerator.h:
+ (JSC::BytecodeGenerator::isStrictMode):
+ (JSC::BytecodeGenerator::makeFunction):
+ * debugger/Debugger.cpp:
+ (JSC::evaluateInGlobalCallFrame):
+ * debugger/DebuggerCallFrame.cpp:
+ (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/JITStubs.cpp:
+ (JSC::DEFINE_STUB_FUNCTION):
+ * 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/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::fromGlobalCode):
+ (JSC::ProgramExecutable::reparseExceptionInfo):
+ * runtime/Executable.h:
+ (JSC::ScriptExecutable::ScriptExecutable):
+ (JSC::ScriptExecutable::isStrictMode):
+ (JSC::EvalExecutable::create):
+ (JSC::FunctionExecutable::create):
+ * runtime/JSActivation.cpp:
+ (JSC::JSActivation::toStrictThisObject):
+ * runtime/JSActivation.h:
+ * runtime/JSFunction.cpp:
+ (JSC::createDescriptorForThrowingProperty):
+ (JSC::JSFunction::getOwnPropertySlot):
+ (JSC::JSFunction::getOwnPropertyDescriptor):
+ (JSC::JSFunction::put):
+ * runtime/JSGlobalData.cpp:
+ (JSC::JSGlobalData::JSGlobalData):
+ * 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):
+ * runtime/JSStaticScopeObject.h:
+ * runtime/JSValue.h:
+ * 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.
+
+ * wtf/text/WTFString.cpp:
+ * wtf/text/StringImpl.h:
+ * wtf/text/StringImpl.cpp:
+ Better use of size_t vs. unsigned; check for integer overflows.
+
+2010-10-07 David Goodwin <david_goodwin@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ ARM JIT generates undefined operations due to partially uninitialized ShiftTypeAndAmount
+ https://bugs.webkit.org/show_bug.cgi?id=47356
+
+ * assembler/ARMv7Assembler.h:
+
+2010-10-06 Chris Evans <cevans@google.com>
+
+ Reviewed by David Levin.
+
+ https://bugs.webkit.org/show_bug.cgi?id=47248
+
+ Use size_t consistently in CString, to prevent theoretical trouble
+ with > 4GB strings on 64-bit platforms.
+
+ * 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.
+ * 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>
+
+ Reviewed by Gavin Barraclough.
+
+ [BREWMP] Port ExecutableAllocator::cacheFlush to enable ARM JIT
+ https://bugs.webkit.org/show_bug.cgi?id=47117
+
+ Use IMemCache1 to flush data cache and invalidate instruction cache.
+
+ * jit/ExecutableAllocator.h:
+ (JSC::ExecutableAllocator::cacheFlush):
+
+2010-10-05 Leandro Pereira <leandro@profusion.mobi>
+
+ Unreviewed. Build fix.
+
+ 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
+
+ * CMakeLists.txt: Changed reference from "jsc" to "shell".
+ * jsc: Removed.
+ * jsc/CMakeLists.txt: Removed.
+ * jsc/CMakeListsEfl.txt: Removed.
+ * shell: Copied from JavaScriptCore/jsc.
+
+2010-10-05 Kwang Yul Seo <skyul@company100.net>
+
+ Reviewed by Kent Tamura.
+
+ [BREWMP] Use PlatformRefPtr in randomNumber
+ https://bugs.webkit.org/show_bug.cgi?id=46989
+
+ Use PlatformRefPtr to free memory automatically.
+
+ * wtf/RandomNumber.cpp:
+ (WTF::randomNumber):
+
+2010-10-05 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Darin Adler.
+
+ REGRESSION(r68338): JavaScript error on PowerPC only (crashes on Interpreter built for x86_64)
+ https://bugs.webkit.org/show_bug.cgi?id=46690
+
+ Use the correct register value when initialising the arguments
+ object in the interpreter. This is covered by existing tests.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+
+2010-10-04 David Goodwin <david_goodwin@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ ARMv7 JIT should take advantage of 2-byte branches to reduce code size
+ https://bugs.webkit.org/show_bug.cgi?id=47007
+
+ * 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):
+
+2010-10-04 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Reviewed by Antonio Gomes.
+
+ [EFL] Use fast malloc for WebKit EFL
+ https://bugs.webkit.org/show_bug.cgi?id=46691
+
+ Use fast malloc for WebKit EFL because the fast malloc is to allocate
+ memory quickly.
+
+ * wtf/CMakeListsEfl.txt:
+
+2010-10-04 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ Lazily create activation objects
+ https://bugs.webkit.org/show_bug.cgi?id=47107
+
+ 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.
+
+ 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.
+
+ 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.
+
+ * 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):
+
+2010-10-04 Adam Barth <abarth@webkit.org>
+
+ 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
+
+ Lower BLOCK_SIZE to 64KB because Brew MP runs on low end devices.
+
+ * runtime/Collector.h:
+
+2010-10-01 Viatcheslav Ostapenko <ostapenko.viatcheslav@nokia.com>
+
+ Reviewed by Andreas Kling.
+
+ [Qt] Stack overflow on symbian platform.
+ https://bugs.webkit.org/show_bug.cgi?id=40598
+
+ 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>
+
+ 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):
+
+2010-09-30 Kwang Yul Seo <skyul@company100.net>
+
+ Reviewed by Kent Tamura.
+
+ [BREWMP] Port PlatformRefPtr
+ https://bugs.webkit.org/show_bug.cgi?id=46370
+
+ Implement refPlatformPtr and derefPlatformPtr to use PlatformRefPtr in Brew MP.
+
+ * wtf/brew/RefPtrBrew.h: Added.
+ (WTF::refPlatformPtr):
+ (WTF::derefPlatformPtr):
+
+2010-09-29 Sam Weinig <sam@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:
+
+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>
+
+ Reviewed by Geoffrey Garen.
+
+ 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
+
+ * runtime/JSArray.cpp:
+ (JSC::JSArray::JSArray):
+
+2010-09-27 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Darin Adler.
+
+ 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.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::concatenateStrings):
+ (JSC::Interpreter::privateExecute):
+
+2010-09-27 Anders Carlsson <andersca@apple.com>
+
+ Fix thinko.
+
+ * runtime/JSCell.h:
+
+2010-09-27 Anders Carlsson <andersca@apple.com>
+
+ Reviewed by Adam Roben.
+
+ Try to fix Windows build.
+
+ * runtime/JSCell.h:
+ (JSC::MSVCBugWorkaround::MSVCBugWorkaround):
+ (JSC::MSVCBugWorkaround::~MSVCBugWorkaround):
+
+2010-09-27 Erik Arvidsson <arv@chromium.org>
+
+ Reviewed by Darin Adler.
+
+ Add operator == for AtomicString and Vector<Uchar>
+ https://bugs.webkit.org/show_bug.cgi?id=46509
+
+ * 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:
+ * 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>
+
+ Unreviewed, rolling out r68223.
+ http://trac.webkit.org/changeset/68223
+ https://bugs.webkit.org/show_bug.cgi?id=46448
+
+ It broke 2-3 tests on bots (Requested by Ossy on #webkit).
+
+ * 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:
+
+2010-09-23 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
+
+ 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.
+
+ * 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::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):
+ * runtime/Arguments.h:
+ (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):
+ * runtime/JSActivation.h:
+
+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.
+
+ [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
+
+ JIT code generated for instanceof was not checking to ensure that the prototype property was
+ an object, this patch ensures that it does.
+
+ * 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):
+
+2010-09-22 Patrick Gansterer <paroga@webkit.org>
+
+ 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.
+
+ 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
+ * 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:
+
+2010-09-19 Gavin Barraclough <barraclough@apple.com>
+
+ Windows build fix pt 1.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+
+2010-09-19 Gavin Barraclough <barraclough@apple.com>
+
+ Build fix - implicit double-to-int conversion invalid on 32-bit.
+
+ * runtime/DatePrototype.cpp:
+ (JSC::fillStructuresUsingDateArgs):
+ (JSC::dateProtoFuncSetYear):
+
+2010-09-19 Gavin Barraclough <barraclough@apple.com>
+
+ 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.
+
+ * 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.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>
+
+ 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
+
+ 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.
+
+2010-09-08 Csaba Osztrogonác <ossy@webkit.org>
+
+ 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):
+
+2010-09-08 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
+
+ Reviewed by Andreas Kling.
+
+ Re-Disable JIT for MSVC 64bit to fix the build on this compiler.
+ https://bugs.webkit.org/show_bug.cgi?id=45382
+
+ It was enabled in the cleanup made in r64176, though it is still
+ not implemented.
+
+ * wtf/Platform.h:
+
+2010-09-08 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Xan Lopez.
+
+ [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.
+
+2010-08-30 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Darin Adler.
+
+ 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.
+
+ * wtf/NonCopyingSort.h: Added.
+ (WTF::nonCopyingSort): It's secretly heapsort.
+ (WTF::heapSort): heapsort implementation.
+ (WTF::siftDown): Helper function for heapsort.
+ (WTF::heapify): ditto
+
+ Adjust build systems.
+
+ * GNUmakefile.am:
+ * JavaScriptCore.gypi:
+ * JavaScriptCore.vcproj/WTF/WTF.vcproj:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+
+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.
+
+ Support JSVALUE32_64 on MIPS
+ https://bugs.webkit.org/show_bug.cgi?id=43999
+
+ Add missing functions to support JSVALUE32_64 on MIPS.
+ Remove JSVALUE32 as the default for MIPS.
+
+ * 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:
+ * 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.
+
+ 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.
+
+ [Qt] utf8 encoding of console() messages
+
+ 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 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):
+
+2010-09-02 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ Add ParsedURL and URLString to WTFURL API
+ https://bugs.webkit.org/show_bug.cgi?id=45078
+
+ Currently there's no actual URL parsing going on, but this patch is a
+ start to sketching out the API.
+
+ * 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>
+
+ 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.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.
+
+ 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.
+
+ * 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):
+
+2010-08-28 Pratik Solanki <psolanki@apple.com>
+
+ Reviewed by Dan Bernstein.
+
+ Add an ENABLE define for purgeable memory support
+ https://bugs.webkit.org/show_bug.cgi?id=44777
+
+ * 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:
+
+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
+
+ Remove WTF_USE_GLES2_RENDERING from the list of defines in chromium, it's unused.
+
+ * wtf/Platform.h:
+
+2010-08-26 Gavin Barraclough <barraclough@apple.com>
+
+ Rolling out r64608, this regressed performance.
+
+ * 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):
+
+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.
+
+ [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):
+
+2010-08-25 Kwang Yul Seo <skyul@company100.net>
+
+ Reviewed by Kevin Ollivier.
+
+ [BREWMP] Add build system
+ https://bugs.webkit.org/show_bug.cgi?id=44645
+
+ Make waf script portable so that we can add more ports.
+
+ * wscript:
+
+2010-08-25 Michael Saboff <msaboff@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.
+
+ * 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:
+
+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>
+
+ 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
+
+ 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.
+
+ * 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>
+
+ [EFL] Build fix after r65366.
+
+ * CMakeLists.txt: Use if (VAR) instead of if (${VAR}) to check if
+ they're empty.
+ * jsc/CMakeLists.txt: Ditto.
+ * wtf/CMakeLists.txt: Ditto.
+
+2010-08-15 Kevin Ollivier <kevino@theolliviers.com>
+
+ [wx] Build fix, don't build intermediate source in DerivedSources dir.
+
+ * wscript:
+
+2010-08-14 Patrick Gansterer <paroga@paroga.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [CMake] Add preprocessor detection for generator scripts
+ https://bugs.webkit.org/show_bug.cgi?id=43984
+
+ * CMakeLists.txt:
+
+2010-08-14 Patrick Gansterer <paroga@paroga.com>
+
+ 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>
+
+ [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.
+
+ * 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/text/StringImpl.h:
+ * wtf/text/WTFString.cpp:
+ (WTF::String::ascii):
+ (WTF::String::latin1):
+ * wtf/text/WTFString.h:
+
+2010-08-13 Gabor Loki <loki@webkit.org>
+
+ 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
+
+ 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 Zoltan Herczeg <zherczeg@webkit.org>
+
+ Reviewed by Gavin Barraclough.
+
+ Refactoring the fpu code generator for the ARM port
+ https://bugs.webkit.org/show_bug.cgi?id=43842
+
+ 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.
+
+ * 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):
+
+2010-08-12 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r65295.
+ http://trac.webkit.org/changeset/65295
+ https://bugs.webkit.org/show_bug.cgi?id=43950
+
+ It broke 4 sputnik tests (Requested by Ossy on #webkit).
+
+ * 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):
+
+2010-08-12 Gavin Barraclough <barraclough@apple.com>
+
+ Windows build fix.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+
+2010-08-12 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Sam Weinig
+
+ 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.
+
+ * yarr/RegexJIT.cpp:
+ (JSC::Yarr::RegexGenerator::generateEnter):
+ (JSC::Yarr::RegexGenerator::generateReturn):
+
+2010-08-11 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.
+
+ * wtf/Forward.h:
+
+2010-08-11 Gavin Barraclough <barraclough@apple.com>
+
+ Rubber stamps by Darin Adler & Sam Weinig.
+
+ Bug 43867 - Some UString cleanup
+
+ 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::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):
+ * runtime/Structure.cpp:
+ (JSC::Structure::~Structure):
+ (JSC::Structure::despecifyDictionaryFunction):
+ (JSC::Structure::addPropertyTransitionToExistingStructure):
+ (JSC::Structure::addPropertyTransition):
+ (JSC::Structure::copyPropertyTable):
+ (JSC::Structure::get):
+ (JSC::Structure::despecifyFunction):
+ (JSC::Structure::put):
+ (JSC::Structure::hasTransition):
+ (JSC::Structure::remove):
+ (JSC::Structure::checkConsistency):
+ * runtime/Structure.h:
+ (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.
+
+ * 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>
+
+ Reviewed by Eric Seidel.
+
+ Make FastMalloc more portable.
+ https://bugs.webkit.org/show_bug.cgi?id=41790
+
+ * 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:
+
+2010-08-06 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-07 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r64938.
+ http://trac.webkit.org/changeset/64938
+ https://bugs.webkit.org/show_bug.cgi?id=43685
+
+ Did not compile on several ports (Requested by abarth on
+ #webkit).
+
+ * 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 Geoffrey Garen.
+
+ 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.
+
+ * 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
+
+2010-08-07 Michael Saboff <msaboff@apple.com>
+
+ Reviewed by Geoffrey Garen.
+
+ 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.
+
+ * 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):
+
+2010-08-07 Kwang Yul Seo <skyul@company100.net>
+
+ Reviewed by Eric Seidel.
+
+ Add ENABLE(YARR) guard around JSGlobalData::m_regexAllocator
+ https://bugs.webkit.org/show_bug.cgi?id=43399
+
+ m_regexAllocator is used only by RegExp::compile which is guarded with ENABLE(YARR).
+
+ * runtime/JSGlobalData.h:
+
+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):
+
+2010-08-06 Rafael Antognolli <antognolli@profusion.mobi>
+
+ [EFL] Build fix.
+
+ * CMakeLists.txt: add runtime/CGHandle.cpp.
+
+2010-08-06 Jessie Berlin <jberlin@apple.com>
+
+ Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+ Unreviewed.
+
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * wtf/Forward.h:
+
+2010-08-06 Jessie Berlin <jberlin@apple.com>
+
+ Windows Build Fix (continued). Unreviewed.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+
+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>
+
+ 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.
+
+ 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.
+
+ * 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):
+ * bytecompiler/BytecodeGenerator.cpp:
+ (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):
+ * bytecompiler/BytecodeGenerator.h:
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::resolveGlobal):
+ (JSC::Interpreter::resolveGlobalDynamic):
+ (JSC::Interpreter::privateExecute):
+ * 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):
+ * 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::setupPolymorphicProtoList):
+ * jit/JITStubs.h:
+ * jit/SpecializedThunkJIT.h:
+ (JSC::SpecializedThunkJIT::finalize):
+ * runtime/ExceptionHelpers.cpp:
+ (JSC::createOutOfMemoryError):
+ * 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):
+
+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/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()):
+ * 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
+
+ 1) wrong order of passing param's
+ 2) static_cast complains on symbian so using reinterpret_cast
+
+ No new tests added. Just a build fix for qt symbian
+
+ * wtf/PageAllocation.cpp:
+ (WTF::PageAllocation::commit):
+ (WTF::PageAllocation::decommit):
+ (WTF::PageAllocation::reserve):
+
+2010-07-30 Luiz Agostini <luiz.agostini@openbossa.org>
+
+ Reviewed by Simon Fraser.
+
+ Enabling view modes to all platforms
+ https://bugs.webkit.org/show_bug.cgi?id=37505
+
+ Removing ENABLE_WIDGETS_10_SUPPORT flag.
+
+ 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.
+
+ * wtf/Platform.h:
+
+2010-07-30 Andy Estes <aestes@apple.com>
+
+ Reviewed by David Kilzer.
+
+ Add Xcode support for compiling WebKit against iOS SDKs.
+ https://bugs.webkit.org/show_bug.cgi?id=42796
+
+ * Configurations/Base.xcconfig:
+ * Configurations/DebugRelease.xcconfig:
+ * Configurations/FeatureDefines.xcconfig:
+
+2010-07-30 Dumitru Daniliuc <dumi@chromium.org>
+
+ Reviewed by Davin Levin.
+
+ Added a yield() function.
+ https://bugs.webkit.org/show_bug.cgi?id=42843
+
+ * 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):
+
+2010-07-30 Rafael Antognolli <antognolli@profusion.mobi>
+
+ Reviewed by Antonio Gomes.
+
+ [EFL] Add library version and soname to EFL generated libraries and binary.
+ https://bugs.webkit.org/show_bug.cgi?id=43212
+
+ Add version and soname to libjavascriptcore.so and libwtf.so in case of
+ linking as shared libraries, and version to jsc executable.
+
+ * CMakeLists.txt:
+ * jsc/CMakeLists.txt:
+ * wtf/CMakeLists.txt:
+
+2010-07-30 Mahesh Kulkarni <mahesh.kulkarni@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [QT] build fix for symbian
+ https://bugs.webkit.org/show_bug.cgi?id=43234
+
+ * wtf/PageAllocation.h:
+ (WTF::PageAllocation::PageAllocation):
+
+2010-07-29 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
+
+ Some Chromium bots are not happy with it for some unknown
+ reason. (Requested by dumi 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):
+
+2010-07-29 Michael Saboff <msaboff@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Changed MINIMUM_CELL_SIZE to be fixed at 64 bytes.
+
+ * runtime/Collector.h:
+
+2010-07-28 Dumitru Daniliuc <dumi@chromium.org>
+
+ Reviewed by David Levin.
+
+ Added a yield() function.
+ https://bugs.webkit.org/show_bug.cgi?id=42843
+
+ * 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):
+
+2010-07-29 Michael Saboff <msaboff@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ 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
+
+ * yarr/RegexJIT.cpp:
+ (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack):
+
+2010-07-29 Gabor Loki <loki@webkit.org>
+
+ 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):
+ * 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):
+
+2010-07-29 Martin Robinson <mrobinson@igalia.com>
+
+ Unreviewed build fix.
+
+ Include a missing header in the source list to fix 'make dist.'
+
+ * GNUmakefile.am: Include missing header.
+
+2010-07-28 Gavin Barraclough <barraclough@apple.com>
+
+ 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
+
+ * wtf/Platform.h:
+
+2010-07-27 Gavin Barraclough <barraclough@apple.com>
+
+ Oh! that makes more sense! Maybe C++-style comments are bringing teh bad mojo.
+
+ * wtf/Platform.h:
+
+2010-07-27 Gavin Barraclough <barraclough@apple.com>
+
+ Speculative build fix for GTK/64 ... seems to be barfing on a comment o_O
+
+ * wtf/Platform.h:
+
+2010-07-27 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):
+
+2010-07-27 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Bug 43089 - Cleanup JIT related switched in Platform.h
+
+ 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.
+
+ 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".
+
+ * 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:
+
+2010-07-27 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
+
+ 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.
+
+ * 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>
+
+ 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.
+
+ 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
+
+ If CLIENT_BASED_GEOLOCATION is enabled, enable preemtive permission policy
+ by default
+
+ * wtf/Platform.h:
+
+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.
+
+ Need to be able to configure Geolocation policy regarding user permissions
+ https://bugs.webkit.org/show_bug.cgi?id=42068
+
+ If CLIENT_BASED_GEOLOCATION is enabled, enable preemtive permission policy
+ by default
+
+ * wtf/Platform.h:
+
+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.
+
+ * CMakeLists.txt:
+ * CMakeListsEfl.txt: Add ExecutableAllocatorPosix.cpp.
+
+2010-07-16 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
+
+ * 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.
+
+ Really add WARN_UNUSED_RESULT to leakRef
+ https://bugs.webkit.org/show_bug.cgi?id=42464
+
+ * 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.
+
+ 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
+
+ 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.
+
+ * 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):
+ * 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.
+
+2010-07-13 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.
+
+2010-07-13 Gavin Barraclough <barraclough@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.
+
+ [GTK] make dist is broken because of missing headers and other miscellaneous reasons
+ https://bugs.webkit.org/show_bug.cgi?id=42107
+
+ * 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.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
+ Removed the pre-link event, which just created the public\sym
+ directory.
+
+2010-07-12 Anders Carlsson <andersca@apple.com>
+
+ Reviewed by Dan Bernstein.
+
+ Add WARN_UNUSED_RETURN to the smart pointer "leak" member functions
+ https://bugs.webkit.org/show_bug.cgi?id=42086
+
+ * wtf/OwnPtr.h:
+ * wtf/PassOwnPtr.h:
+ * wtf/PassRefPtr.h:
+ (WTF::PassRefPtr::releaseRef):
+ (WTF::NonNullPassRefPtr::leakRef):
+ (WTF::NonNullPassRefPtr::releaseRef):
+ * wtf/RetainPtr.h:
+ (WTF::RetainPtr::releaseRef):
+
+2010-07-10 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ HAVE_COMPUTED_GOTO is dependent on the interpreter being enabled
+ https://bugs.webkit.org/show_bug.cgi?id=42039
+
+ 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)
+
+ * 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:
+
+2010-07-09 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Tidy up lexer token ids
+ https://bugs.webkit.org/show_bug.cgi?id=42014
+
+ Stop using character literals to identify single character tokens
+ and instead use symbolic names for all tokens.
+
+ * 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:
+
+2010-07-09 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Bug 42015 - Enable JSValue32_64 on ARMv7
+
+ * Configurations/JavaScriptCore.xcconfig:
+ * jit/JIT.h:
+ * jit/JITStubs.cpp:
+ * wtf/Platform.h:
+
+2010-07-09 Kenneth Russell <kbr@google.com>
+
+ 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):
+
+2010-07-08 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ 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.
+
+ 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.
+
+ We still emit normal put_by_id code when emitting __proto__ as we want
+ to get the correct handling for changing the prototype.
+
+ 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.
+
+ * 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:
+
+2010-07-08 Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Gustavo Noronha.
+
+ Silence a few noisy build rules.
+
+ * GNUmakefile.am:
+
+2010-07-08 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ 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).
+
+ * 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 Oliver Hunt.
+
+ Interpreter: Crash in op_load_varargs on 64-bit
+ https://bugs.webkit.org/show_bug.cgi?id=41795
+
+ Added missing cast of argCount to int32_t in op_load_varargs.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+
+2010-07-08 Patrick Gansterer <paroga@paroga.com>
+
+ Reviewed by Geoffrey Garen.
+
+ Make FastMalloc more portable.
+ https://bugs.webkit.org/show_bug.cgi?id=41790
+
+ Use WTF::Mutex instead of pthread_mutex_t and
+ replace pthread_cond_t with WTF::ThreadCondition.
+
+ * wtf/FastMalloc.cpp:
+ (WTF::TCMalloc_PageHeap::initializeScavenger):
+ (WTF::TCMalloc_PageHeap::signalScavenger):
+ (WTF::TCMalloc_PageHeap::scavengerThread):
+
+2010-07-08 Patrick Gansterer <paroga@paroga.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.
+
+ * runtime/Collector.cpp:
+ (JSC::Heap::freeBlocks):
+
+2010-07-07 Darin Adler <darin@apple.com>
+
+ Reviewed by Adam Barth.
+
+ More OwnPtr work
+ https://bugs.webkit.org/show_bug.cgi?id=41727
+
+ * 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.
+
+2010-07-07 Darin Adler <darin@apple.com>
+
+ Reviewed by Adam Barth.
+
+ Make clear set the pointer to 0 before deletion
+ https://bugs.webkit.org/show_bug.cgi?id=41727
+
+ * 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.
+
+ * 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.
+
+ * wtf/gobject/GOwnPtr.h: More of the same.
+ * wtf/gobject/GRefPtr.h: Ditto.
+
+2010-07-07 Zoltan Herczeg <zherczeg@webkit.org>
+
+ 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:
+
+2010-07-06 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r62511.
+ http://trac.webkit.org/changeset/62511
+ https://bugs.webkit.org/show_bug.cgi?id=41686
+
+ Breaks Linux/64bit compilation (Requested by xan_ on #webkit).
+
+ * 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:
+
+2010-07-05 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:
+
+2010-07-05 Steve Block <steveblock@google.com>
+
+ 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.
+
+2010-07-03 Yong Li <yoli@rim.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:
+
+2010-07-01 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Bug 41490 - Add missing operations to MacroAssemblerARMv7
+ Also, make single, double, quad register numbers in ARMv7Assembler distinct & strongly typed.
+
+ * 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:
+
+2010-07-01 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ Improve reentrancy logic in polymorphic cache stubs
+ <https://bugs.webkit.org/show_bug.cgi?id=41482>
+ <rdar://problem/8094380>
+
+ Make the polymorphic cache stubs handle reentrancy
+ better.
+
+ * jit/JITStubs.cpp:
+ (JSC::DEFINE_STUB_FUNCTION):
+ (JSC::getPolymorphicAccessStructureListSlot):
+
+2010-07-01 Antti Koivisto <koivisto@iki.fi>
+
+ Revert accidental commit.
+
+ * runtime/Collector.cpp:
+ (JSC::Heap::allocateBlock):
+
+2010-06-30 Darin Adler <darin@apple.com>
+
+ Reviewed by Adam Barth.
+
+ Add assertion, off by default, for when you forget to do adoptRef
+ https://bugs.webkit.org/show_bug.cgi?id=41422
+
+ * 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.
+
+ * 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.
+
+2010-06-29 Michael Saboff <msaboff@apple.com>
+
+ 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.
+
+ * 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):
+ * wtf/Platform.h:
+
+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>
+
+ Unreviewed, rolling out r61833.
+ http://trac.webkit.org/changeset/61833
+ https://bugs.webkit.org/show_bug.cgi?id=41205
+
+ It broke Leopard and GTK (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 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/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:
+
+ 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.
+
+ Single character string replacement may replace too many characters
+ https://bugs.webkit.org/show_bug.cgi?id=41138
+ <rdar://problem/8097496>
+
+ 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):
+
+2010-06-23 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ Custom-written JavaScript parser
+ https://bugs.webkit.org/show_bug.cgi?id=34019
+
+ Implement a recursive descent parser similar to that used by V8 and
+ SpiderMonkey. Greater than 2x improvement in SunSpider parsing tests.
+
+ 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.
+
+ 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.
+
+ * GNUmakefile.am:
+ * JavaScriptCore.gypi:
+ * JavaScriptCore.pro:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.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):
+
+2010-06-23 Kwang Yul Seo <skyul@company100.net>
+
+ 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.
+
+ * 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.
+
+2010-06-16 Peter Varga <pvarga@inf.u-szeged.hu>
+
+ Reviewed by Geoffrey Garen.
+
+ Store matchBegin directly in the array of output instead of the stack.
+ https://bugs.webkit.org/show_bug.cgi?id=38988
+
+ * yarr/RegexJIT.cpp:
+ (JSC::Yarr::RegexGenerator::generateDisjunction):
+ (JSC::Yarr::RegexGenerator::generate):
+
+2010-06-15 Anders Carlsson <andersca@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Make JavaScriptCore build with clang++.
+
+ * jit/JITInlineMethods.h:
+ (JSC::JIT::emitPutVirtualRegister):
+ Explicitly cast to an int.
+
+ * yarr/RegexCompiler.cpp:
+ (JSC::Yarr::compileRegex):
+ Return 0 instead of false.
+
+2010-06-15 Adam Roben <aroben@apple.com>
+
+ Make WebCore's and JavaScriptCore's DerivedSources available for debugging in production builds
+
+ Fixes <http://webkit.org/b/40626> <rdar://problem/8094205>.
+
+ 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
+
+ * JavaScriptCore.exp:
+
+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.
+
+2010-06-07 MORITA Hajime <morrita@google.com>
+
+ Reviewed by Kent Tamura.
+
+ https://bugs.webkit.org/show_bug.cgi?id=40219
+ [Mac] ENABLE_METER_TAG should be enabled
+
+ Added ENABLE_METER_TAG.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2010-06-07 Kwang Yul Seo <skyul@company100.net>
+
+ Reviewed by Eric Seidel.
+
+ [BREWMP] Add more types to OwnPtr
+ https://bugs.webkit.org/show_bug.cgi?id=39667
+
+ Add ISSL and ISocket to the list of OwnPtr-ed type.
+
+ * wtf/OwnPtrCommon.h:
+ * wtf/brew/OwnPtrBrew.cpp:
+ (WTF::deleteOwnedPtr):
+
+2010-06-07 Benjamin Poulain <benjamin.poulain@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Crash when compiling on Snow Leopard and running on Leopard
+ https://bugs.webkit.org/show_bug.cgi?id=31403
+
+ Disable the use of pthread_setname_np and other symbols
+ when targetting Leopard.
+
+ Use the defines TARGETING_XX instead of BUILDING_ON_XX
+ for features that cannot be used before Snow Leopard.
+
+ * wtf/Platform.h:
+
+2010-06-07 Gabor Loki <loki@webkit.org>
+
+ Reviewed by NOBODY (JSVALUE32_64 build fix).
+
+ * jit/JITOpcodes32_64.cpp:
+ (JSC::JIT::privateCompileCTINativeCall):
+
+2010-06-06 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by NOBODY (windows build fix pt 2).
+
+ * JavaScriptCore.exp:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+
+2010-06-06 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by NOBODY (windows build fix pt 1).
+
+ * JavaScriptCore.exp:
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+
+2010-06-06 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(...)".
+
+ * 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/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/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/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/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/RegExpConstructor.cpp:
+ (JSC::constructRegExp):
+ * runtime/RegExpObject.cpp:
+ (JSC::RegExpObject::match):
+ * runtime/RegExpPrototype.cpp:
+ (JSC::regExpProtoFuncTest):
+ (JSC::regExpProtoFuncExec):
+ (JSC::regExpProtoFuncCompile):
+ (JSC::regExpProtoFuncToString):
+ * 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
+
+ Build fix for BREW MP.
+
+ * wtf/MathExtras.h:
+
+2010-06-04 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Darin Adler.
+
+ HTML5 parser should be within 1% of old parser performance
+ https://bugs.webkit.org/show_bug.cgi?id=40172
+
+ Fix cast in this operator= to allow for assignment between vectors with
+ different inline capacities (as clearly intended by its author).
+
+ * wtf/Vector.h:
+ (WTF::::operator):
+
+2010-06-04 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ New QtScript API; QScriptValue::instanceOf.
+
+ New function create an easy way to check value's prototype hierarchy.
+
+ [Qt] QScriptValue should have an instanceOf method
+ https://bugs.webkit.org/show_bug.cgi?id=40120
+
+ * 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):
+
+2010-06-04 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by NOBODY (interpreter build fix).
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+
+2010-06-04 Mark Rowe <mrowe@apple.com>
+
+ Silence some warnings seen on the build bot.
+
+ * 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.
+
+2010-06-04 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Bug 40187 - Change function signature of NativeConstructor to match NativeFunction
+
+ 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.
+
+ * API/JSCallbackConstructor.cpp:
+ (JSC::constructJSCallback):
+ * API/JSCallbackObject.h:
+ * API/JSCallbackObjectFunctions.h:
+ (JSC::::construct):
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::executeConstruct):
+ * interpreter/Interpreter.h:
+ * jit/JITStubs.cpp:
+ (JSC::DEFINE_STUB_FUNCTION):
+ * runtime/ArrayConstructor.cpp:
+ (JSC::constructWithArrayConstructor):
+ * runtime/BooleanConstructor.cpp:
+ (JSC::constructWithBooleanConstructor):
+ * runtime/ConstructData.cpp:
+ (JSC::construct):
+ * runtime/ConstructData.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/ObjectConstructor.cpp:
+ (JSC::constructWithObjectConstructor):
+ * runtime/RegExpConstructor.cpp:
+ (JSC::constructWithRegExpConstructor):
+ * runtime/StringConstructor.cpp:
+ (JSC::constructWithStringConstructor):
+
+2010-06-04 Tony Gentilcore <tonyg@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ Add a takeFirst() method to Deque and use it where appropriate.
+ https://bugs.webkit.org/show_bug.cgi?id=40089
+
+ * wtf/Deque.h:
+ (WTF::::takeFirst):
+ * wtf/MainThread.cpp:
+ (WTF::dispatchFunctionsFromMainThread):
+ * wtf/MessageQueue.h:
+ (WTF::::tryGetMessage):
+
+2010-06-04 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Remove a QEXPECT_FAIL flag from an autotest.
+
+ 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):
+
+2010-06-03 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ New states in QScriptValuePrivate.
+
+ 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.
+
+ [Qt] The QScriptValuePrivate::CSpecial is too generic.
+ https://bugs.webkit.org/show_bug.cgi?id=40067
+
+ * qt/api/qscriptvalue_p.h:
+ (QScriptValuePrivate::):
+ (QScriptValuePrivate::QScriptValuePrivate):
+ (QScriptValuePrivate::isNull):
+ (QScriptValuePrivate::isUndefined):
+ (QScriptValuePrivate::toString):
+ (QScriptValuePrivate::toNumber):
+ (QScriptValuePrivate::toBool):
+ (QScriptValuePrivate::toObject):
+ (QScriptValuePrivate::assignEngine):
+ (QScriptValuePrivate::isNumberBased):
+
+2010-06-03 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by NOBODY (Qt build fix).
+
+ * wtf/Platform.h:
+
+2010-06-03 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Mark Rowe.
+
+ Bug 40150 - ENABLE_JIT_OPTIMIZE_NATIVE_CALL on all x86/x86_64 platforms
+ This was fixed in bug #40094.
+
+ * 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):
+
+2010-06-03 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by NOBODY (windows build fix II).
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+
+2010-06-03 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by NOBODY (windows build fix).
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+
+2010-06-02 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ 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.
+
+ * API/JSCallbackFunction.cpp:
+ (JSC::JSCallbackFunction::call):
+ * API/JSCallbackFunction.h:
+ * API/JSCallbackObject.h:
+ * API/JSCallbackObjectFunctions.h:
+ (JSC::::call):
+ * JavaScriptCore.exp:
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::executeCall):
+ * jit/JITStubs.cpp:
+ (JSC::DEFINE_STUB_FUNCTION):
+ * jit/JITStubs.h:
+ * 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/CallData.h:
+ * runtime/DateConstructor.cpp:
+ (JSC::callDate):
+ (JSC::dateParse):
+ (JSC::dateNow):
+ (JSC::dateUTC):
+ * 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/ErrorPrototype.cpp:
+ (JSC::errorProtoFuncToString):
+ * runtime/FunctionConstructor.cpp:
+ (JSC::callFunctionConstructor):
+ * runtime/FunctionPrototype.cpp:
+ (JSC::callFunctionPrototype):
+ (JSC::functionProtoFuncToString):
+ (JSC::functionProtoFuncApply):
+ (JSC::functionProtoFuncCall):
+ * 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/JSONObject.cpp:
+ (JSC::JSONProtoFuncParse):
+ (JSC::JSONProtoFuncStringify):
+ * runtime/JSObject.cpp:
+ (JSC::callDefaultValueFunction):
+ * runtime/JSValue.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::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/RegExpObject.cpp:
+ (JSC::callRegExpObject):
+ * runtime/RegExpPrototype.cpp:
+ (JSC::regExpProtoFuncTest):
+ (JSC::regExpProtoFuncExec):
+ (JSC::regExpProtoFuncCompile):
+ (JSC::regExpProtoFuncToString):
+ * runtime/StringConstructor.cpp:
+ (JSC::stringFromCharCode):
+ (JSC::callStringConstructor):
+ * runtime/StringPrototype.cpp:
+ (JSC::stringProtoFuncReplace):
+ (JSC::stringProtoFuncToString):
+ (JSC::stringProtoFuncCharAt):
+ (JSC::stringProtoFuncCharCodeAt):
+ (JSC::stringProtoFuncConcat):
+ (JSC::stringProtoFuncIndexOf):
+ (JSC::stringProtoFuncLastIndexOf):
+ (JSC::stringProtoFuncMatch):
+ (JSC::stringProtoFuncSearch):
+ (JSC::stringProtoFuncSlice):
+ (JSC::stringProtoFuncSplit):
+ (JSC::stringProtoFuncSubstr):
+ (JSC::stringProtoFuncSubstring):
+ (JSC::stringProtoFuncToLowerCase):
+ (JSC::stringProtoFuncToUpperCase):
+ (JSC::stringProtoFuncLocaleCompare):
+ (JSC::stringProtoFuncBig):
+ (JSC::stringProtoFuncSmall):
+ (JSC::stringProtoFuncBlink):
+ (JSC::stringProtoFuncBold):
+ (JSC::stringProtoFuncFixed):
+ (JSC::stringProtoFuncItalics):
+ (JSC::stringProtoFuncStrike):
+ (JSC::stringProtoFuncSub):
+ (JSC::stringProtoFuncSup):
+ (JSC::stringProtoFuncFontcolor):
+ (JSC::stringProtoFuncFontsize):
+ (JSC::stringProtoFuncAnchor):
+ (JSC::stringProtoFuncLink):
+ (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.
+
+ * Configurations/JavaScriptCore.xcconfig:
+ * DerivedSources.make:
+ * JavaScriptCore.JSVALUE32_64only.exp: Added.
+ * JavaScriptCore.JSVALUE32only.exp: Added.
+ * JavaScriptCore.JSVALUE64only.exp: Added.
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+
+2010-06-02 Mark Rowe <mrowe@apple.com>
+
+ Reviewed by Gavin Barraclough.
+
+ <rdar://problem/8054988> Work around an LLVM GCC code generation bug that results in crashes inside PCRE.
+
+ * 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.
+
+2010-06-02 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Fix the QScriptValue::strictlyEquals function.
+
+ Handling for a few edge cases was added.
+
+ New autotest that covers the QScriptValue::strictlyEquals function.
+
+ [Qt] QScriptValue::strictlyEquals is broken
+ https://bugs.webkit.org/show_bug.cgi?id=36600
+
+ * 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):
+
+2010-06-02 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ New function QScriptEngine::newObject.
+
+ The function creates a object of class Object and returns it
+ as a QScriptValue.
+
+ [Qt] QScriptEngine API should contain a newObject function
+ https://bugs.webkit.org/show_bug.cgi?id=39114
+
+ * 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):
+
+2010-06-02 Gabor Loki <loki@webkit.org>
+
+ Reviewed by Gavin Barraclough.
+ https://bugs.webkit.org/show_bug.cgi?id=40011
+
+ 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.
+
+ * assembler/MacroAssemblerARMv7.h:
+ (JSC::MacroAssemblerARMv7::load16):
+
+2010-06-02 Sterling Swigart <sswigart@google.com>
+
+ Reviewed by David Levin.
+
+ Image Resizer Patch 0: Added compilation argument to conditionally compile pending patches.
+ https://bugs.webkit.org/show_bug.cgi?id=39906
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2010-06-01 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Bug 40021 - Refactor bytecode generation for calls so that register for this & args are allocated together
+
+ This is a useful stepping stone towards reversing argument order.
+
+ * 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>
+
+ Reviewed by Darin Adler.
+
+ Explicitly use PTHREAD_MUTEX_NORMAL to create pthread mutex.
+ https://bugs.webkit.org/show_bug.cgi?id=39893
+
+ * wtf/ThreadingPthreads.cpp:
+ (WTF::Mutex::Mutex):
+
+2010-06-01 Kwang Yul Seo <skyul@company100.net>
+
+ Reviewed by Xan Lopez.
+
+ [GTK] Use DEFINE_STATIC_LOCAL for threadMapMutex and threadMap
+ https://bugs.webkit.org/show_bug.cgi?id=39831
+
+ Use DEFINE_STATIC_LOCAL for static local variables.
+
+ * wtf/gtk/ThreadingGtk.cpp:
+ (WTF::threadMapMutex):
+ (WTF::threadMap):
+ (WTF::identifierByGthreadHandle):
+
+2010-06-01 Kent Tamura <tkent@chromium.org>
+
+ Reviewed by Shinichiro Hamaji.
+
+ Fix style errors of dtoa
+ https://bugs.webkit.org/show_bug.cgi?id=39972
+
+ Fix all errors reported by check-webkit-style.
+
+ * wtf/dtoa.cpp:
+ * wtf/dtoa.h:
+
+2010-05-30 Darin Adler <darin@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.
+
+ * 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:
+
+2010-05-29 Geoffrey Garen <ggaren@apple.com>
+
+ Fixed Windows crash seen on buildbot.
+
+ * jit/JITOpcodes32_64.cpp:
+ (JSC::JIT::privateCompileCTINativeCall): __fastcall puts the first
+ argument in ecx.
+
+2010-05-28 Geoffrey Garen <ggaren@apple.com>
+
+ Windows build fix: Updated exported symbols.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+
+2010-05-28 Geoffrey Garen <ggaren@apple.com>
+
+ Qt build fix: disable a little more stuff when JIT_OPTIMIZE_NATIVE_CALL
+ is disabled.
+
+ * runtime/Lookup.cpp:
+ (JSC::setUpStaticFunctionSlot):
+ * runtime/Lookup.h:
+ * wtf/Platform.h:
+
+2010-05-28 Geoffrey Garen <ggaren@apple.com>
+
+ Windows build fix: Updated exported symbols.
+
+ * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
+
+2010-05-28 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Sam Weinig, Gavin Barraclough, Oliver Hunt.
+
+ Simplified the host calling convention.
+
+ 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.
+
+ * 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.
+
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::callEval): Updated for removal of ExecState::thisValue().
+
+ (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.)
+
+ (JSC::Interpreter::execute): Clarified the scope of DynamicGlobalObjectScope.
+ Updated for CallFrame::init API change.
+
+ (JSC::Interpreter::executeCall): Clarified scope of DynamicGlobalObjectScope.
+ Updated for CallFrame::init API change. Added support for calling a host
+ function.
+
+ (JSC::Interpreter::executeConstruct): Clarified scope of DynamicGlobalObjectScope.
+ Updated for CallFrame::init API change.
+
+ (JSC::Interpreter::prepareForRepeatCall): Updated for CallFrame::init API change.
+
+ (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.
+
+ * 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.
+
+ * 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.
+
+ * 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.
+
+ * 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.
+
+ 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)
+
+ * 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>
+
+ Reviewed by Geoffrey Garen.
+
+ Fix the JSObjectSetPrototype function.
+
+ 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.
+
+ JSObjectSetPrototype doesn't check for cycle in prototype chain.
+ https://bugs.webkit.org/show_bug.cgi?id=39360
+
+ * API/JSObjectRef.cpp:
+ (JSObjectSetPrototype):
+ * API/tests/testapi.c:
+ (assertTrue):
+ (checkForCycleInPrototypeChain):
+ (main):
+ * runtime/JSObject.cpp:
+ (JSC::JSObject::put):
+ * 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):
+
+2010-05-28 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Geoff Garen.
+
+ Move jit compilation from linking thunks into cti_vm_lazyLink methods.
+
+ * jit/JITOpcodes.cpp:
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ * jit/JITOpcodes32_64.cpp:
+ (JSC::JIT::privateCompileCTIMachineTrampolines):
+ * jit/JITStubs.cpp:
+ (JSC::DEFINE_STUB_FUNCTION):
+
+2010-05-28 Gavin Barraclough <barraclough@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Bug 39898 - Move arity check into callee.
+
+ 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.
+
+ * 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.
+
+ * 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:
+
+2010-05-26 Darin Adler <darin@apple.com>
+
+ Reviewed by Kent Tamura.
+
+ Null characters handled incorrectly in ToNumber conversion
+ https://bugs.webkit.org/show_bug.cgi?id=38088
+
+ * 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.
+
+ * 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.
+
+2010-05-27 Nathan Lawrence <nlawrence@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.
+
+ * wtf/StringExtras.h:
+
+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.
+
+2010-05-25 Geoffrey Garen <ggaren@apple.com>
+
+ Fixed build failure caused by merge.
+
+ * jit/JITStubs.cpp:
+ (JSC::DEFINE_STUB_FUNCTION): On error, return a single value, since this
+ function no longer returns a pair.
+
+2010-05-25 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ <rdar://problem/8020221>
+
+ Fixed a crash seen on Windows when calling a function with too many
+ arguments.
+
+ SunSpider reports no change.
+
+ 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.
+
+ 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:
+
+== Rolled over to ChangeLog-2010-05-24 ==