blob: c2d4e46a63d000740203d82054d75671f83703fd [file] [log] [blame]
sgjesse@chromium.org720dc0b2010-05-10 09:25:39 +000012010-05-10: Version 2.2.9
2
3 Allow Object.create to be called with a function (issue 697).
4
5 Fixed bug with Date.parse returning a non-NaN value when called on a
6 non date string (issue 696).
7
8 Allow unaligned memory accesses on ARM targets that support it (by
9 Subrato K De of CodeAurora <subratokde@codeaurora.org>).
10
11 C++ API for retrieving JavaScript stack trace information.
12
13
ager@chromium.orgac091b72010-05-05 07:34:42 +0000142010-05-05: Version 2.2.8
15
16 Performance improvements in the x64 and ARM backends.
17
18
kmillikin@chromium.org4111b802010-05-03 10:34:42 +0000192010-05-03: Version 2.2.7
20
21 Added support for ES5 date time string format to Date.parse.
22
23 Performance improvements in the x64 backend.
24
25
lrn@chromium.orgc34f5802010-04-28 12:53:43 +0000262010-04-28: Version 2.2.6
27
kmillikin@chromium.org4111b802010-05-03 10:34:42 +000028 Added "amd64" as recognized architecture in scons build script
lrn@chromium.orgc34f5802010-04-28 12:53:43 +000029 (by Ryan Dahl <coldredlemur@gmail.com>).
30
kmillikin@chromium.org4111b802010-05-03 10:34:42 +000031 Fixed bug in String search and replace with very simple RegExps.
lrn@chromium.orgc34f5802010-04-28 12:53:43 +000032
kmillikin@chromium.org4111b802010-05-03 10:34:42 +000033 Fixed bug in RegExp containing "\b^".
lrn@chromium.orgc34f5802010-04-28 12:53:43 +000034
35 Performance improvements on all platforms.
36
kmillikin@chromium.org4111b802010-05-03 10:34:42 +000037
fschneider@chromium.org013f3e12010-04-26 13:27:52 +0000382010-04-26: Version 2.2.5
39
40 Various performance improvements (especially for ARM and x64)
41
42 Fixed bug in CPU profiling (http://crbug.com/42137)
43
44 Fixed a bug with the natives cache.
lrn@chromium.orgc34f5802010-04-28 12:53:43 +000045
46 Fixed two bugs in the ARM code generator that can cause
fschneider@chromium.org013f3e12010-04-26 13:27:52 +000047 wrong calculations.
48
49 Fixed a bug that may cause a wrong result for shift operations.
50
51
522010-04-21: Version 2.2.4
ricow@chromium.orgc9c80822010-04-21 08:22:37 +000053
54 Fixed warnings on arm on newer GCC versions.
55
56 Fixed a number of minor bugs.
57
58 Performance improvements on all platforms.
59
60
whesse@chromium.orgb6e43bb2010-04-14 09:36:28 +0000612010-04-14: Version 2.2.3
62
63 Added stack command and mem command to ARM simulator debugger.
64
65 Fixed scons snapshot and ARM build, and Windows X64 build issues.
66
67 Performance improvements on all platforms.
68
69
ager@chromium.org357bf652010-04-12 11:30:10 +0000702010-04-12: Version 2.2.2
71
72 Introduced new profiler API.
73
74 Fixed random number generator to produce full 32 random bits.
75
76
lrn@chromium.org25156de2010-04-06 13:10:27 +0000772010-04-06: Version 2.2.1
78
79 Debugger improvements.
80
81 Fixed minor bugs.
82
83
ricow@chromium.orgaa1b6162010-03-29 07:44:58 +0000842010-03-29: Version 2.2.0
85
86 Fixed a few minor bugs.
87
88 Performance improvements for string operations.
89
90
ager@chromium.orgb26c50a2010-03-26 09:27:16 +0000912010-03-26: Version 2.1.10
92
93 Fixed scons build issues.
94
95 Fixed a couple of minor bugs.
96
97
sgjesse@chromium.orgdf7a2842010-03-25 14:34:15 +0000982010-03-25: Version 2.1.9
99
100 Added API support for reattaching a global object to a context.
101
102 Extended debugger API with access to the internal debugger context.
103
104 Fixed Chromium crashes (issues http://crbug.com/39128 and
105 http://crbug.com/39160)
106
107
kmillikin@chromium.org5d8f0e62010-03-24 08:21:20 +00001082010-03-24: Version 2.1.8
109
110 Added fine-grained garbage collection callbacks to the API.
111
112 Performance improvements on all platforms.
113
114
whesse@chromium.orgcec079d2010-03-22 14:44:04 +00001152010-03-22: Version 2.1.7
116
117 Fixed issue 650.
118
119 Fixed a bug where __proto__ was sometimes enumerated (issue 646).
fschneider@chromium.org086aac62010-03-17 13:18:24 +0000120
121 Performance improvements for arithmetic operations.
122
123 Performance improvements for string operations.
124
whesse@chromium.orgcec079d2010-03-22 14:44:04 +0000125 Print script name and line number information in stack trace.
126
127
1282010-03-17: Version 2.1.6
129
130 Performance improvements for arithmetic operations.
131
132 Performance improvements for string operations.
133
134
vegorov@chromium.orgf8372902010-03-15 10:26:20 +00001352010-03-10: Version 2.1.4
136
137 Fixed code cache lookup for keyed IC's (issue http://crbug.com/37853).
138
139 Performance improvements on all platforms.
140
141
ager@chromium.orgce5e87b2010-03-10 10:24:18 +00001422010-03-10: Version 2.1.3
143
144 Added API method for context-disposal notifications.
145
146 Added API method for accessing elements by integer index.
147
148 Added missing implementation of Uint32::Value and Value::IsUint32
149 API methods.
150
151 Added IsExecutionTerminating API method.
152
153 Disabled strict aliasing for GCC 4.4.
154
155 Fixed string-concatenation bug (issue 636).
156
157 Performance improvements on all platforms.
158
159
fschneider@chromium.orgb95b98b2010-02-23 10:34:29 +00001602010-02-23: Version 2.1.2
161
162 Fix a crash bug caused by wrong assert.
163
164 Fix a bug with register names on 64-bit V8 (issue 615).
165
166 Performance improvements on all platforms.
167
ager@chromium.orgce5e87b2010-03-10 10:24:18 +0000168
ager@chromium.org5c838252010-02-19 08:53:10 +00001692010-02-19: Version 2.1.1
170
171 [ES5] Implemented Object.defineProperty.
172
173 Improved profiler support.
174
175 Added SetPrototype method in the public V8 API.
176
177 Added GetScriptOrigin and GetScriptLineNumber methods to Function
178 objects in the API.
179
180 Performance improvements on all platforms.
181
182
sgjesse@chromium.orgb302e562010-02-03 11:26:59 +00001832010-02-03: Version 2.1.0
184
185 Values are now always wrapped in objects when used as a receiver.
186 (issue 223).
187
188 [ES5] Implemented Object.getOwnPropertyNames.
189
190 [ES5] Restrict JSON.parse to only accept strings that conforms to the
191 JSON grammar.
192
193 Improvement of debugger agent (issue 549 and 554).
194
195 Fixed problem with skipped stack frame in profiles (issue 553).
196
197 Solaris support by Erich Ocean <erich.ocean@me.com> and Ryan Dahl
198 <ry@tinyclouds.org>.
199
200 Fix a bug that Math.round() returns incorrect results for huge
201 integers.
202
203 Fix enumeration order for objects created from some constructor
204 functions (isue http://crbug.com/3867).
205
206 Fix arithmetic on some integer constants (issue 580).
207
208 Numerous performance improvements including porting of previous IA-32
209 optimizations to x64 and ARM architectures.
210
211
fschneider@chromium.org0c20e672010-01-14 15:28:53 +00002122010-01-14: Version 2.0.6
213
214 Added ES5 Object.getPrototypeOf, GetOwnPropertyDescriptor,
215 GetOwnProperty, FromPropertyDescriptor.
216
217 Fixed Mac x64 build errors.
218
219 Improved performance of some math and string operations.
220
221 Improved performance of some regexp operations.
222
223 Improved performance of context creation.
224
225 Improved performance of hash tables.
226
227
sgjesse@chromium.org846fb742009-12-18 08:56:33 +00002282009-12-18: Version 2.0.5
229
230 Extended to upper limit of map space to allow for 7 times as many map
231 to be allocated (issue 524).
232
233 Improved performance of code using closures.
234
235 Improved performance of some binary operations involving doubles.
236
237
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +00002382009-12-16: Version 2.0.4
239
sgjesse@chromium.org846fb742009-12-18 08:56:33 +0000240 Added ECMAScript 5 Object.create.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000241
sgjesse@chromium.org846fb742009-12-18 08:56:33 +0000242 Improved performance of Math.max and Math.min.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000243
sgjesse@chromium.org846fb742009-12-18 08:56:33 +0000244 Optimized adding of strings on 64-bit platforms.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000245
sgjesse@chromium.org846fb742009-12-18 08:56:33 +0000246 Improved handling of external strings by using a separate table
247 instead of weak handles. This improves garbage collection
248 performance and uses less memory.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000249
sgjesse@chromium.org846fb742009-12-18 08:56:33 +0000250 Changed code generation for object and array literals in toplevel
251 code to be more compact by doing more work in the runtime.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000252
sgjesse@chromium.org846fb742009-12-18 08:56:33 +0000253 Fixed a crash bug triggered when garbage collection happened during
254 generation of a callback load inline cache stub.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000255
sgjesse@chromium.org846fb742009-12-18 08:56:33 +0000256 Fixed crash bug sometimes triggered when local variables shadowed
257 parameters in functions that used the arguments object.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000258
259
sgjesse@chromium.orgac6aa172009-12-04 12:29:05 +00002602009-12-03: Version 2.0.3
261
262 Optimized handling and adding of strings, for-in and Array.join.
263
264 Heap serialization is now non-destructive.
265
266 Improved profiler support with information on time spend in C++
267 callbacks registered through the API.
268
269 Added commands to the debugger protocol for starting/stopping
270 profiling.
271
272 Enabled the non-optimizing compiler for top-level code.
273
274 Changed the API to only allow strings to be set as data objects on
275 Contexts and scripts to avoid potentially keeping global objects
276 around for too long (issue 528).
277
278 OpenBSD support patch by Peter Valchev <pvalchev@gmail.com>.
279
280 Fixed bugs.
281
282
ager@chromium.org01beca72009-11-24 14:29:16 +00002832009-11-24: Version 2.0.2
284
285 Improved profiler support.
286
287 Fixed bug that broke compilation of d8 with readline support.
288
289
ager@chromium.org6141cbe2009-11-20 12:14:52 +00002902009-11-20: Version 2.0.1
291
292 Fixed crash bug in String.prototype.replace.
293
294 Reverted a change which caused Chromium interactive ui test
295 failures.
296
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000297
ager@chromium.orgc4c92722009-11-18 14:12:51 +00002982009-11-18: Version 2.0.0
299
300 Added support for VFP on ARM.
301
302 Added TryCatch::ReThrow method to the API.
303
304 Reduced the size of snapshots and improved the snapshot load time.
305
306 Improved heap profiler support.
307
308 64-bit version now supported on Windows.
309
310 Fixed a number of debugger issues.
311
312 Fixed bugs.
313
314
sgjesse@chromium.orgf1e73132009-10-29 14:46:49 +00003152009-10-29: Version 1.3.18
316
317 Reverted a change which caused crashes in RegExp replace.
318
sgjesse@chromium.orgac6aa172009-12-04 12:29:05 +0000319 Reverted a change which caused Chromium ui_tests failure.
sgjesse@chromium.orgf1e73132009-10-29 14:46:49 +0000320
321
ager@chromium.org3811b432009-10-28 14:53:37 +00003222009-10-28: Version 1.3.17
323
324 Added API method to get simple heap statistics.
325
326 Improved heap profiler support.
327
328 Fixed the implementation of the resource constraint API so it
329 works when using snapshots.
330
331 Fixed a number of issues in the Windows 64-bit version.
332
333 Optimized calls to API getters.
334
335 Added valgrind notification on code modification to the 64-bit version.
336
337 Fixed issue where we logged shared library addresses on Windows at
338 startup and never used them.
339
340
christian.plesner.hansen@gmail.com9d58c2b2009-10-16 11:48:38 +00003412009-10-16: Version 1.3.16
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000342
christian.plesner.hansen@gmail.com9d58c2b2009-10-16 11:48:38 +0000343 X64: Convert smis to holding 32 bits of payload.
344
345 Introduce v8::Integer::NewFromUnsigned method.
346
347 Add missing null check in Context::GetCurrent.
348
349 Add trim, trimLeft and trimRight methods to String
350 Patch by Jan de Mooij <jandemooij@gmail.com>
351
352 Implement ES5 Array.isArray
353 Patch by Jan de Mooij <jandemooij@gmail.com>
354
355 Skip access checks for hidden properties.
356
357 Add String::Concat(Handle<String> left, Handle<String> right) to the V8 API.
358
359 Fix GYP-based builds of V8.
360
361
sgjesse@chromium.org152a0b02009-10-07 13:50:16 +00003622009-10-07: Version 1.3.15
363
364 Expand the maximum size of the code space to 512MB for 64-bit mode.
365
366 Fixed a crash bug happening when starting profiling (issue
367 http://crbug.com/23768).
368
369
sgjesse@chromium.orgc5145742009-10-07 09:00:33 +00003702009-10-07: Version 1.3.14
371
372 Added GetRealNamedProperty to the API to lookup real properties
373 located on the object or in the prototype chain skipping any
374 interceptors.
375
376 Fix the stack limits setting API to work correctly with threads. The
377 stack limit now needs to be set to each thread thich is used with V8.
378
379 Remove the high-priority flag from IdleNotification()
380
381 Ensure V8 is initialized before locking and unlocking threads.
382
383 Implemented a new JavaScript minifier for compressing the source of
ager@chromium.org3811b432009-10-28 14:53:37 +0000384 the built-in JavaScript. This removes non-Open Source code from Douglas
sgjesse@chromium.orgc5145742009-10-07 09:00:33 +0000385 Crockford from the project.
386
387 Added a missing optimization in StringCharAt.
388
389 Fixed some flaky socket tests.
390
391 Change by Alexander Botero-Lowry to fix profiler sampling on FreeBSD
392 in 64-bit mode.
393
394 Fixed memory leaks in the thread management code.
395
396 Fixed the result of assignment to a pixel array. The assigned value
397 is now the result.
398
399 Error reporting for invalid left-hand sides in for-in statements, pre-
400 and postfix count expressions, and assignments now matches the JSC
401 behavior in Safari 4.
402
403 Follow the spec in disallowing function declarations without a name.
404
405 Always allocate code objects within a 2 GB range. On x64 architecture
406 this is used to use near calls (32-bit displacement) in Code objects.
407
408 Optimized array construction ported to x64 and ARM architectures.
409
410 [ES5] Changed Object.keys to return strings for element indices.
411
412
ager@chromium.org68e7ab72009-09-23 09:40:39 +00004132009-09-23: Version 1.3.13
414
415 Fixed uninitialized memory problem.
416
417 Improved heap profiler support.
418
419
christian.plesner.hansen@gmail.com2bc58ef2009-09-22 10:00:30 +00004202009-09-22: Version 1.3.12
421
422 Changed behavior of |function|.toString() on built-in functions to
423 be compatible with other implementations. Patch by Jan de Mooij.
424
425 Added Object::IsDirty in the API.
426
427 Optimized array construction; it is now handled purely in native
428 code.
429
430 [ES5] Made properties of the arguments array enumerable.
431
432 [ES5] Added test suite adapter for the es5conform test suite.
433
434 [ES5] Added Object.keys function.
435
ager@chromium.org68e7ab72009-09-23 09:40:39 +0000436
ager@chromium.org4af710e2009-09-15 12:20:11 +00004372009-09-15: Version 1.3.11
438
439 Fixed crash in error reporting during bootstrapping.
440
441 Optimized generated IA32 math code by using SSE2 instructions when
442 available.
443
444 Implemented missing pieces of debugger infrastructure on ARM. The
445 debugger is now fully functional on ARM.
446
447 Make 'hidden' the default visibility for gcc.
448
449
ager@chromium.orga1645e22009-09-09 19:27:10 +00004502009-09-09: Version 1.3.10
451
452 Fixed profiler on Mac in 64-bit mode.
453
454 Optimized creation of objects from simple constructor functions on
455 ARM.
456
457 Fixed a number of debugger issues.
458
459 Reduced the amount of memory consumed by V8.
460
461
ager@chromium.org18ad94b2009-09-02 08:22:29 +00004622009-09-02: Version 1.3.9
463
464 Optimized stack guard checks on ARM.
465
466 Optimized API operations by inlining more in the API.
467
468 Optimized creation of objects from simple constructor functions.
469
470 Enabled a number of missing optimizations in the 64-bit port.
471
472 Implemented native-code support for regular expressions on ARM.
473
474 Stopped using the 'sahf' instruction on 64-bit machines that do
475 not support it.
476
477 Fixed a bug in the support for forceful termination of JavaScript
478 execution.
479
480
ager@chromium.org96c75b52009-08-26 09:13:16 +00004812009-08-26: Version 1.3.8
482
483 Changed the handling of idle notifications to allow idle
484 notifications when V8 has not yet been initialized.
485
486 Fixed ARM simulator compilation problem on Windows.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000487
ager@chromium.org96c75b52009-08-26 09:13:16 +0000488
ager@chromium.orgab99eea2009-08-25 07:05:41 +00004892009-08-25: Version 1.3.7
490
491 Reduced the size of generated code on ARM platforms by reducing
492 the size of constant pools.
493
494 Changed build files to not include the 'ENV' user environment
495 variable in the build environment.
496
497 Changed the handling of idle notifications.
498
499
sgjesse@chromium.orgc81c8942009-08-21 10:54:26 +00005002009-08-21: Version 1.3.6
501
502 Add support for forceful termination of JavaScript execution.
503
504 Add low memory notification to the API. The embedding host can signal
505 a low memory situation to V8.
506
507 Changed the handling of global handles (persistent handles in the API
508 sense) to avoid issues regarding allocation of new global handles
509 during weak handle callbacks.
510
511 Changed the growth policy of the young space.
512
513 Fixed a GC issue introduced in version 1.3.5.
514
515
sgjesse@chromium.org911335c2009-08-19 12:59:44 +00005162009-08-19: Version 1.3.5
517
518 Optimize initialization of some arrays in the builtins.
519
520 Fix mac-nm script to support filenames with spaces.
521
522 Support for using the V8 profiler when V8 is embedded in a Windows DLL.
523
524 Changed typeof RegExp from 'object' to 'function' for compatibility.
525 Fixed bug where regexps were not callable across contexts.
526
527 Added context independent script compilation to the API.
528
529 Added API call to get the stack trace for an exception.
530
531 Added API for getting object mirrors.
532
533 Make sure that SSE3 instructions are used whenever possible even when
534 running off a snapshot generated without using SSE3 instructions.
535
536 Tweaked the handling of the initial size and growth policy of the heap.
537
538 Added native code generation for RegExp to 64-bit version.
539
540 Added JavaScript debugger support to 64-bit version.
541
542
ager@chromium.orgadd848f2009-08-13 12:44:13 +00005432009-08-13: Version 1.3.4
544
545 Added a readline() command to the d8 shell.
546
547 Fixed bug in json parsing.
548
549 Added idle notification to the API and reduced memory on idle
550 notifications.
551
552
christian.plesner.hansen@gmail.com5a6af922009-08-12 14:20:51 +00005532009-08-12: Version 1.3.3
554
555 Fix issue 417: incorrect %t placeholder expansion.
556
557 Add .gitignore file similar to Chromium's one.
558
559 Fix SConstruct file to build with new logging code for Android.
560
561 API: added function to find instance of template in prototype
562 chain. Inlined Object::IsInstanceOf.
563
564 Land change to notify valgrind when we modify code on x86.
565
566 Add api call to determine whether a string can be externalized.
567
568 Add a write() command to d8.
569
570
sgjesse@chromium.orgb9d7da12009-08-05 08:38:10 +00005712009-08-05: Version 1.3.2
572
573 Started new compiler infrastructure for two-pass compilation using a
574 control flow graph constructed from the AST.
575
576 Profiler stack sampling for X64.
577
578 Safe handling of NaN to Posix platform-dependent time functions.
579
580 Added a new profiler control API to unify controlling various aspects
581 of profiling.
582
583 Fixed issue 392.
584
585
sgjesse@chromium.org0b6db592009-07-30 14:48:31 +00005862009-07-30: Version 1.3.1
587
588 Speed improvements to accessors and interceptors.
589
590 Added support for capturing stack information on custom errors.
591
592 Added support for morphing an object into a pixel array where its
593 indexed properties are stored in an external byte array. Values written
594 are always clamped to the 0..255 interval.
595
596 Profiler on x64 now handles C/C++ functions from shared libraries.
597
598 Changed the debugger to avoid stepping into function.call/apply if the
599 function is a built-in.
600
601 Initial implementation of constructor heap profile for JS objects.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000602
sgjesse@chromium.org0b6db592009-07-30 14:48:31 +0000603 More fine grained control of profiling aspects through the API.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000604
sgjesse@chromium.org0b6db592009-07-30 14:48:31 +0000605 Optimized the called as constructor check for API calls.
606
607
kasperl@chromium.orge959c182009-07-27 08:59:04 +00006082009-07-27: Version 1.3.0
609
610 Allowed RegExp objects to be called as functions (issue 132).
611
612 Fixed issue where global property cells would escape after
613 detaching the global object; see http://crbug.com/16276.
614
615 Added support for stepping into setters and getters in the
616 debugger.
617
618 Changed the debugger to avoid stopping in its own JavaScript code
619 and in the code of built-in functions.
620
621 Fixed issue 345 by avoiding duplicate escaping labels.
622
623 Fixed ARM code generator crash in short-circuited boolean
624 expressions and added regression tests.
625
626 Added an external allocation limit to avoid issues where small V8
627 objects would hold on to large amounts of external memory without
628 causing garbage collections.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000629
630 Finished more of the inline caching stubs for x64 targets.
kasperl@chromium.orge959c182009-07-27 08:59:04 +0000631
632
kasperl@chromium.orgdefbd102009-07-13 14:04:26 +00006332009-07-13: Version 1.2.14
634
635 Added separate paged heap space for global property cells and
636 avoid updating the write barrier when storing into them.
637
638 Improved peep-hole optimization on ARM platforms by not emitting
639 unnecessary debug information.
640
641 Re-enabled ICs for loads and calls that skip a global object
642 during lookup through the prototype chain.
643
644 Allowed access through global proxies to use ICs.
645
646 Fixed issue 401.
647
648
kasperl@chromium.org68ac0092009-07-09 06:00:35 +00006492009-07-09: Version 1.2.13
650
651 Fixed issue 397, issue 398, and issue 399.
652
653 Added support for breakpoint groups.
654
655 Fixed bugs introduced with the new global object representation.
656
657 Fixed a few bugs in the ARM code generator.
658
659
kasperl@chromium.org86f77b72009-07-06 08:21:57 +00006602009-07-06: Version 1.2.12
661
662 Added stack traces collection to Error objects accessible through
663 the e.stack property.
664
665 Changed RegExp parser to use a recursive data structure instead of
666 stack-based recursion.
667
668 Optimized Date object construction and string concatenation.
669
670 Improved performance of div, mod, and mul on ARM platforms.
671
672
kasperl@chromium.org2abc4502009-07-02 07:00:29 +00006732009-07-02: Version 1.2.11
674
675 Improved performance on IA-32 and ARM.
676
677 Fixed profiler sampler implementation on Mac OS X.
678
679 Changed the representation of global objects to improve
680 performance of adding a lot of new properties.
681
682
ager@chromium.org3e875802009-06-29 08:26:34 +00006832009-06-29: Version 1.2.10
684
685 Improved debugger support.
686
687 Fixed bug in exception message reporting (issue 390).
688
689 Improved overall performance.
690
691
ager@chromium.org5aa501c2009-06-23 07:57:28 +00006922009-06-23: Version 1.2.9
693
694 Improved math performance on ARM.
695
696 Fixed profiler name-inference bug.
697
698 Fixed handling of shared libraries in the profiler tick processor
699 scripts.
700
701 Fixed handling of tests that time out in the test scripts.
702
703 Fixed compilation on MacOS X version 10.4.
704
705 Fixed two bugs in the regular expression engine.
706
707 Fixed a bug in the string type inference.
708
709 Fixed a bug in the handling of 'constant function' properties.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000710
ager@chromium.org5aa501c2009-06-23 07:57:28 +0000711 Improved overall performance.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000712
ager@chromium.org5aa501c2009-06-23 07:57:28 +0000713
ager@chromium.orgeadaf222009-06-16 09:43:10 +00007142009-06-16: Version 1.2.8
715
716 Optimized math on ARM platforms.
717
718 Fixed two crash bugs in the handling of getters and setters.
719
720 Improved the debugger support by adding scope chain information.
721
722 Improved the profiler support by compressing log data transmitted
723 to clients.
724
725 Improved overall performance.
726
727
ager@chromium.orge2902be2009-06-08 12:21:35 +00007282009-06-08: Version 1.2.7
729
730 Improved debugger and profiler support.
731
732 Reduced compilation time by improving the handling of deferred
733 code.
734
735 Optimized interceptor accesses where the property is on the object
736 on which the interceptors is attached.
737
738 Fixed compilation problem on GCC 4.4 by changing the stack
739 alignment to 16 bytes.
740
741 Fixed handle creation to follow stric aliasing rules.
742
743 Fixed compilation on FreeBSD.
744
745 Introduced API for forcing the deletion of a property ignoring
746 interceptors and attributes.
747
748
sgjesse@chromium.org755c5b12009-05-29 11:04:38 +00007492009-05-29: Version 1.2.6
750
751 Added a histogram recording hit rates at different levels of the
752 compilation cache.
753
754 Added stack overflow check for the RegExp analysis phase. Previously a
755 very long regexp graph could overflow the stack with recursive calls.
756
757 Use a dynamic buffer when collecting log events in memory.
758
759 Added start/stop events to the profiler log.
760
761 Fixed infinite loop which could happen when setting a debug break while
762 executing a RegExp compiled to native code.
763
764 Fixed handling of lastIndexOf called with negative index (issue 351).
765
766 Fixed irregular crash in profiler test (issue 358).
767
768 Fixed compilation issues with some versions of gcc.
769
770
kasperl@chromium.org71affb52009-05-26 05:44:31 +00007712009-05-26: Version 1.2.5
772
773 Fixed bug in initial boundary check for Boyer-Moore text
774 search (issue 349).
775
776 Fixed compilation issues with MinGW and gcc 4.3+ and added support
777 for armv7 and cortex-a8 architectures. Patches by Lei Zhang and
778 Craig Schlenter.
779
780 Added a script cache to the debugger.
781
782 Optimized compilation performance by improving internal data
783 structures and avoiding expensive property load optimizations for
784 code that's infrequently executed.
785
786 Exposed the calling JavaScript context through the static API
787 function Context::GetCalling().
788
789
kasperl@chromium.orgb3284ad2009-05-18 06:12:45 +00007902009-05-18: Version 1.2.4
791
792 Improved performance of floating point number allocation for ARM
793 platforms.
794
795 Fixed crash when using the instanceof operator on functions with
796 number values in their prototype chain (issue 341).
797
798 Optimized virtual frame operations in the code generator to speed
799 up compilation time and allocated the frames in the zone.
800
801 Made the representation of virtual frames and jump targets in the
802 code generator much more compact.
803
804 Avoided linear search for non-locals in scope code when resolving
805 variables inside with and eval scopes.
806
807 Optimized lexical scanner by dealing with whitespace as part of
808 the token scanning instead of as a separate step before it.
809
810 Changed the scavenging collector so that promoted objects do not
811 reside in the old generation while their remembered set is being
812 swept for pointers into the young generation.
813
814 Fixed numeric overflow handling when compiling count operations.
815
816
ager@chromium.org9085a012009-05-11 19:22:57 +00008172009-05-11: Version 1.2.3
818
819 Fixed bug in reporting of out-of-memory situations.
820
821 Introduced hidden prototypes on certain builtin prototype objects
822 such as String.prototype to emulate JSC's behavior of restoring
823 the original function when deleting functions from those prototype
824 objects.
825
826 Fixed crash bug in the register allocator.
827
828
ager@chromium.org5ec48922009-05-05 07:25:34 +00008292009-05-04: Version 1.2.2
830
831 Fixed bug in array sorting for sparse arrays (issue 326).
832
833 Added support for adding a soname when building a shared library
834 on Linux (issue 151).
835
836 Fixed bug caused by morphing internal ASCII strings to external
837 two-byte strings. Slices over ASCII strings have to forward ASCII
838 checks to the underlying buffer string.
839
840 Allowed API call-as-function handlers to be called as
841 constructors.
842
843 Fixed a crash bug where an external string was disposed but a
844 slice of the external string survived as a symbol.
845
846
ager@chromium.org3a37e9b2009-04-27 09:26:21 +00008472009-04-27: Version 1.2.1
848
849 Added EcmaScript 5 JSON object.
850
851 Fix bug in preemption support on ARM.
852
853
ager@chromium.org65dad4b2009-04-23 08:48:43 +00008542009-04-23: Version 1.2.0
855
856 Optimized floating-point operations on ARM.
857
858 Added a number of extensions to the debugger API.
859
860 Changed the enumeration order for unsigned integer keys to always
861 be numerical order.
862
863 Added a "read" extension to the shell sample.
864
865 Added support for Array.prototype.reduce and
866 Array.prototype.reduceRight.
867
868 Added an option to the SCons build to control Microsoft Visual C++
869 link-time code generation.
870
871 Fixed a number of bugs (in particular issue 315, issue 316,
872 issue 317 and issue 318).
873
874
kasperl@chromium.org2d18d102009-04-15 13:27:32 +00008752009-04-15: Version 1.1.10
876
877 Fixed crash bug that occurred when loading a const variable in the
878 presence of eval.
879
880 Allowed using with and eval in registered extensions in debug mode
881 by fixing bogus assert.
882
883 Fixed the source position for function returns to enable the
884 debugger to break there.
885
886
kasperl@chromium.orgd1e3e722009-04-14 13:38:25 +00008872009-04-14: Version 1.1.9
888
889 Made the stack traversal code in the profiler robust by avoiding
890 to look into the heap.
891
892 Added name inferencing for anonymous functions to facilitate
893 debugging and profiling.
894
895 Re-enabled stats timers in the developer shell (d8).
896
897 Fixed issue 303 by avoiding to shortcut cons-symbols.
898
899
kasperl@chromium.orgacae3782009-04-11 09:17:08 +00009002009-04-11: Version 1.1.8
901
902 Changed test-debug/ThreadedDebugging to be non-flaky (issue 96).
903
ager@chromium.org65dad4b2009-04-23 08:48:43 +0000904 Fixed step-in handling for Function.prototype.apply and call in
kasperl@chromium.orgacae3782009-04-11 09:17:08 +0000905 the debugger (issue 269).
906
907 Fixed v8::Object::DeleteHiddenValue to not bail out when there
908 are no hidden properties.
909
ager@chromium.org65dad4b2009-04-23 08:48:43 +0000910 Added workaround for crash bug, where external symbol table
kasperl@chromium.orgacae3782009-04-11 09:17:08 +0000911 entries with deleted resources would lead to NPEs when looking
912 up in the symbol table.
913
914
kasperl@chromium.org8ccb0be2009-04-07 07:21:39 +00009152009-04-07: Version 1.1.7
916
917 Added support for easily importing additional environment
918 variables into the SCons build.
919
920 Optimized strict equality checks.
921
922 Fixed crash in indexed setters on objects without a corresponding
923 getter (issue 298).
924
925 Re-enabled script compilation cache.
926
927
ager@chromium.org8682a592009-04-01 10:47:14 +00009282009-04-01: Version 1.1.6
929
930 Reverted an unsafe code generator change.
931
932
ager@chromium.org71daaf62009-04-01 07:22:49 +00009332009-04-01: Version 1.1.5
934
935 Fixed bug that caused function literals to not be optimized as
936 much as other functions.
937
938 Improved profiler support.
939
940 Fixed a crash bug in connection with debugger unloading.
941
942 Fixed a crash bug in the code generator caused by losing the
943 information that a frame element was copied.
944
945 Fixed an exception propagation bug that could cause non-null
946 return values when exceptions were thrown.
947
948
ager@chromium.org41826e72009-03-30 13:30:57 +00009492009-03-30: Version 1.1.4
950
951 Optimized String.prototype.match.
952
953 Improved the stack information in profiles.
954
955 Fixed bug in ARM port making it possible to compile the runtime
956 system for thumb mode again.
957
958 Implemented a number of optimizations in the code generator.
959
960 Fixed a number of memory leaks in tests.
961
962 Fixed crash bug in connection with script source code and external
kasperl@chromium.org8ccb0be2009-04-07 07:21:39 +0000963 strings.
ager@chromium.org41826e72009-03-30 13:30:57 +0000964
965
kasperl@chromium.orgf5aa8372009-03-24 14:47:14 +00009662009-03-24: Version 1.1.3
967
968 Fixed assertion failures in compilation of loop conditions.
969
970 Removed STL dependency from developer shell (d8).
971
972 Added infrastructure for protecting the V8 heap from corruption
973 caused by memory modifications from the outside.
974
975
ager@chromium.orgbb29dc92009-03-24 13:25:23 +00009762009-03-24: Version 1.1.2
977
978 Improved frame merge code generated by the code generator.
979
980 Optimized String.prototype.replace.
981
982 Implemented __defineGetter__ and __defineSetter__ for properties
983 with integer keys on non-array objects.
984
985 Improved debugger and profiler support.
986
987 Fixed a number of portability issues to allow compilation for
988 smaller ARM devices.
989
990 Exposed object cloning through the API.
991
992 Implemented hidden properties. This is used to expose an identity
993 hash for objects through the API.
994
995 Implemented restarting of regular expressions if their input
996 string changes representation during preemption.
997
998 Fixed a code generator bug that could cause assignments in loops
999 to be ignored if using continue to break out of the loop (issue
1000 284).
1001
1002
ager@chromium.org3a6061e2009-03-12 14:24:36 +000010032009-03-12: Version 1.1.1
1004
1005 Fixed an assertion in the new compiler to take stack overflow
1006 exceptions into account.
1007
1008 Removed exception propagation code that could cause crashes.
1009
1010 Fixed minor bug in debugger line number computations.
1011
1012 8-byte align the C stack on Linux and Windows to speed up floating
1013 point computations.
1014
1015
kasperl@chromium.org7be3c992009-03-12 07:19:55 +000010162009-03-12: Version 1.1.0
1017
1018 Improved code generation infrastructure by doing simple register
1019 allocation and constant folding and propagation.
1020
1021 Optimized regular expression matching by avoiding to create
1022 intermediate string arrays and by flattening nested array
1023 representations of RegExp data.
1024
1025 Traverse a few stack frames when recording profiler samples to
1026 include partial call graphs in the profiling output.
1027
1028 Added support for using OProfile to profile generated code.
1029
1030 Added remote debugging support to the D8 developer shell.
1031
1032 Optimized creation of nested literals like JSON objects.
1033
1034 Fixed a bug in garbage collecting unused maps and turned it on by
1035 default (--collect-maps).
1036
1037 Added support for running tests under Valgrind.
1038
1039
kasperl@chromium.org061ef742009-02-27 12:16:20 +000010402009-02-27: Version 1.0.3
1041
1042 Optimized double-to-integer conversions in bit operations by using
1043 SSE3 instructions if available.
1044
1045 Optimized initialization sequences that store to multiple
1046 properties of the same object.
1047
1048 Changed the D8 debugger frontend to use JSON messages.
1049
1050 Force garbage collections when disposing contexts.
1051
1052 Align code objects at 32-byte boundaries.
1053
1054
ager@chromium.org381abbb2009-02-25 13:23:22 +000010552009-02-25: Version 1.0.2
1056
1057 Improved profiling support by performing simple call stack
1058 sampling for ticks and by fixing a bug in the logging of code
1059 addresses.
1060
1061 Fixed a number of debugger issues.
1062
1063 Optimized code that uses eval.
1064
1065 Fixed a couple of bugs in the regular expression engine.
1066
1067 Reduced the size of generated code for certain regular expressions.
1068
1069 Removed JSCRE completely.
1070
1071 Fixed issue where test could not be run if there was a dot in the
1072 checkout path.
1073
1074
ager@chromium.org6f10e412009-02-13 10:11:16 +000010752009-02-13: Version 1.0.1
1076
1077 Fixed two crash-bugs in irregexp (issue 231 and 233).
1078
1079 Fixed a number of minor bugs (issue 87, 227 and 228).
1080
1081 Added support for morphing strings to external strings on demand
1082 to avoid having to create copies in the embedding code.
1083
1084 Removed experimental support for external symbol callbacks.
1085
1086
iposva@chromium.org245aa852009-02-10 00:49:54 +000010872009-02-09: Version 1.0.0
1088
1089 Fixed crash-bug in the code generation for case independent 16 bit
1090 backreferences.
ager@chromium.org6f10e412009-02-13 10:11:16 +00001091
iposva@chromium.org245aa852009-02-10 00:49:54 +00001092 Made shells more robust in the presence of string conversion
1093 failures (issue 224).
ager@chromium.org6f10e412009-02-13 10:11:16 +00001094
iposva@chromium.org245aa852009-02-10 00:49:54 +00001095 Fixed a potential infinite loop when attempting to resolve
1096 eval (issue 221).
ager@chromium.org6f10e412009-02-13 10:11:16 +00001097
iposva@chromium.org245aa852009-02-10 00:49:54 +00001098 Miscellaneous fixes to the new regular expression engine.
ager@chromium.org6f10e412009-02-13 10:11:16 +00001099
iposva@chromium.org245aa852009-02-10 00:49:54 +00001100 Reduced binary by stripping unneeded text from JavaScript library and
1101 minifying some JavaScript files.
1102
1103
ager@chromium.orgddb913d2009-01-27 10:01:48 +000011042009-01-27: Version 0.4.9
1105
1106 Enabled new regular expression engine.
1107
1108 Made a number of changes to the debugger protocol.
1109
1110 Fixed a number of bugs in the preemption support.
1111
1112 Added -p option to the developer shell to run files in parallel
1113 using preemption.
1114
1115 Fixed a number of minor bugs (including issues 176, 187, 189, 192,
1116 193, 198 and 201).
1117
1118 Fixed a number of bugs in the serialization/deserialization
1119 support for the ARM platform.
1120
1121
sgjesse@chromium.org715915b2009-01-19 16:08:47 +000011222009-01-19: Version 0.4.8.1
1123
1124 Minor patch to debugger support.
1125
1126
ager@chromium.org32912102009-01-16 10:38:43 +000011272009-01-16: Version 0.4.8
1128
1129 Fixed string length bug on ARM (issue 171).
1130
1131 Made most methods in the API const.
1132
1133 Optimized object literals by improving data locality.
1134
1135 Fixed bug that caused incomplete functions to be cached in case of
sgjesse@chromium.org715915b2009-01-19 16:08:47 +00001136 stack overflow exceptions.
ager@chromium.org32912102009-01-16 10:38:43 +00001137
1138 Fixed bugs that caused catch variables and variables introduced by
sgjesse@chromium.org715915b2009-01-19 16:08:47 +00001139 eval to behave incorrectly when using accessors (issues 186, 190
1140 and 191).
ager@chromium.org32912102009-01-16 10:38:43 +00001141
1142
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +000011432009-01-06: Version 0.4.7
1144
ager@chromium.org32912102009-01-16 10:38:43 +00001145 Minor bugfixes and optimizations.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +00001146
ager@chromium.org32912102009-01-16 10:38:43 +00001147 Added command line debugger to D8 shell.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +00001148
ager@chromium.org32912102009-01-16 10:38:43 +00001149 Fixed subtle bug that caused the wrong 'this' to be used when
1150 calling a caught function in a catch clause.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +00001151
ager@chromium.org32912102009-01-16 10:38:43 +00001152 Inline array loads within loops directly in the code instead of
1153 always calling a stub.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +00001154
ager@chromium.org32912102009-01-16 10:38:43 +00001155
ager@chromium.org8bb60582008-12-11 12:02:20 +000011562008-12-11: Version 0.4.6
1157
1158 Fixed exception reporting bug where certain exceptions were
1159 incorrectly reported as uncaught.
1160
1161 Improved the memory allocation strategy used during compilation to
1162 make running out of memory when compiling huge scripts less
1163 likely.
1164
1165 Optimized String.replace by avoiding the construction of certain
1166 sub strings.
1167
1168 Fixed bug in code generation for large switch statements on ARM.
1169
1170 Fixed bug that caused V8 to change the global object template
1171 passed in by the user.
1172
1173 Changed the API for creating object groups used during garbage
1174 collection. Entire object groups are now passed to V8 instead of
1175 individual members of the groups.
1176
ager@chromium.org32912102009-01-16 10:38:43 +00001177
ager@chromium.orga74f0da2008-12-03 16:05:52 +000011782008-12-03: Version 0.4.5
iposva@chromium.org96f667e2008-11-26 23:48:02 +00001179
ager@chromium.orga74f0da2008-12-03 16:05:52 +00001180 Added experimental API support for allocating V8 symbols as
1181 external strings.
1182
1183 Fixed bugs in debugging support on ARM.
1184
1185 Changed eval implementation to correctly detect whether or not a
1186 call to eval is aliased.
1187
1188 Fixed bug caused by a combination of the compilation cache and
1189 dictionary probing in native code. The bug caused us to sometimes
1190 call functions that had not yet been compiled.
1191
1192 Added platform support for FreeBSD.
1193
1194 Added support for building V8 on Windows with either the shared or
1195 static version of MSVCRT
ager@chromium.org32912102009-01-16 10:38:43 +00001196
iposva@chromium.org96f667e2008-11-26 23:48:02 +00001197 Added the v8::jscre namespace around the jscre functions to avoid
1198 link errors (duplicate symbols) when building Google Chrome.
1199
ager@chromium.orga74f0da2008-12-03 16:05:52 +00001200 Added support for calling a JavaScript function with the current
1201 debugger execution context as its argument to the debugger
1202 interface.
1203
1204 Changed the type of names of counters from wchar_t to char.
1205
1206 Changed the Windows system call used to compute daylight savings
1207 time. The system call that we used to use became four times
1208 slower on WinXP SP3.
1209
1210 Added support in the d8 developer shell for memory-mapped counters
1211 and added a stats-viewer tool.
1212
1213 Fixed bug in upper/lower case mappings (issue 149).
1214
iposva@chromium.org96f667e2008-11-26 23:48:02 +00001215
ager@chromium.org3bf7b912008-11-17 09:09:45 +000012162008-11-17: Version 0.4.4
1217
1218 Reduced code size by using shorter instruction encoding when
1219 possible.
1220
1221 Added a --help option to the shell sample and to the d8 shell.
1222
1223 Added visual studio project files for building the ARM simulator.
1224
1225 Fixed a number of ARM simulator issues.
1226
1227 Fixed bug in out-of-memory handling on ARM.
1228
1229 Implemented shell support for passing arguments to a script from
1230 the command line.
1231
1232 Fixed bug in date code that made certain date functions return -0
1233 instead of 0 for dates before the epoch.
1234
1235 Restricted applications of eval so it can only be used in the
1236 context of the associated global object.
1237
1238 Treat byte-order marks as whitespace characters.
ager@chromium.org32912102009-01-16 10:38:43 +00001239
1240
ager@chromium.org870a0b62008-11-04 11:43:05 +000012412008-11-04: Version 0.4.3
1242
1243 Added support for API accessors that prohibit overwriting by
1244 accessors defined in JavaScript code by using __defineGetter__ and
1245 __defineSetter__.
1246
1247 Improved handling of conditionals in test status files.
1248
1249 Introduced access control in propertyIsEnumerable.
1250
1251 Improved performance of some string operations by caching
1252 information about the type of the string between operations.
1253
1254 Fixed bug in fast-case code for switch statements that only have
1255 integer labels.
ager@chromium.org32912102009-01-16 10:38:43 +00001256
ager@chromium.org870a0b62008-11-04 11:43:05 +00001257
kasperl@chromium.org9bbf9682008-10-30 11:53:07 +000012582008-10-30: Version 0.4.2
1259
1260 Improved performance of Array.prototype.concat by moving the
1261 implementation to C++ (issue 123).
1262
1263 Fixed heap growth policy to avoid growing old space to its maximum
1264 capacity before doing a garbage collection and fixed issue that
1265 would lead to artificial out of memory situations (issue 129).
1266
1267 Fixed Date.prototype.toLocaleDateString to return the date in the
1268 same format as WebKit.
1269
1270 Added missing initialization checks to debugger API.
1271
1272 Added removing of unused maps during GC.
1273
1274
kasperl@chromium.org9fe21c62008-10-28 08:53:51 +000012752008-10-28: Version 0.4.1
1276
1277 Added caching of RegExp data in compilation cache.
1278
1279 Added Visual Studio project file for d8 shell.
1280
1281 Fixed function call performance regression introduced in version
1282 0.4.0 when splitting the global object in two parts (issue 120).
1283
1284 Fixed issue 131 by checking for empty handles before throwing and
1285 reporting exceptions.
1286
1287
kasperl@chromium.org5a8ca6c2008-10-23 13:57:19 +000012882008-10-23: Version 0.4.0
1289
1290 Split the global object into two parts: The state holding global
1291 object and the global object proxy.
1292
1293 Fixed bug that affected the value of an assignment to an element
1294 in certain cases (issue 116).
1295
1296 Added GetPropertyNames functionality (issue 33) and extra Date
1297 functions (issue 77) to the API.
1298
1299 Changed WeakReferenceCallback to take a Persistent<Value> instead
1300 of a Persistent<Object> (issue 101).
1301
1302 Fixed issues with message reporting for exceptions in try-finally
1303 blocks (issues 73 and 75).
1304
ager@chromium.org32912102009-01-16 10:38:43 +00001305 Optimized flattening of strings and string equality checking.
kasperl@chromium.org5a8ca6c2008-10-23 13:57:19 +00001306
1307 Improved Boyer-Moore implementation for faster indexOf operations.
1308
1309 Added development shell (d8) which includes counters and
1310 completion support.
1311
1312 Fixed problem with the receiver passed to functions called from
1313 eval (issue 124).
1314
1315
ager@chromium.org7c537e22008-10-16 08:43:32 +000013162008-10-16: Version 0.3.5
1317
1318 Improved string hash-code distribution by excluding bit-field bits
1319 from the hash-code.
1320
1321 Changed string search algorithm used in indexOf from KMP to
1322 Boyer-Moore.
1323
1324 Improved the generated code for the instanceof operator.
1325
1326 Improved performance of slow-case string equality checks by
1327 specializing the code based on the string representation.
1328
1329 Improve the handling of out-of-memory situations (issue 70).
1330
1331 Improved performance of strict equality checks.
1332
1333 Improved profiler output to make it easier to see anonymous
1334 functions.
1335
1336 Improved performance of slow-case keyed loads.
1337
1338 Improved property access performance by allocating a number of
1339 properties in the front object.
1340
1341 Changed the toString behavior on the built-in object constructors
1342 to print [native code] instead of the actual source. Some web
1343 applications do not like constructors with complex toString
1344 results.
ager@chromium.org32912102009-01-16 10:38:43 +00001345
ager@chromium.org7c537e22008-10-16 08:43:32 +00001346
kasperl@chromium.org41044eb2008-10-06 08:24:46 +000013472008-10-06: Version 0.3.4
1348
1349 Changed Array.prototype.sort to use quick sort.
1350
1351 Fixed code generation issue where leaving a finally block with
1352 break or continue would accumulate elements on the expression
1353 stack (issue 86).
1354
1355 Made sure that the name accessor on functions returns the expected
1356 names for builtin JavaScript functions and C++ callback functions.
1357
1358 Added fast case code for extending the property storage array of
1359 JavaScript objects.
1360
1361 Ported switch statement optimizations introduced in version 0.3.3
1362 to the ARM code generator.
1363
1364 Allowed GCC to use strict-aliasing rules when compiling.
1365
1366 Improved performance of arguments object allocation by taking care
1367 of arguments adaptor frames in the generated code.
1368
1369 Updated the V8 benchmark suite to version 2.
1370
1371
ager@chromium.org236ad962008-09-25 09:45:57 +000013722008-09-25: Version 0.3.3
1373
1374 Improved handling of relocation information to enable more
1375 peep-hole optimizations.
1376
1377 Optimized switch statements where all labels are constant small
1378 integers.
1379
1380 Optimized String.prototype.indexOf for common cases.
1381
1382 Fixed more build issues (issue 80).
1383
1384 Fixed a couple of profiler issues.
1385
1386 Fixed bug where the body of a function created using the Function
1387 constructor was not allowed to end with a single-line comment
1388 (issue 85).
1389
1390 Improved handling of object literals by canonicalizing object
1391 literal maps. This will allow JSON objects with the same set of
1392 properties to share the same map making inline caching work better
1393 for JSON objects.
ager@chromium.org32912102009-01-16 10:38:43 +00001394
ager@chromium.org236ad962008-09-25 09:45:57 +00001395
kasperl@chromium.orgb9123622008-09-17 14:05:56 +000013962008-09-17: Version 0.3.2
1397
1398 Generalized the EvalCache into a CompilationCache and enabled it
1399 for scripts too. The current strategy is to retire all entries
1400 whenever a mark-sweep collection is started.
1401
1402 Fixed bug where switch statements containing only a default case
1403 would lead to an unbalanced stack (issue 69).
1404
1405 Fixed bug that made access to the function in a named function
1406 expression impossible in certain situations (issue 24).
1407
1408 Fixed even more build issues.
1409
1410 Optimized calling conventions on ARM. The conventions on ARM and
1411 IA-32 now match.
1412
1413 Removed static initializers for flags and counters.
1414
1415 Improved inline caching behavior for uncommon cases where lazily
1416 loading Date and RegExp code could force certain code paths go
1417 megamorphic.
1418
1419 Removed arguments adaption for builtins written in C++. This
1420 makes Array.prototype.push and Array.prototype.pop slightly
1421 faster.
1422
1423
ager@chromium.org9258b6b2008-09-11 09:11:10 +000014242008-09-11: Version 0.3.1
1425
1426 Fixed a number of build issues.
1427
1428 Fixed problem with missing I-cache flusing on ARM.
1429
1430 Changed space layout in memory management by splitting up
1431 code space into old data space and code space.
1432
1433 Added utf-8 conversion support to the API (issue 57).
1434
1435 Optimized repeated calls to eval with the same strings. These
1436 repeated calls are common in web applications.
1437
1438 Added Xcode project file.
1439
1440 Optimized a couple of Array operation.
1441
1442 Fixed parser bug by checking for end-of-string when parsing break
1443 and continue (issue 35).
1444
1445 Fixed problem where asian characters were not categorized as
1446 letters.
1447
1448 Fixed bug that disallowed calling functions fetched from an array
1449 using a string as an array index (issue 32).
1450
1451 Fixed bug where the internal field count on object templates were
1452 sometimes ignored (issue 54).
1453
1454 Added -f option to the shell sample for compatibility with other
1455 engines (issue 18).
1456
1457 Added source info to TryCatches in the API.
1458
1459 Fixed problem where the seed for the random number generator was
1460 clipped in a double to unsigned int conversion.
1461
1462 Fixed bug where cons string symbols were sometimes converted to
1463 non-symbol flat strings during GC.
1464
1465 Fixed bug in error reporting when attempting to convert null to an
1466 object.
ager@chromium.org32912102009-01-16 10:38:43 +00001467
1468
ager@chromium.orgc27e4e72008-09-04 13:52:27 +000014692008-09-04: Version 0.3.0
1470
1471 Added support for running tests on the ARM simulator.
1472
1473 Fixed bug in the 'in' operator where negative indices were not
1474 treated correctly.
1475
1476 Fixed build issues on gcc-4.3.1.
1477
1478 Changed Date.prototype.toLocaleTimeString to not print the
1479 timezone part of the time.
1480
1481 Renamed debug.h to v8-debug.h to reduce the risk of name conflicts
1482 with user code.
1483
1484
v8.team.kasperl727e9952008-09-02 14:56:44 +000014852008-09-02: Version 0.2.5
1486
1487 Renamed the top level directory 'public' to 'include'.
1488
1489 Added 'env' option to the SCons build scripts to support
1490 overriding the ENV part of the build environment. This is mostly
1491 to support Windows builds in cases where SCons cannot find the
1492 correct paths to the Windows SDK, as these paths cannot be passed
1493 through shell environment variables.
1494
1495 Enabled "Buffer Security Check" on for the Windows SCons build and
1496 added the linker option /OPT:ICF as an optimization.
1497
1498 Added the V8 benchmark suite to the repository.
1499
1500
mads.s.ager@gmail.com9a4089a2008-09-01 08:55:01 +000015012008-09-01: Version 0.2.4
1502
1503 Included mjsunit JavaScript test suite and C++ unit tests.
1504
1505 Changed the shell sample to not print the result of executing a
1506 script provided on the command line.
1507
1508 Fixed issue when building samples on Windows using a shared V8
1509 library. Added visibility option on Linux build which makes the
1510 generated library 18% smaller.
1511
1512 Changed build system to accept multiple build modes in one build
1513 and generate separate objects, libraries and executables for each
1514 mode.
1515
1516 Removed deferred negation optimization (a * -b => -(a * b)) since
1517 this visibly changes operand conversion order.
1518
1519 Improved parsing performance by introducing stack guard in
1520 preparsing. Without a stack guard preparsing always bails out
1521 with stack overflow.
1522
1523 Changed shell sample to take flags directly from the command-line.
1524 Added API call that implements this.
1525
1526 Added load, quit and version functions to the shell sample so it's
1527 easier to run benchmarks and tests.
1528
1529 Fixed issue with building samples and cctests on 64-bit machines.
1530
1531 Fixed bug in the runtime system where the prototype chain was not
1532 always searched for a setter when setting a property that does not
1533 exist locally.
ager@chromium.org32912102009-01-16 10:38:43 +00001534
mads.s.ager@gmail.com9a4089a2008-09-01 08:55:01 +00001535
mads.s.agercbaa0602008-08-14 13:41:48 +000015362008-08-14: Version 0.2.3
1537
1538 Improved performance of garbage collection by moving the
1539 function that updates pointers during compacting collection
1540 into the updating visitor. This gives the compiler a better
1541 chance to inline and avoid a function call per (potential)
1542 pointer.
1543
1544 Extended the shell sample with a --runtime-flags option.
1545
1546 Added Visual Studio project files for the shell.cc and
1547 process.cc samples.
1548
1549
15502008-08-13: Version 0.2.2
mads.s.ager31e71382008-08-13 09:32:07 +00001551
1552 Improved performance of garbage collection by changing the way
1553 we use the marking stack in the event of stack overflow during
1554 full garbage collection and by changing the way we mark roots.
1555
1556 Cleaned up ARM version by removing top of stack caching and by
1557 introducing push/pop elimination.
1558
1559 Cleaned up the way runtime functions are called to allow
1560 runtime calls with no arguments.
1561
1562 Changed Windows build options to make sure that exceptions are
1563 disabled and that optimization flags are enabled.
1564
1565 Added first version of Visual Studio project files.
1566
1567
mads.s.agercbaa0602008-08-14 13:41:48 +000015682008-08-06: Version 0.2.1
mads.s.ager@gmail.com769cc962008-08-06 10:02:49 +00001569
1570 Improved performance of unary addition by avoiding runtime calls.
1571
1572 Fixed the handling of '>' and '<=' to use right-to-left conversion
1573 and left-to-right evaluation as specified by ECMA-262.
1574
1575 Fixed a branch elimination bug on the ARM platform where incorrect
1576 code was generated because of overly aggressive branch
1577 elimination.
1578
1579 Improved performance of code that repeatedly assigns the same
1580 function to the same property of different objects with the same
1581 map.
1582
1583 Untangled DEBUG and ENABLE_DISASSEMBLER defines. The disassembler
1584 no longer expects DEBUG to be defined.
1585
1586 Added platform-nullos.cc to serve as the basis for new platform
1587 implementations.
1588
mads.s.ager31e71382008-08-13 09:32:07 +00001589
mads.s.agercbaa0602008-08-14 13:41:48 +000015902008-07-30: Version 0.2.0
kasper.lund7276f142008-07-30 08:49:36 +00001591
1592 Changed all text files to have native svn:eol-style.
1593
1594 Added a few samples and support for building them. The samples
1595 include a simple shell that can be used to benchmark and test V8.
1596
1597 Changed V8::GetVersion to return the version as a string.
1598
1599 Added source for lazily loaded scripts to snapshots and made
1600 serialization non-destructive.
1601
1602 Improved ARM support by fixing the write barrier code to use
1603 aligned loads and stores and by removing premature locals
1604 optimization that relied on broken support for callee-saved
1605 registers (removed).
1606
1607 Refactored the code for marking live objects during garbage
1608 collection and the code for allocating objects in paged
1609 spaces. Introduced an abstraction for the map word of a heap-
1610 allocated object and changed the memory allocator to allocate
1611 executable memory only for spaces that may contain code objects.
1612
1613 Moved StringBuilder to utils.h and ScopedLock to platform.h, where
1614 they can be used by debugging and logging modules. Added
1615 thread-safe message queues for dealing with debugger events.
1616
1617 Fixed the source code reported by toString for certain builtin
1618 empty functions and made sure that the prototype property of a
1619 function is enumerable.
1620
1621 Improved performance of converting values to condition flags in
1622 generated code.
1623
1624 Merged disassembler-{arch} files.
1625
1626
mads.s.agercbaa0602008-08-14 13:41:48 +000016272008-07-28: Version 0.1.4
kasper.lundaf4734f2008-07-28 12:50:18 +00001628
1629 Added support for storing JavaScript stack traces in a stack
1630 allocated buffer to make it visible in shallow core dumps.
1631 Controlled by the --preallocate-message-memory flag which is
1632 disabled by default.
1633
1634
mads.s.agercbaa0602008-08-14 13:41:48 +000016352008-07-25: Version 0.1.3
kasper.lund44510672008-07-25 07:37:58 +00001636
1637 Fixed bug in JSObject::GetPropertyAttributePostInterceptor where
1638 map transitions would count as properties.
1639
1640 Allowed aliased eval invocations by treating them as evals in the
1641 global context. This may change in the future.
1642
1643 Added support for accessing the last entered context through the
1644 API and renamed Context::Current to Context::GetCurrent and
1645 Context::GetSecurityContext to Context::GetCurrentSecurityContext.
1646
1647 Fixed bug in the debugger that would cause the debugger scripts to
1648 be recursively loaded and changed all disabling of interrupts to
1649 be block-structured.
1650
1651 Made snapshot data read-only to allow it to be more easily shared
1652 across multiple users of V8 when linked as a shared library.
1653
1654
mads.s.agercbaa0602008-08-14 13:41:48 +000016552008-07-16: Version 0.1.2
kasper.lund212ac232008-07-16 07:07:30 +00001656
1657 Fixed building on Mac OS X by recognizing i386 and friends as
1658 IA-32 platforms.
1659
1660 Added propagation of stack overflow exceptions that occur while
1661 compiling nested functions.
1662
1663 Improved debugger with support for recursive break points and
1664 handling of exceptions that occur in the debugger JavaScript code.
1665
1666 Renamed GetInternal to GetInternalField and SetInternal to
1667 SetInternalField in the API and moved InternalFieldCount and
1668 SetInternalFieldCount from FunctionTemplate to ObjectTemplate.
1669
1670
mads.s.agercbaa0602008-08-14 13:41:48 +000016712008-07-09: Version 0.1.1
kasper.lundbd3ec4e2008-07-09 11:06:54 +00001672
1673 Fixed bug in stack overflow check code for IA-32 targets where a
1674 non-tagged value in register eax was pushed to the stack.
1675
1676 Fixed potential quadratic behavior when converting strings to
1677 numbers.
1678
1679 Fixed bug where the return value from Object::SetProperty could
1680 end up being the property holder instead of the written value.
1681
1682 Improved debugger support by allowing nested break points and by
1683 dealing with stack-overflows when compiling functions before
1684 setting break points in them.
1685
1686
mads.s.agercbaa0602008-08-14 13:41:48 +000016872008-07-03: Version 0.1.0
christian.plesner.hansen43d26ec2008-07-03 15:10:15 +00001688
kasper.lundbd3ec4e2008-07-09 11:06:54 +00001689 Initial export.
christian.plesner.hansen43d26ec2008-07-03 15:10:15 +00001690