1 2014-05-06: Version 3.26.31
3 Add a basic gn file for V8.
5 Performance and stability improvements on all platforms.
8 2014-05-05: Version 3.26.30
10 Introduce a microtask suppression scope and move microtask methods to
11 isolate (Chromium issue 369503).
13 Re-enable Object.observe and add enforcement for security invariants.
15 Move cache line size calculation directly into CPU::FlushICache
16 (Chromium issue 359977).
18 Generation of our home-grown memmove doesn't depend on serializer state
19 anymore (Chromium issue 359977).
21 Fix |RunMicrotasks()| leaking reference to the last context being run
24 Object.defineProperty shouldn't be a hint that we're constructing a
25 dictionary (Chromium issue 362870).
27 Performance and stability improvements on all platforms.
30 2014-05-01: Version 3.26.29
32 Added a Isolate* parameter to Serializer::enabled() (Chromium issue
35 ES6: Add support for Array.prototype.fill() (issue 3273).
37 Performance and stability improvements on all platforms.
40 2014-04-29: Version 3.26.28
42 PromiseThen should ignore non-function parameters (Chromium issue
45 Performance and stability improvements on all platforms.
48 2014-04-29: Version 3.26.27
50 Error stack getter should not overwrite itself with a data property
53 Performance and stability improvements on all platforms.
56 2014-04-28: Version 3.26.26
58 Expose promise value through promise mirror (issue 3093).
60 Simplified CPU/CpuFeatures a bit (Chromium issue 359977).
62 Performance and stability improvements on all platforms.
65 2014-04-28: Version 3.26.25
67 Add timestamps to CPU profile samples (Chromium issue 363976).
69 Expose promise status through promise mirror (issue 3093).
71 Remove static CallCompletedCallback handlers.
73 Added an Isolate* field to NoTrackDoubleFieldsForSerializerScope,
74 PlatformFeatureScope and BinaryOpIC::State (Chromium issue 359977).
76 Trigger debug event on not yet caught exception in promises (issue
79 Unbreak vtunejit=on (issue 3288).
81 Performance and stability improvements on all platforms.
84 2014-04-25: Version 3.26.24
86 MIPS: CodeStubs contain their corresponding Isolate* now. (part 2)
87 (Chromium issue 359977).
89 MIPS: CodeStubs contain their corresponding Isolate* now. (part 1)
90 (Chromium issue 359977).
92 CodeStubs contain their corresponding Isolate* now. (part 2) (Chromium
95 Make DescriptorArray::IsMoreGeneralThan() and DescriptorArray::Merge()
96 compatible again (Chromium issue 365172).
98 CodeStubs contain their corresponding Isolate* now. (part 1) (Chromium
101 Performance and stability improvements on all platforms.
104 2014-04-24: Version 3.26.23
106 Performance and stability improvements on all platforms.
109 2014-04-23: Version 3.26.22
111 Disable field type tracking by default (Chromium issue 365172).
113 Performance and stability improvements on all platforms.
116 2014-04-23: Version 3.26.21
118 Context-allocate all parameters in generators (issue 3280).
120 Simplify v8/Isolate teardown (Chromium issue 359977).
122 Performance and stability improvements on all platforms.
125 2014-04-21: Version 3.26.20
127 ES6: Add support for Map/Set forEach (Chromium issues 1793, 2323).
129 Performance and stability improvements on all platforms.
132 2014-04-18: Version 3.26.19
134 ES6: Add support for Map/Set forEach (Chromium issues 1793, 2323).
136 Performance and stability improvements on all platforms.
139 2014-04-17: Version 3.26.18
141 Removed Isolate::EnterDefaultIsolate (Chromium issue 359977).
143 Performance and stability improvements on all platforms.
146 2014-04-16: Version 3.26.17
148 Clear invalid field maps in PropertyAccessInfo (Chromium issue 363956).
150 ES6: Add support for Map/Set forEach (Chromium issues 1793, 2323).
152 Performance and stability improvements on all platforms.
155 2014-04-16: Version 3.26.16
157 Removed EnterIsolateIfNeeded and a soon-to-be-useless assertion
158 (Chromium issue 359977).
160 Removed GetDefaultIsolate{Debugger,ForLocking,StackGuard} (Chromium
163 Performance and stability improvements on all platforms.
166 2014-04-15: Version 3.26.15
168 Fix result of LCodeGen::DoWrapReceiver for strict functions and builtins
169 (Chromium issue 362128).
171 Performance and stability improvements on all platforms.
174 2014-04-15: Version 3.26.14
176 Performance and stability improvements on all platforms.
179 2014-04-14: Version 3.26.13
181 Make maps in monomorphic IC stubs weak (issue 2073).
183 x64: Make sure that the upper half of a 64bit register contains 0 for
184 int32 values (Chromium issue 360611).
186 Performance and stability improvements on all platforms.
189 2014-04-11: Version 3.26.12
191 Do not use ranges after range analysis (Chromium issue 361608).
193 Performance and stability improvements on all platforms.
196 2014-04-10: Version 3.26.11
198 Performance and stability improvements on all platforms.
201 2014-04-10: Version 3.26.10
203 Allow the embedder to pass the virtual memory limit to v8.
205 Performance and stability improvements on all platforms.
208 2014-04-09: Version 3.26.9
210 Fix invalid local property lookup for transitions (Chromium issue
213 MIPS: Fixed flooring division by -1 (issue 3259).
215 Fixed flooring division by -1 on ARM (issue 3259).
217 Make `String.prototype.contains` throw when passing a regular expression
220 Performance and stability improvements on all platforms.
223 2014-04-08: Version 3.26.8
225 Yet another regression test for range analysis (issue 3204).
227 Performance and stability improvements on all platforms.
230 2014-04-07: Version 3.26.7
232 Performance and stability improvements on all platforms.
235 2014-04-04: Version 3.26.6
237 Performance and stability improvements on all platforms.
240 2014-04-03: Version 3.26.5
242 Performance and stability improvements on all platforms.
245 2014-04-03: Version 3.26.4
247 Make stray 'return' an early error.
249 Show references from weak containers as weak in heap snapshots (Chromium
252 Make invalid LHSs that are calls late errors (Chromium issue 358346).
254 Performance and stability improvements on all platforms.
257 2014-04-02: Version 3.26.3
259 Support typed arrays in IsMoreGeneralElementsKindTransition (Chromium
262 Remove debugger_auto_break flag.
264 Store i18n meta data in hidden symbols instead of js accessible
265 properties (Chromium issue 354967).
267 Performance and stability improvements on all platforms.
270 2014-04-01: Version 3.26.2
272 Performance and stability improvements on all platforms.
275 2014-04-01: Version 3.26.1
277 Fix Type::Intersect to skip uninhabited bitsets (Chromium issue 357330).
279 Fix PrepareKeyedOperand on arm (Chromium issue 358057).
281 Performance and stability improvements on all platforms.
284 2014-03-31: Version 3.26.0
286 Deprecate Start/StopCpuProfiling methods (issue 3213).
288 Don't crash if we get a timezone change notification on an uninitialized
289 isolate (Chromium issue 357362).
291 Performance and stability improvements on all platforms.
294 2014-03-28: Version 3.25.30
296 NativeContext::map_cache reference should be strong in heap snapshots
297 (Chromium issue 357060).
299 Performance and stability improvements on all platforms.
302 2014-03-27: Version 3.25.29
304 Performance and stability improvements on all platforms.
307 2014-03-27: Version 3.25.28
309 Performance and stability improvements on all platforms.
312 2014-03-26: Version 3.25.27
314 Promise constructor should not be enumerable (Chromium issue 352597).
316 Performance and stability improvements on all platforms.
319 2014-03-26: Version 3.25.26
321 Performance and stability improvements on all platforms.
324 2014-03-25: Version 3.25.25
326 Roll ICU 239289:258359 and add support for external ICU data tables
327 (issue 3142, Chromium issue 72633).
329 Performance and stability improvements on all platforms.
332 2014-03-25: Version 3.25.24
334 Add support for per-isolate private symbols.
336 No longer OOM on invalid string length (issue 3060).
338 Remove Failure::OutOfMemory propagation and
339 V8::IgnoreOutOfMemoryException (issue 3060).
341 Tentative Windows dll build fix: Don't V8_EXPORT ScriptCompiler::Source
344 Performance and stability improvements on all platforms.
347 2014-03-24: Version 3.25.23
349 Rename A64 port to ARM64 port (Chromium issue 354405).
351 Fix missing access check in Runtime_SetPrototype (Chromium issue
354 Fix polymorphic hydrogen handling of SLOPPY_ARGUMENTS_ELEMENTS (Chromium
357 Performance and stability improvements on all platforms.
360 2014-03-20: Version 3.25.22
362 Increase the "local variables in a function" limit (issue 3205).
364 Implement ES6 symbol registry and predefined symbols.
366 Throw exception on invalid string length instead of OOM (Chromium issue
369 Performance and stability improvements on all platforms.
372 2014-03-20: Version 3.25.21
374 Performance and stability improvements on all platforms.
377 2014-03-20: Version 3.25.20
379 Fix polymorphic keyed loads for SLOPPY_ARGUMENTS_ELEMENTS (Chromium
382 Performance and stability improvements on all platforms.
385 2014-03-19: Version 3.25.19
387 Performance and stability improvements on all platforms.
390 2014-03-19: Version 3.25.18
392 Performance and stability improvements on all platforms.
395 2014-03-19: Version 3.25.17
397 Performance and stability improvements on all platforms.
400 2014-03-18: Version 3.25.16
402 Apply numeric casts correctly in typed arrays and related code (Chromium
405 Performance and stability improvements on all platforms.
408 2014-03-18: Version 3.25.15
410 Don't generate keyed store ICs for global proxies (Chromium issue
413 MIPS: Make invalid LHSs a parse-time (reference) error (Chromium issue
416 Make invalid LHSs a parse-time (reference) error (Chromium issue
419 Add Promises/A+ Compliance Test Suite (Chromium issue 347095).
421 Split Promise API into Promise/Resolver.
423 Performance and stability improvements on all platforms.
426 2014-03-17: Version 3.25.14
428 Performance and stability improvements on all platforms.
431 2014-03-17: Version 3.25.13
433 Move profiler callback interfaces from v8.h to v8-profiler.h.
435 Performance and stability improvements on all platforms.
438 2014-03-14: Version 3.25.12
440 PromiseCoerce should deal with an error during accessing "then"
441 (Chromium issue 347095).
443 Propagate updated offsets in BoundsCheckBbData (Chromium issue 350863).
445 Add regression test for range analysis bug (issue 3204).
447 Continued fix for 351257. Reusing the feedback vector is too complex
448 (Chromium issue 351257).
450 StopCpuProfiling should return non-const CpuProfile (issue 3213).
452 Allow for compiling with xcode 5.1 (which doesn't have gcc anymore).
454 Performance and stability improvements on all platforms.
457 2014-03-14: Version 3.25.11
459 MIPS: Remove uses of CanBeNegative() in HMod (issue 3204).
461 MIPS: Remove uses of RangeCanInclude() in flooring division by power of
464 MIPS: Fix uses of range analysis results in HChange (issue 3204).
466 Make translation of modulus operation '--stress-opt'-proof (Chromium
469 Remove uses of CanBeNegative() in HMod (issue 3204).
471 Remove uses of RangeCanInclude() in flooring division by power of 2
474 Fix uses of range analysis results in HChange (issue 3204).
476 Performance and stability improvements on all platforms.
479 2014-03-14: Version 3.25.10
481 This version was not committed due to script failures.
484 2014-03-13: Version 3.25.9
486 Reland "Enable Object.observe by default" again (issue 2409).
488 Use intrinsics for builtin ArrayBuffer property accesses (Chromium issue
491 Performance and stability improvements on all platforms.
494 2014-03-12: Version 3.25.8
496 Fix HIsSmiAndBranch::KnownSuccessorBlock() by deleting it (Chromium
499 Fix handling of polymorphic array accesses with constant index (Chromium
502 Fix lazy deopt after tagged binary ops (Chromium issue 350434).
504 MIPS: Cleanup some of the range uses in ModI/DivI (issue 3204).
506 Fix issue with getOwnPropertySymbols and hidden properties (Chromium
509 Cleanup some of the range uses in ModI/DivI (issue 3204).
511 PromiseCoerce should ignore primitive values (Chromium issue 347095).
513 Use a per-isolate cache for the date object JS bits (Chromium issue
516 Performance and stability improvements on all platforms.
519 2014-03-11: Version 3.25.7
521 Promise.all and Promise.race should reject non-array parameter (Chromium
524 Promise.all and Promise race should use "then" rather than "chain"
525 (Chromium issue 347427).
527 Merge the "Compute Minus Zero Checks" phase into the range analysis
530 Performance and stability improvements on all platforms.
533 2014-03-10: Version 3.25.6
535 Replace the recursion in PropagateMinusZeroChecks() with a loop and a
536 worklist (issue 3204).
538 Reland "Enable Object.observe by default" (issue 2409).
540 Enable Object.observe by default (issue 2409).
542 AllocationTracker now maintains a map from address range to stack trace
543 that allocated the range. When snapshot is generated the map is used to
544 find construction stack trace for an object using its address (Chromium
547 Introduce Runtime_GetAllScopesDetails to get all scopes at once for a
548 frame (Chromium issue 340285).
550 Reduce heavy runtime calls from debug mirrors (Chromium issue 340285).
552 Check and clear date cache in DateCurrentTime, DateLocalTimezone and
553 getTimezoneOffset (Chromium issue 142141).
555 Performance and stability improvements on all platforms.
558 2014-03-06: Version 3.25.5
560 Fix HConstants with Smi-ranged HeapNumber values (Chromium issue
563 Fix issues with JSON stringify replacer array (issues 3200, 3201).
565 Performance and stability improvements on all platforms.
568 2014-03-05: Version 3.25.4
570 x64: Fix LMathMinMax for constant Smi right-hand operands (Chromium
573 Performance and stability improvements on all platforms.
576 2014-03-04: Version 3.25.3
578 Clear optimized code cache in shared function info when code gets
579 deoptimized (Chromium issue 343609).
581 Fixed constant folding for Math.clz32 (Chromium issue 347906).
583 Fix JSObject::PrintTransitions (Chromium issue 347912).
585 Fix handling of constant global variable assignments (Chromium issue
588 Removed bogus ASSERT (Chromium issue 347542).
590 Mark HCompareMap as having Tagged representation (Chromium issue
593 Fix crasher in Object.getOwnPropertySymbols (Chromium issue 346141).
595 Fix the bit massaging code in CompleteParserRecorder::WriteNumber
596 (Chromium issue 346221).
598 Don't eliminate loads with incompatible types or representations
599 (Chromium issue 346343).
601 Check that after a weak callback, the handle is either dead or strong
602 (Chromium issue 346061).
604 Lazy preparsing vs. lazy parsing fix (Chromium issue 346207).
606 Performance and stability improvements on all platforms.
609 2014-02-25: Version 3.25.2
611 Fix the bit massaging code in CompleteParserRecorder::WriteNumber
612 (Chromium issue 346221).
614 Revert r19455 "Load target types and handlers before IC computation."
615 (Chromium issue 346149).
617 Don't eliminate loads with incompatible types or representations
618 (Chromium issue 346343).
620 Fix for a smi stores optimization on x64 with a regression test
621 (Chromium issue 345715).
623 Check that after a weak callback, the handle is either dead or strong
624 (Chromium issue 346061).
626 negative bounds checking on realm calls (Chromium issue 344285).
628 Lazy preparsing vs. lazy parsing fix (Chromium issue 346207).
630 Fix optimistic BCE to back off after deopt (issue 3176).
632 Performance and stability improvements on all platforms.
635 2014-02-21: Version 3.25.1
637 Performance and stability improvements on all platforms.
640 2014-02-19: Version 3.25.0
642 ES6: Tighten up Object.prototype.__proto__ (issue 3064).
644 Fix Hydrogen bounds check elimination (Chromium issue 344186).
646 Performance and stability improvements on all platforms.
649 2014-02-19: Version 3.24.40
651 A64: Let the MacroAssembler resolve branches to distant targets (issue
654 Fixed and improved code for integral division. Fixed and extended tests
657 MIPS: Fix assignment of function name constant (issue 3138).
659 Fix assignment of function name constant (issue 3138).
661 Performance and stability improvements on all platforms.
664 2014-02-14: Version 3.24.39
666 Introduce --job-based-sweeping flag and use individual jobs for sweeping
669 Performance and stability improvements on all platforms.
672 2014-02-13: Version 3.24.38
674 Merge experimental/a64 to bleeding_edge (issue 3113).
676 Performance and stability improvements on all platforms.
679 2014-02-12: Version 3.24.37
681 Fix spec violations in JSON.stringify wrt replacer array (issue 3135).
683 Performance and stability improvements on all platforms.
686 2014-02-11: Version 3.24.36
688 Fix inconsistencies wrt whitespaces (issue 3109).
690 Performance and stability improvements on all platforms.
693 2014-02-10: Version 3.24.35
695 Fix inconsistencies wrt whitespaces (issue 3109).
697 Performance and stability improvements on all platforms.
700 2014-02-07: Version 3.24.34
702 Performance and stability improvements on all platforms.
705 2014-02-06: Version 3.24.33
707 Allow externalizing strings in old pointer space (Chromium issue
710 Performance and stability improvements on all platforms.
713 2014-02-05: Version 3.24.32
715 Add Box object to heap profiler.
717 Check the offset argument of TypedArray.set for fitting into Smi
718 (Chromium issue 340125).
720 Performance and stability improvements on all platforms.
723 2014-02-04: Version 3.24.31
725 Fix short-circuiting logical and/or in HOptimizedGraphBuilder (Chromium
728 Elements field of newly allocated JSArray could be left uninitialized in
729 some cases (fast literal case) (Chromium issue 340124).
731 Re-enable escape analysis.
733 Performance and stability improvements on all platforms.
736 2014-02-03: Version 3.24.30
738 Performance and stability improvements on all platforms.
741 2014-02-01: Version 3.24.29
743 Performance and stability improvements on all platforms.
746 2014-01-31: Version 3.24.28
748 Don't crash in Array.join() if the resulting string exceeds the max
749 string length (Chromium issue 336820).
751 Implements ES6 String.prototype.normalize method (issue 2943).
753 Performance and stability improvements on all platforms.
756 2014-01-30: Version 3.24.27
758 Performance and stability improvements on all platforms.
761 2014-01-29: Version 3.24.26
763 ES6: Map and Set needs to normalize minus zero (issue 3069).
765 Make `String.prototype.{starts,ends}With` throw when passing a regular
766 expression (issue 3070).
768 Performance and stability improvements on all platforms.
771 2014-01-28: Version 3.24.25
773 Performance and stability improvements on all platforms.
776 2014-01-27: Version 3.24.24
778 MIPS: Reduce the stack requirements of GetNoCodeAgeSequence (issue
781 Delete v8_shell target now that chrome uses d8 (Chromium issue 331585).
783 ARM: Reduce the stack requirements of GetNoCodeAgeSequence (issue 3111).
785 Performance and stability improvements on all platforms.
788 2014-01-24: Version 3.24.23
790 Performance and stability improvements on all platforms.
793 2014-01-23: Version 3.24.22
795 Fix compilation on x64 architectures (issue 3110).
797 Ensure we don't overwrite transitions in SetPropertyIgnoreAttributes
798 (Chromium issue 326155).
800 ES6: Implement Object.setPrototypeOf (issue 2675).
802 Fixed floor-of-div optimization (Chromium issue 334708).
804 Performance and stability improvements on all platforms.
807 2014-01-22: Version 3.24.21
809 Performance and stability improvements on all platforms.
812 2014-01-21: Version 3.24.20
814 ES6: Implement Object.setPrototypeOf (issue 2675).
816 Performance and stability improvements on all platforms.
819 2014-01-20: Version 3.24.19
821 Introduce a setting to control the toolset for which d8 is compiled
824 Performance and stability improvements on all platforms.
827 2014-01-17: Version 3.24.18
829 Performance and stability improvements on all platforms.
832 2014-01-16: Version 3.24.17
834 Make cells pointing to JSObjects weak in optimized code (issue 2073).
836 Performance and stability improvements on all platforms.
839 2014-01-15: Version 3.24.16
841 Annotate mapped memory regions for LeakSanitizer (Chromium issue
844 Turn Runtime_MigrateInstance into Runtime_TryMigrateInstance (Chromium
847 Performance and stability improvements on all platforms.
850 2014-01-14: Version 3.24.15
852 Introduce an API mirroring the gc extension.
854 Performance and stability improvements on all platforms.
857 2014-01-10: Version 3.24.14
859 ES6: Add Object.getOwnPropertySymbols (issue 3049).
861 Performance and stability improvements on all platforms.
864 2014-01-09: Version 3.24.13
866 Add Isolate parameter to HandleScope::NumberOfHandles (Chromium issue
869 Removed v8::AssertNoGCScope.
871 Performance and stability improvements on all platforms.
874 2014-01-08: Version 3.24.12
876 Correctly handle instances without elements in polymorphic keyed
877 load/store (Chromium issue 331416).
879 Fix selection of popular pages in store buffer (Chromium issue 331444).
881 Prepare removal of ObjectTemplate::New without Isolate parameter
882 (Chromium issue 324225).
884 Performance and stability improvements on all platforms.
887 2014-01-07: Version 3.24.11
889 Remove generated makefiles on linux when running gyp_v8
890 (Chromium issue 331475)
892 Fix building d8 with readline support due to API changes
894 Performance and stability improvements on all platforms.
897 2014-01-03: Version 3.24.10
899 Reland r18383: More API cleanup (Chromium issue 324225).
901 MIPS: Fix loading of global object in LWrapReceiver (Chromium issue
904 Performance and stability improvements on all platforms.
907 2014-01-02: Version 3.24.9
909 Performance and stability improvements on all platforms.
912 2013-12-30: Version 3.24.8
914 ARM: fix loading of global object in LWrapReceiver (Chromium issue
917 Fix a race between concurrent recompilation and OSR (Chromium issue
920 Turn off concurrent sweeping (issue 3071).
922 Performance and stability improvements on all platforms.
925 2013-12-23: Version 3.24.7
927 Fix small spec violation in String.prototype.split (issue 3026).
929 Correctly resolve forcibly context allocated parameters in debug-
930 evaluate (Chromium issue 325676).
932 Introduce Function::GetBoundFunction.
934 Performance and stability improvements on all platforms.
937 2013-12-20: Version 3.24.6
939 Performance and stability improvements on all platforms.
942 2013-12-19: Version 3.24.5
944 Performance and stability improvements on all platforms.
947 2013-12-18: Version 3.24.4
949 Removed all stuff marked as V8_DEPRECATED.
951 Performance and stability improvements on all platforms.
954 2013-12-17: Version 3.24.3
956 Performance and stability improvements on all platforms.
959 2013-12-17: Version 3.24.2
961 Flush instruction cache for deserialized code objects.
963 Performance and stability improvements on all platforms.
966 2013-12-13: Version 3.24.1
968 Fix polymorphic inlined calls with migrating prototypes.
970 Fixed global object leak caused by overwriting the global receiver (the
971 global proxy) in the global object with the global object itself
972 (Chromium issue 324812).
974 Initialize Date parse cache with SMI instead of double to workaround
975 sharing mutable heap numbers in snapshot (Chromium issue 280531).
977 Switch armv7 setting to arm_version==7 in v8 gyp files (Chromium issue
980 Performance and stability improvements on all platforms.
983 2013-12-09: Version 3.24.0
985 Performance and stability improvements on all platforms.
988 2013-12-04: Version 3.23.18
990 Performance and stability improvements on all platforms.
993 2013-12-03: Version 3.23.17
995 Performance and stability improvements on all platforms.
998 2013-12-02: Version 3.23.16
1000 Array builtins need to be prevented from changing frozen objects, and
1001 changing structure on sealed objects (Chromium issue 299979).
1003 Performance and stability improvements on all platforms.
1006 2013-11-29: Version 3.23.15
1008 Fix context register allocation in LTransitionElementsKind
1009 (Chromium issue 324306).
1011 Fix bug in inlining Function.apply (Chromium issue 323942).
1013 Ensure that length is Smi in TypedArrayFromArrayLike constructor
1014 (Chromium issue 324028).
1016 Performance and stability improvements on all platforms.
1019 2013-11-28: Version 3.23.14
1021 Shorten autogenerated error message (issue 3019).
1023 Performance and stability improvements on all platforms.
1026 2013-11-27: Version 3.23.13
1028 Increase precision for base conversion for large integers (issue 3025).
1030 Flatten cons string for single character substrings (Chromium issue
1033 Performance and stability improvements on all platforms.
1036 2013-11-26: Version 3.23.12
1038 Performance and stability improvements on all platforms.
1041 2013-11-25: Version 3.23.11
1043 Deprecate old versions of Isolate::SetData and GetData.
1045 Performance and stability improvements on all platforms.
1048 2013-11-22: Version 3.23.10
1050 Remove preemption thread and API.
1053 Performance and stability improvements on all platforms.
1056 2013-11-21: Version 3.23.9
1058 API: Change AdjustAmountOfExternalAllocatedMemory calls to use int64_t
1059 instead of intptr_t.
1061 Remove deprecated v8::SetResourceConstraints without Isolate parameter.
1063 Remove deprecated v8-defaults.h and defaults.cc.
1064 (Chromium issue 312241)
1066 Make it possible to add more than one piece of embedder data to
1068 (Chromium issue 317398)
1070 Performance and stability improvements on all platforms.
1073 2013-11-20: Version 3.23.8
1075 Fixed crashes exposed though fuzzing.
1076 (Chromium issue 320948)
1078 Deprecated v8::External::New without Isolate parameter.
1080 Made number of available threads isolate-dependent and exposed it to
1081 ResourceConstraints.
1084 Performance and stability improvements on all platforms.
1087 2013-11-19: Version 3.23.7
1089 Bugfix: dependent code field in AllocationSite was keeping code objects
1090 alive even after context death.
1091 (Chromium issue 320532)
1093 Fixed data view accessors to throw execptions on offsets bigger than
1097 Performance and stability improvements on all platforms.
1100 2013-11-18: Version 3.23.6
1102 Limit size of dehoistable array indices.
1103 (Chromium issues 319835, 319860)
1105 Limit the size for typed arrays to MaxSmi.
1106 (Chromium issue 319722)
1108 Performance and stability improvements on all platforms.
1111 2013-11-15: Version 3.23.5
1113 Fixed missing type feedback check for Generic*String addition.
1114 (Chromium issue 318671)
1116 Fixed duplicate check in DependentCode::Insert.
1117 (Chromium issue 318454)
1119 Performance and stability improvements on all platforms.
1122 2013-11-14: Version 3.23.4
1124 Fixed overflow in TypedArray initialization function.
1125 (Chromium issue 319120)
1127 Performance and stability improvements on all platforms.
1130 2013-11-13: Version 3.23.3
1132 Fixed compilation with GCC 4.8.
1135 Added explicit Isolate parameter to External::New.
1136 (Chromium issue 266838)
1138 Performance and stability improvements on all platforms.
1141 2013-11-12: Version 3.23.2
1143 Fixed --extra-code flag for snapshot creation.
1146 Fixed error message wording when instanceof throws.
1147 (Chromium issue 82797, issue 1593)
1149 Performance and stability improvements on all platforms.
1152 2013-11-08: Version 3.23.1
1154 Made HCapturedObjects non-deletable for DCE. (issue 2987)
1156 Use a fixed random seed per default. (issue 1880, 2885)
1158 Fixed y-umlaut to uppercase. (issue 2984)
1160 Performance and stability improvements on all platforms.
1163 2013-11-06: Version 3.23.0
1165 Fixed loading message from an Error object. (Chromium issue 306220)
1167 Made Object.freeze/seal/preventExtensions observable. (issue 2975, 2941)
1169 Made snapshots reproducible. (issue 2885)
1171 Added missing negative dictionary lookup to NonexistentHandlerFrontend.
1174 Performance and stability improvements on all platforms.
1177 2013-10-31: Version 3.22.24
1179 Fixed uint32-to-smi conversion in Lithium.
1180 (Chromium issue 309623)
1182 Performance and stability improvements on all platforms.
1185 2013-10-28: Version 3.22.23
1187 Renamed deprecated __attribute__((no_address_safety_analysis)) to
1188 __attribute__((no_sanitize_address)) (Chromium issue 311283)
1190 Defined DEBUG for v8_optimized_debug=2
1192 Performance and stability improvements on all platforms.
1195 2013-10-25: Version 3.22.22
1197 Record allocation stack traces. (Chromium issue 277984,v8:2949)
1199 Performance and stability improvements on all platforms.
1202 2013-10-24: Version 3.22.21
1204 Performance and stability improvements on all platforms.
1207 2013-10-24: Version 3.22.20
1209 Made Array.prototype.pop throw if the last element is not configurable.
1211 Fixed HObjectAccess for loads from migrating prototypes.
1212 (Chromium issue 305309)
1214 Enabled preaging of code objects when --optimize-for-size.
1215 (Chromium issue 280984)
1217 Exposed v8::Function::GetDisplayName to public API.
1218 (Chromium issue 17356)
1220 Performance and stability improvements on all platforms.
1223 2013-10-23: Version 3.22.19
1225 Fix materialization of captured objects with field tracking.
1226 (Chromium issue 298990)
1228 Performance and stability improvements on all platforms.
1231 2013-10-22: Version 3.22.18
1233 Add tool to visualize machine code/lithium.
1235 Handle misaligned loads and stores in load elimination. Do not track
1236 misaligned loads and be conservative about invalidating misaligned
1237 stores. (issue 2934)
1239 Performance and stability improvements on all platforms.
1242 2013-10-21: Version 3.22.17
1244 Harmony: Implement Math.trunc and Math.sign. (issue 2938)
1246 Performance and stability improvements on all platforms.
1249 2013-10-21: Version 3.22.16
1251 Performance and stability improvements on all platforms.
1254 2013-10-18: Version 3.22.15
1256 Enabled calling the SetReference* & SetObjectGroupId functions with a
1257 Persistent<SubclassOfValue>.
1259 Performance and stability improvements on all platforms.
1262 2013-10-17: Version 3.22.14
1264 Performance and stability improvements on all platforms.
1267 2013-10-16: Version 3.22.13
1269 Do not look up ArrayBuffer on global object in typed array constructor.
1272 Performance and stability improvements on all platforms.
1275 2013-10-15: Version 3.22.12
1277 Added histograms to track fraction of heap spaces and percentage of
1278 generated crankshaft code.
1280 Moved v8_optimized_debug default value to standalone.gypi.
1282 Track JS allocations as they arrive with no affection on performance
1283 when tracking is switched off (Chromium issue 277984).
1285 Performance and stability improvements on all platforms.
1288 2013-10-14: Version 3.22.11
1290 Performance and stability improvements on all platforms.
1293 2013-10-11: Version 3.22.10
1295 Fixed timezone issues with date-time/parse-* tests.
1296 (Chromium issue 2919)
1298 Added column getter to CpuProfileNode (Chromium issue 302537)
1300 Performance and stability improvements on all platforms.
1303 2013-10-10: Version 3.22.9
1305 Ensure only whitelisted stubs have sse2 versions in the snapshot.
1306 (fix for chromium 304565)
1308 Implement ArrayBuffer.isView.
1310 Performance and stability improvements on all platforms.
1313 2013-10-04: Version 3.22.8
1315 Performance and stability improvements on all platforms.
1318 2013-10-03: Version 3.22.7
1320 Debug: Allow stepping into on a given call frame
1321 (Chromium issue 296963).
1323 Always use timeGetTime() for TimeTicks::Now() on Windows
1324 (Chromium issue 288924).
1326 Performance and stability improvements on all platforms.
1329 2013-10-02: Version 3.22.6
1331 Performance and stability improvements on all platforms.
1334 2013-10-01: Version 3.22.5
1336 Disabled externalization of sliced/cons strings in old pointer space
1337 (Chromium issue 276357).
1339 Turned on handle zapping for release builds
1341 Performance and stability improvements on all platforms.
1344 2013-09-30: Version 3.22.4
1346 Function::Call and Object::CallAsFunction APIs should allow v8::Value as
1347 a receiver (issue 2915).
1349 Removed unnecessary mutex (Chromium issue 291236).
1351 Removed ArrayBufferView::BaseAddress method.
1353 Performance and stability improvements on all platforms.
1356 2013-09-27: Version 3.22.3
1358 Added methods to enable configuration of ResourceConstraints based on
1359 limits derived at runtime.
1360 (Chromium issue 292928)
1362 Added -optimize-for-size flag to optimize for memory size (will be used
1363 by pre-aging CL), and removed the is_memory_constrained
1365 (Chromium issue 292928)
1367 Performance and stability improvements on all platforms.
1370 2013-09-26: Version 3.22.2
1372 Performance and stability improvements on all platforms.
1375 2013-09-25: Version 3.22.1
1377 Sped up creating typed arrays from array-like objects.
1378 (Chromium issue 270507)
1380 Performance and stability improvements on all platforms.
1383 2013-09-23: Version 3.22.0
1385 LiveEdit to mark more closure functions for re-instantiation when scope
1389 Made bounds check elimination iterative instead of recursive.
1390 (Chromium issue 289706)
1392 Turned on i18n support by default.
1394 Set the proper instance-type on HAllocate in BuildFastLiteral.
1395 (Chromium issue 284577)
1397 Performance and stability improvements on all platforms.
1400 2013-09-18: Version 3.21.17
1402 Implemented local load/store elimination on basic blocks.
1404 Added mutex when accessing concurrent recompilation output queue.
1405 (Chromium issue 291236)
1407 Don't lookup the cache for the result of Function::New.
1408 (Chromium issue 272579)
1410 Tweaked HConstant::EmitAtUses() to eliminate useless constant
1412 (Chromium issue 2881)
1414 Performance and stability improvements on all platforms.
1417 2013-09-16: Version 3.21.16
1419 Every place where AllocationMemento is initialized with an
1420 AllocationSite is now checked to be sure a valid Site goes in. This is
1421 temporary code to diagnose chromium bug 284577.
1423 Performance and stability improvements on all platforms.
1426 2013-09-13: Version 3.21.15
1428 Non-JSObject heap objects are now handled using slow-path IC stub
1430 (Chromium issue 280632)
1432 i18n Javascript code added to the snapshot.
1435 Performance and stability improvements on all platforms.
1437 2013-09-12: Version 3.21.14
1439 Added access check for observed objects.
1442 Cleaned up v8::ArrayBuffer::Allocator interface.
1445 Performance and stability improvements on all platforms.
1447 2013-09-11: Version 3.21.13
1449 Added a ResourceConstraint for the embedder to specify that V8 is
1450 running on a memory constrained device.
1451 (Chromium issue 280984)
1453 Removed HandleScope default ctor.
1454 (Chromium issue 236173)
1456 Enabled escape analysis for Hydrogen.
1458 Correctly stringified mixed encoding indirect strings.
1459 (Chromium issue 287476)
1461 Performance and stability improvements on all platforms.
1464 2013-09-09: Version 3.21.12
1466 Fixed bitwise negation on x64.
1467 (Chromium issue 285355)
1469 Dropped GetCurrentThreadId() and TerminateExecution(int) from
1472 Fixed polymorphic INTERCEPTOR StoreICs on ARM/MIPS.
1473 (Chromium issue 284998)
1475 Added check if timeout has expired after processing each sample.
1476 (issue 2814,v8:2871)
1478 Removed obsolete global V8::has_been_fooed flags.
1481 Performance and stability improvements on all platforms.
1484 2013-09-05: Version 3.21.11
1486 Performance and stability improvements on all platforms.
1489 2013-09-04: Version 3.21.10
1491 Fixed Eternal::IsEmpty logic (issue 2870).
1493 Performance and stability improvements on all platforms.
1496 2013-09-03: Version 3.21.9
1498 Deprecated Persistent functions which were marked to be deprecated.
1500 Allowed uncacheable identifiers to go generic (issue 2867).
1502 Performance and stability improvements on all platforms.
1505 2013-09-02: Version 3.21.8
1507 Added scriptId to StackTrace frames (issue 2865).
1509 Performance and stability improvements on all platforms.
1512 2013-08-30: Version 3.21.7
1514 Fixed casts of eternal handles.
1516 Turned on global handle zapping.
1518 Always visit branches during HGraph building (Chromium issue 280333).
1520 Profiler changes: removed deprecated API, support higher sampling
1523 Performance and stability improvements on all platforms.
1526 2013-08-29: Version 3.21.6
1528 Fixed inlined 'throw' statements interfering with live range
1529 computation. (issue 2843)
1531 Performance and stability improvements on all platforms.
1534 2013-08-28: Version 3.21.5
1536 Fixed compilation with recent MinGW64 versions. (issue 2300)
1538 Added RemovePrototype to FunctionTemplate. (Chromium issue 272440)
1540 Performance and stability improvements on all platforms.
1543 2013-08-26: Version 3.21.4
1545 Lowered kInitialMaxFastElementArray constant to 95K (issue 2790).
1547 Use signals for cpu profiling on Mac OS X (issue 2814).
1549 Deprecated CpuProfileNode::GetSelfSamplesCount (Chromium issue 267595).
1551 Added support for higher CPU profiler sampling rate on posix systems
1554 Worked around 'inlining failed' build error with older GCC 4.x releases.
1556 Added source map support to tick processor.
1558 Stability improvements on all platforms.
1561 2013-08-23: Version 3.21.3
1563 Temporarily disabled optimization for StringWrappers to use native
1564 valueOf. (issue 2855)
1566 Fixed crash on function declarations in eval inside non-trivial local
1569 Rewrote SamplingCircularQueue. (issue 2814)
1571 Fixed hidden properties on object with frozen prototype. (issue 2829)
1573 Fix deoptimization bug. (Chromium issue 274164)
1575 Stability improvements on all platforms.
1578 2013-08-22: Version 3.21.2
1580 Stability improvements on all platforms.
1583 2013-08-21: Version 3.21.1
1585 Promoted ArrayBuffer, DataView and typed arrays to non-experimental.
1586 (Chromium issue 270527)
1588 Replaced OS::MemCopy with memcpy in typed array initialization.
1589 (Chromium issue 270642)
1591 Moved i18n break iterator C++ code to runtime (issue 2745)
1593 Fixed invalid out-of-bounds store in MacroAssembler::Allocate.
1594 (Chromium issue 263515)
1596 Fixed register misuse in Allocate() on ARM. (issue 2851)
1598 Fixed empty handle dereference in Runtime_InternalNumberFormat.
1599 (Chromium issue 275467)
1601 Performance and stability improvements on all platforms.
1604 2013-08-19: Version 3.21.0
1606 Fixed GC-related crasher (Chromium issue 274438)
1608 Reverted making Intl non-enumerable.
1610 Performance and stability improvements on all platforms.
1613 2013-08-14: Version 3.20.17
1615 Fixed Math.round/floor that had bogus Smi representation
1616 (Chromium issue 272564)
1618 Performance and stability improvements on all platforms.
1621 2013-08-13: Version 3.20.16
1623 Fixed bug in HPhi::SimplifyConstantInput (Chromium issue 269679)
1625 Fixed gcmole bugs in i18n code (issue 2745)
1627 ia32: Calls to the TranscendentalCacheStub must ensure that esi is
1630 Made sure polymorphic element access creates non-replaying
1633 Allowed HPhis to have an invalid merge index. (issue 2815)
1635 Fixed smi-based math floor. (Chromium issue 270268)
1637 Deprecated self and total time getters and total sample count
1638 getter on CpuProfileNode. (Chromium issue 267595)
1640 Fixed Object.freeze, Object.observe wrt CountOperation and
1641 CompoundAssignment. (issue 2774,2779)
1643 Performance and stability improvements on all platforms.
1646 2013-08-07: Version 3.20.15
1648 Exposed eternal handle api.
1650 Bugfix to solve issues with enabling V8 typed arrays in Blink.
1652 Fixed Array index dehoisting. (Chromium issue 264203)
1654 Updated Array Iterator to use numeric indexes (issue 2818)
1656 Return start/end profiling time in microseconds instead of milliseconds
1659 Performance and stability improvements on all platforms.
1662 2013-08-06: Version 3.20.14
1664 Added new Harmony methods to Array.prototype object.
1665 (issue 2776,v8:2777)
1667 Performance and stability improvements on all platforms.
1670 2013-08-01: Version 3.20.12
1672 Removed buggy ToNumber truncation (partial fix for issue 2813)
1674 Calling Map etc without new should throw TypeError (issue 2819)
1676 Fixed a crash for large code objects on ARM (Chromium issue 2736)
1678 Fixed stale unhandlified value in JSObject::SetPropertyForResult.
1679 (Chromium issue 265894)
1681 Added new Harmony methods to String.prototype object.
1682 (issue 2796,v8:2797,v8:2798,v8:2799)
1684 Performance and stability improvements on all platforms.
1687 2013-07-30: Version 3.20.11
1689 Performance and stability improvements on all platforms.
1692 2013-07-29: Version 3.20.10
1694 Performance and stability improvements on all platforms.
1697 2013-07-26: Version 3.20.9
1699 Check that ExternalString objects get aligned resources.
1701 Fixed JSArray-specific length lookup in polymorphic array handling
1702 (Chromium issues 263276, 263905).
1704 Performance and stability improvements on all platforms.
1707 2013-07-24: Version 3.20.8
1709 Deprecated v8::V8::Pause/ResumeProfiler.
1711 Fixed Chromium issues 247688, 258519 and 260203.
1713 Performance and stability improvements on all platforms.
1716 2013-07-22: Version 3.20.7
1718 Deprecated some debugger methods.
1720 Fixed wrong bailout id in polymorphic stores (Chromium issue 259787).
1722 Fixed data race in SamplingCircularQueue (Chromium issue 251218).
1724 Fixed type feedback in presence of negative lookups
1725 (Chromium issue 252797).
1727 Do not materialize context-allocated values for debug-evaluate
1728 (Chromium issue 259300).
1730 Synchronized Compare-Literal behavior in FullCodegen and Hydrogen
1731 (Chromium issue 260345).
1733 Performance and stability improvements on all platforms.
1736 2013-07-17: Version 3.20.6
1738 Try to remove invalidated stubs before falling back to checking the
1739 constant state (Chromium issue 260585).
1741 Fixed gyp_v8 to work with use_system_icu=1 (issue 2475).
1743 Fixed sloppy-mode 'const' under Harmony flag (Chromium issue 173361).
1745 Use internal array as API function cache (Chromium issue 260106).
1747 Fixed possible stack overflow in range analysis
1748 (Chromium issue 259452).
1750 Performance and stability improvements on all platforms.
1753 2013-07-15: Version 3.20.5
1755 Ensured that the length of frozen arrays is immutable
1756 (issue 2711, Chromium issue 259548).
1758 Performance and stability improvements on all platforms.
1761 2013-07-10: Version 3.20.4
1763 Fixed garbage-collection issue that causes a crash on ARM
1764 (Chromium issue 254570)
1766 Performance and stability improvements on all platforms.
1769 2013-07-08: Version 3.20.3
1771 Performance and stability improvements on all platforms.
1774 2013-07-05: Version 3.20.2
1776 Remove deprecated heap profiler methods from V8 public API
1778 Mark i18n functions as native and set proper names
1781 Correctly report stack trace when current function is FunctionApply
1782 builtin (Chromium issue 252097)
1784 Enable GDBJIT interface for standalone by default.
1786 Fix debuggersupport=off build. (issue 2754)
1788 Introduce -m64 flag for making x64 when the default gcc compiler is for
1791 Performance and stability improvements on all platforms.
1794 2013-07-02: Version 3.20.1
1796 Implemented WeakMap.prototype.clear function. (issue 2753)
1798 Ensure CheckInitialized is present independent of define.
1799 (Chromium issue 255779)
1801 Performance and stability improvements on all platforms.
1804 2013-06-28: Version 3.20.0
1806 Migrated several tests from blink to V8 repository.
1808 Allowed users of the V8 API to distinguish between unset and undefined
1809 HiddenValues (issue 2746).
1811 Deprecated old style callbacks in the V8 API.
1813 Turned on parallel recompilation.
1815 Performance and stability improvements on all platforms.
1818 2013-06-18: Version 3.19.18
1820 Fixed read-only attribute of Function.length in strict mode.
1823 Fixed Runtime_SetProperty to properly handle OOM failures
1824 (Chromium issue 249873)
1826 Emit deprecated check for constant function transitions.
1827 (Chromium issue 250609)
1829 Made MathFloorOfDiv optimization trigger more often
1832 Make more GCs in idle notification handler.
1833 (Chromium issue 241815)
1835 Increased default type info threshold.
1838 Performance and stability improvements on all platforms.
1841 2013-06-14: Version 3.19.16
1843 Performance and stability improvements on all platforms.
1846 2013-06-13: Version 3.19.15
1848 Performance and stability improvements on all platforms.
1851 2013-06-13: Version 3.19.14
1853 Fixed crashes when calling new Array(a) with a single argument that
1854 could result in creating a holey array with a packed elements kind.
1855 (Chromium issue 245480)
1857 Fixed issues in parallel compilation.
1858 (Chromium issue 248076)
1860 Performance and stability improvements on all platforms.
1863 2013-06-11: Version 3.19.13
1865 Performance and stability improvements on all platforms.
1868 2013-06-10: Version 3.19.12
1870 Fixed arguments array access. (Chromium issue 247303)
1872 Fixed bug in LookupForWrite. (Chromium issue 242332)
1874 Performance and stability improvements on all platforms.
1877 2013-06-07: Version 3.19.11
1879 Performance and stability improvements on all platforms.
1882 2013-06-06: Version 3.19.10
1884 Performance and stability improvements on all platforms.
1887 2013-06-05: Version 3.19.9
1889 Implemented Load IC support for loading properties from primitive
1890 values to avoid perpetual soft deopts. (Chromium issue 242512)
1892 Implemented Freeing of PerThreadAssertData when possible to avoid
1893 memory leak. (Chromium issue 246567)
1895 Removed V8_USE_OLD_STYLE_PERSISTENT_HANDLE_VISITORS.
1897 Performance and stability improvements on all platforms.
1900 2013-06-03: Version 3.19.8
1902 Fixed bug with inlining 'Array' function. (Chromium issue 244461)
1904 Fixed initialization of literal objects. (Chromium issue 245424)
1906 Fixed function name inferred inside closures. (Chromium issue 224884)
1908 Performance and stability improvements on all platforms.
1911 2013-05-31: Version 3.19.7
1913 Added support for //# sourceURL similar to deprecated //@ sourceURL one.
1916 Made sure IfBuilder::Return clears the current block.
1917 (Chromium issue 243868)
1919 Fixed two CPU profiler tests on ARM and MIPS simulators
1922 Fixed idle incremental GC for large objects.
1923 (Chromium issue 241815)
1925 Disabled --optimize-constructed-arrays due to crashes
1926 (Chromium issue 244461)
1928 Performance and stability improvements on all platforms.
1931 2013-05-28: Version 3.19.6
1933 Fixed IfBuilder::Deopt to clear the current block
1934 (Chromium issue 243868).
1936 Performance and stability improvements on all platforms.
1939 2013-05-27: Version 3.19.5
1941 Reset regexp parser flag after scanning ahead for capture groups.
1944 Removed flakiness in test-cpu-profiler/SampleWhenFrameIsNotSetup.
1947 Performance and stability improvements on all platforms.
1950 2013-05-24: Version 3.19.4
1952 Fixed edge case in stack trace formatting. (Chromium issue 237617)
1954 Fixed embedded new-space pointer in LCmpObjectEqAndBranch. (Chromium
1957 Made Object.freeze fast (issue 1858, Chromium issue 115960)
1959 Fixed bogus deopt in BuildEmitDeepCopy for holey arrays. (Chromium issue
1962 Performance and stability improvements on all platforms.
1965 2013-05-22: Version 3.19.3
1967 Performance and stability improvements on all platforms.
1970 2013-05-17: Version 3.19.2
1972 Fill in one-word-fillers for the unused property fields
1973 (Chromium issue 240056).
1975 Removed use_system_v8 logic from the mainline gyp file
1976 (Chromium issue 226860).
1978 Skip CPU profiler samples where top function's stack frame is not
1979 set up properly (issue 2628).
1981 Performance and stability improvements on all platforms.
1984 2013-05-14: Version 3.19.1
1986 Fixed missing hole check for loads from Smi arrays when all uses are
1987 changes (Chromium issue 233737)
1989 Performance and stability improvements on all platforms.
1992 2013-05-10: Version 3.19.0
1994 Deprecated Context::New which returns Persistent.
1996 Added Persistent<T>::Reset which disposes the handle and redirects it to
1997 point to another object.
1999 Deprecated WriteAscii and MayContainNonAscii.
2001 Exposed AssertNoAllocation to API.
2003 Performance and stability improvements on all platforms.
2006 2013-04-30: Version 3.18.5
2008 Allowed setting debugger breakpoints on CompareNilICs (issue 2660)
2010 Fixed beyond-heap load on x64 Crankshafted StringCharFromCode
2011 (Chromium issue 235311)
2013 Change 'Parse error' to three more informative messages.
2014 (Chromium issue 2636)
2016 Performance and stability improvements on all platforms.
2019 2013-04-26: Version 3.18.4
2021 Added a preliminary API for ES6 ArrayBuffers
2023 Replaced qsort with std::sort. (Chromium issue 2639)
2025 Performance and stability improvements on all platforms.
2028 2013-04-24: Version 3.18.3
2030 Exposed the GC under a name that is less collision prone than window.gc.
2033 Do not emit double values at their use sites. (Chromium issue 234101)
2035 Added methods to allow resuming execution after calling
2036 TerminateExecution(). (issue 2361)
2038 Performance and stability improvements on all platforms.
2041 2013-04-22: Version 3.18.2
2043 OS::MemMove/OS::MemCopy: Don't call through to generated code when size
2044 == 0 to avoid prefetching invalid memory (Chromium issue 233500)
2046 Removed heap snapshot size limit. (Chromium issue 232305)
2048 Performance and stability improvements on all platforms.
2051 2013-04-18: Version 3.18.1
2053 Removed SCons related files and deprecated test suite configurations.
2055 Improved handling of unary plus (issue 2527).
2057 Performance and stability improvements on all platforms.
2060 2013-04-17: Version 3.18.0
2062 Enabled pretenuring of fast literals in high promotion mode.
2064 Removed preparser library; link preparser executable against full V8.
2066 Fixed set-up of intrinsic's 'constructor' properties.
2067 (Chromium issue 229445)
2069 ES6 symbols: extended V8 API to support symbols (issue 2158).
2071 Removed ARM support for VFP2.
2073 Made __proto__ a real JavaScript accessor property.
2074 (issue 1949 and issue 2606)
2076 Performance and stability improvements on all platforms.
2079 2013-04-04: Version 3.17.16
2081 Stack trace API: poison stack frames below the first strict mode frame.
2084 Made Isolate::GetHeapStatistics robust against half-initialized
2085 isolates (Chromium issue 2591).
2087 Finished implementation of ES6 symbols aka. private names (issue 2158).
2089 Performance and stability improvements on all platforms.
2092 2013-03-21: Version 3.17.15
2094 Rolled back API changes to maintain compatibility with older
2095 3.17.x versions of V8.
2097 Disable zapping of global handles in release mode.
2099 Always mark the entire valid prefix of the descriptor array.
2100 (Chromium issue 196331)
2102 Use internal memcpy for CopyWords and when copying code.
2103 (Chromium issue 196330)
2105 Performance and stability improvements on all platforms.
2108 2013-03-20: Version 3.17.14
2110 Use internal memcpy when initializing code objects.
2111 (Chromium issue 196330)
2113 Disabled weak embedded maps because of crashes.
2114 (Chromium issues 172489, 217858)
2116 Performance and stability improvements on all platforms.
2119 2013-03-19: Version 3.17.13
2121 Turned Flags into a uint32_t typedef (Chromium issue 194749).
2123 Performance and stability improvements on all platforms.
2126 2013-03-18: Version 3.17.12
2128 Unified kMaxArguments with number of bits used to encode it.
2129 (Chromium issue 211741)
2131 Fixed detection of |handle_smi| case in
2132 HOptimizedGraphBuilder::HandlePolymorphicCallNamed.
2133 (Chromium issue 196583)
2135 Performance and stability improvements on all platforms.
2138 2013-03-15: Version 3.17.11
2140 Added a version of the v8::HandleScope constructor with an v8::Isolate
2141 parameter and made AdjustAmountOfExternalAllocatedMemory an instance
2142 method of v8::Isolate.
2145 Fixed two register allocator bugs (off-by-one error/failure
2146 propagation). (issue 2576)
2148 Fixed huge heap snapshot when a heavily shared context has many
2149 variables. (Chromium issue 145687)
2151 Performance and stability improvements on all platforms.
2154 2013-03-13: Version 3.17.10
2156 Fixed heap snapshot creation for Harmony collections. (issue 2535)
2158 Fixed register allocation corner case. (Chromium issue 177883)
2160 Performance and stability improvements on all platforms.
2163 2013-03-08: Version 3.17.9
2165 Restored Function()'s expected string representation. (issue 2470)
2167 Enabled deprecatations (again). (issue 2487)
2169 Avoid bool to Oddball conversions by being lazy. (issue 2491)
2171 Added %p option to --logfile.
2173 Hardened Function()'s parsing of function literals. (issue 2470)
2175 ES6 symbols: Refine test for getOwnPropertyNames. (issue 2158)
2177 Performance and stability improvements on all platforms.
2180 2013-03-07: Version 3.17.8
2182 Added missing license headers. (Chromium issue 98597)
2184 Inserted missing type cast in JSON.stringify. (issue 2570)
2186 Reverted "Send SIGPROF signals on the profiler event processor thread"
2189 Fixed Array.length, String.length and Function.prototype LoadICs on x64.
2192 ES6 symbols: filter symbols form for-in loops and Object.keys.
2195 Properly handle misses for StoreArrayLengthStub on ia32 and x64
2198 Fixed x32 handling of Atomic64. (Chromium issue chromium-os:36866)
2200 Removed "library" variable from standalone.gypi. (Chromium issue 111541)
2202 Fixed HCheckSmiOrInt <-> HBoundsCheck interaction wrt. representations.
2205 Enabled zapping of disposed global handles in release mode.
2206 (Chromium issue 176056)
2208 Added workaround for redefinition of __proto__ property. (issue 2565)
2210 ES6 symbols: Allow symbols as property names. (issue 2158)
2212 Performance and stability improvements on all platforms.
2215 2013-03-04: Version 3.17.7
2217 Limited recursion in regexp compilation by a budget.
2218 (Chromium issue 178790)
2220 ES6 symbols: Implemented Symbol intrinsic and basic functionality
2223 Performance and stability improvements on all platforms.
2226 2013-02-28: Version 3.17.6
2228 Fixed materialization of arguments objects with unknown values.
2229 (Chromium issue 163530)
2231 Set default number of sweeper threads to at most four.
2233 Performance and stability improvements on all platforms.
2236 2013-02-27: Version 3.17.5
2238 Made __proto__ a foreign callback on Object.prototype.
2239 (issue 621, issue 1949 and issue 2441)
2241 Performance and stability improvements on all platforms.
2244 2013-02-25: Version 3.17.4
2246 Performance and stability improvements on all platforms.
2249 2013-02-21: Version 3.17.3
2251 Performance and stability improvements on all platforms.
2254 2013-02-19: Version 3.17.2
2256 Removed bogus check for TOP register in deoptimizer.
2257 (Chromium issue 176943)
2259 Made the Isolate parameter mandatory for internal HandleScopes.
2262 Fixed f.apply() optimization when declared arguments are mutated.
2265 Performance and stability improvements on all platforms.
2268 2013-02-14: Version 3.17.1
2270 Performance and stability improvements on all platforms.
2273 2013-02-13: Version 3.17.0
2275 Enabled parallel sweeping.
2277 Don't try to unlink instructions twice during GVN
2278 (Chromium issue 175141)
2280 Fixed code flusher disabling while marking incrementally.
2281 (Chromium issue 173458, 168582)
2283 Don't use TLS for space iterators.
2286 Added new GetHeapStatistics API entry and deprecated old one.
2288 Fixed DoubleStackSlot-to-DoubleStackSlot moves on ia32. Unified
2289 platform-independent code.
2290 (Chromium issue 173907)
2292 Added --trace-array-abuse to help find OOB accesses.
2294 Performance and stability improvements on all platforms.
2297 2013-02-06: Version 3.16.14
2299 Performance and stability improvements on all platforms.
2302 2013-02-04: Version 3.16.13
2304 Tagged stubs that rely on instance types as MEGAMORPHIC.
2305 (Chromium issue 173974)
2307 Fixed clearing of dead dependent codes and verifing of weak
2308 embedded maps on full GC. (Chromium issue 172488,172489)
2310 Made the arm port build cleanly with Clang.
2312 Performance and stability improvements on all platforms.
2315 2013-01-31: Version 3.16.12
2317 Performance and stability improvements on all platforms.
2320 2013-01-30: Version 3.16.11
2322 Put making embedded maps in optimized code weak behind a flag.
2323 (Chromium issue 172488,172489)
2325 Performance and stability improvements on all platforms.
2328 2013-01-25: Version 3.16.10
2330 Avoid excessive memory usage during redundant phi elimination.
2333 Fixed additional spec violations wrt RegExp.lastIndex.
2336 Added Isolate parameter to Persistent class.
2339 Performance and stability improvements on all platforms.
2342 2013-01-24: Version 3.16.9
2344 Made embedded maps in optimized code weak.
2347 Fixed corner case when JSFunction is evicted from flusher.
2348 (Chromium issue 168801)
2350 Correctly set kCanBeDivByZero flag for HMathFloorOfDiv.
2351 (Chromium issue 171641)
2353 Performance and stability improvements on all platforms.
2356 2013-01-23: Version 3.16.8
2358 Correctly reset lastIndex in an RegExp object.
2359 (Chromium issue 170856)
2361 Added a workaround for Windows compilation problems related to V8EXPORT.
2364 tools/run-tests.py: shlex.split() the value of --command-prefix
2365 (Chromium issue 171553)
2367 Fixed pattern detection for replacing shifts by rotation.
2368 (Chromium issue 2499)
2370 Performance and stability improvements on all platforms.
2373 2013-01-21: Version 3.16.7
2375 Removed <(library) usage from v8.gyp.
2376 (Chromium issue 111541)
2378 Fixed out of bounds memory access in TestJSArrayForAllocationSiteInfo.
2379 (Chromium issue 169928)
2381 Performance and stability improvements on all platforms.
2384 2013-01-18: Version 3.16.6
2386 Made the Isolate parameter mandatory in Locker and Unlocker classes.
2389 Avoid pointer underflow in CopyCharsUnsigned.
2392 Generate shim headers when using system v8.
2393 (Chromium issue 165264)
2395 Fixed arguments materialization for inlined apply().
2398 Sync'ed laziness between BuildFunctionInfo and MakeFunctionInfo.
2399 (Chromium issue 147497)
2401 Added sanity check to CodeFlusher::AddCandidate.
2402 (Chromium issue 169209)
2404 Performance and stability improvements on all platforms.
2407 2013-01-15: Version 3.16.5
2409 Removed deprecated functions from V8's external API.
2411 Prepared API for WebKit use of Latin-1.
2413 Fixed V8 issue 2486.
2415 Fixed Chromium issue 169723.
2417 Performance and stability improvements on all platforms.
2420 2013-01-11: Version 3.16.4
2422 Fixed Chromium issues 168545 and 169209.
2424 Performance and stability improvements on all platforms.
2427 2013-01-09: Version 3.16.3
2429 Improved GC performance when moving parts of a FixedArray (issue 2452).
2431 Enabled readline on d8 while building a shared lib (issue 1781).
2433 Fixed missing exception check in typed array constructor
2434 (Chromium issue 168545).
2436 Check for read-only-ness when preparing for array sort (issue 2419).
2438 Performance and stability improvements on all platforms.
2441 2013-01-04: Version 3.16.2
2443 Added Makefile options to build for the Raspberry Pi (armv7=0,
2446 Performance and stability improvements on all platforms.
2449 2012-12-27: Version 3.16.1
2451 Fixed x64 MathMinMax for negative untagged int32 arguments.
2452 (Chromium issue 164442)
2454 Fixed FloatingPointHelper::CheckSSE2OperandIsInt32.
2457 Performance and stability improvements on all platforms.
2460 2012-12-21: Version 3.16.0
2462 V8_Fatal now prints C++ stack trace in debug mode.
2464 Added HTML-based tick processor.
2466 Continued implementation of Object.observe (V8 issue 2409).
2468 Fixed V8 issues 2243, 2340, 2393, 2399, 2457.
2470 Fixed Chromium issues 125308, 165637, 166379, 166553.
2472 Performance and stability improvements on all platforms.
2475 2012-12-10: Version 3.15.11
2477 Define CAN_USE_VFP2/3_INSTRUCTIONS based on arm_neon and arm_fpu GYP
2480 Performance and stability improvements on all platforms.
2483 2012-12-07: Version 3.15.10
2485 Enabled optimisation of functions inside eval. (issue 2315)
2487 Fixed spec violations in methods of Number.prototype. (issue 2443)
2489 Added GCTracer metrics for a scavenger GC for DOM wrappers.
2491 Performance and stability improvements on all platforms.
2494 2012-12-06: Version 3.15.9
2496 Fixed candidate eviction in code flusher.
2497 (Chromium issue 159140)
2499 Iterate through all arguments for side effects in Math.min/max.
2502 Fixed spec violations related to regexp.lastIndex
2503 (issue 2437, issue 2438)
2505 Performance and stability improvements on all platforms.
2508 2012-12-04: Version 3.15.8
2510 Enforced stack allocation of TryCatch blocks.
2511 (issue 2166,chromium:152389)
2513 Fixed external exceptions in external try-catch handlers.
2516 Activated incremental code flushing by default.
2518 Performance and stability improvements on all platforms.
2521 2012-11-30: Version 3.15.7
2523 Activated code aging by default.
2525 Included more information in --prof log.
2527 Removed eager sweeping for lazy swept spaces. Try to find in
2528 SlowAllocateRaw a bounded number of times a big enough memory slot.
2531 Performance and stability improvements on all platforms.
2534 2012-11-26: Version 3.15.6
2536 Ensure double arrays are filled with holes when extended from
2537 variations of empty arrays. (Chromium issue 162085)
2539 Performance and stability improvements on all platforms.
2542 2012-11-23: Version 3.15.5
2544 Fixed JSON.stringify for objects with interceptor handlers.
2545 (Chromium issue 161028)
2547 Fixed corner case in x64 compare stubs. (issue 2416)
2549 Performance and stability improvements on all platforms.
2552 2012-11-16: Version 3.15.4
2554 Fixed Array.prototype.join evaluation order. (issue 2263)
2556 Perform CPU sampling by CPU sampling thread only iff processing thread
2557 is not running. (issue 2364)
2559 When using an Object as a set in Object.getOwnPropertyNames, null out
2560 the proto. (issue 2410)
2562 Disabled EXTRA_CHECKS in Release build.
2564 Heap explorer: Show representation of strings.
2566 Removed 'type' and 'arguments' properties from Error object.
2569 Added atomics implementation for ThreadSanitizer v2.
2570 (Chromium issue 128314)
2572 Fixed LiveEdit crashes when object/array literal is added. (issue 2368)
2574 Performance and stability improvements on all platforms.
2577 2012-11-13: Version 3.15.3
2579 Changed sample shell to send non-JS output (e.g. errors) to stderr
2582 Correctly check for stack overflow even when interrupt is pending.
2585 Collect stack trace on stack overflow. (issue 2394)
2587 Performance and stability improvements on all platforms.
2590 2012-11-12: Version 3.15.2
2592 Function::GetScriptOrigin supplies sourceURL when script name is
2593 not available. (Chromium issue 159413)
2595 Made formatting error message side-effect-free. (issue 2398)
2597 Fixed length check in JSON.stringify. (Chromium issue 160010)
2599 ES6: Added support for Set and Map clear method (issue 2400)
2601 Fixed slack tracking when instance prototype changes.
2602 (Chromium issue 157019)
2604 Fixed disabling of code flusher while marking. (Chromium issue 159140)
2606 Added a test case for object grouping in a scavenger GC (issue 2077)
2608 Support shared library build of Android for v8.
2609 (Chromium issue 158821)
2611 ES6: Added support for size to Set and Map (issue 2395)
2613 Performance and stability improvements on all platforms.
2616 2012-11-06: Version 3.15.1
2618 Put incremental code flushing behind a flag. (Chromium issue 159140)
2620 Performance and stability improvements on all platforms.
2623 2012-10-31: Version 3.15.0
2625 Loosened aligned code target requirement on ARM (issue 2380)
2627 Fixed JSON.parse to treat leading zeros correctly.
2628 (Chromium issue 158185)
2630 Performance and stability improvements on all platforms.
2633 2012-10-22: Version 3.14.5
2635 Killed off the SCons based build.
2637 Added a faster API for creating v8::Integer objects.
2639 Speeded up function deoptimization by avoiding quadratic pass over
2640 optimized function list. (Chromium issue 155270)
2642 Always invoke the default Array.sort functions from builtin functions.
2645 Reverted recent CPU profiler changes because they broke --prof.
2648 Switched code flushing to use different JSFunction field.
2651 Performance and stability improvements on all platforms.
2654 2012-10-15: Version 3.14.4
2656 Allow evals for debugger even if they are prohibited in the debugee
2657 context. (Chromium issue 154733)
2659 Enabled --verify-heap in release mode (issue 2120)
2661 Performance and stability improvements on all platforms.
2664 2012-10-11: Version 3.14.3
2666 Use native context to retrieve ErrorMessageForCodeGenerationFromStrings
2667 (Chromium issue 155076).
2669 Bumped variable limit further to 2^17 (Chromium issue 151625).
2671 Performance and stability improvements on all platforms.
2674 2012-10-10: Version 3.14.2
2676 ARM: allowed VFP3 instructions when hardfloat is enabled.
2677 (Chromium issue 152506)
2679 Fixed instance_descriptors() and PushStackTraceAndDie regressions.
2680 (Chromium issue 151749)
2682 Made GDBJIT interface compile again. (issue 1804)
2684 Fixed Accessors::FunctionGetPrototype's proto chain traversal.
2685 (Chromium issue 143967)
2687 Made sure that names of temporaries do not clash with real variables.
2690 Rejected local module declarations. (Chromium issue 150628)
2692 Rejected uses of lexical for-loop variable on the RHS. (issue 2322)
2694 Fixed slot recording of code target patches.
2695 (Chromium issue 152615,chromium:144230)
2697 Changed the Android makefile to use GCC 4.6 instead of GCC 4.4.3.
2699 Performance and stability improvements on all platforms.
2702 2012-10-01: Version 3.14.1
2704 Don't set -m32 flag when compiling with Android ARM compiler.
2705 (Chromium issue 143889)
2707 Restore the descriptor array before returning allocation failure.
2708 (Chromium issue 151750)
2710 Lowered kMaxVirtualRegisters (v8 issue 2139, Chromium issues 123822 and
2713 Pull more recent gyp in 'make dependencies'.
2715 Made sure that the generic KeyedStoreIC changes length and element_kind
2716 atomically (issue 2346).
2718 Bumped number of allowed variables per scope to 65535, to address GWT.
2719 (Chromium issue 151625)
2721 Support sourceURL for dynamically inserted scripts (issue 2342).
2723 Performance and stability improvements on all platforms.
2726 2012-09-20: Version 3.14.0
2728 Fixed missing slot recording during clearing of CallICs.
2729 (Chromium issue 144230)
2731 Fixed LBoundsCheck on x64 to handle (stack slot + constant) correctly.
2732 (Chromium issue 150729)
2734 Fixed minus zero test. (Issue 2133)
2736 Fixed setting array length to zero for slow elements.
2737 (Chromium issue 146910)
2739 Fixed lost arguments dropping in HLeaveInlined.
2740 (Chromium issue 150545)
2742 Fixed casting error for receiver of interceptors.
2743 (Chromium issue 149912)
2745 Throw a more descriptive exception when blocking 'eval' via CSP.
2746 (Chromium issue 140191)
2748 Fixed debugger's eval when close to stack overflow. (issue 2318)
2750 Added checks to live edit. (issue 2297)
2752 Switched on code compaction on incremental GCs.
2754 Fixed caching of optimized code for OSR. (issue 2326)
2756 Not mask exception thrown by toString in String::UtfValue etc.
2759 Fixed API check for length of external arrays. (Chromium issue 148896)
2761 Ensure correct enumeration indices in the dict (Chromium issue 148376)
2763 Correctly initialize regexp global cache. (Chromium issue 148378)
2765 Fixed arguments object materialization during deopt. (issue 2261)
2767 Introduced new API to expose external string resource regardless of
2770 Fixed CHECK failure in LCodeGen::DoWrapReceiver when
2771 --deopt-every-n-times flag is present
2772 (Chromium issue 148389)
2774 Fixed edge case of extension with NULL as source string.
2775 (Chromium issue 144649)
2777 Fixed array index dehoisting. (Chromium issue 141395)
2779 Performance and stability improvements on all platforms.
2782 2012-09-11: Version 3.13.7
2784 Enable/disable LiveEdit using the (C++) debug API.
2786 Performance and stability improvements on all platforms.
2789 2012-09-06: Version 3.13.6
2791 Added validity checking to API functions and calls.
2793 Disabled accessor inlining (Chromium issue 134609).
2795 Fixed bug in Math.min/max in optimized code (Chromium issue 145961).
2797 Directly use %ObjectKeys in json stringify (Chromium issue 2312).
2799 Fixed VS2005 build (issue 2313).
2801 Activated fixed ES5 readonly semantics by default.
2803 Added hardfp flag to the Makefile.
2805 Performance and stability improvements on all platforms.
2808 2012-08-29: Version 3.13.5
2810 Release stack trace data after firing Error.stack accessor.
2813 Added a new API V8::SetJitCodeEventHandler to push code name and
2814 location to users such as profilers.
2816 Allocate block-scoped global bindings to global context.
2818 Performance and stability improvements on all platforms.
2821 2012-08-28: Version 3.13.4
2823 Print reason for disabling optimization. Kill --trace-bailout flag.
2825 Provided option to disable full DEBUG build on Android.
2827 Introduced global contexts to represent lexical global scope(s).
2829 Fixed rounding in Uint8ClampedArray setter. (issue 2294)
2831 Performance and stability improvements on all platforms.
2834 2012-08-21: Version 3.13.3
2836 Performance and stability improvements on all platforms.
2839 2012-08-20: Version 3.13.2
2841 Performance and stability improvements on all platforms.
2844 2012-08-16: Version 3.13.1
2846 Performance and stability improvements on all platforms.
2849 2012-08-10: Version 3.13.0
2851 Added histograms for total allocated/live heap size, as well as
2852 allocated size and percentage of total for map and cell space.
2854 Fixed parseInt's octal parsing behavior (ECMA-262 Annex E 15.1.2.2).
2857 Added checks for interceptors to negative lookup code in Crankshaft.
2858 (Chromium issue 140473)
2860 Made incremental marking clear ICs and type feedback cells.
2862 Performance and stability improvements on all platforms.
2865 2012-08-01: Version 3.12.19
2867 Performance and stability improvements on all platforms.
2870 2012-07-30: Version 3.12.18
2872 Forced using bit-pattern for signed zero double. (issue 2239)
2874 Made sure double to int conversion is correct. (issue 2260)
2876 Performance and stability improvements on all platforms.
2879 2012-07-27: Version 3.12.17
2881 Always set the callee's context when calling a function from optimized
2883 (Chromium issue 138887)
2885 Fixed building with GCC 3.x
2888 Improved API calls that return empty handles.
2891 Performance and stability improvements on all platforms.
2894 2012-07-25: Version 3.12.16
2896 Performance and stability improvements on all platforms.
2899 2012-07-24: Version 3.12.15
2901 Added PRESERVE_ASCII_NULL option to String::WriteAscii.
2904 Added dependency to HLoadKeyed* instructions to prevent invalid
2905 hoisting. (Chromium issue 137768)
2907 Enabled building d8 for Android on Mac.
2909 Interpret negative hexadecimal literals as NaN.
2912 Expose counters in javascript when using --track-gc-object-stats.
2914 Enabled building and testing V8 on Android IA.
2916 Added --trace-parse flag to parser.
2918 Performance and stability improvements on all platforms.
2921 2012-07-18: Version 3.12.14
2923 Deactivated optimization of packed arrays.
2924 (Chromium issue 137768)
2926 Fixed broken accessor transition.
2927 (Chromium issue 137689)
2929 Performance and stability improvements on all platforms.
2932 2012-07-17: Version 3.12.13
2934 Fixed missing tagging of stack value in finally block.
2935 (Chromium issue 137496)
2937 Added more support for heap analysis.
2939 Performance and stability improvements on all platforms.
2942 2012-07-16: Version 3.12.12
2944 Added an option to the tickprocessor to specify the directory for lib
2947 Fixed ICs for slow objects with native accessor (Chromium issue 137002).
2949 Fixed transcendental cache on ARM in optimized code (issue 2234).
2951 New heap inspection tools: counters for object sizes and counts,
2952 histograms for external fragmentation.
2954 Incorporated constness into inferred interfaces (in preparation for
2955 handling imports) (issue 1569).
2957 Performance and stability improvements on all platforms.
2960 2012-07-12: Version 3.12.11
2962 Renamed "mips" arch to "mipsel" in the GYP build.
2964 Fixed computation of call targets on prototypes in Crankshaft.
2965 (Chromium issue 125148)
2967 Removed use of __lookupGetter__ when generating stack trace.
2970 Turned on ES 5.2 globals semantics by default.
2971 (issue 1991, Chromium issue 80591)
2973 Synced preparser and parser wrt syntax error in switch..case.
2976 Fixed reporting of octal literals in strict mode when preparsing.
2979 Fixed inline constructors for Harmony Proxy prototypes.
2982 Performance and stability improvements on all platforms.
2985 2012-07-10: Version 3.12.10
2987 Re-enabled and fixed issue with array bounds check elimination
2988 (Chromium issue 132114).
2990 Fixed Debug::Break crash. (Chromium issue 131642)
2992 Added optimizing compiler support for JavaScript getters.
2994 Performance and stability improvements on all platforms.
2997 2012-07-06: Version 3.12.9
2999 Correctly advance the scanner when scanning unicode regexp flag.
3000 (Chromium issue 136084)
3002 Fixed unhandlified code calling Harmony Proxy traps.
3005 Performance and stability improvements on all platforms.
3008 2012-07-05: Version 3.12.8
3010 Implemented TypedArray.set and ArrayBuffer.slice in d8.
3012 Performance and stability improvements on all platforms.
3015 2012-07-03: Version 3.12.7
3017 Fixed lazy compilation for strict eval scopes.
3018 (Chromium issue 135066)
3020 Made MACOSX_DEPLOYMENT_TARGET configurable in GYP.
3023 Report "hidden properties" in heap profiler for properties case.
3026 Activated optimization of packed arrays by default.
3028 Performance and stability improvements on all platforms.
3031 2012-06-29: Version 3.12.6
3033 Cleaned up hardfp ABI detection for ARM (V8 issue 2140).
3035 Extended TypedArray support in d8.
3038 2012-06-28: Version 3.12.5
3040 Fixed lazy parsing heuristics to respect outer scope.
3041 (Chromium issue 135008)
3043 Allow using test-wrapper-gypbuild.py on Windows when no python
3044 interpreter is registered.
3046 Performance and stability improvements on all platforms.
3049 2012-06-27: Version 3.12.4
3051 Removed -fomit-frame-pointer flag from Release builds to make
3052 the stack walkable by TCMalloc (Chromium issue 133723).
3054 Ported r7868 (constant masking) to x64 (issue 1374).
3056 Expose more detailed memory statistics (issue 2201).
3058 Fixed Harmony Maps and WeakMaps for undefined values
3059 (Chromium issue 132744).
3061 Correctly throw reference error in strict mode with ICs disabled
3064 Performance and stability improvements on all platforms.
3067 2012-06-25: Version 3.12.3
3069 Reverted r11835 'Unify promotion and allocation limit computation' due
3070 to V8 Splay performance regression on Mac. (Chromium issue 134183)
3072 Fixed sharing of literal boilerplates for optimized code. (issue 2193)
3074 Performance and stability improvements on all platforms.
3077 2012-06-22: Version 3.12.2
3079 Made near-jump check more strict in LoadNamedFieldPolymorphic on
3080 ia32/x64. (Chromium issue 134055)
3082 Fixed lazy sweeping heuristics to prevent old-space expansion.
3085 Performance and stability improvements on all platforms.
3088 2012-06-21: Version 3.12.1
3090 Performance and stability improvements on all platforms.
3093 2012-06-20: Version 3.12.0
3095 Fixed Chromium issues:
3096 115100, 129628, 131994, 132727, 132741, 132742, 133211
3099 915, 1914, 2034, 2087, 2094, 2134, 2156, 2166, 2172, 2177, 2179, 2185
3101 Added --extra-code flag to mksnapshot to load JS code into the VM
3102 before creating the snapshot.
3104 Support 'restart call frame' command in the debugger.
3106 Performance and stability improvements on all platforms.
3109 2012-06-13: Version 3.11.10
3111 Implemented heap profiler memory usage reporting.
3113 Preserved error message during finally block in try..finally.
3114 (Chromium issue 129171)
3116 Fixed EnsureCanContainElements to properly handle double values.
3119 Improved heuristics to keep objects in fast mode with inherited
3122 Performance and stability improvements on all platforms.
3125 2012-06-06: Version 3.11.9
3127 Implemented ES5-conformant semantics for inherited setters and read-only
3128 properties. Currently behind --es5_readonly flag, because it breaks
3131 Exposed last seen heap object id via v8 public api.
3133 Performance and stability improvements on all platforms.
3136 2012-05-31: Version 3.11.8
3138 Avoid overdeep recursion in regexp where a guarded expression with a
3139 minimum repetition count is inside another quantifier.
3140 (Chromium issue 129926)
3142 Fixed missing write barrier in store field stub.
3143 (issues 2143, 1465, Chromium issue 129355)
3145 Proxies: Fixed receiver for setters inherited from proxies.
3146 Proxies: Fixed ToStringArray function so that it does not reject some
3150 Performance and stability improvements on all platforms.
3153 2012-05-29: Version 3.11.7
3155 Get better function names in stack traces.
3157 Performance and stability improvements on all platforms.
3160 2012-05-24: Version 3.11.6
3162 Fixed RegExp.prototype.toString for incompatible receivers
3165 Performance and stability improvements on all platforms.
3168 2012-05-23: Version 3.11.5
3170 Performance and stability improvements on all platforms.
3173 2012-05-22: Version 3.11.4
3175 Some cleanup to common.gypi. This fixes some host/target combinations
3176 that weren't working in the Make build on Mac.
3178 Handle EINTR in socket functions and continue incomplete sends.
3181 Fixed python deprecations. (issue 1391)
3183 Made socket send and receive more robust and return 0 on failure.
3184 (Chromium issue 15719)
3186 Fixed GCC 4.7 (C++11) compilation. (issue 2136)
3188 Set '-m32' option for host and target platforms
3190 Performance and stability improvements on all platforms.
3193 2012-05-18: Version 3.11.3
3195 Disable optimization for functions that have scopes that cannot be
3196 reconstructed from the context chain. (issue 2071)
3198 Define V8_EXPORT to nothing for clients of v8. (Chromium issue 90078)
3200 Correctly check for native error objects. (Chromium issue 2138)
3202 Performance and stability improvements on all platforms.
3205 2012-05-16: Version 3.11.2
3207 Revert r11496. (Chromium issue 128146)
3209 Implement map collection for incremental marking. (issue 1465)
3211 Add toString method to CallSite (which describes a frame of the
3215 2012-05-15: Version 3.11.1
3217 Added a readbuffer function to d8 that reads a file into an ArrayBuffer.
3219 Fix freebsd build. (V8 issue 2126)
3221 Performance and stability improvements on all platforms.
3224 2012-05-11: Version 3.11.0
3226 Fixed compose-discard crasher from r11524 (issue 2123).
3228 Activated new global semantics by default. Global variables can
3229 now shadow properties of the global object (ES5.1 erratum).
3231 Properly set ElementsKind of empty FAST_DOUBLE_ELEMENTS arrays when
3232 transitioning (Chromium issue 117409).
3234 Made Error.prototype.name writable again, as required by the spec and
3235 the web (Chromium issue 69187).
3237 Implemented map collection with incremental marking (issue 1465).
3239 Regexp: Fixed overflow in min-match-length calculation
3240 (Chromium issue 126412).
3242 MIPS: Fixed illegal instruction use on Loongson in code for
3243 Math.random() (issue 2115).
3245 Fixed crash bug in VisitChoice (Chromium issue 126272).
3247 Fixed unsigned-Smi check in MappedArgumentsLookup
3248 (Chromium issue 126414).
3250 Fixed LiveEdit for function with no locals (issue 825).
3252 Fixed register clobbering in LoadIC for interceptors
3253 (Chromium issue 125988).
3255 Implemented clearing of CompareICs (issue 2102).
3257 Performance and stability improvements on all platforms.
3260 2012-05-03: Version 3.10.8
3262 Enabled MIPS cross-compilation.
3264 Ensured reload of elements pointer in StoreFastDoubleElement stub.
3265 (Chromium issue 125515)
3267 Fixed corner cases in truncation behavior when storing to
3268 TypedArrays. (issue 2110)
3270 Fixed failure to properly recognize and report out-of-memory
3271 conditions when allocating code space pages. (Chromium issue
3274 Fixed idle notifications to perform a round of incremental GCs
3275 after context disposal. (issue 2107)
3277 Fixed preparser for try statement. (issue 2109)
3279 Performance and stability improvements on all platforms.
3282 2012-04-30: Version 3.10.7
3284 Performance and stability improvements on all platforms.
3287 2012-04-26: Version 3.10.6
3289 Fixed some bugs in accessing details of the last regexp match.
3291 Fixed source property of empty RegExp objects. (issue 1982)
3293 Enabled inlining some V8 API functions.
3295 Performance and stability improvements on all platforms.
3298 2012-04-23: Version 3.10.5
3300 Put new global var semantics behind a flag until WebKit tests are
3303 Enabled stepping into callback passed to builtins.
3304 (Chromium issue 109564)
3306 Performance and stability improvements on all platforms.
3309 2012-04-19: Version 3.10.4
3311 Fixed issues when stressing compaction with WeakMaps.
3313 Fixed missing GVN flag for new-space promotion. (Chromium issue 123919)
3315 Simplify invocation sequence at monomorphic function invocation sites.
3318 Performance and stability improvements on all platforms.
3321 2012-04-17: Version 3.10.3
3323 Fixed several bugs in heap profiles (including issue 2078).
3325 Throw syntax errors on illegal escape sequences.
3327 Implemented rudimentary module linking (behind --harmony flag)
3329 Implemented ES5 erratum: Global declarations should shadow
3330 inherited properties.
3332 Made handling of const more consistent when combined with 'eval'
3335 Fixed V8 on MinGW-x64 (issue 2026).
3337 Performance and stability improvements on all platforms.
3340 2012-04-13: Version 3.10.2
3342 Fixed native ARM build (issues 1744, 539)
3344 Return LOOKUP variable instead of CONTEXT for non-context allocated
3345 outer scope parameters (Chromium issue 119609).
3347 Fixed regular and ElementsKind transitions interfering with each other
3348 (Chromium issue 122271).
3350 Improved performance of keyed loads/stores which have a HeapNumber
3351 index (issues 1388, 1295).
3353 Fixed WeakMap processing for evacuation candidates (issue 2060).
3355 Bailout on possible direct eval calls (Chromium issue 122681).
3357 Do not assume that names of function expressions are context-allocated
3360 Performance and stability improvements on all platforms.
3363 2012-04-10: Version 3.10.1
3365 Fixed bug with arguments object in inlined functions (issue 2045).
3367 Fixed performance bug with lazy initialization (Chromium issue
3370 Added suppport for Mac OS X 64bit builds with GYP.
3371 (Patch contributed by Filipe David Manana <fdmanana@gmail.com>)
3373 Fixed bug with hidden properties (issue 2034).
3375 Fixed a performance bug when reloading pages (Chromium issue 117767,
3378 Fixed bug when optimizing throw in top-level code (issue 2054).
3380 Fixed two bugs with array literals (issue 2055, Chromium issue 121407).
3382 Fixed bug with Math.min/Math.max with NaN inputs (issue 2056).
3384 Fixed a bug with the new runtime profiler (Chromium issue 121147).
3386 Fixed compilation of V8 using uClibc.
3388 Optimized boot-up memory use.
3390 Optimized regular expressions.
3393 2012-03-30: Version 3.10.0
3395 Fixed store IC writability check in strict mode
3396 (Chromium issue 120099).
3398 Resynchronize timers if the Windows system time was changed.
3399 (Chromium issue 119815)
3401 Removed "-mfloat-abi=hard" from host compiler cflags when building for
3403 (https://code.google.com/p/chrome-os-partner/issues/detail?id=8539)
3405 Fixed edge case for case independent regexp character classes
3408 Reset function info counters after context disposal.
3409 (Chromium issue 117767, V8 issue 1902)
3411 Fixed missing write barrier in CopyObjectToObjectElements.
3412 (Chromium issue 119926)
3414 Fixed missing bounds check in HasElementImpl.
3415 (Chromium issue 119925)
3417 Performance and stability improvements on all platforms.
3420 2012-03-23: Version 3.9.24
3422 Activated count-based profiler for ARM.
3424 Fixed use of proxies as f.prototype properties. (issue 2021)
3426 Enabled snapshots on MIPS.
3428 Performance and stability improvements on all platforms.
3431 2012-03-21: Version 3.9.23
3433 Use correct arguments adaptation environment when inlining function
3434 containing arguments. (Issue 2014)
3436 Performance and stability improvements on all platforms.
3439 2012-03-20: Version 3.9.22
3441 Enabled count-based profiler by default.
3443 Implemented a hash based look-up to speed up address checks
3444 in large object space (issue 853).
3446 Performance and stability improvements on all platforms.
3449 2012-03-19: Version 3.9.21
3451 Fixed push-to-trunk script (and re-push).
3453 Added API call that identifies strings that are guaranteed only to
3454 contain ASCII characters.
3457 2012-03-19: Version 3.9.20
3459 Fixed declarations escaping global strict eval. (Issue 1624)
3461 Fixed wrapping of receiver for non-strict callbacks. (Issue 1973)
3463 Fixed function declarations overwriting read-only global properties.
3464 (Chromium issue 115452)
3466 Fixed --use-strict flag in combination with --harmony[-scoping].
3468 Debugger: naive implementation of "step into Function.prototype.bind".
3470 Debugger: added ability to set script source from within OnBeforeCompile
3472 Added flag to always call DebugBreak on abort.
3474 Re-enabled constructor inlining and inline === comparison with boolean
3475 constants. (Issue 2009)
3477 Don't use an explicit s0 in ClampDoubleToUint8. (Issue 2004)
3479 Performance and stability improvements on all platforms.
3482 2012-03-14: Version 3.9.19
3484 Ensure there is a smi check of the receiver for global load and call
3485 ICs (Chromium issue 117794).
3487 Performance and stability improvements on all platforms.
3490 2012-03-13: Version 3.9.18
3492 Ensure consistency of Math.sqrt on Intel platforms.
3494 Remove static initializers in v8. (issue 1859)
3496 Add explicit dependency on v8_base in the GYP-based build.
3498 Performance and stability improvements on all platforms.
3501 2012-03-12: Version 3.9.17
3503 Fixed VFP detection through compiler defines. (issue 1996)
3505 Add Code-related fields to postmortem metadata.
3507 Performance and stability improvements on all platforms.
3510 2012-03-09: Version 3.9.16
3512 Added basic interface inference for modules (behind the --harmony flag).
3514 Added Object.is, Number.isFinite, Number.isNaN.
3516 Updated the Unicode tables to Unicode version 6.1.0.
3518 Performance and stability improvements on all platforms.
3521 2012-03-06: Version 3.9.15
3523 Fix the heap profiler crash caused by memory layout changes between
3526 Fix Error.prototype.toString to throw TypeError. (issue 1980)
3528 Fix double-rounding in strtod for MinGW. (issue 1062)
3530 Fix corrupted snapshot serializaton on ia32. (Chromium issue v8/1985)
3532 Performance and stability improvements on all platforms.
3535 2012-03-01: Version 3.9.14
3537 Performance and stability improvements on all platforms.
3540 2012-02-29: Version 3.9.13
3542 Added code kind check before preparing for OSR. (issue 1900, 115073)
3544 Fixed issue 1802: Pass zone explicitly to zone-allocation on x64 and
3547 Ported string construct stub to x64. (issue 849)
3549 Performance and stability improvements on all platforms.
3552 2012-02-28: Version 3.9.12
3554 Fixed the negative lookup stub to handle deleted entries in a
3555 dictionary. (issue 1964)
3557 Added a new API where the host can supply a callback function. The
3558 callback function can resolve the location of a return address on stack
3559 to the location where a return-address rewriting profiler stashed the
3560 original return address.
3562 Fixed Chromium issue http://crbug.com/115646: When compiling for-in
3563 pass correct context value to the increment instruction.
3565 Fixed issue 1853: Update breakpoints set with partial file name after
3569 2012-02-27: Version 3.9.11
3571 Made 'module' a context-sensitive keyword (V8 issue 1957).
3574 2012-02-24: Version 3.9.10
3576 Fixed V8 issues 1322, 1772 and 1969.
3578 Conformance improvements.
3580 Performance and stability improvements on all platforms.
3583 2012-02-23: Version 3.9.9
3585 Supported fast case for-in in Crankshaft.
3587 Sped up heap snapshot serialization and dominators construction.
3589 Randomized allocation addresses on windows. (Chromium issue 115151)
3591 Fixed compilation with MinGW-w64. (issue 1943)
3593 Fixed incorrect value of assignments to non-extensible properties.
3595 Fixed a crash bug in generated code on ia32.
3597 Performance and stability improvements on all platforms.
3600 2012-02-21: Version 3.9.8
3602 Fixed memory leak and missing #include in StartupDataDecompressor
3605 Renamed static methods to avoid shadowing virtual methods and fix Clang
3606 C++11 compile error.
3608 Fixed sequence of element access in array builtins (issue 1790).
3610 Performance and stability improvements on all platforms.
3613 2012-02-16: Version 3.9.7
3615 Fixed V8 issues 1322, 1878, 1942, 1945 and Chromium issue 113924.
3617 Fixed GCC-4.7 warnings.
3619 Added Navier-Stokes benchmark.
3621 Performance and stability improvements on all platforms.
3624 2012-02-14: Version 3.9.6
3626 Fixed template-related linker error. (issue 1936)
3628 Allowed inlining of functions containing object literals. (issue 1322)
3630 Added --call-graph-size option to tickprocessor. (issue 1937)
3632 Heap Snapshot maximum size limit is too low for really big apps. At the
3633 moment the limit is 256MB. (Chromium issue 113015)
3635 Performance and stability improvements on all platforms.
3638 2012-02-09: Version 3.9.5
3640 Removed unused command line flags.
3642 Performance and stability improvements on all platforms.
3645 2012-02-08: Version 3.9.4
3647 Properly initialize element-transitioning array literals on ARM.
3650 Bug fixes on all platforms.
3653 2012-02-07: Version 3.9.3
3655 When rethrowing an exception, print the stack trace of its original
3656 site instead of rethrow site (Chromium issue 60240).
3658 Increased size of small stacks from 32k to 64k to avoid hitting limits
3659 in Chromium (Chromium issue 112843).
3662 2012-02-06: Version 3.9.2
3664 Added timestamp to --trace-gc output. (issue 1932)
3666 Heap profiler reports implicit references.
3668 Optionally export metadata with libv8 to enable debuggers to inspect V8
3672 2012-02-02: Version 3.9.1
3674 Fixed memory leak in NativeObjectsExplorer::FindOrAddGroupInfo
3675 (Chromium issue 112315).
3677 Fixed a crash in dev tools (Chromium issue 107996).
3679 Added 'dependencies_traverse': 1 to v8 GYP target.
3681 Performance and stability improvements on all platforms.
3684 2012-02-01: Version 3.9.0
3686 Reduced memory use immediately after starting V8.
3688 Stability fixes and performance improvements on all platforms.
3691 2012-01-26: Version 3.8.9
3693 Flush number string cache on GC (issue 1605).
3695 Provide access to function inferred name with
3696 v8::Function::GetInferredName in V8 public API.
3698 Fix building with Clang (issue 1912).
3700 Reduce the space used by the stack for the profiling thread.
3702 Fix misleading documentation of v8::Locker (issue 542).
3704 Introduce readbinary function in d8 to read binary files.
3706 Performance and stability improvements on all platforms.
3709 2012-01-23: Version 3.8.8
3711 Limited number of loop iterations in Heap::ReserveSpace
3712 (Chromium issue 99027).
3714 Fixed solaris build (VirtualMemory) (issue 1761).
3716 Fixed strict vs. non-strict handling of function proxies in
3717 higher-order array and string methods.
3719 Enabled asynchronous remote debugging with d8 (issue 1691).
3721 Stability and performance improvements on all platforms.
3724 2012-01-19: Version 3.8.7
3726 Ensure that LRandom restores rsi after call to the C function on x64.
3727 (Chromium issue http://crbug.com/110509)
3729 Fixing include issues on *bsd when building with scons.
3732 Provide a switch to specify -fno-strict-aliasing
3735 Move WIN32 define from standalone.gypi to common.gypi
3738 Fix corner-case in heap size estimation.
3741 Fix and enable NEW_NON_STRICT_FAST ArgumentsAccess stub on x64.
3744 Performance improvements and bug fixes.
3747 2012-01-16: Version 3.8.6
3749 Add primitive WebGL array support to d8.
3751 Improve heap size estimation (issue 1893).
3753 Hash collision DOS workaround extended from string keys
3756 Provide an API for iterating through all external strings referenced
3759 Adjust position recorded for call expressions. http://crbug.com/109195
3761 Fix GC crash related to instanceof. http://crbug.com/109448
3763 Performance improvements and bug fixes.
3766 2012-01-05: Version 3.8.5
3768 Fix broken test that assumes that no GC can clear the regexp cache (GC
3769 can happen at any time due to Crankshaft).
3771 Fix handling of bogus receivers for Harmony collections. (issue 1884)
3773 Add netbsd support to gyp build.
3775 Determine page size at runtime on posix platforms.
3777 Ensure that store buffer filtering hash sets are cleared after
3778 StoreBuffer::Filter.
3780 Randomize the seed used for string hashing. This helps guard against
3781 CPU-eating DOS attacks against node.js servers. Based on code from
3782 Bert Belder. This version only solves the issue for those that compile
3783 V8 themselves or those that do not use snapshots. A snapshot-based
3784 precompiled V8 will still have predictable string hash codes.
3786 Implement callback when script finishes running in V8 API.
3788 Improve performance of Math.min and Math.max for the case of two
3789 arguments. (issue 1325)
3792 2012-01-02: Version 3.8.4
3794 Performance improvements for large Smi-only arrays.
3796 Fixed InternalArrays construction. (issue 1878)
3799 2011-12-27: Version 3.8.3
3801 Avoid embedding new space objects into code objects in the lithium gap
3802 resolver. (chromium:108296)
3804 Bug fixes and performance optimizations on all platforms.
3807 2011-12-21: Version 3.8.2
3809 Add max optimization flag to v8 gyp build to ensure V8 is always built
3810 fully optimized in Chrome.
3812 MIPS: Bring MIPS to parity with other platforms.
3814 Optimizations and stability improvements on all platforms.
3817 2011-12-19: Version 3.8.1
3819 Fixed GCC 4.7 warnings. Patch from Tobias Burnus.
3821 Stability improvements on all platforms.
3824 2011-12-13: Version 3.8.0
3826 Fixed handling of arrays in DefineOwnProperty. (issue 1756)
3828 Sync parser and preparser on do-while and return statements.
3831 Fixed another corner case for DefineOwnProperty on arrays (issue 1756).
3833 Stability and performance improvements on all platforms.
3836 2011-12-01: Version 3.7.12
3838 Increase tick interval for the android platform.
3840 Fix a bug in the register allocator. (chromium:105112)
3842 Fix handling of recompiling code. (chromium:105375, v8:1782)
3844 Start incremental marking on idle notification. (v8:1458)
3846 Build fixes for various platforms.
3848 Various performance improvements.
3851 2011-11-29: Version 3.7.11
3853 Fixed bug when generating padding to ensure space for lazy
3857 Further reduced pause times due to GC.
3859 Stability and performance improvements on all platforms.
3862 2011-11-23: Version 3.7.10
3864 Set maximum length of FixedArray in terms of elements instead an
3865 absolute number of bytes.
3866 (Chromium issue 103103)
3868 Stability and performance improvements on all platforms.
3871 2011-11-21: Version 3.7.9
3873 Removed exit-time destructors.
3875 Stability and performance improvements on all platforms.
3878 2011-11-17: Version 3.7.8
3880 Removed hidden prototype from builtins, i.e., deleting an overridden
3881 function on builtins will not make the original function reappear.
3883 Added NetBSD support for scons build.
3885 Performance improvements on all platforms.
3888 2011-11-14: Version 3.7.7
3890 Fix missing fast property accessors in heap snapshots.
3894 2011-11-11: Version 3.7.6
3896 Fixed filtering of store buffer for large object pages.
3899 Fixed generated hash function on all platforms.
3902 Fixed Heap::Shrink to ensure that it does not free pages that are
3904 (Chromium issue 100414)
3906 Stability and performance improvements on all platforms.
3909 2011-11-10: Version 3.7.5
3911 Added initial gyp infrastructure for MIPS.
3913 Implemented performance improvements to the incremental garbage
3916 Added optimizations and stability improvements on all platforms.
3919 2011-11-07: Version 3.7.4
3921 Proper "libv8.so.3.7.4" SONAME for Linux shared library (issue 1786).
3923 Fix Harmony sets and maps to allow null and undefined as keys
3924 (still hidden behind --harmony flag) (issue 1622).
3926 Implement VirtualMemory on FreeBSD to fix build (issue 1807).
3928 Enable VFP instructions for Android.
3930 Fix error handling in Date.prototype.toISOString (issue 1792).
3932 Bug fixes and performance improvements for all platforms.
3934 Not officially supported but noteworthy: Crankshaft for MIPS :-)
3937 2011-10-28: Version 3.7.3
3939 Slight deoptimization as a workaround for issue with jslint: Issue
3943 2011-10-27: Version 3.7.2
3945 Fix bug in deoptimization. Known issue with jslint: Issue 1789.
3948 2011-10-26: Version 3.7.1
3950 Achieved 33% speedup in debug-mode tests.
3952 Removed special casing of calls to RegExp test and exec methods with no
3953 argument. Now matches new JSC behaviour. crbug.com/75740.
3955 Return the empty string on cyclic references in toString (ES5
3958 Fixed bug triggered by JSBeautifier. crbug.com/100409.
3960 Made Math.random state per-context instead of per-process (issue 864).
3962 Fixed stack traces to skip native functions.
3964 Make snapshots (new contexts) smaller and faster.
3966 Fixed handling of Function.apply for non-array arguments.
3968 Fixed evaluation order in defineProperties to match FireFox.
3970 Fixed handling of non-object receivers for array builtins,
3973 Multiple fixes to improve compliance with test262.
3975 Fixed compatibility with older Android releases.
3977 Fixed compilation with gcc-4.5.3.
3979 Improved performance of WriteUtf8, issue 1665.
3981 Made native syntax an early error in the preparser.
3983 Fixed issues 793 and 893 relating to Function.prototype.bind.
3985 Improved let, const, Set and Map support and other Harmony features
3986 (behind the --harmony flag).
3988 Changed evaluation order for > and <= to match ES5 instead of ES3.
3990 Bug fixes and performance improvements on all platforms.
3993 2011-10-13: Version 3.7.0
3995 Fixed array handling for Object.defineOwnProperty (ES5 conformance).
3997 Fixed issue 1757 (string slices of external strings).
3999 Fixed issue 1759 (ARM).
4001 Added flag --noclever-optimizations to disable some things that
4002 caused trouble in the past.
4004 Added flag --stress-compaction for testing.
4006 Added flag --harmony to activate all experimental Harmony features.
4009 2011-10-10: Version 3.6.6
4011 Added a GC pause visualization tool.
4013 Added presubmit=no and werror=no flags to Makefile.
4015 ES5/Test262 conformance improvements.
4017 Fixed compilation issues with GCC 4.5.x (issue 1743).
4019 Bug fixes and performance improvements on all platforms.
4022 2011-10-05: Version 3.6.5
4024 New incremental garbage collector.
4026 Removed the hard heap size limit (soft heap size limit is still
4027 700/1400Mbytes by default).
4029 Implemented ES5 generic Array.prototype.toString (Issue 1361).
4031 V8 now allows surrogate pair codes in decodeURIComponent (Issue 1415).
4033 Fixed x64 RegExp start-of-string bug (Issues 1746, 1748).
4035 Fixed propertyIsEnumerable for numeric properties (Issue 1692).
4037 Fixed the MinGW and Windows 2000 builds.
4039 Fixed "Prototype chain is not searched if named property handler does
4040 not set a property" (Issue 1636).
4042 Made the RegExp.prototype object be a RegExp object (Issue 1217).
4044 Disallowed future reserved words as labels in strict mode.
4046 Fixed string split to correctly coerce the separator to a string
4049 API: Added an optional source length field to the Extension
4052 API: Added Debug::DisableAgent to match existing Debug::EnableAgent
4055 Added "native" target to Makefile for the benefit of Linux distros.
4057 Fixed: debugger stops stepping outside evaluate (Issue 1639).
4059 More work on ES-Harmony proxies. Still hidden behind a flag.
4061 Bug fixes and performance improvements on all platforms.
4064 2011-09-15: Version 3.6.4
4066 Fixed d8's broken readline history.
4068 Removed the need for code delete events in CPU profiler (Issue 1466).
4070 Fixed debugger stepping next with trycatch recursion (Issue 1639).
4072 Fixing parallel execution in d8 (with -p) and some memory leaks.
4074 Support for precise stepping in functions compiled before debugging was
4078 2011-09-13: Version 3.6.3
4080 Implemented better support of typed arrays in the d8 shell.
4082 Bug fixes and performance improvements on all platforms.
4085 2011-09-08: Version 3.6.2
4087 Added "dependencies" target to top-level Makefile.
4089 Added ability to turn profiler on/off in d8.
4091 Added "soname_version" parameter to common.gypi, v8.gyp, and Makefile.
4093 Fixed several crash bugs.
4096 2011-09-07: Version 3.6.1
4098 Fixed a bug in abrupt exit from with or catch inside finally.
4100 Fixed possible crash in FixedDoubleArray::Initialize() (Chromium
4103 Fixed a bug in Page::GetRegionMaskForSpan (Chromium issue 94425).
4105 Fixed a few clang warnings (which -Werror treated as errors).
4107 Performance improvements on all platforms.
4110 2011-09-05: Version 3.6.0
4112 Fixed a bug when optimizing named function expression (issue 1647).
4114 Fixed a bug when optimizing f.call.apply (issue 1650).
4116 Made arguments and caller always be null on native functions
4117 (issues 1548 and 1643).
4119 Fixed issue 1648 (cross-compiling x64 targeting ia32).
4121 Fixed issue 371 (d8 printing of strings containing \0).
4123 Fixed order of evaluation in arguments to parseInt (issue 1649).
4125 Fixed a problem with large heap snapshots in Chrome DevTools
4126 (issue 1658, chromium issue 89268).
4128 Upped default maximum heap size from 512M to 700M.
4131 2011-08-31: Version 3.5.10
4133 Added dependency of v8_base on WinSocket2 Windows library in
4139 2011-08-29: Version 3.5.9
4141 Made FromPropertyDescriptor not trigger inherited setters.
4143 Fixed .gyp files to work on the ARM simulator.
4145 Fixed shared library build warnings for MSVS.
4148 2011-08-24: Version 3.5.8
4150 Added V8EXPORT attributes for v8::Array::CheckCast and
4151 v8::Number::CheckCast.
4153 Made a slight API change enabling opting out from null termination
4154 in String::Write*().
4156 Fixed arm build for gcc-4.6.
4159 2011-08-22: Version 3.5.7
4161 Make scanner handle invalid unicode escapes in identifiers correctly.
4163 Make regexp flag parsing stricter.
4165 Fix several memory leaks.
4168 2011-08-17: Version 3.5.6
4170 Fixed issue that could cause crashes when running with --heap-stats.
4172 Fixed compilation on Linux 2.6.9 and older.
4174 Fixed live-object-list to work with isolates.
4176 Fixed memory leaks in zones and isolates.
4178 Fixed a performance regression for TypedArrays on x64.
4180 Stability improvements on all platforms.
4183 2011-08-15: Version 3.5.5
4185 Fixed bugs involving negative zero and the optimizing compiler.
4187 Fixed optimized version of Function.apply(x, arguments). (issue 1592)
4189 Eliminated uses of deprecated ARM instructions.
4191 Sped up Math.floor by using SSE 4.1 roundsd instruction on ia32.
4193 Removed restriction on the size of disassembled code that is printed.
4196 2011-08-10: Version 3.5.4
4198 Added a preliminary implementation of ES Harmony weak maps. Weak
4199 maps can be enabled by the flag --harmony-weakmaps.
4201 Introduced a toplevel Makefile to support GYP-based building. GYP
4202 can be obtained from http://gyp.googlecode.com.
4204 Fixed a bug in the length property of functions created by
4205 Function.prototype.bind.
4207 Reduced malloc heap allocation on process startup.
4209 Several important code generation bug fixes.
4211 Performance improvements on all platforms.
4214 2011-08-03: Version 3.5.3
4216 MIPS: Port of fix to ClassOf check from ARM.
4217 Patch from Paul Lind <plind44@gmail.com>.
4219 Stopped using mprotect on Cygwin.
4220 Avoided uninitialized member warning on gcc 4.3.4
4221 Both patches by Bert Belder.
4223 Bug fixes and performance improvements on all platforms.
4226 2011-08-01: Version 3.5.2
4228 Performance improvements on all platforms.
4231 2011-07-28: Version 3.5.1
4233 Fixed setting the readonly flag on the prototype property using the
4234 API call FunctionTemplate::SetPrototypeAttributes (issue 1539).
4236 Changed the tools/test.py script to use d8 instead of shell for
4239 Fixed crash in ToBooleanStub when GC happens during invocation.
4241 Enabled automatic unboxing of double arrays.
4243 Performance improvements on all platforms.
4246 2011-07-25: Version 3.5.0
4248 Implemented Object.prototype.{hasOwnProperty, propertyIsEnumerable} for
4251 Removed logging to memory support.
4253 Bugfixes and performance work.
4256 2011-07-20: Version 3.4.14
4258 Fix the debugger for strict-mode functions. (Chromium issue 89236)
4260 Add GetPropertyAttribute method for Object in the API. (Patch by
4263 Fix -Wunused-but-set-variable for gcc-4.6 on x64. (Issue 1291)
4266 2011-07-18: Version 3.4.13
4268 Improved debugger support to allow inspection of optimized frames (issue
4271 Fixed a bug in prototype transitions cache clearing introduced by r8165.
4273 Fixed shortcutting bug in HInferRepresentation. Patch by Andy Wingo.
4275 Fixed a memory leak in sample/shell.cc (dispose semaphores).
4277 Simplified HClampToUint8. Patch by Andy Wingo.
4279 Exposed APIs for detecting boxed primitives, native errors. Patch by
4282 Added map check for COW elements to crankshaft array handling code
4285 Sample shell and (a light version of) D8 links against a shared library
4288 Fixed bug in array filter and reduce functions (issue 1559).
4290 Avoid TLS load in AstNode constructor.
4292 Introduced a random entropy source which can optionally be provided at
4293 initialization. (Chromium issue 89462).
4296 2011-07-13: Version 3.4.12
4298 Added --prof profiling option to d8 shell.
4300 Fixed a bug where reading a directory in d8 shell hangs (issue 1533).
4302 Fixed a potential assertion failure in const declarations.
4304 Fixed an assertion failure in descriptor arrays (issue 1526).
4306 Enabled fast thread-local storage by default on supported platforms.
4308 Improved reporting of source position for global variable loads
4312 2011-07-11: Version 3.4.11
4314 Fixed MinGW32 build.
4316 Fixed a GC bug with RegExp code flushing.
4318 Implemented Object.defineProperty for proxies.
4320 Fixed a bug in for/in iteration of arguments objects (issue 1531).
4322 Added debugger support for inspecting optimized frames (issue 1140).
4324 Allowed JSObject::PreventExtensions to work for arguments objects.
4326 Bugfixes and performance work.
4329 2011-07-06: Version 3.4.10
4331 Fixed debugger not breaking on certain "if" statements (issue 1523).
4333 Fixed assertion failure in runtime profiler when running on IA32
4334 without snapshot (issue 1522).
4336 Fixed ABI for API calls on IA32 (for clang compatibility).
4338 Introduced code flushing of RegExp code to free memory used by
4341 Fixed linux-tick-processor built wrong version of v8 (issue 1532).
4343 Fixed assertion failure in v8::TryCache::StackTrace (issue 1529).
4345 Performance improvements on all platforms.
4348 2011-07-04: Version 3.4.9
4350 Added support for debugger inspection of locals in optimized frames
4353 Fixed SConstruct to pass correct defines to samples/preparser when
4354 building with library=shared.
4356 Made date parser handle ES5 Date Time Strings correctly (issue 1498).
4358 Fixed a bug in Object.defineProperty on the arguments object.
4360 Performance improvements on all platforms.
4363 2011-06-29: Version 3.4.8
4365 Ensure 16-byte stack alignment on Solaris (issue 1505).
4367 Fix "illegal access" when calling parseInt with a radix
4368 that is not a smi. (issue 1246).
4371 2011-06-27: Version 3.4.7
4373 Fixed 64-bit build on FreeBSD.
4375 Added API to set the property attributes for the prototype
4376 property on functions created from FunctionTemplates.
4378 Bugfixes and performance work.
4381 2011-06-22: Version 3.4.6
4383 Lowered limit on code space for systems with low memory supply.
4385 Allowed compiling v8_shell with the 'host' toolset (issue 82437).
4387 Extended setBreakpoint API to accept partial script name (issue 1418).
4389 Made multi-line comments not count when deciding whether the '-->'
4390 comment starter is first on a line. This matches Safari.
4392 Made handling of non-array recievers in Array length setter correct
4395 Added ability to heap profiler to iterate over snapshot's node
4399 2011-06-20: Version 3.4.5
4401 Fixed issues 794, 1097, 1215(partial), 1417, 1435, 1472, 1473,
4404 Improved code generation for !0 and !1.
4406 Reduced memory usage for regular expressions with nested qualifiers.
4409 Fixed V8 to count line terminators in multi-line comments.
4410 (Chromium issue 86431)
4412 Fixed disassembler=on option for release-mode builds. (issue 1473)
4414 Performance improvements on all platforms.
4417 2011-06-15: Version 3.4.4
4419 Added snapshot compression support and --stress-opt flag to d8.
4421 Improved performance of try/catch.
4423 Several GYP-related changes: Added support for building Xcode project
4424 files. Make the ARM simulator build with GYP again. Generate Makefiles
4425 for all architectures on Linux.
4427 Fixed Array.prototype.{reduce,reduceRight} to pass undefined as the
4428 receiver for strict mode callbacks. (issue 1436)
4430 Fixed a bug where an array load was incorrectly hoisted by GVN.
4432 Handle 'undefined' correctly when === has been specialized for doubles.
4435 Corrected the limit of local variables in an optimized function from 64
4438 Correctly set ReadOnly flag on indexed properties when using the API Set
4439 method. (issue 1470)
4441 Give the correct error message when Object.isExtensible is called on a
4442 non-object. (issue 1452)
4444 Added GetOwnPropertyNames method for Object in the API. Patch by Peter
4447 Do not redefine properties unneccesarily in seal and freeze. (issue
4450 IsExecutionTerminating has an Isolate parameter now.
4452 Distinguish keyed loads with a symbol key from fast elements loads,
4453 avoiding some useless deoptimizations. (issue 1471)
4456 2011-06-08: Version 3.4.3
4458 Clear the global thread table when an isolate is disposed
4461 Converted time zone name to UTF8 on Windows (issue 1290).
4463 Limited the number of arguments in a function call to 32766
4466 Compress sources of JS libraries in addition to the snapshot.
4468 Fixed a bug in Lithium environment iteration.
4470 Performance improvements on all platforms.
4473 2011-06-06: Version 3.4.2
4475 More work on ES-Harmony proxies. Still hidden behind a flag.
4477 Fixed some crash bugs and improved performance.
4479 Fixed building with gdb debugging support.
4481 Do not install SIGPROF handler until it is needed.
4483 Added DateTimeFormat to i18n API.
4485 Fixed compilation on OpenBSD.
4487 Take the ulimit into account when sizing the heap. OpenBSD users
4488 may still have to increase the default ulimit to run heavy pages in
4492 2011-06-01: Version 3.4.1
4494 Fixed JSON stringify issue with arrays.
4496 Changed calls to JS builtins to be passed undefined when called with
4499 Implemented the set trap for Harmony proxies. Proxies still need to
4500 be enabled with the --harmony-proxies flag.
4503 2011-05-30: Version 3.4.0
4505 Changed calls to undefined property setters to not throw (issue 1355).
4507 Made RegExp objects not callable.
4509 Fixed issues on special case large JSON strings in new json parser
4510 (issues http://crbug.com/83877 and http://crbug.com/84186).
4512 Performance improvements on all platforms.
4515 2011-05-25: Version 3.3.10
4517 Fixed calls of strict mode function with an implicit receiver.
4519 Fixed fast handling of arrays to properly deal with changes to the
4520 Object prototype (issue 1403).
4522 Changed strict mode poison pill to be the same type error function
4525 Fixed a debug crash in arguments object handling (issue 1227).
4527 Fixed a bug in deoptimization on x64 (issue 1404).
4529 Performance improvements and bug fixes on all platforms.
4532 2011-05-23: Version 3.3.9
4534 Added DateTimeFormat class to experimental i18n API.
4536 Extended preparser to give early errors for some strict mode
4539 Removed legacy execScript function from V8.
4541 Extended isolate API with the ability to add embedder-specific
4544 Added basic support for polymorphic loads from JS and external
4547 Fixed bug in handling of switch statements in the optimizing
4551 2011-05-18: Version 3.3.8
4553 Added MarkIndependent to the persistent handle API. Independent
4554 handles are independent of all other persistent handles and can be
4555 garbage collected more frequently.
4557 Implemented the get trap for Harmony proxies. Proxies are enabled
4558 with the --harmony-proxies flag.
4560 Performance improvements and bug fixes on all platforms.
4563 2011-05-16: Version 3.3.7
4565 Updated MIPS infrastructure files.
4567 Performance improvements and bug fixes on all platforms.
4570 2011-05-11: Version 3.3.6
4572 Updated MIPS infrastructure files.
4574 Added method IsCallable for Object to the API.
4575 Patch by Peter Varga.
4578 2011-05-09: Version 3.3.5
4580 Fixed build on FreeBSD. Patch by Akinori MUSHA.
4582 Added check that receiver is JSObject on API calls.
4584 Implemented CallAsConstructor method for Object in the API (Issue 1348).
4585 Patch by Peter Varga.
4587 Added CallAsFunction method to the Object class in the API (Issue 1336).
4588 Patch by Peter Varga.
4590 Added per-isolate locking and unlocking.
4592 Fixed bug in x64 >>> operator (Issue 1359).
4595 2011-05-04: Version 3.3.4
4597 Implemented API to disallow code generation from strings for a context
4600 Fixed bug with whitespaces in parseInt (issue 955).
4602 Fixed bug with == comparison of Date objects (issue 1356).
4604 Added GYP variables for ARM code generation:
4605 v8_can_use_vfp_instructions, v8_can_use_unaligned_accesses
4606 and v8_use_arm_eabi_hardfloat.
4609 2011-05-02: Version 3.3.3
4611 Added support for generating Visual Studio solution and project files
4614 Implemented support for ARM EABI calling convention variation where
4615 floating-point arguments are passed in registers (hardfloat).
4617 Added Object::HasOwnProperty() to the API.
4619 Added support for compressing startup data to reduce binary size. This
4620 includes build time support and an API for the embedder to decompress
4621 the startup data before initializing V8.
4623 Reduced the profiling hooks overhead from >400% to 25% when using
4626 Performance improvements and bug fixes on all platforms.
4629 2011-04-27: Version 3.3.2
4631 Fixed crash bug on ARM with no VFP3 hardware.
4633 Fixed compilation of V8 without debugger support.
4635 Improved performance on JSLint.
4637 Added support Float64 WebGL arrays.
4639 Fixed crash bug in regexp replace.
4642 2011-04-20: Version 3.3.1
4644 Reduced V8 binary size by removing virtual functions from hydrogen.
4646 Fixed crash bug on x64.
4648 Performance improvements on ARM and IA32.
4651 2011-04-18: Version 3.3.0
4653 Fixed bug in floating point rounding in Crankshaft on ARM
4656 Fixed a number of issues with running without VFPv3 support on ARM
4659 Introduced v8Locale.Collator, a partial implementation of Collator
4660 per last ECMAScript meeting + mailing list.
4662 Minor performance improvements and bug fixes.
4665 2011-04-13: Version 3.2.10
4667 Fixed bug in external float arrays on ARM (issue 1323).
4669 Minor performance improvements and bug fixes.
4672 2011-04-11: Version 3.2.9
4674 Removed support for ABI prior to EABI on ARM.
4676 Fixed multiple crash bugs.
4678 Added GCMole to the repository, a simple static analysis tool that
4679 searches for GC-unsafe evaluation order dependent callsites.
4681 Made preparser API be exported in shared libraries.
4683 Fixed multiple issues in EcmaScript 5 strict mode implementation.
4685 Fixed mutable __proto__ property if object is not extensible
4688 Fixed auto suspension of the sampler thread.
4691 2011-04-06: Version 3.2.8
4693 Exposed WebGL typed array constructors in the shell sample.
4695 Performance improvements on all platforms.
4698 2011-04-04: Version 3.2.7
4700 Disabled the original 'classic' V8 code generator. Crankshaft is
4701 now the default on all platforms.
4703 Changed the heap profiler to use more descriptive names.
4705 Performance and stability improvements to isolates on all platforms.
4708 2011-03-30: Version 3.2.6
4710 Fixed xcode build warning in shell.cc (out of order initialization).
4712 Fixed null-pointer dereference in the compiler when running without
4713 SSE3 support (Chromium issue 77654).
4715 Fixed x64 compilation error due to some dead code. (Issue 1286)
4717 Introduced scons target to build the preparser stand-alone example.
4719 Made FreeBSD build and pass all tests.
4722 2011-03-28: Version 3.2.5
4724 Fixed build with Irregexp interpreter (issue 1266).
4726 Added Crankshaft support for external arrays.
4728 Fixed two potential crash bugs.
4731 2011-03-23: Version 3.2.4
4733 Added isolates which allows several V8 instances in the same process.
4734 This is controlled through the new Isolate class in the API.
4736 Implemented more of EcmaScript 5 strict mode.
4738 Reduced the time it takes to make detailed heap snapshot.
4740 Added a number of commands to the ARM simulator and enhanced the ARM
4744 2011-03-17: Version 3.2.3
4746 Fixed a number of crash bugs.
4748 Fixed Array::New(length) to return an array with a length (issue 1256).
4750 Fixed FreeBSD build.
4752 Changed __defineGetter__ to not throw (matching the behavior of Safari).
4754 Implemented more of EcmaScript 5 strict mode.
4756 Improved Crankshaft performance on all platforms.
4759 2011-03-14: Version 3.2.2
4761 Fixed a number of crash and correctness bugs.
4763 Improved Crankshaft performance on all platforms.
4765 Fixed Crankshaft on Solaris/Illumos.
4768 2011-03-10: Version 3.2.1
4770 Fixed a number of crash bugs.
4772 Improved Crankshaft for x64 and ARM.
4774 Implemented more of EcmaScript 5 strict mode.
4777 2011-03-07: Version 3.2.0
4779 Fixed a number of crash bugs.
4781 Turned on Crankshaft by default on x64 and ARM.
4783 Improved Crankshaft for x64 and ARM.
4785 Implemented more of EcmaScript 5 strict mode.
4788 2011-03-02: Version 3.1.8
4790 Fixed a number of crash bugs.
4792 Improved Crankshaft for x64 and ARM.
4794 Implemented more of EcmaScript 5 strict mode.
4796 Fixed issue with unaligned reads and writes on ARM.
4798 Improved heap profiler support.
4801 2011-02-28: Version 3.1.7
4803 Fixed a number of crash bugs.
4805 Improved Crankshaft for x64 and ARM.
4807 Fixed implementation of indexOf/lastIndexOf for sparse
4808 arrays (http://crbug.com/73940).
4810 Fixed bug in map space compaction (http://crbug.com/59688).
4812 Added support for direct getter accessors calls on ARM.
4815 2011-02-24: Version 3.1.6
4817 Fixed a number of crash bugs.
4819 Added support for Cygwin (issue 64).
4821 Improved Crankshaft for x64 and ARM.
4823 Added Crankshaft support for stores to pixel arrays.
4825 Fixed issue in CPU profiler with Crankshaft.
4828 2011-02-16: Version 3.1.5
4830 Change RegExp parsing to disallow /(*)/.
4832 Added GDB JIT support for ARM.
4834 Fixed several crash bugs.
4836 Performance improvements on the IA32 platform.
4839 2011-02-14: Version 3.1.4
4841 Fixed incorrect compare of prototypes of the global object (issue
4844 Fixed a bug in optimizing calls to global functions (issue 1106).
4846 Made optimized Function.prototype.apply safe for non-JSObject first
4847 arguments (issue 1128).
4849 Fixed an error related to element accessors on Object.prototype and
4850 parser errors (issue 1130).
4852 Fixed a bug in sorting an array with large array indices (issue 1131).
4854 Properly treat exceptions thrown while compiling (issue 1132).
4856 Fixed bug in register requirements for function.apply (issue 1133).
4858 Fixed a representation change bug in the Hydrogen graph construction
4861 Fixed the semantics of delete on parameters (issue 1136).
4863 Fixed a optimizer bug related to moving instructions with side effects
4866 Added support for the global object in Object.keys (issue 1150).
4868 Fixed incorrect value for Math.LOG10E
4869 (issue http://code.google.com/p/chromium/issues/detail?id=72555)
4871 Performance improvements on the IA32 platform.
4873 Implement assignment to undefined reference in ES5 Strict Mode.
4876 2011-02-09: Version 3.1.3
4878 Fixed a bug triggered by functions with huge numbers of declared
4881 Fixed zap value aliasing a real object - debug mode only (issue 866).
4883 Fixed issue where Array.prototype.__proto__ had been set to null
4886 Fixed stability bugs in Crankshaft for x86.
4889 2011-02-07: Version 3.1.2
4891 Added better security checks when accessing properties via
4892 Object.getOwnPropertyDescriptor.
4894 Fixed bug in Object.defineProperty and related access bugs (issues
4895 992, 1083 and 1092).
4897 Added LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to ease
4898 copyright notice generation for embedders.
4901 2011-02-02: Version 3.1.1
4903 Perform security checks before fetching the value in
4904 Object.getOwnPropertyDescriptor.
4906 Fixed a bug in Array.prototype.splice triggered by passing no
4909 Fixed bugs in -0 in arithmetic and in Math.pow.
4911 Fixed bugs in the register allocator and in switching from optimized
4912 to unoptimized code.
4915 2011-01-31: Version 3.1.0
4917 Performance improvements on all platforms.
4920 2011-01-28: Version 3.0.12
4922 Added support for strict mode parameter and object property
4925 Fixed a couple of crash bugs.
4928 2011-01-25: Version 3.0.11
4930 Fixed a bug in deletion of lookup slots that could cause global
4931 variables to be accidentally deleted (http://crbug.com/70066).
4933 Added support for strict mode octal literal verification.
4935 Fixed a couple of crash bugs (issues 1070 and 1071).
4938 2011-01-24: Version 3.0.10
4940 Fixed External::Wrap for 64-bit addresses (issue 1037).
4942 Fixed incorrect .arguments variable proxy handling in the full
4943 code generator (issue 1060).
4945 Introduced partial strict mode support.
4947 Changed formatting of recursive error messages to match Firefox and
4948 Safari (issue http://crbug.com/70334).
4950 Fixed incorrect rounding for float-to-integer conversions for external
4951 array types, which implement the Typed Array spec
4952 (issue http://crbug.com/50972).
4954 Performance improvements on the IA32 platform.
4957 2011-01-19: Version 3.0.9
4959 Added basic GDB JIT Interface integration.
4961 Make invalid break/continue statements a syntax error instead of a
4965 2011-01-17: Version 3.0.8
4967 Exposed heap size limit to the heap statistics gathered by
4968 the GetHeapStatistics API.
4970 Wrapped external pointers more carefully (issue 1037).
4972 Hardened the implementation of error objects to avoid setters
4973 intercepting the properties set then throwing an error.
4975 Avoided trashing the FPSCR when calculating Math.floor on ARM.
4977 Performance improvements on the IA32 platform.
4980 2011-01-10: Version 3.0.7
4982 Stopped calling inherited setters when creating object literals
4985 Changed interpretation of malformed \c? escapes in RegExp to match
4988 Enhanced the command-line debugger interface and fixed some minor
4989 bugs in the debugger.
4991 Performance improvements on the IA32 platform.
4994 2011-01-05: Version 3.0.6
4996 Allowed getters and setters on JSArray elements (issue 900).
4998 Stopped JSON objects from hitting inherited setters (part of
5001 Allowed numbers and strings as names of getters/setters in object
5002 initializer (issue 820).
5004 Added use_system_v8 option to gyp (off by default), to make it easier
5005 for Linux distributions to ship with system-provided V8 library.
5007 Exported external array data accessors (issue 1016).
5009 Added labelled thread names to help with debugging (on Linux).
5012 2011-01-03: Version 3.0.5
5014 Fixed a couple of cast errors for gcc-3.4.3.
5016 Performance improvements in GC and IA32 code generator.
5019 2010-12-21: Version 3.0.4
5021 Added Date::ResetCache() to the API so that the cached values in the
5022 Date object can be reset to allow live DST / timezone changes.
5024 Extended existing support for printing (while debugging) the contents
5025 of objects. Added support for printing objects from release builds.
5027 Fixed V8 issues 989, 1006, and 1007.
5030 2010-12-17: Version 3.0.3
5032 Reapplied all changes for version 3.0.1.
5034 Improved debugger protocol for remote debugging.
5036 Added experimental support for using gyp to generate build files
5039 Fixed implementation of String::Write in the API (issue 975).
5042 2010-12-15: Version 3.0.2
5044 Revert version 3.0.1 and patch 3.0.1.1.
5047 2010-12-13: Version 3.0.1
5049 Added support for an experimental internationalization API as an
5050 extension. This extension is disabled by default but can be enabled
5051 when building V8. The ECMAScript internationalization strawman is
5052 at http://wiki.ecmascript.org/doku.php?id=strawman:i18n_api.
5054 Made RegExp character class parsing stricter. This mirrors a change
5055 to RegExp parsing in WebKit.
5057 Fixed a bug in Object.defineProperty when used to change attributes
5058 of an existing property. It incorrectly set the property value to
5059 undefined (issue 965).
5061 Fixed several different compilation failures on various platforms
5062 caused by the 3.0.0 release.
5064 Optimized Math.pow so it can work on unboxed doubles.
5066 Sped up quoting of JSON strings by removing one traversal of the
5070 2010-12-07: Version 3.0.0
5072 Improved performance by (partially) addressing issue 957 on
5073 IA-32. Still needs more work for the other architectures.
5076 2010-11-29: Version 2.5.9
5078 Fixed crashes during GC caused by partially initialize heap
5081 Fixed bug in process sample that caused memory leaks.
5083 Improved performance on ARM by implementing missing stubs and
5086 Improved heap profiler support.
5088 Added separate seeding on Windows of the random number generator
5089 used internally by the compiler (issue 936).
5091 Exposed API for getting the name of the function used to construct
5094 Fixed date parser to handle one and two digit millisecond
5097 Fixed number parsing to disallow space between sign and
5101 2010-11-23: Version 2.5.8
5103 Removed dependency on Gay's dtoa.
5105 Improved heap profiler precision and speed.
5107 Reduced overhead of callback invocations on ARM.
5110 2010-11-18: Version 2.5.7
5112 Fixed obscure evaluation order bug (issue 931).
5114 Split the random number state between JavaScript and the private API.
5116 Fixed performance bug causing GCs when generating stack traces on
5117 code from very large scripts.
5119 Fixed bug in parser that allowed (foo):42 as a labelled statement
5122 Provide more accurate results about used heap size via
5125 Allow build-time customization of the max semispace size.
5127 Made String.prototype.split honor limit when separator is empty
5130 Added missing failure check after expecting an identifier in
5131 preparser (Chromium issue 62639).
5134 2010-11-10: Version 2.5.6
5136 Added support for VFP rounding modes to the ARM simulator.
5138 Fixed multiplication overflow bug (issue 927).
5140 Added a limit for the amount of executable memory (issue 925).
5143 2010-11-08: Version 2.5.5
5145 Added more aggressive GC of external objects in near out-of-memory
5148 Fixed a bug that gave the incorrect result for String.split called
5149 on the empty string (issue 924).
5152 2010-11-03: Version 2.5.4
5154 Improved V8 VFPv3 runtime detection to address issue 914.
5157 2010-11-01: Version 2.5.3
5159 Fixed a bug that prevents constants from overwriting function values
5160 in object literals (issue 907).
5162 Fixed a bug with reporting of impossible nested calls of DOM functions
5163 (issue http://crbug.com/60753).
5166 2010-10-27: Version 2.5.2
5168 Improved sampler resolution on Linux.
5170 Allowed forcing the use of a simulator from the build script
5171 independently of the host architecture.
5173 Fixed FreeBSD port (issue 912).
5175 Made windows-tick-processor respect D8_PATH.
5177 Implemented --noinline-new flag fully on IA32, X64 and ARM platforms.
5180 2010-10-20: Version 2.5.1
5182 Fixed bug causing spurious out of memory exceptions
5183 (issue http://crbug.com/54580).
5185 Fixed compilation error on Solaris platform (issue 901).
5187 Fixed error in strtod (string to floating point number conversion)
5188 due to glibc's use of 80-bit floats in the FPU on 32-bit linux.
5190 Adjusted randomized allocations of executable memory to have 64k
5191 granularity (issue http://crbug.com/56036).
5193 Supported profiling using kernel perf_events on linux. Added ll_prof
5194 script to tools and --ll-prof flag to V8.
5197 2010-10-18: Version 2.5.0
5199 Fixed bug in cache handling of lastIndex on global regexps
5200 (issue http://crbug.com/58740).
5202 Added USE_SIMULATOR macro that explicitly indicates that we wish to use
5203 the simulator as the execution engine (by Mark Lam <mark.lam@palm.com>
5204 from Hewlett-Packard Development Company, LP).
5206 Fixed compilation error on ARM with gcc 4.4 (issue 894).
5209 2010-10-13: Version 2.4.9
5211 Fixed a bug in the handling of conditional expressions in test
5212 contexts in compiler for top-level code.
5214 Added "//@ sourceURL" information to the StackTrace API.
5216 Exposed RegExp construction through the API.
5219 2010-10-04: Version 2.4.8
5221 Fixed a bug in ResumeProfilerEx causing it to not always write out the
5222 whole snapshot (issue 868).
5224 Performance improvements on all platforms.
5227 2010-09-30: Version 2.4.7
5229 Changed the command-line flag --max-new-space-size to be in kB and the
5230 flag --max-old-space-size to be in MB (previously they were in bytes).
5232 Added Debug::CancelDebugBreak to the debugger API.
5234 Fixed a bug in getters for negative numeric property names
5235 (https://bugs.webkit.org/show_bug.cgi?id=46689).
5237 Performance improvements on all platforms.
5240 2010-09-27: Version 2.4.6
5242 Fixed assertion failure related to copy-on-write arrays (issue 876).
5244 Fixed build failure of 64-bit V8 on Windows.
5246 Fixed a bug in RegExp (issue http://crbug.com/52801).
5248 Improved the profiler's coverage to cover more functions (issue 858).
5250 Fixed error in shift operators on 64-bit V8
5251 (issue http://crbug.com/54521).
5254 2010-09-22: Version 2.4.5
5256 Changed the RegExp benchmark to exercise the regexp engine on different
5257 inputs by scrambling the input strings.
5259 Fixed a bug in keyed loads on strings.
5261 Fixed a bug with loading global function prototypes.
5263 Fixed a bug with profiling RegExp calls (issue http://crbug.com/55999).
5265 Performance improvements on all platforms.
5268 2010-09-15: Version 2.4.4
5270 Fixed bug with hangs on very large sparse arrays.
5272 Now tries harder to free up memory when running out of space.
5274 Added heap snapshots to JSON format to API.
5276 Recalibrated benchmarks.
5279 2010-09-13: Version 2.4.3
5281 Made Date.parse properly handle TZ offsets (issue 857).
5283 Performance improvements on all platforms.
5286 2010-09-08: Version 2.4.2
5290 Fixed stack corruption bug.
5292 Fixed compilation for newer C++ compilers that found Operand(0)
5296 2010-09-06: Version 2.4.1
5298 Added the ability for an embedding application to receive a callback
5299 when V8 allocates (V8::AddMemoryAllocationCallback) or deallocates
5300 (V8::RemoveMemoryAllocationCallback) from the OS.
5302 Fixed several JSON bugs (including issue 855).
5304 Fixed memory overrun crash bug triggered during V8's tick-based
5307 Performance improvements on all platforms.
5310 2010-09-01: Version 2.4.0
5312 Fixed bug in Object.freeze and Object.seal when Array.prototype or
5313 Object.prototype are changed (issue 842).
5315 Updated Array.splice to follow Safari and Firefox when called
5316 with zero arguments.
5318 Fixed a missing live register when breaking at keyed loads on ARM.
5320 Performance improvements on all platforms.
5323 2010-08-25: Version 2.3.11
5325 Fixed bug in RegExp related to copy-on-write arrays.
5327 Refactored tools/test.py script, including the introduction of
5328 VARIANT_FLAGS that allows specification of sets of flags with which
5329 all tests should be run.
5331 Fixed a bug in the handling of debug breaks in CallIC.
5333 Performance improvements on all platforms.
5336 2010-08-23: Version 2.3.10
5338 Fixed bug in bitops on ARM.
5340 Build fixes for unusual compilers.
5342 Track high water mark for RWX memory.
5344 Performance improvements on all platforms.
5347 2010-08-18: Version 2.3.9
5349 Fixed compilation for ARMv4 on OpenBSD/FreeBSD.
5351 Removed specialized handling of GCC 4.4 (issue 830).
5353 Fixed DST cache to take into account the suspension of DST in
5354 Egypt during the 2010 Ramadan (issue http://crbug.com/51855).
5356 Performance improvements on all platforms.
5359 2010-08-16: Version 2.3.8
5361 Fixed build with strict aliasing on GCC 4.4 (issue 463).
5363 Fixed issue with incorrect handling of custom valueOf methods on
5364 string wrappers (issue 760).
5366 Fixed compilation for ARMv4 (issue 590).
5368 Improved performance.
5371 2010-08-11: Version 2.3.7
5373 Reduced size of heap snapshots produced by heap profiler (issue 783).
5375 Introduced v8::Value::IsRegExp method.
5377 Fixed CPU profiler crash in start / stop sequence when non-existent
5378 name is passed (issue http://crbug.com/51594).
5380 Introduced new indexed property query callbacks API (issue 816). This
5381 API is guarded by USE_NEW_QUERY_CALLBACK define and is disabled
5384 Removed support for object literal get/set with number/string
5387 Fixed handling of JSObject::elements in CalculateNetworkSize
5390 Allowed compiling with strict aliasing enabled on GCC 4.4 (issue 463).
5393 2010-08-09: Version 2.3.6
5395 RegExp literals create a new object every time they are evaluated
5398 Object.seal and Object.freeze return the modified object (issue 809).
5400 Fixed building using GCC 4.4.4.
5403 2010-08-04: Version 2.3.5
5405 Added support for ES5 property names. Object initialisers and
5406 dot-notation property access now allows keywords. Also allowed
5407 non-identifiers after "get" or "set" in an object initialiser.
5409 Randomized the addresses of allocated executable memory on Windows.
5412 2010-08-02: Version 2.3.4
5414 Fixed problems in implementation of ES5 function.prototype.bind.
5416 Fixed error when using apply with arguments object on ARM (issue 784).
5418 Added setting of global flags to debugger protocol.
5420 Fixed an error affecting cached results of sin and cos (issue 792).
5422 Removed memory leak from a boundary case where V8 is not initialized.
5424 Fixed issue where debugger could set breakpoints outside the body
5427 Fixed issue in debugger when using both live edit and step in features.
5429 Added Number-letter (Nl) category to Unicode tables. These characters
5430 can now be used in identifiers.
5432 Fixed an assert failure on X64 (issue 806).
5434 Performance improvements on all platforms.
5437 2010-07-26: Version 2.3.3
5439 Fixed error when building the d8 shell in a fresh checkout.
5441 Implemented Function.prototype.bind (ES5 15.3.4.5).
5443 Fixed an error in inlined stores on ia32.
5445 Fixed an error when setting a breakpoint at the end of a function
5446 that does not end with a newline character.
5448 Performance improvements on all platforms.
5451 2010-07-21: Version 2.3.2
5453 Fixed compiler warnings when building with LLVM.
5455 Fixed a bug with for-in applied to strings (issue 785).
5457 Performance improvements on all platforms.
5460 2010-07-19: Version 2.3.1
5462 Fixed compilation and linking with V8_INTERPRETED_REGEXP flag.
5464 Fixed bug related to code flushing while compiling a lazy
5465 compilable function (issue http://crbug.com/49099).
5467 Performance improvements on all platforms.
5470 2010-07-15: Version 2.3.0
5472 Added ES5 Object.seal and Object.isSealed.
5474 Added debugger API for scheduling debugger commands from a
5478 2010-07-14: Version 2.2.24
5480 Added API for capturing stack traces for uncaught exceptions.
5482 Fixed crash bug when preparsing from a non-external V8 string
5485 Fixed JSON.parse bug causing input not to be converted to string
5488 Added ES5 Object.freeze and Object.isFrozen.
5490 Performance improvements on all platforms.
5493 2010-07-07: Version 2.2.23
5495 API change: Convert Unicode code points outside the basic multilingual
5496 plane to the replacement character. Previous behavior was to silently
5497 truncate the value to 16 bits.
5499 Fixed crash: handle all flat string types in regexp replace.
5501 Prevent invalid pre-parsing data passed in through the API from
5504 Performance improvements on all platforms.
5507 2010-07-05: Version 2.2.22
5509 Added ES5 Object.isExtensible and Object.preventExtensions.
5511 Enabled building V8 as a DLL.
5513 Fixed a bug in date code where -0 was not interpreted as 0
5516 Performance improvements on all platforms.
5519 2010-06-30: Version 2.2.21
5521 Fixed bug in externalizing some ASCII strings (Chromium issue 47824).
5523 Updated JSON.stringify to floor the space parameter (issue 753).
5525 Updated the Mozilla test expectations to the newest version.
5527 Updated the ES5 Conformance Test expectations to the latest version.
5529 Updated the V8 benchmark suite.
5531 Provide actual breakpoints locations in response to setBreakpoint
5532 and listBreakpoints requests.
5535 2010-06-28: Version 2.2.20
5537 Fixed bug with for-in on x64 platform (issue 748).
5539 Fixed crash bug on x64 platform (issue 756).
5541 Fixed bug in Object.getOwnPropertyNames. (chromium issue 41243).
5543 Fixed a bug on ARM that caused the result of 1 << x to be
5544 miscalculated for some inputs.
5546 Performance improvements on all platforms.
5549 2010-06-23: Version 2.2.19
5551 Fixed bug that causes the build to break when profillingsupport=off
5554 Added expose-externalize-string flag for testing extensions.
5556 Resolve linker issues with using V8 as a DLL causing a number of
5557 problems with unresolved symbols.
5559 Fixed build failure for cctests when ENABLE_DEBUGGER_SUPPORT is not
5562 Performance improvements on all platforms.
5565 2010-06-16: Version 2.2.18
5567 Added API functions to retrieve information on indexed properties
5568 managed by the embedding layer. Fixes bug 737.
5570 Made ES5 Object.defineProperty support array elements. Fixes bug 619.
5572 Added heap profiling to the API.
5574 Removed old named property query from the API.
5576 Incremental performance improvements.
5579 2010-06-14: Version 2.2.17
5581 Improved debugger support for stepping out of functions.
5583 Incremental performance improvements.
5586 2010-06-09: Version 2.2.16
5588 Removed the SetExternalStringDiposeCallback API. Changed the
5589 disposal of external string resources to call a virtual Dispose
5590 method on the resource.
5592 Added support for more precise break points when debugging and
5595 Memory usage improvements on all platforms.
5598 2010-06-07: Version 2.2.15
5600 Added an API to control the disposal of external string resources.
5602 Added missing initialization of a couple of variables which makes
5603 some compilers complaint when compiling with -Werror.
5605 Improved performance on all platforms.
5608 2010-06-02: Version 2.2.14
5610 Fixed a crash in code generated for String.charCodeAt.
5612 Fixed a compilation issue with some GCC versions (issue 727).
5614 Performance optimizations on x64 and ARM platforms.
5617 2010-05-31: Version 2.2.13
5619 Implemented Object.getOwnPropertyDescriptor for element indices and
5620 strings (issue 599).
5622 Fixed bug for windows 64 bit C calls from generated code.
5624 Added new scons flag unalignedaccesses for arm builds.
5626 Performance improvements on all platforms.
5629 2010-05-26: Version 2.2.12
5631 Allowed accessors to be defined on objects rather than just object
5634 Changed the ScriptData API.
5637 2010-05-21: Version 2.2.11
5639 Fixed crash bug in liveedit on 64 bit.
5641 Use 'full compiler' when debugging is active. This should increase
5642 the density of possible break points, making single step more fine
5643 grained. This will only take effect for functions compiled after
5644 debugging has been started, so recompilation of all functions is
5645 required to get the full effect. IA32 and x64 only for now.
5647 Misc. fixes to the Solaris build.
5649 Added new flags --print-cumulative-gc-stat and --trace-gc-nvp.
5651 Added filtering of CPU profiles by security context.
5653 Fixed crash bug on ARM when running without VFP2 or VFP3.
5655 Incremental performance improvements in all backends.
5658 2010-05-17: Version 2.2.10
5660 Performance improvements in the x64 and ARM backends.
5663 2010-05-10: Version 2.2.9
5665 Allowed Object.create to be called with a function (issue 697).
5667 Fixed bug with Date.parse returning a non-NaN value when called on a
5668 non date string (issue 696).
5670 Allowed unaligned memory accesses on ARM targets that support it (by
5671 Subrato K De of CodeAurora <subratokde@codeaurora.org>).
5673 C++ API for retrieving JavaScript stack trace information.
5676 2010-05-05: Version 2.2.8
5678 Performance improvements in the x64 and ARM backends.
5681 2010-05-03: Version 2.2.7
5683 Added support for ES5 date time string format to Date.parse.
5685 Performance improvements in the x64 backend.
5688 2010-04-28: Version 2.2.6
5690 Added "amd64" as recognized architecture in scons build script
5691 (by Ryan Dahl <coldredlemur@gmail.com>).
5693 Fixed bug in String search and replace with very simple RegExps.
5695 Fixed bug in RegExp containing "\b^".
5697 Performance improvements on all platforms.
5700 2010-04-26: Version 2.2.5
5702 Various performance improvements (especially for ARM and x64)
5704 Fixed bug in CPU profiling (http://crbug.com/42137)
5706 Fixed a bug with the natives cache.
5708 Fixed two bugs in the ARM code generator that can cause
5711 Fixed a bug that may cause a wrong result for shift operations.
5714 2010-04-21: Version 2.2.4
5716 Fixed warnings on arm on newer GCC versions.
5718 Fixed a number of minor bugs.
5720 Performance improvements on all platforms.
5723 2010-04-14: Version 2.2.3
5725 Added stack command and mem command to ARM simulator debugger.
5727 Fixed scons snapshot and ARM build, and Windows X64 build issues.
5729 Performance improvements on all platforms.
5732 2010-04-12: Version 2.2.2
5734 Introduced new profiler API.
5736 Fixed random number generator to produce full 32 random bits.
5739 2010-04-06: Version 2.2.1
5741 Debugger improvements.
5746 2010-03-29: Version 2.2.0
5748 Fixed a few minor bugs.
5750 Performance improvements for string operations.
5753 2010-03-26: Version 2.1.10
5755 Fixed scons build issues.
5757 Fixed a couple of minor bugs.
5760 2010-03-25: Version 2.1.9
5762 Added API support for reattaching a global object to a context.
5764 Extended debugger API with access to the internal debugger context.
5766 Fixed Chromium crashes (issues http://crbug.com/39128 and
5767 http://crbug.com/39160)
5770 2010-03-24: Version 2.1.8
5772 Added fine-grained garbage collection callbacks to the API.
5774 Performance improvements on all platforms.
5777 2010-03-22: Version 2.1.7
5781 Fixed a bug where __proto__ was sometimes enumerated (issue 646).
5783 Performance improvements for arithmetic operations.
5785 Performance improvements for string operations.
5787 Print script name and line number information in stack trace.
5790 2010-03-17: Version 2.1.6
5792 Performance improvements for arithmetic operations.
5794 Performance improvements for string operations.
5797 2010-03-10: Version 2.1.4
5799 Fixed code cache lookup for keyed IC's (issue http://crbug.com/37853).
5801 Performance improvements on all platforms.
5804 2010-03-10: Version 2.1.3
5806 Added API method for context-disposal notifications.
5808 Added API method for accessing elements by integer index.
5810 Added missing implementation of Uint32::Value and Value::IsUint32
5813 Added IsExecutionTerminating API method.
5815 Disabled strict aliasing for GCC 4.4.
5817 Fixed string-concatenation bug (issue 636).
5819 Performance improvements on all platforms.
5822 2010-02-23: Version 2.1.2
5824 Fixed a crash bug caused by wrong assert.
5826 Fixed a bug with register names on 64-bit V8 (issue 615).
5828 Performance improvements on all platforms.
5831 2010-02-19: Version 2.1.1
5833 [ES5] Implemented Object.defineProperty.
5835 Improved profiler support.
5837 Added SetPrototype method in the public V8 API.
5839 Added GetScriptOrigin and GetScriptLineNumber methods to Function
5842 Performance improvements on all platforms.
5845 2010-02-03: Version 2.1.0
5847 Values are now always wrapped in objects when used as a receiver.
5850 [ES5] Implemented Object.getOwnPropertyNames.
5852 [ES5] Restrict JSON.parse to only accept strings that conforms to the
5855 Improvement of debugger agent (issue 549 and 554).
5857 Fixed problem with skipped stack frame in profiles (issue 553).
5859 Solaris support by Erich Ocean <erich.ocean@me.com> and Ryan Dahl
5860 <ry@tinyclouds.org>.
5862 Fixed a bug that Math.round() returns incorrect results for huge
5865 Fixed enumeration order for objects created from some constructor
5866 functions (isue http://crbug.com/3867).
5868 Fixed arithmetic on some integer constants (issue 580).
5870 Numerous performance improvements including porting of previous IA-32
5871 optimizations to x64 and ARM architectures.
5874 2010-01-14: Version 2.0.6
5876 Added ES5 Object.getPrototypeOf, GetOwnPropertyDescriptor,
5877 GetOwnProperty, FromPropertyDescriptor.
5879 Fixed Mac x64 build errors.
5881 Improved performance of some math and string operations.
5883 Improved performance of some regexp operations.
5885 Improved performance of context creation.
5887 Improved performance of hash tables.
5890 2009-12-18: Version 2.0.5
5892 Extended to upper limit of map space to allow for 7 times as many map
5893 to be allocated (issue 524).
5895 Improved performance of code using closures.
5897 Improved performance of some binary operations involving doubles.
5900 2009-12-16: Version 2.0.4
5902 Added ECMAScript 5 Object.create.
5904 Improved performance of Math.max and Math.min.
5906 Optimized adding of strings on 64-bit platforms.
5908 Improved handling of external strings by using a separate table
5909 instead of weak handles. This improves garbage collection
5910 performance and uses less memory.
5912 Changed code generation for object and array literals in toplevel
5913 code to be more compact by doing more work in the runtime.
5915 Fixed a crash bug triggered when garbage collection happened during
5916 generation of a callback load inline cache stub.
5918 Fixed crash bug sometimes triggered when local variables shadowed
5919 parameters in functions that used the arguments object.
5922 2009-12-03: Version 2.0.3
5924 Optimized handling and adding of strings, for-in and Array.join.
5926 Heap serialization is now non-destructive.
5928 Improved profiler support with information on time spend in C++
5929 callbacks registered through the API.
5931 Added commands to the debugger protocol for starting/stopping
5934 Enabled the non-optimizing compiler for top-level code.
5936 Changed the API to only allow strings to be set as data objects on
5937 Contexts and scripts to avoid potentially keeping global objects
5938 around for too long (issue 528).
5940 OpenBSD support patch by Peter Valchev <pvalchev@gmail.com>.
5945 2009-11-24: Version 2.0.2
5947 Improved profiler support.
5949 Fixed bug that broke compilation of d8 with readline support.
5952 2009-11-20: Version 2.0.1
5954 Fixed crash bug in String.prototype.replace.
5956 Reverted a change which caused Chromium interactive ui test
5960 2009-11-18: Version 2.0.0
5962 Added support for VFP on ARM.
5964 Added TryCatch::ReThrow method to the API.
5966 Reduced the size of snapshots and improved the snapshot load time.
5968 Improved heap profiler support.
5970 64-bit version now supported on Windows.
5972 Fixed a number of debugger issues.
5977 2009-10-29: Version 1.3.18
5979 Reverted a change which caused crashes in RegExp replace.
5981 Reverted a change which caused Chromium ui_tests failure.
5984 2009-10-28: Version 1.3.17
5986 Added API method to get simple heap statistics.
5988 Improved heap profiler support.
5990 Fixed the implementation of the resource constraint API so it
5991 works when using snapshots.
5993 Fixed a number of issues in the Windows 64-bit version.
5995 Optimized calls to API getters.
5997 Added valgrind notification on code modification to the 64-bit version.
5999 Fixed issue where we logged shared library addresses on Windows at
6000 startup and never used them.
6003 2009-10-16: Version 1.3.16
6005 X64: Convert smis to holding 32 bits of payload.
6007 Introduced v8::Integer::NewFromUnsigned method.
6009 Added missing null check in Context::GetCurrent.
6011 Added trim, trimLeft and trimRight methods to String
6012 Patch by Jan de Mooij <jandemooij@gmail.com>
6014 Implement ES5 Array.isArray
6015 Patch by Jan de Mooij <jandemooij@gmail.com>
6017 Skip access checks for hidden properties.
6019 Added String::Concat(Handle<String> left, Handle<String> right) to the
6022 Fixed GYP-based builds of V8.
6025 2009-10-07: Version 1.3.15
6027 Expanded the maximum size of the code space to 512MB for 64-bit mode.
6029 Fixed a crash bug happening when starting profiling (issue
6030 http://crbug.com/23768).
6033 2009-10-07: Version 1.3.14
6035 Added GetRealNamedProperty to the API to lookup real properties
6036 located on the object or in the prototype chain skipping any
6039 Fixed the stack limits setting API to work correctly with threads. The
6040 stack limit now needs to be set to each thread thich is used with V8.
6042 Removed the high-priority flag from IdleNotification()
6044 Ensure V8 is initialized before locking and unlocking threads.
6046 Implemented a new JavaScript minifier for compressing the source of
6047 the built-in JavaScript. This removes non-Open Source code from Douglas
6048 Crockford from the project.
6050 Added a missing optimization in StringCharAt.
6052 Fixed some flaky socket tests.
6054 Change by Alexander Botero-Lowry to fix profiler sampling on FreeBSD
6057 Fixed memory leaks in the thread management code.
6059 Fixed the result of assignment to a pixel array. The assigned value
6062 Error reporting for invalid left-hand sides in for-in statements, pre-
6063 and postfix count expressions, and assignments now matches the JSC
6064 behavior in Safari 4.
6066 Follow the spec in disallowing function declarations without a name.
6068 Always allocate code objects within a 2 GB range. On x64 architecture
6069 this is used to use near calls (32-bit displacement) in Code objects.
6071 Optimized array construction ported to x64 and ARM architectures.
6073 [ES5] Changed Object.keys to return strings for element indices.
6076 2009-09-23: Version 1.3.13
6078 Fixed uninitialized memory problem.
6080 Improved heap profiler support.
6083 2009-09-22: Version 1.3.12
6085 Changed behavior of |function|.toString() on built-in functions to
6086 be compatible with other implementations. Patch by Jan de Mooij.
6088 Added Object::IsDirty in the API.
6090 Optimized array construction; it is now handled purely in native
6093 [ES5] Made properties of the arguments array enumerable.
6095 [ES5] Added test suite adapter for the es5conform test suite.
6097 [ES5] Added Object.keys function.
6100 2009-09-15: Version 1.3.11
6102 Fixed crash in error reporting during bootstrapping.
6104 Optimized generated IA32 math code by using SSE2 instructions when
6107 Implemented missing pieces of debugger infrastructure on ARM. The
6108 debugger is now fully functional on ARM.
6110 Made 'hidden' the default visibility for gcc.
6113 2009-09-09: Version 1.3.10
6115 Fixed profiler on Mac in 64-bit mode.
6117 Optimized creation of objects from simple constructor functions on
6120 Fixed a number of debugger issues.
6122 Reduced the amount of memory consumed by V8.
6125 2009-09-02: Version 1.3.9
6127 Optimized stack guard checks on ARM.
6129 Optimized API operations by inlining more in the API.
6131 Optimized creation of objects from simple constructor functions.
6133 Enabled a number of missing optimizations in the 64-bit port.
6135 Implemented native-code support for regular expressions on ARM.
6137 Stopped using the 'sahf' instruction on 64-bit machines that do
6140 Fixed a bug in the support for forceful termination of JavaScript
6144 2009-08-26: Version 1.3.8
6146 Changed the handling of idle notifications to allow idle
6147 notifications when V8 has not yet been initialized.
6149 Fixed ARM simulator compilation problem on Windows.
6152 2009-08-25: Version 1.3.7
6154 Reduced the size of generated code on ARM platforms by reducing
6155 the size of constant pools.
6157 Changed build files to not include the 'ENV' user environment
6158 variable in the build environment.
6160 Changed the handling of idle notifications.
6163 2009-08-21: Version 1.3.6
6165 Added support for forceful termination of JavaScript execution.
6167 Added low memory notification to the API. The embedding host can signal
6168 a low memory situation to V8.
6170 Changed the handling of global handles (persistent handles in the API
6171 sense) to avoid issues regarding allocation of new global handles
6172 during weak handle callbacks.
6174 Changed the growth policy of the young space.
6176 Fixed a GC issue introduced in version 1.3.5.
6179 2009-08-19: Version 1.3.5
6181 Optimized initialization of some arrays in the builtins.
6183 Fixed mac-nm script to support filenames with spaces.
6185 Support for using the V8 profiler when V8 is embedded in a Windows DLL.
6187 Changed typeof RegExp from 'object' to 'function' for compatibility.
6188 Fixed bug where regexps were not callable across contexts.
6190 Added context independent script compilation to the API.
6192 Added API call to get the stack trace for an exception.
6194 Added API for getting object mirrors.
6196 Made sure that SSE3 instructions are used whenever possible even when
6197 running off a snapshot generated without using SSE3 instructions.
6199 Tweaked the handling of the initial size and growth policy of the heap.
6201 Added native code generation for RegExp to 64-bit version.
6203 Added JavaScript debugger support to 64-bit version.
6206 2009-08-13: Version 1.3.4
6208 Added a readline() command to the d8 shell.
6210 Fixed bug in json parsing.
6212 Added idle notification to the API and reduced memory on idle
6216 2009-08-12: Version 1.3.3
6218 Fixed issue 417: incorrect %t placeholder expansion.
6220 Added .gitignore file similar to Chromium's one.
6222 Fixed SConstruct file to build with new logging code for Android.
6224 API: added function to find instance of template in prototype
6225 chain. Inlined Object::IsInstanceOf.
6227 Land change to notify valgrind when we modify code on x86.
6229 Added api call to determine whether a string can be externalized.
6231 Added a write() command to d8.
6234 2009-08-05: Version 1.3.2
6236 Started new compiler infrastructure for two-pass compilation using a
6237 control flow graph constructed from the AST.
6239 Profiler stack sampling for X64.
6241 Safe handling of NaN to Posix platform-dependent time functions.
6243 Added a new profiler control API to unify controlling various aspects
6249 2009-07-30: Version 1.3.1
6251 Speed improvements to accessors and interceptors.
6253 Added support for capturing stack information on custom errors.
6255 Added support for morphing an object into a pixel array where its
6256 indexed properties are stored in an external byte array. Values written
6257 are always clamped to the 0..255 interval.
6259 Profiler on x64 now handles C/C++ functions from shared libraries.
6261 Changed the debugger to avoid stepping into function.call/apply if the
6262 function is a built-in.
6264 Initial implementation of constructor heap profile for JS objects.
6266 More fine grained control of profiling aspects through the API.
6268 Optimized the called as constructor check for API calls.
6271 2009-07-27: Version 1.3.0
6273 Allowed RegExp objects to be called as functions (issue 132).
6275 Fixed issue where global property cells would escape after
6276 detaching the global object; see http://crbug.com/16276.
6278 Added support for stepping into setters and getters in the
6281 Changed the debugger to avoid stopping in its own JavaScript code
6282 and in the code of built-in functions.
6284 Fixed issue 345 by avoiding duplicate escaping labels.
6286 Fixed ARM code generator crash in short-circuited boolean
6287 expressions and added regression tests.
6289 Added an external allocation limit to avoid issues where small V8
6290 objects would hold on to large amounts of external memory without
6291 causing garbage collections.
6293 Finished more of the inline caching stubs for x64 targets.
6296 2009-07-13: Version 1.2.14
6298 Added separate paged heap space for global property cells and
6299 avoid updating the write barrier when storing into them.
6301 Improved peep-hole optimization on ARM platforms by not emitting
6302 unnecessary debug information.
6304 Re-enabled ICs for loads and calls that skip a global object
6305 during lookup through the prototype chain.
6307 Allowed access through global proxies to use ICs.
6312 2009-07-09: Version 1.2.13
6314 Fixed issue 397, issue 398, and issue 399.
6316 Added support for breakpoint groups.
6318 Fixed bugs introduced with the new global object representation.
6320 Fixed a few bugs in the ARM code generator.
6323 2009-07-06: Version 1.2.12
6325 Added stack traces collection to Error objects accessible through
6326 the e.stack property.
6328 Changed RegExp parser to use a recursive data structure instead of
6329 stack-based recursion.
6331 Optimized Date object construction and string concatenation.
6333 Improved performance of div, mod, and mul on ARM platforms.
6336 2009-07-02: Version 1.2.11
6338 Improved performance on IA-32 and ARM.
6340 Fixed profiler sampler implementation on Mac OS X.
6342 Changed the representation of global objects to improve
6343 performance of adding a lot of new properties.
6346 2009-06-29: Version 1.2.10
6348 Improved debugger support.
6350 Fixed bug in exception message reporting (issue 390).
6352 Improved overall performance.
6355 2009-06-23: Version 1.2.9
6357 Improved math performance on ARM.
6359 Fixed profiler name-inference bug.
6361 Fixed handling of shared libraries in the profiler tick processor
6364 Fixed handling of tests that time out in the test scripts.
6366 Fixed compilation on MacOS X version 10.4.
6368 Fixed two bugs in the regular expression engine.
6370 Fixed a bug in the string type inference.
6372 Fixed a bug in the handling of 'constant function' properties.
6374 Improved overall performance.
6377 2009-06-16: Version 1.2.8
6379 Optimized math on ARM platforms.
6381 Fixed two crash bugs in the handling of getters and setters.
6383 Improved the debugger support by adding scope chain information.
6385 Improved the profiler support by compressing log data transmitted
6388 Improved overall performance.
6391 2009-06-08: Version 1.2.7
6393 Improved debugger and profiler support.
6395 Reduced compilation time by improving the handling of deferred
6398 Optimized interceptor accesses where the property is on the object
6399 on which the interceptors is attached.
6401 Fixed compilation problem on GCC 4.4 by changing the stack
6402 alignment to 16 bytes.
6404 Fixed handle creation to follow stric aliasing rules.
6406 Fixed compilation on FreeBSD.
6408 Introduced API for forcing the deletion of a property ignoring
6409 interceptors and attributes.
6412 2009-05-29: Version 1.2.6
6414 Added a histogram recording hit rates at different levels of the
6417 Added stack overflow check for the RegExp analysis phase. Previously a
6418 very long regexp graph could overflow the stack with recursive calls.
6420 Use a dynamic buffer when collecting log events in memory.
6422 Added start/stop events to the profiler log.
6424 Fixed infinite loop which could happen when setting a debug break while
6425 executing a RegExp compiled to native code.
6427 Fixed handling of lastIndexOf called with negative index (issue 351).
6429 Fixed irregular crash in profiler test (issue 358).
6431 Fixed compilation issues with some versions of gcc.
6434 2009-05-26: Version 1.2.5
6436 Fixed bug in initial boundary check for Boyer-Moore text
6439 Fixed compilation issues with MinGW and gcc 4.3+ and added support
6440 for armv7 and cortex-a8 architectures. Patches by Lei Zhang and
6443 Added a script cache to the debugger.
6445 Optimized compilation performance by improving internal data
6446 structures and avoiding expensive property load optimizations for
6447 code that's infrequently executed.
6449 Exposed the calling JavaScript context through the static API
6450 function Context::GetCalling().
6453 2009-05-18: Version 1.2.4
6455 Improved performance of floating point number allocation for ARM
6458 Fixed crash when using the instanceof operator on functions with
6459 number values in their prototype chain (issue 341).
6461 Optimized virtual frame operations in the code generator to speed
6462 up compilation time and allocated the frames in the zone.
6464 Made the representation of virtual frames and jump targets in the
6465 code generator much more compact.
6467 Avoided linear search for non-locals in scope code when resolving
6468 variables inside with and eval scopes.
6470 Optimized lexical scanner by dealing with whitespace as part of
6471 the token scanning instead of as a separate step before it.
6473 Changed the scavenging collector so that promoted objects do not
6474 reside in the old generation while their remembered set is being
6475 swept for pointers into the young generation.
6477 Fixed numeric overflow handling when compiling count operations.
6480 2009-05-11: Version 1.2.3
6482 Fixed bug in reporting of out-of-memory situations.
6484 Introduced hidden prototypes on certain builtin prototype objects
6485 such as String.prototype to emulate JSC's behavior of restoring
6486 the original function when deleting functions from those prototype
6489 Fixed crash bug in the register allocator.
6492 2009-05-04: Version 1.2.2
6494 Fixed bug in array sorting for sparse arrays (issue 326).
6496 Added support for adding a soname when building a shared library
6497 on Linux (issue 151).
6499 Fixed bug caused by morphing internal ASCII strings to external
6500 two-byte strings. Slices over ASCII strings have to forward ASCII
6501 checks to the underlying buffer string.
6503 Allowed API call-as-function handlers to be called as
6506 Fixed a crash bug where an external string was disposed but a
6507 slice of the external string survived as a symbol.
6510 2009-04-27: Version 1.2.1
6512 Added EcmaScript 5 JSON object.
6514 Fixed bug in preemption support on ARM.
6517 2009-04-23: Version 1.2.0
6519 Optimized floating-point operations on ARM.
6521 Added a number of extensions to the debugger API.
6523 Changed the enumeration order for unsigned integer keys to always
6526 Added a "read" extension to the shell sample.
6528 Added support for Array.prototype.reduce and
6529 Array.prototype.reduceRight.
6531 Added an option to the SCons build to control Microsoft Visual C++
6532 link-time code generation.
6534 Fixed a number of bugs (in particular issue 315, issue 316,
6535 issue 317 and issue 318).
6538 2009-04-15: Version 1.1.10
6540 Fixed crash bug that occurred when loading a const variable in the
6543 Allowed using with and eval in registered extensions in debug mode
6544 by fixing bogus assert.
6546 Fixed the source position for function returns to enable the
6547 debugger to break there.
6550 2009-04-14: Version 1.1.9
6552 Made the stack traversal code in the profiler robust by avoiding
6553 to look into the heap.
6555 Added name inferencing for anonymous functions to facilitate
6556 debugging and profiling.
6558 Re-enabled stats timers in the developer shell (d8).
6560 Fixed issue 303 by avoiding to shortcut cons-symbols.
6563 2009-04-11: Version 1.1.8
6565 Changed test-debug/ThreadedDebugging to be non-flaky (issue 96).
6567 Fixed step-in handling for Function.prototype.apply and call in
6568 the debugger (issue 269).
6570 Fixed v8::Object::DeleteHiddenValue to not bail out when there
6571 are no hidden properties.
6573 Added workaround for crash bug, where external symbol table
6574 entries with deleted resources would lead to NPEs when looking
6575 up in the symbol table.
6578 2009-04-07: Version 1.1.7
6580 Added support for easily importing additional environment
6581 variables into the SCons build.
6583 Optimized strict equality checks.
6585 Fixed crash in indexed setters on objects without a corresponding
6588 Re-enabled script compilation cache.
6591 2009-04-01: Version 1.1.6
6593 Reverted an unsafe code generator change.
6596 2009-04-01: Version 1.1.5
6598 Fixed bug that caused function literals to not be optimized as
6599 much as other functions.
6601 Improved profiler support.
6603 Fixed a crash bug in connection with debugger unloading.
6605 Fixed a crash bug in the code generator caused by losing the
6606 information that a frame element was copied.
6608 Fixed an exception propagation bug that could cause non-null
6609 return values when exceptions were thrown.
6612 2009-03-30: Version 1.1.4
6614 Optimized String.prototype.match.
6616 Improved the stack information in profiles.
6618 Fixed bug in ARM port making it possible to compile the runtime
6619 system for thumb mode again.
6621 Implemented a number of optimizations in the code generator.
6623 Fixed a number of memory leaks in tests.
6625 Fixed crash bug in connection with script source code and external
6629 2009-03-24: Version 1.1.3
6631 Fixed assertion failures in compilation of loop conditions.
6633 Removed STL dependency from developer shell (d8).
6635 Added infrastructure for protecting the V8 heap from corruption
6636 caused by memory modifications from the outside.
6639 2009-03-24: Version 1.1.2
6641 Improved frame merge code generated by the code generator.
6643 Optimized String.prototype.replace.
6645 Implemented __defineGetter__ and __defineSetter__ for properties
6646 with integer keys on non-array objects.
6648 Improved debugger and profiler support.
6650 Fixed a number of portability issues to allow compilation for
6651 smaller ARM devices.
6653 Exposed object cloning through the API.
6655 Implemented hidden properties. This is used to expose an identity
6656 hash for objects through the API.
6658 Implemented restarting of regular expressions if their input
6659 string changes representation during preemption.
6661 Fixed a code generator bug that could cause assignments in loops
6662 to be ignored if using continue to break out of the loop (issue
6666 2009-03-12: Version 1.1.1
6668 Fixed an assertion in the new compiler to take stack overflow
6669 exceptions into account.
6671 Removed exception propagation code that could cause crashes.
6673 Fixed minor bug in debugger line number computations.
6675 8-byte align the C stack on Linux and Windows to speed up floating
6679 2009-03-12: Version 1.1.0
6681 Improved code generation infrastructure by doing simple register
6682 allocation and constant folding and propagation.
6684 Optimized regular expression matching by avoiding to create
6685 intermediate string arrays and by flattening nested array
6686 representations of RegExp data.
6688 Traverse a few stack frames when recording profiler samples to
6689 include partial call graphs in the profiling output.
6691 Added support for using OProfile to profile generated code.
6693 Added remote debugging support to the D8 developer shell.
6695 Optimized creation of nested literals like JSON objects.
6697 Fixed a bug in garbage collecting unused maps and turned it on by
6698 default (--collect-maps).
6700 Added support for running tests under Valgrind.
6703 2009-02-27: Version 1.0.3
6705 Optimized double-to-integer conversions in bit operations by using
6706 SSE3 instructions if available.
6708 Optimized initialization sequences that store to multiple
6709 properties of the same object.
6711 Changed the D8 debugger frontend to use JSON messages.
6713 Force garbage collections when disposing contexts.
6715 Align code objects at 32-byte boundaries.
6718 2009-02-25: Version 1.0.2
6720 Improved profiling support by performing simple call stack
6721 sampling for ticks and by fixing a bug in the logging of code
6724 Fixed a number of debugger issues.
6726 Optimized code that uses eval.
6728 Fixed a couple of bugs in the regular expression engine.
6730 Reduced the size of generated code for certain regular expressions.
6732 Removed JSCRE completely.
6734 Fixed issue where test could not be run if there was a dot in the
6738 2009-02-13: Version 1.0.1
6740 Fixed two crash-bugs in irregexp (issue 231 and 233).
6742 Fixed a number of minor bugs (issue 87, 227 and 228).
6744 Added support for morphing strings to external strings on demand
6745 to avoid having to create copies in the embedding code.
6747 Removed experimental support for external symbol callbacks.
6750 2009-02-09: Version 1.0.0
6752 Fixed crash-bug in the code generation for case independent 16 bit
6755 Made shells more robust in the presence of string conversion
6756 failures (issue 224).
6758 Fixed a potential infinite loop when attempting to resolve
6761 Miscellaneous fixes to the new regular expression engine.
6763 Reduced binary by stripping unneeded text from JavaScript library and
6764 minifying some JavaScript files.
6767 2009-01-27: Version 0.4.9
6769 Enabled new regular expression engine.
6771 Made a number of changes to the debugger protocol.
6773 Fixed a number of bugs in the preemption support.
6775 Added -p option to the developer shell to run files in parallel
6778 Fixed a number of minor bugs (including issues 176, 187, 189, 192,
6781 Fixed a number of bugs in the serialization/deserialization
6782 support for the ARM platform.
6785 2009-01-19: Version 0.4.8.1
6787 Minor patch to debugger support.
6790 2009-01-16: Version 0.4.8
6792 Fixed string length bug on ARM (issue 171).
6794 Made most methods in the API const.
6796 Optimized object literals by improving data locality.
6798 Fixed bug that caused incomplete functions to be cached in case of
6799 stack overflow exceptions.
6801 Fixed bugs that caused catch variables and variables introduced by
6802 eval to behave incorrectly when using accessors (issues 186, 190
6806 2009-01-06: Version 0.4.7
6808 Minor bugfixes and optimizations.
6810 Added command line debugger to D8 shell.
6812 Fixed subtle bug that caused the wrong 'this' to be used when
6813 calling a caught function in a catch clause.
6815 Inline array loads within loops directly in the code instead of
6816 always calling a stub.
6819 2008-12-11: Version 0.4.6
6821 Fixed exception reporting bug where certain exceptions were
6822 incorrectly reported as uncaught.
6824 Improved the memory allocation strategy used during compilation to
6825 make running out of memory when compiling huge scripts less
6828 Optimized String.replace by avoiding the construction of certain
6831 Fixed bug in code generation for large switch statements on ARM.
6833 Fixed bug that caused V8 to change the global object template
6834 passed in by the user.
6836 Changed the API for creating object groups used during garbage
6837 collection. Entire object groups are now passed to V8 instead of
6838 individual members of the groups.
6841 2008-12-03: Version 0.4.5
6843 Added experimental API support for allocating V8 symbols as
6846 Fixed bugs in debugging support on ARM.
6848 Changed eval implementation to correctly detect whether or not a
6849 call to eval is aliased.
6851 Fixed bug caused by a combination of the compilation cache and
6852 dictionary probing in native code. The bug caused us to sometimes
6853 call functions that had not yet been compiled.
6855 Added platform support for FreeBSD.
6857 Added support for building V8 on Windows with either the shared or
6858 static version of MSVCRT
6860 Added the v8::jscre namespace around the jscre functions to avoid
6861 link errors (duplicate symbols) when building Google Chrome.
6863 Added support for calling a JavaScript function with the current
6864 debugger execution context as its argument to the debugger
6867 Changed the type of names of counters from wchar_t to char.
6869 Changed the Windows system call used to compute daylight savings
6870 time. The system call that we used to use became four times
6871 slower on WinXP SP3.
6873 Added support in the d8 developer shell for memory-mapped counters
6874 and added a stats-viewer tool.
6876 Fixed bug in upper/lower case mappings (issue 149).
6879 2008-11-17: Version 0.4.4
6881 Reduced code size by using shorter instruction encoding when
6884 Added a --help option to the shell sample and to the d8 shell.
6886 Added visual studio project files for building the ARM simulator.
6888 Fixed a number of ARM simulator issues.
6890 Fixed bug in out-of-memory handling on ARM.
6892 Implemented shell support for passing arguments to a script from
6895 Fixed bug in date code that made certain date functions return -0
6896 instead of 0 for dates before the epoch.
6898 Restricted applications of eval so it can only be used in the
6899 context of the associated global object.
6901 Treat byte-order marks as whitespace characters.
6904 2008-11-04: Version 0.4.3
6906 Added support for API accessors that prohibit overwriting by
6907 accessors defined in JavaScript code by using __defineGetter__ and
6910 Improved handling of conditionals in test status files.
6912 Introduced access control in propertyIsEnumerable.
6914 Improved performance of some string operations by caching
6915 information about the type of the string between operations.
6917 Fixed bug in fast-case code for switch statements that only have
6921 2008-10-30: Version 0.4.2
6923 Improved performance of Array.prototype.concat by moving the
6924 implementation to C++ (issue 123).
6926 Fixed heap growth policy to avoid growing old space to its maximum
6927 capacity before doing a garbage collection and fixed issue that
6928 would lead to artificial out of memory situations (issue 129).
6930 Fixed Date.prototype.toLocaleDateString to return the date in the
6931 same format as WebKit.
6933 Added missing initialization checks to debugger API.
6935 Added removing of unused maps during GC.
6938 2008-10-28: Version 0.4.1
6940 Added caching of RegExp data in compilation cache.
6942 Added Visual Studio project file for d8 shell.
6944 Fixed function call performance regression introduced in version
6945 0.4.0 when splitting the global object in two parts (issue 120).
6947 Fixed issue 131 by checking for empty handles before throwing and
6948 reporting exceptions.
6951 2008-10-23: Version 0.4.0
6953 Split the global object into two parts: The state holding global
6954 object and the global object proxy.
6956 Fixed bug that affected the value of an assignment to an element
6957 in certain cases (issue 116).
6959 Added GetPropertyNames functionality (issue 33) and extra Date
6960 functions (issue 77) to the API.
6962 Changed WeakReferenceCallback to take a Persistent<Value> instead
6963 of a Persistent<Object> (issue 101).
6965 Fixed issues with message reporting for exceptions in try-finally
6966 blocks (issues 73 and 75).
6968 Optimized flattening of strings and string equality checking.
6970 Improved Boyer-Moore implementation for faster indexOf operations.
6972 Added development shell (d8) which includes counters and
6975 Fixed problem with the receiver passed to functions called from
6979 2008-10-16: Version 0.3.5
6981 Improved string hash-code distribution by excluding bit-field bits
6984 Changed string search algorithm used in indexOf from KMP to
6987 Improved the generated code for the instanceof operator.
6989 Improved performance of slow-case string equality checks by
6990 specializing the code based on the string representation.
6992 Improve the handling of out-of-memory situations (issue 70).
6994 Improved performance of strict equality checks.
6996 Improved profiler output to make it easier to see anonymous
6999 Improved performance of slow-case keyed loads.
7001 Improved property access performance by allocating a number of
7002 properties in the front object.
7004 Changed the toString behavior on the built-in object constructors
7005 to print [native code] instead of the actual source. Some web
7006 applications do not like constructors with complex toString
7010 2008-10-06: Version 0.3.4
7012 Changed Array.prototype.sort to use quick sort.
7014 Fixed code generation issue where leaving a finally block with
7015 break or continue would accumulate elements on the expression
7018 Made sure that the name accessor on functions returns the expected
7019 names for builtin JavaScript functions and C++ callback functions.
7021 Added fast case code for extending the property storage array of
7024 Ported switch statement optimizations introduced in version 0.3.3
7025 to the ARM code generator.
7027 Allowed GCC to use strict-aliasing rules when compiling.
7029 Improved performance of arguments object allocation by taking care
7030 of arguments adaptor frames in the generated code.
7032 Updated the V8 benchmark suite to version 2.
7035 2008-09-25: Version 0.3.3
7037 Improved handling of relocation information to enable more
7038 peep-hole optimizations.
7040 Optimized switch statements where all labels are constant small
7043 Optimized String.prototype.indexOf for common cases.
7045 Fixed more build issues (issue 80).
7047 Fixed a couple of profiler issues.
7049 Fixed bug where the body of a function created using the Function
7050 constructor was not allowed to end with a single-line comment
7053 Improved handling of object literals by canonicalizing object
7054 literal maps. This will allow JSON objects with the same set of
7055 properties to share the same map making inline caching work better
7059 2008-09-17: Version 0.3.2
7061 Generalized the EvalCache into a CompilationCache and enabled it
7062 for scripts too. The current strategy is to retire all entries
7063 whenever a mark-sweep collection is started.
7065 Fixed bug where switch statements containing only a default case
7066 would lead to an unbalanced stack (issue 69).
7068 Fixed bug that made access to the function in a named function
7069 expression impossible in certain situations (issue 24).
7071 Fixed even more build issues.
7073 Optimized calling conventions on ARM. The conventions on ARM and
7076 Removed static initializers for flags and counters.
7078 Improved inline caching behavior for uncommon cases where lazily
7079 loading Date and RegExp code could force certain code paths go
7082 Removed arguments adaption for builtins written in C++. This
7083 makes Array.prototype.push and Array.prototype.pop slightly
7087 2008-09-11: Version 0.3.1
7089 Fixed a number of build issues.
7091 Fixed problem with missing I-cache flusing on ARM.
7093 Changed space layout in memory management by splitting up
7094 code space into old data space and code space.
7096 Added utf-8 conversion support to the API (issue 57).
7098 Optimized repeated calls to eval with the same strings. These
7099 repeated calls are common in web applications.
7101 Added Xcode project file.
7103 Optimized a couple of Array operation.
7105 Fixed parser bug by checking for end-of-string when parsing break
7106 and continue (issue 35).
7108 Fixed problem where asian characters were not categorized as
7111 Fixed bug that disallowed calling functions fetched from an array
7112 using a string as an array index (issue 32).
7114 Fixed bug where the internal field count on object templates were
7115 sometimes ignored (issue 54).
7117 Added -f option to the shell sample for compatibility with other
7120 Added source info to TryCatches in the API.
7122 Fixed problem where the seed for the random number generator was
7123 clipped in a double to unsigned int conversion.
7125 Fixed bug where cons string symbols were sometimes converted to
7126 non-symbol flat strings during GC.
7128 Fixed bug in error reporting when attempting to convert null to an
7132 2008-09-04: Version 0.3.0
7134 Added support for running tests on the ARM simulator.
7136 Fixed bug in the 'in' operator where negative indices were not
7139 Fixed build issues on gcc-4.3.1.
7141 Changed Date.prototype.toLocaleTimeString to not print the
7142 timezone part of the time.
7144 Renamed debug.h to v8-debug.h to reduce the risk of name conflicts
7148 2008-09-02: Version 0.2.5
7150 Renamed the top level directory 'public' to 'include'.
7152 Added 'env' option to the SCons build scripts to support
7153 overriding the ENV part of the build environment. This is mostly
7154 to support Windows builds in cases where SCons cannot find the
7155 correct paths to the Windows SDK, as these paths cannot be passed
7156 through shell environment variables.
7158 Enabled "Buffer Security Check" on for the Windows SCons build and
7159 added the linker option /OPT:ICF as an optimization.
7161 Added the V8 benchmark suite to the repository.
7164 2008-09-01: Version 0.2.4
7166 Included mjsunit JavaScript test suite and C++ unit tests.
7168 Changed the shell sample to not print the result of executing a
7169 script provided on the command line.
7171 Fixed issue when building samples on Windows using a shared V8
7172 library. Added visibility option on Linux build which makes the
7173 generated library 18% smaller.
7175 Changed build system to accept multiple build modes in one build
7176 and generate separate objects, libraries and executables for each
7179 Removed deferred negation optimization (a * -b => -(a * b)) since
7180 this visibly changes operand conversion order.
7182 Improved parsing performance by introducing stack guard in
7183 preparsing. Without a stack guard preparsing always bails out
7184 with stack overflow.
7186 Changed shell sample to take flags directly from the command-line.
7187 Added API call that implements this.
7189 Added load, quit and version functions to the shell sample so it's
7190 easier to run benchmarks and tests.
7192 Fixed issue with building samples and cctests on 64-bit machines.
7194 Fixed bug in the runtime system where the prototype chain was not
7195 always searched for a setter when setting a property that does not
7199 2008-08-14: Version 0.2.3
7201 Improved performance of garbage collection by moving the
7202 function that updates pointers during compacting collection
7203 into the updating visitor. This gives the compiler a better
7204 chance to inline and avoid a function call per (potential)
7207 Extended the shell sample with a --runtime-flags option.
7209 Added Visual Studio project files for the shell.cc and
7213 2008-08-13: Version 0.2.2
7215 Improved performance of garbage collection by changing the way
7216 we use the marking stack in the event of stack overflow during
7217 full garbage collection and by changing the way we mark roots.
7219 Cleaned up ARM version by removing top of stack caching and by
7220 introducing push/pop elimination.
7222 Cleaned up the way runtime functions are called to allow
7223 runtime calls with no arguments.
7225 Changed Windows build options to make sure that exceptions are
7226 disabled and that optimization flags are enabled.
7228 Added first version of Visual Studio project files.
7231 2008-08-06: Version 0.2.1
7233 Improved performance of unary addition by avoiding runtime calls.
7235 Fixed the handling of '>' and '<=' to use right-to-left conversion
7236 and left-to-right evaluation as specified by ECMA-262.
7238 Fixed a branch elimination bug on the ARM platform where incorrect
7239 code was generated because of overly aggressive branch
7242 Improved performance of code that repeatedly assigns the same
7243 function to the same property of different objects with the same
7246 Untangled DEBUG and ENABLE_DISASSEMBLER defines. The disassembler
7247 no longer expects DEBUG to be defined.
7249 Added platform-nullos.cc to serve as the basis for new platform
7253 2008-07-30: Version 0.2.0
7255 Changed all text files to have native svn:eol-style.
7257 Added a few samples and support for building them. The samples
7258 include a simple shell that can be used to benchmark and test V8.
7260 Changed V8::GetVersion to return the version as a string.
7262 Added source for lazily loaded scripts to snapshots and made
7263 serialization non-destructive.
7265 Improved ARM support by fixing the write barrier code to use
7266 aligned loads and stores and by removing premature locals
7267 optimization that relied on broken support for callee-saved
7268 registers (removed).
7270 Refactored the code for marking live objects during garbage
7271 collection and the code for allocating objects in paged
7272 spaces. Introduced an abstraction for the map word of a heap-
7273 allocated object and changed the memory allocator to allocate
7274 executable memory only for spaces that may contain code objects.
7276 Moved StringBuilder to utils.h and ScopedLock to platform.h, where
7277 they can be used by debugging and logging modules. Added
7278 thread-safe message queues for dealing with debugger events.
7280 Fixed the source code reported by toString for certain builtin
7281 empty functions and made sure that the prototype property of a
7282 function is enumerable.
7284 Improved performance of converting values to condition flags in
7287 Merged disassembler-{arch} files.
7290 2008-07-28: Version 0.1.4
7292 Added support for storing JavaScript stack traces in a stack
7293 allocated buffer to make it visible in shallow core dumps.
7294 Controlled by the --preallocate-message-memory flag which is
7295 disabled by default.
7298 2008-07-25: Version 0.1.3
7300 Fixed bug in JSObject::GetPropertyAttributePostInterceptor where
7301 map transitions would count as properties.
7303 Allowed aliased eval invocations by treating them as evals in the
7304 global context. This may change in the future.
7306 Added support for accessing the last entered context through the
7307 API and renamed Context::Current to Context::GetCurrent and
7308 Context::GetSecurityContext to Context::GetCurrentSecurityContext.
7310 Fixed bug in the debugger that would cause the debugger scripts to
7311 be recursively loaded and changed all disabling of interrupts to
7312 be block-structured.
7314 Made snapshot data read-only to allow it to be more easily shared
7315 across multiple users of V8 when linked as a shared library.
7318 2008-07-16: Version 0.1.2
7320 Fixed building on Mac OS X by recognizing i386 and friends as
7323 Added propagation of stack overflow exceptions that occur while
7324 compiling nested functions.
7326 Improved debugger with support for recursive break points and
7327 handling of exceptions that occur in the debugger JavaScript code.
7329 Renamed GetInternal to GetInternalField and SetInternal to
7330 SetInternalField in the API and moved InternalFieldCount and
7331 SetInternalFieldCount from FunctionTemplate to ObjectTemplate.
7334 2008-07-09: Version 0.1.1
7336 Fixed bug in stack overflow check code for IA-32 targets where a
7337 non-tagged value in register eax was pushed to the stack.
7339 Fixed potential quadratic behavior when converting strings to
7342 Fixed bug where the return value from Object::SetProperty could
7343 end up being the property holder instead of the written value.
7345 Improved debugger support by allowing nested break points and by
7346 dealing with stack-overflows when compiling functions before
7347 setting break points in them.
7350 2008-07-03: Version 0.1.0