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