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