blob: c65392fec66757fa5dfbd0a58f5ab856a7123d25 [file] [log] [blame]
iposva@chromium.org96f667e2008-11-26 23:48:02 +000012008-11-26: Version 0.4.4.1
2
3 Added the v8::jscre namespace around the jscre functions to avoid
4 link errors (duplicate symbols) when building Google Chrome.
5
6
ager@chromium.org3bf7b912008-11-17 09:09:45 +000072008-11-17: Version 0.4.4
8
9 Reduced code size by using shorter instruction encoding when
10 possible.
11
12 Added a --help option to the shell sample and to the d8 shell.
13
14 Added visual studio project files for building the ARM simulator.
15
16 Fixed a number of ARM simulator issues.
17
18 Fixed bug in out-of-memory handling on ARM.
19
20 Implemented shell support for passing arguments to a script from
21 the command line.
22
23 Fixed bug in date code that made certain date functions return -0
24 instead of 0 for dates before the epoch.
25
26 Restricted applications of eval so it can only be used in the
27 context of the associated global object.
28
29 Treat byte-order marks as whitespace characters.
30
31
ager@chromium.org870a0b62008-11-04 11:43:05 +0000322008-11-04: Version 0.4.3
33
34 Added support for API accessors that prohibit overwriting by
35 accessors defined in JavaScript code by using __defineGetter__ and
36 __defineSetter__.
37
38 Improved handling of conditionals in test status files.
39
40 Introduced access control in propertyIsEnumerable.
41
42 Improved performance of some string operations by caching
43 information about the type of the string between operations.
44
45 Fixed bug in fast-case code for switch statements that only have
46 integer labels.
47
48
kasperl@chromium.org9bbf9682008-10-30 11:53:07 +0000492008-10-30: Version 0.4.2
50
51 Improved performance of Array.prototype.concat by moving the
52 implementation to C++ (issue 123).
53
54 Fixed heap growth policy to avoid growing old space to its maximum
55 capacity before doing a garbage collection and fixed issue that
56 would lead to artificial out of memory situations (issue 129).
57
58 Fixed Date.prototype.toLocaleDateString to return the date in the
59 same format as WebKit.
60
61 Added missing initialization checks to debugger API.
62
63 Added removing of unused maps during GC.
64
65
kasperl@chromium.org9fe21c62008-10-28 08:53:51 +0000662008-10-28: Version 0.4.1
67
68 Added caching of RegExp data in compilation cache.
69
70 Added Visual Studio project file for d8 shell.
71
72 Fixed function call performance regression introduced in version
73 0.4.0 when splitting the global object in two parts (issue 120).
74
75 Fixed issue 131 by checking for empty handles before throwing and
76 reporting exceptions.
77
78
kasperl@chromium.org5a8ca6c2008-10-23 13:57:19 +0000792008-10-23: Version 0.4.0
80
81 Split the global object into two parts: The state holding global
82 object and the global object proxy.
83
84 Fixed bug that affected the value of an assignment to an element
85 in certain cases (issue 116).
86
87 Added GetPropertyNames functionality (issue 33) and extra Date
88 functions (issue 77) to the API.
89
90 Changed WeakReferenceCallback to take a Persistent<Value> instead
91 of a Persistent<Object> (issue 101).
92
93 Fixed issues with message reporting for exceptions in try-finally
94 blocks (issues 73 and 75).
95
96 Optimized flattening of strings and string equality checking.
97
98 Improved Boyer-Moore implementation for faster indexOf operations.
99
100 Added development shell (d8) which includes counters and
101 completion support.
102
103 Fixed problem with the receiver passed to functions called from
104 eval (issue 124).
105
106
ager@chromium.org7c537e22008-10-16 08:43:32 +00001072008-10-16: Version 0.3.5
108
109 Improved string hash-code distribution by excluding bit-field bits
110 from the hash-code.
111
112 Changed string search algorithm used in indexOf from KMP to
113 Boyer-Moore.
114
115 Improved the generated code for the instanceof operator.
116
117 Improved performance of slow-case string equality checks by
118 specializing the code based on the string representation.
119
120 Improve the handling of out-of-memory situations (issue 70).
121
122 Improved performance of strict equality checks.
123
124 Improved profiler output to make it easier to see anonymous
125 functions.
126
127 Improved performance of slow-case keyed loads.
128
129 Improved property access performance by allocating a number of
130 properties in the front object.
131
132 Changed the toString behavior on the built-in object constructors
133 to print [native code] instead of the actual source. Some web
134 applications do not like constructors with complex toString
135 results.
136
137
kasperl@chromium.org41044eb2008-10-06 08:24:46 +00001382008-10-06: Version 0.3.4
139
140 Changed Array.prototype.sort to use quick sort.
141
142 Fixed code generation issue where leaving a finally block with
143 break or continue would accumulate elements on the expression
144 stack (issue 86).
145
146 Made sure that the name accessor on functions returns the expected
147 names for builtin JavaScript functions and C++ callback functions.
148
149 Added fast case code for extending the property storage array of
150 JavaScript objects.
151
152 Ported switch statement optimizations introduced in version 0.3.3
153 to the ARM code generator.
154
155 Allowed GCC to use strict-aliasing rules when compiling.
156
157 Improved performance of arguments object allocation by taking care
158 of arguments adaptor frames in the generated code.
159
160 Updated the V8 benchmark suite to version 2.
161
162
ager@chromium.org236ad962008-09-25 09:45:57 +00001632008-09-25: Version 0.3.3
164
165 Improved handling of relocation information to enable more
166 peep-hole optimizations.
167
168 Optimized switch statements where all labels are constant small
169 integers.
170
171 Optimized String.prototype.indexOf for common cases.
172
173 Fixed more build issues (issue 80).
174
175 Fixed a couple of profiler issues.
176
177 Fixed bug where the body of a function created using the Function
178 constructor was not allowed to end with a single-line comment
179 (issue 85).
180
181 Improved handling of object literals by canonicalizing object
182 literal maps. This will allow JSON objects with the same set of
183 properties to share the same map making inline caching work better
184 for JSON objects.
185
186
kasperl@chromium.orgb9123622008-09-17 14:05:56 +00001872008-09-17: Version 0.3.2
188
189 Generalized the EvalCache into a CompilationCache and enabled it
190 for scripts too. The current strategy is to retire all entries
191 whenever a mark-sweep collection is started.
192
193 Fixed bug where switch statements containing only a default case
194 would lead to an unbalanced stack (issue 69).
195
196 Fixed bug that made access to the function in a named function
197 expression impossible in certain situations (issue 24).
198
199 Fixed even more build issues.
200
201 Optimized calling conventions on ARM. The conventions on ARM and
202 IA-32 now match.
203
204 Removed static initializers for flags and counters.
205
206 Improved inline caching behavior for uncommon cases where lazily
207 loading Date and RegExp code could force certain code paths go
208 megamorphic.
209
210 Removed arguments adaption for builtins written in C++. This
211 makes Array.prototype.push and Array.prototype.pop slightly
212 faster.
213
214
ager@chromium.org9258b6b2008-09-11 09:11:10 +00002152008-09-11: Version 0.3.1
216
217 Fixed a number of build issues.
218
219 Fixed problem with missing I-cache flusing on ARM.
220
221 Changed space layout in memory management by splitting up
222 code space into old data space and code space.
223
224 Added utf-8 conversion support to the API (issue 57).
225
226 Optimized repeated calls to eval with the same strings. These
227 repeated calls are common in web applications.
228
229 Added Xcode project file.
230
231 Optimized a couple of Array operation.
232
233 Fixed parser bug by checking for end-of-string when parsing break
234 and continue (issue 35).
235
236 Fixed problem where asian characters were not categorized as
237 letters.
238
239 Fixed bug that disallowed calling functions fetched from an array
240 using a string as an array index (issue 32).
241
242 Fixed bug where the internal field count on object templates were
243 sometimes ignored (issue 54).
244
245 Added -f option to the shell sample for compatibility with other
246 engines (issue 18).
247
248 Added source info to TryCatches in the API.
249
250 Fixed problem where the seed for the random number generator was
251 clipped in a double to unsigned int conversion.
252
253 Fixed bug where cons string symbols were sometimes converted to
254 non-symbol flat strings during GC.
255
256 Fixed bug in error reporting when attempting to convert null to an
257 object.
258
259
ager@chromium.orgc27e4e72008-09-04 13:52:27 +00002602008-09-04: Version 0.3.0
261
262 Added support for running tests on the ARM simulator.
263
264 Fixed bug in the 'in' operator where negative indices were not
265 treated correctly.
266
267 Fixed build issues on gcc-4.3.1.
268
269 Changed Date.prototype.toLocaleTimeString to not print the
270 timezone part of the time.
271
272 Renamed debug.h to v8-debug.h to reduce the risk of name conflicts
273 with user code.
274
275
v8.team.kasperl727e9952008-09-02 14:56:44 +00002762008-09-02: Version 0.2.5
277
278 Renamed the top level directory 'public' to 'include'.
279
280 Added 'env' option to the SCons build scripts to support
281 overriding the ENV part of the build environment. This is mostly
282 to support Windows builds in cases where SCons cannot find the
283 correct paths to the Windows SDK, as these paths cannot be passed
284 through shell environment variables.
285
286 Enabled "Buffer Security Check" on for the Windows SCons build and
287 added the linker option /OPT:ICF as an optimization.
288
289 Added the V8 benchmark suite to the repository.
290
291
mads.s.ager@gmail.com9a4089a2008-09-01 08:55:01 +00002922008-09-01: Version 0.2.4
293
294 Included mjsunit JavaScript test suite and C++ unit tests.
295
296 Changed the shell sample to not print the result of executing a
297 script provided on the command line.
298
299 Fixed issue when building samples on Windows using a shared V8
300 library. Added visibility option on Linux build which makes the
301 generated library 18% smaller.
302
303 Changed build system to accept multiple build modes in one build
304 and generate separate objects, libraries and executables for each
305 mode.
306
307 Removed deferred negation optimization (a * -b => -(a * b)) since
308 this visibly changes operand conversion order.
309
310 Improved parsing performance by introducing stack guard in
311 preparsing. Without a stack guard preparsing always bails out
312 with stack overflow.
313
314 Changed shell sample to take flags directly from the command-line.
315 Added API call that implements this.
316
317 Added load, quit and version functions to the shell sample so it's
318 easier to run benchmarks and tests.
319
320 Fixed issue with building samples and cctests on 64-bit machines.
321
322 Fixed bug in the runtime system where the prototype chain was not
323 always searched for a setter when setting a property that does not
324 exist locally.
325
326
mads.s.agercbaa0602008-08-14 13:41:48 +00003272008-08-14: Version 0.2.3
328
329 Improved performance of garbage collection by moving the
330 function that updates pointers during compacting collection
331 into the updating visitor. This gives the compiler a better
332 chance to inline and avoid a function call per (potential)
333 pointer.
334
335 Extended the shell sample with a --runtime-flags option.
336
337 Added Visual Studio project files for the shell.cc and
338 process.cc samples.
339
340
3412008-08-13: Version 0.2.2
mads.s.ager31e71382008-08-13 09:32:07 +0000342
343 Improved performance of garbage collection by changing the way
344 we use the marking stack in the event of stack overflow during
345 full garbage collection and by changing the way we mark roots.
346
347 Cleaned up ARM version by removing top of stack caching and by
348 introducing push/pop elimination.
349
350 Cleaned up the way runtime functions are called to allow
351 runtime calls with no arguments.
352
353 Changed Windows build options to make sure that exceptions are
354 disabled and that optimization flags are enabled.
355
356 Added first version of Visual Studio project files.
357
358
mads.s.agercbaa0602008-08-14 13:41:48 +00003592008-08-06: Version 0.2.1
mads.s.ager@gmail.com769cc962008-08-06 10:02:49 +0000360
361 Improved performance of unary addition by avoiding runtime calls.
362
363 Fixed the handling of '>' and '<=' to use right-to-left conversion
364 and left-to-right evaluation as specified by ECMA-262.
365
366 Fixed a branch elimination bug on the ARM platform where incorrect
367 code was generated because of overly aggressive branch
368 elimination.
369
370 Improved performance of code that repeatedly assigns the same
371 function to the same property of different objects with the same
372 map.
373
374 Untangled DEBUG and ENABLE_DISASSEMBLER defines. The disassembler
375 no longer expects DEBUG to be defined.
376
377 Added platform-nullos.cc to serve as the basis for new platform
378 implementations.
379
mads.s.ager31e71382008-08-13 09:32:07 +0000380
mads.s.agercbaa0602008-08-14 13:41:48 +00003812008-07-30: Version 0.2.0
kasper.lund7276f142008-07-30 08:49:36 +0000382
383 Changed all text files to have native svn:eol-style.
384
385 Added a few samples and support for building them. The samples
386 include a simple shell that can be used to benchmark and test V8.
387
388 Changed V8::GetVersion to return the version as a string.
389
390 Added source for lazily loaded scripts to snapshots and made
391 serialization non-destructive.
392
393 Improved ARM support by fixing the write barrier code to use
394 aligned loads and stores and by removing premature locals
395 optimization that relied on broken support for callee-saved
396 registers (removed).
397
398 Refactored the code for marking live objects during garbage
399 collection and the code for allocating objects in paged
400 spaces. Introduced an abstraction for the map word of a heap-
401 allocated object and changed the memory allocator to allocate
402 executable memory only for spaces that may contain code objects.
403
404 Moved StringBuilder to utils.h and ScopedLock to platform.h, where
405 they can be used by debugging and logging modules. Added
406 thread-safe message queues for dealing with debugger events.
407
408 Fixed the source code reported by toString for certain builtin
409 empty functions and made sure that the prototype property of a
410 function is enumerable.
411
412 Improved performance of converting values to condition flags in
413 generated code.
414
415 Merged disassembler-{arch} files.
416
417
mads.s.agercbaa0602008-08-14 13:41:48 +00004182008-07-28: Version 0.1.4
kasper.lundaf4734f2008-07-28 12:50:18 +0000419
420 Added support for storing JavaScript stack traces in a stack
421 allocated buffer to make it visible in shallow core dumps.
422 Controlled by the --preallocate-message-memory flag which is
423 disabled by default.
424
425
mads.s.agercbaa0602008-08-14 13:41:48 +00004262008-07-25: Version 0.1.3
kasper.lund44510672008-07-25 07:37:58 +0000427
428 Fixed bug in JSObject::GetPropertyAttributePostInterceptor where
429 map transitions would count as properties.
430
431 Allowed aliased eval invocations by treating them as evals in the
432 global context. This may change in the future.
433
434 Added support for accessing the last entered context through the
435 API and renamed Context::Current to Context::GetCurrent and
436 Context::GetSecurityContext to Context::GetCurrentSecurityContext.
437
438 Fixed bug in the debugger that would cause the debugger scripts to
439 be recursively loaded and changed all disabling of interrupts to
440 be block-structured.
441
442 Made snapshot data read-only to allow it to be more easily shared
443 across multiple users of V8 when linked as a shared library.
444
445
mads.s.agercbaa0602008-08-14 13:41:48 +00004462008-07-16: Version 0.1.2
kasper.lund212ac232008-07-16 07:07:30 +0000447
448 Fixed building on Mac OS X by recognizing i386 and friends as
449 IA-32 platforms.
450
451 Added propagation of stack overflow exceptions that occur while
452 compiling nested functions.
453
454 Improved debugger with support for recursive break points and
455 handling of exceptions that occur in the debugger JavaScript code.
456
457 Renamed GetInternal to GetInternalField and SetInternal to
458 SetInternalField in the API and moved InternalFieldCount and
459 SetInternalFieldCount from FunctionTemplate to ObjectTemplate.
460
461
mads.s.agercbaa0602008-08-14 13:41:48 +00004622008-07-09: Version 0.1.1
kasper.lundbd3ec4e2008-07-09 11:06:54 +0000463
464 Fixed bug in stack overflow check code for IA-32 targets where a
465 non-tagged value in register eax was pushed to the stack.
466
467 Fixed potential quadratic behavior when converting strings to
468 numbers.
469
470 Fixed bug where the return value from Object::SetProperty could
471 end up being the property holder instead of the written value.
472
473 Improved debugger support by allowing nested break points and by
474 dealing with stack-overflows when compiling functions before
475 setting break points in them.
476
477
mads.s.agercbaa0602008-08-14 13:41:48 +00004782008-07-03: Version 0.1.0
christian.plesner.hansen43d26ec2008-07-03 15:10:15 +0000479
kasper.lundbd3ec4e2008-07-09 11:06:54 +0000480 Initial export.
christian.plesner.hansen43d26ec2008-07-03 15:10:15 +0000481