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