Home | History | Annotate | Download | only in v8
      1 2010-02-23: Version 2.1.2
      2 
      3         Fix a crash bug caused by wrong assert.
      4 
      5         Fix a bug with register names on 64-bit V8 (issue 615).
      6 
      7         Performance improvements on all platforms.
      8 
      9 2010-02-19: Version 2.1.1
     10 
     11         [ES5] Implemented Object.defineProperty.
     12 
     13         Improved profiler support.
     14 
     15         Added SetPrototype method in the public V8 API.
     16 
     17         Added GetScriptOrigin and GetScriptLineNumber methods to Function
     18         objects in the API.
     19 
     20         Performance improvements on all platforms.
     21 
     22 
     23 2010-02-03: Version 2.1.0
     24 
     25         Values are now always wrapped in objects when used as a receiver.
     26         (issue 223).
     27 
     28         [ES5] Implemented Object.getOwnPropertyNames.
     29 
     30         [ES5] Restrict JSON.parse to only accept strings that conforms to the
     31         JSON grammar.
     32 
     33         Improvement of debugger agent (issue 549 and 554).
     34 
     35         Fixed problem with skipped stack frame in profiles (issue 553).
     36 
     37         Solaris support by Erich Ocean <erich.ocean (a] me.com> and Ryan Dahl
     38         <ry (a] tinyclouds.org>.
     39 
     40         Fix a bug that Math.round() returns incorrect results for huge
     41         integers.
     42 
     43         Fix enumeration order for objects created from some constructor
     44         functions (isue http://crbug.com/3867).
     45 
     46         Fix arithmetic on some integer constants (issue 580).
     47 
     48         Numerous performance improvements including porting of previous IA-32
     49         optimizations to x64 and ARM architectures.
     50 
     51 
     52 2010-01-14: Version 2.0.6
     53 
     54         Added ES5 Object.getPrototypeOf, GetOwnPropertyDescriptor,
     55         GetOwnProperty, FromPropertyDescriptor.
     56 
     57         Fixed Mac x64 build errors.
     58 
     59         Improved performance of some math and string operations.
     60 
     61         Improved performance of some regexp operations.
     62 
     63         Improved performance of context creation.
     64 
     65         Improved performance of hash tables.
     66 
     67 
     68 2009-12-18: Version 2.0.5
     69 
     70         Extended to upper limit of map space to allow for 7 times as many map
     71         to be allocated (issue 524).
     72 
     73         Improved performance of code using closures.
     74 
     75         Improved performance of some binary operations involving doubles.
     76 
     77 
     78 2009-12-16: Version 2.0.4
     79 
     80         Added ECMAScript 5 Object.create.
     81 
     82         Improved performance of Math.max and Math.min.
     83 
     84         Optimized adding of strings on 64-bit platforms.
     85 
     86         Improved handling of external strings by using a separate table
     87         instead of weak handles.  This improves garbage collection
     88         performance and uses less memory.
     89 
     90         Changed code generation for object and array literals in toplevel
     91         code to be more compact by doing more work in the runtime.
     92 
     93         Fixed a crash bug triggered when garbage collection happened during
     94         generation of a callback load inline cache stub.
     95 
     96         Fixed crash bug sometimes triggered when local variables shadowed
     97         parameters in functions that used the arguments object.
     98 
     99 
    100 2009-12-03: Version 2.0.3
    101 
    102         Optimized handling and adding of strings, for-in and Array.join.
    103 
    104         Heap serialization is now non-destructive.
    105 
    106         Improved profiler support with information on time spend in C++
    107         callbacks registered through the API.
    108 
    109         Added commands to the debugger protocol for starting/stopping
    110         profiling.
    111 
    112         Enabled the non-optimizing compiler for top-level code.
    113 
    114         Changed the API to only allow strings to be set as data objects on
    115         Contexts and scripts to avoid potentially keeping global objects
    116         around for too long (issue 528).
    117 
    118         OpenBSD support patch by Peter Valchev <pvalchev (a] gmail.com>.
    119 
    120         Fixed bugs.
    121 
    122 
    123 2009-11-24: Version 2.0.2
    124 
    125         Improved profiler support.
    126 
    127         Fixed bug that broke compilation of d8 with readline support.
    128 
    129 
    130 2009-11-20: Version 2.0.1
    131 
    132         Fixed crash bug in String.prototype.replace.
    133 
    134         Reverted a change which caused Chromium interactive ui test
    135         failures.
    136 
    137 
    138 2009-11-18: Version 2.0.0
    139 
    140         Added support for VFP on ARM.
    141 
    142         Added TryCatch::ReThrow method to the API.
    143 
    144         Reduced the size of snapshots and improved the snapshot load time.
    145 
    146         Improved heap profiler support.
    147 
    148         64-bit version now supported on Windows.
    149 
    150         Fixed a number of debugger issues.
    151 
    152         Fixed bugs.
    153 
    154 
    155 2009-10-29: Version 1.3.18
    156 
    157         Reverted a change which caused crashes in RegExp replace.
    158 
    159         Reverted a change which caused Chromium ui_tests failure.
    160 
    161 
    162 2009-10-28: Version 1.3.17
    163 
    164         Added API method to get simple heap statistics.
    165 
    166         Improved heap profiler support.
    167 
    168         Fixed the implementation of the resource constraint API so it
    169         works when using snapshots.
    170 
    171         Fixed a number of issues in the Windows 64-bit version.
    172 
    173         Optimized calls to API getters.
    174 
    175         Added valgrind notification on code modification to the 64-bit version.
    176 
    177         Fixed issue where we logged shared library addresses on Windows at
    178         startup and never used them.
    179 
    180 
    181 2009-10-16: Version 1.3.16
    182 
    183         X64: Convert smis to holding 32 bits of payload.
    184 
    185         Introduce v8::Integer::NewFromUnsigned method.
    186 
    187         Add missing null check in Context::GetCurrent.
    188 
    189         Add trim, trimLeft and trimRight methods to String
    190         Patch by Jan de Mooij <jandemooij (a] gmail.com>
    191 
    192         Implement ES5 Array.isArray
    193         Patch by Jan de Mooij <jandemooij (a] gmail.com>
    194 
    195         Skip access checks for hidden properties.
    196 
    197         Add String::Concat(Handle<String> left, Handle<String> right) to the V8 API.
    198 
    199         Fix GYP-based builds of V8.
    200 
    201 
    202 2009-10-07: Version 1.3.15
    203 
    204         Expand the maximum size of the code space to 512MB for 64-bit mode.
    205 
    206         Fixed a crash bug happening when starting profiling (issue
    207         http://crbug.com/23768).
    208 
    209 
    210 2009-10-07: Version 1.3.14
    211 
    212         Added GetRealNamedProperty to the API to lookup real properties
    213         located on the object or in the prototype chain skipping any
    214         interceptors.
    215 
    216         Fix the stack limits setting API to work correctly with threads. The
    217         stack limit now needs to be set to each thread thich is used with V8.
    218 
    219         Remove the high-priority flag from IdleNotification()
    220 
    221         Ensure V8 is initialized before locking and unlocking threads.
    222 
    223         Implemented a new JavaScript minifier for compressing the source of
    224         the built-in JavaScript. This removes non-Open Source code from Douglas
    225         Crockford from the project.
    226 
    227         Added a missing optimization in StringCharAt.
    228 
    229         Fixed some flaky socket tests.
    230 
    231         Change by Alexander Botero-Lowry to fix profiler sampling on FreeBSD
    232         in 64-bit mode.
    233 
    234         Fixed memory leaks in the thread management code.
    235 
    236         Fixed the result of assignment to a pixel array. The assigned value
    237         is now the result.
    238 
    239         Error reporting for invalid left-hand sides in for-in statements, pre-
    240         and postfix count expressions, and assignments now matches the JSC
    241         behavior in Safari 4.
    242 
    243         Follow the spec in disallowing function declarations without a name.
    244 
    245         Always allocate code objects within a 2 GB range. On x64 architecture
    246         this is used to use near calls (32-bit displacement) in Code objects.
    247 
    248         Optimized array construction ported to x64 and ARM architectures.
    249 
    250         [ES5] Changed Object.keys to return strings for element indices.
    251 
    252 
    253 2009-09-23: Version 1.3.13
    254 
    255         Fixed uninitialized memory problem.
    256 
    257         Improved heap profiler support.
    258 
    259 
    260 2009-09-22: Version 1.3.12
    261 
    262         Changed behavior of |function|.toString() on built-in functions to
    263         be compatible with other implementations.  Patch by Jan de Mooij.
    264 
    265         Added Object::IsDirty in the API.
    266 
    267         Optimized array construction; it is now handled purely in native
    268         code.
    269 
    270         [ES5] Made properties of the arguments array enumerable.
    271 
    272         [ES5] Added test suite adapter for the es5conform test suite.
    273 
    274         [ES5] Added Object.keys function.
    275 
    276 
    277 2009-09-15: Version 1.3.11
    278 
    279         Fixed crash in error reporting during bootstrapping.
    280 
    281         Optimized generated IA32 math code by using SSE2 instructions when
    282         available.
    283 
    284         Implemented missing pieces of debugger infrastructure on ARM.  The
    285         debugger is now fully functional on ARM.
    286 
    287         Make 'hidden' the default visibility for gcc.
    288 
    289 
    290 2009-09-09: Version 1.3.10
    291 
    292         Fixed profiler on Mac in 64-bit mode.
    293 
    294         Optimized creation of objects from simple constructor functions on
    295         ARM.
    296 
    297         Fixed a number of debugger issues.
    298 
    299         Reduced the amount of memory consumed by V8.
    300 
    301 
    302 2009-09-02: Version 1.3.9
    303 
    304         Optimized stack guard checks on ARM.
    305 
    306         Optimized API operations by inlining more in the API.
    307 
    308         Optimized creation of objects from simple constructor functions.
    309 
    310         Enabled a number of missing optimizations in the 64-bit port.
    311 
    312         Implemented native-code support for regular expressions on ARM.
    313 
    314         Stopped using the 'sahf' instruction on 64-bit machines that do
    315         not support it.
    316 
    317         Fixed a bug in the support for forceful termination of JavaScript
    318         execution.
    319 
    320 
    321 2009-08-26: Version 1.3.8
    322 
    323         Changed the handling of idle notifications to allow idle
    324         notifications when V8 has not yet been initialized.
    325 
    326         Fixed ARM simulator compilation problem on Windows.
    327 
    328 
    329 2009-08-25: Version 1.3.7
    330 
    331         Reduced the size of generated code on ARM platforms by reducing
    332         the size of constant pools.
    333 
    334         Changed build files to not include the 'ENV' user environment
    335         variable in the build environment.
    336 
    337         Changed the handling of idle notifications.
    338 
    339 
    340 2009-08-21: Version 1.3.6
    341 
    342         Add support for forceful termination of JavaScript execution.
    343 
    344         Add low memory notification to the API. The embedding host can signal
    345         a low memory situation to V8.
    346 
    347         Changed the handling of global handles (persistent handles in the API
    348         sense) to avoid issues regarding allocation of new global handles
    349         during weak handle callbacks.
    350 
    351         Changed the growth policy of the young space.
    352 
    353         Fixed a GC issue introduced in version 1.3.5.
    354 
    355 
    356 2009-08-19: Version 1.3.5
    357 
    358         Optimize initialization of some arrays in the builtins.
    359 
    360         Fix mac-nm script to support filenames with spaces.
    361 
    362         Support for using the V8 profiler when V8 is embedded in a Windows DLL.
    363 
    364         Changed typeof RegExp from 'object' to 'function' for compatibility.
    365         Fixed bug where regexps were not callable across contexts.
    366 
    367         Added context independent script compilation to the API.
    368 
    369         Added API call to get the stack trace for an exception.
    370 
    371         Added API for getting object mirrors.
    372 
    373         Make sure that SSE3 instructions are used whenever possible even when
    374         running off a snapshot generated without using SSE3 instructions.
    375 
    376         Tweaked the handling of the initial size and growth policy of the heap.
    377 
    378         Added native code generation for RegExp to 64-bit version.
    379 
    380         Added JavaScript debugger support to 64-bit version.
    381 
    382 
    383 2009-08-13: Version 1.3.4
    384 
    385         Added a readline() command to the d8 shell.
    386 
    387         Fixed bug in json parsing.
    388 
    389         Added idle notification to the API and reduced memory on idle
    390         notifications.
    391 
    392 
    393 2009-08-12: Version 1.3.3
    394 
    395         Fix issue 417: incorrect %t placeholder expansion.
    396 
    397         Add .gitignore file similar to Chromium's one.
    398 
    399         Fix SConstruct file to build with new logging code for Android.
    400 
    401         API: added function to find instance of template in prototype
    402         chain.  Inlined Object::IsInstanceOf.
    403 
    404         Land change to notify valgrind when we modify code on x86.
    405 
    406         Add api call to determine whether a string can be externalized.
    407 
    408         Add a write() command to d8.
    409 
    410 
    411 2009-08-05: Version 1.3.2
    412 
    413         Started new compiler infrastructure for two-pass compilation using a
    414         control flow graph constructed from the AST.
    415 
    416         Profiler stack sampling for X64.
    417 
    418         Safe handling of NaN to Posix platform-dependent time functions.
    419 
    420         Added a new profiler control API to unify controlling various aspects
    421         of profiling.
    422 
    423         Fixed issue 392.
    424 
    425 
    426 2009-07-30: Version 1.3.1
    427 
    428         Speed improvements to accessors and interceptors.
    429 
    430         Added support for capturing stack information on custom errors.
    431 
    432         Added support for morphing an object into a pixel array where its
    433         indexed properties are stored in an external byte array. Values written
    434         are always clamped to the 0..255 interval.
    435 
    436         Profiler on x64 now handles C/C++ functions from shared libraries.
    437 
    438         Changed the debugger to avoid stepping into function.call/apply if the
    439         function is a built-in.
    440 
    441         Initial implementation of constructor heap profile for JS objects.
    442 
    443         More fine grained control of profiling aspects through the API.
    444 
    445         Optimized the called as constructor check for API calls.
    446 
    447 
    448 2009-07-27: Version 1.3.0
    449 
    450         Allowed RegExp objects to be called as functions (issue 132).
    451 
    452         Fixed issue where global property cells would escape after
    453         detaching the global object; see http://crbug.com/16276.
    454 
    455         Added support for stepping into setters and getters in the
    456         debugger.
    457 
    458         Changed the debugger to avoid stopping in its own JavaScript code
    459         and in the code of built-in functions.
    460 
    461         Fixed issue 345 by avoiding duplicate escaping labels.
    462 
    463         Fixed ARM code generator crash in short-circuited boolean
    464         expressions and added regression tests.
    465 
    466         Added an external allocation limit to avoid issues where small V8
    467         objects would hold on to large amounts of external memory without
    468         causing garbage collections.
    469 
    470         Finished more of the inline caching stubs for x64 targets.
    471 
    472 
    473 2009-07-13: Version 1.2.14
    474 
    475         Added separate paged heap space for global property cells and
    476         avoid updating the write barrier when storing into them.
    477 
    478         Improved peep-hole optimization on ARM platforms by not emitting
    479         unnecessary debug information.
    480 
    481         Re-enabled ICs for loads and calls that skip a global object
    482         during lookup through the prototype chain.
    483 
    484         Allowed access through global proxies to use ICs.
    485 
    486         Fixed issue 401.
    487 
    488 
    489 2009-07-09: Version 1.2.13
    490 
    491         Fixed issue 397, issue 398, and issue 399.
    492 
    493         Added support for breakpoint groups.
    494 
    495         Fixed bugs introduced with the new global object representation.
    496 
    497         Fixed a few bugs in the ARM code generator.
    498 
    499 
    500 2009-07-06: Version 1.2.12
    501 
    502         Added stack traces collection to Error objects accessible through
    503         the e.stack property.
    504 
    505         Changed RegExp parser to use a recursive data structure instead of
    506         stack-based recursion.
    507 
    508         Optimized Date object construction and string concatenation.
    509 
    510         Improved performance of div, mod, and mul on ARM platforms.
    511 
    512 
    513 2009-07-02: Version 1.2.11
    514 
    515         Improved performance on IA-32 and ARM.
    516 
    517         Fixed profiler sampler implementation on Mac OS X.
    518 
    519         Changed the representation of global objects to improve
    520         performance of adding a lot of new properties.
    521 
    522 
    523 2009-06-29: Version 1.2.10
    524 
    525         Improved debugger support.
    526 
    527         Fixed bug in exception message reporting (issue 390).
    528 
    529         Improved overall performance.
    530 
    531 
    532 2009-06-23: Version 1.2.9
    533 
    534         Improved math performance on ARM.
    535 
    536         Fixed profiler name-inference bug.
    537 
    538         Fixed handling of shared libraries in the profiler tick processor
    539         scripts.
    540 
    541         Fixed handling of tests that time out in the test scripts.
    542 
    543         Fixed compilation on MacOS X version 10.4.
    544 
    545         Fixed two bugs in the regular expression engine.
    546 
    547         Fixed a bug in the string type inference.
    548 
    549         Fixed a bug in the handling of 'constant function' properties.
    550 
    551         Improved overall performance.
    552 
    553 
    554 2009-06-16: Version 1.2.8
    555 
    556         Optimized math on ARM platforms.
    557 
    558         Fixed two crash bugs in the handling of getters and setters.
    559 
    560         Improved the debugger support by adding scope chain information.
    561 
    562         Improved the profiler support by compressing log data transmitted
    563         to clients.
    564 
    565         Improved overall performance.
    566 
    567 
    568 2009-06-08: Version 1.2.7
    569 
    570         Improved debugger and profiler support.
    571 
    572         Reduced compilation time by improving the handling of deferred
    573         code.
    574 
    575         Optimized interceptor accesses where the property is on the object
    576         on which the interceptors is attached.
    577 
    578         Fixed compilation problem on GCC 4.4 by changing the stack
    579         alignment to 16 bytes.
    580 
    581         Fixed handle creation to follow stric aliasing rules.
    582 
    583         Fixed compilation on FreeBSD.
    584 
    585         Introduced API for forcing the deletion of a property ignoring
    586         interceptors and attributes.
    587 
    588 
    589 2009-05-29: Version 1.2.6
    590 
    591         Added a histogram recording hit rates at different levels of the
    592         compilation cache.
    593 
    594         Added stack overflow check for the RegExp analysis phase. Previously a
    595         very long regexp graph could overflow the stack with recursive calls.
    596 
    597         Use a dynamic buffer when collecting log events in memory.
    598 
    599         Added start/stop events to the profiler log.
    600 
    601         Fixed infinite loop which could happen when setting a debug break while
    602         executing a RegExp compiled to native code.
    603 
    604         Fixed handling of lastIndexOf called with negative index (issue 351).
    605 
    606         Fixed irregular crash in profiler test (issue 358).
    607 
    608         Fixed compilation issues with some versions of gcc.
    609 
    610 
    611 2009-05-26: Version 1.2.5
    612 
    613         Fixed bug in initial boundary check for Boyer-Moore text
    614         search (issue 349).
    615 
    616         Fixed compilation issues with MinGW and gcc 4.3+ and added support
    617         for armv7 and cortex-a8 architectures.  Patches by Lei Zhang and
    618         Craig Schlenter.
    619 
    620         Added a script cache to the debugger.
    621 
    622         Optimized compilation performance by improving internal data
    623         structures and avoiding expensive property load optimizations for
    624         code that's infrequently executed.
    625 
    626         Exposed the calling JavaScript context through the static API
    627         function Context::GetCalling().
    628 
    629 
    630 2009-05-18: Version 1.2.4
    631 
    632         Improved performance of floating point number allocation for ARM
    633         platforms.
    634 
    635         Fixed crash when using the instanceof operator on functions with
    636         number values in their prototype chain (issue 341).
    637 
    638         Optimized virtual frame operations in the code generator to speed
    639         up compilation time and allocated the frames in the zone.
    640 
    641         Made the representation of virtual frames and jump targets in the
    642         code generator much more compact.
    643 
    644         Avoided linear search for non-locals in scope code when resolving
    645         variables inside with and eval scopes.
    646 
    647         Optimized lexical scanner by dealing with whitespace as part of
    648         the token scanning instead of as a separate step before it.
    649 
    650         Changed the scavenging collector so that promoted objects do not
    651         reside in the old generation while their remembered set is being
    652         swept for pointers into the young generation.
    653 
    654         Fixed numeric overflow handling when compiling count operations.
    655 
    656 
    657 2009-05-11: Version 1.2.3
    658 
    659         Fixed bug in reporting of out-of-memory situations.
    660 
    661         Introduced hidden prototypes on certain builtin prototype objects
    662         such as String.prototype to emulate JSC's behavior of restoring
    663         the original function when deleting functions from those prototype
    664         objects.
    665 
    666         Fixed crash bug in the register allocator.
    667 
    668 
    669 2009-05-04: Version 1.2.2
    670 
    671         Fixed bug in array sorting for sparse arrays (issue 326).
    672 
    673         Added support for adding a soname when building a shared library
    674         on Linux (issue 151).
    675 
    676         Fixed bug caused by morphing internal ASCII strings to external
    677         two-byte strings.  Slices over ASCII strings have to forward ASCII
    678         checks to the underlying buffer string.
    679 
    680         Allowed API call-as-function handlers to be called as
    681         constructors.
    682 
    683         Fixed a crash bug where an external string was disposed but a
    684         slice of the external string survived as a symbol.
    685 
    686 
    687 2009-04-27: Version 1.2.1
    688 
    689         Added EcmaScript 5 JSON object.
    690 
    691         Fix bug in preemption support on ARM.
    692 
    693 
    694 2009-04-23: Version 1.2.0
    695 
    696         Optimized floating-point operations on ARM.
    697 
    698         Added a number of extensions to the debugger API.
    699 
    700         Changed the enumeration order for unsigned integer keys to always
    701         be numerical order.
    702 
    703         Added a "read" extension to the shell sample.
    704 
    705         Added support for Array.prototype.reduce and
    706         Array.prototype.reduceRight.
    707 
    708         Added an option to the SCons build to control Microsoft Visual C++
    709         link-time code generation.
    710 
    711         Fixed a number of bugs (in particular issue 315, issue 316,
    712         issue 317 and issue 318).
    713 
    714 
    715 2009-04-15: Version 1.1.10
    716 
    717         Fixed crash bug that occurred when loading a const variable in the
    718         presence of eval.
    719 
    720         Allowed using with and eval in registered extensions in debug mode
    721         by fixing bogus assert.
    722 
    723         Fixed the source position for function returns to enable the
    724         debugger to break there.
    725 
    726 
    727 2009-04-14: Version 1.1.9
    728 
    729         Made the stack traversal code in the profiler robust by avoiding
    730         to look into the heap.
    731 
    732         Added name inferencing for anonymous functions to facilitate
    733         debugging and profiling.
    734 
    735         Re-enabled stats timers in the developer shell (d8).
    736 
    737         Fixed issue 303 by avoiding to shortcut cons-symbols.
    738 
    739 
    740 2009-04-11: Version 1.1.8
    741 
    742         Changed test-debug/ThreadedDebugging to be non-flaky (issue 96).
    743 
    744         Fixed step-in handling for Function.prototype.apply and call in
    745         the debugger (issue 269).
    746 
    747         Fixed v8::Object::DeleteHiddenValue to not bail out when there
    748         are no hidden properties.
    749 
    750         Added workaround for crash bug, where external symbol table
    751         entries with deleted resources would lead to NPEs when looking
    752         up in the symbol table.
    753 
    754 
    755 2009-04-07: Version 1.1.7
    756 
    757         Added support for easily importing additional environment
    758         variables into the SCons build.
    759 
    760         Optimized strict equality checks.
    761 
    762         Fixed crash in indexed setters on objects without a corresponding
    763         getter (issue 298).
    764 
    765         Re-enabled script compilation cache.
    766 
    767 
    768 2009-04-01: Version 1.1.6
    769 
    770         Reverted an unsafe code generator change.
    771 
    772 
    773 2009-04-01: Version 1.1.5
    774 
    775         Fixed bug that caused function literals to not be optimized as
    776         much as other functions.
    777 
    778         Improved profiler support.
    779 
    780         Fixed a crash bug in connection with debugger unloading.
    781 
    782         Fixed a crash bug in the code generator caused by losing the
    783         information that a frame element was copied.
    784 
    785         Fixed an exception propagation bug that could cause non-null
    786         return values when exceptions were thrown.
    787 
    788 
    789 2009-03-30: Version 1.1.4
    790 
    791         Optimized String.prototype.match.
    792 
    793         Improved the stack information in profiles.
    794 
    795         Fixed bug in ARM port making it possible to compile the runtime
    796         system for thumb mode again.
    797 
    798         Implemented a number of optimizations in the code generator.
    799 
    800         Fixed a number of memory leaks in tests.
    801 
    802         Fixed crash bug in connection with script source code and external
    803         strings.
    804 
    805 
    806 2009-03-24: Version 1.1.3
    807 
    808         Fixed assertion failures in compilation of loop conditions.
    809 
    810         Removed STL dependency from developer shell (d8).
    811 
    812         Added infrastructure for protecting the V8 heap from corruption
    813         caused by memory modifications from the outside.
    814 
    815 
    816 2009-03-24: Version 1.1.2
    817 
    818         Improved frame merge code generated by the code generator.
    819 
    820         Optimized String.prototype.replace.
    821 
    822         Implemented __defineGetter__ and __defineSetter__ for properties
    823         with integer keys on non-array objects.
    824 
    825         Improved debugger and profiler support.
    826 
    827         Fixed a number of portability issues to allow compilation for
    828         smaller ARM devices.
    829 
    830         Exposed object cloning through the API.
    831 
    832         Implemented hidden properties.  This is used to expose an identity
    833         hash for objects through the API.
    834 
    835         Implemented restarting of regular expressions if their input
    836         string changes representation during preemption.
    837 
    838         Fixed a code generator bug that could cause assignments in loops
    839         to be ignored if using continue to break out of the loop (issue
    840         284).
    841 
    842 
    843 2009-03-12: Version 1.1.1
    844 
    845         Fixed an assertion in the new compiler to take stack overflow
    846         exceptions into account.
    847 
    848         Removed exception propagation code that could cause crashes.
    849 
    850         Fixed minor bug in debugger line number computations.
    851 
    852         8-byte align the C stack on Linux and Windows to speed up floating
    853         point computations.
    854 
    855 
    856 2009-03-12: Version 1.1.0
    857 
    858         Improved code generation infrastructure by doing simple register
    859         allocation and constant folding and propagation.
    860 
    861         Optimized regular expression matching by avoiding to create
    862         intermediate string arrays and by flattening nested array
    863         representations of RegExp data.
    864 
    865         Traverse a few stack frames when recording profiler samples to
    866         include partial call graphs in the profiling output.
    867 
    868         Added support for using OProfile to profile generated code.
    869 
    870         Added remote debugging support to the D8 developer shell.
    871 
    872         Optimized creation of nested literals like JSON objects.
    873 
    874         Fixed a bug in garbage collecting unused maps and turned it on by
    875         default (--collect-maps).
    876 
    877         Added support for running tests under Valgrind.
    878 
    879 
    880 2009-02-27: Version 1.0.3
    881 
    882         Optimized double-to-integer conversions in bit operations by using
    883         SSE3 instructions if available.
    884 
    885         Optimized initialization sequences that store to multiple
    886         properties of the same object.
    887 
    888         Changed the D8 debugger frontend to use JSON messages.
    889 
    890         Force garbage collections when disposing contexts.
    891 
    892         Align code objects at 32-byte boundaries.
    893 
    894 
    895 2009-02-25: Version 1.0.2
    896 
    897         Improved profiling support by performing simple call stack
    898         sampling for ticks and by fixing a bug in the logging of code
    899         addresses.
    900 
    901         Fixed a number of debugger issues.
    902 
    903         Optimized code that uses eval.
    904 
    905         Fixed a couple of bugs in the regular expression engine.
    906 
    907         Reduced the size of generated code for certain regular expressions.
    908 
    909         Removed JSCRE completely.
    910 
    911         Fixed issue where test could not be run if there was a dot in the
    912         checkout path.
    913 
    914 
    915 2009-02-13: Version 1.0.1
    916 
    917         Fixed two crash-bugs in irregexp (issue 231 and 233).
    918 
    919         Fixed a number of minor bugs (issue 87, 227 and 228).
    920 
    921         Added support for morphing strings to external strings on demand
    922         to avoid having to create copies in the embedding code.
    923 
    924         Removed experimental support for external symbol callbacks.
    925 
    926 
    927 2009-02-09: Version 1.0.0
    928 
    929         Fixed crash-bug in the code generation for case independent 16 bit
    930         backreferences.
    931 
    932         Made shells more robust in the presence of string conversion
    933         failures (issue 224).
    934 
    935         Fixed a potential infinite loop when attempting to resolve
    936         eval (issue 221).
    937 
    938         Miscellaneous fixes to the new regular expression engine.
    939 
    940         Reduced binary by stripping unneeded text from JavaScript library and
    941         minifying some JavaScript files.
    942 
    943 
    944 2009-01-27: Version 0.4.9
    945 
    946         Enabled new regular expression engine.
    947 
    948         Made a number of changes to the debugger protocol.
    949 
    950         Fixed a number of bugs in the preemption support.
    951 
    952         Added -p option to the developer shell to run files in parallel
    953         using preemption.
    954 
    955         Fixed a number of minor bugs (including issues 176, 187, 189, 192,
    956         193, 198 and 201).
    957 
    958         Fixed a number of bugs in the serialization/deserialization
    959         support for the ARM platform.
    960 
    961 
    962 2009-01-19: Version 0.4.8.1
    963 
    964         Minor patch to debugger support.
    965 
    966 
    967 2009-01-16: Version 0.4.8
    968 
    969         Fixed string length bug on ARM (issue 171).
    970 
    971         Made most methods in the API const.
    972 
    973         Optimized object literals by improving data locality.
    974 
    975         Fixed bug that caused incomplete functions to be cached in case of
    976         stack overflow exceptions.
    977 
    978         Fixed bugs that caused catch variables and variables introduced by
    979         eval to behave incorrectly when using accessors (issues 186, 190
    980         and 191).
    981 
    982 
    983 2009-01-06: Version 0.4.7
    984 
    985         Minor bugfixes and optimizations.
    986 
    987         Added command line debugger to D8 shell.
    988 
    989         Fixed subtle bug that caused the wrong 'this' to be used when
    990         calling a caught function in a catch clause.
    991 
    992         Inline array loads within loops directly in the code instead of
    993         always calling a stub.
    994 
    995 
    996 2008-12-11: Version 0.4.6
    997 
    998         Fixed exception reporting bug where certain exceptions were
    999         incorrectly reported as uncaught.
   1000 
   1001         Improved the memory allocation strategy used during compilation to
   1002         make running out of memory when compiling huge scripts less
   1003         likely.
   1004 
   1005         Optimized String.replace by avoiding the construction of certain
   1006         sub strings.
   1007 
   1008         Fixed bug in code generation for large switch statements on ARM.
   1009 
   1010         Fixed bug that caused V8 to change the global object template
   1011         passed in by the user.
   1012 
   1013         Changed the API for creating object groups used during garbage
   1014         collection.  Entire object groups are now passed to V8 instead of
   1015         individual members of the groups.
   1016 
   1017 
   1018 2008-12-03: Version 0.4.5
   1019 
   1020         Added experimental API support for allocating V8 symbols as
   1021         external strings.
   1022 
   1023         Fixed bugs in debugging support on ARM.
   1024 
   1025         Changed eval implementation to correctly detect whether or not a
   1026         call to eval is aliased.
   1027 
   1028         Fixed bug caused by a combination of the compilation cache and
   1029         dictionary probing in native code.  The bug caused us to sometimes
   1030         call functions that had not yet been compiled.
   1031 
   1032         Added platform support for FreeBSD.
   1033 
   1034         Added support for building V8 on Windows with either the shared or
   1035         static version of MSVCRT
   1036 
   1037         Added the v8::jscre namespace around the jscre functions to avoid
   1038         link errors (duplicate symbols) when building Google Chrome.
   1039 
   1040         Added support for calling a JavaScript function with the current
   1041         debugger execution context as its argument to the debugger
   1042         interface.
   1043 
   1044         Changed the type of names of counters from wchar_t to char.
   1045 
   1046         Changed the Windows system call used to compute daylight savings
   1047         time.  The system call that we used to use became four times
   1048         slower on WinXP SP3.
   1049 
   1050         Added support in the d8 developer shell for memory-mapped counters
   1051         and added a stats-viewer tool.
   1052 
   1053         Fixed bug in upper/lower case mappings (issue 149).
   1054 
   1055 
   1056 2008-11-17: Version 0.4.4
   1057 
   1058         Reduced code size by using shorter instruction encoding when
   1059         possible.
   1060 
   1061         Added a --help option to the shell sample and to the d8 shell.
   1062 
   1063         Added visual studio project files for building the ARM simulator.
   1064 
   1065         Fixed a number of ARM simulator issues.
   1066 
   1067         Fixed bug in out-of-memory handling on ARM.
   1068 
   1069         Implemented shell support for passing arguments to a script from
   1070         the command line.
   1071 
   1072         Fixed bug in date code that made certain date functions return -0
   1073         instead of 0 for dates before the epoch.
   1074 
   1075         Restricted applications of eval so it can only be used in the
   1076         context of the associated global object.
   1077 
   1078         Treat byte-order marks as whitespace characters.
   1079 
   1080 
   1081 2008-11-04: Version 0.4.3
   1082 
   1083         Added support for API accessors that prohibit overwriting by
   1084         accessors defined in JavaScript code by using __defineGetter__ and
   1085         __defineSetter__.
   1086 
   1087         Improved handling of conditionals in test status files.
   1088 
   1089         Introduced access control in propertyIsEnumerable.
   1090 
   1091         Improved performance of some string operations by caching
   1092         information about the type of the string between operations.
   1093 
   1094         Fixed bug in fast-case code for switch statements that only have
   1095         integer labels.
   1096 
   1097 
   1098 2008-10-30: Version 0.4.2
   1099 
   1100         Improved performance of Array.prototype.concat by moving the
   1101         implementation to C++ (issue 123).
   1102 
   1103         Fixed heap growth policy to avoid growing old space to its maximum
   1104         capacity before doing a garbage collection and fixed issue that
   1105         would lead to artificial out of memory situations (issue 129).
   1106 
   1107         Fixed Date.prototype.toLocaleDateString to return the date in the
   1108         same format as WebKit.
   1109 
   1110         Added missing initialization checks to debugger API.
   1111 
   1112         Added removing of unused maps during GC.
   1113 
   1114 
   1115 2008-10-28: Version 0.4.1
   1116 
   1117         Added caching of RegExp data in compilation cache.
   1118 
   1119         Added Visual Studio project file for d8 shell.
   1120 
   1121         Fixed function call performance regression introduced in version
   1122         0.4.0 when splitting the global object in two parts (issue 120).
   1123 
   1124         Fixed issue 131 by checking for empty handles before throwing and
   1125         reporting exceptions.
   1126 
   1127 
   1128 2008-10-23: Version 0.4.0
   1129 
   1130         Split the global object into two parts: The state holding global
   1131         object and the global object proxy.
   1132 
   1133         Fixed bug that affected the value of an assignment to an element
   1134         in certain cases (issue 116).
   1135 
   1136         Added GetPropertyNames functionality (issue 33) and extra Date
   1137         functions (issue 77) to the API.
   1138 
   1139         Changed WeakReferenceCallback to take a Persistent<Value> instead
   1140         of a Persistent<Object> (issue 101).
   1141 
   1142         Fixed issues with message reporting for exceptions in try-finally
   1143         blocks (issues 73 and 75).
   1144 
   1145         Optimized flattening of strings and string equality checking.
   1146 
   1147         Improved Boyer-Moore implementation for faster indexOf operations.
   1148 
   1149         Added development shell (d8) which includes counters and
   1150         completion support.
   1151 
   1152         Fixed problem with the receiver passed to functions called from
   1153         eval (issue 124).
   1154 
   1155 
   1156 2008-10-16: Version 0.3.5
   1157 
   1158         Improved string hash-code distribution by excluding bit-field bits
   1159         from the hash-code.
   1160 
   1161         Changed string search algorithm used in indexOf from KMP to
   1162         Boyer-Moore.
   1163 
   1164         Improved the generated code for the instanceof operator.
   1165 
   1166         Improved performance of slow-case string equality checks by
   1167         specializing the code based on the string representation.
   1168 
   1169         Improve the handling of out-of-memory situations (issue 70).
   1170 
   1171         Improved performance of strict equality checks.
   1172 
   1173         Improved profiler output to make it easier to see anonymous
   1174         functions.
   1175 
   1176         Improved performance of slow-case keyed loads.
   1177 
   1178         Improved property access performance by allocating a number of
   1179         properties in the front object.
   1180 
   1181         Changed the toString behavior on the built-in object constructors
   1182         to print [native code] instead of the actual source.  Some web
   1183         applications do not like constructors with complex toString
   1184         results.
   1185 
   1186 
   1187 2008-10-06: Version 0.3.4
   1188 
   1189         Changed Array.prototype.sort to use quick sort.
   1190 
   1191         Fixed code generation issue where leaving a finally block with
   1192         break or continue would accumulate elements on the expression
   1193         stack (issue 86).
   1194 
   1195         Made sure that the name accessor on functions returns the expected
   1196         names for builtin JavaScript functions and C++ callback functions.
   1197 
   1198         Added fast case code for extending the property storage array of
   1199         JavaScript objects.
   1200 
   1201         Ported switch statement optimizations introduced in version 0.3.3
   1202         to the ARM code generator.
   1203 
   1204         Allowed GCC to use strict-aliasing rules when compiling.
   1205 
   1206         Improved performance of arguments object allocation by taking care
   1207         of arguments adaptor frames in the generated code.
   1208 
   1209         Updated the V8 benchmark suite to version 2.
   1210 
   1211 
   1212 2008-09-25: Version 0.3.3
   1213 
   1214         Improved handling of relocation information to enable more
   1215         peep-hole optimizations.
   1216 
   1217         Optimized switch statements where all labels are constant small
   1218         integers.
   1219 
   1220         Optimized String.prototype.indexOf for common cases.
   1221 
   1222         Fixed more build issues (issue 80).
   1223 
   1224         Fixed a couple of profiler issues.
   1225 
   1226         Fixed bug where the body of a function created using the Function
   1227         constructor was not allowed to end with a single-line comment
   1228         (issue 85).
   1229 
   1230         Improved handling of object literals by canonicalizing object
   1231         literal maps.  This will allow JSON objects with the same set of
   1232         properties to share the same map making inline caching work better
   1233         for JSON objects.
   1234 
   1235 
   1236 2008-09-17: Version 0.3.2
   1237 
   1238         Generalized the EvalCache into a CompilationCache and enabled it
   1239         for scripts too.  The current strategy is to retire all entries
   1240         whenever a mark-sweep collection is started.
   1241 
   1242         Fixed bug where switch statements containing only a default case
   1243         would lead to an unbalanced stack (issue 69).
   1244 
   1245         Fixed bug that made access to the function in a named function
   1246         expression impossible in certain situations (issue 24).
   1247 
   1248         Fixed even more build issues.
   1249 
   1250         Optimized calling conventions on ARM.  The conventions on ARM and
   1251         IA-32 now match.
   1252 
   1253         Removed static initializers for flags and counters.
   1254 
   1255         Improved inline caching behavior for uncommon cases where lazily
   1256         loading Date and RegExp code could force certain code paths go
   1257         megamorphic.
   1258 
   1259         Removed arguments adaption for builtins written in C++.  This
   1260         makes Array.prototype.push and Array.prototype.pop slightly
   1261         faster.
   1262 
   1263 
   1264 2008-09-11: Version 0.3.1
   1265 
   1266         Fixed a number of build issues.
   1267 
   1268         Fixed problem with missing I-cache flusing on ARM.
   1269 
   1270         Changed space layout in memory management by splitting up
   1271         code space into old data space and code space.
   1272 
   1273         Added utf-8 conversion support to the API (issue 57).
   1274 
   1275         Optimized repeated calls to eval with the same strings.  These
   1276         repeated calls are common in web applications.
   1277 
   1278         Added Xcode project file.
   1279 
   1280         Optimized a couple of Array operation.
   1281 
   1282         Fixed parser bug by checking for end-of-string when parsing break
   1283         and continue (issue 35).
   1284 
   1285         Fixed problem where asian characters were not categorized as
   1286         letters.
   1287 
   1288         Fixed bug that disallowed calling functions fetched from an array
   1289         using a string as an array index (issue 32).
   1290 
   1291         Fixed bug where the internal field count on object templates were
   1292         sometimes ignored (issue 54).
   1293 
   1294         Added -f option to the shell sample for compatibility with other
   1295         engines (issue 18).
   1296 
   1297         Added source info to TryCatches in the API.
   1298 
   1299         Fixed problem where the seed for the random number generator was
   1300         clipped in a double to unsigned int conversion.
   1301 
   1302         Fixed bug where cons string symbols were sometimes converted to
   1303         non-symbol flat strings during GC.
   1304 
   1305         Fixed bug in error reporting when attempting to convert null to an
   1306         object.
   1307 
   1308 
   1309 2008-09-04: Version 0.3.0
   1310 
   1311         Added support for running tests on the ARM simulator.
   1312 
   1313         Fixed bug in the 'in' operator where negative indices were not
   1314         treated correctly.
   1315 
   1316         Fixed build issues on gcc-4.3.1.
   1317 
   1318         Changed Date.prototype.toLocaleTimeString to not print the
   1319         timezone part of the time.
   1320 
   1321         Renamed debug.h to v8-debug.h to reduce the risk of name conflicts
   1322         with user code.
   1323 
   1324 
   1325 2008-09-02: Version 0.2.5
   1326 
   1327         Renamed the top level directory 'public' to 'include'.
   1328 
   1329         Added 'env' option to the SCons build scripts to support
   1330         overriding the ENV part of the build environment.  This is mostly
   1331         to support Windows builds in cases where SCons cannot find the
   1332         correct paths to the Windows SDK, as these paths cannot be passed
   1333         through shell environment variables.
   1334 
   1335         Enabled "Buffer Security Check" on for the Windows SCons build and
   1336         added the linker option /OPT:ICF as an optimization.
   1337 
   1338         Added the V8 benchmark suite to the repository.
   1339 
   1340 
   1341 2008-09-01: Version 0.2.4
   1342 
   1343         Included mjsunit JavaScript test suite and C++ unit tests.
   1344 
   1345         Changed the shell sample to not print the result of executing a
   1346         script provided on the command line.
   1347 
   1348         Fixed issue when building samples on Windows using a shared V8
   1349         library.  Added visibility option on Linux build which makes the
   1350         generated library 18% smaller.
   1351 
   1352         Changed build system to accept multiple build modes in one build
   1353         and generate separate objects, libraries and executables for each
   1354         mode.
   1355 
   1356         Removed deferred negation optimization (a * -b => -(a * b)) since
   1357         this visibly changes operand conversion order.
   1358 
   1359         Improved parsing performance by introducing stack guard in
   1360         preparsing.  Without a stack guard preparsing always bails out
   1361         with stack overflow.
   1362 
   1363         Changed shell sample to take flags directly from the command-line.
   1364         Added API call that implements this.
   1365 
   1366         Added load, quit and version functions to the shell sample so it's
   1367         easier to run benchmarks and tests.
   1368 
   1369         Fixed issue with building samples and cctests on 64-bit machines.
   1370 
   1371         Fixed bug in the runtime system where the prototype chain was not
   1372         always searched for a setter when setting a property that does not
   1373         exist locally.
   1374 
   1375 
   1376 2008-08-14: Version 0.2.3
   1377 
   1378         Improved performance of garbage collection by moving the
   1379         function that updates pointers during compacting collection
   1380         into the updating visitor.  This gives the compiler a better
   1381         chance to inline and avoid a function call per (potential)
   1382         pointer.
   1383 
   1384         Extended the shell sample with a --runtime-flags option.
   1385 
   1386         Added Visual Studio project files for the shell.cc and
   1387         process.cc samples.
   1388 
   1389 
   1390 2008-08-13: Version 0.2.2
   1391 
   1392         Improved performance of garbage collection by changing the way
   1393         we use the marking stack in the event of stack overflow during
   1394         full garbage collection and by changing the way we mark roots.
   1395 
   1396         Cleaned up ARM version by removing top of stack caching and by
   1397         introducing push/pop elimination.
   1398 
   1399         Cleaned up the way runtime functions are called to allow
   1400         runtime calls with no arguments.
   1401 
   1402         Changed Windows build options to make sure that exceptions are
   1403         disabled and that optimization flags are enabled.
   1404 
   1405         Added first version of Visual Studio project files.
   1406 
   1407 
   1408 2008-08-06: Version 0.2.1
   1409 
   1410         Improved performance of unary addition by avoiding runtime calls.
   1411 
   1412         Fixed the handling of '>' and '<=' to use right-to-left conversion
   1413         and left-to-right evaluation as specified by ECMA-262.
   1414 
   1415         Fixed a branch elimination bug on the ARM platform where incorrect
   1416         code was generated because of overly aggressive branch
   1417         elimination.
   1418 
   1419         Improved performance of code that repeatedly assigns the same
   1420         function to the same property of different objects with the same
   1421         map.
   1422 
   1423         Untangled DEBUG and ENABLE_DISASSEMBLER defines.  The disassembler
   1424         no longer expects DEBUG to be defined.
   1425 
   1426         Added platform-nullos.cc to serve as the basis for new platform
   1427         implementations.
   1428 
   1429 
   1430 2008-07-30: Version 0.2.0
   1431 
   1432         Changed all text files to have native svn:eol-style.
   1433 
   1434         Added a few samples and support for building them. The samples
   1435         include a simple shell that can be used to benchmark and test V8.
   1436 
   1437         Changed V8::GetVersion to return the version as a string.
   1438 
   1439         Added source for lazily loaded scripts to snapshots and made
   1440         serialization non-destructive.
   1441 
   1442         Improved ARM support by fixing the write barrier code to use
   1443         aligned loads and stores and by removing premature locals
   1444         optimization that relied on broken support for callee-saved
   1445         registers (removed).
   1446 
   1447         Refactored the code for marking live objects during garbage
   1448         collection and the code for allocating objects in paged
   1449         spaces. Introduced an abstraction for the map word of a heap-
   1450         allocated object and changed the memory allocator to allocate
   1451         executable memory only for spaces that may contain code objects.
   1452 
   1453         Moved StringBuilder to utils.h and ScopedLock to platform.h, where
   1454         they can be used by debugging and logging modules. Added
   1455         thread-safe message queues for dealing with debugger events.
   1456 
   1457         Fixed the source code reported by toString for certain builtin
   1458         empty functions and made sure that the prototype property of a
   1459         function is enumerable.
   1460 
   1461         Improved performance of converting values to condition flags in
   1462         generated code.
   1463 
   1464         Merged disassembler-{arch} files.
   1465 
   1466 
   1467 2008-07-28: Version 0.1.4
   1468 
   1469         Added support for storing JavaScript stack traces in a stack
   1470         allocated buffer to make it visible in shallow core dumps.
   1471         Controlled by the --preallocate-message-memory flag which is
   1472         disabled by default.
   1473 
   1474 
   1475 2008-07-25: Version 0.1.3
   1476 
   1477         Fixed bug in JSObject::GetPropertyAttributePostInterceptor where
   1478         map transitions would count as properties.
   1479 
   1480         Allowed aliased eval invocations by treating them as evals in the
   1481         global context. This may change in the future.
   1482 
   1483         Added support for accessing the last entered context through the
   1484         API and renamed Context::Current to Context::GetCurrent and
   1485         Context::GetSecurityContext to Context::GetCurrentSecurityContext.
   1486 
   1487         Fixed bug in the debugger that would cause the debugger scripts to
   1488         be recursively loaded and changed all disabling of interrupts to
   1489         be block-structured.
   1490 
   1491         Made snapshot data read-only to allow it to be more easily shared
   1492         across multiple users of V8 when linked as a shared library.
   1493 
   1494 
   1495 2008-07-16: Version 0.1.2
   1496 
   1497         Fixed building on Mac OS X by recognizing i386 and friends as
   1498         IA-32 platforms.
   1499 
   1500         Added propagation of stack overflow exceptions that occur while
   1501         compiling nested functions.
   1502 
   1503         Improved debugger with support for recursive break points and
   1504         handling of exceptions that occur in the debugger JavaScript code.
   1505 
   1506         Renamed GetInternal to GetInternalField and SetInternal to
   1507         SetInternalField in the API and moved InternalFieldCount and
   1508         SetInternalFieldCount from FunctionTemplate to ObjectTemplate.
   1509 
   1510 
   1511 2008-07-09: Version 0.1.1
   1512 
   1513         Fixed bug in stack overflow check code for IA-32 targets where a
   1514         non-tagged value in register eax was pushed to the stack.
   1515 
   1516         Fixed potential quadratic behavior when converting strings to
   1517         numbers.
   1518 
   1519         Fixed bug where the return value from Object::SetProperty could
   1520         end up being the property holder instead of the written value.
   1521 
   1522         Improved debugger support by allowing nested break points and by
   1523         dealing with stack-overflows when compiling functions before
   1524         setting break points in them.
   1525 
   1526 
   1527 2008-07-03: Version 0.1.0
   1528 
   1529         Initial export.
   1530 
   1531