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