Home | History | Annotate | Download | only in v8
      1 2013-12-04: Version 3.23.18
      2 
      3         Performance and stability improvements on all platforms.
      4 
      5 
      6 2013-12-03: Version 3.23.17
      7 
      8         Performance and stability improvements on all platforms.
      9 
     10 
     11 2013-12-02: Version 3.23.16
     12 
     13         Array builtins need to be prevented from changing frozen objects, and
     14         changing structure on sealed objects (Chromium issue 299979).
     15 
     16         Performance and stability improvements on all platforms.
     17 
     18 
     19 2013-11-29: Version 3.23.15
     20 
     21         Fix context register allocation in LTransitionElementsKind
     22         (Chromium issue 324306).
     23 
     24         Fix bug in inlining Function.apply (Chromium issue 323942).
     25 
     26         Ensure that length is Smi in TypedArrayFromArrayLike constructor
     27         (Chromium issue 324028).
     28 
     29         Performance and stability improvements on all platforms.
     30 
     31 
     32 2013-11-28: Version 3.23.14
     33 
     34         Shorten autogenerated error message (issue 3019).
     35 
     36         Performance and stability improvements on all platforms.
     37 
     38 
     39 2013-11-27: Version 3.23.13
     40 
     41         Increase precision for base conversion for large integers (issue 3025).
     42 
     43         Flatten cons string for single character substrings (Chromium issue
     44         323041).
     45 
     46         Performance and stability improvements on all platforms.
     47 
     48 
     49 2013-11-26: Version 3.23.12
     50 
     51         Performance and stability improvements on all platforms.
     52 
     53 
     54 2013-11-25: Version 3.23.11
     55 
     56         Deprecate old versions of Isolate::SetData and GetData.
     57 
     58         Performance and stability improvements on all platforms.
     59 
     60 
     61 2013-11-22: Version 3.23.10
     62 
     63         Remove preemption thread and API.
     64         (issue 3004)
     65 
     66         Performance and stability improvements on all platforms.
     67 
     68 
     69 2013-11-21: Version 3.23.9
     70 
     71         API: Change AdjustAmountOfExternalAllocatedMemory calls to use int64_t
     72         instead of intptr_t.
     73 
     74         Remove deprecated v8::SetResourceConstraints without Isolate parameter.
     75 
     76         Remove deprecated v8-defaults.h and defaults.cc.
     77         (Chromium issue 312241)
     78 
     79         Make it possible to add more than one piece of embedder data to
     80         isolates.
     81         (Chromium issue 317398)
     82 
     83         Performance and stability improvements on all platforms.
     84 
     85 
     86 2013-11-20: Version 3.23.8
     87 
     88         Fixed crashes exposed though fuzzing.
     89         (Chromium issue 320948)
     90 
     91         Deprecated v8::External::New without Isolate parameter.
     92 
     93         Made number of available threads isolate-dependent and exposed it to
     94         ResourceConstraints.
     95         (issue 2991)
     96 
     97         Performance and stability improvements on all platforms.
     98 
     99 
    100 2013-11-19: Version 3.23.7
    101 
    102         Bugfix: dependent code field in AllocationSite was keeping code objects
    103         alive even after context death.
    104         (Chromium issue 320532)
    105 
    106         Fixed data view accessors to throw execptions on offsets bigger than
    107         size_t.
    108         (issue 3013)
    109 
    110         Performance and stability improvements on all platforms.
    111 
    112 
    113 2013-11-18: Version 3.23.6
    114 
    115         Limit size of dehoistable array indices.
    116         (Chromium issues 319835, 319860)
    117 
    118         Limit the size for typed arrays to MaxSmi.
    119         (Chromium issue 319722)
    120 
    121         Performance and stability improvements on all platforms.
    122 
    123 
    124 2013-11-15: Version 3.23.5
    125 
    126         Fixed missing type feedback check for Generic*String addition.
    127         (Chromium issue 318671)
    128 
    129         Fixed duplicate check in DependentCode::Insert.
    130         (Chromium issue 318454)
    131 
    132         Performance and stability improvements on all platforms.
    133 
    134 
    135 2013-11-14: Version 3.23.4
    136 
    137         Fixed overflow in TypedArray initialization function.
    138         (Chromium issue 319120)
    139 
    140         Performance and stability improvements on all platforms.
    141 
    142 
    143 2013-11-13: Version 3.23.3
    144 
    145         Fixed compilation with GCC 4.8.
    146         (issue 2767, 2149)
    147 
    148         Added explicit Isolate parameter to External::New.
    149         (Chromium issue 266838)
    150 
    151         Performance and stability improvements on all platforms.
    152 
    153 
    154 2013-11-12: Version 3.23.2
    155 
    156         Fixed --extra-code flag for snapshot creation.
    157         (issue 2994)
    158 
    159         Fixed error message wording when instanceof throws.
    160         (Chromium issue 82797, issue 1593)
    161 
    162         Performance and stability improvements on all platforms.
    163 
    164 
    165 2013-11-08: Version 3.23.1
    166 
    167         Made HCapturedObjects non-deletable for DCE. (issue 2987)
    168 
    169         Use a fixed random seed per default. (issue 1880, 2885)
    170 
    171         Fixed y-umlaut to uppercase. (issue 2984)
    172 
    173         Performance and stability improvements on all platforms.
    174 
    175 
    176 2013-11-06: Version 3.23.0
    177 
    178         Fixed loading message from an Error object.  (Chromium issue 306220)
    179 
    180         Made Object.freeze/seal/preventExtensions observable. (issue 2975, 2941)
    181 
    182         Made snapshots reproducible. (issue 2885)
    183 
    184         Added missing negative dictionary lookup to NonexistentHandlerFrontend.
    185         (issue 2980)
    186 
    187         Performance and stability improvements on all platforms.
    188 
    189 
    190 2013-10-31: Version 3.22.24
    191 
    192         Fixed uint32-to-smi conversion in Lithium.
    193         (Chromium issue 309623)
    194 
    195         Performance and stability improvements on all platforms.
    196 
    197 
    198 2013-10-28: Version 3.22.23
    199 
    200         Renamed deprecated __attribute__((no_address_safety_analysis)) to
    201         __attribute__((no_sanitize_address)) (Chromium issue 311283)
    202 
    203         Defined DEBUG for v8_optimized_debug=2
    204 
    205         Performance and stability improvements on all platforms.
    206 
    207 
    208 2013-10-25: Version 3.22.22
    209 
    210         Record allocation stack traces. (Chromium issue 277984,v8:2949)
    211 
    212         Performance and stability improvements on all platforms.
    213 
    214 
    215 2013-10-24: Version 3.22.21
    216 
    217         Performance and stability improvements on all platforms.
    218 
    219 
    220 2013-10-24: Version 3.22.20
    221 
    222         Made Array.prototype.pop throw if the last element is not configurable.
    223 
    224         Fixed HObjectAccess for loads from migrating prototypes.
    225         (Chromium issue 305309)
    226 
    227         Enabled preaging of code objects when --optimize-for-size.
    228         (Chromium issue 280984)
    229 
    230         Exposed v8::Function::GetDisplayName to public API.
    231         (Chromium issue 17356)
    232 
    233         Performance and stability improvements on all platforms.
    234 
    235 
    236 2013-10-23: Version 3.22.19
    237 
    238         Fix materialization of captured objects with field tracking.
    239         (Chromium issue 298990)
    240 
    241         Performance and stability improvements on all platforms.
    242 
    243 
    244 2013-10-22: Version 3.22.18
    245 
    246         Add tool to visualize machine code/lithium.
    247 
    248         Handle misaligned loads and stores in load elimination. Do not track
    249         misaligned loads and be conservative about invalidating misaligned
    250         stores. (issue 2934)
    251 
    252         Performance and stability improvements on all platforms.
    253 
    254 
    255 2013-10-21: Version 3.22.17
    256 
    257         Harmony: Implement Math.trunc and Math.sign. (issue 2938)
    258 
    259         Performance and stability improvements on all platforms.
    260 
    261 
    262 2013-10-21: Version 3.22.16
    263 
    264         Performance and stability improvements on all platforms.
    265 
    266 
    267 2013-10-18: Version 3.22.15
    268 
    269         Enabled calling the SetReference* & SetObjectGroupId functions with a
    270         Persistent<SubclassOfValue>.
    271 
    272         Performance and stability improvements on all platforms.
    273 
    274 
    275 2013-10-17: Version 3.22.14
    276 
    277         Performance and stability improvements on all platforms.
    278 
    279 
    280 2013-10-16: Version 3.22.13
    281 
    282         Do not look up ArrayBuffer on global object in typed array constructor.
    283         (issue 2931)
    284 
    285         Performance and stability improvements on all platforms.
    286 
    287 
    288 2013-10-15: Version 3.22.12
    289 
    290         Added histograms to track fraction of heap spaces and percentage of
    291         generated crankshaft code.
    292 
    293         Moved v8_optimized_debug default value to standalone.gypi.
    294 
    295         Track JS allocations as they arrive with no affection on performance
    296         when tracking is switched off (Chromium issue 277984).
    297 
    298         Performance and stability improvements on all platforms.
    299 
    300 
    301 2013-10-14: Version 3.22.11
    302 
    303         Performance and stability improvements on all platforms.
    304 
    305 
    306 2013-10-11: Version 3.22.10
    307 
    308         Fixed timezone issues with date-time/parse-* tests.
    309         (Chromium issue 2919)
    310 
    311         Added column getter to CpuProfileNode (Chromium issue 302537)
    312 
    313         Performance and stability improvements on all platforms.
    314 
    315 
    316 2013-10-10: Version 3.22.9
    317 
    318         Ensure only whitelisted stubs have sse2 versions in the snapshot.
    319         (fix for chromium 304565)
    320 
    321         Implement ArrayBuffer.isView.
    322 
    323         Performance and stability improvements on all platforms.
    324 
    325 
    326 2013-10-04: Version 3.22.8
    327 
    328         Performance and stability improvements on all platforms.
    329 
    330 
    331 2013-10-03: Version 3.22.7
    332 
    333         Debug: Allow stepping into on a given call frame
    334         (Chromium issue 296963).
    335 
    336         Always use timeGetTime() for TimeTicks::Now() on Windows
    337         (Chromium issue 288924).
    338 
    339         Performance and stability improvements on all platforms.
    340 
    341 
    342 2013-10-02: Version 3.22.6
    343 
    344         Performance and stability improvements on all platforms.
    345 
    346 
    347 2013-10-01: Version 3.22.5
    348 
    349         Disabled externalization of sliced/cons strings in old pointer space
    350         (Chromium issue 276357).
    351 
    352         Turned on handle zapping for release builds
    353 
    354         Performance and stability improvements on all platforms.
    355 
    356 
    357 2013-09-30: Version 3.22.4
    358 
    359         Function::Call and Object::CallAsFunction APIs should allow v8::Value as
    360         a receiver (issue 2915).
    361 
    362         Removed unnecessary mutex (Chromium issue 291236).
    363 
    364         Removed ArrayBufferView::BaseAddress method.
    365 
    366         Performance and stability improvements on all platforms.
    367 
    368 
    369 2013-09-27: Version 3.22.3
    370 
    371         Added methods to enable configuration of ResourceConstraints based on
    372         limits derived at runtime.
    373         (Chromium issue 292928)
    374 
    375         Added -optimize-for-size flag to optimize for memory size (will be used
    376         by pre-aging CL), and removed the is_memory_constrained
    377         ResourceConstraint.
    378         (Chromium issue 292928)
    379 
    380         Performance and stability improvements on all platforms.
    381 
    382 
    383 2013-09-26: Version 3.22.2
    384 
    385         Performance and stability improvements on all platforms.
    386 
    387 
    388 2013-09-25: Version 3.22.1
    389 
    390         Sped up creating typed arrays from array-like objects.
    391         (Chromium issue 270507)
    392 
    393         Performance and stability improvements on all platforms.
    394 
    395 
    396 2013-09-23: Version 3.22.0
    397 
    398         LiveEdit to mark more closure functions for re-instantiation when scope
    399         layout changes.
    400         (issue 2872)
    401 
    402         Made bounds check elimination iterative instead of recursive.
    403         (Chromium issue 289706)
    404 
    405         Turned on i18n support by default.
    406 
    407         Set the proper instance-type on HAllocate in BuildFastLiteral.
    408         (Chromium issue 284577)
    409 
    410         Performance and stability improvements on all platforms.
    411 
    412 
    413 2013-09-18: Version 3.21.17
    414 
    415         Implemented local load/store elimination on basic blocks.
    416 
    417         Added mutex when accessing concurrent recompilation output queue.
    418         (Chromium issue 291236)
    419 
    420         Don't lookup the cache for the result of Function::New.
    421         (Chromium issue 272579)
    422 
    423         Tweaked HConstant::EmitAtUses() to eliminate useless constant
    424         generation.
    425         (Chromium issue 2881)
    426 
    427         Performance and stability improvements on all platforms.
    428 
    429 
    430 2013-09-16: Version 3.21.16
    431 
    432         Every place where AllocationMemento is initialized with an
    433         AllocationSite is now checked to be sure a valid Site goes in. This is
    434         temporary code to diagnose chromium bug 284577.
    435 
    436         Performance and stability improvements on all platforms.
    437 
    438 
    439 2013-09-13: Version 3.21.15
    440 
    441         Non-JSObject heap objects are now handled using slow-path IC stub
    442         guarded by the map.
    443         (Chromium issue 280632)
    444 
    445         i18n Javascript code added to the snapshot.
    446         (V8 issue 2745)
    447 
    448         Performance and stability improvements on all platforms.
    449 
    450 2013-09-12: Version 3.21.14
    451 
    452         Added access check for observed objects.
    453         (V8 issue 2778)
    454 
    455         Cleaned up v8::ArrayBuffer::Allocator interface.
    456         (V8 issue 2823)
    457 
    458         Performance and stability improvements on all platforms.
    459 
    460 2013-09-11: Version 3.21.13
    461 
    462         Added a ResourceConstraint for the embedder to specify that V8 is
    463         running on a memory constrained device.
    464         (Chromium issue 280984)
    465 
    466         Removed HandleScope default ctor.
    467         (Chromium issue 236173)
    468 
    469         Enabled escape analysis for Hydrogen.
    470 
    471         Correctly stringified mixed encoding indirect strings.
    472         (Chromium issue 287476)
    473 
    474         Performance and stability improvements on all platforms.
    475 
    476 
    477 2013-09-09: Version 3.21.12
    478 
    479         Fixed bitwise negation on x64.
    480         (Chromium issue 285355)
    481 
    482         Dropped GetCurrentThreadId() and TerminateExecution(int) from 
    483 	the external API.
    484 
    485         Fixed polymorphic INTERCEPTOR StoreICs on ARM/MIPS.
    486         (Chromium issue 284998)
    487 
    488         Added check if timeout has expired after processing each sample.
    489         (issue 2814,v8:2871)
    490 
    491         Removed obsolete global V8::has_been_fooed flags.
    492         (issue 2744)
    493 
    494         Performance and stability improvements on all platforms.
    495 
    496 
    497 2013-09-05: Version 3.21.11
    498 
    499         Performance and stability improvements on all platforms.
    500 
    501 
    502 2013-09-04: Version 3.21.10
    503 
    504         Fixed Eternal::IsEmpty logic (issue 2870).
    505 
    506         Performance and stability improvements on all platforms.
    507 
    508 
    509 2013-09-03: Version 3.21.9
    510 
    511         Deprecated Persistent functions which were marked to be deprecated.
    512 
    513         Allowed uncacheable identifiers to go generic (issue 2867).
    514 
    515         Performance and stability improvements on all platforms.
    516 
    517 
    518 2013-09-02: Version 3.21.8
    519 
    520         Added scriptId to StackTrace frames (issue 2865).
    521 
    522         Performance and stability improvements on all platforms.
    523 
    524 
    525 2013-08-30: Version 3.21.7
    526 
    527         Fixed casts of eternal handles.
    528 
    529         Turned on global handle zapping.
    530 
    531         Always visit branches during HGraph building (Chromium issue 280333).
    532 
    533         Profiler changes: removed deprecated API, support higher sampling
    534         rate on Windows.
    535 
    536         Performance and stability improvements on all platforms.
    537 
    538 
    539 2013-08-29: Version 3.21.6
    540 
    541         Fixed inlined 'throw' statements interfering with live range
    542         computation. (issue 2843)
    543 
    544         Performance and stability improvements on all platforms.
    545 
    546 
    547 2013-08-28: Version 3.21.5
    548 
    549         Fixed compilation with recent MinGW64 versions. (issue 2300)
    550 
    551         Added RemovePrototype to FunctionTemplate. (Chromium issue 272440)
    552 
    553         Performance and stability improvements on all platforms.
    554 
    555 
    556 2013-08-26: Version 3.21.4
    557 
    558         Lowered kInitialMaxFastElementArray constant to 95K (issue 2790).
    559 
    560         Use signals for cpu profiling on Mac OS X (issue 2814).
    561 
    562         Deprecated CpuProfileNode::GetSelfSamplesCount (Chromium issue 267595).
    563 
    564         Added support for higher CPU profiler sampling rate on posix systems
    565         (issue 2814).
    566 
    567         Worked around 'inlining failed' build error with older GCC 4.x releases.
    568 
    569         Added source map support to tick processor.
    570 
    571         Stability improvements on all platforms.
    572 
    573 
    574 2013-08-23: Version 3.21.3
    575 
    576         Temporarily disabled optimization for StringWrappers to use native
    577         valueOf. (issue 2855)
    578 
    579         Fixed crash on function declarations in eval inside non-trivial local
    580         scope. (issue 2594)
    581 
    582         Rewrote SamplingCircularQueue. (issue 2814)
    583 
    584         Fixed hidden properties on object with frozen prototype. (issue 2829)
    585 
    586         Fix deoptimization bug. (Chromium issue 274164)
    587 
    588         Stability improvements on all platforms.
    589 
    590 
    591 2013-08-22: Version 3.21.2
    592 
    593         Stability improvements on all platforms.
    594 
    595 
    596 2013-08-21: Version 3.21.1
    597 
    598         Promoted ArrayBuffer, DataView and typed arrays to non-experimental.
    599         (Chromium issue 270527)
    600 
    601         Replaced OS::MemCopy with memcpy in typed array initialization.
    602         (Chromium issue 270642)
    603 
    604         Moved i18n break iterator C++ code to runtime (issue 2745)
    605 
    606         Fixed invalid out-of-bounds store in MacroAssembler::Allocate.
    607         (Chromium issue 263515)
    608 
    609         Fixed register misuse in Allocate() on ARM. (issue 2851)
    610 
    611         Fixed empty handle dereference in Runtime_InternalNumberFormat.
    612         (Chromium issue 275467)
    613 
    614         Performance and stability improvements on all platforms.
    615 
    616 
    617 2013-08-19: Version 3.21.0
    618 
    619         Fixed GC-related crasher (Chromium issue 274438)
    620 
    621         Reverted making Intl non-enumerable.
    622 
    623         Performance and stability improvements on all platforms.
    624 
    625 
    626 2013-08-14: Version 3.20.17
    627 
    628         Fixed Math.round/floor that had bogus Smi representation
    629         (Chromium issue 272564)
    630 
    631         Performance and stability improvements on all platforms.
    632 
    633 
    634 2013-08-13: Version 3.20.16
    635 
    636         Fixed bug in HPhi::SimplifyConstantInput (Chromium issue 269679)
    637 
    638         Fixed gcmole bugs in i18n code (issue 2745)
    639 
    640         ia32: Calls to the TranscendentalCacheStub must ensure that esi is
    641         set (issue 2827)
    642 
    643         Made sure polymorphic element access creates non-replaying
    644         phis. (issue 2815)
    645 
    646         Allowed HPhis to have an invalid merge index. (issue 2815)
    647 
    648         Fixed smi-based math floor. (Chromium issue 270268)
    649 
    650         Deprecated self and total time getters and total sample count
    651         getter on CpuProfileNode. (Chromium issue 267595)
    652 
    653         Fixed Object.freeze, Object.observe wrt CountOperation and
    654         CompoundAssignment. (issue 2774,2779)
    655 
    656         Performance and stability improvements on all platforms.
    657 
    658 
    659 2013-08-07: Version 3.20.15
    660 
    661         Exposed eternal handle api.
    662 
    663         Bugfix to solve issues with enabling V8 typed arrays in Blink.
    664 
    665         Fixed Array index dehoisting.  (Chromium issue 264203)
    666 
    667         Updated Array Iterator to use numeric indexes (issue 2818)
    668 
    669         Return start/end profiling time in microseconds instead of milliseconds
    670         (issue 2824)
    671 
    672         Performance and stability improvements on all platforms.
    673 
    674 
    675 2013-08-06: Version 3.20.14
    676 
    677         Added new Harmony methods to Array.prototype object.
    678         (issue 2776,v8:2777)
    679 
    680         Performance and stability improvements on all platforms.
    681 
    682 
    683 2013-08-01: Version 3.20.12
    684 
    685         Removed buggy ToNumber truncation (partial fix for issue 2813)
    686 
    687         Calling Map etc without new should throw TypeError (issue 2819)
    688 
    689         Fixed a crash for large code objects on ARM (Chromium issue 2736)
    690 
    691         Fixed stale unhandlified value in JSObject::SetPropertyForResult.
    692         (Chromium issue 265894)
    693 
    694         Added new Harmony methods to String.prototype object.
    695         (issue 2796,v8:2797,v8:2798,v8:2799)
    696 
    697         Performance and stability improvements on all platforms.
    698 
    699 
    700 2013-07-30: Version 3.20.11
    701 
    702         Performance and stability improvements on all platforms.
    703 
    704 
    705 2013-07-29: Version 3.20.10
    706 
    707         Performance and stability improvements on all platforms.
    708 
    709 
    710 2013-07-26: Version 3.20.9
    711 
    712         Check that ExternalString objects get aligned resources.
    713 
    714         Fixed JSArray-specific length lookup in polymorphic array handling
    715         (Chromium issues 263276, 263905).
    716 
    717         Performance and stability improvements on all platforms.
    718 
    719 
    720 2013-07-24: Version 3.20.8
    721 
    722         Deprecated v8::V8::Pause/ResumeProfiler.
    723 
    724         Fixed Chromium issues 247688, 258519 and 260203.
    725 
    726         Performance and stability improvements on all platforms.
    727 
    728 
    729 2013-07-22: Version 3.20.7
    730 
    731         Deprecated some debugger methods.
    732 
    733         Fixed wrong bailout id in polymorphic stores (Chromium issue 259787).
    734 
    735         Fixed data race in SamplingCircularQueue (Chromium issue 251218).
    736 
    737         Fixed type feedback in presence of negative lookups
    738         (Chromium issue 252797).
    739 
    740         Do not materialize context-allocated values for debug-evaluate
    741         (Chromium issue 259300).
    742 
    743         Synchronized Compare-Literal behavior in FullCodegen and Hydrogen
    744         (Chromium issue 260345).
    745 
    746         Performance and stability improvements on all platforms.
    747 
    748 
    749 2013-07-17: Version 3.20.6
    750 
    751         Try to remove invalidated stubs before falling back to checking the
    752         constant state (Chromium issue 260585).
    753 
    754         Fixed gyp_v8 to work with use_system_icu=1 (issue 2475).
    755 
    756         Fixed sloppy-mode 'const' under Harmony flag (Chromium issue 173361).
    757 
    758         Use internal array as API function cache  (Chromium issue 260106).
    759 
    760         Fixed possible stack overflow in range analysis
    761         (Chromium issue 259452).
    762 
    763         Performance and stability improvements on all platforms.
    764 
    765 
    766 2013-07-15: Version 3.20.5
    767 
    768         Ensured that the length of frozen arrays is immutable
    769         (issue 2711, Chromium issue 259548).
    770 
    771         Performance and stability improvements on all platforms.
    772 
    773 
    774 2013-07-10: Version 3.20.4
    775 
    776         Fixed garbage-collection issue that causes a crash on ARM
    777         (Chromium issue 254570)
    778 
    779         Performance and stability improvements on all platforms.
    780 
    781 
    782 2013-07-08: Version 3.20.3
    783 
    784         Performance and stability improvements on all platforms.
    785 
    786 
    787 2013-07-05: Version 3.20.2
    788 
    789         Remove deprecated heap profiler methods from V8 public API
    790 
    791         Mark i18n functions as native and set proper names
    792         (issue 2745)
    793 
    794         Correctly report stack trace when current function is FunctionApply
    795         builtin (Chromium issue 252097)
    796 
    797         Enable GDBJIT interface for standalone by default.
    798 
    799         Fix debuggersupport=off build. (issue 2754)
    800 
    801         Introduce -m64 flag for making x64 when the default gcc compiler is for
    802         X32
    803 
    804         Performance and stability improvements on all platforms.
    805 
    806 
    807 2013-07-02: Version 3.20.1
    808 
    809         Implemented WeakMap.prototype.clear function. (issue 2753)
    810 
    811         Ensure CheckInitialized is present independent of define.
    812         (Chromium issue 255779)
    813 
    814         Performance and stability improvements on all platforms.
    815 
    816 
    817 2013-06-28: Version 3.20.0
    818 
    819         Migrated several tests from blink to V8 repository.
    820 
    821         Allowed users of the V8 API to distinguish between unset and undefined
    822         HiddenValues (issue 2746).
    823 
    824         Deprecated old style callbacks in the V8 API.
    825 
    826         Turned on parallel recompilation.
    827 
    828         Performance and stability improvements on all platforms.
    829 
    830 
    831 2013-06-18: Version 3.19.18
    832 
    833 	Fixed read-only attribute of Function.length in strict mode.
    834 	(issue 2705)
    835 
    836 	Fixed Runtime_SetProperty to properly handle OOM failures
    837 	(Chromium issue 249873)
    838 
    839 	Emit deprecated check for constant function transitions.
    840 	(Chromium issue 250609)
    841 	
    842 	Made MathFloorOfDiv optimization trigger more often
    843 	(Issue 2205)
    844 
    845 	Make more GCs in idle notification handler.
    846 	(Chromium issue 241815)
    847 
    848 	Increased default type info threshold.
    849 	(Issue 2730)
    850 
    851         Performance and stability improvements on all platforms.
    852 
    853 
    854 2013-06-14: Version 3.19.16
    855 
    856         Performance and stability improvements on all platforms.
    857 
    858 
    859 2013-06-13: Version 3.19.15
    860 
    861         Performance and stability improvements on all platforms.
    862 
    863 
    864 2013-06-13: Version 3.19.14
    865 
    866         Fixed crashes when calling new Array(a) with a single argument that
    867         could result in creating a holey array with a packed elements kind.
    868         (Chromium issue 245480)
    869 
    870         Fixed issues in parallel compilation.
    871         (Chromium issue 248076)
    872 
    873         Performance and stability improvements on all platforms.
    874 
    875 
    876 2013-06-11: Version 3.19.13
    877 
    878         Performance and stability improvements on all platforms.
    879 
    880 
    881 2013-06-10: Version 3.19.12
    882 
    883         Fixed arguments array access. (Chromium issue 247303)
    884 
    885         Fixed bug in LookupForWrite. (Chromium issue 242332)
    886 
    887         Performance and stability improvements on all platforms.
    888 
    889 
    890 2013-06-07: Version 3.19.11
    891 
    892         Performance and stability improvements on all platforms.
    893 
    894 
    895 2013-06-06: Version 3.19.10
    896 
    897         Performance and stability improvements on all platforms.
    898 
    899 
    900 2013-06-05: Version 3.19.9
    901 
    902         Implemented Load IC support for loading properties from primitive
    903         values to avoid perpetual soft deopts.  (Chromium issue 242512)
    904 
    905         Implemented Freeing of PerThreadAssertData when possible to avoid
    906         memory leak. (Chromium issue 246567)
    907 
    908         Removed V8_USE_OLD_STYLE_PERSISTENT_HANDLE_VISITORS.
    909 
    910         Performance and stability improvements on all platforms.
    911 
    912 
    913 2013-06-03: Version 3.19.8
    914 
    915         Fixed bug with inlining 'Array' function. (Chromium issue 244461)
    916 
    917         Fixed initialization of literal objects. (Chromium issue 245424)
    918 
    919         Fixed function name inferred inside closures. (Chromium issue 224884)
    920 
    921         Performance and stability improvements on all platforms.
    922 
    923 
    924 2013-05-31: Version 3.19.7
    925 
    926         Added support for //# sourceURL similar to deprecated //@ sourceURL one.
    927         (issue 2702)
    928 
    929         Made sure IfBuilder::Return clears the current block.
    930         (Chromium issue 243868)
    931 
    932         Fixed two CPU profiler tests on ARM and MIPS simulators
    933         (issue 2628)
    934 
    935         Fixed idle incremental GC for large objects.
    936         (Chromium issue 241815)
    937 
    938         Disabled --optimize-constructed-arrays due to crashes
    939         (Chromium issue 244461)
    940 
    941         Performance and stability improvements on all platforms.
    942 
    943 
    944 2013-05-28: Version 3.19.6
    945 
    946         Fixed IfBuilder::Deopt to clear the current block
    947         (Chromium issue 243868).
    948 
    949         Performance and stability improvements on all platforms.
    950 
    951 
    952 2013-05-27: Version 3.19.5
    953 
    954         Reset regexp parser flag after scanning ahead for capture groups.
    955         (issue 2690)
    956 
    957         Removed flakiness in test-cpu-profiler/SampleWhenFrameIsNotSetup.
    958         (issue 2628)
    959 
    960         Performance and stability improvements on all platforms.
    961 
    962 
    963 2013-05-24: Version 3.19.4
    964 
    965         Fixed edge case in stack trace formatting. (Chromium issue 237617)
    966 
    967         Fixed embedded new-space pointer in LCmpObjectEqAndBranch. (Chromium
    968 	issue 240032)
    969 
    970         Made Object.freeze fast (issue 1858, Chromium issue 115960)
    971 
    972         Fixed bogus deopt in BuildEmitDeepCopy for holey arrays. (Chromium issue
    973         242924)
    974 
    975         Performance and stability improvements on all platforms.
    976 
    977 
    978 2013-05-22: Version 3.19.3
    979 
    980         Performance and stability improvements on all platforms.
    981 
    982 
    983 2013-05-17: Version 3.19.2
    984 
    985         Fill in one-word-fillers for the unused property fields
    986         (Chromium issue 240056).
    987 
    988         Removed use_system_v8 logic from the mainline gyp file
    989         (Chromium issue 226860).
    990 
    991         Skip CPU profiler samples where top function's stack frame is not
    992         set up properly (issue 2628).
    993 
    994         Performance and stability improvements on all platforms.
    995 
    996 
    997 2013-05-14: Version 3.19.1
    998 
    999         Fixed missing hole check for loads from Smi arrays when all uses are
   1000         changes (Chromium issue 233737)
   1001 
   1002         Performance and stability improvements on all platforms.
   1003 
   1004 
   1005 2013-05-10: Version 3.19.0
   1006 
   1007         Deprecated Context::New which returns Persistent.
   1008 
   1009         Added Persistent<T>::Reset which disposes the handle and redirects it to
   1010         point to another object.
   1011 
   1012         Deprecated WriteAscii and MayContainNonAscii.
   1013 
   1014         Exposed AssertNoAllocation to API.
   1015 
   1016         Performance and stability improvements on all platforms.
   1017 
   1018 
   1019 2013-04-30: Version 3.18.5
   1020 
   1021         Allowed setting debugger breakpoints on CompareNilICs (issue 2660)
   1022 
   1023         Fixed beyond-heap load on x64 Crankshafted StringCharFromCode
   1024         (Chromium issue 235311)
   1025 
   1026         Change 'Parse error' to three more informative messages.
   1027         (Chromium issue 2636)
   1028 
   1029         Performance and stability improvements on all platforms.
   1030 
   1031 
   1032 2013-04-26: Version 3.18.4
   1033 
   1034         Added a preliminary API for ES6 ArrayBuffers
   1035 
   1036         Replaced qsort with std::sort. (Chromium issue 2639)
   1037 
   1038         Performance and stability improvements on all platforms.
   1039 
   1040 
   1041 2013-04-24: Version 3.18.3
   1042 
   1043         Exposed the GC under a name that is less collision prone than window.gc.
   1044         (issue 2641)
   1045 
   1046         Do not emit double values at their use sites. (Chromium issue 234101)
   1047 
   1048         Added methods to allow resuming execution after calling
   1049         TerminateExecution(). (issue 2361)
   1050 
   1051         Performance and stability improvements on all platforms.
   1052 
   1053 
   1054 2013-04-22: Version 3.18.2
   1055 
   1056         OS::MemMove/OS::MemCopy: Don't call through to generated code when size
   1057         == 0 to avoid prefetching invalid memory (Chromium issue 233500)
   1058 
   1059         Removed heap snapshot size limit. (Chromium issue 232305)
   1060 
   1061         Performance and stability improvements on all platforms.
   1062 
   1063 
   1064 2013-04-18: Version 3.18.1
   1065 
   1066         Removed SCons related files and deprecated test suite configurations.
   1067 
   1068         Improved handling of unary plus (issue 2527).
   1069 
   1070         Performance and stability improvements on all platforms.
   1071 
   1072 
   1073 2013-04-17: Version 3.18.0
   1074 
   1075         Enabled pretenuring of fast literals in high promotion mode.
   1076 
   1077         Removed preparser library; link preparser executable against full V8.
   1078 
   1079         Fixed set-up of intrinsic's 'constructor' properties.
   1080         (Chromium issue 229445)
   1081 
   1082         ES6 symbols: extended V8 API to support symbols (issue 2158).
   1083 
   1084         Removed ARM support for VFP2.
   1085 
   1086         Made __proto__ a real JavaScript accessor property.
   1087         (issue 1949 and issue 2606)
   1088 
   1089         Performance and stability improvements on all platforms.
   1090 
   1091 
   1092 2013-04-04: Version 3.17.16
   1093 
   1094         Stack trace API: poison stack frames below the first strict mode frame.
   1095         (issue 2564)
   1096 
   1097         Made Isolate::GetHeapStatistics robust against half-initialized
   1098         isolates (Chromium issue 2591).
   1099 
   1100         Finished implementation of ES6 symbols aka. private names (issue 2158).
   1101 
   1102         Performance and stability improvements on all platforms.
   1103 
   1104 
   1105 2013-03-21: Version 3.17.15
   1106 
   1107         Rolled back API changes to maintain compatibility with older
   1108         3.17.x versions of V8.
   1109 
   1110         Disable zapping of global handles in release mode.
   1111 
   1112         Always mark the entire valid prefix of the descriptor array.
   1113         (Chromium issue 196331)
   1114 
   1115         Use internal memcpy for CopyWords and when copying code.
   1116         (Chromium issue 196330)
   1117 
   1118         Performance and stability improvements on all platforms.
   1119 
   1120 
   1121 2013-03-20: Version 3.17.14
   1122 
   1123         Use internal memcpy when initializing code objects.
   1124         (Chromium issue 196330)
   1125 
   1126         Disabled weak embedded maps because of crashes.
   1127         (Chromium issues 172489, 217858)
   1128 
   1129         Performance and stability improvements on all platforms.
   1130 
   1131 
   1132 2013-03-19: Version 3.17.13
   1133 
   1134         Turned Flags into a uint32_t typedef (Chromium issue 194749).
   1135 
   1136         Performance and stability improvements on all platforms.
   1137 
   1138 
   1139 2013-03-18: Version 3.17.12
   1140 
   1141         Unified kMaxArguments with number of bits used to encode it.
   1142         (Chromium issue 211741)
   1143 
   1144         Fixed detection of |handle_smi| case in
   1145         HOptimizedGraphBuilder::HandlePolymorphicCallNamed.
   1146         (Chromium issue 196583)
   1147 
   1148         Performance and stability improvements on all platforms.
   1149 
   1150 
   1151 2013-03-15: Version 3.17.11
   1152 
   1153         Added a version of the v8::HandleScope constructor with an v8::Isolate
   1154         parameter and made AdjustAmountOfExternalAllocatedMemory an instance
   1155         method of v8::Isolate.
   1156         (issue 2487)
   1157 
   1158         Fixed two register allocator bugs (off-by-one error/failure
   1159         propagation). (issue 2576)
   1160 
   1161         Fixed huge heap snapshot when a heavily shared context has many
   1162         variables. (Chromium issue 145687)
   1163 
   1164         Performance and stability improvements on all platforms.
   1165 
   1166 
   1167 2013-03-13: Version 3.17.10
   1168 
   1169         Fixed heap snapshot creation for Harmony collections. (issue 2535)
   1170 
   1171         Fixed register allocation corner case. (Chromium issue 177883)
   1172 
   1173         Performance and stability improvements on all platforms.
   1174 
   1175 
   1176 2013-03-08: Version 3.17.9
   1177 
   1178         Restored Function()'s expected string representation. (issue 2470)
   1179 
   1180         Enabled deprecatations (again). (issue 2487)
   1181 
   1182         Avoid bool to Oddball conversions by being lazy. (issue 2491)
   1183 
   1184         Added %p option to --logfile.
   1185 
   1186         Hardened Function()'s parsing of function literals. (issue 2470)
   1187 
   1188         ES6 symbols: Refine test for getOwnPropertyNames. (issue 2158)
   1189 
   1190         Performance and stability improvements on all platforms.
   1191 
   1192 
   1193 2013-03-07: Version 3.17.8
   1194 
   1195         Added missing license headers. (Chromium issue 98597)
   1196 
   1197         Inserted missing type cast in JSON.stringify. (issue 2570)
   1198 
   1199         Reverted "Send SIGPROF signals on the profiler event processor thread"
   1200         (issue 2571)
   1201 
   1202         Fixed Array.length, String.length and Function.prototype LoadICs on x64.
   1203         (issue 2568)
   1204 
   1205         ES6 symbols: filter symbols form for-in loops and Object.keys.
   1206         (issue 2158)
   1207 
   1208         Properly handle misses for StoreArrayLengthStub on ia32 and x64
   1209         (issue 2566)
   1210 
   1211         Fixed x32 handling of Atomic64. (Chromium issue chromium-os:36866)
   1212 
   1213         Removed "library" variable from standalone.gypi. (Chromium issue 111541)
   1214 
   1215         Fixed HCheckSmiOrInt <-> HBoundsCheck interaction wrt. representations.
   1216         (issue 2556)
   1217 
   1218         Enabled zapping of disposed global handles in release mode.
   1219         (Chromium issue 176056)
   1220 
   1221         Added workaround for redefinition of __proto__ property. (issue 2565)
   1222 
   1223         ES6 symbols: Allow symbols as property names. (issue 2158)
   1224 
   1225         Performance and stability improvements on all platforms.
   1226 
   1227 
   1228 2013-03-04: Version 3.17.7
   1229 
   1230         Limited recursion in regexp compilation by a budget.
   1231         (Chromium issue 178790)
   1232 
   1233         ES6 symbols: Implemented Symbol intrinsic and basic functionality
   1234         (issue 2158)
   1235 
   1236         Performance and stability improvements on all platforms.
   1237 
   1238 
   1239 2013-02-28: Version 3.17.6
   1240 
   1241         Fixed materialization of arguments objects with unknown values.
   1242         (Chromium issue 163530)
   1243 
   1244         Set default number of sweeper threads to at most four.
   1245 
   1246         Performance and stability improvements on all platforms.
   1247 
   1248 
   1249 2013-02-27: Version 3.17.5
   1250 
   1251         Made __proto__ a foreign callback on Object.prototype.
   1252         (issue 621, issue 1949 and issue 2441)
   1253 
   1254         Performance and stability improvements on all platforms.
   1255 
   1256 
   1257 2013-02-25: Version 3.17.4
   1258 
   1259         Performance and stability improvements on all platforms.
   1260 
   1261 
   1262 2013-02-21: Version 3.17.3
   1263 
   1264         Performance and stability improvements on all platforms.
   1265 
   1266 
   1267 2013-02-19: Version 3.17.2
   1268 
   1269         Removed bogus check for TOP register in deoptimizer.
   1270         (Chromium issue 176943)
   1271 
   1272         Made the Isolate parameter mandatory for internal HandleScopes.
   1273         (issue 2487)
   1274 
   1275         Fixed f.apply() optimization when declared arguments are mutated.
   1276         (issue 2539)
   1277 
   1278         Performance and stability improvements on all platforms.
   1279 
   1280 
   1281 2013-02-14: Version 3.17.1
   1282 
   1283         Performance and stability improvements on all platforms.
   1284 
   1285 
   1286 2013-02-13: Version 3.17.0
   1287 
   1288         Enabled parallel sweeping.
   1289 
   1290         Don't try to unlink instructions twice during GVN
   1291         (Chromium issue 175141)
   1292 
   1293         Fixed code flusher disabling while marking incrementally.
   1294         (Chromium issue 173458, 168582)
   1295 
   1296         Don't use TLS for space iterators.
   1297         (issue 2531)
   1298 
   1299         Added new GetHeapStatistics API entry and deprecated old one.
   1300 
   1301         Fixed DoubleStackSlot-to-DoubleStackSlot moves on ia32. Unified
   1302         platform-independent code.
   1303         (Chromium issue 173907)
   1304 
   1305         Added --trace-array-abuse to help find OOB accesses.
   1306 
   1307         Performance and stability improvements on all platforms.
   1308 
   1309 
   1310 2013-02-06: Version 3.16.14
   1311 
   1312         Performance and stability improvements on all platforms.
   1313 
   1314 
   1315 2013-02-04: Version 3.16.13
   1316 
   1317         Tagged stubs that rely on instance types as MEGAMORPHIC.
   1318         (Chromium issue 173974)
   1319 
   1320         Fixed clearing of dead dependent codes and verifing of weak
   1321         embedded maps on full GC. (Chromium issue 172488,172489)
   1322 
   1323         Made the arm port build cleanly with Clang.
   1324 
   1325         Performance and stability improvements on all platforms.
   1326 
   1327 
   1328 2013-01-31: Version 3.16.12
   1329 
   1330         Performance and stability improvements on all platforms.
   1331 
   1332 
   1333 2013-01-30: Version 3.16.11
   1334 
   1335         Put making embedded maps in optimized code weak behind a flag.
   1336         (Chromium issue 172488,172489)
   1337 
   1338         Performance and stability improvements on all platforms.
   1339 
   1340 
   1341 2013-01-25: Version 3.16.10
   1342 
   1343         Avoid excessive memory usage during redundant phi elimination.
   1344         (issue 2510)
   1345 
   1346         Fixed additional spec violations wrt RegExp.lastIndex.
   1347         (issue 2437)
   1348 
   1349         Added Isolate parameter to Persistent class.
   1350         (issue 2487)
   1351 
   1352         Performance and stability improvements on all platforms.
   1353 
   1354 
   1355 2013-01-24: Version 3.16.9
   1356 
   1357         Made embedded maps in optimized code weak.
   1358         (issue 2073)
   1359 
   1360         Fixed corner case when JSFunction is evicted from flusher.
   1361         (Chromium issue 168801)
   1362 
   1363         Correctly set kCanBeDivByZero flag for HMathFloorOfDiv.
   1364         (Chromium issue 171641)
   1365 
   1366         Performance and stability improvements on all platforms.
   1367 
   1368 
   1369 2013-01-23: Version 3.16.8
   1370 
   1371         Correctly reset lastIndex in an RegExp object.
   1372         (Chromium issue 170856)
   1373 
   1374         Added a workaround for Windows compilation problems related to V8EXPORT.
   1375         (issue 2507)
   1376 
   1377         tools/run-tests.py: shlex.split() the value of --command-prefix
   1378         (Chromium issue 171553)
   1379 
   1380         Fixed pattern detection for replacing shifts by rotation.
   1381         (Chromium issue 2499)
   1382 
   1383         Performance and stability improvements on all platforms.
   1384 
   1385 
   1386 2013-01-21: Version 3.16.7
   1387 
   1388         Removed <(library) usage from v8.gyp.
   1389         (Chromium issue 111541)
   1390 
   1391         Fixed out of bounds memory access in TestJSArrayForAllocationSiteInfo.
   1392         (Chromium issue 169928)
   1393 
   1394         Performance and stability improvements on all platforms.
   1395 
   1396 
   1397 2013-01-18: Version 3.16.6
   1398 
   1399         Made the Isolate parameter mandatory in Locker and Unlocker classes.
   1400         (issue 2487)
   1401 
   1402         Avoid pointer underflow in CopyCharsUnsigned.
   1403         (issue 2493)
   1404 
   1405         Generate shim headers when using system v8.
   1406         (Chromium issue 165264)
   1407 
   1408         Fixed arguments materialization for inlined apply().
   1409         (issue 2489)
   1410 
   1411         Sync'ed laziness between BuildFunctionInfo and MakeFunctionInfo.
   1412         (Chromium issue 147497)
   1413 
   1414         Added sanity check to CodeFlusher::AddCandidate.
   1415         (Chromium issue 169209)
   1416 
   1417         Performance and stability improvements on all platforms.
   1418 
   1419 
   1420 2013-01-15: Version 3.16.5
   1421 
   1422         Removed deprecated functions from V8's external API.
   1423 
   1424         Prepared API for WebKit use of Latin-1.
   1425 
   1426         Fixed V8 issue 2486.
   1427 
   1428         Fixed Chromium issue 169723.
   1429 
   1430         Performance and stability improvements on all platforms.
   1431 
   1432 
   1433 2013-01-11: Version 3.16.4
   1434 
   1435         Fixed Chromium issues 168545 and 169209.
   1436 
   1437         Performance and stability improvements on all platforms.
   1438 
   1439 
   1440 2013-01-09: Version 3.16.3
   1441 
   1442         Improved GC performance when moving parts of a FixedArray (issue 2452).
   1443 
   1444         Enabled readline on d8 while building a shared lib (issue 1781).
   1445 
   1446         Fixed missing exception check in typed array constructor
   1447         (Chromium issue 168545).
   1448 
   1449         Check for read-only-ness when preparing for array sort (issue 2419).
   1450 
   1451         Performance and stability improvements on all platforms.
   1452 
   1453 
   1454 2013-01-04: Version 3.16.2
   1455 
   1456         Added Makefile options to build for the Raspberry Pi (armv7=0,
   1457         arm_fpu=vfp2).
   1458 
   1459         Performance and stability improvements on all platforms.
   1460 
   1461 
   1462 2012-12-27: Version 3.16.1
   1463 
   1464         Fixed x64 MathMinMax for negative untagged int32 arguments.
   1465         (Chromium issue 164442)
   1466 
   1467         Fixed FloatingPointHelper::CheckSSE2OperandIsInt32.
   1468         (issue 2458)
   1469 
   1470         Performance and stability improvements on all platforms.
   1471 
   1472 
   1473 2012-12-21: Version 3.16.0
   1474 
   1475         V8_Fatal now prints C++ stack trace in debug mode.
   1476 
   1477         Added HTML-based tick processor.
   1478 
   1479         Continued implementation of Object.observe (V8 issue 2409).
   1480 
   1481         Fixed V8 issues 2243, 2340, 2393, 2399, 2457.
   1482 
   1483         Fixed Chromium issues 125308, 165637, 166379, 166553.
   1484 
   1485         Performance and stability improvements on all platforms.
   1486 
   1487 
   1488 2012-12-10: Version 3.15.11
   1489 
   1490         Define CAN_USE_VFP2/3_INSTRUCTIONS based on arm_neon and arm_fpu GYP
   1491         flags.
   1492 
   1493         Performance and stability improvements on all platforms.
   1494 
   1495 
   1496 2012-12-07: Version 3.15.10
   1497 
   1498         Enabled optimisation of functions inside eval. (issue 2315)
   1499 
   1500         Fixed spec violations in methods of Number.prototype. (issue 2443)
   1501 
   1502         Added GCTracer metrics for a scavenger GC for DOM wrappers.
   1503 
   1504         Performance and stability improvements on all platforms.
   1505 
   1506 
   1507 2012-12-06: Version 3.15.9
   1508 
   1509         Fixed candidate eviction in code flusher.
   1510         (Chromium issue 159140)
   1511 
   1512         Iterate through all arguments for side effects in Math.min/max.
   1513         (issue 2444)
   1514 
   1515         Fixed spec violations related to regexp.lastIndex
   1516         (issue 2437, issue 2438)
   1517 
   1518         Performance and stability improvements on all platforms.
   1519 
   1520 
   1521 2012-12-04: Version 3.15.8
   1522 
   1523         Enforced stack allocation of TryCatch blocks.
   1524         (issue 2166,chromium:152389)
   1525 
   1526         Fixed external exceptions in external try-catch handlers.
   1527         (issue 2166)
   1528 
   1529         Activated incremental code flushing by default.
   1530 
   1531         Performance and stability improvements on all platforms.
   1532 
   1533 
   1534 2012-11-30: Version 3.15.7
   1535 
   1536         Activated code aging by default.
   1537 
   1538         Included more information in --prof log.
   1539 
   1540         Removed eager sweeping for lazy swept spaces. Try to find in
   1541         SlowAllocateRaw a bounded number of times a big enough memory slot.
   1542         (issue 2194)
   1543 
   1544         Performance and stability improvements on all platforms.
   1545 
   1546 
   1547 2012-11-26: Version 3.15.6
   1548 
   1549         Ensure double arrays are filled with holes when extended from
   1550         variations of empty arrays. (Chromium issue 162085)
   1551 
   1552         Performance and stability improvements on all platforms.
   1553 
   1554 
   1555 2012-11-23: Version 3.15.5
   1556 
   1557         Fixed JSON.stringify for objects with interceptor handlers.
   1558         (Chromium issue 161028)
   1559 
   1560         Fixed corner case in x64 compare stubs. (issue 2416)
   1561 
   1562         Performance and stability improvements on all platforms.
   1563 
   1564 
   1565 2012-11-16: Version 3.15.4
   1566 
   1567         Fixed Array.prototype.join evaluation order. (issue 2263)
   1568 
   1569         Perform CPU sampling by CPU sampling thread only iff processing thread
   1570         is not running. (issue 2364)
   1571 
   1572         When using an Object as a set in Object.getOwnPropertyNames, null out
   1573         the proto. (issue 2410)
   1574 
   1575         Disabled EXTRA_CHECKS in Release build.
   1576 
   1577         Heap explorer: Show representation of strings.
   1578 
   1579         Removed 'type' and 'arguments' properties from Error object.
   1580         (issue 2397)
   1581 
   1582         Added atomics implementation for ThreadSanitizer v2.
   1583         (Chromium issue 128314)
   1584 
   1585         Fixed LiveEdit crashes when object/array literal is added. (issue 2368)
   1586 
   1587         Performance and stability improvements on all platforms.
   1588 
   1589 
   1590 2012-11-13: Version 3.15.3
   1591 
   1592         Changed sample shell to send non-JS output (e.g. errors) to stderr
   1593         instead of stdout.
   1594 
   1595         Correctly check for stack overflow even when interrupt is pending.
   1596         (issue 214)
   1597 
   1598         Collect stack trace on stack overflow. (issue 2394)
   1599 
   1600         Performance and stability improvements on all platforms.
   1601 
   1602 
   1603 2012-11-12: Version 3.15.2
   1604 
   1605         Function::GetScriptOrigin supplies sourceURL when script name is
   1606         not available.  (Chromium issue 159413)
   1607 
   1608         Made formatting error message side-effect-free.  (issue 2398)
   1609 
   1610         Fixed length check in JSON.stringify.  (Chromium issue 160010)
   1611 
   1612         ES6: Added support for Set and Map clear method (issue 2400)
   1613 
   1614         Fixed slack tracking when instance prototype changes.
   1615         (Chromium issue 157019)
   1616 
   1617         Fixed disabling of code flusher while marking.  (Chromium issue 159140)
   1618 
   1619         Added a test case for object grouping in a scavenger GC (issue 2077)
   1620 
   1621         Support shared library build of Android for v8.
   1622         (Chromium issue 158821)
   1623 
   1624         ES6: Added support for size to Set and Map (issue 2395)
   1625 
   1626         Performance and stability improvements on all platforms.
   1627 
   1628 
   1629 2012-11-06: Version 3.15.1
   1630 
   1631         Put incremental code flushing behind a flag. (Chromium issue 159140)
   1632 
   1633         Performance and stability improvements on all platforms.
   1634 
   1635 
   1636 2012-10-31: Version 3.15.0
   1637 
   1638         Loosened aligned code target requirement on ARM (issue 2380)
   1639 
   1640         Fixed JSON.parse to treat leading zeros correctly.
   1641         (Chromium issue 158185)
   1642 
   1643         Performance and stability improvements on all platforms.
   1644 
   1645 
   1646 2012-10-22: Version 3.14.5
   1647 
   1648         Killed off the SCons based build.
   1649 
   1650         Added a faster API for creating v8::Integer objects.
   1651 
   1652         Speeded up function deoptimization by avoiding quadratic pass over
   1653         optimized function list. (Chromium issue 155270)
   1654 
   1655         Always invoke the default Array.sort functions from builtin functions.
   1656         (issue 2372)
   1657 
   1658         Reverted recent CPU profiler changes because they broke --prof.
   1659         (issue 2364)
   1660 
   1661         Switched code flushing to use different JSFunction field.
   1662         (issue 1609)
   1663 
   1664         Performance and stability improvements on all platforms.
   1665 
   1666 
   1667 2012-10-15: Version 3.14.4
   1668 
   1669         Allow evals for debugger even if they are prohibited in the debugee
   1670         context. (Chromium issue 154733)
   1671 
   1672         Enabled --verify-heap in release mode (issue 2120)
   1673 
   1674         Performance and stability improvements on all platforms.
   1675 
   1676 
   1677 2012-10-11: Version 3.14.3
   1678 
   1679         Use native context to retrieve ErrorMessageForCodeGenerationFromStrings
   1680         (Chromium issue 155076).
   1681 
   1682         Bumped variable limit further to 2^17 (Chromium issue 151625).
   1683 
   1684         Performance and stability improvements on all platforms.
   1685 
   1686 
   1687 2012-10-10: Version 3.14.2
   1688 
   1689         ARM: allowed VFP3 instructions when hardfloat is enabled.
   1690         (Chromium issue 152506)
   1691 
   1692         Fixed instance_descriptors() and PushStackTraceAndDie regressions.
   1693         (Chromium issue 151749)
   1694 
   1695         Made GDBJIT interface compile again. (issue 1804)
   1696 
   1697         Fixed Accessors::FunctionGetPrototype's proto chain traversal.
   1698         (Chromium issue 143967)
   1699 
   1700         Made sure that names of temporaries do not clash with real variables.
   1701         (issue 2322)
   1702 
   1703         Rejected local module declarations. (Chromium issue 150628)
   1704 
   1705         Rejected uses of lexical for-loop variable on the RHS. (issue 2322)
   1706 
   1707         Fixed slot recording of code target patches.
   1708         (Chromium issue 152615,chromium:144230)
   1709 
   1710         Changed the Android makefile to use GCC 4.6 instead of GCC 4.4.3.
   1711 
   1712         Performance and stability improvements on all platforms.
   1713 
   1714 
   1715 2012-10-01: Version 3.14.1
   1716 
   1717         Don't set -m32 flag when compiling with Android ARM compiler.
   1718         (Chromium issue 143889)
   1719 
   1720         Restore the descriptor array before returning allocation failure.
   1721         (Chromium issue 151750)
   1722 
   1723         Lowered kMaxVirtualRegisters (v8 issue 2139, Chromium issues 123822 and
   1724         128252).
   1725 
   1726         Pull more recent gyp in 'make dependencies'.
   1727 
   1728         Made sure that the generic KeyedStoreIC changes length and element_kind
   1729         atomically (issue 2346).
   1730 
   1731         Bumped number of allowed variables per scope to 65535, to address GWT.
   1732         (Chromium issue 151625)
   1733 
   1734         Support sourceURL for dynamically inserted scripts (issue 2342).
   1735 
   1736         Performance and stability improvements on all platforms.
   1737 
   1738 
   1739 2012-09-20: Version 3.14.0
   1740 
   1741         Fixed missing slot recording during clearing of CallICs.
   1742         (Chromium issue 144230)
   1743 
   1744         Fixed LBoundsCheck on x64 to handle (stack slot + constant) correctly.
   1745         (Chromium issue 150729)
   1746 
   1747         Fixed minus zero test. (Issue 2133)
   1748 
   1749         Fixed setting array length to zero for slow elements.
   1750         (Chromium issue 146910)
   1751 
   1752         Fixed lost arguments dropping in HLeaveInlined.
   1753         (Chromium issue 150545)
   1754 
   1755         Fixed casting error for receiver of interceptors.
   1756         (Chromium issue 149912)
   1757 
   1758         Throw a more descriptive exception when blocking 'eval' via CSP.
   1759         (Chromium issue 140191)
   1760 
   1761         Fixed debugger's eval when close to stack overflow. (issue 2318)
   1762 
   1763         Added checks to live edit. (issue 2297)
   1764 
   1765         Switched on code compaction on incremental GCs.
   1766 
   1767         Fixed caching of optimized code for OSR. (issue 2326)
   1768 
   1769         Not mask exception thrown by toString in String::UtfValue etc.
   1770         (issue 2317)
   1771 
   1772         Fixed API check for length of external arrays. (Chromium issue 148896)
   1773 
   1774         Ensure correct enumeration indices in the dict (Chromium issue 148376)
   1775 
   1776         Correctly initialize regexp global cache. (Chromium issue 148378)
   1777 
   1778         Fixed arguments object materialization during deopt. (issue 2261)
   1779 
   1780         Introduced new API to expose external string resource regardless of
   1781         encoding.
   1782 
   1783         Fixed CHECK failure in LCodeGen::DoWrapReceiver when
   1784         --deopt-every-n-times flag is present
   1785         (Chromium issue 148389)
   1786 
   1787         Fixed edge case of extension with NULL as source string.
   1788         (Chromium issue 144649)
   1789 
   1790         Fixed array index dehoisting. (Chromium issue 141395)
   1791 
   1792         Performance and stability improvements on all platforms.
   1793 
   1794 
   1795 2012-09-11: Version 3.13.7
   1796 
   1797         Enable/disable LiveEdit using the (C++) debug API.
   1798 
   1799         Performance and stability improvements on all platforms.
   1800 
   1801 
   1802 2012-09-06: Version 3.13.6
   1803 
   1804         Added validity checking to API functions and calls.
   1805 
   1806         Disabled accessor inlining (Chromium issue 134609).
   1807 
   1808         Fixed bug in Math.min/max in optimized code (Chromium issue 145961).
   1809 
   1810         Directly use %ObjectKeys in json stringify (Chromium issue 2312).
   1811 
   1812         Fixed VS2005 build (issue 2313).
   1813 
   1814         Activated fixed ES5 readonly semantics by default.
   1815 
   1816         Added hardfp flag to the Makefile.
   1817 
   1818         Performance and stability improvements on all platforms.
   1819 
   1820 
   1821 2012-08-29: Version 3.13.5
   1822 
   1823         Release stack trace data after firing Error.stack accessor.
   1824         (issue 2308)
   1825 
   1826         Added a new API V8::SetJitCodeEventHandler to push code name and
   1827         location to users such as profilers.
   1828 
   1829         Allocate block-scoped global bindings to global context.
   1830 
   1831         Performance and stability improvements on all platforms.
   1832 
   1833 
   1834 2012-08-28: Version 3.13.4
   1835 
   1836         Print reason for disabling optimization. Kill --trace-bailout flag.
   1837 
   1838         Provided option to disable full DEBUG build on Android.
   1839 
   1840         Introduced global contexts to represent lexical global scope(s).
   1841 
   1842         Fixed rounding in Uint8ClampedArray setter. (issue 2294)
   1843 
   1844         Performance and stability improvements on all platforms.
   1845 
   1846 
   1847 2012-08-21: Version 3.13.3
   1848 
   1849         Performance and stability improvements on all platforms.
   1850 
   1851 
   1852 2012-08-20: Version 3.13.2
   1853 
   1854         Performance and stability improvements on all platforms.
   1855 
   1856 
   1857 2012-08-16: Version 3.13.1
   1858 
   1859         Performance and stability improvements on all platforms.
   1860 
   1861 
   1862 2012-08-10: Version 3.13.0
   1863 
   1864         Added histograms for total allocated/live heap size, as well as
   1865         allocated size and percentage of total for map and cell space.
   1866 
   1867         Fixed parseInt's octal parsing behavior (ECMA-262 Annex E 15.1.2.2).
   1868         (issue 1645)
   1869 
   1870         Added checks for interceptors to negative lookup code in Crankshaft.
   1871         (Chromium issue 140473)
   1872 
   1873         Made incremental marking clear ICs and type feedback cells.
   1874 
   1875         Performance and stability improvements on all platforms.
   1876 
   1877 
   1878 2012-08-01: Version 3.12.19
   1879 
   1880         Performance and stability improvements on all platforms.
   1881 
   1882 
   1883 2012-07-30: Version 3.12.18
   1884 
   1885         Forced using bit-pattern for signed zero double. (issue 2239)
   1886 
   1887         Made sure double to int conversion is correct. (issue 2260)
   1888 
   1889         Performance and stability improvements on all platforms.
   1890 
   1891 
   1892 2012-07-27: Version 3.12.17
   1893 
   1894         Always set the callee's context when calling a function from optimized
   1895         code.
   1896         (Chromium issue 138887)
   1897 
   1898         Fixed building with GCC 3.x
   1899         (issue 2016, 2017)
   1900 
   1901         Improved API calls that return empty handles.
   1902         (issue 2245)
   1903 
   1904         Performance and stability improvements on all platforms.
   1905 
   1906 
   1907 2012-07-25: Version 3.12.16
   1908 
   1909         Performance and stability improvements on all platforms.
   1910 
   1911 
   1912 2012-07-24: Version 3.12.15
   1913 
   1914         Added PRESERVE_ASCII_NULL option to String::WriteAscii.
   1915         (issue 2252)
   1916 
   1917         Added dependency to HLoadKeyed* instructions to prevent invalid
   1918         hoisting. (Chromium issue 137768)
   1919 
   1920         Enabled building d8 for Android on Mac.
   1921 
   1922         Interpret negative hexadecimal literals as NaN.
   1923         (issue 2240)
   1924 
   1925         Expose counters in javascript when using --track-gc-object-stats.
   1926 
   1927         Enabled building and testing V8 on Android IA.
   1928 
   1929         Added --trace-parse flag to parser.
   1930 
   1931         Performance and stability improvements on all platforms.
   1932 
   1933 
   1934 2012-07-18: Version 3.12.14
   1935 
   1936         Deactivated optimization of packed arrays.
   1937         (Chromium issue 137768)
   1938 
   1939         Fixed broken accessor transition.
   1940         (Chromium issue 137689)
   1941 
   1942         Performance and stability improvements on all platforms.
   1943 
   1944 
   1945 2012-07-17: Version 3.12.13
   1946 
   1947         Fixed missing tagging of stack value in finally block.
   1948         (Chromium issue 137496)
   1949 
   1950         Added more support for heap analysis.
   1951 
   1952         Performance and stability improvements on all platforms.
   1953 
   1954 
   1955 2012-07-16: Version 3.12.12
   1956 
   1957         Added an option to the tickprocessor to specify the directory for lib
   1958         lookup.
   1959 
   1960         Fixed ICs for slow objects with native accessor (Chromium issue 137002).
   1961 
   1962         Fixed transcendental cache on ARM in optimized code (issue 2234).
   1963 
   1964         New heap inspection tools: counters for object sizes and counts,
   1965         histograms for external fragmentation.
   1966 
   1967         Incorporated constness into inferred interfaces (in preparation for
   1968         handling imports) (issue 1569).
   1969 
   1970         Performance and stability improvements on all platforms.
   1971 
   1972 
   1973 2012-07-12: Version 3.12.11
   1974 
   1975         Renamed "mips" arch to "mipsel" in the GYP build.
   1976 
   1977         Fixed computation of call targets on prototypes in Crankshaft.
   1978         (Chromium issue 125148)
   1979 
   1980         Removed use of __lookupGetter__ when generating stack trace.
   1981         (issue 1591)
   1982 
   1983         Turned on ES 5.2 globals semantics by default.
   1984         (issue 1991, Chromium issue 80591)
   1985 
   1986         Synced preparser and parser wrt syntax error in switch..case.
   1987         (issue 2210)
   1988 
   1989         Fixed reporting of octal literals in strict mode when preparsing.
   1990         (issue 2220)
   1991 
   1992         Fixed inline constructors for Harmony Proxy prototypes.
   1993         (issue 2225)
   1994 
   1995         Performance and stability improvements on all platforms.
   1996 
   1997 
   1998 2012-07-10: Version 3.12.10
   1999 
   2000         Re-enabled and fixed issue with array bounds check elimination
   2001         (Chromium issue 132114).
   2002 
   2003         Fixed Debug::Break crash. (Chromium issue 131642)
   2004 
   2005         Added optimizing compiler support for JavaScript getters.
   2006 
   2007         Performance and stability improvements on all platforms.
   2008 
   2009 
   2010 2012-07-06: Version 3.12.9
   2011 
   2012         Correctly advance the scanner when scanning unicode regexp flag.
   2013         (Chromium issue 136084)
   2014 
   2015         Fixed unhandlified code calling Harmony Proxy traps.
   2016         (issue 2219)
   2017 
   2018         Performance and stability improvements on all platforms.
   2019 
   2020 
   2021 2012-07-05: Version 3.12.8
   2022 
   2023         Implemented TypedArray.set and ArrayBuffer.slice in d8.
   2024 
   2025         Performance and stability improvements on all platforms.
   2026 
   2027 
   2028 2012-07-03: Version 3.12.7
   2029 
   2030         Fixed lazy compilation for strict eval scopes.
   2031         (Chromium issue 135066)
   2032 
   2033         Made MACOSX_DEPLOYMENT_TARGET configurable in GYP.
   2034         (issue 2151)
   2035 
   2036         Report "hidden properties" in heap profiler for properties case.
   2037         (issue 2212)
   2038 
   2039         Activated optimization of packed arrays by default.
   2040 
   2041         Performance and stability improvements on all platforms.
   2042 
   2043 
   2044 2012-06-29: Version 3.12.6
   2045 
   2046         Cleaned up hardfp ABI detection for ARM (V8 issue 2140).
   2047 
   2048         Extended TypedArray support in d8.
   2049 
   2050 
   2051 2012-06-28: Version 3.12.5
   2052 
   2053         Fixed lazy parsing heuristics to respect outer scope.
   2054         (Chromium issue 135008)
   2055 
   2056         Allow using test-wrapper-gypbuild.py on Windows when no python
   2057         interpreter is registered.
   2058 
   2059         Performance and stability improvements on all platforms.
   2060 
   2061 
   2062 2012-06-27: Version 3.12.4
   2063 
   2064         Removed -fomit-frame-pointer flag from Release builds to make
   2065         the stack walkable by TCMalloc (Chromium issue 133723).
   2066 
   2067         Ported r7868 (constant masking) to x64 (issue 1374).
   2068 
   2069         Expose more detailed memory statistics (issue 2201).
   2070 
   2071         Fixed Harmony Maps and WeakMaps for undefined values
   2072         (Chromium issue 132744).
   2073 
   2074         Correctly throw reference error in strict mode with ICs disabled
   2075         (issue 2119).
   2076 
   2077         Performance and stability improvements on all platforms.
   2078 
   2079 
   2080 2012-06-25: Version 3.12.3
   2081 
   2082         Reverted r11835 'Unify promotion and allocation limit computation' due
   2083         to V8 Splay performance regression on Mac.  (Chromium issue 134183)
   2084 
   2085         Fixed sharing of literal boilerplates for optimized code.  (issue 2193)
   2086 
   2087         Performance and stability improvements on all platforms.
   2088 
   2089 
   2090 2012-06-22: Version 3.12.2
   2091 
   2092         Made near-jump check more strict in LoadNamedFieldPolymorphic on
   2093         ia32/x64. (Chromium issue 134055)
   2094 
   2095         Fixed lazy sweeping heuristics to prevent old-space expansion.
   2096         (issue 2194)
   2097 
   2098         Performance and stability improvements on all platforms.
   2099 
   2100 
   2101 2012-06-21: Version 3.12.1
   2102 
   2103         Performance and stability improvements on all platforms.
   2104 
   2105 
   2106 2012-06-20: Version 3.12.0
   2107 
   2108         Fixed Chromium issues:
   2109         115100, 129628, 131994, 132727, 132741, 132742, 133211
   2110 
   2111         Fixed V8 issues:
   2112         915, 1914, 2034, 2087, 2094, 2134, 2156, 2166, 2172, 2177, 2179, 2185
   2113 
   2114         Added --extra-code flag to mksnapshot to load JS code into the VM
   2115         before creating the snapshot.
   2116 
   2117         Support 'restart call frame' command in the debugger.
   2118 
   2119         Performance and stability improvements on all platforms.
   2120 
   2121 
   2122 2012-06-13: Version 3.11.10
   2123 
   2124         Implemented heap profiler memory usage reporting.
   2125 
   2126         Preserved error message during finally block in try..finally.
   2127         (Chromium issue 129171)
   2128 
   2129         Fixed EnsureCanContainElements to properly handle double values.
   2130         (issue 2170)
   2131 
   2132         Improved heuristics to keep objects in fast mode with inherited
   2133         constructors.
   2134 
   2135         Performance and stability improvements on all platforms.
   2136 
   2137 
   2138 2012-06-06: Version 3.11.9
   2139 
   2140         Implemented ES5-conformant semantics for inherited setters and read-only
   2141         properties. Currently behind --es5_readonly flag, because it breaks
   2142         WebKit bindings.
   2143 
   2144         Exposed last seen heap object id via v8 public api.
   2145 
   2146         Performance and stability improvements on all platforms.
   2147 
   2148 
   2149 2012-05-31: Version 3.11.8
   2150 
   2151         Avoid overdeep recursion in regexp where a guarded expression with a
   2152         minimum repetition count is inside another quantifier.
   2153         (Chromium issue 129926)
   2154 
   2155         Fixed missing write barrier in store field stub.
   2156         (issues 2143, 1465, Chromium issue 129355)
   2157 
   2158         Proxies: Fixed receiver for setters inherited from proxies.
   2159         Proxies: Fixed ToStringArray function so that it does not reject some
   2160         keys.
   2161         (issue 1543)
   2162 
   2163         Performance and stability improvements on all platforms.
   2164 
   2165 
   2166 2012-05-29: Version 3.11.7
   2167 
   2168         Get better function names in stack traces.
   2169 
   2170         Performance and stability improvements on all platforms.
   2171 
   2172 
   2173 2012-05-24: Version 3.11.6
   2174 
   2175         Fixed RegExp.prototype.toString for incompatible receivers
   2176         (issue 1981).
   2177 
   2178         Performance and stability improvements on all platforms.
   2179 
   2180 
   2181 2012-05-23: Version 3.11.5
   2182 
   2183         Performance and stability improvements on all platforms.
   2184 
   2185 
   2186 2012-05-22: Version 3.11.4
   2187 
   2188         Some cleanup to common.gypi. This fixes some host/target combinations
   2189         that weren't working in the Make build on Mac.
   2190 
   2191         Handle EINTR in socket functions and continue incomplete sends.
   2192         (issue 2098)
   2193 
   2194         Fixed python deprecations.  (issue 1391)
   2195 
   2196         Made socket send and receive more robust and return 0 on failure.
   2197         (Chromium issue 15719)
   2198 
   2199         Fixed GCC 4.7 (C++11) compilation.  (issue 2136)
   2200 
   2201         Set '-m32' option for host and target platforms
   2202 
   2203         Performance and stability improvements on all platforms.
   2204 
   2205 
   2206 2012-05-18: Version 3.11.3
   2207 
   2208         Disable optimization for functions that have scopes that cannot be
   2209         reconstructed from the context chain. (issue 2071)
   2210 
   2211         Define V8_EXPORT to nothing for clients of v8. (Chromium issue 90078)
   2212 
   2213         Correctly check for native error objects.  (Chromium issue 2138)
   2214 
   2215         Performance and stability improvements on all platforms.
   2216 
   2217 
   2218 2012-05-16: Version 3.11.2
   2219 
   2220         Revert r11496. (Chromium issue 128146)
   2221 
   2222         Implement map collection for incremental marking. (issue 1465)
   2223 
   2224         Add toString method to CallSite (which describes a frame of the
   2225         stack trace).
   2226 
   2227 
   2228 2012-05-15: Version 3.11.1
   2229 
   2230         Added a readbuffer function to d8 that reads a file into an ArrayBuffer.
   2231 
   2232         Fix freebsd build. (V8 issue 2126)
   2233 
   2234         Performance and stability improvements on all platforms.
   2235 
   2236 
   2237 2012-05-11: Version 3.11.0
   2238 
   2239         Fixed compose-discard crasher from r11524 (issue 2123).
   2240 
   2241         Activated new global semantics by default. Global variables can
   2242         now shadow properties of the global object (ES5.1 erratum).
   2243 
   2244         Properly set ElementsKind of empty FAST_DOUBLE_ELEMENTS arrays when
   2245         transitioning (Chromium issue 117409).
   2246 
   2247         Made Error.prototype.name writable again, as required by the spec and
   2248         the web (Chromium issue 69187).
   2249 
   2250         Implemented map collection with incremental marking (issue 1465).
   2251 
   2252         Regexp: Fixed overflow in min-match-length calculation
   2253         (Chromium issue 126412).
   2254 
   2255         MIPS: Fixed illegal instruction use on Loongson in code for
   2256         Math.random() (issue 2115).
   2257 
   2258         Fixed crash bug in VisitChoice (Chromium issue 126272).
   2259 
   2260         Fixed unsigned-Smi check in MappedArgumentsLookup
   2261         (Chromium issue 126414).
   2262 
   2263         Fixed LiveEdit for function with no locals (issue 825).
   2264 
   2265         Fixed register clobbering in LoadIC for interceptors
   2266         (Chromium issue 125988).
   2267 
   2268         Implemented clearing of CompareICs (issue 2102).
   2269 
   2270         Performance and stability improvements on all platforms.
   2271 
   2272 
   2273 2012-05-03: Version 3.10.8
   2274 
   2275         Enabled MIPS cross-compilation.
   2276 
   2277         Ensured reload of elements pointer in StoreFastDoubleElement stub.
   2278         (Chromium issue 125515)
   2279 
   2280         Fixed corner cases in truncation behavior when storing to
   2281         TypedArrays. (issue 2110)
   2282 
   2283         Fixed failure to properly recognize and report out-of-memory
   2284         conditions when allocating code space pages. (Chromium issue
   2285         118625)
   2286 
   2287         Fixed idle notifications to perform a round of incremental GCs
   2288         after context disposal. (issue 2107)
   2289 
   2290         Fixed preparser for try statement. (issue 2109)
   2291 
   2292         Performance and stability improvements on all platforms.
   2293 
   2294 
   2295 2012-04-30: Version 3.10.7
   2296 
   2297         Performance and stability improvements on all platforms.
   2298 
   2299 
   2300 2012-04-26: Version 3.10.6
   2301 
   2302         Fixed some bugs in accessing details of the last regexp match.
   2303 
   2304         Fixed source property of empty RegExp objects. (issue 1982)
   2305 
   2306         Enabled inlining some V8 API functions.
   2307 
   2308         Performance and stability improvements on all platforms.
   2309 
   2310 
   2311 2012-04-23: Version 3.10.5
   2312 
   2313         Put new global var semantics behind a flag until WebKit tests are
   2314         cleaned up.
   2315 
   2316         Enabled stepping into callback passed to builtins.
   2317         (Chromium issue 109564)
   2318 
   2319         Performance and stability improvements on all platforms.
   2320 
   2321 
   2322 2012-04-19: Version 3.10.4
   2323 
   2324         Fixed issues when stressing compaction with WeakMaps.
   2325 
   2326         Fixed missing GVN flag for new-space promotion. (Chromium issue 123919)
   2327 
   2328         Simplify invocation sequence at monomorphic function invocation sites.
   2329         (issue 2079)
   2330 
   2331         Performance and stability improvements on all platforms.
   2332 
   2333 
   2334 2012-04-17: Version 3.10.3
   2335 
   2336         Fixed several bugs in heap profiles (including issue 2078).
   2337 
   2338         Throw syntax errors on illegal escape sequences.
   2339 
   2340         Implemented rudimentary module linking (behind --harmony flag)
   2341 
   2342         Implemented ES5 erratum: Global declarations should shadow
   2343         inherited properties.
   2344 
   2345         Made handling of const more consistent when combined with 'eval'
   2346         and 'with'.
   2347 
   2348         Fixed V8 on MinGW-x64 (issue 2026).
   2349 
   2350         Performance and stability improvements on all platforms.
   2351 
   2352 
   2353 2012-04-13: Version 3.10.2
   2354 
   2355         Fixed native ARM build (issues 1744, 539)
   2356 
   2357         Return LOOKUP variable instead of CONTEXT for non-context allocated
   2358         outer scope parameters (Chromium issue 119609).
   2359 
   2360         Fixed regular and ElementsKind transitions interfering with each other
   2361         (Chromium issue 122271).
   2362 
   2363         Improved performance of keyed loads/stores which have a HeapNumber
   2364         index (issues 1388, 1295).
   2365 
   2366         Fixed WeakMap processing for evacuation candidates (issue 2060).
   2367 
   2368         Bailout on possible direct eval calls (Chromium issue 122681).
   2369 
   2370         Do not assume that names of function expressions are context-allocated
   2371         (issue 2051).
   2372 
   2373         Performance and stability improvements on all platforms.
   2374 
   2375 
   2376 2012-04-10: Version 3.10.1
   2377 
   2378         Fixed bug with arguments object in inlined functions (issue 2045).
   2379 
   2380         Fixed performance bug with lazy initialization (Chromium issue
   2381         118686).
   2382 
   2383         Added suppport for Mac OS X 64bit builds with GYP.
   2384         (Patch contributed by Filipe David Manana <fdmanana (a] gmail.com>)
   2385 
   2386         Fixed bug with hidden properties (issue 2034).
   2387 
   2388         Fixed a performance bug when reloading pages (Chromium issue 117767,
   2389         V8 issue 1902).
   2390 
   2391         Fixed bug when optimizing throw in top-level code (issue 2054).
   2392 
   2393         Fixed two bugs with array literals (issue 2055, Chromium issue 121407).
   2394 
   2395         Fixed bug with Math.min/Math.max with NaN inputs (issue 2056).
   2396 
   2397         Fixed a bug with the new runtime profiler (Chromium issue 121147).
   2398 
   2399         Fixed compilation of V8 using uClibc.
   2400 
   2401         Optimized boot-up memory use.
   2402 
   2403         Optimized regular expressions.
   2404 
   2405 
   2406 2012-03-30: Version 3.10.0
   2407 
   2408         Fixed store IC writability check in strict mode
   2409         (Chromium issue 120099).
   2410 
   2411         Resynchronize timers if the Windows system time was changed.
   2412         (Chromium issue 119815)
   2413 
   2414         Removed "-mfloat-abi=hard" from host compiler cflags when building for
   2415         hardfp ARM
   2416         (https://code.google.com/p/chrome-os-partner/issues/detail?id=8539)
   2417 
   2418         Fixed edge case for case independent regexp character classes
   2419         (issue 2032).
   2420 
   2421         Reset function info counters after context disposal.
   2422         (Chromium issue 117767, V8 issue 1902)
   2423 
   2424         Fixed missing write barrier in CopyObjectToObjectElements.
   2425         (Chromium issue 119926)
   2426 
   2427         Fixed missing bounds check in HasElementImpl.
   2428         (Chromium issue 119925)
   2429 
   2430         Performance and stability improvements on all platforms.
   2431 
   2432 
   2433 2012-03-23: Version 3.9.24
   2434 
   2435         Activated count-based profiler for ARM.
   2436 
   2437         Fixed use of proxies as f.prototype properties. (issue 2021)
   2438 
   2439         Enabled snapshots on MIPS.
   2440 
   2441         Performance and stability improvements on all platforms.
   2442 
   2443 
   2444 2012-03-21: Version 3.9.23
   2445 
   2446         Use correct arguments adaptation environment when inlining function
   2447         containing arguments. (Issue 2014)
   2448 
   2449         Performance and stability improvements on all platforms.
   2450 
   2451 
   2452 2012-03-20: Version 3.9.22
   2453 
   2454         Enabled count-based profiler by default.
   2455 
   2456         Implemented a hash based look-up to speed up address checks
   2457         in large object space (issue 853).
   2458 
   2459         Performance and stability improvements on all platforms.
   2460 
   2461 
   2462 2012-03-19: Version 3.9.21
   2463 
   2464         Fixed push-to-trunk script (and re-push).
   2465 
   2466         Added API call that identifies strings that are guaranteed only to
   2467         contain ASCII characters.
   2468 
   2469 
   2470 2012-03-19: Version 3.9.20
   2471 
   2472         Fixed declarations escaping global strict eval. (Issue 1624)
   2473 
   2474         Fixed wrapping of receiver for non-strict callbacks. (Issue 1973)
   2475 
   2476         Fixed function declarations overwriting read-only global properties.
   2477         (Chromium issue 115452)
   2478 
   2479         Fixed --use-strict flag in combination with --harmony[-scoping].
   2480 
   2481         Debugger: naive implementation of "step into Function.prototype.bind".
   2482 
   2483         Debugger: added ability to set script source from within OnBeforeCompile
   2484 
   2485         Added flag to always call DebugBreak on abort.
   2486 
   2487         Re-enabled constructor inlining and inline === comparison with boolean
   2488         constants. (Issue 2009)
   2489 
   2490         Don't use an explicit s0 in ClampDoubleToUint8. (Issue 2004)
   2491 
   2492         Performance and stability improvements on all platforms.
   2493 
   2494 
   2495 2012-03-14: Version 3.9.19
   2496 
   2497         Ensure there is a smi check of the receiver for global load and call
   2498         ICs (Chromium issue 117794).
   2499 
   2500         Performance and stability improvements on all platforms.
   2501 
   2502 
   2503 2012-03-13: Version 3.9.18
   2504 
   2505         Ensure consistency of Math.sqrt on Intel platforms.
   2506 
   2507         Remove static initializers in v8. (issue 1859)
   2508 
   2509         Add explicit dependency on v8_base in the GYP-based build.
   2510 
   2511         Performance and stability improvements on all platforms.
   2512 
   2513 
   2514 2012-03-12: Version 3.9.17
   2515 
   2516         Fixed VFP detection through compiler defines. (issue 1996)
   2517 
   2518         Add Code-related fields to postmortem metadata.
   2519 
   2520         Performance and stability improvements on all platforms.
   2521 
   2522 
   2523 2012-03-09: Version 3.9.16
   2524 
   2525         Added basic interface inference for modules (behind the --harmony flag).
   2526 
   2527         Added Object.is, Number.isFinite, Number.isNaN.
   2528 
   2529         Updated the Unicode tables to Unicode version 6.1.0.
   2530 
   2531         Performance and stability improvements on all platforms.
   2532 
   2533 
   2534 2012-03-06: Version 3.9.15
   2535 
   2536         Fix the heap profiler crash caused by memory layout changes between
   2537         passes.
   2538 
   2539         Fix Error.prototype.toString to throw TypeError. (issue 1980)
   2540 
   2541         Fix double-rounding in strtod for MinGW. (issue 1062)
   2542 
   2543         Fix corrupted snapshot serializaton on ia32. (Chromium issue v8/1985)
   2544 
   2545         Performance and stability improvements on all platforms.
   2546 
   2547 
   2548 2012-03-01: Version 3.9.14
   2549 
   2550         Performance and stability improvements on all platforms.
   2551 
   2552 
   2553 2012-02-29: Version 3.9.13
   2554 
   2555         Added code kind check before preparing for OSR. (issue 1900, 115073)
   2556 
   2557         Fixed issue 1802: Pass zone explicitly to zone-allocation on x64 and
   2558         ARM.
   2559 
   2560         Ported string construct stub to x64. (issue 849)
   2561 
   2562         Performance and stability improvements on all platforms.
   2563 
   2564 
   2565 2012-02-28: Version 3.9.12
   2566 
   2567         Fixed the negative lookup stub to handle deleted entries in a
   2568         dictionary. (issue 1964)
   2569 
   2570         Added a new API where the host can supply a callback function. The
   2571         callback function can resolve the location of a return address on stack
   2572         to the location where a return-address rewriting profiler stashed the
   2573         original return address.
   2574 
   2575         Fixed Chromium issue http://crbug.com/115646: When compiling for-in
   2576         pass correct context value to the increment instruction.
   2577 
   2578         Fixed issue 1853: Update breakpoints set with partial file name after
   2579         compile.
   2580 
   2581 
   2582 2012-02-27: Version 3.9.11
   2583 
   2584         Made 'module' a context-sensitive keyword (V8 issue 1957).
   2585 
   2586 
   2587 2012-02-24: Version 3.9.10
   2588 
   2589         Fixed V8 issues 1322, 1772 and 1969.
   2590 
   2591         Conformance improvements.
   2592 
   2593         Performance and stability improvements on all platforms.
   2594 
   2595 
   2596 2012-02-23: Version 3.9.9
   2597 
   2598         Supported fast case for-in in Crankshaft.
   2599 
   2600         Sped up heap snapshot serialization and dominators construction.
   2601 
   2602         Randomized allocation addresses on windows. (Chromium issue 115151)
   2603 
   2604         Fixed compilation with MinGW-w64. (issue 1943)
   2605 
   2606         Fixed incorrect value of assignments to non-extensible properties.
   2607 
   2608         Fixed a crash bug in generated code on ia32.
   2609 
   2610         Performance and stability improvements on all platforms.
   2611 
   2612 
   2613 2012-02-21: Version 3.9.8
   2614 
   2615         Fixed memory leak and missing #include in StartupDataDecompressor
   2616         (issue 1960).
   2617 
   2618         Renamed static methods to avoid shadowing virtual methods and fix Clang
   2619         C++11 compile error.
   2620 
   2621         Fixed sequence of element access in array builtins (issue 1790).
   2622 
   2623         Performance and stability improvements on all platforms.
   2624 
   2625 
   2626 2012-02-16: Version 3.9.7
   2627 
   2628         Fixed V8 issues 1322, 1878, 1942, 1945 and Chromium issue 113924.
   2629 
   2630         Fixed GCC-4.7 warnings.
   2631 
   2632         Added Navier-Stokes benchmark.
   2633 
   2634         Performance and stability improvements on all platforms.
   2635 
   2636 
   2637 2012-02-14: Version 3.9.6
   2638 
   2639         Fixed template-related linker error. (issue 1936)
   2640 
   2641         Allowed inlining of functions containing object literals.  (issue 1322)
   2642 
   2643         Added --call-graph-size option to tickprocessor.  (issue 1937)
   2644 
   2645         Heap Snapshot maximum size limit is too low for really big apps. At the
   2646         moment the limit is 256MB.  (Chromium issue 113015)
   2647 
   2648         Performance and stability improvements on all platforms.
   2649 
   2650 
   2651 2012-02-09: Version 3.9.5
   2652 
   2653         Removed unused command line flags.
   2654 
   2655         Performance and stability improvements on all platforms.
   2656 
   2657 
   2658 2012-02-08: Version 3.9.4
   2659 
   2660         Properly initialize element-transitioning array literals on ARM.
   2661         (issue 1930)
   2662 
   2663         Bug fixes on all platforms.
   2664 
   2665 
   2666 2012-02-07: Version 3.9.3
   2667 
   2668         When rethrowing an exception, print the stack trace of its original
   2669         site instead of rethrow site (Chromium issue 60240).
   2670 
   2671         Increased size of small stacks from 32k to 64k to avoid hitting limits
   2672         in Chromium (Chromium issue 112843).
   2673 
   2674 
   2675 2012-02-06: Version 3.9.2
   2676 
   2677         Added timestamp to --trace-gc output. (issue 1932)
   2678 
   2679         Heap profiler reports implicit references.
   2680 
   2681         Optionally export metadata with libv8 to enable debuggers to inspect V8
   2682         state.
   2683 
   2684 
   2685 2012-02-02: Version 3.9.1
   2686 
   2687         Fixed memory leak in NativeObjectsExplorer::FindOrAddGroupInfo
   2688         (Chromium issue 112315).
   2689 
   2690         Fixed a crash in dev tools (Chromium issue 107996).
   2691 
   2692         Added 'dependencies_traverse': 1 to v8 GYP target.
   2693 
   2694         Performance and stability improvements on all platforms.
   2695 
   2696 
   2697 2012-02-01: Version 3.9.0
   2698 
   2699         Reduced memory use immediately after starting V8.
   2700 
   2701         Stability fixes and performance improvements on all platforms.
   2702 
   2703 
   2704 2012-01-26: Version 3.8.9
   2705 
   2706         Flush number string cache on GC (issue 1605).
   2707 
   2708         Provide access to function inferred name with
   2709 	v8::Function::GetInferredName in V8 public API.
   2710 
   2711         Fix building with Clang (issue 1912).
   2712 
   2713         Reduce the space used by the stack for the profiling thread.
   2714 
   2715         Fix misleading documentation of v8::Locker (issue 542).
   2716 
   2717         Introduce readbinary function in d8 to read binary files.
   2718 
   2719         Performance and stability improvements on all platforms.
   2720 
   2721 
   2722 2012-01-23: Version 3.8.8
   2723 
   2724         Limited number of loop iterations in Heap::ReserveSpace
   2725         (Chromium issue 99027).
   2726 
   2727         Fixed solaris build (VirtualMemory) (issue 1761).
   2728 
   2729         Fixed strict vs. non-strict handling of function proxies in
   2730         higher-order array and string methods.
   2731 
   2732         Enabled asynchronous remote debugging with d8 (issue 1691).
   2733 
   2734         Stability and performance improvements on all platforms.
   2735 
   2736 
   2737 2012-01-19: Version 3.8.7
   2738 
   2739         Ensure that LRandom restores rsi after call to the C function on x64.
   2740         (Chromium issue http://crbug.com/110509)
   2741 
   2742         Fixing include issues on *bsd when building with scons.
   2743         (issue 1897)
   2744 
   2745         Provide a switch to specify -fno-strict-aliasing
   2746         (issue 1887)
   2747 
   2748         Move WIN32 define from standalone.gypi to common.gypi
   2749         (issue 1760)
   2750 
   2751         Fix corner-case in heap size estimation.
   2752         (issue 1893)
   2753 
   2754         Fix and enable NEW_NON_STRICT_FAST ArgumentsAccess stub on x64.
   2755         (issue 1903)
   2756 
   2757         Performance improvements and bug fixes.
   2758 
   2759 
   2760 2012-01-16: Version 3.8.6
   2761 
   2762         Add primitive WebGL array support to d8.
   2763 
   2764         Improve heap size estimation (issue 1893).
   2765 
   2766         Hash collision DOS workaround extended from string keys
   2767         to numeric keys.
   2768 
   2769         Provide an API for iterating through all external strings referenced
   2770         from the JS heap.
   2771 
   2772         Adjust position recorded for call expressions. http://crbug.com/109195
   2773 
   2774         Fix GC crash related to instanceof. http://crbug.com/109448
   2775 
   2776         Performance improvements and bug fixes.
   2777 
   2778 
   2779 2012-01-05: Version 3.8.5
   2780 
   2781         Fix broken test that assumes that no GC can clear the regexp cache (GC
   2782         can happen at any time due to Crankshaft).
   2783 
   2784         Fix handling of bogus receivers for Harmony collections. (issue 1884)
   2785 
   2786         Add netbsd support to gyp build.
   2787 
   2788         Determine page size at runtime on posix platforms.
   2789 
   2790         Ensure that store buffer filtering hash sets are cleared after
   2791         StoreBuffer::Filter.
   2792 
   2793         Randomize the seed used for string hashing.  This helps guard against
   2794         CPU-eating DOS attacks against node.js servers.  Based on code from
   2795         Bert Belder.  This version only solves the issue for those that compile
   2796         V8 themselves or those that do not use snapshots.  A snapshot-based
   2797         precompiled V8 will still have predictable string hash codes.
   2798 
   2799         Implement callback when script finishes running in V8 API.
   2800 
   2801         Improve performance of Math.min and Math.max for the case of two
   2802         arguments. (issue 1325)
   2803 
   2804 
   2805 2012-01-02: Version 3.8.4
   2806 
   2807         Performance improvements for large Smi-only arrays.
   2808 
   2809         Fixed InternalArrays construction. (issue 1878)
   2810 
   2811 
   2812 2011-12-27: Version 3.8.3
   2813 
   2814         Avoid embedding new space objects into code objects in the lithium gap
   2815         resolver. (chromium:108296)
   2816 
   2817         Bug fixes and performance optimizations on all platforms.
   2818 
   2819 
   2820 2011-12-21: Version 3.8.2
   2821 
   2822         Add max optimization flag to v8 gyp build to ensure V8 is always built 
   2823         fully optimized in Chrome.
   2824 
   2825         MIPS: Bring MIPS to parity with other platforms.
   2826 
   2827         Optimizations and stability improvements on all platforms.
   2828 
   2829 
   2830 2011-12-19: Version 3.8.1
   2831 
   2832         Fixed GCC 4.7 warnings. Patch from Tobias Burnus.
   2833 
   2834         Stability improvements on all platforms.
   2835 
   2836 
   2837 2011-12-13: Version 3.8.0
   2838 
   2839         Fixed handling of arrays in DefineOwnProperty. (issue 1756)
   2840 
   2841         Sync parser and preparser on do-while and return statements. 
   2842         (issue 1856)
   2843 
   2844         Fixed another corner case for DefineOwnProperty on arrays (issue 1756).
   2845 
   2846         Stability and performance improvements on all platforms.
   2847 
   2848 
   2849 2011-12-01: Version 3.7.12
   2850 
   2851         Increase tick interval for the android platform.
   2852 
   2853         Fix a bug in the register allocator. (chromium:105112)
   2854 
   2855         Fix handling of recompiling code. (chromium:105375, v8:1782)
   2856 
   2857         Start incremental marking on idle notification. (v8:1458)
   2858 
   2859         Build fixes for various platforms.
   2860 
   2861         Various performance improvements.
   2862 
   2863 
   2864 2011-11-29: Version 3.7.11
   2865 
   2866         Fixed bug when generating padding to ensure space for lazy
   2867         deoptimization.
   2868         (issue 1846)
   2869 
   2870         Further reduced pause times due to GC.
   2871 
   2872         Stability and performance improvements on all platforms.
   2873 
   2874 
   2875 2011-11-23: Version 3.7.10
   2876 
   2877         Set maximum length of FixedArray in terms of elements instead an
   2878         absolute number of bytes.
   2879         (Chromium issue 103103)
   2880 
   2881         Stability and performance improvements on all platforms.
   2882 
   2883 
   2884 2011-11-21: Version 3.7.9
   2885 
   2886         Removed exit-time destructors.
   2887 
   2888         Stability and performance improvements on all platforms.
   2889 
   2890 
   2891 2011-11-17: Version 3.7.8
   2892 
   2893         Removed hidden prototype from builtins, i.e., deleting an overridden
   2894         function on builtins will not make the original function reappear.
   2895 
   2896         Added NetBSD support for scons build.
   2897 
   2898         Performance improvements on all platforms.
   2899 
   2900 
   2901 2011-11-14: Version 3.7.7
   2902 
   2903         Fix missing fast property accessors in heap snapshots.
   2904         (issue 1818)
   2905 
   2906 
   2907 2011-11-11: Version 3.7.6
   2908 
   2909         Fixed filtering of store buffer for large object pages.
   2910         (issue 1817)
   2911 
   2912         Fixed generated hash function on all platforms.
   2913         (issue 1808)
   2914 
   2915         Fixed Heap::Shrink to ensure that it does not free pages that are
   2916         still in use.
   2917         (Chromium issue 100414)
   2918 
   2919         Stability and performance improvements on all platforms.
   2920 
   2921 
   2922 2011-11-10: Version 3.7.5
   2923 
   2924         Added initial gyp infrastructure for MIPS.
   2925 
   2926         Implemented performance improvements to the incremental garbage
   2927         collector.
   2928 
   2929         Added optimizations and stability improvements on all platforms.
   2930 
   2931 
   2932 2011-11-07: Version 3.7.4
   2933 
   2934         Proper "libv8.so.3.7.4" SONAME for Linux shared library (issue 1786).
   2935 
   2936         Fix Harmony sets and maps to allow null and undefined as keys
   2937         (still hidden behind --harmony flag) (issue 1622).
   2938 
   2939         Implement VirtualMemory on FreeBSD to fix build (issue 1807).
   2940 
   2941         Enable VFP instructions for Android.
   2942 
   2943         Fix error handling in Date.prototype.toISOString (issue 1792).
   2944 
   2945         Bug fixes and performance improvements for all platforms.
   2946 
   2947         Not officially supported but noteworthy: Crankshaft for MIPS :-)
   2948 
   2949 
   2950 2011-10-28: Version 3.7.3
   2951 
   2952         Slight deoptimization as a workaround for issue with jslint: Issue
   2953         1789.
   2954 
   2955 
   2956 2011-10-27: Version 3.7.2
   2957 
   2958         Fix bug in deoptimization.  Known issue with jslint: Issue 1789.
   2959 
   2960 
   2961 2011-10-26: Version 3.7.1
   2962 
   2963         Achieved 33% speedup in debug-mode tests.
   2964 
   2965         Removed special casing of calls to RegExp test and exec methods with no
   2966         argument.  Now matches new JSC behaviour.  crbug.com/75740.
   2967 
   2968         Return the empty string on cyclic references in toString (ES5
   2969         conformance).
   2970 
   2971         Fixed bug triggered by JSBeautifier.  crbug.com/100409.
   2972 
   2973         Made Math.random state per-context instead of per-process (issue 864).
   2974 
   2975         Fixed stack traces to skip native functions.
   2976 
   2977         Make snapshots (new contexts) smaller and faster.
   2978 
   2979         Fixed handling of Function.apply for non-array arguments.
   2980 
   2981         Fixed evaluation order in defineProperties to match FireFox.
   2982 
   2983         Fixed handling of non-object receivers for array builtins,
   2984         crbug.com/100702.
   2985 
   2986         Multiple fixes to improve compliance with test262.
   2987 
   2988         Fixed compatibility with older Android releases.
   2989 
   2990         Fixed compilation with gcc-4.5.3.
   2991 
   2992         Improved performance of WriteUtf8, issue 1665.
   2993 
   2994         Made native syntax an early error in the preparser.
   2995 
   2996         Fixed issues 793 and 893 relating to Function.prototype.bind.
   2997 
   2998         Improved let, const, Set and Map support and other Harmony features
   2999         (behind the --harmony flag).
   3000 
   3001         Changed evaluation order for > and <= to match ES5 instead of ES3.
   3002 
   3003         Bug fixes and performance improvements on all platforms.
   3004 
   3005 
   3006 2011-10-13: Version 3.7.0
   3007 
   3008         Fixed array handling for Object.defineOwnProperty (ES5 conformance).
   3009 
   3010         Fixed issue 1757 (string slices of external strings).
   3011 
   3012         Fixed issue 1759 (ARM).
   3013 
   3014         Added flag --noclever-optimizations to disable some things that
   3015         caused trouble in the past.
   3016 
   3017         Added flag --stress-compaction for testing.
   3018 
   3019         Added flag --harmony to activate all experimental Harmony features.
   3020 
   3021 
   3022 2011-10-10: Version 3.6.6
   3023 
   3024         Added a GC pause visualization tool.
   3025 
   3026         Added presubmit=no and werror=no flags to Makefile.
   3027 
   3028         ES5/Test262 conformance improvements.
   3029 
   3030         Fixed compilation issues with GCC 4.5.x (issue 1743).
   3031 
   3032         Bug fixes and performance improvements on all platforms.
   3033 
   3034 
   3035 2011-10-05: Version 3.6.5
   3036 
   3037         New incremental garbage collector.
   3038 
   3039         Removed the hard heap size limit (soft heap size limit is still
   3040         700/1400Mbytes by default).
   3041 
   3042         Implemented ES5 generic Array.prototype.toString (Issue 1361).
   3043 
   3044         V8 now allows surrogate pair codes in decodeURIComponent (Issue 1415).
   3045 
   3046         Fixed x64 RegExp start-of-string bug (Issues 1746, 1748).
   3047 
   3048         Fixed propertyIsEnumerable for numeric properties (Issue 1692).
   3049 
   3050         Fixed the MinGW and Windows 2000 builds.
   3051 
   3052         Fixed "Prototype chain is not searched if named property handler does
   3053         not set a property" (Issue 1636).
   3054 
   3055         Made the RegExp.prototype object be a RegExp object (Issue 1217).
   3056 
   3057         Disallowed future reserved words as labels in strict mode.
   3058 
   3059         Fixed string split to correctly coerce the separator to a string
   3060         (Issue 1711).
   3061 
   3062         API: Added an optional source length field to the Extension
   3063         constructor.
   3064 
   3065         API: Added Debug::DisableAgent to match existing Debug::EnableAgent
   3066         (Issue 1573).
   3067 
   3068         Added "native" target to Makefile for the benefit of Linux distros.
   3069 
   3070         Fixed: debugger stops stepping outside evaluate (Issue 1639).
   3071 
   3072         More work on ES-Harmony proxies.  Still hidden behind a flag.
   3073 
   3074         Bug fixes and performance improvements on all platforms.
   3075 
   3076 
   3077 2011-09-15: Version 3.6.4
   3078 
   3079         Fixed d8's broken readline history.
   3080 
   3081         Removed the need for code delete events in CPU profiler (Issue 1466).
   3082 
   3083         Fixed debugger stepping next with trycatch recursion (Issue 1639).
   3084 
   3085         Fixing parallel execution in d8 (with -p) and some memory leaks.
   3086 
   3087         Support for precise stepping in functions compiled before debugging was
   3088         started (step 1).
   3089 
   3090 
   3091 2011-09-13: Version 3.6.3
   3092 
   3093         Implemented better support of typed arrays in the d8 shell.
   3094 
   3095         Bug fixes and performance improvements on all platforms.
   3096 
   3097 
   3098 2011-09-08: Version 3.6.2
   3099 
   3100         Added "dependencies" target to top-level Makefile.
   3101 
   3102         Added ability to turn profiler on/off in d8.
   3103 
   3104         Added "soname_version" parameter to common.gypi, v8.gyp, and Makefile.
   3105 
   3106         Fixed several crash bugs.
   3107 
   3108 
   3109 2011-09-07: Version 3.6.1
   3110 
   3111         Fixed a bug in abrupt exit from with or catch inside finally.
   3112 
   3113         Fixed possible crash in FixedDoubleArray::Initialize() (Chromium
   3114         issue 95113).
   3115 
   3116         Fixed a bug in Page::GetRegionMaskForSpan (Chromium issue 94425).
   3117 
   3118         Fixed a few clang warnings (which -Werror treated as errors).
   3119 
   3120         Performance improvements on all platforms.
   3121 
   3122 
   3123 2011-09-05: Version 3.6.0
   3124 
   3125         Fixed a bug when optimizing named function expression (issue 1647).
   3126 
   3127         Fixed a bug when optimizing f.call.apply (issue 1650).
   3128 
   3129         Made arguments and caller always be null on native functions
   3130         (issues 1548 and 1643).
   3131 
   3132         Fixed issue 1648 (cross-compiling x64 targeting ia32).
   3133 
   3134         Fixed issue 371 (d8 printing of strings containing \0).
   3135 
   3136         Fixed order of evaluation in arguments to parseInt (issue 1649).
   3137 
   3138         Fixed a problem with large heap snapshots in Chrome DevTools
   3139         (issue 1658, chromium issue 89268).
   3140 
   3141         Upped default maximum heap size from 512M to 700M.
   3142 
   3143 
   3144 2011-08-31: Version 3.5.10
   3145 
   3146         Added dependency of v8_base on WinSocket2 Windows library in
   3147         the GYP-build.
   3148 
   3149         Various bugfixes.
   3150 
   3151 
   3152 2011-08-29: Version 3.5.9
   3153 
   3154         Made FromPropertyDescriptor not trigger inherited setters.
   3155 
   3156         Fixed .gyp files to work on the ARM simulator.
   3157 
   3158         Fixed shared library build warnings for MSVS.
   3159 
   3160 
   3161 2011-08-24: Version 3.5.8
   3162 
   3163         Added V8EXPORT attributes for v8::Array::CheckCast and
   3164         v8::Number::CheckCast.
   3165 
   3166         Made a slight API change enabling opting out from null termination
   3167         in String::Write*().
   3168 
   3169         Fixed arm build for gcc-4.6.
   3170 
   3171 
   3172 2011-08-22: Version 3.5.7
   3173 
   3174         Make scanner handle invalid unicode escapes in identifiers correctly.
   3175 
   3176         Make regexp flag parsing stricter.
   3177 
   3178         Fix several memory leaks.
   3179 
   3180 
   3181 2011-08-17: Version 3.5.6
   3182 
   3183         Fixed issue that could cause crashes when running with --heap-stats.
   3184 
   3185         Fixed compilation on Linux 2.6.9 and older.
   3186 
   3187         Fixed live-object-list to work with isolates.
   3188 
   3189         Fixed memory leaks in zones and isolates.
   3190 
   3191         Fixed a performance regression for TypedArrays on x64.
   3192 
   3193         Stability improvements on all platforms.
   3194 
   3195 
   3196 2011-08-15: Version 3.5.5
   3197 
   3198         Fixed bugs involving negative zero and the optimizing compiler.
   3199 
   3200         Fixed optimized version of Function.apply(x, arguments). (issue 1592)
   3201 
   3202         Eliminated uses of deprecated ARM instructions.
   3203 
   3204         Sped up Math.floor by using SSE 4.1 roundsd instruction on ia32.
   3205 
   3206         Removed restriction on the size of disassembled code that is printed.
   3207 
   3208 
   3209 2011-08-10: Version 3.5.4
   3210 
   3211         Added a preliminary implementation of ES Harmony weak maps.  Weak
   3212         maps can be enabled by the flag --harmony-weakmaps.
   3213 
   3214         Introduced a toplevel Makefile to support GYP-based building.  GYP
   3215         can be obtained from http://gyp.googlecode.com.
   3216 
   3217         Fixed a bug in the length property of functions created by
   3218         Function.prototype.bind.
   3219 
   3220         Reduced malloc heap allocation on process startup.
   3221 
   3222         Several important code generation bug fixes.
   3223 
   3224         Performance improvements on all platforms.
   3225 
   3226 
   3227 2011-08-03: Version 3.5.3
   3228 
   3229         MIPS: Port of fix to ClassOf check from ARM.
   3230         Patch from Paul Lind <plind44 (a] gmail.com>.
   3231 
   3232         Stopped using mprotect on Cygwin.
   3233         Avoided uninitialized member warning on gcc 4.3.4
   3234         Both patches by Bert Belder.
   3235 
   3236         Bug fixes and performance improvements on all platforms.
   3237 
   3238 
   3239 2011-08-01: Version 3.5.2
   3240 
   3241         Performance improvements on all platforms.
   3242 
   3243 
   3244 2011-07-28: Version 3.5.1
   3245 
   3246         Fixed setting the readonly flag on the prototype property using the
   3247         API call FunctionTemplate::SetPrototypeAttributes (issue 1539).
   3248 
   3249         Changed the tools/test.py script to use d8 instead of shell for
   3250         testing.
   3251 
   3252         Fixed crash in ToBooleanStub when GC happens during invocation.
   3253 
   3254         Enabled automatic unboxing of double arrays.
   3255 
   3256         Performance improvements on all platforms.
   3257 
   3258 
   3259 2011-07-25: Version 3.5.0
   3260 
   3261         Implemented Object.prototype.{hasOwnProperty, propertyIsEnumerable} for
   3262         proxies.
   3263 
   3264         Removed logging to memory support.
   3265 
   3266         Bugfixes and performance work.
   3267 
   3268 
   3269 2011-07-20: Version 3.4.14
   3270 
   3271         Fix the debugger for strict-mode functions. (Chromium issue 89236)
   3272 
   3273         Add GetPropertyAttribute method for Object in the API. (Patch by
   3274         Peter Varga)
   3275 
   3276         Fix -Wunused-but-set-variable for gcc-4.6 on x64. (Issue 1291)
   3277 
   3278 
   3279 2011-07-18: Version 3.4.13
   3280 
   3281         Improved debugger support to allow inspection of optimized frames (issue
   3282         1140).
   3283 
   3284         Fixed a bug in prototype transitions cache clearing introduced by r8165.
   3285 
   3286         Fixed shortcutting bug in HInferRepresentation. Patch by Andy Wingo.
   3287 
   3288         Fixed a memory leak in sample/shell.cc (dispose semaphores).
   3289 
   3290         Simplified HClampToUint8. Patch by Andy Wingo.
   3291 
   3292         Exposed APIs for detecting boxed primitives, native errors. Patch by
   3293         Luke Zarko.
   3294 
   3295         Added map check for COW elements to crankshaft array handling code
   3296         (issue 1560).
   3297 
   3298         Sample shell and (a light version of) D8 links against a shared library
   3299         now.
   3300 
   3301         Fixed bug in array filter and reduce functions (issue 1559).
   3302 
   3303         Avoid TLS load in AstNode constructor.
   3304 
   3305         Introduced a random entropy source which can optionally be provided at
   3306         initialization. (Chromium issue 89462).
   3307 
   3308 
   3309 2011-07-13: Version 3.4.12
   3310 
   3311         Added --prof profiling option to d8 shell.
   3312 
   3313         Fixed a bug where reading a directory in d8 shell hangs (issue 1533).
   3314 
   3315         Fixed a potential assertion failure in const declarations.
   3316 
   3317         Fixed an assertion failure in descriptor arrays (issue 1526).
   3318 
   3319         Enabled fast thread-local storage by default on supported platforms.
   3320 
   3321         Improved reporting of source position for global variable loads
   3322         (issue 1527).
   3323 
   3324 
   3325 2011-07-11: Version 3.4.11
   3326 
   3327         Fixed MinGW32 build.
   3328 
   3329         Fixed a GC bug with RegExp code flushing.
   3330 
   3331         Implemented Object.defineProperty for proxies.
   3332 
   3333         Fixed a bug in for/in iteration of arguments objects (issue 1531).
   3334 
   3335         Added debugger support for inspecting optimized frames (issue 1140).
   3336 
   3337         Allowed JSObject::PreventExtensions to work for arguments objects.
   3338 
   3339         Bugfixes and performance work.
   3340 
   3341 
   3342 2011-07-06: Version 3.4.10
   3343 
   3344         Fixed debugger not breaking on certain "if" statements (issue 1523).
   3345 
   3346         Fixed assertion failure in runtime profiler when running on IA32
   3347         without snapshot (issue 1522).
   3348 
   3349         Fixed ABI for API calls on IA32 (for clang compatibility).
   3350 
   3351         Introduced code flushing of RegExp code to free memory used by
   3352         RegExps sooner.
   3353 
   3354         Fixed linux-tick-processor built wrong version of v8 (issue 1532).
   3355 
   3356         Fixed assertion failure in v8::TryCache::StackTrace (issue 1529).
   3357 
   3358         Performance improvements on all platforms.
   3359 
   3360 
   3361 2011-07-04: Version 3.4.9
   3362 
   3363         Added support for debugger inspection of locals in optimized frames
   3364         (issue 1140).
   3365 
   3366         Fixed SConstruct to pass correct defines to samples/preparser when
   3367         building with library=shared.
   3368 
   3369         Made date parser handle ES5 Date Time Strings correctly (issue 1498).
   3370 
   3371         Fixed a bug in Object.defineProperty on the arguments object.
   3372 
   3373         Performance improvements on all platforms.
   3374 
   3375 
   3376 2011-06-29: Version 3.4.8
   3377 
   3378         Ensure 16-byte stack alignment on Solaris (issue 1505).
   3379 
   3380         Fix "illegal access" when calling parseInt with a radix
   3381         that is not a smi. (issue 1246).
   3382 
   3383 
   3384 2011-06-27: Version 3.4.7
   3385 
   3386         Fixed 64-bit build on FreeBSD.
   3387 
   3388         Added API to set the property attributes for the prototype
   3389         property on functions created from FunctionTemplates.
   3390 
   3391         Bugfixes and performance work.
   3392 
   3393 
   3394 2011-06-22: Version 3.4.6
   3395 
   3396         Lowered limit on code space for systems with low memory supply.
   3397 
   3398         Allowed compiling v8_shell with the 'host' toolset (issue 82437).
   3399 
   3400         Extended setBreakpoint API to accept partial script name (issue 1418).
   3401 
   3402         Made multi-line comments not count when deciding whether the '-->'
   3403         comment starter is first on a line. This matches Safari.
   3404 
   3405         Made handling of non-array recievers in Array length setter correct
   3406         (issue 1491).
   3407 
   3408         Added ability to heap profiler to iterate over snapshot's node
   3409         (issue 1481).
   3410 
   3411 
   3412 2011-06-20: Version 3.4.5
   3413 
   3414         Fixed issues 794, 1097, 1215(partial), 1417, 1435, 1472, 1473,
   3415         1476, and 1477.
   3416 
   3417         Improved code generation for !0 and !1.
   3418 
   3419         Reduced memory usage for regular expressions with nested qualifiers.
   3420         (issue 1472)
   3421 
   3422         Fixed V8 to count line terminators in multi-line comments.
   3423         (Chromium issue 86431)
   3424 
   3425         Fixed disassembler=on option for release-mode builds. (issue 1473)
   3426 
   3427         Performance improvements on all platforms.
   3428 
   3429 
   3430 2011-06-15: Version 3.4.4
   3431 
   3432         Added snapshot compression support and --stress-opt flag to d8.
   3433 
   3434         Improved performance of try/catch.
   3435 
   3436         Several GYP-related changes: Added support for building Xcode project
   3437         files. Make the ARM simulator build with GYP again. Generate Makefiles
   3438         for all architectures on Linux.
   3439 
   3440         Fixed Array.prototype.{reduce,reduceRight} to pass undefined as the
   3441         receiver for strict mode callbacks. (issue 1436)
   3442 
   3443         Fixed a bug where an array load was incorrectly hoisted by GVN.
   3444 
   3445         Handle 'undefined' correctly when === has been specialized for doubles.
   3446         (issue 1434)
   3447 
   3448         Corrected the limit of local variables in an optimized function from 64
   3449         to 63.
   3450 
   3451         Correctly set ReadOnly flag on indexed properties when using the API Set
   3452         method. (issue 1470)
   3453 
   3454         Give the correct error message when Object.isExtensible is called on a
   3455         non-object. (issue 1452)
   3456 
   3457         Added GetOwnPropertyNames method for Object in the API. Patch by Peter
   3458         Varga.
   3459 
   3460         Do not redefine properties unneccesarily in seal and freeze. (issue
   3461         1447)
   3462 
   3463         IsExecutionTerminating has an Isolate parameter now.
   3464 
   3465         Distinguish keyed loads with a symbol key from fast elements loads,
   3466         avoiding some useless deoptimizations. (issue 1471)
   3467 
   3468 
   3469 2011-06-08: Version 3.4.3
   3470 
   3471         Clear the global thread table when an isolate is disposed
   3472         (issue 1433).
   3473 
   3474         Converted time zone name to UTF8 on Windows (issue 1290).
   3475 
   3476         Limited the number of arguments in a function call to 32766
   3477         (issue 1413).
   3478 
   3479         Compress sources of JS libraries in addition to the snapshot.
   3480 
   3481         Fixed a bug in Lithium environment iteration.
   3482 
   3483         Performance improvements on all platforms.
   3484 
   3485 
   3486 2011-06-06: Version 3.4.2
   3487 
   3488         More work on ES-Harmony proxies.  Still hidden behind a flag.
   3489 
   3490         Fixed some crash bugs and improved performance.
   3491 
   3492         Fixed building with gdb debugging support.
   3493 
   3494         Do not install SIGPROF handler until it is needed.
   3495 
   3496         Added DateTimeFormat to i18n API.
   3497 
   3498         Fixed compilation on OpenBSD.
   3499 
   3500         Take the ulimit into account when sizing the heap.  OpenBSD users
   3501         may still have to increase the default ulimit to run heavy pages in
   3502         the browser.
   3503 
   3504 
   3505 2011-06-01: Version 3.4.1
   3506 
   3507         Fixed JSON stringify issue with arrays.
   3508 
   3509         Changed calls to JS builtins to be passed undefined when called with
   3510         implicit receiver.
   3511 
   3512         Implemented the set trap for Harmony proxies. Proxies still need to
   3513         be enabled with the --harmony-proxies flag.
   3514 
   3515 
   3516 2011-05-30: Version 3.4.0
   3517 
   3518         Changed calls to undefined property setters to not throw (issue 1355).
   3519 
   3520         Made RegExp objects not callable.
   3521 
   3522         Fixed issues on special case large JSON strings in new json parser
   3523         (issues http://crbug.com/83877 and http://crbug.com/84186).
   3524 
   3525         Performance improvements on all platforms.
   3526 
   3527 
   3528 2011-05-25: Version 3.3.10
   3529 
   3530         Fixed calls of strict mode function with an implicit receiver.
   3531 
   3532         Fixed fast handling of arrays to properly deal with changes to the
   3533         Object prototype (issue 1403).
   3534 
   3535         Changed strict mode poison pill to be the same type error function
   3536         (issue 1387).
   3537 
   3538         Fixed a debug crash in arguments object handling (issue 1227).
   3539 
   3540         Fixed a bug in deoptimization on x64 (issue 1404).
   3541 
   3542         Performance improvements and bug fixes on all platforms.
   3543 
   3544 
   3545 2011-05-23: Version 3.3.9
   3546 
   3547         Added DateTimeFormat class to experimental i18n API.
   3548 
   3549         Extended preparser to give early errors for some strict mode
   3550         restrictions.
   3551 
   3552         Removed legacy execScript function from V8.
   3553 
   3554         Extended isolate API with the ability to add embedder-specific
   3555         data to an isolate.
   3556 
   3557         Added basic support for polymorphic loads from JS and external
   3558         arrays.
   3559 
   3560         Fixed bug in handling of switch statements in the optimizing
   3561         compiler.
   3562 
   3563 
   3564 2011-05-18: Version 3.3.8
   3565 
   3566         Added MarkIndependent to the persistent handle API.  Independent
   3567         handles are independent of all other persistent handles and can be
   3568         garbage collected more frequently.
   3569 
   3570         Implemented the get trap for Harmony proxies.  Proxies are enabled
   3571         with the --harmony-proxies flag.
   3572 
   3573         Performance improvements and bug fixes on all platforms.
   3574 
   3575 
   3576 2011-05-16: Version 3.3.7
   3577 
   3578         Updated MIPS infrastructure files.
   3579 
   3580         Performance improvements and bug fixes on all platforms.
   3581 
   3582 
   3583 2011-05-11: Version 3.3.6
   3584 
   3585         Updated MIPS infrastructure files.
   3586 
   3587         Added method IsCallable for Object to the API.
   3588         Patch by Peter Varga.
   3589 
   3590 
   3591 2011-05-09: Version 3.3.5
   3592 
   3593         Fixed build on FreeBSD. Patch by Akinori MUSHA.
   3594 
   3595         Added check that receiver is JSObject on API calls.
   3596 
   3597         Implemented CallAsConstructor method for Object in the API (Issue 1348).
   3598         Patch by Peter Varga.
   3599 
   3600         Added CallAsFunction method to the Object class in the API (Issue 1336).
   3601         Patch by Peter Varga.
   3602 
   3603         Added per-isolate locking and unlocking.
   3604 
   3605         Fixed bug in x64 >>> operator (Issue 1359).
   3606 
   3607 
   3608 2011-05-04: Version 3.3.4
   3609 
   3610         Implemented API to disallow code generation from strings for a context
   3611         (issue 1258).
   3612 
   3613         Fixed bug with whitespaces in parseInt (issue 955).
   3614 
   3615         Fixed bug with == comparison of Date objects (issue 1356).
   3616 
   3617         Added GYP variables for ARM code generation:
   3618         v8_can_use_vfp_instructions, v8_can_use_unaligned_accesses
   3619         and v8_use_arm_eabi_hardfloat.
   3620 
   3621 
   3622 2011-05-02: Version 3.3.3
   3623 
   3624         Added support for generating Visual Studio solution and project files
   3625         using GYP.
   3626 
   3627         Implemented support for ARM EABI calling convention variation where
   3628         floating-point arguments are passed in registers (hardfloat).
   3629 
   3630         Added Object::HasOwnProperty() to the API.
   3631 
   3632         Added support for compressing startup data to reduce binary size. This
   3633         includes build time support and an API for the embedder to decompress
   3634         the startup data before initializing V8.
   3635 
   3636         Reduced the profiling hooks overhead from >400% to 25% when using
   3637         ll_prof.
   3638 
   3639         Performance improvements and bug fixes on all platforms.
   3640 
   3641 
   3642 2011-04-27: Version 3.3.2
   3643 
   3644         Fixed crash bug on ARM with no VFP3 hardware.
   3645 
   3646         Fixed compilation of V8 without debugger support.
   3647 
   3648         Improved performance on JSLint.
   3649 
   3650         Added support Float64 WebGL arrays.
   3651 
   3652         Fixed crash bug in regexp replace.
   3653 
   3654 
   3655 2011-04-20: Version 3.3.1
   3656 
   3657         Reduced V8 binary size by removing virtual functions from hydrogen.
   3658 
   3659         Fixed crash bug on x64.
   3660 
   3661         Performance improvements on ARM and IA32.
   3662 
   3663 
   3664 2011-04-18: Version 3.3.0
   3665 
   3666         Fixed bug in floating point rounding in Crankshaft on ARM
   3667         (issue 958)
   3668 
   3669         Fixed a number of issues with running without VFPv3 support on ARM
   3670         (issue 1315)
   3671 
   3672         Introduced v8Locale.Collator, a partial implementation of Collator
   3673         per last ECMAScript meeting + mailing list.
   3674 
   3675         Minor performance improvements and bug fixes.
   3676 
   3677 
   3678 2011-04-13: Version 3.2.10
   3679 
   3680         Fixed bug in external float arrays on ARM (issue 1323).
   3681 
   3682         Minor performance improvements and bug fixes.
   3683 
   3684 
   3685 2011-04-11: Version 3.2.9
   3686 
   3687         Removed support for ABI prior to EABI on ARM.
   3688 
   3689         Fixed multiple crash bugs.
   3690 
   3691         Added GCMole to the repository, a simple static analysis tool that
   3692         searches for GC-unsafe evaluation order dependent callsites.
   3693 
   3694         Made preparser API be exported in shared libraries.
   3695 
   3696         Fixed multiple issues in EcmaScript 5 strict mode implementation.
   3697 
   3698         Fixed mutable __proto__ property if object is not extensible
   3699         (Issue 1309).
   3700 
   3701         Fixed auto suspension of the sampler thread.
   3702 
   3703 
   3704 2011-04-06: Version 3.2.8
   3705 
   3706         Exposed WebGL typed array constructors in the shell sample.
   3707 
   3708         Performance improvements on all platforms.
   3709 
   3710 
   3711 2011-04-04: Version 3.2.7
   3712 
   3713         Disabled the original 'classic' V8 code generator.  Crankshaft is
   3714         now the default on all platforms.
   3715 
   3716         Changed the heap profiler to use more descriptive names.
   3717 
   3718         Performance and stability improvements to isolates on all platforms.
   3719 
   3720 
   3721 2011-03-30: Version 3.2.6
   3722 
   3723         Fixed xcode build warning in shell.cc (out of order initialization).
   3724 
   3725         Fixed null-pointer dereference in the compiler when running without
   3726         SSE3 support (Chromium issue 77654).
   3727 
   3728         Fixed x64 compilation error due to some dead code. (Issue 1286)
   3729 
   3730         Introduced scons target to build the preparser stand-alone example.
   3731 
   3732         Made FreeBSD build and pass all tests.
   3733 
   3734 
   3735 2011-03-28: Version 3.2.5
   3736 
   3737         Fixed build with Irregexp interpreter (issue 1266).
   3738 
   3739         Added Crankshaft support for external arrays.
   3740 
   3741         Fixed two potential crash bugs.
   3742 
   3743 
   3744 2011-03-23: Version 3.2.4
   3745 
   3746         Added isolates which allows several V8 instances in the same process.
   3747         This is controlled through the new Isolate class in the API.
   3748 
   3749         Implemented more of EcmaScript 5 strict mode.
   3750 
   3751         Reduced the time it takes to make detailed heap snapshot.
   3752 
   3753         Added a number of commands to the ARM simulator and enhanced the ARM
   3754         disassembler.
   3755 
   3756 
   3757 2011-03-17: Version 3.2.3
   3758 
   3759         Fixed a number of crash bugs.
   3760 
   3761         Fixed Array::New(length) to return an array with a length (issue 1256).
   3762 
   3763         Fixed FreeBSD build.
   3764 
   3765         Changed __defineGetter__ to not throw (matching the behavior of Safari).
   3766 
   3767         Implemented more of EcmaScript 5 strict mode.
   3768 
   3769         Improved Crankshaft performance on all platforms.
   3770 
   3771 
   3772 2011-03-14: Version 3.2.2
   3773 
   3774         Fixed a number of crash and correctness bugs.
   3775 
   3776         Improved Crankshaft performance on all platforms.
   3777 
   3778         Fixed Crankshaft on Solaris/Illumos.
   3779 
   3780 
   3781 2011-03-10: Version 3.2.1
   3782 
   3783         Fixed a number of crash bugs.
   3784 
   3785         Improved Crankshaft for x64 and ARM.
   3786 
   3787         Implemented more of EcmaScript 5 strict mode.
   3788 
   3789 
   3790 2011-03-07: Version 3.2.0
   3791 
   3792         Fixed a number of crash bugs.
   3793 
   3794         Turned on Crankshaft by default on x64 and ARM.
   3795 
   3796         Improved Crankshaft for x64 and ARM.
   3797 
   3798         Implemented more of EcmaScript 5 strict mode.
   3799 
   3800 
   3801 2011-03-02: Version 3.1.8
   3802 
   3803         Fixed a number of crash bugs.
   3804 
   3805         Improved Crankshaft for x64 and ARM.
   3806 
   3807         Implemented more of EcmaScript 5 strict mode.
   3808 
   3809         Fixed issue with unaligned reads and writes on ARM.
   3810 
   3811         Improved heap profiler support.
   3812 
   3813 
   3814 2011-02-28: Version 3.1.7
   3815 
   3816         Fixed a number of crash bugs.
   3817 
   3818         Improved Crankshaft for x64 and ARM.
   3819 
   3820         Fixed implementation of indexOf/lastIndexOf for sparse
   3821         arrays (http://crbug.com/73940).
   3822 
   3823         Fixed bug in map space compaction (http://crbug.com/59688).
   3824 
   3825         Added support for direct getter accessors calls on ARM.
   3826 
   3827 
   3828 2011-02-24: Version 3.1.6
   3829 
   3830         Fixed a number of crash bugs.
   3831 
   3832         Added support for Cygwin (issue 64).
   3833 
   3834         Improved Crankshaft for x64 and ARM.
   3835 
   3836         Added Crankshaft support for stores to pixel arrays.
   3837 
   3838         Fixed issue in CPU profiler with Crankshaft.
   3839 
   3840 
   3841 2011-02-16: Version 3.1.5
   3842 
   3843         Change RegExp parsing to disallow /(*)/.
   3844 
   3845         Added GDB JIT support for ARM.
   3846 
   3847         Fixed several crash bugs.
   3848 
   3849         Performance improvements on the IA32 platform.
   3850 
   3851 
   3852 2011-02-14: Version 3.1.4
   3853 
   3854         Fixed incorrect compare of prototypes of the global object (issue
   3855         1082).
   3856 
   3857         Fixed a bug in optimizing calls to global functions (issue 1106).
   3858 
   3859         Made optimized Function.prototype.apply safe for non-JSObject first
   3860         arguments (issue 1128).
   3861 
   3862         Fixed an error related to element accessors on Object.prototype and
   3863         parser errors (issue 1130).
   3864 
   3865         Fixed a bug in sorting an array with large array indices (issue 1131).
   3866 
   3867         Properly treat exceptions thrown while compiling (issue 1132).
   3868 
   3869         Fixed bug in register requirements for function.apply (issue 1133).
   3870 
   3871         Fixed a representation change bug in the Hydrogen graph construction
   3872         (issue 1134).
   3873 
   3874         Fixed the semantics of delete on parameters (issue 1136).
   3875 
   3876         Fixed a optimizer bug related to moving instructions with side effects
   3877         (issue 1138).
   3878 
   3879         Added support for the global object in Object.keys (issue 1150).
   3880 
   3881         Fixed incorrect value for Math.LOG10E
   3882         (issue http://code.google.com/p/chromium/issues/detail?id=72555)
   3883 
   3884         Performance improvements on the IA32 platform.
   3885 
   3886         Implement assignment to undefined reference in ES5 Strict Mode.
   3887 
   3888 
   3889 2011-02-09: Version 3.1.3
   3890 
   3891         Fixed a bug triggered by functions with huge numbers of declared
   3892         arguments.
   3893 
   3894         Fixed zap value aliasing a real object - debug mode only (issue 866).
   3895 
   3896         Fixed issue where Array.prototype.__proto__ had been set to null
   3897         (issue 1121).
   3898 
   3899         Fixed stability bugs in Crankshaft for x86.
   3900 
   3901 
   3902 2011-02-07: Version 3.1.2
   3903 
   3904         Added better security checks when accessing properties via
   3905         Object.getOwnPropertyDescriptor.
   3906 
   3907         Fixed bug in Object.defineProperty and related access bugs (issues
   3908         992, 1083 and 1092).
   3909 
   3910         Added LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to ease
   3911         copyright notice generation for embedders.
   3912 
   3913 
   3914 2011-02-02: Version 3.1.1
   3915 
   3916         Perform security checks before fetching the value in
   3917         Object.getOwnPropertyDescriptor.
   3918 
   3919         Fixed a bug in Array.prototype.splice triggered by passing no
   3920         arguments.
   3921 
   3922         Fixed bugs in -0 in arithmetic and in Math.pow.
   3923 
   3924         Fixed bugs in the register allocator and in switching from optimized
   3925         to unoptimized code.
   3926 
   3927 
   3928 2011-01-31: Version 3.1.0
   3929 
   3930         Performance improvements on all platforms.
   3931 
   3932 
   3933 2011-01-28: Version 3.0.12
   3934 
   3935         Added support for strict mode parameter and object property
   3936         validation.
   3937 
   3938         Fixed a couple of crash bugs.
   3939 
   3940 
   3941 2011-01-25: Version 3.0.11
   3942 
   3943         Fixed a bug in deletion of lookup slots that could cause global
   3944         variables to be accidentally deleted (http://crbug.com/70066).
   3945 
   3946         Added support for strict mode octal literal verification.
   3947 
   3948         Fixed a couple of crash bugs (issues 1070 and 1071).
   3949 
   3950 
   3951 2011-01-24: Version 3.0.10
   3952 
   3953         Fixed External::Wrap for 64-bit addresses (issue 1037).
   3954 
   3955         Fixed incorrect .arguments variable proxy handling in the full
   3956         code generator (issue 1060).
   3957 
   3958         Introduced partial strict mode support.
   3959 
   3960         Changed formatting of recursive error messages to match Firefox and
   3961         Safari (issue http://crbug.com/70334).
   3962 
   3963         Fixed incorrect rounding for float-to-integer conversions for external
   3964         array types, which implement the Typed Array spec
   3965         (issue http://crbug.com/50972).
   3966 
   3967         Performance improvements on the IA32 platform.
   3968 
   3969 
   3970 2011-01-19: Version 3.0.9
   3971 
   3972         Added basic GDB JIT Interface integration.
   3973 
   3974         Make invalid break/continue statements a syntax error instead of a
   3975         runtime error.
   3976 
   3977 
   3978 2011-01-17: Version 3.0.8
   3979 
   3980         Exposed heap size limit to the heap statistics gathered by
   3981         the GetHeapStatistics API.
   3982 
   3983         Wrapped external pointers more carefully (issue 1037).
   3984 
   3985         Hardened the implementation of error objects to avoid setters
   3986         intercepting the properties set then throwing an error.
   3987 
   3988         Avoided trashing the FPSCR when calculating Math.floor on ARM.
   3989 
   3990         Performance improvements on the IA32 platform.
   3991 
   3992 
   3993 2011-01-10: Version 3.0.7
   3994 
   3995         Stopped calling inherited setters when creating object literals
   3996         (issue 1015).
   3997 
   3998         Changed interpretation of malformed \c? escapes in RegExp to match
   3999         JSC.
   4000 
   4001         Enhanced the command-line debugger interface and fixed some minor
   4002         bugs in the debugger.
   4003 
   4004         Performance improvements on the IA32 platform.
   4005 
   4006 
   4007 2011-01-05: Version 3.0.6
   4008 
   4009         Allowed getters and setters on JSArray elements (issue 900).
   4010 
   4011         Stopped JSON objects from hitting inherited setters (part of
   4012         issue 1015).
   4013 
   4014         Allowed numbers and strings as names of getters/setters in object
   4015         initializer (issue 820).
   4016 
   4017         Added use_system_v8 option to gyp (off by default), to make it easier
   4018         for Linux distributions to ship with system-provided V8 library.
   4019 
   4020         Exported external array data accessors (issue 1016).
   4021 
   4022         Added labelled thread names to help with debugging (on Linux).
   4023 
   4024 
   4025 2011-01-03: Version 3.0.5
   4026 
   4027         Fixed a couple of cast errors for gcc-3.4.3.
   4028 
   4029         Performance improvements in GC and IA32 code generator.
   4030 
   4031 
   4032 2010-12-21: Version 3.0.4
   4033 
   4034         Added Date::ResetCache() to the API so that the cached values in the
   4035         Date object can be reset to allow live DST / timezone changes.
   4036 
   4037         Extended existing support for printing (while debugging) the contents
   4038         of objects.  Added support for printing objects from release builds.
   4039 
   4040         Fixed V8 issues 989, 1006, and 1007.
   4041 
   4042 
   4043 2010-12-17: Version 3.0.3
   4044 
   4045         Reapplied all changes for version 3.0.1.
   4046 
   4047         Improved debugger protocol for remote debugging.
   4048 
   4049         Added experimental support for using gyp to generate build files
   4050         for V8.
   4051 
   4052         Fixed implementation of String::Write in the API (issue 975).
   4053 
   4054 
   4055 2010-12-15: Version 3.0.2
   4056 
   4057         Revert version 3.0.1 and patch 3.0.1.1.
   4058 
   4059 
   4060 2010-12-13: Version 3.0.1
   4061 
   4062         Added support for an experimental internationalization API as an
   4063         extension.  This extension is disabled by default but can be enabled
   4064         when building V8.  The ECMAScript internationalization strawman is
   4065         at http://wiki.ecmascript.org/doku.php?id=strawman:i18n_api.
   4066 
   4067         Made RegExp character class parsing stricter.  This mirrors a change
   4068         to RegExp parsing in WebKit.
   4069 
   4070         Fixed a bug in Object.defineProperty when used to change attributes
   4071         of an existing property.  It incorrectly set the property value to
   4072         undefined (issue 965).
   4073 
   4074         Fixed several different compilation failures on various platforms
   4075         caused by the 3.0.0 release.
   4076 
   4077         Optimized Math.pow so it can work on unboxed doubles.
   4078 
   4079         Sped up quoting of JSON strings by removing one traversal of the
   4080         string.
   4081 
   4082 
   4083 2010-12-07: Version 3.0.0
   4084 
   4085         Improved performance by (partially) addressing issue 957 on
   4086         IA-32. Still needs more work for the other architectures.
   4087 
   4088 
   4089 2010-11-29: Version 2.5.9
   4090 
   4091         Fixed crashes during GC caused by partially initialize heap
   4092         objects.
   4093 
   4094         Fixed bug in process sample that caused memory leaks.
   4095 
   4096         Improved performance on ARM by implementing missing stubs and
   4097         inlining.
   4098 
   4099         Improved heap profiler support.
   4100 
   4101         Added separate seeding on Windows of the random number generator
   4102         used internally by the compiler (issue 936).
   4103 
   4104         Exposed API for getting the name of the function used to construct
   4105         an object.
   4106 
   4107         Fixed date parser to handle one and two digit millisecond
   4108         values (issue 944).
   4109 
   4110         Fixed number parsing to disallow space between sign and
   4111         digits (issue 946).
   4112 
   4113 
   4114 2010-11-23: Version 2.5.8
   4115 
   4116         Removed dependency on Gay's dtoa.
   4117 
   4118         Improved heap profiler precision and speed.
   4119 
   4120         Reduced overhead of callback invocations on ARM.
   4121 
   4122 
   4123 2010-11-18: Version 2.5.7
   4124 
   4125         Fixed obscure evaluation order bug (issue 931).
   4126 
   4127         Split the random number state between JavaScript and the private API.
   4128 
   4129         Fixed performance bug causing GCs when generating stack traces on
   4130         code from very large scripts.
   4131 
   4132         Fixed bug in parser that allowed (foo):42 as a labelled statement
   4133         (issue 918).
   4134 
   4135         Provide more accurate results about used heap size via
   4136         GetHeapStatistics.
   4137 
   4138         Allow build-time customization of the max semispace size.
   4139 
   4140         Made String.prototype.split honor limit when separator is empty
   4141         (issue 929).
   4142 
   4143         Added missing failure check after expecting an identifier in
   4144         preparser (Chromium issue 62639).
   4145 
   4146 
   4147 2010-11-10: Version 2.5.6
   4148 
   4149         Added support for VFP rounding modes to the ARM simulator.
   4150 
   4151         Fixed multiplication overflow bug (issue 927).
   4152 
   4153         Added a limit for the amount of executable memory (issue 925).
   4154 
   4155 
   4156 2010-11-08: Version 2.5.5
   4157 
   4158         Added more aggressive GC of external objects in near out-of-memory
   4159         situations.
   4160 
   4161         Fixed a bug that gave the incorrect result for String.split called
   4162         on the empty string (issue 924).
   4163 
   4164 
   4165 2010-11-03: Version 2.5.4
   4166 
   4167         Improved V8 VFPv3 runtime detection to address issue 914.
   4168 
   4169 
   4170 2010-11-01: Version 2.5.3
   4171 
   4172         Fixed a bug that prevents constants from overwriting function values
   4173         in object literals (issue 907).
   4174 
   4175         Fixed a bug with reporting of impossible nested calls of DOM functions
   4176         (issue http://crbug.com/60753).
   4177 
   4178 
   4179 2010-10-27: Version 2.5.2
   4180 
   4181         Improved sampler resolution on Linux.
   4182 
   4183         Allowed forcing the use of a simulator from the build script
   4184         independently of the host architecture.
   4185 
   4186         Fixed FreeBSD port (issue 912).
   4187 
   4188         Made windows-tick-processor respect D8_PATH.
   4189 
   4190         Implemented --noinline-new flag fully on IA32, X64 and ARM platforms.
   4191 
   4192 
   4193 2010-10-20: Version 2.5.1
   4194 
   4195         Fixed bug causing spurious out of memory exceptions
   4196         (issue http://crbug.com/54580).
   4197 
   4198         Fixed compilation error on Solaris platform (issue 901).
   4199 
   4200         Fixed error in strtod (string to floating point number conversion)
   4201         due to glibc's use of 80-bit floats in the FPU on 32-bit linux.
   4202 
   4203         Adjusted randomized allocations of executable memory to have 64k
   4204         granularity (issue http://crbug.com/56036).
   4205 
   4206         Supported profiling using kernel perf_events on linux.  Added ll_prof
   4207         script to tools and --ll-prof flag to V8.
   4208 
   4209 
   4210 2010-10-18: Version 2.5.0
   4211 
   4212         Fixed bug in cache handling of lastIndex on global regexps
   4213         (issue http://crbug.com/58740).
   4214 
   4215         Added USE_SIMULATOR macro that explicitly indicates that we wish to use
   4216         the simulator as the execution engine (by Mark Lam <mark.lam (a] palm.com>
   4217         from Hewlett-Packard Development Company, LP).
   4218 
   4219         Fixed compilation error on ARM with gcc 4.4 (issue 894).
   4220 
   4221 
   4222 2010-10-13: Version 2.4.9
   4223 
   4224         Fixed a bug in the handling of conditional expressions in test
   4225         contexts in compiler for top-level code.
   4226 
   4227         Added "//@ sourceURL" information to the StackTrace API.
   4228 
   4229         Exposed RegExp construction through the API.
   4230 
   4231 
   4232 2010-10-04: Version 2.4.8
   4233 
   4234         Fixed a bug in ResumeProfilerEx causing it to not always write out the
   4235         whole snapshot (issue 868).
   4236 
   4237         Performance improvements on all platforms.
   4238 
   4239 
   4240 2010-09-30: Version 2.4.7
   4241 
   4242         Changed the command-line flag --max-new-space-size to be in kB and the
   4243         flag --max-old-space-size to be in MB (previously they were in bytes).
   4244 
   4245         Added Debug::CancelDebugBreak to the debugger API.
   4246 
   4247         Fixed a bug in getters for negative numeric property names
   4248         (https://bugs.webkit.org/show_bug.cgi?id=46689).
   4249 
   4250         Performance improvements on all platforms.
   4251 
   4252 
   4253 2010-09-27: Version 2.4.6
   4254 
   4255         Fixed assertion failure related to copy-on-write arrays (issue 876).
   4256 
   4257         Fixed build failure of 64-bit V8 on Windows.
   4258 
   4259         Fixed a bug in RegExp (issue http://crbug.com/52801).
   4260 
   4261         Improved the profiler's coverage to cover more functions (issue 858).
   4262 
   4263         Fixed error in shift operators on 64-bit V8
   4264         (issue http://crbug.com/54521).
   4265 
   4266 
   4267 2010-09-22: Version 2.4.5
   4268 
   4269         Changed the RegExp benchmark to exercise the regexp engine on different
   4270         inputs by scrambling the input strings.
   4271 
   4272         Fixed a bug in keyed loads on strings.
   4273 
   4274         Fixed a bug with loading global function prototypes.
   4275 
   4276         Fixed a bug with profiling RegExp calls (issue http://crbug.com/55999).
   4277 
   4278         Performance improvements on all platforms.
   4279 
   4280 
   4281 2010-09-15: Version 2.4.4
   4282 
   4283         Fixed bug with hangs on very large sparse arrays.
   4284 
   4285         Now tries harder to free up memory when running out of space.
   4286 
   4287         Added heap snapshots to JSON format to API.
   4288 
   4289         Recalibrated benchmarks.
   4290 
   4291 
   4292 2010-09-13: Version 2.4.3
   4293 
   4294         Made Date.parse properly handle TZ offsets (issue 857).
   4295 
   4296         Performance improvements on all platforms.
   4297 
   4298 
   4299 2010-09-08: Version 2.4.2
   4300 
   4301         Fixed GC crash bug.
   4302 
   4303         Fixed stack corruption bug.
   4304 
   4305         Fixed compilation for newer C++ compilers that found Operand(0)
   4306         ambiguous.
   4307 
   4308 
   4309 2010-09-06: Version 2.4.1
   4310 
   4311         Added the ability for an embedding application to receive a callback
   4312         when V8 allocates (V8::AddMemoryAllocationCallback) or deallocates
   4313         (V8::RemoveMemoryAllocationCallback) from the OS.
   4314 
   4315         Fixed several JSON bugs (including issue 855).
   4316 
   4317         Fixed memory overrun crash bug triggered during V8's tick-based
   4318         profiling.
   4319 
   4320         Performance improvements on all platforms.
   4321 
   4322 
   4323 2010-09-01: Version 2.4.0
   4324 
   4325         Fixed bug in Object.freeze and Object.seal when Array.prototype or
   4326         Object.prototype are changed (issue 842).
   4327 
   4328         Updated Array.splice to follow Safari and Firefox when called
   4329         with zero arguments.
   4330 
   4331         Fixed a missing live register when breaking at keyed loads on ARM.
   4332 
   4333         Performance improvements on all platforms.
   4334 
   4335 
   4336 2010-08-25: Version 2.3.11
   4337 
   4338         Fixed bug in RegExp related to copy-on-write arrays.
   4339 
   4340         Refactored tools/test.py script, including the introduction of
   4341         VARIANT_FLAGS that allows specification of sets of flags with which
   4342         all tests should be run.
   4343 
   4344         Fixed a bug in the handling of debug breaks in CallIC.
   4345 
   4346         Performance improvements on all platforms.
   4347 
   4348 
   4349 2010-08-23: Version 2.3.10
   4350 
   4351         Fixed bug in bitops on ARM.
   4352 
   4353         Build fixes for unusual compilers.
   4354 
   4355         Track high water mark for RWX memory.
   4356 
   4357         Performance improvements on all platforms.
   4358 
   4359 
   4360 2010-08-18: Version 2.3.9
   4361 
   4362         Fixed compilation for ARMv4 on OpenBSD/FreeBSD.
   4363 
   4364         Removed specialized handling of GCC 4.4 (issue 830).
   4365 
   4366         Fixed DST cache to take into account the suspension of DST in
   4367         Egypt during the 2010 Ramadan (issue http://crbug.com/51855).
   4368 
   4369         Performance improvements on all platforms.
   4370 
   4371 
   4372 2010-08-16: Version 2.3.8
   4373 
   4374         Fixed build with strict aliasing on GCC 4.4 (issue 463).
   4375 
   4376         Fixed issue with incorrect handling of custom valueOf methods on
   4377         string wrappers (issue 760).
   4378 
   4379         Fixed compilation for ARMv4 (issue 590).
   4380 
   4381         Improved performance.
   4382 
   4383 
   4384 2010-08-11: Version 2.3.7
   4385 
   4386         Reduced size of heap snapshots produced by heap profiler (issue 783).
   4387 
   4388         Introduced v8::Value::IsRegExp method.
   4389 
   4390         Fixed CPU profiler crash in start / stop sequence when non-existent
   4391         name is passed (issue http://crbug.com/51594).
   4392 
   4393         Introduced new indexed property query callbacks API (issue 816). This
   4394         API is guarded by USE_NEW_QUERY_CALLBACK define and is disabled
   4395         by default.
   4396 
   4397         Removed support for object literal get/set with number/string
   4398         property name.
   4399 
   4400         Fixed handling of JSObject::elements in CalculateNetworkSize
   4401         (issue 822).
   4402 
   4403         Allowed compiling with strict aliasing enabled on GCC 4.4 (issue 463).
   4404 
   4405 
   4406 2010-08-09: Version 2.3.6
   4407 
   4408         RegExp literals create a new object every time they are evaluated
   4409         (issue 704).
   4410 
   4411         Object.seal and Object.freeze return the modified object (issue 809).
   4412 
   4413         Fixed building using GCC 4.4.4.
   4414 
   4415 
   4416 2010-08-04: Version 2.3.5
   4417 
   4418         Added support for ES5 property names. Object initialisers and
   4419         dot-notation property access now allows keywords. Also allowed
   4420         non-identifiers after "get" or "set" in an object initialiser.
   4421 
   4422         Randomized the addresses of allocated executable memory on Windows.
   4423 
   4424 
   4425 2010-08-02: Version 2.3.4
   4426 
   4427         Fixed problems in implementation of ES5 function.prototype.bind.
   4428 
   4429         Fixed error when using apply with arguments object on ARM (issue 784).
   4430 
   4431         Added setting of global flags to debugger protocol.
   4432 
   4433         Fixed an error affecting cached results of sin and cos (issue 792).
   4434 
   4435         Removed memory leak from a boundary case where V8 is not initialized.
   4436 
   4437         Fixed issue where debugger could set breakpoints outside the body
   4438         of a function.
   4439 
   4440         Fixed issue in debugger when using both live edit and step in features.
   4441 
   4442         Added Number-letter (Nl) category to Unicode tables.  These characters
   4443         can now be used in identifiers.
   4444 
   4445         Fixed an assert failure on X64 (issue 806).
   4446 
   4447         Performance improvements on all platforms.
   4448 
   4449 
   4450 2010-07-26: Version 2.3.3
   4451 
   4452         Fixed error when building the d8 shell in a fresh checkout.
   4453 
   4454         Implemented Function.prototype.bind (ES5 15.3.4.5).
   4455 
   4456         Fixed an error in inlined stores on ia32.
   4457 
   4458         Fixed an error when setting a breakpoint at the end of a function
   4459         that does not end with a newline character.
   4460 
   4461         Performance improvements on all platforms.
   4462 
   4463 
   4464 2010-07-21: Version 2.3.2
   4465 
   4466         Fixed compiler warnings when building with LLVM.
   4467 
   4468         Fixed a bug with for-in applied to strings (issue 785).
   4469 
   4470         Performance improvements on all platforms.
   4471 
   4472 
   4473 2010-07-19: Version 2.3.1
   4474 
   4475         Fixed compilation and linking with V8_INTERPRETED_REGEXP flag.
   4476 
   4477         Fixed bug related to code flushing while compiling a lazy
   4478         compilable function (issue http://crbug.com/49099).
   4479 
   4480         Performance improvements on all platforms.
   4481 
   4482 
   4483 2010-07-15: Version 2.3.0
   4484 
   4485         Added ES5 Object.seal and Object.isSealed.
   4486 
   4487         Added debugger API for scheduling debugger commands from a
   4488         separate thread.
   4489 
   4490 
   4491 2010-07-14: Version 2.2.24
   4492 
   4493         Added API for capturing stack traces for uncaught exceptions.
   4494 
   4495         Fixed crash bug when preparsing from a non-external V8 string
   4496         (issue 775).
   4497 
   4498         Fixed JSON.parse bug causing input not to be converted to string
   4499         (issue 764).
   4500 
   4501         Added ES5 Object.freeze and Object.isFrozen.
   4502 
   4503         Performance improvements on all platforms.
   4504 
   4505 
   4506 2010-07-07: Version 2.2.23
   4507 
   4508         API change: Convert Unicode code points outside the basic multilingual
   4509         plane to the replacement character.  Previous behavior was to silently
   4510         truncate the value to 16 bits.
   4511 
   4512         Fixed crash: handle all flat string types in regexp replace.
   4513 
   4514         Prevent invalid pre-parsing data passed in through the API from
   4515         crashing V8.
   4516 
   4517         Performance improvements on all platforms.
   4518 
   4519 
   4520 2010-07-05: Version 2.2.22
   4521 
   4522         Added ES5 Object.isExtensible and Object.preventExtensions.
   4523 
   4524         Enabled building V8 as a DLL.
   4525 
   4526         Fixed a bug in date code where -0 was not interpreted as 0
   4527         (issue 736).
   4528 
   4529         Performance improvements on all platforms.
   4530 
   4531 
   4532 2010-06-30: Version 2.2.21
   4533 
   4534         Fixed bug in externalizing some ASCII strings (Chromium issue 47824).
   4535 
   4536         Updated JSON.stringify to floor the space parameter (issue 753).
   4537 
   4538         Updated the Mozilla test expectations to the newest version.
   4539 
   4540         Updated the ES5 Conformance Test expectations to the latest version.
   4541 
   4542         Updated the V8 benchmark suite.
   4543 
   4544         Provide actual breakpoints locations in response to setBreakpoint
   4545         and listBreakpoints requests.
   4546 
   4547 
   4548 2010-06-28: Version 2.2.20
   4549 
   4550         Fixed bug with for-in on x64 platform (issue 748).
   4551 
   4552         Fixed crash bug on x64 platform (issue 756).
   4553 
   4554         Fixed bug in Object.getOwnPropertyNames. (chromium issue 41243).
   4555 
   4556         Fixed a bug on ARM that caused the result of 1 << x to be
   4557         miscalculated for some inputs.
   4558 
   4559         Performance improvements on all platforms.
   4560 
   4561 
   4562 2010-06-23: Version 2.2.19
   4563 
   4564         Fixed bug that causes the build to break when profillingsupport=off
   4565         (issue 738).
   4566 
   4567         Added expose-externalize-string flag for testing extensions.
   4568 
   4569         Resolve linker issues with using V8 as a DLL causing a number of
   4570         problems with unresolved symbols.
   4571 
   4572         Fixed build failure for cctests when ENABLE_DEBUGGER_SUPPORT is not
   4573         defined.
   4574 
   4575         Performance improvements on all platforms.
   4576 
   4577 
   4578 2010-06-16: Version 2.2.18
   4579 
   4580         Added API functions to retrieve information on indexed properties
   4581         managed by the embedding layer.  Fixes bug 737.
   4582 
   4583         Made ES5 Object.defineProperty support array elements.  Fixes bug 619.
   4584 
   4585         Added heap profiling to the API.
   4586 
   4587         Removed old named property query from the API.
   4588 
   4589         Incremental performance improvements.
   4590 
   4591 
   4592 2010-06-14: Version 2.2.17
   4593 
   4594         Improved debugger support for stepping out of functions.
   4595 
   4596         Incremental performance improvements.
   4597 
   4598 
   4599 2010-06-09: Version 2.2.16
   4600 
   4601         Removed the SetExternalStringDiposeCallback API. Changed the
   4602         disposal of external string resources to call a virtual Dispose
   4603         method on the resource.
   4604 
   4605         Added support for more precise break points when debugging and
   4606         stepping.
   4607 
   4608         Memory usage improvements on all platforms.
   4609 
   4610 
   4611 2010-06-07: Version 2.2.15
   4612 
   4613         Added an API to control the disposal of external string resources.
   4614 
   4615         Added missing initialization of a couple of variables which makes
   4616         some compilers complaint when compiling with -Werror.
   4617 
   4618         Improved performance on all platforms.
   4619 
   4620 
   4621 2010-06-02: Version 2.2.14
   4622 
   4623         Fixed a crash in code generated for String.charCodeAt.
   4624 
   4625         Fixed a compilation issue with some GCC versions (issue 727).
   4626 
   4627         Performance optimizations on x64 and ARM platforms.
   4628 
   4629 
   4630 2010-05-31: Version 2.2.13
   4631 
   4632         Implemented Object.getOwnPropertyDescriptor for element indices and
   4633         strings (issue 599).
   4634 
   4635         Fixed bug for windows 64 bit C calls from generated code.
   4636 
   4637         Added new scons flag unalignedaccesses for arm builds.
   4638 
   4639         Performance improvements on all platforms.
   4640 
   4641 
   4642 2010-05-26: Version 2.2.12
   4643 
   4644         Allowed accessors to be defined on objects rather than just object
   4645         templates.
   4646 
   4647         Changed the ScriptData API.
   4648 
   4649 
   4650 2010-05-21: Version 2.2.11
   4651 
   4652         Fixed crash bug in liveedit on 64 bit.
   4653 
   4654         Use 'full compiler' when debugging is active.  This should increase
   4655         the density of possible break points, making single step more fine
   4656         grained.  This will only take effect for functions compiled after
   4657         debugging has been started, so recompilation of all functions is
   4658         required to get the full effect.  IA32 and x64 only for now.
   4659 
   4660         Misc. fixes to the Solaris build.
   4661 
   4662         Added new flags --print-cumulative-gc-stat and --trace-gc-nvp.
   4663 
   4664         Added filtering of CPU profiles by security context.
   4665 
   4666         Fixed crash bug on ARM when running without VFP2 or VFP3.
   4667 
   4668         Incremental performance improvements in all backends.
   4669 
   4670 
   4671 2010-05-17: Version 2.2.10
   4672 
   4673         Performance improvements in the x64 and ARM backends.
   4674 
   4675 
   4676 2010-05-10: Version 2.2.9
   4677 
   4678         Allowed Object.create to be called with a function (issue 697).
   4679 
   4680         Fixed bug with Date.parse returning a non-NaN value when called on a
   4681         non date string (issue 696).
   4682 
   4683         Allowed unaligned memory accesses on ARM targets that support it (by
   4684         Subrato K De of CodeAurora <subratokde (a] codeaurora.org>).
   4685 
   4686         C++ API for retrieving JavaScript stack trace information.
   4687 
   4688 
   4689 2010-05-05: Version 2.2.8
   4690 
   4691         Performance improvements in the x64 and ARM backends.
   4692 
   4693 
   4694 2010-05-03: Version 2.2.7
   4695 
   4696         Added support for ES5 date time string format to Date.parse.
   4697 
   4698         Performance improvements in the x64 backend.
   4699 
   4700 
   4701 2010-04-28: Version 2.2.6
   4702 
   4703         Added "amd64" as recognized architecture in scons build script
   4704         (by Ryan Dahl <coldredlemur (a] gmail.com>).
   4705 
   4706         Fixed bug in String search and replace with very simple RegExps.
   4707 
   4708         Fixed bug in RegExp containing "\b^".
   4709 
   4710         Performance improvements on all platforms.
   4711 
   4712 
   4713 2010-04-26: Version 2.2.5
   4714 
   4715         Various performance improvements (especially for ARM and x64)
   4716 
   4717         Fixed bug in CPU profiling (http://crbug.com/42137)
   4718 
   4719         Fixed a bug with the natives cache.
   4720 
   4721         Fixed two bugs in the ARM code generator that can cause
   4722         wrong calculations.
   4723 
   4724         Fixed a bug that may cause a wrong result for shift operations.
   4725 
   4726 
   4727 2010-04-21: Version 2.2.4
   4728 
   4729         Fixed warnings on arm on newer GCC versions.
   4730 
   4731         Fixed a number of minor bugs.
   4732 
   4733         Performance improvements on all platforms.
   4734 
   4735 
   4736 2010-04-14: Version 2.2.3
   4737 
   4738         Added stack command and mem command to ARM simulator debugger.
   4739 
   4740         Fixed scons snapshot and ARM build, and Windows X64 build issues.
   4741 
   4742         Performance improvements on all platforms.
   4743 
   4744 
   4745 2010-04-12: Version 2.2.2
   4746 
   4747         Introduced new profiler API.
   4748 
   4749         Fixed random number generator to produce full 32 random bits.
   4750 
   4751 
   4752 2010-04-06: Version 2.2.1
   4753 
   4754         Debugger improvements.
   4755 
   4756         Fixed minor bugs.
   4757 
   4758 
   4759 2010-03-29: Version 2.2.0
   4760 
   4761         Fixed a few minor bugs.
   4762 
   4763         Performance improvements for string operations.
   4764 
   4765 
   4766 2010-03-26: Version 2.1.10
   4767 
   4768         Fixed scons build issues.
   4769 
   4770         Fixed a couple of minor bugs.
   4771 
   4772 
   4773 2010-03-25: Version 2.1.9
   4774 
   4775         Added API support for reattaching a global object to a context.
   4776 
   4777         Extended debugger API with access to the internal debugger context.
   4778 
   4779         Fixed Chromium crashes (issues http://crbug.com/39128 and
   4780         http://crbug.com/39160)
   4781 
   4782 
   4783 2010-03-24: Version 2.1.8
   4784 
   4785         Added fine-grained garbage collection callbacks to the API.
   4786 
   4787         Performance improvements on all platforms.
   4788 
   4789 
   4790 2010-03-22: Version 2.1.7
   4791 
   4792         Fixed issue 650.
   4793 
   4794         Fixed a bug where __proto__ was sometimes enumerated (issue 646).
   4795 
   4796         Performance improvements for arithmetic operations.
   4797 
   4798         Performance improvements for string operations.
   4799 
   4800         Print script name and line number information in stack trace.
   4801 
   4802 
   4803 2010-03-17: Version 2.1.6
   4804 
   4805         Performance improvements for arithmetic operations.
   4806 
   4807         Performance improvements for string operations.
   4808 
   4809 
   4810 2010-03-10: Version 2.1.4
   4811 
   4812         Fixed code cache lookup for keyed IC's (issue http://crbug.com/37853).
   4813 
   4814         Performance improvements on all platforms.
   4815 
   4816 
   4817 2010-03-10: Version 2.1.3
   4818 
   4819         Added API method for context-disposal notifications.
   4820 
   4821         Added API method for accessing elements by integer index.
   4822 
   4823         Added missing implementation of Uint32::Value and Value::IsUint32
   4824         API methods.
   4825 
   4826         Added IsExecutionTerminating API method.
   4827 
   4828         Disabled strict aliasing for GCC 4.4.
   4829 
   4830         Fixed string-concatenation bug (issue 636).
   4831 
   4832         Performance improvements on all platforms.
   4833 
   4834 
   4835 2010-02-23: Version 2.1.2
   4836 
   4837         Fixed a crash bug caused by wrong assert.
   4838 
   4839         Fixed a bug with register names on 64-bit V8 (issue 615).
   4840 
   4841         Performance improvements on all platforms.
   4842 
   4843 
   4844 2010-02-19: Version 2.1.1
   4845 
   4846         [ES5] Implemented Object.defineProperty.
   4847 
   4848         Improved profiler support.
   4849 
   4850         Added SetPrototype method in the public V8 API.
   4851 
   4852         Added GetScriptOrigin and GetScriptLineNumber methods to Function
   4853         objects in the API.
   4854 
   4855         Performance improvements on all platforms.
   4856 
   4857 
   4858 2010-02-03: Version 2.1.0
   4859 
   4860         Values are now always wrapped in objects when used as a receiver.
   4861         (issue 223).
   4862 
   4863         [ES5] Implemented Object.getOwnPropertyNames.
   4864 
   4865         [ES5] Restrict JSON.parse to only accept strings that conforms to the
   4866         JSON grammar.
   4867 
   4868         Improvement of debugger agent (issue 549 and 554).
   4869 
   4870         Fixed problem with skipped stack frame in profiles (issue 553).
   4871 
   4872         Solaris support by Erich Ocean <erich.ocean (a] me.com> and Ryan Dahl
   4873         <ry (a] tinyclouds.org>.
   4874 
   4875         Fixed a bug that Math.round() returns incorrect results for huge
   4876         integers.
   4877 
   4878         Fixed enumeration order for objects created from some constructor
   4879         functions (isue http://crbug.com/3867).
   4880 
   4881         Fixed arithmetic on some integer constants (issue 580).
   4882 
   4883         Numerous performance improvements including porting of previous IA-32
   4884         optimizations to x64 and ARM architectures.
   4885 
   4886 
   4887 2010-01-14: Version 2.0.6
   4888 
   4889         Added ES5 Object.getPrototypeOf, GetOwnPropertyDescriptor,
   4890         GetOwnProperty, FromPropertyDescriptor.
   4891 
   4892         Fixed Mac x64 build errors.
   4893 
   4894         Improved performance of some math and string operations.
   4895 
   4896         Improved performance of some regexp operations.
   4897 
   4898         Improved performance of context creation.
   4899 
   4900         Improved performance of hash tables.
   4901 
   4902 
   4903 2009-12-18: Version 2.0.5
   4904 
   4905         Extended to upper limit of map space to allow for 7 times as many map
   4906         to be allocated (issue 524).
   4907 
   4908         Improved performance of code using closures.
   4909 
   4910         Improved performance of some binary operations involving doubles.
   4911 
   4912 
   4913 2009-12-16: Version 2.0.4
   4914 
   4915         Added ECMAScript 5 Object.create.
   4916 
   4917         Improved performance of Math.max and Math.min.
   4918 
   4919         Optimized adding of strings on 64-bit platforms.
   4920 
   4921         Improved handling of external strings by using a separate table
   4922         instead of weak handles.  This improves garbage collection
   4923         performance and uses less memory.
   4924 
   4925         Changed code generation for object and array literals in toplevel
   4926         code to be more compact by doing more work in the runtime.
   4927 
   4928         Fixed a crash bug triggered when garbage collection happened during
   4929         generation of a callback load inline cache stub.
   4930 
   4931         Fixed crash bug sometimes triggered when local variables shadowed
   4932         parameters in functions that used the arguments object.
   4933 
   4934 
   4935 2009-12-03: Version 2.0.3
   4936 
   4937         Optimized handling and adding of strings, for-in and Array.join.
   4938 
   4939         Heap serialization is now non-destructive.
   4940 
   4941         Improved profiler support with information on time spend in C++
   4942         callbacks registered through the API.
   4943 
   4944         Added commands to the debugger protocol for starting/stopping
   4945         profiling.
   4946 
   4947         Enabled the non-optimizing compiler for top-level code.
   4948 
   4949         Changed the API to only allow strings to be set as data objects on
   4950         Contexts and scripts to avoid potentially keeping global objects
   4951         around for too long (issue 528).
   4952 
   4953         OpenBSD support patch by Peter Valchev <pvalchev (a] gmail.com>.
   4954 
   4955         Fixed bugs.
   4956 
   4957 
   4958 2009-11-24: Version 2.0.2
   4959 
   4960         Improved profiler support.
   4961 
   4962         Fixed bug that broke compilation of d8 with readline support.
   4963 
   4964 
   4965 2009-11-20: Version 2.0.1
   4966 
   4967         Fixed crash bug in String.prototype.replace.
   4968 
   4969         Reverted a change which caused Chromium interactive ui test
   4970         failures.
   4971 
   4972 
   4973 2009-11-18: Version 2.0.0
   4974 
   4975         Added support for VFP on ARM.
   4976 
   4977         Added TryCatch::ReThrow method to the API.
   4978 
   4979         Reduced the size of snapshots and improved the snapshot load time.
   4980 
   4981         Improved heap profiler support.
   4982 
   4983         64-bit version now supported on Windows.
   4984 
   4985         Fixed a number of debugger issues.
   4986 
   4987         Fixed bugs.
   4988 
   4989 
   4990 2009-10-29: Version 1.3.18
   4991 
   4992         Reverted a change which caused crashes in RegExp replace.
   4993 
   4994         Reverted a change which caused Chromium ui_tests failure.
   4995 
   4996 
   4997 2009-10-28: Version 1.3.17
   4998 
   4999         Added API method to get simple heap statistics.
   5000 
   5001         Improved heap profiler support.
   5002 
   5003         Fixed the implementation of the resource constraint API so it
   5004         works when using snapshots.
   5005 
   5006         Fixed a number of issues in the Windows 64-bit version.
   5007 
   5008         Optimized calls to API getters.
   5009 
   5010         Added valgrind notification on code modification to the 64-bit version.
   5011 
   5012         Fixed issue where we logged shared library addresses on Windows at
   5013         startup and never used them.
   5014 
   5015 
   5016 2009-10-16: Version 1.3.16
   5017 
   5018         X64: Convert smis to holding 32 bits of payload.
   5019 
   5020         Introduced v8::Integer::NewFromUnsigned method.
   5021 
   5022         Added missing null check in Context::GetCurrent.
   5023 
   5024         Added trim, trimLeft and trimRight methods to String
   5025         Patch by Jan de Mooij <jandemooij (a] gmail.com>
   5026 
   5027         Implement ES5 Array.isArray
   5028         Patch by Jan de Mooij <jandemooij (a] gmail.com>
   5029 
   5030         Skip access checks for hidden properties.
   5031 
   5032         Added String::Concat(Handle<String> left, Handle<String> right) to the
   5033         V8 API.
   5034 
   5035         Fixed GYP-based builds of V8.
   5036 
   5037 
   5038 2009-10-07: Version 1.3.15
   5039 
   5040         Expanded the maximum size of the code space to 512MB for 64-bit mode.
   5041 
   5042         Fixed a crash bug happening when starting profiling (issue
   5043         http://crbug.com/23768).
   5044 
   5045 
   5046 2009-10-07: Version 1.3.14
   5047 
   5048         Added GetRealNamedProperty to the API to lookup real properties
   5049         located on the object or in the prototype chain skipping any
   5050         interceptors.
   5051 
   5052         Fixed the stack limits setting API to work correctly with threads. The
   5053         stack limit now needs to be set to each thread thich is used with V8.
   5054 
   5055         Removed the high-priority flag from IdleNotification()
   5056 
   5057         Ensure V8 is initialized before locking and unlocking threads.
   5058 
   5059         Implemented a new JavaScript minifier for compressing the source of
   5060         the built-in JavaScript. This removes non-Open Source code from Douglas
   5061         Crockford from the project.
   5062 
   5063         Added a missing optimization in StringCharAt.
   5064 
   5065         Fixed some flaky socket tests.
   5066 
   5067         Change by Alexander Botero-Lowry to fix profiler sampling on FreeBSD
   5068         in 64-bit mode.
   5069 
   5070         Fixed memory leaks in the thread management code.
   5071 
   5072         Fixed the result of assignment to a pixel array. The assigned value
   5073         is now the result.
   5074 
   5075         Error reporting for invalid left-hand sides in for-in statements, pre-
   5076         and postfix count expressions, and assignments now matches the JSC
   5077         behavior in Safari 4.
   5078 
   5079         Follow the spec in disallowing function declarations without a name.
   5080 
   5081         Always allocate code objects within a 2 GB range. On x64 architecture
   5082         this is used to use near calls (32-bit displacement) in Code objects.
   5083 
   5084         Optimized array construction ported to x64 and ARM architectures.
   5085 
   5086         [ES5] Changed Object.keys to return strings for element indices.
   5087 
   5088 
   5089 2009-09-23: Version 1.3.13
   5090 
   5091         Fixed uninitialized memory problem.
   5092 
   5093         Improved heap profiler support.
   5094 
   5095 
   5096 2009-09-22: Version 1.3.12
   5097 
   5098         Changed behavior of |function|.toString() on built-in functions to
   5099         be compatible with other implementations.  Patch by Jan de Mooij.
   5100 
   5101         Added Object::IsDirty in the API.
   5102 
   5103         Optimized array construction; it is now handled purely in native
   5104         code.
   5105 
   5106         [ES5] Made properties of the arguments array enumerable.
   5107 
   5108         [ES5] Added test suite adapter for the es5conform test suite.
   5109 
   5110         [ES5] Added Object.keys function.
   5111 
   5112 
   5113 2009-09-15: Version 1.3.11
   5114 
   5115         Fixed crash in error reporting during bootstrapping.
   5116 
   5117         Optimized generated IA32 math code by using SSE2 instructions when
   5118         available.
   5119 
   5120         Implemented missing pieces of debugger infrastructure on ARM.  The
   5121         debugger is now fully functional on ARM.
   5122 
   5123         Made 'hidden' the default visibility for gcc.
   5124 
   5125 
   5126 2009-09-09: Version 1.3.10
   5127 
   5128         Fixed profiler on Mac in 64-bit mode.
   5129 
   5130         Optimized creation of objects from simple constructor functions on
   5131         ARM.
   5132 
   5133         Fixed a number of debugger issues.
   5134 
   5135         Reduced the amount of memory consumed by V8.
   5136 
   5137 
   5138 2009-09-02: Version 1.3.9
   5139 
   5140         Optimized stack guard checks on ARM.
   5141 
   5142         Optimized API operations by inlining more in the API.
   5143 
   5144         Optimized creation of objects from simple constructor functions.
   5145 
   5146         Enabled a number of missing optimizations in the 64-bit port.
   5147 
   5148         Implemented native-code support for regular expressions on ARM.
   5149 
   5150         Stopped using the 'sahf' instruction on 64-bit machines that do
   5151         not support it.
   5152 
   5153         Fixed a bug in the support for forceful termination of JavaScript
   5154         execution.
   5155 
   5156 
   5157 2009-08-26: Version 1.3.8
   5158 
   5159         Changed the handling of idle notifications to allow idle
   5160         notifications when V8 has not yet been initialized.
   5161 
   5162         Fixed ARM simulator compilation problem on Windows.
   5163 
   5164 
   5165 2009-08-25: Version 1.3.7
   5166 
   5167         Reduced the size of generated code on ARM platforms by reducing
   5168         the size of constant pools.
   5169 
   5170         Changed build files to not include the 'ENV' user environment
   5171         variable in the build environment.
   5172 
   5173         Changed the handling of idle notifications.
   5174 
   5175 
   5176 2009-08-21: Version 1.3.6
   5177 
   5178         Added support for forceful termination of JavaScript execution.
   5179 
   5180         Added low memory notification to the API. The embedding host can signal
   5181         a low memory situation to V8.
   5182 
   5183         Changed the handling of global handles (persistent handles in the API
   5184         sense) to avoid issues regarding allocation of new global handles
   5185         during weak handle callbacks.
   5186 
   5187         Changed the growth policy of the young space.
   5188 
   5189         Fixed a GC issue introduced in version 1.3.5.
   5190 
   5191 
   5192 2009-08-19: Version 1.3.5
   5193 
   5194         Optimized initialization of some arrays in the builtins.
   5195 
   5196         Fixed mac-nm script to support filenames with spaces.
   5197 
   5198         Support for using the V8 profiler when V8 is embedded in a Windows DLL.
   5199 
   5200         Changed typeof RegExp from 'object' to 'function' for compatibility.
   5201         Fixed bug where regexps were not callable across contexts.
   5202 
   5203         Added context independent script compilation to the API.
   5204 
   5205         Added API call to get the stack trace for an exception.
   5206 
   5207         Added API for getting object mirrors.
   5208 
   5209         Made sure that SSE3 instructions are used whenever possible even when
   5210         running off a snapshot generated without using SSE3 instructions.
   5211 
   5212         Tweaked the handling of the initial size and growth policy of the heap.
   5213 
   5214         Added native code generation for RegExp to 64-bit version.
   5215 
   5216         Added JavaScript debugger support to 64-bit version.
   5217 
   5218 
   5219 2009-08-13: Version 1.3.4
   5220 
   5221         Added a readline() command to the d8 shell.
   5222 
   5223         Fixed bug in json parsing.
   5224 
   5225         Added idle notification to the API and reduced memory on idle
   5226         notifications.
   5227 
   5228 
   5229 2009-08-12: Version 1.3.3
   5230 
   5231         Fixed issue 417: incorrect %t placeholder expansion.
   5232 
   5233         Added .gitignore file similar to Chromium's one.
   5234 
   5235         Fixed SConstruct file to build with new logging code for Android.
   5236 
   5237         API: added function to find instance of template in prototype
   5238         chain.  Inlined Object::IsInstanceOf.
   5239 
   5240         Land change to notify valgrind when we modify code on x86.
   5241 
   5242         Added api call to determine whether a string can be externalized.
   5243 
   5244         Added a write() command to d8.
   5245 
   5246 
   5247 2009-08-05: Version 1.3.2
   5248 
   5249         Started new compiler infrastructure for two-pass compilation using a
   5250         control flow graph constructed from the AST.
   5251 
   5252         Profiler stack sampling for X64.
   5253 
   5254         Safe handling of NaN to Posix platform-dependent time functions.
   5255 
   5256         Added a new profiler control API to unify controlling various aspects
   5257         of profiling.
   5258 
   5259         Fixed issue 392.
   5260 
   5261 
   5262 2009-07-30: Version 1.3.1
   5263 
   5264         Speed improvements to accessors and interceptors.
   5265 
   5266         Added support for capturing stack information on custom errors.
   5267 
   5268         Added support for morphing an object into a pixel array where its
   5269         indexed properties are stored in an external byte array. Values written
   5270         are always clamped to the 0..255 interval.
   5271 
   5272         Profiler on x64 now handles C/C++ functions from shared libraries.
   5273 
   5274         Changed the debugger to avoid stepping into function.call/apply if the
   5275         function is a built-in.
   5276 
   5277         Initial implementation of constructor heap profile for JS objects.
   5278 
   5279         More fine grained control of profiling aspects through the API.
   5280 
   5281         Optimized the called as constructor check for API calls.
   5282 
   5283 
   5284 2009-07-27: Version 1.3.0
   5285 
   5286         Allowed RegExp objects to be called as functions (issue 132).
   5287 
   5288         Fixed issue where global property cells would escape after
   5289         detaching the global object; see http://crbug.com/16276.
   5290 
   5291         Added support for stepping into setters and getters in the
   5292         debugger.
   5293 
   5294         Changed the debugger to avoid stopping in its own JavaScript code
   5295         and in the code of built-in functions.
   5296 
   5297         Fixed issue 345 by avoiding duplicate escaping labels.
   5298 
   5299         Fixed ARM code generator crash in short-circuited boolean
   5300         expressions and added regression tests.
   5301 
   5302         Added an external allocation limit to avoid issues where small V8
   5303         objects would hold on to large amounts of external memory without
   5304         causing garbage collections.
   5305 
   5306         Finished more of the inline caching stubs for x64 targets.
   5307 
   5308 
   5309 2009-07-13: Version 1.2.14
   5310 
   5311         Added separate paged heap space for global property cells and
   5312         avoid updating the write barrier when storing into them.
   5313 
   5314         Improved peep-hole optimization on ARM platforms by not emitting
   5315         unnecessary debug information.
   5316 
   5317         Re-enabled ICs for loads and calls that skip a global object
   5318         during lookup through the prototype chain.
   5319 
   5320         Allowed access through global proxies to use ICs.
   5321 
   5322         Fixed issue 401.
   5323 
   5324 
   5325 2009-07-09: Version 1.2.13
   5326 
   5327         Fixed issue 397, issue 398, and issue 399.
   5328 
   5329         Added support for breakpoint groups.
   5330 
   5331         Fixed bugs introduced with the new global object representation.
   5332 
   5333         Fixed a few bugs in the ARM code generator.
   5334 
   5335 
   5336 2009-07-06: Version 1.2.12
   5337 
   5338         Added stack traces collection to Error objects accessible through
   5339         the e.stack property.
   5340 
   5341         Changed RegExp parser to use a recursive data structure instead of
   5342         stack-based recursion.
   5343 
   5344         Optimized Date object construction and string concatenation.
   5345 
   5346         Improved performance of div, mod, and mul on ARM platforms.
   5347 
   5348 
   5349 2009-07-02: Version 1.2.11
   5350 
   5351         Improved performance on IA-32 and ARM.
   5352 
   5353         Fixed profiler sampler implementation on Mac OS X.
   5354 
   5355         Changed the representation of global objects to improve
   5356         performance of adding a lot of new properties.
   5357 
   5358 
   5359 2009-06-29: Version 1.2.10
   5360 
   5361         Improved debugger support.
   5362 
   5363         Fixed bug in exception message reporting (issue 390).
   5364 
   5365         Improved overall performance.
   5366 
   5367 
   5368 2009-06-23: Version 1.2.9
   5369 
   5370         Improved math performance on ARM.
   5371 
   5372         Fixed profiler name-inference bug.
   5373 
   5374         Fixed handling of shared libraries in the profiler tick processor
   5375         scripts.
   5376 
   5377         Fixed handling of tests that time out in the test scripts.
   5378 
   5379         Fixed compilation on MacOS X version 10.4.
   5380 
   5381         Fixed two bugs in the regular expression engine.
   5382 
   5383         Fixed a bug in the string type inference.
   5384 
   5385         Fixed a bug in the handling of 'constant function' properties.
   5386 
   5387         Improved overall performance.
   5388 
   5389 
   5390 2009-06-16: Version 1.2.8
   5391 
   5392         Optimized math on ARM platforms.
   5393 
   5394         Fixed two crash bugs in the handling of getters and setters.
   5395 
   5396         Improved the debugger support by adding scope chain information.
   5397 
   5398         Improved the profiler support by compressing log data transmitted
   5399         to clients.
   5400 
   5401         Improved overall performance.
   5402 
   5403 
   5404 2009-06-08: Version 1.2.7
   5405 
   5406         Improved debugger and profiler support.
   5407 
   5408         Reduced compilation time by improving the handling of deferred
   5409         code.
   5410 
   5411         Optimized interceptor accesses where the property is on the object
   5412         on which the interceptors is attached.
   5413 
   5414         Fixed compilation problem on GCC 4.4 by changing the stack
   5415         alignment to 16 bytes.
   5416 
   5417         Fixed handle creation to follow stric aliasing rules.
   5418 
   5419         Fixed compilation on FreeBSD.
   5420 
   5421         Introduced API for forcing the deletion of a property ignoring
   5422         interceptors and attributes.
   5423 
   5424 
   5425 2009-05-29: Version 1.2.6
   5426 
   5427         Added a histogram recording hit rates at different levels of the
   5428         compilation cache.
   5429 
   5430         Added stack overflow check for the RegExp analysis phase. Previously a
   5431         very long regexp graph could overflow the stack with recursive calls.
   5432 
   5433         Use a dynamic buffer when collecting log events in memory.
   5434 
   5435         Added start/stop events to the profiler log.
   5436 
   5437         Fixed infinite loop which could happen when setting a debug break while
   5438         executing a RegExp compiled to native code.
   5439 
   5440         Fixed handling of lastIndexOf called with negative index (issue 351).
   5441 
   5442         Fixed irregular crash in profiler test (issue 358).
   5443 
   5444         Fixed compilation issues with some versions of gcc.
   5445 
   5446 
   5447 2009-05-26: Version 1.2.5
   5448 
   5449         Fixed bug in initial boundary check for Boyer-Moore text
   5450         search (issue 349).
   5451 
   5452         Fixed compilation issues with MinGW and gcc 4.3+ and added support
   5453         for armv7 and cortex-a8 architectures.  Patches by Lei Zhang and
   5454         Craig Schlenter.
   5455 
   5456         Added a script cache to the debugger.
   5457 
   5458         Optimized compilation performance by improving internal data
   5459         structures and avoiding expensive property load optimizations for
   5460         code that's infrequently executed.
   5461 
   5462         Exposed the calling JavaScript context through the static API
   5463         function Context::GetCalling().
   5464 
   5465 
   5466 2009-05-18: Version 1.2.4
   5467 
   5468         Improved performance of floating point number allocation for ARM
   5469         platforms.
   5470 
   5471         Fixed crash when using the instanceof operator on functions with
   5472         number values in their prototype chain (issue 341).
   5473 
   5474         Optimized virtual frame operations in the code generator to speed
   5475         up compilation time and allocated the frames in the zone.
   5476 
   5477         Made the representation of virtual frames and jump targets in the
   5478         code generator much more compact.
   5479 
   5480         Avoided linear search for non-locals in scope code when resolving
   5481         variables inside with and eval scopes.
   5482 
   5483         Optimized lexical scanner by dealing with whitespace as part of
   5484         the token scanning instead of as a separate step before it.
   5485 
   5486         Changed the scavenging collector so that promoted objects do not
   5487         reside in the old generation while their remembered set is being
   5488         swept for pointers into the young generation.
   5489 
   5490         Fixed numeric overflow handling when compiling count operations.
   5491 
   5492 
   5493 2009-05-11: Version 1.2.3
   5494 
   5495         Fixed bug in reporting of out-of-memory situations.
   5496 
   5497         Introduced hidden prototypes on certain builtin prototype objects
   5498         such as String.prototype to emulate JSC's behavior of restoring
   5499         the original function when deleting functions from those prototype
   5500         objects.
   5501 
   5502         Fixed crash bug in the register allocator.
   5503 
   5504 
   5505 2009-05-04: Version 1.2.2
   5506 
   5507         Fixed bug in array sorting for sparse arrays (issue 326).
   5508 
   5509         Added support for adding a soname when building a shared library
   5510         on Linux (issue 151).
   5511 
   5512         Fixed bug caused by morphing internal ASCII strings to external
   5513         two-byte strings.  Slices over ASCII strings have to forward ASCII
   5514         checks to the underlying buffer string.
   5515 
   5516         Allowed API call-as-function handlers to be called as
   5517         constructors.
   5518 
   5519         Fixed a crash bug where an external string was disposed but a
   5520         slice of the external string survived as a symbol.
   5521 
   5522 
   5523 2009-04-27: Version 1.2.1
   5524 
   5525         Added EcmaScript 5 JSON object.
   5526 
   5527         Fixed bug in preemption support on ARM.
   5528 
   5529 
   5530 2009-04-23: Version 1.2.0
   5531 
   5532         Optimized floating-point operations on ARM.
   5533 
   5534         Added a number of extensions to the debugger API.
   5535 
   5536         Changed the enumeration order for unsigned integer keys to always
   5537         be numerical order.
   5538 
   5539         Added a "read" extension to the shell sample.
   5540 
   5541         Added support for Array.prototype.reduce and
   5542         Array.prototype.reduceRight.
   5543 
   5544         Added an option to the SCons build to control Microsoft Visual C++
   5545         link-time code generation.
   5546 
   5547         Fixed a number of bugs (in particular issue 315, issue 316,
   5548         issue 317 and issue 318).
   5549 
   5550 
   5551 2009-04-15: Version 1.1.10
   5552 
   5553         Fixed crash bug that occurred when loading a const variable in the
   5554         presence of eval.
   5555 
   5556         Allowed using with and eval in registered extensions in debug mode
   5557         by fixing bogus assert.
   5558 
   5559         Fixed the source position for function returns to enable the
   5560         debugger to break there.
   5561 
   5562 
   5563 2009-04-14: Version 1.1.9
   5564 
   5565         Made the stack traversal code in the profiler robust by avoiding
   5566         to look into the heap.
   5567 
   5568         Added name inferencing for anonymous functions to facilitate
   5569         debugging and profiling.
   5570 
   5571         Re-enabled stats timers in the developer shell (d8).
   5572 
   5573         Fixed issue 303 by avoiding to shortcut cons-symbols.
   5574 
   5575 
   5576 2009-04-11: Version 1.1.8
   5577 
   5578         Changed test-debug/ThreadedDebugging to be non-flaky (issue 96).
   5579 
   5580         Fixed step-in handling for Function.prototype.apply and call in
   5581         the debugger (issue 269).
   5582 
   5583         Fixed v8::Object::DeleteHiddenValue to not bail out when there
   5584         are no hidden properties.
   5585 
   5586         Added workaround for crash bug, where external symbol table
   5587         entries with deleted resources would lead to NPEs when looking
   5588         up in the symbol table.
   5589 
   5590 
   5591 2009-04-07: Version 1.1.7
   5592 
   5593         Added support for easily importing additional environment
   5594         variables into the SCons build.
   5595 
   5596         Optimized strict equality checks.
   5597 
   5598         Fixed crash in indexed setters on objects without a corresponding
   5599         getter (issue 298).
   5600 
   5601         Re-enabled script compilation cache.
   5602 
   5603 
   5604 2009-04-01: Version 1.1.6
   5605 
   5606         Reverted an unsafe code generator change.
   5607 
   5608 
   5609 2009-04-01: Version 1.1.5
   5610 
   5611         Fixed bug that caused function literals to not be optimized as
   5612         much as other functions.
   5613 
   5614         Improved profiler support.
   5615 
   5616         Fixed a crash bug in connection with debugger unloading.
   5617 
   5618         Fixed a crash bug in the code generator caused by losing the
   5619         information that a frame element was copied.
   5620 
   5621         Fixed an exception propagation bug that could cause non-null
   5622         return values when exceptions were thrown.
   5623 
   5624 
   5625 2009-03-30: Version 1.1.4
   5626 
   5627         Optimized String.prototype.match.
   5628 
   5629         Improved the stack information in profiles.
   5630 
   5631         Fixed bug in ARM port making it possible to compile the runtime
   5632         system for thumb mode again.
   5633 
   5634         Implemented a number of optimizations in the code generator.
   5635 
   5636         Fixed a number of memory leaks in tests.
   5637 
   5638         Fixed crash bug in connection with script source code and external
   5639         strings.
   5640 
   5641 
   5642 2009-03-24: Version 1.1.3
   5643 
   5644         Fixed assertion failures in compilation of loop conditions.
   5645 
   5646         Removed STL dependency from developer shell (d8).
   5647 
   5648         Added infrastructure for protecting the V8 heap from corruption
   5649         caused by memory modifications from the outside.
   5650 
   5651 
   5652 2009-03-24: Version 1.1.2
   5653 
   5654         Improved frame merge code generated by the code generator.
   5655 
   5656         Optimized String.prototype.replace.
   5657 
   5658         Implemented __defineGetter__ and __defineSetter__ for properties
   5659         with integer keys on non-array objects.
   5660 
   5661         Improved debugger and profiler support.
   5662 
   5663         Fixed a number of portability issues to allow compilation for
   5664         smaller ARM devices.
   5665 
   5666         Exposed object cloning through the API.
   5667 
   5668         Implemented hidden properties.  This is used to expose an identity
   5669         hash for objects through the API.
   5670 
   5671         Implemented restarting of regular expressions if their input
   5672         string changes representation during preemption.
   5673 
   5674         Fixed a code generator bug that could cause assignments in loops
   5675         to be ignored if using continue to break out of the loop (issue
   5676         284).
   5677 
   5678 
   5679 2009-03-12: Version 1.1.1
   5680 
   5681         Fixed an assertion in the new compiler to take stack overflow
   5682         exceptions into account.
   5683 
   5684         Removed exception propagation code that could cause crashes.
   5685 
   5686         Fixed minor bug in debugger line number computations.
   5687 
   5688         8-byte align the C stack on Linux and Windows to speed up floating
   5689         point computations.
   5690 
   5691 
   5692 2009-03-12: Version 1.1.0
   5693 
   5694         Improved code generation infrastructure by doing simple register
   5695         allocation and constant folding and propagation.
   5696 
   5697         Optimized regular expression matching by avoiding to create
   5698         intermediate string arrays and by flattening nested array
   5699         representations of RegExp data.
   5700 
   5701         Traverse a few stack frames when recording profiler samples to
   5702         include partial call graphs in the profiling output.
   5703 
   5704         Added support for using OProfile to profile generated code.
   5705 
   5706         Added remote debugging support to the D8 developer shell.
   5707 
   5708         Optimized creation of nested literals like JSON objects.
   5709 
   5710         Fixed a bug in garbage collecting unused maps and turned it on by
   5711         default (--collect-maps).
   5712 
   5713         Added support for running tests under Valgrind.
   5714 
   5715 
   5716 2009-02-27: Version 1.0.3
   5717 
   5718         Optimized double-to-integer conversions in bit operations by using
   5719         SSE3 instructions if available.
   5720 
   5721         Optimized initialization sequences that store to multiple
   5722         properties of the same object.
   5723 
   5724         Changed the D8 debugger frontend to use JSON messages.
   5725 
   5726         Force garbage collections when disposing contexts.
   5727 
   5728         Align code objects at 32-byte boundaries.
   5729 
   5730 
   5731 2009-02-25: Version 1.0.2
   5732 
   5733         Improved profiling support by performing simple call stack
   5734         sampling for ticks and by fixing a bug in the logging of code
   5735         addresses.
   5736 
   5737         Fixed a number of debugger issues.
   5738 
   5739         Optimized code that uses eval.
   5740 
   5741         Fixed a couple of bugs in the regular expression engine.
   5742 
   5743         Reduced the size of generated code for certain regular expressions.
   5744 
   5745         Removed JSCRE completely.
   5746 
   5747         Fixed issue where test could not be run if there was a dot in the
   5748         checkout path.
   5749 
   5750 
   5751 2009-02-13: Version 1.0.1
   5752 
   5753         Fixed two crash-bugs in irregexp (issue 231 and 233).
   5754 
   5755         Fixed a number of minor bugs (issue 87, 227 and 228).
   5756 
   5757         Added support for morphing strings to external strings on demand
   5758         to avoid having to create copies in the embedding code.
   5759 
   5760         Removed experimental support for external symbol callbacks.
   5761 
   5762 
   5763 2009-02-09: Version 1.0.0
   5764 
   5765         Fixed crash-bug in the code generation for case independent 16 bit
   5766         backreferences.
   5767 
   5768         Made shells more robust in the presence of string conversion
   5769         failures (issue 224).
   5770 
   5771         Fixed a potential infinite loop when attempting to resolve
   5772         eval (issue 221).
   5773 
   5774         Miscellaneous fixes to the new regular expression engine.
   5775 
   5776         Reduced binary by stripping unneeded text from JavaScript library and
   5777         minifying some JavaScript files.
   5778 
   5779 
   5780 2009-01-27: Version 0.4.9
   5781 
   5782         Enabled new regular expression engine.
   5783 
   5784         Made a number of changes to the debugger protocol.
   5785 
   5786         Fixed a number of bugs in the preemption support.
   5787 
   5788         Added -p option to the developer shell to run files in parallel
   5789         using preemption.
   5790 
   5791         Fixed a number of minor bugs (including issues 176, 187, 189, 192,
   5792         193, 198 and 201).
   5793 
   5794         Fixed a number of bugs in the serialization/deserialization
   5795         support for the ARM platform.
   5796 
   5797 
   5798 2009-01-19: Version 0.4.8.1
   5799 
   5800         Minor patch to debugger support.
   5801 
   5802 
   5803 2009-01-16: Version 0.4.8
   5804 
   5805         Fixed string length bug on ARM (issue 171).
   5806 
   5807         Made most methods in the API const.
   5808 
   5809         Optimized object literals by improving data locality.
   5810 
   5811         Fixed bug that caused incomplete functions to be cached in case of
   5812         stack overflow exceptions.
   5813 
   5814         Fixed bugs that caused catch variables and variables introduced by
   5815         eval to behave incorrectly when using accessors (issues 186, 190
   5816         and 191).
   5817 
   5818 
   5819 2009-01-06: Version 0.4.7
   5820 
   5821         Minor bugfixes and optimizations.
   5822 
   5823         Added command line debugger to D8 shell.
   5824 
   5825         Fixed subtle bug that caused the wrong 'this' to be used when
   5826         calling a caught function in a catch clause.
   5827 
   5828         Inline array loads within loops directly in the code instead of
   5829         always calling a stub.
   5830 
   5831 
   5832 2008-12-11: Version 0.4.6
   5833 
   5834         Fixed exception reporting bug where certain exceptions were
   5835         incorrectly reported as uncaught.
   5836 
   5837         Improved the memory allocation strategy used during compilation to
   5838         make running out of memory when compiling huge scripts less
   5839         likely.
   5840 
   5841         Optimized String.replace by avoiding the construction of certain
   5842         sub strings.
   5843 
   5844         Fixed bug in code generation for large switch statements on ARM.
   5845 
   5846         Fixed bug that caused V8 to change the global object template
   5847         passed in by the user.
   5848 
   5849         Changed the API for creating object groups used during garbage
   5850         collection.  Entire object groups are now passed to V8 instead of
   5851         individual members of the groups.
   5852 
   5853 
   5854 2008-12-03: Version 0.4.5
   5855 
   5856         Added experimental API support for allocating V8 symbols as
   5857         external strings.
   5858 
   5859         Fixed bugs in debugging support on ARM.
   5860 
   5861         Changed eval implementation to correctly detect whether or not a
   5862         call to eval is aliased.
   5863 
   5864         Fixed bug caused by a combination of the compilation cache and
   5865         dictionary probing in native code.  The bug caused us to sometimes
   5866         call functions that had not yet been compiled.
   5867 
   5868         Added platform support for FreeBSD.
   5869 
   5870         Added support for building V8 on Windows with either the shared or
   5871         static version of MSVCRT
   5872 
   5873         Added the v8::jscre namespace around the jscre functions to avoid
   5874         link errors (duplicate symbols) when building Google Chrome.
   5875 
   5876         Added support for calling a JavaScript function with the current
   5877         debugger execution context as its argument to the debugger
   5878         interface.
   5879 
   5880         Changed the type of names of counters from wchar_t to char.
   5881 
   5882         Changed the Windows system call used to compute daylight savings
   5883         time.  The system call that we used to use became four times
   5884         slower on WinXP SP3.
   5885 
   5886         Added support in the d8 developer shell for memory-mapped counters
   5887         and added a stats-viewer tool.
   5888 
   5889         Fixed bug in upper/lower case mappings (issue 149).
   5890 
   5891 
   5892 2008-11-17: Version 0.4.4
   5893 
   5894         Reduced code size by using shorter instruction encoding when
   5895         possible.
   5896 
   5897         Added a --help option to the shell sample and to the d8 shell.
   5898 
   5899         Added visual studio project files for building the ARM simulator.
   5900 
   5901         Fixed a number of ARM simulator issues.
   5902 
   5903         Fixed bug in out-of-memory handling on ARM.
   5904 
   5905         Implemented shell support for passing arguments to a script from
   5906         the command line.
   5907 
   5908         Fixed bug in date code that made certain date functions return -0
   5909         instead of 0 for dates before the epoch.
   5910 
   5911         Restricted applications of eval so it can only be used in the
   5912         context of the associated global object.
   5913 
   5914         Treat byte-order marks as whitespace characters.
   5915 
   5916 
   5917 2008-11-04: Version 0.4.3
   5918 
   5919         Added support for API accessors that prohibit overwriting by
   5920         accessors defined in JavaScript code by using __defineGetter__ and
   5921         __defineSetter__.
   5922 
   5923         Improved handling of conditionals in test status files.
   5924 
   5925         Introduced access control in propertyIsEnumerable.
   5926 
   5927         Improved performance of some string operations by caching
   5928         information about the type of the string between operations.
   5929 
   5930         Fixed bug in fast-case code for switch statements that only have
   5931         integer labels.
   5932 
   5933 
   5934 2008-10-30: Version 0.4.2
   5935 
   5936         Improved performance of Array.prototype.concat by moving the
   5937         implementation to C++ (issue 123).
   5938 
   5939         Fixed heap growth policy to avoid growing old space to its maximum
   5940         capacity before doing a garbage collection and fixed issue that
   5941         would lead to artificial out of memory situations (issue 129).
   5942 
   5943         Fixed Date.prototype.toLocaleDateString to return the date in the
   5944         same format as WebKit.
   5945 
   5946         Added missing initialization checks to debugger API.
   5947 
   5948         Added removing of unused maps during GC.
   5949 
   5950 
   5951 2008-10-28: Version 0.4.1
   5952 
   5953         Added caching of RegExp data in compilation cache.
   5954 
   5955         Added Visual Studio project file for d8 shell.
   5956 
   5957         Fixed function call performance regression introduced in version
   5958         0.4.0 when splitting the global object in two parts (issue 120).
   5959 
   5960         Fixed issue 131 by checking for empty handles before throwing and
   5961         reporting exceptions.
   5962 
   5963 
   5964 2008-10-23: Version 0.4.0
   5965 
   5966         Split the global object into two parts: The state holding global
   5967         object and the global object proxy.
   5968 
   5969         Fixed bug that affected the value of an assignment to an element
   5970         in certain cases (issue 116).
   5971 
   5972         Added GetPropertyNames functionality (issue 33) and extra Date
   5973         functions (issue 77) to the API.
   5974 
   5975         Changed WeakReferenceCallback to take a Persistent<Value> instead
   5976         of a Persistent<Object> (issue 101).
   5977 
   5978         Fixed issues with message reporting for exceptions in try-finally
   5979         blocks (issues 73 and 75).
   5980 
   5981         Optimized flattening of strings and string equality checking.
   5982 
   5983         Improved Boyer-Moore implementation for faster indexOf operations.
   5984 
   5985         Added development shell (d8) which includes counters and
   5986         completion support.
   5987 
   5988         Fixed problem with the receiver passed to functions called from
   5989         eval (issue 124).
   5990 
   5991 
   5992 2008-10-16: Version 0.3.5
   5993 
   5994         Improved string hash-code distribution by excluding bit-field bits
   5995         from the hash-code.
   5996 
   5997         Changed string search algorithm used in indexOf from KMP to
   5998         Boyer-Moore.
   5999 
   6000         Improved the generated code for the instanceof operator.
   6001 
   6002         Improved performance of slow-case string equality checks by
   6003         specializing the code based on the string representation.
   6004 
   6005         Improve the handling of out-of-memory situations (issue 70).
   6006 
   6007         Improved performance of strict equality checks.
   6008 
   6009         Improved profiler output to make it easier to see anonymous
   6010         functions.
   6011 
   6012         Improved performance of slow-case keyed loads.
   6013 
   6014         Improved property access performance by allocating a number of
   6015         properties in the front object.
   6016 
   6017         Changed the toString behavior on the built-in object constructors
   6018         to print [native code] instead of the actual source.  Some web
   6019         applications do not like constructors with complex toString
   6020         results.
   6021 
   6022 
   6023 2008-10-06: Version 0.3.4
   6024 
   6025         Changed Array.prototype.sort to use quick sort.
   6026 
   6027         Fixed code generation issue where leaving a finally block with
   6028         break or continue would accumulate elements on the expression
   6029         stack (issue 86).
   6030 
   6031         Made sure that the name accessor on functions returns the expected
   6032         names for builtin JavaScript functions and C++ callback functions.
   6033 
   6034         Added fast case code for extending the property storage array of
   6035         JavaScript objects.
   6036 
   6037         Ported switch statement optimizations introduced in version 0.3.3
   6038         to the ARM code generator.
   6039 
   6040         Allowed GCC to use strict-aliasing rules when compiling.
   6041 
   6042         Improved performance of arguments object allocation by taking care
   6043         of arguments adaptor frames in the generated code.
   6044 
   6045         Updated the V8 benchmark suite to version 2.
   6046 
   6047 
   6048 2008-09-25: Version 0.3.3
   6049 
   6050         Improved handling of relocation information to enable more
   6051         peep-hole optimizations.
   6052 
   6053         Optimized switch statements where all labels are constant small
   6054         integers.
   6055 
   6056         Optimized String.prototype.indexOf for common cases.
   6057 
   6058         Fixed more build issues (issue 80).
   6059 
   6060         Fixed a couple of profiler issues.
   6061 
   6062         Fixed bug where the body of a function created using the Function
   6063         constructor was not allowed to end with a single-line comment
   6064         (issue 85).
   6065 
   6066         Improved handling of object literals by canonicalizing object
   6067         literal maps.  This will allow JSON objects with the same set of
   6068         properties to share the same map making inline caching work better
   6069         for JSON objects.
   6070 
   6071 
   6072 2008-09-17: Version 0.3.2
   6073 
   6074         Generalized the EvalCache into a CompilationCache and enabled it
   6075         for scripts too.  The current strategy is to retire all entries
   6076         whenever a mark-sweep collection is started.
   6077 
   6078         Fixed bug where switch statements containing only a default case
   6079         would lead to an unbalanced stack (issue 69).
   6080 
   6081         Fixed bug that made access to the function in a named function
   6082         expression impossible in certain situations (issue 24).
   6083 
   6084         Fixed even more build issues.
   6085 
   6086         Optimized calling conventions on ARM.  The conventions on ARM and
   6087         IA-32 now match.
   6088 
   6089         Removed static initializers for flags and counters.
   6090 
   6091         Improved inline caching behavior for uncommon cases where lazily
   6092         loading Date and RegExp code could force certain code paths go
   6093         megamorphic.
   6094 
   6095         Removed arguments adaption for builtins written in C++.  This
   6096         makes Array.prototype.push and Array.prototype.pop slightly
   6097         faster.
   6098 
   6099 
   6100 2008-09-11: Version 0.3.1
   6101 
   6102         Fixed a number of build issues.
   6103 
   6104         Fixed problem with missing I-cache flusing on ARM.
   6105 
   6106         Changed space layout in memory management by splitting up
   6107         code space into old data space and code space.
   6108 
   6109         Added utf-8 conversion support to the API (issue 57).
   6110 
   6111         Optimized repeated calls to eval with the same strings.  These
   6112         repeated calls are common in web applications.
   6113 
   6114         Added Xcode project file.
   6115 
   6116         Optimized a couple of Array operation.
   6117 
   6118         Fixed parser bug by checking for end-of-string when parsing break
   6119         and continue (issue 35).
   6120 
   6121         Fixed problem where asian characters were not categorized as
   6122         letters.
   6123 
   6124         Fixed bug that disallowed calling functions fetched from an array
   6125         using a string as an array index (issue 32).
   6126 
   6127         Fixed bug where the internal field count on object templates were
   6128         sometimes ignored (issue 54).
   6129 
   6130         Added -f option to the shell sample for compatibility with other
   6131         engines (issue 18).
   6132 
   6133         Added source info to TryCatches in the API.
   6134 
   6135         Fixed problem where the seed for the random number generator was
   6136         clipped in a double to unsigned int conversion.
   6137 
   6138         Fixed bug where cons string symbols were sometimes converted to
   6139         non-symbol flat strings during GC.
   6140 
   6141         Fixed bug in error reporting when attempting to convert null to an
   6142         object.
   6143 
   6144 
   6145 2008-09-04: Version 0.3.0
   6146 
   6147         Added support for running tests on the ARM simulator.
   6148 
   6149         Fixed bug in the 'in' operator where negative indices were not
   6150         treated correctly.
   6151 
   6152         Fixed build issues on gcc-4.3.1.
   6153 
   6154         Changed Date.prototype.toLocaleTimeString to not print the
   6155         timezone part of the time.
   6156 
   6157         Renamed debug.h to v8-debug.h to reduce the risk of name conflicts
   6158         with user code.
   6159 
   6160 
   6161 2008-09-02: Version 0.2.5
   6162 
   6163         Renamed the top level directory 'public' to 'include'.
   6164 
   6165         Added 'env' option to the SCons build scripts to support
   6166         overriding the ENV part of the build environment.  This is mostly
   6167         to support Windows builds in cases where SCons cannot find the
   6168         correct paths to the Windows SDK, as these paths cannot be passed
   6169         through shell environment variables.
   6170 
   6171         Enabled "Buffer Security Check" on for the Windows SCons build and
   6172         added the linker option /OPT:ICF as an optimization.
   6173 
   6174         Added the V8 benchmark suite to the repository.
   6175 
   6176 
   6177 2008-09-01: Version 0.2.4
   6178 
   6179         Included mjsunit JavaScript test suite and C++ unit tests.
   6180 
   6181         Changed the shell sample to not print the result of executing a
   6182         script provided on the command line.
   6183 
   6184         Fixed issue when building samples on Windows using a shared V8
   6185         library.  Added visibility option on Linux build which makes the
   6186         generated library 18% smaller.
   6187 
   6188         Changed build system to accept multiple build modes in one build
   6189         and generate separate objects, libraries and executables for each
   6190         mode.
   6191 
   6192         Removed deferred negation optimization (a * -b => -(a * b)) since
   6193         this visibly changes operand conversion order.
   6194 
   6195         Improved parsing performance by introducing stack guard in
   6196         preparsing.  Without a stack guard preparsing always bails out
   6197         with stack overflow.
   6198 
   6199         Changed shell sample to take flags directly from the command-line.
   6200         Added API call that implements this.
   6201 
   6202         Added load, quit and version functions to the shell sample so it's
   6203         easier to run benchmarks and tests.
   6204 
   6205         Fixed issue with building samples and cctests on 64-bit machines.
   6206 
   6207         Fixed bug in the runtime system where the prototype chain was not
   6208         always searched for a setter when setting a property that does not
   6209         exist locally.
   6210 
   6211 
   6212 2008-08-14: Version 0.2.3
   6213 
   6214         Improved performance of garbage collection by moving the
   6215         function that updates pointers during compacting collection
   6216         into the updating visitor.  This gives the compiler a better
   6217         chance to inline and avoid a function call per (potential)
   6218         pointer.
   6219 
   6220         Extended the shell sample with a --runtime-flags option.
   6221 
   6222         Added Visual Studio project files for the shell.cc and
   6223         process.cc samples.
   6224 
   6225 
   6226 2008-08-13: Version 0.2.2
   6227 
   6228         Improved performance of garbage collection by changing the way
   6229         we use the marking stack in the event of stack overflow during
   6230         full garbage collection and by changing the way we mark roots.
   6231 
   6232         Cleaned up ARM version by removing top of stack caching and by
   6233         introducing push/pop elimination.
   6234 
   6235         Cleaned up the way runtime functions are called to allow
   6236         runtime calls with no arguments.
   6237 
   6238         Changed Windows build options to make sure that exceptions are
   6239         disabled and that optimization flags are enabled.
   6240 
   6241         Added first version of Visual Studio project files.
   6242 
   6243 
   6244 2008-08-06: Version 0.2.1
   6245 
   6246         Improved performance of unary addition by avoiding runtime calls.
   6247 
   6248         Fixed the handling of '>' and '<=' to use right-to-left conversion
   6249         and left-to-right evaluation as specified by ECMA-262.
   6250 
   6251         Fixed a branch elimination bug on the ARM platform where incorrect
   6252         code was generated because of overly aggressive branch
   6253         elimination.
   6254 
   6255         Improved performance of code that repeatedly assigns the same
   6256         function to the same property of different objects with the same
   6257         map.
   6258 
   6259         Untangled DEBUG and ENABLE_DISASSEMBLER defines.  The disassembler
   6260         no longer expects DEBUG to be defined.
   6261 
   6262         Added platform-nullos.cc to serve as the basis for new platform
   6263         implementations.
   6264 
   6265 
   6266 2008-07-30: Version 0.2.0
   6267 
   6268         Changed all text files to have native svn:eol-style.
   6269 
   6270         Added a few samples and support for building them. The samples
   6271         include a simple shell that can be used to benchmark and test V8.
   6272 
   6273         Changed V8::GetVersion to return the version as a string.
   6274 
   6275         Added source for lazily loaded scripts to snapshots and made
   6276         serialization non-destructive.
   6277 
   6278         Improved ARM support by fixing the write barrier code to use
   6279         aligned loads and stores and by removing premature locals
   6280         optimization that relied on broken support for callee-saved
   6281         registers (removed).
   6282 
   6283         Refactored the code for marking live objects during garbage
   6284         collection and the code for allocating objects in paged
   6285         spaces. Introduced an abstraction for the map word of a heap-
   6286         allocated object and changed the memory allocator to allocate
   6287         executable memory only for spaces that may contain code objects.
   6288 
   6289         Moved StringBuilder to utils.h and ScopedLock to platform.h, where
   6290         they can be used by debugging and logging modules. Added
   6291         thread-safe message queues for dealing with debugger events.
   6292 
   6293         Fixed the source code reported by toString for certain builtin
   6294         empty functions and made sure that the prototype property of a
   6295         function is enumerable.
   6296 
   6297         Improved performance of converting values to condition flags in
   6298         generated code.
   6299 
   6300         Merged disassembler-{arch} files.
   6301 
   6302 
   6303 2008-07-28: Version 0.1.4
   6304 
   6305         Added support for storing JavaScript stack traces in a stack
   6306         allocated buffer to make it visible in shallow core dumps.
   6307         Controlled by the --preallocate-message-memory flag which is
   6308         disabled by default.
   6309 
   6310 
   6311 2008-07-25: Version 0.1.3
   6312 
   6313         Fixed bug in JSObject::GetPropertyAttributePostInterceptor where
   6314         map transitions would count as properties.
   6315 
   6316         Allowed aliased eval invocations by treating them as evals in the
   6317         global context. This may change in the future.
   6318 
   6319         Added support for accessing the last entered context through the
   6320         API and renamed Context::Current to Context::GetCurrent and
   6321         Context::GetSecurityContext to Context::GetCurrentSecurityContext.
   6322 
   6323         Fixed bug in the debugger that would cause the debugger scripts to
   6324         be recursively loaded and changed all disabling of interrupts to
   6325         be block-structured.
   6326 
   6327         Made snapshot data read-only to allow it to be more easily shared
   6328         across multiple users of V8 when linked as a shared library.
   6329 
   6330 
   6331 2008-07-16: Version 0.1.2
   6332 
   6333         Fixed building on Mac OS X by recognizing i386 and friends as
   6334         IA-32 platforms.
   6335 
   6336         Added propagation of stack overflow exceptions that occur while
   6337         compiling nested functions.
   6338 
   6339         Improved debugger with support for recursive break points and
   6340         handling of exceptions that occur in the debugger JavaScript code.
   6341 
   6342         Renamed GetInternal to GetInternalField and SetInternal to
   6343         SetInternalField in the API and moved InternalFieldCount and
   6344         SetInternalFieldCount from FunctionTemplate to ObjectTemplate.
   6345 
   6346 
   6347 2008-07-09: Version 0.1.1
   6348 
   6349         Fixed bug in stack overflow check code for IA-32 targets where a
   6350         non-tagged value in register eax was pushed to the stack.
   6351 
   6352         Fixed potential quadratic behavior when converting strings to
   6353         numbers.
   6354 
   6355         Fixed bug where the return value from Object::SetProperty could
   6356         end up being the property holder instead of the written value.
   6357 
   6358         Improved debugger support by allowing nested break points and by
   6359         dealing with stack-overflows when compiling functions before
   6360         setting break points in them.
   6361 
   6362 
   6363 2008-07-03: Version 0.1.0
   6364 
   6365         Initial export.
   6366 
   6367 # Local Variables:
   6368 # mode:text
   6369 # End:
   6370