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