Move V8 to external/v8

Change-Id: If68025d67453785a651c5dfb34fad298c16676a4
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..8c74591
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,1278 @@
+2009-09-23: Version 1.3.13
+
+        Fixed uninitialized memory problem.
+
+        Improved heap profiler support.
+
+
+2009-09-22: Version 1.3.12
+
+        Changed behavior of |function|.toString() on built-in functions to
+        be compatible with other implementations.  Patch by Jan de Mooij.
+
+        Added Object::IsDirty in the API.
+
+        Optimized array construction; it is now handled purely in native
+        code.
+
+        [ES5] Made properties of the arguments array enumerable.
+
+        [ES5] Added test suite adapter for the es5conform test suite.
+
+        [ES5] Added Object.keys function.
+
+
+2009-09-15: Version 1.3.11
+
+        Fixed crash in error reporting during bootstrapping.
+
+        Optimized generated IA32 math code by using SSE2 instructions when
+        available.
+
+        Implemented missing pieces of debugger infrastructure on ARM.  The
+        debugger is now fully functional on ARM.
+
+        Make 'hidden' the default visibility for gcc.
+
+
+2009-09-09: Version 1.3.10
+
+        Fixed profiler on Mac in 64-bit mode.
+
+        Optimized creation of objects from simple constructor functions on
+        ARM.
+
+        Fixed a number of debugger issues.
+
+        Reduced the amount of memory consumed by V8.
+
+
+2009-09-02: Version 1.3.9
+
+        Optimized stack guard checks on ARM.
+
+        Optimized API operations by inlining more in the API.
+
+        Optimized creation of objects from simple constructor functions.
+
+        Enabled a number of missing optimizations in the 64-bit port.
+
+        Implemented native-code support for regular expressions on ARM.
+
+        Stopped using the 'sahf' instruction on 64-bit machines that do
+        not support it.
+
+        Fixed a bug in the support for forceful termination of JavaScript
+        execution.
+
+
+2009-08-26: Version 1.3.8
+
+        Changed the handling of idle notifications to allow idle
+        notifications when V8 has not yet been initialized.
+
+        Fixed ARM simulator compilation problem on Windows.
+        
+
+2009-08-25: Version 1.3.7
+
+        Reduced the size of generated code on ARM platforms by reducing
+        the size of constant pools.
+
+        Changed build files to not include the 'ENV' user environment
+        variable in the build environment.
+
+        Changed the handling of idle notifications.
+
+
+2009-08-21: Version 1.3.6
+
+        Add support for forceful termination of JavaScript execution.
+
+        Add low memory notification to the API. The embedding host can signal
+        a low memory situation to V8.
+
+        Changed the handling of global handles (persistent handles in the API
+        sense) to avoid issues regarding allocation of new global handles
+        during weak handle callbacks.
+
+        Changed the growth policy of the young space.
+
+        Fixed a GC issue introduced in version 1.3.5.
+
+
+2009-08-19: Version 1.3.5
+
+        Optimize initialization of some arrays in the builtins.
+
+        Fix mac-nm script to support filenames with spaces.
+
+        Support for using the V8 profiler when V8 is embedded in a Windows DLL.
+
+        Changed typeof RegExp from 'object' to 'function' for compatibility.
+        Fixed bug where regexps were not callable across contexts.
+
+        Added context independent script compilation to the API.
+
+        Added API call to get the stack trace for an exception.
+
+        Added API for getting object mirrors.
+
+        Make sure that SSE3 instructions are used whenever possible even when
+        running off a snapshot generated without using SSE3 instructions.
+
+        Tweaked the handling of the initial size and growth policy of the heap.
+
+        Added native code generation for RegExp to 64-bit version.
+
+        Added JavaScript debugger support to 64-bit version.
+
+
+2009-08-13: Version 1.3.4
+
+        Added a readline() command to the d8 shell.
+
+        Fixed bug in json parsing.
+
+        Added idle notification to the API and reduced memory on idle
+        notifications.
+
+
+2009-08-12: Version 1.3.3
+
+        Fix issue 417: incorrect %t placeholder expansion.
+
+        Add .gitignore file similar to Chromium's one.
+
+        Fix SConstruct file to build with new logging code for Android.
+
+        API: added function to find instance of template in prototype
+        chain.  Inlined Object::IsInstanceOf.
+
+        Land change to notify valgrind when we modify code on x86.
+
+        Add api call to determine whether a string can be externalized.
+
+        Add a write() command to d8.
+
+
+2009-08-05: Version 1.3.2
+
+        Started new compiler infrastructure for two-pass compilation using a
+        control flow graph constructed from the AST.
+
+        Profiler stack sampling for X64.
+
+        Safe handling of NaN to Posix platform-dependent time functions.
+
+        Added a new profiler control API to unify controlling various aspects
+        of profiling.
+
+        Fixed issue 392.
+
+
+2009-07-30: Version 1.3.1
+
+        Speed improvements to accessors and interceptors.
+
+        Added support for capturing stack information on custom errors.
+
+        Added support for morphing an object into a pixel array where its
+        indexed properties are stored in an external byte array. Values written
+        are always clamped to the 0..255 interval.
+
+        Profiler on x64 now handles C/C++ functions from shared libraries.
+
+        Changed the debugger to avoid stepping into function.call/apply if the
+        function is a built-in.
+
+        Initial implementation of constructor heap profile for JS objects.
+                  
+        More fine grained control of profiling aspects through the API.
+                    
+        Optimized the called as constructor check for API calls.
+
+
+2009-07-27: Version 1.3.0
+
+        Allowed RegExp objects to be called as functions (issue 132).
+
+        Fixed issue where global property cells would escape after
+        detaching the global object; see http://crbug.com/16276.
+
+        Added support for stepping into setters and getters in the
+        debugger.
+
+        Changed the debugger to avoid stopping in its own JavaScript code
+        and in the code of built-in functions.
+
+        Fixed issue 345 by avoiding duplicate escaping labels.
+
+        Fixed ARM code generator crash in short-circuited boolean
+        expressions and added regression tests.
+
+        Added an external allocation limit to avoid issues where small V8
+        objects would hold on to large amounts of external memory without
+        causing garbage collections.
+ 
+        Finished more of the inline caching stubs for x64 targets. 
+
+
+2009-07-13: Version 1.2.14
+
+        Added separate paged heap space for global property cells and
+        avoid updating the write barrier when storing into them.
+
+        Improved peep-hole optimization on ARM platforms by not emitting
+        unnecessary debug information.
+
+        Re-enabled ICs for loads and calls that skip a global object
+        during lookup through the prototype chain.
+
+        Allowed access through global proxies to use ICs.
+
+        Fixed issue 401.
+
+
+2009-07-09: Version 1.2.13
+
+        Fixed issue 397, issue 398, and issue 399.
+
+        Added support for breakpoint groups.
+
+        Fixed bugs introduced with the new global object representation.
+
+        Fixed a few bugs in the ARM code generator.
+
+
+2009-07-06: Version 1.2.12
+
+        Added stack traces collection to Error objects accessible through
+        the e.stack property.
+
+        Changed RegExp parser to use a recursive data structure instead of
+        stack-based recursion.
+
+        Optimized Date object construction and string concatenation.
+
+        Improved performance of div, mod, and mul on ARM platforms.
+
+
+2009-07-02: Version 1.2.11
+
+        Improved performance on IA-32 and ARM.
+
+        Fixed profiler sampler implementation on Mac OS X.
+
+        Changed the representation of global objects to improve
+        performance of adding a lot of new properties.
+
+
+2009-06-29: Version 1.2.10
+
+        Improved debugger support.
+
+        Fixed bug in exception message reporting (issue 390).
+
+        Improved overall performance.
+
+
+2009-06-23: Version 1.2.9
+
+        Improved math performance on ARM.
+
+        Fixed profiler name-inference bug.
+
+        Fixed handling of shared libraries in the profiler tick processor
+        scripts.
+
+        Fixed handling of tests that time out in the test scripts.
+
+        Fixed compilation on MacOS X version 10.4.
+
+        Fixed two bugs in the regular expression engine.
+
+        Fixed a bug in the string type inference.
+
+        Fixed a bug in the handling of 'constant function' properties.
+        
+        Improved overall performance.
+        
+
+2009-06-16: Version 1.2.8
+
+        Optimized math on ARM platforms.
+
+        Fixed two crash bugs in the handling of getters and setters.
+
+        Improved the debugger support by adding scope chain information.
+
+        Improved the profiler support by compressing log data transmitted
+        to clients.
+
+        Improved overall performance.
+
+
+2009-06-08: Version 1.2.7
+
+        Improved debugger and profiler support.
+
+        Reduced compilation time by improving the handling of deferred
+        code.
+
+        Optimized interceptor accesses where the property is on the object
+        on which the interceptors is attached.
+
+        Fixed compilation problem on GCC 4.4 by changing the stack
+        alignment to 16 bytes.
+
+        Fixed handle creation to follow stric aliasing rules.
+
+        Fixed compilation on FreeBSD.
+
+        Introduced API for forcing the deletion of a property ignoring
+        interceptors and attributes.
+
+
+2009-05-29: Version 1.2.6
+
+        Added a histogram recording hit rates at different levels of the
+        compilation cache.
+
+        Added stack overflow check for the RegExp analysis phase. Previously a
+        very long regexp graph could overflow the stack with recursive calls.
+
+        Use a dynamic buffer when collecting log events in memory.
+
+        Added start/stop events to the profiler log.
+
+        Fixed infinite loop which could happen when setting a debug break while
+        executing a RegExp compiled to native code.
+
+        Fixed handling of lastIndexOf called with negative index (issue 351).
+
+        Fixed irregular crash in profiler test (issue 358).
+
+        Fixed compilation issues with some versions of gcc.
+
+
+2009-05-26: Version 1.2.5
+
+        Fixed bug in initial boundary check for Boyer-Moore text
+        search (issue 349).
+
+        Fixed compilation issues with MinGW and gcc 4.3+ and added support
+        for armv7 and cortex-a8 architectures.  Patches by Lei Zhang and
+        Craig Schlenter.
+
+        Added a script cache to the debugger.
+
+        Optimized compilation performance by improving internal data
+        structures and avoiding expensive property load optimizations for
+        code that's infrequently executed.
+
+        Exposed the calling JavaScript context through the static API
+        function Context::GetCalling().
+
+
+2009-05-18: Version 1.2.4
+
+        Improved performance of floating point number allocation for ARM
+        platforms.
+
+        Fixed crash when using the instanceof operator on functions with
+        number values in their prototype chain (issue 341).
+
+        Optimized virtual frame operations in the code generator to speed
+        up compilation time and allocated the frames in the zone.
+
+        Made the representation of virtual frames and jump targets in the
+        code generator much more compact.
+
+        Avoided linear search for non-locals in scope code when resolving
+        variables inside with and eval scopes.
+
+        Optimized lexical scanner by dealing with whitespace as part of
+        the token scanning instead of as a separate step before it.
+
+        Changed the scavenging collector so that promoted objects do not
+        reside in the old generation while their remembered set is being
+        swept for pointers into the young generation.
+
+        Fixed numeric overflow handling when compiling count operations.
+
+
+2009-05-11: Version 1.2.3
+
+        Fixed bug in reporting of out-of-memory situations.
+
+        Introduced hidden prototypes on certain builtin prototype objects
+        such as String.prototype to emulate JSC's behavior of restoring
+        the original function when deleting functions from those prototype
+        objects.
+
+        Fixed crash bug in the register allocator.
+
+
+2009-05-04: Version 1.2.2
+
+        Fixed bug in array sorting for sparse arrays (issue 326).
+
+        Added support for adding a soname when building a shared library
+        on Linux (issue 151).
+
+        Fixed bug caused by morphing internal ASCII strings to external
+        two-byte strings.  Slices over ASCII strings have to forward ASCII
+        checks to the underlying buffer string.
+
+        Allowed API call-as-function handlers to be called as
+        constructors.
+
+        Fixed a crash bug where an external string was disposed but a
+        slice of the external string survived as a symbol.
+
+
+2009-04-27: Version 1.2.1
+
+        Added EcmaScript 5 JSON object.
+
+        Fix bug in preemption support on ARM.
+
+
+2009-04-23: Version 1.2.0
+
+        Optimized floating-point operations on ARM.
+
+        Added a number of extensions to the debugger API.
+
+        Changed the enumeration order for unsigned integer keys to always
+        be numerical order.
+
+        Added a "read" extension to the shell sample.
+
+        Added support for Array.prototype.reduce and
+        Array.prototype.reduceRight.
+
+        Added an option to the SCons build to control Microsoft Visual C++
+        link-time code generation.
+
+        Fixed a number of bugs (in particular issue 315, issue 316,
+        issue 317 and issue 318).
+
+
+2009-04-15: Version 1.1.10
+
+        Fixed crash bug that occurred when loading a const variable in the
+        presence of eval.
+
+        Allowed using with and eval in registered extensions in debug mode
+        by fixing bogus assert.
+
+        Fixed the source position for function returns to enable the
+        debugger to break there.
+
+
+2009-04-14: Version 1.1.9
+
+        Made the stack traversal code in the profiler robust by avoiding
+        to look into the heap.
+
+        Added name inferencing for anonymous functions to facilitate
+        debugging and profiling.
+
+        Re-enabled stats timers in the developer shell (d8).
+
+        Fixed issue 303 by avoiding to shortcut cons-symbols.
+
+
+2009-04-11: Version 1.1.8
+
+        Changed test-debug/ThreadedDebugging to be non-flaky (issue 96).
+
+        Fixed step-in handling for Function.prototype.apply and call in
+        the debugger (issue 269).
+
+        Fixed v8::Object::DeleteHiddenValue to not bail out when there
+        are no hidden properties.
+
+        Added workaround for crash bug, where external symbol table
+        entries with deleted resources would lead to NPEs when looking
+        up in the symbol table.
+
+
+2009-04-07: Version 1.1.7
+
+        Added support for easily importing additional environment
+        variables into the SCons build.
+
+        Optimized strict equality checks.
+
+        Fixed crash in indexed setters on objects without a corresponding
+        getter (issue 298).
+
+        Re-enabled script compilation cache.
+
+
+2009-04-01: Version 1.1.6
+
+        Reverted an unsafe code generator change.
+
+
+2009-04-01: Version 1.1.5
+
+        Fixed bug that caused function literals to not be optimized as
+        much as other functions.
+
+        Improved profiler support.
+
+        Fixed a crash bug in connection with debugger unloading.
+
+        Fixed a crash bug in the code generator caused by losing the
+        information that a frame element was copied.
+
+        Fixed an exception propagation bug that could cause non-null
+        return values when exceptions were thrown.
+
+
+2009-03-30: Version 1.1.4
+
+        Optimized String.prototype.match.
+
+        Improved the stack information in profiles.
+
+        Fixed bug in ARM port making it possible to compile the runtime
+        system for thumb mode again.
+
+        Implemented a number of optimizations in the code generator.
+
+        Fixed a number of memory leaks in tests.
+
+        Fixed crash bug in connection with script source code and external
+        strings.
+
+
+2009-03-24: Version 1.1.3
+
+        Fixed assertion failures in compilation of loop conditions.
+
+        Removed STL dependency from developer shell (d8).
+
+        Added infrastructure for protecting the V8 heap from corruption
+        caused by memory modifications from the outside.
+
+
+2009-03-24: Version 1.1.2
+
+        Improved frame merge code generated by the code generator.
+
+        Optimized String.prototype.replace.
+
+        Implemented __defineGetter__ and __defineSetter__ for properties
+        with integer keys on non-array objects.
+
+        Improved debugger and profiler support.
+
+        Fixed a number of portability issues to allow compilation for
+        smaller ARM devices.
+
+        Exposed object cloning through the API.
+
+        Implemented hidden properties.  This is used to expose an identity
+        hash for objects through the API.
+
+        Implemented restarting of regular expressions if their input
+        string changes representation during preemption.
+
+        Fixed a code generator bug that could cause assignments in loops
+        to be ignored if using continue to break out of the loop (issue
+        284).
+
+
+2009-03-12: Version 1.1.1
+
+        Fixed an assertion in the new compiler to take stack overflow
+        exceptions into account.
+
+        Removed exception propagation code that could cause crashes.
+
+        Fixed minor bug in debugger line number computations.
+
+        8-byte align the C stack on Linux and Windows to speed up floating
+        point computations.
+
+
+2009-03-12: Version 1.1.0
+
+        Improved code generation infrastructure by doing simple register
+        allocation and constant folding and propagation.
+
+        Optimized regular expression matching by avoiding to create
+        intermediate string arrays and by flattening nested array
+        representations of RegExp data.
+
+        Traverse a few stack frames when recording profiler samples to
+        include partial call graphs in the profiling output.
+
+        Added support for using OProfile to profile generated code.
+
+        Added remote debugging support to the D8 developer shell.
+
+        Optimized creation of nested literals like JSON objects.
+
+        Fixed a bug in garbage collecting unused maps and turned it on by
+        default (--collect-maps).
+
+        Added support for running tests under Valgrind.
+
+
+2009-02-27: Version 1.0.3
+
+        Optimized double-to-integer conversions in bit operations by using
+        SSE3 instructions if available.
+
+        Optimized initialization sequences that store to multiple
+        properties of the same object.
+
+        Changed the D8 debugger frontend to use JSON messages.
+
+        Force garbage collections when disposing contexts.
+
+        Align code objects at 32-byte boundaries.
+
+
+2009-02-25: Version 1.0.2
+
+        Improved profiling support by performing simple call stack
+        sampling for ticks and by fixing a bug in the logging of code
+        addresses.
+
+        Fixed a number of debugger issues.
+
+        Optimized code that uses eval.
+
+        Fixed a couple of bugs in the regular expression engine.
+
+        Reduced the size of generated code for certain regular expressions.
+
+        Removed JSCRE completely.
+
+        Fixed issue where test could not be run if there was a dot in the
+        checkout path.
+
+
+2009-02-13: Version 1.0.1
+
+        Fixed two crash-bugs in irregexp (issue 231 and 233).
+
+        Fixed a number of minor bugs (issue 87, 227 and 228).
+
+        Added support for morphing strings to external strings on demand
+        to avoid having to create copies in the embedding code.
+
+        Removed experimental support for external symbol callbacks.
+
+
+2009-02-09: Version 1.0.0
+
+        Fixed crash-bug in the code generation for case independent 16 bit
+        backreferences.
+
+        Made shells more robust in the presence of string conversion
+        failures (issue 224).
+
+        Fixed a potential infinite loop when attempting to resolve
+        eval (issue 221).
+
+        Miscellaneous fixes to the new regular expression engine.
+
+        Reduced binary by stripping unneeded text from JavaScript library and
+        minifying some JavaScript files.
+
+
+2009-01-27: Version 0.4.9
+
+        Enabled new regular expression engine.
+
+        Made a number of changes to the debugger protocol.
+
+        Fixed a number of bugs in the preemption support.
+
+        Added -p option to the developer shell to run files in parallel
+        using preemption.
+
+        Fixed a number of minor bugs (including issues 176, 187, 189, 192,
+        193, 198 and 201).
+
+        Fixed a number of bugs in the serialization/deserialization
+        support for the ARM platform.
+
+
+2009-01-19: Version 0.4.8.1
+
+        Minor patch to debugger support.
+
+
+2009-01-16: Version 0.4.8
+
+        Fixed string length bug on ARM (issue 171).
+
+        Made most methods in the API const.
+
+        Optimized object literals by improving data locality.
+
+        Fixed bug that caused incomplete functions to be cached in case of
+        stack overflow exceptions.
+
+        Fixed bugs that caused catch variables and variables introduced by
+        eval to behave incorrectly when using accessors (issues 186, 190
+        and 191).
+
+
+2009-01-06: Version 0.4.7
+
+        Minor bugfixes and optimizations.
+
+        Added command line debugger to D8 shell.
+
+        Fixed subtle bug that caused the wrong 'this' to be used when
+        calling a caught function in a catch clause.
+
+        Inline array loads within loops directly in the code instead of
+        always calling a stub.
+
+
+2008-12-11: Version 0.4.6
+
+        Fixed exception reporting bug where certain exceptions were
+        incorrectly reported as uncaught.
+
+        Improved the memory allocation strategy used during compilation to
+        make running out of memory when compiling huge scripts less
+        likely.
+
+        Optimized String.replace by avoiding the construction of certain
+        sub strings.
+
+        Fixed bug in code generation for large switch statements on ARM.
+
+        Fixed bug that caused V8 to change the global object template
+        passed in by the user.
+
+        Changed the API for creating object groups used during garbage
+        collection.  Entire object groups are now passed to V8 instead of
+        individual members of the groups.
+
+
+2008-12-03: Version 0.4.5
+
+        Added experimental API support for allocating V8 symbols as
+        external strings.
+
+        Fixed bugs in debugging support on ARM.
+
+        Changed eval implementation to correctly detect whether or not a
+        call to eval is aliased.
+
+        Fixed bug caused by a combination of the compilation cache and
+        dictionary probing in native code.  The bug caused us to sometimes
+        call functions that had not yet been compiled.
+
+        Added platform support for FreeBSD.
+
+        Added support for building V8 on Windows with either the shared or
+        static version of MSVCRT
+
+        Added the v8::jscre namespace around the jscre functions to avoid
+        link errors (duplicate symbols) when building Google Chrome.
+
+        Added support for calling a JavaScript function with the current
+        debugger execution context as its argument to the debugger
+        interface.
+
+        Changed the type of names of counters from wchar_t to char.
+
+        Changed the Windows system call used to compute daylight savings
+        time.  The system call that we used to use became four times
+        slower on WinXP SP3.
+
+        Added support in the d8 developer shell for memory-mapped counters
+        and added a stats-viewer tool.
+
+        Fixed bug in upper/lower case mappings (issue 149).
+
+
+2008-11-17: Version 0.4.4
+
+        Reduced code size by using shorter instruction encoding when
+        possible.
+
+        Added a --help option to the shell sample and to the d8 shell.
+
+        Added visual studio project files for building the ARM simulator.
+
+        Fixed a number of ARM simulator issues.
+
+        Fixed bug in out-of-memory handling on ARM.
+
+        Implemented shell support for passing arguments to a script from
+        the command line.
+
+        Fixed bug in date code that made certain date functions return -0
+        instead of 0 for dates before the epoch.
+
+        Restricted applications of eval so it can only be used in the
+        context of the associated global object.
+
+        Treat byte-order marks as whitespace characters.
+
+
+2008-11-04: Version 0.4.3
+
+        Added support for API accessors that prohibit overwriting by
+        accessors defined in JavaScript code by using __defineGetter__ and
+        __defineSetter__.
+
+        Improved handling of conditionals in test status files.
+
+        Introduced access control in propertyIsEnumerable.
+
+        Improved performance of some string operations by caching
+        information about the type of the string between operations.
+
+        Fixed bug in fast-case code for switch statements that only have
+        integer labels.
+
+
+2008-10-30: Version 0.4.2
+
+        Improved performance of Array.prototype.concat by moving the
+        implementation to C++ (issue 123).
+
+        Fixed heap growth policy to avoid growing old space to its maximum
+        capacity before doing a garbage collection and fixed issue that
+        would lead to artificial out of memory situations (issue 129).
+
+        Fixed Date.prototype.toLocaleDateString to return the date in the
+        same format as WebKit.
+
+        Added missing initialization checks to debugger API.
+
+        Added removing of unused maps during GC.
+
+
+2008-10-28: Version 0.4.1
+
+        Added caching of RegExp data in compilation cache.
+
+        Added Visual Studio project file for d8 shell.
+
+        Fixed function call performance regression introduced in version
+        0.4.0 when splitting the global object in two parts (issue 120).
+
+        Fixed issue 131 by checking for empty handles before throwing and
+        reporting exceptions.
+
+
+2008-10-23: Version 0.4.0
+
+        Split the global object into two parts: The state holding global
+        object and the global object proxy.
+
+        Fixed bug that affected the value of an assignment to an element
+        in certain cases (issue 116).
+
+        Added GetPropertyNames functionality (issue 33) and extra Date
+        functions (issue 77) to the API.
+
+        Changed WeakReferenceCallback to take a Persistent<Value> instead
+        of a Persistent<Object> (issue 101).
+
+        Fixed issues with message reporting for exceptions in try-finally
+        blocks (issues 73 and 75).
+
+        Optimized flattening of strings and string equality checking.
+
+        Improved Boyer-Moore implementation for faster indexOf operations.
+
+        Added development shell (d8) which includes counters and
+        completion support.
+
+        Fixed problem with the receiver passed to functions called from
+        eval (issue 124).
+
+
+2008-10-16: Version 0.3.5
+
+        Improved string hash-code distribution by excluding bit-field bits
+        from the hash-code.
+
+        Changed string search algorithm used in indexOf from KMP to
+        Boyer-Moore.
+
+        Improved the generated code for the instanceof operator.
+
+        Improved performance of slow-case string equality checks by
+        specializing the code based on the string representation.
+
+        Improve the handling of out-of-memory situations (issue 70).
+
+        Improved performance of strict equality checks.
+
+        Improved profiler output to make it easier to see anonymous
+        functions.
+
+        Improved performance of slow-case keyed loads.
+
+        Improved property access performance by allocating a number of
+        properties in the front object.
+
+        Changed the toString behavior on the built-in object constructors
+        to print [native code] instead of the actual source.  Some web
+        applications do not like constructors with complex toString
+        results.
+
+
+2008-10-06: Version 0.3.4
+
+        Changed Array.prototype.sort to use quick sort.
+
+        Fixed code generation issue where leaving a finally block with
+        break or continue would accumulate elements on the expression
+        stack (issue 86).
+
+        Made sure that the name accessor on functions returns the expected
+        names for builtin JavaScript functions and C++ callback functions.
+
+        Added fast case code for extending the property storage array of
+        JavaScript objects.
+
+        Ported switch statement optimizations introduced in version 0.3.3
+        to the ARM code generator.
+
+        Allowed GCC to use strict-aliasing rules when compiling.
+
+        Improved performance of arguments object allocation by taking care
+        of arguments adaptor frames in the generated code.
+
+        Updated the V8 benchmark suite to version 2.
+
+
+2008-09-25: Version 0.3.3
+
+        Improved handling of relocation information to enable more
+        peep-hole optimizations.
+
+        Optimized switch statements where all labels are constant small
+        integers.
+
+        Optimized String.prototype.indexOf for common cases.
+
+        Fixed more build issues (issue 80).
+
+        Fixed a couple of profiler issues.
+
+        Fixed bug where the body of a function created using the Function
+        constructor was not allowed to end with a single-line comment
+        (issue 85).
+
+        Improved handling of object literals by canonicalizing object
+        literal maps.  This will allow JSON objects with the same set of
+        properties to share the same map making inline caching work better
+        for JSON objects.
+
+
+2008-09-17: Version 0.3.2
+
+        Generalized the EvalCache into a CompilationCache and enabled it
+        for scripts too.  The current strategy is to retire all entries
+        whenever a mark-sweep collection is started.
+
+        Fixed bug where switch statements containing only a default case
+        would lead to an unbalanced stack (issue 69).
+
+        Fixed bug that made access to the function in a named function
+        expression impossible in certain situations (issue 24).
+
+        Fixed even more build issues.
+
+        Optimized calling conventions on ARM.  The conventions on ARM and
+        IA-32 now match.
+
+        Removed static initializers for flags and counters.
+
+        Improved inline caching behavior for uncommon cases where lazily
+        loading Date and RegExp code could force certain code paths go
+        megamorphic.
+
+        Removed arguments adaption for builtins written in C++.  This
+        makes Array.prototype.push and Array.prototype.pop slightly
+        faster.
+
+
+2008-09-11: Version 0.3.1
+
+        Fixed a number of build issues.
+
+        Fixed problem with missing I-cache flusing on ARM.
+
+        Changed space layout in memory management by splitting up
+        code space into old data space and code space.
+
+        Added utf-8 conversion support to the API (issue 57).
+
+        Optimized repeated calls to eval with the same strings.  These
+        repeated calls are common in web applications.
+
+        Added Xcode project file.
+
+        Optimized a couple of Array operation.
+
+        Fixed parser bug by checking for end-of-string when parsing break
+        and continue (issue 35).
+
+        Fixed problem where asian characters were not categorized as
+        letters.
+
+        Fixed bug that disallowed calling functions fetched from an array
+        using a string as an array index (issue 32).
+
+        Fixed bug where the internal field count on object templates were
+        sometimes ignored (issue 54).
+
+        Added -f option to the shell sample for compatibility with other
+        engines (issue 18).
+
+        Added source info to TryCatches in the API.
+
+        Fixed problem where the seed for the random number generator was
+        clipped in a double to unsigned int conversion.
+
+        Fixed bug where cons string symbols were sometimes converted to
+        non-symbol flat strings during GC.
+
+        Fixed bug in error reporting when attempting to convert null to an
+        object.
+
+
+2008-09-04: Version 0.3.0
+
+        Added support for running tests on the ARM simulator.
+
+        Fixed bug in the 'in' operator where negative indices were not
+        treated correctly.
+
+        Fixed build issues on gcc-4.3.1.
+
+        Changed Date.prototype.toLocaleTimeString to not print the
+        timezone part of the time.
+
+        Renamed debug.h to v8-debug.h to reduce the risk of name conflicts
+        with user code.
+
+
+2008-09-02: Version 0.2.5
+
+        Renamed the top level directory 'public' to 'include'.
+
+        Added 'env' option to the SCons build scripts to support
+        overriding the ENV part of the build environment.  This is mostly
+        to support Windows builds in cases where SCons cannot find the
+        correct paths to the Windows SDK, as these paths cannot be passed
+        through shell environment variables.
+
+        Enabled "Buffer Security Check" on for the Windows SCons build and
+        added the linker option /OPT:ICF as an optimization.
+
+        Added the V8 benchmark suite to the repository.
+
+
+2008-09-01: Version 0.2.4
+
+        Included mjsunit JavaScript test suite and C++ unit tests.
+
+        Changed the shell sample to not print the result of executing a
+        script provided on the command line.
+
+        Fixed issue when building samples on Windows using a shared V8
+        library.  Added visibility option on Linux build which makes the
+        generated library 18% smaller.
+
+        Changed build system to accept multiple build modes in one build
+        and generate separate objects, libraries and executables for each
+        mode.
+
+        Removed deferred negation optimization (a * -b => -(a * b)) since
+        this visibly changes operand conversion order.
+
+        Improved parsing performance by introducing stack guard in
+        preparsing.  Without a stack guard preparsing always bails out
+        with stack overflow.
+
+        Changed shell sample to take flags directly from the command-line.
+        Added API call that implements this.
+
+        Added load, quit and version functions to the shell sample so it's
+        easier to run benchmarks and tests.
+
+        Fixed issue with building samples and cctests on 64-bit machines.
+
+        Fixed bug in the runtime system where the prototype chain was not
+        always searched for a setter when setting a property that does not
+        exist locally.
+
+
+2008-08-14: Version 0.2.3
+
+        Improved performance of garbage collection by moving the
+        function that updates pointers during compacting collection
+        into the updating visitor.  This gives the compiler a better
+        chance to inline and avoid a function call per (potential)
+        pointer.
+
+        Extended the shell sample with a --runtime-flags option.
+
+        Added Visual Studio project files for the shell.cc and
+        process.cc samples.
+
+
+2008-08-13: Version 0.2.2
+
+        Improved performance of garbage collection by changing the way
+        we use the marking stack in the event of stack overflow during
+        full garbage collection and by changing the way we mark roots.
+
+        Cleaned up ARM version by removing top of stack caching and by
+        introducing push/pop elimination.
+
+        Cleaned up the way runtime functions are called to allow
+        runtime calls with no arguments.
+
+        Changed Windows build options to make sure that exceptions are
+        disabled and that optimization flags are enabled.
+
+        Added first version of Visual Studio project files.
+
+
+2008-08-06: Version 0.2.1
+
+        Improved performance of unary addition by avoiding runtime calls.
+
+        Fixed the handling of '>' and '<=' to use right-to-left conversion
+        and left-to-right evaluation as specified by ECMA-262.
+
+        Fixed a branch elimination bug on the ARM platform where incorrect
+        code was generated because of overly aggressive branch
+        elimination.
+
+        Improved performance of code that repeatedly assigns the same
+        function to the same property of different objects with the same
+        map.
+
+        Untangled DEBUG and ENABLE_DISASSEMBLER defines.  The disassembler
+        no longer expects DEBUG to be defined.
+
+        Added platform-nullos.cc to serve as the basis for new platform
+        implementations.
+
+
+2008-07-30: Version 0.2.0
+
+        Changed all text files to have native svn:eol-style.
+
+        Added a few samples and support for building them. The samples
+        include a simple shell that can be used to benchmark and test V8.
+
+        Changed V8::GetVersion to return the version as a string.
+
+        Added source for lazily loaded scripts to snapshots and made
+        serialization non-destructive.
+
+        Improved ARM support by fixing the write barrier code to use
+        aligned loads and stores and by removing premature locals
+        optimization that relied on broken support for callee-saved
+        registers (removed).
+
+        Refactored the code for marking live objects during garbage
+        collection and the code for allocating objects in paged
+        spaces. Introduced an abstraction for the map word of a heap-
+        allocated object and changed the memory allocator to allocate
+        executable memory only for spaces that may contain code objects.
+
+        Moved StringBuilder to utils.h and ScopedLock to platform.h, where
+        they can be used by debugging and logging modules. Added
+        thread-safe message queues for dealing with debugger events.
+
+        Fixed the source code reported by toString for certain builtin
+        empty functions and made sure that the prototype property of a
+        function is enumerable.
+
+        Improved performance of converting values to condition flags in
+        generated code.
+
+        Merged disassembler-{arch} files.
+
+
+2008-07-28: Version 0.1.4
+
+        Added support for storing JavaScript stack traces in a stack
+        allocated buffer to make it visible in shallow core dumps.
+        Controlled by the --preallocate-message-memory flag which is
+        disabled by default.
+
+
+2008-07-25: Version 0.1.3
+
+        Fixed bug in JSObject::GetPropertyAttributePostInterceptor where
+        map transitions would count as properties.
+
+        Allowed aliased eval invocations by treating them as evals in the
+        global context. This may change in the future.
+
+        Added support for accessing the last entered context through the
+        API and renamed Context::Current to Context::GetCurrent and
+        Context::GetSecurityContext to Context::GetCurrentSecurityContext.
+
+        Fixed bug in the debugger that would cause the debugger scripts to
+        be recursively loaded and changed all disabling of interrupts to
+        be block-structured.
+
+        Made snapshot data read-only to allow it to be more easily shared
+        across multiple users of V8 when linked as a shared library.
+
+
+2008-07-16: Version 0.1.2
+
+        Fixed building on Mac OS X by recognizing i386 and friends as
+        IA-32 platforms.
+
+        Added propagation of stack overflow exceptions that occur while
+        compiling nested functions.
+
+        Improved debugger with support for recursive break points and
+        handling of exceptions that occur in the debugger JavaScript code.
+
+        Renamed GetInternal to GetInternalField and SetInternal to
+        SetInternalField in the API and moved InternalFieldCount and
+        SetInternalFieldCount from FunctionTemplate to ObjectTemplate.
+
+
+2008-07-09: Version 0.1.1
+
+        Fixed bug in stack overflow check code for IA-32 targets where a
+        non-tagged value in register eax was pushed to the stack.
+
+        Fixed potential quadratic behavior when converting strings to
+        numbers.
+
+        Fixed bug where the return value from Object::SetProperty could
+        end up being the property holder instead of the written value.
+
+        Improved debugger support by allowing nested break points and by
+        dealing with stack-overflows when compiling functions before
+        setting break points in them.
+
+
+2008-07-03: Version 0.1.0
+
+        Initial export.
+