Home | History | Annotate | Download | only in v8
      1 2012-03-23: Version 3.9.24
      2 
      3         Activated count-based profiler for ARM.
      4 
      5         Fixed use of proxies as f.prototype properties. (issue 2021)
      6 
      7         Enabled snapshots on MIPS.
      8 
      9         Performance and stability improvements on all platforms.
     10 
     11 
     12 2012-03-21: Version 3.9.23
     13 
     14         Use correct arguments adaptation environment when inlining function
     15         containing arguments. (Issue 2014)
     16 
     17         Performance and stability improvements on all platforms.
     18 
     19 
     20 2012-03-20: Version 3.9.22
     21 
     22         Enabled count-based profiler by default.
     23 
     24         Implemented a hash based look-up to speed up address checks
     25         in large object space (issue 853).
     26 
     27         Performance and stability improvements on all platforms.
     28 
     29 
     30 2012-03-19: Version 3.9.21
     31 
     32         Fixed push-to-trunk script (and re-push).
     33 
     34         Added API call that identifies strings that are guaranteed only to
     35         contain ASCII characters.
     36 
     37 
     38 2012-03-19: Version 3.9.20
     39 
     40         Fixed declarations escaping global strict eval. (Issue 1624)
     41 
     42         Fixed wrapping of receiver for non-strict callbacks. (Issue 1973)
     43 
     44         Fixed function declarations overwriting read-only global properties.
     45         (Chromium issue 115452)
     46 
     47         Fixed --use-strict flag in combination with --harmony[-scoping].
     48 
     49         Debugger: naive implementation of "step into Function.prototype.bind".
     50 
     51         Debugger: added ability to set script source from within OnBeforeCompile
     52 
     53         Added flag to always call DebugBreak on abort.
     54 
     55         Re-enabled constructor inlining and inline === comparison with boolean
     56         constants. (Issue 2009)
     57 
     58         Don't use an explicit s0 in ClampDoubleToUint8. (Issue 2004)
     59 
     60         Performance and stability improvements on all platforms.
     61 
     62 
     63 2012-03-14: Version 3.9.19
     64 
     65         Ensure there is a smi check of the receiver for global load and call
     66         ICs (Chromium issue 117794).
     67 
     68         Performance and stability improvements on all platforms.
     69 
     70 
     71 2012-03-13: Version 3.9.18
     72 
     73         Ensure consistency of Math.sqrt on Intel platforms.
     74 
     75         Remove static initializers in v8. (issue 1859)
     76 
     77         Add explicit dependency on v8_base in the GYP-based build.
     78 
     79         Performance and stability improvements on all platforms.
     80 
     81 
     82 2012-03-12: Version 3.9.17
     83 
     84         Fixed VFP detection through compiler defines. (issue 1996)
     85 
     86         Add Code-related fields to postmortem metadata.
     87 
     88         Performance and stability improvements on all platforms.
     89 
     90 
     91 2012-03-09: Version 3.9.16
     92 
     93         Added basic interface inference for modules (behind the --harmony flag).
     94 
     95         Added Object.is, Number.isFinite, Number.isNaN.
     96 
     97         Updated the Unicode tables to Unicode version 6.1.0.
     98 
     99         Performance and stability improvements on all platforms.
    100 
    101 
    102 2012-03-06: Version 3.9.15
    103 
    104         Fix the heap profiler crash caused by memory layout changes between
    105         passes.
    106 
    107         Fix Error.prototype.toString to throw TypeError. (issue 1980)
    108 
    109         Fix double-rounding in strtod for MinGW. (issue 1062)
    110 
    111         Fix corrupted snapshot serializaton on ia32. (Chromium issue v8/1985)
    112 
    113         Performance and stability improvements on all platforms.
    114 
    115 
    116 2012-03-01: Version 3.9.14
    117 
    118         Performance and stability improvements on all platforms.
    119 
    120 
    121 2012-02-29: Version 3.9.13
    122 
    123         Added code kind check before preparing for OSR. (issue 1900, 115073)
    124 
    125         Fixed issue 1802: Pass zone explicitly to zone-allocation on x64 and
    126         ARM.
    127 
    128         Ported string construct stub to x64. (issue 849)
    129 
    130         Performance and stability improvements on all platforms.
    131 
    132 
    133 2012-02-28: Version 3.9.12
    134 
    135         Fixed the negative lookup stub to handle deleted entries in a
    136         dictionary. (issue 1964)
    137 
    138         Added a new API where the host can supply a callback function. The
    139         callback function can resolve the location of a return address on stack
    140         to the location where a return-address rewriting profiler stashed the
    141         original return address.
    142 
    143         Fixed Chromium issue http://crbug.com/115646: When compiling for-in
    144         pass correct context value to the increment instruction.
    145 
    146         Fixed issue 1853: Update breakpoints set with partial file name after
    147         compile.
    148 
    149 
    150 2012-02-27: Version 3.9.11
    151 
    152         Made 'module' a context-sensitive keyword (V8 issue 1957).
    153 
    154 
    155 2012-02-24: Version 3.9.10
    156 
    157         Fixed V8 issues 1322, 1772 and 1969.
    158 
    159         Conformance improvements.
    160 
    161         Performance and stability improvements on all platforms.
    162 
    163 
    164 2012-02-23: Version 3.9.9
    165 
    166         Supported fast case for-in in Crankshaft.
    167 
    168         Sped up heap snapshot serialization and dominators construction.
    169 
    170         Randomized allocation addresses on windows. (Chromium issue 115151)
    171 
    172         Fixed compilation with MinGW-w64. (issue 1943)
    173 
    174         Fixed incorrect value of assignments to non-extensible properties.
    175 
    176         Fixed a crash bug in generated code on ia32.
    177 
    178         Performance and stability improvements on all platforms.
    179 
    180 
    181 2012-02-21: Version 3.9.8
    182 
    183         Fixed memory leak and missing #include in StartupDataDecompressor
    184         (issue 1960).
    185 
    186         Renamed static methods to avoid shadowing virtual methods and fix Clang
    187         C++11 compile error.
    188 
    189         Fixed sequence of element access in array builtins (issue 1790).
    190 
    191         Performance and stability improvements on all platforms.
    192 
    193 
    194 2012-02-16: Version 3.9.7
    195 
    196         Fixed V8 issues 1322, 1878, 1942, 1945 and Chromium issue 113924.
    197 
    198         Fixed GCC-4.7 warnings.
    199 
    200         Added Navier-Stokes benchmark.
    201 
    202         Performance and stability improvements on all platforms.
    203 
    204 
    205 2012-02-14: Version 3.9.6
    206 
    207         Fixed template-related linker error. (issue 1936)
    208 
    209         Allowed inlining of functions containing object literals.  (issue 1322)
    210 
    211         Added --call-graph-size option to tickprocessor.  (issue 1937)
    212 
    213         Heap Snapshot maximum size limit is too low for really big apps. At the
    214         moment the limit is 256MB.  (Chromium issue 113015)
    215 
    216         Performance and stability improvements on all platforms.
    217 
    218 
    219 2012-02-09: Version 3.9.5
    220 
    221         Removed unused command line flags.
    222 
    223         Performance and stability improvements on all platforms.
    224 
    225 
    226 2012-02-08: Version 3.9.4
    227 
    228         Properly initialize element-transitioning array literals on ARM.
    229         (issue 1930)
    230 
    231         Bug fixes on all platforms.
    232 
    233 
    234 2012-02-07: Version 3.9.3
    235 
    236         When rethrowing an exception, print the stack trace of its original
    237         site instead of rethrow site (Chromium issue 60240).
    238 
    239         Increased size of small stacks from 32k to 64k to avoid hitting limits
    240         in Chromium (Chromium issue 112843).
    241 
    242 
    243 2012-02-06: Version 3.9.2
    244 
    245         Added timestamp to --trace-gc output. (issue 1932)
    246 
    247         Heap profiler reports implicit references.
    248 
    249         Optionally export metadata with libv8 to enable debuggers to inspect V8
    250         state.
    251 
    252 
    253 2012-02-02: Version 3.9.1
    254 
    255         Fixed memory leak in NativeObjectsExplorer::FindOrAddGroupInfo
    256         (Chromium issue 112315).
    257 
    258         Fixed a crash in dev tools (Chromium issue 107996).
    259 
    260         Added 'dependencies_traverse': 1 to v8 GYP target.
    261 
    262         Performance and stability improvements on all platforms.
    263 
    264 
    265 2012-02-01: Version 3.9.0
    266 
    267         Reduced memory use immediately after starting V8.
    268 
    269         Stability fixes and performance improvements on all platforms.
    270 
    271 
    272 2012-01-26: Version 3.8.9
    273 
    274         Flush number string cache on GC (issue 1605).
    275 
    276         Provide access to function inferred name with
    277 	v8::Function::GetInferredName in V8 public API.
    278 
    279         Fix building with Clang (issue 1912).
    280 
    281         Reduce the space used by the stack for the profiling thread.
    282 
    283         Fix misleading documentation of v8::Locker (issue 542).
    284 
    285         Introduce readbinary function in d8 to read binary files.
    286 
    287         Performance and stability improvements on all platforms.
    288 
    289 
    290 2012-01-23: Version 3.8.8
    291 
    292         Limited number of loop iterations in Heap::ReserveSpace
    293         (Chromium issue 99027).
    294 
    295         Fixed solaris build (VirtualMemory) (issue 1761).
    296 
    297         Fixed strict vs. non-strict handling of function proxies in
    298         higher-order array and string methods.
    299 
    300         Enabled asynchronous remote debugging with d8 (issue 1691).
    301 
    302         Stability and performance improvements on all platforms.
    303 
    304 
    305 2012-01-19: Version 3.8.7
    306 
    307         Ensure that LRandom restores rsi after call to the C function on x64.
    308         (Chromium issue http://crbug.com/110509)
    309 
    310         Fixing include issues on *bsd when building with scons.
    311         (issue 1897)
    312 
    313         Provide a switch to specify -fno-strict-aliasing
    314         (issue 1887)
    315 
    316         Move WIN32 define from standalone.gypi to common.gypi
    317         (issue 1760)
    318 
    319         Fix corner-case in heap size estimation.
    320         (issue 1893)
    321 
    322         Fix and enable NEW_NON_STRICT_FAST ArgumentsAccess stub on x64.
    323         (issue 1903)
    324 
    325         Performance improvements and bug fixes.
    326 
    327 
    328 2012-01-16: Version 3.8.6
    329 
    330         Add primitive WebGL array support to d8.
    331 
    332         Improve heap size estimation (issue 1893).
    333 
    334         Hash collision DOS workaround extended from string keys
    335         to numeric keys.
    336 
    337         Provide an API for iterating through all external strings referenced
    338         from the JS heap.
    339 
    340         Adjust position recorded for call expressions. http://crbug.com/109195
    341 
    342         Fix GC crash related to instanceof. http://crbug.com/109448
    343 
    344         Performance improvements and bug fixes.
    345 
    346 
    347 2012-01-05: Version 3.8.5
    348 
    349         Fix broken test that assumes that no GC can clear the regexp cache (GC
    350         can happen at any time due to Crankshaft).
    351 
    352         Fix handling of bogus receivers for Harmony collections. (issue 1884)
    353 
    354         Add netbsd support to gyp build.
    355 
    356         Determine page size at runtime on posix platforms.
    357 
    358         Ensure that store buffer filtering hash sets are cleared after
    359         StoreBuffer::Filter.
    360 
    361         Randomize the seed used for string hashing.  This helps guard against
    362         CPU-eating DOS attacks against node.js servers.  Based on code from
    363         Bert Belder.  This version only solves the issue for those that compile
    364         V8 themselves or those that do not use snapshots.  A snapshot-based
    365         precompiled V8 will still have predictable string hash codes.
    366 
    367         Implement callback when script finishes running in V8 API.
    368 
    369         Improve performance of Math.min and Math.max for the case of two
    370         arguments. (issue 1325)
    371 
    372 
    373 2012-01-02: Version 3.8.4
    374 
    375         Performance improvements for large Smi-only arrays.
    376 
    377         Fixed InternalArrays construction. (issue 1878)
    378 
    379 
    380 2011-12-27: Version 3.8.3
    381 
    382         Avoid embedding new space objects into code objects in the lithium gap
    383         resolver. (chromium:108296)
    384 
    385         Bug fixes and performance optimizations on all platforms.
    386 
    387 
    388 2011-12-21: Version 3.8.2
    389 
    390         Add max optimization flag to v8 gyp build to ensure V8 is always built 
    391         fully optimized in Chrome.
    392 
    393         MIPS: Bring MIPS to parity with other platforms.
    394 
    395         Optimizations and stability improvements on all platforms.
    396 
    397 
    398 2011-12-19: Version 3.8.1
    399 
    400         Fixed GCC 4.7 warnings. Patch from Tobias Burnus.
    401 
    402         Stability improvements on all platforms.
    403 
    404 
    405 2011-12-13: Version 3.8.0
    406 
    407         Fixed handling of arrays in DefineOwnProperty. (issue 1756)
    408 
    409         Sync parser and preparser on do-while and return statements. 
    410         (issue 1856)
    411 
    412         Fixed another corner case for DefineOwnProperty on arrays (issue 1756).
    413 
    414         Stability and performance improvements on all platforms.
    415 
    416 
    417 2011-12-01: Version 3.7.12
    418 
    419         Increase tick interval for the android platform.
    420 
    421         Fix a bug in the register allocator. (chromium:105112)
    422 
    423         Fix handling of recompiling code. (chromium:105375, v8:1782)
    424 
    425         Start incremental marking on idle notification. (v8:1458)
    426 
    427         Build fixes for various platforms.
    428 
    429         Various performance improvements.
    430 
    431 
    432 2011-11-29: Version 3.7.11
    433 
    434         Fixed bug when generating padding to ensure space for lazy
    435         deoptimization.
    436         (issue 1846)
    437 
    438         Further reduced pause times due to GC.
    439 
    440         Stability and performance improvements on all platforms.
    441 
    442 
    443 2011-11-23: Version 3.7.10
    444 
    445         Set maximum length of FixedArray in terms of elements instead an
    446         absolute number of bytes.
    447         (Chromium issue 103103)
    448 
    449         Stability and performance improvements on all platforms.
    450 
    451 
    452 2011-11-21: Version 3.7.9
    453 
    454         Removed exit-time destructors.
    455 
    456         Stability and performance improvements on all platforms.
    457 
    458 
    459 2011-11-17: Version 3.7.8
    460 
    461         Removed hidden prototype from builtins, i.e., deleting an overridden
    462         function on builtins will not make the original function reappear.
    463 
    464         Added NetBSD support for scons build.
    465 
    466         Performance improvements on all platforms.
    467 
    468 
    469 2011-11-14: Version 3.7.7
    470 
    471         Fix missing fast property accessors in heap snapshots.
    472         (issue 1818)
    473 
    474 
    475 2011-11-11: Version 3.7.6
    476 
    477         Fixed filtering of store buffer for large object pages.
    478         (issue 1817)
    479 
    480         Fixed generated hash function on all platforms.
    481         (issue 1808)
    482 
    483         Fixed Heap::Shrink to ensure that it does not free pages that are
    484         still in use.
    485         (Chromium issue 100414)
    486 
    487         Stability and performance improvements on all platforms.
    488 
    489 
    490 2011-11-10: Version 3.7.5
    491 
    492         Added initial gyp infrastructure for MIPS.
    493 
    494         Implemented performance improvements to the incremental garbage
    495         collector.
    496 
    497         Added optimizations and stability improvements on all platforms.
    498 
    499 
    500 2011-11-07: Version 3.7.4
    501 
    502         Proper "libv8.so.3.7.4" SONAME for Linux shared library (issue 1786).
    503 
    504         Fix Harmony sets and maps to allow null and undefined as keys
    505         (still hidden behind --harmony flag) (issue 1622).
    506 
    507         Implement VirtualMemory on FreeBSD to fix build (issue 1807).
    508 
    509         Enable VFP instructions for Android.
    510 
    511         Fix error handling in Date.prototype.toISOString (issue 1792).
    512 
    513         Bug fixes and performance improvements for all platforms.
    514 
    515         Not officially supported but noteworthy: Crankshaft for MIPS :-)
    516 
    517 
    518 2011-10-28: Version 3.7.3
    519 
    520         Slight deoptimization as a workaround for issue with jslint: Issue
    521         1789.
    522 
    523 
    524 2011-10-27: Version 3.7.2
    525 
    526         Fix bug in deoptimization.  Known issue with jslint: Issue 1789.
    527 
    528 
    529 2011-10-26: Version 3.7.1
    530 
    531         Achieved 33% speedup in debug-mode tests.
    532 
    533         Removed special casing of calls to RegExp test and exec methods with no
    534         argument.  Now matches new JSC behaviour.  crbug.com/75740.
    535 
    536         Return the empty string on cyclic references in toString (ES5
    537         conformance).
    538 
    539         Fixed bug triggered by JSBeautifier.  crbug.com/100409.
    540 
    541         Made Math.random state per-context instead of per-process (issue 864).
    542 
    543         Fixed stack traces to skip native functions.
    544 
    545         Make snapshots (new contexts) smaller and faster.
    546 
    547         Fixed handling of Function.apply for non-array arguments.
    548 
    549         Fixed evaluation order in defineProperties to match FireFox.
    550 
    551         Fixed handling of non-object receivers for array builtins,
    552         crbug.com/100702.
    553 
    554         Multiple fixes to improve compliance with test262.
    555 
    556         Fixed compatibility with older Android releases.
    557 
    558         Fixed compilation with gcc-4.5.3.
    559 
    560         Improved performance of WriteUtf8, issue 1665.
    561 
    562         Made native syntax an early error in the preparser.
    563 
    564         Fixed issues 793 and 893 relating to Function.prototype.bind.
    565 
    566         Improved let, const, Set and Map support and other Harmony features
    567         (behind the --harmony flag).
    568 
    569         Changed evaluation order for > and <= to match ES5 instead of ES3.
    570 
    571         Bug fixes and performance improvements on all platforms.
    572 
    573 
    574 2011-10-13: Version 3.7.0
    575 
    576         Fixed array handling for Object.defineOwnProperty (ES5 conformance).
    577 
    578         Fixed issue 1757 (string slices of external strings).
    579 
    580         Fixed issue 1759 (ARM).
    581 
    582         Added flag --noclever-optimizations to disable some things that
    583         caused trouble in the past.
    584 
    585         Added flag --stress-compaction for testing.
    586 
    587         Added flag --harmony to activate all experimental Harmony features.
    588 
    589 
    590 2011-10-10: Version 3.6.6
    591 
    592         Added a GC pause visualization tool.
    593 
    594         Added presubmit=no and werror=no flags to Makefile.
    595 
    596         ES5/Test262 conformance improvements.
    597 
    598         Fixed compilation issues with GCC 4.5.x (issue 1743).
    599 
    600         Bug fixes and performance improvements on all platforms.
    601 
    602 
    603 2011-10-05: Version 3.6.5
    604 
    605         New incremental garbage collector.
    606 
    607         Removed the hard heap size limit (soft heap size limit is still
    608         700/1400Mbytes by default).
    609 
    610         Implemented ES5 generic Array.prototype.toString (Issue 1361).
    611 
    612         V8 now allows surrogate pair codes in decodeURIComponent (Issue 1415).
    613 
    614         Fixed x64 RegExp start-of-string bug (Issues 1746, 1748).
    615 
    616         Fixed propertyIsEnumerable for numeric properties (Issue 1692).
    617 
    618         Fixed the MinGW and Windows 2000 builds.
    619 
    620         Fixed "Prototype chain is not searched if named property handler does
    621         not set a property" (Issue 1636).
    622 
    623         Made the RegExp.prototype object be a RegExp object (Issue 1217).
    624 
    625         Disallowed future reserved words as labels in strict mode.
    626 
    627         Fixed string split to correctly coerce the separator to a string
    628         (Issue 1711).
    629 
    630         API: Added an optional source length field to the Extension
    631         constructor.
    632 
    633         API: Added Debug::DisableAgent to match existing Debug::EnableAgent
    634         (Issue 1573).
    635 
    636         Added "native" target to Makefile for the benefit of Linux distros.
    637 
    638         Fixed: debugger stops stepping outside evaluate (Issue 1639).
    639 
    640         More work on ES-Harmony proxies.  Still hidden behind a flag.
    641 
    642         Bug fixes and performance improvements on all platforms.
    643 
    644 
    645 2011-09-15: Version 3.6.4
    646 
    647         Fixed d8's broken readline history.
    648 
    649         Removed the need for code delete events in CPU profiler (Issue 1466).
    650 
    651         Fixed debugger stepping next with trycatch recursion (Issue 1639).
    652 
    653         Fixing parallel execution in d8 (with -p) and some memory leaks.
    654 
    655         Support for precise stepping in functions compiled before debugging was
    656         started (step 1).
    657 
    658 
    659 2011-09-13: Version 3.6.3
    660 
    661         Implemented better support of typed arrays in the d8 shell.
    662 
    663         Bug fixes and performance improvements on all platforms.
    664 
    665 
    666 2011-09-08: Version 3.6.2
    667 
    668         Added "dependencies" target to top-level Makefile.
    669 
    670         Added ability to turn profiler on/off in d8.
    671 
    672         Added "soname_version" parameter to common.gypi, v8.gyp, and Makefile.
    673 
    674         Fixed several crash bugs.
    675 
    676 
    677 2011-09-07: Version 3.6.1
    678 
    679         Fixed a bug in abrupt exit from with or catch inside finally.
    680 
    681         Fixed possible crash in FixedDoubleArray::Initialize() (Chromium
    682         issue 95113).
    683 
    684         Fixed a bug in Page::GetRegionMaskForSpan (Chromium issue 94425).
    685 
    686         Fixed a few clang warnings (which -Werror treated as errors).
    687 
    688         Performance improvements on all platforms.
    689 
    690 
    691 2011-09-05: Version 3.6.0
    692 
    693         Fixed a bug when optimizing named function expression (issue 1647).
    694 
    695         Fixed a bug when optimizing f.call.apply (issue 1650).
    696 
    697         Made arguments and caller always be null on native functions
    698         (issues 1548 and 1643).
    699 
    700         Fixed issue 1648 (cross-compiling x64 targeting ia32).
    701 
    702         Fixed issue 371 (d8 printing of strings containing \0).
    703 
    704         Fixed order of evaluation in arguments to parseInt (issue 1649).
    705 
    706         Fixed a problem with large heap snapshots in Chrome DevTools
    707         (issue 1658, chromium issue 89268).
    708 
    709         Upped default maximum heap size from 512M to 700M.
    710 
    711 
    712 2011-08-31: Version 3.5.10
    713 
    714         Added dependency of v8_base on WinSocket2 Windows library in
    715         the GYP-build.
    716 
    717         Various bugfixes.
    718 
    719 
    720 2011-08-29: Version 3.5.9
    721 
    722         Made FromPropertyDescriptor not trigger inherited setters.
    723 
    724         Fixed .gyp files to work on the ARM simulator.
    725 
    726         Fixed shared library build warnings for MSVS.
    727 
    728 
    729 2011-08-24: Version 3.5.8
    730 
    731         Added V8EXPORT attributes for v8::Array::CheckCast and
    732         v8::Number::CheckCast.
    733 
    734         Made a slight API change enabling opting out from null termination
    735         in String::Write*().
    736 
    737         Fixed arm build for gcc-4.6.
    738 
    739 
    740 2011-08-22: Version 3.5.7
    741 
    742         Make scanner handle invalid unicode escapes in identifiers correctly.
    743 
    744         Make regexp flag parsing stricter.
    745 
    746         Fix several memory leaks.
    747 
    748 
    749 2011-08-17: Version 3.5.6
    750 
    751         Fixed issue that could cause crashes when running with --heap-stats.
    752 
    753         Fixed compilation on Linux 2.6.9 and older.
    754 
    755         Fixed live-object-list to work with isolates.
    756 
    757         Fixed memory leaks in zones and isolates.
    758 
    759         Fixed a performance regression for TypedArrays on x64.
    760 
    761         Stability improvements on all platforms.
    762 
    763 
    764 2011-08-15: Version 3.5.5
    765 
    766         Fixed bugs involving negative zero and the optimizing compiler.
    767 
    768         Fixed optimized version of Function.apply(x, arguments). (issue 1592)
    769 
    770         Eliminated uses of deprecated ARM instructions.
    771 
    772         Sped up Math.floor by using SSE 4.1 roundsd instruction on ia32.
    773 
    774         Removed restriction on the size of disassembled code that is printed.
    775 
    776 
    777 2011-08-10: Version 3.5.4
    778 
    779         Added a preliminary implementation of ES Harmony weak maps.  Weak
    780         maps can be enabled by the flag --harmony-weakmaps.
    781 
    782         Introduced a toplevel Makefile to support GYP-based building.  GYP
    783         can be obtained from http://gyp.googlecode.com.
    784 
    785         Fixed a bug in the length property of functions created by
    786         Function.prototype.bind.
    787 
    788         Reduced malloc heap allocation on process startup.
    789 
    790         Several important code generation bug fixes.
    791 
    792         Performance improvements on all platforms.
    793 
    794 
    795 2011-08-03: Version 3.5.3
    796 
    797         MIPS: Port of fix to ClassOf check from ARM.
    798         Patch from Paul Lind <plind44 (a] gmail.com>.
    799 
    800         Stopped using mprotect on Cygwin.
    801         Avoided uninitialized member warning on gcc 4.3.4
    802         Both patches by Bert Belder.
    803 
    804         Bug fixes and performance improvements on all platforms.
    805 
    806 
    807 2011-08-01: Version 3.5.2
    808 
    809         Performance improvements on all platforms.
    810 
    811 
    812 2011-07-28: Version 3.5.1
    813 
    814         Fixed setting the readonly flag on the prototype property using the
    815         API call FunctionTemplate::SetPrototypeAttributes (issue 1539).
    816 
    817         Changed the tools/test.py script to use d8 instead of shell for
    818         testing.
    819 
    820         Fixed crash in ToBooleanStub when GC happens during invocation.
    821 
    822         Enabled automatic unboxing of double arrays.
    823 
    824         Performance improvements on all platforms.
    825 
    826 
    827 2011-07-25: Version 3.5.0
    828 
    829         Implemented Object.prototype.{hasOwnProperty, propertyIsEnumerable} for
    830         proxies.
    831 
    832         Removed logging to memory support.
    833 
    834         Bugfixes and performance work.
    835 
    836 
    837 2011-07-20: Version 3.4.14
    838 
    839         Fix the debugger for strict-mode functions. (Chromium issue 89236)
    840 
    841         Add GetPropertyAttribute method for Object in the API. (Patch by
    842         Peter Varga)
    843 
    844         Fix -Wunused-but-set-variable for gcc-4.6 on x64. (Issue 1291)
    845 
    846 
    847 2011-07-18: Version 3.4.13
    848 
    849         Improved debugger support to allow inspection of optimized frames (issue
    850         1140).
    851 
    852         Fixed a bug in prototype transitions cache clearing introduced by r8165.
    853 
    854         Fixed shortcutting bug in HInferRepresentation. Patch by Andy Wingo.
    855 
    856         Fixed a memory leak in sample/shell.cc (dispose semaphores).
    857 
    858         Simplified HClampToUint8. Patch by Andy Wingo.
    859 
    860         Exposed APIs for detecting boxed primitives, native errors. Patch by
    861         Luke Zarko.
    862 
    863         Added map check for COW elements to crankshaft array handling code
    864         (issue 1560).
    865 
    866         Sample shell and (a light version of) D8 links against a shared library
    867         now.
    868 
    869         Fixed bug in array filter and reduce functions (issue 1559).
    870 
    871         Avoid TLS load in AstNode constructor.
    872 
    873         Introduced a random entropy source which can optionally be provided at
    874         initialization. (Chromium issue 89462).
    875 
    876 
    877 2011-07-13: Version 3.4.12
    878 
    879         Added --prof profiling option to d8 shell.
    880 
    881         Fixed a bug where reading a directory in d8 shell hangs (issue 1533).
    882 
    883         Fixed a potential assertion failure in const declarations.
    884 
    885         Fixed an assertion failure in descriptor arrays (issue 1526).
    886 
    887         Enabled fast thread-local storage by default on supported platforms.
    888 
    889         Improved reporting of source position for global variable loads
    890         (issue 1527).
    891 
    892 
    893 2011-07-11: Version 3.4.11
    894 
    895         Fixed MinGW32 build.
    896 
    897         Fixed a GC bug with RegExp code flushing.
    898 
    899         Implemented Object.defineProperty for proxies.
    900 
    901         Fixed a bug in for/in iteration of arguments objects (issue 1531).
    902 
    903         Added debugger support for inspecting optimized frames (issue 1140).
    904 
    905         Allowed JSObject::PreventExtensions to work for arguments objects.
    906 
    907         Bugfixes and performance work.
    908 
    909 
    910 2011-07-06: Version 3.4.10
    911 
    912         Fixed debugger not breaking on certain "if" statements (issue 1523).
    913 
    914         Fixed assertion failure in runtime profiler when running on IA32
    915         without snapshot (issue 1522).
    916 
    917         Fixed ABI for API calls on IA32 (for clang compatibility).
    918 
    919         Introduced code flushing of RegExp code to free memory used by
    920         RegExps sooner.
    921 
    922         Fixed linux-tick-processor built wrong version of v8 (issue 1532).
    923 
    924         Fixed assertion failure in v8::TryCache::StackTrace (issue 1529).
    925 
    926         Performance improvements on all platforms.
    927 
    928 
    929 2011-07-04: Version 3.4.9
    930 
    931         Added support for debugger inspection of locals in optimized frames
    932         (issue 1140).
    933 
    934         Fixed SConstruct to pass correct defines to samples/preparser when
    935         building with library=shared.
    936 
    937         Made date parser handle ES5 Date Time Strings correctly (issue 1498).
    938 
    939         Fixed a bug in Object.defineProperty on the arguments object.
    940 
    941         Performance improvements on all platforms.
    942 
    943 
    944 2011-06-29: Version 3.4.8
    945 
    946         Ensure 16-byte stack alignment on Solaris (issue 1505).
    947 
    948         Fix "illegal access" when calling parseInt with a radix
    949         that is not a smi. (issue 1246).
    950 
    951 
    952 2011-06-27: Version 3.4.7
    953 
    954         Fixed 64-bit build on FreeBSD.
    955 
    956         Added API to set the property attributes for the prototype
    957         property on functions created from FunctionTemplates.
    958 
    959         Bugfixes and performance work.
    960 
    961 
    962 2011-06-22: Version 3.4.6
    963 
    964         Lowered limit on code space for systems with low memory supply.
    965 
    966         Allowed compiling v8_shell with the 'host' toolset (issue 82437).
    967 
    968         Extended setBreakpoint API to accept partial script name (issue 1418).
    969 
    970         Made multi-line comments not count when deciding whether the '-->'
    971         comment starter is first on a line. This matches Safari.
    972 
    973         Made handling of non-array recievers in Array length setter correct
    974         (issue 1491).
    975 
    976         Added ability to heap profiler to iterate over snapshot's node
    977         (issue 1481).
    978 
    979 
    980 2011-06-20: Version 3.4.5
    981 
    982         Fixed issues 794, 1097, 1215(partial), 1417, 1435, 1472, 1473,
    983         1476, and 1477.
    984 
    985         Improved code generation for !0 and !1.
    986 
    987         Reduced memory usage for regular expressions with nested qualifiers.
    988         (issue 1472)
    989 
    990         Fixed V8 to count line terminators in multi-line comments.
    991         (Chromium issue 86431)
    992 
    993         Fixed disassembler=on option for release-mode builds. (issue 1473)
    994 
    995         Performance improvements on all platforms.
    996 
    997 
    998 2011-06-15: Version 3.4.4
    999 
   1000         Added snapshot compression support and --stress-opt flag to d8.
   1001 
   1002         Improved performance of try/catch.
   1003 
   1004         Several GYP-related changes: Added support for building Xcode project
   1005         files. Make the ARM simulator build with GYP again. Generate Makefiles
   1006         for all architectures on Linux.
   1007 
   1008         Fixed Array.prototype.{reduce,reduceRight} to pass undefined as the
   1009         receiver for strict mode callbacks. (issue 1436)
   1010 
   1011         Fixed a bug where an array load was incorrectly hoisted by GVN.
   1012 
   1013         Handle 'undefined' correctly when === has been specialized for doubles.
   1014         (issue 1434)
   1015 
   1016         Corrected the limit of local variables in an optimized function from 64
   1017         to 63.
   1018 
   1019         Correctly set ReadOnly flag on indexed properties when using the API Set
   1020         method. (issue 1470)
   1021 
   1022         Give the correct error message when Object.isExtensible is called on a
   1023         non-object. (issue 1452)
   1024 
   1025         Added GetOwnPropertyNames method for Object in the API. Patch by Peter
   1026         Varga.
   1027 
   1028         Do not redefine properties unneccesarily in seal and freeze. (issue
   1029         1447)
   1030 
   1031         IsExecutionTerminating has an Isolate parameter now.
   1032 
   1033         Distinguish keyed loads with a symbol key from fast elements loads,
   1034         avoiding some useless deoptimizations. (issue 1471)
   1035 
   1036 
   1037 2011-06-08: Version 3.4.3
   1038 
   1039         Clear the global thread table when an isolate is disposed
   1040         (issue 1433).
   1041 
   1042         Converted time zone name to UTF8 on Windows (issue 1290).
   1043 
   1044         Limited the number of arguments in a function call to 32766
   1045         (issue 1413).
   1046 
   1047         Compress sources of JS libraries in addition to the snapshot.
   1048 
   1049         Fixed a bug in Lithium environment iteration.
   1050 
   1051         Performance improvements on all platforms.
   1052 
   1053 
   1054 2011-06-06: Version 3.4.2
   1055 
   1056         More work on ES-Harmony proxies.  Still hidden behind a flag.
   1057 
   1058         Fixed some crash bugs and improved performance.
   1059 
   1060         Fixed building with gdb debugging support.
   1061 
   1062         Do not install SIGPROF handler until it is needed.
   1063 
   1064         Added DateTimeFormat to i18n API.
   1065 
   1066         Fixed compilation on OpenBSD.
   1067 
   1068         Take the ulimit into account when sizing the heap.  OpenBSD users
   1069         may still have to increase the default ulimit to run heavy pages in
   1070         the browser.
   1071 
   1072 
   1073 2011-06-01: Version 3.4.1
   1074 
   1075         Fixed JSON stringify issue with arrays.
   1076 
   1077         Changed calls to JS builtins to be passed undefined when called with
   1078         implicit receiver.
   1079 
   1080         Implemented the set trap for Harmony proxies. Proxies still need to
   1081         be enabled with the --harmony-proxies flag.
   1082 
   1083 
   1084 2011-05-30: Version 3.4.0
   1085 
   1086         Changed calls to undefined property setters to not throw (issue 1355).
   1087 
   1088         Made RegExp objects not callable.
   1089 
   1090         Fixed issues on special case large JSON strings in new json parser
   1091         (issues http://crbug.com/83877 and http://crbug.com/84186).
   1092 
   1093         Performance improvements on all platforms.
   1094 
   1095 
   1096 2011-05-25: Version 3.3.10
   1097 
   1098         Fixed calls of strict mode function with an implicit receiver.
   1099 
   1100         Fixed fast handling of arrays to properly deal with changes to the
   1101         Object prototype (issue 1403).
   1102 
   1103         Changed strict mode poison pill to be the same type error function
   1104         (issue 1387).
   1105 
   1106         Fixed a debug crash in arguments object handling (issue 1227).
   1107 
   1108         Fixed a bug in deoptimization on x64 (issue 1404).
   1109 
   1110         Performance improvements and bug fixes on all platforms.
   1111 
   1112 
   1113 2011-05-23: Version 3.3.9
   1114 
   1115         Added DateTimeFormat class to experimental i18n API.
   1116 
   1117         Extended preparser to give early errors for some strict mode
   1118         restrictions.
   1119 
   1120         Removed legacy execScript function from V8.
   1121 
   1122         Extended isolate API with the ability to add embedder-specific
   1123         data to an isolate.
   1124 
   1125         Added basic support for polymorphic loads from JS and external
   1126         arrays.
   1127 
   1128         Fixed bug in handling of switch statements in the optimizing
   1129         compiler.
   1130 
   1131 
   1132 2011-05-18: Version 3.3.8
   1133 
   1134         Added MarkIndependent to the persistent handle API.  Independent
   1135         handles are independent of all other persistent handles and can be
   1136         garbage collected more frequently.
   1137 
   1138         Implemented the get trap for Harmony proxies.  Proxies are enabled
   1139         with the --harmony-proxies flag.
   1140 
   1141         Performance improvements and bug fixes on all platforms.
   1142 
   1143 
   1144 2011-05-16: Version 3.3.7
   1145 
   1146         Updated MIPS infrastructure files.
   1147 
   1148         Performance improvements and bug fixes on all platforms.
   1149 
   1150 
   1151 2011-05-11: Version 3.3.6
   1152 
   1153         Updated MIPS infrastructure files.
   1154 
   1155         Added method IsCallable for Object to the API.
   1156         Patch by Peter Varga.
   1157 
   1158 
   1159 2011-05-09: Version 3.3.5
   1160 
   1161         Fixed build on FreeBSD. Patch by Akinori MUSHA.
   1162 
   1163         Added check that receiver is JSObject on API calls.
   1164 
   1165         Implemented CallAsConstructor method for Object in the API (Issue 1348).
   1166         Patch by Peter Varga.
   1167 
   1168         Added CallAsFunction method to the Object class in the API (Issue 1336).
   1169         Patch by Peter Varga.
   1170 
   1171         Added per-isolate locking and unlocking.
   1172 
   1173         Fixed bug in x64 >>> operator (Issue 1359).
   1174 
   1175 
   1176 2011-05-04: Version 3.3.4
   1177 
   1178         Implemented API to disallow code generation from strings for a context
   1179         (issue 1258).
   1180 
   1181         Fixed bug with whitespaces in parseInt (issue 955).
   1182 
   1183         Fixed bug with == comparison of Date objects (issue 1356).
   1184 
   1185         Added GYP variables for ARM code generation:
   1186         v8_can_use_vfp_instructions, v8_can_use_unaligned_accesses
   1187         and v8_use_arm_eabi_hardfloat.
   1188 
   1189 
   1190 2011-05-02: Version 3.3.3
   1191 
   1192         Added support for generating Visual Studio solution and project files
   1193         using GYP.
   1194 
   1195         Implemented support for ARM EABI calling convention variation where
   1196         floating-point arguments are passed in registers (hardfloat).
   1197 
   1198         Added Object::HasOwnProperty() to the API.
   1199 
   1200         Added support for compressing startup data to reduce binary size. This
   1201         includes build time support and an API for the embedder to decompress
   1202         the startup data before initializing V8.
   1203 
   1204         Reduced the profiling hooks overhead from >400% to 25% when using
   1205         ll_prof.
   1206 
   1207         Performance improvements and bug fixes on all platforms.
   1208 
   1209 
   1210 2011-04-27: Version 3.3.2
   1211 
   1212         Fixed crash bug on ARM with no VFP3 hardware.
   1213 
   1214         Fixed compilation of V8 without debugger support.
   1215 
   1216         Improved performance on JSLint.
   1217 
   1218         Added support Float64 WebGL arrays.
   1219 
   1220         Fixed crash bug in regexp replace.
   1221 
   1222 
   1223 2011-04-20: Version 3.3.1
   1224 
   1225         Reduced V8 binary size by removing virtual functions from hydrogen.
   1226 
   1227         Fixed crash bug on x64.
   1228 
   1229         Performance improvements on ARM and IA32.
   1230 
   1231 
   1232 2011-04-18: Version 3.3.0
   1233 
   1234         Fixed bug in floating point rounding in Crankshaft on ARM
   1235         (issue 958)
   1236 
   1237         Fixed a number of issues with running without VFPv3 support on ARM
   1238         (issue 1315)
   1239 
   1240         Introduced v8Locale.Collator, a partial implementation of Collator
   1241         per last ECMAScript meeting + mailing list.
   1242 
   1243         Minor performance improvements and bug fixes.
   1244 
   1245 
   1246 2011-04-13: Version 3.2.10
   1247 
   1248         Fixed bug in external float arrays on ARM (issue 1323).
   1249 
   1250         Minor performance improvements and bug fixes.
   1251 
   1252 
   1253 2011-04-11: Version 3.2.9
   1254 
   1255         Removed support for ABI prior to EABI on ARM.
   1256 
   1257         Fixed multiple crash bugs.
   1258 
   1259         Added GCMole to the repository, a simple static analysis tool that
   1260         searches for GC-unsafe evaluation order dependent callsites.
   1261 
   1262         Made preparser API be exported in shared libraries.
   1263 
   1264         Fixed multiple issues in EcmaScript 5 strict mode implementation.
   1265 
   1266         Fixed mutable __proto__ property if object is not extensible
   1267         (Issue 1309).
   1268 
   1269         Fixed auto suspension of the sampler thread.
   1270 
   1271 
   1272 2011-04-06: Version 3.2.8
   1273 
   1274         Exposed WebGL typed array constructors in the shell sample.
   1275 
   1276         Performance improvements on all platforms.
   1277 
   1278 
   1279 2011-04-04: Version 3.2.7
   1280 
   1281         Disabled the original 'classic' V8 code generator.  Crankshaft is
   1282         now the default on all platforms.
   1283 
   1284         Changed the heap profiler to use more descriptive names.
   1285 
   1286         Performance and stability improvements to isolates on all platforms.
   1287 
   1288 
   1289 2011-03-30: Version 3.2.6
   1290 
   1291         Fixed xcode build warning in shell.cc (out of order initialization).
   1292 
   1293         Fixed null-pointer dereference in the compiler when running without
   1294         SSE3 support (Chromium issue 77654).
   1295 
   1296         Fixed x64 compilation error due to some dead code. (Issue 1286)
   1297 
   1298         Introduced scons target to build the preparser stand-alone example.
   1299 
   1300         Made FreeBSD build and pass all tests.
   1301 
   1302 
   1303 2011-03-28: Version 3.2.5
   1304 
   1305         Fixed build with Irregexp interpreter (issue 1266).
   1306 
   1307         Added Crankshaft support for external arrays.
   1308 
   1309         Fixed two potential crash bugs.
   1310 
   1311 
   1312 2011-03-23: Version 3.2.4
   1313 
   1314         Added isolates which allows several V8 instances in the same process.
   1315         This is controlled through the new Isolate class in the API.
   1316 
   1317         Implemented more of EcmaScript 5 strict mode.
   1318 
   1319         Reduced the time it takes to make detailed heap snapshot.
   1320 
   1321         Added a number of commands to the ARM simulator and enhanced the ARM
   1322         disassembler.
   1323 
   1324 
   1325 2011-03-17: Version 3.2.3
   1326 
   1327         Fixed a number of crash bugs.
   1328 
   1329         Fixed Array::New(length) to return an array with a length (issue 1256).
   1330 
   1331         Fixed FreeBSD build.
   1332 
   1333         Changed __defineGetter__ to not throw (matching the behavior of Safari).
   1334 
   1335         Implemented more of EcmaScript 5 strict mode.
   1336 
   1337         Improved Crankshaft performance on all platforms.
   1338 
   1339 
   1340 2011-03-14: Version 3.2.2
   1341 
   1342         Fixed a number of crash and correctness bugs.
   1343 
   1344         Improved Crankshaft performance on all platforms.
   1345 
   1346         Fixed Crankshaft on Solaris/Illumos.
   1347 
   1348 
   1349 2011-03-10: Version 3.2.1
   1350 
   1351         Fixed a number of crash bugs.
   1352 
   1353         Improved Crankshaft for x64 and ARM.
   1354 
   1355         Implemented more of EcmaScript 5 strict mode.
   1356 
   1357 
   1358 2011-03-07: Version 3.2.0
   1359 
   1360         Fixed a number of crash bugs.
   1361 
   1362         Turned on Crankshaft by default on x64 and ARM.
   1363 
   1364         Improved Crankshaft for x64 and ARM.
   1365 
   1366         Implemented more of EcmaScript 5 strict mode.
   1367 
   1368 
   1369 2011-03-02: Version 3.1.8
   1370 
   1371         Fixed a number of crash bugs.
   1372 
   1373         Improved Crankshaft for x64 and ARM.
   1374 
   1375         Implemented more of EcmaScript 5 strict mode.
   1376 
   1377         Fixed issue with unaligned reads and writes on ARM.
   1378 
   1379         Improved heap profiler support.
   1380 
   1381 
   1382 2011-02-28: Version 3.1.7
   1383 
   1384         Fixed a number of crash bugs.
   1385 
   1386         Improved Crankshaft for x64 and ARM.
   1387 
   1388         Fixed implementation of indexOf/lastIndexOf for sparse
   1389         arrays (http://crbug.com/73940).
   1390 
   1391         Fixed bug in map space compaction (http://crbug.com/59688).
   1392 
   1393         Added support for direct getter accessors calls on ARM.
   1394 
   1395 
   1396 2011-02-24: Version 3.1.6
   1397 
   1398         Fixed a number of crash bugs.
   1399 
   1400         Added support for Cygwin (issue 64).
   1401 
   1402         Improved Crankshaft for x64 and ARM.
   1403 
   1404         Added Crankshaft support for stores to pixel arrays.
   1405 
   1406         Fixed issue in CPU profiler with Crankshaft.
   1407 
   1408 
   1409 2011-02-16: Version 3.1.5
   1410 
   1411         Change RegExp parsing to disallow /(*)/.
   1412 
   1413         Added GDB JIT support for ARM.
   1414 
   1415         Fixed several crash bugs.
   1416 
   1417         Performance improvements on the IA32 platform.
   1418 
   1419 
   1420 2011-02-14: Version 3.1.4
   1421 
   1422         Fixed incorrect compare of prototypes of the global object (issue
   1423         1082).
   1424 
   1425         Fixed a bug in optimizing calls to global functions (issue 1106).
   1426 
   1427         Made optimized Function.prototype.apply safe for non-JSObject first
   1428         arguments (issue 1128).
   1429 
   1430         Fixed an error related to element accessors on Object.prototype and
   1431         parser errors (issue 1130).
   1432 
   1433         Fixed a bug in sorting an array with large array indices (issue 1131).
   1434 
   1435         Properly treat exceptions thrown while compiling (issue 1132).
   1436 
   1437         Fixed bug in register requirements for function.apply (issue 1133).
   1438 
   1439         Fixed a representation change bug in the Hydrogen graph construction
   1440         (issue 1134).
   1441 
   1442         Fixed the semantics of delete on parameters (issue 1136).
   1443 
   1444         Fixed a optimizer bug related to moving instructions with side effects
   1445         (issue 1138).
   1446 
   1447         Added support for the global object in Object.keys (issue 1150).
   1448 
   1449         Fixed incorrect value for Math.LOG10E
   1450         (issue http://code.google.com/p/chromium/issues/detail?id=72555)
   1451 
   1452         Performance improvements on the IA32 platform.
   1453 
   1454         Implement assignment to undefined reference in ES5 Strict Mode.
   1455 
   1456 
   1457 2011-02-09: Version 3.1.3
   1458 
   1459         Fixed a bug triggered by functions with huge numbers of declared
   1460         arguments.
   1461 
   1462         Fixed zap value aliasing a real object - debug mode only (issue 866).
   1463 
   1464         Fixed issue where Array.prototype.__proto__ had been set to null
   1465         (issue 1121).
   1466 
   1467         Fixed stability bugs in Crankshaft for x86.
   1468 
   1469 
   1470 2011-02-07: Version 3.1.2
   1471 
   1472         Added better security checks when accessing properties via
   1473         Object.getOwnPropertyDescriptor.
   1474 
   1475         Fixed bug in Object.defineProperty and related access bugs (issues
   1476         992, 1083 and 1092).
   1477 
   1478         Added LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to ease
   1479         copyright notice generation for embedders.
   1480 
   1481 
   1482 2011-02-02: Version 3.1.1
   1483 
   1484         Perform security checks before fetching the value in
   1485         Object.getOwnPropertyDescriptor.
   1486 
   1487         Fixed a bug in Array.prototype.splice triggered by passing no
   1488         arguments.
   1489 
   1490         Fixed bugs in -0 in arithmetic and in Math.pow.
   1491 
   1492         Fixed bugs in the register allocator and in switching from optimized
   1493         to unoptimized code.
   1494 
   1495 
   1496 2011-01-31: Version 3.1.0
   1497 
   1498         Performance improvements on all platforms.
   1499 
   1500 
   1501 2011-01-28: Version 3.0.12
   1502 
   1503         Added support for strict mode parameter and object property
   1504         validation.
   1505 
   1506         Fixed a couple of crash bugs.
   1507 
   1508 
   1509 2011-01-25: Version 3.0.11
   1510 
   1511         Fixed a bug in deletion of lookup slots that could cause global
   1512         variables to be accidentally deleted (http://crbug.com/70066).
   1513 
   1514         Added support for strict mode octal literal verification.
   1515 
   1516         Fixed a couple of crash bugs (issues 1070 and 1071).
   1517 
   1518 
   1519 2011-01-24: Version 3.0.10
   1520 
   1521         Fixed External::Wrap for 64-bit addresses (issue 1037).
   1522 
   1523         Fixed incorrect .arguments variable proxy handling in the full
   1524         code generator (issue 1060).
   1525 
   1526         Introduced partial strict mode support.
   1527 
   1528         Changed formatting of recursive error messages to match Firefox and
   1529         Safari (issue http://crbug.com/70334).
   1530 
   1531         Fixed incorrect rounding for float-to-integer conversions for external
   1532         array types, which implement the Typed Array spec
   1533         (issue http://crbug.com/50972).
   1534 
   1535         Performance improvements on the IA32 platform.
   1536 
   1537 
   1538 2011-01-19: Version 3.0.9
   1539 
   1540         Added basic GDB JIT Interface integration.
   1541 
   1542         Make invalid break/continue statements a syntax error instead of a
   1543         runtime error.
   1544 
   1545 
   1546 2011-01-17: Version 3.0.8
   1547 
   1548         Exposed heap size limit to the heap statistics gathered by
   1549         the GetHeapStatistics API.
   1550 
   1551         Wrapped external pointers more carefully (issue 1037).
   1552 
   1553         Hardened the implementation of error objects to avoid setters
   1554         intercepting the properties set then throwing an error.
   1555 
   1556         Avoided trashing the FPSCR when calculating Math.floor on ARM.
   1557 
   1558         Performance improvements on the IA32 platform.
   1559 
   1560 
   1561 2011-01-10: Version 3.0.7
   1562 
   1563         Stopped calling inherited setters when creating object literals
   1564         (issue 1015).
   1565 
   1566         Changed interpretation of malformed \c? escapes in RegExp to match
   1567         JSC.
   1568 
   1569         Enhanced the command-line debugger interface and fixed some minor
   1570         bugs in the debugger.
   1571 
   1572         Performance improvements on the IA32 platform.
   1573 
   1574 
   1575 2011-01-05: Version 3.0.6
   1576 
   1577         Allowed getters and setters on JSArray elements (issue 900).
   1578 
   1579         Stopped JSON objects from hitting inherited setters (part of
   1580         issue 1015).
   1581 
   1582         Allowed numbers and strings as names of getters/setters in object
   1583         initializer (issue 820).
   1584 
   1585         Added use_system_v8 option to gyp (off by default), to make it easier
   1586         for Linux distributions to ship with system-provided V8 library.
   1587 
   1588         Exported external array data accessors (issue 1016).
   1589 
   1590         Added labelled thread names to help with debugging (on Linux).
   1591 
   1592 
   1593 2011-01-03: Version 3.0.5
   1594 
   1595         Fixed a couple of cast errors for gcc-3.4.3.
   1596 
   1597         Performance improvements in GC and IA32 code generator.
   1598 
   1599 
   1600 2010-12-21: Version 3.0.4
   1601 
   1602         Added Date::ResetCache() to the API so that the cached values in the
   1603         Date object can be reset to allow live DST / timezone changes.
   1604 
   1605         Extended existing support for printing (while debugging) the contents
   1606         of objects.  Added support for printing objects from release builds.
   1607 
   1608         Fixed V8 issues 989, 1006, and 1007.
   1609 
   1610 
   1611 2010-12-17: Version 3.0.3
   1612 
   1613         Reapplied all changes for version 3.0.1.
   1614 
   1615         Improved debugger protocol for remote debugging.
   1616 
   1617         Added experimental support for using gyp to generate build files
   1618         for V8.
   1619 
   1620         Fixed implementation of String::Write in the API (issue 975).
   1621 
   1622 
   1623 2010-12-15: Version 3.0.2
   1624 
   1625         Revert version 3.0.1 and patch 3.0.1.1.
   1626 
   1627 
   1628 2010-12-13: Version 3.0.1
   1629 
   1630         Added support for an experimental internationalization API as an
   1631         extension.  This extension is disabled by default but can be enabled
   1632         when building V8.  The ECMAScript internationalization strawman is
   1633         at http://wiki.ecmascript.org/doku.php?id=strawman:i18n_api.
   1634 
   1635         Made RegExp character class parsing stricter.  This mirrors a change
   1636         to RegExp parsing in WebKit.
   1637 
   1638         Fixed a bug in Object.defineProperty when used to change attributes
   1639         of an existing property.  It incorrectly set the property value to
   1640         undefined (issue 965).
   1641 
   1642         Fixed several different compilation failures on various platforms
   1643         caused by the 3.0.0 release.
   1644 
   1645         Optimized Math.pow so it can work on unboxed doubles.
   1646 
   1647         Sped up quoting of JSON strings by removing one traversal of the
   1648         string.
   1649 
   1650 
   1651 2010-12-07: Version 3.0.0
   1652 
   1653         Improved performance by (partially) addressing issue 957 on
   1654         IA-32. Still needs more work for the other architectures.
   1655 
   1656 
   1657 2010-11-29: Version 2.5.9
   1658 
   1659         Fixed crashes during GC caused by partially initialize heap
   1660         objects.
   1661 
   1662         Fixed bug in process sample that caused memory leaks.
   1663 
   1664         Improved performance on ARM by implementing missing stubs and
   1665         inlining.
   1666 
   1667         Improved heap profiler support.
   1668 
   1669         Added separate seeding on Windows of the random number generator
   1670         used internally by the compiler (issue 936).
   1671 
   1672         Exposed API for getting the name of the function used to construct
   1673         an object.
   1674 
   1675         Fixed date parser to handle one and two digit millisecond
   1676         values (issue 944).
   1677 
   1678         Fixed number parsing to disallow space between sign and
   1679         digits (issue 946).
   1680 
   1681 
   1682 2010-11-23: Version 2.5.8
   1683 
   1684         Removed dependency on Gay's dtoa.
   1685 
   1686         Improved heap profiler precision and speed.
   1687 
   1688         Reduced overhead of callback invocations on ARM.
   1689 
   1690 
   1691 2010-11-18: Version 2.5.7
   1692 
   1693         Fixed obscure evaluation order bug (issue 931).
   1694 
   1695         Split the random number state between JavaScript and the private API.
   1696 
   1697         Fixed performance bug causing GCs when generating stack traces on
   1698         code from very large scripts.
   1699 
   1700         Fixed bug in parser that allowed (foo):42 as a labelled statement
   1701         (issue 918).
   1702 
   1703         Provide more accurate results about used heap size via
   1704         GetHeapStatistics.
   1705 
   1706         Allow build-time customization of the max semispace size.
   1707 
   1708         Made String.prototype.split honor limit when separator is empty
   1709         (issue 929).
   1710 
   1711         Added missing failure check after expecting an identifier in
   1712         preparser (Chromium issue 62639).
   1713 
   1714 
   1715 2010-11-10: Version 2.5.6
   1716 
   1717         Added support for VFP rounding modes to the ARM simulator.
   1718 
   1719         Fixed multiplication overflow bug (issue 927).
   1720 
   1721         Added a limit for the amount of executable memory (issue 925).
   1722 
   1723 
   1724 2010-11-08: Version 2.5.5
   1725 
   1726         Added more aggressive GC of external objects in near out-of-memory
   1727         situations.
   1728 
   1729         Fixed a bug that gave the incorrect result for String.split called
   1730         on the empty string (issue 924).
   1731 
   1732 
   1733 2010-11-03: Version 2.5.4
   1734 
   1735         Improved V8 VFPv3 runtime detection to address issue 914.
   1736 
   1737 
   1738 2010-11-01: Version 2.5.3
   1739 
   1740         Fixed a bug that prevents constants from overwriting function values
   1741         in object literals (issue 907).
   1742 
   1743         Fixed a bug with reporting of impossible nested calls of DOM functions
   1744         (issue http://crbug.com/60753).
   1745 
   1746 
   1747 2010-10-27: Version 2.5.2
   1748 
   1749         Improved sampler resolution on Linux.
   1750 
   1751         Allowed forcing the use of a simulator from the build script
   1752         independently of the host architecture.
   1753 
   1754         Fixed FreeBSD port (issue 912).
   1755 
   1756         Made windows-tick-processor respect D8_PATH.
   1757 
   1758         Implemented --noinline-new flag fully on IA32, X64 and ARM platforms.
   1759 
   1760 
   1761 2010-10-20: Version 2.5.1
   1762 
   1763         Fixed bug causing spurious out of memory exceptions
   1764         (issue http://crbug.com/54580).
   1765 
   1766         Fixed compilation error on Solaris platform (issue 901).
   1767 
   1768         Fixed error in strtod (string to floating point number conversion)
   1769         due to glibc's use of 80-bit floats in the FPU on 32-bit linux.
   1770 
   1771         Adjusted randomized allocations of executable memory to have 64k
   1772         granularity (issue http://crbug.com/56036).
   1773 
   1774         Supported profiling using kernel perf_events on linux.  Added ll_prof
   1775         script to tools and --ll-prof flag to V8.
   1776 
   1777 
   1778 2010-10-18: Version 2.5.0
   1779 
   1780         Fixed bug in cache handling of lastIndex on global regexps
   1781         (issue http://crbug.com/58740).
   1782 
   1783         Added USE_SIMULATOR macro that explicitly indicates that we wish to use
   1784         the simulator as the execution engine (by Mark Lam <mark.lam (a] palm.com>
   1785         from Hewlett-Packard Development Company, LP).
   1786 
   1787         Fixed compilation error on ARM with gcc 4.4 (issue 894).
   1788 
   1789 
   1790 2010-10-13: Version 2.4.9
   1791 
   1792         Fixed a bug in the handling of conditional expressions in test
   1793         contexts in compiler for top-level code.
   1794 
   1795         Added "//@ sourceURL" information to the StackTrace API.
   1796 
   1797         Exposed RegExp construction through the API.
   1798 
   1799 
   1800 2010-10-04: Version 2.4.8
   1801 
   1802         Fixed a bug in ResumeProfilerEx causing it to not always write out the
   1803         whole snapshot (issue 868).
   1804 
   1805         Performance improvements on all platforms.
   1806 
   1807 
   1808 2010-09-30: Version 2.4.7
   1809 
   1810         Changed the command-line flag --max-new-space-size to be in kB and the
   1811         flag --max-old-space-size to be in MB (previously they were in bytes).
   1812 
   1813         Added Debug::CancelDebugBreak to the debugger API.
   1814 
   1815         Fixed a bug in getters for negative numeric property names
   1816         (https://bugs.webkit.org/show_bug.cgi?id=46689).
   1817 
   1818         Performance improvements on all platforms.
   1819 
   1820 
   1821 2010-09-27: Version 2.4.6
   1822 
   1823         Fixed assertion failure related to copy-on-write arrays (issue 876).
   1824 
   1825         Fixed build failure of 64-bit V8 on Windows.
   1826 
   1827         Fixed a bug in RegExp (issue http://crbug.com/52801).
   1828 
   1829         Improved the profiler's coverage to cover more functions (issue 858).
   1830 
   1831         Fixed error in shift operators on 64-bit V8
   1832         (issue http://crbug.com/54521).
   1833 
   1834 
   1835 2010-09-22: Version 2.4.5
   1836 
   1837         Changed the RegExp benchmark to exercise the regexp engine on different
   1838         inputs by scrambling the input strings.
   1839 
   1840         Fixed a bug in keyed loads on strings.
   1841 
   1842         Fixed a bug with loading global function prototypes.
   1843 
   1844         Fixed a bug with profiling RegExp calls (issue http://crbug.com/55999).
   1845 
   1846         Performance improvements on all platforms.
   1847 
   1848 
   1849 2010-09-15: Version 2.4.4
   1850 
   1851         Fixed bug with hangs on very large sparse arrays.
   1852 
   1853         Now tries harder to free up memory when running out of space.
   1854 
   1855         Added heap snapshots to JSON format to API.
   1856 
   1857         Recalibrated benchmarks.
   1858 
   1859 
   1860 2010-09-13: Version 2.4.3
   1861 
   1862         Made Date.parse properly handle TZ offsets (issue 857).
   1863 
   1864         Performance improvements on all platforms.
   1865 
   1866 
   1867 2010-09-08: Version 2.4.2
   1868 
   1869         Fixed GC crash bug.
   1870 
   1871         Fixed stack corruption bug.
   1872 
   1873         Fixed compilation for newer C++ compilers that found Operand(0)
   1874         ambiguous.
   1875 
   1876 
   1877 2010-09-06: Version 2.4.1
   1878 
   1879         Added the ability for an embedding application to receive a callback
   1880         when V8 allocates (V8::AddMemoryAllocationCallback) or deallocates
   1881         (V8::RemoveMemoryAllocationCallback) from the OS.
   1882 
   1883         Fixed several JSON bugs (including issue 855).
   1884 
   1885         Fixed memory overrun crash bug triggered during V8's tick-based
   1886         profiling.
   1887 
   1888         Performance improvements on all platforms.
   1889 
   1890 
   1891 2010-09-01: Version 2.4.0
   1892 
   1893         Fixed bug in Object.freeze and Object.seal when Array.prototype or
   1894         Object.prototype are changed (issue 842).
   1895 
   1896         Updated Array.splice to follow Safari and Firefox when called
   1897         with zero arguments.
   1898 
   1899         Fixed a missing live register when breaking at keyed loads on ARM.
   1900 
   1901         Performance improvements on all platforms.
   1902 
   1903 
   1904 2010-08-25: Version 2.3.11
   1905 
   1906         Fixed bug in RegExp related to copy-on-write arrays.
   1907 
   1908         Refactored tools/test.py script, including the introduction of
   1909         VARIANT_FLAGS that allows specification of sets of flags with which
   1910         all tests should be run.
   1911 
   1912         Fixed a bug in the handling of debug breaks in CallIC.
   1913 
   1914         Performance improvements on all platforms.
   1915 
   1916 
   1917 2010-08-23: Version 2.3.10
   1918 
   1919         Fixed bug in bitops on ARM.
   1920 
   1921         Build fixes for unusual compilers.
   1922 
   1923         Track high water mark for RWX memory.
   1924 
   1925         Performance improvements on all platforms.
   1926 
   1927 
   1928 2010-08-18: Version 2.3.9
   1929 
   1930         Fixed compilation for ARMv4 on OpenBSD/FreeBSD.
   1931 
   1932         Removed specialized handling of GCC 4.4 (issue 830).
   1933 
   1934         Fixed DST cache to take into account the suspension of DST in
   1935         Egypt during the 2010 Ramadan (issue http://crbug.com/51855).
   1936 
   1937         Performance improvements on all platforms.
   1938 
   1939 
   1940 2010-08-16: Version 2.3.8
   1941 
   1942         Fixed build with strict aliasing on GCC 4.4 (issue 463).
   1943 
   1944         Fixed issue with incorrect handling of custom valueOf methods on
   1945         string wrappers (issue 760).
   1946 
   1947         Fixed compilation for ARMv4 (issue 590).
   1948 
   1949         Improved performance.
   1950 
   1951 
   1952 2010-08-11: Version 2.3.7
   1953 
   1954         Reduced size of heap snapshots produced by heap profiler (issue 783).
   1955 
   1956         Introduced v8::Value::IsRegExp method.
   1957 
   1958         Fixed CPU profiler crash in start / stop sequence when non-existent
   1959         name is passed (issue http://crbug.com/51594).
   1960 
   1961         Introduced new indexed property query callbacks API (issue 816). This
   1962         API is guarded by USE_NEW_QUERY_CALLBACK define and is disabled
   1963         by default.
   1964 
   1965         Removed support for object literal get/set with number/string
   1966         property name.
   1967 
   1968         Fixed handling of JSObject::elements in CalculateNetworkSize
   1969         (issue 822).
   1970 
   1971         Allowed compiling with strict aliasing enabled on GCC 4.4 (issue 463).
   1972 
   1973 
   1974 2010-08-09: Version 2.3.6
   1975 
   1976         RegExp literals create a new object every time they are evaluated
   1977         (issue 704).
   1978 
   1979         Object.seal and Object.freeze return the modified object (issue 809).
   1980 
   1981         Fixed building using GCC 4.4.4.
   1982 
   1983 
   1984 2010-08-04: Version 2.3.5
   1985 
   1986         Added support for ES5 property names. Object initialisers and
   1987         dot-notation property access now allows keywords. Also allowed
   1988         non-identifiers after "get" or "set" in an object initialiser.
   1989 
   1990         Randomized the addresses of allocated executable memory on Windows.
   1991 
   1992 
   1993 2010-08-02: Version 2.3.4
   1994 
   1995         Fixed problems in implementation of ES5 function.prototype.bind.
   1996 
   1997         Fixed error when using apply with arguments object on ARM (issue 784).
   1998 
   1999         Added setting of global flags to debugger protocol.
   2000 
   2001         Fixed an error affecting cached results of sin and cos (issue 792).
   2002 
   2003         Removed memory leak from a boundary case where V8 is not initialized.
   2004 
   2005         Fixed issue where debugger could set breakpoints outside the body
   2006         of a function.
   2007 
   2008         Fixed issue in debugger when using both live edit and step in features.
   2009 
   2010         Added Number-letter (Nl) category to Unicode tables.  These characters
   2011         can now be used in identifiers.
   2012 
   2013         Fixed an assert failure on X64 (issue 806).
   2014 
   2015         Performance improvements on all platforms.
   2016 
   2017 
   2018 2010-07-26: Version 2.3.3
   2019 
   2020         Fixed error when building the d8 shell in a fresh checkout.
   2021 
   2022         Implemented Function.prototype.bind (ES5 15.3.4.5).
   2023 
   2024         Fixed an error in inlined stores on ia32.
   2025 
   2026         Fixed an error when setting a breakpoint at the end of a function
   2027         that does not end with a newline character.
   2028 
   2029         Performance improvements on all platforms.
   2030 
   2031 
   2032 2010-07-21: Version 2.3.2
   2033 
   2034         Fixed compiler warnings when building with LLVM.
   2035 
   2036         Fixed a bug with for-in applied to strings (issue 785).
   2037 
   2038         Performance improvements on all platforms.
   2039 
   2040 
   2041 2010-07-19: Version 2.3.1
   2042 
   2043         Fixed compilation and linking with V8_INTERPRETED_REGEXP flag.
   2044 
   2045         Fixed bug related to code flushing while compiling a lazy
   2046         compilable function (issue http://crbug.com/49099).
   2047 
   2048         Performance improvements on all platforms.
   2049 
   2050 
   2051 2010-07-15: Version 2.3.0
   2052 
   2053         Added ES5 Object.seal and Object.isSealed.
   2054 
   2055         Added debugger API for scheduling debugger commands from a
   2056         separate thread.
   2057 
   2058 
   2059 2010-07-14: Version 2.2.24
   2060 
   2061         Added API for capturing stack traces for uncaught exceptions.
   2062 
   2063         Fixed crash bug when preparsing from a non-external V8 string
   2064         (issue 775).
   2065 
   2066         Fixed JSON.parse bug causing input not to be converted to string
   2067         (issue 764).
   2068 
   2069         Added ES5 Object.freeze and Object.isFrozen.
   2070 
   2071         Performance improvements on all platforms.
   2072 
   2073 
   2074 2010-07-07: Version 2.2.23
   2075 
   2076         API change: Convert Unicode code points outside the basic multilingual
   2077         plane to the replacement character.  Previous behavior was to silently
   2078         truncate the value to 16 bits.
   2079 
   2080         Fixed crash: handle all flat string types in regexp replace.
   2081 
   2082         Prevent invalid pre-parsing data passed in through the API from
   2083         crashing V8.
   2084 
   2085         Performance improvements on all platforms.
   2086 
   2087 
   2088 2010-07-05: Version 2.2.22
   2089 
   2090         Added ES5 Object.isExtensible and Object.preventExtensions.
   2091 
   2092         Enabled building V8 as a DLL.
   2093 
   2094         Fixed a bug in date code where -0 was not interpreted as 0
   2095         (issue 736).
   2096 
   2097         Performance improvements on all platforms.
   2098 
   2099 
   2100 2010-06-30: Version 2.2.21
   2101 
   2102         Fixed bug in externalizing some ASCII strings (Chromium issue 47824).
   2103 
   2104         Updated JSON.stringify to floor the space parameter (issue 753).
   2105 
   2106         Updated the Mozilla test expectations to the newest version.
   2107 
   2108         Updated the ES5 Conformance Test expectations to the latest version.
   2109 
   2110         Updated the V8 benchmark suite.
   2111 
   2112         Provide actual breakpoints locations in response to setBreakpoint
   2113         and listBreakpoints requests.
   2114 
   2115 
   2116 2010-06-28: Version 2.2.20
   2117 
   2118         Fixed bug with for-in on x64 platform (issue 748).
   2119 
   2120         Fixed crash bug on x64 platform (issue 756).
   2121 
   2122         Fixed bug in Object.getOwnPropertyNames. (chromium issue 41243).
   2123 
   2124         Fixed a bug on ARM that caused the result of 1 << x to be
   2125         miscalculated for some inputs.
   2126 
   2127         Performance improvements on all platforms.
   2128 
   2129 
   2130 2010-06-23: Version 2.2.19
   2131 
   2132         Fixed bug that causes the build to break when profillingsupport=off
   2133         (issue 738).
   2134 
   2135         Added expose-externalize-string flag for testing extensions.
   2136 
   2137         Resolve linker issues with using V8 as a DLL causing a number of
   2138         problems with unresolved symbols.
   2139 
   2140         Fixed build failure for cctests when ENABLE_DEBUGGER_SUPPORT is not
   2141         defined.
   2142 
   2143         Performance improvements on all platforms.
   2144 
   2145 
   2146 2010-06-16: Version 2.2.18
   2147 
   2148         Added API functions to retrieve information on indexed properties
   2149         managed by the embedding layer.  Fixes bug 737.
   2150 
   2151         Made ES5 Object.defineProperty support array elements.  Fixes bug 619.
   2152 
   2153         Added heap profiling to the API.
   2154 
   2155         Removed old named property query from the API.
   2156 
   2157         Incremental performance improvements.
   2158 
   2159 
   2160 2010-06-14: Version 2.2.17
   2161 
   2162         Improved debugger support for stepping out of functions.
   2163 
   2164         Incremental performance improvements.
   2165 
   2166 
   2167 2010-06-09: Version 2.2.16
   2168 
   2169         Removed the SetExternalStringDiposeCallback API. Changed the
   2170         disposal of external string resources to call a virtual Dispose
   2171         method on the resource.
   2172 
   2173         Added support for more precise break points when debugging and
   2174         stepping.
   2175 
   2176         Memory usage improvements on all platforms.
   2177 
   2178 
   2179 2010-06-07: Version 2.2.15
   2180 
   2181         Added an API to control the disposal of external string resources.
   2182 
   2183         Added missing initialization of a couple of variables which makes
   2184         some compilers complaint when compiling with -Werror.
   2185 
   2186         Improved performance on all platforms.
   2187 
   2188 
   2189 2010-06-02: Version 2.2.14
   2190 
   2191         Fixed a crash in code generated for String.charCodeAt.
   2192 
   2193         Fixed a compilation issue with some GCC versions (issue 727).
   2194 
   2195         Performance optimizations on x64 and ARM platforms.
   2196 
   2197 
   2198 2010-05-31: Version 2.2.13
   2199 
   2200         Implemented Object.getOwnPropertyDescriptor for element indices and
   2201         strings (issue 599).
   2202 
   2203         Fixed bug for windows 64 bit C calls from generated code.
   2204 
   2205         Added new scons flag unalignedaccesses for arm builds.
   2206 
   2207         Performance improvements on all platforms.
   2208 
   2209 
   2210 2010-05-26: Version 2.2.12
   2211 
   2212         Allowed accessors to be defined on objects rather than just object
   2213         templates.
   2214 
   2215         Changed the ScriptData API.
   2216 
   2217 
   2218 2010-05-21: Version 2.2.11
   2219 
   2220         Fixed crash bug in liveedit on 64 bit.
   2221 
   2222         Use 'full compiler' when debugging is active.  This should increase
   2223         the density of possible break points, making single step more fine
   2224         grained.  This will only take effect for functions compiled after
   2225         debugging has been started, so recompilation of all functions is
   2226         required to get the full effect.  IA32 and x64 only for now.
   2227 
   2228         Misc. fixes to the Solaris build.
   2229 
   2230         Added new flags --print-cumulative-gc-stat and --trace-gc-nvp.
   2231 
   2232         Added filtering of CPU profiles by security context.
   2233 
   2234         Fixed crash bug on ARM when running without VFP2 or VFP3.
   2235 
   2236         Incremental performance improvements in all backends.
   2237 
   2238 
   2239 2010-05-17: Version 2.2.10
   2240 
   2241         Performance improvements in the x64 and ARM backends.
   2242 
   2243 
   2244 2010-05-10: Version 2.2.9
   2245 
   2246         Allowed Object.create to be called with a function (issue 697).
   2247 
   2248         Fixed bug with Date.parse returning a non-NaN value when called on a
   2249         non date string (issue 696).
   2250 
   2251         Allowed unaligned memory accesses on ARM targets that support it (by
   2252         Subrato K De of CodeAurora <subratokde (a] codeaurora.org>).
   2253 
   2254         C++ API for retrieving JavaScript stack trace information.
   2255 
   2256 
   2257 2010-05-05: Version 2.2.8
   2258 
   2259         Performance improvements in the x64 and ARM backends.
   2260 
   2261 
   2262 2010-05-03: Version 2.2.7
   2263 
   2264         Added support for ES5 date time string format to Date.parse.
   2265 
   2266         Performance improvements in the x64 backend.
   2267 
   2268 
   2269 2010-04-28: Version 2.2.6
   2270 
   2271         Added "amd64" as recognized architecture in scons build script
   2272         (by Ryan Dahl <coldredlemur (a] gmail.com>).
   2273 
   2274         Fixed bug in String search and replace with very simple RegExps.
   2275 
   2276         Fixed bug in RegExp containing "\b^".
   2277 
   2278         Performance improvements on all platforms.
   2279 
   2280 
   2281 2010-04-26: Version 2.2.5
   2282 
   2283         Various performance improvements (especially for ARM and x64)
   2284 
   2285         Fixed bug in CPU profiling (http://crbug.com/42137)
   2286 
   2287         Fixed a bug with the natives cache.
   2288 
   2289         Fixed two bugs in the ARM code generator that can cause
   2290         wrong calculations.
   2291 
   2292         Fixed a bug that may cause a wrong result for shift operations.
   2293 
   2294 
   2295 2010-04-21: Version 2.2.4
   2296 
   2297         Fixed warnings on arm on newer GCC versions.
   2298 
   2299         Fixed a number of minor bugs.
   2300 
   2301         Performance improvements on all platforms.
   2302 
   2303 
   2304 2010-04-14: Version 2.2.3
   2305 
   2306         Added stack command and mem command to ARM simulator debugger.
   2307 
   2308         Fixed scons snapshot and ARM build, and Windows X64 build issues.
   2309 
   2310         Performance improvements on all platforms.
   2311 
   2312 
   2313 2010-04-12: Version 2.2.2
   2314 
   2315         Introduced new profiler API.
   2316 
   2317         Fixed random number generator to produce full 32 random bits.
   2318 
   2319 
   2320 2010-04-06: Version 2.2.1
   2321 
   2322         Debugger improvements.
   2323 
   2324         Fixed minor bugs.
   2325 
   2326 
   2327 2010-03-29: Version 2.2.0
   2328 
   2329         Fixed a few minor bugs.
   2330 
   2331         Performance improvements for string operations.
   2332 
   2333 
   2334 2010-03-26: Version 2.1.10
   2335 
   2336         Fixed scons build issues.
   2337 
   2338         Fixed a couple of minor bugs.
   2339 
   2340 
   2341 2010-03-25: Version 2.1.9
   2342 
   2343         Added API support for reattaching a global object to a context.
   2344 
   2345         Extended debugger API with access to the internal debugger context.
   2346 
   2347         Fixed Chromium crashes (issues http://crbug.com/39128 and
   2348         http://crbug.com/39160)
   2349 
   2350 
   2351 2010-03-24: Version 2.1.8
   2352 
   2353         Added fine-grained garbage collection callbacks to the API.
   2354 
   2355         Performance improvements on all platforms.
   2356 
   2357 
   2358 2010-03-22: Version 2.1.7
   2359 
   2360         Fixed issue 650.
   2361 
   2362         Fixed a bug where __proto__ was sometimes enumerated (issue 646).
   2363 
   2364         Performance improvements for arithmetic operations.
   2365 
   2366         Performance improvements for string operations.
   2367 
   2368         Print script name and line number information in stack trace.
   2369 
   2370 
   2371 2010-03-17: Version 2.1.6
   2372 
   2373         Performance improvements for arithmetic operations.
   2374 
   2375         Performance improvements for string operations.
   2376 
   2377 
   2378 2010-03-10: Version 2.1.4
   2379 
   2380         Fixed code cache lookup for keyed IC's (issue http://crbug.com/37853).
   2381 
   2382         Performance improvements on all platforms.
   2383 
   2384 
   2385 2010-03-10: Version 2.1.3
   2386 
   2387         Added API method for context-disposal notifications.
   2388 
   2389         Added API method for accessing elements by integer index.
   2390 
   2391         Added missing implementation of Uint32::Value and Value::IsUint32
   2392         API methods.
   2393 
   2394         Added IsExecutionTerminating API method.
   2395 
   2396         Disabled strict aliasing for GCC 4.4.
   2397 
   2398         Fixed string-concatenation bug (issue 636).
   2399 
   2400         Performance improvements on all platforms.
   2401 
   2402 
   2403 2010-02-23: Version 2.1.2
   2404 
   2405         Fixed a crash bug caused by wrong assert.
   2406 
   2407         Fixed a bug with register names on 64-bit V8 (issue 615).
   2408 
   2409         Performance improvements on all platforms.
   2410 
   2411 
   2412 2010-02-19: Version 2.1.1
   2413 
   2414         [ES5] Implemented Object.defineProperty.
   2415 
   2416         Improved profiler support.
   2417 
   2418         Added SetPrototype method in the public V8 API.
   2419 
   2420         Added GetScriptOrigin and GetScriptLineNumber methods to Function
   2421         objects in the API.
   2422 
   2423         Performance improvements on all platforms.
   2424 
   2425 
   2426 2010-02-03: Version 2.1.0
   2427 
   2428         Values are now always wrapped in objects when used as a receiver.
   2429         (issue 223).
   2430 
   2431         [ES5] Implemented Object.getOwnPropertyNames.
   2432 
   2433         [ES5] Restrict JSON.parse to only accept strings that conforms to the
   2434         JSON grammar.
   2435 
   2436         Improvement of debugger agent (issue 549 and 554).
   2437 
   2438         Fixed problem with skipped stack frame in profiles (issue 553).
   2439 
   2440         Solaris support by Erich Ocean <erich.ocean (a] me.com> and Ryan Dahl
   2441         <ry (a] tinyclouds.org>.
   2442 
   2443         Fixed a bug that Math.round() returns incorrect results for huge
   2444         integers.
   2445 
   2446         Fixed enumeration order for objects created from some constructor
   2447         functions (isue http://crbug.com/3867).
   2448 
   2449         Fixed arithmetic on some integer constants (issue 580).
   2450 
   2451         Numerous performance improvements including porting of previous IA-32
   2452         optimizations to x64 and ARM architectures.
   2453 
   2454 
   2455 2010-01-14: Version 2.0.6
   2456 
   2457         Added ES5 Object.getPrototypeOf, GetOwnPropertyDescriptor,
   2458         GetOwnProperty, FromPropertyDescriptor.
   2459 
   2460         Fixed Mac x64 build errors.
   2461 
   2462         Improved performance of some math and string operations.
   2463 
   2464         Improved performance of some regexp operations.
   2465 
   2466         Improved performance of context creation.
   2467 
   2468         Improved performance of hash tables.
   2469 
   2470 
   2471 2009-12-18: Version 2.0.5
   2472 
   2473         Extended to upper limit of map space to allow for 7 times as many map
   2474         to be allocated (issue 524).
   2475 
   2476         Improved performance of code using closures.
   2477 
   2478         Improved performance of some binary operations involving doubles.
   2479 
   2480 
   2481 2009-12-16: Version 2.0.4
   2482 
   2483         Added ECMAScript 5 Object.create.
   2484 
   2485         Improved performance of Math.max and Math.min.
   2486 
   2487         Optimized adding of strings on 64-bit platforms.
   2488 
   2489         Improved handling of external strings by using a separate table
   2490         instead of weak handles.  This improves garbage collection
   2491         performance and uses less memory.
   2492 
   2493         Changed code generation for object and array literals in toplevel
   2494         code to be more compact by doing more work in the runtime.
   2495 
   2496         Fixed a crash bug triggered when garbage collection happened during
   2497         generation of a callback load inline cache stub.
   2498 
   2499         Fixed crash bug sometimes triggered when local variables shadowed
   2500         parameters in functions that used the arguments object.
   2501 
   2502 
   2503 2009-12-03: Version 2.0.3
   2504 
   2505         Optimized handling and adding of strings, for-in and Array.join.
   2506 
   2507         Heap serialization is now non-destructive.
   2508 
   2509         Improved profiler support with information on time spend in C++
   2510         callbacks registered through the API.
   2511 
   2512         Added commands to the debugger protocol for starting/stopping
   2513         profiling.
   2514 
   2515         Enabled the non-optimizing compiler for top-level code.
   2516 
   2517         Changed the API to only allow strings to be set as data objects on
   2518         Contexts and scripts to avoid potentially keeping global objects
   2519         around for too long (issue 528).
   2520 
   2521         OpenBSD support patch by Peter Valchev <pvalchev (a] gmail.com>.
   2522 
   2523         Fixed bugs.
   2524 
   2525 
   2526 2009-11-24: Version 2.0.2
   2527 
   2528         Improved profiler support.
   2529 
   2530         Fixed bug that broke compilation of d8 with readline support.
   2531 
   2532 
   2533 2009-11-20: Version 2.0.1
   2534 
   2535         Fixed crash bug in String.prototype.replace.
   2536 
   2537         Reverted a change which caused Chromium interactive ui test
   2538         failures.
   2539 
   2540 
   2541 2009-11-18: Version 2.0.0
   2542 
   2543         Added support for VFP on ARM.
   2544 
   2545         Added TryCatch::ReThrow method to the API.
   2546 
   2547         Reduced the size of snapshots and improved the snapshot load time.
   2548 
   2549         Improved heap profiler support.
   2550 
   2551         64-bit version now supported on Windows.
   2552 
   2553         Fixed a number of debugger issues.
   2554 
   2555         Fixed bugs.
   2556 
   2557 
   2558 2009-10-29: Version 1.3.18
   2559 
   2560         Reverted a change which caused crashes in RegExp replace.
   2561 
   2562         Reverted a change which caused Chromium ui_tests failure.
   2563 
   2564 
   2565 2009-10-28: Version 1.3.17
   2566 
   2567         Added API method to get simple heap statistics.
   2568 
   2569         Improved heap profiler support.
   2570 
   2571         Fixed the implementation of the resource constraint API so it
   2572         works when using snapshots.
   2573 
   2574         Fixed a number of issues in the Windows 64-bit version.
   2575 
   2576         Optimized calls to API getters.
   2577 
   2578         Added valgrind notification on code modification to the 64-bit version.
   2579 
   2580         Fixed issue where we logged shared library addresses on Windows at
   2581         startup and never used them.
   2582 
   2583 
   2584 2009-10-16: Version 1.3.16
   2585 
   2586         X64: Convert smis to holding 32 bits of payload.
   2587 
   2588         Introduced v8::Integer::NewFromUnsigned method.
   2589 
   2590         Added missing null check in Context::GetCurrent.
   2591 
   2592         Added trim, trimLeft and trimRight methods to String
   2593         Patch by Jan de Mooij <jandemooij (a] gmail.com>
   2594 
   2595         Implement ES5 Array.isArray
   2596         Patch by Jan de Mooij <jandemooij (a] gmail.com>
   2597 
   2598         Skip access checks for hidden properties.
   2599 
   2600         Added String::Concat(Handle<String> left, Handle<String> right) to the
   2601         V8 API.
   2602 
   2603         Fixed GYP-based builds of V8.
   2604 
   2605 
   2606 2009-10-07: Version 1.3.15
   2607 
   2608         Expanded the maximum size of the code space to 512MB for 64-bit mode.
   2609 
   2610         Fixed a crash bug happening when starting profiling (issue
   2611         http://crbug.com/23768).
   2612 
   2613 
   2614 2009-10-07: Version 1.3.14
   2615 
   2616         Added GetRealNamedProperty to the API to lookup real properties
   2617         located on the object or in the prototype chain skipping any
   2618         interceptors.
   2619 
   2620         Fixed the stack limits setting API to work correctly with threads. The
   2621         stack limit now needs to be set to each thread thich is used with V8.
   2622 
   2623         Removed the high-priority flag from IdleNotification()
   2624 
   2625         Ensure V8 is initialized before locking and unlocking threads.
   2626 
   2627         Implemented a new JavaScript minifier for compressing the source of
   2628         the built-in JavaScript. This removes non-Open Source code from Douglas
   2629         Crockford from the project.
   2630 
   2631         Added a missing optimization in StringCharAt.
   2632 
   2633         Fixed some flaky socket tests.
   2634 
   2635         Change by Alexander Botero-Lowry to fix profiler sampling on FreeBSD
   2636         in 64-bit mode.
   2637 
   2638         Fixed memory leaks in the thread management code.
   2639 
   2640         Fixed the result of assignment to a pixel array. The assigned value
   2641         is now the result.
   2642 
   2643         Error reporting for invalid left-hand sides in for-in statements, pre-
   2644         and postfix count expressions, and assignments now matches the JSC
   2645         behavior in Safari 4.
   2646 
   2647         Follow the spec in disallowing function declarations without a name.
   2648 
   2649         Always allocate code objects within a 2 GB range. On x64 architecture
   2650         this is used to use near calls (32-bit displacement) in Code objects.
   2651 
   2652         Optimized array construction ported to x64 and ARM architectures.
   2653 
   2654         [ES5] Changed Object.keys to return strings for element indices.
   2655 
   2656 
   2657 2009-09-23: Version 1.3.13
   2658 
   2659         Fixed uninitialized memory problem.
   2660 
   2661         Improved heap profiler support.
   2662 
   2663 
   2664 2009-09-22: Version 1.3.12
   2665 
   2666         Changed behavior of |function|.toString() on built-in functions to
   2667         be compatible with other implementations.  Patch by Jan de Mooij.
   2668 
   2669         Added Object::IsDirty in the API.
   2670 
   2671         Optimized array construction; it is now handled purely in native
   2672         code.
   2673 
   2674         [ES5] Made properties of the arguments array enumerable.
   2675 
   2676         [ES5] Added test suite adapter for the es5conform test suite.
   2677 
   2678         [ES5] Added Object.keys function.
   2679 
   2680 
   2681 2009-09-15: Version 1.3.11
   2682 
   2683         Fixed crash in error reporting during bootstrapping.
   2684 
   2685         Optimized generated IA32 math code by using SSE2 instructions when
   2686         available.
   2687 
   2688         Implemented missing pieces of debugger infrastructure on ARM.  The
   2689         debugger is now fully functional on ARM.
   2690 
   2691         Made 'hidden' the default visibility for gcc.
   2692 
   2693 
   2694 2009-09-09: Version 1.3.10
   2695 
   2696         Fixed profiler on Mac in 64-bit mode.
   2697 
   2698         Optimized creation of objects from simple constructor functions on
   2699         ARM.
   2700 
   2701         Fixed a number of debugger issues.
   2702 
   2703         Reduced the amount of memory consumed by V8.
   2704 
   2705 
   2706 2009-09-02: Version 1.3.9
   2707 
   2708         Optimized stack guard checks on ARM.
   2709 
   2710         Optimized API operations by inlining more in the API.
   2711 
   2712         Optimized creation of objects from simple constructor functions.
   2713 
   2714         Enabled a number of missing optimizations in the 64-bit port.
   2715 
   2716         Implemented native-code support for regular expressions on ARM.
   2717 
   2718         Stopped using the 'sahf' instruction on 64-bit machines that do
   2719         not support it.
   2720 
   2721         Fixed a bug in the support for forceful termination of JavaScript
   2722         execution.
   2723 
   2724 
   2725 2009-08-26: Version 1.3.8
   2726 
   2727         Changed the handling of idle notifications to allow idle
   2728         notifications when V8 has not yet been initialized.
   2729 
   2730         Fixed ARM simulator compilation problem on Windows.
   2731 
   2732 
   2733 2009-08-25: Version 1.3.7
   2734 
   2735         Reduced the size of generated code on ARM platforms by reducing
   2736         the size of constant pools.
   2737 
   2738         Changed build files to not include the 'ENV' user environment
   2739         variable in the build environment.
   2740 
   2741         Changed the handling of idle notifications.
   2742 
   2743 
   2744 2009-08-21: Version 1.3.6
   2745 
   2746         Added support for forceful termination of JavaScript execution.
   2747 
   2748         Added low memory notification to the API. The embedding host can signal
   2749         a low memory situation to V8.
   2750 
   2751         Changed the handling of global handles (persistent handles in the API
   2752         sense) to avoid issues regarding allocation of new global handles
   2753         during weak handle callbacks.
   2754 
   2755         Changed the growth policy of the young space.
   2756 
   2757         Fixed a GC issue introduced in version 1.3.5.
   2758 
   2759 
   2760 2009-08-19: Version 1.3.5
   2761 
   2762         Optimized initialization of some arrays in the builtins.
   2763 
   2764         Fixed mac-nm script to support filenames with spaces.
   2765 
   2766         Support for using the V8 profiler when V8 is embedded in a Windows DLL.
   2767 
   2768         Changed typeof RegExp from 'object' to 'function' for compatibility.
   2769         Fixed bug where regexps were not callable across contexts.
   2770 
   2771         Added context independent script compilation to the API.
   2772 
   2773         Added API call to get the stack trace for an exception.
   2774 
   2775         Added API for getting object mirrors.
   2776 
   2777         Made sure that SSE3 instructions are used whenever possible even when
   2778         running off a snapshot generated without using SSE3 instructions.
   2779 
   2780         Tweaked the handling of the initial size and growth policy of the heap.
   2781 
   2782         Added native code generation for RegExp to 64-bit version.
   2783 
   2784         Added JavaScript debugger support to 64-bit version.
   2785 
   2786 
   2787 2009-08-13: Version 1.3.4
   2788 
   2789         Added a readline() command to the d8 shell.
   2790 
   2791         Fixed bug in json parsing.
   2792 
   2793         Added idle notification to the API and reduced memory on idle
   2794         notifications.
   2795 
   2796 
   2797 2009-08-12: Version 1.3.3
   2798 
   2799         Fixed issue 417: incorrect %t placeholder expansion.
   2800 
   2801         Added .gitignore file similar to Chromium's one.
   2802 
   2803         Fixed SConstruct file to build with new logging code for Android.
   2804 
   2805         API: added function to find instance of template in prototype
   2806         chain.  Inlined Object::IsInstanceOf.
   2807 
   2808         Land change to notify valgrind when we modify code on x86.
   2809 
   2810         Added api call to determine whether a string can be externalized.
   2811 
   2812         Added a write() command to d8.
   2813 
   2814 
   2815 2009-08-05: Version 1.3.2
   2816 
   2817         Started new compiler infrastructure for two-pass compilation using a
   2818         control flow graph constructed from the AST.
   2819 
   2820         Profiler stack sampling for X64.
   2821 
   2822         Safe handling of NaN to Posix platform-dependent time functions.
   2823 
   2824         Added a new profiler control API to unify controlling various aspects
   2825         of profiling.
   2826 
   2827         Fixed issue 392.
   2828 
   2829 
   2830 2009-07-30: Version 1.3.1
   2831 
   2832         Speed improvements to accessors and interceptors.
   2833 
   2834         Added support for capturing stack information on custom errors.
   2835 
   2836         Added support for morphing an object into a pixel array where its
   2837         indexed properties are stored in an external byte array. Values written
   2838         are always clamped to the 0..255 interval.
   2839 
   2840         Profiler on x64 now handles C/C++ functions from shared libraries.
   2841 
   2842         Changed the debugger to avoid stepping into function.call/apply if the
   2843         function is a built-in.
   2844 
   2845         Initial implementation of constructor heap profile for JS objects.
   2846 
   2847         More fine grained control of profiling aspects through the API.
   2848 
   2849         Optimized the called as constructor check for API calls.
   2850 
   2851 
   2852 2009-07-27: Version 1.3.0
   2853 
   2854         Allowed RegExp objects to be called as functions (issue 132).
   2855 
   2856         Fixed issue where global property cells would escape after
   2857         detaching the global object; see http://crbug.com/16276.
   2858 
   2859         Added support for stepping into setters and getters in the
   2860         debugger.
   2861 
   2862         Changed the debugger to avoid stopping in its own JavaScript code
   2863         and in the code of built-in functions.
   2864 
   2865         Fixed issue 345 by avoiding duplicate escaping labels.
   2866 
   2867         Fixed ARM code generator crash in short-circuited boolean
   2868         expressions and added regression tests.
   2869 
   2870         Added an external allocation limit to avoid issues where small V8
   2871         objects would hold on to large amounts of external memory without
   2872         causing garbage collections.
   2873 
   2874         Finished more of the inline caching stubs for x64 targets.
   2875 
   2876 
   2877 2009-07-13: Version 1.2.14
   2878 
   2879         Added separate paged heap space for global property cells and
   2880         avoid updating the write barrier when storing into them.
   2881 
   2882         Improved peep-hole optimization on ARM platforms by not emitting
   2883         unnecessary debug information.
   2884 
   2885         Re-enabled ICs for loads and calls that skip a global object
   2886         during lookup through the prototype chain.
   2887 
   2888         Allowed access through global proxies to use ICs.
   2889 
   2890         Fixed issue 401.
   2891 
   2892 
   2893 2009-07-09: Version 1.2.13
   2894 
   2895         Fixed issue 397, issue 398, and issue 399.
   2896 
   2897         Added support for breakpoint groups.
   2898 
   2899         Fixed bugs introduced with the new global object representation.
   2900 
   2901         Fixed a few bugs in the ARM code generator.
   2902 
   2903 
   2904 2009-07-06: Version 1.2.12
   2905 
   2906         Added stack traces collection to Error objects accessible through
   2907         the e.stack property.
   2908 
   2909         Changed RegExp parser to use a recursive data structure instead of
   2910         stack-based recursion.
   2911 
   2912         Optimized Date object construction and string concatenation.
   2913 
   2914         Improved performance of div, mod, and mul on ARM platforms.
   2915 
   2916 
   2917 2009-07-02: Version 1.2.11
   2918 
   2919         Improved performance on IA-32 and ARM.
   2920 
   2921         Fixed profiler sampler implementation on Mac OS X.
   2922 
   2923         Changed the representation of global objects to improve
   2924         performance of adding a lot of new properties.
   2925 
   2926 
   2927 2009-06-29: Version 1.2.10
   2928 
   2929         Improved debugger support.
   2930 
   2931         Fixed bug in exception message reporting (issue 390).
   2932 
   2933         Improved overall performance.
   2934 
   2935 
   2936 2009-06-23: Version 1.2.9
   2937 
   2938         Improved math performance on ARM.
   2939 
   2940         Fixed profiler name-inference bug.
   2941 
   2942         Fixed handling of shared libraries in the profiler tick processor
   2943         scripts.
   2944 
   2945         Fixed handling of tests that time out in the test scripts.
   2946 
   2947         Fixed compilation on MacOS X version 10.4.
   2948 
   2949         Fixed two bugs in the regular expression engine.
   2950 
   2951         Fixed a bug in the string type inference.
   2952 
   2953         Fixed a bug in the handling of 'constant function' properties.
   2954 
   2955         Improved overall performance.
   2956 
   2957 
   2958 2009-06-16: Version 1.2.8
   2959 
   2960         Optimized math on ARM platforms.
   2961 
   2962         Fixed two crash bugs in the handling of getters and setters.
   2963 
   2964         Improved the debugger support by adding scope chain information.
   2965 
   2966         Improved the profiler support by compressing log data transmitted
   2967         to clients.
   2968 
   2969         Improved overall performance.
   2970 
   2971 
   2972 2009-06-08: Version 1.2.7
   2973 
   2974         Improved debugger and profiler support.
   2975 
   2976         Reduced compilation time by improving the handling of deferred
   2977         code.
   2978 
   2979         Optimized interceptor accesses where the property is on the object
   2980         on which the interceptors is attached.
   2981 
   2982         Fixed compilation problem on GCC 4.4 by changing the stack
   2983         alignment to 16 bytes.
   2984 
   2985         Fixed handle creation to follow stric aliasing rules.
   2986 
   2987         Fixed compilation on FreeBSD.
   2988 
   2989         Introduced API for forcing the deletion of a property ignoring
   2990         interceptors and attributes.
   2991 
   2992 
   2993 2009-05-29: Version 1.2.6
   2994 
   2995         Added a histogram recording hit rates at different levels of the
   2996         compilation cache.
   2997 
   2998         Added stack overflow check for the RegExp analysis phase. Previously a
   2999         very long regexp graph could overflow the stack with recursive calls.
   3000 
   3001         Use a dynamic buffer when collecting log events in memory.
   3002 
   3003         Added start/stop events to the profiler log.
   3004 
   3005         Fixed infinite loop which could happen when setting a debug break while
   3006         executing a RegExp compiled to native code.
   3007 
   3008         Fixed handling of lastIndexOf called with negative index (issue 351).
   3009 
   3010         Fixed irregular crash in profiler test (issue 358).
   3011 
   3012         Fixed compilation issues with some versions of gcc.
   3013 
   3014 
   3015 2009-05-26: Version 1.2.5
   3016 
   3017         Fixed bug in initial boundary check for Boyer-Moore text
   3018         search (issue 349).
   3019 
   3020         Fixed compilation issues with MinGW and gcc 4.3+ and added support
   3021         for armv7 and cortex-a8 architectures.  Patches by Lei Zhang and
   3022         Craig Schlenter.
   3023 
   3024         Added a script cache to the debugger.
   3025 
   3026         Optimized compilation performance by improving internal data
   3027         structures and avoiding expensive property load optimizations for
   3028         code that's infrequently executed.
   3029 
   3030         Exposed the calling JavaScript context through the static API
   3031         function Context::GetCalling().
   3032 
   3033 
   3034 2009-05-18: Version 1.2.4
   3035 
   3036         Improved performance of floating point number allocation for ARM
   3037         platforms.
   3038 
   3039         Fixed crash when using the instanceof operator on functions with
   3040         number values in their prototype chain (issue 341).
   3041 
   3042         Optimized virtual frame operations in the code generator to speed
   3043         up compilation time and allocated the frames in the zone.
   3044 
   3045         Made the representation of virtual frames and jump targets in the
   3046         code generator much more compact.
   3047 
   3048         Avoided linear search for non-locals in scope code when resolving
   3049         variables inside with and eval scopes.
   3050 
   3051         Optimized lexical scanner by dealing with whitespace as part of
   3052         the token scanning instead of as a separate step before it.
   3053 
   3054         Changed the scavenging collector so that promoted objects do not
   3055         reside in the old generation while their remembered set is being
   3056         swept for pointers into the young generation.
   3057 
   3058         Fixed numeric overflow handling when compiling count operations.
   3059 
   3060 
   3061 2009-05-11: Version 1.2.3
   3062 
   3063         Fixed bug in reporting of out-of-memory situations.
   3064 
   3065         Introduced hidden prototypes on certain builtin prototype objects
   3066         such as String.prototype to emulate JSC's behavior of restoring
   3067         the original function when deleting functions from those prototype
   3068         objects.
   3069 
   3070         Fixed crash bug in the register allocator.
   3071 
   3072 
   3073 2009-05-04: Version 1.2.2
   3074 
   3075         Fixed bug in array sorting for sparse arrays (issue 326).
   3076 
   3077         Added support for adding a soname when building a shared library
   3078         on Linux (issue 151).
   3079 
   3080         Fixed bug caused by morphing internal ASCII strings to external
   3081         two-byte strings.  Slices over ASCII strings have to forward ASCII
   3082         checks to the underlying buffer string.
   3083 
   3084         Allowed API call-as-function handlers to be called as
   3085         constructors.
   3086 
   3087         Fixed a crash bug where an external string was disposed but a
   3088         slice of the external string survived as a symbol.
   3089 
   3090 
   3091 2009-04-27: Version 1.2.1
   3092 
   3093         Added EcmaScript 5 JSON object.
   3094 
   3095         Fixed bug in preemption support on ARM.
   3096 
   3097 
   3098 2009-04-23: Version 1.2.0
   3099 
   3100         Optimized floating-point operations on ARM.
   3101 
   3102         Added a number of extensions to the debugger API.
   3103 
   3104         Changed the enumeration order for unsigned integer keys to always
   3105         be numerical order.
   3106 
   3107         Added a "read" extension to the shell sample.
   3108 
   3109         Added support for Array.prototype.reduce and
   3110         Array.prototype.reduceRight.
   3111 
   3112         Added an option to the SCons build to control Microsoft Visual C++
   3113         link-time code generation.
   3114 
   3115         Fixed a number of bugs (in particular issue 315, issue 316,
   3116         issue 317 and issue 318).
   3117 
   3118 
   3119 2009-04-15: Version 1.1.10
   3120 
   3121         Fixed crash bug that occurred when loading a const variable in the
   3122         presence of eval.
   3123 
   3124         Allowed using with and eval in registered extensions in debug mode
   3125         by fixing bogus assert.
   3126 
   3127         Fixed the source position for function returns to enable the
   3128         debugger to break there.
   3129 
   3130 
   3131 2009-04-14: Version 1.1.9
   3132 
   3133         Made the stack traversal code in the profiler robust by avoiding
   3134         to look into the heap.
   3135 
   3136         Added name inferencing for anonymous functions to facilitate
   3137         debugging and profiling.
   3138 
   3139         Re-enabled stats timers in the developer shell (d8).
   3140 
   3141         Fixed issue 303 by avoiding to shortcut cons-symbols.
   3142 
   3143 
   3144 2009-04-11: Version 1.1.8
   3145 
   3146         Changed test-debug/ThreadedDebugging to be non-flaky (issue 96).
   3147 
   3148         Fixed step-in handling for Function.prototype.apply and call in
   3149         the debugger (issue 269).
   3150 
   3151         Fixed v8::Object::DeleteHiddenValue to not bail out when there
   3152         are no hidden properties.
   3153 
   3154         Added workaround for crash bug, where external symbol table
   3155         entries with deleted resources would lead to NPEs when looking
   3156         up in the symbol table.
   3157 
   3158 
   3159 2009-04-07: Version 1.1.7
   3160 
   3161         Added support for easily importing additional environment
   3162         variables into the SCons build.
   3163 
   3164         Optimized strict equality checks.
   3165 
   3166         Fixed crash in indexed setters on objects without a corresponding
   3167         getter (issue 298).
   3168 
   3169         Re-enabled script compilation cache.
   3170 
   3171 
   3172 2009-04-01: Version 1.1.6
   3173 
   3174         Reverted an unsafe code generator change.
   3175 
   3176 
   3177 2009-04-01: Version 1.1.5
   3178 
   3179         Fixed bug that caused function literals to not be optimized as
   3180         much as other functions.
   3181 
   3182         Improved profiler support.
   3183 
   3184         Fixed a crash bug in connection with debugger unloading.
   3185 
   3186         Fixed a crash bug in the code generator caused by losing the
   3187         information that a frame element was copied.
   3188 
   3189         Fixed an exception propagation bug that could cause non-null
   3190         return values when exceptions were thrown.
   3191 
   3192 
   3193 2009-03-30: Version 1.1.4
   3194 
   3195         Optimized String.prototype.match.
   3196 
   3197         Improved the stack information in profiles.
   3198 
   3199         Fixed bug in ARM port making it possible to compile the runtime
   3200         system for thumb mode again.
   3201 
   3202         Implemented a number of optimizations in the code generator.
   3203 
   3204         Fixed a number of memory leaks in tests.
   3205 
   3206         Fixed crash bug in connection with script source code and external
   3207         strings.
   3208 
   3209 
   3210 2009-03-24: Version 1.1.3
   3211 
   3212         Fixed assertion failures in compilation of loop conditions.
   3213 
   3214         Removed STL dependency from developer shell (d8).
   3215 
   3216         Added infrastructure for protecting the V8 heap from corruption
   3217         caused by memory modifications from the outside.
   3218 
   3219 
   3220 2009-03-24: Version 1.1.2
   3221 
   3222         Improved frame merge code generated by the code generator.
   3223 
   3224         Optimized String.prototype.replace.
   3225 
   3226         Implemented __defineGetter__ and __defineSetter__ for properties
   3227         with integer keys on non-array objects.
   3228 
   3229         Improved debugger and profiler support.
   3230 
   3231         Fixed a number of portability issues to allow compilation for
   3232         smaller ARM devices.
   3233 
   3234         Exposed object cloning through the API.
   3235 
   3236         Implemented hidden properties.  This is used to expose an identity
   3237         hash for objects through the API.
   3238 
   3239         Implemented restarting of regular expressions if their input
   3240         string changes representation during preemption.
   3241 
   3242         Fixed a code generator bug that could cause assignments in loops
   3243         to be ignored if using continue to break out of the loop (issue
   3244         284).
   3245 
   3246 
   3247 2009-03-12: Version 1.1.1
   3248 
   3249         Fixed an assertion in the new compiler to take stack overflow
   3250         exceptions into account.
   3251 
   3252         Removed exception propagation code that could cause crashes.
   3253 
   3254         Fixed minor bug in debugger line number computations.
   3255 
   3256         8-byte align the C stack on Linux and Windows to speed up floating
   3257         point computations.
   3258 
   3259 
   3260 2009-03-12: Version 1.1.0
   3261 
   3262         Improved code generation infrastructure by doing simple register
   3263         allocation and constant folding and propagation.
   3264 
   3265         Optimized regular expression matching by avoiding to create
   3266         intermediate string arrays and by flattening nested array
   3267         representations of RegExp data.
   3268 
   3269         Traverse a few stack frames when recording profiler samples to
   3270         include partial call graphs in the profiling output.
   3271 
   3272         Added support for using OProfile to profile generated code.
   3273 
   3274         Added remote debugging support to the D8 developer shell.
   3275 
   3276         Optimized creation of nested literals like JSON objects.
   3277 
   3278         Fixed a bug in garbage collecting unused maps and turned it on by
   3279         default (--collect-maps).
   3280 
   3281         Added support for running tests under Valgrind.
   3282 
   3283 
   3284 2009-02-27: Version 1.0.3
   3285 
   3286         Optimized double-to-integer conversions in bit operations by using
   3287         SSE3 instructions if available.
   3288 
   3289         Optimized initialization sequences that store to multiple
   3290         properties of the same object.
   3291 
   3292         Changed the D8 debugger frontend to use JSON messages.
   3293 
   3294         Force garbage collections when disposing contexts.
   3295 
   3296         Align code objects at 32-byte boundaries.
   3297 
   3298 
   3299 2009-02-25: Version 1.0.2
   3300 
   3301         Improved profiling support by performing simple call stack
   3302         sampling for ticks and by fixing a bug in the logging of code
   3303         addresses.
   3304 
   3305         Fixed a number of debugger issues.
   3306 
   3307         Optimized code that uses eval.
   3308 
   3309         Fixed a couple of bugs in the regular expression engine.
   3310 
   3311         Reduced the size of generated code for certain regular expressions.
   3312 
   3313         Removed JSCRE completely.
   3314 
   3315         Fixed issue where test could not be run if there was a dot in the
   3316         checkout path.
   3317 
   3318 
   3319 2009-02-13: Version 1.0.1
   3320 
   3321         Fixed two crash-bugs in irregexp (issue 231 and 233).
   3322 
   3323         Fixed a number of minor bugs (issue 87, 227 and 228).
   3324 
   3325         Added support for morphing strings to external strings on demand
   3326         to avoid having to create copies in the embedding code.
   3327 
   3328         Removed experimental support for external symbol callbacks.
   3329 
   3330 
   3331 2009-02-09: Version 1.0.0
   3332 
   3333         Fixed crash-bug in the code generation for case independent 16 bit
   3334         backreferences.
   3335 
   3336         Made shells more robust in the presence of string conversion
   3337         failures (issue 224).
   3338 
   3339         Fixed a potential infinite loop when attempting to resolve
   3340         eval (issue 221).
   3341 
   3342         Miscellaneous fixes to the new regular expression engine.
   3343 
   3344         Reduced binary by stripping unneeded text from JavaScript library and
   3345         minifying some JavaScript files.
   3346 
   3347 
   3348 2009-01-27: Version 0.4.9
   3349 
   3350         Enabled new regular expression engine.
   3351 
   3352         Made a number of changes to the debugger protocol.
   3353 
   3354         Fixed a number of bugs in the preemption support.
   3355 
   3356         Added -p option to the developer shell to run files in parallel
   3357         using preemption.
   3358 
   3359         Fixed a number of minor bugs (including issues 176, 187, 189, 192,
   3360         193, 198 and 201).
   3361 
   3362         Fixed a number of bugs in the serialization/deserialization
   3363         support for the ARM platform.
   3364 
   3365 
   3366 2009-01-19: Version 0.4.8.1
   3367 
   3368         Minor patch to debugger support.
   3369 
   3370 
   3371 2009-01-16: Version 0.4.8
   3372 
   3373         Fixed string length bug on ARM (issue 171).
   3374 
   3375         Made most methods in the API const.
   3376 
   3377         Optimized object literals by improving data locality.
   3378 
   3379         Fixed bug that caused incomplete functions to be cached in case of
   3380         stack overflow exceptions.
   3381 
   3382         Fixed bugs that caused catch variables and variables introduced by
   3383         eval to behave incorrectly when using accessors (issues 186, 190
   3384         and 191).
   3385 
   3386 
   3387 2009-01-06: Version 0.4.7
   3388 
   3389         Minor bugfixes and optimizations.
   3390 
   3391         Added command line debugger to D8 shell.
   3392 
   3393         Fixed subtle bug that caused the wrong 'this' to be used when
   3394         calling a caught function in a catch clause.
   3395 
   3396         Inline array loads within loops directly in the code instead of
   3397         always calling a stub.
   3398 
   3399 
   3400 2008-12-11: Version 0.4.6
   3401 
   3402         Fixed exception reporting bug where certain exceptions were
   3403         incorrectly reported as uncaught.
   3404 
   3405         Improved the memory allocation strategy used during compilation to
   3406         make running out of memory when compiling huge scripts less
   3407         likely.
   3408 
   3409         Optimized String.replace by avoiding the construction of certain
   3410         sub strings.
   3411 
   3412         Fixed bug in code generation for large switch statements on ARM.
   3413 
   3414         Fixed bug that caused V8 to change the global object template
   3415         passed in by the user.
   3416 
   3417         Changed the API for creating object groups used during garbage
   3418         collection.  Entire object groups are now passed to V8 instead of
   3419         individual members of the groups.
   3420 
   3421 
   3422 2008-12-03: Version 0.4.5
   3423 
   3424         Added experimental API support for allocating V8 symbols as
   3425         external strings.
   3426 
   3427         Fixed bugs in debugging support on ARM.
   3428 
   3429         Changed eval implementation to correctly detect whether or not a
   3430         call to eval is aliased.
   3431 
   3432         Fixed bug caused by a combination of the compilation cache and
   3433         dictionary probing in native code.  The bug caused us to sometimes
   3434         call functions that had not yet been compiled.
   3435 
   3436         Added platform support for FreeBSD.
   3437 
   3438         Added support for building V8 on Windows with either the shared or
   3439         static version of MSVCRT
   3440 
   3441         Added the v8::jscre namespace around the jscre functions to avoid
   3442         link errors (duplicate symbols) when building Google Chrome.
   3443 
   3444         Added support for calling a JavaScript function with the current
   3445         debugger execution context as its argument to the debugger
   3446         interface.
   3447 
   3448         Changed the type of names of counters from wchar_t to char.
   3449 
   3450         Changed the Windows system call used to compute daylight savings
   3451         time.  The system call that we used to use became four times
   3452         slower on WinXP SP3.
   3453 
   3454         Added support in the d8 developer shell for memory-mapped counters
   3455         and added a stats-viewer tool.
   3456 
   3457         Fixed bug in upper/lower case mappings (issue 149).
   3458 
   3459 
   3460 2008-11-17: Version 0.4.4
   3461 
   3462         Reduced code size by using shorter instruction encoding when
   3463         possible.
   3464 
   3465         Added a --help option to the shell sample and to the d8 shell.
   3466 
   3467         Added visual studio project files for building the ARM simulator.
   3468 
   3469         Fixed a number of ARM simulator issues.
   3470 
   3471         Fixed bug in out-of-memory handling on ARM.
   3472 
   3473         Implemented shell support for passing arguments to a script from
   3474         the command line.
   3475 
   3476         Fixed bug in date code that made certain date functions return -0
   3477         instead of 0 for dates before the epoch.
   3478 
   3479         Restricted applications of eval so it can only be used in the
   3480         context of the associated global object.
   3481 
   3482         Treat byte-order marks as whitespace characters.
   3483 
   3484 
   3485 2008-11-04: Version 0.4.3
   3486 
   3487         Added support for API accessors that prohibit overwriting by
   3488         accessors defined in JavaScript code by using __defineGetter__ and
   3489         __defineSetter__.
   3490 
   3491         Improved handling of conditionals in test status files.
   3492 
   3493         Introduced access control in propertyIsEnumerable.
   3494 
   3495         Improved performance of some string operations by caching
   3496         information about the type of the string between operations.
   3497 
   3498         Fixed bug in fast-case code for switch statements that only have
   3499         integer labels.
   3500 
   3501 
   3502 2008-10-30: Version 0.4.2
   3503 
   3504         Improved performance of Array.prototype.concat by moving the
   3505         implementation to C++ (issue 123).
   3506 
   3507         Fixed heap growth policy to avoid growing old space to its maximum
   3508         capacity before doing a garbage collection and fixed issue that
   3509         would lead to artificial out of memory situations (issue 129).
   3510 
   3511         Fixed Date.prototype.toLocaleDateString to return the date in the
   3512         same format as WebKit.
   3513 
   3514         Added missing initialization checks to debugger API.
   3515 
   3516         Added removing of unused maps during GC.
   3517 
   3518 
   3519 2008-10-28: Version 0.4.1
   3520 
   3521         Added caching of RegExp data in compilation cache.
   3522 
   3523         Added Visual Studio project file for d8 shell.
   3524 
   3525         Fixed function call performance regression introduced in version
   3526         0.4.0 when splitting the global object in two parts (issue 120).
   3527 
   3528         Fixed issue 131 by checking for empty handles before throwing and
   3529         reporting exceptions.
   3530 
   3531 
   3532 2008-10-23: Version 0.4.0
   3533 
   3534         Split the global object into two parts: The state holding global
   3535         object and the global object proxy.
   3536 
   3537         Fixed bug that affected the value of an assignment to an element
   3538         in certain cases (issue 116).
   3539 
   3540         Added GetPropertyNames functionality (issue 33) and extra Date
   3541         functions (issue 77) to the API.
   3542 
   3543         Changed WeakReferenceCallback to take a Persistent<Value> instead
   3544         of a Persistent<Object> (issue 101).
   3545 
   3546         Fixed issues with message reporting for exceptions in try-finally
   3547         blocks (issues 73 and 75).
   3548 
   3549         Optimized flattening of strings and string equality checking.
   3550 
   3551         Improved Boyer-Moore implementation for faster indexOf operations.
   3552 
   3553         Added development shell (d8) which includes counters and
   3554         completion support.
   3555 
   3556         Fixed problem with the receiver passed to functions called from
   3557         eval (issue 124).
   3558 
   3559 
   3560 2008-10-16: Version 0.3.5
   3561 
   3562         Improved string hash-code distribution by excluding bit-field bits
   3563         from the hash-code.
   3564 
   3565         Changed string search algorithm used in indexOf from KMP to
   3566         Boyer-Moore.
   3567 
   3568         Improved the generated code for the instanceof operator.
   3569 
   3570         Improved performance of slow-case string equality checks by
   3571         specializing the code based on the string representation.
   3572 
   3573         Improve the handling of out-of-memory situations (issue 70).
   3574 
   3575         Improved performance of strict equality checks.
   3576 
   3577         Improved profiler output to make it easier to see anonymous
   3578         functions.
   3579 
   3580         Improved performance of slow-case keyed loads.
   3581 
   3582         Improved property access performance by allocating a number of
   3583         properties in the front object.
   3584 
   3585         Changed the toString behavior on the built-in object constructors
   3586         to print [native code] instead of the actual source.  Some web
   3587         applications do not like constructors with complex toString
   3588         results.
   3589 
   3590 
   3591 2008-10-06: Version 0.3.4
   3592 
   3593         Changed Array.prototype.sort to use quick sort.
   3594 
   3595         Fixed code generation issue where leaving a finally block with
   3596         break or continue would accumulate elements on the expression
   3597         stack (issue 86).
   3598 
   3599         Made sure that the name accessor on functions returns the expected
   3600         names for builtin JavaScript functions and C++ callback functions.
   3601 
   3602         Added fast case code for extending the property storage array of
   3603         JavaScript objects.
   3604 
   3605         Ported switch statement optimizations introduced in version 0.3.3
   3606         to the ARM code generator.
   3607 
   3608         Allowed GCC to use strict-aliasing rules when compiling.
   3609 
   3610         Improved performance of arguments object allocation by taking care
   3611         of arguments adaptor frames in the generated code.
   3612 
   3613         Updated the V8 benchmark suite to version 2.
   3614 
   3615 
   3616 2008-09-25: Version 0.3.3
   3617 
   3618         Improved handling of relocation information to enable more
   3619         peep-hole optimizations.
   3620 
   3621         Optimized switch statements where all labels are constant small
   3622         integers.
   3623 
   3624         Optimized String.prototype.indexOf for common cases.
   3625 
   3626         Fixed more build issues (issue 80).
   3627 
   3628         Fixed a couple of profiler issues.
   3629 
   3630         Fixed bug where the body of a function created using the Function
   3631         constructor was not allowed to end with a single-line comment
   3632         (issue 85).
   3633 
   3634         Improved handling of object literals by canonicalizing object
   3635         literal maps.  This will allow JSON objects with the same set of
   3636         properties to share the same map making inline caching work better
   3637         for JSON objects.
   3638 
   3639 
   3640 2008-09-17: Version 0.3.2
   3641 
   3642         Generalized the EvalCache into a CompilationCache and enabled it
   3643         for scripts too.  The current strategy is to retire all entries
   3644         whenever a mark-sweep collection is started.
   3645 
   3646         Fixed bug where switch statements containing only a default case
   3647         would lead to an unbalanced stack (issue 69).
   3648 
   3649         Fixed bug that made access to the function in a named function
   3650         expression impossible in certain situations (issue 24).
   3651 
   3652         Fixed even more build issues.
   3653 
   3654         Optimized calling conventions on ARM.  The conventions on ARM and
   3655         IA-32 now match.
   3656 
   3657         Removed static initializers for flags and counters.
   3658 
   3659         Improved inline caching behavior for uncommon cases where lazily
   3660         loading Date and RegExp code could force certain code paths go
   3661         megamorphic.
   3662 
   3663         Removed arguments adaption for builtins written in C++.  This
   3664         makes Array.prototype.push and Array.prototype.pop slightly
   3665         faster.
   3666 
   3667 
   3668 2008-09-11: Version 0.3.1
   3669 
   3670         Fixed a number of build issues.
   3671 
   3672         Fixed problem with missing I-cache flusing on ARM.
   3673 
   3674         Changed space layout in memory management by splitting up
   3675         code space into old data space and code space.
   3676 
   3677         Added utf-8 conversion support to the API (issue 57).
   3678 
   3679         Optimized repeated calls to eval with the same strings.  These
   3680         repeated calls are common in web applications.
   3681 
   3682         Added Xcode project file.
   3683 
   3684         Optimized a couple of Array operation.
   3685 
   3686         Fixed parser bug by checking for end-of-string when parsing break
   3687         and continue (issue 35).
   3688 
   3689         Fixed problem where asian characters were not categorized as
   3690         letters.
   3691 
   3692         Fixed bug that disallowed calling functions fetched from an array
   3693         using a string as an array index (issue 32).
   3694 
   3695         Fixed bug where the internal field count on object templates were
   3696         sometimes ignored (issue 54).
   3697 
   3698         Added -f option to the shell sample for compatibility with other
   3699         engines (issue 18).
   3700 
   3701         Added source info to TryCatches in the API.
   3702 
   3703         Fixed problem where the seed for the random number generator was
   3704         clipped in a double to unsigned int conversion.
   3705 
   3706         Fixed bug where cons string symbols were sometimes converted to
   3707         non-symbol flat strings during GC.
   3708 
   3709         Fixed bug in error reporting when attempting to convert null to an
   3710         object.
   3711 
   3712 
   3713 2008-09-04: Version 0.3.0
   3714 
   3715         Added support for running tests on the ARM simulator.
   3716 
   3717         Fixed bug in the 'in' operator where negative indices were not
   3718         treated correctly.
   3719 
   3720         Fixed build issues on gcc-4.3.1.
   3721 
   3722         Changed Date.prototype.toLocaleTimeString to not print the
   3723         timezone part of the time.
   3724 
   3725         Renamed debug.h to v8-debug.h to reduce the risk of name conflicts
   3726         with user code.
   3727 
   3728 
   3729 2008-09-02: Version 0.2.5
   3730 
   3731         Renamed the top level directory 'public' to 'include'.
   3732 
   3733         Added 'env' option to the SCons build scripts to support
   3734         overriding the ENV part of the build environment.  This is mostly
   3735         to support Windows builds in cases where SCons cannot find the
   3736         correct paths to the Windows SDK, as these paths cannot be passed
   3737         through shell environment variables.
   3738 
   3739         Enabled "Buffer Security Check" on for the Windows SCons build and
   3740         added the linker option /OPT:ICF as an optimization.
   3741 
   3742         Added the V8 benchmark suite to the repository.
   3743 
   3744 
   3745 2008-09-01: Version 0.2.4
   3746 
   3747         Included mjsunit JavaScript test suite and C++ unit tests.
   3748 
   3749         Changed the shell sample to not print the result of executing a
   3750         script provided on the command line.
   3751 
   3752         Fixed issue when building samples on Windows using a shared V8
   3753         library.  Added visibility option on Linux build which makes the
   3754         generated library 18% smaller.
   3755 
   3756         Changed build system to accept multiple build modes in one build
   3757         and generate separate objects, libraries and executables for each
   3758         mode.
   3759 
   3760         Removed deferred negation optimization (a * -b => -(a * b)) since
   3761         this visibly changes operand conversion order.
   3762 
   3763         Improved parsing performance by introducing stack guard in
   3764         preparsing.  Without a stack guard preparsing always bails out
   3765         with stack overflow.
   3766 
   3767         Changed shell sample to take flags directly from the command-line.
   3768         Added API call that implements this.
   3769 
   3770         Added load, quit and version functions to the shell sample so it's
   3771         easier to run benchmarks and tests.
   3772 
   3773         Fixed issue with building samples and cctests on 64-bit machines.
   3774 
   3775         Fixed bug in the runtime system where the prototype chain was not
   3776         always searched for a setter when setting a property that does not
   3777         exist locally.
   3778 
   3779 
   3780 2008-08-14: Version 0.2.3
   3781 
   3782         Improved performance of garbage collection by moving the
   3783         function that updates pointers during compacting collection
   3784         into the updating visitor.  This gives the compiler a better
   3785         chance to inline and avoid a function call per (potential)
   3786         pointer.
   3787 
   3788         Extended the shell sample with a --runtime-flags option.
   3789 
   3790         Added Visual Studio project files for the shell.cc and
   3791         process.cc samples.
   3792 
   3793 
   3794 2008-08-13: Version 0.2.2
   3795 
   3796         Improved performance of garbage collection by changing the way
   3797         we use the marking stack in the event of stack overflow during
   3798         full garbage collection and by changing the way we mark roots.
   3799 
   3800         Cleaned up ARM version by removing top of stack caching and by
   3801         introducing push/pop elimination.
   3802 
   3803         Cleaned up the way runtime functions are called to allow
   3804         runtime calls with no arguments.
   3805 
   3806         Changed Windows build options to make sure that exceptions are
   3807         disabled and that optimization flags are enabled.
   3808 
   3809         Added first version of Visual Studio project files.
   3810 
   3811 
   3812 2008-08-06: Version 0.2.1
   3813 
   3814         Improved performance of unary addition by avoiding runtime calls.
   3815 
   3816         Fixed the handling of '>' and '<=' to use right-to-left conversion
   3817         and left-to-right evaluation as specified by ECMA-262.
   3818 
   3819         Fixed a branch elimination bug on the ARM platform where incorrect
   3820         code was generated because of overly aggressive branch
   3821         elimination.
   3822 
   3823         Improved performance of code that repeatedly assigns the same
   3824         function to the same property of different objects with the same
   3825         map.
   3826 
   3827         Untangled DEBUG and ENABLE_DISASSEMBLER defines.  The disassembler
   3828         no longer expects DEBUG to be defined.
   3829 
   3830         Added platform-nullos.cc to serve as the basis for new platform
   3831         implementations.
   3832 
   3833 
   3834 2008-07-30: Version 0.2.0
   3835 
   3836         Changed all text files to have native svn:eol-style.
   3837 
   3838         Added a few samples and support for building them. The samples
   3839         include a simple shell that can be used to benchmark and test V8.
   3840 
   3841         Changed V8::GetVersion to return the version as a string.
   3842 
   3843         Added source for lazily loaded scripts to snapshots and made
   3844         serialization non-destructive.
   3845 
   3846         Improved ARM support by fixing the write barrier code to use
   3847         aligned loads and stores and by removing premature locals
   3848         optimization that relied on broken support for callee-saved
   3849         registers (removed).
   3850 
   3851         Refactored the code for marking live objects during garbage
   3852         collection and the code for allocating objects in paged
   3853         spaces. Introduced an abstraction for the map word of a heap-
   3854         allocated object and changed the memory allocator to allocate
   3855         executable memory only for spaces that may contain code objects.
   3856 
   3857         Moved StringBuilder to utils.h and ScopedLock to platform.h, where
   3858         they can be used by debugging and logging modules. Added
   3859         thread-safe message queues for dealing with debugger events.
   3860 
   3861         Fixed the source code reported by toString for certain builtin
   3862         empty functions and made sure that the prototype property of a
   3863         function is enumerable.
   3864 
   3865         Improved performance of converting values to condition flags in
   3866         generated code.
   3867 
   3868         Merged disassembler-{arch} files.
   3869 
   3870 
   3871 2008-07-28: Version 0.1.4
   3872 
   3873         Added support for storing JavaScript stack traces in a stack
   3874         allocated buffer to make it visible in shallow core dumps.
   3875         Controlled by the --preallocate-message-memory flag which is
   3876         disabled by default.
   3877 
   3878 
   3879 2008-07-25: Version 0.1.3
   3880 
   3881         Fixed bug in JSObject::GetPropertyAttributePostInterceptor where
   3882         map transitions would count as properties.
   3883 
   3884         Allowed aliased eval invocations by treating them as evals in the
   3885         global context. This may change in the future.
   3886 
   3887         Added support for accessing the last entered context through the
   3888         API and renamed Context::Current to Context::GetCurrent and
   3889         Context::GetSecurityContext to Context::GetCurrentSecurityContext.
   3890 
   3891         Fixed bug in the debugger that would cause the debugger scripts to
   3892         be recursively loaded and changed all disabling of interrupts to
   3893         be block-structured.
   3894 
   3895         Made snapshot data read-only to allow it to be more easily shared
   3896         across multiple users of V8 when linked as a shared library.
   3897 
   3898 
   3899 2008-07-16: Version 0.1.2
   3900 
   3901         Fixed building on Mac OS X by recognizing i386 and friends as
   3902         IA-32 platforms.
   3903 
   3904         Added propagation of stack overflow exceptions that occur while
   3905         compiling nested functions.
   3906 
   3907         Improved debugger with support for recursive break points and
   3908         handling of exceptions that occur in the debugger JavaScript code.
   3909 
   3910         Renamed GetInternal to GetInternalField and SetInternal to
   3911         SetInternalField in the API and moved InternalFieldCount and
   3912         SetInternalFieldCount from FunctionTemplate to ObjectTemplate.
   3913 
   3914 
   3915 2008-07-09: Version 0.1.1
   3916 
   3917         Fixed bug in stack overflow check code for IA-32 targets where a
   3918         non-tagged value in register eax was pushed to the stack.
   3919 
   3920         Fixed potential quadratic behavior when converting strings to
   3921         numbers.
   3922 
   3923         Fixed bug where the return value from Object::SetProperty could
   3924         end up being the property holder instead of the written value.
   3925 
   3926         Improved debugger support by allowing nested break points and by
   3927         dealing with stack-overflows when compiling functions before
   3928         setting break points in them.
   3929 
   3930 
   3931 2008-07-03: Version 0.1.0
   3932 
   3933         Initial export.
   3934 
   3935 # Local Variables:
   3936 # mode:text
   3937 # End:
   3938