blob: 668cd9a92042984b775cd49ad1ee19bc8effc342 [file] [log] [blame]
ager@chromium.orgc4c92722009-11-18 14:12:51 +000012009-11-18: Version 2.0.0
2
3 Added support for VFP on ARM.
4
5 Added TryCatch::ReThrow method to the API.
6
7 Reduced the size of snapshots and improved the snapshot load time.
8
9 Improved heap profiler support.
10
11 64-bit version now supported on Windows.
12
13 Fixed a number of debugger issues.
14
15 Fixed bugs.
16
17
sgjesse@chromium.orgf1e73132009-10-29 14:46:49 +0000182009-10-29: Version 1.3.18
19
20 Reverted a change which caused crashes in RegExp replace.
21
22 Reverted a change which caused Chromium ui_tests failure.
23
24
ager@chromium.org3811b432009-10-28 14:53:37 +0000252009-10-28: Version 1.3.17
26
27 Added API method to get simple heap statistics.
28
29 Improved heap profiler support.
30
31 Fixed the implementation of the resource constraint API so it
32 works when using snapshots.
33
34 Fixed a number of issues in the Windows 64-bit version.
35
36 Optimized calls to API getters.
37
38 Added valgrind notification on code modification to the 64-bit version.
39
40 Fixed issue where we logged shared library addresses on Windows at
41 startup and never used them.
42
43
christian.plesner.hansen@gmail.com9d58c2b2009-10-16 11:48:38 +0000442009-10-16: Version 1.3.16
45
46 X64: Convert smis to holding 32 bits of payload.
47
48 Introduce v8::Integer::NewFromUnsigned method.
49
50 Add missing null check in Context::GetCurrent.
51
52 Add trim, trimLeft and trimRight methods to String
53 Patch by Jan de Mooij <jandemooij@gmail.com>
54
55 Implement ES5 Array.isArray
56 Patch by Jan de Mooij <jandemooij@gmail.com>
57
58 Skip access checks for hidden properties.
59
60 Add String::Concat(Handle<String> left, Handle<String> right) to the V8 API.
61
62 Fix GYP-based builds of V8.
63
64
sgjesse@chromium.org152a0b02009-10-07 13:50:16 +0000652009-10-07: Version 1.3.15
66
67 Expand the maximum size of the code space to 512MB for 64-bit mode.
68
69 Fixed a crash bug happening when starting profiling (issue
70 http://crbug.com/23768).
71
72
sgjesse@chromium.orgc5145742009-10-07 09:00:33 +0000732009-10-07: Version 1.3.14
74
75 Added GetRealNamedProperty to the API to lookup real properties
76 located on the object or in the prototype chain skipping any
77 interceptors.
78
79 Fix the stack limits setting API to work correctly with threads. The
80 stack limit now needs to be set to each thread thich is used with V8.
81
82 Remove the high-priority flag from IdleNotification()
83
84 Ensure V8 is initialized before locking and unlocking threads.
85
86 Implemented a new JavaScript minifier for compressing the source of
ager@chromium.org3811b432009-10-28 14:53:37 +000087 the built-in JavaScript. This removes non-Open Source code from Douglas
sgjesse@chromium.orgc5145742009-10-07 09:00:33 +000088 Crockford from the project.
89
90 Added a missing optimization in StringCharAt.
91
92 Fixed some flaky socket tests.
93
94 Change by Alexander Botero-Lowry to fix profiler sampling on FreeBSD
95 in 64-bit mode.
96
97 Fixed memory leaks in the thread management code.
98
99 Fixed the result of assignment to a pixel array. The assigned value
100 is now the result.
101
102 Error reporting for invalid left-hand sides in for-in statements, pre-
103 and postfix count expressions, and assignments now matches the JSC
104 behavior in Safari 4.
105
106 Follow the spec in disallowing function declarations without a name.
107
108 Always allocate code objects within a 2 GB range. On x64 architecture
109 this is used to use near calls (32-bit displacement) in Code objects.
110
111 Optimized array construction ported to x64 and ARM architectures.
112
113 [ES5] Changed Object.keys to return strings for element indices.
114
115
ager@chromium.org68e7ab72009-09-23 09:40:39 +00001162009-09-23: Version 1.3.13
117
118 Fixed uninitialized memory problem.
119
120 Improved heap profiler support.
121
122
christian.plesner.hansen@gmail.com2bc58ef2009-09-22 10:00:30 +00001232009-09-22: Version 1.3.12
124
125 Changed behavior of |function|.toString() on built-in functions to
126 be compatible with other implementations. Patch by Jan de Mooij.
127
128 Added Object::IsDirty in the API.
129
130 Optimized array construction; it is now handled purely in native
131 code.
132
133 [ES5] Made properties of the arguments array enumerable.
134
135 [ES5] Added test suite adapter for the es5conform test suite.
136
137 [ES5] Added Object.keys function.
138
ager@chromium.org68e7ab72009-09-23 09:40:39 +0000139
ager@chromium.org4af710e2009-09-15 12:20:11 +00001402009-09-15: Version 1.3.11
141
142 Fixed crash in error reporting during bootstrapping.
143
144 Optimized generated IA32 math code by using SSE2 instructions when
145 available.
146
147 Implemented missing pieces of debugger infrastructure on ARM. The
148 debugger is now fully functional on ARM.
149
150 Make 'hidden' the default visibility for gcc.
151
152
ager@chromium.orga1645e22009-09-09 19:27:10 +00001532009-09-09: Version 1.3.10
154
155 Fixed profiler on Mac in 64-bit mode.
156
157 Optimized creation of objects from simple constructor functions on
158 ARM.
159
160 Fixed a number of debugger issues.
161
162 Reduced the amount of memory consumed by V8.
163
164
ager@chromium.org18ad94b2009-09-02 08:22:29 +00001652009-09-02: Version 1.3.9
166
167 Optimized stack guard checks on ARM.
168
169 Optimized API operations by inlining more in the API.
170
171 Optimized creation of objects from simple constructor functions.
172
173 Enabled a number of missing optimizations in the 64-bit port.
174
175 Implemented native-code support for regular expressions on ARM.
176
177 Stopped using the 'sahf' instruction on 64-bit machines that do
178 not support it.
179
180 Fixed a bug in the support for forceful termination of JavaScript
181 execution.
182
183
ager@chromium.org96c75b52009-08-26 09:13:16 +00001842009-08-26: Version 1.3.8
185
186 Changed the handling of idle notifications to allow idle
187 notifications when V8 has not yet been initialized.
188
189 Fixed ARM simulator compilation problem on Windows.
190
191
ager@chromium.orgab99eea2009-08-25 07:05:41 +00001922009-08-25: Version 1.3.7
193
194 Reduced the size of generated code on ARM platforms by reducing
195 the size of constant pools.
196
197 Changed build files to not include the 'ENV' user environment
198 variable in the build environment.
199
200 Changed the handling of idle notifications.
201
202
sgjesse@chromium.orgc81c8942009-08-21 10:54:26 +00002032009-08-21: Version 1.3.6
204
205 Add support for forceful termination of JavaScript execution.
206
207 Add low memory notification to the API. The embedding host can signal
208 a low memory situation to V8.
209
210 Changed the handling of global handles (persistent handles in the API
211 sense) to avoid issues regarding allocation of new global handles
212 during weak handle callbacks.
213
214 Changed the growth policy of the young space.
215
216 Fixed a GC issue introduced in version 1.3.5.
217
218
sgjesse@chromium.org911335c2009-08-19 12:59:44 +00002192009-08-19: Version 1.3.5
220
221 Optimize initialization of some arrays in the builtins.
222
223 Fix mac-nm script to support filenames with spaces.
224
225 Support for using the V8 profiler when V8 is embedded in a Windows DLL.
226
227 Changed typeof RegExp from 'object' to 'function' for compatibility.
228 Fixed bug where regexps were not callable across contexts.
229
230 Added context independent script compilation to the API.
231
232 Added API call to get the stack trace for an exception.
233
234 Added API for getting object mirrors.
235
236 Make sure that SSE3 instructions are used whenever possible even when
237 running off a snapshot generated without using SSE3 instructions.
238
239 Tweaked the handling of the initial size and growth policy of the heap.
240
241 Added native code generation for RegExp to 64-bit version.
242
243 Added JavaScript debugger support to 64-bit version.
244
245
ager@chromium.orgadd848f2009-08-13 12:44:13 +00002462009-08-13: Version 1.3.4
247
248 Added a readline() command to the d8 shell.
249
250 Fixed bug in json parsing.
251
252 Added idle notification to the API and reduced memory on idle
253 notifications.
254
255
christian.plesner.hansen@gmail.com5a6af922009-08-12 14:20:51 +00002562009-08-12: Version 1.3.3
257
258 Fix issue 417: incorrect %t placeholder expansion.
259
260 Add .gitignore file similar to Chromium's one.
261
262 Fix SConstruct file to build with new logging code for Android.
263
264 API: added function to find instance of template in prototype
265 chain. Inlined Object::IsInstanceOf.
266
267 Land change to notify valgrind when we modify code on x86.
268
269 Add api call to determine whether a string can be externalized.
270
271 Add a write() command to d8.
272
273
sgjesse@chromium.orgb9d7da12009-08-05 08:38:10 +00002742009-08-05: Version 1.3.2
275
276 Started new compiler infrastructure for two-pass compilation using a
277 control flow graph constructed from the AST.
278
279 Profiler stack sampling for X64.
280
281 Safe handling of NaN to Posix platform-dependent time functions.
282
283 Added a new profiler control API to unify controlling various aspects
284 of profiling.
285
286 Fixed issue 392.
287
288
sgjesse@chromium.org0b6db592009-07-30 14:48:31 +00002892009-07-30: Version 1.3.1
290
291 Speed improvements to accessors and interceptors.
292
293 Added support for capturing stack information on custom errors.
294
295 Added support for morphing an object into a pixel array where its
296 indexed properties are stored in an external byte array. Values written
297 are always clamped to the 0..255 interval.
298
299 Profiler on x64 now handles C/C++ functions from shared libraries.
300
301 Changed the debugger to avoid stepping into function.call/apply if the
302 function is a built-in.
303
304 Initial implementation of constructor heap profile for JS objects.
305
306 More fine grained control of profiling aspects through the API.
307
308 Optimized the called as constructor check for API calls.
309
310
kasperl@chromium.orge959c182009-07-27 08:59:04 +00003112009-07-27: Version 1.3.0
312
313 Allowed RegExp objects to be called as functions (issue 132).
314
315 Fixed issue where global property cells would escape after
316 detaching the global object; see http://crbug.com/16276.
317
318 Added support for stepping into setters and getters in the
319 debugger.
320
321 Changed the debugger to avoid stopping in its own JavaScript code
322 and in the code of built-in functions.
323
324 Fixed issue 345 by avoiding duplicate escaping labels.
325
326 Fixed ARM code generator crash in short-circuited boolean
327 expressions and added regression tests.
328
329 Added an external allocation limit to avoid issues where small V8
330 objects would hold on to large amounts of external memory without
331 causing garbage collections.
332
333 Finished more of the inline caching stubs for x64 targets.
334
335
kasperl@chromium.orgdefbd102009-07-13 14:04:26 +00003362009-07-13: Version 1.2.14
337
338 Added separate paged heap space for global property cells and
339 avoid updating the write barrier when storing into them.
340
341 Improved peep-hole optimization on ARM platforms by not emitting
342 unnecessary debug information.
343
344 Re-enabled ICs for loads and calls that skip a global object
345 during lookup through the prototype chain.
346
347 Allowed access through global proxies to use ICs.
348
349 Fixed issue 401.
350
351
kasperl@chromium.org68ac0092009-07-09 06:00:35 +00003522009-07-09: Version 1.2.13
353
354 Fixed issue 397, issue 398, and issue 399.
355
356 Added support for breakpoint groups.
357
358 Fixed bugs introduced with the new global object representation.
359
360 Fixed a few bugs in the ARM code generator.
361
362
kasperl@chromium.org86f77b72009-07-06 08:21:57 +00003632009-07-06: Version 1.2.12
364
365 Added stack traces collection to Error objects accessible through
366 the e.stack property.
367
368 Changed RegExp parser to use a recursive data structure instead of
369 stack-based recursion.
370
371 Optimized Date object construction and string concatenation.
372
373 Improved performance of div, mod, and mul on ARM platforms.
374
375
kasperl@chromium.org2abc4502009-07-02 07:00:29 +00003762009-07-02: Version 1.2.11
377
378 Improved performance on IA-32 and ARM.
379
380 Fixed profiler sampler implementation on Mac OS X.
381
382 Changed the representation of global objects to improve
383 performance of adding a lot of new properties.
384
385
ager@chromium.org3e875802009-06-29 08:26:34 +00003862009-06-29: Version 1.2.10
387
388 Improved debugger support.
389
390 Fixed bug in exception message reporting (issue 390).
391
392 Improved overall performance.
393
394
ager@chromium.org5aa501c2009-06-23 07:57:28 +00003952009-06-23: Version 1.2.9
396
397 Improved math performance on ARM.
398
399 Fixed profiler name-inference bug.
400
401 Fixed handling of shared libraries in the profiler tick processor
402 scripts.
403
404 Fixed handling of tests that time out in the test scripts.
405
406 Fixed compilation on MacOS X version 10.4.
407
408 Fixed two bugs in the regular expression engine.
409
410 Fixed a bug in the string type inference.
411
412 Fixed a bug in the handling of 'constant function' properties.
413
414 Improved overall performance.
415
416
ager@chromium.orgeadaf222009-06-16 09:43:10 +00004172009-06-16: Version 1.2.8
418
419 Optimized math on ARM platforms.
420
421 Fixed two crash bugs in the handling of getters and setters.
422
423 Improved the debugger support by adding scope chain information.
424
425 Improved the profiler support by compressing log data transmitted
426 to clients.
427
428 Improved overall performance.
429
430
ager@chromium.orge2902be2009-06-08 12:21:35 +00004312009-06-08: Version 1.2.7
432
433 Improved debugger and profiler support.
434
435 Reduced compilation time by improving the handling of deferred
436 code.
437
438 Optimized interceptor accesses where the property is on the object
439 on which the interceptors is attached.
440
441 Fixed compilation problem on GCC 4.4 by changing the stack
442 alignment to 16 bytes.
443
444 Fixed handle creation to follow stric aliasing rules.
445
446 Fixed compilation on FreeBSD.
447
448 Introduced API for forcing the deletion of a property ignoring
449 interceptors and attributes.
450
451
sgjesse@chromium.org755c5b12009-05-29 11:04:38 +00004522009-05-29: Version 1.2.6
453
454 Added a histogram recording hit rates at different levels of the
455 compilation cache.
456
457 Added stack overflow check for the RegExp analysis phase. Previously a
458 very long regexp graph could overflow the stack with recursive calls.
459
460 Use a dynamic buffer when collecting log events in memory.
461
462 Added start/stop events to the profiler log.
463
464 Fixed infinite loop which could happen when setting a debug break while
465 executing a RegExp compiled to native code.
466
467 Fixed handling of lastIndexOf called with negative index (issue 351).
468
469 Fixed irregular crash in profiler test (issue 358).
470
471 Fixed compilation issues with some versions of gcc.
472
473
kasperl@chromium.org71affb52009-05-26 05:44:31 +00004742009-05-26: Version 1.2.5
475
476 Fixed bug in initial boundary check for Boyer-Moore text
477 search (issue 349).
478
479 Fixed compilation issues with MinGW and gcc 4.3+ and added support
480 for armv7 and cortex-a8 architectures. Patches by Lei Zhang and
481 Craig Schlenter.
482
483 Added a script cache to the debugger.
484
485 Optimized compilation performance by improving internal data
486 structures and avoiding expensive property load optimizations for
487 code that's infrequently executed.
488
489 Exposed the calling JavaScript context through the static API
490 function Context::GetCalling().
491
492
kasperl@chromium.orgb3284ad2009-05-18 06:12:45 +00004932009-05-18: Version 1.2.4
494
495 Improved performance of floating point number allocation for ARM
496 platforms.
497
498 Fixed crash when using the instanceof operator on functions with
499 number values in their prototype chain (issue 341).
500
501 Optimized virtual frame operations in the code generator to speed
502 up compilation time and allocated the frames in the zone.
503
504 Made the representation of virtual frames and jump targets in the
505 code generator much more compact.
506
507 Avoided linear search for non-locals in scope code when resolving
508 variables inside with and eval scopes.
509
510 Optimized lexical scanner by dealing with whitespace as part of
511 the token scanning instead of as a separate step before it.
512
513 Changed the scavenging collector so that promoted objects do not
514 reside in the old generation while their remembered set is being
515 swept for pointers into the young generation.
516
517 Fixed numeric overflow handling when compiling count operations.
518
519
ager@chromium.org9085a012009-05-11 19:22:57 +00005202009-05-11: Version 1.2.3
521
522 Fixed bug in reporting of out-of-memory situations.
523
524 Introduced hidden prototypes on certain builtin prototype objects
525 such as String.prototype to emulate JSC's behavior of restoring
526 the original function when deleting functions from those prototype
527 objects.
528
529 Fixed crash bug in the register allocator.
530
531
ager@chromium.org5ec48922009-05-05 07:25:34 +00005322009-05-04: Version 1.2.2
533
534 Fixed bug in array sorting for sparse arrays (issue 326).
535
536 Added support for adding a soname when building a shared library
537 on Linux (issue 151).
538
539 Fixed bug caused by morphing internal ASCII strings to external
540 two-byte strings. Slices over ASCII strings have to forward ASCII
541 checks to the underlying buffer string.
542
543 Allowed API call-as-function handlers to be called as
544 constructors.
545
546 Fixed a crash bug where an external string was disposed but a
547 slice of the external string survived as a symbol.
548
549
ager@chromium.org3a37e9b2009-04-27 09:26:21 +00005502009-04-27: Version 1.2.1
551
552 Added EcmaScript 5 JSON object.
553
554 Fix bug in preemption support on ARM.
555
556
ager@chromium.org65dad4b2009-04-23 08:48:43 +00005572009-04-23: Version 1.2.0
558
559 Optimized floating-point operations on ARM.
560
561 Added a number of extensions to the debugger API.
562
563 Changed the enumeration order for unsigned integer keys to always
564 be numerical order.
565
566 Added a "read" extension to the shell sample.
567
568 Added support for Array.prototype.reduce and
569 Array.prototype.reduceRight.
570
571 Added an option to the SCons build to control Microsoft Visual C++
572 link-time code generation.
573
574 Fixed a number of bugs (in particular issue 315, issue 316,
575 issue 317 and issue 318).
576
577
kasperl@chromium.org2d18d102009-04-15 13:27:32 +00005782009-04-15: Version 1.1.10
579
580 Fixed crash bug that occurred when loading a const variable in the
581 presence of eval.
582
583 Allowed using with and eval in registered extensions in debug mode
584 by fixing bogus assert.
585
586 Fixed the source position for function returns to enable the
587 debugger to break there.
588
589
kasperl@chromium.orgd1e3e722009-04-14 13:38:25 +00005902009-04-14: Version 1.1.9
591
592 Made the stack traversal code in the profiler robust by avoiding
593 to look into the heap.
594
595 Added name inferencing for anonymous functions to facilitate
596 debugging and profiling.
597
598 Re-enabled stats timers in the developer shell (d8).
599
600 Fixed issue 303 by avoiding to shortcut cons-symbols.
601
602
kasperl@chromium.orgacae3782009-04-11 09:17:08 +00006032009-04-11: Version 1.1.8
604
605 Changed test-debug/ThreadedDebugging to be non-flaky (issue 96).
606
ager@chromium.org65dad4b2009-04-23 08:48:43 +0000607 Fixed step-in handling for Function.prototype.apply and call in
kasperl@chromium.orgacae3782009-04-11 09:17:08 +0000608 the debugger (issue 269).
609
610 Fixed v8::Object::DeleteHiddenValue to not bail out when there
611 are no hidden properties.
612
ager@chromium.org65dad4b2009-04-23 08:48:43 +0000613 Added workaround for crash bug, where external symbol table
kasperl@chromium.orgacae3782009-04-11 09:17:08 +0000614 entries with deleted resources would lead to NPEs when looking
615 up in the symbol table.
616
617
kasperl@chromium.org8ccb0be2009-04-07 07:21:39 +00006182009-04-07: Version 1.1.7
619
620 Added support for easily importing additional environment
621 variables into the SCons build.
622
623 Optimized strict equality checks.
624
625 Fixed crash in indexed setters on objects without a corresponding
626 getter (issue 298).
627
628 Re-enabled script compilation cache.
629
630
ager@chromium.org8682a592009-04-01 10:47:14 +00006312009-04-01: Version 1.1.6
632
633 Reverted an unsafe code generator change.
634
635
ager@chromium.org71daaf62009-04-01 07:22:49 +00006362009-04-01: Version 1.1.5
637
638 Fixed bug that caused function literals to not be optimized as
639 much as other functions.
640
641 Improved profiler support.
642
643 Fixed a crash bug in connection with debugger unloading.
644
645 Fixed a crash bug in the code generator caused by losing the
646 information that a frame element was copied.
647
648 Fixed an exception propagation bug that could cause non-null
649 return values when exceptions were thrown.
650
651
ager@chromium.org41826e72009-03-30 13:30:57 +00006522009-03-30: Version 1.1.4
653
654 Optimized String.prototype.match.
655
656 Improved the stack information in profiles.
657
658 Fixed bug in ARM port making it possible to compile the runtime
659 system for thumb mode again.
660
661 Implemented a number of optimizations in the code generator.
662
663 Fixed a number of memory leaks in tests.
664
665 Fixed crash bug in connection with script source code and external
kasperl@chromium.org8ccb0be2009-04-07 07:21:39 +0000666 strings.
ager@chromium.org41826e72009-03-30 13:30:57 +0000667
668
kasperl@chromium.orgf5aa8372009-03-24 14:47:14 +00006692009-03-24: Version 1.1.3
670
671 Fixed assertion failures in compilation of loop conditions.
672
673 Removed STL dependency from developer shell (d8).
674
675 Added infrastructure for protecting the V8 heap from corruption
676 caused by memory modifications from the outside.
677
678
ager@chromium.orgbb29dc92009-03-24 13:25:23 +00006792009-03-24: Version 1.1.2
680
681 Improved frame merge code generated by the code generator.
682
683 Optimized String.prototype.replace.
684
685 Implemented __defineGetter__ and __defineSetter__ for properties
686 with integer keys on non-array objects.
687
688 Improved debugger and profiler support.
689
690 Fixed a number of portability issues to allow compilation for
691 smaller ARM devices.
692
693 Exposed object cloning through the API.
694
695 Implemented hidden properties. This is used to expose an identity
696 hash for objects through the API.
697
698 Implemented restarting of regular expressions if their input
699 string changes representation during preemption.
700
701 Fixed a code generator bug that could cause assignments in loops
702 to be ignored if using continue to break out of the loop (issue
703 284).
704
705
ager@chromium.org3a6061e2009-03-12 14:24:36 +00007062009-03-12: Version 1.1.1
707
708 Fixed an assertion in the new compiler to take stack overflow
709 exceptions into account.
710
711 Removed exception propagation code that could cause crashes.
712
713 Fixed minor bug in debugger line number computations.
714
715 8-byte align the C stack on Linux and Windows to speed up floating
716 point computations.
717
718
kasperl@chromium.org7be3c992009-03-12 07:19:55 +00007192009-03-12: Version 1.1.0
720
721 Improved code generation infrastructure by doing simple register
722 allocation and constant folding and propagation.
723
724 Optimized regular expression matching by avoiding to create
725 intermediate string arrays and by flattening nested array
726 representations of RegExp data.
727
728 Traverse a few stack frames when recording profiler samples to
729 include partial call graphs in the profiling output.
730
731 Added support for using OProfile to profile generated code.
732
733 Added remote debugging support to the D8 developer shell.
734
735 Optimized creation of nested literals like JSON objects.
736
737 Fixed a bug in garbage collecting unused maps and turned it on by
738 default (--collect-maps).
739
740 Added support for running tests under Valgrind.
741
742
kasperl@chromium.org061ef742009-02-27 12:16:20 +00007432009-02-27: Version 1.0.3
744
745 Optimized double-to-integer conversions in bit operations by using
746 SSE3 instructions if available.
747
748 Optimized initialization sequences that store to multiple
749 properties of the same object.
750
751 Changed the D8 debugger frontend to use JSON messages.
752
753 Force garbage collections when disposing contexts.
754
755 Align code objects at 32-byte boundaries.
756
757
ager@chromium.org381abbb2009-02-25 13:23:22 +00007582009-02-25: Version 1.0.2
759
760 Improved profiling support by performing simple call stack
761 sampling for ticks and by fixing a bug in the logging of code
762 addresses.
763
764 Fixed a number of debugger issues.
765
766 Optimized code that uses eval.
767
768 Fixed a couple of bugs in the regular expression engine.
769
770 Reduced the size of generated code for certain regular expressions.
771
772 Removed JSCRE completely.
773
774 Fixed issue where test could not be run if there was a dot in the
775 checkout path.
776
777
ager@chromium.org6f10e412009-02-13 10:11:16 +00007782009-02-13: Version 1.0.1
779
780 Fixed two crash-bugs in irregexp (issue 231 and 233).
781
782 Fixed a number of minor bugs (issue 87, 227 and 228).
783
784 Added support for morphing strings to external strings on demand
785 to avoid having to create copies in the embedding code.
786
787 Removed experimental support for external symbol callbacks.
788
789
iposva@chromium.org245aa852009-02-10 00:49:54 +00007902009-02-09: Version 1.0.0
791
792 Fixed crash-bug in the code generation for case independent 16 bit
793 backreferences.
ager@chromium.org6f10e412009-02-13 10:11:16 +0000794
iposva@chromium.org245aa852009-02-10 00:49:54 +0000795 Made shells more robust in the presence of string conversion
796 failures (issue 224).
ager@chromium.org6f10e412009-02-13 10:11:16 +0000797
iposva@chromium.org245aa852009-02-10 00:49:54 +0000798 Fixed a potential infinite loop when attempting to resolve
799 eval (issue 221).
ager@chromium.org6f10e412009-02-13 10:11:16 +0000800
iposva@chromium.org245aa852009-02-10 00:49:54 +0000801 Miscellaneous fixes to the new regular expression engine.
ager@chromium.org6f10e412009-02-13 10:11:16 +0000802
iposva@chromium.org245aa852009-02-10 00:49:54 +0000803 Reduced binary by stripping unneeded text from JavaScript library and
804 minifying some JavaScript files.
805
806
ager@chromium.orgddb913d2009-01-27 10:01:48 +00008072009-01-27: Version 0.4.9
808
809 Enabled new regular expression engine.
810
811 Made a number of changes to the debugger protocol.
812
813 Fixed a number of bugs in the preemption support.
814
815 Added -p option to the developer shell to run files in parallel
816 using preemption.
817
818 Fixed a number of minor bugs (including issues 176, 187, 189, 192,
819 193, 198 and 201).
820
821 Fixed a number of bugs in the serialization/deserialization
822 support for the ARM platform.
823
824
sgjesse@chromium.org715915b2009-01-19 16:08:47 +00008252009-01-19: Version 0.4.8.1
826
827 Minor patch to debugger support.
828
829
ager@chromium.org32912102009-01-16 10:38:43 +00008302009-01-16: Version 0.4.8
831
832 Fixed string length bug on ARM (issue 171).
833
834 Made most methods in the API const.
835
836 Optimized object literals by improving data locality.
837
838 Fixed bug that caused incomplete functions to be cached in case of
sgjesse@chromium.org715915b2009-01-19 16:08:47 +0000839 stack overflow exceptions.
ager@chromium.org32912102009-01-16 10:38:43 +0000840
841 Fixed bugs that caused catch variables and variables introduced by
sgjesse@chromium.org715915b2009-01-19 16:08:47 +0000842 eval to behave incorrectly when using accessors (issues 186, 190
843 and 191).
ager@chromium.org32912102009-01-16 10:38:43 +0000844
845
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +00008462009-01-06: Version 0.4.7
847
ager@chromium.org32912102009-01-16 10:38:43 +0000848 Minor bugfixes and optimizations.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +0000849
ager@chromium.org32912102009-01-16 10:38:43 +0000850 Added command line debugger to D8 shell.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +0000851
ager@chromium.org32912102009-01-16 10:38:43 +0000852 Fixed subtle bug that caused the wrong 'this' to be used when
853 calling a caught function in a catch clause.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +0000854
ager@chromium.org32912102009-01-16 10:38:43 +0000855 Inline array loads within loops directly in the code instead of
856 always calling a stub.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +0000857
ager@chromium.org32912102009-01-16 10:38:43 +0000858
ager@chromium.org8bb60582008-12-11 12:02:20 +00008592008-12-11: Version 0.4.6
860
861 Fixed exception reporting bug where certain exceptions were
862 incorrectly reported as uncaught.
863
864 Improved the memory allocation strategy used during compilation to
865 make running out of memory when compiling huge scripts less
866 likely.
867
868 Optimized String.replace by avoiding the construction of certain
869 sub strings.
870
871 Fixed bug in code generation for large switch statements on ARM.
872
873 Fixed bug that caused V8 to change the global object template
874 passed in by the user.
875
876 Changed the API for creating object groups used during garbage
877 collection. Entire object groups are now passed to V8 instead of
878 individual members of the groups.
879
ager@chromium.org32912102009-01-16 10:38:43 +0000880
ager@chromium.orga74f0da2008-12-03 16:05:52 +00008812008-12-03: Version 0.4.5
iposva@chromium.org96f667e2008-11-26 23:48:02 +0000882
ager@chromium.orga74f0da2008-12-03 16:05:52 +0000883 Added experimental API support for allocating V8 symbols as
884 external strings.
885
886 Fixed bugs in debugging support on ARM.
887
888 Changed eval implementation to correctly detect whether or not a
889 call to eval is aliased.
890
891 Fixed bug caused by a combination of the compilation cache and
892 dictionary probing in native code. The bug caused us to sometimes
893 call functions that had not yet been compiled.
894
895 Added platform support for FreeBSD.
896
897 Added support for building V8 on Windows with either the shared or
898 static version of MSVCRT
ager@chromium.org32912102009-01-16 10:38:43 +0000899
iposva@chromium.org96f667e2008-11-26 23:48:02 +0000900 Added the v8::jscre namespace around the jscre functions to avoid
901 link errors (duplicate symbols) when building Google Chrome.
902
ager@chromium.orga74f0da2008-12-03 16:05:52 +0000903 Added support for calling a JavaScript function with the current
904 debugger execution context as its argument to the debugger
905 interface.
906
907 Changed the type of names of counters from wchar_t to char.
908
909 Changed the Windows system call used to compute daylight savings
910 time. The system call that we used to use became four times
911 slower on WinXP SP3.
912
913 Added support in the d8 developer shell for memory-mapped counters
914 and added a stats-viewer tool.
915
916 Fixed bug in upper/lower case mappings (issue 149).
917
iposva@chromium.org96f667e2008-11-26 23:48:02 +0000918
ager@chromium.org3bf7b912008-11-17 09:09:45 +00009192008-11-17: Version 0.4.4
920
921 Reduced code size by using shorter instruction encoding when
922 possible.
923
924 Added a --help option to the shell sample and to the d8 shell.
925
926 Added visual studio project files for building the ARM simulator.
927
928 Fixed a number of ARM simulator issues.
929
930 Fixed bug in out-of-memory handling on ARM.
931
932 Implemented shell support for passing arguments to a script from
933 the command line.
934
935 Fixed bug in date code that made certain date functions return -0
936 instead of 0 for dates before the epoch.
937
938 Restricted applications of eval so it can only be used in the
939 context of the associated global object.
940
941 Treat byte-order marks as whitespace characters.
ager@chromium.org32912102009-01-16 10:38:43 +0000942
943
ager@chromium.org870a0b62008-11-04 11:43:05 +00009442008-11-04: Version 0.4.3
945
946 Added support for API accessors that prohibit overwriting by
947 accessors defined in JavaScript code by using __defineGetter__ and
948 __defineSetter__.
949
950 Improved handling of conditionals in test status files.
951
952 Introduced access control in propertyIsEnumerable.
953
954 Improved performance of some string operations by caching
955 information about the type of the string between operations.
956
957 Fixed bug in fast-case code for switch statements that only have
958 integer labels.
ager@chromium.org32912102009-01-16 10:38:43 +0000959
ager@chromium.org870a0b62008-11-04 11:43:05 +0000960
kasperl@chromium.org9bbf9682008-10-30 11:53:07 +00009612008-10-30: Version 0.4.2
962
963 Improved performance of Array.prototype.concat by moving the
964 implementation to C++ (issue 123).
965
966 Fixed heap growth policy to avoid growing old space to its maximum
967 capacity before doing a garbage collection and fixed issue that
968 would lead to artificial out of memory situations (issue 129).
969
970 Fixed Date.prototype.toLocaleDateString to return the date in the
971 same format as WebKit.
972
973 Added missing initialization checks to debugger API.
974
975 Added removing of unused maps during GC.
976
977
kasperl@chromium.org9fe21c62008-10-28 08:53:51 +00009782008-10-28: Version 0.4.1
979
980 Added caching of RegExp data in compilation cache.
981
982 Added Visual Studio project file for d8 shell.
983
984 Fixed function call performance regression introduced in version
985 0.4.0 when splitting the global object in two parts (issue 120).
986
987 Fixed issue 131 by checking for empty handles before throwing and
988 reporting exceptions.
989
990
kasperl@chromium.org5a8ca6c2008-10-23 13:57:19 +00009912008-10-23: Version 0.4.0
992
993 Split the global object into two parts: The state holding global
994 object and the global object proxy.
995
996 Fixed bug that affected the value of an assignment to an element
997 in certain cases (issue 116).
998
999 Added GetPropertyNames functionality (issue 33) and extra Date
1000 functions (issue 77) to the API.
1001
1002 Changed WeakReferenceCallback to take a Persistent<Value> instead
1003 of a Persistent<Object> (issue 101).
1004
1005 Fixed issues with message reporting for exceptions in try-finally
1006 blocks (issues 73 and 75).
1007
ager@chromium.org32912102009-01-16 10:38:43 +00001008 Optimized flattening of strings and string equality checking.
kasperl@chromium.org5a8ca6c2008-10-23 13:57:19 +00001009
1010 Improved Boyer-Moore implementation for faster indexOf operations.
1011
1012 Added development shell (d8) which includes counters and
1013 completion support.
1014
1015 Fixed problem with the receiver passed to functions called from
1016 eval (issue 124).
1017
1018
ager@chromium.org7c537e22008-10-16 08:43:32 +000010192008-10-16: Version 0.3.5
1020
1021 Improved string hash-code distribution by excluding bit-field bits
1022 from the hash-code.
1023
1024 Changed string search algorithm used in indexOf from KMP to
1025 Boyer-Moore.
1026
1027 Improved the generated code for the instanceof operator.
1028
1029 Improved performance of slow-case string equality checks by
1030 specializing the code based on the string representation.
1031
1032 Improve the handling of out-of-memory situations (issue 70).
1033
1034 Improved performance of strict equality checks.
1035
1036 Improved profiler output to make it easier to see anonymous
1037 functions.
1038
1039 Improved performance of slow-case keyed loads.
1040
1041 Improved property access performance by allocating a number of
1042 properties in the front object.
1043
1044 Changed the toString behavior on the built-in object constructors
1045 to print [native code] instead of the actual source. Some web
1046 applications do not like constructors with complex toString
1047 results.
ager@chromium.org32912102009-01-16 10:38:43 +00001048
ager@chromium.org7c537e22008-10-16 08:43:32 +00001049
kasperl@chromium.org41044eb2008-10-06 08:24:46 +000010502008-10-06: Version 0.3.4
1051
1052 Changed Array.prototype.sort to use quick sort.
1053
1054 Fixed code generation issue where leaving a finally block with
1055 break or continue would accumulate elements on the expression
1056 stack (issue 86).
1057
1058 Made sure that the name accessor on functions returns the expected
1059 names for builtin JavaScript functions and C++ callback functions.
1060
1061 Added fast case code for extending the property storage array of
1062 JavaScript objects.
1063
1064 Ported switch statement optimizations introduced in version 0.3.3
1065 to the ARM code generator.
1066
1067 Allowed GCC to use strict-aliasing rules when compiling.
1068
1069 Improved performance of arguments object allocation by taking care
1070 of arguments adaptor frames in the generated code.
1071
1072 Updated the V8 benchmark suite to version 2.
1073
1074
ager@chromium.org236ad962008-09-25 09:45:57 +000010752008-09-25: Version 0.3.3
1076
1077 Improved handling of relocation information to enable more
1078 peep-hole optimizations.
1079
1080 Optimized switch statements where all labels are constant small
1081 integers.
1082
1083 Optimized String.prototype.indexOf for common cases.
1084
1085 Fixed more build issues (issue 80).
1086
1087 Fixed a couple of profiler issues.
1088
1089 Fixed bug where the body of a function created using the Function
1090 constructor was not allowed to end with a single-line comment
1091 (issue 85).
1092
1093 Improved handling of object literals by canonicalizing object
1094 literal maps. This will allow JSON objects with the same set of
1095 properties to share the same map making inline caching work better
1096 for JSON objects.
ager@chromium.org32912102009-01-16 10:38:43 +00001097
ager@chromium.org236ad962008-09-25 09:45:57 +00001098
kasperl@chromium.orgb9123622008-09-17 14:05:56 +000010992008-09-17: Version 0.3.2
1100
1101 Generalized the EvalCache into a CompilationCache and enabled it
1102 for scripts too. The current strategy is to retire all entries
1103 whenever a mark-sweep collection is started.
1104
1105 Fixed bug where switch statements containing only a default case
1106 would lead to an unbalanced stack (issue 69).
1107
1108 Fixed bug that made access to the function in a named function
1109 expression impossible in certain situations (issue 24).
1110
1111 Fixed even more build issues.
1112
1113 Optimized calling conventions on ARM. The conventions on ARM and
1114 IA-32 now match.
1115
1116 Removed static initializers for flags and counters.
1117
1118 Improved inline caching behavior for uncommon cases where lazily
1119 loading Date and RegExp code could force certain code paths go
1120 megamorphic.
1121
1122 Removed arguments adaption for builtins written in C++. This
1123 makes Array.prototype.push and Array.prototype.pop slightly
1124 faster.
1125
1126
ager@chromium.org9258b6b2008-09-11 09:11:10 +000011272008-09-11: Version 0.3.1
1128
1129 Fixed a number of build issues.
1130
1131 Fixed problem with missing I-cache flusing on ARM.
1132
1133 Changed space layout in memory management by splitting up
1134 code space into old data space and code space.
1135
1136 Added utf-8 conversion support to the API (issue 57).
1137
1138 Optimized repeated calls to eval with the same strings. These
1139 repeated calls are common in web applications.
1140
1141 Added Xcode project file.
1142
1143 Optimized a couple of Array operation.
1144
1145 Fixed parser bug by checking for end-of-string when parsing break
1146 and continue (issue 35).
1147
1148 Fixed problem where asian characters were not categorized as
1149 letters.
1150
1151 Fixed bug that disallowed calling functions fetched from an array
1152 using a string as an array index (issue 32).
1153
1154 Fixed bug where the internal field count on object templates were
1155 sometimes ignored (issue 54).
1156
1157 Added -f option to the shell sample for compatibility with other
1158 engines (issue 18).
1159
1160 Added source info to TryCatches in the API.
1161
1162 Fixed problem where the seed for the random number generator was
1163 clipped in a double to unsigned int conversion.
1164
1165 Fixed bug where cons string symbols were sometimes converted to
1166 non-symbol flat strings during GC.
1167
1168 Fixed bug in error reporting when attempting to convert null to an
1169 object.
ager@chromium.org32912102009-01-16 10:38:43 +00001170
1171
ager@chromium.orgc27e4e72008-09-04 13:52:27 +000011722008-09-04: Version 0.3.0
1173
1174 Added support for running tests on the ARM simulator.
1175
1176 Fixed bug in the 'in' operator where negative indices were not
1177 treated correctly.
1178
1179 Fixed build issues on gcc-4.3.1.
1180
1181 Changed Date.prototype.toLocaleTimeString to not print the
1182 timezone part of the time.
1183
1184 Renamed debug.h to v8-debug.h to reduce the risk of name conflicts
1185 with user code.
1186
1187
v8.team.kasperl727e9952008-09-02 14:56:44 +000011882008-09-02: Version 0.2.5
1189
1190 Renamed the top level directory 'public' to 'include'.
1191
1192 Added 'env' option to the SCons build scripts to support
1193 overriding the ENV part of the build environment. This is mostly
1194 to support Windows builds in cases where SCons cannot find the
1195 correct paths to the Windows SDK, as these paths cannot be passed
1196 through shell environment variables.
1197
1198 Enabled "Buffer Security Check" on for the Windows SCons build and
1199 added the linker option /OPT:ICF as an optimization.
1200
1201 Added the V8 benchmark suite to the repository.
1202
1203
mads.s.ager@gmail.com9a4089a2008-09-01 08:55:01 +000012042008-09-01: Version 0.2.4
1205
1206 Included mjsunit JavaScript test suite and C++ unit tests.
1207
1208 Changed the shell sample to not print the result of executing a
1209 script provided on the command line.
1210
1211 Fixed issue when building samples on Windows using a shared V8
1212 library. Added visibility option on Linux build which makes the
1213 generated library 18% smaller.
1214
1215 Changed build system to accept multiple build modes in one build
1216 and generate separate objects, libraries and executables for each
1217 mode.
1218
1219 Removed deferred negation optimization (a * -b => -(a * b)) since
1220 this visibly changes operand conversion order.
1221
1222 Improved parsing performance by introducing stack guard in
1223 preparsing. Without a stack guard preparsing always bails out
1224 with stack overflow.
1225
1226 Changed shell sample to take flags directly from the command-line.
1227 Added API call that implements this.
1228
1229 Added load, quit and version functions to the shell sample so it's
1230 easier to run benchmarks and tests.
1231
1232 Fixed issue with building samples and cctests on 64-bit machines.
1233
1234 Fixed bug in the runtime system where the prototype chain was not
1235 always searched for a setter when setting a property that does not
1236 exist locally.
ager@chromium.org32912102009-01-16 10:38:43 +00001237
mads.s.ager@gmail.com9a4089a2008-09-01 08:55:01 +00001238
mads.s.agercbaa0602008-08-14 13:41:48 +000012392008-08-14: Version 0.2.3
1240
1241 Improved performance of garbage collection by moving the
1242 function that updates pointers during compacting collection
1243 into the updating visitor. This gives the compiler a better
1244 chance to inline and avoid a function call per (potential)
1245 pointer.
1246
1247 Extended the shell sample with a --runtime-flags option.
1248
1249 Added Visual Studio project files for the shell.cc and
1250 process.cc samples.
1251
1252
12532008-08-13: Version 0.2.2
mads.s.ager31e71382008-08-13 09:32:07 +00001254
1255 Improved performance of garbage collection by changing the way
1256 we use the marking stack in the event of stack overflow during
1257 full garbage collection and by changing the way we mark roots.
1258
1259 Cleaned up ARM version by removing top of stack caching and by
1260 introducing push/pop elimination.
1261
1262 Cleaned up the way runtime functions are called to allow
1263 runtime calls with no arguments.
1264
1265 Changed Windows build options to make sure that exceptions are
1266 disabled and that optimization flags are enabled.
1267
1268 Added first version of Visual Studio project files.
1269
1270
mads.s.agercbaa0602008-08-14 13:41:48 +000012712008-08-06: Version 0.2.1
mads.s.ager@gmail.com769cc962008-08-06 10:02:49 +00001272
1273 Improved performance of unary addition by avoiding runtime calls.
1274
1275 Fixed the handling of '>' and '<=' to use right-to-left conversion
1276 and left-to-right evaluation as specified by ECMA-262.
1277
1278 Fixed a branch elimination bug on the ARM platform where incorrect
1279 code was generated because of overly aggressive branch
1280 elimination.
1281
1282 Improved performance of code that repeatedly assigns the same
1283 function to the same property of different objects with the same
1284 map.
1285
1286 Untangled DEBUG and ENABLE_DISASSEMBLER defines. The disassembler
1287 no longer expects DEBUG to be defined.
1288
1289 Added platform-nullos.cc to serve as the basis for new platform
1290 implementations.
1291
mads.s.ager31e71382008-08-13 09:32:07 +00001292
mads.s.agercbaa0602008-08-14 13:41:48 +000012932008-07-30: Version 0.2.0
kasper.lund7276f142008-07-30 08:49:36 +00001294
1295 Changed all text files to have native svn:eol-style.
1296
1297 Added a few samples and support for building them. The samples
1298 include a simple shell that can be used to benchmark and test V8.
1299
1300 Changed V8::GetVersion to return the version as a string.
1301
1302 Added source for lazily loaded scripts to snapshots and made
1303 serialization non-destructive.
1304
1305 Improved ARM support by fixing the write barrier code to use
1306 aligned loads and stores and by removing premature locals
1307 optimization that relied on broken support for callee-saved
1308 registers (removed).
1309
1310 Refactored the code for marking live objects during garbage
1311 collection and the code for allocating objects in paged
1312 spaces. Introduced an abstraction for the map word of a heap-
1313 allocated object and changed the memory allocator to allocate
1314 executable memory only for spaces that may contain code objects.
1315
1316 Moved StringBuilder to utils.h and ScopedLock to platform.h, where
1317 they can be used by debugging and logging modules. Added
1318 thread-safe message queues for dealing with debugger events.
1319
1320 Fixed the source code reported by toString for certain builtin
1321 empty functions and made sure that the prototype property of a
1322 function is enumerable.
1323
1324 Improved performance of converting values to condition flags in
1325 generated code.
1326
1327 Merged disassembler-{arch} files.
1328
1329
mads.s.agercbaa0602008-08-14 13:41:48 +000013302008-07-28: Version 0.1.4
kasper.lundaf4734f2008-07-28 12:50:18 +00001331
1332 Added support for storing JavaScript stack traces in a stack
1333 allocated buffer to make it visible in shallow core dumps.
1334 Controlled by the --preallocate-message-memory flag which is
1335 disabled by default.
1336
1337
mads.s.agercbaa0602008-08-14 13:41:48 +000013382008-07-25: Version 0.1.3
kasper.lund44510672008-07-25 07:37:58 +00001339
1340 Fixed bug in JSObject::GetPropertyAttributePostInterceptor where
1341 map transitions would count as properties.
1342
1343 Allowed aliased eval invocations by treating them as evals in the
1344 global context. This may change in the future.
1345
1346 Added support for accessing the last entered context through the
1347 API and renamed Context::Current to Context::GetCurrent and
1348 Context::GetSecurityContext to Context::GetCurrentSecurityContext.
1349
1350 Fixed bug in the debugger that would cause the debugger scripts to
1351 be recursively loaded and changed all disabling of interrupts to
1352 be block-structured.
1353
1354 Made snapshot data read-only to allow it to be more easily shared
1355 across multiple users of V8 when linked as a shared library.
1356
1357
mads.s.agercbaa0602008-08-14 13:41:48 +000013582008-07-16: Version 0.1.2
kasper.lund212ac232008-07-16 07:07:30 +00001359
1360 Fixed building on Mac OS X by recognizing i386 and friends as
1361 IA-32 platforms.
1362
1363 Added propagation of stack overflow exceptions that occur while
1364 compiling nested functions.
1365
1366 Improved debugger with support for recursive break points and
1367 handling of exceptions that occur in the debugger JavaScript code.
1368
1369 Renamed GetInternal to GetInternalField and SetInternal to
1370 SetInternalField in the API and moved InternalFieldCount and
1371 SetInternalFieldCount from FunctionTemplate to ObjectTemplate.
1372
1373
mads.s.agercbaa0602008-08-14 13:41:48 +000013742008-07-09: Version 0.1.1
kasper.lundbd3ec4e2008-07-09 11:06:54 +00001375
1376 Fixed bug in stack overflow check code for IA-32 targets where a
1377 non-tagged value in register eax was pushed to the stack.
1378
1379 Fixed potential quadratic behavior when converting strings to
1380 numbers.
1381
1382 Fixed bug where the return value from Object::SetProperty could
1383 end up being the property holder instead of the written value.
1384
1385 Improved debugger support by allowing nested break points and by
1386 dealing with stack-overflows when compiling functions before
1387 setting break points in them.
1388
1389
mads.s.agercbaa0602008-08-14 13:41:48 +000013902008-07-03: Version 0.1.0
christian.plesner.hansen43d26ec2008-07-03 15:10:15 +00001391
kasper.lundbd3ec4e2008-07-09 11:06:54 +00001392 Initial export.
christian.plesner.hansen43d26ec2008-07-03 15:10:15 +00001393