The data contained in this repository can be downloaded to your computer using one of several clients.
Please see the documentation of your version control software client for more information.

Please select the desired protocol below to get the URL.

This URL has Read-Only access.

Statistics
| Branch: | Revision:

main_repo / deps / v8 / ChangeLog @ f230a1cf

History | View | Annotate | Download (172 KB)

1
2013-10-31: Version 3.22.24
2

    
3
        Fixed uint32-to-smi conversion in Lithium.
4
        (Chromium issue 309623)
5

    
6
        Performance and stability improvements on all platforms.
7

    
8

    
9
2013-10-28: Version 3.22.23
10

    
11
        Renamed deprecated __attribute__((no_address_safety_analysis)) to
12
        __attribute__((no_sanitize_address)) (Chromium issue 311283)
13

    
14
        Defined DEBUG for v8_optimized_debug=2
15

    
16
        Performance and stability improvements on all platforms.
17

    
18

    
19
2013-10-25: Version 3.22.22
20

    
21
        Record allocation stack traces. (Chromium issue 277984,v8:2949)
22

    
23
        Performance and stability improvements on all platforms.
24

    
25

    
26
2013-10-24: Version 3.22.21
27

    
28
        Performance and stability improvements on all platforms.
29

    
30

    
31
2013-10-24: Version 3.22.20
32

    
33
        Made Array.prototype.pop throw if the last element is not configurable.
34

    
35
        Fixed HObjectAccess for loads from migrating prototypes.
36
        (Chromium issue 305309)
37

    
38
        Enabled preaging of code objects when --optimize-for-size.
39
        (Chromium issue 280984)
40

    
41
        Exposed v8::Function::GetDisplayName to public API.
42
        (Chromium issue 17356)
43

    
44
        Performance and stability improvements on all platforms.
45

    
46

    
47
2013-10-23: Version 3.22.19
48

    
49
        Fix materialization of captured objects with field tracking.
50
        (Chromium issue 298990)
51

    
52
        Performance and stability improvements on all platforms.
53

    
54

    
55
2013-10-22: Version 3.22.18
56

    
57
        Add tool to visualize machine code/lithium.
58

    
59
        Handle misaligned loads and stores in load elimination. Do not track
60
        misaligned loads and be conservative about invalidating misaligned
61
        stores. (issue 2934)
62

    
63
        Performance and stability improvements on all platforms.
64

    
65

    
66
2013-10-21: Version 3.22.17
67

    
68
        Harmony: Implement Math.trunc and Math.sign. (issue 2938)
69

    
70
        Performance and stability improvements on all platforms.
71

    
72

    
73
2013-10-21: Version 3.22.16
74

    
75
        Performance and stability improvements on all platforms.
76

    
77

    
78
2013-10-18: Version 3.22.15
79

    
80
        Enabled calling the SetReference* & SetObjectGroupId functions with a
81
        Persistent<SubclassOfValue>.
82

    
83
        Performance and stability improvements on all platforms.
84

    
85

    
86
2013-10-17: Version 3.22.14
87

    
88
        Performance and stability improvements on all platforms.
89

    
90

    
91
2013-10-16: Version 3.22.13
92

    
93
        Do not look up ArrayBuffer on global object in typed array constructor.
94
        (issue 2931)
95

    
96
        Performance and stability improvements on all platforms.
97

    
98

    
99
2013-10-15: Version 3.22.12
100

    
101
        Added histograms to track fraction of heap spaces and percentage of
102
        generated crankshaft code.
103

    
104
        Moved v8_optimized_debug default value to standalone.gypi.
105

    
106
        Track JS allocations as they arrive with no affection on performance
107
        when tracking is switched off (Chromium issue 277984).
108

    
109
        Performance and stability improvements on all platforms.
110

    
111

    
112
2013-10-14: Version 3.22.11
113

    
114
        Performance and stability improvements on all platforms.
115

    
116

    
117
2013-10-11: Version 3.22.10
118

    
119
        Fixed timezone issues with date-time/parse-* tests.
120
        (Chromium issue 2919)
121

    
122
        Added column getter to CpuProfileNode (Chromium issue 302537)
123

    
124
        Performance and stability improvements on all platforms.
125

    
126

    
127
2013-10-10: Version 3.22.9
128

    
129
        Ensure only whitelisted stubs have sse2 versions in the snapshot.
130
        (fix for chromium 304565)
131

    
132
        Implement ArrayBuffer.isView.
133

    
134
        Performance and stability improvements on all platforms.
135

    
136

    
137
2013-10-04: Version 3.22.8
138

    
139
        Performance and stability improvements on all platforms.
140

    
141

    
142
2013-10-03: Version 3.22.7
143

    
144
        Debug: Allow stepping into on a given call frame
145
        (Chromium issue 296963).
146

    
147
        Always use timeGetTime() for TimeTicks::Now() on Windows
148
        (Chromium issue 288924).
149

    
150
        Performance and stability improvements on all platforms.
151

    
152

    
153
2013-10-02: Version 3.22.6
154

    
155
        Performance and stability improvements on all platforms.
156

    
157

    
158
2013-10-01: Version 3.22.5
159

    
160
        Disabled externalization of sliced/cons strings in old pointer space
161
        (Chromium issue 276357).
162

    
163
        Turned on handle zapping for release builds
164

    
165
        Performance and stability improvements on all platforms.
166

    
167

    
168
2013-09-30: Version 3.22.4
169

    
170
        Function::Call and Object::CallAsFunction APIs should allow v8::Value as
171
        a receiver (issue 2915).
172

    
173
        Removed unnecessary mutex (Chromium issue 291236).
174

    
175
        Removed ArrayBufferView::BaseAddress method.
176

    
177
        Performance and stability improvements on all platforms.
178

    
179

    
180
2013-09-27: Version 3.22.3
181

    
182
        Added methods to enable configuration of ResourceConstraints based on
183
        limits derived at runtime.
184
        (Chromium issue 292928)
185

    
186
        Added -optimize-for-size flag to optimize for memory size (will be used
187
        by pre-aging CL), and removed the is_memory_constrained
188
        ResourceConstraint.
189
        (Chromium issue 292928)
190

    
191
        Performance and stability improvements on all platforms.
192

    
193

    
194
2013-09-26: Version 3.22.2
195

    
196
        Performance and stability improvements on all platforms.
197

    
198

    
199
2013-09-25: Version 3.22.1
200

    
201
        Sped up creating typed arrays from array-like objects.
202
        (Chromium issue 270507)
203

    
204
        Performance and stability improvements on all platforms.
205

    
206

    
207
2013-09-23: Version 3.22.0
208

    
209
        LiveEdit to mark more closure functions for re-instantiation when scope
210
        layout changes.
211
        (issue 2872)
212

    
213
        Made bounds check elimination iterative instead of recursive.
214
        (Chromium issue 289706)
215

    
216
        Turned on i18n support by default.
217

    
218
        Set the proper instance-type on HAllocate in BuildFastLiteral.
219
        (Chromium issue 284577)
220

    
221
        Performance and stability improvements on all platforms.
222

    
223

    
224
2013-09-18: Version 3.21.17
225

    
226
        Implemented local load/store elimination on basic blocks.
227

    
228
        Added mutex when accessing concurrent recompilation output queue.
229
        (Chromium issue 291236)
230

    
231
        Don't lookup the cache for the result of Function::New.
232
        (Chromium issue 272579)
233

    
234
        Tweaked HConstant::EmitAtUses() to eliminate useless constant
235
        generation.
236
        (Chromium issue 2881)
237

    
238
        Performance and stability improvements on all platforms.
239

    
240

    
241
2013-09-16: Version 3.21.16
242

    
243
        Every place where AllocationMemento is initialized with an
244
        AllocationSite is now checked to be sure a valid Site goes in. This is
245
        temporary code to diagnose chromium bug 284577.
246

    
247
        Performance and stability improvements on all platforms.
248

    
249

    
250
2013-09-13: Version 3.21.15
251

    
252
        Non-JSObject heap objects are now handled using slow-path IC stub
253
        guarded by the map.
254
        (Chromium issue 280632)
255

    
256
        i18n Javascript code added to the snapshot.
257
        (V8 issue 2745)
258

    
259
        Performance and stability improvements on all platforms.
260

    
261
2013-09-12: Version 3.21.14
262

    
263
        Added access check for observed objects.
264
        (V8 issue 2778)
265

    
266
        Cleaned up v8::ArrayBuffer::Allocator interface.
267
        (V8 issue 2823)
268

    
269
        Performance and stability improvements on all platforms.
270

    
271
2013-09-11: Version 3.21.13
272

    
273
        Added a ResourceConstraint for the embedder to specify that V8 is
274
        running on a memory constrained device.
275
        (Chromium issue 280984)
276

    
277
        Removed HandleScope default ctor.
278
        (Chromium issue 236173)
279

    
280
        Enabled escape analysis for Hydrogen.
281

    
282
        Correctly stringified mixed encoding indirect strings.
283
        (Chromium issue 287476)
284

    
285
        Performance and stability improvements on all platforms.
286

    
287

    
288
2013-09-09: Version 3.21.12
289

    
290
        Fixed bitwise negation on x64.
291
        (Chromium issue 285355)
292

    
293
        Dropped GetCurrentThreadId() and TerminateExecution(int) from 
294
	the external API.
295

    
296
        Fixed polymorphic INTERCEPTOR StoreICs on ARM/MIPS.
297
        (Chromium issue 284998)
298

    
299
        Added check if timeout has expired after processing each sample.
300
        (issue 2814,v8:2871)
301

    
302
        Removed obsolete global V8::has_been_fooed flags.
303
        (issue 2744)
304

    
305
        Performance and stability improvements on all platforms.
306

    
307

    
308
2013-09-05: Version 3.21.11
309

    
310
        Performance and stability improvements on all platforms.
311

    
312

    
313
2013-09-04: Version 3.21.10
314

    
315
        Fixed Eternal::IsEmpty logic (issue 2870).
316

    
317
        Performance and stability improvements on all platforms.
318

    
319

    
320
2013-09-03: Version 3.21.9
321

    
322
        Deprecated Persistent functions which were marked to be deprecated.
323

    
324
        Allowed uncacheable identifiers to go generic (issue 2867).
325

    
326
        Performance and stability improvements on all platforms.
327

    
328

    
329
2013-09-02: Version 3.21.8
330

    
331
        Added scriptId to StackTrace frames (issue 2865).
332

    
333
        Performance and stability improvements on all platforms.
334

    
335

    
336
2013-08-30: Version 3.21.7
337

    
338
        Fixed casts of eternal handles.
339

    
340
        Turned on global handle zapping.
341

    
342
        Always visit branches during HGraph building (Chromium issue 280333).
343

    
344
        Profiler changes: removed deprecated API, support higher sampling
345
        rate on Windows.
346

    
347
        Performance and stability improvements on all platforms.
348

    
349

    
350
2013-08-29: Version 3.21.6
351

    
352
        Fixed inlined 'throw' statements interfering with live range
353
        computation. (issue 2843)
354

    
355
        Performance and stability improvements on all platforms.
356

    
357

    
358
2013-08-28: Version 3.21.5
359

    
360
        Fixed compilation with recent MinGW64 versions. (issue 2300)
361

    
362
        Added RemovePrototype to FunctionTemplate. (Chromium issue 272440)
363

    
364
        Performance and stability improvements on all platforms.
365

    
366

    
367
2013-08-26: Version 3.21.4
368

    
369
        Lowered kInitialMaxFastElementArray constant to 95K (issue 2790).
370

    
371
        Use signals for cpu profiling on Mac OS X (issue 2814).
372

    
373
        Deprecated CpuProfileNode::GetSelfSamplesCount (Chromium issue 267595).
374

    
375
        Added support for higher CPU profiler sampling rate on posix systems
376
        (issue 2814).
377

    
378
        Worked around 'inlining failed' build error with older GCC 4.x releases.
379

    
380
        Added source map support to tick processor.
381

    
382
        Stability improvements on all platforms.
383

    
384

    
385
2013-08-23: Version 3.21.3
386

    
387
        Temporarily disabled optimization for StringWrappers to use native
388
        valueOf. (issue 2855)
389

    
390
        Fixed crash on function declarations in eval inside non-trivial local
391
        scope. (issue 2594)
392

    
393
        Rewrote SamplingCircularQueue. (issue 2814)
394

    
395
        Fixed hidden properties on object with frozen prototype. (issue 2829)
396

    
397
        Fix deoptimization bug. (Chromium issue 274164)
398

    
399
        Stability improvements on all platforms.
400

    
401

    
402
2013-08-22: Version 3.21.2
403

    
404
        Stability improvements on all platforms.
405

    
406

    
407
2013-08-21: Version 3.21.1
408

    
409
        Promoted ArrayBuffer, DataView and typed arrays to non-experimental.
410
        (Chromium issue 270527)
411

    
412
        Replaced OS::MemCopy with memcpy in typed array initialization.
413
        (Chromium issue 270642)
414

    
415
        Moved i18n break iterator C++ code to runtime (issue 2745)
416

    
417
        Fixed invalid out-of-bounds store in MacroAssembler::Allocate.
418
        (Chromium issue 263515)
419

    
420
        Fixed register misuse in Allocate() on ARM. (issue 2851)
421

    
422
        Fixed empty handle dereference in Runtime_InternalNumberFormat.
423
        (Chromium issue 275467)
424

    
425
        Performance and stability improvements on all platforms.
426

    
427

    
428
2013-08-19: Version 3.21.0
429

    
430
        Fixed GC-related crasher (Chromium issue 274438)
431

    
432
        Reverted making Intl non-enumerable.
433

    
434
        Performance and stability improvements on all platforms.
435

    
436

    
437
2013-08-14: Version 3.20.17
438

    
439
        Fixed Math.round/floor that had bogus Smi representation
440
        (Chromium issue 272564)
441

    
442
        Performance and stability improvements on all platforms.
443

    
444

    
445
2013-08-13: Version 3.20.16
446

    
447
        Fixed bug in HPhi::SimplifyConstantInput (Chromium issue 269679)
448

    
449
        Fixed gcmole bugs in i18n code (issue 2745)
450

    
451
        ia32: Calls to the TranscendentalCacheStub must ensure that esi is
452
        set (issue 2827)
453

    
454
        Made sure polymorphic element access creates non-replaying
455
        phis. (issue 2815)
456

    
457
        Allowed HPhis to have an invalid merge index. (issue 2815)
458

    
459
        Fixed smi-based math floor. (Chromium issue 270268)
460

    
461
        Deprecated self and total time getters and total sample count
462
        getter on CpuProfileNode. (Chromium issue 267595)
463

    
464
        Fixed Object.freeze, Object.observe wrt CountOperation and
465
        CompoundAssignment. (issue 2774,2779)
466

    
467
        Performance and stability improvements on all platforms.
468

    
469

    
470
2013-08-07: Version 3.20.15
471

    
472
        Exposed eternal handle api.
473

    
474
        Bugfix to solve issues with enabling V8 typed arrays in Blink.
475

    
476
        Fixed Array index dehoisting.  (Chromium issue 264203)
477

    
478
        Updated Array Iterator to use numeric indexes (issue 2818)
479

    
480
        Return start/end profiling time in microseconds instead of milliseconds
481
        (issue 2824)
482

    
483
        Performance and stability improvements on all platforms.
484

    
485

    
486
2013-08-06: Version 3.20.14
487

    
488
        Added new Harmony methods to Array.prototype object.
489
        (issue 2776,v8:2777)
490

    
491
        Performance and stability improvements on all platforms.
492

    
493

    
494
2013-08-01: Version 3.20.12
495

    
496
        Removed buggy ToNumber truncation (partial fix for issue 2813)
497

    
498
        Calling Map etc without new should throw TypeError (issue 2819)
499

    
500
        Fixed a crash for large code objects on ARM (Chromium issue 2736)
501

    
502
        Fixed stale unhandlified value in JSObject::SetPropertyForResult.
503
        (Chromium issue 265894)
504

    
505
        Added new Harmony methods to String.prototype object.
506
        (issue 2796,v8:2797,v8:2798,v8:2799)
507

    
508
        Performance and stability improvements on all platforms.
509

    
510

    
511
2013-07-30: Version 3.20.11
512

    
513
        Performance and stability improvements on all platforms.
514

    
515

    
516
2013-07-29: Version 3.20.10
517

    
518
        Performance and stability improvements on all platforms.
519

    
520

    
521
2013-07-26: Version 3.20.9
522

    
523
        Check that ExternalString objects get aligned resources.
524

    
525
        Fixed JSArray-specific length lookup in polymorphic array handling
526
        (Chromium issues 263276, 263905).
527

    
528
        Performance and stability improvements on all platforms.
529

    
530

    
531
2013-07-24: Version 3.20.8
532

    
533
        Deprecated v8::V8::Pause/ResumeProfiler.
534

    
535
        Fixed Chromium issues 247688, 258519 and 260203.
536

    
537
        Performance and stability improvements on all platforms.
538

    
539

    
540
2013-07-22: Version 3.20.7
541

    
542
        Deprecated some debugger methods.
543

    
544
        Fixed wrong bailout id in polymorphic stores (Chromium issue 259787).
545

    
546
        Fixed data race in SamplingCircularQueue (Chromium issue 251218).
547

    
548
        Fixed type feedback in presence of negative lookups
549
        (Chromium issue 252797).
550

    
551
        Do not materialize context-allocated values for debug-evaluate
552
        (Chromium issue 259300).
553

    
554
        Synchronized Compare-Literal behavior in FullCodegen and Hydrogen
555
        (Chromium issue 260345).
556

    
557
        Performance and stability improvements on all platforms.
558

    
559

    
560
2013-07-17: Version 3.20.6
561

    
562
        Try to remove invalidated stubs before falling back to checking the
563
        constant state (Chromium issue 260585).
564

    
565
        Fixed gyp_v8 to work with use_system_icu=1 (issue 2475).
566

    
567
        Fixed sloppy-mode 'const' under Harmony flag (Chromium issue 173361).
568

    
569
        Use internal array as API function cache  (Chromium issue 260106).
570

    
571
        Fixed possible stack overflow in range analysis
572
        (Chromium issue 259452).
573

    
574
        Performance and stability improvements on all platforms.
575

    
576

    
577
2013-07-15: Version 3.20.5
578

    
579
        Ensured that the length of frozen arrays is immutable
580
        (issue 2711, Chromium issue 259548).
581

    
582
        Performance and stability improvements on all platforms.
583

    
584

    
585
2013-07-10: Version 3.20.4
586

    
587
        Fixed garbage-collection issue that causes a crash on ARM
588
        (Chromium issue 254570)
589

    
590
        Performance and stability improvements on all platforms.
591

    
592

    
593
2013-07-08: Version 3.20.3
594

    
595
        Performance and stability improvements on all platforms.
596

    
597

    
598
2013-07-05: Version 3.20.2
599

    
600
        Remove deprecated heap profiler methods from V8 public API
601

    
602
        Mark i18n functions as native and set proper names
603
        (issue 2745)
604

    
605
        Correctly report stack trace when current function is FunctionApply
606
        builtin (Chromium issue 252097)
607

    
608
        Enable GDBJIT interface for standalone by default.
609

    
610
        Fix debuggersupport=off build. (issue 2754)
611

    
612
        Introduce -m64 flag for making x64 when the default gcc compiler is for
613
        X32
614

    
615
        Performance and stability improvements on all platforms.
616

    
617

    
618
2013-07-02: Version 3.20.1
619

    
620
        Implemented WeakMap.prototype.clear function. (issue 2753)
621

    
622
        Ensure CheckInitialized is present independent of define.
623
        (Chromium issue 255779)
624

    
625
        Performance and stability improvements on all platforms.
626

    
627

    
628
2013-06-28: Version 3.20.0
629

    
630
        Migrated several tests from blink to V8 repository.
631

    
632
        Allowed users of the V8 API to distinguish between unset and undefined
633
        HiddenValues (issue 2746).
634

    
635
        Deprecated old style callbacks in the V8 API.
636

    
637
        Turned on parallel recompilation.
638

    
639
        Performance and stability improvements on all platforms.
640

    
641

    
642
2013-06-18: Version 3.19.18
643

    
644
	Fixed read-only attribute of Function.length in strict mode.
645
	(issue 2705)
646

    
647
	Fixed Runtime_SetProperty to properly handle OOM failures
648
	(Chromium issue 249873)
649

    
650
	Emit deprecated check for constant function transitions.
651
	(Chromium issue 250609)
652
	
653
	Made MathFloorOfDiv optimization trigger more often
654
	(Issue 2205)
655

    
656
	Make more GCs in idle notification handler.
657
	(Chromium issue 241815)
658

    
659
	Increased default type info threshold.
660
	(Issue 2730)
661

    
662
        Performance and stability improvements on all platforms.
663

    
664

    
665
2013-06-14: Version 3.19.16
666

    
667
        Performance and stability improvements on all platforms.
668

    
669

    
670
2013-06-13: Version 3.19.15
671

    
672
        Performance and stability improvements on all platforms.
673

    
674

    
675
2013-06-13: Version 3.19.14
676

    
677
        Fixed crashes when calling new Array(a) with a single argument that
678
        could result in creating a holey array with a packed elements kind.
679
        (Chromium issue 245480)
680

    
681
        Fixed issues in parallel compilation.
682
        (Chromium issue 248076)
683

    
684
        Performance and stability improvements on all platforms.
685

    
686

    
687
2013-06-11: Version 3.19.13
688

    
689
        Performance and stability improvements on all platforms.
690

    
691

    
692
2013-06-10: Version 3.19.12
693

    
694
        Fixed arguments array access. (Chromium issue 247303)
695

    
696
        Fixed bug in LookupForWrite. (Chromium issue 242332)
697

    
698
        Performance and stability improvements on all platforms.
699

    
700

    
701
2013-06-07: Version 3.19.11
702

    
703
        Performance and stability improvements on all platforms.
704

    
705

    
706
2013-06-06: Version 3.19.10
707

    
708
        Performance and stability improvements on all platforms.
709

    
710

    
711
2013-06-05: Version 3.19.9
712

    
713
        Implemented Load IC support for loading properties from primitive
714
        values to avoid perpetual soft deopts.  (Chromium issue 242512)
715

    
716
        Implemented Freeing of PerThreadAssertData when possible to avoid
717
        memory leak. (Chromium issue 246567)
718

    
719
        Removed V8_USE_OLD_STYLE_PERSISTENT_HANDLE_VISITORS.
720

    
721
        Performance and stability improvements on all platforms.
722

    
723

    
724
2013-06-03: Version 3.19.8
725

    
726
        Fixed bug with inlining 'Array' function. (Chromium issue 244461)
727

    
728
        Fixed initialization of literal objects. (Chromium issue 245424)
729

    
730
        Fixed function name inferred inside closures. (Chromium issue 224884)
731

    
732
        Performance and stability improvements on all platforms.
733

    
734

    
735
2013-05-31: Version 3.19.7
736

    
737
        Added support for //# sourceURL similar to deprecated //@ sourceURL one.
738
        (issue 2702)
739

    
740
        Made sure IfBuilder::Return clears the current block.
741
        (Chromium issue 243868)
742

    
743
        Fixed two CPU profiler tests on ARM and MIPS simulators
744
        (issue 2628)
745

    
746
        Fixed idle incremental GC for large objects.
747
        (Chromium issue 241815)
748

    
749
        Disabled --optimize-constructed-arrays due to crashes
750
        (Chromium issue 244461)
751

    
752
        Performance and stability improvements on all platforms.
753

    
754

    
755
2013-05-28: Version 3.19.6
756

    
757
        Fixed IfBuilder::Deopt to clear the current block
758
        (Chromium issue 243868).
759

    
760
        Performance and stability improvements on all platforms.
761

    
762

    
763
2013-05-27: Version 3.19.5
764

    
765
        Reset regexp parser flag after scanning ahead for capture groups.
766
        (issue 2690)
767

    
768
        Removed flakiness in test-cpu-profiler/SampleWhenFrameIsNotSetup.
769
        (issue 2628)
770

    
771
        Performance and stability improvements on all platforms.
772

    
773

    
774
2013-05-24: Version 3.19.4
775

    
776
        Fixed edge case in stack trace formatting. (Chromium issue 237617)
777

    
778
        Fixed embedded new-space pointer in LCmpObjectEqAndBranch. (Chromium
779
	issue 240032)
780

    
781
        Made Object.freeze fast (issue 1858, Chromium issue 115960)
782

    
783
        Fixed bogus deopt in BuildEmitDeepCopy for holey arrays. (Chromium issue
784
        242924)
785

    
786
        Performance and stability improvements on all platforms.
787

    
788

    
789
2013-05-22: Version 3.19.3
790

    
791
        Performance and stability improvements on all platforms.
792

    
793

    
794
2013-05-17: Version 3.19.2
795

    
796
        Fill in one-word-fillers for the unused property fields
797
        (Chromium issue 240056).
798

    
799
        Removed use_system_v8 logic from the mainline gyp file
800
        (Chromium issue 226860).
801

    
802
        Skip CPU profiler samples where top function's stack frame is not
803
        set up properly (issue 2628).
804

    
805
        Performance and stability improvements on all platforms.
806

    
807

    
808
2013-05-14: Version 3.19.1
809

    
810
        Fixed missing hole check for loads from Smi arrays when all uses are
811
        changes (Chromium issue 233737)
812

    
813
        Performance and stability improvements on all platforms.
814

    
815

    
816
2013-05-10: Version 3.19.0
817

    
818
        Deprecated Context::New which returns Persistent.
819

    
820
        Added Persistent<T>::Reset which disposes the handle and redirects it to
821
        point to another object.
822

    
823
        Deprecated WriteAscii and MayContainNonAscii.
824

    
825
        Exposed AssertNoAllocation to API.
826

    
827
        Performance and stability improvements on all platforms.
