blob: 93fca4208e69d7d5c688c97c11fab02b8035f143 [file] [log] [blame]
whesse@chromium.org2c186ca2010-06-16 11:32:39 +000012010-06-16: Version 2.2.18
2
3 Added API functions to retrieve information on indexed properties
4 managed by the embedding layer. Fixes bug 737.
5
6 Make ES5 Object.defineProperty support array elements. Fixes bug 619.
7
8 Add heap profiling to the API.
9
10 Remove old named property query from the API.
11
12 Incremental performance improvements.
13
14
ager@chromium.org2cc82ae2010-06-14 07:35:38 +0000152010-06-14: Version 2.2.17
vegorov@chromium.org2356e6f2010-06-09 09:38:56 +000016
ager@chromium.org2cc82ae2010-06-14 07:35:38 +000017 Improved debugger support for stepping out of functions.
18
19 Incremental performance improvements.
20
21
222010-06-09: Version 2.2.16
23
24 Removed the SetExternalStringDiposeCallback API. Changed the
vegorov@chromium.org2356e6f2010-06-09 09:38:56 +000025 disposal of external string resources to call a virtual Dispose
26 method on the resource.
27
28 Added support for more precise break points when debugging and
29 stepping.
30
31 Memory usage improvements on all platforms.
32
33
lrn@chromium.org1af7e1b2010-06-07 11:12:01 +0000342010-06-07: Version 2.2.15
35
36 Add an API to control the disposal of external string resources.
37
38 Add missing initialization of a couple of variables which makes
39 some compilers complaint when compiling with -Werror.
40
41 Improve performance on all platforms.
42
43
sgjesse@chromium.org82dbbab2010-06-02 08:57:44 +0000442010-06-02: Version 2.2.14
45
46 Fixed a crash in code generated for String.charCodeAt.
47
48 Fixed a compilation issue with some GCC versions (issue 727).
49
50 Performance optimizations on x64 and ARM platforms.
51
52
ricow@chromium.org30ce4112010-05-31 10:38:25 +0000532010-05-31: Version 2.2.13
54
55 Implement Object.getOwnPropertyDescriptor for element indices and
56 strings (issue 599).
57
58 Fix bug for windows 64 bit C calls from generated code.
59
60 Add new scons flag unalignedaccesses for arm builds.
61
62 Performance improvements on all platforms.
63
64
kmillikin@chromium.org9155e252010-05-26 13:27:57 +0000652010-05-26: Version 2.2.12
66
67 Allowed accessors to be defined on objects rather than just object
68 templates.
69
70 Changed the ScriptData API.
71
72
erik.corry@gmail.com9dfbea42010-05-21 12:58:28 +0000732010-05-21: Version 2.2.11
74
75 Fix crash bug in liveedit on 64 bit.
76
77 Use 'full compiler' when debugging is active. This should increase
78 the density of possible break points, making single step more fine
79 grained. This will only take effect for functions compiled after
80 debugging has been started, so recompilation of all functions is
81 required to get the full effect. IA32 and x64 only for now.
82
83 Misc. fixes to the Solaris build.
84
85 Add new flags --print-cumulative-gc-stat and --trace-gc-nvp.
86
87 Add filtering of CPU profiles by security context.
88
89 Fix crash bug on ARM when running without VFP2 or VFP3.
90
91 Incremental performance improvements in all backends.
92
93
vegorov@chromium.orgdff694e2010-05-17 09:10:26 +0000942010-05-17: Version 2.2.10
95
96 Performance improvements in the x64 and ARM backends.
97
98
sgjesse@chromium.org720dc0b2010-05-10 09:25:39 +0000992010-05-10: Version 2.2.9
100
101 Allow Object.create to be called with a function (issue 697).
102
103 Fixed bug with Date.parse returning a non-NaN value when called on a
104 non date string (issue 696).
105
106 Allow unaligned memory accesses on ARM targets that support it (by
erik.corry@gmail.com9dfbea42010-05-21 12:58:28 +0000107 Subrato K De of CodeAurora <subratokde@codeaurora.org>).
sgjesse@chromium.org720dc0b2010-05-10 09:25:39 +0000108
109 C++ API for retrieving JavaScript stack trace information.
110
111
ager@chromium.orgac091b72010-05-05 07:34:42 +00001122010-05-05: Version 2.2.8
113
114 Performance improvements in the x64 and ARM backends.
115
116
kmillikin@chromium.org4111b802010-05-03 10:34:42 +00001172010-05-03: Version 2.2.7
118
119 Added support for ES5 date time string format to Date.parse.
120
121 Performance improvements in the x64 backend.
122
123
lrn@chromium.orgc34f5802010-04-28 12:53:43 +00001242010-04-28: Version 2.2.6
125
kmillikin@chromium.org4111b802010-05-03 10:34:42 +0000126 Added "amd64" as recognized architecture in scons build script
lrn@chromium.orgc34f5802010-04-28 12:53:43 +0000127 (by Ryan Dahl <coldredlemur@gmail.com>).
128
kmillikin@chromium.org4111b802010-05-03 10:34:42 +0000129 Fixed bug in String search and replace with very simple RegExps.
lrn@chromium.orgc34f5802010-04-28 12:53:43 +0000130
kmillikin@chromium.org4111b802010-05-03 10:34:42 +0000131 Fixed bug in RegExp containing "\b^".
lrn@chromium.orgc34f5802010-04-28 12:53:43 +0000132
133 Performance improvements on all platforms.
134
kmillikin@chromium.org4111b802010-05-03 10:34:42 +0000135
fschneider@chromium.org013f3e12010-04-26 13:27:52 +00001362010-04-26: Version 2.2.5
137
138 Various performance improvements (especially for ARM and x64)
139
140 Fixed bug in CPU profiling (http://crbug.com/42137)
141
142 Fixed a bug with the natives cache.
lrn@chromium.orgc34f5802010-04-28 12:53:43 +0000143
144 Fixed two bugs in the ARM code generator that can cause
fschneider@chromium.org013f3e12010-04-26 13:27:52 +0000145 wrong calculations.
146
147 Fixed a bug that may cause a wrong result for shift operations.
148
149
1502010-04-21: Version 2.2.4
ricow@chromium.orgc9c80822010-04-21 08:22:37 +0000151
152 Fixed warnings on arm on newer GCC versions.
153
154 Fixed a number of minor bugs.
155
156 Performance improvements on all platforms.
157
158
whesse@chromium.orgb6e43bb2010-04-14 09:36:28 +00001592010-04-14: Version 2.2.3
160
161 Added stack command and mem command to ARM simulator debugger.
162
163 Fixed scons snapshot and ARM build, and Windows X64 build issues.
164
165 Performance improvements on all platforms.
166
167
ager@chromium.org357bf652010-04-12 11:30:10 +00001682010-04-12: Version 2.2.2
169
170 Introduced new profiler API.
171
172 Fixed random number generator to produce full 32 random bits.
173
174
lrn@chromium.org25156de2010-04-06 13:10:27 +00001752010-04-06: Version 2.2.1
176
177 Debugger improvements.
178
179 Fixed minor bugs.
180
181
ricow@chromium.orgaa1b6162010-03-29 07:44:58 +00001822010-03-29: Version 2.2.0
183
184 Fixed a few minor bugs.
185
186 Performance improvements for string operations.
187
188
ager@chromium.orgb26c50a2010-03-26 09:27:16 +00001892010-03-26: Version 2.1.10
190
191 Fixed scons build issues.
192
193 Fixed a couple of minor bugs.
194
195
sgjesse@chromium.orgdf7a2842010-03-25 14:34:15 +00001962010-03-25: Version 2.1.9
197
198 Added API support for reattaching a global object to a context.
199
200 Extended debugger API with access to the internal debugger context.
201
202 Fixed Chromium crashes (issues http://crbug.com/39128 and
203 http://crbug.com/39160)
204
205
kmillikin@chromium.org5d8f0e62010-03-24 08:21:20 +00002062010-03-24: Version 2.1.8
207
208 Added fine-grained garbage collection callbacks to the API.
209
210 Performance improvements on all platforms.
211
212
whesse@chromium.orgcec079d2010-03-22 14:44:04 +00002132010-03-22: Version 2.1.7
214
215 Fixed issue 650.
216
217 Fixed a bug where __proto__ was sometimes enumerated (issue 646).
fschneider@chromium.org086aac62010-03-17 13:18:24 +0000218
219 Performance improvements for arithmetic operations.
220
221 Performance improvements for string operations.
222
whesse@chromium.orgcec079d2010-03-22 14:44:04 +0000223 Print script name and line number information in stack trace.
224
225
2262010-03-17: Version 2.1.6
227
228 Performance improvements for arithmetic operations.
229
230 Performance improvements for string operations.
231
232
vegorov@chromium.orgf8372902010-03-15 10:26:20 +00002332010-03-10: Version 2.1.4
234
235 Fixed code cache lookup for keyed IC's (issue http://crbug.com/37853).
236
237 Performance improvements on all platforms.
238
239
ager@chromium.orgce5e87b2010-03-10 10:24:18 +00002402010-03-10: Version 2.1.3
241
242 Added API method for context-disposal notifications.
243
244 Added API method for accessing elements by integer index.
245
246 Added missing implementation of Uint32::Value and Value::IsUint32
247 API methods.
248
249 Added IsExecutionTerminating API method.
250
251 Disabled strict aliasing for GCC 4.4.
252
253 Fixed string-concatenation bug (issue 636).
254
255 Performance improvements on all platforms.
256
257
fschneider@chromium.orgb95b98b2010-02-23 10:34:29 +00002582010-02-23: Version 2.1.2
259
260 Fix a crash bug caused by wrong assert.
261
262 Fix a bug with register names on 64-bit V8 (issue 615).
263
264 Performance improvements on all platforms.
265
ager@chromium.orgce5e87b2010-03-10 10:24:18 +0000266
ager@chromium.org5c838252010-02-19 08:53:10 +00002672010-02-19: Version 2.1.1
268
269 [ES5] Implemented Object.defineProperty.
270
271 Improved profiler support.
272
273 Added SetPrototype method in the public V8 API.
274
275 Added GetScriptOrigin and GetScriptLineNumber methods to Function
276 objects in the API.
277
278 Performance improvements on all platforms.
279
280
sgjesse@chromium.orgb302e562010-02-03 11:26:59 +00002812010-02-03: Version 2.1.0
282
283 Values are now always wrapped in objects when used as a receiver.
284 (issue 223).
285
286 [ES5] Implemented Object.getOwnPropertyNames.
287
288 [ES5] Restrict JSON.parse to only accept strings that conforms to the
289 JSON grammar.
290
291 Improvement of debugger agent (issue 549 and 554).
292
293 Fixed problem with skipped stack frame in profiles (issue 553).
294
295 Solaris support by Erich Ocean <erich.ocean@me.com> and Ryan Dahl
296 <ry@tinyclouds.org>.
297
298 Fix a bug that Math.round() returns incorrect results for huge
299 integers.
300
301 Fix enumeration order for objects created from some constructor
302 functions (isue http://crbug.com/3867).
303
304 Fix arithmetic on some integer constants (issue 580).
305
306 Numerous performance improvements including porting of previous IA-32
307 optimizations to x64 and ARM architectures.
308
309
fschneider@chromium.org0c20e672010-01-14 15:28:53 +00003102010-01-14: Version 2.0.6
311
312 Added ES5 Object.getPrototypeOf, GetOwnPropertyDescriptor,
313 GetOwnProperty, FromPropertyDescriptor.
314
315 Fixed Mac x64 build errors.
316
317 Improved performance of some math and string operations.
318
319 Improved performance of some regexp operations.
320
321 Improved performance of context creation.
322
323 Improved performance of hash tables.
324
325
sgjesse@chromium.org846fb742009-12-18 08:56:33 +00003262009-12-18: Version 2.0.5
327
328 Extended to upper limit of map space to allow for 7 times as many map
329 to be allocated (issue 524).
330
331 Improved performance of code using closures.
332
333 Improved performance of some binary operations involving doubles.
334
335
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +00003362009-12-16: Version 2.0.4
337
sgjesse@chromium.org846fb742009-12-18 08:56:33 +0000338 Added ECMAScript 5 Object.create.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000339
sgjesse@chromium.org846fb742009-12-18 08:56:33 +0000340 Improved performance of Math.max and Math.min.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000341
sgjesse@chromium.org846fb742009-12-18 08:56:33 +0000342 Optimized adding of strings on 64-bit platforms.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000343
sgjesse@chromium.org846fb742009-12-18 08:56:33 +0000344 Improved handling of external strings by using a separate table
345 instead of weak handles. This improves garbage collection
346 performance and uses less memory.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000347
sgjesse@chromium.org846fb742009-12-18 08:56:33 +0000348 Changed code generation for object and array literals in toplevel
349 code to be more compact by doing more work in the runtime.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000350
sgjesse@chromium.org846fb742009-12-18 08:56:33 +0000351 Fixed a crash bug triggered when garbage collection happened during
352 generation of a callback load inline cache stub.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000353
sgjesse@chromium.org846fb742009-12-18 08:56:33 +0000354 Fixed crash bug sometimes triggered when local variables shadowed
355 parameters in functions that used the arguments object.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000356
357
sgjesse@chromium.orgac6aa172009-12-04 12:29:05 +00003582009-12-03: Version 2.0.3
359
360 Optimized handling and adding of strings, for-in and Array.join.
361
362 Heap serialization is now non-destructive.
363
364 Improved profiler support with information on time spend in C++
365 callbacks registered through the API.
366
367 Added commands to the debugger protocol for starting/stopping
368 profiling.
369
370 Enabled the non-optimizing compiler for top-level code.
371
372 Changed the API to only allow strings to be set as data objects on
373 Contexts and scripts to avoid potentially keeping global objects
374 around for too long (issue 528).
375
376 OpenBSD support patch by Peter Valchev <pvalchev@gmail.com>.
377
378 Fixed bugs.
379
380
ager@chromium.org01beca72009-11-24 14:29:16 +00003812009-11-24: Version 2.0.2
382
383 Improved profiler support.
384
385 Fixed bug that broke compilation of d8 with readline support.
386
387
ager@chromium.org6141cbe2009-11-20 12:14:52 +00003882009-11-20: Version 2.0.1
389
390 Fixed crash bug in String.prototype.replace.
391
392 Reverted a change which caused Chromium interactive ui test
393 failures.
394
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000395
ager@chromium.orgc4c92722009-11-18 14:12:51 +00003962009-11-18: Version 2.0.0
397
398 Added support for VFP on ARM.
399
400 Added TryCatch::ReThrow method to the API.
401
402 Reduced the size of snapshots and improved the snapshot load time.
403
404 Improved heap profiler support.
405
406 64-bit version now supported on Windows.
407
408 Fixed a number of debugger issues.
409
410 Fixed bugs.
411
412
sgjesse@chromium.orgf1e73132009-10-29 14:46:49 +00004132009-10-29: Version 1.3.18
414
415 Reverted a change which caused crashes in RegExp replace.
416
sgjesse@chromium.orgac6aa172009-12-04 12:29:05 +0000417 Reverted a change which caused Chromium ui_tests failure.
sgjesse@chromium.orgf1e73132009-10-29 14:46:49 +0000418
419
ager@chromium.org3811b432009-10-28 14:53:37 +00004202009-10-28: Version 1.3.17
421
422 Added API method to get simple heap statistics.
423
424 Improved heap profiler support.
425
426 Fixed the implementation of the resource constraint API so it
427 works when using snapshots.
428
429 Fixed a number of issues in the Windows 64-bit version.
430
431 Optimized calls to API getters.
432
433 Added valgrind notification on code modification to the 64-bit version.
434
435 Fixed issue where we logged shared library addresses on Windows at
436 startup and never used them.
437
438
christian.plesner.hansen@gmail.com9d58c2b2009-10-16 11:48:38 +00004392009-10-16: Version 1.3.16
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000440
christian.plesner.hansen@gmail.com9d58c2b2009-10-16 11:48:38 +0000441 X64: Convert smis to holding 32 bits of payload.
442
443 Introduce v8::Integer::NewFromUnsigned method.
444
445 Add missing null check in Context::GetCurrent.
446
447 Add trim, trimLeft and trimRight methods to String
448 Patch by Jan de Mooij <jandemooij@gmail.com>
449
450 Implement ES5 Array.isArray
451 Patch by Jan de Mooij <jandemooij@gmail.com>
452
453 Skip access checks for hidden properties.
454
455 Add String::Concat(Handle<String> left, Handle<String> right) to the V8 API.
456
457 Fix GYP-based builds of V8.
458
459
sgjesse@chromium.org152a0b02009-10-07 13:50:16 +00004602009-10-07: Version 1.3.15
461
462 Expand the maximum size of the code space to 512MB for 64-bit mode.
463
464 Fixed a crash bug happening when starting profiling (issue
465 http://crbug.com/23768).
466
467
sgjesse@chromium.orgc5145742009-10-07 09:00:33 +00004682009-10-07: Version 1.3.14
469
470 Added GetRealNamedProperty to the API to lookup real properties
471 located on the object or in the prototype chain skipping any
472 interceptors.
473
474 Fix the stack limits setting API to work correctly with threads. The
475 stack limit now needs to be set to each thread thich is used with V8.
476
477 Remove the high-priority flag from IdleNotification()
478
479 Ensure V8 is initialized before locking and unlocking threads.
480
481 Implemented a new JavaScript minifier for compressing the source of
ager@chromium.org3811b432009-10-28 14:53:37 +0000482 the built-in JavaScript. This removes non-Open Source code from Douglas
sgjesse@chromium.orgc5145742009-10-07 09:00:33 +0000483 Crockford from the project.
484
485 Added a missing optimization in StringCharAt.
486
487 Fixed some flaky socket tests.
488
489 Change by Alexander Botero-Lowry to fix profiler sampling on FreeBSD
490 in 64-bit mode.
491
492 Fixed memory leaks in the thread management code.
493
494 Fixed the result of assignment to a pixel array. The assigned value
495 is now the result.
496
497 Error reporting for invalid left-hand sides in for-in statements, pre-
498 and postfix count expressions, and assignments now matches the JSC
499 behavior in Safari 4.
500
501 Follow the spec in disallowing function declarations without a name.
502
503 Always allocate code objects within a 2 GB range. On x64 architecture
504 this is used to use near calls (32-bit displacement) in Code objects.
505
506 Optimized array construction ported to x64 and ARM architectures.
507
508 [ES5] Changed Object.keys to return strings for element indices.
509
510
ager@chromium.org68e7ab72009-09-23 09:40:39 +00005112009-09-23: Version 1.3.13
512
513 Fixed uninitialized memory problem.
514
515 Improved heap profiler support.
516
517
christian.plesner.hansen@gmail.com2bc58ef2009-09-22 10:00:30 +00005182009-09-22: Version 1.3.12
519
520 Changed behavior of |function|.toString() on built-in functions to
521 be compatible with other implementations. Patch by Jan de Mooij.
522
523 Added Object::IsDirty in the API.
524
525 Optimized array construction; it is now handled purely in native
526 code.
527
528 [ES5] Made properties of the arguments array enumerable.
529
530 [ES5] Added test suite adapter for the es5conform test suite.
531
532 [ES5] Added Object.keys function.
533
ager@chromium.org68e7ab72009-09-23 09:40:39 +0000534
ager@chromium.org4af710e2009-09-15 12:20:11 +00005352009-09-15: Version 1.3.11
536
537 Fixed crash in error reporting during bootstrapping.
538
539 Optimized generated IA32 math code by using SSE2 instructions when
540 available.
541
542 Implemented missing pieces of debugger infrastructure on ARM. The
543 debugger is now fully functional on ARM.
544
545 Make 'hidden' the default visibility for gcc.
546
547
ager@chromium.orga1645e22009-09-09 19:27:10 +00005482009-09-09: Version 1.3.10
549
550 Fixed profiler on Mac in 64-bit mode.
551
552 Optimized creation of objects from simple constructor functions on
553 ARM.
554
555 Fixed a number of debugger issues.
556
557 Reduced the amount of memory consumed by V8.
558
559
ager@chromium.org18ad94b2009-09-02 08:22:29 +00005602009-09-02: Version 1.3.9
561
562 Optimized stack guard checks on ARM.
563
564 Optimized API operations by inlining more in the API.
565
566 Optimized creation of objects from simple constructor functions.
567
568 Enabled a number of missing optimizations in the 64-bit port.
569
570 Implemented native-code support for regular expressions on ARM.
571
572 Stopped using the 'sahf' instruction on 64-bit machines that do
573 not support it.
574
575 Fixed a bug in the support for forceful termination of JavaScript
576 execution.
577
578
ager@chromium.org96c75b52009-08-26 09:13:16 +00005792009-08-26: Version 1.3.8
580
581 Changed the handling of idle notifications to allow idle
582 notifications when V8 has not yet been initialized.
583
584 Fixed ARM simulator compilation problem on Windows.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000585
ager@chromium.org96c75b52009-08-26 09:13:16 +0000586
ager@chromium.orgab99eea2009-08-25 07:05:41 +00005872009-08-25: Version 1.3.7
588
589 Reduced the size of generated code on ARM platforms by reducing
590 the size of constant pools.
591
592 Changed build files to not include the 'ENV' user environment
593 variable in the build environment.
594
595 Changed the handling of idle notifications.
596
597
sgjesse@chromium.orgc81c8942009-08-21 10:54:26 +00005982009-08-21: Version 1.3.6
599
600 Add support for forceful termination of JavaScript execution.
601
602 Add low memory notification to the API. The embedding host can signal
603 a low memory situation to V8.
604
605 Changed the handling of global handles (persistent handles in the API
606 sense) to avoid issues regarding allocation of new global handles
607 during weak handle callbacks.
608
609 Changed the growth policy of the young space.
610
611 Fixed a GC issue introduced in version 1.3.5.
612
613
sgjesse@chromium.org911335c2009-08-19 12:59:44 +00006142009-08-19: Version 1.3.5
615
616 Optimize initialization of some arrays in the builtins.
617
618 Fix mac-nm script to support filenames with spaces.
619
620 Support for using the V8 profiler when V8 is embedded in a Windows DLL.
621
622 Changed typeof RegExp from 'object' to 'function' for compatibility.
623 Fixed bug where regexps were not callable across contexts.
624
625 Added context independent script compilation to the API.
626
627 Added API call to get the stack trace for an exception.
628
629 Added API for getting object mirrors.
630
631 Make sure that SSE3 instructions are used whenever possible even when
632 running off a snapshot generated without using SSE3 instructions.
633
634 Tweaked the handling of the initial size and growth policy of the heap.
635
636 Added native code generation for RegExp to 64-bit version.
637
638 Added JavaScript debugger support to 64-bit version.
639
640
ager@chromium.orgadd848f2009-08-13 12:44:13 +00006412009-08-13: Version 1.3.4
642
643 Added a readline() command to the d8 shell.
644
645 Fixed bug in json parsing.
646
647 Added idle notification to the API and reduced memory on idle
648 notifications.
649
650
christian.plesner.hansen@gmail.com5a6af922009-08-12 14:20:51 +00006512009-08-12: Version 1.3.3
652
653 Fix issue 417: incorrect %t placeholder expansion.
654
655 Add .gitignore file similar to Chromium's one.
656
657 Fix SConstruct file to build with new logging code for Android.
658
659 API: added function to find instance of template in prototype
660 chain. Inlined Object::IsInstanceOf.
661
662 Land change to notify valgrind when we modify code on x86.
663
664 Add api call to determine whether a string can be externalized.
665
666 Add a write() command to d8.
667
668
sgjesse@chromium.orgb9d7da12009-08-05 08:38:10 +00006692009-08-05: Version 1.3.2
670
671 Started new compiler infrastructure for two-pass compilation using a
672 control flow graph constructed from the AST.
673
674 Profiler stack sampling for X64.
675
676 Safe handling of NaN to Posix platform-dependent time functions.
677
678 Added a new profiler control API to unify controlling various aspects
679 of profiling.
680
681 Fixed issue 392.
682
683
sgjesse@chromium.org0b6db592009-07-30 14:48:31 +00006842009-07-30: Version 1.3.1
685
686 Speed improvements to accessors and interceptors.
687
688 Added support for capturing stack information on custom errors.
689
690 Added support for morphing an object into a pixel array where its
691 indexed properties are stored in an external byte array. Values written
692 are always clamped to the 0..255 interval.
693
694 Profiler on x64 now handles C/C++ functions from shared libraries.
695
696 Changed the debugger to avoid stepping into function.call/apply if the
697 function is a built-in.
698
699 Initial implementation of constructor heap profile for JS objects.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000700
sgjesse@chromium.org0b6db592009-07-30 14:48:31 +0000701 More fine grained control of profiling aspects through the API.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000702
sgjesse@chromium.org0b6db592009-07-30 14:48:31 +0000703 Optimized the called as constructor check for API calls.
704
705
kasperl@chromium.orge959c182009-07-27 08:59:04 +00007062009-07-27: Version 1.3.0
707
708 Allowed RegExp objects to be called as functions (issue 132).
709
710 Fixed issue where global property cells would escape after
711 detaching the global object; see http://crbug.com/16276.
712
713 Added support for stepping into setters and getters in the
714 debugger.
715
716 Changed the debugger to avoid stopping in its own JavaScript code
717 and in the code of built-in functions.
718
719 Fixed issue 345 by avoiding duplicate escaping labels.
720
721 Fixed ARM code generator crash in short-circuited boolean
722 expressions and added regression tests.
723
724 Added an external allocation limit to avoid issues where small V8
725 objects would hold on to large amounts of external memory without
726 causing garbage collections.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000727
728 Finished more of the inline caching stubs for x64 targets.
kasperl@chromium.orge959c182009-07-27 08:59:04 +0000729
730
kasperl@chromium.orgdefbd102009-07-13 14:04:26 +00007312009-07-13: Version 1.2.14
732
733 Added separate paged heap space for global property cells and
734 avoid updating the write barrier when storing into them.
735
736 Improved peep-hole optimization on ARM platforms by not emitting
737 unnecessary debug information.
738
739 Re-enabled ICs for loads and calls that skip a global object
740 during lookup through the prototype chain.
741
742 Allowed access through global proxies to use ICs.
743
744 Fixed issue 401.
745
746
kasperl@chromium.org68ac0092009-07-09 06:00:35 +00007472009-07-09: Version 1.2.13
748
749 Fixed issue 397, issue 398, and issue 399.
750
751 Added support for breakpoint groups.
752
753 Fixed bugs introduced with the new global object representation.
754
755 Fixed a few bugs in the ARM code generator.
756
757
kasperl@chromium.org86f77b72009-07-06 08:21:57 +00007582009-07-06: Version 1.2.12
759
760 Added stack traces collection to Error objects accessible through
761 the e.stack property.
762
763 Changed RegExp parser to use a recursive data structure instead of
764 stack-based recursion.
765
766 Optimized Date object construction and string concatenation.
767
768 Improved performance of div, mod, and mul on ARM platforms.
769
770
kasperl@chromium.org2abc4502009-07-02 07:00:29 +00007712009-07-02: Version 1.2.11
772
773 Improved performance on IA-32 and ARM.
774
775 Fixed profiler sampler implementation on Mac OS X.
776
777 Changed the representation of global objects to improve
778 performance of adding a lot of new properties.
779
780
ager@chromium.org3e875802009-06-29 08:26:34 +00007812009-06-29: Version 1.2.10
782
783 Improved debugger support.
784
785 Fixed bug in exception message reporting (issue 390).
786
787 Improved overall performance.
788
789
ager@chromium.org5aa501c2009-06-23 07:57:28 +00007902009-06-23: Version 1.2.9
791
792 Improved math performance on ARM.
793
794 Fixed profiler name-inference bug.
795
796 Fixed handling of shared libraries in the profiler tick processor
797 scripts.
798
799 Fixed handling of tests that time out in the test scripts.
800
801 Fixed compilation on MacOS X version 10.4.
802
803 Fixed two bugs in the regular expression engine.
804
805 Fixed a bug in the string type inference.
806
807 Fixed a bug in the handling of 'constant function' properties.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000808
ager@chromium.org5aa501c2009-06-23 07:57:28 +0000809 Improved overall performance.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000810
ager@chromium.org5aa501c2009-06-23 07:57:28 +0000811
ager@chromium.orgeadaf222009-06-16 09:43:10 +00008122009-06-16: Version 1.2.8
813
814 Optimized math on ARM platforms.
815
816 Fixed two crash bugs in the handling of getters and setters.
817
818 Improved the debugger support by adding scope chain information.
819
820 Improved the profiler support by compressing log data transmitted
821 to clients.
822
823 Improved overall performance.
824
825
ager@chromium.orge2902be2009-06-08 12:21:35 +00008262009-06-08: Version 1.2.7
827
828 Improved debugger and profiler support.
829
830 Reduced compilation time by improving the handling of deferred
831 code.
832
833 Optimized interceptor accesses where the property is on the object
834 on which the interceptors is attached.
835
836 Fixed compilation problem on GCC 4.4 by changing the stack
837 alignment to 16 bytes.
838
839 Fixed handle creation to follow stric aliasing rules.
840
841 Fixed compilation on FreeBSD.
842
843 Introduced API for forcing the deletion of a property ignoring
844 interceptors and attributes.
845
846
sgjesse@chromium.org755c5b12009-05-29 11:04:38 +00008472009-05-29: Version 1.2.6
848
849 Added a histogram recording hit rates at different levels of the
850 compilation cache.
851
852 Added stack overflow check for the RegExp analysis phase. Previously a
853 very long regexp graph could overflow the stack with recursive calls.
854
855 Use a dynamic buffer when collecting log events in memory.
856
857 Added start/stop events to the profiler log.
858
859 Fixed infinite loop which could happen when setting a debug break while
860 executing a RegExp compiled to native code.
861
862 Fixed handling of lastIndexOf called with negative index (issue 351).
863
864 Fixed irregular crash in profiler test (issue 358).
865
866 Fixed compilation issues with some versions of gcc.
867
868
kasperl@chromium.org71affb52009-05-26 05:44:31 +00008692009-05-26: Version 1.2.5
870
871 Fixed bug in initial boundary check for Boyer-Moore text
872 search (issue 349).
873
874 Fixed compilation issues with MinGW and gcc 4.3+ and added support
875 for armv7 and cortex-a8 architectures. Patches by Lei Zhang and
876 Craig Schlenter.
877
878 Added a script cache to the debugger.
879
880 Optimized compilation performance by improving internal data
881 structures and avoiding expensive property load optimizations for
882 code that's infrequently executed.
883
884 Exposed the calling JavaScript context through the static API
885 function Context::GetCalling().
886
887
kasperl@chromium.orgb3284ad2009-05-18 06:12:45 +00008882009-05-18: Version 1.2.4
889
890 Improved performance of floating point number allocation for ARM
891 platforms.
892
893 Fixed crash when using the instanceof operator on functions with
894 number values in their prototype chain (issue 341).
895
896 Optimized virtual frame operations in the code generator to speed
897 up compilation time and allocated the frames in the zone.
898
899 Made the representation of virtual frames and jump targets in the
900 code generator much more compact.
901
902 Avoided linear search for non-locals in scope code when resolving
903 variables inside with and eval scopes.
904
905 Optimized lexical scanner by dealing with whitespace as part of
906 the token scanning instead of as a separate step before it.
907
908 Changed the scavenging collector so that promoted objects do not
909 reside in the old generation while their remembered set is being
910 swept for pointers into the young generation.
911
912 Fixed numeric overflow handling when compiling count operations.
913
914
ager@chromium.org9085a012009-05-11 19:22:57 +00009152009-05-11: Version 1.2.3
916
917 Fixed bug in reporting of out-of-memory situations.
918
919 Introduced hidden prototypes on certain builtin prototype objects
920 such as String.prototype to emulate JSC's behavior of restoring
921 the original function when deleting functions from those prototype
922 objects.
923
924 Fixed crash bug in the register allocator.
925
926
ager@chromium.org5ec48922009-05-05 07:25:34 +00009272009-05-04: Version 1.2.2
928
929 Fixed bug in array sorting for sparse arrays (issue 326).
930
931 Added support for adding a soname when building a shared library
932 on Linux (issue 151).
933
934 Fixed bug caused by morphing internal ASCII strings to external
935 two-byte strings. Slices over ASCII strings have to forward ASCII
936 checks to the underlying buffer string.
937
938 Allowed API call-as-function handlers to be called as
939 constructors.
940
941 Fixed a crash bug where an external string was disposed but a
942 slice of the external string survived as a symbol.
943
944
ager@chromium.org3a37e9b2009-04-27 09:26:21 +00009452009-04-27: Version 1.2.1
946
947 Added EcmaScript 5 JSON object.
948
949 Fix bug in preemption support on ARM.
950
951
ager@chromium.org65dad4b2009-04-23 08:48:43 +00009522009-04-23: Version 1.2.0
953
954 Optimized floating-point operations on ARM.
955
956 Added a number of extensions to the debugger API.
957
958 Changed the enumeration order for unsigned integer keys to always
959 be numerical order.
960
961 Added a "read" extension to the shell sample.
962
963 Added support for Array.prototype.reduce and
964 Array.prototype.reduceRight.
965
966 Added an option to the SCons build to control Microsoft Visual C++
967 link-time code generation.
968
969 Fixed a number of bugs (in particular issue 315, issue 316,
970 issue 317 and issue 318).
971
972
kasperl@chromium.org2d18d102009-04-15 13:27:32 +00009732009-04-15: Version 1.1.10
974
975 Fixed crash bug that occurred when loading a const variable in the
976 presence of eval.
977
978 Allowed using with and eval in registered extensions in debug mode
979 by fixing bogus assert.
980
981 Fixed the source position for function returns to enable the
982 debugger to break there.
983
984
kasperl@chromium.orgd1e3e722009-04-14 13:38:25 +00009852009-04-14: Version 1.1.9
986
987 Made the stack traversal code in the profiler robust by avoiding
988 to look into the heap.
989
990 Added name inferencing for anonymous functions to facilitate
991 debugging and profiling.
992
993 Re-enabled stats timers in the developer shell (d8).
994
995 Fixed issue 303 by avoiding to shortcut cons-symbols.
996
997
kasperl@chromium.orgacae3782009-04-11 09:17:08 +00009982009-04-11: Version 1.1.8
999
1000 Changed test-debug/ThreadedDebugging to be non-flaky (issue 96).
1001
ager@chromium.org65dad4b2009-04-23 08:48:43 +00001002 Fixed step-in handling for Function.prototype.apply and call in
kasperl@chromium.orgacae3782009-04-11 09:17:08 +00001003 the debugger (issue 269).
1004
1005 Fixed v8::Object::DeleteHiddenValue to not bail out when there
1006 are no hidden properties.
1007
ager@chromium.org65dad4b2009-04-23 08:48:43 +00001008 Added workaround for crash bug, where external symbol table
kasperl@chromium.orgacae3782009-04-11 09:17:08 +00001009 entries with deleted resources would lead to NPEs when looking
1010 up in the symbol table.
1011
1012
kasperl@chromium.org8ccb0be2009-04-07 07:21:39 +000010132009-04-07: Version 1.1.7
1014
1015 Added support for easily importing additional environment
1016 variables into the SCons build.
1017
1018 Optimized strict equality checks.
1019
1020 Fixed crash in indexed setters on objects without a corresponding
1021 getter (issue 298).
1022
1023 Re-enabled script compilation cache.
1024
1025
ager@chromium.org8682a592009-04-01 10:47:14 +000010262009-04-01: Version 1.1.6
1027
1028 Reverted an unsafe code generator change.
1029
1030
ager@chromium.org71daaf62009-04-01 07:22:49 +000010312009-04-01: Version 1.1.5
1032
1033 Fixed bug that caused function literals to not be optimized as
1034 much as other functions.
1035
1036 Improved profiler support.
1037
1038 Fixed a crash bug in connection with debugger unloading.
1039
1040 Fixed a crash bug in the code generator caused by losing the
1041 information that a frame element was copied.
1042
1043 Fixed an exception propagation bug that could cause non-null
1044 return values when exceptions were thrown.
1045
1046
ager@chromium.org41826e72009-03-30 13:30:57 +000010472009-03-30: Version 1.1.4
1048
1049 Optimized String.prototype.match.
1050
1051 Improved the stack information in profiles.
1052
1053 Fixed bug in ARM port making it possible to compile the runtime
1054 system for thumb mode again.
1055
1056 Implemented a number of optimizations in the code generator.
1057
1058 Fixed a number of memory leaks in tests.
1059
1060 Fixed crash bug in connection with script source code and external
kasperl@chromium.org8ccb0be2009-04-07 07:21:39 +00001061 strings.
ager@chromium.org41826e72009-03-30 13:30:57 +00001062
1063
kasperl@chromium.orgf5aa8372009-03-24 14:47:14 +000010642009-03-24: Version 1.1.3
1065
1066 Fixed assertion failures in compilation of loop conditions.
1067
1068 Removed STL dependency from developer shell (d8).
1069
1070 Added infrastructure for protecting the V8 heap from corruption
1071 caused by memory modifications from the outside.
1072
1073
ager@chromium.orgbb29dc92009-03-24 13:25:23 +000010742009-03-24: Version 1.1.2
1075
1076 Improved frame merge code generated by the code generator.
1077
1078 Optimized String.prototype.replace.
1079
1080 Implemented __defineGetter__ and __defineSetter__ for properties
1081 with integer keys on non-array objects.
1082
1083 Improved debugger and profiler support.
1084
1085 Fixed a number of portability issues to allow compilation for
1086 smaller ARM devices.
1087
1088 Exposed object cloning through the API.
1089
1090 Implemented hidden properties. This is used to expose an identity
1091 hash for objects through the API.
1092
1093 Implemented restarting of regular expressions if their input
1094 string changes representation during preemption.
1095
1096 Fixed a code generator bug that could cause assignments in loops
1097 to be ignored if using continue to break out of the loop (issue
1098 284).
1099
1100
ager@chromium.org3a6061e2009-03-12 14:24:36 +000011012009-03-12: Version 1.1.1
1102
1103 Fixed an assertion in the new compiler to take stack overflow
1104 exceptions into account.
1105
1106 Removed exception propagation code that could cause crashes.
1107
1108 Fixed minor bug in debugger line number computations.
1109
1110 8-byte align the C stack on Linux and Windows to speed up floating
1111 point computations.
1112
1113
kasperl@chromium.org7be3c992009-03-12 07:19:55 +000011142009-03-12: Version 1.1.0
1115
1116 Improved code generation infrastructure by doing simple register
1117 allocation and constant folding and propagation.
1118
1119 Optimized regular expression matching by avoiding to create
1120 intermediate string arrays and by flattening nested array
1121 representations of RegExp data.
1122
1123 Traverse a few stack frames when recording profiler samples to
1124 include partial call graphs in the profiling output.
1125
1126 Added support for using OProfile to profile generated code.
1127
1128 Added remote debugging support to the D8 developer shell.
1129
1130 Optimized creation of nested literals like JSON objects.
1131
1132 Fixed a bug in garbage collecting unused maps and turned it on by
1133 default (--collect-maps).
1134
1135 Added support for running tests under Valgrind.
1136
1137
kasperl@chromium.org061ef742009-02-27 12:16:20 +000011382009-02-27: Version 1.0.3
1139
1140 Optimized double-to-integer conversions in bit operations by using
1141 SSE3 instructions if available.
1142
1143 Optimized initialization sequences that store to multiple
1144 properties of the same object.
1145
1146 Changed the D8 debugger frontend to use JSON messages.
1147
1148 Force garbage collections when disposing contexts.
1149
1150 Align code objects at 32-byte boundaries.
1151
1152
ager@chromium.org381abbb2009-02-25 13:23:22 +000011532009-02-25: Version 1.0.2
1154
1155 Improved profiling support by performing simple call stack
1156 sampling for ticks and by fixing a bug in the logging of code
1157 addresses.
1158
1159 Fixed a number of debugger issues.
1160
1161 Optimized code that uses eval.
1162
1163 Fixed a couple of bugs in the regular expression engine.
1164
1165 Reduced the size of generated code for certain regular expressions.
1166
1167 Removed JSCRE completely.
1168
1169 Fixed issue where test could not be run if there was a dot in the
1170 checkout path.
1171
1172
ager@chromium.org6f10e412009-02-13 10:11:16 +000011732009-02-13: Version 1.0.1
1174
1175 Fixed two crash-bugs in irregexp (issue 231 and 233).
1176
1177 Fixed a number of minor bugs (issue 87, 227 and 228).
1178
1179 Added support for morphing strings to external strings on demand
1180 to avoid having to create copies in the embedding code.
1181
1182 Removed experimental support for external symbol callbacks.
1183
1184
iposva@chromium.org245aa852009-02-10 00:49:54 +000011852009-02-09: Version 1.0.0
1186
1187 Fixed crash-bug in the code generation for case independent 16 bit
1188 backreferences.
ager@chromium.org6f10e412009-02-13 10:11:16 +00001189
iposva@chromium.org245aa852009-02-10 00:49:54 +00001190 Made shells more robust in the presence of string conversion
1191 failures (issue 224).
ager@chromium.org6f10e412009-02-13 10:11:16 +00001192
iposva@chromium.org245aa852009-02-10 00:49:54 +00001193 Fixed a potential infinite loop when attempting to resolve
1194 eval (issue 221).
ager@chromium.org6f10e412009-02-13 10:11:16 +00001195
iposva@chromium.org245aa852009-02-10 00:49:54 +00001196 Miscellaneous fixes to the new regular expression engine.
ager@chromium.org6f10e412009-02-13 10:11:16 +00001197
iposva@chromium.org245aa852009-02-10 00:49:54 +00001198 Reduced binary by stripping unneeded text from JavaScript library and
1199 minifying some JavaScript files.
1200
1201
ager@chromium.orgddb913d2009-01-27 10:01:48 +000012022009-01-27: Version 0.4.9
1203
1204 Enabled new regular expression engine.
1205
1206 Made a number of changes to the debugger protocol.
1207
1208 Fixed a number of bugs in the preemption support.
1209
1210 Added -p option to the developer shell to run files in parallel
1211 using preemption.
1212
1213 Fixed a number of minor bugs (including issues 176, 187, 189, 192,
1214 193, 198 and 201).
1215
1216 Fixed a number of bugs in the serialization/deserialization
1217 support for the ARM platform.
1218
1219
sgjesse@chromium.org715915b2009-01-19 16:08:47 +000012202009-01-19: Version 0.4.8.1
1221
1222 Minor patch to debugger support.
1223
1224
ager@chromium.org32912102009-01-16 10:38:43 +000012252009-01-16: Version 0.4.8
1226
1227 Fixed string length bug on ARM (issue 171).
1228
1229 Made most methods in the API const.
1230
1231 Optimized object literals by improving data locality.
1232
1233 Fixed bug that caused incomplete functions to be cached in case of
sgjesse@chromium.org715915b2009-01-19 16:08:47 +00001234 stack overflow exceptions.
ager@chromium.org32912102009-01-16 10:38:43 +00001235
1236 Fixed bugs that caused catch variables and variables introduced by
sgjesse@chromium.org715915b2009-01-19 16:08:47 +00001237 eval to behave incorrectly when using accessors (issues 186, 190
1238 and 191).
ager@chromium.org32912102009-01-16 10:38:43 +00001239
1240
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +000012412009-01-06: Version 0.4.7
1242
ager@chromium.org32912102009-01-16 10:38:43 +00001243 Minor bugfixes and optimizations.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +00001244
ager@chromium.org32912102009-01-16 10:38:43 +00001245 Added command line debugger to D8 shell.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +00001246
ager@chromium.org32912102009-01-16 10:38:43 +00001247 Fixed subtle bug that caused the wrong 'this' to be used when
1248 calling a caught function in a catch clause.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +00001249
ager@chromium.org32912102009-01-16 10:38:43 +00001250 Inline array loads within loops directly in the code instead of
1251 always calling a stub.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +00001252
ager@chromium.org32912102009-01-16 10:38:43 +00001253
ager@chromium.org8bb60582008-12-11 12:02:20 +000012542008-12-11: Version 0.4.6
1255
1256 Fixed exception reporting bug where certain exceptions were
1257 incorrectly reported as uncaught.
1258
1259 Improved the memory allocation strategy used during compilation to
1260 make running out of memory when compiling huge scripts less
1261 likely.
1262
1263 Optimized String.replace by avoiding the construction of certain
1264 sub strings.
1265
1266 Fixed bug in code generation for large switch statements on ARM.
1267
1268 Fixed bug that caused V8 to change the global object template
1269 passed in by the user.
1270
1271 Changed the API for creating object groups used during garbage
1272 collection. Entire object groups are now passed to V8 instead of
1273 individual members of the groups.
1274
ager@chromium.org32912102009-01-16 10:38:43 +00001275
ager@chromium.orga74f0da2008-12-03 16:05:52 +000012762008-12-03: Version 0.4.5
iposva@chromium.org96f667e2008-11-26 23:48:02 +00001277
ager@chromium.orga74f0da2008-12-03 16:05:52 +00001278 Added experimental API support for allocating V8 symbols as
1279 external strings.
1280
1281 Fixed bugs in debugging support on ARM.
1282
1283 Changed eval implementation to correctly detect whether or not a
1284 call to eval is aliased.
1285
1286 Fixed bug caused by a combination of the compilation cache and
1287 dictionary probing in native code. The bug caused us to sometimes
1288 call functions that had not yet been compiled.
1289
1290 Added platform support for FreeBSD.
1291
1292 Added support for building V8 on Windows with either the shared or
1293 static version of MSVCRT
ager@chromium.org32912102009-01-16 10:38:43 +00001294
iposva@chromium.org96f667e2008-11-26 23:48:02 +00001295 Added the v8::jscre namespace around the jscre functions to avoid
1296 link errors (duplicate symbols) when building Google Chrome.
1297
ager@chromium.orga74f0da2008-12-03 16:05:52 +00001298 Added support for calling a JavaScript function with the current
1299 debugger execution context as its argument to the debugger
1300 interface.
1301
1302 Changed the type of names of counters from wchar_t to char.
1303
1304 Changed the Windows system call used to compute daylight savings
1305 time. The system call that we used to use became four times
1306 slower on WinXP SP3.
1307
1308 Added support in the d8 developer shell for memory-mapped counters
1309 and added a stats-viewer tool.
1310
1311 Fixed bug in upper/lower case mappings (issue 149).
1312
iposva@chromium.org96f667e2008-11-26 23:48:02 +00001313
ager@chromium.org3bf7b912008-11-17 09:09:45 +000013142008-11-17: Version 0.4.4
1315
1316 Reduced code size by using shorter instruction encoding when
1317 possible.
1318
1319 Added a --help option to the shell sample and to the d8 shell.
1320
1321 Added visual studio project files for building the ARM simulator.
1322
1323 Fixed a number of ARM simulator issues.
1324
1325 Fixed bug in out-of-memory handling on ARM.
1326
1327 Implemented shell support for passing arguments to a script from
1328 the command line.
1329
1330 Fixed bug in date code that made certain date functions return -0
1331 instead of 0 for dates before the epoch.
1332
1333 Restricted applications of eval so it can only be used in the
1334 context of the associated global object.
1335
1336 Treat byte-order marks as whitespace characters.
ager@chromium.org32912102009-01-16 10:38:43 +00001337
1338
ager@chromium.org870a0b62008-11-04 11:43:05 +000013392008-11-04: Version 0.4.3
1340
1341 Added support for API accessors that prohibit overwriting by
1342 accessors defined in JavaScript code by using __defineGetter__ and
1343 __defineSetter__.
1344
1345 Improved handling of conditionals in test status files.
1346
1347 Introduced access control in propertyIsEnumerable.
1348
1349 Improved performance of some string operations by caching
1350 information about the type of the string between operations.
1351
1352 Fixed bug in fast-case code for switch statements that only have
1353 integer labels.
ager@chromium.org32912102009-01-16 10:38:43 +00001354
ager@chromium.org870a0b62008-11-04 11:43:05 +00001355
kasperl@chromium.org9bbf9682008-10-30 11:53:07 +000013562008-10-30: Version 0.4.2
1357
1358 Improved performance of Array.prototype.concat by moving the
1359 implementation to C++ (issue 123).
1360
1361 Fixed heap growth policy to avoid growing old space to its maximum
1362 capacity before doing a garbage collection and fixed issue that
1363 would lead to artificial out of memory situations (issue 129).
1364
1365 Fixed Date.prototype.toLocaleDateString to return the date in the
1366 same format as WebKit.
1367
1368 Added missing initialization checks to debugger API.
1369
1370 Added removing of unused maps during GC.
1371
1372
kasperl@chromium.org9fe21c62008-10-28 08:53:51 +000013732008-10-28: Version 0.4.1
1374
1375 Added caching of RegExp data in compilation cache.
1376
1377 Added Visual Studio project file for d8 shell.
1378
1379 Fixed function call performance regression introduced in version
1380 0.4.0 when splitting the global object in two parts (issue 120).
1381
1382 Fixed issue 131 by checking for empty handles before throwing and
1383 reporting exceptions.
1384
1385
kasperl@chromium.org5a8ca6c2008-10-23 13:57:19 +000013862008-10-23: Version 0.4.0
1387
1388 Split the global object into two parts: The state holding global
1389 object and the global object proxy.
1390
1391 Fixed bug that affected the value of an assignment to an element
1392 in certain cases (issue 116).
1393
1394 Added GetPropertyNames functionality (issue 33) and extra Date
1395 functions (issue 77) to the API.
1396
1397 Changed WeakReferenceCallback to take a Persistent<Value> instead
1398 of a Persistent<Object> (issue 101).
1399
1400 Fixed issues with message reporting for exceptions in try-finally
1401 blocks (issues 73 and 75).
1402
ager@chromium.org32912102009-01-16 10:38:43 +00001403 Optimized flattening of strings and string equality checking.
kasperl@chromium.org5a8ca6c2008-10-23 13:57:19 +00001404
1405 Improved Boyer-Moore implementation for faster indexOf operations.
1406
1407 Added development shell (d8) which includes counters and
1408 completion support.
1409
1410 Fixed problem with the receiver passed to functions called from
1411 eval (issue 124).
1412
1413
ager@chromium.org7c537e22008-10-16 08:43:32 +000014142008-10-16: Version 0.3.5
1415
1416 Improved string hash-code distribution by excluding bit-field bits
1417 from the hash-code.
1418
1419 Changed string search algorithm used in indexOf from KMP to
1420 Boyer-Moore.
1421
1422 Improved the generated code for the instanceof operator.
1423
1424 Improved performance of slow-case string equality checks by
1425 specializing the code based on the string representation.
1426
1427 Improve the handling of out-of-memory situations (issue 70).
1428
1429 Improved performance of strict equality checks.
1430
1431 Improved profiler output to make it easier to see anonymous
1432 functions.
1433
1434 Improved performance of slow-case keyed loads.
1435
1436 Improved property access performance by allocating a number of
1437 properties in the front object.
1438
1439 Changed the toString behavior on the built-in object constructors
1440 to print [native code] instead of the actual source. Some web
1441 applications do not like constructors with complex toString
1442 results.
ager@chromium.org32912102009-01-16 10:38:43 +00001443
ager@chromium.org7c537e22008-10-16 08:43:32 +00001444
kasperl@chromium.org41044eb2008-10-06 08:24:46 +000014452008-10-06: Version 0.3.4
1446
1447 Changed Array.prototype.sort to use quick sort.
1448
1449 Fixed code generation issue where leaving a finally block with
1450 break or continue would accumulate elements on the expression
1451 stack (issue 86).
1452
1453 Made sure that the name accessor on functions returns the expected
1454 names for builtin JavaScript functions and C++ callback functions.
1455
1456 Added fast case code for extending the property storage array of
1457 JavaScript objects.
1458
1459 Ported switch statement optimizations introduced in version 0.3.3
1460 to the ARM code generator.
1461
1462 Allowed GCC to use strict-aliasing rules when compiling.
1463
1464 Improved performance of arguments object allocation by taking care
1465 of arguments adaptor frames in the generated code.
1466
1467 Updated the V8 benchmark suite to version 2.
1468
1469
ager@chromium.org236ad962008-09-25 09:45:57 +000014702008-09-25: Version 0.3.3
1471
1472 Improved handling of relocation information to enable more
1473 peep-hole optimizations.
1474
1475 Optimized switch statements where all labels are constant small
1476 integers.
1477
1478 Optimized String.prototype.indexOf for common cases.
1479
1480 Fixed more build issues (issue 80).
1481
1482 Fixed a couple of profiler issues.
1483
1484 Fixed bug where the body of a function created using the Function
1485 constructor was not allowed to end with a single-line comment
1486 (issue 85).
1487
1488 Improved handling of object literals by canonicalizing object
1489 literal maps. This will allow JSON objects with the same set of
1490 properties to share the same map making inline caching work better
1491 for JSON objects.
ager@chromium.org32912102009-01-16 10:38:43 +00001492
ager@chromium.org236ad962008-09-25 09:45:57 +00001493
kasperl@chromium.orgb9123622008-09-17 14:05:56 +000014942008-09-17: Version 0.3.2
1495
1496 Generalized the EvalCache into a CompilationCache and enabled it
1497 for scripts too. The current strategy is to retire all entries
1498 whenever a mark-sweep collection is started.
1499
1500 Fixed bug where switch statements containing only a default case
1501 would lead to an unbalanced stack (issue 69).
1502
1503 Fixed bug that made access to the function in a named function
1504 expression impossible in certain situations (issue 24).
1505
1506 Fixed even more build issues.
1507
1508 Optimized calling conventions on ARM. The conventions on ARM and
1509 IA-32 now match.
1510
1511 Removed static initializers for flags and counters.
1512
1513 Improved inline caching behavior for uncommon cases where lazily
1514 loading Date and RegExp code could force certain code paths go
1515 megamorphic.
1516
1517 Removed arguments adaption for builtins written in C++. This
1518 makes Array.prototype.push and Array.prototype.pop slightly
1519 faster.
1520
1521
ager@chromium.org9258b6b2008-09-11 09:11:10 +000015222008-09-11: Version 0.3.1
1523
1524 Fixed a number of build issues.
1525
1526 Fixed problem with missing I-cache flusing on ARM.
1527
1528 Changed space layout in memory management by splitting up
1529 code space into old data space and code space.
1530
1531 Added utf-8 conversion support to the API (issue 57).
1532
1533 Optimized repeated calls to eval with the same strings. These
1534 repeated calls are common in web applications.
1535
1536 Added Xcode project file.
1537
1538 Optimized a couple of Array operation.
1539
1540 Fixed parser bug by checking for end-of-string when parsing break
1541 and continue (issue 35).
1542
1543 Fixed problem where asian characters were not categorized as
1544 letters.
1545
1546 Fixed bug that disallowed calling functions fetched from an array
1547 using a string as an array index (issue 32).
1548
1549 Fixed bug where the internal field count on object templates were
1550 sometimes ignored (issue 54).
1551
1552 Added -f option to the shell sample for compatibility with other
1553 engines (issue 18).
1554
1555 Added source info to TryCatches in the API.
1556
1557 Fixed problem where the seed for the random number generator was
1558 clipped in a double to unsigned int conversion.
1559
1560 Fixed bug where cons string symbols were sometimes converted to
1561 non-symbol flat strings during GC.
1562
1563 Fixed bug in error reporting when attempting to convert null to an
1564 object.
ager@chromium.org32912102009-01-16 10:38:43 +00001565
1566
ager@chromium.orgc27e4e72008-09-04 13:52:27 +000015672008-09-04: Version 0.3.0
1568
1569 Added support for running tests on the ARM simulator.
1570
1571 Fixed bug in the 'in' operator where negative indices were not
1572 treated correctly.
1573
1574 Fixed build issues on gcc-4.3.1.
1575
1576 Changed Date.prototype.toLocaleTimeString to not print the
1577 timezone part of the time.
1578
1579 Renamed debug.h to v8-debug.h to reduce the risk of name conflicts
1580 with user code.
1581
1582
v8.team.kasperl727e9952008-09-02 14:56:44 +000015832008-09-02: Version 0.2.5
1584
1585 Renamed the top level directory 'public' to 'include'.
1586
1587 Added 'env' option to the SCons build scripts to support
1588 overriding the ENV part of the build environment. This is mostly
1589 to support Windows builds in cases where SCons cannot find the
1590 correct paths to the Windows SDK, as these paths cannot be passed
1591 through shell environment variables.
1592
1593 Enabled "Buffer Security Check" on for the Windows SCons build and
1594 added the linker option /OPT:ICF as an optimization.
1595
1596 Added the V8 benchmark suite to the repository.
1597
1598
mads.s.ager@gmail.com9a4089a2008-09-01 08:55:01 +000015992008-09-01: Version 0.2.4
1600
1601 Included mjsunit JavaScript test suite and C++ unit tests.
1602
1603 Changed the shell sample to not print the result of executing a
1604 script provided on the command line.
1605
1606 Fixed issue when building samples on Windows using a shared V8
1607 library. Added visibility option on Linux build which makes the
1608 generated library 18% smaller.
1609
1610 Changed build system to accept multiple build modes in one build
1611 and generate separate objects, libraries and executables for each
1612 mode.
1613
1614 Removed deferred negation optimization (a * -b => -(a * b)) since
1615 this visibly changes operand conversion order.
1616
1617 Improved parsing performance by introducing stack guard in
1618 preparsing. Without a stack guard preparsing always bails out
1619 with stack overflow.
1620
1621 Changed shell sample to take flags directly from the command-line.
1622 Added API call that implements this.
1623
1624 Added load, quit and version functions to the shell sample so it's
1625 easier to run benchmarks and tests.
1626
1627 Fixed issue with building samples and cctests on 64-bit machines.
1628
1629 Fixed bug in the runtime system where the prototype chain was not
1630 always searched for a setter when setting a property that does not
1631 exist locally.
ager@chromium.org32912102009-01-16 10:38:43 +00001632
mads.s.ager@gmail.com9a4089a2008-09-01 08:55:01 +00001633
mads.s.agercbaa0602008-08-14 13:41:48 +000016342008-08-14: Version 0.2.3
1635
1636 Improved performance of garbage collection by moving the
1637 function that updates pointers during compacting collection
1638 into the updating visitor. This gives the compiler a better
1639 chance to inline and avoid a function call per (potential)
1640 pointer.
1641
1642 Extended the shell sample with a --runtime-flags option.
1643
1644 Added Visual Studio project files for the shell.cc and
1645 process.cc samples.
1646
1647
16482008-08-13: Version 0.2.2
mads.s.ager31e71382008-08-13 09:32:07 +00001649
1650 Improved performance of garbage collection by changing the way
1651 we use the marking stack in the event of stack overflow during
1652 full garbage collection and by changing the way we mark roots.
1653
1654 Cleaned up ARM version by removing top of stack caching and by
1655 introducing push/pop elimination.
1656
1657 Cleaned up the way runtime functions are called to allow
1658 runtime calls with no arguments.
1659
1660 Changed Windows build options to make sure that exceptions are
1661 disabled and that optimization flags are enabled.
1662
1663 Added first version of Visual Studio project files.
1664
1665
mads.s.agercbaa0602008-08-14 13:41:48 +000016662008-08-06: Version 0.2.1
mads.s.ager@gmail.com769cc962008-08-06 10:02:49 +00001667
1668 Improved performance of unary addition by avoiding runtime calls.
1669
1670 Fixed the handling of '>' and '<=' to use right-to-left conversion
1671 and left-to-right evaluation as specified by ECMA-262.
1672
1673 Fixed a branch elimination bug on the ARM platform where incorrect
1674 code was generated because of overly aggressive branch
1675 elimination.
1676
1677 Improved performance of code that repeatedly assigns the same
1678 function to the same property of different objects with the same
1679 map.
1680
1681 Untangled DEBUG and ENABLE_DISASSEMBLER defines. The disassembler
1682 no longer expects DEBUG to be defined.
1683
1684 Added platform-nullos.cc to serve as the basis for new platform
1685 implementations.
1686
mads.s.ager31e71382008-08-13 09:32:07 +00001687
mads.s.agercbaa0602008-08-14 13:41:48 +000016882008-07-30: Version 0.2.0
kasper.lund7276f142008-07-30 08:49:36 +00001689
1690 Changed all text files to have native svn:eol-style.
1691
1692 Added a few samples and support for building them. The samples
1693 include a simple shell that can be used to benchmark and test V8.
1694
1695 Changed V8::GetVersion to return the version as a string.
1696
1697 Added source for lazily loaded scripts to snapshots and made
1698 serialization non-destructive.
1699
1700 Improved ARM support by fixing the write barrier code to use
1701 aligned loads and stores and by removing premature locals
1702 optimization that relied on broken support for callee-saved
1703 registers (removed).
1704
1705 Refactored the code for marking live objects during garbage
1706 collection and the code for allocating objects in paged
1707 spaces. Introduced an abstraction for the map word of a heap-
1708 allocated object and changed the memory allocator to allocate
1709 executable memory only for spaces that may contain code objects.
1710
1711 Moved StringBuilder to utils.h and ScopedLock to platform.h, where
1712 they can be used by debugging and logging modules. Added
1713 thread-safe message queues for dealing with debugger events.
1714
1715 Fixed the source code reported by toString for certain builtin
1716 empty functions and made sure that the prototype property of a
1717 function is enumerable.
1718
1719 Improved performance of converting values to condition flags in
1720 generated code.
1721
1722 Merged disassembler-{arch} files.
1723
1724
mads.s.agercbaa0602008-08-14 13:41:48 +000017252008-07-28: Version 0.1.4
kasper.lundaf4734f2008-07-28 12:50:18 +00001726
1727 Added support for storing JavaScript stack traces in a stack
1728 allocated buffer to make it visible in shallow core dumps.
1729 Controlled by the --preallocate-message-memory flag which is
1730 disabled by default.
1731
1732
mads.s.agercbaa0602008-08-14 13:41:48 +000017332008-07-25: Version 0.1.3
kasper.lund44510672008-07-25 07:37:58 +00001734
1735 Fixed bug in JSObject::GetPropertyAttributePostInterceptor where
1736 map transitions would count as properties.
1737
1738 Allowed aliased eval invocations by treating them as evals in the
1739 global context. This may change in the future.
1740
1741 Added support for accessing the last entered context through the
1742 API and renamed Context::Current to Context::GetCurrent and
1743 Context::GetSecurityContext to Context::GetCurrentSecurityContext.
1744
1745 Fixed bug in the debugger that would cause the debugger scripts to
1746 be recursively loaded and changed all disabling of interrupts to
1747 be block-structured.
1748
1749 Made snapshot data read-only to allow it to be more easily shared
1750 across multiple users of V8 when linked as a shared library.
1751
1752
mads.s.agercbaa0602008-08-14 13:41:48 +000017532008-07-16: Version 0.1.2
kasper.lund212ac232008-07-16 07:07:30 +00001754
1755 Fixed building on Mac OS X by recognizing i386 and friends as
1756 IA-32 platforms.
1757
1758 Added propagation of stack overflow exceptions that occur while
1759 compiling nested functions.
1760
1761 Improved debugger with support for recursive break points and
1762 handling of exceptions that occur in the debugger JavaScript code.
1763
1764 Renamed GetInternal to GetInternalField and SetInternal to
1765 SetInternalField in the API and moved InternalFieldCount and
1766 SetInternalFieldCount from FunctionTemplate to ObjectTemplate.
1767
1768
mads.s.agercbaa0602008-08-14 13:41:48 +000017692008-07-09: Version 0.1.1
kasper.lundbd3ec4e2008-07-09 11:06:54 +00001770
1771 Fixed bug in stack overflow check code for IA-32 targets where a
1772 non-tagged value in register eax was pushed to the stack.
1773
1774 Fixed potential quadratic behavior when converting strings to
1775 numbers.
1776
1777 Fixed bug where the return value from Object::SetProperty could
1778 end up being the property holder instead of the written value.
1779
1780 Improved debugger support by allowing nested break points and by
1781 dealing with stack-overflows when compiling functions before
1782 setting break points in them.
1783
1784
mads.s.agercbaa0602008-08-14 13:41:48 +000017852008-07-03: Version 0.1.0
christian.plesner.hansen43d26ec2008-07-03 15:10:15 +00001786
kasper.lundbd3ec4e2008-07-09 11:06:54 +00001787 Initial export.
christian.plesner.hansen43d26ec2008-07-03 15:10:15 +00001788