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