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.


git-svn-id: https://v8.googlecode.com/svn/trunk@60 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Reverted unsafe change to code generator.

git-svn-id: https://v8.googlecode.com/svn/trunk@78 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Renamed the top level directory 'public' to 'include'.

Added option 'env' 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.


git-svn-id: https://v8.googlecode.com/svn/trunk@101 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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.


git-svn-id: https://v8.googlecode.com/svn/trunk@138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
- Added api function to convert a string to utf-8.



git-svn-id: https://v8.googlecode.com/svn/trunk@167 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Reverted accidental commit to trunk.  Stupid stupid stupid stupid.

git-svn-id: https://v8.googlecode.com/svn/trunk@168 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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.


git-svn-id: https://v8.googlecode.com/svn/trunk@267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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.


git-svn-id: https://v8.googlecode.com/svn/trunk@329 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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.



git-svn-id: https://v8.googlecode.com/svn/trunk@373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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.


git-svn-id: https://v8.googlecode.com/svn/trunk@439 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Apply fix for issue 109 from bleeding_edge branch. Update
version from 0.3.4 to 0.3.4.1.
Review URL: http://codereview.chromium.org/6529

git-svn-id: https://v8.googlecode.com/svn/trunk@459 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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.


git-svn-id: https://v8.googlecode.com/svn/trunk@511 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Apply fix for issue 116 from bleeding_edge branch.  Update version
0.3.5 to 0.3.5.1.

Review URL: http://codereview.chromium.org/7473

git-svn-id: https://v8.googlecode.com/svn/trunk@515 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Push fix for issue 1439135 to trunk as V8 version 0.3.5.2.
Review URL: http://codereview.chromium.org/7810

git-svn-id: https://v8.googlecode.com/svn/trunk@531 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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).


git-svn-id: https://v8.googlecode.com/svn/trunk@572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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.


git-svn-id: https://v8.googlecode.com/svn/trunk@618 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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.


git-svn-id: https://v8.googlecode.com/svn/trunk@655 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Merge r659 from bleeding_edge to trunk (version 0.4.2.1).

git-svn-id: https://v8.googlecode.com/svn/trunk@660 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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.


git-svn-id: https://v8.googlecode.com/svn/trunk@687 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Push string shape fixes to trunk (version 0.4.3.1).
Review URL: http://codereview.chromium.org/9181

git-svn-id: https://v8.googlecode.com/svn/trunk@696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00