blob: 25ace2ea29548af57e83e1c813c0e47938611e35 [file] [log] [blame]
ager@chromium.org32912102009-01-16 10:38:43 +000012009-01-16: Version 0.4.8
2
3 Fixed string length bug on ARM (issue 171).
4
5 Made most methods in the API const.
6
7 Optimized object literals by improving data locality.
8
9 Fixed bug that caused incomplete functions to be cached in case of
10 stack overflow exceptions.
11
12 Fixed bugs that caused catch variables and variables introduced by
13 eval to behave incorrectly when using accessors (issues 186, 190
14 and 191).
15
16
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +0000172009-01-06: Version 0.4.7
18
ager@chromium.org32912102009-01-16 10:38:43 +000019 Minor bugfixes and optimizations.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +000020
ager@chromium.org32912102009-01-16 10:38:43 +000021 Added command line debugger to D8 shell.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +000022
ager@chromium.org32912102009-01-16 10:38:43 +000023 Fixed subtle bug that caused the wrong 'this' to be used when
24 calling a caught function in a catch clause.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +000025
ager@chromium.org32912102009-01-16 10:38:43 +000026 Inline array loads within loops directly in the code instead of
27 always calling a stub.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +000028
ager@chromium.org32912102009-01-16 10:38:43 +000029
ager@chromium.org8bb60582008-12-11 12:02:20 +0000302008-12-11: Version 0.4.6
31
32 Fixed exception reporting bug where certain exceptions were
33 incorrectly reported as uncaught.
34
35 Improved the memory allocation strategy used during compilation to
36 make running out of memory when compiling huge scripts less
37 likely.
38
39 Optimized String.replace by avoiding the construction of certain
40 sub strings.
41
42 Fixed bug in code generation for large switch statements on ARM.
43
44 Fixed bug that caused V8 to change the global object template
45 passed in by the user.
46
47 Changed the API for creating object groups used during garbage
48 collection. Entire object groups are now passed to V8 instead of
49 individual members of the groups.
50
ager@chromium.org32912102009-01-16 10:38:43 +000051
ager@chromium.orga74f0da2008-12-03 16:05:52 +0000522008-12-03: Version 0.4.5
iposva@chromium.org96f667e2008-11-26 23:48:02 +000053
ager@chromium.orga74f0da2008-12-03 16:05:52 +000054 Added experimental API support for allocating V8 symbols as
55 external strings.
56
57 Fixed bugs in debugging support on ARM.
58
59 Changed eval implementation to correctly detect whether or not a
60 call to eval is aliased.
61
62 Fixed bug caused by a combination of the compilation cache and
63 dictionary probing in native code. The bug caused us to sometimes
64 call functions that had not yet been compiled.
65
66 Added platform support for FreeBSD.
67
68 Added support for building V8 on Windows with either the shared or
69 static version of MSVCRT
ager@chromium.org32912102009-01-16 10:38:43 +000070
iposva@chromium.org96f667e2008-11-26 23:48:02 +000071 Added the v8::jscre namespace around the jscre functions to avoid
72 link errors (duplicate symbols) when building Google Chrome.
73
ager@chromium.orga74f0da2008-12-03 16:05:52 +000074 Added support for calling a JavaScript function with the current
75 debugger execution context as its argument to the debugger
76 interface.
77
78 Changed the type of names of counters from wchar_t to char.
79
80 Changed the Windows system call used to compute daylight savings
81 time. The system call that we used to use became four times
82 slower on WinXP SP3.
83
84 Added support in the d8 developer shell for memory-mapped counters
85 and added a stats-viewer tool.
86
87 Fixed bug in upper/lower case mappings (issue 149).
88
iposva@chromium.org96f667e2008-11-26 23:48:02 +000089
ager@chromium.org3bf7b912008-11-17 09:09:45 +0000902008-11-17: Version 0.4.4
91
92 Reduced code size by using shorter instruction encoding when
93 possible.
94
95 Added a --help option to the shell sample and to the d8 shell.
96
97 Added visual studio project files for building the ARM simulator.
98
99 Fixed a number of ARM simulator issues.
100
101 Fixed bug in out-of-memory handling on ARM.
102
103 Implemented shell support for passing arguments to a script from
104 the command line.
105
106 Fixed bug in date code that made certain date functions return -0
107 instead of 0 for dates before the epoch.
108
109 Restricted applications of eval so it can only be used in the
110 context of the associated global object.
111
112 Treat byte-order marks as whitespace characters.
ager@chromium.org32912102009-01-16 10:38:43 +0000113
114
ager@chromium.org870a0b62008-11-04 11:43:05 +00001152008-11-04: Version 0.4.3
116
117 Added support for API accessors that prohibit overwriting by
118 accessors defined in JavaScript code by using __defineGetter__ and
119 __defineSetter__.
120
121 Improved handling of conditionals in test status files.
122
123 Introduced access control in propertyIsEnumerable.
124
125 Improved performance of some string operations by caching
126 information about the type of the string between operations.
127
128 Fixed bug in fast-case code for switch statements that only have
129 integer labels.
ager@chromium.org32912102009-01-16 10:38:43 +0000130
ager@chromium.org870a0b62008-11-04 11:43:05 +0000131
kasperl@chromium.org9bbf9682008-10-30 11:53:07 +00001322008-10-30: Version 0.4.2
133
134 Improved performance of Array.prototype.concat by moving the
135 implementation to C++ (issue 123).
136
137 Fixed heap growth policy to avoid growing old space to its maximum
138 capacity before doing a garbage collection and fixed issue that
139 would lead to artificial out of memory situations (issue 129).
140
141 Fixed Date.prototype.toLocaleDateString to return the date in the
142 same format as WebKit.
143
144 Added missing initialization checks to debugger API.
145
146 Added removing of unused maps during GC.
147
148
kasperl@chromium.org9fe21c62008-10-28 08:53:51 +00001492008-10-28: Version 0.4.1
150
151 Added caching of RegExp data in compilation cache.
152
153 Added Visual Studio project file for d8 shell.
154
155 Fixed function call performance regression introduced in version
156 0.4.0 when splitting the global object in two parts (issue 120).
157
158 Fixed issue 131 by checking for empty handles before throwing and
159 reporting exceptions.
160
161
kasperl@chromium.org5a8ca6c2008-10-23 13:57:19 +00001622008-10-23: Version 0.4.0
163
164 Split the global object into two parts: The state holding global
165 object and the global object proxy.
166
167 Fixed bug that affected the value of an assignment to an element
168 in certain cases (issue 116).
169
170 Added GetPropertyNames functionality (issue 33) and extra Date
171 functions (issue 77) to the API.
172
173 Changed WeakReferenceCallback to take a Persistent<Value> instead
174 of a Persistent<Object> (issue 101).
175
176 Fixed issues with message reporting for exceptions in try-finally
177 blocks (issues 73 and 75).
178
ager@chromium.org32912102009-01-16 10:38:43 +0000179 Optimized flattening of strings and string equality checking.
kasperl@chromium.org5a8ca6c2008-10-23 13:57:19 +0000180
181 Improved Boyer-Moore implementation for faster indexOf operations.
182
183 Added development shell (d8) which includes counters and
184 completion support.
185
186 Fixed problem with the receiver passed to functions called from
187 eval (issue 124).
188
189
ager@chromium.org7c537e22008-10-16 08:43:32 +00001902008-10-16: Version 0.3.5
191
192 Improved string hash-code distribution by excluding bit-field bits
193 from the hash-code.
194
195 Changed string search algorithm used in indexOf from KMP to
196 Boyer-Moore.
197
198 Improved the generated code for the instanceof operator.
199
200 Improved performance of slow-case string equality checks by
201 specializing the code based on the string representation.
202
203 Improve the handling of out-of-memory situations (issue 70).
204
205 Improved performance of strict equality checks.
206
207 Improved profiler output to make it easier to see anonymous
208 functions.
209
210 Improved performance of slow-case keyed loads.
211
212 Improved property access performance by allocating a number of
213 properties in the front object.
214
215 Changed the toString behavior on the built-in object constructors
216 to print [native code] instead of the actual source. Some web
217 applications do not like constructors with complex toString
218 results.
ager@chromium.org32912102009-01-16 10:38:43 +0000219
ager@chromium.org7c537e22008-10-16 08:43:32 +0000220
kasperl@chromium.org41044eb2008-10-06 08:24:46 +00002212008-10-06: Version 0.3.4
222
223 Changed Array.prototype.sort to use quick sort.
224
225 Fixed code generation issue where leaving a finally block with
226 break or continue would accumulate elements on the expression
227 stack (issue 86).
228
229 Made sure that the name accessor on functions returns the expected
230 names for builtin JavaScript functions and C++ callback functions.
231
232 Added fast case code for extending the property storage array of
233 JavaScript objects.
234
235 Ported switch statement optimizations introduced in version 0.3.3
236 to the ARM code generator.
237
238 Allowed GCC to use strict-aliasing rules when compiling.
239
240 Improved performance of arguments object allocation by taking care
241 of arguments adaptor frames in the generated code.
242
243 Updated the V8 benchmark suite to version 2.
244
245
ager@chromium.org236ad962008-09-25 09:45:57 +00002462008-09-25: Version 0.3.3
247
248 Improved handling of relocation information to enable more
249 peep-hole optimizations.
250
251 Optimized switch statements where all labels are constant small
252 integers.
253
254 Optimized String.prototype.indexOf for common cases.
255
256 Fixed more build issues (issue 80).
257
258 Fixed a couple of profiler issues.
259
260 Fixed bug where the body of a function created using the Function
261 constructor was not allowed to end with a single-line comment
262 (issue 85).
263
264 Improved handling of object literals by canonicalizing object
265 literal maps. This will allow JSON objects with the same set of
266 properties to share the same map making inline caching work better
267 for JSON objects.
ager@chromium.org32912102009-01-16 10:38:43 +0000268
ager@chromium.org236ad962008-09-25 09:45:57 +0000269
kasperl@chromium.orgb9123622008-09-17 14:05:56 +00002702008-09-17: Version 0.3.2
271
272 Generalized the EvalCache into a CompilationCache and enabled it
273 for scripts too. The current strategy is to retire all entries
274 whenever a mark-sweep collection is started.
275
276 Fixed bug where switch statements containing only a default case
277 would lead to an unbalanced stack (issue 69).
278
279 Fixed bug that made access to the function in a named function
280 expression impossible in certain situations (issue 24).
281
282 Fixed even more build issues.
283
284 Optimized calling conventions on ARM. The conventions on ARM and
285 IA-32 now match.
286
287 Removed static initializers for flags and counters.
288
289 Improved inline caching behavior for uncommon cases where lazily
290 loading Date and RegExp code could force certain code paths go
291 megamorphic.
292
293 Removed arguments adaption for builtins written in C++. This
294 makes Array.prototype.push and Array.prototype.pop slightly
295 faster.
296
297
ager@chromium.org9258b6b2008-09-11 09:11:10 +00002982008-09-11: Version 0.3.1
299
300 Fixed a number of build issues.
301
302 Fixed problem with missing I-cache flusing on ARM.
303
304 Changed space layout in memory management by splitting up
305 code space into old data space and code space.
306
307 Added utf-8 conversion support to the API (issue 57).
308
309 Optimized repeated calls to eval with the same strings. These
310 repeated calls are common in web applications.
311
312 Added Xcode project file.
313
314 Optimized a couple of Array operation.
315
316 Fixed parser bug by checking for end-of-string when parsing break
317 and continue (issue 35).
318
319 Fixed problem where asian characters were not categorized as
320 letters.
321
322 Fixed bug that disallowed calling functions fetched from an array
323 using a string as an array index (issue 32).
324
325 Fixed bug where the internal field count on object templates were
326 sometimes ignored (issue 54).
327
328 Added -f option to the shell sample for compatibility with other
329 engines (issue 18).
330
331 Added source info to TryCatches in the API.
332
333 Fixed problem where the seed for the random number generator was
334 clipped in a double to unsigned int conversion.
335
336 Fixed bug where cons string symbols were sometimes converted to
337 non-symbol flat strings during GC.
338
339 Fixed bug in error reporting when attempting to convert null to an
340 object.
ager@chromium.org32912102009-01-16 10:38:43 +0000341
342
ager@chromium.orgc27e4e72008-09-04 13:52:27 +00003432008-09-04: Version 0.3.0
344
345 Added support for running tests on the ARM simulator.
346
347 Fixed bug in the 'in' operator where negative indices were not
348 treated correctly.
349
350 Fixed build issues on gcc-4.3.1.
351
352 Changed Date.prototype.toLocaleTimeString to not print the
353 timezone part of the time.
354
355 Renamed debug.h to v8-debug.h to reduce the risk of name conflicts
356 with user code.
357
358
v8.team.kasperl727e9952008-09-02 14:56:44 +00003592008-09-02: Version 0.2.5
360
361 Renamed the top level directory 'public' to 'include'.
362
363 Added 'env' option to the SCons build scripts to support
364 overriding the ENV part of the build environment. This is mostly
365 to support Windows builds in cases where SCons cannot find the
366 correct paths to the Windows SDK, as these paths cannot be passed
367 through shell environment variables.
368
369 Enabled "Buffer Security Check" on for the Windows SCons build and
370 added the linker option /OPT:ICF as an optimization.
371
372 Added the V8 benchmark suite to the repository.
373
374
mads.s.ager@gmail.com9a4089a2008-09-01 08:55:01 +00003752008-09-01: Version 0.2.4
376
377 Included mjsunit JavaScript test suite and C++ unit tests.
378
379 Changed the shell sample to not print the result of executing a
380 script provided on the command line.
381
382 Fixed issue when building samples on Windows using a shared V8
383 library. Added visibility option on Linux build which makes the
384 generated library 18% smaller.
385
386 Changed build system to accept multiple build modes in one build
387 and generate separate objects, libraries and executables for each
388 mode.
389
390 Removed deferred negation optimization (a * -b => -(a * b)) since
391 this visibly changes operand conversion order.
392
393 Improved parsing performance by introducing stack guard in
394 preparsing. Without a stack guard preparsing always bails out
395 with stack overflow.
396
397 Changed shell sample to take flags directly from the command-line.
398 Added API call that implements this.
399
400 Added load, quit and version functions to the shell sample so it's
401 easier to run benchmarks and tests.
402
403 Fixed issue with building samples and cctests on 64-bit machines.
404
405 Fixed bug in the runtime system where the prototype chain was not
406 always searched for a setter when setting a property that does not
407 exist locally.
ager@chromium.org32912102009-01-16 10:38:43 +0000408
mads.s.ager@gmail.com9a4089a2008-09-01 08:55:01 +0000409
mads.s.agercbaa0602008-08-14 13:41:48 +00004102008-08-14: Version 0.2.3
411
412 Improved performance of garbage collection by moving the
413 function that updates pointers during compacting collection
414 into the updating visitor. This gives the compiler a better
415 chance to inline and avoid a function call per (potential)
416 pointer.
417
418 Extended the shell sample with a --runtime-flags option.
419
420 Added Visual Studio project files for the shell.cc and
421 process.cc samples.
422
423
4242008-08-13: Version 0.2.2
mads.s.ager31e71382008-08-13 09:32:07 +0000425
426 Improved performance of garbage collection by changing the way
427 we use the marking stack in the event of stack overflow during
428 full garbage collection and by changing the way we mark roots.
429
430 Cleaned up ARM version by removing top of stack caching and by
431 introducing push/pop elimination.
432
433 Cleaned up the way runtime functions are called to allow
434 runtime calls with no arguments.
435
436 Changed Windows build options to make sure that exceptions are
437 disabled and that optimization flags are enabled.
438
439 Added first version of Visual Studio project files.
440
441
mads.s.agercbaa0602008-08-14 13:41:48 +00004422008-08-06: Version 0.2.1
mads.s.ager@gmail.com769cc962008-08-06 10:02:49 +0000443
444 Improved performance of unary addition by avoiding runtime calls.
445
446 Fixed the handling of '>' and '<=' to use right-to-left conversion
447 and left-to-right evaluation as specified by ECMA-262.
448
449 Fixed a branch elimination bug on the ARM platform where incorrect
450 code was generated because of overly aggressive branch
451 elimination.
452
453 Improved performance of code that repeatedly assigns the same
454 function to the same property of different objects with the same
455 map.
456
457 Untangled DEBUG and ENABLE_DISASSEMBLER defines. The disassembler
458 no longer expects DEBUG to be defined.
459
460 Added platform-nullos.cc to serve as the basis for new platform
461 implementations.
462
mads.s.ager31e71382008-08-13 09:32:07 +0000463
mads.s.agercbaa0602008-08-14 13:41:48 +00004642008-07-30: Version 0.2.0
kasper.lund7276f142008-07-30 08:49:36 +0000465
466 Changed all text files to have native svn:eol-style.
467
468 Added a few samples and support for building them. The samples
469 include a simple shell that can be used to benchmark and test V8.
470
471 Changed V8::GetVersion to return the version as a string.
472
473 Added source for lazily loaded scripts to snapshots and made
474 serialization non-destructive.
475
476 Improved ARM support by fixing the write barrier code to use
477 aligned loads and stores and by removing premature locals
478 optimization that relied on broken support for callee-saved
479 registers (removed).
480
481 Refactored the code for marking live objects during garbage
482 collection and the code for allocating objects in paged
483 spaces. Introduced an abstraction for the map word of a heap-
484 allocated object and changed the memory allocator to allocate
485 executable memory only for spaces that may contain code objects.
486
487 Moved StringBuilder to utils.h and ScopedLock to platform.h, where
488 they can be used by debugging and logging modules. Added
489 thread-safe message queues for dealing with debugger events.
490
491 Fixed the source code reported by toString for certain builtin
492 empty functions and made sure that the prototype property of a
493 function is enumerable.
494
495 Improved performance of converting values to condition flags in
496 generated code.
497
498 Merged disassembler-{arch} files.
499
500
mads.s.agercbaa0602008-08-14 13:41:48 +00005012008-07-28: Version 0.1.4
kasper.lundaf4734f2008-07-28 12:50:18 +0000502
503 Added support for storing JavaScript stack traces in a stack
504 allocated buffer to make it visible in shallow core dumps.
505 Controlled by the --preallocate-message-memory flag which is
506 disabled by default.
507
508
mads.s.agercbaa0602008-08-14 13:41:48 +00005092008-07-25: Version 0.1.3
kasper.lund44510672008-07-25 07:37:58 +0000510
511 Fixed bug in JSObject::GetPropertyAttributePostInterceptor where
512 map transitions would count as properties.
513
514 Allowed aliased eval invocations by treating them as evals in the
515 global context. This may change in the future.
516
517 Added support for accessing the last entered context through the
518 API and renamed Context::Current to Context::GetCurrent and
519 Context::GetSecurityContext to Context::GetCurrentSecurityContext.
520
521 Fixed bug in the debugger that would cause the debugger scripts to
522 be recursively loaded and changed all disabling of interrupts to
523 be block-structured.
524
525 Made snapshot data read-only to allow it to be more easily shared
526 across multiple users of V8 when linked as a shared library.
527
528
mads.s.agercbaa0602008-08-14 13:41:48 +00005292008-07-16: Version 0.1.2
kasper.lund212ac232008-07-16 07:07:30 +0000530
531 Fixed building on Mac OS X by recognizing i386 and friends as
532 IA-32 platforms.
533
534 Added propagation of stack overflow exceptions that occur while
535 compiling nested functions.
536
537 Improved debugger with support for recursive break points and
538 handling of exceptions that occur in the debugger JavaScript code.
539
540 Renamed GetInternal to GetInternalField and SetInternal to
541 SetInternalField in the API and moved InternalFieldCount and
542 SetInternalFieldCount from FunctionTemplate to ObjectTemplate.
543
544
mads.s.agercbaa0602008-08-14 13:41:48 +00005452008-07-09: Version 0.1.1
kasper.lundbd3ec4e2008-07-09 11:06:54 +0000546
547 Fixed bug in stack overflow check code for IA-32 targets where a
548 non-tagged value in register eax was pushed to the stack.
549
550 Fixed potential quadratic behavior when converting strings to
551 numbers.
552
553 Fixed bug where the return value from Object::SetProperty could
554 end up being the property holder instead of the written value.
555
556 Improved debugger support by allowing nested break points and by
557 dealing with stack-overflows when compiling functions before
558 setting break points in them.
559
560
mads.s.agercbaa0602008-08-14 13:41:48 +00005612008-07-03: Version 0.1.0
christian.plesner.hansen43d26ec2008-07-03 15:10:15 +0000562
kasper.lundbd3ec4e2008-07-09 11:06:54 +0000563 Initial export.
christian.plesner.hansen43d26ec2008-07-03 15:10:15 +0000564