828

    
829

    
830
2013-04-30: Version 3.18.5
831

    
832
        Allowed setting debugger breakpoints on CompareNilICs (issue 2660)
833

    
834
        Fixed beyond-heap load on x64 Crankshafted StringCharFromCode
835
        (Chromium issue 235311)
836

    
837
        Change 'Parse error' to three more informative messages.
838
        (Chromium issue 2636)
839

    
840
        Performance and stability improvements on all platforms.
841

    
842

    
843
2013-04-26: Version 3.18.4
844

    
845
        Added a preliminary API for ES6 ArrayBuffers
846

    
847
        Replaced qsort with std::sort. (Chromium issue 2639)
848

    
849
        Performance and stability improvements on all platforms.
850

    
851

    
852
2013-04-24: Version 3.18.3
853

    
854
        Exposed the GC under a name that is less collision prone than window.gc.
855
        (issue 2641)
856

    
857
        Do not emit double values at their use sites. (Chromium issue 234101)
858

    
859
        Added methods to allow resuming execution after calling
860
        TerminateExecution(). (issue 2361)
861

    
862
        Performance and stability improvements on all platforms.
863

    
864

    
865
2013-04-22: Version 3.18.2
866

    
867
        OS::MemMove/OS::MemCopy: Don't call through to generated code when size
868
        == 0 to avoid prefetching invalid memory (Chromium issue 233500)
869

    
870
        Removed heap snapshot size limit. (Chromium issue 232305)
871

    
872
        Performance and stability improvements on all platforms.
873

    
874

    
875
2013-04-18: Version 3.18.1
876

    
877
        Removed SCons related files and deprecated test suite configurations.
878

    
879
        Improved handling of unary plus (issue 2527).
880

    
881
        Performance and stability improvements on all platforms.
882

    
883

    
884
2013-04-17: Version 3.18.0
885

    
886
        Enabled pretenuring of fast literals in high promotion mode.
887

    
888
        Removed preparser library; link preparser executable against full V8.
889

    
890
        Fixed set-up of intrinsic's 'constructor' properties.
891
        (Chromium issue 229445)
892

    
893
        ES6 symbols: extended V8 API to support symbols (issue 2158).
894

    
895
        Removed ARM support for VFP2.
896

    
897
        Made __proto__ a real JavaScript accessor property.
898
        (issue 1949 and issue 2606)
899

    
900
        Performance and stability improvements on all platforms.
901

    
902

    
903
2013-04-04: Version 3.17.16
904

    
905
        Stack trace API: poison stack frames below the first strict mode frame.
906
        (issue 2564)
907

    
908
        Made Isolate::GetHeapStatistics robust against half-initialized
909
        isolates (Chromium issue 2591).
910

    
911
        Finished implementation of ES6 symbols aka. private names (issue 2158).
912

    
913
        Performance and stability improvements on all platforms.
914

    
915

    
916
2013-03-21: Version 3.17.15
917

    
918
        Rolled back API changes to maintain compatibility with older
919
        3.17.x versions of V8.
920

    
921
        Disable zapping of global handles in release mode.
922

    
923
        Always mark the entire valid prefix of the descriptor array.
924
        (Chromium issue 196331)
925

    
926
        Use internal memcpy for CopyWords and when copying code.
927
        (Chromium issue 196330)
928

    
929
        Performance and stability improvements on all platforms.
930

    
931

    
932
2013-03-20: Version 3.17.14
933

    
934
        Use internal memcpy when initializing code objects.
935
        (Chromium issue 196330)
936

    
937
        Disabled weak embedded maps because of crashes.
938
        (Chromium issues 172489, 217858)
939

    
940
        Performance and stability improvements on all platforms.
941

    
942

    
943
2013-03-19: Version 3.17.13
944

    
945
        Turned Flags into a uint32_t typedef (Chromium issue 194749).
946

    
947
        Performance and stability improvements on all platforms.
948

    
949

    
950
2013-03-18: Version 3.17.12
951

    
952
        Unified kMaxArguments with number of bits used to encode it.
953
        (Chromium issue 211741)
954

    
955
        Fixed detection of |handle_smi| case in
956
        HOptimizedGraphBuilder::HandlePolymorphicCallNamed.
957
        (Chromium issue 196583)
958

    
959
        Performance and stability improvements on all platforms.
960

    
961

    
962
2013-03-15: Version 3.17.11
963

    
964
        Added a version of the v8::HandleScope constructor with an v8::Isolate
965
        parameter and made AdjustAmountOfExternalAllocatedMemory an instance
966
        method of v8::Isolate.
967
        (issue 2487)
968

    
969
        Fixed two register allocator bugs (off-by-one error/failure
970
        propagation). (issue 2576)
971

    
972
        Fixed huge heap snapshot when a heavily shared context has many
973
        variables. (Chromium issue 145687)
974

    
975
        Performance and stability improvements on all platforms.
976

    
977

    
978
2013-03-13: Version 3.17.10
979

    
980
        Fixed heap snapshot creation for Harmony collections. (issue 2535)
981

    
982
        Fixed register allocation corner case. (Chromium issue 177883)
983

    
984
        Performance and stability improvements on all platforms.
985

    
986

    
987
2013-03-08: Version 3.17.9
988

    
989
        Restored Function()'s expected string representation. (issue 2470)
990

    
991
        Enabled deprecatations (again). (issue 2487)
992

    
993
        Avoid bool to Oddball conversions by being lazy. (issue 2491)
994

    
995
        Added %p option to --logfile.
996

    
997
        Hardened Function()'s parsing of function literals. (issue 2470)
998

    
999
        ES6 symbols: Refine test for getOwnPropertyNames. (issue 2158)
1000

    
1001
        Performance and stability improvements on all platforms.
1002

    
1003

    
1004
2013-03-07: Version 3.17.8
1005

    
1006
        Added missing license headers. (Chromium issue 98597)
1007

    
1008
        Inserted missing type cast in JSON.stringify. (issue 2570)
1009

    
1010
        Reverted "Send SIGPROF signals on the profiler event processor thread"
1011
        (issue 2571)
1012

    
1013
        Fixed Array.length, String.length and Function.prototype LoadICs on x64.
1014
        (issue 2568)
1015

    
1016
        ES6 symbols: filter symbols form for-in loops and Object.keys.
1017
        (issue 2158)
1018

    
1019
        Properly handle misses for StoreArrayLengthStub on ia32 and x64
1020
        (issue 2566)
1021

    
1022
        Fixed x32 handling of Atomic64. (Chromium issue chromium-os:36866)
1023

    
1024
        Removed "library" variable from standalone.gypi. (Chromium issue 111541)
1025

    
1026
        Fixed HCheckSmiOrInt <-> HBoundsCheck interaction wrt. representations.
1027
        (issue 2556)
1028

    
1029
        Enabled zapping of disposed global handles in release mode.
1030
        (Chromium issue 176056)
1031

    
1032
        Added workaround for redefinition of __proto__ property. (issue 2565)
1033

    
1034
        ES6 symbols: Allow symbols as property names. (issue 2158)
1035

    
1036
        Performance and stability improvements on all platforms.
1037

    
1038

    
1039
2013-03-04: Version 3.17.7
1040

    
1041
        Limited recursion in regexp compilation by a budget.
1042
        (Chromium issue 178790)
1043

    
1044
        ES6 symbols: Implemented Symbol intrinsic and basic functionality
1045
        (issue 2158)
1046

    
1047
        Performance and stability improvements on all platforms.
1048

    
1049

    
1050
2013-02-28: Version 3.17.6
1051

    
1052
        Fixed materialization of arguments objects with unknown values.
1053
        (Chromium issue 163530)
1054

    
1055
        Set default number of sweeper threads to at most four.
1056

    
1057
        Performance and stability improvements on all platforms.
1058

    
1059

    
1060
2013-02-27: Version 3.17.5
1061

    
1062
        Made __proto__ a foreign callback on Object.prototype.
1063
        (issue 621, issue 1949 and issue 2441)
1064

    
1065
        Performance and stability improvements on all platforms.
1066

    
1067

    
1068
2013-02-25: Version 3.17.4
1069

    
1070
        Performance and stability improvements on all platforms.
1071

    
1072

    
1073
2013-02-21: Version 3.17.3
1074

    
1075
        Performance and stability improvements on all platforms.
1076

    
1077

    
1078
2013-02-19: Version 3.17.2
1079

    
1080
        Removed bogus check for TOP register in deoptimizer.
1081
        (Chromium issue 176943)
1082

    
1083
        Made the Isolate parameter mandatory for internal HandleScopes.
1084
        (issue 2487)
1085

    
1086
        Fixed f.apply() optimization when declared arguments are mutated.
1087
        (issue 2539)
1088

    
1089
        Performance and stability improvements on all platforms.
1090

    
1091

    
1092
2013-02-14: Version 3.17.1
1093

    
1094
        Performance and stability improvements on all platforms.
1095

    
1096

    
1097
2013-02-13: Version 3.17.0
1098

    
1099
        Enabled parallel sweeping.
1100

    
1101
        Don't try to unlink instructions twice during GVN
1102
        (Chromium issue 175141)
1103

    
1104
        Fixed code flusher disabling while marking incrementally.
1105
        (Chromium issue 173458, 168582)
1106

    
1107
        Don't use TLS for space iterators.
1108
        (issue 2531)
1109

    
1110
        Added new GetHeapStatistics API entry and deprecated old one.
1111

    
1112
        Fixed DoubleStackSlot-to-DoubleStackSlot moves on ia32. Unified
1113
        platform-independent code.
1114
        (Chromium issue 173907)
1115

    
1116
        Added --trace-array-abuse to help find OOB accesses.
1117

    
1118
        Performance and stability improvements on all platforms.
1119

    
1120

    
1121
2013-02-06: Version 3.16.14
1122

    
1123
        Performance and stability improvements on all platforms.
1124

    
1125

    
1126
2013-02-04: Version 3.16.13
1127

    
1128
        Tagged stubs that rely on instance types as MEGAMORPHIC.
1129
        (Chromium issue 173974)
1130

    
1131
        Fixed clearing of dead dependent codes and verifing of weak
1132
        embedded maps on full GC. (Chromium issue 172488,172489)
1133

    
1134
        Made the arm port build cleanly with Clang.
1135

    
1136
        Performance and stability improvements on all platforms.
1137

    
1138

    
1139
2013-01-31: Version 3.16.12
1140

    
1141
        Performance and stability improvements on all platforms.
1142

    
1143

    
1144
2013-01-30: Version 3.16.11
1145

    
1146
        Put making embedded maps in optimized code weak behind a flag.
1147
        (Chromium issue 172488,172489)
1148

    
1149
        Performance and stability improvements on all platforms.
1150

    
1151

    
1152
2013-01-25: Version 3.16.10
1153

    
1154
        Avoid excessive memory usage during redundant phi elimination.
1155
        (issue 2510)
1156

    
1157
        Fixed additional spec violations wrt RegExp.lastIndex.
1158
        (issue 2437)
1159

    
1160
        Added Isolate parameter to Persistent class.
1161
        (issue 2487)
1162

    
1163
        Performance and stability improvements on all platforms.
1164

    
1165

    
1166
2013-01-24: Version 3.16.9
1167

    
1168
        Made embedded maps in optimized code weak.
1169
        (issue 2073)
1170

    
1171
        Fixed corner case when JSFunction is evicted from flusher.
1172
        (Chromium issue 168801)
1173

    
1174
        Correctly set kCanBeDivByZero flag for HMathFloorOfDiv.
1175
        (Chromium issue 171641)
1176

    
1177
        Performance and stability improvements on all platforms.
1178

    
1179

    
1180
2013-01-23: Version 3.16.8
1181

    
1182
        Correctly reset lastIndex in an RegExp object.
1183
        (Chromium issue 170856)
1184

    
1185
        Added a workaround for Windows compilation problems related to V8EXPORT.
1186
        (issue 2507)
1187

    
1188
        tools/run-tests.py: shlex.split() the value of --command-prefix
1189
        (Chromium issue 171553)
1190

    
1191
        Fixed pattern detection for replacing shifts by rotation.
1192
        (Chromium issue 2499)
1193

    
1194
        Performance and stability improvements on all platforms.
1195

    
1196

    
1197
2013-01-21: Version 3.16.7
1198

    
1199
        Removed <(library) usage from v8.gyp.
1200
        (Chromium issue 111541)
1201

    
1202
        Fixed out of bounds memory access in TestJSArrayForAllocationSiteInfo.
1203
        (Chromium issue 169928)
1204

    
1205
        Performance and stability improvements on all platforms.
1206

    
1207

    
1208
2013-01-18: Version 3.16.6
1209

    
1210
        Made the Isolate parameter mandatory in Locker and Unlocker classes.
1211
        (issue 2487)
1212

    
1213
        Avoid pointer underflow in CopyCharsUnsigned.
1214
        (issue 2493)
1215

    
1216
        Generate shim headers when using system v8.
1217
        (Chromium issue 165264)
1218

    
1219
        Fixed arguments materialization for inlined apply().
1220
        (issue 2489)
1221

    
1222
        Sync'ed laziness between BuildFunctionInfo and MakeFunctionInfo.
1223
        (Chromium issue 147497)
1224

    
1225
        Added sanity check to CodeFlusher::AddCandidate.
1226
        (Chromium issue 169209)
1227

    
1228
        Performance and stability improvements on all platforms.
1229

    
1230

    
1231
2013-01-15: Version 3.16.5
1232

    
1233
        Removed deprecated functions from V8's external API.
1234

    
1235
        Prepared API for WebKit use of Latin-1.
1236

    
1237
        Fixed V8 issue 2486.
1238

    
1239
        Fixed Chromium issue 169723.
1240

    
1241
        Performance and stability improvements on all platforms.
1242

    
1243

    
1244
2013-01-11: Version 3.16.4
1245

    
1246
        Fixed Chromium issues 168545 and 169209.
1247

    
1248
        Performance and stability improvements on all platforms.
1249

    
1250

    
1251
2013-01-09: Version 3.16.3
1252

    
1253
        Improved GC performance when moving parts of a FixedArray (issue 2452).
1254

    
1255
        Enabled readline on d8 while building a shared lib (issue 1781).
1256

    
1257
        Fixed missing exception check in typed array constructor
1258
        (Chromium issue 168545).
1259

    
1260
        Check for read-only-ness when preparing for array sort (issue 2419).
1261

    
1262
        Performance and stability improvements on all platforms.
1263

    
1264

    
1265
2013-01-04: Version 3.16.2
1266

    
1267
        Added Makefile options to build for the Raspberry Pi (armv7=0,
1268
        arm_fpu=vfp2).
1269

    
1270
        Performance and stability improvements on all platforms.
1271

    
1272

    
1273
2012-12-27: Version 3.16.1
1274

    
1275
        Fixed x64 MathMinMax for negative untagged int32 arguments.
1276
        (Chromium issue 164442)
1277

    
1278
        Fixed FloatingPointHelper::CheckSSE2OperandIsInt32.
1279
        (issue 2458)
1280

    
1281
        Performance and stability improvements on all platforms.
1282

    
1283

    
1284
2012-12-21: Version 3.16.0
1285

    
1286
        V8_Fatal now prints C++ stack trace in debug mode.
1287

    
1288
        Added HTML-based tick processor.
1289

    
1290
        Continued implementation of Object.observe (V8 issue 2409).
1291

    
1292
        Fixed V8 issues 2243, 2340, 2393, 2399, 2457.
1293

    
1294
        Fixed Chromium issues 125308, 165637, 166379, 166553.
1295

    
1296
        Performance and stability improvements on all platforms.
1297

    
1298

    
1299
2012-12-10: Version 3.15.11
1300

    
1301
        Define CAN_USE_VFP2/3_INSTRUCTIONS based on arm_neon and arm_fpu GYP
1302
        flags.
1303

    
1304
        Performance and stability improvements on all platforms.
1305

    
1306

    
1307
2012-12-07: Version 3.15.10
1308

    
1309
        Enabled optimisation of functions inside eval. (issue 2315)
1310

    
1311
        Fixed spec violations in methods of Number.prototype. (issue 2443)
1312

    
1313
        Added GCTracer metrics for a scavenger GC for DOM wrappers.
1314

    
1315
        Performance and stability improvements on all platforms.
1316

    
1317

    
1318
2012-12-06: Version 3.15.9
1319

    
1320
        Fixed candidate eviction in code flusher.
1321
        (Chromium issue 159140)
1322

    
1323
        Iterate through all arguments for side effects in Math.min/max.
1324
        (issue 2444)
1325

    
1326
        Fixed spec violations related to regexp.lastIndex
1327
        (issue 2437, issue 2438)
1328

    
1329
        Performance and stability improvements on all platforms.
1330

    
1331

    
1332
2012-12-04: Version 3.15.8
1333

    
1334
        Enforced stack allocation of TryCatch blocks.
1335
        (issue 2166,chromium:152389)
1336

    
1337
        Fixed external exceptions in external try-catch handlers.
1338
        (issue 2166)
1339

    
1340
        Activated incremental code flushing by default.
1341

    
1342
        Performance and stability improvements on all platforms.
1343

    
1344

    
1345
2012-11-30: Version 3.15.7
1346

    
1347
        Activated code aging by default.
1348

    
1349
        Included more information in --prof log.
1350

    
1351
        Removed eager sweeping for lazy swept spaces. Try to find in
1352
        SlowAllocateRaw a bounded number of times a big enough memory slot.
1353
        (issue 2194)
1354

    
1355
        Performance and stability improvements on all platforms.
1356

    
1357

    
1358
2012-11-26: Version 3.15.6
1359

    
1360
        Ensure double arrays are filled with holes when extended from
1361
        variations of empty arrays. (Chromium issue 162085)
1362

    
1363
        Performance and stability improvements on all platforms.
1364

    
1365

    
1366
2012-11-23: Version 3.15.5
1367

    
1368
        Fixed JSON.stringify for objects with interceptor handlers.
1369
        (Chromium issue 161028)
1370

    
1371
        Fixed corner case in x64 compare stubs. (issue 2416)
1372

    
1373
        Performance and stability improvements on all platforms.
1374

    
1375

    
1376
2012-11-16: Version 3.15.4
1377

    
1378
        Fixed Array.prototype.join evaluation order. (issue 2263)
1379

    
1380
        Perform CPU sampling by CPU sampling thread only iff processing thread
1381
        is not running. (issue 2364)
1382

    
1383
        When using an Object as a set in Object.getOwnPropertyNames, null out
1384
        the proto. (issue 2410)
1385

    
1386
        Disabled EXTRA_CHECKS in Release build.
1387

    
1388
        Heap explorer: Show representation of strings.
1389

    
1390
        Removed 'type' and 'arguments' properties from Error object.
1391
        (issue 2397)
1392

    
1393
        Added atomics implementation for ThreadSanitizer v2.
1394
        (Chromium issue 128314)
1395

    
1396
        Fixed LiveEdit crashes when object/array literal is added. (issue 2368)
1397

    
1398
        Performance and stability improvements on all platforms.
1399

    
1400

    
1401
2012-11-13: Version 3.15.3
1402

    
1403
        Changed sample shell to send non-JS output (e.g. errors) to stderr
1404
        instead of stdout.
1405

    
1406
        Correctly check for stack overflow even when interrupt is pending.
1407
        (issue 214)
1408

    
1409
        Collect stack trace on stack overflow. (issue 2394)
1410

    
1411
        Performance and stability improvements on all platforms.
1412

    
1413

    
1414
2012-11-12: Version 3.15.2
1415

    
1416
        Function::GetScriptOrigin supplies sourceURL when script name is
1417
        not available.  (Chromium issue 159413)
1418

    
1419
        Made formatting error message side-effect-free.  (issue 2398)
1420

    
1421
        Fixed length check in JSON.stringify.  (Chromium issue 160010)
1422

    
1423
        ES6: Added support for Set and Map clear method (issue 2400)
1424

    
1425
        Fixed slack tracking when instance prototype changes.
1426
        (Chromium issue 157019)
1427

    
1428
        Fixed disabling of code flusher while marking.  (Chromium issue 159140)
1429

    
1430
        Added a test case for object grouping in a scavenger GC (issue 2077)
1431

    
1432
        Support shared library build of Android for v8.
1433
        (Chromium issue 158821)
1434

    
1435
        ES6: Added support for size to Set and Map (issue 2395)
1436

    
1437
        Performance and stability improvements on all platforms.
1438

    
1439

    
1440
2012-11-06: Version 3.15.1
1441

    
1442
        Put incremental code flushing behind a flag. (Chromium issue 159140)
1443

    
1444
        Performance and stability improvements on all platforms.
1445

    
1446

    
1447
2012-10-31: Version 3.15.0
1448

    
1449
        Loosened aligned code target requirement on ARM (issue 2380)
1450

    
1451
        Fixed JSON.parse to treat leading zeros correctly.
1452
        (Chromium issue 158185)
1453

    
1454
        Performance and stability improvements on all platforms.
1455

    
1456

    
1457
2012-10-22: Version 3.14.5
1458

    
1459
        Killed off the SCons based build.
1460

    
1461
        Added a faster API for creating v8::Integer objects.
1462

    
1463
        Speeded up function deoptimization by avoiding quadratic pass over
1464
        optimized function list. (Chromium issue 155270)
1465

    
1466
        Always invoke the default Array.sort functions from builtin functions.
1467
        (issue 2372)
1468

    
1469
        Reverted recent CPU profiler changes because they broke --prof.
1470
        (issue 2364)
1471

    
1472
        Switched code flushing to use different JSFunction field.
1473
        (issue 1609)
1474

    
1475
        Performance and stability improvements on all platforms.
1476

    
1477

    
1478
2012-10-15: Version 3.14.4
1479

    
1480
        Allow evals for debugger even if they are prohibited in the debugee
1481
        context. (Chromium issue 154733)
1482

    
1483
        Enabled --verify-heap in release mode (issue 2120)
1484

    
1485
        Performance and stability improvements on all platforms.
1486

    
1487

    
1488
2012-10-11: Version 3.14.3
1489

    
1490
        Use native context to retrieve ErrorMessageForCodeGenerationFromStrings
1491
        (Chromium issue 155076).
1492

    
1493
        Bumped variable limit further to 2^17 (Chromium issue 151625).
1494

    
1495
        Performance and stability improvements on all platforms.
1496

    
1497

    
1498
2012-10-10: Version 3.14.2
1499

    
1500
        ARM: allowed VFP3 instructions when hardfloat is enabled.
1501
        (Chromium issue 152506)
1502

    
1503
        Fixed instance_descriptors() and PushStackTraceAndDie regressions.
1504
        (Chromium issue 151749)
1505

    
1506
        Made GDBJIT interface compile again. (issue 1804)
1507

    
1508
        Fixed Accessors::FunctionGetPrototype's proto chain traversal.
1509
        (Chromium issue 143967)
1510

    
1511
        Made sure that names of temporaries do not clash with real variables.
1512
        (issue 2322)
1513

    
1514
        Rejected local module declarations. (Chromium issue 150628)
1515

    
1516
        Rejected uses of lexical for-loop variable on the RHS. (issue 2322)
1517

    
1518
        Fixed slot recording of code target patches.
1519
        (Chromium issue 152615,chromium:144230)
1520

    
1521
        Changed the Android makefile to use GCC 4.6 instead of GCC 4.4.3.
1522

    
1523
        Performance and stability improvements on all platforms.
1524

    
1525

    
1526
2012-10-01: Version 3.14.1
1527

    
1528
        Don't set -m32 flag when compiling with Android ARM compiler.
1529
        (Chromium issue 143889)
1530

    
1531
        Restore the descriptor array before returning allocation failure.
1532
        (Chromium issue 151750)
1533

    
1534
        Lowered kMaxVirtualRegisters (v8 issue 2139, Chromium issues 123822 and
1535
        128252).
1536

    
1537
        Pull more recent gyp in 'make dependencies'.
1538

    
1539
        Made sure that the generic KeyedStoreIC changes length and element_kind
1540
        atomically (issue 2346).
1541

    
1542
        Bumped number of allowed variables per scope to 65535, to address GWT.
1543
        (Chromium issue 151625)
1544

    
1545
        Support sourceURL for dynamically inserted scripts (issue 2342).
1546

    
1547
        Performance and stability improvements on all platforms.
1548

    
1549

    
1550
2012-09-20: Version 3.14.0
1551

    
1552
        Fixed missing slot recording during clearing of CallICs.
1553
        (Chromium issue 144230)
1554

    
1555
        Fixed LBoundsCheck on x64 to handle (stack slot + constant) correctly.
1556
        (Chromium issue 150729)
1557

    
1558
        Fixed minus zero test. (Issue 2133)
1559

    
1560
        Fixed setting array length to zero for slow elements.
1561
        (Chromium issue 146910)
1562

    
1563
        Fixed lost arguments dropping in HLeaveInlined.
1564
        (Chromium issue 150545)
1565

    
1566
        Fixed casting error for receiver of interceptors.
1567
        (Chromium issue 149912)
1568

    
1569
        Throw a more descriptive exception when blocking 'eval' via CSP.
1570
        (Chromium issue 140191)
1571

    
1572
        Fixed debugger's eval when close to stack overflow. (issue 2318)
1573

    
1574
        Added checks to live edit. (issue 2297)
1575

    
1576
        Switched on code compaction on incremental GCs.
1577

    
1578
        Fixed caching of optimized code for OSR. (issue 2326)
1579

    
1580
        Not mask exception thrown by toString in String::UtfValue etc.
1581
        (issue 2317)
1582

    
1583
        Fixed API check for length of external arrays. (Chromium issue 148896)
1584

    
1585
        Ensure correct enumeration indices in the dict (Chromium issue 148376)
1586

    
1587
        Correctly initialize regexp global cache. (Chromium issue 148378)
1588

    
1589
        Fixed arguments object materialization during deopt. (issue 2261)
1590

    
1591
        Introduced new API to expose external string resource regardless of
