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