blob: 2faa0b1110893d4876a50639a0a8c722002f39dd [file] [log] [blame]
lrn@chromium.orgc34f5802010-04-28 12:53:43 +000012010-04-28: Version 2.2.6
2
3 Add "amd64" as recognized architecture in scons build script
4 (by Ryan Dahl <coldredlemur@gmail.com>).
5
6 Fix bug in String search and replace with very simple RegExps.
7
8 Fix bug in RegExp containing "\b^".
9
10 Performance improvements on all platforms.
11
fschneider@chromium.org013f3e12010-04-26 13:27:52 +0000122010-04-26: Version 2.2.5
13
14 Various performance improvements (especially for ARM and x64)
15
16 Fixed bug in CPU profiling (http://crbug.com/42137)
17
18 Fixed a bug with the natives cache.
lrn@chromium.orgc34f5802010-04-28 12:53:43 +000019
20 Fixed two bugs in the ARM code generator that can cause
fschneider@chromium.org013f3e12010-04-26 13:27:52 +000021 wrong calculations.
22
23 Fixed a bug that may cause a wrong result for shift operations.
24
25
262010-04-21: Version 2.2.4
ricow@chromium.orgc9c80822010-04-21 08:22:37 +000027
28 Fixed warnings on arm on newer GCC versions.
29
30 Fixed a number of minor bugs.
31
32 Performance improvements on all platforms.
33
34
whesse@chromium.orgb6e43bb2010-04-14 09:36:28 +0000352010-04-14: Version 2.2.3
36
37 Added stack command and mem command to ARM simulator debugger.
38
39 Fixed scons snapshot and ARM build, and Windows X64 build issues.
40
41 Performance improvements on all platforms.
42
43
ager@chromium.org357bf652010-04-12 11:30:10 +0000442010-04-12: Version 2.2.2
45
46 Introduced new profiler API.
47
48 Fixed random number generator to produce full 32 random bits.
49
50
lrn@chromium.org25156de2010-04-06 13:10:27 +0000512010-04-06: Version 2.2.1
52
53 Debugger improvements.
54
55 Fixed minor bugs.
56
57
ricow@chromium.orgaa1b6162010-03-29 07:44:58 +0000582010-03-29: Version 2.2.0
59
60 Fixed a few minor bugs.
61
62 Performance improvements for string operations.
63
64
ager@chromium.orgb26c50a2010-03-26 09:27:16 +0000652010-03-26: Version 2.1.10
66
67 Fixed scons build issues.
68
69 Fixed a couple of minor bugs.
70
71
sgjesse@chromium.orgdf7a2842010-03-25 14:34:15 +0000722010-03-25: Version 2.1.9
73
74 Added API support for reattaching a global object to a context.
75
76 Extended debugger API with access to the internal debugger context.
77
78 Fixed Chromium crashes (issues http://crbug.com/39128 and
79 http://crbug.com/39160)
80
81
kmillikin@chromium.org5d8f0e62010-03-24 08:21:20 +0000822010-03-24: Version 2.1.8
83
84 Added fine-grained garbage collection callbacks to the API.
85
86 Performance improvements on all platforms.
87
88
whesse@chromium.orgcec079d2010-03-22 14:44:04 +0000892010-03-22: Version 2.1.7
90
91 Fixed issue 650.
92
93 Fixed a bug where __proto__ was sometimes enumerated (issue 646).
fschneider@chromium.org086aac62010-03-17 13:18:24 +000094
95 Performance improvements for arithmetic operations.
96
97 Performance improvements for string operations.
98
whesse@chromium.orgcec079d2010-03-22 14:44:04 +000099 Print script name and line number information in stack trace.
100
101
1022010-03-17: Version 2.1.6
103
104 Performance improvements for arithmetic operations.
105
106 Performance improvements for string operations.
107
108
vegorov@chromium.orgf8372902010-03-15 10:26:20 +00001092010-03-10: Version 2.1.4
110
111 Fixed code cache lookup for keyed IC's (issue http://crbug.com/37853).
112
113 Performance improvements on all platforms.
114
115
ager@chromium.orgce5e87b2010-03-10 10:24:18 +00001162010-03-10: Version 2.1.3
117
118 Added API method for context-disposal notifications.
119
120 Added API method for accessing elements by integer index.
121
122 Added missing implementation of Uint32::Value and Value::IsUint32
123 API methods.
124
125 Added IsExecutionTerminating API method.
126
127 Disabled strict aliasing for GCC 4.4.
128
129 Fixed string-concatenation bug (issue 636).
130
131 Performance improvements on all platforms.
132
133
fschneider@chromium.orgb95b98b2010-02-23 10:34:29 +00001342010-02-23: Version 2.1.2
135
136 Fix a crash bug caused by wrong assert.
137
138 Fix a bug with register names on 64-bit V8 (issue 615).
139
140 Performance improvements on all platforms.
141
ager@chromium.orgce5e87b2010-03-10 10:24:18 +0000142
ager@chromium.org5c838252010-02-19 08:53:10 +00001432010-02-19: Version 2.1.1
144
145 [ES5] Implemented Object.defineProperty.
146
147 Improved profiler support.
148
149 Added SetPrototype method in the public V8 API.
150
151 Added GetScriptOrigin and GetScriptLineNumber methods to Function
152 objects in the API.
153
154 Performance improvements on all platforms.
155
156
sgjesse@chromium.orgb302e562010-02-03 11:26:59 +00001572010-02-03: Version 2.1.0
158
159 Values are now always wrapped in objects when used as a receiver.
160 (issue 223).
161
162 [ES5] Implemented Object.getOwnPropertyNames.
163
164 [ES5] Restrict JSON.parse to only accept strings that conforms to the
165 JSON grammar.
166
167 Improvement of debugger agent (issue 549 and 554).
168
169 Fixed problem with skipped stack frame in profiles (issue 553).
170
171 Solaris support by Erich Ocean <erich.ocean@me.com> and Ryan Dahl
172 <ry@tinyclouds.org>.
173
174 Fix a bug that Math.round() returns incorrect results for huge
175 integers.
176
177 Fix enumeration order for objects created from some constructor
178 functions (isue http://crbug.com/3867).
179
180 Fix arithmetic on some integer constants (issue 580).
181
182 Numerous performance improvements including porting of previous IA-32
183 optimizations to x64 and ARM architectures.
184
185
fschneider@chromium.org0c20e672010-01-14 15:28:53 +00001862010-01-14: Version 2.0.6
187
188 Added ES5 Object.getPrototypeOf, GetOwnPropertyDescriptor,
189 GetOwnProperty, FromPropertyDescriptor.
190
191 Fixed Mac x64 build errors.
192
193 Improved performance of some math and string operations.
194
195 Improved performance of some regexp operations.
196
197 Improved performance of context creation.
198
199 Improved performance of hash tables.
200
201
sgjesse@chromium.org846fb742009-12-18 08:56:33 +00002022009-12-18: Version 2.0.5
203
204 Extended to upper limit of map space to allow for 7 times as many map
205 to be allocated (issue 524).
206
207 Improved performance of code using closures.
208
209 Improved performance of some binary operations involving doubles.
210
211
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +00002122009-12-16: Version 2.0.4
213
sgjesse@chromium.org846fb742009-12-18 08:56:33 +0000214 Added ECMAScript 5 Object.create.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000215
sgjesse@chromium.org846fb742009-12-18 08:56:33 +0000216 Improved performance of Math.max and Math.min.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000217
sgjesse@chromium.org846fb742009-12-18 08:56:33 +0000218 Optimized adding of strings on 64-bit platforms.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000219
sgjesse@chromium.org846fb742009-12-18 08:56:33 +0000220 Improved handling of external strings by using a separate table
221 instead of weak handles. This improves garbage collection
222 performance and uses less memory.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000223
sgjesse@chromium.org846fb742009-12-18 08:56:33 +0000224 Changed code generation for object and array literals in toplevel
225 code to be more compact by doing more work in the runtime.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000226
sgjesse@chromium.org846fb742009-12-18 08:56:33 +0000227 Fixed a crash bug triggered when garbage collection happened during
228 generation of a callback load inline cache stub.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000229
sgjesse@chromium.org846fb742009-12-18 08:56:33 +0000230 Fixed crash bug sometimes triggered when local variables shadowed
231 parameters in functions that used the arguments object.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000232
233
sgjesse@chromium.orgac6aa172009-12-04 12:29:05 +00002342009-12-03: Version 2.0.3
235
236 Optimized handling and adding of strings, for-in and Array.join.
237
238 Heap serialization is now non-destructive.
239
240 Improved profiler support with information on time spend in C++
241 callbacks registered through the API.
242
243 Added commands to the debugger protocol for starting/stopping
244 profiling.
245
246 Enabled the non-optimizing compiler for top-level code.
247
248 Changed the API to only allow strings to be set as data objects on
249 Contexts and scripts to avoid potentially keeping global objects
250 around for too long (issue 528).
251
252 OpenBSD support patch by Peter Valchev <pvalchev@gmail.com>.
253
254 Fixed bugs.
255
256
ager@chromium.org01beca72009-11-24 14:29:16 +00002572009-11-24: Version 2.0.2
258
259 Improved profiler support.
260
261 Fixed bug that broke compilation of d8 with readline support.
262
263
ager@chromium.org6141cbe2009-11-20 12:14:52 +00002642009-11-20: Version 2.0.1
265
266 Fixed crash bug in String.prototype.replace.
267
268 Reverted a change which caused Chromium interactive ui test
269 failures.
270
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000271
ager@chromium.orgc4c92722009-11-18 14:12:51 +00002722009-11-18: Version 2.0.0
273
274 Added support for VFP on ARM.
275
276 Added TryCatch::ReThrow method to the API.
277
278 Reduced the size of snapshots and improved the snapshot load time.
279
280 Improved heap profiler support.
281
282 64-bit version now supported on Windows.
283
284 Fixed a number of debugger issues.
285
286 Fixed bugs.
287
288
sgjesse@chromium.orgf1e73132009-10-29 14:46:49 +00002892009-10-29: Version 1.3.18
290
291 Reverted a change which caused crashes in RegExp replace.
292
sgjesse@chromium.orgac6aa172009-12-04 12:29:05 +0000293 Reverted a change which caused Chromium ui_tests failure.
sgjesse@chromium.orgf1e73132009-10-29 14:46:49 +0000294
295
ager@chromium.org3811b432009-10-28 14:53:37 +00002962009-10-28: Version 1.3.17
297
298 Added API method to get simple heap statistics.
299
300 Improved heap profiler support.
301
302 Fixed the implementation of the resource constraint API so it
303 works when using snapshots.
304
305 Fixed a number of issues in the Windows 64-bit version.
306
307 Optimized calls to API getters.
308
309 Added valgrind notification on code modification to the 64-bit version.
310
311 Fixed issue where we logged shared library addresses on Windows at
312 startup and never used them.
313
314
christian.plesner.hansen@gmail.com9d58c2b2009-10-16 11:48:38 +00003152009-10-16: Version 1.3.16
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000316
christian.plesner.hansen@gmail.com9d58c2b2009-10-16 11:48:38 +0000317 X64: Convert smis to holding 32 bits of payload.
318
319 Introduce v8::Integer::NewFromUnsigned method.
320
321 Add missing null check in Context::GetCurrent.
322
323 Add trim, trimLeft and trimRight methods to String
324 Patch by Jan de Mooij <jandemooij@gmail.com>
325
326 Implement ES5 Array.isArray
327 Patch by Jan de Mooij <jandemooij@gmail.com>
328
329 Skip access checks for hidden properties.
330
331 Add String::Concat(Handle<String> left, Handle<String> right) to the V8 API.
332
333 Fix GYP-based builds of V8.
334
335
sgjesse@chromium.org152a0b02009-10-07 13:50:16 +00003362009-10-07: Version 1.3.15
337
338 Expand the maximum size of the code space to 512MB for 64-bit mode.
339
340 Fixed a crash bug happening when starting profiling (issue
341 http://crbug.com/23768).
342
343
sgjesse@chromium.orgc5145742009-10-07 09:00:33 +00003442009-10-07: Version 1.3.14
345
346 Added GetRealNamedProperty to the API to lookup real properties
347 located on the object or in the prototype chain skipping any
348 interceptors.
349
350 Fix the stack limits setting API to work correctly with threads. The
351 stack limit now needs to be set to each thread thich is used with V8.
352
353 Remove the high-priority flag from IdleNotification()
354
355 Ensure V8 is initialized before locking and unlocking threads.
356
357 Implemented a new JavaScript minifier for compressing the source of
ager@chromium.org3811b432009-10-28 14:53:37 +0000358 the built-in JavaScript. This removes non-Open Source code from Douglas
sgjesse@chromium.orgc5145742009-10-07 09:00:33 +0000359 Crockford from the project.
360
361 Added a missing optimization in StringCharAt.
362
363 Fixed some flaky socket tests.
364
365 Change by Alexander Botero-Lowry to fix profiler sampling on FreeBSD
366 in 64-bit mode.
367
368 Fixed memory leaks in the thread management code.
369
370 Fixed the result of assignment to a pixel array. The assigned value
371 is now the result.
372
373 Error reporting for invalid left-hand sides in for-in statements, pre-
374 and postfix count expressions, and assignments now matches the JSC
375 behavior in Safari 4.
376
377 Follow the spec in disallowing function declarations without a name.
378
379 Always allocate code objects within a 2 GB range. On x64 architecture
380 this is used to use near calls (32-bit displacement) in Code objects.
381
382 Optimized array construction ported to x64 and ARM architectures.
383
384 [ES5] Changed Object.keys to return strings for element indices.
385
386
ager@chromium.org68e7ab72009-09-23 09:40:39 +00003872009-09-23: Version 1.3.13
388
389 Fixed uninitialized memory problem.
390
391 Improved heap profiler support.
392
393
christian.plesner.hansen@gmail.com2bc58ef2009-09-22 10:00:30 +00003942009-09-22: Version 1.3.12
395
396 Changed behavior of |function|.toString() on built-in functions to
397 be compatible with other implementations. Patch by Jan de Mooij.
398
399 Added Object::IsDirty in the API.
400
401 Optimized array construction; it is now handled purely in native
402 code.
403
404 [ES5] Made properties of the arguments array enumerable.
405
406 [ES5] Added test suite adapter for the es5conform test suite.
407
408 [ES5] Added Object.keys function.
409
ager@chromium.org68e7ab72009-09-23 09:40:39 +0000410
ager@chromium.org4af710e2009-09-15 12:20:11 +00004112009-09-15: Version 1.3.11
412
413 Fixed crash in error reporting during bootstrapping.
414
415 Optimized generated IA32 math code by using SSE2 instructions when
416 available.
417
418 Implemented missing pieces of debugger infrastructure on ARM. The
419 debugger is now fully functional on ARM.
420
421 Make 'hidden' the default visibility for gcc.
422
423
ager@chromium.orga1645e22009-09-09 19:27:10 +00004242009-09-09: Version 1.3.10
425
426 Fixed profiler on Mac in 64-bit mode.
427
428 Optimized creation of objects from simple constructor functions on
429 ARM.
430
431 Fixed a number of debugger issues.
432
433 Reduced the amount of memory consumed by V8.
434
435
ager@chromium.org18ad94b2009-09-02 08:22:29 +00004362009-09-02: Version 1.3.9
437
438 Optimized stack guard checks on ARM.
439
440 Optimized API operations by inlining more in the API.
441
442 Optimized creation of objects from simple constructor functions.
443
444 Enabled a number of missing optimizations in the 64-bit port.
445
446 Implemented native-code support for regular expressions on ARM.
447
448 Stopped using the 'sahf' instruction on 64-bit machines that do
449 not support it.
450
451 Fixed a bug in the support for forceful termination of JavaScript
452 execution.
453
454
ager@chromium.org96c75b52009-08-26 09:13:16 +00004552009-08-26: Version 1.3.8
456
457 Changed the handling of idle notifications to allow idle
458 notifications when V8 has not yet been initialized.
459
460 Fixed ARM simulator compilation problem on Windows.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000461
ager@chromium.org96c75b52009-08-26 09:13:16 +0000462
ager@chromium.orgab99eea2009-08-25 07:05:41 +00004632009-08-25: Version 1.3.7
464
465 Reduced the size of generated code on ARM platforms by reducing
466 the size of constant pools.
467
468 Changed build files to not include the 'ENV' user environment
469 variable in the build environment.
470
471 Changed the handling of idle notifications.
472
473
sgjesse@chromium.orgc81c8942009-08-21 10:54:26 +00004742009-08-21: Version 1.3.6
475
476 Add support for forceful termination of JavaScript execution.
477
478 Add low memory notification to the API. The embedding host can signal
479 a low memory situation to V8.
480
481 Changed the handling of global handles (persistent handles in the API
482 sense) to avoid issues regarding allocation of new global handles
483 during weak handle callbacks.
484
485 Changed the growth policy of the young space.
486
487 Fixed a GC issue introduced in version 1.3.5.
488
489
sgjesse@chromium.org911335c2009-08-19 12:59:44 +00004902009-08-19: Version 1.3.5
491
492 Optimize initialization of some arrays in the builtins.
493
494 Fix mac-nm script to support filenames with spaces.
495
496 Support for using the V8 profiler when V8 is embedded in a Windows DLL.
497
498 Changed typeof RegExp from 'object' to 'function' for compatibility.
499 Fixed bug where regexps were not callable across contexts.
500
501 Added context independent script compilation to the API.
502
503 Added API call to get the stack trace for an exception.
504
505 Added API for getting object mirrors.
506
507 Make sure that SSE3 instructions are used whenever possible even when
508 running off a snapshot generated without using SSE3 instructions.
509
510 Tweaked the handling of the initial size and growth policy of the heap.
511
512 Added native code generation for RegExp to 64-bit version.
513
514 Added JavaScript debugger support to 64-bit version.
515
516
ager@chromium.orgadd848f2009-08-13 12:44:13 +00005172009-08-13: Version 1.3.4
518
519 Added a readline() command to the d8 shell.
520
521 Fixed bug in json parsing.
522
523 Added idle notification to the API and reduced memory on idle
524 notifications.
525
526
christian.plesner.hansen@gmail.com5a6af922009-08-12 14:20:51 +00005272009-08-12: Version 1.3.3
528
529 Fix issue 417: incorrect %t placeholder expansion.
530
531 Add .gitignore file similar to Chromium's one.
532
533 Fix SConstruct file to build with new logging code for Android.
534
535 API: added function to find instance of template in prototype
536 chain. Inlined Object::IsInstanceOf.
537
538 Land change to notify valgrind when we modify code on x86.
539
540 Add api call to determine whether a string can be externalized.
541
542 Add a write() command to d8.
543
544
sgjesse@chromium.orgb9d7da12009-08-05 08:38:10 +00005452009-08-05: Version 1.3.2
546
547 Started new compiler infrastructure for two-pass compilation using a
548 control flow graph constructed from the AST.
549
550 Profiler stack sampling for X64.
551
552 Safe handling of NaN to Posix platform-dependent time functions.
553
554 Added a new profiler control API to unify controlling various aspects
555 of profiling.
556
557 Fixed issue 392.
558
559
sgjesse@chromium.org0b6db592009-07-30 14:48:31 +00005602009-07-30: Version 1.3.1
561
562 Speed improvements to accessors and interceptors.
563
564 Added support for capturing stack information on custom errors.
565
566 Added support for morphing an object into a pixel array where its
567 indexed properties are stored in an external byte array. Values written
568 are always clamped to the 0..255 interval.
569
570 Profiler on x64 now handles C/C++ functions from shared libraries.
571
572 Changed the debugger to avoid stepping into function.call/apply if the
573 function is a built-in.
574
575 Initial implementation of constructor heap profile for JS objects.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000576
sgjesse@chromium.org0b6db592009-07-30 14:48:31 +0000577 More fine grained control of profiling aspects through the API.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000578
sgjesse@chromium.org0b6db592009-07-30 14:48:31 +0000579 Optimized the called as constructor check for API calls.
580
581
kasperl@chromium.orge959c182009-07-27 08:59:04 +00005822009-07-27: Version 1.3.0
583
584 Allowed RegExp objects to be called as functions (issue 132).
585
586 Fixed issue where global property cells would escape after
587 detaching the global object; see http://crbug.com/16276.
588
589 Added support for stepping into setters and getters in the
590 debugger.
591
592 Changed the debugger to avoid stopping in its own JavaScript code
593 and in the code of built-in functions.
594
595 Fixed issue 345 by avoiding duplicate escaping labels.
596
597 Fixed ARM code generator crash in short-circuited boolean
598 expressions and added regression tests.
599
600 Added an external allocation limit to avoid issues where small V8
601 objects would hold on to large amounts of external memory without
602 causing garbage collections.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000603
604 Finished more of the inline caching stubs for x64 targets.
kasperl@chromium.orge959c182009-07-27 08:59:04 +0000605
606
kasperl@chromium.orgdefbd102009-07-13 14:04:26 +00006072009-07-13: Version 1.2.14
608
609 Added separate paged heap space for global property cells and
610 avoid updating the write barrier when storing into them.
611
612 Improved peep-hole optimization on ARM platforms by not emitting
613 unnecessary debug information.
614
615 Re-enabled ICs for loads and calls that skip a global object
616 during lookup through the prototype chain.
617
618 Allowed access through global proxies to use ICs.
619
620 Fixed issue 401.
621
622
kasperl@chromium.org68ac0092009-07-09 06:00:35 +00006232009-07-09: Version 1.2.13
624
625 Fixed issue 397, issue 398, and issue 399.
626
627 Added support for breakpoint groups.
628
629 Fixed bugs introduced with the new global object representation.
630
631 Fixed a few bugs in the ARM code generator.
632
633
kasperl@chromium.org86f77b72009-07-06 08:21:57 +00006342009-07-06: Version 1.2.12
635
636 Added stack traces collection to Error objects accessible through
637 the e.stack property.
638
639 Changed RegExp parser to use a recursive data structure instead of
640 stack-based recursion.
641
642 Optimized Date object construction and string concatenation.
643
644 Improved performance of div, mod, and mul on ARM platforms.
645
646
kasperl@chromium.org2abc4502009-07-02 07:00:29 +00006472009-07-02: Version 1.2.11
648
649 Improved performance on IA-32 and ARM.
650
651 Fixed profiler sampler implementation on Mac OS X.
652
653 Changed the representation of global objects to improve
654 performance of adding a lot of new properties.
655
656
ager@chromium.org3e875802009-06-29 08:26:34 +00006572009-06-29: Version 1.2.10
658
659 Improved debugger support.
660
661 Fixed bug in exception message reporting (issue 390).
662
663 Improved overall performance.
664
665
ager@chromium.org5aa501c2009-06-23 07:57:28 +00006662009-06-23: Version 1.2.9
667
668 Improved math performance on ARM.
669
670 Fixed profiler name-inference bug.
671
672 Fixed handling of shared libraries in the profiler tick processor
673 scripts.
674
675 Fixed handling of tests that time out in the test scripts.
676
677 Fixed compilation on MacOS X version 10.4.
678
679 Fixed two bugs in the regular expression engine.
680
681 Fixed a bug in the string type inference.
682
683 Fixed a bug in the handling of 'constant function' properties.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000684
ager@chromium.org5aa501c2009-06-23 07:57:28 +0000685 Improved overall performance.
kmillikin@chromium.org13bd2942009-12-16 15:36:05 +0000686
ager@chromium.org5aa501c2009-06-23 07:57:28 +0000687
ager@chromium.orgeadaf222009-06-16 09:43:10 +00006882009-06-16: Version 1.2.8
689
690 Optimized math on ARM platforms.
691
692 Fixed two crash bugs in the handling of getters and setters.
693
694 Improved the debugger support by adding scope chain information.
695
696 Improved the profiler support by compressing log data transmitted
697 to clients.
698
699 Improved overall performance.
700
701
ager@chromium.orge2902be2009-06-08 12:21:35 +00007022009-06-08: Version 1.2.7
703
704 Improved debugger and profiler support.
705
706 Reduced compilation time by improving the handling of deferred
707 code.
708
709 Optimized interceptor accesses where the property is on the object
710 on which the interceptors is attached.
711
712 Fixed compilation problem on GCC 4.4 by changing the stack
713 alignment to 16 bytes.
714
715 Fixed handle creation to follow stric aliasing rules.
716
717 Fixed compilation on FreeBSD.
718
719 Introduced API for forcing the deletion of a property ignoring
720 interceptors and attributes.
721
722
sgjesse@chromium.org755c5b12009-05-29 11:04:38 +00007232009-05-29: Version 1.2.6
724
725 Added a histogram recording hit rates at different levels of the
726 compilation cache.
727
728 Added stack overflow check for the RegExp analysis phase. Previously a
729 very long regexp graph could overflow the stack with recursive calls.
730
731 Use a dynamic buffer when collecting log events in memory.
732
733 Added start/stop events to the profiler log.
734
735 Fixed infinite loop which could happen when setting a debug break while
736 executing a RegExp compiled to native code.
737
738 Fixed handling of lastIndexOf called with negative index (issue 351).
739
740 Fixed irregular crash in profiler test (issue 358).
741
742 Fixed compilation issues with some versions of gcc.
743
744
kasperl@chromium.org71affb52009-05-26 05:44:31 +00007452009-05-26: Version 1.2.5
746
747 Fixed bug in initial boundary check for Boyer-Moore text
748 search (issue 349).
749
750 Fixed compilation issues with MinGW and gcc 4.3+ and added support
751 for armv7 and cortex-a8 architectures. Patches by Lei Zhang and
752 Craig Schlenter.
753
754 Added a script cache to the debugger.
755
756 Optimized compilation performance by improving internal data
757 structures and avoiding expensive property load optimizations for
758 code that's infrequently executed.
759
760 Exposed the calling JavaScript context through the static API
761 function Context::GetCalling().
762
763
kasperl@chromium.orgb3284ad2009-05-18 06:12:45 +00007642009-05-18: Version 1.2.4
765
766 Improved performance of floating point number allocation for ARM
767 platforms.
768
769 Fixed crash when using the instanceof operator on functions with
770 number values in their prototype chain (issue 341).
771
772 Optimized virtual frame operations in the code generator to speed
773 up compilation time and allocated the frames in the zone.
774
775 Made the representation of virtual frames and jump targets in the
776 code generator much more compact.
777
778 Avoided linear search for non-locals in scope code when resolving
779 variables inside with and eval scopes.
780
781 Optimized lexical scanner by dealing with whitespace as part of
782 the token scanning instead of as a separate step before it.
783
784 Changed the scavenging collector so that promoted objects do not
785 reside in the old generation while their remembered set is being
786 swept for pointers into the young generation.
787
788 Fixed numeric overflow handling when compiling count operations.
789
790
ager@chromium.org9085a012009-05-11 19:22:57 +00007912009-05-11: Version 1.2.3
792
793 Fixed bug in reporting of out-of-memory situations.
794
795 Introduced hidden prototypes on certain builtin prototype objects
796 such as String.prototype to emulate JSC's behavior of restoring
797 the original function when deleting functions from those prototype
798 objects.
799
800 Fixed crash bug in the register allocator.
801
802
ager@chromium.org5ec48922009-05-05 07:25:34 +00008032009-05-04: Version 1.2.2
804
805 Fixed bug in array sorting for sparse arrays (issue 326).
806
807 Added support for adding a soname when building a shared library
808 on Linux (issue 151).
809
810 Fixed bug caused by morphing internal ASCII strings to external
811 two-byte strings. Slices over ASCII strings have to forward ASCII
812 checks to the underlying buffer string.
813
814 Allowed API call-as-function handlers to be called as
815 constructors.
816
817 Fixed a crash bug where an external string was disposed but a
818 slice of the external string survived as a symbol.
819
820
ager@chromium.org3a37e9b2009-04-27 09:26:21 +00008212009-04-27: Version 1.2.1
822
823 Added EcmaScript 5 JSON object.
824
825 Fix bug in preemption support on ARM.
826
827
ager@chromium.org65dad4b2009-04-23 08:48:43 +00008282009-04-23: Version 1.2.0
829
830 Optimized floating-point operations on ARM.
831
832 Added a number of extensions to the debugger API.
833
834 Changed the enumeration order for unsigned integer keys to always
835 be numerical order.
836
837 Added a "read" extension to the shell sample.
838
839 Added support for Array.prototype.reduce and
840 Array.prototype.reduceRight.
841
842 Added an option to the SCons build to control Microsoft Visual C++
843 link-time code generation.
844
845 Fixed a number of bugs (in particular issue 315, issue 316,
846 issue 317 and issue 318).
847
848
kasperl@chromium.org2d18d102009-04-15 13:27:32 +00008492009-04-15: Version 1.1.10
850
851 Fixed crash bug that occurred when loading a const variable in the
852 presence of eval.
853
854 Allowed using with and eval in registered extensions in debug mode
855 by fixing bogus assert.
856
857 Fixed the source position for function returns to enable the
858 debugger to break there.
859
860
kasperl@chromium.orgd1e3e722009-04-14 13:38:25 +00008612009-04-14: Version 1.1.9
862
863 Made the stack traversal code in the profiler robust by avoiding
864 to look into the heap.
865
866 Added name inferencing for anonymous functions to facilitate
867 debugging and profiling.
868
869 Re-enabled stats timers in the developer shell (d8).
870
871 Fixed issue 303 by avoiding to shortcut cons-symbols.
872
873
kasperl@chromium.orgacae3782009-04-11 09:17:08 +00008742009-04-11: Version 1.1.8
875
876 Changed test-debug/ThreadedDebugging to be non-flaky (issue 96).
877
ager@chromium.org65dad4b2009-04-23 08:48:43 +0000878 Fixed step-in handling for Function.prototype.apply and call in
kasperl@chromium.orgacae3782009-04-11 09:17:08 +0000879 the debugger (issue 269).
880
881 Fixed v8::Object::DeleteHiddenValue to not bail out when there
882 are no hidden properties.
883
ager@chromium.org65dad4b2009-04-23 08:48:43 +0000884 Added workaround for crash bug, where external symbol table
kasperl@chromium.orgacae3782009-04-11 09:17:08 +0000885 entries with deleted resources would lead to NPEs when looking
886 up in the symbol table.
887
888
kasperl@chromium.org8ccb0be2009-04-07 07:21:39 +00008892009-04-07: Version 1.1.7
890
891 Added support for easily importing additional environment
892 variables into the SCons build.
893
894 Optimized strict equality checks.
895
896 Fixed crash in indexed setters on objects without a corresponding
897 getter (issue 298).
898
899 Re-enabled script compilation cache.
900
901
ager@chromium.org8682a592009-04-01 10:47:14 +00009022009-04-01: Version 1.1.6
903
904 Reverted an unsafe code generator change.
905
906
ager@chromium.org71daaf62009-04-01 07:22:49 +00009072009-04-01: Version 1.1.5
908
909 Fixed bug that caused function literals to not be optimized as
910 much as other functions.
911
912 Improved profiler support.
913
914 Fixed a crash bug in connection with debugger unloading.
915
916 Fixed a crash bug in the code generator caused by losing the
917 information that a frame element was copied.
918
919 Fixed an exception propagation bug that could cause non-null
920 return values when exceptions were thrown.
921
922
ager@chromium.org41826e72009-03-30 13:30:57 +00009232009-03-30: Version 1.1.4
924
925 Optimized String.prototype.match.
926
927 Improved the stack information in profiles.
928
929 Fixed bug in ARM port making it possible to compile the runtime
930 system for thumb mode again.
931
932 Implemented a number of optimizations in the code generator.
933
934 Fixed a number of memory leaks in tests.
935
936 Fixed crash bug in connection with script source code and external
kasperl@chromium.org8ccb0be2009-04-07 07:21:39 +0000937 strings.
ager@chromium.org41826e72009-03-30 13:30:57 +0000938
939
kasperl@chromium.orgf5aa8372009-03-24 14:47:14 +00009402009-03-24: Version 1.1.3
941
942 Fixed assertion failures in compilation of loop conditions.
943
944 Removed STL dependency from developer shell (d8).
945
946 Added infrastructure for protecting the V8 heap from corruption
947 caused by memory modifications from the outside.
948
949
ager@chromium.orgbb29dc92009-03-24 13:25:23 +00009502009-03-24: Version 1.1.2
951
952 Improved frame merge code generated by the code generator.
953
954 Optimized String.prototype.replace.
955
956 Implemented __defineGetter__ and __defineSetter__ for properties
957 with integer keys on non-array objects.
958
959 Improved debugger and profiler support.
960
961 Fixed a number of portability issues to allow compilation for
962 smaller ARM devices.
963
964 Exposed object cloning through the API.
965
966 Implemented hidden properties. This is used to expose an identity
967 hash for objects through the API.
968
969 Implemented restarting of regular expressions if their input
970 string changes representation during preemption.
971
972 Fixed a code generator bug that could cause assignments in loops
973 to be ignored if using continue to break out of the loop (issue
974 284).
975
976
ager@chromium.org3a6061e2009-03-12 14:24:36 +00009772009-03-12: Version 1.1.1
978
979 Fixed an assertion in the new compiler to take stack overflow
980 exceptions into account.
981
982 Removed exception propagation code that could cause crashes.
983
984 Fixed minor bug in debugger line number computations.
985
986 8-byte align the C stack on Linux and Windows to speed up floating
987 point computations.
988
989
kasperl@chromium.org7be3c992009-03-12 07:19:55 +00009902009-03-12: Version 1.1.0
991
992 Improved code generation infrastructure by doing simple register
993 allocation and constant folding and propagation.
994
995 Optimized regular expression matching by avoiding to create
996 intermediate string arrays and by flattening nested array
997 representations of RegExp data.
998
999 Traverse a few stack frames when recording profiler samples to
1000 include partial call graphs in the profiling output.
1001
1002 Added support for using OProfile to profile generated code.
1003
1004 Added remote debugging support to the D8 developer shell.
1005
1006 Optimized creation of nested literals like JSON objects.
1007
1008 Fixed a bug in garbage collecting unused maps and turned it on by
1009 default (--collect-maps).
1010
1011 Added support for running tests under Valgrind.
1012
1013
kasperl@chromium.org061ef742009-02-27 12:16:20 +000010142009-02-27: Version 1.0.3
1015
1016 Optimized double-to-integer conversions in bit operations by using
1017 SSE3 instructions if available.
1018
1019 Optimized initialization sequences that store to multiple
1020 properties of the same object.
1021
1022 Changed the D8 debugger frontend to use JSON messages.
1023
1024 Force garbage collections when disposing contexts.
1025
1026 Align code objects at 32-byte boundaries.
1027
1028
ager@chromium.org381abbb2009-02-25 13:23:22 +000010292009-02-25: Version 1.0.2
1030
1031 Improved profiling support by performing simple call stack
1032 sampling for ticks and by fixing a bug in the logging of code
1033 addresses.
1034
1035 Fixed a number of debugger issues.
1036
1037 Optimized code that uses eval.
1038
1039 Fixed a couple of bugs in the regular expression engine.
1040
1041 Reduced the size of generated code for certain regular expressions.
1042
1043 Removed JSCRE completely.
1044
1045 Fixed issue where test could not be run if there was a dot in the
1046 checkout path.
1047
1048
ager@chromium.org6f10e412009-02-13 10:11:16 +000010492009-02-13: Version 1.0.1
1050
1051 Fixed two crash-bugs in irregexp (issue 231 and 233).
1052
1053 Fixed a number of minor bugs (issue 87, 227 and 228).
1054
1055 Added support for morphing strings to external strings on demand
1056 to avoid having to create copies in the embedding code.
1057
1058 Removed experimental support for external symbol callbacks.
1059
1060
iposva@chromium.org245aa852009-02-10 00:49:54 +000010612009-02-09: Version 1.0.0
1062
1063 Fixed crash-bug in the code generation for case independent 16 bit
1064 backreferences.
ager@chromium.org6f10e412009-02-13 10:11:16 +00001065
iposva@chromium.org245aa852009-02-10 00:49:54 +00001066 Made shells more robust in the presence of string conversion
1067 failures (issue 224).
ager@chromium.org6f10e412009-02-13 10:11:16 +00001068
iposva@chromium.org245aa852009-02-10 00:49:54 +00001069 Fixed a potential infinite loop when attempting to resolve
1070 eval (issue 221).
ager@chromium.org6f10e412009-02-13 10:11:16 +00001071
iposva@chromium.org245aa852009-02-10 00:49:54 +00001072 Miscellaneous fixes to the new regular expression engine.
ager@chromium.org6f10e412009-02-13 10:11:16 +00001073
iposva@chromium.org245aa852009-02-10 00:49:54 +00001074 Reduced binary by stripping unneeded text from JavaScript library and
1075 minifying some JavaScript files.
1076
1077
ager@chromium.orgddb913d2009-01-27 10:01:48 +000010782009-01-27: Version 0.4.9
1079
1080 Enabled new regular expression engine.
1081
1082 Made a number of changes to the debugger protocol.
1083
1084 Fixed a number of bugs in the preemption support.
1085
1086 Added -p option to the developer shell to run files in parallel
1087 using preemption.
1088
1089 Fixed a number of minor bugs (including issues 176, 187, 189, 192,
1090 193, 198 and 201).
1091
1092 Fixed a number of bugs in the serialization/deserialization
1093 support for the ARM platform.
1094
1095
sgjesse@chromium.org715915b2009-01-19 16:08:47 +000010962009-01-19: Version 0.4.8.1
1097
1098 Minor patch to debugger support.
1099
1100
ager@chromium.org32912102009-01-16 10:38:43 +000011012009-01-16: Version 0.4.8
1102
1103 Fixed string length bug on ARM (issue 171).
1104
1105 Made most methods in the API const.
1106
1107 Optimized object literals by improving data locality.
1108
1109 Fixed bug that caused incomplete functions to be cached in case of
sgjesse@chromium.org715915b2009-01-19 16:08:47 +00001110 stack overflow exceptions.
ager@chromium.org32912102009-01-16 10:38:43 +00001111
1112 Fixed bugs that caused catch variables and variables introduced by
sgjesse@chromium.org715915b2009-01-19 16:08:47 +00001113 eval to behave incorrectly when using accessors (issues 186, 190
1114 and 191).
ager@chromium.org32912102009-01-16 10:38:43 +00001115
1116
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +000011172009-01-06: Version 0.4.7
1118
ager@chromium.org32912102009-01-16 10:38:43 +00001119 Minor bugfixes and optimizations.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +00001120
ager@chromium.org32912102009-01-16 10:38:43 +00001121 Added command line debugger to D8 shell.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +00001122
ager@chromium.org32912102009-01-16 10:38:43 +00001123 Fixed subtle bug that caused the wrong 'this' to be used when
1124 calling a caught function in a catch clause.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +00001125
ager@chromium.org32912102009-01-16 10:38:43 +00001126 Inline array loads within loops directly in the code instead of
1127 always calling a stub.
christian.plesner.hansen@gmail.com37abdec2009-01-06 14:43:28 +00001128
ager@chromium.org32912102009-01-16 10:38:43 +00001129
ager@chromium.org8bb60582008-12-11 12:02:20 +000011302008-12-11: Version 0.4.6
1131
1132 Fixed exception reporting bug where certain exceptions were
1133 incorrectly reported as uncaught.
1134
1135 Improved the memory allocation strategy used during compilation to
1136 make running out of memory when compiling huge scripts less
1137 likely.
1138
1139 Optimized String.replace by avoiding the construction of certain
1140 sub strings.
1141
1142 Fixed bug in code generation for large switch statements on ARM.
1143
1144 Fixed bug that caused V8 to change the global object template
1145 passed in by the user.
1146
1147 Changed the API for creating object groups used during garbage
1148 collection. Entire object groups are now passed to V8 instead of
1149 individual members of the groups.
1150
ager@chromium.org32912102009-01-16 10:38:43 +00001151
ager@chromium.orga74f0da2008-12-03 16:05:52 +000011522008-12-03: Version 0.4.5
iposva@chromium.org96f667e2008-11-26 23:48:02 +00001153
ager@chromium.orga74f0da2008-12-03 16:05:52 +00001154 Added experimental API support for allocating V8 symbols as
1155 external strings.
1156
1157 Fixed bugs in debugging support on ARM.
1158
1159 Changed eval implementation to correctly detect whether or not a
1160 call to eval is aliased.
1161
1162 Fixed bug caused by a combination of the compilation cache and
1163 dictionary probing in native code. The bug caused us to sometimes
1164 call functions that had not yet been compiled.
1165
1166 Added platform support for FreeBSD.
1167
1168 Added support for building V8 on Windows with either the shared or
1169 static version of MSVCRT
ager@chromium.org32912102009-01-16 10:38:43 +00001170
iposva@chromium.org96f667e2008-11-26 23:48:02 +00001171 Added the v8::jscre namespace around the jscre functions to avoid
1172 link errors (duplicate symbols) when building Google Chrome.
1173
ager@chromium.orga74f0da2008-12-03 16:05:52 +00001174 Added support for calling a JavaScript function with the current
1175 debugger execution context as its argument to the debugger
1176 interface.
1177
1178 Changed the type of names of counters from wchar_t to char.
1179
1180 Changed the Windows system call used to compute daylight savings
1181 time. The system call that we used to use became four times
1182 slower on WinXP SP3.
1183
1184 Added support in the d8 developer shell for memory-mapped counters
1185 and added a stats-viewer tool.
1186
1187 Fixed bug in upper/lower case mappings (issue 149).
1188
iposva@chromium.org96f667e2008-11-26 23:48:02 +00001189
ager@chromium.org3bf7b912008-11-17 09:09:45 +000011902008-11-17: Version 0.4.4
1191
1192 Reduced code size by using shorter instruction encoding when
1193 possible.
1194
1195 Added a --help option to the shell sample and to the d8 shell.
1196
1197 Added visual studio project files for building the ARM simulator.
1198
1199 Fixed a number of ARM simulator issues.
1200
1201 Fixed bug in out-of-memory handling on ARM.
1202
1203 Implemented shell support for passing arguments to a script from
1204 the command line.
1205
1206 Fixed bug in date code that made certain date functions return -0
1207 instead of 0 for dates before the epoch.
1208
1209 Restricted applications of eval so it can only be used in the
1210 context of the associated global object.
1211
1212 Treat byte-order marks as whitespace characters.
ager@chromium.org32912102009-01-16 10:38:43 +00001213
1214
ager@chromium.org870a0b62008-11-04 11:43:05 +000012152008-11-04: Version 0.4.3
1216
1217 Added support for API accessors that prohibit overwriting by
1218 accessors defined in JavaScript code by using __defineGetter__ and
1219 __defineSetter__.
1220
1221 Improved handling of conditionals in test status files.
1222
1223 Introduced access control in propertyIsEnumerable.
1224
1225 Improved performance of some string operations by caching
1226 information about the type of the string between operations.
1227
1228 Fixed bug in fast-case code for switch statements that only have
1229 integer labels.
ager@chromium.org32912102009-01-16 10:38:43 +00001230
ager@chromium.org870a0b62008-11-04 11:43:05 +00001231
kasperl@chromium.org9bbf9682008-10-30 11:53:07 +000012322008-10-30: Version 0.4.2
1233
1234 Improved performance of Array.prototype.concat by moving the
1235 implementation to C++ (issue 123).
1236
1237 Fixed heap growth policy to avoid growing old space to its maximum
1238 capacity before doing a garbage collection and fixed issue that
1239 would lead to artificial out of memory situations (issue 129).
1240
1241 Fixed Date.prototype.toLocaleDateString to return the date in the
1242 same format as WebKit.
1243
1244 Added missing initialization checks to debugger API.
1245
1246 Added removing of unused maps during GC.
1247
1248
kasperl@chromium.org9fe21c62008-10-28 08:53:51 +000012492008-10-28: Version 0.4.1
1250
1251 Added caching of RegExp data in compilation cache.
1252
1253 Added Visual Studio project file for d8 shell.
1254
1255 Fixed function call performance regression introduced in version
1256 0.4.0 when splitting the global object in two parts (issue 120).
1257
1258 Fixed issue 131 by checking for empty handles before throwing and
1259 reporting exceptions.
1260
1261
kasperl@chromium.org5a8ca6c2008-10-23 13:57:19 +000012622008-10-23: Version 0.4.0
1263
1264 Split the global object into two parts: The state holding global
1265 object and the global object proxy.
1266
1267 Fixed bug that affected the value of an assignment to an element
1268 in certain cases (issue 116).
1269
1270 Added GetPropertyNames functionality (issue 33) and extra Date
1271 functions (issue 77) to the API.
1272
1273 Changed WeakReferenceCallback to take a Persistent<Value> instead
1274 of a Persistent<Object> (issue 101).
1275
1276 Fixed issues with message reporting for exceptions in try-finally
1277 blocks (issues 73 and 75).
1278
ager@chromium.org32912102009-01-16 10:38:43 +00001279 Optimized flattening of strings and string equality checking.
kasperl@chromium.org5a8ca6c2008-10-23 13:57:19 +00001280
1281 Improved Boyer-Moore implementation for faster indexOf operations.
1282
1283 Added development shell (d8) which includes counters and
1284 completion support.
1285
1286 Fixed problem with the receiver passed to functions called from
1287 eval (issue 124).
1288
1289
ager@chromium.org7c537e22008-10-16 08:43:32 +000012902008-10-16: Version 0.3.5
1291
1292 Improved string hash-code distribution by excluding bit-field bits
1293 from the hash-code.
1294
1295 Changed string search algorithm used in indexOf from KMP to
1296 Boyer-Moore.
1297
1298 Improved the generated code for the instanceof operator.
1299
1300 Improved performance of slow-case string equality checks by
1301 specializing the code based on the string representation.
1302
1303 Improve the handling of out-of-memory situations (issue 70).
1304
1305 Improved performance of strict equality checks.
1306
1307 Improved profiler output to make it easier to see anonymous
1308 functions.
1309
1310 Improved performance of slow-case keyed loads.
1311
1312 Improved property access performance by allocating a number of
1313 properties in the front object.
1314
1315 Changed the toString behavior on the built-in object constructors
1316 to print [native code] instead of the actual source. Some web
1317 applications do not like constructors with complex toString
1318 results.
ager@chromium.org32912102009-01-16 10:38:43 +00001319
ager@chromium.org7c537e22008-10-16 08:43:32 +00001320
kasperl@chromium.org41044eb2008-10-06 08:24:46 +000013212008-10-06: Version 0.3.4
1322
1323 Changed Array.prototype.sort to use quick sort.
1324
1325 Fixed code generation issue where leaving a finally block with
1326 break or continue would accumulate elements on the expression
1327 stack (issue 86).
1328
1329 Made sure that the name accessor on functions returns the expected
1330 names for builtin JavaScript functions and C++ callback functions.
1331
1332 Added fast case code for extending the property storage array of
1333 JavaScript objects.
1334
1335 Ported switch statement optimizations introduced in version 0.3.3
1336 to the ARM code generator.
1337
1338 Allowed GCC to use strict-aliasing rules when compiling.
1339
1340 Improved performance of arguments object allocation by taking care
1341 of arguments adaptor frames in the generated code.
1342
1343 Updated the V8 benchmark suite to version 2.
1344
1345
ager@chromium.org236ad962008-09-25 09:45:57 +000013462008-09-25: Version 0.3.3
1347
1348 Improved handling of relocation information to enable more
1349 peep-hole optimizations.
1350
1351 Optimized switch statements where all labels are constant small
1352 integers.
1353
1354 Optimized String.prototype.indexOf for common cases.
1355
1356 Fixed more build issues (issue 80).
1357
1358 Fixed a couple of profiler issues.
1359
1360 Fixed bug where the body of a function created using the Function
1361 constructor was not allowed to end with a single-line comment
1362 (issue 85).
1363
1364 Improved handling of object literals by canonicalizing object
1365 literal maps. This will allow JSON objects with the same set of
1366 properties to share the same map making inline caching work better
1367 for JSON objects.
ager@chromium.org32912102009-01-16 10:38:43 +00001368
ager@chromium.org236ad962008-09-25 09:45:57 +00001369
kasperl@chromium.orgb9123622008-09-17 14:05:56 +000013702008-09-17: Version 0.3.2
1371
1372 Generalized the EvalCache into a CompilationCache and enabled it
1373 for scripts too. The current strategy is to retire all entries
1374 whenever a mark-sweep collection is started.
1375
1376 Fixed bug where switch statements containing only a default case
1377 would lead to an unbalanced stack (issue 69).
1378
1379 Fixed bug that made access to the function in a named function
1380 expression impossible in certain situations (issue 24).
1381
1382 Fixed even more build issues.
1383
1384 Optimized calling conventions on ARM. The conventions on ARM and
1385 IA-32 now match.
1386
1387 Removed static initializers for flags and counters.
1388
1389 Improved inline caching behavior for uncommon cases where lazily
1390 loading Date and RegExp code could force certain code paths go
1391 megamorphic.
1392
1393 Removed arguments adaption for builtins written in C++. This
1394 makes Array.prototype.push and Array.prototype.pop slightly
1395 faster.
1396
1397
ager@chromium.org9258b6b2008-09-11 09:11:10 +000013982008-09-11: Version 0.3.1
1399
1400 Fixed a number of build issues.
1401
1402 Fixed problem with missing I-cache flusing on ARM.
1403
1404 Changed space layout in memory management by splitting up
1405 code space into old data space and code space.
1406
1407 Added utf-8 conversion support to the API (issue 57).
1408
1409 Optimized repeated calls to eval with the same strings. These
1410 repeated calls are common in web applications.
1411
1412 Added Xcode project file.
1413
1414 Optimized a couple of Array operation.
1415
1416 Fixed parser bug by checking for end-of-string when parsing break
1417 and continue (issue 35).
1418
1419 Fixed problem where asian characters were not categorized as
1420 letters.
1421
1422 Fixed bug that disallowed calling functions fetched from an array
1423 using a string as an array index (issue 32).
1424
1425 Fixed bug where the internal field count on object templates were
1426 sometimes ignored (issue 54).
1427
1428 Added -f option to the shell sample for compatibility with other
1429 engines (issue 18).
1430
1431 Added source info to TryCatches in the API.
1432
1433 Fixed problem where the seed for the random number generator was
1434 clipped in a double to unsigned int conversion.
1435
1436 Fixed bug where cons string symbols were sometimes converted to
1437 non-symbol flat strings during GC.
1438
1439 Fixed bug in error reporting when attempting to convert null to an
1440 object.
ager@chromium.org32912102009-01-16 10:38:43 +00001441
1442
ager@chromium.orgc27e4e72008-09-04 13:52:27 +000014432008-09-04: Version 0.3.0
1444
1445 Added support for running tests on the ARM simulator.
1446
1447 Fixed bug in the 'in' operator where negative indices were not
1448 treated correctly.
1449
1450 Fixed build issues on gcc-4.3.1.
1451
1452 Changed Date.prototype.toLocaleTimeString to not print the
1453 timezone part of the time.
1454
1455 Renamed debug.h to v8-debug.h to reduce the risk of name conflicts
1456 with user code.
1457
1458
v8.team.kasperl727e9952008-09-02 14:56:44 +000014592008-09-02: Version 0.2.5
1460
1461 Renamed the top level directory 'public' to 'include'.
1462
1463 Added 'env' option to the SCons build scripts to support
1464 overriding the ENV part of the build environment. This is mostly
1465 to support Windows builds in cases where SCons cannot find the
1466 correct paths to the Windows SDK, as these paths cannot be passed
1467 through shell environment variables.
1468
1469 Enabled "Buffer Security Check" on for the Windows SCons build and
1470 added the linker option /OPT:ICF as an optimization.
1471
1472 Added the V8 benchmark suite to the repository.
1473
1474
mads.s.ager@gmail.com9a4089a2008-09-01 08:55:01 +000014752008-09-01: Version 0.2.4
1476
1477 Included mjsunit JavaScript test suite and C++ unit tests.
1478
1479 Changed the shell sample to not print the result of executing a
1480 script provided on the command line.
1481
1482 Fixed issue when building samples on Windows using a shared V8
1483 library. Added visibility option on Linux build which makes the
1484 generated library 18% smaller.
1485
1486 Changed build system to accept multiple build modes in one build
1487 and generate separate objects, libraries and executables for each
1488 mode.
1489
1490 Removed deferred negation optimization (a * -b => -(a * b)) since
1491 this visibly changes operand conversion order.
1492
1493 Improved parsing performance by introducing stack guard in
1494 preparsing. Without a stack guard preparsing always bails out
1495 with stack overflow.
1496
1497 Changed shell sample to take flags directly from the command-line.
1498 Added API call that implements this.
1499
1500 Added load, quit and version functions to the shell sample so it's
1501 easier to run benchmarks and tests.
1502
1503 Fixed issue with building samples and cctests on 64-bit machines.
1504
1505 Fixed bug in the runtime system where the prototype chain was not
1506 always searched for a setter when setting a property that does not
1507 exist locally.
ager@chromium.org32912102009-01-16 10:38:43 +00001508
mads.s.ager@gmail.com9a4089a2008-09-01 08:55:01 +00001509
mads.s.agercbaa0602008-08-14 13:41:48 +000015102008-08-14: Version 0.2.3
1511
1512 Improved performance of garbage collection by moving the
1513 function that updates pointers during compacting collection
1514 into the updating visitor. This gives the compiler a better
1515 chance to inline and avoid a function call per (potential)
1516 pointer.
1517
1518 Extended the shell sample with a --runtime-flags option.
1519
1520 Added Visual Studio project files for the shell.cc and
1521 process.cc samples.
1522
1523
15242008-08-13: Version 0.2.2
mads.s.ager31e71382008-08-13 09:32:07 +00001525
1526 Improved performance of garbage collection by changing the way
1527 we use the marking stack in the event of stack overflow during
1528 full garbage collection and by changing the way we mark roots.
1529
1530 Cleaned up ARM version by removing top of stack caching and by
1531 introducing push/pop elimination.
1532
1533 Cleaned up the way runtime functions are called to allow
1534 runtime calls with no arguments.
1535
1536 Changed Windows build options to make sure that exceptions are
1537 disabled and that optimization flags are enabled.
1538
1539 Added first version of Visual Studio project files.
1540
1541
mads.s.agercbaa0602008-08-14 13:41:48 +000015422008-08-06: Version 0.2.1
mads.s.ager@gmail.com769cc962008-08-06 10:02:49 +00001543
1544 Improved performance of unary addition by avoiding runtime calls.
1545
1546 Fixed the handling of '>' and '<=' to use right-to-left conversion
1547 and left-to-right evaluation as specified by ECMA-262.
1548
1549 Fixed a branch elimination bug on the ARM platform where incorrect
1550 code was generated because of overly aggressive branch
1551 elimination.
1552
1553 Improved performance of code that repeatedly assigns the same
1554 function to the same property of different objects with the same
1555 map.
1556
1557 Untangled DEBUG and ENABLE_DISASSEMBLER defines. The disassembler
1558 no longer expects DEBUG to be defined.
1559
1560 Added platform-nullos.cc to serve as the basis for new platform
1561 implementations.
1562
mads.s.ager31e71382008-08-13 09:32:07 +00001563
mads.s.agercbaa0602008-08-14 13:41:48 +000015642008-07-30: Version 0.2.0
kasper.lund7276f142008-07-30 08:49:36 +00001565
1566 Changed all text files to have native svn:eol-style.
1567
1568 Added a few samples and support for building them. The samples
1569 include a simple shell that can be used to benchmark and test V8.
1570
1571 Changed V8::GetVersion to return the version as a string.
1572
1573 Added source for lazily loaded scripts to snapshots and made
1574 serialization non-destructive.
1575
1576 Improved ARM support by fixing the write barrier code to use
1577 aligned loads and stores and by removing premature locals
1578 optimization that relied on broken support for callee-saved
1579 registers (removed).
1580
1581 Refactored the code for marking live objects during garbage
1582 collection and the code for allocating objects in paged
1583 spaces. Introduced an abstraction for the map word of a heap-
1584 allocated object and changed the memory allocator to allocate
1585 executable memory only for spaces that may contain code objects.
1586
1587 Moved StringBuilder to utils.h and ScopedLock to platform.h, where
1588 they can be used by debugging and logging modules. Added
1589 thread-safe message queues for dealing with debugger events.
1590
1591 Fixed the source code reported by toString for certain builtin
1592 empty functions and made sure that the prototype property of a
1593 function is enumerable.
1594
1595 Improved performance of converting values to condition flags in
1596 generated code.
1597
1598 Merged disassembler-{arch} files.
1599
1600
mads.s.agercbaa0602008-08-14 13:41:48 +000016012008-07-28: Version 0.1.4
kasper.lundaf4734f2008-07-28 12:50:18 +00001602
1603 Added support for storing JavaScript stack traces in a stack
1604 allocated buffer to make it visible in shallow core dumps.
1605 Controlled by the --preallocate-message-memory flag which is
1606 disabled by default.
1607
1608
mads.s.agercbaa0602008-08-14 13:41:48 +000016092008-07-25: Version 0.1.3
kasper.lund44510672008-07-25 07:37:58 +00001610
1611 Fixed bug in JSObject::GetPropertyAttributePostInterceptor where
1612 map transitions would count as properties.
1613
1614 Allowed aliased eval invocations by treating them as evals in the
1615 global context. This may change in the future.
1616
1617 Added support for accessing the last entered context through the
1618 API and renamed Context::Current to Context::GetCurrent and
1619 Context::GetSecurityContext to Context::GetCurrentSecurityContext.
1620
1621 Fixed bug in the debugger that would cause the debugger scripts to
1622 be recursively loaded and changed all disabling of interrupts to
1623 be block-structured.
1624
1625 Made snapshot data read-only to allow it to be more easily shared
1626 across multiple users of V8 when linked as a shared library.
1627
1628
mads.s.agercbaa0602008-08-14 13:41:48 +000016292008-07-16: Version 0.1.2
kasper.lund212ac232008-07-16 07:07:30 +00001630
1631 Fixed building on Mac OS X by recognizing i386 and friends as
1632 IA-32 platforms.
1633
1634 Added propagation of stack overflow exceptions that occur while
1635 compiling nested functions.
1636
1637 Improved debugger with support for recursive break points and
1638 handling of exceptions that occur in the debugger JavaScript code.
1639
1640 Renamed GetInternal to GetInternalField and SetInternal to
1641 SetInternalField in the API and moved InternalFieldCount and
1642 SetInternalFieldCount from FunctionTemplate to ObjectTemplate.
1643
1644
mads.s.agercbaa0602008-08-14 13:41:48 +000016452008-07-09: Version 0.1.1
kasper.lundbd3ec4e2008-07-09 11:06:54 +00001646
1647 Fixed bug in stack overflow check code for IA-32 targets where a
1648 non-tagged value in register eax was pushed to the stack.
1649
1650 Fixed potential quadratic behavior when converting strings to
1651 numbers.
1652
1653 Fixed bug where the return value from Object::SetProperty could
1654 end up being the property holder instead of the written value.
1655
1656 Improved debugger support by allowing nested break points and by
1657 dealing with stack-overflows when compiling functions before
1658 setting break points in them.
1659
1660
mads.s.agercbaa0602008-08-14 13:41:48 +000016612008-07-03: Version 0.1.0
christian.plesner.hansen43d26ec2008-07-03 15:10:15 +00001662
kasper.lundbd3ec4e2008-07-09 11:06:54 +00001663 Initial export.
christian.plesner.hansen43d26ec2008-07-03 15:10:15 +00001664