1592
        encoding.
1593

    
1594
        Fixed CHECK failure in LCodeGen::DoWrapReceiver when
1595
        --deopt-every-n-times flag is present
1596
        (Chromium issue 148389)
1597

    
1598
        Fixed edge case of extension with NULL as source string.
1599
        (Chromium issue 144649)
1600

    
1601
        Fixed array index dehoisting. (Chromium issue 141395)
1602

    
1603
        Performance and stability improvements on all platforms.
1604

    
1605

    
1606
2012-09-11: Version 3.13.7
1607

    
1608
        Enable/disable LiveEdit using the (C++) debug API.
1609

    
1610
        Performance and stability improvements on all platforms.
1611

    
1612

    
1613
2012-09-06: Version 3.13.6
1614

    
1615
        Added validity checking to API functions and calls.
1616

    
1617
        Disabled accessor inlining (Chromium issue 134609).
1618

    
1619
        Fixed bug in Math.min/max in optimized code (Chromium issue 145961).
1620

    
1621
        Directly use %ObjectKeys in json stringify (Chromium issue 2312).
1622

    
1623
        Fixed VS2005 build (issue 2313).
1624

    
1625
        Activated fixed ES5 readonly semantics by default.
1626

    
1627
        Added hardfp flag to the Makefile.
1628

    
1629
        Performance and stability improvements on all platforms.
1630

    
1631

    
1632
2012-08-29: Version 3.13.5
1633

    
1634
        Release stack trace data after firing Error.stack accessor.
1635
        (issue 2308)
1636

    
1637
        Added a new API V8::SetJitCodeEventHandler to push code name and
1638
        location to users such as profilers.
1639

    
1640
        Allocate block-scoped global bindings to global context.
1641

    
1642
        Performance and stability improvements on all platforms.
1643

    
1644

    
1645
2012-08-28: Version 3.13.4
1646

    
1647
        Print reason for disabling optimization. Kill --trace-bailout flag.
1648

    
1649
        Provided option to disable full DEBUG build on Android.
1650

    
1651
        Introduced global contexts to represent lexical global scope(s).
1652

    
1653
        Fixed rounding in Uint8ClampedArray setter. (issue 2294)
1654

    
1655
        Performance and stability improvements on all platforms.
1656

    
1657

    
1658
2012-08-21: Version 3.13.3
1659

    
1660
        Performance and stability improvements on all platforms.
1661

    
1662

    
1663
2012-08-20: Version 3.13.2
1664

    
1665
        Performance and stability improvements on all platforms.
1666

    
1667

    
1668
2012-08-16: Version 3.13.1
1669

    
1670
        Performance and stability improvements on all platforms.
1671

    
1672

    
1673
2012-08-10: Version 3.13.0
1674

    
1675
        Added histograms for total allocated/live heap size, as well as
1676
        allocated size and percentage of total for map and cell space.
1677

    
1678
        Fixed parseInt's octal parsing behavior (ECMA-262 Annex E 15.1.2.2).
1679
        (issue 1645)
1680

    
1681
        Added checks for interceptors to negative lookup code in Crankshaft.
1682
        (Chromium issue 140473)
1683

    
1684
        Made incremental marking clear ICs and type feedback cells.
1685

    
1686
        Performance and stability improvements on all platforms.
1687

    
1688

    
1689
2012-08-01: Version 3.12.19
1690

    
1691
        Performance and stability improvements on all platforms.
1692

    
1693

    
1694
2012-07-30: Version 3.12.18
1695

    
1696
        Forced using bit-pattern for signed zero double. (issue 2239)
1697

    
1698
        Made sure double to int conversion is correct. (issue 2260)
1699

    
1700
        Performance and stability improvements on all platforms.
1701

    
1702

    
1703
2012-07-27: Version 3.12.17
1704

    
1705
        Always set the callee's context when calling a function from optimized
1706
        code.
1707
        (Chromium issue 138887)
1708

    
1709
        Fixed building with GCC 3.x
1710
        (issue 2016, 2017)
1711

    
1712
        Improved API calls that return empty handles.
1713
        (issue 2245)
1714

    
1715
        Performance and stability improvements on all platforms.
1716

    
1717

    
1718
2012-07-25: Version 3.12.16
1719

    
1720
        Performance and stability improvements on all platforms.
1721

    
1722

    
1723
2012-07-24: Version 3.12.15
1724

    
1725
        Added PRESERVE_ASCII_NULL option to String::WriteAscii.
1726
        (issue 2252)
1727

    
1728
        Added dependency to HLoadKeyed* instructions to prevent invalid
1729
        hoisting. (Chromium issue 137768)
1730

    
1731
        Enabled building d8 for Android on Mac.
1732

    
1733
        Interpret negative hexadecimal literals as NaN.
1734
        (issue 2240)
1735

    
1736
        Expose counters in javascript when using --track-gc-object-stats.
1737

    
1738
        Enabled building and testing V8 on Android IA.
1739

    
1740
        Added --trace-parse flag to parser.
1741

    
1742
        Performance and stability improvements on all platforms.
1743

    
1744

    
1745
2012-07-18: Version 3.12.14
1746

    
1747
        Deactivated optimization of packed arrays.
1748
        (Chromium issue 137768)
1749

    
1750
        Fixed broken accessor transition.
1751
        (Chromium issue 137689)
1752

    
1753
        Performance and stability improvements on all platforms.
1754

    
1755

    
1756
2012-07-17: Version 3.12.13
1757

    
1758
        Fixed missing tagging of stack value in finally block.
1759
        (Chromium issue 137496)
1760

    
1761
        Added more support for heap analysis.
1762

    
1763
        Performance and stability improvements on all platforms.
1764

    
1765

    
1766
2012-07-16: Version 3.12.12
1767

    
1768
        Added an option to the tickprocessor to specify the directory for lib
1769
        lookup.
1770

    
1771
        Fixed ICs for slow objects with native accessor (Chromium issue 137002).
1772

    
1773
        Fixed transcendental cache on ARM in optimized code (issue 2234).
1774

    
1775
        New heap inspection tools: counters for object sizes and counts,
1776
        histograms for external fragmentation.
1777

    
1778
        Incorporated constness into inferred interfaces (in preparation for
1779
        handling imports) (issue 1569).
1780

    
1781
        Performance and stability improvements on all platforms.
1782

    
1783

    
1784
2012-07-12: Version 3.12.11
1785

    
1786
        Renamed "mips" arch to "mipsel" in the GYP build.
1787

    
1788
        Fixed computation of call targets on prototypes in Crankshaft.
1789
        (Chromium issue 125148)
1790

    
1791
        Removed use of __lookupGetter__ when generating stack trace.
1792
        (issue 1591)
1793

    
1794
        Turned on ES 5.2 globals semantics by default.
1795
        (issue 1991, Chromium issue 80591)
1796

    
1797
        Synced preparser and parser wrt syntax error in switch..case.
1798
        (issue 2210)
1799

    
1800
        Fixed reporting of octal literals in strict mode when preparsing.
1801
        (issue 2220)
1802

    
1803
        Fixed inline constructors for Harmony Proxy prototypes.
1804
        (issue 2225)
1805

    
1806
        Performance and stability improvements on all platforms.
1807

    
1808

    
1809
2012-07-10: Version 3.12.10
1810

    
1811
        Re-enabled and fixed issue with array bounds check elimination
1812
        (Chromium issue 132114).
1813

    
1814
        Fixed Debug::Break crash. (Chromium issue 131642)
1815

    
1816
        Added optimizing compiler support for JavaScript getters.
1817

    
1818
        Performance and stability improvements on all platforms.
1819

    
1820

    
1821
2012-07-06: Version 3.12.9
1822

    
1823
        Correctly advance the scanner when scanning unicode regexp flag.
1824
        (Chromium issue 136084)
1825

    
1826
        Fixed unhandlified code calling Harmony Proxy traps.
1827
        (issue 2219)
1828

    
1829
        Performance and stability improvements on all platforms.
1830

    
1831

    
1832
2012-07-05: Version 3.12.8
1833

    
1834
        Implemented TypedArray.set and ArrayBuffer.slice in d8.
1835

    
1836
        Performance and stability improvements on all platforms.
1837

    
1838

    
1839
2012-07-03: Version 3.12.7
1840

    
1841
        Fixed lazy compilation for strict eval scopes.
1842
        (Chromium issue 135066)
1843

    
1844
        Made MACOSX_DEPLOYMENT_TARGET configurable in GYP.
1845
        (issue 2151)
1846

    
1847
        Report "hidden properties" in heap profiler for properties case.
1848
        (issue 2212)
1849

    
1850
        Activated optimization of packed arrays by default.
1851

    
1852
        Performance and stability improvements on all platforms.
1853

    
1854

    
1855
2012-06-29: Version 3.12.6
1856

    
1857
        Cleaned up hardfp ABI detection for ARM (V8 issue 2140).
1858

    
1859
        Extended TypedArray support in d8.
1860

    
1861

    
1862
2012-06-28: Version 3.12.5
1863

    
1864
        Fixed lazy parsing heuristics to respect outer scope.
1865
        (Chromium issue 135008)
1866

    
1867
        Allow using test-wrapper-gypbuild.py on Windows when no python
1868
        interpreter is registered.
1869

    
1870
        Performance and stability improvements on all platforms.
1871

    
1872

    
1873
2012-06-27: Version 3.12.4
1874

    
1875
        Removed -fomit-frame-pointer flag from Release builds to make
1876
        the stack walkable by TCMalloc (Chromium issue 133723).
1877

    
1878
        Ported r7868 (constant masking) to x64 (issue 1374).
1879

    
1880
        Expose more detailed memory statistics (issue 2201).
1881

    
1882
        Fixed Harmony Maps and WeakMaps for undefined values
1883
        (Chromium issue 132744).
1884

    
1885
        Correctly throw reference error in strict mode with ICs disabled
1886
        (issue 2119).
1887

    
1888
        Performance and stability improvements on all platforms.
1889

    
1890

    
1891
2012-06-25: Version 3.12.3
1892

    
1893
        Reverted r11835 'Unify promotion and allocation limit computation' due
1894
        to V8 Splay performance regression on Mac.  (Chromium issue 134183)
1895

    
1896
        Fixed sharing of literal boilerplates for optimized code.  (issue 2193)
1897

    
1898
        Performance and stability improvements on all platforms.
1899

    
1900

    
1901
2012-06-22: Version 3.12.2
1902

    
1903
        Made near-jump check more strict in LoadNamedFieldPolymorphic on
1904
        ia32/x64. (Chromium issue 134055)
1905

    
1906
        Fixed lazy sweeping heuristics to prevent old-space expansion.
1907
        (issue 2194)
1908

    
1909
        Performance and stability improvements on all platforms.
1910

    
1911

    
1912
2012-06-21: Version 3.12.1
1913

    
1914
        Performance and stability improvements on all platforms.
1915

    
1916

    
1917
2012-06-20: Version 3.12.0
1918

    
1919
        Fixed Chromium issues:
1920
        115100, 129628, 131994, 132727, 132741, 132742, 133211
1921

    
1922
        Fixed V8 issues:
1923
        915, 1914, 2034, 2087, 2094, 2134, 2156, 2166, 2172, 2177, 2179, 2185
1924

    
1925
        Added --extra-code flag to mksnapshot to load JS code into the VM
1926
        before creating the snapshot.
1927

    
1928
        Support 'restart call frame' command in the debugger.
1929

    
1930
        Performance and stability improvements on all platforms.
1931

    
1932

    
1933
2012-06-13: Version 3.11.10
1934

    
1935
        Implemented heap profiler memory usage reporting.
1936

    
1937
        Preserved error message during finally block in try..finally.
1938
        (Chromium issue 129171)
1939

    
1940
        Fixed EnsureCanContainElements to properly handle double values.
1941
        (issue 2170)
1942

    
1943
        Improved heuristics to keep objects in fast mode with inherited
1944
        constructors.
1945

    
1946
        Performance and stability improvements on all platforms.
1947

    
1948

    
1949
2012-06-06: Version 3.11.9
1950

    
1951
        Implemented ES5-conformant semantics for inherited setters and read-only
1952
        properties. Currently behind --es5_readonly flag, because it breaks
1953
        WebKit bindings.
1954

    
1955
        Exposed last seen heap object id via v8 public api.
1956

    
1957
        Performance and stability improvements on all platforms.
1958

    
1959

    
1960
2012-05-31: Version 3.11.8
1961

    
1962
        Avoid overdeep recursion in regexp where a guarded expression with a
1963
        minimum repetition count is inside another quantifier.
1964
        (Chromium issue 129926)
1965

    
1966
        Fixed missing write barrier in store field stub.
1967
        (issues 2143, 1465, Chromium issue 129355)
1968

    
1969
        Proxies: Fixed receiver for setters inherited from proxies.
1970
        Proxies: Fixed ToStringArray function so that it does not reject some
1971
        keys.
1972
        (issue 1543)
1973

    
1974
        Performance and stability improvements on all platforms.
1975

    
1976

    
1977
2012-05-29: Version 3.11.7
1978

    
1979
        Get better function names in stack traces.
1980

    
1981
        Performance and stability improvements on all platforms.
1982

    
1983

    
1984
2012-05-24: Version 3.11.6
1985

    
1986
        Fixed RegExp.prototype.toString for incompatible receivers
1987
        (issue 1981).
1988

    
1989
        Performance and stability improvements on all platforms.
1990

    
1991

    
1992
2012-05-23: Version 3.11.5
1993

    
1994
        Performance and stability improvements on all platforms.
1995

    
1996

    
1997
2012-05-22: Version 3.11.4
1998

    
1999
        Some cleanup to common.gypi. This fixes some host/target combinations
2000
        that weren't working in the Make build on Mac.
2001

    
2002
        Handle EINTR in socket functions and continue incomplete sends.
2003
        (issue 2098)
2004

    
2005
        Fixed python deprecations.  (issue 1391)
2006

    
2007
        Made socket send and receive more robust and return 0 on failure.
2008
        (Chromium issue 15719)
2009

    
2010
        Fixed GCC 4.7 (C++11) compilation.  (issue 2136)
2011

    
2012
        Set '-m32' option for host and target platforms
2013

    
2014
        Performance and stability improvements on all platforms.
2015

    
2016

    
2017
2012-05-18: Version 3.11.3
2018

    
2019
        Disable optimization for functions that have scopes that cannot be
2020
        reconstructed from the context chain. (issue 2071)
2021

    
2022
        Define V8_EXPORT to nothing for clients of v8. (Chromium issue 90078)
2023

    
2024
        Correctly check for native error objects.  (Chromium issue 2138)
2025

    
2026
        Performance and stability improvements on all platforms.
2027

    
2028

    
2029
2012-05-16: Version 3.11.2
2030

    
2031
        Revert r11496. (Chromium issue 128146)
2032

    
2033
        Implement map collection for incremental marking. (issue 1465)
2034

    
2035
        Add toString method to CallSite (which describes a frame of the
2036
        stack trace).
2037

    
2038

    
2039
2012-05-15: Version 3.11.1
2040

    
2041
        Added a readbuffer function to d8 that reads a file into an ArrayBuffer.
2042

    
2043
        Fix freebsd build. (V8 issue 2126)
2044

    
2045
        Performance and stability improvements on all platforms.
2046

    
2047

    
2048
2012-05-11: Version 3.11.0
2049

    
2050
        Fixed compose-discard crasher from r11524 (issue 2123).
2051

    
2052
        Activated new global semantics by default. Global variables can
2053
        now shadow properties of the global object (ES5.1 erratum).
2054

    
2055
        Properly set ElementsKind of empty FAST_DOUBLE_ELEMENTS arrays when
2056
        transitioning (Chromium issue 117409).
2057

    
2058
        Made Error.prototype.name writable again, as required by the spec and
2059
        the web (Chromium issue 69187).
2060

    
2061
        Implemented map collection with incremental marking (issue 1465).
2062

    
2063
        Regexp: Fixed overflow in min-match-length calculation
2064
        (Chromium issue 126412).
2065

    
2066
        MIPS: Fixed illegal instruction use on Loongson in code for
2067
        Math.random() (issue 2115).
2068

    
2069
        Fixed crash bug in VisitChoice (Chromium issue 126272).
2070

    
2071
        Fixed unsigned-Smi check in MappedArgumentsLookup
2072
        (Chromium issue 126414).
2073

    
2074
        Fixed LiveEdit for function with no locals (issue 825).
2075

    
2076
        Fixed register clobbering in LoadIC for interceptors
2077
        (Chromium issue 125988).
2078

    
2079
        Implemented clearing of CompareICs (issue 2102).
2080

    
2081
        Performance and stability improvements on all platforms.
2082

    
2083

    
2084
2012-05-03: Version 3.10.8
2085

    
2086
        Enabled MIPS cross-compilation.
2087

    
2088
        Ensured reload of elements pointer in StoreFastDoubleElement stub.
2089
        (Chromium issue 125515)
2090

    
2091
        Fixed corner cases in truncation behavior when storing to
2092
        TypedArrays. (issue 2110)
2093

    
2094
        Fixed failure to properly recognize and report out-of-memory
2095
        conditions when allocating code space pages. (Chromium issue
2096
        118625)
2097

    
2098
        Fixed idle notifications to perform a round of incremental GCs
2099
        after context disposal. (issue 2107)
2100

    
2101
        Fixed preparser for try statement. (issue 2109)
2102

    
2103
        Performance and stability improvements on all platforms.
2104

    
2105

    
2106
2012-04-30: Version 3.10.7
2107

    
2108
        Performance and stability improvements on all platforms.
2109

    
2110

    
2111
2012-04-26: Version 3.10.6
2112

    
2113
        Fixed some bugs in accessing details of the last regexp match.
2114

    
2115
        Fixed source property of empty RegExp objects. (issue 1982)
2116

    
2117
        Enabled inlining some V8 API functions.
2118

    
2119
        Performance and stability improvements on all platforms.
2120

    
2121

    
2122
2012-04-23: Version 3.10.5
2123

    
2124
        Put new global var semantics behind a flag until WebKit tests are
2125
        cleaned up.
2126

    
2127
        Enabled stepping into callback passed to builtins.
2128
        (Chromium issue 109564)
2129

    
2130
        Performance and stability improvements on all platforms.
2131

    
2132

    
2133
2012-04-19: Version 3.10.4
2134

    
2135
        Fixed issues when stressing compaction with WeakMaps.
2136

    
2137
        Fixed missing GVN flag for new-space promotion. (Chromium issue 123919)
2138

    
2139
        Simplify invocation sequence at monomorphic function invocation sites.
2140
        (issue 2079)
2141

    
2142
        Performance and stability improvements on all platforms.
2143

    
2144

    
2145
2012-04-17: Version 3.10.3
2146

    
2147
        Fixed several bugs in heap profiles (including issue 2078).
2148

    
2149
        Throw syntax errors on illegal escape sequences.
2150

    
2151
        Implemented rudimentary module linking (behind --harmony flag)
2152

    
2153
        Implemented ES5 erratum: Global declarations should shadow
2154
        inherited properties.
2155

    
2156
        Made handling of const more consistent when combined with 'eval'
2157
        and 'with'.
2158

    
2159
        Fixed V8 on MinGW-x64 (issue 2026).
2160

    
2161
        Performance and stability improvements on all platforms.
2162

    
2163

    
2164
2012-04-13: Version 3.10.2
2165

    
2166
        Fixed native ARM build (issues 1744, 539)
2167

    
2168
        Return LOOKUP variable instead of CONTEXT for non-context allocated
2169
        outer scope parameters (Chromium issue 119609).
2170

    
2171
        Fixed regular and ElementsKind transitions interfering with each other
2172
        (Chromium issue 122271).
2173

    
2174
        Improved performance of keyed loads/stores which have a HeapNumber
2175
        index (issues 1388, 1295).
2176

    
2177
        Fixed WeakMap processing for evacuation candidates (issue 2060).
2178

    
2179
        Bailout on possible direct eval calls (Chromium issue 122681).
2180

    
2181
        Do not assume that names of function expressions are context-allocated
2182
        (issue 2051).
2183

    
2184
        Performance and stability improvements on all platforms.
2185

    
2186

    
2187
2012-04-10: Version 3.10.1
2188

    
2189
        Fixed bug with arguments object in inlined functions (issue 2045).
2190

    
2191
        Fixed performance bug with lazy initialization (Chromium issue
2192
        118686).
2193

    
2194
        Added suppport for Mac OS X 64bit builds with GYP.
2195
        (Patch contributed by Filipe David Manana <fdmanana@gmail.com>)
2196

    
2197
        Fixed bug with hidden properties (issue 2034).
2198

    
2199
        Fixed a performance bug when reloading pages (Chromium issue 117767,
2200
        V8 issue 1902).
2201

    
2202
        Fixed bug when optimizing throw in top-level code (issue 2054).
2203

    
2204
        Fixed two bugs with array literals (issue 2055, Chromium issue 121407).
2205

    
2206
        Fixed bug with Math.min/Math.max with NaN inputs (issue 2056).
2207

    
2208
        Fixed a bug with the new runtime profiler (Chromium issue 121147).
2209

    
2210
        Fixed compilation of V8 using uClibc.
2211

    
2212
        Optimized boot-up memory use.
2213

    
2214
        Optimized regular expressions.
2215

    
2216

    
2217
2012-03-30: Version 3.10.0
2218

    
2219
        Fixed store IC writability check in strict mode
2220
        (Chromium issue 120099).
2221

    
2222
        Resynchronize timers if the Windows system time was changed.
2223
        (Chromium issue 119815)
2224

    
2225
        Removed "-mfloat-abi=hard" from host compiler cflags when building for
2226
        hardfp ARM
