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