blob: 5d963d0b549aee0afb80f3d2b6b9a96a587971ae [file] [log] [blame]
kasperl@chromium.org061ef742009-02-27 12:16:20 +000012009-02-27: Version 1.0.3
2
3 Optimized double-to-integer conversions in bit operations by using
4 SSE3 instructions if available.
5
6 Optimized initialization sequences that store to multiple
7 properties of the same object.
8
9 Changed the D8 debugger frontend to use JSON messages.
10
11 Force garbage collections when disposing contexts.
12
13 Align code objects at 32-byte boundaries.
14
15
ager@chromium.org381abbb2009-02-25 13:23:22 +0000162009-02-25: Version 1.0.2
17
18 Improved profiling support by performing simple call stack
19 sampling for ticks and by fixing a bug in the logging of code
20 addresses.
21
22 Fixed a number of debugger issues.
23
24 Optimized code that uses eval.
25
26 Fixed a couple of bugs in the regular expression engine.
27
28 Reduced the size of generated code for certain regular expressions.
29
30 Removed JSCRE completely.
31
32 Fixed issue where test could not be run if there was a dot in the
33 checkout path.
34
35
ager@chromium.org6f10e412009-02-13 10:11:16 +0000362009-02-13: Version 1.0.1
37
38 Fixed two crash-bugs in irregexp (issue 231 and 233).
39
40 Fixed a number of minor bugs (issue 87, 227 and 228).
41
42 Added support for morphing strings to external strings on demand
43 to avoid having to create copies in the embedding code.
44
45 Removed experimental support for external symbol callbacks.
46
47
iposva@chromium.org245aa852009-02-10 00:49:54 +0000482009-02-09: Version 1.0.0
49
50 Fixed crash-bug in the code generation for case independent 16 bit
51 backreferences.
ager@chromium.org6f10e412009-02-13 10:11:16 +000052
iposva@chromium.org245aa852009-02-10 00:49:54 +000053 Made shells more robust in the presence of string conversion
54 failures (issue 224).
ager@chromium.org6f10e412009-02-13 10:11:16 +000055
iposva@chromium.org245aa852009-02-10 00:49:54 +000056 Fixed a potential infinite loop when attempting to resolve
57 eval (issue 221).
ager@chromium.org6f10e412009-02-13 10:11:16 +000058
iposva@chromium.org245aa852009-02-10 00:49:54 +000059 Miscellaneous fixes to the new regular expression engine.
ager@chromium.org6f10e412009-02-13 10:11:16 +000060
iposva@chromium.org245aa852009-02-10 00:49:54 +000061 Reduced binary by stripping unneeded text from JavaScript library and
62 minifying some JavaScript files.
63
64
ager@chromium.orgddb913d2009-01-27 10:01:48 +0000652009-01-27: Version 0.4.9
66
67 Enabled new regular expression engine.
68
69 Made a number of changes to the debugger protocol.
70
71 Fixed a number of bugs in the preemption support.
72
73 Added -p option to the developer shell to run files in parallel
74 using preemption.
75
76 Fixed a number of minor bugs (including issues 176, 187, 189, 192,
77 193, 198 and 201).
78
79 Fixed a number of bugs in the serialization/deserialization
80 support for the ARM platform.
81
82
sgjesse@chromium.org715915b2009-01-19 16:08:47 +0000832009-01-19: Version 0.4.8.1
84
85 Minor patch to debugger support.
86
87
ager@chromium.org32912102009-01-16 10:38:43 +0000882009-01-16: Version 0.4.8
89
90 Fixed string length bug on ARM (issue 171).
91
92 Made most methods in the API const.
93
94 Optimized object literals by improving data locality.
95
96 Fixed bug that caused incomplete functions to be cached in case of
sgjesse@chromium.org715915b2009-01-19 16:08:47 +000097 stack overflow exceptions.
ager@chromium.org32912102009-01-16 10:38:43 +000098
99 Fixed bugs that caused catch variables and variables introduced by
sgjesse@chromium.org715915b2009-01-19 16:08:47 +0000100 eval to behave incorrectly when using accessors (issues 186, 190
101 and 191).
ager@chromium.org32912102009-01-16 10:38:43 +0000102
103
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +00001042009-01-06: Version 0.4.7
105
ager@chromium.org32912102009-01-16 10:38:43 +0000106 Minor bugfixes and optimizations.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +0000107
ager@chromium.org32912102009-01-16 10:38:43 +0000108 Added command line debugger to D8 shell.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +0000109
ager@chromium.org32912102009-01-16 10:38:43 +0000110 Fixed subtle bug that caused the wrong 'this' to be used when
111 calling a caught function in a catch clause.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +0000112
ager@chromium.org32912102009-01-16 10:38:43 +0000113 Inline array loads within loops directly in the code instead of
114 always calling a stub.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +0000115
ager@chromium.org32912102009-01-16 10:38:43 +0000116
ager@chromium.org8bb60582008-12-11 12:02:20 +00001172008-12-11: Version 0.4.6
118
119 Fixed exception reporting bug where certain exceptions were
120 incorrectly reported as uncaught.
121
122 Improved the memory allocation strategy used during compilation to
123 make running out of memory when compiling huge scripts less
124 likely.
125
126 Optimized String.replace by avoiding the construction of certain
127 sub strings.
128
129 Fixed bug in code generation for large switch statements on ARM.
130
131 Fixed bug that caused V8 to change the global object template
132 passed in by the user.
133
134 Changed the API for creating object groups used during garbage
135 collection. Entire object groups are now passed to V8 instead of
136 individual members of the groups.
137
ager@chromium.org32912102009-01-16 10:38:43 +0000138
ager@chromium.orga74f0da2008-12-03 16:05:52 +00001392008-12-03: Version 0.4.5
iposva@chromium.org96f667e2008-11-26 23:48:02 +0000140
ager@chromium.orga74f0da2008-12-03 16:05:52 +0000141 Added experimental API support for allocating V8 symbols as
142 external strings.
143
144 Fixed bugs in debugging support on ARM.
145
146 Changed eval implementation to correctly detect whether or not a
147 call to eval is aliased.
148
149 Fixed bug caused by a combination of the compilation cache and
150 dictionary probing in native code. The bug caused us to sometimes
151 call functions that had not yet been compiled.
152
153 Added platform support for FreeBSD.
154
155 Added support for building V8 on Windows with either the shared or
156 static version of MSVCRT
ager@chromium.org32912102009-01-16 10:38:43 +0000157
iposva@chromium.org96f667e2008-11-26 23:48:02 +0000158 Added the v8::jscre namespace around the jscre functions to avoid
159 link errors (duplicate symbols) when building Google Chrome.
160
ager@chromium.orga74f0da2008-12-03 16:05:52 +0000161 Added support for calling a JavaScript function with the current
162 debugger execution context as its argument to the debugger
163 interface.
164
165 Changed the type of names of counters from wchar_t to char.
166
167 Changed the Windows system call used to compute daylight savings
168 time. The system call that we used to use became four times
169 slower on WinXP SP3.
170
171 Added support in the d8 developer shell for memory-mapped counters
172 and added a stats-viewer tool.
173
174 Fixed bug in upper/lower case mappings (issue 149).
175
iposva@chromium.org96f667e2008-11-26 23:48:02 +0000176
ager@chromium.org3bf7b912008-11-17 09:09:45 +00001772008-11-17: Version 0.4.4
178
179 Reduced code size by using shorter instruction encoding when
180 possible.
181
182 Added a --help option to the shell sample and to the d8 shell.
183
184 Added visual studio project files for building the ARM simulator.
185
186 Fixed a number of ARM simulator issues.
187
188 Fixed bug in out-of-memory handling on ARM.
189
190 Implemented shell support for passing arguments to a script from
191 the command line.
192
193 Fixed bug in date code that made certain date functions return -0
194 instead of 0 for dates before the epoch.
195
196 Restricted applications of eval so it can only be used in the
197 context of the associated global object.
198
199 Treat byte-order marks as whitespace characters.
ager@chromium.org32912102009-01-16 10:38:43 +0000200
201
ager@chromium.org870a0b62008-11-04 11:43:05 +00002022008-11-04: Version 0.4.3
203
204 Added support for API accessors that prohibit overwriting by
205 accessors defined in JavaScript code by using __defineGetter__ and
206 __defineSetter__.
207
208 Improved handling of conditionals in test status files.
209
210 Introduced access control in propertyIsEnumerable.
211
212 Improved performance of some string operations by caching
213 information about the type of the string between operations.
214
215 Fixed bug in fast-case code for switch statements that only have
216 integer labels.
ager@chromium.org32912102009-01-16 10:38:43 +0000217
ager@chromium.org870a0b62008-11-04 11:43:05 +0000218
kasperl@chromium.org9bbf9682008-10-30 11:53:07 +00002192008-10-30: Version 0.4.2
220
221 Improved performance of Array.prototype.concat by moving the
222 implementation to C++ (issue 123).
223
224 Fixed heap growth policy to avoid growing old space to its maximum
225 capacity before doing a garbage collection and fixed issue that
226 would lead to artificial out of memory situations (issue 129).
227
228 Fixed Date.prototype.toLocaleDateString to return the date in the
229 same format as WebKit.
230
231 Added missing initialization checks to debugger API.
232
233 Added removing of unused maps during GC.
234
235
kasperl@chromium.org9fe21c62008-10-28 08:53:51 +00002362008-10-28: Version 0.4.1
237
238 Added caching of RegExp data in compilation cache.
239
240 Added Visual Studio project file for d8 shell.
241
242 Fixed function call performance regression introduced in version
243 0.4.0 when splitting the global object in two parts (issue 120).
244
245 Fixed issue 131 by checking for empty handles before throwing and
246 reporting exceptions.
247
248
kasperl@chromium.org5a8ca6c2008-10-23 13:57:19 +00002492008-10-23: Version 0.4.0
250
251 Split the global object into two parts: The state holding global
252 object and the global object proxy.
253
254 Fixed bug that affected the value of an assignment to an element
255 in certain cases (issue 116).
256
257 Added GetPropertyNames functionality (issue 33) and extra Date
258 functions (issue 77) to the API.
259
260 Changed WeakReferenceCallback to take a Persistent<Value> instead
261 of a Persistent<Object> (issue 101).
262
263 Fixed issues with message reporting for exceptions in try-finally
264 blocks (issues 73 and 75).
265
ager@chromium.org32912102009-01-16 10:38:43 +0000266 Optimized flattening of strings and string equality checking.
kasperl@chromium.org5a8ca6c2008-10-23 13:57:19 +0000267
268 Improved Boyer-Moore implementation for faster indexOf operations.
269
270 Added development shell (d8) which includes counters and
271 completion support.
272
273 Fixed problem with the receiver passed to functions called from
274 eval (issue 124).
275
276
ager@chromium.org7c537e22008-10-16 08:43:32 +00002772008-10-16: Version 0.3.5
278
279 Improved string hash-code distribution by excluding bit-field bits
280 from the hash-code.
281
282 Changed string search algorithm used in indexOf from KMP to
283 Boyer-Moore.
284
285 Improved the generated code for the instanceof operator.
286
287 Improved performance of slow-case string equality checks by
288 specializing the code based on the string representation.
289
290 Improve the handling of out-of-memory situations (issue 70).
291
292 Improved performance of strict equality checks.
293
294 Improved profiler output to make it easier to see anonymous
295 functions.
296
297 Improved performance of slow-case keyed loads.
298
299 Improved property access performance by allocating a number of
300 properties in the front object.
301
302 Changed the toString behavior on the built-in object constructors
303 to print [native code] instead of the actual source. Some web
304 applications do not like constructors with complex toString
305 results.
ager@chromium.org32912102009-01-16 10:38:43 +0000306
ager@chromium.org7c537e22008-10-16 08:43:32 +0000307
kasperl@chromium.org41044eb2008-10-06 08:24:46 +00003082008-10-06: Version 0.3.4
309
310 Changed Array.prototype.sort to use quick sort.
311
312 Fixed code generation issue where leaving a finally block with
313 break or continue would accumulate elements on the expression
314 stack (issue 86).
315
316 Made sure that the name accessor on functions returns the expected
317 names for builtin JavaScript functions and C++ callback functions.
318
319 Added fast case code for extending the property storage array of
320 JavaScript objects.
321
322 Ported switch statement optimizations introduced in version 0.3.3
323 to the ARM code generator.
324
325 Allowed GCC to use strict-aliasing rules when compiling.
326
327 Improved performance of arguments object allocation by taking care
328 of arguments adaptor frames in the generated code.
329
330 Updated the V8 benchmark suite to version 2.
331
332
ager@chromium.org236ad962008-09-25 09:45:57 +00003332008-09-25: Version 0.3.3
334
335 Improved handling of relocation information to enable more
336 peep-hole optimizations.
337
338 Optimized switch statements where all labels are constant small
339 integers.
340
341 Optimized String.prototype.indexOf for common cases.
342
343 Fixed more build issues (issue 80).
344
345 Fixed a couple of profiler issues.
346
347 Fixed bug where the body of a function created using the Function
348 constructor was not allowed to end with a single-line comment
349 (issue 85).
350
351 Improved handling of object literals by canonicalizing object
352 literal maps. This will allow JSON objects with the same set of
353 properties to share the same map making inline caching work better
354 for JSON objects.
ager@chromium.org32912102009-01-16 10:38:43 +0000355
ager@chromium.org236ad962008-09-25 09:45:57 +0000356
kasperl@chromium.orgb9123622008-09-17 14:05:56 +00003572008-09-17: Version 0.3.2
358
359 Generalized the EvalCache into a CompilationCache and enabled it
360 for scripts too. The current strategy is to retire all entries
361 whenever a mark-sweep collection is started.
362
363 Fixed bug where switch statements containing only a default case
364 would lead to an unbalanced stack (issue 69).
365
366 Fixed bug that made access to the function in a named function
367 expression impossible in certain situations (issue 24).
368
369 Fixed even more build issues.
370
371 Optimized calling conventions on ARM. The conventions on ARM and
372 IA-32 now match.
373
374 Removed static initializers for flags and counters.
375
376 Improved inline caching behavior for uncommon cases where lazily
377 loading Date and RegExp code could force certain code paths go
378 megamorphic.
379
380 Removed arguments adaption for builtins written in C++. This
381 makes Array.prototype.push and Array.prototype.pop slightly
382 faster.
383
384
ager@chromium.org9258b6b2008-09-11 09:11:10 +00003852008-09-11: Version 0.3.1
386
387 Fixed a number of build issues.
388
389 Fixed problem with missing I-cache flusing on ARM.
390
391 Changed space layout in memory management by splitting up
392 code space into old data space and code space.
393
394 Added utf-8 conversion support to the API (issue 57).
395
396 Optimized repeated calls to eval with the same strings. These
397 repeated calls are common in web applications.
398
399 Added Xcode project file.
400
401 Optimized a couple of Array operation.
402
403 Fixed parser bug by checking for end-of-string when parsing break
404 and continue (issue 35).
405
406 Fixed problem where asian characters were not categorized as
407 letters.
408
409 Fixed bug that disallowed calling functions fetched from an array
410 using a string as an array index (issue 32).
411
412 Fixed bug where the internal field count on object templates were
413 sometimes ignored (issue 54).
414
415 Added -f option to the shell sample for compatibility with other
416 engines (issue 18).
417
418 Added source info to TryCatches in the API.
419
420 Fixed problem where the seed for the random number generator was
421 clipped in a double to unsigned int conversion.
422
423 Fixed bug where cons string symbols were sometimes converted to
424 non-symbol flat strings during GC.
425
426 Fixed bug in error reporting when attempting to convert null to an
427 object.
ager@chromium.org32912102009-01-16 10:38:43 +0000428
429
ager@chromium.orgc27e4e72008-09-04 13:52:27 +00004302008-09-04: Version 0.3.0
431
432 Added support for running tests on the ARM simulator.
433
434 Fixed bug in the 'in' operator where negative indices were not
435 treated correctly.
436
437 Fixed build issues on gcc-4.3.1.
438
439 Changed Date.prototype.toLocaleTimeString to not print the
440 timezone part of the time.
441
442 Renamed debug.h to v8-debug.h to reduce the risk of name conflicts
443 with user code.
444
445
v8.team.kasperl727e9952008-09-02 14:56:44 +00004462008-09-02: Version 0.2.5
447
448 Renamed the top level directory 'public' to 'include'.
449
450 Added 'env' option to the SCons build scripts to support
451 overriding the ENV part of the build environment. This is mostly
452 to support Windows builds in cases where SCons cannot find the
453 correct paths to the Windows SDK, as these paths cannot be passed
454 through shell environment variables.
455
456 Enabled "Buffer Security Check" on for the Windows SCons build and
457 added the linker option /OPT:ICF as an optimization.
458
459 Added the V8 benchmark suite to the repository.
460
461
mads.s.ager@gmail.com9a4089a2008-09-01 08:55:01 +00004622008-09-01: Version 0.2.4
463
464 Included mjsunit JavaScript test suite and C++ unit tests.
465
466 Changed the shell sample to not print the result of executing a
467 script provided on the command line.
468
469 Fixed issue when building samples on Windows using a shared V8
470 library. Added visibility option on Linux build which makes the
471 generated library 18% smaller.
472
473 Changed build system to accept multiple build modes in one build
474 and generate separate objects, libraries and executables for each
475 mode.
476
477 Removed deferred negation optimization (a * -b => -(a * b)) since
478 this visibly changes operand conversion order.
479
480 Improved parsing performance by introducing stack guard in
481 preparsing. Without a stack guard preparsing always bails out
482 with stack overflow.
483
484 Changed shell sample to take flags directly from the command-line.
485 Added API call that implements this.
486
487 Added load, quit and version functions to the shell sample so it's
488 easier to run benchmarks and tests.
489
490 Fixed issue with building samples and cctests on 64-bit machines.
491
492 Fixed bug in the runtime system where the prototype chain was not
493 always searched for a setter when setting a property that does not
494 exist locally.
ager@chromium.org32912102009-01-16 10:38:43 +0000495
mads.s.ager@gmail.com9a4089a2008-09-01 08:55:01 +0000496
mads.s.agercbaa0602008-08-14 13:41:48 +00004972008-08-14: Version 0.2.3
498
499 Improved performance of garbage collection by moving the
500 function that updates pointers during compacting collection
501 into the updating visitor. This gives the compiler a better
502 chance to inline and avoid a function call per (potential)
503 pointer.
504
505 Extended the shell sample with a --runtime-flags option.
506
507 Added Visual Studio project files for the shell.cc and
508 process.cc samples.
509
510
5112008-08-13: Version 0.2.2
mads.s.ager31e71382008-08-13 09:32:07 +0000512
513 Improved performance of garbage collection by changing the way
514 we use the marking stack in the event of stack overflow during
515 full garbage collection and by changing the way we mark roots.
516
517 Cleaned up ARM version by removing top of stack caching and by
518 introducing push/pop elimination.
519
520 Cleaned up the way runtime functions are called to allow
521 runtime calls with no arguments.
522
523 Changed Windows build options to make sure that exceptions are
524 disabled and that optimization flags are enabled.
525
526 Added first version of Visual Studio project files.
527
528
mads.s.agercbaa0602008-08-14 13:41:48 +00005292008-08-06: Version 0.2.1
mads.s.ager@gmail.com769cc962008-08-06 10:02:49 +0000530
531 Improved performance of unary addition by avoiding runtime calls.
532
533 Fixed the handling of '>' and '<=' to use right-to-left conversion
534 and left-to-right evaluation as specified by ECMA-262.
535
536 Fixed a branch elimination bug on the ARM platform where incorrect
537 code was generated because of overly aggressive branch
538 elimination.
539
540 Improved performance of code that repeatedly assigns the same
541 function to the same property of different objects with the same
542 map.
543
544 Untangled DEBUG and ENABLE_DISASSEMBLER defines. The disassembler
545 no longer expects DEBUG to be defined.
546
547 Added platform-nullos.cc to serve as the basis for new platform
548 implementations.
549
mads.s.ager31e71382008-08-13 09:32:07 +0000550
mads.s.agercbaa0602008-08-14 13:41:48 +00005512008-07-30: Version 0.2.0
kasper.lund7276f142008-07-30 08:49:36 +0000552
553 Changed all text files to have native svn:eol-style.
554
555 Added a few samples and support for building them. The samples
556 include a simple shell that can be used to benchmark and test V8.
557
558 Changed V8::GetVersion to return the version as a string.
559
560 Added source for lazily loaded scripts to snapshots and made
561 serialization non-destructive.
562
563 Improved ARM support by fixing the write barrier code to use
564 aligned loads and stores and by removing premature locals
565 optimization that relied on broken support for callee-saved
566 registers (removed).
567
568 Refactored the code for marking live objects during garbage
569 collection and the code for allocating objects in paged
570 spaces. Introduced an abstraction for the map word of a heap-
571 allocated object and changed the memory allocator to allocate
572 executable memory only for spaces that may contain code objects.
573
574 Moved StringBuilder to utils.h and ScopedLock to platform.h, where
575 they can be used by debugging and logging modules. Added
576 thread-safe message queues for dealing with debugger events.
577
578 Fixed the source code reported by toString for certain builtin
579 empty functions and made sure that the prototype property of a
580 function is enumerable.
581
582 Improved performance of converting values to condition flags in
583 generated code.
584
585 Merged disassembler-{arch} files.
586
587
mads.s.agercbaa0602008-08-14 13:41:48 +00005882008-07-28: Version 0.1.4
kasper.lundaf4734f2008-07-28 12:50:18 +0000589
590 Added support for storing JavaScript stack traces in a stack
591 allocated buffer to make it visible in shallow core dumps.
592 Controlled by the --preallocate-message-memory flag which is
593 disabled by default.
594
595
mads.s.agercbaa0602008-08-14 13:41:48 +00005962008-07-25: Version 0.1.3
kasper.lund44510672008-07-25 07:37:58 +0000597
598 Fixed bug in JSObject::GetPropertyAttributePostInterceptor where
599 map transitions would count as properties.
600
601 Allowed aliased eval invocations by treating them as evals in the
602 global context. This may change in the future.
603
604 Added support for accessing the last entered context through the
605 API and renamed Context::Current to Context::GetCurrent and
606 Context::GetSecurityContext to Context::GetCurrentSecurityContext.
607
608 Fixed bug in the debugger that would cause the debugger scripts to
609 be recursively loaded and changed all disabling of interrupts to
610 be block-structured.
611
612 Made snapshot data read-only to allow it to be more easily shared
613 across multiple users of V8 when linked as a shared library.
614
615
mads.s.agercbaa0602008-08-14 13:41:48 +00006162008-07-16: Version 0.1.2
kasper.lund212ac232008-07-16 07:07:30 +0000617
618 Fixed building on Mac OS X by recognizing i386 and friends as
619 IA-32 platforms.
620
621 Added propagation of stack overflow exceptions that occur while
622 compiling nested functions.
623
624 Improved debugger with support for recursive break points and
625 handling of exceptions that occur in the debugger JavaScript code.
626
627 Renamed GetInternal to GetInternalField and SetInternal to
628 SetInternalField in the API and moved InternalFieldCount and
629 SetInternalFieldCount from FunctionTemplate to ObjectTemplate.
630
631
mads.s.agercbaa0602008-08-14 13:41:48 +00006322008-07-09: Version 0.1.1
kasper.lundbd3ec4e2008-07-09 11:06:54 +0000633
634 Fixed bug in stack overflow check code for IA-32 targets where a
635 non-tagged value in register eax was pushed to the stack.
636
637 Fixed potential quadratic behavior when converting strings to
638 numbers.
639
640 Fixed bug where the return value from Object::SetProperty could
641 end up being the property holder instead of the written value.
642
643 Improved debugger support by allowing nested break points and by
644 dealing with stack-overflows when compiling functions before
645 setting break points in them.
646
647
mads.s.agercbaa0602008-08-14 13:41:48 +00006482008-07-03: Version 0.1.0
christian.plesner.hansen43d26ec2008-07-03 15:10:15 +0000649
kasper.lundbd3ec4e2008-07-09 11:06:54 +0000650 Initial export.
christian.plesner.hansen43d26ec2008-07-03 15:10:15 +0000651