2227
        (https://code.google.com/p/chrome-os-partner/issues/detail?id=8539)
2228

    
2229
        Fixed edge case for case independent regexp character classes
2230
        (issue 2032).
2231

    
2232
        Reset function info counters after context disposal.
2233
        (Chromium issue 117767, V8 issue 1902)
2234

    
2235
        Fixed missing write barrier in CopyObjectToObjectElements.
2236
        (Chromium issue 119926)
2237

    
2238
        Fixed missing bounds check in HasElementImpl.
2239
        (Chromium issue 119925)
2240

    
2241
        Performance and stability improvements on all platforms.
2242

    
2243

    
2244
2012-03-23: Version 3.9.24
2245

    
2246
        Activated count-based profiler for ARM.
2247

    
2248
        Fixed use of proxies as f.prototype properties. (issue 2021)
2249

    
2250
        Enabled snapshots on MIPS.
2251

    
2252
        Performance and stability improvements on all platforms.
2253

    
2254

    
2255
2012-03-21: Version 3.9.23
2256

    
2257
        Use correct arguments adaptation environment when inlining function
2258
        containing arguments. (Issue 2014)
2259

    
2260
        Performance and stability improvements on all platforms.
2261

    
2262

    
2263
2012-03-20: Version 3.9.22
2264

    
2265
        Enabled count-based profiler by default.
2266

    
2267
        Implemented a hash based look-up to speed up address checks
2268
        in large object space (issue 853).
2269

    
2270
        Performance and stability improvements on all platforms.
2271

    
2272

    
2273
2012-03-19: Version 3.9.21
2274

    
2275
        Fixed push-to-trunk script (and re-push).
2276

    
2277
        Added API call that identifies strings that are guaranteed only to
2278
        contain ASCII characters.
2279

    
2280

    
2281
2012-03-19: Version 3.9.20
2282

    
2283
        Fixed declarations escaping global strict eval. (Issue 1624)
2284

    
2285
        Fixed wrapping of receiver for non-strict callbacks. (Issue 1973)
2286

    
2287
        Fixed function declarations overwriting read-only global properties.
2288
        (Chromium issue 115452)
2289

    
2290
        Fixed --use-strict flag in combination with --harmony[-scoping].
2291

    
2292
        Debugger: naive implementation of "step into Function.prototype.bind".
2293

    
2294
        Debugger: added ability to set script source from within OnBeforeCompile
2295

    
2296
        Added flag to always call DebugBreak on abort.
2297

    
2298
        Re-enabled constructor inlining and inline === comparison with boolean
2299
        constants. (Issue 2009)
2300

    
2301
        Don't use an explicit s0 in ClampDoubleToUint8. (Issue 2004)
2302

    
2303
        Performance and stability improvements on all platforms.
2304

    
2305

    
2306
2012-03-14: Version 3.9.19
2307

    
2308
        Ensure there is a smi check of the receiver for global load and call
2309
        ICs (Chromium issue 117794).
2310

    
2311
        Performance and stability improvements on all platforms.
2312

    
2313

    
2314
2012-03-13: Version 3.9.18
2315

    
2316
        Ensure consistency of Math.sqrt on Intel platforms.
2317

    
2318
        Remove static initializers in v8. (issue 1859)
2319

    
2320
        Add explicit dependency on v8_base in the GYP-based build.
2321

    
2322
        Performance and stability improvements on all platforms.
2323

    
2324

    
2325
2012-03-12: Version 3.9.17
2326

    
2327
        Fixed VFP detection through compiler defines. (issue 1996)
2328

    
2329
        Add Code-related fields to postmortem metadata.
2330

    
2331
        Performance and stability improvements on all platforms.
2332

    
2333

    
2334
2012-03-09: Version 3.9.16
2335

    
2336
        Added basic interface inference for modules (behind the --harmony flag).
2337

    
2338
        Added Object.is, Number.isFinite, Number.isNaN.
2339

    
2340
        Updated the Unicode tables to Unicode version 6.1.0.
2341

    
2342
        Performance and stability improvements on all platforms.
2343

    
2344

    
2345
2012-03-06: Version 3.9.15
2346

    
2347
        Fix the heap profiler crash caused by memory layout changes between
2348
        passes.
2349

    
2350
        Fix Error.prototype.toString to throw TypeError. (issue 1980)
2351

    
2352
        Fix double-rounding in strtod for MinGW. (issue 1062)
2353

    
2354
        Fix corrupted snapshot serializaton on ia32. (Chromium issue v8/1985)
2355

    
2356
        Performance and stability improvements on all platforms.
2357

    
2358

    
2359
2012-03-01: Version 3.9.14
2360

    
2361
        Performance and stability improvements on all platforms.
2362

    
2363

    
2364
2012-02-29: Version 3.9.13
2365

    
2366
        Added code kind check before preparing for OSR. (issue 1900, 115073)
2367

    
2368
        Fixed issue 1802: Pass zone explicitly to zone-allocation on x64 and
2369
        ARM.
2370

    
2371
        Ported string construct stub to x64. (issue 849)
2372

    
2373
        Performance and stability improvements on all platforms.
2374

    
2375

    
2376
2012-02-28: Version 3.9.12
2377

    
2378
        Fixed the negative lookup stub to handle deleted entries in a
2379
        dictionary. (issue 1964)
2380

    
2381
        Added a new API where the host can supply a callback function. The
2382
        callback function can resolve the location of a return address on stack
2383
        to the location where a return-address rewriting profiler stashed the
2384
        original return address.
2385

    
2386
        Fixed Chromium issue http://crbug.com/115646: When compiling for-in
2387
        pass correct context value to the increment instruction.
2388

    
2389
        Fixed issue 1853: Update breakpoints set with partial file name after
2390
        compile.
2391

    
2392

    
2393
2012-02-27: Version 3.9.11
2394

    
2395
        Made 'module' a context-sensitive keyword (V8 issue 1957).
2396

    
2397

    
2398
2012-02-24: Version 3.9.10
2399

    
2400
        Fixed V8 issues 1322, 1772 and 1969.
2401

    
2402
        Conformance improvements.
2403

    
2404
        Performance and stability improvements on all platforms.
2405

    
2406

    
2407
2012-02-23: Version 3.9.9
2408

    
2409
        Supported fast case for-in in Crankshaft.
2410

    
2411
        Sped up heap snapshot serialization and dominators construction.
2412

    
2413
        Randomized allocation addresses on windows. (Chromium issue 115151)
2414

    
2415
        Fixed compilation with MinGW-w64. (issue 1943)
2416

    
2417
        Fixed incorrect value of assignments to non-extensible properties.
2418

    
2419
        Fixed a crash bug in generated code on ia32.
2420

    
2421
        Performance and stability improvements on all platforms.
2422

    
2423

    
2424
2012-02-21: Version 3.9.8
2425

    
2426
        Fixed memory leak and missing #include in StartupDataDecompressor
2427
        (issue 1960).
2428

    
2429
        Renamed static methods to avoid shadowing virtual methods and fix Clang
2430
        C++11 compile error.
2431

    
2432
        Fixed sequence of element access in array builtins (issue 1790).
2433

    
2434
        Performance and stability improvements on all platforms.
2435

    
2436

    
2437
2012-02-16: Version 3.9.7
2438

    
2439
        Fixed V8 issues 1322, 1878, 1942, 1945 and Chromium issue 113924.
2440

    
2441
        Fixed GCC-4.7 warnings.
2442

    
2443
        Added Navier-Stokes benchmark.
2444

    
2445
        Performance and stability improvements on all platforms.
2446

    
2447

    
2448
2012-02-14: Version 3.9.6
2449

    
2450
        Fixed template-related linker error. (issue 1936)
2451

    
2452
        Allowed inlining of functions containing object literals.  (issue 1322)
2453

    
2454
        Added --call-graph-size option to tickprocessor.  (issue 1937)
2455

    
2456
        Heap Snapshot maximum size limit is too low for really big apps. At the
2457
        moment the limit is 256MB.  (Chromium issue 113015)
2458

    
2459
        Performance and stability improvements on all platforms.
2460

    
2461

    
2462
2012-02-09: Version 3.9.5
2463

    
2464
        Removed unused command line flags.
2465

    
2466
        Performance and stability improvements on all platforms.
2467

    
2468

    
2469
2012-02-08: Version 3.9.4
2470

    
2471
        Properly initialize element-transitioning array literals on ARM.
2472
        (issue 1930)
2473

    
2474
        Bug fixes on all platforms.
2475

    
2476

    
2477
2012-02-07: Version 3.9.3
2478

    
2479
        When rethrowing an exception, print the stack trace of its original
2480
        site instead of rethrow site (Chromium issue 60240).
2481

    
2482
        Increased size of small stacks from 32k to 64k to avoid hitting limits
2483
        in Chromium (Chromium issue 112843).
2484

    
2485

    
2486
2012-02-06: Version 3.9.2
2487

    
2488
        Added timestamp to --trace-gc output. (issue 1932)
2489

    
2490
        Heap profiler reports implicit references.
2491

    
2492
        Optionally export metadata with libv8 to enable debuggers to inspect V8
2493
        state.
2494

    
2495

    
2496
2012-02-02: Version 3.9.1
2497

    
2498
        Fixed memory leak in NativeObjectsExplorer::FindOrAddGroupInfo
2499
        (Chromium issue 112315).
2500

    
2501
        Fixed a crash in dev tools (Chromium issue 107996).
2502

    
2503
        Added 'dependencies_traverse': 1 to v8 GYP target.
2504

    
2505
        Performance and stability improvements on all platforms.
2506

    
2507

    
2508
2012-02-01: Version 3.9.0
2509

    
2510
        Reduced memory use immediately after starting V8.
2511

    
2512
        Stability fixes and performance improvements on all platforms.
2513

    
2514

    
2515
2012-01-26: Version 3.8.9
2516

    
2517
        Flush number string cache on GC (issue 1605).
2518

    
2519
        Provide access to function inferred name with
2520
	v8::Function::GetInferredName in V8 public API.
2521

    
2522
        Fix building with Clang (issue 1912).
2523

    
2524
        Reduce the space used by the stack for the profiling thread.
2525

    
2526
        Fix misleading documentation of v8::Locker (issue 542).
2527

    
2528
        Introduce readbinary function in d8 to read binary files.
2529

    
2530
        Performance and stability improvements on all platforms.
2531

    
2532

    
2533
2012-01-23: Version 3.8.8
2534

    
2535
        Limited number of loop iterations in Heap::ReserveSpace
2536
        (Chromium issue 99027).
2537

    
2538
        Fixed solaris build (VirtualMemory) (issue 1761).
2539

    
2540
        Fixed strict vs. non-strict handling of function proxies in
2541
        higher-order array and string methods.
2542

    
2543
        Enabled asynchronous remote debugging with d8 (issue 1691).
2544

    
2545
        Stability and performance improvements on all platforms.
2546

    
2547

    
2548
2012-01-19: Version 3.8.7
2549

    
2550
        Ensure that LRandom restores rsi after call to the C function on x64.
2551
        (Chromium issue http://crbug.com/110509)
2552

    
2553
        Fixing include issues on *bsd when building with scons.
2554
        (issue 1897)
2555

    
2556
        Provide a switch to specify -fno-strict-aliasing
2557
        (issue 1887)
2558

    
2559
        Move WIN32 define from standalone.gypi to common.gypi
2560
        (issue 1760)
2561

    
2562
        Fix corner-case in heap size estimation.
2563
        (issue 1893)
2564

    
2565
        Fix and enable NEW_NON_STRICT_FAST ArgumentsAccess stub on x64.
2566
        (issue 1903)
2567

    
2568
        Performance improvements and bug fixes.
2569

    
2570

    
2571
2012-01-16: Version 3.8.6
2572

    
2573
        Add primitive WebGL array support to d8.
2574

    
2575
        Improve heap size estimation (issue 1893).
2576

    
2577
        Hash collision DOS workaround extended from string keys
2578
        to numeric keys.
2579

    
2580
        Provide an API for iterating through all external strings referenced
2581
        from the JS heap.
2582

    
2583
        Adjust position recorded for call expressions. http://crbug.com/109195
2584

    
2585
        Fix GC crash related to instanceof. http://crbug.com/109448
2586

    
2587
        Performance improvements and bug fixes.
2588

    
2589

    
2590
2012-01-05: Version 3.8.5
2591

    
2592
        Fix broken test that assumes that no GC can clear the regexp cache (GC
2593
        can happen at any time due to Crankshaft).
2594

    
2595
        Fix handling of bogus receivers for Harmony collections. (issue 1884)
2596

    
2597
        Add netbsd support to gyp build.
2598

    
2599
        Determine page size at runtime on posix platforms.
2600

    
2601
        Ensure that store buffer filtering hash sets are cleared after
2602
        StoreBuffer::Filter.
2603

    
2604
        Randomize the seed used for string hashing.  This helps guard against
2605
        CPU-eating DOS attacks against node.js servers.  Based on code from
2606
        Bert Belder.  This version only solves the issue for those that compile
2607
        V8 themselves or those that do not use snapshots.  A snapshot-based
2608
        precompiled V8 will still have predictable string hash codes.
2609

    
2610
        Implement callback when script finishes running in V8 API.
2611

    
2612
        Improve performance of Math.min and Math.max for the case of two
2613
        arguments. (issue 1325)
2614

    
2615

    
2616
2012-01-02: Version 3.8.4
2617

    
2618
        Performance improvements for large Smi-only arrays.
2619

    
2620
        Fixed InternalArrays construction. (issue 1878)
2621

    
2622

    
2623
2011-12-27: Version 3.8.3
2624

    
2625
        Avoid embedding new space objects into code objects in the lithium gap
2626
        resolver. (chromium:108296)
2627

    
2628
        Bug fixes and performance optimizations on all platforms.
2629

    
2630

    
2631
2011-12-21: Version 3.8.2
2632

    
2633
        Add max optimization flag to v8 gyp build to ensure V8 is always built 
2634
        fully optimized in Chrome.
2635

    
2636
        MIPS: Bring MIPS to parity with other platforms.
2637

    
2638
        Optimizations and stability improvements on all platforms.
2639

    
2640

    
2641
2011-12-19: Version 3.8.1
2642

    
2643
        Fixed GCC 4.7 warnings. Patch from Tobias Burnus.
2644

    
2645
        Stability improvements on all platforms.
2646

    
2647

    
2648
2011-12-13: Version 3.8.0
2649

    
2650
        Fixed handling of arrays in DefineOwnProperty. (issue 1756)
2651

    
2652
        Sync parser and preparser on do-while and return statements. 
2653
        (issue 1856)
2654

    
2655
        Fixed another corner case for DefineOwnProperty on arrays (issue 1756).
2656

    
2657
        Stability and performance improvements on all platforms.
2658

    
2659

    
2660
2011-12-01: Version 3.7.12
2661

    
2662
        Increase tick interval for the android platform.
2663

    
2664
        Fix a bug in the register allocator. (chromium:105112)
2665

    
2666
        Fix handling of recompiling code. (chromium:105375, v8:1782)
2667

    
2668
        Start incremental marking on idle notification. (v8:1458)
2669

    
2670
        Build fixes for various platforms.
2671

    
2672
        Various performance improvements.
2673

    
2674

    
2675
2011-11-29: Version 3.7.11
2676

    
2677
        Fixed bug when generating padding to ensure space for lazy
2678
        deoptimization.
2679
        (issue 1846)
2680

    
2681
        Further reduced pause times due to GC.
2682

    
2683
        Stability and performance improvements on all platforms.
2684

    
2685

    
2686
2011-11-23: Version 3.7.10
2687

    
2688
        Set maximum length of FixedArray in terms of elements instead an
2689
        absolute number of bytes.
2690
        (Chromium issue 103103)
2691

    
2692
        Stability and performance improvements on all platforms.
2693

    
2694

    
2695
2011-11-21: Version 3.7.9
2696

    
2697
        Removed exit-time destructors.
2698

    
2699
        Stability and performance improvements on all platforms.
2700

    
2701

    
2702
2011-11-17: Version 3.7.8
2703

    
2704
        Removed hidden prototype from builtins, i.e., deleting an overridden
2705
        function on builtins will not make the original function reappear.
2706

    
2707
        Added NetBSD support for scons build.
2708

    
2709
        Performance improvements on all platforms.
2710

    
2711

    
2712
2011-11-14: Version 3.7.7
2713

    
2714
        Fix missing fast property accessors in heap snapshots.
2715
        (issue 1818)
2716

    
2717

    
2718
2011-11-11: Version 3.7.6
2719

    
2720
        Fixed filtering of store buffer for large object pages.
2721
        (issue 1817)
2722

    
2723
        Fixed generated hash function on all platforms.
2724
        (issue 1808)
2725

    
2726
        Fixed Heap::Shrink to ensure that it does not free pages that are
2727
        still in use.
2728
        (Chromium issue 100414)
2729

    
2730
        Stability and performance improvements on all platforms.
2731

    
2732

    
2733
2011-11-10: Version 3.7.5
2734

    
2735
        Added initial gyp infrastructure for MIPS.
2736

    
2737
        Implemented performance improvements to the incremental garbage
2738
        collector.
2739

    
2740
        Added optimizations and stability improvements on all platforms.
2741

    
2742

    
2743
2011-11-07: Version 3.7.4
2744

    
2745
        Proper "libv8.so.3.7.4" SONAME for Linux shared library (issue 1786).
2746

    
2747
        Fix Harmony sets and maps to allow null and undefined as keys
2748
        (still hidden behind --harmony flag) (issue 1622).
2749

    
2750
        Implement VirtualMemory on FreeBSD to fix build (issue 1807).
2751

    
2752
        Enable VFP instructions for Android.
2753

    
2754
        Fix error handling in Date.prototype.toISOString (issue 1792).
2755

    
2756
        Bug fixes and performance improvements for all platforms.
2757

    
2758
        Not officially supported but noteworthy: Crankshaft for MIPS :-)
2759

    
2760

    
2761
2011-10-28: Version 3.7.3
2762

    
2763
        Slight deoptimization as a workaround for issue with jslint: Issue
2764
        1789.
2765

    
2766

    
2767
2011-10-27: Version 3.7.2
2768

    
2769
        Fix bug in deoptimization.  Known issue with jslint: Issue 1789.
2770

    
2771

    
2772
2011-10-26: Version 3.7.1
2773

    
2774
        Achieved 33% speedup in debug-mode tests.
2775

    
2776
        Removed special casing of calls to RegExp test and exec methods with no
2777
        argument.  Now matches new JSC behaviour.  crbug.com/75740.
2778

    
2779
        Return the empty string on cyclic references in toString (ES5
2780
        conformance).
2781

    
2782
        Fixed bug triggered by JSBeautifier.  crbug.com/100409.
2783

    
2784
        Made Math.random state per-context instead of per-process (issue 864).
2785

    
2786
        Fixed stack traces to skip native functions.
2787

    
2788
        Make snapshots (new contexts) smaller and faster.
2789

    
2790
        Fixed handling of Function.apply for non-array arguments.
2791

    
2792
        Fixed evaluation order in defineProperties to match FireFox.
2793

    
2794
        Fixed handling of non-object receivers for array builtins,
2795
        crbug.com/100702.
2796

    
2797
        Multiple fixes to improve compliance with test262.
2798

    
2799
        Fixed compatibility with older Android releases.
2800

    
2801
        Fixed compilation with gcc-4.5.3.
2802

    
2803
        Improved performance of WriteUtf8, issue 1665.
2804

    
2805
        Made native syntax an early error in the preparser.
2806

    
2807
        Fixed issues 793 and 893 relating to Function.prototype.bind.
2808

    
2809
        Improved let, const, Set and Map support and other Harmony features
2810
        (behind the --harmony flag).
2811

    
2812
        Changed evaluation order for > and <= to match ES5 instead of ES3.
2813

    
2814
        Bug fixes and performance improvements on all platforms.
2815

    
2816

    
2817
2011-10-13: Version 3.7.0
2818

    
2819
        Fixed array handling for Object.defineOwnProperty (ES5 conformance).
2820

    
2821
        Fixed issue 1757 (string slices of external strings).
2822

    
2823
        Fixed issue 1759 (ARM).
2824

    
2825
        Added flag --noclever-optimizations to disable some things that
2826
        caused trouble in the past.
2827

    
2828
        Added flag --stress-compaction for testing.
2829

    
2830
        Added flag --harmony to activate all experimental Harmony features.
2831

    
2832

    
2833
2011-10-10: Version 3.6.6
2834

    
2835
        Added a GC pause visualization tool.
2836

    
2837
        Added presubmit=no and werror=no flags to Makefile.
2838

    
2839
        ES5/Test262 conformance improvements.
2840

    
2841
        Fixed compilation issues with GCC 4.5.x (issue 1743).
2842

    
2843
        Bug fixes and performance improvements on all platforms.
2844

    
2845

    
2846
2011-10-05: Version 3.6.5
2847

    
2848
        New incremental garbage collector.
2849

    
2850
        Removed the hard heap size limit (soft heap size limit is still
2851
        700/1400Mbytes by default).
2852

    
2853
        Implemented ES5 generic Array.prototype.toString (Issue 1361).
2854

    
2855
        V8 now allows surrogate pair codes in decodeURIComponent (Issue 1415).
2856

    
2857
        Fixed x64 RegExp start-of-string bug (Issues 1746, 1748).
2858

    
2859
        Fixed propertyIsEnumerable for numeric properties (Issue 1692).
2860

    
2861
        Fixed the MinGW and Windows 2000 builds.
2862

    
2863
        Fixed "Prototype chain is not searched if named property handler does
2864
        not set a property" (Issue 1636).
2865

    
2866
        Made the RegExp.prototype object be a RegExp object (Issue 1217).
2867

    
2868
        Disallowed future reserved words as labels in strict mode.
2869

    
2870
        Fixed string split to correctly coerce the separator to a string
2871
        (Issue 1711).
2872

    
2873
        API: Added an optional source length field to the Extension
2874
        constructor.
2875

    
2876
        API: Added Debug::DisableAgent to match existing Debug::EnableAgent
2877
        (Issue 1573).
2878

    
2879
        Added "native" target to Makefile for the benefit of Linux distros.
2880

    
2881
        Fixed: debugger stops stepping outside evaluate (Issue 1639).
2882

    
2883
        More work on ES-Harmony proxies.  Still hidden behind a flag.
2884

    
2885
        Bug fixes and performance improvements on all platforms.
2886

    
2887

    
2888
2011-09-15: Version 3.6.4
2889

    
2890
        Fixed d8's broken readline history.
2891

    
2892
        Removed the need for code delete events in CPU profiler (Issue 1466).
2893

    
2894
        Fixed debugger stepping next with trycatch recursion (Issue 1639).
2895

    
2896
        Fixing parallel execution in d8 (with -p) and some memory leaks.
2897

    
2898
        Support for precise stepping in functions compiled before debugging was
2899
        started (step 1).
2900

    
2901

    
2902
2011-09-13: Version 3.6.3
2903

    
2904
        Implemented better support of typed arrays in the d8 shell.
2905

    
2906
        Bug fixes and performance improvements on all platforms.
2907

    
2908

    
2909
2011-09-08: Version 3.6.2
2910

    
2911
        Added "dependencies" target to top-level Makefile.
2912

    
2913
        Added ability to turn profiler on/off in d8.
2914

    
2915
        Added "soname_version" parameter to common.gypi, v8.gyp, and Makefile.
2916

    
2917
        Fixed several crash bugs.
2918

    
2919

    
2920
2011-09-07: Version 3.6.1
2921

    
2922
        Fixed a bug in abrupt exit from with or catch inside finally.
2923

    
2924
        Fixed possible crash in FixedDoubleArray::Initialize() (Chromium
2925
        issue 95113).
2926

    
2927
        Fixed a bug in Page::GetRegionMaskForSpan (Chromium issue 94425).
2928

    
2929
        Fixed a few clang warnings (which -Werror treated as errors).
2930

    
2931
        Performance improvements on all platforms.
2932

    
2933

    
2934
2011-09-05: Version 3.6.0
2935

    
2936
        Fixed a bug when optimizing named function expression (issue 1647).
2937

    
2938
        Fixed a bug when optimizing f.call.apply (issue 1650).
2939

    
2940
        Made arguments and caller always be null on native functions
2941
        (issues 1548 and 1643).
2942

    
2943
        Fixed issue 1648 (cross-compiling x64 targeting ia32).
2944

    
2945
        Fixed issue 371 (d8 printing of strings containing \0).
2946

    
2947
        Fixed order of evaluation in arguments to parseInt (issue 1649).
2948

    
2949
        Fixed a problem with large heap snapshots in Chrome DevTools
2950
        (issue 1658, chromium issue 89268).
2951

    
2952
        Upped default maximum heap size from 512M to 700M.
2953

    
2954

    
2955
2011-08-31: Version 3.5.10
2956

    
2957
        Added dependency of v8_base on WinSocket2 Windows library in
2958
        the GYP-build.
2959

    
2960
        Various bugfixes.
2961

    
2962

    
2963
2011-08-29: Version 3.5.9
2964

    
2965
        Made FromPropertyDescriptor not trigger inherited setters.
2966

    
2967
        Fixed .gyp files to work on the ARM simulator.
2968

    
2969
        Fixed shared library build warnings for MSVS.
2970

    
2971

    
2972
2011-08-24: Version 3.5.8
2973

    
2974
        Added V8EXPORT attributes for v8::Array::CheckCast and
2975
        v8::Number::CheckCast.
2976

    
2977
        Made a slight API change enabling opting out from null termination
2978
        in String::Write*().
2979

    
2980
        Fixed arm build for gcc-4.6.
2981

    
2982

    
2983
2011-08-22: Version 3.5.7
2984

    
2985
        Make scanner handle invalid unicode escapes in identifiers correctly.
2986

    
2987
        Make regexp flag parsing stricter.
2988

    
2989
        Fix several memory leaks.
2990

    
2991

    
2992
2011-08-17: Version 3.5.6
2993

    
2994
        Fixed issue that could cause crashes when running with --heap-stats.
2995

    
2996
        Fixed compilation on Linux 2.6.9 and older.
2997

    
2998
        Fixed live-object-list to work with isolates.
2999

    
3000
        Fixed memory leaks in zones and isolates.
3001

    
3002
        Fixed a performance regression for TypedArrays on x64.
3003

    
3004
        Stability improvements on all platforms.
3005

    
3006

    
3007
2011-08-15: Version 3.5.5
3008

    
3009
        Fixed bugs involving negative zero and the optimizing compiler.
3010

    
3011
        Fixed optimized version of Function.apply(x, arguments). (issue 1592)
3012

    
3013
        Eliminated uses of deprecated ARM instructions.
3014

    
3015
        Sped up Math.floor by using SSE 4.1 roundsd instruction on ia32.
3016

    
3017
        Removed restriction on the size of disassembled code that is printed.
3018

    
3019

    
3020
2011-08-10: Version 3.5.4
3021

    
3022
        Added a preliminary implementation of ES Harmony weak maps.  Weak
3023
        maps can be enabled by the flag --harmony-weakmaps.
3024

    
3025
        Introduced a toplevel Makefile to support GYP-based building.  GYP
3026
        can be obtained from http://gyp.googlecode.com.
3027

    
3028
        Fixed a bug in the length property of functions created by
3029
        Function.prototype.bind.
3030

    
3031
        Reduced malloc heap allocation on process startup.
3032

    
3033
        Several important code generation bug fixes.
3034

    
3035
        Performance improvements on all platforms.
3036

    
3037

    
3038
2011-08-03: Version 3.5.3
3039

    
3040
        MIPS: Port of fix to ClassOf check from ARM.
3041
        Patch from Paul Lind <plind44@gmail.com>.
3042

    
3043
        Stopped using mprotect on Cygwin.
3044
        Avoided uninitialized member warning on gcc 4.3.4
3045
        Both patches by Bert Belder.
3046

    
3047
        Bug fixes and performance improvements on all platforms.
3048

    
3049

    
3050
2011-08-01: Version 3.5.2
3051

    
3052
        Performance improvements on all platforms.
3053

    
3054

    
3055
2011-07-28: Version 3.5.1
3056

    
3057
        Fixed setting the readonly flag on the prototype property using the
3058
        API call FunctionTemplate::SetPrototypeAttributes (issue 1539).
3059

    
3060
        Changed the tools/test.py script to use d8 instead of shell for
3061
        testing.
3062

    
3063
        Fixed crash in ToBooleanStub when GC happens during invocation.
3064

    
3065
        Enabled automatic unboxing of double arrays.
3066

    
3067
        Performance improvements on all platforms.
3068

    
3069

    
3070
2011-07-25: Version 3.5.0
3071

    
3072
        Implemented Object.prototype.{hasOwnProperty, propertyIsEnumerable} for
3073
        proxies.
3074

    
3075
        Removed logging to memory support.
3076

    
3077
        Bugfixes and performance work.
3078

    
3079

    
3080
2011-07-20: Version 3.4.14
3081

    
3082
        Fix the debugger for strict-mode functions. (Chromium issue 89236)
3083

    
3084
        Add GetPropertyAttribute method for Object in the API. (Patch by
3085
        Peter Varga)
3086

    
3087
        Fix -Wunused-but-set-variable for gcc-4.6 on x64. (Issue 1291)
3088

    
3089

    
3090
2011-07-18: Version 3.4.13
3091

    
3092
        Improved debugger support to allow inspection of optimized frames (issue
3093
        1140).
3094

    
3095
        Fixed a bug in prototype transitions cache clearing introduced by r8165.
3096

    
3097
        Fixed shortcutting bug in HInferRepresentation. Patch by Andy Wingo.
3098

    
3099
        Fixed a memory leak in sample/shell.cc (dispose semaphores).
3100

    
3101
        Simplified HClampToUint8. Patch by Andy Wingo.
3102

    
3103
        Exposed APIs for detecting boxed primitives, native errors. Patch by
3104
        Luke Zarko.
3105

    
3106
        Added map check for COW elements to crankshaft array handling code
3107
        (issue 1560).
3108

    
3109
        Sample shell and (a light version of) D8 links against a shared library
3110
        now.
3111

    
3112
        Fixed bug in array filter and reduce functions (issue 1559).
3113

    
3114
        Avoid TLS load in AstNode constructor.
3115

    
3116
        Introduced a random entropy source which can optionally be provided at
3117
        initialization. (Chromium issue 89462).
3118

    
3119

    
3120
2011-07-13: Version 3.4.12
3121

    
3122
        Added --prof profiling option to d8 shell.
3123

    
3124
        Fixed a bug where reading a directory in d8 shell hangs (issue 1533).
3125

    
3126
        Fixed a potential assertion failure in const declarations.
3127

    
3128
        Fixed an assertion failure in descriptor arrays (issue 1526).
3129

    
3130
        Enabled fast thread-local storage by default on supported platforms.
3131

    
3132
        Improved reporting of source position for global variable loads
3133
        (issue 1527).
3134

    
3135

    
3136
2011-07-11: Version 3.4.11
3137

    
3138
        Fixed MinGW32 build.
3139

    
3140
        Fixed a GC bug with RegExp code flushing.
3141

    
3142
        Implemented Object.defineProperty for proxies.
3143

    
3144
        Fixed a bug in for/in iteration of arguments objects (issue 1531).
3145

    
3146
        Added debugger support for inspecting optimized frames (issue 1140).
3147

    
3148
        Allowed JSObject::PreventExtensions to work for arguments objects.
3149

    
3150
        Bugfixes and performance work.
3151

    
3152

    
3153
2011-07-06: Version 3.4.10
3154

    
3155
        Fixed debugger not breaking on certain "if" statements (issue 1523).
3156

    
3157
        Fixed assertion failure in runtime profiler when running on IA32
3158
        without snapshot (issue 1522).
3159

    
3160
        Fixed ABI for API calls on IA32 (for clang compatibility).
3161

    
3162
        Introduced code flushing of RegExp code to free memory used by
3163
        RegExps sooner.
3164

    
3165
        Fixed linux-tick-processor built wrong version of v8 (issue 1532).
3166

    
3167
        Fixed assertion failure in v8::TryCache::StackTrace (issue 1529).
3168

    
3169
        Performance improvements on all platforms.
3170

    
3171

    
3172
2011-07-04: Version 3.4.9
3173

    
3174
        Added support for debugger inspection of locals in optimized frames
3175
        (issue 1140).
3176

    
3177
        Fixed SConstruct to pass correct defines to samples/preparser when
3178
        building with library=shared.
3179

    
3180
        Made date parser handle ES5 Date Time Strings correctly (issue 1498).
3181

    
3182
        Fixed a bug in Object.defineProperty on the arguments object.
3183

    
3184
        Performance improvements on all platforms.
3185

    
3186

    
3187
2011-06-29: Version 3.4.8
3188

    
3189
        Ensure 16-byte stack alignment on Solaris (issue 1505).
3190

    
3191
        Fix "illegal access" when calling parseInt with a radix
3192
        that is not a smi. (issue 1246).
3193

    
3194

    
3195
2011-06-27: Version 3.4.7
3196

    
3197
        Fixed 64-bit build on FreeBSD.
3198

    
3199
        Added API to set the property attributes for the prototype
3200
        property on functions created from FunctionTemplates.
3201

    
3202
        Bugfixes and performance work.
3203

    
3204

    
3205
2011-06-22: Version 3.4.6
3206

    
3207
        Lowered limit on code space for systems with low memory supply.
3208

    
3209
        Allowed compiling v8_shell with the 'host' toolset (issue 82437).
3210

    
3211
        Extended setBreakpoint API to accept partial script name (issue 1418).
3212

    
3213
        Made multi-line comments not count when deciding whether the '-->'
3214
        comment starter is first on a line. This matches Safari.
3215

    
3216
        Made handling of non-array recievers in Array length setter correct
3217
        (issue 1491).
3218

    
3219
        Added ability to heap profiler to iterate over snapshot's node
3220
        (issue 1481).
3221

    
3222

    
3223
2011-06-20: Version 3.4.5
3224

    
3225
        Fixed issues 794, 1097, 1215(partial), 1417, 1435, 1472, 1473,
3226
        1476, and 1477.
3227

    
3228
        Improved code generation for !0 and !1.
3229

    
3230
        Reduced memory usage for regular expressions with nested qualifiers.
3231
        (issue 1472)
3232

    
3233
        Fixed V8 to count line terminators in multi-line comments.
3234
        (Chromium issue 86431)
3235

    
3236
        Fixed disassembler=on option for release-mode builds. (issue 1473)
3237

    
3238
        Performance improvements on all platforms.
3239

    
3240

    
3241
2011-06-15: Version 3.4.4
3242

    
3243
        Added snapshot compression support and --stress-opt flag to d8.
3244

    
3245
        Improved performance of try/catch.
3246

    
3247
        Several GYP-related changes: Added support for building Xcode project
3248
        files. Make the ARM simulator build with GYP again. Generate Makefiles
3249
        for all architectures on Linux.
3250

    
3251
        Fixed Array.prototype.{reduce,reduceRight} to pass undefined as the
3252
        receiver for strict mode callbacks. (issue 1436)
3253

    
3254
        Fixed a bug where an array load was incorrectly hoisted by GVN.
3255

    
3256
        Handle 'undefined' correctly when === has been specialized for doubles.
3257
        (issue 1434)
3258

    
3259
        Corrected the limit of local variables in an optimized function from 64
3260
        to 63.
3261

    
3262
        Correctly set ReadOnly flag on indexed properties when using the API Set
3263
        method. (issue 1470)
3264

    
3265
        Give the correct error message when Object.isExtensible is called on a
3266
        non-object. (issue 1452)
3267

    
3268
        Added GetOwnPropertyNames method for Object in the API. Patch by Peter
3269
        Varga.
3270

    
3271
        Do not redefine properties unneccesarily in seal and freeze. (issue
3272
        1447)
3273

    
3274
        IsExecutionTerminating has an Isolate parameter now.
3275

    
3276
        Distinguish keyed loads with a symbol key from fast elements loads,
3277
        avoiding some useless deoptimizations. (issue 1471)
3278

    
3279

    
3280
2011-06-08: Version 3.4.3
3281

    
3282
        Clear the global thread table when an isolate is disposed
3283
        (issue 1433).
3284

    
3285
        Converted time zone name to UTF8 on Windows (issue 1290).
3286

    
3287
        Limited the number of arguments in a function call to 32766
3288
        (issue 1413).
3289

    
3290
        Compress sources of JS libraries in addition to the snapshot.
3291

    
3292
        Fixed a bug in Lithium environment iteration.
3293

    
3294
        Performance improvements on all platforms.
3295

    
3296

    
3297
2011-06-06: Version 3.4.2
3298

    
3299
        More work on ES-Harmony proxies.  Still hidden behind a flag.
3300

    
3301
        Fixed some crash bugs and improved performance.
3302

    
3303
        Fixed building with gdb debugging support.
3304

    
3305
        Do not install SIGPROF handler until it is needed.
3306

    
3307
        Added DateTimeFormat to i18n API.
3308

    
3309
        Fixed compilation on OpenBSD.
3310

    
3311
        Take the ulimit into account when sizing the heap.  OpenBSD users
3312
        may still have to increase the default ulimit to run heavy pages in
3313
        the browser.
3314

    
3315

    
3316
2011-06-01: Version 3.4.1
3317

    
3318
        Fixed JSON stringify issue with arrays.
3319

    
3320
        Changed calls to JS builtins to be passed undefined when called with
3321
        implicit receiver.
3322

    
3323
        Implemented the set trap for Harmony proxies. Proxies still need to
3324
        be enabled with the --harmony-proxies flag.
3325

    
3326

    
3327
2011-05-30: Version 3.4.0
3328

    
3329
        Changed calls to undefined property setters to not throw (issue 1355).
3330

    
3331
        Made RegExp objects not callable.
3332

    
3333
        Fixed issues on special case large JSON strings in new json parser
3334
        (issues http://crbug.com/83877 and http://crbug.com/84186).
3335

    
3336
        Performance improvements on all platforms.
3337

    
3338

    
3339
2011-05-25: Version 3.3.10
3340

    
3341
        Fixed calls of strict mode function with an implicit receiver.
3342

    
3343
        Fixed fast handling of arrays to properly deal with changes to the
3344
        Object prototype (issue 1403).
3345

    
3346
        Changed strict mode poison pill to be the same type error function
3347
        (issue 1387).
3348

    
3349
        Fixed a debug crash in arguments object handling (issue 1227).
3350

    
3351
        Fixed a bug in deoptimization on x64 (issue 1404).
3352

    
3353
        Performance improvements and bug fixes on all platforms.
3354

    
3355

    
3356
2011-05-23: Version 3.3.9
3357

    
3358
        Added DateTimeFormat class to experimental i18n API.
3359

    
3360
        Extended preparser to give early errors for some strict mode
3361
        restrictions.
3362

    
3363
        Removed legacy execScript function from V8.
3364

    
3365
        Extended isolate API with the ability to add embedder-specific
3366
        data to an isolate.
3367

    
3368
        Added basic support for polymorphic loads from JS and external
3369
        arrays.
3370

    
3371
        Fixed bug in handling of switch statements in the optimizing
3372
        compiler.
3373

    
3374

    
3375
2011-05-18: Version 3.3.8
3376

    
3377
        Added MarkIndependent to the persistent handle API.  Independent
3378
        handles are independent of all other persistent handles and can be
3379
        garbage collected more frequently.
3380

    
3381
        Implemented the get trap for Harmony proxies.  Proxies are enabled
3382
        with the --harmony-proxies flag.
3383

    
3384
        Performance improvements and bug fixes on all platforms.
3385

    
3386

    
3387
2011-05-16: Version 3.3.7
3388

    
3389
        Updated MIPS infrastructure files.
3390

    
3391
        Performance improvements and bug fixes on all platforms.
3392

    
3393

    
3394
2011-05-11: Version 3.3.6
3395

    
3396
        Updated MIPS infrastructure files.
3397

    
3398
        Added method IsCallable for Object to the API.
3399
        Patch by Peter Varga.
3400

    
3401

    
3402
2011-05-09: Version 3.3.5
3403

    
3404
        Fixed build on FreeBSD. Patch by Akinori MUSHA.
3405

    
3406
        Added check that receiver is JSObject on API calls.
3407

    
3408
        Implemented CallAsConstructor method for Object in the API (Issue 1348).
3409
        Patch by Peter Varga.
3410

    
3411
        Added CallAsFunction method to the Object class in the API (Issue 1336).
3412
        Patch by Peter Varga.
3413

    
3414
        Added per-isolate locking and unlocking.
3415

    
3416
        Fixed bug in x64 >>> operator (Issue 1359).
3417

    
3418

    
3419
2011-05-04: Version 3.3.4
3420

    
3421
        Implemented API to disallow code generation from strings for a context
3422
        (issue 1258).
3423

    
3424
        Fixed bug with whitespaces in parseInt (issue 955).
3425

    
3426
        Fixed bug with == comparison of Date objects (issue 1356).
3427

    
3428
        Added GYP variables for ARM code generation:
3429
        v8_can_use_vfp_instructions, v8_can_use_unaligned_accesses
3430
        and v8_use_arm_eabi_hardfloat.
3431

    
3432

    
3433
2011-05-02: Version 3.3.3
3434

    
3435
        Added support for generating Visual Studio solution and project files
3436
        using GYP.
3437

    
3438
        Implemented support for ARM EABI calling convention variation where
3439
        floating-point arguments are passed in registers (hardfloat).
3440

    
3441
        Added Object::HasOwnProperty() to the API.
3442

    
3443
        Added support for compressing startup data to reduce binary size. This
3444
        includes build time support and an API for the embedder to decompress
3445
        the startup data before initializing V8.
3446

    
3447
        Reduced the profiling hooks overhead from >400% to 25% when using
3448
        ll_prof.
3449

    
3450
        Performance improvements and bug fixes on all platforms.
3451

    
3452

    
3453
2011-04-27: Version 3.3.2
3454

    
3455
        Fixed crash bug on ARM with no VFP3 hardware.
3456

    
3457
        Fixed compilation of V8 without debugger support.
3458

    
3459
        Improved performance on JSLint.
3460

    
3461
        Added support Float64 WebGL arrays.
3462

    
3463
        Fixed crash bug in regexp replace.
3464

    
3465

    
3466
2011-04-20: Version 3.3.1
3467

    
3468
        Reduced V8 binary size by removing virtual functions from hydrogen.
3469

    
3470
        Fixed crash bug on x64.
3471

    
3472
        Performance improvements on ARM and IA32.
3473

    
3474

    
3475
2011-04-18: Version 3.3.0
3476

    
3477
        Fixed bug in floating point rounding in Crankshaft on ARM
3478
        (issue 958)
3479

    
3480
        Fixed a number of issues with running without VFPv3 support on ARM
3481
        (issue 1315)
3482

    
3483
        Introduced v8Locale.Collator, a partial implementation of Collator
3484
        per last ECMAScript meeting + mailing list.
3485

    
3486
        Minor performance improvements and bug fixes.
3487

    
3488

    
3489
2011-04-13: Version 3.2.10
3490

    
3491
        Fixed bug in external float arrays on ARM (issue 1323).
3492

    
3493
        Minor performance improvements and bug fixes.
3494

    
3495

    
3496
2011-04-11: Version 3.2.9
3497

    
3498
        Removed support for ABI prior to EABI on ARM.
3499

    
3500
        Fixed multiple crash bugs.
3501

    
3502
        Added GCMole to the repository, a simple static analysis tool that
3503
        searches for GC-unsafe evaluation order dependent callsites.
3504

    
3505
        Made preparser API be exported in shared libraries.
3506

    
3507
        Fixed multiple issues in EcmaScript 5 strict mode implementation.
3508

    
3509
        Fixed mutable __proto__ property if object is not extensible
3510
        (Issue 1309).
3511

    
3512
        Fixed auto suspension of the sampler thread.
3513

    
3514

    
3515
2011-04-06: Version 3.2.8
3516

    
3517
        Exposed WebGL typed array constructors in the shell sample.
3518

    
3519
        Performance improvements on all platforms.
3520

    
3521

    
3522
2011-04-04: Version 3.2.7
3523

    
3524
        Disabled the original 'classic' V8 code generator.  Crankshaft is
3525
        now the default on all platforms.
3526

    
3527
        Changed the heap profiler to use more descriptive names.
3528

    
3529
        Performance and stability improvements to isolates on all platforms.
3530

    
3531

    
3532
2011-03-30: Version 3.2.6
3533

    
3534
        Fixed xcode build warning in shell.cc (out of order initialization).
3535

    
3536
        Fixed null-pointer dereference in the compiler when running without
3537
        SSE3 support (Chromium issue 77654).
3538

    
3539
        Fixed x64 compilation error due to some dead code. (Issue 1286)
3540

    
3541
        Introduced scons target to build the preparser stand-alone example.
3542

    
3543
        Made FreeBSD build and pass all tests.
3544

    
3545

    
3546
2011-03-28: Version 3.2.5
3547

    
3548
        Fixed build with Irregexp interpreter (issue 1266).
3549

    
3550
        Added Crankshaft support for external arrays.
3551

    
3552
        Fixed two potential crash bugs.
3553

    
3554

    
3555
2011-03-23: Version 3.2.4
3556

    
3557
        Added isolates which allows several V8 instances in the same process.
3558
        This is controlled through the new Isolate class in the API.
3559

    
3560
        Implemented more of EcmaScript 5 strict mode.
3561

    
3562
        Reduced the time it takes to make detailed heap snapshot.
3563

    
3564
        Added a number of commands to the ARM simulator and enhanced the ARM
3565
        disassembler.
3566

    
3567

    
3568
2011-03-17: Version 3.2.3
3569

    
3570
        Fixed a number of crash bugs.
3571

    
3572
        Fixed Array::New(length) to return an array with a length (issue 1256).
3573

    
3574
        Fixed FreeBSD build.
3575

    
3576
        Changed __defineGetter__ to not throw (matching the behavior of Safari).
3577

    
3578
        Implemented more of EcmaScript 5 strict mode.
3579

    
3580
        Improved Crankshaft performance on all platforms.
3581

    
3582

    
3583
2011-03-14: Version 3.2.2
3584

    
3585
        Fixed a number of crash and correctness bugs.
3586

    
3587
        Improved Crankshaft performance on all platforms.
3588

    
3589
        Fixed Crankshaft on Solaris/Illumos.
3590

    
3591

    
3592
2011-03-10: Version 3.2.1
3593

    
3594
        Fixed a number of crash bugs.
3595

    
3596
        Improved Crankshaft for x64 and ARM.
3597

    
3598
        Implemented more of EcmaScript 5 strict mode.
3599

    
3600

    
3601
2011-03-07: Version 3.2.0
3602

    
3603
        Fixed a number of crash bugs.
3604

    
3605
        Turned on Crankshaft by default on x64 and ARM.
3606

    
3607
        Improved Crankshaft for x64 and ARM.
3608

    
3609
        Implemented more of EcmaScript 5 strict mode.
3610

    
3611

    
3612
2011-03-02: Version 3.1.8
3613

    
3614
        Fixed a number of crash bugs.
3615

    
3616
        Improved Crankshaft for x64 and ARM.
3617

    
3618
        Implemented more of EcmaScript 5 strict mode.
3619

    
3620
        Fixed issue with unaligned reads and writes on ARM.
3621

    
3622
        Improved heap profiler support.
3623

    
3624

    
3625
2011-02-28: Version 3.1.7
3626

    
3627
        Fixed a number of crash bugs.
3628

    
3629
        Improved Crankshaft for x64 and ARM.
3630

    
3631
        Fixed implementation of indexOf/lastIndexOf for sparse
3632
        arrays (http://crbug.com/73940).
3633

    
3634
        Fixed bug in map space compaction (http://crbug.com/59688).
3635

    
3636
        Added support for direct getter accessors calls on ARM.
3637

    
3638

    
3639
2011-02-24: Version 3.1.6
3640

    
3641
        Fixed a number of crash bugs.
3642

    
3643
        Added support for Cygwin (issue 64).
3644

    
3645
        Improved Crankshaft for x64 and ARM.
3646

    
3647
        Added Crankshaft support for stores to pixel arrays.
3648

    
3649
        Fixed issue in CPU profiler with Crankshaft.
3650

    
3651

    
3652
2011-02-16: Version 3.1.5
3653

    
3654
        Change RegExp parsing to disallow /(*)/.
3655

    
3656
        Added GDB JIT support for ARM.
3657

    
3658
        Fixed several crash bugs.
3659

    
3660
        Performance improvements on the IA32 platform.
3661

    
3662

    
3663
2011-02-14: Version 3.1.4
3664

    
3665
        Fixed incorrect compare of prototypes of the global object (issue
3666
        1082).
3667

    
3668
        Fixed a bug in optimizing calls to global functions (issue 1106).
3669

    
3670
        Made optimized Function.prototype.apply safe for non-JSObject first
3671
        arguments (issue 1128).
3672

    
3673
        Fixed an error related to element accessors on Object.prototype and
3674
        parser errors (issue 1130).
3675

    
3676
        Fixed a bug in sorting an array with large array indices (issue 1131).
3677

    
3678
        Properly treat exceptions thrown while compiling (issue 1132).
3679

    
3680
        Fixed bug in register requirements for function.apply (issue 1133).
3681

    
3682
        Fixed a representation change bug in the Hydrogen graph construction
3683
        (issue 1134).
3684

    
3685
        Fixed the semantics of delete on parameters (issue 1136).
3686

    
3687
        Fixed a optimizer bug related to moving instructions with side effects
3688
        (issue 1138).
3689

    
3690
        Added support for the global object in Object.keys (issue 1150).
3691

    
3692
        Fixed incorrect value for Math.LOG10E
3693
        (issue http://code.google.com/p/chromium/issues/detail?id=72555)
3694

    
3695
        Performance improvements on the IA32 platform.
3696

    
3697
        Implement assignment to undefined reference in ES5 Strict Mode.
3698

    
3699

    
3700
2011-02-09: Version 3.1.3
3701

    
3702
        Fixed a bug triggered by functions with huge numbers of declared
3703
        arguments.
3704

    
3705
        Fixed zap value aliasing a real object - debug mode only (issue 866).
3706

    
3707
        Fixed issue where Array.prototype.__proto__ had been set to null
3708
        (issue 1121).
3709

    
3710
        Fixed stability bugs in Crankshaft for x86.
3711

    
3712

    
3713
2011-02-07: Version 3.1.2
3714

    
3715
        Added better security checks when accessing properties via
3716
        Object.getOwnPropertyDescriptor.
3717

    
3718
        Fixed bug in Object.defineProperty and related access bugs (issues
3719
        992, 1083 and 1092).
3720

    
3721
        Added LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to ease
3722
        copyright notice generation for embedders.
3723

    
3724

    
3725
2011-02-02: Version 3.1.1
3726

    
3727
        Perform security checks before fetching the value in
3728
        Object.getOwnPropertyDescriptor.
3729

    
3730
        Fixed a bug in Array.prototype.splice triggered by passing no
3731
        arguments.
3732

    
3733
        Fixed bugs in -0 in arithmetic and in Math.pow.
3734

    
3735
        Fixed bugs in the register allocator and in switching from optimized
3736
        to unoptimized code.
3737

    
3738

    
3739
2011-01-31: Version 3.1.0
3740

    
3741
        Performance improvements on all platforms.
3742

    
3743

    
3744
2011-01-28: Version 3.0.12
3745

    
3746
        Added support for strict mode parameter and object property
3747
        validation.
3748

    
3749
        Fixed a couple of crash bugs.
3750

    
3751

    
3752
2011-01-25: Version 3.0.11
3753

    
3754
        Fixed a bug in deletion of lookup slots that could cause global
3755
        variables to be accidentally deleted (http://crbug.com/70066).
3756

    
3757
        Added support for strict mode octal literal verification.
3758

    
3759
        Fixed a couple of crash bugs (issues 1070 and 1071).
3760

    
3761

    
3762
2011-01-24: Version 3.0.10
3763

    
3764
        Fixed External::Wrap for 64-bit addresses (issue 1037).
3765

    
3766
        Fixed incorrect .arguments variable proxy handling in the full
3767
        code generator (issue 1060).
3768

    
3769
        Introduced partial strict mode support.
3770

    
3771
        Changed formatting of recursive error messages to match Firefox and
3772
        Safari (issue http://crbug.com/70334).
3773

    
3774
        Fixed incorrect rounding for float-to-integer conversions for external
3775
        array types, which implement the Typed Array spec
3776
        (issue http://crbug.com/50972).
3777

    
3778
        Performance improvements on the IA32 platform.
3779

    
3780

    
3781
2011-01-19: Version 3.0.9
3782

    
3783
        Added basic GDB JIT Interface integration.
3784

    
3785
        Make invalid break/continue statements a syntax error instead of a
3786
        runtime error.
3787

    
3788

    
3789
2011-01-17: Version 3.0.8
3790

    
3791
        Exposed heap size limit to the heap statistics gathered by
3792
        the GetHeapStatistics API.
3793

    
3794
        Wrapped external pointers more carefully (issue 1037).
3795

    
3796
        Hardened the implementation of error objects to avoid setters
3797
        intercepting the properties set then throwing an error.
3798

    
3799
        Avoided trashing the FPSCR when calculating Math.floor on ARM.
3800

    
3801
        Performance improvements on the IA32 platform.
3802

    
3803

    
3804
2011-01-10: Version 3.0.7
3805

    
3806
        Stopped calling inherited setters when creating object literals
3807
        (issue 1015).
3808

    
3809
        Changed interpretation of malformed \c? escapes in RegExp to match
3810
        JSC.
3811

    
3812
        Enhanced the command-line debugger interface and fixed some minor
3813
        bugs in the debugger.
3814

    
3815
        Performance improvements on the IA32 platform.
3816

    
3817

    
3818
2011-01-05: Version 3.0.6
3819

    
3820
        Allowed getters and setters on JSArray elements (issue 900).
3821

    
3822
        Stopped JSON objects from hitting inherited setters (part of
3823
        issue 1015).
3824

    
3825
        Allowed numbers and strings as names of getters/setters in object
3826
        initializer (issue 820).
3827

    
3828
        Added use_system_v8 option to gyp (off by default), to make it easier
3829
        for Linux distributions to ship with system-provided V8 library.
3830

    
3831
        Exported external array data accessors (issue 1016).
3832

    
3833
        Added labelled thread names to help with debugging (on Linux).
3834

    
3835

    
3836
2011-01-03: Version 3.0.5
3837

    
3838
        Fixed a couple of cast errors for gcc-3.4.3.
3839

    
3840
        Performance improvements in GC and IA32 code generator.
3841

    
3842

    
3843
2010-12-21: Version 3.0.4
3844

    
3845
        Added Date::ResetCache() to the API so that the cached values in the
3846
        Date object can be reset to allow live DST / timezone changes.
3847

    
3848
        Extended existing support for printing (while debugging) the contents
3849
        of objects.  Added support for printing objects from release builds.
3850

    
3851
        Fixed V8 issues 989, 1006, and 1007.
3852

    
3853

    
3854
2010-12-17: Version 3.0.3
3855

    
3856
        Reapplied all changes for version 3.0.1.
3857

    
3858
        Improved debugger protocol for remote debugging.
3859

    
3860
        Added experimental support for using gyp to generate build files
3861
        for V8.
3862

    
3863
        Fixed implementation of String::Write in the API (issue 975).
3864

    
3865

    
3866
2010-12-15: Version 3.0.2
3867

    
3868
        Revert version 3.0.1 and patch 3.0.1.1.
3869

    
3870

    
3871
2010-12-13: Version 3.0.1
3872

    
3873
        Added support for an experimental internationalization API as an
3874
        extension.  This extension is disabled by default but can be enabled
3875
        when building V8.  The ECMAScript internationalization strawman is
3876
        at http://wiki.ecmascript.org/doku.php?id=strawman:i18n_api.
3877

    
3878
        Made RegExp character class parsing stricter.  This mirrors a change
3879
        to RegExp parsing in WebKit.
3880

    
3881
        Fixed a bug in Object.defineProperty when used to change attributes
3882
        of an existing property.  It incorrectly set the property value to
3883
        undefined (issue 965).
3884

    
3885
        Fixed several different compilation failures on various platforms
3886
        caused by the 3.0.0 release.
3887

    
3888
        Optimized Math.pow so it can work on unboxed doubles.
3889

    
3890
        Sped up quoting of JSON strings by removing one traversal of the
3891
        string.
3892

    
3893

    
3894
2010-12-07: Version 3.0.0
3895

    
3896
        Improved performance by (partially) addressing issue 957 on
3897
        IA-32. Still needs more work for the other architectures.
3898

    
3899

    
3900
2010-11-29: Version 2.5.9
3901

    
3902
        Fixed crashes during GC caused by partially initialize heap
3903
        objects.
3904

    
3905
        Fixed bug in process sample that caused memory leaks.
3906

    
3907
        Improved performance on ARM by implementing missing stubs and
3908
        inlining.
3909

    
3910
        Improved heap profiler support.
3911

    
3912
        Added separate seeding on Windows of the random number generator
3913
        used internally by the compiler (issue 936).
3914

    
3915
        Exposed API for getting the name of the function used to construct
3916
        an object.
3917

    
3918
        Fixed date parser to handle one and two digit millisecond
3919
        values (issue 944).
3920

    
3921
        Fixed number parsing to disallow space between sign and
3922
        digits (issue 946).
3923

    
3924

    
3925
2010-11-23: Version 2.5.8
3926

    
3927
        Removed dependency on Gay's dtoa.
3928

    
3929
        Improved heap profiler precision and speed.
3930

    
3931
        Reduced overhead of callback invocations on ARM.
3932

    
3933

    
3934
2010-11-18: Version 2.5.7
3935

    
3936
        Fixed obscure evaluation order bug (issue 931).
3937

    
3938
        Split the random number state between JavaScript and the private API.
3939

    
3940
        Fixed performance bug causing GCs when generating stack traces on
3941
        code from very large scripts.
3942

    
3943
        Fixed bug in parser that allowed (foo):42 as a labelled statement
3944
        (issue 918).
3945

    
3946
        Provide more accurate results about used heap size via
3947
        GetHeapStatistics.
3948

    
3949
        Allow build-time customization of the max semispace size.
3950

    
3951
        Made String.prototype.split honor limit when separator is empty
3952
        (issue 929).
3953

    
3954
        Added missing failure check after expecting an identifier in
3955
        preparser (Chromium issue 62639).
3956

    
3957

    
3958
2010-11-10: Version 2.5.6
3959

    
3960
        Added support for VFP rounding modes to the ARM simulator.
3961

    
3962
        Fixed multiplication overflow bug (issue 927).
3963

    
3964
        Added a limit for the amount of executable memory (issue 925).
3965

    
3966

    
3967
2010-11-08: Version 2.5.5
3968

    
3969
        Added more aggressive GC of external objects in near out-of-memory
3970
        situations.
3971

    
3972
        Fixed a bug that gave the incorrect result for String.split called
3973
        on the empty string (issue 924).
3974

    
3975

    
3976
2010-11-03: Version 2.5.4
3977

    
3978
        Improved V8 VFPv3 runtime detection to address issue 914.
3979

    
3980

    
3981
2010-11-01: Version 2.5.3
3982

    
3983
        Fixed a bug that prevents constants from overwriting function values
3984
        in object literals (issue 907).
3985

    
3986
        Fixed a bug with reporting of impossible nested calls of DOM functions
3987
        (issue http://crbug.com/60753).
3988

    
3989

    
3990
2010-10-27: Version 2.5.2
3991

    
3992
        Improved sampler resolution on Linux.
3993

    
3994
        Allowed forcing the use of a simulator from the build script
3995
        independently of the host architecture.
3996

    
3997
        Fixed FreeBSD port (issue 912).
3998

    
3999
        Made windows-tick-processor respect D8_PATH.
4000

    
4001
        Implemented --noinline-new flag fully on IA32, X64 and ARM platforms.
4002

    
4003

    
4004
2010-10-20: Version 2.5.1
4005

    
4006
        Fixed bug causing spurious out of memory exceptions
4007
        (issue http://crbug.com/54580).
4008

    
4009
        Fixed compilation error on Solaris platform (issue 901).
4010

    
4011
        Fixed error in strtod (string to floating point number conversion)
4012
        due to glibc's use of 80-bit floats in the FPU on 32-bit linux.
4013

    
4014
        Adjusted randomized allocations of executable memory to have 64k
4015
        granularity (issue http://crbug.com/56036).
4016

    
4017
        Supported profiling using kernel perf_events on linux.  Added ll_prof
4018
        script to tools and --ll-prof flag to V8.
4019

    
4020

    
4021
2010-10-18: Version 2.5.0
4022

    
4023
        Fixed bug in cache handling of lastIndex on global regexps
4024
        (issue http://crbug.com/58740).
4025

    
4026
        Added USE_SIMULATOR macro that explicitly indicates that we wish to use
4027
        the simulator as the execution engine (by Mark Lam <mark.lam@palm.com>
4028
        from Hewlett-Packard Development Company, LP).
4029

    
4030
        Fixed compilation error on ARM with gcc 4.4 (issue 894).
4031

    
4032

    
4033
2010-10-13: Version 2.4.9
4034

    
4035
        Fixed a bug in the handling of conditional expressions in test
4036
        contexts in compiler for top-level code.
4037

    
4038
        Added "//@ sourceURL" information to the StackTrace API.
4039

    
4040
        Exposed RegExp construction through the API.
4041

    
4042

    
4043
2010-10-04: Version 2.4.8
4044

    
4045
        Fixed a bug in ResumeProfilerEx causing it to not always write out the
4046
        whole snapshot (issue 868).
4047

    
4048
        Performance improvements on all platforms.
4049

    
4050

    
4051
2010-09-30: Version 2.4.7
4052

    
4053
        Changed the command-line flag --max-new-space-size to be in kB and the
4054
        flag --max-old-space-size to be in MB (previously they were in bytes).
4055

    
4056
        Added Debug::CancelDebugBreak to the debugger API.
4057

    
4058
        Fixed a bug in getters for negative numeric property names
4059
        (https://bugs.webkit.org/show_bug.cgi?id=46689).
4060

    
4061
        Performance improvements on all platforms.
4062

    
4063

    
4064
2010-09-27: Version 2.4.6
4065

    
4066
        Fixed assertion failure related to copy-on-write arrays (issue 876).
4067

    
4068
        Fixed build failure of 64-bit V8 on Windows.
4069

    
4070
        Fixed a bug in RegExp (issue http://crbug.com/52801).
4071

    
4072
        Improved the profiler's coverage to cover more functions (issue 858).
4073

    
4074
        Fixed error in shift operators on 64-bit V8
4075
        (issue http://crbug.com/54521).
4076

    
4077

    
4078
2010-09-22: Version 2.4.5
4079

    
4080
        Changed the RegExp benchmark to exercise the regexp engine on different
4081
        inputs by scrambling the input strings.
4082

    
4083
        Fixed a bug in keyed loads on strings.
4084

    
4085
        Fixed a bug with loading global function prototypes.
4086

    
4087
        Fixed a bug with profiling RegExp calls (issue http://crbug.com/55999).
4088

    
4089
        Performance improvements on all platforms.
4090

    
4091

    
4092
2010-09-15: Version 2.4.4
4093

    
4094
        Fixed bug with hangs on very large sparse arrays.
4095

    
4096
        Now tries harder to free up memory when running out of space.
4097

    
4098
        Added heap snapshots to JSON format to API.
4099

    
4100
        Recalibrated benchmarks.
4101

    
4102

    
4103
2010-09-13: Version 2.4.3
4104

    
4105
        Made Date.parse properly handle TZ offsets (issue 857).
4106

    
4107
        Performance improvements on all platforms.
4108

    
4109

    
4110
2010-09-08: Version 2.4.2
4111

    
4112
        Fixed GC crash bug.
4113

    
4114
        Fixed stack corruption bug.
4115

    
4116
        Fixed compilation for newer C++ compilers that found Operand(0)
4117
        ambiguous.
4118

    
4119

    
4120
2010-09-06: Version 2.4.1
4121

    
4122
        Added the ability for an embedding application to receive a callback
4123
        when V8 allocates (V8::AddMemoryAllocationCallback) or deallocates
4124
        (V8::RemoveMemoryAllocationCallback) from the OS.
4125

    
4126
        Fixed several JSON bugs (including issue 855).
4127

    
4128
        Fixed memory overrun crash bug triggered during V8's tick-based
4129
        profiling.
4130

    
4131
        Performance improvements on all platforms.
4132

    
4133

    
4134
2010-09-01: Version 2.4.0
4135

    
4136
        Fixed bug in Object.freeze and Object.seal when Array.prototype or
4137
        Object.prototype are changed (issue 842).
4138

    
4139
        Updated Array.splice to follow Safari and Firefox when called
4140
        with zero arguments.
4141

    
4142
        Fixed a missing live register when breaking at keyed loads on ARM.
4143

    
4144
        Performance improvements on all platforms.
4145

    
4146

    
4147
2010-08-25: Version 2.3.11
4148

    
4149
        Fixed bug in RegExp related to copy-on-write arrays.
4150

    
4151
        Refactored tools/test.py script, including the introduction of
4152
        VARIANT_FLAGS that allows specification of sets of flags with which
4153
        all tests should be run.
4154

    
4155
        Fixed a bug in the handling of debug breaks in CallIC.
4156

    
4157
        Performance improvements on all platforms.
4158

    
4159

    
4160
2010-08-23: Version 2.3.10
4161

    
4162
        Fixed bug in bitops on ARM.
4163

    
4164
        Build fixes for unusual compilers.
4165

    
4166
        Track high water mark for RWX memory.
4167

    
4168
        Performance improvements on all platforms.
4169

    
4170

    
4171
2010-08-18: Version 2.3.9
4172

    
4173
        Fixed compilation for ARMv4 on OpenBSD/FreeBSD.
4174

    
4175
        Removed specialized handling of GCC 4.4 (issue 830).
4176

    
4177
        Fixed DST cache to take into account the suspension of DST in
4178
        Egypt during the 2010 Ramadan (issue http://crbug.com/51855).
4179

    
4180
        Performance improvements on all platforms.
4181

    
4182

    
4183
2010-08-16: Version 2.3.8
4184

    
4185
        Fixed build with strict aliasing on GCC 4.4 (issue 463).
4186

    
4187
        Fixed issue with incorrect handling of custom valueOf methods on
4188
        string wrappers (issue 760).
4189

    
4190
        Fixed compilation for ARMv4 (issue 590).
4191

    
4192
        Improved performance.
4193

    
4194

    
4195
2010-08-11: Version 2.3.7
4196

    
4197
        Reduced size of heap snapshots produced by heap profiler (issue 783).
4198

    
4199
        Introduced v8::Value::IsRegExp method.
4200

    
4201
        Fixed CPU profiler crash in start / stop sequence when non-existent
4202
        name is passed (issue http://crbug.com/51594).
4203

    
4204
        Introduced new indexed property query callbacks API (issue 816). This
4205
        API is guarded by USE_NEW_QUERY_CALLBACK define and is disabled
4206
        by default.
4207

    
4208
        Removed support for object literal get/set with number/string
4209
        property name.
4210

    
4211
        Fixed handling of JSObject::elements in CalculateNetworkSize
4212
        (issue 822).
4213

    
4214
        Allowed compiling with strict aliasing enabled on GCC 4.4 (issue 463).
4215

    
4216

    
4217
2010-08-09: Version 2.3.6
4218

    
4219
        RegExp literals create a new object every time they are evaluated
4220
        (issue 704).
4221

    
4222
        Object.seal and Object.freeze return the modified object (issue 809).
4223

    
4224
        Fixed building using GCC 4.4.4.
4225

    
4226

    
4227
2010-08-04: Version 2.3.5
4228

    
4229
        Added support for ES5 property names. Object initialisers and
4230
        dot-notation property access now allows keywords. Also allowed
4231
        non-identifiers after "get" or "set" in an object initialiser.
4232

    
4233
        Randomized the addresses of allocated executable memory on Windows.
4234

    
4235

    
4236
2010-08-02: Version 2.3.4
4237

    
4238
        Fixed problems in implementation of ES5 function.prototype.bind.
4239

    
4240
        Fixed error when using apply with arguments object on ARM (issue 784).
4241

    
4242
        Added setting of global flags to debugger protocol.
4243

    
4244
        Fixed an error affecting cached results of sin and cos (issue 792).
4245

    
4246
        Removed memory leak from a boundary case where V8 is not initialized.
4247

    
4248
        Fixed issue where debugger could set breakpoints outside the body
4249
        of a function.
4250

    
4251
        Fixed issue in debugger when using both live edit and step in features.
4252

    
4253
        Added Number-letter (Nl) category to Unicode tables.  These characters
4254
        can now be used in identifiers.
4255

    
4256
        Fixed an assert failure on X64 (issue 806).
4257

    
4258
        Performance improvements on all platforms.
4259

    
4260

    
4261
2010-07-26: Version 2.3.3
4262

    
4263
        Fixed error when building the d8 shell in a fresh checkout.
4264

    
4265
        Implemented Function.prototype.bind (ES5 15.3.4.5).
4266

    
4267
        Fixed an error in inlined stores on ia32.
4268

    
4269
        Fixed an error when setting a breakpoint at the end of a function
4270
        that does not end with a newline character.
4271

    
4272
        Performance improvements on all platforms.
4273

    
4274

    
4275
2010-07-21: Version 2.3.2
4276

    
4277
        Fixed compiler warnings when building with LLVM.
4278

    
4279
        Fixed a bug with for-in applied to strings (issue 785).
4280

    
4281
        Performance improvements on all platforms.
4282

    
4283

    
4284
2010-07-19: Version 2.3.1
4285

    
4286
        Fixed compilation and linking with V8_INTERPRETED_REGEXP flag.
4287

    
4288
        Fixed bug related to code flushing while compiling a lazy
4289
        compilable function (issue http://crbug.com/49099).
4290

    
4291
        Performance improvements on all platforms.
4292

    
4293

    
4294
2010-07-15: Version 2.3.0
4295

    
4296
        Added ES5 Object.seal and Object.isSealed.
4297

    
4298
        Added debugger API for scheduling debugger commands from a
4299
        separate thread.
4300

    
4301

    
4302
2010-07-14: Version 2.2.24
4303

    
4304
        Added API for capturing stack traces for uncaught exceptions.
4305

    
4306
        Fixed crash bug when preparsing from a non-external V8 string
4307
        (issue 775).
4308

    
4309
        Fixed JSON.parse bug causing input not to be converted to string
4310
        (issue 764).
4311

    
4312
        Added ES5 Object.freeze and Object.isFrozen.
4313

    
4314
        Performance improvements on all platforms.
4315

    
4316

    
4317
2010-07-07: Version 2.2.23
4318

    
4319
        API change: Convert Unicode code points outside the basic multilingual
4320
        plane to the replacement character.  Previous behavior was to silently
4321
        truncate the value to 16 bits.
4322

    
4323
        Fixed crash: handle all flat string types in regexp replace.
4324

    
4325
        Prevent invalid pre-parsing data passed in through the API from
4326
        crashing V8.
4327

    
4328
        Performance improvements on all platforms.
4329

    
4330

    
4331
2010-07-05: Version 2.2.22
4332

    
4333
        Added ES5 Object.isExtensible and Object.preventExtensions.
4334

    
4335
        Enabled building V8 as a DLL.
4336

    
4337
        Fixed a bug in date code where -0 was not interpreted as 0
4338
        (issue 736).
4339

    
4340
        Performance improvements on all platforms.
4341

    
4342

    
4343
2010-06-30: Version 2.2.21
4344

    
4345
        Fixed bug in externalizing some ASCII strings (Chromium issue 47824).
4346

    
4347
        Updated JSON.stringify to floor the space parameter (issue 753).
4348

    
4349
        Updated the Mozilla test expectations to the newest version.
4350

    
4351
        Updated the ES5 Conformance Test expectations to the latest version.
4352

    
4353
        Updated the V8 benchmark suite.
4354

    
4355
        Provide actual breakpoints locations in response to setBreakpoint
4356
        and listBreakpoints requests.
4357

    
4358

    
4359
2010-06-28: Version 2.2.20
4360

    
4361
        Fixed bug with for-in on x64 platform (issue 748).
4362

    
4363
        Fixed crash bug on x64 platform (issue 756).
4364

    
4365
        Fixed bug in Object.getOwnPropertyNames. (chromium issue 41243).
4366

    
4367
        Fixed a bug on ARM that caused the result of 1 << x to be
4368
        miscalculated for some inputs.
4369

    
4370
        Performance improvements on all platforms.
4371

    
4372

    
4373
2010-06-23: Version 2.2.19
4374

    
4375
        Fixed bug that causes the build to break when profillingsupport=off
4376
        (issue 738).
4377

    
4378
        Added expose-externalize-string flag for testing extensions.
4379

    
4380
        Resolve linker issues with using V8 as a DLL causing a number of
4381
        problems with unresolved symbols.
4382

    
4383
        Fixed build failure for cctests when ENABLE_DEBUGGER_SUPPORT is not
4384
        defined.
4385

    
4386
        Performance improvements on all platforms.
4387

    
4388

    
4389
2010-06-16: Version 2.2.18
4390

    
4391
        Added API functions to retrieve information on indexed properties
4392
        managed by the embedding layer.  Fixes bug 737.
4393

    
4394
        Made ES5 Object.defineProperty support array elements.  Fixes bug 619.
4395

    
4396
        Added heap profiling to the API.
4397

    
4398
        Removed old named property query from the API.
4399

    
4400
        Incremental performance improvements.
4401

    
4402

    
4403
2010-06-14: Version 2.2.17
4404

    
4405
        Improved debugger support for stepping out of functions.
4406

    
4407
        Incremental performance improvements.
4408

    
4409

    
4410
2010-06-09: Version 2.2.16
4411

    
4412
        Removed the SetExternalStringDiposeCallback API. Changed the
4413
        disposal of external string resources to call a virtual Dispose
4414
        method on the resource.
4415

    
4416
        Added support for more precise break points when debugging and
4417
        stepping.
4418

    
4419
        Memory usage improvements on all platforms.
4420

    
4421

    
4422
2010-06-07: Version 2.2.15
4423

    
4424
        Added an API to control the disposal of external string resources.
4425

    
4426
        Added missing initialization of a couple of variables which makes
4427
        some compilers complaint when compiling with -Werror.
4428

    
4429
        Improved performance on all platforms.
4430

    
4431

    
4432
2010-06-02: Version 2.2.14
4433

    
4434
        Fixed a crash in code generated for String.charCodeAt.
4435

    
4436
        Fixed a compilation issue with some GCC versions (issue 727).
4437

    
4438
        Performance optimizations on x64 and ARM platforms.
4439

    
4440

    
4441
2010-05-31: Version 2.2.13
4442

    
4443
        Implemented Object.getOwnPropertyDescriptor for element indices and
4444
        strings (issue 599).
4445

    
4446
        Fixed bug for windows 64 bit C calls from generated code.
4447

    
4448
        Added new scons flag unalignedaccesses for arm builds.
4449

    
4450
        Performance improvements on all platforms.
4451

    
4452

    
4453
2010-05-26: Version 2.2.12
4454

    
4455
        Allowed accessors to be defined on objects rather than just object
4456
        templates.
4457

    
4458
        Changed the ScriptData API.
4459

    
4460

    
4461
2010-05-21: Version 2.2.11
4462

    
4463
        Fixed crash bug in liveedit on 64 bit.
4464

    
4465
        Use 'full compiler' when debugging is active.  This should increase
4466
        the density of possible break points, making single step more fine
4467
        grained.  This will only take effect for functions compiled after
4468
        debugging has been started, so recompilation of all functions is
4469
        required to get the full effect.  IA32 and x64 only for now.
4470

    
4471
        Misc. fixes to the Solaris build.
4472

    
4473
        Added new flags --print-cumulative-gc-stat and --trace-gc-nvp.
4474

    
4475
        Added filtering of CPU profiles by security context.
4476

    
4477
        Fixed crash bug on ARM when running without VFP2 or VFP3.
4478

    
4479
        Incremental performance improvements in all backends.
4480

    
4481

    
4482
2010-05-17: Version 2.2.10
4483

    
4484
        Performance improvements in the x64 and ARM backends.
4485

    
4486

    
4487
2010-05-10: Version 2.2.9
4488

    
4489
        Allowed Object.create to be called with a function (issue 697).
4490

    
4491
        Fixed bug with Date.parse returning a non-NaN value when called on a
4492
        non date string (issue 696).
4493

    
4494
        Allowed unaligned memory accesses on ARM targets that support it (by
4495
        Subrato K De of CodeAurora <subratokde@codeaurora.org>).
4496

    
4497
        C++ API for retrieving JavaScript stack trace information.
4498

    
4499

    
4500
2010-05-05: Version 2.2.8
4501

    
4502
        Performance improvements in the x64 and ARM backends.
4503

    
4504

    
4505
2010-05-03: Version 2.2.7
4506

    
4507
        Added support for ES5 date time string format to Date.parse.
4508

    
4509
        Performance improvements in the x64 backend.
4510

    
4511

    
4512
2010-04-28: Version 2.2.6
4513

    
4514
        Added "amd64" as recognized architecture in scons build script
4515
        (by Ryan Dahl <coldredlemur@gmail.com>).
4516

    
4517
        Fixed bug in String search and replace with very simple RegExps.
4518

    
4519
        Fixed bug in RegExp containing "\b^".
4520

    
4521
        Performance improvements on all platforms.
4522

    
4523

    
4524
2010-04-26: Version 2.2.5
4525

    
4526
        Various performance improvements (especially for ARM and x64)
4527

    
4528
        Fixed bug in CPU profiling (http://crbug.com/42137)
4529

    
4530
        Fixed a bug with the natives cache.
4531

    
4532
        Fixed two bugs in the ARM code generator that can cause
4533
        wrong calculations.
4534

    
4535
        Fixed a bug that may cause a wrong result for shift operations.
4536

    
4537

    
4538
2010-04-21: Version 2.2.4
4539

    
4540
        Fixed warnings on arm on newer GCC versions.
4541

    
4542
        Fixed a number of minor bugs.
4543

    
4544
        Performance improvements on all platforms.
4545

    
4546

    
4547
2010-04-14: Version 2.2.3
4548

    
4549
        Added stack command and mem command to ARM simulator debugger.
4550

    
4551
        Fixed scons snapshot and ARM build, and Windows X64 build issues.
4552

    
4553
        Performance improvements on all platforms.
4554

    
4555

    
4556
2010-04-12: Version 2.2.2
4557

    
4558
        Introduced new profiler API.
4559

    
4560
        Fixed random number generator to produce full 32 random bits.
4561

    
4562

    
4563
2010-04-06: Version 2.2.1
4564

    
4565
        Debugger improvements.
4566

    
4567
        Fixed minor bugs.
4568

    
4569

    
4570
2010-03-29: Version 2.2.0
4571

    
4572
        Fixed a few minor bugs.
4573

    
4574
        Performance improvements for string operations.
4575

    
4576

    
4577
2010-03-26: Version 2.1.10
4578

    
4579
        Fixed scons build issues.
4580

    
4581
        Fixed a couple of minor bugs.
4582

    
4583

    
4584
2010-03-25: Version 2.1.9
4585

    
4586
        Added API support for reattaching a global object to a context.
4587

    
4588
        Extended debugger API with access to the internal debugger context.
4589

    
4590
        Fixed Chromium crashes (issues http://crbug.com/39128 and
4591
        http://crbug.com/39160)
4592

    
4593

    
4594
2010-03-24: Version 2.1.8
4595

    
4596
        Added fine-grained garbage collection callbacks to the API.
4597

    
4598
        Performance improvements on all platforms.
4599

    
4600

    
4601
2010-03-22: Version 2.1.7
4602

    
4603
        Fixed issue 650.
4604

    
4605
        Fixed a bug where __proto__ was sometimes enumerated (issue 646).
4606

    
4607
        Performance improvements for arithmetic operations.
4608

    
4609
        Performance improvements for string operations.
4610

    
4611
        Print script name and line number information in stack trace.
4612

    
4613

    
4614
2010-03-17: Version 2.1.6
4615

    
4616
        Performance improvements for arithmetic operations.
4617

    
4618
        Performance improvements for string operations.
4619

    
4620

    
4621
2010-03-10: Version 2.1.4
4622

    
4623
        Fixed code cache lookup for keyed IC's (issue http://crbug.com/37853).
4624

    
4625
        Performance improvements on all platforms.
4626

    
4627

    
4628
2010-03-10: Version 2.1.3
4629

    
4630
        Added API method for context-disposal notifications.
4631

    
4632
        Added API method for accessing elements by integer index.
4633

    
4634
        Added missing implementation of Uint32::Value and Value::IsUint32
4635
        API methods.
4636

    
4637
        Added IsExecutionTerminating API method.
4638

    
4639
        Disabled strict aliasing for GCC 4.4.
4640

    
4641
        Fixed string-concatenation bug (issue 636).
4642

    
4643
        Performance improvements on all platforms.
4644

    
4645

    
4646
2010-02-23: Version 2.1.2
4647

    
4648
        Fixed a crash bug caused by wrong assert.
4649

    
4650
        Fixed a bug with register names on 64-bit V8 (issue 615).
4651

    
4652
        Performance improvements on all platforms.
4653

    
4654

    
4655
2010-02-19: Version 2.1.1
4656

    
4657
        [ES5] Implemented Object.defineProperty.
4658

    
4659
        Improved profiler support.
4660

    
4661
        Added SetPrototype method in the public V8 API.
4662

    
4663
        Added GetScriptOrigin and GetScriptLineNumber methods to Function
4664
        objects in the API.
4665

    
4666
        Performance improvements on all platforms.
4667

    
4668

    
4669
2010-02-03: Version 2.1.0
4670

    
4671
        Values are now always wrapped in objects when used as a receiver.
4672
        (issue 223).
4673

    
4674
        [ES5] Implemented Object.getOwnPropertyNames.
4675

    
4676
        [ES5] Restrict JSON.parse to only accept strings that conforms to the
4677
        JSON grammar.
4678

    
4679
        Improvement of debugger agent (issue 549 and 554).
4680

    
4681
        Fixed problem with skipped stack frame in profiles (issue 553).
4682

    
4683
        Solaris support by Erich Ocean <erich.ocean@me.com> and Ryan Dahl
4684
        <ry@tinyclouds.org>.
4685

    
4686
        Fixed a bug that Math.round() returns incorrect results for huge
4687
        integers.
4688

    
4689
        Fixed enumeration order for objects created from some constructor
4690
        functions (isue http://crbug.com/3867).
4691

    
4692
        Fixed arithmetic on some integer constants (issue 580).
4693

    
4694
        Numerous performance improvements including porting of previous IA-32
4695
        optimizations to x64 and ARM architectures.
4696

    
4697

    
4698
2010-01-14: Version 2.0.6
4699

    
4700
        Added ES5 Object.getPrototypeOf, GetOwnPropertyDescriptor,
4701
        GetOwnProperty, FromPropertyDescriptor.
4702

    
4703
        Fixed Mac x64 build errors.
4704

    
4705
        Improved performance of some math and string operations.
4706

    
4707
        Improved performance of some regexp operations.
4708

    
4709
        Improved performance of context creation.
4710

    
4711
        Improved performance of hash tables.
4712

    
4713

    
4714
2009-12-18: Version 2.0.5
4715

    
4716
        Extended to upper limit of map space to allow for 7 times as many map
4717
        to be allocated (issue 524).
4718

    
4719
        Improved performance of code using closures.
4720

    
4721
        Improved performance of some binary operations involving doubles.
4722

    
4723

    
4724
2009-12-16: Version 2.0.4
4725

    
4726
        Added ECMAScript 5 Object.create.
4727

    
4728
        Improved performance of Math.max and Math.min.
4729

    
4730
        Optimized adding of strings on 64-bit platforms.
4731

    
4732
        Improved handling of external strings by using a separate table
4733
        instead of weak handles.  This improves garbage collection
4734
        performance and uses less memory.
4735

    
4736
        Changed code generation for object and array literals in toplevel
4737
        code to be more compact by doing more work in the runtime.
4738

    
4739
        Fixed a crash bug triggered when garbage collection happened during
4740
        generation of a callback load inline cache stub.
4741

    
4742
        Fixed crash bug sometimes triggered when local variables shadowed
4743
        parameters in functions that used the arguments object.
4744

    
4745

    
4746
2009-12-03: Version 2.0.3
4747

    
4748
        Optimized handling and adding of strings, for-in and Array.join.
4749

    
4750
        Heap serialization is now non-destructive.
4751

    
4752
        Improved profiler support with information on time spend in C++
4753
        callbacks registered through the API.
4754

    
4755
        Added commands to the debugger protocol for starting/stopping
4756
        profiling.
4757

    
4758
        Enabled the non-optimizing compiler for top-level code.
4759

    
4760
        Changed the API to only allow strings to be set as data objects on
4761
        Contexts and scripts to avoid potentially keeping global objects
4762
        around for too long (issue 528).
4763

    
4764
        OpenBSD support patch by Peter Valchev <pvalchev@gmail.com>.
4765

    
4766
        Fixed bugs.
4767

    
4768

    
4769
2009-11-24: Version 2.0.2
4770

    
4771
        Improved profiler support.
4772

    
4773
        Fixed bug that broke compilation of d8 with readline support.
4774

    
4775

    
4776
2009-11-20: Version 2.0.1
4777

    
4778
        Fixed crash bug in String.prototype.replace.
4779

    
4780
        Reverted a change which caused Chromium interactive ui test
4781
        failures.
4782

    
4783

    
4784
2009-11-18: Version 2.0.0
4785

    
4786
        Added support for VFP on ARM.
4787

    
4788
        Added TryCatch::ReThrow method to the API.
4789

    
4790
        Reduced the size of snapshots and improved the snapshot load time.
4791

    
4792
        Improved heap profiler support.
4793

    
4794
        64-bit version now supported on Windows.
4795

    
4796
        Fixed a number of debugger issues.
4797

    
4798
        Fixed bugs.
4799

    
4800

    
4801
2009-10-29: Version 1.3.18
4802

    
4803
        Reverted a change which caused crashes in RegExp replace.
4804

    
4805
        Reverted a change which caused Chromium ui_tests failure.
4806

    
4807

    
4808
2009-10-28: Version 1.3.17
4809

    
4810
        Added API method to get simple heap statistics.
4811

    
4812
        Improved heap profiler support.
4813

    
4814
        Fixed the implementation of the resource constraint API so it
4815
        works when using snapshots.
4816

    
4817
        Fixed a number of issues in the Windows 64-bit version.
4818

    
4819
        Optimized calls to API getters.
4820

    
4821
        Added valgrind notification on code modification to the 64-bit version.
4822

    
4823
        Fixed issue where we logged shared library addresses on Windows at
4824
        startup and never used them.
4825

    
4826

    
4827
2009-10-16: Version 1.3.16
4828

    
4829
        X64: Convert smis to holding 32 bits of payload.
4830

    
4831
        Introduced v8::Integer::NewFromUnsigned method.
4832

    
4833
        Added missing null check in Context::GetCurrent.
4834

    
4835
        Added trim, trimLeft and trimRight methods to String
4836
        Patch by Jan de Mooij <jandemooij@gmail.com>
4837

    
4838
        Implement ES5 Array.isArray
4839
        Patch by Jan de Mooij <jandemooij@gmail.com>
4840

    
4841
        Skip access checks for hidden properties.
4842

    
4843
        Added String::Concat(Handle<String> left, Handle<String> right) to the
4844
        V8 API.
4845

    
4846
        Fixed GYP-based builds of V8.
4847

    
4848

    
4849
2009-10-07: Version 1.3.15
4850

    
4851
        Expanded the maximum size of the code space to 512MB for 64-bit mode.
4852

    
4853
        Fixed a crash bug happening when starting profiling (issue
4854
        http://crbug.com/23768).
4855

    
4856

    
4857
2009-10-07: Version 1.3.14
4858

    
4859
        Added GetRealNamedProperty to the API to lookup real properties
4860
        located on the object or in the prototype chain skipping any
4861
        interceptors.
4862

    
4863
        Fixed the stack limits setting API to work correctly with threads. The
4864
        stack limit now needs to be set to each thread thich is used with V8.
4865

    
4866
        Removed the high-priority flag from IdleNotification()
4867

    
4868
        Ensure V8 is initialized before locking and unlocking threads.
4869

    
4870
        Implemented a new JavaScript minifier for compressing the source of
4871
        the built-in JavaScript. This removes non-Open Source code from Douglas
4872
        Crockford from the project.
4873

    
4874
        Added a missing optimization in StringCharAt.
4875

    
4876
        Fixed some flaky socket tests.
4877

    
4878
        Change by Alexander Botero-Lowry to fix profiler sampling on FreeBSD
4879
        in 64-bit mode.
4880

    
4881
        Fixed memory leaks in the thread management code.
4882

    
4883
        Fixed the result of assignment to a pixel array. The assigned value
4884
        is now the result.
4885

    
4886
        Error reporting for invalid left-hand sides in for-in statements, pre-
4887
        and postfix count expressions, and assignments now matches the JSC
4888
        behavior in Safari 4.
4889

    
4890
        Follow the spec in disallowing function declarations without a name.
4891

    
4892
        Always allocate code objects within a 2 GB range. On x64 architecture
4893
        this is used to use near calls (32-bit displacement) in Code objects.
4894

    
4895
        Optimized array construction ported to x64 and ARM architectures.
4896

    
4897
        [ES5] Changed Object.keys to return strings for element indices.
4898

    
4899

    
4900
2009-09-23: Version 1.3.13
4901

    
4902
        Fixed uninitialized memory problem.
4903

    
4904
        Improved heap profiler support.
4905

    
4906

    
4907
2009-09-22: Version 1.3.12
4908

    
4909
        Changed behavior of |function|.toString() on built-in functions to
4910
        be compatible with other implementations.  Patch by Jan de Mooij.
4911

    
4912
        Added Object::IsDirty in the API.
4913

    
4914
        Optimized array construction; it is now handled purely in native
4915
        code.
4916

    
4917
        [ES5] Made properties of the arguments array enumerable.
4918

    
4919
        [ES5] Added test suite adapter for the es5conform test suite.
4920

    
4921
        [ES5] Added Object.keys function.
4922

    
4923

    
4924
2009-09-15: Version 1.3.11
4925

    
4926
        Fixed crash in error reporting during bootstrapping.
4927

    
4928
        Optimized generated IA32 math code by using SSE2 instructions when
4929
        available.
4930

    
4931
        Implemented missing pieces of debugger infrastructure on ARM.  The
4932
        debugger is now fully functional on ARM.
4933

    
4934
        Made 'hidden' the default visibility for gcc.
4935

    
4936

    
4937
2009-09-09: Version 1.3.10
4938

    
4939
        Fixed profiler on Mac in 64-bit mode.
4940

    
4941
        Optimized creation of objects from simple constructor functions on
4942
        ARM.
4943

    
4944
        Fixed a number of debugger issues.
4945

    
4946
        Reduced the amount of memory consumed by V8.
4947

    
4948

    
4949
2009-09-02: Version 1.3.9
4950

    
4951
        Optimized stack guard checks on ARM.
4952

    
4953
        Optimized API operations by inlining more in the API.
4954

    
4955
        Optimized creation of objects from simple constructor functions.
4956

    
4957
        Enabled a number of missing optimizations in the 64-bit port.
4958

    
4959
        Implemented native-code support for regular expressions on ARM.
4960

    
4961
        Stopped using the 'sahf' instruction on 64-bit machines that do
4962
        not support it.
4963

    
4964
        Fixed a bug in the support for forceful termination of JavaScript
4965
        execution.
4966

    
4967

    
4968
2009-08-26: Version 1.3.8
4969

    
4970
        Changed the handling of idle notifications to allow idle
4971
        notifications when V8 has not yet been initialized.
4972

    
4973
        Fixed ARM simulator compilation problem on Windows.
4974

    
4975

    
4976
2009-08-25: Version 1.3.7
4977

    
4978
        Reduced the size of generated code on ARM platforms by reducing
4979
        the size of constant pools.
4980

    
4981
        Changed build files to not include the 'ENV' user environment
4982
        variable in the build environment.
4983

    
4984
        Changed the handling of idle notifications.
4985

    
4986

    
4987
2009-08-21: Version 1.3.6
4988

    
4989
        Added support for forceful termination of JavaScript execution.
4990

    
4991
        Added low memory notification to the API. The embedding host can signal
4992
        a low memory situation to V8.
4993

    
4994
        Changed the handling of global handles (persistent handles in the API
4995
        sense) to avoid issues regarding allocation of new global handles
4996
        during weak handle callbacks.
4997

    
4998
        Changed the growth policy of the young space.
4999

    
5000
        Fixed a GC issue introduced in version 1.3.5.
5001

    
5002

    
5003
2009-08-19: Version 1.3.5
5004

    
5005
        Optimized initialization of some arrays in the builtins.
5006

    
5007
        Fixed mac-nm script to support filenames with spaces.
5008

    
5009
        Support for using the V8 profiler when V8 is embedded in a Windows DLL.
5010

    
5011
        Changed typeof RegExp from 'object' to 'function' for compatibility.
5012
        Fixed bug where regexps were not callable across contexts.
5013

    
5014
        Added context independent script compilation to the API.
5015

    
5016
        Added API call to get the stack trace for an exception.
5017

    
5018
        Added API for getting object mirrors.
5019

    
5020
        Made sure that SSE3 instructions are used whenever possible even when
5021
        running off a snapshot generated without using SSE3 instructions.
5022

    
5023
        Tweaked the handling of the initial size and growth policy of the heap.
5024

    
5025
        Added native code generation for RegExp to 64-bit version.
5026

    
5027
        Added JavaScript debugger support to 64-bit version.
5028

    
5029

    
5030
2009-08-13: Version 1.3.4
5031

    
5032
        Added a readline() command to the d8 shell.
5033

    
5034
        Fixed bug in json parsing.
5035

    
5036
        Added idle notification to the API and reduced memory on idle
5037
        notifications.
5038

    
5039

    
5040
2009-08-12: Version 1.3.3
5041

    
5042
        Fixed issue 417: incorrect %t placeholder expansion.
5043

    
5044
        Added .gitignore file similar to Chromium's one.
5045

    
5046
        Fixed SConstruct file to build with new logging code for Android.
5047

    
5048
        API: added function to find instance of template in prototype
5049
        chain.  Inlined Object::IsInstanceOf.
5050

    
5051
        Land change to notify valgrind when we modify code on x86.
5052

    
5053
        Added api call to determine whether a string can be externalized.
5054

    
5055
        Added a write() command to d8.
5056

    
5057

    
5058
2009-08-05: Version 1.3.2
5059

    
5060
        Started new compiler infrastructure for two-pass compilation using a
5061
        control flow graph constructed from the AST.
5062

    
5063
        Profiler stack sampling for X64.
5064

    
5065
        Safe handling of NaN to Posix platform-dependent time functions.
5066

    
5067
        Added a new profiler control API to unify controlling various aspects
5068
        of profiling.
5069

    
5070
        Fixed issue 392.
5071

    
5072

    
5073
2009-07-30: Version 1.3.1
5074

    
5075
        Speed improvements to accessors and interceptors.
5076

    
5077
        Added support for capturing stack information on custom errors.
5078

    
5079
        Added support for morphing an object into a pixel array where its
5080
        indexed properties are stored in an external byte array. Values written
5081
        are always clamped to the 0..255 interval.
5082

    
5083
        Profiler on x64 now handles C/C++ functions from shared libraries.
5084

    
5085
        Changed the debugger to avoid stepping into function.call/apply if the
5086
        function is a built-in.
5087

    
5088
        Initial implementation of constructor heap profile for JS objects.
5089

    
5090
        More fine grained control of profiling aspects through the API.
5091

    
5092
        Optimized the called as constructor check for API calls.
5093

    
5094

    
5095
2009-07-27: Version 1.3.0
5096

    
5097
        Allowed RegExp objects to be called as functions (issue 132).
5098

    
5099
        Fixed issue where global property cells would escape after
5100
        detaching the global object; see http://crbug.com/16276.
5101

    
5102
        Added support for stepping into setters and getters in the
5103
        debugger.
5104

    
5105
        Changed the debugger to avoid stopping in its own JavaScript code
5106
        and in the code of built-in functions.
5107

    
5108
        Fixed issue 345 by avoiding duplicate escaping labels.
5109

    
5110
        Fixed ARM code generator crash in short-circuited boolean
5111
        expressions and added regression tests.
5112

    
5113
        Added an external allocation limit to avoid issues where small V8
5114
        objects would hold on to large amounts of external memory without
5115
        causing garbage collections.
5116

    
5117
        Finished more of the inline caching stubs for x64 targets.
5118

    
5119

    
5120
2009-07-13: Version 1.2.14
5121

    
5122
        Added separate paged heap space for global property cells and
5123
        avoid updating the write barrier when storing into them.
5124

    
5125
        Improved peep-hole optimization on ARM platforms by not emitting
5126
        unnecessary debug information.
5127

    
5128
        Re-enabled ICs for loads and calls that skip a global object
5129
        during lookup through the prototype chain.
5130

    
5131
        Allowed access through global proxies to use ICs.
5132

    
5133
        Fixed issue 401.
5134

    
5135

    
5136
2009-07-09: Version 1.2.13
5137

    
5138
        Fixed issue 397, issue 398, and issue 399.
5139

    
5140
        Added support for breakpoint groups.
5141

    
5142
        Fixed bugs introduced with the new global object representation.
5143

    
5144
        Fixed a few bugs in the ARM code generator.
5145

    
5146

    
5147
2009-07-06: Version 1.2.12
5148

    
5149
        Added stack traces collection to Error objects accessible through
5150
        the e.stack property.
5151

    
5152
        Changed RegExp parser to use a recursive data structure instead of
5153
        stack-based recursion.
5154

    
5155
        Optimized Date object construction and string concatenation.
5156

    
5157
        Improved performance of div, mod, and mul on ARM platforms.
5158

    
5159

    
5160
2009-07-02: Version 1.2.11
5161

    
5162
        Improved performance on IA-32 and ARM.
5163

    
5164
        Fixed profiler sampler implementation on Mac OS X.
5165

    
5166
        Changed the representation of global objects to improve
5167
        performance of adding a lot of new properties.
5168

    
5169

    
5170
2009-06-29: Version 1.2.10
5171

    
5172
        Improved debugger support.
5173

    
5174
        Fixed bug in exception message reporting (issue 390).
5175

    
5176
        Improved overall performance.
5177

    
5178

    
5179
2009-06-23: Version 1.2.9
5180

    
5181
        Improved math performance on ARM.
5182

    
5183
        Fixed profiler name-inference bug.
5184

    
5185
        Fixed handling of shared libraries in the profiler tick processor
5186
        scripts.
5187

    
5188
        Fixed handling of tests that time out in the test scripts.
5189

    
5190
        Fixed compilation on MacOS X version 10.4.
5191

    
5192
        Fixed two bugs in the regular expression engine.
5193

    
5194
        Fixed a bug in the string type inference.
5195

    
5196
        Fixed a bug in the handling of 'constant function' properties.
5197

    
5198
        Improved overall performance.
5199

    
5200

    
5201
2009-06-16: Version 1.2.8
5202

    
5203
        Optimized math on ARM platforms.
5204

    
5205
        Fixed two crash bugs in the handling of getters and setters.
5206

    
5207
        Improved the debugger support by adding scope chain information.
5208

    
5209
        Improved the profiler support by compressing log data transmitted
5210
        to clients.
5211

    
5212
        Improved overall performance.
5213

    
5214

    
5215
2009-06-08: Version 1.2.7
5216

    
5217
        Improved debugger and profiler support.
5218

    
5219
        Reduced compilation time by improving the handling of deferred
5220
        code.
5221

    
5222
        Optimized interceptor accesses where the property is on the object
5223
        on which the interceptors is attached.
5224

    
5225
        Fixed compilation problem on GCC 4.4 by changing the stack
5226
        alignment to 16 bytes.
5227

    
5228
        Fixed handle creation to follow stric aliasing rules.
5229

    
5230
        Fixed compilation on FreeBSD.
5231

    
5232
        Introduced API for forcing the deletion of a property ignoring
5233
        interceptors and attributes.
5234

    
5235

    
5236
2009-05-29: Version 1.2.6
5237

    
5238
        Added a histogram recording hit rates at different levels of the
5239
        compilation cache.
5240

    
5241
        Added stack overflow check for the RegExp analysis phase. Previously a
5242
        very long regexp graph could overflow the stack with recursive calls.
5243

    
5244
        Use a dynamic buffer when collecting log events in memory.
5245

    
5246
        Added start/stop events to the profiler log.
5247

    
5248
        Fixed infinite loop which could happen when setting a debug break while
5249
        executing a RegExp compiled to native code.
5250

    
5251
        Fixed handling of lastIndexOf called with negative index (issue 351).
5252

    
5253
        Fixed irregular crash in profiler test (issue 358).
5254

    
5255
        Fixed compilation issues with some versions of gcc.
5256

    
5257

    
5258
2009-05-26: Version 1.2.5
5259

    
5260
        Fixed bug in initial boundary check for Boyer-Moore text
5261
        search (issue 349).
5262

    
5263
        Fixed compilation issues with MinGW and gcc 4.3+ and added support
5264
        for armv7 and cortex-a8 architectures.  Patches by Lei Zhang and
5265
        Craig Schlenter.
5266

    
5267
        Added a script cache to the debugger.
5268

    
5269
        Optimized compilation performance by improving internal data
5270
        structures and avoiding expensive property load optimizations for
5271
        code that's infrequently executed.
5272

    
5273
        Exposed the calling JavaScript context through the static API
5274
        function Context::GetCalling().
5275

    
5276

    
5277
2009-05-18: Version 1.2.4
5278

    
5279
        Improved performance of floating point number allocation for ARM
5280
        platforms.
5281

    
5282
        Fixed crash when using the instanceof operator on functions with
5283
        number values in their prototype chain (issue 341).
5284

    
5285
        Optimized virtual frame operations in the code generator to speed
5286
        up compilation time and allocated the frames in the zone.
5287

    
5288
        Made the representation of virtual frames and jump targets in the
5289
        code generator much more compact.
5290

    
5291
        Avoided linear search for non-locals in scope code when resolving
5292
        variables inside with and eval scopes.
5293

    
5294
        Optimized lexical scanner by dealing with whitespace as part of
5295
        the token scanning instead of as a separate step before it.
5296

    
5297
        Changed the scavenging collector so that promoted objects do not
5298
        reside in the old generation while their remembered set is being
5299
        swept for pointers into the young generation.
5300

    
5301
        Fixed numeric overflow handling when compiling count operations.
5302

    
5303

    
5304
2009-05-11: Version 1.2.3
5305

    
5306
        Fixed bug in reporting of out-of-memory situations.
5307

    
5308
        Introduced hidden prototypes on certain builtin prototype objects
5309
        such as String.prototype to emulate JSC's behavior of restoring
5310
        the original function when deleting functions from those prototype
5311
        objects.
5312

    
5313
        Fixed crash bug in the register allocator.
5314

    
5315

    
5316
2009-05-04: Version 1.2.2
5317

    
5318
        Fixed bug in array sorting for sparse arrays (issue 326).
5319

    
5320
        Added support for adding a soname when building a shared library
5321
        on Linux (issue 151).
5322

    
5323
        Fixed bug caused by morphing internal ASCII strings to external
5324
        two-byte strings.  Slices over ASCII strings have to forward ASCII
5325
        checks to the underlying buffer string.
5326

    
5327
        Allowed API call-as-function handlers to be called as
5328
        constructors.
5329

    
5330
        Fixed a crash bug where an external string was disposed but a
5331
        slice of the external string survived as a symbol.
5332

    
5333

    
5334
2009-04-27: Version 1.2.1
5335

    
5336
        Added EcmaScript 5 JSON object.
5337

    
5338
        Fixed bug in preemption support on ARM.
5339

    
5340

    
5341
2009-04-23: Version 1.2.0
5342

    
5343
        Optimized floating-point operations on ARM.
5344

    
5345
        Added a number of extensions to the debugger API.
5346

    
5347
        Changed the enumeration order for unsigned integer keys to always
5348
        be numerical order.
5349

    
5350
        Added a "read" extension to the shell sample.
5351

    
5352
        Added support for Array.prototype.reduce and
5353
        Array.prototype.reduceRight.
5354

    
5355
        Added an option to the SCons build to control Microsoft Visual C++
5356
        link-time code generation.
5357

    
5358
        Fixed a number of bugs (in particular issue 315, issue 316,
5359
        issue 317 and issue 318).
5360

    
5361

    
5362
2009-04-15: Version 1.1.10
5363

    
5364
        Fixed crash bug that occurred when loading a const variable in the
5365
        presence of eval.
5366

    
5367
        Allowed using with and eval in registered extensions in debug mode
5368
        by fixing bogus assert.
5369

    
5370
        Fixed the source position for function returns to enable the
5371
        debugger to break there.
5372

    
5373

    
5374
2009-04-14: Version 1.1.9
5375

    
5376
        Made the stack traversal code in the profiler robust by avoiding
5377
        to look into the heap.
5378

    
5379
        Added name inferencing for anonymous functions to facilitate
5380
        debugging and profiling.
5381

    
5382
        Re-enabled stats timers in the developer shell (d8).
5383

    
5384
        Fixed issue 303 by avoiding to shortcut cons-symbols.
5385

    
5386

    
5387
2009-04-11: Version 1.1.8
5388

    
5389
        Changed test-debug/ThreadedDebugging to be non-flaky (issue 96).
5390

    
5391
        Fixed step-in handling for Function.prototype.apply and call in
5392
        the debugger (issue 269).
5393

    
5394
        Fixed v8::Object::DeleteHiddenValue to not bail out when there
5395
        are no hidden properties.
5396

    
5397
        Added workaround for crash bug, where external symbol table
5398
        entries with deleted resources would lead to NPEs when looking
5399
        up in the symbol table.
5400

    
5401

    
5402
2009-04-07: Version 1.1.7
5403

    
5404
        Added support for easily importing additional environment
5405
        variables into the SCons build.
5406

    
5407
        Optimized strict equality checks.
5408

    
5409
        Fixed crash in indexed setters on objects without a corresponding
5410
        getter (issue 298).
5411

    
5412
        Re-enabled script compilation cache.
5413

    
5414

    
5415
2009-04-01: Version 1.1.6
5416

    
5417
        Reverted an unsafe code generator change.
5418

    
5419

    
5420
2009-04-01: Version 1.1.5
5421

    
5422
        Fixed bug that caused function literals to not be optimized as
5423
        much as other functions.
5424

    
5425
        Improved profiler support.
5426

    
5427
        Fixed a crash bug in connection with debugger unloading.
5428

    
5429
        Fixed a crash bug in the code generator caused by losing the
5430
        information that a frame element was copied.
5431

    
5432
        Fixed an exception propagation bug that could cause non-null
5433
        return values when exceptions were thrown.
5434

    
5435

    
5436
2009-03-30: Version 1.1.4
5437

    
5438
        Optimized String.prototype.match.
5439

    
5440
        Improved the stack information in profiles.
5441

    
5442
        Fixed bug in ARM port making it possible to compile the runtime
5443
        system for thumb mode again.
5444

    
5445
        Implemented a number of optimizations in the code generator.
5446

    
5447
        Fixed a number of memory leaks in tests.
5448

    
5449
        Fixed crash bug in connection with script source code and external
5450
        strings.
5451

    
5452

    
5453
2009-03-24: Version 1.1.3
5454

    
5455
        Fixed assertion failures in compilation of loop conditions.
5456

    
5457
        Removed STL dependency from developer shell (d8).
5458

    
5459
        Added infrastructure for protecting the V8 heap from corruption
5460
        caused by memory modifications from the outside.
5461

    
5462

    
5463
2009-03-24: Version 1.1.2
5464

    
5465
        Improved frame merge code generated by the code generator.
5466

    
5467
        Optimized String.prototype.replace.
5468

    
5469
        Implemented __defineGetter__ and __defineSetter__ for properties
5470
        with integer keys on non-array objects.
5471

    
5472
        Improved debugger and profiler support.
5473

    
5474
        Fixed a number of portability issues to allow compilation for
5475
        smaller ARM devices.
5476

    
5477
        Exposed object cloning through the API.
5478

    
5479
        Implemented hidden properties.  This is used to expose an identity
5480
        hash for objects through the API.
5481

    
5482
        Implemented restarting of regular expressions if their input
5483
        string changes representation during preemption.
5484

    
5485
        Fixed a code generator bug that could cause assignments in loops
5486
        to be ignored if using continue to break out of the loop (issue
5487
        284).
5488

    
5489

    
5490
2009-03-12: Version 1.1.1
5491

    
5492
        Fixed an assertion in the new compiler to take stack overflow
5493
        exceptions into account.
5494

    
5495
        Removed exception propagation code that could cause crashes.
5496

    
5497
        Fixed minor bug in debugger line number computations.
5498

    
5499
        8-byte align the C stack on Linux and Windows to speed up floating
5500
        point computations.
5501

    
5502

    
5503
2009-03-12: Version 1.1.0
5504

    
5505
        Improved code generation infrastructure by doing simple register
5506
        allocation and constant folding and propagation.
5507

    
5508
        Optimized regular expression matching by avoiding to create
5509
        intermediate string arrays and by flattening nested array
5510
        representations of RegExp data.
5511

    
5512
        Traverse a few stack frames when recording profiler samples to
5513
        include partial call graphs in the profiling output.
5514

    
5515
        Added support for using OProfile to profile generated code.
5516

    
5517
        Added remote debugging support to the D8 developer shell.
5518

    
5519
        Optimized creation of nested literals like JSON objects.
5520

    
5521
        Fixed a bug in garbage collecting unused maps and turned it on by
5522
        default (--collect-maps).
5523

    
5524
        Added support for running tests under Valgrind.
5525

    
5526

    
5527
2009-02-27: Version 1.0.3
5528

    
5529
        Optimized double-to-integer conversions in bit operations by using
5530
        SSE3 instructions if available.
5531

    
5532
        Optimized initialization sequences that store to multiple
5533
        properties of the same object.
5534

    
5535
        Changed the D8 debugger frontend to use JSON messages.
5536

    
5537
        Force garbage collections when disposing contexts.
5538

    
5539
        Align code objects at 32-byte boundaries.
5540

    
5541

    
5542
2009-02-25: Version 1.0.2
5543

    
5544
        Improved profiling support by performing simple call stack
5545
        sampling for ticks and by fixing a bug in the logging of code
5546
        addresses.
5547

    
5548
        Fixed a number of debugger issues.
5549

    
5550
        Optimized code that uses eval.
5551

    
5552
        Fixed a couple of bugs in the regular expression engine.
5553

    
5554
        Reduced the size of generated code for certain regular expressions.
5555

    
5556
        Removed JSCRE completely.
5557

    
5558
        Fixed issue where test could not be run if there was a dot in the
5559
        checkout path.
5560

    
5561

    
5562
2009-02-13: Version 1.0.1
5563

    
5564
        Fixed two crash-bugs in irregexp (issue 231 and 233).
5565

    
5566
        Fixed a number of minor bugs (issue 87, 227 and 228).
5567

    
5568
        Added support for morphing strings to external strings on demand
5569
        to avoid having to create copies in the embedding code.
5570

    
5571
        Removed experimental support for external symbol callbacks.
5572

    
5573

    
5574
2009-02-09: Version 1.0.0
5575

    
5576
        Fixed crash-bug in the code generation for case independent 16 bit
5577
        backreferences.
5578

    
5579
        Made shells more robust in the presence of string conversion
5580
        failures (issue 224).
5581

    
5582
        Fixed a potential infinite loop when attempting to resolve
5583
        eval (issue 221).
5584

    
5585
        Miscellaneous fixes to the new regular expression engine.
5586

    
5587
        Reduced binary by stripping unneeded text from JavaScript library and
5588
        minifying some JavaScript files.
5589

    
5590

    
5591
2009-01-27: Version 0.4.9
5592

    
5593
        Enabled new regular expression engine.
5594

    
5595
        Made a number of changes to the debugger protocol.
5596

    
5597
        Fixed a number of bugs in the preemption support.
5598

    
5599
        Added -p option to the developer shell to run files in parallel
5600
        using preemption.
5601

    
5602
        Fixed a number of minor bugs (including issues 176, 187, 189, 192,
5603
        193, 198 and 201).
5604

    
5605
        Fixed a number of bugs in the serialization/deserialization
5606
        support for the ARM platform.
5607

    
5608

    
5609
2009-01-19: Version 0.4.8.1
5610

    
5611
        Minor patch to debugger support.
5612

    
5613

    
5614
2009-01-16: Version 0.4.8
5615

    
5616
        Fixed string length bug on ARM (issue 171).
5617

    
5618
        Made most methods in the API const.
5619

    
5620
        Optimized object literals by improving data locality.
5621

    
5622
        Fixed bug that caused incomplete functions to be cached in case of
5623
        stack overflow exceptions.
5624

    
5625
        Fixed bugs that caused catch variables and variables introduced by
5626
        eval to behave incorrectly when using accessors (issues 186, 190
5627
        and 191).
5628

    
5629

    
5630
2009-01-06: Version 0.4.7
5631

    
5632
        Minor bugfixes and optimizations.
5633

    
5634
        Added command line debugger to D8 shell.
5635

    
5636
        Fixed subtle bug that caused the wrong 'this' to be used when
5637
        calling a caught function in a catch clause.
5638

    
5639
        Inline array loads within loops directly in the code instead of
5640
        always calling a stub.
5641

    
5642

    
5643
2008-12-11: Version 0.4.6
5644

    
5645
        Fixed exception reporting bug where certain exceptions were
5646
        incorrectly reported as uncaught.
5647

    
5648
        Improved the memory allocation strategy used during compilation to
5649
        make running out of memory when compiling huge scripts less
5650
        likely.
5651

    
5652
        Optimized String.replace by avoiding the construction of certain
5653
        sub strings.
5654

    
5655
        Fixed bug in code generation for large switch statements on ARM.
5656

    
5657
        Fixed bug that caused V8 to change the global object template
5658
        passed in by the user.
5659

    
5660
        Changed the API for creating object groups used during garbage
5661
        collection.  Entire object groups are now passed to V8 instead of
5662
        individual members of the groups.
5663

    
5664

    
5665
2008-12-03: Version 0.4.5
5666

    
5667
        Added experimental API support for allocating V8 symbols as
5668
        external strings.
5669

    
5670
        Fixed bugs in debugging support on ARM.
5671

    
5672
        Changed eval implementation to correctly detect whether or not a
5673
        call to eval is aliased.
5674

    
5675
        Fixed bug caused by a combination of the compilation cache and
5676
        dictionary probing in native code.  The bug caused us to sometimes
5677
        call functions that had not yet been compiled.
5678

    
5679
        Added platform support for FreeBSD.
5680

    
5681
        Added support for building V8 on Windows with either the shared or
5682
        static version of MSVCRT
5683

    
5684
        Added the v8::jscre namespace around the jscre functions to avoid
5685
        link errors (duplicate symbols) when building Google Chrome.
5686

    
5687
        Added support for calling a JavaScript function with the current
5688
        debugger execution context as its argument to the debugger
5689
        interface.
5690

    
5691
        Changed the type of names of counters from wchar_t to char.
5692

    
5693
        Changed the Windows system call used to compute daylight savings
5694
        time.  The system call that we used to use became four times
5695
        slower on WinXP SP3.
5696

    
5697
        Added support in the d8 developer shell for memory-mapped counters
5698
        and added a stats-viewer tool.
5699

    
5700
        Fixed bug in upper/lower case mappings (issue 149).
5701

    
5702

    
5703
2008-11-17: Version 0.4.4
5704

    
5705
        Reduced code size by using shorter instruction encoding when
5706
        possible.
5707

    
5708
        Added a --help option to the shell sample and to the d8 shell.
5709

    
5710
        Added visual studio project files for building the ARM simulator.
5711

    
5712
        Fixed a number of ARM simulator issues.
5713

    
5714
        Fixed bug in out-of-memory handling on ARM.
5715

    
5716
        Implemented shell support for passing arguments to a script from
5717
        the command line.
5718

    
5719
        Fixed bug in date code that made certain date functions return -0
5720
        instead of 0 for dates before the epoch.
5721

    
5722
        Restricted applications of eval so it can only be used in the
5723
        context of the associated global object.
5724

    
5725
        Treat byte-order marks as whitespace characters.
5726

    
5727

    
5728
2008-11-04: Version 0.4.3
5729

    
5730
        Added support for API accessors that prohibit overwriting by
5731
        accessors defined in JavaScript code by using __defineGetter__ and
5732
        __defineSetter__.
5733

    
5734
        Improved handling of conditionals in test status files.
5735

    
5736
        Introduced access control in propertyIsEnumerable.
5737

    
5738
        Improved performance of some string operations by caching
5739
        information about the type of the string between operations.
5740

    
5741
        Fixed bug in fast-case code for switch statements that only have
5742
        integer labels.
5743

    
5744

    
5745
2008-10-30: Version 0.4.2
5746

    
5747
        Improved performance of Array.prototype.concat by moving the
5748
        implementation to C++ (issue 123).
5749

    
5750
        Fixed heap growth policy to avoid growing old space to its maximum
5751
        capacity before doing a garbage collection and fixed issue that
5752
        would lead to artificial out of memory situations (issue 129).
5753

    
5754
        Fixed Date.prototype.toLocaleDateString to return the date in the
5755
        same format as WebKit.
5756

    
5757
        Added missing initialization checks to debugger API.
5758

    
5759
        Added removing of unused maps during GC.
5760

    
5761

    
5762
2008-10-28: Version 0.4.1
5763

    
5764
        Added caching of RegExp data in compilation cache.
5765

    
5766
        Added Visual Studio project file for d8 shell.
5767

    
5768
        Fixed function call performance regression introduced in version
5769
        0.4.0 when splitting the global object in two parts (issue 120).
5770

    
5771
        Fixed issue 131 by checking for empty handles before throwing and
5772
        reporting exceptions.
5773

    
5774

    
5775
2008-10-23: Version 0.4.0
5776

    
5777
        Split the global object into two parts: The state holding global
5778
        object and the global object proxy.
5779

    
5780
        Fixed bug that affected the value of an assignment to an element
5781
        in certain cases (issue 116).
5782

    
5783
        Added GetPropertyNames functionality (issue 33) and extra Date
5784
        functions (issue 77) to the API.
5785

    
5786
        Changed WeakReferenceCallback to take a Persistent<Value> instead
5787
        of a Persistent<Object> (issue 101).
5788

    
5789
        Fixed issues with message reporting for exceptions in try-finally
5790
        blocks (issues 73 and 75).
5791

    
5792
        Optimized flattening of strings and string equality checking.
5793

    
5794
        Improved Boyer-Moore implementation for faster indexOf operations.
5795

    
5796
        Added development shell (d8) which includes counters and
5797
        completion support.
5798

    
5799
        Fixed problem with the receiver passed to functions called from
5800
        eval (issue 124).
5801

    
5802

    
5803
2008-10-16: Version 0.3.5
5804

    
5805
        Improved string hash-code distribution by excluding bit-field bits
5806
        from the hash-code.
5807

    
5808
        Changed string search algorithm used in indexOf from KMP to
5809
        Boyer-Moore.
5810

    
5811
        Improved the generated code for the instanceof operator.
5812

    
5813
        Improved performance of slow-case string equality checks by
5814
        specializing the code based on the string representation.
5815

    
5816
        Improve the handling of out-of-memory situations (issue 70).
5817

    
5818
        Improved performance of strict equality checks.
5819

    
5820
        Improved profiler output to make it easier to see anonymous
5821
        functions.
5822

    
5823
        Improved performance of slow-case keyed loads.
5824

    
5825
        Improved property access performance by allocating a number of
5826
        properties in the front object.
5827

    
5828
        Changed the toString behavior on the built-in object constructors
5829
        to print [native code] instead of the actual source.  Some web
5830
        applications do not like constructors with complex toString
5831
        results.
5832

    
5833

    
5834
2008-10-06: Version 0.3.4
5835

    
5836
        Changed Array.prototype.sort to use quick sort.
5837

    
5838
        Fixed code generation issue where leaving a finally block with
5839
        break or continue would accumulate elements on the expression
5840
        stack (issue 86).
5841

    
5842
        Made sure that the name accessor on functions returns the expected
5843
        names for builtin JavaScript functions and C++ callback functions.
5844

    
5845
        Added fast case code for extending the property storage array of
5846
        JavaScript objects.
5847

    
5848
        Ported switch statement optimizations introduced in version 0.3.3
5849
        to the ARM code generator.
5850

    
5851
        Allowed GCC to use strict-aliasing rules when compiling.
5852

    
5853
        Improved performance of arguments object allocation by taking care
5854
        of arguments adaptor frames in the generated code.
5855

    
5856
        Updated the V8 benchmark suite to version 2.
5857

    
5858

    
5859
2008-09-25: Version 0.3.3
5860

    
5861
        Improved handling of relocation information to enable more
5862
        peep-hole optimizations.
5863

    
5864
        Optimized switch statements where all labels are constant small
5865
        integers.
5866

    
5867
        Optimized String.prototype.indexOf for common cases.
5868

    
5869
        Fixed more build issues (issue 80).
5870

    
5871
        Fixed a couple of profiler issues.
5872

    
5873
        Fixed bug where the body of a function created using the Function
5874
        constructor was not allowed to end with a single-line comment
5875
        (issue 85).
5876

    
5877
        Improved handling of object literals by canonicalizing object
5878
        literal maps.  This will allow JSON objects with the same set of
5879
        properties to share the same map making inline caching work better
5880
        for JSON objects.
5881

    
5882

    
5883
2008-09-17: Version 0.3.2
5884

    
5885
        Generalized the EvalCache into a CompilationCache and enabled it
5886
        for scripts too.  The current strategy is to retire all entries
5887
        whenever a mark-sweep collection is started.
5888

    
5889
        Fixed bug where switch statements containing only a default case
5890
        would lead to an unbalanced stack (issue 69).
5891

    
5892
        Fixed bug that made access to the function in a named function
5893
        expression impossible in certain situations (issue 24).
5894

    
5895
        Fixed even more build issues.
5896

    
5897
        Optimized calling conventions on ARM.  The conventions on ARM and
5898
        IA-32 now match.
5899

    
5900
        Removed static initializers for flags and counters.
5901

    
5902
        Improved inline caching behavior for uncommon cases where lazily
5903
        loading Date and RegExp code could force certain code paths go
5904
        megamorphic.
5905

    
5906
        Removed arguments adaption for builtins written in C++.  This
5907
        makes Array.prototype.push and Array.prototype.pop slightly
5908
        faster.
5909

    
5910

    
5911
2008-09-11: Version 0.3.1
5912

    
5913
        Fixed a number of build issues.
5914

    
5915
        Fixed problem with missing I-cache flusing on ARM.
5916

    
5917
        Changed space layout in memory management by splitting up
5918
        code space into old data space and code space.
5919

    
5920
        Added utf-8 conversion support to the API (issue 57).
5921

    
5922
        Optimized repeated calls to eval with the same strings.  These
5923
        repeated calls are common in web applications.
5924

    
5925
        Added Xcode project file.
5926

    
5927
        Optimized a couple of Array operation.
5928

    
5929
        Fixed parser bug by checking for end-of-string when parsing break
5930
        and continue (issue 35).
5931

    
5932
        Fixed problem where asian characters were not categorized as
5933
        letters.
5934

    
5935
        Fixed bug that disallowed calling functions fetched from an array
5936
        using a string as an array index (issue 32).
5937

    
5938
        Fixed bug where the internal field count on object templates were
5939
        sometimes ignored (issue 54).
5940

    
5941
        Added -f option to the shell sample for compatibility with other
5942
        engines (issue 18).
5943

    
5944
        Added source info to TryCatches in the API.
5945

    
5946
        Fixed problem where the seed for the random number generator was
5947
        clipped in a double to unsigned int conversion.
5948

    
5949
        Fixed bug where cons string symbols were sometimes converted to
5950
        non-symbol flat strings during GC.
5951

    
5952
        Fixed bug in error reporting when attempting to convert null to an
5953
        object.
5954

    
5955

    
5956
2008-09-04: Version 0.3.0
5957

    
5958
        Added support for running tests on the ARM simulator.
5959

    
5960
        Fixed bug in the 'in' operator where negative indices were not
5961
        treated correctly.
5962

    
5963
        Fixed build issues on gcc-4.3.1.
5964

    
5965
        Changed Date.prototype.toLocaleTimeString to not print the
5966
        timezone part of the time.
5967

    
5968
        Renamed debug.h to v8-debug.h to reduce the risk of name conflicts
5969
        with user code.
5970

    
5971

    
5972
2008-09-02: Version 0.2.5
5973

    
5974
        Renamed the top level directory 'public' to 'include'.
5975

    
5976
        Added 'env' option to the SCons build scripts to support
5977
        overriding the ENV part of the build environment.  This is mostly
5978
        to support Windows builds in cases where SCons cannot find the
5979
        correct paths to the Windows SDK, as these paths cannot be passed
5980
        through shell environment variables.
5981

    
5982
        Enabled "Buffer Security Check" on for the Windows SCons build and
5983
        added the linker option /OPT:ICF as an optimization.
5984

    
5985
        Added the V8 benchmark suite to the repository.
5986

    
5987

    
5988
2008-09-01: Version 0.2.4
5989

    
5990
        Included mjsunit JavaScript test suite and C++ unit tests.
5991

    
5992
        Changed the shell sample to not print the result of executing a
5993
        script provided on the command line.
5994

    
5995
        Fixed issue when building samples on Windows using a shared V8
5996
        library.  Added visibility option on Linux build which makes the
5997
        generated library 18% smaller.
5998

    
5999
        Changed build system to accept multiple build modes in one build
6000
        and generate separate objects, libraries and executables for each
6001
        mode.
6002

    
6003
        Removed deferred negation optimization (a * -b => -(a * b)) since
6004
        this visibly changes operand conversion order.
6005

    
6006
        Improved parsing performance by introducing stack guard in
6007
        preparsing.  Without a stack guard preparsing always bails out
6008
        with stack overflow.
6009

    
6010
        Changed shell sample to take flags directly from the command-line.
6011
        Added API call that implements this.
6012

    
6013
        Added load, quit and version functions to the shell sample so it's
6014
        easier to run benchmarks and tests.
6015

    
6016
        Fixed issue with building samples and cctests on 64-bit machines.
6017

    
6018
        Fixed bug in the runtime system where the prototype chain was not
6019
        always searched for a setter when setting a property that does not
6020
        exist locally.
6021

    
6022

    
6023
2008-08-14: Version 0.2.3
6024

    
6025
        Improved performance of garbage collection by moving the
6026
        function that updates pointers during compacting collection
6027
        into the updating visitor.  This gives the compiler a better
6028
        chance to inline and avoid a function call per (potential)
6029
        pointer.
6030

    
6031
        Extended the shell sample with a --runtime-flags option.
6032

    
6033
        Added Visual Studio project files for the shell.cc and
6034
        process.cc samples.
6035

    
6036

    
6037
2008-08-13: Version 0.2.2
6038

    
6039
        Improved performance of garbage collection by changing the way
6040
        we use the marking stack in the event of stack overflow during
6041
        full garbage collection and by changing the way we mark roots.
6042

    
6043
        Cleaned up ARM version by removing top of stack caching and by
6044
        introducing push/pop elimination.
6045

    
6046
        Cleaned up the way runtime functions are called to allow
6047
        runtime calls with no arguments.
6048

    
6049
        Changed Windows build options to make sure that exceptions are
6050
        disabled and that optimization flags are enabled.
6051

    
6052
        Added first version of Visual Studio project files.
6053

    
6054

    
6055
2008-08-06: Version 0.2.1
6056

    
6057
        Improved performance of unary addition by avoiding runtime calls.
6058

    
6059
        Fixed the handling of '>' and '<=' to use right-to-left conversion
6060
        and left-to-right evaluation as specified by ECMA-262.
6061

    
6062
        Fixed a branch elimination bug on the ARM platform where incorrect
6063
        code was generated because of overly aggressive branch
6064
        elimination.
6065

    
6066
        Improved performance of code that repeatedly assigns the same
6067
        function to the same property of different objects with the same
6068
        map.
6069

    
6070
        Untangled DEBUG and ENABLE_DISASSEMBLER defines.  The disassembler
6071
        no longer expects DEBUG to be defined.
6072

    
6073
        Added platform-nullos.cc to serve as the basis for new platform
6074
        implementations.
6075

    
6076

    
6077
2008-07-30: Version 0.2.0
6078

    
6079
        Changed all text files to have native svn:eol-style.
6080

    
6081
        Added a few samples and support for building them. The samples
6082
        include a simple shell that can be used to benchmark and test V8.
6083

    
6084
        Changed V8::GetVersion to return the version as a string.
6085

    
6086
        Added source for lazily loaded scripts to snapshots and made
6087
        serialization non-destructive.
6088

    
6089
        Improved ARM support by fixing the write barrier code to use
6090
        aligned loads and stores and by removing premature locals
6091
        optimization that relied on broken support for callee-saved
6092
        registers (removed).
6093

    
6094
        Refactored the code for marking live objects during garbage
6095
        collection and the code for allocating objects in paged
6096
        spaces. Introduced an abstraction for the map word of a heap-
6097
        allocated object and changed the memory allocator to allocate
6098
        executable memory only for spaces that may contain code objects.
6099

    
6100
        Moved StringBuilder to utils.h and ScopedLock to platform.h, where
6101
        they can be used by debugging and logging modules. Added
6102
        thread-safe message queues for dealing with debugger events.
6103

    
6104
        Fixed the source code reported by toString for certain builtin
6105
        empty functions and made sure that the prototype property of a
6106
        function is enumerable.
6107

    
6108
        Improved performance of converting values to condition flags in
6109
        generated code.
6110

    
6111
        Merged disassembler-{arch} files.
6112

    
6113

    
6114
2008-07-28: Version 0.1.4
6115

    
6116
        Added support for storing JavaScript stack traces in a stack
6117
        allocated buffer to make it visible in shallow core dumps.
6118
        Controlled by the --preallocate-message-memory flag which is
6119
        disabled by default.
6120

    
6121

    
6122
2008-07-25: Version 0.1.3
6123

    
6124
        Fixed bug in JSObject::GetPropertyAttributePostInterceptor where
6125
        map transitions would count as properties.
6126

    
6127
        Allowed aliased eval invocations by treating them as evals in the
6128
        global context. This may change in the future.
6129

    
6130
        Added support for accessing the last entered context through the
6131
        API and renamed Context::Current to Context::GetCurrent and
6132
        Context::GetSecurityContext to Context::GetCurrentSecurityContext.
6133

    
6134
        Fixed bug in the debugger that would cause the debugger scripts to
6135
        be recursively loaded and changed all disabling of interrupts to
6136
        be block-structured.
6137

    
6138
        Made snapshot data read-only to allow it to be more easily shared
6139
        across multiple users of V8 when linked as a shared library.
6140

    
6141

    
6142
2008-07-16: Version 0.1.2
6143

    
6144
        Fixed building on Mac OS X by recognizing i386 and friends as
6145
        IA-32 platforms.
6146

    
6147
        Added propagation of stack overflow exceptions that occur while
6148
        compiling nested functions.
6149

    
6150
        Improved debugger with support for recursive break points and
6151
        handling of exceptions that occur in the debugger JavaScript code.
6152

    
6153
        Renamed GetInternal to GetInternalField and SetInternal to
6154
        SetInternalField in the API and moved InternalFieldCount and
6155
        SetInternalFieldCount from FunctionTemplate to ObjectTemplate.
6156

    
6157

    
6158
2008-07-09: Version 0.1.1
6159

    
6160
        Fixed bug in stack overflow check code for IA-32 targets where a
6161
        non-tagged value in register eax was pushed to the stack.
6162

    
6163
        Fixed potential quadratic behavior when converting strings to
6164
        numbers.
6165

    
6166
        Fixed bug where the return value from Object::SetProperty could
6167
        end up being the property holder instead of the written value.
6168

    
6169
        Improved debugger support by allowing nested break points and by
6170
        dealing with stack-overflows when compiling functions before
6171
        setting break points in them.
6172

    
6173

    
6174
2008-07-03: Version 0.1.0
6175

    
6176
        Initial export.
6177

    
6178
# Local Variables:
6179
# mode:text
6180
# End: