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