blob: 009296cb44fdeb1af1f4234114e3336430a87f70 [file] [log] [blame]
ager@chromium.org4af710e2009-09-15 12:20:11 +000012009-09-15: Version 1.3.11
2
3 Fixed crash in error reporting during bootstrapping.
4
5 Optimized generated IA32 math code by using SSE2 instructions when
6 available.
7
8 Implemented missing pieces of debugger infrastructure on ARM. The
9 debugger is now fully functional on ARM.
10
11 Make 'hidden' the default visibility for gcc.
12
13
ager@chromium.orga1645e22009-09-09 19:27:10 +0000142009-09-09: Version 1.3.10
15
16 Fixed profiler on Mac in 64-bit mode.
17
18 Optimized creation of objects from simple constructor functions on
19 ARM.
20
21 Fixed a number of debugger issues.
22
23 Reduced the amount of memory consumed by V8.
24
25
ager@chromium.org18ad94b2009-09-02 08:22:29 +0000262009-09-02: Version 1.3.9
27
28 Optimized stack guard checks on ARM.
29
30 Optimized API operations by inlining more in the API.
31
32 Optimized creation of objects from simple constructor functions.
33
34 Enabled a number of missing optimizations in the 64-bit port.
35
36 Implemented native-code support for regular expressions on ARM.
37
38 Stopped using the 'sahf' instruction on 64-bit machines that do
39 not support it.
40
41 Fixed a bug in the support for forceful termination of JavaScript
42 execution.
43
44
ager@chromium.org96c75b52009-08-26 09:13:16 +0000452009-08-26: Version 1.3.8
46
47 Changed the handling of idle notifications to allow idle
48 notifications when V8 has not yet been initialized.
49
50 Fixed ARM simulator compilation problem on Windows.
51
52
ager@chromium.orgab99eea2009-08-25 07:05:41 +0000532009-08-25: Version 1.3.7
54
55 Reduced the size of generated code on ARM platforms by reducing
56 the size of constant pools.
57
58 Changed build files to not include the 'ENV' user environment
59 variable in the build environment.
60
61 Changed the handling of idle notifications.
62
63
sgjesse@chromium.orgc81c8942009-08-21 10:54:26 +0000642009-08-21: Version 1.3.6
65
66 Add support for forceful termination of JavaScript execution.
67
68 Add low memory notification to the API. The embedding host can signal
69 a low memory situation to V8.
70
71 Changed the handling of global handles (persistent handles in the API
72 sense) to avoid issues regarding allocation of new global handles
73 during weak handle callbacks.
74
75 Changed the growth policy of the young space.
76
77 Fixed a GC issue introduced in version 1.3.5.
78
79
sgjesse@chromium.org911335c2009-08-19 12:59:44 +0000802009-08-19: Version 1.3.5
81
82 Optimize initialization of some arrays in the builtins.
83
84 Fix mac-nm script to support filenames with spaces.
85
86 Support for using the V8 profiler when V8 is embedded in a Windows DLL.
87
88 Changed typeof RegExp from 'object' to 'function' for compatibility.
89 Fixed bug where regexps were not callable across contexts.
90
91 Added context independent script compilation to the API.
92
93 Added API call to get the stack trace for an exception.
94
95 Added API for getting object mirrors.
96
97 Make sure that SSE3 instructions are used whenever possible even when
98 running off a snapshot generated without using SSE3 instructions.
99
100 Tweaked the handling of the initial size and growth policy of the heap.
101
102 Added native code generation for RegExp to 64-bit version.
103
104 Added JavaScript debugger support to 64-bit version.
105
106
ager@chromium.orgadd848f2009-08-13 12:44:13 +00001072009-08-13: Version 1.3.4
108
109 Added a readline() command to the d8 shell.
110
111 Fixed bug in json parsing.
112
113 Added idle notification to the API and reduced memory on idle
114 notifications.
115
116
christian.plesner.hansen@gmail.com5a6af922009-08-12 14:20:51 +00001172009-08-12: Version 1.3.3
118
119 Fix issue 417: incorrect %t placeholder expansion.
120
121 Add .gitignore file similar to Chromium's one.
122
123 Fix SConstruct file to build with new logging code for Android.
124
125 API: added function to find instance of template in prototype
126 chain. Inlined Object::IsInstanceOf.
127
128 Land change to notify valgrind when we modify code on x86.
129
130 Add api call to determine whether a string can be externalized.
131
132 Add a write() command to d8.
133
134
sgjesse@chromium.orgb9d7da12009-08-05 08:38:10 +00001352009-08-05: Version 1.3.2
136
137 Started new compiler infrastructure for two-pass compilation using a
138 control flow graph constructed from the AST.
139
140 Profiler stack sampling for X64.
141
142 Safe handling of NaN to Posix platform-dependent time functions.
143
144 Added a new profiler control API to unify controlling various aspects
145 of profiling.
146
147 Fixed issue 392.
148
149
sgjesse@chromium.org0b6db592009-07-30 14:48:31 +00001502009-07-30: Version 1.3.1
151
152 Speed improvements to accessors and interceptors.
153
154 Added support for capturing stack information on custom errors.
155
156 Added support for morphing an object into a pixel array where its
157 indexed properties are stored in an external byte array. Values written
158 are always clamped to the 0..255 interval.
159
160 Profiler on x64 now handles C/C++ functions from shared libraries.
161
162 Changed the debugger to avoid stepping into function.call/apply if the
163 function is a built-in.
164
165 Initial implementation of constructor heap profile for JS objects.
166
167 More fine grained control of profiling aspects through the API.
168
169 Optimized the called as constructor check for API calls.
170
171
kasperl@chromium.orge959c182009-07-27 08:59:04 +00001722009-07-27: Version 1.3.0
173
174 Allowed RegExp objects to be called as functions (issue 132).
175
176 Fixed issue where global property cells would escape after
177 detaching the global object; see http://crbug.com/16276.
178
179 Added support for stepping into setters and getters in the
180 debugger.
181
182 Changed the debugger to avoid stopping in its own JavaScript code
183 and in the code of built-in functions.
184
185 Fixed issue 345 by avoiding duplicate escaping labels.
186
187 Fixed ARM code generator crash in short-circuited boolean
188 expressions and added regression tests.
189
190 Added an external allocation limit to avoid issues where small V8
191 objects would hold on to large amounts of external memory without
192 causing garbage collections.
193
194 Finished more of the inline caching stubs for x64 targets.
195
196
kasperl@chromium.orgdefbd102009-07-13 14:04:26 +00001972009-07-13: Version 1.2.14
198
199 Added separate paged heap space for global property cells and
200 avoid updating the write barrier when storing into them.
201
202 Improved peep-hole optimization on ARM platforms by not emitting
203 unnecessary debug information.
204
205 Re-enabled ICs for loads and calls that skip a global object
206 during lookup through the prototype chain.
207
208 Allowed access through global proxies to use ICs.
209
210 Fixed issue 401.
211
212
kasperl@chromium.org68ac0092009-07-09 06:00:35 +00002132009-07-09: Version 1.2.13
214
215 Fixed issue 397, issue 398, and issue 399.
216
217 Added support for breakpoint groups.
218
219 Fixed bugs introduced with the new global object representation.
220
221 Fixed a few bugs in the ARM code generator.
222
223
kasperl@chromium.org86f77b72009-07-06 08:21:57 +00002242009-07-06: Version 1.2.12
225
226 Added stack traces collection to Error objects accessible through
227 the e.stack property.
228
229 Changed RegExp parser to use a recursive data structure instead of
230 stack-based recursion.
231
232 Optimized Date object construction and string concatenation.
233
234 Improved performance of div, mod, and mul on ARM platforms.
235
236
kasperl@chromium.org2abc4502009-07-02 07:00:29 +00002372009-07-02: Version 1.2.11
238
239 Improved performance on IA-32 and ARM.
240
241 Fixed profiler sampler implementation on Mac OS X.
242
243 Changed the representation of global objects to improve
244 performance of adding a lot of new properties.
245
246
ager@chromium.org3e875802009-06-29 08:26:34 +00002472009-06-29: Version 1.2.10
248
249 Improved debugger support.
250
251 Fixed bug in exception message reporting (issue 390).
252
253 Improved overall performance.
254
255
ager@chromium.org5aa501c2009-06-23 07:57:28 +00002562009-06-23: Version 1.2.9
257
258 Improved math performance on ARM.
259
260 Fixed profiler name-inference bug.
261
262 Fixed handling of shared libraries in the profiler tick processor
263 scripts.
264
265 Fixed handling of tests that time out in the test scripts.
266
267 Fixed compilation on MacOS X version 10.4.
268
269 Fixed two bugs in the regular expression engine.
270
271 Fixed a bug in the string type inference.
272
273 Fixed a bug in the handling of 'constant function' properties.
274
275 Improved overall performance.
276
277
ager@chromium.orgeadaf222009-06-16 09:43:10 +00002782009-06-16: Version 1.2.8
279
280 Optimized math on ARM platforms.
281
282 Fixed two crash bugs in the handling of getters and setters.
283
284 Improved the debugger support by adding scope chain information.
285
286 Improved the profiler support by compressing log data transmitted
287 to clients.
288
289 Improved overall performance.
290
291
ager@chromium.orge2902be2009-06-08 12:21:35 +00002922009-06-08: Version 1.2.7
293
294 Improved debugger and profiler support.
295
296 Reduced compilation time by improving the handling of deferred
297 code.
298
299 Optimized interceptor accesses where the property is on the object
300 on which the interceptors is attached.
301
302 Fixed compilation problem on GCC 4.4 by changing the stack
303 alignment to 16 bytes.
304
305 Fixed handle creation to follow stric aliasing rules.
306
307 Fixed compilation on FreeBSD.
308
309 Introduced API for forcing the deletion of a property ignoring
310 interceptors and attributes.
311
312
sgjesse@chromium.org755c5b12009-05-29 11:04:38 +00003132009-05-29: Version 1.2.6
314
315 Added a histogram recording hit rates at different levels of the
316 compilation cache.
317
318 Added stack overflow check for the RegExp analysis phase. Previously a
319 very long regexp graph could overflow the stack with recursive calls.
320
321 Use a dynamic buffer when collecting log events in memory.
322
323 Added start/stop events to the profiler log.
324
325 Fixed infinite loop which could happen when setting a debug break while
326 executing a RegExp compiled to native code.
327
328 Fixed handling of lastIndexOf called with negative index (issue 351).
329
330 Fixed irregular crash in profiler test (issue 358).
331
332 Fixed compilation issues with some versions of gcc.
333
334
kasperl@chromium.org71affb52009-05-26 05:44:31 +00003352009-05-26: Version 1.2.5
336
337 Fixed bug in initial boundary check for Boyer-Moore text
338 search (issue 349).
339
340 Fixed compilation issues with MinGW and gcc 4.3+ and added support
341 for armv7 and cortex-a8 architectures. Patches by Lei Zhang and
342 Craig Schlenter.
343
344 Added a script cache to the debugger.
345
346 Optimized compilation performance by improving internal data
347 structures and avoiding expensive property load optimizations for
348 code that's infrequently executed.
349
350 Exposed the calling JavaScript context through the static API
351 function Context::GetCalling().
352
353
kasperl@chromium.orgb3284ad2009-05-18 06:12:45 +00003542009-05-18: Version 1.2.4
355
356 Improved performance of floating point number allocation for ARM
357 platforms.
358
359 Fixed crash when using the instanceof operator on functions with
360 number values in their prototype chain (issue 341).
361
362 Optimized virtual frame operations in the code generator to speed
363 up compilation time and allocated the frames in the zone.
364
365 Made the representation of virtual frames and jump targets in the
366 code generator much more compact.
367
368 Avoided linear search for non-locals in scope code when resolving
369 variables inside with and eval scopes.
370
371 Optimized lexical scanner by dealing with whitespace as part of
372 the token scanning instead of as a separate step before it.
373
374 Changed the scavenging collector so that promoted objects do not
375 reside in the old generation while their remembered set is being
376 swept for pointers into the young generation.
377
378 Fixed numeric overflow handling when compiling count operations.
379
380
ager@chromium.org9085a012009-05-11 19:22:57 +00003812009-05-11: Version 1.2.3
382
383 Fixed bug in reporting of out-of-memory situations.
384
385 Introduced hidden prototypes on certain builtin prototype objects
386 such as String.prototype to emulate JSC's behavior of restoring
387 the original function when deleting functions from those prototype
388 objects.
389
390 Fixed crash bug in the register allocator.
391
392
ager@chromium.org5ec48922009-05-05 07:25:34 +00003932009-05-04: Version 1.2.2
394
395 Fixed bug in array sorting for sparse arrays (issue 326).
396
397 Added support for adding a soname when building a shared library
398 on Linux (issue 151).
399
400 Fixed bug caused by morphing internal ASCII strings to external
401 two-byte strings. Slices over ASCII strings have to forward ASCII
402 checks to the underlying buffer string.
403
404 Allowed API call-as-function handlers to be called as
405 constructors.
406
407 Fixed a crash bug where an external string was disposed but a
408 slice of the external string survived as a symbol.
409
410
ager@chromium.org3a37e9b2009-04-27 09:26:21 +00004112009-04-27: Version 1.2.1
412
413 Added EcmaScript 5 JSON object.
414
415 Fix bug in preemption support on ARM.
416
417
ager@chromium.org65dad4b2009-04-23 08:48:43 +00004182009-04-23: Version 1.2.0
419
420 Optimized floating-point operations on ARM.
421
422 Added a number of extensions to the debugger API.
423
424 Changed the enumeration order for unsigned integer keys to always
425 be numerical order.
426
427 Added a "read" extension to the shell sample.
428
429 Added support for Array.prototype.reduce and
430 Array.prototype.reduceRight.
431
432 Added an option to the SCons build to control Microsoft Visual C++
433 link-time code generation.
434
435 Fixed a number of bugs (in particular issue 315, issue 316,
436 issue 317 and issue 318).
437
438
kasperl@chromium.org2d18d102009-04-15 13:27:32 +00004392009-04-15: Version 1.1.10
440
441 Fixed crash bug that occurred when loading a const variable in the
442 presence of eval.
443
444 Allowed using with and eval in registered extensions in debug mode
445 by fixing bogus assert.
446
447 Fixed the source position for function returns to enable the
448 debugger to break there.
449
450
kasperl@chromium.orgd1e3e722009-04-14 13:38:25 +00004512009-04-14: Version 1.1.9
452
453 Made the stack traversal code in the profiler robust by avoiding
454 to look into the heap.
455
456 Added name inferencing for anonymous functions to facilitate
457 debugging and profiling.
458
459 Re-enabled stats timers in the developer shell (d8).
460
461 Fixed issue 303 by avoiding to shortcut cons-symbols.
462
463
kasperl@chromium.orgacae3782009-04-11 09:17:08 +00004642009-04-11: Version 1.1.8
465
466 Changed test-debug/ThreadedDebugging to be non-flaky (issue 96).
467
ager@chromium.org65dad4b2009-04-23 08:48:43 +0000468 Fixed step-in handling for Function.prototype.apply and call in
kasperl@chromium.orgacae3782009-04-11 09:17:08 +0000469 the debugger (issue 269).
470
471 Fixed v8::Object::DeleteHiddenValue to not bail out when there
472 are no hidden properties.
473
ager@chromium.org65dad4b2009-04-23 08:48:43 +0000474 Added workaround for crash bug, where external symbol table
kasperl@chromium.orgacae3782009-04-11 09:17:08 +0000475 entries with deleted resources would lead to NPEs when looking
476 up in the symbol table.
477
478
kasperl@chromium.org8ccb0be2009-04-07 07:21:39 +00004792009-04-07: Version 1.1.7
480
481 Added support for easily importing additional environment
482 variables into the SCons build.
483
484 Optimized strict equality checks.
485
486 Fixed crash in indexed setters on objects without a corresponding
487 getter (issue 298).
488
489 Re-enabled script compilation cache.
490
491
ager@chromium.org8682a592009-04-01 10:47:14 +00004922009-04-01: Version 1.1.6
493
494 Reverted an unsafe code generator change.
495
496
ager@chromium.org71daaf62009-04-01 07:22:49 +00004972009-04-01: Version 1.1.5
498
499 Fixed bug that caused function literals to not be optimized as
500 much as other functions.
501
502 Improved profiler support.
503
504 Fixed a crash bug in connection with debugger unloading.
505
506 Fixed a crash bug in the code generator caused by losing the
507 information that a frame element was copied.
508
509 Fixed an exception propagation bug that could cause non-null
510 return values when exceptions were thrown.
511
512
ager@chromium.org41826e72009-03-30 13:30:57 +00005132009-03-30: Version 1.1.4
514
515 Optimized String.prototype.match.
516
517 Improved the stack information in profiles.
518
519 Fixed bug in ARM port making it possible to compile the runtime
520 system for thumb mode again.
521
522 Implemented a number of optimizations in the code generator.
523
524 Fixed a number of memory leaks in tests.
525
526 Fixed crash bug in connection with script source code and external
kasperl@chromium.org8ccb0be2009-04-07 07:21:39 +0000527 strings.
ager@chromium.org41826e72009-03-30 13:30:57 +0000528
529
kasperl@chromium.orgf5aa8372009-03-24 14:47:14 +00005302009-03-24: Version 1.1.3
531
532 Fixed assertion failures in compilation of loop conditions.
533
534 Removed STL dependency from developer shell (d8).
535
536 Added infrastructure for protecting the V8 heap from corruption
537 caused by memory modifications from the outside.
538
539
ager@chromium.orgbb29dc92009-03-24 13:25:23 +00005402009-03-24: Version 1.1.2
541
542 Improved frame merge code generated by the code generator.
543
544 Optimized String.prototype.replace.
545
546 Implemented __defineGetter__ and __defineSetter__ for properties
547 with integer keys on non-array objects.
548
549 Improved debugger and profiler support.
550
551 Fixed a number of portability issues to allow compilation for
552 smaller ARM devices.
553
554 Exposed object cloning through the API.
555
556 Implemented hidden properties. This is used to expose an identity
557 hash for objects through the API.
558
559 Implemented restarting of regular expressions if their input
560 string changes representation during preemption.
561
562 Fixed a code generator bug that could cause assignments in loops
563 to be ignored if using continue to break out of the loop (issue
564 284).
565
566
ager@chromium.org3a6061e2009-03-12 14:24:36 +00005672009-03-12: Version 1.1.1
568
569 Fixed an assertion in the new compiler to take stack overflow
570 exceptions into account.
571
572 Removed exception propagation code that could cause crashes.
573
574 Fixed minor bug in debugger line number computations.
575
576 8-byte align the C stack on Linux and Windows to speed up floating
577 point computations.
578
579
kasperl@chromium.org7be3c992009-03-12 07:19:55 +00005802009-03-12: Version 1.1.0
581
582 Improved code generation infrastructure by doing simple register
583 allocation and constant folding and propagation.
584
585 Optimized regular expression matching by avoiding to create
586 intermediate string arrays and by flattening nested array
587 representations of RegExp data.
588
589 Traverse a few stack frames when recording profiler samples to
590 include partial call graphs in the profiling output.
591
592 Added support for using OProfile to profile generated code.
593
594 Added remote debugging support to the D8 developer shell.
595
596 Optimized creation of nested literals like JSON objects.
597
598 Fixed a bug in garbage collecting unused maps and turned it on by
599 default (--collect-maps).
600
601 Added support for running tests under Valgrind.
602
603
kasperl@chromium.org061ef742009-02-27 12:16:20 +00006042009-02-27: Version 1.0.3
605
606 Optimized double-to-integer conversions in bit operations by using
607 SSE3 instructions if available.
608
609 Optimized initialization sequences that store to multiple
610 properties of the same object.
611
612 Changed the D8 debugger frontend to use JSON messages.
613
614 Force garbage collections when disposing contexts.
615
616 Align code objects at 32-byte boundaries.
617
618
ager@chromium.org381abbb2009-02-25 13:23:22 +00006192009-02-25: Version 1.0.2
620
621 Improved profiling support by performing simple call stack
622 sampling for ticks and by fixing a bug in the logging of code
623 addresses.
624
625 Fixed a number of debugger issues.
626
627 Optimized code that uses eval.
628
629 Fixed a couple of bugs in the regular expression engine.
630
631 Reduced the size of generated code for certain regular expressions.
632
633 Removed JSCRE completely.
634
635 Fixed issue where test could not be run if there was a dot in the
636 checkout path.
637
638
ager@chromium.org6f10e412009-02-13 10:11:16 +00006392009-02-13: Version 1.0.1
640
641 Fixed two crash-bugs in irregexp (issue 231 and 233).
642
643 Fixed a number of minor bugs (issue 87, 227 and 228).
644
645 Added support for morphing strings to external strings on demand
646 to avoid having to create copies in the embedding code.
647
648 Removed experimental support for external symbol callbacks.
649
650
iposva@chromium.org245aa852009-02-10 00:49:54 +00006512009-02-09: Version 1.0.0
652
653 Fixed crash-bug in the code generation for case independent 16 bit
654 backreferences.
ager@chromium.org6f10e412009-02-13 10:11:16 +0000655
iposva@chromium.org245aa852009-02-10 00:49:54 +0000656 Made shells more robust in the presence of string conversion
657 failures (issue 224).
ager@chromium.org6f10e412009-02-13 10:11:16 +0000658
iposva@chromium.org245aa852009-02-10 00:49:54 +0000659 Fixed a potential infinite loop when attempting to resolve
660 eval (issue 221).
ager@chromium.org6f10e412009-02-13 10:11:16 +0000661
iposva@chromium.org245aa852009-02-10 00:49:54 +0000662 Miscellaneous fixes to the new regular expression engine.
ager@chromium.org6f10e412009-02-13 10:11:16 +0000663
iposva@chromium.org245aa852009-02-10 00:49:54 +0000664 Reduced binary by stripping unneeded text from JavaScript library and
665 minifying some JavaScript files.
666
667
ager@chromium.orgddb913d2009-01-27 10:01:48 +00006682009-01-27: Version 0.4.9
669
670 Enabled new regular expression engine.
671
672 Made a number of changes to the debugger protocol.
673
674 Fixed a number of bugs in the preemption support.
675
676 Added -p option to the developer shell to run files in parallel
677 using preemption.
678
679 Fixed a number of minor bugs (including issues 176, 187, 189, 192,
680 193, 198 and 201).
681
682 Fixed a number of bugs in the serialization/deserialization
683 support for the ARM platform.
684
685
sgjesse@chromium.org715915b2009-01-19 16:08:47 +00006862009-01-19: Version 0.4.8.1
687
688 Minor patch to debugger support.
689
690
ager@chromium.org32912102009-01-16 10:38:43 +00006912009-01-16: Version 0.4.8
692
693 Fixed string length bug on ARM (issue 171).
694
695 Made most methods in the API const.
696
697 Optimized object literals by improving data locality.
698
699 Fixed bug that caused incomplete functions to be cached in case of
sgjesse@chromium.org715915b2009-01-19 16:08:47 +0000700 stack overflow exceptions.
ager@chromium.org32912102009-01-16 10:38:43 +0000701
702 Fixed bugs that caused catch variables and variables introduced by
sgjesse@chromium.org715915b2009-01-19 16:08:47 +0000703 eval to behave incorrectly when using accessors (issues 186, 190
704 and 191).
ager@chromium.org32912102009-01-16 10:38:43 +0000705
706
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +00007072009-01-06: Version 0.4.7
708
ager@chromium.org32912102009-01-16 10:38:43 +0000709 Minor bugfixes and optimizations.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +0000710
ager@chromium.org32912102009-01-16 10:38:43 +0000711 Added command line debugger to D8 shell.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +0000712
ager@chromium.org32912102009-01-16 10:38:43 +0000713 Fixed subtle bug that caused the wrong 'this' to be used when
714 calling a caught function in a catch clause.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +0000715
ager@chromium.org32912102009-01-16 10:38:43 +0000716 Inline array loads within loops directly in the code instead of
717 always calling a stub.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +0000718
ager@chromium.org32912102009-01-16 10:38:43 +0000719
ager@chromium.org8bb60582008-12-11 12:02:20 +00007202008-12-11: Version 0.4.6
721
722 Fixed exception reporting bug where certain exceptions were
723 incorrectly reported as uncaught.
724
725 Improved the memory allocation strategy used during compilation to
726 make running out of memory when compiling huge scripts less
727 likely.
728
729 Optimized String.replace by avoiding the construction of certain
730 sub strings.
731
732 Fixed bug in code generation for large switch statements on ARM.
733
734 Fixed bug that caused V8 to change the global object template
735 passed in by the user.
736
737 Changed the API for creating object groups used during garbage
738 collection. Entire object groups are now passed to V8 instead of
739 individual members of the groups.
740
ager@chromium.org32912102009-01-16 10:38:43 +0000741
ager@chromium.orga74f0da2008-12-03 16:05:52 +00007422008-12-03: Version 0.4.5
iposva@chromium.org96f667e2008-11-26 23:48:02 +0000743
ager@chromium.orga74f0da2008-12-03 16:05:52 +0000744 Added experimental API support for allocating V8 symbols as
745 external strings.
746
747 Fixed bugs in debugging support on ARM.
748
749 Changed eval implementation to correctly detect whether or not a
750 call to eval is aliased.
751
752 Fixed bug caused by a combination of the compilation cache and
753 dictionary probing in native code. The bug caused us to sometimes
754 call functions that had not yet been compiled.
755
756 Added platform support for FreeBSD.
757
758 Added support for building V8 on Windows with either the shared or
759 static version of MSVCRT
ager@chromium.org32912102009-01-16 10:38:43 +0000760
iposva@chromium.org96f667e2008-11-26 23:48:02 +0000761 Added the v8::jscre namespace around the jscre functions to avoid
762 link errors (duplicate symbols) when building Google Chrome.
763
ager@chromium.orga74f0da2008-12-03 16:05:52 +0000764 Added support for calling a JavaScript function with the current
765 debugger execution context as its argument to the debugger
766 interface.
767
768 Changed the type of names of counters from wchar_t to char.
769
770 Changed the Windows system call used to compute daylight savings
771 time. The system call that we used to use became four times
772 slower on WinXP SP3.
773
774 Added support in the d8 developer shell for memory-mapped counters
775 and added a stats-viewer tool.
776
777 Fixed bug in upper/lower case mappings (issue 149).
778
iposva@chromium.org96f667e2008-11-26 23:48:02 +0000779
ager@chromium.org3bf7b912008-11-17 09:09:45 +00007802008-11-17: Version 0.4.4
781
782 Reduced code size by using shorter instruction encoding when
783 possible.
784
785 Added a --help option to the shell sample and to the d8 shell.
786
787 Added visual studio project files for building the ARM simulator.
788
789 Fixed a number of ARM simulator issues.
790
791 Fixed bug in out-of-memory handling on ARM.
792
793 Implemented shell support for passing arguments to a script from
794 the command line.
795
796 Fixed bug in date code that made certain date functions return -0
797 instead of 0 for dates before the epoch.
798
799 Restricted applications of eval so it can only be used in the
800 context of the associated global object.
801
802 Treat byte-order marks as whitespace characters.
ager@chromium.org32912102009-01-16 10:38:43 +0000803
804
ager@chromium.org870a0b62008-11-04 11:43:05 +00008052008-11-04: Version 0.4.3
806
807 Added support for API accessors that prohibit overwriting by
808 accessors defined in JavaScript code by using __defineGetter__ and
809 __defineSetter__.
810
811 Improved handling of conditionals in test status files.
812
813 Introduced access control in propertyIsEnumerable.
814
815 Improved performance of some string operations by caching
816 information about the type of the string between operations.
817
818 Fixed bug in fast-case code for switch statements that only have
819 integer labels.
ager@chromium.org32912102009-01-16 10:38:43 +0000820
ager@chromium.org870a0b62008-11-04 11:43:05 +0000821
kasperl@chromium.org9bbf9682008-10-30 11:53:07 +00008222008-10-30: Version 0.4.2
823
824 Improved performance of Array.prototype.concat by moving the
825 implementation to C++ (issue 123).
826
827 Fixed heap growth policy to avoid growing old space to its maximum
828 capacity before doing a garbage collection and fixed issue that
829 would lead to artificial out of memory situations (issue 129).
830
831 Fixed Date.prototype.toLocaleDateString to return the date in the
832 same format as WebKit.
833
834 Added missing initialization checks to debugger API.
835
836 Added removing of unused maps during GC.
837
838
kasperl@chromium.org9fe21c62008-10-28 08:53:51 +00008392008-10-28: Version 0.4.1
840
841 Added caching of RegExp data in compilation cache.
842
843 Added Visual Studio project file for d8 shell.
844
845 Fixed function call performance regression introduced in version
846 0.4.0 when splitting the global object in two parts (issue 120).
847
848 Fixed issue 131 by checking for empty handles before throwing and
849 reporting exceptions.
850
851
kasperl@chromium.org5a8ca6c2008-10-23 13:57:19 +00008522008-10-23: Version 0.4.0
853
854 Split the global object into two parts: The state holding global
855 object and the global object proxy.
856
857 Fixed bug that affected the value of an assignment to an element
858 in certain cases (issue 116).
859
860 Added GetPropertyNames functionality (issue 33) and extra Date
861 functions (issue 77) to the API.
862
863 Changed WeakReferenceCallback to take a Persistent<Value> instead
864 of a Persistent<Object> (issue 101).
865
866 Fixed issues with message reporting for exceptions in try-finally
867 blocks (issues 73 and 75).
868
ager@chromium.org32912102009-01-16 10:38:43 +0000869 Optimized flattening of strings and string equality checking.
kasperl@chromium.org5a8ca6c2008-10-23 13:57:19 +0000870
871 Improved Boyer-Moore implementation for faster indexOf operations.
872
873 Added development shell (d8) which includes counters and
874 completion support.
875
876 Fixed problem with the receiver passed to functions called from
877 eval (issue 124).
878
879
ager@chromium.org7c537e22008-10-16 08:43:32 +00008802008-10-16: Version 0.3.5
881
882 Improved string hash-code distribution by excluding bit-field bits
883 from the hash-code.
884
885 Changed string search algorithm used in indexOf from KMP to
886 Boyer-Moore.
887
888 Improved the generated code for the instanceof operator.
889
890 Improved performance of slow-case string equality checks by
891 specializing the code based on the string representation.
892
893 Improve the handling of out-of-memory situations (issue 70).
894
895 Improved performance of strict equality checks.
896
897 Improved profiler output to make it easier to see anonymous
898 functions.
899
900 Improved performance of slow-case keyed loads.
901
902 Improved property access performance by allocating a number of
903 properties in the front object.
904
905 Changed the toString behavior on the built-in object constructors
906 to print [native code] instead of the actual source. Some web
907 applications do not like constructors with complex toString
908 results.
ager@chromium.org32912102009-01-16 10:38:43 +0000909
ager@chromium.org7c537e22008-10-16 08:43:32 +0000910
kasperl@chromium.org41044eb2008-10-06 08:24:46 +00009112008-10-06: Version 0.3.4
912
913 Changed Array.prototype.sort to use quick sort.
914
915 Fixed code generation issue where leaving a finally block with
916 break or continue would accumulate elements on the expression
917 stack (issue 86).
918
919 Made sure that the name accessor on functions returns the expected
920 names for builtin JavaScript functions and C++ callback functions.
921
922 Added fast case code for extending the property storage array of
923 JavaScript objects.
924
925 Ported switch statement optimizations introduced in version 0.3.3
926 to the ARM code generator.
927
928 Allowed GCC to use strict-aliasing rules when compiling.
929
930 Improved performance of arguments object allocation by taking care
931 of arguments adaptor frames in the generated code.
932
933 Updated the V8 benchmark suite to version 2.
934
935
ager@chromium.org236ad962008-09-25 09:45:57 +00009362008-09-25: Version 0.3.3
937
938 Improved handling of relocation information to enable more
939 peep-hole optimizations.
940
941 Optimized switch statements where all labels are constant small
942 integers.
943
944 Optimized String.prototype.indexOf for common cases.
945
946 Fixed more build issues (issue 80).
947
948 Fixed a couple of profiler issues.
949
950 Fixed bug where the body of a function created using the Function
951 constructor was not allowed to end with a single-line comment
952 (issue 85).
953
954 Improved handling of object literals by canonicalizing object
955 literal maps. This will allow JSON objects with the same set of
956 properties to share the same map making inline caching work better
957 for JSON objects.
ager@chromium.org32912102009-01-16 10:38:43 +0000958
ager@chromium.org236ad962008-09-25 09:45:57 +0000959
kasperl@chromium.orgb9123622008-09-17 14:05:56 +00009602008-09-17: Version 0.3.2
961
962 Generalized the EvalCache into a CompilationCache and enabled it
963 for scripts too. The current strategy is to retire all entries
964 whenever a mark-sweep collection is started.
965
966 Fixed bug where switch statements containing only a default case
967 would lead to an unbalanced stack (issue 69).
968
969 Fixed bug that made access to the function in a named function
970 expression impossible in certain situations (issue 24).
971
972 Fixed even more build issues.
973
974 Optimized calling conventions on ARM. The conventions on ARM and
975 IA-32 now match.
976
977 Removed static initializers for flags and counters.
978
979 Improved inline caching behavior for uncommon cases where lazily
980 loading Date and RegExp code could force certain code paths go
981 megamorphic.
982
983 Removed arguments adaption for builtins written in C++. This
984 makes Array.prototype.push and Array.prototype.pop slightly
985 faster.
986
987
ager@chromium.org9258b6b2008-09-11 09:11:10 +00009882008-09-11: Version 0.3.1
989
990 Fixed a number of build issues.
991
992 Fixed problem with missing I-cache flusing on ARM.
993
994 Changed space layout in memory management by splitting up
995 code space into old data space and code space.
996
997 Added utf-8 conversion support to the API (issue 57).
998
999 Optimized repeated calls to eval with the same strings. These
1000 repeated calls are common in web applications.
1001
1002 Added Xcode project file.
1003
1004 Optimized a couple of Array operation.
1005
1006 Fixed parser bug by checking for end-of-string when parsing break
1007 and continue (issue 35).
1008
1009 Fixed problem where asian characters were not categorized as
1010 letters.
1011
1012 Fixed bug that disallowed calling functions fetched from an array
1013 using a string as an array index (issue 32).
1014
1015 Fixed bug where the internal field count on object templates were
1016 sometimes ignored (issue 54).
1017
1018 Added -f option to the shell sample for compatibility with other
1019 engines (issue 18).
1020
1021 Added source info to TryCatches in the API.
1022
1023 Fixed problem where the seed for the random number generator was
1024 clipped in a double to unsigned int conversion.
1025
1026 Fixed bug where cons string symbols were sometimes converted to
1027 non-symbol flat strings during GC.
1028
1029 Fixed bug in error reporting when attempting to convert null to an
1030 object.
ager@chromium.org32912102009-01-16 10:38:43 +00001031
1032
ager@chromium.orgc27e4e72008-09-04 13:52:27 +000010332008-09-04: Version 0.3.0
1034
1035 Added support for running tests on the ARM simulator.
1036
1037 Fixed bug in the 'in' operator where negative indices were not
1038 treated correctly.
1039
1040 Fixed build issues on gcc-4.3.1.
1041
1042 Changed Date.prototype.toLocaleTimeString to not print the
1043 timezone part of the time.
1044
1045 Renamed debug.h to v8-debug.h to reduce the risk of name conflicts
1046 with user code.
1047
1048
v8.team.kasperl727e9952008-09-02 14:56:44 +000010492008-09-02: Version 0.2.5
1050
1051 Renamed the top level directory 'public' to 'include'.
1052
1053 Added 'env' option to the SCons build scripts to support
1054 overriding the ENV part of the build environment. This is mostly
1055 to support Windows builds in cases where SCons cannot find the
1056 correct paths to the Windows SDK, as these paths cannot be passed
1057 through shell environment variables.
1058
1059 Enabled "Buffer Security Check" on for the Windows SCons build and
1060 added the linker option /OPT:ICF as an optimization.
1061
1062 Added the V8 benchmark suite to the repository.
1063
1064
mads.s.ager@gmail.com9a4089a2008-09-01 08:55:01 +000010652008-09-01: Version 0.2.4
1066
1067 Included mjsunit JavaScript test suite and C++ unit tests.
1068
1069 Changed the shell sample to not print the result of executing a
1070 script provided on the command line.
1071
1072 Fixed issue when building samples on Windows using a shared V8
1073 library. Added visibility option on Linux build which makes the
1074 generated library 18% smaller.
1075
1076 Changed build system to accept multiple build modes in one build
1077 and generate separate objects, libraries and executables for each
1078 mode.
1079
1080 Removed deferred negation optimization (a * -b => -(a * b)) since
1081 this visibly changes operand conversion order.
1082
1083 Improved parsing performance by introducing stack guard in
1084 preparsing. Without a stack guard preparsing always bails out
1085 with stack overflow.
1086
1087 Changed shell sample to take flags directly from the command-line.
1088 Added API call that implements this.
1089
1090 Added load, quit and version functions to the shell sample so it's
1091 easier to run benchmarks and tests.
1092
1093 Fixed issue with building samples and cctests on 64-bit machines.
1094
1095 Fixed bug in the runtime system where the prototype chain was not
1096 always searched for a setter when setting a property that does not
1097 exist locally.
ager@chromium.org32912102009-01-16 10:38:43 +00001098
mads.s.ager@gmail.com9a4089a2008-09-01 08:55:01 +00001099
mads.s.agercbaa0602008-08-14 13:41:48 +000011002008-08-14: Version 0.2.3
1101
1102 Improved performance of garbage collection by moving the
1103 function that updates pointers during compacting collection
1104 into the updating visitor. This gives the compiler a better
1105 chance to inline and avoid a function call per (potential)
1106 pointer.
1107
1108 Extended the shell sample with a --runtime-flags option.
1109
1110 Added Visual Studio project files for the shell.cc and
1111 process.cc samples.
1112
1113
11142008-08-13: Version 0.2.2
mads.s.ager31e71382008-08-13 09:32:07 +00001115
1116 Improved performance of garbage collection by changing the way
1117 we use the marking stack in the event of stack overflow during
1118 full garbage collection and by changing the way we mark roots.
1119
1120 Cleaned up ARM version by removing top of stack caching and by
1121 introducing push/pop elimination.
1122
1123 Cleaned up the way runtime functions are called to allow
1124 runtime calls with no arguments.
1125
1126 Changed Windows build options to make sure that exceptions are
1127 disabled and that optimization flags are enabled.
1128
1129 Added first version of Visual Studio project files.
1130
1131
mads.s.agercbaa0602008-08-14 13:41:48 +000011322008-08-06: Version 0.2.1
mads.s.ager@gmail.com769cc962008-08-06 10:02:49 +00001133
1134 Improved performance of unary addition by avoiding runtime calls.
1135
1136 Fixed the handling of '>' and '<=' to use right-to-left conversion
1137 and left-to-right evaluation as specified by ECMA-262.
1138
1139 Fixed a branch elimination bug on the ARM platform where incorrect
1140 code was generated because of overly aggressive branch
1141 elimination.
1142
1143 Improved performance of code that repeatedly assigns the same
1144 function to the same property of different objects with the same
1145 map.
1146
1147 Untangled DEBUG and ENABLE_DISASSEMBLER defines. The disassembler
1148 no longer expects DEBUG to be defined.
1149
1150 Added platform-nullos.cc to serve as the basis for new platform
1151 implementations.
1152
mads.s.ager31e71382008-08-13 09:32:07 +00001153
mads.s.agercbaa0602008-08-14 13:41:48 +000011542008-07-30: Version 0.2.0
kasper.lund7276f142008-07-30 08:49:36 +00001155
1156 Changed all text files to have native svn:eol-style.
1157
1158 Added a few samples and support for building them. The samples
1159 include a simple shell that can be used to benchmark and test V8.
1160
1161 Changed V8::GetVersion to return the version as a string.
1162
1163 Added source for lazily loaded scripts to snapshots and made
1164 serialization non-destructive.
1165
1166 Improved ARM support by fixing the write barrier code to use
1167 aligned loads and stores and by removing premature locals
1168 optimization that relied on broken support for callee-saved
1169 registers (removed).
1170
1171 Refactored the code for marking live objects during garbage
1172 collection and the code for allocating objects in paged
1173 spaces. Introduced an abstraction for the map word of a heap-
1174 allocated object and changed the memory allocator to allocate
1175 executable memory only for spaces that may contain code objects.
1176
1177 Moved StringBuilder to utils.h and ScopedLock to platform.h, where
1178 they can be used by debugging and logging modules. Added
1179 thread-safe message queues for dealing with debugger events.
1180
1181 Fixed the source code reported by toString for certain builtin
1182 empty functions and made sure that the prototype property of a
1183 function is enumerable.
1184
1185 Improved performance of converting values to condition flags in
1186 generated code.
1187
1188 Merged disassembler-{arch} files.
1189
1190
mads.s.agercbaa0602008-08-14 13:41:48 +000011912008-07-28: Version 0.1.4
kasper.lundaf4734f2008-07-28 12:50:18 +00001192
1193 Added support for storing JavaScript stack traces in a stack
1194 allocated buffer to make it visible in shallow core dumps.
1195 Controlled by the --preallocate-message-memory flag which is
1196 disabled by default.
1197
1198
mads.s.agercbaa0602008-08-14 13:41:48 +000011992008-07-25: Version 0.1.3
kasper.lund44510672008-07-25 07:37:58 +00001200
1201 Fixed bug in JSObject::GetPropertyAttributePostInterceptor where
1202 map transitions would count as properties.
1203
1204 Allowed aliased eval invocations by treating them as evals in the
1205 global context. This may change in the future.
1206
1207 Added support for accessing the last entered context through the
1208 API and renamed Context::Current to Context::GetCurrent and
1209 Context::GetSecurityContext to Context::GetCurrentSecurityContext.
1210
1211 Fixed bug in the debugger that would cause the debugger scripts to
1212 be recursively loaded and changed all disabling of interrupts to
1213 be block-structured.
1214
1215 Made snapshot data read-only to allow it to be more easily shared
1216 across multiple users of V8 when linked as a shared library.
1217
1218
mads.s.agercbaa0602008-08-14 13:41:48 +000012192008-07-16: Version 0.1.2
kasper.lund212ac232008-07-16 07:07:30 +00001220
1221 Fixed building on Mac OS X by recognizing i386 and friends as
1222 IA-32 platforms.
1223
1224 Added propagation of stack overflow exceptions that occur while
1225 compiling nested functions.
1226
1227 Improved debugger with support for recursive break points and
1228 handling of exceptions that occur in the debugger JavaScript code.
1229
1230 Renamed GetInternal to GetInternalField and SetInternal to
1231 SetInternalField in the API and moved InternalFieldCount and
1232 SetInternalFieldCount from FunctionTemplate to ObjectTemplate.
1233
1234
mads.s.agercbaa0602008-08-14 13:41:48 +000012352008-07-09: Version 0.1.1
kasper.lundbd3ec4e2008-07-09 11:06:54 +00001236
1237 Fixed bug in stack overflow check code for IA-32 targets where a
1238 non-tagged value in register eax was pushed to the stack.
1239
1240 Fixed potential quadratic behavior when converting strings to
1241 numbers.
1242
1243 Fixed bug where the return value from Object::SetProperty could
1244 end up being the property holder instead of the written value.
1245
1246 Improved debugger support by allowing nested break points and by
1247 dealing with stack-overflows when compiling functions before
1248 setting break points in them.
1249
1250
mads.s.agercbaa0602008-08-14 13:41:48 +000012512008-07-03: Version 0.1.0
christian.plesner.hansen43d26ec2008-07-03 15:10:15 +00001252
kasper.lundbd3ec4e2008-07-09 11:06:54 +00001253 Initial export.
christian.plesner.hansen43d26ec2008-07-03 15:10:15 +00001254