blob: 339fd18f59cf618181c7d3bb08b9d7dabd37e1b7 [file] [log] [blame]
Andrei Popescu402d9372010-02-26 13:31:12 +000012010-02-23: Version 2.1.2
2
3 Fix a crash bug caused by wrong assert.
4
5 Fix a bug with register names on 64-bit V8 (issue 615).
6
7 Performance improvements on all platforms.
8
92010-02-19: Version 2.1.1
10
11 [ES5] Implemented Object.defineProperty.
12
13 Improved profiler support.
14
15 Added SetPrototype method in the public V8 API.
16
17 Added GetScriptOrigin and GetScriptLineNumber methods to Function
18 objects in the API.
19
20 Performance improvements on all platforms.
21
22
Leon Clarke4515c472010-02-03 11:58:03 +0000232010-02-03: Version 2.1.0
24
25 Values are now always wrapped in objects when used as a receiver.
26 (issue 223).
27
28 [ES5] Implemented Object.getOwnPropertyNames.
29
30 [ES5] Restrict JSON.parse to only accept strings that conforms to the
31 JSON grammar.
32
33 Improvement of debugger agent (issue 549 and 554).
34
35 Fixed problem with skipped stack frame in profiles (issue 553).
36
37 Solaris support by Erich Ocean <erich.ocean@me.com> and Ryan Dahl
38 <ry@tinyclouds.org>.
39
40 Fix a bug that Math.round() returns incorrect results for huge
41 integers.
42
43 Fix enumeration order for objects created from some constructor
44 functions (isue http://crbug.com/3867).
45
46 Fix arithmetic on some integer constants (issue 580).
47
48 Numerous performance improvements including porting of previous IA-32
49 optimizations to x64 and ARM architectures.
50
51
Leon Clarkee46be812010-01-19 14:06:41 +0000522010-01-14: Version 2.0.6
53
54 Added ES5 Object.getPrototypeOf, GetOwnPropertyDescriptor,
55 GetOwnProperty, FromPropertyDescriptor.
56
57 Fixed Mac x64 build errors.
58
59 Improved performance of some math and string operations.
60
61 Improved performance of some regexp operations.
62
63 Improved performance of context creation.
64
65 Improved performance of hash tables.
66
67
682009-12-18: Version 2.0.5
69
70 Extended to upper limit of map space to allow for 7 times as many map
71 to be allocated (issue 524).
72
73 Improved performance of code using closures.
74
75 Improved performance of some binary operations involving doubles.
76
77
782009-12-16: Version 2.0.4
79
80 Added ECMAScript 5 Object.create.
81
82 Improved performance of Math.max and Math.min.
83
84 Optimized adding of strings on 64-bit platforms.
85
86 Improved handling of external strings by using a separate table
87 instead of weak handles. This improves garbage collection
88 performance and uses less memory.
89
90 Changed code generation for object and array literals in toplevel
91 code to be more compact by doing more work in the runtime.
92
93 Fixed a crash bug triggered when garbage collection happened during
94 generation of a callback load inline cache stub.
95
96 Fixed crash bug sometimes triggered when local variables shadowed
97 parameters in functions that used the arguments object.
98
99
Steve Blockd0582a62009-12-15 09:54:21 +00001002009-12-03: Version 2.0.3
101
102 Optimized handling and adding of strings, for-in and Array.join.
103
104 Heap serialization is now non-destructive.
105
106 Improved profiler support with information on time spend in C++
107 callbacks registered through the API.
108
109 Added commands to the debugger protocol for starting/stopping
110 profiling.
111
112 Enabled the non-optimizing compiler for top-level code.
113
114 Changed the API to only allow strings to be set as data objects on
115 Contexts and scripts to avoid potentially keeping global objects
116 around for too long (issue 528).
117
118 OpenBSD support patch by Peter Valchev <pvalchev@gmail.com>.
119
120 Fixed bugs.
121
122
1232009-11-24: Version 2.0.2
124
125 Improved profiler support.
126
127 Fixed bug that broke compilation of d8 with readline support.
128
129
1302009-11-20: Version 2.0.1
131
132 Fixed crash bug in String.prototype.replace.
133
134 Reverted a change which caused Chromium interactive ui test
135 failures.
136
Leon Clarkee46be812010-01-19 14:06:41 +0000137
Steve Blockd0582a62009-12-15 09:54:21 +00001382009-11-18: Version 2.0.0
139
140 Added support for VFP on ARM.
141
142 Added TryCatch::ReThrow method to the API.
143
144 Reduced the size of snapshots and improved the snapshot load time.
145
146 Improved heap profiler support.
147
148 64-bit version now supported on Windows.
149
150 Fixed a number of debugger issues.
151
152 Fixed bugs.
153
154
1552009-10-29: Version 1.3.18
156
157 Reverted a change which caused crashes in RegExp replace.
158
159 Reverted a change which caused Chromium ui_tests failure.
160
161
1622009-10-28: Version 1.3.17
163
164 Added API method to get simple heap statistics.
165
166 Improved heap profiler support.
167
168 Fixed the implementation of the resource constraint API so it
169 works when using snapshots.
170
171 Fixed a number of issues in the Windows 64-bit version.
172
173 Optimized calls to API getters.
174
175 Added valgrind notification on code modification to the 64-bit version.
176
177 Fixed issue where we logged shared library addresses on Windows at
178 startup and never used them.
179
180
Steve Block3ce2e202009-11-05 08:53:23 +00001812009-10-16: Version 1.3.16
Leon Clarkee46be812010-01-19 14:06:41 +0000182
Steve Block3ce2e202009-11-05 08:53:23 +0000183 X64: Convert smis to holding 32 bits of payload.
184
185 Introduce v8::Integer::NewFromUnsigned method.
186
187 Add missing null check in Context::GetCurrent.
188
189 Add trim, trimLeft and trimRight methods to String
190 Patch by Jan de Mooij <jandemooij@gmail.com>
191
192 Implement ES5 Array.isArray
193 Patch by Jan de Mooij <jandemooij@gmail.com>
194
195 Skip access checks for hidden properties.
196
197 Add String::Concat(Handle<String> left, Handle<String> right) to the V8 API.
198
199 Fix GYP-based builds of V8.
200
201
2022009-10-07: Version 1.3.15
203
204 Expand the maximum size of the code space to 512MB for 64-bit mode.
205
206 Fixed a crash bug happening when starting profiling (issue
207 http://crbug.com/23768).
208
209
2102009-10-07: Version 1.3.14
211
212 Added GetRealNamedProperty to the API to lookup real properties
213 located on the object or in the prototype chain skipping any
214 interceptors.
215
216 Fix the stack limits setting API to work correctly with threads. The
217 stack limit now needs to be set to each thread thich is used with V8.
218
219 Remove the high-priority flag from IdleNotification()
220
221 Ensure V8 is initialized before locking and unlocking threads.
222
223 Implemented a new JavaScript minifier for compressing the source of
Steve Blockd0582a62009-12-15 09:54:21 +0000224 the built-in JavaScript. This removes non-Open Source code from Douglas
Steve Block3ce2e202009-11-05 08:53:23 +0000225 Crockford from the project.
226
227 Added a missing optimization in StringCharAt.
228
229 Fixed some flaky socket tests.
230
231 Change by Alexander Botero-Lowry to fix profiler sampling on FreeBSD
232 in 64-bit mode.
233
234 Fixed memory leaks in the thread management code.
235
236 Fixed the result of assignment to a pixel array. The assigned value
237 is now the result.
238
239 Error reporting for invalid left-hand sides in for-in statements, pre-
240 and postfix count expressions, and assignments now matches the JSC
241 behavior in Safari 4.
242
243 Follow the spec in disallowing function declarations without a name.
244
245 Always allocate code objects within a 2 GB range. On x64 architecture
246 this is used to use near calls (32-bit displacement) in Code objects.
247
248 Optimized array construction ported to x64 and ARM architectures.
249
250 [ES5] Changed Object.keys to return strings for element indices.
251
252
Steve Blocka7e24c12009-10-30 11:49:00 +00002532009-09-23: Version 1.3.13
254
255 Fixed uninitialized memory problem.
256
257 Improved heap profiler support.
258
259
2602009-09-22: Version 1.3.12
261
262 Changed behavior of |function|.toString() on built-in functions to
263 be compatible with other implementations. Patch by Jan de Mooij.
264
265 Added Object::IsDirty in the API.
266
267 Optimized array construction; it is now handled purely in native
268 code.
269
270 [ES5] Made properties of the arguments array enumerable.
271
272 [ES5] Added test suite adapter for the es5conform test suite.
273
274 [ES5] Added Object.keys function.
275
276
2772009-09-15: Version 1.3.11
278
279 Fixed crash in error reporting during bootstrapping.
280
281 Optimized generated IA32 math code by using SSE2 instructions when
282 available.
283
284 Implemented missing pieces of debugger infrastructure on ARM. The
285 debugger is now fully functional on ARM.
286
287 Make 'hidden' the default visibility for gcc.
288
289
2902009-09-09: Version 1.3.10
291
292 Fixed profiler on Mac in 64-bit mode.
293
294 Optimized creation of objects from simple constructor functions on
295 ARM.
296
297 Fixed a number of debugger issues.
298
299 Reduced the amount of memory consumed by V8.
300
301
3022009-09-02: Version 1.3.9
303
304 Optimized stack guard checks on ARM.
305
306 Optimized API operations by inlining more in the API.
307
308 Optimized creation of objects from simple constructor functions.
309
310 Enabled a number of missing optimizations in the 64-bit port.
311
312 Implemented native-code support for regular expressions on ARM.
313
314 Stopped using the 'sahf' instruction on 64-bit machines that do
315 not support it.
316
317 Fixed a bug in the support for forceful termination of JavaScript
318 execution.
319
320
3212009-08-26: Version 1.3.8
322
323 Changed the handling of idle notifications to allow idle
324 notifications when V8 has not yet been initialized.
325
326 Fixed ARM simulator compilation problem on Windows.
Leon Clarkee46be812010-01-19 14:06:41 +0000327
Steve Blocka7e24c12009-10-30 11:49:00 +0000328
3292009-08-25: Version 1.3.7
330
331 Reduced the size of generated code on ARM platforms by reducing
332 the size of constant pools.
333
334 Changed build files to not include the 'ENV' user environment
335 variable in the build environment.
336
337 Changed the handling of idle notifications.
338
339
3402009-08-21: Version 1.3.6
341
342 Add support for forceful termination of JavaScript execution.
343
344 Add low memory notification to the API. The embedding host can signal
345 a low memory situation to V8.
346
347 Changed the handling of global handles (persistent handles in the API
348 sense) to avoid issues regarding allocation of new global handles
349 during weak handle callbacks.
350
351 Changed the growth policy of the young space.
352
353 Fixed a GC issue introduced in version 1.3.5.
354
355
3562009-08-19: Version 1.3.5
357
358 Optimize initialization of some arrays in the builtins.
359
360 Fix mac-nm script to support filenames with spaces.
361
362 Support for using the V8 profiler when V8 is embedded in a Windows DLL.
363
364 Changed typeof RegExp from 'object' to 'function' for compatibility.
365 Fixed bug where regexps were not callable across contexts.
366
367 Added context independent script compilation to the API.
368
369 Added API call to get the stack trace for an exception.
370
371 Added API for getting object mirrors.
372
373 Make sure that SSE3 instructions are used whenever possible even when
374 running off a snapshot generated without using SSE3 instructions.
375
376 Tweaked the handling of the initial size and growth policy of the heap.
377
378 Added native code generation for RegExp to 64-bit version.
379
380 Added JavaScript debugger support to 64-bit version.
381
382
3832009-08-13: Version 1.3.4
384
385 Added a readline() command to the d8 shell.
386
387 Fixed bug in json parsing.
388
389 Added idle notification to the API and reduced memory on idle
390 notifications.
391
392
3932009-08-12: Version 1.3.3
394
395 Fix issue 417: incorrect %t placeholder expansion.
396
397 Add .gitignore file similar to Chromium's one.
398
399 Fix SConstruct file to build with new logging code for Android.
400
401 API: added function to find instance of template in prototype
402 chain. Inlined Object::IsInstanceOf.
403
404 Land change to notify valgrind when we modify code on x86.
405
406 Add api call to determine whether a string can be externalized.
407
408 Add a write() command to d8.
409
410
4112009-08-05: Version 1.3.2
412
413 Started new compiler infrastructure for two-pass compilation using a
414 control flow graph constructed from the AST.
415
416 Profiler stack sampling for X64.
417
418 Safe handling of NaN to Posix platform-dependent time functions.
419
420 Added a new profiler control API to unify controlling various aspects
421 of profiling.
422
423 Fixed issue 392.
424
425
4262009-07-30: Version 1.3.1
427
428 Speed improvements to accessors and interceptors.
429
430 Added support for capturing stack information on custom errors.
431
432 Added support for morphing an object into a pixel array where its
433 indexed properties are stored in an external byte array. Values written
434 are always clamped to the 0..255 interval.
435
436 Profiler on x64 now handles C/C++ functions from shared libraries.
437
438 Changed the debugger to avoid stepping into function.call/apply if the
439 function is a built-in.
440
441 Initial implementation of constructor heap profile for JS objects.
Leon Clarkee46be812010-01-19 14:06:41 +0000442
Steve Blocka7e24c12009-10-30 11:49:00 +0000443 More fine grained control of profiling aspects through the API.
Leon Clarkee46be812010-01-19 14:06:41 +0000444
Steve Blocka7e24c12009-10-30 11:49:00 +0000445 Optimized the called as constructor check for API calls.
446
447
4482009-07-27: Version 1.3.0
449
450 Allowed RegExp objects to be called as functions (issue 132).
451
452 Fixed issue where global property cells would escape after
453 detaching the global object; see http://crbug.com/16276.
454
455 Added support for stepping into setters and getters in the
456 debugger.
457
458 Changed the debugger to avoid stopping in its own JavaScript code
459 and in the code of built-in functions.
460
461 Fixed issue 345 by avoiding duplicate escaping labels.
462
463 Fixed ARM code generator crash in short-circuited boolean
464 expressions and added regression tests.
465
466 Added an external allocation limit to avoid issues where small V8
467 objects would hold on to large amounts of external memory without
468 causing garbage collections.
Leon Clarkee46be812010-01-19 14:06:41 +0000469
470 Finished more of the inline caching stubs for x64 targets.
Steve Blocka7e24c12009-10-30 11:49:00 +0000471
472
4732009-07-13: Version 1.2.14
474
475 Added separate paged heap space for global property cells and
476 avoid updating the write barrier when storing into them.
477
478 Improved peep-hole optimization on ARM platforms by not emitting
479 unnecessary debug information.
480
481 Re-enabled ICs for loads and calls that skip a global object
482 during lookup through the prototype chain.
483
484 Allowed access through global proxies to use ICs.
485
486 Fixed issue 401.
487
488
4892009-07-09: Version 1.2.13
490
491 Fixed issue 397, issue 398, and issue 399.
492
493 Added support for breakpoint groups.
494
495 Fixed bugs introduced with the new global object representation.
496
497 Fixed a few bugs in the ARM code generator.
498
499
5002009-07-06: Version 1.2.12
501
502 Added stack traces collection to Error objects accessible through
503 the e.stack property.
504
505 Changed RegExp parser to use a recursive data structure instead of
506 stack-based recursion.
507
508 Optimized Date object construction and string concatenation.
509
510 Improved performance of div, mod, and mul on ARM platforms.
511
512
5132009-07-02: Version 1.2.11
514
515 Improved performance on IA-32 and ARM.
516
517 Fixed profiler sampler implementation on Mac OS X.
518
519 Changed the representation of global objects to improve
520 performance of adding a lot of new properties.
521
522
5232009-06-29: Version 1.2.10
524
525 Improved debugger support.
526
527 Fixed bug in exception message reporting (issue 390).
528
529 Improved overall performance.
530
531
5322009-06-23: Version 1.2.9
533
534 Improved math performance on ARM.
535
536 Fixed profiler name-inference bug.
537
538 Fixed handling of shared libraries in the profiler tick processor
539 scripts.
540
541 Fixed handling of tests that time out in the test scripts.
542
543 Fixed compilation on MacOS X version 10.4.
544
545 Fixed two bugs in the regular expression engine.
546
547 Fixed a bug in the string type inference.
548
549 Fixed a bug in the handling of 'constant function' properties.
Leon Clarkee46be812010-01-19 14:06:41 +0000550
Steve Blocka7e24c12009-10-30 11:49:00 +0000551 Improved overall performance.
Leon Clarkee46be812010-01-19 14:06:41 +0000552
Steve Blocka7e24c12009-10-30 11:49:00 +0000553
5542009-06-16: Version 1.2.8
555
556 Optimized math on ARM platforms.
557
558 Fixed two crash bugs in the handling of getters and setters.
559
560 Improved the debugger support by adding scope chain information.
561
562 Improved the profiler support by compressing log data transmitted
563 to clients.
564
565 Improved overall performance.
566
567
5682009-06-08: Version 1.2.7
569
570 Improved debugger and profiler support.
571
572 Reduced compilation time by improving the handling of deferred
573 code.
574
575 Optimized interceptor accesses where the property is on the object
576 on which the interceptors is attached.
577
578 Fixed compilation problem on GCC 4.4 by changing the stack
579 alignment to 16 bytes.
580
581 Fixed handle creation to follow stric aliasing rules.
582
583 Fixed compilation on FreeBSD.
584
585 Introduced API for forcing the deletion of a property ignoring
586 interceptors and attributes.
587
588
5892009-05-29: Version 1.2.6
590
591 Added a histogram recording hit rates at different levels of the
592 compilation cache.
593
594 Added stack overflow check for the RegExp analysis phase. Previously a
595 very long regexp graph could overflow the stack with recursive calls.
596
597 Use a dynamic buffer when collecting log events in memory.
598
599 Added start/stop events to the profiler log.
600
601 Fixed infinite loop which could happen when setting a debug break while
602 executing a RegExp compiled to native code.
603
604 Fixed handling of lastIndexOf called with negative index (issue 351).
605
606 Fixed irregular crash in profiler test (issue 358).
607
608 Fixed compilation issues with some versions of gcc.
609
610
6112009-05-26: Version 1.2.5
612
613 Fixed bug in initial boundary check for Boyer-Moore text
614 search (issue 349).
615
616 Fixed compilation issues with MinGW and gcc 4.3+ and added support
617 for armv7 and cortex-a8 architectures. Patches by Lei Zhang and
618 Craig Schlenter.
619
620 Added a script cache to the debugger.
621
622 Optimized compilation performance by improving internal data
623 structures and avoiding expensive property load optimizations for
624 code that's infrequently executed.
625
626 Exposed the calling JavaScript context through the static API
627 function Context::GetCalling().
628
629
6302009-05-18: Version 1.2.4
631
632 Improved performance of floating point number allocation for ARM
633 platforms.
634
635 Fixed crash when using the instanceof operator on functions with
636 number values in their prototype chain (issue 341).
637
638 Optimized virtual frame operations in the code generator to speed
639 up compilation time and allocated the frames in the zone.
640
641 Made the representation of virtual frames and jump targets in the
642 code generator much more compact.
643
644 Avoided linear search for non-locals in scope code when resolving
645 variables inside with and eval scopes.
646
647 Optimized lexical scanner by dealing with whitespace as part of
648 the token scanning instead of as a separate step before it.
649
650 Changed the scavenging collector so that promoted objects do not
651 reside in the old generation while their remembered set is being
652 swept for pointers into the young generation.
653
654 Fixed numeric overflow handling when compiling count operations.
655
656
6572009-05-11: Version 1.2.3
658
659 Fixed bug in reporting of out-of-memory situations.
660
661 Introduced hidden prototypes on certain builtin prototype objects
662 such as String.prototype to emulate JSC's behavior of restoring
663 the original function when deleting functions from those prototype
664 objects.
665
666 Fixed crash bug in the register allocator.
667
668
6692009-05-04: Version 1.2.2
670
671 Fixed bug in array sorting for sparse arrays (issue 326).
672
673 Added support for adding a soname when building a shared library
674 on Linux (issue 151).
675
676 Fixed bug caused by morphing internal ASCII strings to external
677 two-byte strings. Slices over ASCII strings have to forward ASCII
678 checks to the underlying buffer string.
679
680 Allowed API call-as-function handlers to be called as
681 constructors.
682
683 Fixed a crash bug where an external string was disposed but a
684 slice of the external string survived as a symbol.
685
686
6872009-04-27: Version 1.2.1
688
689 Added EcmaScript 5 JSON object.
690
691 Fix bug in preemption support on ARM.
692
693
6942009-04-23: Version 1.2.0
695
696 Optimized floating-point operations on ARM.
697
698 Added a number of extensions to the debugger API.
699
700 Changed the enumeration order for unsigned integer keys to always
701 be numerical order.
702
703 Added a "read" extension to the shell sample.
704
705 Added support for Array.prototype.reduce and
706 Array.prototype.reduceRight.
707
708 Added an option to the SCons build to control Microsoft Visual C++
709 link-time code generation.
710
711 Fixed a number of bugs (in particular issue 315, issue 316,
712 issue 317 and issue 318).
713
714
7152009-04-15: Version 1.1.10
716
717 Fixed crash bug that occurred when loading a const variable in the
718 presence of eval.
719
720 Allowed using with and eval in registered extensions in debug mode
721 by fixing bogus assert.
722
723 Fixed the source position for function returns to enable the
724 debugger to break there.
725
726
7272009-04-14: Version 1.1.9
728
729 Made the stack traversal code in the profiler robust by avoiding
730 to look into the heap.
731
732 Added name inferencing for anonymous functions to facilitate
733 debugging and profiling.
734
735 Re-enabled stats timers in the developer shell (d8).
736
737 Fixed issue 303 by avoiding to shortcut cons-symbols.
738
739
7402009-04-11: Version 1.1.8
741
742 Changed test-debug/ThreadedDebugging to be non-flaky (issue 96).
743
744 Fixed step-in handling for Function.prototype.apply and call in
745 the debugger (issue 269).
746
747 Fixed v8::Object::DeleteHiddenValue to not bail out when there
748 are no hidden properties.
749
750 Added workaround for crash bug, where external symbol table
751 entries with deleted resources would lead to NPEs when looking
752 up in the symbol table.
753
754
7552009-04-07: Version 1.1.7
756
757 Added support for easily importing additional environment
758 variables into the SCons build.
759
760 Optimized strict equality checks.
761
762 Fixed crash in indexed setters on objects without a corresponding
763 getter (issue 298).
764
765 Re-enabled script compilation cache.
766
767
7682009-04-01: Version 1.1.6
769
770 Reverted an unsafe code generator change.
771
772
7732009-04-01: Version 1.1.5
774
775 Fixed bug that caused function literals to not be optimized as
776 much as other functions.
777
778 Improved profiler support.
779
780 Fixed a crash bug in connection with debugger unloading.
781
782 Fixed a crash bug in the code generator caused by losing the
783 information that a frame element was copied.
784
785 Fixed an exception propagation bug that could cause non-null
786 return values when exceptions were thrown.
787
788
7892009-03-30: Version 1.1.4
790
791 Optimized String.prototype.match.
792
793 Improved the stack information in profiles.
794
795 Fixed bug in ARM port making it possible to compile the runtime
796 system for thumb mode again.
797
798 Implemented a number of optimizations in the code generator.
799
800 Fixed a number of memory leaks in tests.
801
802 Fixed crash bug in connection with script source code and external
803 strings.
804
805
8062009-03-24: Version 1.1.3
807
808 Fixed assertion failures in compilation of loop conditions.
809
810 Removed STL dependency from developer shell (d8).
811
812 Added infrastructure for protecting the V8 heap from corruption
813 caused by memory modifications from the outside.
814
815
8162009-03-24: Version 1.1.2
817
818 Improved frame merge code generated by the code generator.
819
820 Optimized String.prototype.replace.
821
822 Implemented __defineGetter__ and __defineSetter__ for properties
823 with integer keys on non-array objects.
824
825 Improved debugger and profiler support.
826
827 Fixed a number of portability issues to allow compilation for
828 smaller ARM devices.
829
830 Exposed object cloning through the API.
831
832 Implemented hidden properties. This is used to expose an identity
833 hash for objects through the API.
834
835 Implemented restarting of regular expressions if their input
836 string changes representation during preemption.
837
838 Fixed a code generator bug that could cause assignments in loops
839 to be ignored if using continue to break out of the loop (issue
840 284).
841
842
8432009-03-12: Version 1.1.1
844
845 Fixed an assertion in the new compiler to take stack overflow
846 exceptions into account.
847
848 Removed exception propagation code that could cause crashes.
849
850 Fixed minor bug in debugger line number computations.
851
852 8-byte align the C stack on Linux and Windows to speed up floating
853 point computations.
854
855
8562009-03-12: Version 1.1.0
857
858 Improved code generation infrastructure by doing simple register
859 allocation and constant folding and propagation.
860
861 Optimized regular expression matching by avoiding to create
862 intermediate string arrays and by flattening nested array
863 representations of RegExp data.
864
865 Traverse a few stack frames when recording profiler samples to
866 include partial call graphs in the profiling output.
867
868 Added support for using OProfile to profile generated code.
869
870 Added remote debugging support to the D8 developer shell.
871
872 Optimized creation of nested literals like JSON objects.
873
874 Fixed a bug in garbage collecting unused maps and turned it on by
875 default (--collect-maps).
876
877 Added support for running tests under Valgrind.
878
879
8802009-02-27: Version 1.0.3
881
882 Optimized double-to-integer conversions in bit operations by using
883 SSE3 instructions if available.
884
885 Optimized initialization sequences that store to multiple
886 properties of the same object.
887
888 Changed the D8 debugger frontend to use JSON messages.
889
890 Force garbage collections when disposing contexts.
891
892 Align code objects at 32-byte boundaries.
893
894
8952009-02-25: Version 1.0.2
896
897 Improved profiling support by performing simple call stack
898 sampling for ticks and by fixing a bug in the logging of code
899 addresses.
900
901 Fixed a number of debugger issues.
902
903 Optimized code that uses eval.
904
905 Fixed a couple of bugs in the regular expression engine.
906
907 Reduced the size of generated code for certain regular expressions.
908
909 Removed JSCRE completely.
910
911 Fixed issue where test could not be run if there was a dot in the
912 checkout path.
913
914
9152009-02-13: Version 1.0.1
916
917 Fixed two crash-bugs in irregexp (issue 231 and 233).
918
919 Fixed a number of minor bugs (issue 87, 227 and 228).
920
921 Added support for morphing strings to external strings on demand
922 to avoid having to create copies in the embedding code.
923
924 Removed experimental support for external symbol callbacks.
925
926
9272009-02-09: Version 1.0.0
928
929 Fixed crash-bug in the code generation for case independent 16 bit
930 backreferences.
931
932 Made shells more robust in the presence of string conversion
933 failures (issue 224).
934
935 Fixed a potential infinite loop when attempting to resolve
936 eval (issue 221).
937
938 Miscellaneous fixes to the new regular expression engine.
939
940 Reduced binary by stripping unneeded text from JavaScript library and
941 minifying some JavaScript files.
942
943
9442009-01-27: Version 0.4.9
945
946 Enabled new regular expression engine.
947
948 Made a number of changes to the debugger protocol.
949
950 Fixed a number of bugs in the preemption support.
951
952 Added -p option to the developer shell to run files in parallel
953 using preemption.
954
955 Fixed a number of minor bugs (including issues 176, 187, 189, 192,
956 193, 198 and 201).
957
958 Fixed a number of bugs in the serialization/deserialization
959 support for the ARM platform.
960
961
9622009-01-19: Version 0.4.8.1
963
964 Minor patch to debugger support.
965
966
9672009-01-16: Version 0.4.8
968
969 Fixed string length bug on ARM (issue 171).
970
971 Made most methods in the API const.
972
973 Optimized object literals by improving data locality.
974
975 Fixed bug that caused incomplete functions to be cached in case of
976 stack overflow exceptions.
977
978 Fixed bugs that caused catch variables and variables introduced by
979 eval to behave incorrectly when using accessors (issues 186, 190
980 and 191).
981
982
9832009-01-06: Version 0.4.7
984
985 Minor bugfixes and optimizations.
986
987 Added command line debugger to D8 shell.
988
989 Fixed subtle bug that caused the wrong 'this' to be used when
990 calling a caught function in a catch clause.
991
992 Inline array loads within loops directly in the code instead of
993 always calling a stub.
994
995
9962008-12-11: Version 0.4.6
997
998 Fixed exception reporting bug where certain exceptions were
999 incorrectly reported as uncaught.
1000
1001 Improved the memory allocation strategy used during compilation to
1002 make running out of memory when compiling huge scripts less
1003 likely.
1004
1005 Optimized String.replace by avoiding the construction of certain
1006 sub strings.
1007
1008 Fixed bug in code generation for large switch statements on ARM.
1009
1010 Fixed bug that caused V8 to change the global object template
1011 passed in by the user.
1012
1013 Changed the API for creating object groups used during garbage
1014 collection. Entire object groups are now passed to V8 instead of
1015 individual members of the groups.
1016
1017
10182008-12-03: Version 0.4.5
1019
1020 Added experimental API support for allocating V8 symbols as
1021 external strings.
1022
1023 Fixed bugs in debugging support on ARM.
1024
1025 Changed eval implementation to correctly detect whether or not a
1026 call to eval is aliased.
1027
1028 Fixed bug caused by a combination of the compilation cache and
1029 dictionary probing in native code. The bug caused us to sometimes
1030 call functions that had not yet been compiled.
1031
1032 Added platform support for FreeBSD.
1033
1034 Added support for building V8 on Windows with either the shared or
1035 static version of MSVCRT
1036
1037 Added the v8::jscre namespace around the jscre functions to avoid
1038 link errors (duplicate symbols) when building Google Chrome.
1039
1040 Added support for calling a JavaScript function with the current
1041 debugger execution context as its argument to the debugger
1042 interface.
1043
1044 Changed the type of names of counters from wchar_t to char.
1045
1046 Changed the Windows system call used to compute daylight savings
1047 time. The system call that we used to use became four times
1048 slower on WinXP SP3.
1049
1050 Added support in the d8 developer shell for memory-mapped counters
1051 and added a stats-viewer tool.
1052
1053 Fixed bug in upper/lower case mappings (issue 149).
1054
1055
10562008-11-17: Version 0.4.4
1057
1058 Reduced code size by using shorter instruction encoding when
1059 possible.
1060
1061 Added a --help option to the shell sample and to the d8 shell.
1062
1063 Added visual studio project files for building the ARM simulator.
1064
1065 Fixed a number of ARM simulator issues.
1066
1067 Fixed bug in out-of-memory handling on ARM.
1068
1069 Implemented shell support for passing arguments to a script from
1070 the command line.
1071
1072 Fixed bug in date code that made certain date functions return -0
1073 instead of 0 for dates before the epoch.
1074
1075 Restricted applications of eval so it can only be used in the
1076 context of the associated global object.
1077
1078 Treat byte-order marks as whitespace characters.
1079
1080
10812008-11-04: Version 0.4.3
1082
1083 Added support for API accessors that prohibit overwriting by
1084 accessors defined in JavaScript code by using __defineGetter__ and
1085 __defineSetter__.
1086
1087 Improved handling of conditionals in test status files.
1088
1089 Introduced access control in propertyIsEnumerable.
1090
1091 Improved performance of some string operations by caching
1092 information about the type of the string between operations.
1093
1094 Fixed bug in fast-case code for switch statements that only have
1095 integer labels.
1096
1097
10982008-10-30: Version 0.4.2
1099
1100 Improved performance of Array.prototype.concat by moving the
1101 implementation to C++ (issue 123).
1102
1103 Fixed heap growth policy to avoid growing old space to its maximum
1104 capacity before doing a garbage collection and fixed issue that
1105 would lead to artificial out of memory situations (issue 129).
1106
1107 Fixed Date.prototype.toLocaleDateString to return the date in the
1108 same format as WebKit.
1109
1110 Added missing initialization checks to debugger API.
1111
1112 Added removing of unused maps during GC.
1113
1114
11152008-10-28: Version 0.4.1
1116
1117 Added caching of RegExp data in compilation cache.
1118
1119 Added Visual Studio project file for d8 shell.
1120
1121 Fixed function call performance regression introduced in version
1122 0.4.0 when splitting the global object in two parts (issue 120).
1123
1124 Fixed issue 131 by checking for empty handles before throwing and
1125 reporting exceptions.
1126
1127
11282008-10-23: Version 0.4.0
1129
1130 Split the global object into two parts: The state holding global
1131 object and the global object proxy.
1132
1133 Fixed bug that affected the value of an assignment to an element
1134 in certain cases (issue 116).
1135
1136 Added GetPropertyNames functionality (issue 33) and extra Date
1137 functions (issue 77) to the API.
1138
1139 Changed WeakReferenceCallback to take a Persistent<Value> instead
1140 of a Persistent<Object> (issue 101).
1141
1142 Fixed issues with message reporting for exceptions in try-finally
1143 blocks (issues 73 and 75).
1144
1145 Optimized flattening of strings and string equality checking.
1146
1147 Improved Boyer-Moore implementation for faster indexOf operations.
1148
1149 Added development shell (d8) which includes counters and
1150 completion support.
1151
1152 Fixed problem with the receiver passed to functions called from
1153 eval (issue 124).
1154
1155
11562008-10-16: Version 0.3.5
1157
1158 Improved string hash-code distribution by excluding bit-field bits
1159 from the hash-code.
1160
1161 Changed string search algorithm used in indexOf from KMP to
1162 Boyer-Moore.
1163
1164 Improved the generated code for the instanceof operator.
1165
1166 Improved performance of slow-case string equality checks by
1167 specializing the code based on the string representation.
1168
1169 Improve the handling of out-of-memory situations (issue 70).
1170
1171 Improved performance of strict equality checks.
1172
1173 Improved profiler output to make it easier to see anonymous
1174 functions.
1175
1176 Improved performance of slow-case keyed loads.
1177
1178 Improved property access performance by allocating a number of
1179 properties in the front object.
1180
1181 Changed the toString behavior on the built-in object constructors
1182 to print [native code] instead of the actual source. Some web
1183 applications do not like constructors with complex toString
1184 results.
1185
1186
11872008-10-06: Version 0.3.4
1188
1189 Changed Array.prototype.sort to use quick sort.
1190
1191 Fixed code generation issue where leaving a finally block with
1192 break or continue would accumulate elements on the expression
1193 stack (issue 86).
1194
1195 Made sure that the name accessor on functions returns the expected
1196 names for builtin JavaScript functions and C++ callback functions.
1197
1198 Added fast case code for extending the property storage array of
1199 JavaScript objects.
1200
1201 Ported switch statement optimizations introduced in version 0.3.3
1202 to the ARM code generator.
1203
1204 Allowed GCC to use strict-aliasing rules when compiling.
1205
1206 Improved performance of arguments object allocation by taking care
1207 of arguments adaptor frames in the generated code.
1208
1209 Updated the V8 benchmark suite to version 2.
1210
1211
12122008-09-25: Version 0.3.3
1213
1214 Improved handling of relocation information to enable more
1215 peep-hole optimizations.
1216
1217 Optimized switch statements where all labels are constant small
1218 integers.
1219
1220 Optimized String.prototype.indexOf for common cases.
1221
1222 Fixed more build issues (issue 80).
1223
1224 Fixed a couple of profiler issues.
1225
1226 Fixed bug where the body of a function created using the Function
1227 constructor was not allowed to end with a single-line comment
1228 (issue 85).
1229
1230 Improved handling of object literals by canonicalizing object
1231 literal maps. This will allow JSON objects with the same set of
1232 properties to share the same map making inline caching work better
1233 for JSON objects.
1234
1235
12362008-09-17: Version 0.3.2
1237
1238 Generalized the EvalCache into a CompilationCache and enabled it
1239 for scripts too. The current strategy is to retire all entries
1240 whenever a mark-sweep collection is started.
1241
1242 Fixed bug where switch statements containing only a default case
1243 would lead to an unbalanced stack (issue 69).
1244
1245 Fixed bug that made access to the function in a named function
1246 expression impossible in certain situations (issue 24).
1247
1248 Fixed even more build issues.
1249
1250 Optimized calling conventions on ARM. The conventions on ARM and
1251 IA-32 now match.
1252
1253 Removed static initializers for flags and counters.
1254
1255 Improved inline caching behavior for uncommon cases where lazily
1256 loading Date and RegExp code could force certain code paths go
1257 megamorphic.
1258
1259 Removed arguments adaption for builtins written in C++. This
1260 makes Array.prototype.push and Array.prototype.pop slightly
1261 faster.
1262
1263
12642008-09-11: Version 0.3.1
1265
1266 Fixed a number of build issues.
1267
1268 Fixed problem with missing I-cache flusing on ARM.
1269
1270 Changed space layout in memory management by splitting up
1271 code space into old data space and code space.
1272
1273 Added utf-8 conversion support to the API (issue 57).
1274
1275 Optimized repeated calls to eval with the same strings. These
1276 repeated calls are common in web applications.
1277
1278 Added Xcode project file.
1279
1280 Optimized a couple of Array operation.
1281
1282 Fixed parser bug by checking for end-of-string when parsing break
1283 and continue (issue 35).
1284
1285 Fixed problem where asian characters were not categorized as
1286 letters.
1287
1288 Fixed bug that disallowed calling functions fetched from an array
1289 using a string as an array index (issue 32).
1290
1291 Fixed bug where the internal field count on object templates were
1292 sometimes ignored (issue 54).
1293
1294 Added -f option to the shell sample for compatibility with other
1295 engines (issue 18).
1296
1297 Added source info to TryCatches in the API.
1298
1299 Fixed problem where the seed for the random number generator was
1300 clipped in a double to unsigned int conversion.
1301
1302 Fixed bug where cons string symbols were sometimes converted to
1303 non-symbol flat strings during GC.
1304
1305 Fixed bug in error reporting when attempting to convert null to an
1306 object.
1307
1308
13092008-09-04: Version 0.3.0
1310
1311 Added support for running tests on the ARM simulator.
1312
1313 Fixed bug in the 'in' operator where negative indices were not
1314 treated correctly.
1315
1316 Fixed build issues on gcc-4.3.1.
1317
1318 Changed Date.prototype.toLocaleTimeString to not print the
1319 timezone part of the time.
1320
1321 Renamed debug.h to v8-debug.h to reduce the risk of name conflicts
1322 with user code.
1323
1324
13252008-09-02: Version 0.2.5
1326
1327 Renamed the top level directory 'public' to 'include'.
1328
1329 Added 'env' option to the SCons build scripts to support
1330 overriding the ENV part of the build environment. This is mostly
1331 to support Windows builds in cases where SCons cannot find the
1332 correct paths to the Windows SDK, as these paths cannot be passed
1333 through shell environment variables.
1334
1335 Enabled "Buffer Security Check" on for the Windows SCons build and
1336 added the linker option /OPT:ICF as an optimization.
1337
1338 Added the V8 benchmark suite to the repository.
1339
1340
13412008-09-01: Version 0.2.4
1342
1343 Included mjsunit JavaScript test suite and C++ unit tests.
1344
1345 Changed the shell sample to not print the result of executing a
1346 script provided on the command line.
1347
1348 Fixed issue when building samples on Windows using a shared V8
1349 library. Added visibility option on Linux build which makes the
1350 generated library 18% smaller.
1351
1352 Changed build system to accept multiple build modes in one build
1353 and generate separate objects, libraries and executables for each
1354 mode.
1355
1356 Removed deferred negation optimization (a * -b => -(a * b)) since
1357 this visibly changes operand conversion order.
1358
1359 Improved parsing performance by introducing stack guard in
1360 preparsing. Without a stack guard preparsing always bails out
1361 with stack overflow.
1362
1363 Changed shell sample to take flags directly from the command-line.
1364 Added API call that implements this.
1365
1366 Added load, quit and version functions to the shell sample so it's
1367 easier to run benchmarks and tests.
1368
1369 Fixed issue with building samples and cctests on 64-bit machines.
1370
1371 Fixed bug in the runtime system where the prototype chain was not
1372 always searched for a setter when setting a property that does not
1373 exist locally.
1374
1375
13762008-08-14: Version 0.2.3
1377
1378 Improved performance of garbage collection by moving the
1379 function that updates pointers during compacting collection
1380 into the updating visitor. This gives the compiler a better
1381 chance to inline and avoid a function call per (potential)
1382 pointer.
1383
1384 Extended the shell sample with a --runtime-flags option.
1385
1386 Added Visual Studio project files for the shell.cc and
1387 process.cc samples.
1388
1389
13902008-08-13: Version 0.2.2
1391
1392 Improved performance of garbage collection by changing the way
1393 we use the marking stack in the event of stack overflow during
1394 full garbage collection and by changing the way we mark roots.
1395
1396 Cleaned up ARM version by removing top of stack caching and by
1397 introducing push/pop elimination.
1398
1399 Cleaned up the way runtime functions are called to allow
1400 runtime calls with no arguments.
1401
1402 Changed Windows build options to make sure that exceptions are
1403 disabled and that optimization flags are enabled.
1404
1405 Added first version of Visual Studio project files.
1406
1407
14082008-08-06: Version 0.2.1
1409
1410 Improved performance of unary addition by avoiding runtime calls.
1411
1412 Fixed the handling of '>' and '<=' to use right-to-left conversion
1413 and left-to-right evaluation as specified by ECMA-262.
1414
1415 Fixed a branch elimination bug on the ARM platform where incorrect
1416 code was generated because of overly aggressive branch
1417 elimination.
1418
1419 Improved performance of code that repeatedly assigns the same
1420 function to the same property of different objects with the same
1421 map.
1422
1423 Untangled DEBUG and ENABLE_DISASSEMBLER defines. The disassembler
1424 no longer expects DEBUG to be defined.
1425
1426 Added platform-nullos.cc to serve as the basis for new platform
1427 implementations.
1428
1429
14302008-07-30: Version 0.2.0
1431
1432 Changed all text files to have native svn:eol-style.
1433
1434 Added a few samples and support for building them. The samples
1435 include a simple shell that can be used to benchmark and test V8.
1436
1437 Changed V8::GetVersion to return the version as a string.
1438
1439 Added source for lazily loaded scripts to snapshots and made
1440 serialization non-destructive.
1441
1442 Improved ARM support by fixing the write barrier code to use
1443 aligned loads and stores and by removing premature locals
1444 optimization that relied on broken support for callee-saved
1445 registers (removed).
1446
1447 Refactored the code for marking live objects during garbage
1448 collection and the code for allocating objects in paged
1449 spaces. Introduced an abstraction for the map word of a heap-
1450 allocated object and changed the memory allocator to allocate
1451 executable memory only for spaces that may contain code objects.
1452
1453 Moved StringBuilder to utils.h and ScopedLock to platform.h, where
1454 they can be used by debugging and logging modules. Added
1455 thread-safe message queues for dealing with debugger events.
1456
1457 Fixed the source code reported by toString for certain builtin
1458 empty functions and made sure that the prototype property of a
1459 function is enumerable.
1460
1461 Improved performance of converting values to condition flags in
1462 generated code.
1463
1464 Merged disassembler-{arch} files.
1465
1466
14672008-07-28: Version 0.1.4
1468
1469 Added support for storing JavaScript stack traces in a stack
1470 allocated buffer to make it visible in shallow core dumps.
1471 Controlled by the --preallocate-message-memory flag which is
1472 disabled by default.
1473
1474
14752008-07-25: Version 0.1.3
1476
1477 Fixed bug in JSObject::GetPropertyAttributePostInterceptor where
1478 map transitions would count as properties.
1479
1480 Allowed aliased eval invocations by treating them as evals in the
1481 global context. This may change in the future.
1482
1483 Added support for accessing the last entered context through the
1484 API and renamed Context::Current to Context::GetCurrent and
1485 Context::GetSecurityContext to Context::GetCurrentSecurityContext.
1486
1487 Fixed bug in the debugger that would cause the debugger scripts to
1488 be recursively loaded and changed all disabling of interrupts to
1489 be block-structured.
1490
1491 Made snapshot data read-only to allow it to be more easily shared
1492 across multiple users of V8 when linked as a shared library.
1493
1494
14952008-07-16: Version 0.1.2
1496
1497 Fixed building on Mac OS X by recognizing i386 and friends as
1498 IA-32 platforms.
1499
1500 Added propagation of stack overflow exceptions that occur while
1501 compiling nested functions.
1502
1503 Improved debugger with support for recursive break points and
1504 handling of exceptions that occur in the debugger JavaScript code.
1505
1506 Renamed GetInternal to GetInternalField and SetInternal to
1507 SetInternalField in the API and moved InternalFieldCount and
1508 SetInternalFieldCount from FunctionTemplate to ObjectTemplate.
1509
1510
15112008-07-09: Version 0.1.1
1512
1513 Fixed bug in stack overflow check code for IA-32 targets where a
1514 non-tagged value in register eax was pushed to the stack.
1515
1516 Fixed potential quadratic behavior when converting strings to
1517 numbers.
1518
1519 Fixed bug where the return value from Object::SetProperty could
1520 end up being the property holder instead of the written value.
1521
1522 Improved debugger support by allowing nested break points and by
1523 dealing with stack-overflows when compiling functions before
1524 setting break points in them.
1525
1526
15272008-07-03: Version 0.1.0
1528
1529 Initial export.
1530