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