Unreviewed, rolling out r156307.
[WebKit-https.git] / Source / WTF / ChangeLog
1 2013-09-23  Commit Queue  <commit-queue@webkit.org>
2
3         Unreviewed, rolling out r156307.
4         http://trac.webkit.org/changeset/156307
5         https://bugs.webkit.org/show_bug.cgi?id=121817
6
7         Broke the build, and crashes the compiler (Requested by ap on
8         #webkit).
9
10         * wtf/ListDump.h:
11         (WTF::lessThan):
12         (WTF::sortedListDump):
13
14 2013-09-23  Anders Carlsson  <andersca@apple.com>
15
16         Test the waters and begin using lambdas
17         https://bugs.webkit.org/show_bug.cgi?id=121809
18
19         Reviewed by Andreas Kling.
20
21         * wtf/ListDump.h:
22         (WTF::sortedListDump):
23         Use std::less instead of a custom lessThan function.
24
25 2013-09-23  Anders Carlsson  <andersca@apple.com>
26
27         ListHashSet::removeLast should only remove one element.
28         
29         * wtf/ListHashSet.h:
30         (WTF::ListHashSet::removeLast):
31
32 2013-09-23  Anders Carlsson  <andersca@apple.com>
33
34         Add hash traits for std::unique_ptr
35         https://bugs.webkit.org/show_bug.cgi?id=121807
36
37         Reviewed by Antti Koivisto.
38
39         Also, convert the thread map over to using std::unique_ptr instead of OwnPtr.
40
41         * wtf/HashMap.h:
42         Remove unnecessary typedefs and add missing calls to std::forward.
43
44         * wtf/HashTraits.h:
45         Add hash trait for std::unique_ptr.
46         
47         * wtf/RefPtrHashMap.h:
48         Use std::add_lvalue_reference.
49
50         * wtf/ThreadingPthreads.cpp:
51         (WTF::establishIdentifierForPthreadHandle):
52         Change ThreadMap to be a hash map from ThreadIdentifier to std::unique_ptr<PthreadState>.
53
54 2013-09-23  Patrick Gansterer  <paroga@webkit.org>
55
56         use NOMINMAX instead of #define min min
57         https://bugs.webkit.org/show_bug.cgi?id=73563
58
59         Reviewed by Brent Fulgham.
60
61         Use NOMINMAX instead of #define min/max as a cleaner
62         way of ensuring that Windows system header files don't
63         define min/max as macro in the first place.
64
65         * config.h:
66
67 2013-09-23  Anders Carlsson  <andersca@apple.com>
68
69         Remove PassTraits.h
70         https://bugs.webkit.org/show_bug.cgi?id=121805
71
72         Reviewed by Andreas Kling.
73
74         We no longer need PassTraits.h, get rid of it.
75
76         * GNUmakefile.list.am:
77         * WTF.vcxproj/WTF.vcxproj:
78         * WTF.vcxproj/WTF.vcxproj.filters:
79         * WTF.xcodeproj/project.pbxproj:
80         * wtf/CMakeLists.txt:
81         * wtf/PassTraits.h: Removed.
82
83 2013-09-23  Anders Carlsson  <andersca@apple.com>
84
85         ListHashSet should work with move-only types
86         https://bugs.webkit.org/show_bug.cgi?id=121802
87
88         Reviewed by Andreas Kling.
89
90         Add rvalue reference overloads and calls to std::forward and std::move where appropriate.
91
92         * wtf/ListHashSet.h:
93         (WTF::::removeFirst):
94         Implement this in terms of takeFirst.
95
96         (WTF::::takeFirst):
97         Look up the iterator before we move out the value so we won't break the hash invariant.
98         
99         (WTF::::removeLast):
100         Implement this in terms of takeLast.
101
102         (WTF::::takeLast):
103         Look up the iterator before we move out the value so we won't break the hash invariant.
104
105 2013-09-23  Anders Carlsson  <andersca@apple.com>
106
107         Clean up ListHashSet
108         https://bugs.webkit.org/show_bug.cgi?id=121797
109
110         Reviewed by Antti Koivisto.
111
112         * wtf/ListHashSet.h:
113
114 2013-09-23  Anders Carlsson  <andersca@apple.com>
115
116         ListHashSet should use std::reverse_iterator for reverse iterators
117         https://bugs.webkit.org/show_bug.cgi?id=121795
118
119         Reviewed by Antti Koivisto.
120
121         Get rid of the custom reverse iterators and just use std::reverse_iterator instead.
122
123         * wtf/ListHashSet.h:
124
125 2013-09-23  Anders Carlsson  <andersca@apple.com>
126
127         De-indent ListHashSet in preparation of more changes.
128
129         Rubber-stamped by Sam Weinig.
130
131         * wtf/ListHashSet.h:
132
133 2013-09-23  Patrick Gansterer  <paroga@webkit.org>
134
135         Cleanup CMake files in WTF
136         https://bugs.webkit.org/show_bug.cgi?id=121761
137
138         Reviewed by Gyuyoung Kim.
139
140         Sort files and unify the style.
141
142         * wtf/CMakeLists.txt:
143         * wtf/PlatformEfl.cmake:
144         * wtf/PlatformGTK.cmake:
145
146 2013-09-22  Andreas Kling  <akling@apple.com>
147
148         Give purity hints to compiler to avoid penalizing repeated calls to some functions.
149         <https://webkit.org/b/121744>
150
151         Reviewed by Darin Adler.
152
153         Added a PURE_FUNCTION macro. This is supported on GCC and Clang for now.
154         Marking a function pure means that the compiler's CSE pass is free to coalesce
155         multiple calls to this function because it has no globally observable side
156         effects beyond the first call.
157
158 2013-09-20  Anders Carlsson  <andersca@apple.com>
159
160         Add an implementation of std::index_sequence from C++14
161         https://bugs.webkit.org/show_bug.cgi?id=121718
162
163         Reviewed by Ryosuke Niwa.
164
165         This will make it easier to do things like pack expansion of tuple elements.
166
167         * wtf/StdLibExtras.h:
168
169 2013-09-20  Allan Sandfeld Jensen  <allan.jensen@digia.com>
170
171         Atomics.h does not build on MinGW
172         https://bugs.webkit.org/show_bug.cgi?id=121663
173
174         Reviewed by Darin Adler.
175
176         MinGW does not have _ReadWriteBarrier() intrinsic, but does have GCC
177         inline assembler, so use the GCC definitions instead of MSVC ones.
178
179         * wtf/Atomics.h:
180         (WTF::compilerFence):
181
182 2013-09-20  Patrick Gansterer  <paroga@webkit.org>
183
184         [CMake] Use COMPILE_DEFINITIONS target property for setting BUILDING_* defines
185         https://bugs.webkit.org/show_bug.cgi?id=121672
186
187         Reviewed by Gyuyoung Kim.
188
189         Since the scope of add_definitions() is always a whole file, we need to use
190         target properties instead to set definitions only for specific targets.
191
192         * wtf/CMakeLists.txt:
193
194 2013-09-20  Patrick Gansterer  <paroga@webkit.org>
195
196         Remove duplicated secondsPerDay variables
197         https://bugs.webkit.org/show_bug.cgi?id=121601
198
199         Reviewed by Andreas Kling.
200
201         Move secondsPerDay from the source into the header file
202         to make it accessible by other code too.
203
204         * wtf/DateMath.cpp:
205         * wtf/DateMath.h:
206
207 2013-09-19  Joseph Pecoraro  <pecoraro@apple.com>
208
209         ASSERTs in isMainThread after USE(WEB_THREAD) MainThread changes
210         https://bugs.webkit.org/show_bug.cgi?id=121650
211
212         Reviewed by Benjamin Poulain.
213
214         * wtf/mac/MainThreadMac.mm:
215         (WTF::initializeMainThreadPlatform):
216
217 2013-09-19  Daniel Bates  <dabates@apple.com>
218
219         [iOS] Define mainThreadEstablishedAsPthreadMain to be true in WTF::initializeMainThreadPlatform()
220
221         Reviewed by Joseph Pecoraro.
222
223         This change was inadvertently left out of <http://trac.webkit.org/changeset/155926>.
224
225         * wtf/mac/MainThreadMac.mm:
226         (WTF::initializeMainThreadPlatform):
227
228 2013-09-19  Sam Weinig  <sam@webkit.org>
229
230         Remove OwnArrayPtr
231         https://bugs.webkit.org/show_bug.cgi?id=121612
232
233         Reviewed by Anders Carlsson.
234
235         * GNUmakefile.list.am:
236         * WTF.pro:
237         * WTF.vcxproj/WTF.vcxproj:
238         * WTF.vcxproj/WTF.vcxproj.filters:
239         * WTF.xcodeproj/project.pbxproj:
240         * wtf/Assertions.cpp:
241         * wtf/CMakeLists.txt:
242         * wtf/DateMath.h:
243         * wtf/FastBitVector.h:
244         * wtf/Forward.h:
245         * wtf/OwnArrayPtr.h: Removed.
246         * wtf/VectorTraits.h:
247
248 2013-09-19  Daniel Bates  <dabates@apple.com>
249
250         Substitute return type void for bool in function declaration for WTF::initializeWebThread()
251
252         Reviewed by Joseph Pecoraro.
253
254         Make the declaration of WTF::initializeWebThread() match the function prototype
255         of its definition.
256
257         * wtf/MainThread.h:
258
259 2013-09-19  Andreas Kling  <akling@apple.com>
260
261         Assume allocator success in Vector unless using try* functions.
262         <https://webkit.org/b/121629>
263
264         Reviewed by Anders Carlsson.
265
266         Turn some Vector::begin() null checking into assertions instead.
267
268         We have try* style functions for when an allocation request is so
269         large that it might actually fail. fastMalloc() will never return
270         null (it will just CRASH() instead.)
271
272 2013-09-18  Brent Fulgham  <bfulgham@apple.com>
273
274         [Windows] Unreviewed build correction.
275
276         * WTF.vcxproj/WTFGeneratedCommon.props: Export PLATFORMARCHITECTURE macro for use in
277         Makefiles and shell scripts.
278         * WTF.vcxproj/build-generated-files.sh: Output header search path to identify when the build
279         is confused about build architecture.
280
281 2013-09-18  Anders Carlsson  <andersca@apple.com>
282
283         RefPtrHashMap should work with move only types
284         https://bugs.webkit.org/show_bug.cgi?id=121564
285
286         Reviewed by Andreas Kling.
287
288         Add the same rvalue references and std::forward calls that already exist in HashMap.
289
290         * wtf/RefPtrHashMap.h:
291
292 2013-09-18  Filip Pizlo  <fpizlo@apple.com>
293
294         DFG should support Int52 for local variables
295         https://bugs.webkit.org/show_bug.cgi?id=121064
296
297         Reviewed by Oliver Hunt.
298
299         * wtf/PrintStream.h:
300         (WTF::ValueIgnoringContext::ValueIgnoringContext):
301         (WTF::ValueIgnoringContext::dump):
302         (WTF::ignoringContext):
303
304 2013-09-18  Andreas Kling  <akling@apple.com>
305
306         Put constant CachedPower table in read-only memory.
307         <https://webkit.org/b/121546>
308
309         Reviewed by Anders Carlsson.
310
311         * wtf/dtoa/cached-powers.cc:
312
313 2013-09-18  Commit Queue  <commit-queue@webkit.org>
314
315         Unreviewed, rolling out r156019 and r156020.
316         http://trac.webkit.org/changeset/156019
317         http://trac.webkit.org/changeset/156020
318         https://bugs.webkit.org/show_bug.cgi?id=121540
319
320         Broke tests (Requested by ap on #webkit).
321
322         * wtf/PrintStream.h:
323
324 2013-09-16  Filip Pizlo  <fpizlo@apple.com>
325
326         DFG should support Int52 for local variables
327         https://bugs.webkit.org/show_bug.cgi?id=121064
328
329         Reviewed by Oliver Hunt.
330
331         * wtf/PrintStream.h:
332         (WTF::ValueIgnoringContext::ValueIgnoringContext):
333         (WTF::ValueIgnoringContext::dump):
334         (WTF::ignoringContext):
335
336 2013-09-17  Anders Carlsson  <andersca@apple.com>
337
338         Stop explicitly using PassOwnPtr in WebCore/html
339         https://bugs.webkit.org/show_bug.cgi?id=121511
340
341         Reviewed by Andreas Kling.
342
343         Make operator= work work for different types of OwnPtrs.
344
345         * wtf/OwnPtr.h:
346
347 2013-09-17  Sam Weinig  <sam@webkit.org>
348
349         Add make_unique and start using it
350         https://bugs.webkit.org/show_bug.cgi?id=121523
351
352         Reviewed by Anders Carlsson.
353
354         * wtf/StdLibExtras.h:
355         (std::make_unique):
356         Add temporary implementation of std::make_unique that we can use until our standard
357         libraries have support for it.
358
359 2013-09-17  Darin Adler  <darin@apple.com>
360
361         Make SVGTransform::valueAsString use StringBuilder
362         https://bugs.webkit.org/show_bug.cgi?id=121498
363
364         Reviewed by Andreas Kling.
365
366         * wtf/text/StringBuilder.cpp: Added appendNumber functions corresponding to all remaining
367         String::number functions. If we find we don't need all of these we can delete them later,
368         but I don't want to give clients a reason to prefer less-efficient API to StringBuilder.
369         * wtf/text/StringBuilder.h: Ditto.
370
371 2013-09-16  Anders Carlsson  <andersca@apple.com>
372
373         HashMap should work with move-only keys
374         https://bugs.webkit.org/show_bug.cgi?id=121310
375
376         Reviewed by Darin Adler.
377
378         Add extra overloads for add and set where the key is an rvalue reference, but not a
379         template parameter rvalue reference. This way we'll coerce the key parameter to have the expected
380         type instead of the passed in type, causing map.add(StringImpl::create("Hello"), 123) work when the
381         type of map is HashMap<String, unsigned>.
382
383         Also, sprinkle && and std::forward where appropriate.
384
385         * wtf/HashMap.h:
386         * wtf/HashTable.h:
387
388 2013-09-17  Sergio Martins  <sergio.martins@kdab.com>
389
390         Fix Windows CE build on ARM.
391         https://bugs.webkit.org/show_bug.cgi?id=121490
392
393         Reviewed by Darin Adler.
394
395         * wtf/dtoa/utils.h:
396
397 2013-09-17  Mihnea Ovidenie  <mihnea@adobe.com>
398
399         REGRESSION(r155910): WebKit nightly builds don't load any page
400         https://bugs.webkit.org/show_bug.cgi?id=121482
401
402         Reviewed by Andreas Kling.
403
404         Replaced C++ style comments with C style comments.
405
406         * wtf/Platform.h:
407
408 2013-09-16  Joseph Pecoraro  <pecoraro@apple.com>
409
410         USE(WEB_THREAD): More explicit WebThread initialization
411         https://bugs.webkit.org/show_bug.cgi?id=121454
412
413         Reviewed by Benjamin Poulain.
414
415         Be more explicit when initializing WebThread only data.
416
417         * wtf/MainThread.h:
418         * wtf/MainThread.cpp:
419         (WTF::initializeWebThreadOnce):
420         (WTF::initializeWebThread):
421         Ensure one time initialization.
422
423         * wtf/mac/MainThreadMac.mm:
424         (WTF::initializeMainThreadPlatform):
425         (WTF::initializeWebThreadPlatform):
426         Move WebThread value initialization to its own function.
427
428         (WTF::isMainThread):
429         Remove no longer invalid assert if WebThread was not initialized.
430
431 2013-09-16  Benjamin Poulain  <benjamin@webkit.org>
432
433         Fix WebKit1 build after r155910
434
435         Reviewed by Anders Carlsson.
436
437         * wtf/Platform.h: Some files in WebKit include system headers before
438         WTF headers, causing the macro to be defined twice. #undef the macro
439         to support that case.
440
441 2013-09-16  Benjamin Poulain  <benjamin@webkit.org>
442
443         Disable OS X's unprefixed debug macro
444         https://bugs.webkit.org/show_bug.cgi?id=121460
445
446         Reviewed by Anders Carlsson.
447
448         * wtf/Platform.h: OS X defines a series of platform macros for debugging.
449         Some of them are really annoying because they use common names (e.g. check()).
450
451         Disable those macros so that we are not limited in how we name methods and functions.
452
453 2013-09-16  Anders Carlsson  <andersca@apple.com>
454
455         MessageQueue should use a Deque of OwnPtrs
456         https://bugs.webkit.org/show_bug.cgi?id=121450
457
458         Reviewed by Andreas Kling.
459
460         * wtf/MessageQueue.h:
461
462 2013-09-16  Anders Carlsson  <andersca@apple.com>
463
464         WTF::Deque should work with move only types
465         https://bugs.webkit.org/show_bug.cgi?id=121446
466
467         Reviewed by Andreas Kling.
468
469         * wtf/Deque.h:
470         Use std::move and std::forward where appropriate and get rid of the PassTraits include.
471
472 2013-09-16  Anders Carlsson  <andersca@apple.com>
473
474         Change a couple of COMPILE_ASSERTs to static_assert
475         https://bugs.webkit.org/show_bug.cgi?id=121441
476
477         Reviewed by Andreas Kling.
478
479         * wtf/BloomFilter.h:
480         * wtf/PackedIntVector.h:
481         (WTF::PackedIntVector::PackedIntVector):
482         * wtf/StdLibExtras.h:
483         (WTF::bitwise_cast):
484         (WTF::safeCast):
485         (WTF::roundUpToMultipleOf):
486         * wtf/StringHasher.h:
487         (WTF::StringHasher::hashMemory):
488         * wtf/Vector.h:
489         * wtf/text/AtomicString.cpp:
490         * wtf/unicode/Unicode.h:
491
492 2013-09-15  Gustavo Noronha Silva  <gns@gnome.org>
493
494         Unreviewed make distcheck fix.
495
496         * GNUmakefile.list.am:
497
498 2013-09-15  Patrick Gansterer  <paroga@webkit.org>
499
500         Fix build with Visual Studio 2012 after r153764.
501         https://bugs.webkit.org/show_bug.cgi?id=121406
502
503         Reviewed by Brent Fulgham.
504
505         * wtf/MathExtras.h:
506
507 2013-09-15  Alberto Garcia  <berto@igalia.com>
508
509         Unreviewed GTK gardening.
510
511         * GNUmakefile.list.am: remove FastAllocBase.h, this file disappeared
512         in r155251.
513
514 2013-09-15  Patrick Gansterer  <paroga@webkit.org>
515
516         [WIN] Fix build without precompiled header after r155454.
517
518         * wtf/win/GDIObject.h: Added missing windows.h include.
519
520 2013-09-15  Andreas Kling  <akling@apple.com>
521
522         Remove Ref(const T&) constructor.
523         <https://webkit.org/b/121384>
524
525         Reviewed by Anders Carlsson.
526
527         This constructor was added as a stopgap measure until we got better support
528         for move semantics in Vector.
529
530         * wtf/Ref.h:
531
532 2013-09-15  Andreas Kling  <akling@apple.com>
533
534         Unreviewed, fix ridiculous bug in WeakPtr.
535
536         I made operator!() null check the pointer to the WeakReference. :|
537
538         Caught by plugins/destroy-on-setwindow.html on bots.
539
540         * wtf/WeakPtr.h:
541         (WTF::WeakPtr::operator!):
542
543 2013-09-14  Andreas Kling  <akling@apple.com>
544
545         Get rid of ref-counting on RenderWidget.
546         <https://webkit.org/b/121357>
547
548         Reviewed by Darin Adler.
549
550         * wtf/WeakPtr.h:
551         (WTF::WeakPtr::operator!):
552
553             Add operator! to WeakPtr.
554
555 2013-09-14  Darin Adler  <darin@apple.com>
556
557         Add NeverDestroyed::get
558         https://bugs.webkit.org/show_bug.cgi?id=121358
559
560         Reviewed by Anders Carlsson.
561
562         * wtf/NeverDestroyed.h: Removed code to make this non-copyable, since we also
563         use a macro to accomplish that.
564         (WTF::NeverDestroyed::get): Added. Useful in conjuction with auto to avoid
565         having to repeat the type when we want to put one of these into a reference.
566
567 2013-09-13  Anders Carlsson  <andersca@apple.com>
568
569         Pick the correct overload when a const reference is passed to appendSlowCase.
570         https://bugs.webkit.org/show_bug.cgi?id=121326
571
572         Reviewed by Darin Adler.
573
574         * wtf/Vector.h:
575         (WTF::Vector::appendSlowCase):
576         Make sure that the pointer to the element isn't const so we'll pick the right expandCapacity overload.
577
578 2013-09-13  Anders Carlsson  <andersca@apple.com>
579
580         Avoid a couple of zero-sized fastMalloc calls
581         https://bugs.webkit.org/show_bug.cgi?id=121333
582
583         Reviewed by Geoffrey Garen.
584
585         * wtf/text/StringBuffer.h:
586         (WTF::StringBuffer::StringBuffer):
587         Initialize m_data to null if m_length is null, and use Checked<size_t> to check for
588         overflow when multiplying m_length with the character size.
589
590 2013-09-13  Brent Fulgham  <bfulgham@apple.com>
591
592         [Windows] Activate FastMalloc hardening
593         https://bugs.webkit.org/show_bug.cgi?id=121307
594
595         Reviewed by Oliver Hunt.
596
597         * wtf/FastMalloc.cpp: 
598         (WTF::SLL_Next): Add workaround for MSVC compiler bug.
599
600 2013-09-13  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
601
602         OwnArrayPtr: Never allow implicit pointer conversion
603         https://bugs.webkit.org/show_bug.cgi?id=121291
604
605         Reviewed by Anders Carlsson.
606
607         We should never allow implicit pointer conversion in OwnArrayPtr 
608         and remove its template copy constructor & template assignment operator, as:
609         - these methods are never used
610         - these methods are inappropriate to have in OwnArrayPtr as arrays do not
611           interact well with polymorphism.
612
613         * wtf/OwnArrayPtr.h:
614
615 2013-09-13  Allan Sandfeld Jensen  <allan.jensen@digia.com>
616
617         Remove support for QXmlStream as the XML parser.
618         https://bugs.webkit.org/show_bug.cgi?id=121229
619
620         Reviewed by Andreas Kling.
621
622         Removed USE flags.
623
624         * wtf/Platform.h:
625
626 2013-09-12  Mark Hahnenberg  <mhahnenberg@apple.com>
627
628         Bitmap's WordType should be a template parameter
629         https://bugs.webkit.org/show_bug.cgi?id=121238
630
631         Reviewed by Darin Adler.
632
633         The code is written as if it already is. We just need to lift it out of the class.
634         This simplifies code that wants to load, for example, a single byte rather than an 
635         entire 32-bit word. 
636
637         * wtf/Bitmap.h:
638         (WTF::Bitmap::Bitmap):
639         (WTF::Bitmap::get):
640         (WTF::Bitmap::set):
641         (WTF::Bitmap::testAndSet):
642         (WTF::Bitmap::testAndClear):
643         (WTF::Bitmap::concurrentTestAndSet):
644         (WTF::Bitmap::concurrentTestAndClear):
645         (WTF::Bitmap::clear):
646         (WTF::Bitmap::clearAll):
647         (WTF::Bitmap::nextPossiblyUnset):
648         (WTF::Bitmap::findRunOfZeros):
649         (WTF::Bitmap::count):
650         (WTF::Bitmap::isEmpty):
651         (WTF::Bitmap::isFull):
652
653 2013-09-12  Anders Carlsson  <andersca@apple.com>
654
655         Add rudimentary support for move-only types as values in HashMap
656         https://bugs.webkit.org/show_bug.cgi?id=121226
657
658         Reviewed by Andreas Kling.
659
660         * wtf/HashMap.h:
661         Change a bunch of functions to so they can take both rvalue and lvalue references and use std::forward.
662
663         * wtf/HashTraits.h:
664         (WTF::KeyValuePair::KeyValuePair):
665         Change constructors to accept both lvalues and rvalues.
666
667 2013-09-12  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
668
669         Remove home-brewed nullptr
670         https://bugs.webkit.org/show_bug.cgi?id=119624
671
672         Reviewed by Anders Carlsson.
673
674         The standard C++11 nullptr and std::nullptr_t type should be used now.
675
676         * GNUmakefile.list.am:
677         * WTF.pro:
678         * WTF.vcxproj/WTF.vcxproj:
679         * WTF.vcxproj/WTF.vcxproj.filters:
680         * WTF.xcodeproj/project.pbxproj:
681         * wtf/CMakeLists.txt:
682         * wtf/NullPtr.cpp: Removed.
683         * wtf/NullPtr.h: Removed.
684         * wtf/OwnArrayPtr.h:
685         * wtf/OwnPtr.h:
686         * wtf/PassOwnPtr.h:
687         * wtf/PassRefPtr.h:
688         * wtf/RetainPtr.h:
689         * wtf/win/GDIObject.h:
690
691 2013-09-11  Anders Carlsson  <andersca@apple.com>
692
693         Use the new C++11 function declaration syntax throughout our hash collection classes
694         https://bugs.webkit.org/show_bug.cgi?id=121195
695
696         Reviewed by Andreas Kling.
697
698         * wtf/HashMap.h:
699         * wtf/HashSet.h:
700         * wtf/HashTable.h:
701
702 2013-09-11  Anders Carlsson  <andersca@apple.com>
703
704         Add HashSet::take
705         https://bugs.webkit.org/show_bug.cgi?id=121192
706
707         Reviewed by Darin Adler.
708
709         This is mostly done to see if we can use the new C++11 function declaration syntax,
710         and for parity with HashMap::take. 
711
712         * wtf/HashMap.h:
713         * wtf/HashSet.h:
714
715 2013-09-11  Anders Carlsson  <andersca@apple.com>
716
717         HashSet should work with move only types
718         https://bugs.webkit.org/show_bug.cgi?id=121188
719
720         Reviewed by Geoffrey Garen.
721
722         * wtf/HashSet.h:
723         (WTF::HashSet::add):
724         Add a new rvalue reference overload and use std::move when calling HashTable::add.
725
726         * wtf/HashTable.h:
727         (WTF::IdentityHashTranslator::translate):
728         Change this to take an rvalue reference for the value so we can invoke the move assignment operator.
729
730         (WTF::HashTable::add):
731         Call the add member function template, using std::move to move the value.
732
733         (WTF::HashTable::add):
734         Add std::forward so we'll potentially move extra.
735
736 2013-09-11  Anders Carlsson  <andersca@apple.com>
737
738         Avoid copying a hash table bucket when inserting causes a rehash
739         https://bugs.webkit.org/show_bug.cgi?id=121185
740
741         Reviewed by Darin Adler.
742
743         Allow rehashing to track a hash bucket and return the new pointer to it, thus avoiding
744         having to do a copy of a hash table bucket as well as an extra hash lookup.
745
746         * wtf/HashTable.h:
747
748 2013-09-11  Brent Fulgham  <bfulgham@apple.com>
749
750         [Windows] Unreviewed build fix.
751
752         * wtf/win/GDIObject.h:
753         (WTF::GDIObject::GDIObject): I forgot to check in as part of
754         r155557 by using webkit-patch land in a sub-directory!
755
756 2013-09-11  Oliver Hunt  <oliver@apple.com>
757
758         Partial Information Leakage in Hash Table implementations (PrivateName)
759         https://bugs.webkit.org/show_bug.cgi?id=120663
760
761         Reviewed by Michael Saboff.
762
763         Unique strings now just generate a completely random value as their
764         hash, rather than using their this pointer.
765
766         * wtf/text/StringImpl.h:
767         (WTF::StringImpl::StringImpl):
768
769 2013-09-11  Brent Fulgham  <bfulgham@apple.com>
770
771         Unreviewed build correction.
772
773         * WTF.vcxproj/copy-files.cmd: Touch file to force WTFGenerated
774         build to copy updated GDIObject.h header file on build machines.
775
776 2013-09-11  Anders Carlsson  <andersca@apple.com>
777
778         Vector::append doesn't work if element type has overloaded operator&
779         https://bugs.webkit.org/show_bug.cgi?id=121175
780
781         Reviewed by Brent Fulgham.
782
783         Use std::addressof to get the address of the given object.
784
785         * wtf/Vector.h:
786         (WTF::::appendSlowCase):
787         (WTF::::uncheckedAppend):
788
789 2013-09-11  Anders Carlsson  <andersca@apple.com>
790
791         Vector::append doesn't work if element type has overloaded operator&
792         https://bugs.webkit.org/show_bug.cgi?id=121175
793
794         Reviewed by Brent Fulgham.
795
796         Use std::addressof to get the address of the given object.
797
798         * wtf/Vector.h:
799         (WTF::::appendSlowCase):
800         (WTF::::uncheckedAppend):
801
802 2013-09-11  Anders Carlsson  <andersca@apple.com>
803
804         VectorBuffer::swap doesn't need to use std::swap_ranges
805         https://bugs.webkit.org/show_bug.cgi?id=121164
806
807         Reviewed by Darin Adler.
808
809         There's a std::swap overload for swapping arrays, just use it instead.
810
811         * wtf/Vector.h:
812         (WTF::VectorBuffer::swap):
813
814 2013-09-11  Anders Carlsson  <andersca@apple.com>
815
816         Implement Vector::append for move-only types
817         https://bugs.webkit.org/show_bug.cgi?id=120805
818
819         Reviewed by Andreas Kling.
820
821         * wtf/Vector.h:
822         (WTF::::expandCapacity):
823         Remove const from the pointer passed to expandCapacity, it can be non-const if we're moving.
824
825         (WTF::::append):
826         Change append to take U&& and use std::forward when constructing the element and when passing
827         the element along to appendSlowCase if that's necessary.
828         
829         (WTF::::appendSlowCase):
830         Use std::forward.
831
832         (WTF::::uncheckedAppend):
833         Rename val to value.
834
835 2013-09-11  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
836
837         WTF::OwnPtr should behave similarly with the rest of WTF smart pointers
838         https://bugs.webkit.org/show_bug.cgi?id=120773
839
840         Reviewed by Anders Carlsson.
841
842         Before the change OwnPtr could take either the pointer type or the pointed-to type, which was bad
843         for the following reasons:
844         - It distinguished OwnPtr behaviour from other WTF smart pointer classes behaviour (so it was confusing for the Client).
845         - It was potential error-prone as it actually modified the type given by the Client in opaque way.
846
847         * wtf/OwnPtr.h:
848         * wtf/PassOwnPtr.h:
849
850 2013-09-11  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
851
852         OwnPtr: Use copy/move-and-swap for assignment operators
853         https://bugs.webkit.org/show_bug.cgi?id=121154
854
855         Reviewed by Anders Carlsson.
856
857         Rationals:
858         - decrease of repeated code
859         - consistency with RefPtr
860
861         * wtf/OwnPtr.h:
862         (WTF::=):
863
864 2013-09-11  Patrick Gansterer  <paroga@webkit.org>
865
866         [CMake] Split out generic Windows files into its own file
867         https://bugs.webkit.org/show_bug.cgi?id=119514
868
869         Reviewed by Gyuyoung Kim.
870
871         This allows us to add smaller CMakeLists.txt files when
872         adding additional Windows ports.
873
874         * wtf/PlatformWin.cmake: Renamed from Source/WTF/wtf/PlatformWinCE.cmake.
875
876 2013-09-10  Daniel Bates  <dabates@apple.com>
877
878         [iOS] Upstream text autosizing
879         https://bugs.webkit.org/show_bug.cgi?id=121111
880
881         Reviewed by Andy Estes and Sam Weinig.
882
883         Define iOS text autosizing to be enabled on iOS unless otherwise defined.
884
885         * wtf/FeatureDefines.h:
886
887 2013-09-10  Anders Carlsson  <andersca@apple.com>
888
889         Remove wtf/Alignment.h
890         https://bugs.webkit.org/show_bug.cgi?id=121077
891
892         Reviewed by Andreas Kling.
893
894         * GNUmakefile.list.am:
895         * WTF.pro:
896         * WTF.vcxproj/WTF.vcxproj:
897         * WTF.vcxproj/WTF.vcxproj.filters:
898         * WTF.xcodeproj/project.pbxproj:
899         * wtf/Alignment.h: Removed.
900         * wtf/CMakeLists.txt:
901         * wtf/text/ASCIIFastPath.h:
902
903 2013-09-10  Anders Carlsson  <andersca@apple.com>
904
905         More WTF/Alignment.h removal
906         https://bugs.webkit.org/show_bug.cgi?id=121125
907
908         Reviewed by Andreas Kling.
909
910         * wtf/Alignment.h:
911         * wtf/Vector.h:
912         (WTF::VectorBuffer::swap):
913         (WTF::VectorBuffer::inlineBuffer):
914         * wtf/text/ASCIIFastPath.h:
915         (WTF::isAlignedTo):
916         (WTF::isAlignedToMachineWord):
917
918 2013-09-10  Brent Fulgham  <bfulgham@apple.com>
919
920         Unreviewed build fix after r155476.
921
922         * GNUmakefile.list.am: Remove reference to deleted OwnPtrWin.cpp file.
923         * WTF.pro: Ditto.
924         * wtf/CMakeLists.txt: Ditto.
925
926 2013-09-10  Brent Fulgham  <bfulgham@apple.com>
927
928         [Windows] Create SharedGDIObject Class Template
929         https://bugs.webkit.org/show_bug.cgi?id=121037
930
931         Reviewed by Anders Carlsson.
932
933         Now that the SharedGDIObject class exists we can get rid of
934         the Windows-specific code in OwnPtr.
935
936         * WTF.vcxproj/WTF.vcxproj: Remove OwnPtrWin.cpp.
937         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
938         * wtf/OwnPtrCommon.h: 
939         (WTF::deleteOwnedPtr): Remove Windows declarations that
940         are no longer needed.
941         * wtf/win/GDIObject.h:
942         (WTF::GDIObject::get): Change to 'const' to match
943         signature (and use cases) elsewhere in the code base for
944         our smart pointer classes.
945         * wtf/win/OwnPtrWin.cpp: Removed.
946
947 2013-09-10  Anders Carlsson  <andersca@apple.com>
948
949         Remove more uses of WTF::AlignedBuffer
950         https://bugs.webkit.org/show_bug.cgi?id=121119
951
952         Reviewed by Andreas Kling.
953
954         * wtf/HashTable.h:
955         * wtf/SizeLimits.cpp:
956
957 2013-09-10  Anders Carlsson  <andersca@apple.com>
958
959         Clean up wtf/Noncopyable.h
960         https://bugs.webkit.org/show_bug.cgi?id=121115
961
962         Reviewed by Darin Adler.
963
964         Use std::aligned_storage instead of WTF::AlignedBuffer.
965
966         * wtf/NeverDestroyed.h:
967         (WTF::NeverDestroyed::NeverDestroyed):
968
969 2013-09-09  Brent Fulgham  <bfulgham@apple.com>
970
971         [Windows] Change from using OwnPtr<GDI Stuff> to new GDIObject template.
972         https://bugs.webkit.org/show_bug.cgi?id=120778
973
974         Reviewed by Anders Carlsson.
975
976         * WTF.vcxproj/WTF.vcxproj: Add new GDIObject header file.
977         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
978         * WTF.vcxproj/copy-files.cmd: Copy new header file.
979         * wtf/OwnPtrCommon.h: Remove some GDI specializations.
980         * wtf/win/GDIObject.h: Added.
981         (WTF::GDIObject::GDIObject):
982         (WTF::GDIObject::~GDIObject):
983         (WTF::GDIObject::get):
984         (WTF::GDIObject::operator!):
985         (WTF::GDIObject::operator UnspecifiedBoolType):
986         (WTF::GDIObject::operator=):
987         (WTF::GDIObject::swap):
988         (WTF::::clear):
989         (WTF::::leak):
990         (WTF::::GDIObject):
991         (WTF::=):
992         (WTF::adoptGDIObject):
993         (WTF::swap):
994         (WTF::T):
995         (WTF::HDC):
996         * wtf/win/OwnPtrWin.cpp:
997         (WTF::deleteOwnedPtr): Remove some GDI specializations.
998
999 2013-09-09  Anders Carlsson  <andersca@apple.com>
1000
1001         Introduce WTF::createOwned
1002         https://bugs.webkit.org/show_bug.cgi?id=121059
1003
1004         Reviewed by Andreas Kling.
1005
1006         WTF::createOwned is a function template that does adoptPtr + new in a single function call,
1007         with all the arguments being perfectly forwarded thanks to C++11.
1008         
1009         Being forward-looking, createOwned returns an OwnPtr rather than a PassOwnPtr since the plan is 
1010         to get rid of PassOwnPtr and just use std::move instead.
1011
1012         * wtf/FilePrintStream.cpp:
1013         * wtf/FilePrintStream.h:
1014         * wtf/HashTable.h:
1015         * wtf/ListHashSet.h:
1016         * wtf/OwnPtr.h:
1017         (WTF::OwnPtr::OwnPtr):
1018         (WTF::createOwned):
1019         (WTF::createThread):
1020         (WTF::establishIdentifierForPthreadHandle):
1021         (WTF::createThreadInternal):
1022         (WTF::Collator::userDefault):
1023         (WTF::Collator::userDefault):
1024
1025 2013-09-09  Anders Carlsson  <andersca@apple.com>
1026
1027         Remove wtf/TypeTraits.h
1028         https://bugs.webkit.org/show_bug.cgi?id=121047
1029
1030         Reviewed by Darin Adler.
1031
1032         * GNUmakefile.list.am:
1033         * WTF.pro:
1034         * WTF.vcxproj/WTF.vcxproj:
1035         * WTF.vcxproj/WTF.vcxproj.filters:
1036         * WTF.xcodeproj/project.pbxproj:
1037         * wtf/CMakeLists.txt:
1038         * wtf/TypeTraits.cpp: Removed.
1039         * wtf/TypeTraits.h: Removed.
1040         * wtf/VectorTraits.h:
1041
1042 2013-09-09  Luciano Wolf  <luciano.wolf@openbossa.org>
1043
1044         Nix upstreaming - Adding stubs and Nix specific platform files
1045         https://bugs.webkit.org/show_bug.cgi?id=118358
1046
1047         Reviewed by Benjamin Poulain.
1048
1049         Basically adding all files that have "Nix" in their names and
1050         are related to WebCore module.
1051
1052         * wtf/nix/FeatureDefinesNix.h: Added.
1053         * wtf/nix/PlatformNix.h: Added.
1054
1055 2013-09-08  Anders Carlsson  <andersca@apple.com>
1056
1057         Begin moving off of TypeTraits.h
1058         https://bugs.webkit.org/show_bug.cgi?id=121006
1059
1060         Reviewed by Darin Adler.
1061
1062         The C++11 has its own type traits implementation that is more complete and handles corner cases better
1063         since it ties into the compiler. Begin switching uses of WTF type traits to STL type traits.
1064
1065         * wtf/CheckedArithmetic.h:
1066         * wtf/HashTraits.h:
1067         * wtf/NeverDestroyed.h:
1068         * wtf/OwnPtr.h:
1069         * wtf/PassOwnPtr.h:
1070         (WTF::adoptPtr):
1071         * wtf/RetainPtr.h:
1072
1073 2013-09-09  Julien Brianceau  <jbriance@cisco.com>
1074
1075         [Qt] Remove FastAllocBase.h from WTF.pro.
1076         https://bugs.webkit.org/show_bug.cgi?id=121024
1077
1078         Reviewed by Jocelyn Turcotte.
1079
1080         * WTF.pro: Remove FastAllocBase.h as this file disappeared in r155251.
1081
1082 2013-09-08  Darin Adler  <darin@apple.com>
1083
1084         Deprecate AdoptCF and AdoptNS (on all platforms except iOS for now)
1085         https://bugs.webkit.org/show_bug.cgi?id=121017
1086
1087         Reviewed by Andreas Kling.
1088
1089         * wtf/RetainPtr.h: Use the preprocessor to rename AdoptCF and AdoptNS
1090         to DeprecatedAdoptCF and DeprecatedAdoptNS on all platforms except
1091         for iOS. Also removed an unneeded explicit conversion in the retainPtr
1092         function. Also re-sorted the using lines at the end of the file.
1093
1094 2013-09-08  Anders Carlsson  <andersca@apple.com>
1095
1096         Move WTF::notFound to Vector.h and delete NotFound.h
1097         https://bugs.webkit.org/show_bug.cgi?id=120990
1098
1099         Reviewed by Sam Weinig.
1100
1101         * GNUmakefile.list.am:
1102         * WTF.pro:
1103         * WTF.vcxproj/WTF.vcxproj:
1104         * WTF.vcxproj/WTF.vcxproj.filters:
1105         * WTF.xcodeproj/project.pbxproj:
1106         * wtf/CMakeLists.txt:
1107         * wtf/NotFound.h: Removed.
1108         * wtf/Vector.h:
1109
1110 2013-09-07  David Kilzer  <ddkilzer@apple.com>
1111
1112         gtest fails to build due to integer type mismatch in WTF::insertIntoBoundedVector()
1113         <http://webkit.org/b/120983>
1114
1115         Reviewed by Dan Bernstein.
1116
1117         Fixes the following build failure:
1118
1119             WebKitBuild/Debug/usr/local/include/wtf/StdLibExtras.h:266:23: error: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Werror,-Wshorten-64-to-32]
1120             for (unsigned i = size; i-- > index + 1;)
1121                           ~   ^~~~
1122
1123         * wtf/StdLibExtras.h:
1124         (WTF::insertIntoBoundedVector): Use size_t instead of unsigned
1125         as for loop index variable.
1126
1127 2013-09-07  Anders Carlsson  <andersca@apple.com>
1128
1129         Remove NonCopyableSort.h from WTF
1130         https://bugs.webkit.org/show_bug.cgi?id=120984
1131
1132         Reviewed by Andreas Kling.
1133
1134         std::sort as defined by C++11 moves elements when possible, so there's no need for nonCopyableSort anymore.
1135
1136         * GNUmakefile.list.am:
1137         * WTF.pro:
1138         * WTF.vcxproj/WTF.vcxproj:
1139         * WTF.vcxproj/WTF.vcxproj.filters:
1140         * WTF.xcodeproj/project.pbxproj:
1141         * wtf/NonCopyingSort.h: Removed.
1142
1143 2013-09-07  Anders Carlsson  <andersca@apple.com>
1144
1145         Get rid of PassOwnArrayPtr
1146         https://bugs.webkit.org/show_bug.cgi?id=120964
1147
1148         Reviewed by Andreas Kling.
1149
1150         Make OwnArrayPtr a proper move-only type and get rid of PassOwnArrayPtr.
1151         
1152         Ultimately I'd like to get rid of OwnArrayPtr as well and just have it be a specialization
1153         of OwnPtr<T[]>, but this is a step in the right direction.
1154
1155         * GNUmakefile.list.am:
1156         * WTF.pro:
1157         * WTF.vcxproj/WTF.vcxproj:
1158         * WTF.vcxproj/WTF.vcxproj.filters:
1159         * WTF.xcodeproj/project.pbxproj:
1160         * wtf/Assertions.cpp:
1161         * wtf/CMakeLists.txt:
1162         * wtf/DateMath.h:
1163         * wtf/FastBitVector.h:
1164         * wtf/Forward.h:
1165         * wtf/OwnArrayPtr.h:
1166         * wtf/PassOwnArrayPtr.h: Removed.
1167
1168 2013-09-07  Anders Carlsson  <andersca@apple.com>
1169
1170         VectorMover should use std::move
1171         https://bugs.webkit.org/show_bug.cgi?id=120959
1172
1173         Reviewed by Geoffrey Garen.
1174
1175         This lets the compiler use move constructors when moving data, which can be a performance improvement.
1176         If the vector element type isn't movable it will be copied instead.
1177
1178         * wtf/Vector.h:
1179         (WTF::VectorTypeOperations::move):
1180         (WTF::VectorTypeOperations::moveOverlapping):
1181
1182 2013-09-07  Anders Carlsson  <andersca@apple.com>
1183
1184         Get rid of FastAllocBase.h
1185         https://bugs.webkit.org/show_bug.cgi?id=120952
1186
1187         Reviewed by Antti Koivisto.
1188
1189         FastAllocBase.h now only contains the WTF_MAKE_FAST_ALLOCATED macro. 
1190         Move that macro to FastMalloc.h instead and remove FastAllocBase.h.
1191
1192         * WTF.vcxproj/WTF.vcxproj:
1193         * WTF.vcxproj/WTF.vcxproj.filters:
1194         * WTF.xcodeproj/project.pbxproj:
1195         * wtf/DeferrableRefCounted.h:
1196         * wtf/FastAllocBase.h: Removed.
1197         * wtf/FastMalloc.h:
1198         * wtf/HashSet.h:
1199         * wtf/MediaTime.h:
1200         * wtf/PrintStream.h:
1201         * wtf/RefCounted.h:
1202         * wtf/RefPtr.h:
1203         * wtf/ThreadingPrimitives.h:
1204         * wtf/Vector.h:
1205         * wtf/gobject/GMutexLocker.h:
1206         * wtf/unicode/Collator.h:
1207
1208 2013-09-06  Anders Carlsson  <andersca@apple.com>
1209
1210         Add a new smart pointer type for fastMalloc'ed memory
1211         https://bugs.webkit.org/show_bug.cgi?id=120911
1212
1213         Reviewed by Andreas Kling.
1214
1215         Due to an oversight on my part, Vector::releaseBuffer() currently returns an OwnPtr
1216         which means that its data will be freed with operator delete instead of fastFree.
1217         
1218         Fix this by introducing a new MllocPtr smart pointer class and change Vector::releaseBuffer() to return it instead.
1219
1220         * WTF.pro:
1221         * WTF.vcxproj/WTF.vcxproj:
1222         * WTF.vcxproj/WTF.vcxproj.filters:
1223         * WTF.xcodeproj/project.pbxproj:
1224         * wtf/CMakeLists.txt:
1225         * wtf/FastAllocBase.h:
1226         * wtf/MallocPtr.h: Added.
1227         * wtf/Vector.h:
1228         * wtf/text/StringBuffer.h:
1229         * wtf/text/StringImpl.h:
1230
1231 2013-09-06  Andreas Kling  <akling@apple.com>
1232
1233         Remove old workaround for Nokia's Harmattan GCC on Qt/ARM.
1234         <https://webkit.org/b/37253>
1235
1236         Reviewed by Anders Carlsson.
1237
1238         Apparently this was a workaround for GCC getting stuck in an infinite loop
1239         when building for ARM in a Nokia SDK over 2 years ago.
1240
1241         I think it's safe to remove this now, but if I'm wrong, and you're reading
1242         this ChangeLog wondering why I did this to you, feel free to put it back in.
1243
1244         * wtf/PassRefPtr.h:
1245         (WTF::refIfNotNull):
1246         (WTF::derefIfNotNull):
1247
1248 2013-09-06  Andreas Kling  <akling@apple.com>
1249
1250         Remove unused RefPtr(PlacementNewAdopt) constructor.
1251         <https://webkit.org/b/120914>
1252
1253         Reviewed by Anders Carlsson.
1254
1255         * wtf/RefPtr.h:
1256
1257 2013-09-06  David Kilzer  <ddkilzer@apple.com>
1258
1259         BUILD FIX (r155171): INSTALL_PATH_PREFIX should no longer be used beneath BUILT_PRODUCTS_DIR in HEADER_SEARCH_PATHS for iOS
1260
1261         * Configurations/Base.xcconfig:
1262         (HEADER_SEARCH_PATHS): Change
1263         $(BUILT_PRODUCTS_DIR)/$(INSTALL_PATH_PREFIX)/usr/local/include to
1264         $(BUILT_PRODUCTS_DIR)/usr/local/include.
1265
1266 2013-09-06  Anders Carlsson  <andersca@apple.com>
1267
1268         Remove fastNew/fastDelete
1269         https://bugs.webkit.org/show_bug.cgi?id=120904
1270
1271         Reviewed by Andreas Kling.
1272
1273         Remove the various variants of fastNew and fastDelete.
1274
1275         * wtf/FastAllocBase.h:
1276
1277 2013-09-06  Alberto Garcia  <berto@igalia.com>
1278
1279         [GTK] GlibUtilities: getCurrentExecutablePath() does not compile on GNU/Hurd
1280         https://bugs.webkit.org/show_bug.cgi?id=120793
1281
1282         Reviewed by Gustavo Noronha Silva.
1283
1284         Original patch by Svante Signell <svante.signell@telia.com>.
1285
1286         PATH_MAX is not defined in GNU/Hurd, this patch adds a dummy
1287         implementation to make it compile.
1288
1289         * wtf/gobject/GlibUtilities.cpp:
1290         (getCurrentExecutablePath):
1291
1292 2013-09-05  Dan Bernstein  <mitz@apple.com>
1293
1294         INSTALL_PATH_PREFIX is used even when not installing
1295         https://bugs.webkit.org/show_bug.cgi?id=120810
1296
1297         Reviewed by Andy Estes.
1298
1299         * Configurations/CopyWTFHeaders.xcconfig: Removed INSTALL_PATH_PREFIX from
1300         the definition of PRIVATE_HEADERS_FOLDER_PATH. Also removed the leading
1301         slash, because the Xcode definition of this build setting is relative.
1302         * WTF.xcodeproj/project.pbxproj: Prepend INSTALL_PATH_PREFIX here when installing.
1303
1304 2013-09-05  Anders Carlsson  <andersca@apple.com>
1305
1306         Fix build with older versions of clang from Xcode.
1307
1308         * wtf/Compiler.h:
1309
1310 2013-09-05  Anders Carlsson  <andersca@apple.com>
1311
1312         Make Vector::uncheckedAppend work with move-only types
1313         https://bugs.webkit.org/show_bug.cgi?id=120799
1314
1315         Reviewed by Andreas Kling.
1316
1317         * wtf/Vector.h:
1318         (WTF::::uncheckedAppend):
1319         Use std::forward to invoke the move constructor when possible.
1320
1321 2013-09-05  Anders Carlsson  <andersca@apple.com>
1322
1323         Add COMPILER_SUPPORTS(CXX_AUTO_TYPE) and #error if it's 0
1324         https://bugs.webkit.org/show_bug.cgi?id=120794
1325
1326         Reviewed by Andreas Kling.
1327
1328         People have already begun using C++11 auto in WebCore, so let's make it a prerequisite.
1329
1330         * wtf/Compiler.h:
1331
1332 2013-09-05  Anders Carlsson  <andersca@apple.com>
1333
1334         Clean up wtf/Compiler.h
1335         https://bugs.webkit.org/show_bug.cgi?id=120790
1336
1337         Reviewed by Andreas Kling.
1338
1339         - Get rid of the CLANG_PRAGMA define, it's not used anywhere.
1340         - Remove a workaround for a bug in the version of clang that came with Xcode 4.2.
1341         - Replace WTF_COMPILER_SUPPORTS_CXX_FINAL_CONTROL with a compiler quirk for versions of clang
1342           that have a buggy final implementation and fix a bug in the macro where final would be disabled
1343           for versions of clang where __clang_minor__ is less than 2, regardless of the major version.
1344         - Fail if someone tries to compile the WebKit stack with a compiler that doesn't support rvalue
1345           references or static_assert.
1346
1347         * wtf/Compiler.h:
1348
1349 2013-09-05  Anders Carlsson  <andersca@apple.com>
1350
1351         Change StringBuffer back to not use an OwnPtr in an attempt to fix ports.
1352         
1353         * wtf/text/StringBuffer.h:
1354
1355 2013-09-04  Anders Carlsson  <andersca@apple.com>
1356
1357         Vector::releaseBuffer should return an OwnPtr
1358         https://bugs.webkit.org/show_bug.cgi?id=120718
1359
1360         Reviewed by Andreas Kling.
1361
1362         Change Vector::releaseBuffer() to return an OwnPtr. I intentionally chose
1363         to use an OwnPtr over a PassOwnPtr since we're trying to move away from PassOwnPtr objects.
1364         
1365         Fix fallout from this change by adopting OwnPtr/PassOwnPtr in StringBuffer and the two StringImpl
1366         constructors that adopt the passed in pointer.
1367
1368         * wtf/Vector.h:
1369         * wtf/text/StringBuffer.h:
1370         * wtf/text/StringImpl.h:
1371
1372 2013-09-05  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
1373
1374         Remove String(RefPtr<StringImpl>) constructor
1375         https://bugs.webkit.org/show_bug.cgi?id=120767
1376
1377         Reviewed by Anders Carlsson.
1378
1379         The String(RefPtr<StringImpl>) constructor should be removed for the following reasons:
1380         - It almost does not have clients, so it is unneeded.
1381         - RefPtr should never be passed by value
1382
1383         * wtf/text/StringBuilder.cpp:
1384         (WTF::StringBuilder::shrinkToFit):
1385         * wtf/text/WTFString.h:
1386
1387 2013-09-05  Jaehun Lim  <ljaehun.lim@samsung.com>
1388
1389         Unreviewed. Fix build after r155083
1390
1391         Source/WTF/wtf/Vector.h:1210:48: error: ‘>>’ should be ‘> >’ within a nested template argument list
1392
1393         * wtf/Vector.h: Add missing space.
1394
1395 2013-09-04  Mark Rowe  <mrowe@apple.com>
1396
1397         Fix AutodrainedPool.h to compile without errors under ARC.
1398
1399         Rubber-stamped by Anders Carlsson.
1400
1401         * wtf/AutodrainedPool.h: Some versions of Clang complain about any use of NSAutoreleasePool under ARC.
1402         Change the type of the member variable to id to work around this. Since the implementation file is compiled
1403         under manual reference counting, everything will work fine.
1404
1405 2013-09-04  Anders Carlsson  <andersca@apple.com>
1406
1407         De-indent Vector.h.
1408
1409         Rubber-stamped by Andreas Kling.
1410         
1411         I'm cleaning up Vector and making it work with move-only objects, and the namespace WTF
1412         indentation is driving me crazy.
1413
1414         * wtf/Vector.h:
1415
1416 2013-09-03  Filip Pizlo  <fpizlo@apple.com>
1417
1418         CodeBlock memory cost reporting should be rationalized
1419         https://bugs.webkit.org/show_bug.cgi?id=120615
1420
1421         Reviewed by Darin Adler.
1422
1423         * wtf/RefCountedArray.h:
1424         (WTF::RefCountedArray::refCount):
1425
1426 2013-09-03  Enrica Casucci  <enrica@apple.com>
1427
1428         Follow up to http://trac.webkit.org/changeset/155014
1429
1430         Reviewed by Alexey Proskuryakov.
1431
1432         In the r155014 I renamed hasLineBreakingPropertyComplexContext
1433         to requiresComplexContextForWordBreaking but forgot to
1434         make the same change in UnicodeWchar.h.
1435
1436         * wtf/unicode/wchar/UnicodeWchar.cpp:
1437         (WTF::Unicode::requiresComplexContextForWordBreaking):
1438         * wtf/unicode/wchar/UnicodeWchar.h:
1439
1440 2013-09-03  Enrica Casucci  <enrica@apple.com>
1441
1442         Can't select Katakana word by double-clicking.
1443         <rdar://problem/14654926>
1444
1445         Reviewed by Alexey Proskuryakov and Ryosuke Niwa.
1446
1447         For some languages, like Japanese we need
1448         to use more context for word breaking.
1449         I've renamed the function to better reflect its use
1450         and remove the unused hasLineBreakingPropertyComplexContextOrIdeographic.
1451
1452         * wtf/unicode/icu/UnicodeIcu.h:
1453         (WTF::Unicode::requiresComplexContextForWordBreaking):
1454
1455 2013-09-03  Andreas Kling  <akling@apple.com>
1456
1457         Support Vector<Ref<T>>.
1458         <https://webkit.org/b/120637>
1459
1460         Reviewed by Antti Koivisto.
1461
1462         Add a Ref(const T&) constructor to enable Vector<Ref<T>>. This looks a bit awkward
1463         but is necessary for Vector::append(const T&) to find a constructor.
1464
1465         An alternative would be to add something like std::vector::emplace_back, but I can't
1466         think of a good name for that, and it'd be nice if append() would "just work."
1467
1468         Also add operator->(). I initially excluded this because I felt it made for
1469         unsafe-looking code. Things quickly got out of hand with .get() everywhere though.
1470
1471         IMO -> looks OK as long as it's only used on the first link in a dereference chain,
1472         as that variable and its type will be "in context."
1473
1474         * wtf/Ref.h:
1475         (WTF::Ref::Ref):
1476         (WTF::Ref::~Ref):
1477         (WTF::Ref::operator->):
1478         (WTF::Ref::get):
1479         * wtf/VectorTraits.h:
1480
1481             Add simple traits for Ref<T> so it can be moved around freely by Vector.
1482
1483 2013-09-03  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
1484
1485         Check WTF::VectorFiller template argument type size in compile time
1486         https://bugs.webkit.org/show_bug.cgi?id=120631
1487
1488         Reviewed by Darin Adler.
1489
1490         The template argument's type size in WTF::VectorFiller 'memset' specialization
1491         should be checked during compilation rather than in runtime.
1492
1493         * wtf/Vector.h:
1494
1495 2013-09-02  Darin Adler  <darin@apple.com>
1496
1497         Cut down on double hashing and code needlessly using hash table iterators
1498         https://bugs.webkit.org/show_bug.cgi?id=120611
1499
1500         Reviewed by Andreas Kling.
1501
1502         Double hashing is common in code that needs to combine a remove with some
1503         action to only be done if the code is removed. The only way to avoid it is
1504         to write code using find and a hash table iterator. To help with this, add
1505         a boolean return value to remove functions to indicate if anything was removed.
1506
1507         Double hashing also happens in code that does a get followed by a remove.
1508         The take function is helpful in this case. To help with this, add a takeFirst
1509         funciton to ListHashSet.
1510
1511         * wtf/HashCountedSet.h:
1512         (WTF::HashCountedSet::removeAll): Added a boolean return value, analogous to the one
1513         that the HashCountedSet::remove function already has.
1514
1515         * wtf/HashMap.h:
1516         (WTF::HashMap::remove): Added a boolean return value, true if something was removed.
1517         * wtf/HashSet.h:
1518         (WTF::HashSet::remove): Ditto.
1519         * wtf/RefPtrHashMap.h:
1520         (WTF::RefPtrHashMap::remove): Ditto.
1521
1522         * wtf/ListHashSet.h:
1523         (WTF::ListHashSet::takeFirst): Added.
1524         (WTF::ListHashSet::takeLast): Added.
1525         (WTF::ListHashSet::remove): Added a boolean return value, true if something was removed.
1526
1527         * wtf/WTFThreadData.h:
1528         (JSC::IdentifierTable::remove): Use the new remove return value to get rid of most of
1529         the code in this function.
1530
1531 2013-09-02  David Kilzer  <ddkilzer@apple.com>
1532
1533         Remove duplicate entries found by Xcode in WTF project
1534
1535         Platform.h was duplicated in r111778 after being added in
1536         r111504.
1537
1538         A dangling reference to Ref.h was added in r154962.
1539
1540         * WTF.xcodeproj/project.pbxproj: Remove duplicate entries for
1541         Platform.h and Ref.h.
1542
1543 2013-09-02  Andreas Kling  <akling@apple.com>
1544
1545         Actually add Ref.h
1546
1547 2013-09-02  Darin Adler  <darin@apple.com>
1548
1549         [Mac] No need for HardAutorelease, which is same as CFBridgingRelease
1550         https://bugs.webkit.org/show_bug.cgi?id=120569
1551
1552         Reviewed by Andy Estes.
1553
1554         * wtf/ObjcRuntimeExtras.h: Added a FIXME about miscapitalization of ObjC.
1555         Deleted HardAutorelease.
1556         (wtfObjcMsgSend): Dropped the use of abbreviations in local class and argument names.
1557         (wtfCallIMP): Ditto.
1558
1559 2013-09-01  Andreas Kling  <akling@apple.com>
1560
1561         Ref: A smart pointer for the reference age.
1562         <https://webkit.org/b/120570>
1563
1564         Reviewed by Antti Koivisto.
1565
1566         Add a very simple simple Ref<T> smart pointer class that is never null.
1567         It's initialized by passing a T& to the constructor and cannot be assigned to.
1568
1569         operator-> is not overloaded, to prevent unsafe-looking code.
1570         The value is extracted by "T& get()", since C++ does not let you override operator.()
1571
1572         * wtf/Ref.h:
1573
1574 2013-08-30  Oliver Hunt  <oliver@apple.com>
1575
1576         Make JSValue bool conversion less dangerous
1577         https://bugs.webkit.org/show_bug.cgi?id=120505
1578
1579         Reviewed by Darin Adler.
1580
1581         Make LIKELY and UNLIKELY macros coerce to bool before
1582         passing to expect.
1583
1584         * wtf/Compiler.h:
1585
1586 2013-08-30  Antti Koivisto  <antti@apple.com>
1587
1588         Remove code behind ENABLE(DIALOG_ELEMENT)
1589         https://bugs.webkit.org/show_bug.cgi?id=120467
1590
1591         Reviewed by Darin Adler.
1592
1593         * wtf/FeatureDefines.h:
1594
1595 2013-08-29  Sam Weinig  <sam@webkit.org>
1596
1597         Add ENABLE guards for Promises
1598         https://bugs.webkit.org/show_bug.cgi?id=120488
1599
1600         Reviewed by Andreas Kling.
1601
1602         * wtf/FeatureDefines.h:
1603
1604 2013-08-28  Zan Dobersek  <zdobersek@igalia.com>
1605
1606         [GTK] Add support for building JSC with FTL JIT enabled
1607         https://bugs.webkit.org/show_bug.cgi?id=120270
1608
1609         Reviewed by Filip Pizlo.
1610
1611         * wtf/Platform.h: Define ENABLE_FTL_JIT to the value of 1 for the GTK port if building for the x86-64
1612         architecture with LLVM present and the define not being previously defined. This is applicable when
1613         configuring the Automake build with '--enable-ftl-jit=auto'.
1614
1615 2013-08-27  Arunprasad Rajkumar  <arurajku@cisco.com>
1616
1617         Replace currentTime() with monotonicallyIncreasingTime() in WebCore
1618         https://bugs.webkit.org/show_bug.cgi?id=119958
1619
1620         Reviewed by Alexey Proskuryakov.
1621
1622         WTF::currentTime() is prone to NTP and manual adjustments, so use
1623         WTF::monotonicallyIncreasingTime() to measure elapsed time.
1624
1625         It is a continuation of r154201.
1626
1627         * wtf/CurrentTime.h: Edited comment.
1628
1629 2013-08-27  Andre Moreira Magalhaes   <andre.magalhaes@collabora.co.uk>
1630
1631         [gstreamer] Make sure gstreamer source element is thread-safe
1632         https://bugs.webkit.org/show_bug.cgi?id=115352
1633
1634         Reviewed by Philippe Normand.
1635
1636         Add convenience class that simplifies locking and unlocking a GMutex.
1637
1638         * GNUmakefile.list.am:
1639         * wtf/gobject/GMutexLocker.h: Added.
1640         (WebCore::GMutexLocker::GMutexLocker):
1641         (WebCore::GMutexLocker::~GMutexLocker):
1642         (WebCore::GMutexLocker::lock):
1643         (WebCore::GMutexLocker::unlock):
1644         (WebCore::GMutexLocker::mutex):
1645
1646 2013-08-26  Andy Estes  <aestes@apple.com>
1647
1648         Don't leak objects in HardAutorelease when OBJC_NO_GC is undefined but
1649         Objective-C GC is disabled at runtime.
1650         
1651         Reviewed by Darin Adler.
1652
1653         * wtf/ObjcRuntimeExtras.h:
1654         (HardAutorelease):
1655
1656 2013-08-23  Andy Estes  <aestes@apple.com>
1657
1658         Fix issues found by the Clang Static Analyzer
1659         https://bugs.webkit.org/show_bug.cgi?id=120230
1660
1661         Reviewed by Darin Adler.
1662
1663         * wtf/ObjcRuntimeExtras.h:
1664         (HardAutorelease): Added a canonical implementation of HardAutorelease.
1665
1666 2013-08-26  Zan Dobersek  <zdobersek@igalia.com>
1667
1668         Undefine __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS before redefining them
1669         https://bugs.webkit.org/show_bug.cgi?id=120313
1670
1671         Reviewed by Darin Adler.
1672
1673         * wtf/LLVMHeaders.h: Undefine the two macros before they are defined again.
1674         This way we avoid the compilation-time warnings about the macros being invalidly redefined.
1675
1676 2013-08-26  Oliver Hunt  <oliver@apple.com>
1677
1678         Building is so overrated.
1679
1680         * wtf/Compression.cpp:
1681         (WTF::GenericCompressedData::decompress):
1682
1683 2013-08-26  Oliver Hunt  <oliver@apple.com>
1684
1685         Disable compression under MSVC for now as we're getting
1686         weird release-only failures.
1687
1688         * wtf/Compression.cpp:
1689
1690 2013-08-24  Benjamin Poulain  <benjamin@webkit.org>
1691
1692         Save three bytes per CStringBuffer object
1693         https://bugs.webkit.org/show_bug.cgi?id=120040
1694
1695         Reviewed by Darin Adler.
1696
1697         Merge https://chromium.googlesource.com/chromium/blink/+/894ae8eafdb64912aefd8f9c809f4ccda84f3b89
1698
1699         sizeof(CStringBuffer) was rounded up to 8 on account of struct size and
1700         alignment rules. This is clearly not what was intended.
1701
1702         * wtf/text/CString.cpp:
1703         (WTF::CStringBuffer::createUninitialized):
1704         * wtf/text/CString.h:
1705         (WTF::CStringBuffer::data):
1706         (WTF::CStringBuffer::mutableData):
1707
1708 2013-08-24  Darin Adler  <darin@apple.com>
1709
1710         RetainPtr lacks move constructor for case when argument is a RetainPtr of a different type
1711         https://bugs.webkit.org/show_bug.cgi?id=120255
1712
1713         Reviewed by Andreas Kling.
1714
1715         * wtf/RetainPtr.h: Added missing move constructor, modeled on the other move constructor,
1716         and the one from RetPtr.
1717
1718 2013-08-24  Oliver Hunt  <oliver@apple.com>
1719
1720         Make the world build.
1721
1722         * wtf/Compression.h:
1723
1724 2013-08-24  Oliver Hunt  <oliver@apple.com>
1725
1726         REGRESSION(r154498): Crashes on EFL, GTK, Qt on release configurations
1727         https://bugs.webkit.org/show_bug.cgi?id=120246
1728
1729         Reviewed by Antti Koivisto.
1730
1731         Undestroy all the platforms that don't use the global new overload
1732
1733         * wtf/Compression.h:
1734
1735 2013-08-21  Mark Rowe  <mrowe@apple.com>
1736
1737         <https://webkit.org/b/120141> Make RetainPtr work with ARC.
1738
1739         Have RetainPtr store the object its managing as a CFTypeRef and manage its lifetime with
1740         CFRetain / CFRelease. This is necessary to have explicit control over the lifetime of
1741         Objective-C objects when automatic reference counting is in use. Two helper methods are
1742         introduced to convert between the pointer type that the RetainPtr manages and the CFTypeRef
1743         that the pointer is stored as. For CF types and Objective-C types with ARC disabled,
1744         these methods are simply casts. For Objective-C types under ARC they need to use the
1745         special bridging casts to keep the compiler happy.
1746
1747         Reviewed by Anders Carlsson.
1748
1749         * wtf/RetainPtr.h:
1750         (WTF::RetainPtr::RetainPtr): Use the helper methods to convert to and from the storage
1751         types when necessary.
1752         (WTF::RetainPtr::~RetainPtr): Ditto.
1753         (WTF::RetainPtr::get): Ditto.
1754         (WTF::RetainPtr::operator->): Ditto.
1755         (WTF::RetainPtr::operator PtrType): Ditto.
1756         (WTF::::RetainPtr): Ditto.
1757         (WTF::::clear): Ditto.
1758         (WTF::::leakRef): Ditto.
1759         (WTF::=): Ditto.
1760
1761         (WTF::RetainPtr::fromStorageTypeHelper): Use crazy template magic to determine whether to use
1762         a bridging cast or not depending on the desired return type.
1763         (WTF::RetainPtr::fromStorageType):
1764         (WTF::RetainPtr::toStorageType): Overloading is sufficient here.
1765
1766 2013-08-21  Mark Rowe  <mrowe@apple.com>
1767
1768         Revert r153637.
1769
1770         It didn't work with ARC like it said it would. We'll need to take a slightly different approach.
1771
1772         Rubber-stamped by Anders Carlsson.
1773
1774         * wtf/RetainPtr.h:
1775         (WTF::RetainPtr::RetainPtr):
1776         (WTF::RetainPtr::~RetainPtr):
1777         (WTF::RetainPtr::operator UnspecifiedBoolType):
1778         (WTF::::RetainPtr):
1779         (WTF::::clear):
1780         (WTF::=):
1781         (WTF::adoptCF):
1782         (WTF::adoptNS):
1783
1784 2013-08-23  Brent Fulgham  <bfulgham@apple.com>
1785
1786         [Windows] Unreviewed build correction after r154513.
1787
1788         * WTF.vcxproj/build-generated-files.sh: Variable was missing '$' character.
1789
1790 2013-08-23  Darin Adler  <darin@apple.com>
1791
1792         Cut down repeated code in RefPtr and RetainPtr by using copy/move-and-swap for assignment operators
1793         https://bugs.webkit.org/show_bug.cgi?id=120223
1794
1795         Reviewed by Anders Carlsson.
1796
1797         * wtf/RefPtr.h: Switch to copy-and-swap in the assignment operators. The move ones already were done
1798         that way.
1799         * wtf/RetainPtr.h: Ditto, except for the move ones too.
1800
1801 2013-08-23  Oliver Hunt  <oliver@apple.com>
1802
1803         Add more validation logic to CompressibleVector
1804         https://bugs.webkit.org/show_bug.cgi?id=120227
1805
1806         Reviewed by Brent Fulgham.
1807
1808         Add a pile of assertions to try on catch whatever is going wrong
1809         in the windows environment or other platforms.
1810
1811         * wtf/Compression.cpp:
1812         (WTF::GenericCompressedData::create):
1813         (WTF::GenericCompressedData::decompress):
1814         * wtf/Compression.h:
1815         (WTF::CompressedVector::decompress):
1816
1817 2013-08-23  Alex Christensen  <achristensen@apple.com>
1818
1819         Re-separating Win32 and Win64 builds.
1820         https://bugs.webkit.org/show_bug.cgi?id=120178
1821
1822         Reviewed by Brent Fulgham.
1823
1824         * WTF.vcxproj/WTFGenerated.make:
1825         Pass PlatformArchitecture as a command line parameter to bash scripts.
1826         * WTF.vcxproj/build-generated-files.sh:
1827         Use PlatformArchitecture from command line to determine which object directory to use (obj32 or obj64).
1828
1829 2013-08-22  Filip Pizlo  <fpizlo@apple.com>
1830
1831         build-jsc --ftl-jit should work
1832         https://bugs.webkit.org/show_bug.cgi?id=120194
1833
1834         Reviewed by Oliver Hunt.
1835
1836         * wtf/LLVMHeaders.h: I don't know what went wrong here. If HAVE(LLVM), then we need those headers!
1837
1838 2013-08-23  Brent Fulgham  <bfulgham@apple.com>
1839
1840         [Windows] Unreviewed build correction after r154498.
1841
1842         * WTF.vcxproj/WTF.vcxproj.filters: Adjust files so they show up
1843         in the proper folders.
1844         * WTF.vcxproj/WTFCommon.props: Add search path for zlib header and
1845         include link directive.
1846
1847 2013-08-23  Oliver Hunt  <oliver@apple.com>
1848
1849         Attempt to appease windows bot.
1850
1851         * wtf/Compression.h:
1852
1853 2013-08-23  Oliver Hunt  <oliver@apple.com>
1854
1855         Re-sort xcode project file
1856
1857         * WTF.xcodeproj/project.pbxproj:
1858
1859 2013-08-23  Oliver Hunt  <oliver@apple.com>
1860
1861         Support in memory compression of rarely used data
1862         https://bugs.webkit.org/show_bug.cgi?id=120143
1863
1864         Reviewed by Gavin Barraclough.
1865
1866         Adds a set of utility functions to wrap the use of zlib over a generic
1867         type or a Vector<> as well as adding CompressibleVector that wraps
1868         either a Vector<> or compressed data.
1869
1870         * GNUmakefile.list.am:
1871         * WTF.pro:
1872         * WTF.vcxproj/WTF.vcxproj:
1873         * WTF.xcodeproj/project.pbxproj:
1874         * wtf/CMakeLists.txt:
1875         * wtf/CheckedArithmetic.h:
1876         * wtf/Compression.cpp: Added.
1877         (WTF::zAlloc):
1878         (WTF::zFree):
1879         (WTF::GenericCompressedData::create):
1880         (WTF::GenericCompressedData::decompress):
1881         * wtf/Compression.h: Added.
1882         (WTF::GenericCompressedData::compressedSize):
1883         (WTF::GenericCompressedData::originalSize):
1884         (WTF::GenericCompressedData::GenericCompressedData):
1885         (WTF::CompressedVector::create):
1886         (WTF::CompressedVector::decompress):
1887         (WTF::CompressedVector::size):
1888         (WTF::CompressibleVector::CompressibleVector):
1889         (WTF::CompressibleVector::shrinkToFit):
1890         (WTF::CompressibleVector::size):
1891         (WTF::CompressibleVector::operator[]):
1892         (WTF::CompressibleVector::at):
1893         (WTF::CompressibleVector::begin):
1894         (WTF::CompressibleVector::end):
1895         (WTF::CompressibleVector::data):
1896         (WTF::CompressibleVector::decompressIfNecessary):
1897
1898 2013-08-21  Commit Queue  <commit-queue@webkit.org>
1899
1900         Unreviewed, rolling out r154416.
1901         http://trac.webkit.org/changeset/154416
1902         https://bugs.webkit.org/show_bug.cgi?id=120147
1903
1904         Broke Windows builds (Requested by rniwa on #webkit).
1905
1906         * WTF.vcxproj/WTFGenerated.make:
1907         * WTF.vcxproj/build-generated-files.sh:
1908
1909 2013-08-21  Alex Christensen  <achristensen@apple.com>
1910
1911         <https://webkit.org/b/120137> Separating Win32 and Win64 builds.
1912
1913         Reviewed by Brent Fulgham.
1914
1915         * WTF.vcxproj/WTFGenerated.make:
1916         Pass PlatformArchitecture as a command line parameter to bash scripts.
1917         * WTF.vcxproj/build-generated-files.sh:
1918         Use PlatformArchitecture from command line to determine which object directory to use (obj32 or obj64).
1919
1920 2013-08-21  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1921
1922         Disable maybe-uninitialized warning in GCC 4.8
1923         https://bugs.webkit.org/show_bug.cgi?id=119835
1924
1925         Reviewed by Anders Carlsson.
1926
1927         Disable the maybe-uninitialized warning.
1928
1929         * wtf/Compiler.h:
1930
1931 2013-08-20  Alex Christensen  <achristensen@apple.com>
1932
1933         Use PlatformArchitecture to distinguish between 32-bit and 64-bit builds on Windows.
1934         https://bugs.webkit.org/show_bug.cgi?id=119512
1935
1936         Reviewed by Brent Fulgham.
1937
1938         * WTF.vcxproj/WTFGeneratedCommon.props:
1939         Replaced obj32, bin32, and lib32 with macros for 64-bit build.
1940
1941 2013-08-20  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
1942
1943         <https://webkit.org/b/120056> [GTK][ARM] enable DFG_JIT
1944
1945         Reviewed by Martin Robinson.
1946
1947         Enable DFG_JIT in GTK+ platform for ARM/Thumb architecture
1948
1949         * wtf/Platform.h:
1950
1951 2013-08-19  Ryosuke Niwa  <rniwa@webkit.org>
1952
1953         <https://webkit.org/b/120049> Delete code for Snow Leopard
1954
1955         Reviewed by Benjamin Poulain.
1956
1957         * wtf/FastMalloc.cpp:
1958         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
1959         * wtf/FeatureDefines.h:
1960         * wtf/Platform.h:
1961
1962 2013-08-19  Joseph Pecoraro  <pecoraro@apple.com>
1963
1964         <https://webkit.org/b/120036> [iOS] Upstream Source/WTF Xcode project for iOS
1965
1966         Reviewed by David Kilzer.
1967
1968         Include iOS only WebCoreThread.* files in an ios group, and clean up
1969         the included files a bit.
1970
1971         * WTF.xcodeproj/project.pbxproj:
1972         * wtf/ios/WebCoreThread.cpp:
1973         * wtf/ios/WebCoreThread.h:
1974
1975 2013-08-19  Joseph Pecoraro  <pecoraro@apple.com>
1976
1977         <https://webkit.org/b/119905> [iOS] Upstream Source/WTF
1978
1979         Reviewed by Benjamin Poulain.
1980
1981         Upstream iOS WebKit Source/WTF.
1982
1983         * Configurations/Base.xcconfig:
1984         JavaScriptCore.framework is a public framework.
1985
1986         * wtf/Assertions.h:
1987         Define an export macro for iOS projects just including <wtf/Assertions.h>.
1988
1989         * wtf/Platform.h:
1990         * wtf/FeatureDefines.h:
1991         iOS ENABLE and USE defines.
1992
1993         * wtf/MainThread.h:
1994         * wtf/mac/MainThreadMac.mm:
1995         (WTF::initializeApplicationUIThreadIdentifier):
1996         (WTF::initializeWebThreadIdentifier):
1997         (WTF::canAccessThreadLocalDataForThread):
1998         * wtf/WeakPtr.h:
1999         (WTF::WeakReference::get):
2000         (WTF::WeakReference::clear):
2001         Shared WebThread and MainThread access to thread local data.
2002
2003         * wtf/WTFThreadData.cpp:
2004         (WTF::WTFThreadData::WTFThreadData):
2005         Shared WebThread and MainThread identifier tables.
2006
2007         * wtf/ThreadSpecific.h:
2008         (WTF::::replace):
2009         Used later on so that WebThread can share the MainThread's thread global data.
2010
2011         * wtf/text/StringStatics.cpp:
2012         (WTF::AtomicString::init):
2013         When USE(WEB_THREAD) assert AtomicString::init is initialized on the realMainThread.
2014
2015         * wtf/unicode/CharacterNames.h:
2016         * wtf/unicode/icu/UnicodeIcu.h:
2017         (WTF::Unicode::hasLineBreakingPropertyComplexContextOrIdeographic):
2018         Minor iOS constants and functions used later by WebCore.
2019
2020 2013-08-16  Arunprasad Rajkumar  <arurajku@cisco.com>
2021
2022         <https://webkit.org/b/119785> Replace currentTime() with monotonicallyIncreasingTime() in WebCore
2023
2024         Reviewed by Alexey Proskuryakov.
2025
2026         WTF::currentTime() is prone to DST changes and NTP adjustments, so use
2027         WTF::monotonicallyIncreasingTime() to measure elapsed time.
2028
2029         * wtf/CurrentTime.h:
2030         (WTF::monotonicallyIncreasingTimeMS): Added mille second version of monotonic time API.
2031
2032 2013-08-15  Filip Pizlo  <fpizlo@apple.com>
2033
2034         refCount() of a StringImpl could be zero if it's static; in that case we shouldn't report extra memory cost
2035         https://bugs.webkit.org/show_bug.cgi?id=119870
2036
2037         Reviewed by Mark Hahnenberg.
2038
2039         * wtf/text/StringImpl.h:
2040         (WTF::StringImpl::costDuringGC):
2041         (WTF::StringImpl::isStatic):
2042         (WTF::StringImpl::bufferOwnership):
2043
2044 2013-08-14  Filip Pizlo  <fpizlo@apple.com>
2045
2046         Typed arrays should be rewritten
2047         https://bugs.webkit.org/show_bug.cgi?id=119064
2048
2049         Reviewed by Oliver Hunt.
2050         
2051         - Added the notion of a reference counted object that can be marked Deferred,
2052           which is like a special-purpose upref.
2053         
2054         - Added a common byte flipper.
2055
2056         Automake work courtesy of Zan Dobersek <zdobersek@igalia.com>.
2057
2058         * GNUmakefile.list.am:
2059         * WTF.xcodeproj/project.pbxproj:
2060         * wtf/DeferrableRefCounted.h: Added.
2061         (WTF::DeferrableRefCountedBase::ref):
2062         (WTF::DeferrableRefCountedBase::hasOneRef):
2063         (WTF::DeferrableRefCountedBase::refCount):
2064         (WTF::DeferrableRefCountedBase::isDeferred):
2065         (WTF::DeferrableRefCountedBase::DeferrableRefCountedBase):
2066         (WTF::DeferrableRefCountedBase::~DeferrableRefCountedBase):
2067         (WTF::DeferrableRefCountedBase::derefBase):
2068         (WTF::DeferrableRefCountedBase::setIsDeferredBase):
2069         (WTF::DeferrableRefCounted::deref):
2070         (WTF::DeferrableRefCounted::setIsDeferred):
2071         (WTF::DeferrableRefCounted::DeferrableRefCounted):
2072         (WTF::DeferrableRefCounted::~DeferrableRefCounted):
2073         * wtf/FlipBytes.h: Added.
2074         (WTF::needToFlipBytesIfLittleEndian):
2075         (WTF::flipBytes):
2076         (WTF::flipBytesIfLittleEndian):
2077
2078 2013-08-14  Julien Brianceau  <jbrianceau@nds.com>
2079
2080         DFG_JIT implementation for sh4 architecture.
2081         https://bugs.webkit.org/show_bug.cgi?id=119737
2082
2083         Reviewed by Oliver Hunt.
2084
2085         * wtf/Platform.h:
2086
2087 2013-08-13  Arunprasad Rajkumar  <arurajku@cisco.com>
2088
2089         [WTF] [JSC] Replace currentTime() with monotonicallyIncreasingTime() in all possible places
2090         https://bugs.webkit.org/show_bug.cgi?id=119762
2091
2092         Reviewed by Geoffrey Garen.
2093
2094         * wtf/MainThread.cpp:
2095         (WTF::dispatchFunctionsFromMainThread):
2096
2097 2013-08-12  Ragner Magalhaes  <ranger.n@samsung.com>
2098
2099         Broken build with build-webkit --no-webgl
2100         https://bugs.webkit.org/show_bug.cgi?id=119272
2101
2102         Reviewed by Alexandru Chiculita.
2103
2104         CSS_SHADERS requires WEBGL enabled.
2105         Add error message to dependency failure.
2106
2107         * wtf/FeatureDefines.h:
2108
2109 2013-08-12  Joseph Pecoraro  <pecoraro@apple.com>
2110
2111         [iOS] isMainThread implementation with USE(WEB_THREAD)
2112         https://bugs.webkit.org/show_bug.cgi?id=119644
2113
2114         Reviewed by Benjamin Poulain.
2115
2116         On iOS isMainThread() means that the current thread is either the
2117         MainThread or WebThread and the current thread has the WebThreadLock.
2118
2119         * wtf/ios/WebCoreThread.cpp: Added.
2120         * wtf/ios/WebCoreThread.h: Added.
2121         * wtf/mac/MainThreadMac.mm:
2122         (WTF::isMainThread):
2123
2124 2013-08-11  Carlos Garcia Campos  <cgarcia@igalia.com>
2125
2126         Unreviewed. Fix make distcheck.
2127
2128         * GNUmakefile.list.am: Add missing header file.
2129
2130 2013-08-09  Christophe Dumez  <ch.dumez@sisa.samsung.com>
2131
2132         Make atob() throw an InvalidCharacterError on excess padding characters
2133         https://bugs.webkit.org/show_bug.cgi?id=118898
2134
2135         Reviewed by Darin Adler.
2136
2137         Add a Base64FailOnInvalidCharacterOrExcessPadding value to the Base64DecodePolicy
2138         enumeration so that the caller can request strict padding validation in addition
2139         to strict character validation. This is needed so that we can use
2140         WTF::base64Decode() for window.atob().
2141
2142         * wtf/text/Base64.cpp:
2143         (WTF::base64DecodeInternal):
2144         * wtf/text/Base64.h:
2145
2146 2013-08-07  Alex Christensen  <achristensen@apple.com>
2147
2148         Fixed wrong definition for AppleWin port's WebGL after r153768.
2149
2150         Rubberstamped by Benjamin Poulain.
2151
2152         * wtf/Platform.h: Replaced WTF_USE_SURFACE with WTF_USE_GRAPHICS_SURFACE.
2153
2154 2013-08-04  Sam Weinig  <sam@webkit.org>
2155
2156         Remove support for HTML5 MicroData
2157         https://bugs.webkit.org/show_bug.cgi?id=119480
2158
2159         Reviewed by Anders Carlsson.
2160
2161         * wtf/FeatureDefines.h:
2162
2163 2013-08-06  Alex Christensen  <achristensen@apple.com>
2164
2165         Enabled WebGL on WinCairo port.
2166         https://bugs.webkit.org/show_bug.cgi?id=119502
2167
2168         Reviewed by Benjamin Poulain.
2169
2170         * wtf/FeatureDefines.h: Enabled WebGL.
2171         * wtf/Platform.h: Added definitions required for WebGL on Windows.
2172
2173 2013-08-05  Mark Rowe  <mrowe@apple.com>
2174
2175         <rdar://problem/5927399> FastMalloc should support MallocStackLogging
2176
2177         Call the malloc stack logging function from within the various entry points to FastMalloc
2178         when stack logging is enabled.
2179
2180         Reviewed by Oliver Hunt and Geoff Garen.
2181
2182         * wtf/FastMalloc.cpp:
2183         Call in to MallocHook::InvokeNewHook / MallocHook::InvokeDeleteHook at the appropriate entry
2184         points to FastMalloc. The naming comes from TCMalloc's existing, unused concept of malloc hooks.
2185         (WTF::MallocHook::record): Call the stack logging function with appropriate argument types.
2186         (WTF::MallocHook::recordAllocation): Out-of-line slow path for when stack logging is enabled
2187         that calls record with the values in the right arguments.
2188         (WTF::MallocHook::recordDeallocation): Ditto.
2189         (WTF::MallocHook::init): Stack logging is enabled if the system allocator has enabled stack logging.
2190         (WTF::MallocHook::InvokeNewHook): Call recordAllocation in the unlikely event that stack logging is
2191         enabled.
2192         (WTF::MallocHook::InvokeDeleteHook): Ditto for recordDeallocation.
2193         (WTF::TCMalloc_ThreadCache::InitModule): Initialize the malloc hook.
2194
2195 2013-08-06  Brent Fulgham  <bfulgham@apple.com>
2196
2197         [Windows] Unreviewed build correction after r153754 and r153757.
2198
2199         * wtf/MathExtras.h:
2200         (remainder): Provide implementation of C99 remainder for VS2010 (and earlier).
2201
2202 2013-07-23  David Farler  <dfarler@apple.com> 
2203         Provide optional OTHER_CFLAGS, OTHER_CPPFLAGS, OTHER_LDFLAGS additions for building with ASAN
2204         https://bugs.webkit.org/show_bug.cgi?id=117762
2205
2206         Reviewed by Mark Rowe.
2207
2208         * Configurations/DebugRelease.xcconfig:
2209         Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS.
2210
2211 2013-08-05  Mark Rowe  <mrowe@apple.com>
2212
2213         Build fix for Qt Windows.
2214
2215         * wtf/Assertions.cpp: Include StringExtras.h rather than StdLibExtras.h, since the former is where
2216         strncasecmp is declared.
2217
2218 2013-07-26  Mark Rowe  <mrowe@apple.com>
2219
2220         Logging should be configurable using human-readable channel names rather than crazy bitmasks
2221         <http://webkit.org/b/119031>
2222
2223         Implement shared logic for initializing logging channels based on human-readable channel names in WTF,
2224         and rework the WebCore, WebKit and WebKit2 logging initialization on top of it.
2225
2226         Logging channels may now be enabled by providing a comma-separated list of channel names, with the special
2227         "all" name enabling all channels. Channel names prefixed with a leading "-" will result in the named channel
2228         being disabled. For instance, specifying "all,-history,-loading" will result in all logging channels except
2229         for history and loading being enabled.
2230
2231         For OS X developers, this also changes the name of the user defaults used to enable logging. This is done to allow
2232         the old user defaults to remain set for those people that need to switch between version of WebKit before and
2233         after this change. Where the old user default keys were WebCoreLogLevel, WebKitLogLevel and WebKit2LogLevel,
2234         the new user default keys are WebCoreLogging, WebKitLogging and WebKit2Logging.
2235
2236         For GTK developers, this changes the separator used in the WEBKIT_DEBUG environment variable to a comma for
2237         consistency with the other platforms and to enable more code sharing.
2238
2239         While doing this work I've also taken the opportunity to eliminate the need to touch multiple files when
2240         adding a new logging channel. Now only the header in the relevant project needs to be updated.
2241
2242         Reviewed by Sam Weinig.
2243
2244         * wtf/Assertions.cpp:
2245         (WTFLogChannelByName): Iterate over the provided array of log channels, returning the first whose name
2246         matches case-insensitively.
2247         (setStateOfAllChannels): Helper function to set the state of all channels to a single value.
2248         (WTFInitializeLogChannelStatesFromString): Parse a string containing a case-insensitive, comma-separated list
2249         of channel names to enable or disable, with the latter being prefixed by a "-".
2250         * wtf/Assertions.h: Update the layout of WTFLogChannel to include only the state of the channel and its name.
2251         Declare WTFLogChannelByName and WTFInitializeLogChannelStatesFromString.
2252         * wtf/RefCountedLeakCounter.cpp: Update to the new format of WTFLogChannel.
2253
2254 2013-08-05  Benjamin Poulain  <bpoulain@apple.com>
2255
2256         Disable <meter> by default on iOS, it is enabled through the xconfig files
2257         https://bugs.webkit.org/show_bug.cgi?id=119503
2258
2259         Reviewed by Alexey Proskuryakov.
2260
2261         * wtf/FeatureDefines.h:
2262
2263 2013-08-05  Oliver Hunt  <oliver@apple.com>
2264
2265         Move TypedArray implementation into JSC
2266         https://bugs.webkit.org/show_bug.cgi?id=119489
2267
2268         Reviewed by Filip Pizlo.
2269
2270         Remove TypedArray implementation from WTF
2271
2272         * GNUmakefile.list.am:
2273         * WTF.xcodeproj/project.pbxproj:
2274         * wtf/Forward.h:
2275
2276 2013-08-02  Benjamin Poulain  <benjamin@webkit.org>
2277
2278         Remove a bunch of redundant checks for empty string in StringImpl
2279         https://bugs.webkit.org/show_bug.cgi?id=118768
2280
2281         Reviewed by Ryosuke Niwa.
2282
2283         The first thing done by createUninitialized() is check if the length passed
2284         is zero. Internally, there are many cases for which we know the check will never succeed.
2285
2286         Clang is usually really smart for those kind of things, but there are a few cases where
2287         the condition to avoid returning empty() is not simply a check for the length.
2288         This patch adds an internal initializer to deal with that.
2289
2290         * wtf/text/StringImpl.cpp:
2291         (WTF::StringImpl::createUninitializedInternal):
2292         (WTF::StringImpl::createUninitializedInternalNonEmpty):
2293         (WTF::StringImpl::createInternal): Create internal has a special case for null pointer
2294         for the characters. The test also check length, the second check for length cannot fail.
2295         (WTF::StringImpl::create8BitIfPossible): ditto.
2296         (WTF::StringImpl::lower): 3 of the calls cannot be reached for empty length. On an empty length,
2297         the test for (noUpper && !(ored & ~0x7F)) would have caused the function to return "this".
2298
2299         For the last createUninitialized(), there is no guarantee the realLength is not zero.
2300
2301         (WTF::StringImpl::replace): The first thing we do in replace(UChar,UChar) is check if there is anything
2302         to replace. The check for length will never succeed as there must be a character to replace at that point.
2303         * wtf/text/StringImpl.h:
2304
2305 2013-08-02  Mark Lam  <mark.lam@apple.com>
2306
2307         Gardening: Touched a line in Platform.h to get all bots to do a clean build.
2308
2309         Not reviewed.
2310
2311         * wtf/Platform.h:
2312
2313 2013-08-02  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2314
2315         Check WTF::Vector size with '0' inline capacity
2316         https://bugs.webkit.org/show_bug.cgi?id=119397
2317
2318         Reviewed by Andreas Kling.
2319
2320         Putting in place the compile assertion that had been removed with r153514.
2321
2322         * wtf/SizeLimits.cpp:
2323
2324 2013-07-26  Mark Rowe  <mrowe@apple.com>
2325
2326         <http://webkit.org/b/119169> RetainPtr should support ARC for Objective-C objects.
2327
2328         While RetainPtr is not necessary under ARC, having it available makes it easier to transition
2329         existing code from manual retain / release to ARC.
2330
2331         Under ARC, the object member of RetainPtr is treated as a strong reference by the compiler.
2332         This means that merely assigning to the member variable is sufficient to retain the object,
2333         and clearing the member variable is sufficient to release it. We still need to explicitly
2334         CFRetain / CFRelease CoreFoundation types so the explicit calls to these functions are
2335         moved in to helper functions and overloading is used to have the Objective-C object versions
2336         of them be no-ops under ARC.
2337
2338         Reviewed by Anders Carlsson.
2339
2340         * wtf/RetainPtr.h:
2341         (WTF::retain): Continue to always CFRetain / CFRelease CoreFoundation objects. Only CFRetain / CFRelease
2342         Objective-C objects when using manual retain / release.
2343         (WTF::release): Ditto.
2344         (WTF::adoptNSReference): Adopting references will be handled automatically by the compiler
2345         when possible under ARC by eliminating redundant retain / release pairs.
2346         (WTF::RetainPtr::ImplicitConversionToBoolIsNotAllowed): A new method that exists only to be used by the
2347         conversion to the unspecified bool type.
2348         (WTF::RetainPtr::operator UnspecifiedBoolType): Switch to using a pointer to a member function as the
2349         unspecified bool type to avoid warnings from the compiler when casting Objective-C object types under ARC.
2350
2351         (WTF::RetainPtr::RetainPtr): Switch to our retain / release helper functions.
2352         (WTF::RetainPtr::~RetainPtr): Ditto.
2353         (WTF::::RetainPtr): Ditto.
2354         (WTF::::clear): Ditto.
2355         (WTF::=): Ditto.
2356         (WTF::adoptCF): Annotate the argument with CF_RELEASES_ARGUMENT on both the declaration and the definition.
2357         (WTF::adoptNS): Ditto for NS_RELEASES_ARGUMENT.
2358
2359 2013-08-01  Mark Rowe  <mrowe@apple.com>
2360
2361         <rdar://problem/14235491> FastMalloc zone enumerator responding to MALLOC_PTR_REGION_RANGE_TYPE with individual allocations
2362
2363         Teach PageMapMemoryUsageRecorder::recordPendingRegions to only record data of the type that it's asked for.
2364         This also fixes the vmmap output to associate some regions with the FastMalloc malloc zone that were previously
2365         associated with it only via the VM tag, meaning they were incorrectly being omitted from the malloc statistics
2366         section of the report.
2367
2368         Reviewed by Dan Bernstein.
2369
2370         * wtf/FastMalloc.cpp:
2371         (WTF::PageMapMemoryUsageRecorder::recordPendingRegions): Report the individual allocations only when requested. Add
2372         the ability to report the regions containing pointers separately from the allocations.
2373
2374 2013-08-01  Mark Rowe  <mrowe@apple.com>
2375
2376         <rdar://problem/14528244> False-positive leaks from FastMalloc.
2377
2378         A logic error in the page map enumeration code within FastMalloc could result in a subset of the memory regions
2379         owned by FastMalloc being skipped by the malloc zone enumeration code used by leaks and other performance tools.
2380         If the only reference to an allocated object lived within one of the skipped memory regions, leaks would believe
2381         it had been leaked since it would not find any references to the object.
2382
2383         The logic error manifested when a FastMalloc span owned a region of memory that crossed a 16MB address space boundary,
2384         and when there was one or more other spans immediately after it in the address space. Crossing the 16MB address space
2385         boundary means that the start and end points of the span are in different leaf nodes of the page map trie, and the
2386         code within the page map's visitValues method didn't correctly account this case when skipping to the end of the span
2387         after visiting it. It would resume iterating from the start of the next leaf node rather than continuing to skip values
2388         until the end of the span was passed. The value representing the end of the span would then be processed as if it were
2389         the start of a new span, and more values would be skipped even though they may contain actual spans.
2390
2391         The solution is to rework the algorithm used in visitValues so that it will skip the correct number of values even when
2392         some of the values are in different leaf nodes. This is a more involved change than it may seem since it's also necessary
2393         to deal with the case where a memory region spans two separate root nodes, which can happen if the region happens to cross
2394         a 64GB boundary in the address space.
2395
2396         Reviewed by Geoff Garen.
2397
2398         * wtf/TCPageMap.h:
2399         (TCMalloc_PageMap3::visitValues): Use a single loop to iterate, with the loop index being the key in to the page map in the
2400         same form as used by get and set. This allows us to correctly deal with the index being skipped to a different intermediate or
2401         root node as a result of visiting a span that crosses a 16MB boundary in memory.
2402         (TCMalloc_PageMap2::visitValues): Ditto, but without having to deal with intermediate nodes.
2403
2404 2013-08-01  Ruth Fong  <ruth_fong@apple.com>
2405
2406         [Forms: color] <input type='color'> popover color well implementation
2407         <rdar://problem/14411008> and https://bugs.webkit.org/show_bug.cgi?id=119356
2408
2409         Reviewed by Benjamin Poulain.
2410
2411         * wtf/FeatureDefines.h: Added and enabled INPUT_TYPE_COLOR_POPOVER.
2412
2413 2013-08-01  Simon Fraser  <simon.fraser@apple.com>
2414
2415         REGRESSION(r145592): AutodrainedPool.h. RunLoopTimer.h, SchedulePair.h are being copied into the wrong location
2416         https://bugs.webkit.org/show_bug.cgi?id=112833
2417
2418         Reviewed by Sam Weinig.
2419         
2420         AutodrainedPool.h and SchedulePair.h should just be project headers, not
2421         private headers, so they get copied into <build dir>/usr/local/include/wtf
2422         not <build dir>/usr/local/include
2423
2424         * WTF.xcodeproj/project.pbxproj:
2425
2426 2013-07-31  Ruth Fong  <ruth_fong@apple.com>
2427
2428         <input type=color> Mac UI behaviour
2429         <rdar://problem/10269922> and https://bugs.webkit.org/show_bug.cgi?id=61276
2430
2431         Reviewed by Brady Eidson.
2432
2433         * wtf/FeatureDefines.h: Enabled INPUT_TYPE_COLOR on Mac port.
2434
2435 2013-07-31  Andreas Kling  <akling@apple.com>
2436
2437         Shrink Vectors with inline capacity.
2438         <http://webkit.org/b/119295>
2439         <rdar://problem/14598360>
2440
2441         Reviewed by Anders Carlsson.
2442
2443         Pack Vector::m_size next to VectorBufferBase::m_capacity so there's no space wasted
2444         on padding when sizeof(T) >= 8. Since m_size is not conceptually part of the buffer,
2445         I just using'ed it into Vector.
2446
2447         * wtf/SizeLimits.cpp:
2448         * wtf/Vector.h:
2449         (WTF::VectorBufferBase::VectorBufferBase):
2450         (WTF::VectorBuffer::VectorBuffer):
2451         (WTF::Vector::Vector):
2452         (WTF::::Vector):
2453
2454 2013-07-30  Patrick Gansterer  <paroga@webkit.org>
2455
2456         Move WindowsExtras.h from WebCore to WTF
2457         https://bugs.webkit.org/show_bug.cgi?id=118125
2458
2459         Reviewed by Anders Carlsson.
2460
2461         Move it to WTF to be able to use the functions in WTF too.
2462
2463         * wtf/WindowsExtras.h: Renamed from Source/WebCore/platform/win/WindowsExtras.h.
2464         (WTF::getRegistryValue):
2465         (WTF::getWindowPointer):
2466         (WTF::setWindowPointer):
2467         * wtf/win/MainThreadWin.cpp:
2468         (WTF::initializeMainThreadPlatform):
2469
2470 2013-07-29  Carlos Garcia Campos  <cgarcia@igalia.com>
2471
2472         Unreviewed. Fix make distcheck.
2473
2474         * GNUmakefile.list.am: Add missing files to compilation.
2475
2476 2013-07-29  Mark Rowe  <mrowe@apple.com>
2477
2478         <rdar://problem/14528244> Tons of FastMalloc leaks reported by leaks of objects that have already been deallocated
2479
2480         Reviewed by Sam Weinig.
2481
2482         * wtf/FastMalloc.cpp:
2483         (WTF::TCMalloc_Central_FreeList::enumerateFreeObjects): Mark objects in the transfer cache as being free.
2484
2485 2013-07-29  Zan Dobersek  <zdobersek@igalia.com>
2486
2487         Reintroduce convenience CheckedInt*, CheckedUint* types
2488         https://bugs.webkit.org/show_bug.cgi?id=119213
2489
2490         Reviewed by Oliver Hunt.
2491
2492         Reintroduce CheckedInt* and CheckedUint* types that were previously provided for convenience
2493         through the CheckedInt header that was removed in r153095. The types are now based on the
2494         Checked class, using the RecordOverflow class as the overflow handler.
2495
2496         * wtf/CheckedArithmetic.h:
2497
2498 2013-07-27  Ryosuke Niwa  <rniwa@webkit.org>
2499
2500         REGRESSION(r153380): Can't open messages on Gmail
2501         https://bugs.webkit.org/show_bug.cgi?id=119165
2502
2503         Reviewed by Andreas Kling.
2504
2505         This bug was caused by r153380. The bug doesn't reproduce as long as WebKit is built by clang 4.2 and later
2506         or final is disabled (it could be clang 4.1 and later but we don't have information about that).
2507
2508         Fix the bug by disabling final on earlier versions of clang. Unfortunately we can only check versions of
2509         Apple clang since __clang_major__ and __clang_minor__ are vendor dependent.
2510
2511         * wtf/Compiler.h:
2512
2513 2013-07-26  Oliver Hunt <oliver@apple.com>
2514
2515         ASSERT failure in wtf/CheckedBoolean.h line 43 on Windows
2516         https://bugs.webkit.org/show_bug.cgi?id=119170
2517
2518         Reviewed by Michael Saboff.
2519
2520         Added a copy constructor to CheckedBoolean.
2521
2522         * wtf/CheckedBoolean.h:
2523         (CheckedBoolean::CheckedBoolean):
2524
2525 2013-07-25  Brent Fulgham  <bfulgham@apple.com>
2526
2527         [Windows] Unreviewed build fix.
2528
2529         * WTF.vcxproj/WTF.vcxproj: Add missing SixCharacterHash.h,.cpp files.
2530         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
2531         * wtf/NumberOfCores.h: Add export macro to numberOfProcessorCores.
2532         * wtf/PrintStream.h: Add export macro to dumpCharacter.
2533         * wtf/SixCharacterHash.h: Add export macro to sixCharacterHashStringToInteger
2534         and integerToSixCharacterHashString.
2535         * wtf/text/CString.h: Add export macro to hash and equal methods.
2536         (WTF::CStringHash::hash): Add export macro.
2537
2538 2013-07-25  peavo@outlook.com  <peavo@outlook.com>
2539
2540         [Windows] Provide ASM implemenation of 8-bit compare-and-swap
2541         https://bugs.webkit.org/show_bug.cgi?id=119084
2542
2543         Reviewed by Brent Fulgham.
2544
2545         * wtf/Atomics.h:
2546         (WTF::weakCompareAndSwap): Add a 32-bit X86 Assembly path for
2547         Windows build.
2548
2549 2013-07-25  Brent Fulgham  <bfulgham@apple.com>
2550
2551         [Windows] Unreviewed build fix.
2552
2553         * WTF.vcxproj/WTF.vcxproj: Add missing CompilationThread.h,.cpp
2554         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
2555
2556 2013-07-25  Michael Brüning  <michael.bruning@digia.com>
2557
2558         Fix Windows build after r153134.
2559         https://bugs.webkit.org/show_bug.cgi?id=119090
2560
2561         Reviewed by Oliver Hunt.
2562
2563         Add USE(PTHREADS) guards around pthread specific code
2564         for now. This will cause isCompilationThread to always
2565         return false on non pthread platforms such as Windows.
2566
2567         We might be able to use the Windows one-time initialization
2568         for this, but this is only available from Windows Vista on.
2569
2570         * wtf/CompilationThread.cpp:
2571         (WTF::initializeCompilationThreads):
2572
2573 2013-07-25  Allan Sandfeld Jensen  <allan.jensen@digia.com>
2574
2575         Fix windows build after FTL upstream
2576
2577         Unreviewed build fix.
2578
2579         * wtf/Atomics.h:
2580         (WTF::weakCompareAndSwap):
2581
2582 2013-07-25  Ryuan Choi  <ryuan.choi@samsung.com>
2583
2584         Unreviewed, build fix on the EFL port.
2585
2586         * wtf/CMakeLists.txt: Added SixCharacterHash.cpp
2587
2588 2013-07-25  Gabor Rapcsanyi  <rgabor@webkit.org>
2589
2590         Unreviewed, build fix on the Qt port.
2591
2592         * WTF.pro: Add additional build files for the FTL.
2593
2594 2013-07-25  Zan Dobersek  <zdobersek@igalia.com>
2595
2596         Unreviewed, further GTK build fixing.
2597
2598         * GNUmakefile.am: Make libWTF.la depend on any changes made to the build targets list.
2599         * GNUmakefile.list.am: Add SixCharacterHash source files to the build.
2600
2601 2013-07-25  Csaba Osztrogonác  <ossy@webkit.org>
2602
2603         [GTK] Similar fix to r153304.
2604
2605         * GNUmakefile.list.am:
2606
2607 2013-07-25  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
2608
2609         Build break in debug after r153134: StringImpl.h:640: undefined reference to `WTF::isCompilationThread()
2610         https://bugs.webkit.org/show_bug.cgi?id=119077
2611
2612         Reviewed by Christophe Dumez.
2613
2614         * wtf/CMakeLists.txt:
2615         Added CompilationThread.{h/cpp}.
2616
2617 2013-07-24  Filip Pizlo  <fpizlo@apple.com>
2618
2619         fourthTier: DFG IR dumps should be easier to read
2620         https://bugs.webkit.org/show_bug.cgi?id=119050
2621
2622         Reviewed by Mark Hahnenberg.
2623         
2624         Added support for dumping values within a context. By default, if you say
2625         print(inContext(value, context)) it calls value.dumpInContext(out, context)
2626         instead of value.dump(out).
2627         
2628         Hoisted the support for six-character hashes out of JSC::CodeBlockHash into
2629         WTF, in the form of SixCharacterHash.h.
2630         
2631         Added a helper for creating dump contexts where the inContext() dump will
2632         just use a short string hash to "name" the object being dumped, and then
2633         will print out the full dumps in an endnote to your dump.
2634         
2635         Added support for using CString as a hashtable key.
2636
2637         * WTF.xcodeproj/project.pbxproj:
2638         * wtf/PrintStream.h:
2639         (WTF):
2640         (ValueInContext):
2641         (WTF::ValueInContext::ValueInContext):
2642         (WTF::ValueInContext::dump):
2643         (WTF::inContext):
2644         * wtf/SixCharacterHash.cpp: Added.
2645         (WTF):
2646         (WTF::sixCharacterHashStringToInteger):
2647         (WTF::integerToSixCharacterHashString):
2648         * wtf/SixCharacterHash.h: Added.
2649         (WTF):
2650         * wtf/StringHashDumpContext.h: Added.
2651         (WTF):
2652         (StringHashDumpContext):
2653         (WTF::StringHashDumpContext::StringHashDumpContext):
2654         (WTF::StringHashDumpContext::getID):
2655         (WTF::StringHashDumpContext::dumpBrief):
2656         (WTF::StringHashDumpContext::brief):
2657         (WTF::StringHashDumpContext::isEmpty):
2658         (WTF::StringHashDumpContext::dump):
2659         * wtf/text/CString.cpp:
2660         (WTF::CString::hash):
2661         (WTF):
2662         (WTF::operator<):
2663         (WTF::CStringHash::equal):
2664         * wtf/text/CString.h:
2665         (WTF::CString::CString):
2666         (CString):
2667         (WTF::CString::isHashTableDeletedValue):
2668         (WTF):
2669         (WTF::CStringHash::hash):
2670         (CStringHash):
2671
2672 2013-07-21  Filip Pizlo  <fpizlo@apple.com>
2673
2674         fourthTier: DFG Nodes should be able to abstractly tell you what they read and what they write
2675         https://bugs.webkit.org/show_bug.cgi?id=118910
2676
2677         Reviewed by Sam Weinig.
2678         
2679         Fix compile goof in sortedListDump().
2680
2681         * wtf/ListDump.h:
2682         (WTF::sortedListDump):
2683
2684 2013-07-16  Filip Pizlo  <fpizlo@apple.com>
2685
2686         fourthTier: NaturalLoops should be able to quickly answer questions like "what loops own this basic block"
2687         https://bugs.webkit.org/show_bug.cgi?id=118750
2688
2689         Reviewed by Mark Hahnenberg.
2690         
2691         Add a utility function for inserting an element into a vector that has bounded size,
2692         and where the insertion causes things to drop off the end.
2693
2694         * wtf/StdLibExtras.h:
2695         (WTF):
2696         (WTF::insertIntoBoundedVector):
2697
2698 2013-07-12  Filip Pizlo  <fpizlo@apple.com>
2699
2700         fourthTier: DFG should have an SSA form for use by FTL
2701         https://bugs.webkit.org/show_bug.cgi?id=118338
2702
2703         Reviewed by Mark Hahnenberg.
2704         
2705         - Extend variadicity of PrintStream and dataLog.
2706         
2707         - Give HashSet the ability to add a span of things.
2708         
2709         - Give HashSet the ability to == another HashSet.
2710         
2711         - Note FIXME's in HashTable concerning copying performance, that affects
2712           the way that the DFG now uses HashSets and HashMaps.
2713         
2714         - Factor out the bulk-insertion logic of JSC::DFG::InsertionSet into
2715           WTF::Insertion, so that it can be used in more places.
2716         
2717         - Create a dumper for lists and maps.
2718
2719         * WTF.xcodeproj/project.pbxproj:
2720         * wtf/DataLog.h:
2721         (WTF):
2722         (WTF::dataLog):
2723         * wtf/HashSet.h:
2724         (HashSet):
2725         (WTF):
2726         (WTF::::add):
2727         (WTF::=):
2728         * wtf/HashTable.h:
2729         (WTF::::HashTable):
2730         (WTF::=):
2731         * wtf/Insertion.h: Added.
2732         (WTF):
2733         (Insertion):
2734         (WTF::Insertion::Insertion):
2735         (WTF::Insertion::index):
2736         (WTF::Insertion::element):
2737         (WTF::Insertion::operator<):
2738         (WTF::executeInsertions):
2739         * wtf/ListDump.h: Added.
2740         (WTF):
2741         (ListDump):
2742         (WTF::ListDump::ListDump):
2743         (WTF::ListDump::dump):
2744         (MapDump):
2745         (WTF::MapDump::MapDump):
2746         (WTF::MapDump::dump):
2747         (WTF::listDump):
2748         (WTF::sortedListDump):
2749         (WTF::lessThan):
2750         (WTF::mapDump):
2751         (WTF::sortedMapDump):
2752         * wtf/PrintStream.h:
2753         (PrintStream):
2754         (WTF::PrintStream::print):
2755
2756 2013-07-02  Filip Pizlo  <fpizlo@apple.com>
2757
2758         Unreviewed, fix 32-bit build.
2759
2760         * wtf/Platform.h:
2761
2762 2013-07-02  Filip Pizlo  <fpizlo@apple.com>
2763
2764         fourthTier: FTL should use the equivalent of llvm opt -O2 by default
2765         https://bugs.webkit.org/show_bug.cgi?id=118311
2766
2767         Reviewed by Mark Hahnenberg.
2768         
2769         * wtf/LLVMHeaders.h:
2770
2771 2013-06-27  Filip Pizlo  <fpizlo@apple.com>
2772
2773         fourthTier: JSC's disassembly infrastructure should be able to disassemble the code that LLVM generates
2774         https://bugs.webkit.org/show_bug.cgi?id=118148
2775
2776         Reviewed by Anders Carlsson.
2777         
2778         We now use LLVM for two things: disassembler and FTL. Separate out the question
2779         of whether we have LLVM (HAVE(LLVM)) from whether we want to use the LLVM
2780         disassembler (USE(LLVM_DISASSEMBLER)) and whether we enable the FTL
2781         (ENABLE(FTL_JIT)).
2782         
2783         Also move the cruft for including LLVM headers into WTF since now we use it in
2784         a bunch of places, not all related to FTL. There's no obvious place to put that
2785         file in JSC so I put it in WTF.
2786
2787         * WTF.xcodeproj/project.pbxproj:
2788         * wtf/LLVMHeaders.h: Copied from Source/JavaScriptCore/ftl/FTLLLVMHeaders.h.
2789         * wtf/Platform.h:
2790
2791 2013-06-25  Filip Pizlo  <fpizlo@apple.com>
2792
2793         fourthTier: DFG should support switch_string
2794         https://bugs.webkit.org/show_bug.cgi?id=117967
2795
2796         Reviewed by Sam Weinig.
2797         
2798         Make it possible to compare a RefPtr<StringImpl> and a StringImpl* without
2799         having to ref the StringImpl.
2800
2801         * wtf/text/StringHash.h:
2802         (WTF::StringHash::equal):
2803
2804 2013-06-24  Filip Pizlo  <fpizlo@apple.com>
2805
2806         fourthTier: Count external memory usage towards heap footprint
2807         https://bugs.webkit.org/show_bug.cgi?id=117948
2808
2809         Reviewed by Geoffrey Garen.
2810
2811         Expose some functionality needed for properly measuring StringImpl footprint.
2812
2813         * wtf/Atomics.h:
2814         (WTF::weakCompareAndSwapSize):
2815         (WTF):
2816         * wtf/MathExtras.h:
2817         (divideRoundedUp):
2818         * wtf/text/StringImpl.h:
2819         (WTF::StringImpl::cost):
2820         (StringImpl):
2821         (WTF::StringImpl::costDuringGC):
2822         (WTF::StringImpl::refCount):
2823
2824 2013-06-23  Filip Pizlo  <fpizlo@apple.com>
2825
2826         fourthTier: DFG should optimize identifier string equality
2827         https://bugs.webkit.org/show_bug.cgi?id=117920
2828
2829         Reviewed by Sam Weinig.
2830
2831         Note that this ChangeLog was supposed to be committed in r151890.
2832         
2833         Expose the IsIdentifier bit to the JIT.
2834         
2835         * wtf/text/StringImpl.h:
2836         (WTF::StringImpl::flagIsIdentifier):
2837
2838 2013-06-18  Filip Pizlo  <fpizlo@apple.com>
2839
2840         fourthTier: DFG should have switch_char
2841         https://bugs.webkit.org/show_bug.cgi?id=117710
2842
2843         Reviewed by Michael Saboff.
2844         
2845         I wanted to be able to say stringImpl->at(index), and now I can!
2846
2847         Also made it possible to convert a UChar to a utf8 CString without
2848         allocating a StringImpl.
2849
2850         * wtf/text/StringImpl.cpp:
2851         (WTF::StringImpl::utf8Impl):
2852         (WTF):
2853         (WTF::StringImpl::utf8ForCharacters):
2854         (WTF::StringImpl::utf8ForRange):
2855         * wtf/text/StringImpl.h:
2856         (StringImpl):
2857         (WTF::StringImpl::at):
2858         (WTF::StringImpl::operator[]):
2859
2860 2013-06-15  Filip Pizlo  <fpizlo@apple.com>
2861
2862         fourthTier: Add CFG simplification for Switch
2863         https://bugs.webkit.org/show_bug.cgi?id=117677
2864
2865         Reviewed by Mark Hahnenberg.
2866
2867         * wtf/TriState.h:
2868         * wtf/text/StringImpl.h:
2869
2870 2013-06-15  Filip Pizlo  <fpizlo@apple.com>
2871
2872         Printing a StringImpl* should really guard against NULL
2873         https://bugs.webkit.org/show_bug.cgi?id=117675
2874
2875         Reviewed by Mark Hahnenberg.
2876
2877         * wtf/PrintStream.cpp:
2878         (WTF::printInternal):
2879
2880 2013-06-11  Filip Pizlo  <fpizlo@apple.com>
2881
2882         fourthTier: DFG should support op_in and it should use patching to make it fast
2883         https://bugs.webkit.org/show_bug.cgi?id=117385
2884
2885         Reviewed by Geoffrey Garen.
2886         
2887         Now if you pass a null StringImpl* then something will still get printed instead
2888         of crashing. I figure that this is broadly useful for debug code, and I make use
2889         of it in the JSC portion of this patch.
2890
2891         * wtf/PrintStream.cpp:
2892         (WTF::printInternal):
2893
2894 2013-06-09  Filip Pizlo  <fpizlo@apple.com>
2895
2896         Unreviewed, fix build. On some compilers the automatic coercion from WTF::String to NSString*
2897         causes operator[] to appear ambiguous. One way around this is to make WTF::String behave like
2898         most of our other classes: at(unsigned) is always a valid synonym for operator[](unsigned).
2899
2900         * wtf/text/WTFString.h:
2901         (WTF::String::at):
2902         (WTF::String::operator[]):
2903
2904 2013-06-08  Filip Pizlo  <fpizlo@apple.com>
2905
2906         fourthTier: Recursive deadlock in DFG::ByteCodeParser
2907         https://bugs.webkit.org/show_bug.cgi?id=117376
2908
2909         Reviewed by Mark Hahnenberg.
2910         
2911         I've often wanted to leave a lock early. Now I have that power!
2912
2913         * wtf/Locker.h:
2914         (WTF::Locker::Locker):
2915         (WTF::Locker::~Locker):
2916         (Locker):
2917         (WTF::Locker::unlockEarly):
2918         (WTF::Locker::lock):
2919
2920 2013-05-27  Filip Pizlo  <fpizlo@apple.com>
2921
2922         It should be possible to record heap operations (both FastMalloc and JSC GC)
2923         https://bugs.webkit.org/show_bug.cgi?id=116848
2924
2925         Reviewed by Mark Hahnenberg.
2926
2927         * WTF.xcodeproj/project.pbxproj:
2928         * wtf/DataLog.cpp:
2929         (WTF):
2930         (WTF::initializeLogFileOnce):
2931         * wtf/FastMalloc.cpp:
2932         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2933         * wtf/Platform.h:
2934
2935 2013-05-21  Filip Pizlo  <fpizlo@apple.com>
2936
2937         fourthTier: DFG should be able to run on a separate thread
2938         https://bugs.webkit.org/show_bug.cgi?id=112839
2939
2940         Reviewed by Geoffrey Garen.
2941         
2942         * wtf/ByteSpinLock.h:
2943         Make it non-copyable. We previously had bugs where we used ByteSpinLock as a locker.
2944         Clearly that's bad.
2945
2946         * wtf/MetaAllocatorHandle.h:
2947         Make it thread-safe ref-counted, since we may now be passing them between the
2948         concurrent JIT thread and the main thread.
2949
2950         * wtf/Vector.h:
2951         (WTF::Vector::takeLast):
2952         I've wanted this method for ages, and now I finally added.
2953
2954 2013-04-30  Filip Pizlo  <fpizlo@apple.com>
2955
2956         fourthTier: DFG tries to ref/deref StringImpls in a ton of places
2957         https://bugs.webkit.org/show_bug.cgi?id=115300
2958
2959         Reviewed by Geoffrey Garen.
2960         
2961         Make it possible to do more things directly to StringImpl*'s, including being
2962         able to directly do utf8 conversion on a substring without creating the
2963         substring first.
2964         
2965         Add assertions to StringImpl that it isn't being ref/deref'd from the
2966         compilation thread.
2967
2968         * wtf/PrintStream.cpp:
2969         (WTF::printInternal):
2970         (WTF):
2971         * wtf/PrintStream.h:
2972         (WTF):
2973         (WTF::printInternal):
2974         * wtf/StringPrintStream.h:
2975         (WTF):
2976         (WTF::toCString):
2977         * wtf/text/StringImpl.cpp:
2978         (WTF::StringImpl::utf8ForRange):
2979         (WTF::StringImpl::utf8):
2980         (WTF):
2981         * wtf/text/StringImpl.h:
2982         (StringImpl):
2983         (WTF::StringImpl::hasAtLeastOneRef):
2984         (WTF::StringImpl::ref):
2985         (WTF::StringImpl::deref):
2986
2987 2013-04-29  Filip Pizlo  <fpizlo@apple.com>
2988
2989         fourthTier: String::utf8() should also be available as StringImpl::utf8() so that you don't have to ref() a StringImpl just to get its utf8()
2990         https://bugs.webkit.org/show_bug.cgi?id=115393
2991
2992         Reviewed by Geoffrey Garen.
2993
2994         * WTF.xcodeproj/project.pbxproj:
2995         * wtf/text/ConversionMode.h: Added.
2996         (WTF):
2997         * wtf/text/StringImpl.cpp:
2998         (WTF):
2999         (WTF::putUTF8Triple):
3000         (WTF::StringImpl::utf8):
3001         * wtf/text/StringImpl.h:
3002         (StringImpl):
3003         * wtf/text/WTFString.cpp:
3004         (WTF):
3005         (WTF::String::utf8):
3006         * wtf/text/WTFString.h:
3007         (String):
3008
3009 2013-07-16  Oliver Hunt <oliver@apple.com>
3010
3011         Merge dfgFourthTier r149301
3012
3013     2013-04-28  Filip Pizlo  <fpizlo@apple.com>
3014
3015         fourthTier: ASSERT that commonly used not-thread-safe methods in the runtime are not being called during compilation
3016         https://bugs.webkit.org/show_bug.cgi?id=115297
3017
3018         Reviewed by Geoffrey Garen.
3019         
3020         Taught WTF the notion of compilation threads. This allows all parts of our stack
3021         to assert that we're not being called from a JSC compilation thread. This is in
3022         WTF because it will probably end up being used in StringImpl and WTFString.
3023
3024         * WTF.xcodeproj/project.pbxproj:
3025         * wtf/CompilationThread.cpp: Added.
3026         (WTF):
3027         (WTF::initializeCompilationThreadsOnce):
3028         (WTF::initializeCompilationThreads):
3029         (WTF::isCompilationThread):
3030         (WTF::exchangeIsCompilationThread):
3031         * wtf/CompilationThread.h: Added.
3032         (WTF):
3033         (CompilationScope):
3034         (WTF::CompilationScope::CompilationScope):
3035         (WTF::CompilationScope::~CompilationScope):
3036         (WTF::CompilationScope::leaveEarly):
3037
3038 2013-07-16  Oliver Hunt <oliver@apple.com>
3039
3040         Merge dfgFourthTier r148836
3041
3042     2013-04-21  Filip Pizlo  <fpizlo@apple.com>
3043
3044         fourthTier: It should be possible to query WatchpointSets, and add Watchpoints, even if the compiler is running in another thread
3045         https://bugs.webkit.org/show_bug.cgi?id=114909
3046
3047         Reviewed by Oliver Hunt.
3048         
3049         Harden our notions of memory fences, now that we're doing racy algorithms.
3050
3051         * wtf/Atomics.h:
3052         (WTF):
3053         (WTF::compilerFence):
3054         (WTF::armV7_dmb):
3055         (WTF::armV7_dmb_st):
3056         (WTF::loadLoadFence):
3057         (WTF::loadStoreFence):
3058         (WTF::storeLoadFence):
3059         (WTF::storeStoreFence):
3060         (WTF::memoryBarrierAfterLock):
3061         (WTF::memoryBarrierBeforeUnlock):
3062         (WTF::x86_mfence):
3063
3064 2013-07-16  Oliver Hunt <oliver@apple.com>
3065
3066         Merge dfgFourthTier r148804
3067
3068     2013-04-20  Filip Pizlo  <fpizlo@apple.com>
3069
3070         fourthTier: value profiles and array profiles should be thread-safe enough to be accessible in a concurrent compilation thread
3071         https://bugs.webkit.org/show_bug.cgi?id=114906
3072
3073         Reviewed by Oliver Hunt.
3074         
3075         Add ability to abstract whether or not the CodeBlock requires locking at all,
3076         since some platforms may not support the byte spin-locking and/or may not want
3077         to, if they turn off concurrent JIT.
3078
3079         * WTF.xcodeproj/project.pbxproj:
3080         * wtf/ByteSpinLock.h:
3081         * wtf/NoLock.h: Added.
3082         (WTF):
3083         (NoLock):
3084         (WTF::NoLock::lock):
3085         (WTF::NoLock::unlock):
3086         (WTF::NoLock::isHeld):
3087         * wtf/Platform.h:
3088
3089 2013-04-17  Filip Pizlo  <fpizlo@apple.com>
3090
3091         fourthTier: all inline caches should thread-safe enough to allow a concurrent compilation thread to read them safely
3092         https://bugs.webkit.org/show_bug.cgi?id=114762
3093
3094         Reviewed by Mark Hahnenberg.
3095         
3096         Implemented a new spinlock that is optimized for compactness, by using just a byte.
3097         This will be useful as we start using fine-grained locking on a bunch of places.
3098         
3099         At some point I'll make these byte-sized spinlocks into adaptive mutexes, but for
3100         now I think it's fine to do the evil thing and use spinning particularly since we
3101         only use them for short critical sections.
3102
3103         * WTF.xcodeproj/project.pbxproj:
3104         * wtf/Atomics.h:
3105         (WTF):
3106         (WTF::weakCompareAndSwap):
3107         * wtf/ByteSpinLock.h: Added.
3108         (WTF):
3109         (ByteSpinLock):
3110         (WTF::ByteSpinLock::ByteSpinLock):
3111         (WTF::ByteSpinLock::lock):
3112         (WTF::ByteSpinLock::unlock):
3113         (WTF::ByteSpinLock::isHeld):
3114         * wtf/ThreadingPrimitives.h:
3115         (WTF::pauseBriefly):
3116         (WTF):
3117
3118 2013-04-12  Filip Pizlo  <fpizlo@apple.com>
3119
3120         fourthTier: FTL should have OSR exit
3121         https://bugs.webkit.org/show_bug.cgi?id=113623
3122
3123         Reviewed by Oliver Hunt.
3124         
3125         Finally make toCString() somewhat variadic.
3126
3127         * wtf/StringPrintStream.h:
3128         (WTF):
3129         (WTF::toCString):
3130
3131 2013-03-31  Filip Pizlo  <fpizlo@apple.com>
3132
3133         https://bugs.webkit.org/show_bug.cgi?id=113656
3134         Fix Sam's nits.
3135
3136         Unreviewed.
3137         
3138         Forgot to land these as part of http://trac.webkit.org/changeset/147299.
3139
3140         * wtf/MathExtras.h:
3141         (isGreaterThanNonZeroPowerOfTwo):
3142
3143 2013-03-29  Filip Pizlo  <fpizlo@apple.com>
3144
3145         fourthTier: FTL JIT should be able run some simple function
3146         https://bugs.webkit.org/show_bug.cgi?id=113481
3147
3148         Reviewed by Geoffrey Garen.
3149
3150         * wtf/Platform.h:
3151
3152 2013-07-22  Benjamin Poulain  <benjamin@webkit.org>
3153
3154         String::lower() - Skip to slow path on the first failure
3155         https://bugs.webkit.org/show_bug.cgi?id=118885
3156
3157         Reviewed by Andreas Kling.
3158
3159         In the 8 bits case, we don't need to know the state of the full string before changing characters
3160         to their lowercase variant.
3161         Just fail immediately and start transforming characters from the point of failure.
3162
3163         This avoid reading the string twice when the uppercase character is not at the end of the string.
3164
3165         * wtf/text/StringImpl.cpp:
3166         (WTF::StringImpl::lower):
3167
3168 2013-07-22  Brent Fulgham  <bfulgham@apple.com>
3169
3170         [Windows] Unreviewed build fix.
3171
3172         * WTF.vcxproj/WTFGenerated.make: Stop triggering a "Build All" when things have not changed.
3173
3174 2013-07-19  Alex Christensen  <achristensen@apple.com>
3175
3176         Added x64 configuration to Visual Studio build.
3177         https://bugs.webkit.org/show_bug.cgi?id=118888
3178
3179         Reviewed by Brent Fulgham.
3180
3181         * WTF.vcxproj/WTF.vcxproj:
3182         * WTF.vcxproj/WTF.vcxproj.filters:
3183         * WTF.vcxproj/WTFGenerated.vcxproj:
3184
3185 2013-07-18  Benjamin Poulain  <benjamin@webkit.org>
3186
3187         Fix the build after r152881
3188
3189         * wtf/text/StringImpl.cpp:
3190         (WTF::StringImpl::lower):
3191
3192 2013-07-18  Benjamin Poulain  <benjamin@webkit.org>
3193
3194         Little cleaning of StringImpl::lower() and StringImpl::upper() for ARM
3195         https://bugs.webkit.org/show_bug.cgi?id=118831
3196
3197         Reviewed by Gavin Barraclough.
3198
3199         Clean lower() and upper() before trying some optimizations:
3200         -Prefix the code with the empty() case. Otherwise, each descending loop starts with
3201          a check for length == 0.
3202         -Change ored to a 32 bits registers. ARM only has 32 bits registers and access to full word.
3203          To keep the value a UChar, the compiler is adding a bunch of useless value & 0xffff in the loops.
3204         -Change the pointer based loops for index based loops. The compiler does a mighty job at optimizing
3205          those for each architecture. No need to make the code more complex.
3206         -Don't perform the check for int32 unless we need to. The only code limited to int is Unicode::toLower.
3207
3208         * wtf/text/StringImpl.cpp:
3209         (WTF::StringImpl::lower):
3210         (WTF::StringImpl::upper):
3211
3212 2013-07-18  Andreas Kling  <akling@apple.com>
3213
3214         CodeBlock::m_argumentValueProfiles wastes a lot of memory.
3215         <http://webkit.org/b/118852>
3216         <rdar://problem/14481659>
3217
3218         Reviewed by Anders Carlsson.
3219
3220         Add Vector::resizeToFit(size), like resize() but without growth padding.
3221
3222         * wtf/Vector.h:
3223         (WTF::::resizeToFit):
3224
3225 2013-07-17  Benjamin Poulain  <benjamin@webkit.org>
3226
3227         Add a thread safety assertion when creating an AtomicString from a StringImpl
3228         https://bugs.webkit.org/show_bug.cgi?id=118637
3229
3230         Reviewed by Sam Weinig.
3231
3232         The goal is to prevent this kind of use:
3233         -Someone create a String from a StringImpl.
3234         -At some point, the string becomes atomic.
3235         -Later, when the string only has one ref, its ownership is 'passed' to an other thread
3236          without checking String::isSafeToSendToAnotherThread().
3237         -In the thread B, an AtomicString is created from the String.
3238         ->The AtomicString's StringImpl returned is not in the current thread string table.
3239
3240         * wtf/text/AtomicString.cpp:
3241         (WTF::AtomicString::isInAtomicStringTable):
3242         * wtf/text/AtomicString.h:
3243         (WTF::AtomicString::add):
3244
3245 2013-07-17  Benjamin Poulain  <benjamin@webkit.org>
3246
3247         Simplify AtomicString::lower()
3248         https://bugs.webkit.org/show_bug.cgi?id=118719
3249         <rdar://problem/14452883>
3250
3251         Reviewed by Gavin Barraclough.
3252
3253         * wtf/text/AtomicString.cpp:
3254         (WTF::AtomicString::lower): Previously, the code was using a copy constructor for two path
3255         and one regular construction in another path.
3256         Just put the StringImpl where it needs to be instead.
3257
3258 2013-07-15  Benjamin Poulain  <benjamin@webkit.org>
3259
3260         Add a threading assertion to AtomicString::remove
3261         https://bugs.webkit.org/show_bug.cgi?id=118695
3262
3263         Reviewed by Sam Weinig.
3264
3265         * wtf/text/AtomicString.cpp:
3266         (WTF::AtomicString::remove): The destructor of StringImpl remove
3267         the string from the string table if it is atomic. This needs to be done
3268         on the same thread as the one on which the string was added (otherwise the original
3269         table would keep a dangling pointer to a dead string).
3270
3271 2013-07-15  Benjamin Poulain  <benjamin@webkit.org>
3272
3273         Minor cleaning of AtomicString::addSlowCase
3274         https://bugs.webkit.org/show_bug.cgi?id=118615
3275
3276         Reviewed by Geoffrey Garen.
3277
3278         Give the variable a proper name.
3279         Add assertions to clarify the in and out states.
3280
3281         * wtf/text/AtomicString.cpp:
3282         (WTF::AtomicString::addSlowCase):
3283
3284 2013-07-12  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3285
3286         Improve StringImpl::constructInternal() method
3287         https://bugs.webkit.org/show_bug.cgi?id=118503
3288
3289         Reviewed by Benjamin Poulain.
3290
3291         StringImpl::constructInternal used 'if ()' statement to decide which constructor
3292         to invoke hence compiler had to compile both branches even though optimizer would
3293         have then removed one of those, and as the function is inline it could affect
3294         slightly the compilation time.
3295
3296         The problem is solved via template specialization.
3297
3298         * wtf/text/StringImpl.h:
3299         (WTF::LChar):
3300         (WTF::UChar):
3301
3302 2013-07-11  Patrick Gansterer  <paroga@webkit.org>
3303
3304         Remove unused Windows CE files
3305         https://bugs.webkit.org/show_bug.cgi?id=118557
3306
3307         Reviewed by Andreas Kling.
3308
3309         * wtf/wince/FastMallocWinCE.h: Removed.
3310         * wtf/wince/MemoryManager.cpp: Removed.
3311         * wtf/wince/MemoryManager.h: Removed.
3312
3313 2013-07-10  Michael Brüning  <michael.bruning@digia.com>
3314
3315         Workaround for x86 optimizer bug in MSVC 2012.
3316         https://bugs.webkit.org/show_bug.cgi?id=118478
3317
3318         Reviewed by Benjamin Poulain.
3319
3320         This is a workaround for a bug in the x86 MSVC 2012 optimizer.
3321
3322         The problem is that the range comparison gets optimized out when
3323         the templated inline function toASCIIUpper. Copying the methods 
3324         content fixes the problem. 
3325
3326         This is unfortunately not the nicest fix, but the alternative would
3327         be to turn off optimization for StringImpl::upper on the x86 MSVC 2012
3328         build, which might impact overall performance negatively.
3329
3330         * wtf/text/StringImpl.cpp:
3331         (WTF::StringImpl::upper):
3332
3333 2013-07-08  Carlos Garcia Campos  <cgarcia@igalia.com>
3334
3335         Unreviewed. Fix make distcheck.
3336
3337         * GNUmakefile.list.am: Add missing header files.
3338
3339 2013-07-08  Antti Koivisto  <antti@apple.com>
3340
3341         Add Deque::removeLast
3342         https://bugs.webkit.org/show_bug.cgi?id=118466
3343
3344         Reviewed by Andreas Kling.
3345         
3346         Deque can remove both the first and the last element efficiently.
3347         
3348         Test: TestWebKitAPI/Tests/WTF/Deque.cpp
3349
3350         * wtf/Deque.h:
3351         (WTF::::takeLast):
3352         (WTF::::removeLast):
3353
3354 2013-07-08  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
3355
3356         [Qt][Windows] Buildfix after r152426.
3357
3358         Reviewed by Csaba Osztrogonác.
3359
3360         * wtf/Platform.h: Do not include WTFHeaderDetection.h on Qt build.
3361
3362 2013-07-06  Benjamin Poulain  <benjamin@webkit.org>
3363
3364         Fix the performance regressions introduced by r152418
3365         https://bugs.webkit.org/show_bug.cgi?id=118438
3366
3367         Reviewed by Sam Weinig.
3368
3369         * wtf/text/StringImpl.h:
3370         (WTF::equal):
3371         Looping between two arbitrary pointers prevents important loop
3372         optimizations.
3373
3374 2013-07-05  Brent Fulgham  <bfulgham@apple.com>
3375
3376         [Windows] Unreviewed build correction.
3377
3378         * WTF.vcxproj/WTFGenerated.make: Avoid syntax error in generated
3379         file in cases where Legible Output support is not present.
3380
3381 2013-07-05  Brent Fulgham  <bfulgham@apple.com>
3382
3383         [Windows] Unreviewed build correction.
3384
3385         * WTF.vcxproj/WTFGenerated.make: Use space (rather than double
3386         quotes) when handling the no-Legible-Output case.
3387
3388 2013-07-05  Brent Fulgham  <bfulgham@apple.com>
3389
3390         [Windows] Identify OS-level at build-time.
3391         https://bugs.webkit.org/show_bug.cgi?id=118428
3392
3393         Reviewed by Anders Carlsson.
3394
3395         * WTF.vcxproj/WTFGenerated.make: Check for Legible Output featurs
3396         and set build environment as appropriate.
3397         * wtf/Platform.h: Activate Legible Output features if present.
3398
3399 2013-07-05  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3400
3401         A lot of code duplication within StringImpl 'equal' functions
3402         https://bugs.webkit.org/show_bug.cgi?id=118415
3403
3404         Reviewed by Anders Carlsson.
3405
3406         There has been a lot of code duplication within StringImpl 'equal' functions:
3407         the whole logic was copied to every overloaded 'equal' function.
3408         Fixed now using templates and std::equal.
3409
3410         * wtf/text/StringImpl.cpp:
3411         (WTF::equalInternal):
3412         (WTF::equal):
3413         * wtf/text/StringImpl.h:
3414         (WTF::arraysEqual):
3415         (WTF::equal):
3416
3417 2013-07-05  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3418
3419         Remove code duplication from StringImpl create()/reallocate() methods
3420         https://bugs.webkit.org/show_bug.cgi?id=118355
3421
3422         Reviewed by Andreas Kling.
3423
3424         StringImpl create()/reallocate() methods accepting LChar and UChar used to have
3425         duplicated code. The code duplication is removed now via used templates.
3426
3427         * wtf/text/StringImpl.cpp:
3428         (WTF::StringImpl::constructInternal):
3429         (WTF::LChar):
3430         (WTF::StringImpl::createUninitializedInternal):
3431         (WTF::StringImpl::createUninitialized):
3432         (WTF::StringImpl::reallocateInternal):
3433         (WTF::StringImpl::reallocate):
3434         (WTF::StringImpl::createInternal):
3435         (WTF::StringImpl::create):
3436         * wtf/text/StringImpl.h:
3437
3438 2013-07-03  Brent Fulgham  <bfulgham@apple.com>
3439
3440         [Windows] Unreviewed build correction.
3441
3442         * WTF.vcxproj/copy-files.cmd: Limit path (for this file) to DOS-only to avoid
3443         the Cygwin variant of rmdir from being used.
3444
3445 2013-07-03  Commit Queue  <commit-queue@webkit.org>
3446
3447         Unreviewed, rolling out r152356.
3448         http://trac.webkit.org/changeset/152356
3449         https://bugs.webkit.org/show_bug.cgi?id=118361
3450
3451         Broke JSCore tests (Requested by andersca on #webkit).
3452
3453         * wtf/text/StringImpl.cpp:
3454         (WTF::StringImpl::createUninitialized):
3455         (WTF::StringImpl::reallocate):
3456         (WTF::StringImpl::create):
3457         * wtf/text/StringImpl.h:
3458
3459 2013-07-03  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3460
3461         Remove code duplication from StringImpl create()/reallocate() methods
3462         https://bugs.webkit.org/show_bug.cgi?id=118355
3463
3464         Reviewed by Anders Carlsson.
3465
3466         StringImpl create()/reallocate() methods accepting LChar and UChar used to have
3467         duplicated code. The code duplication is removed now via used templates.
3468
3469         * wtf/text/StringImpl.cpp:
3470         (WTF::StringImpl::constructInternal):
3471         (WTF::LChar):
3472         (WTF::StringImpl::createUninitializedInternal):
3473         (WTF::StringImpl::createUninitialized):
3474         (WTF::StringImpl::reallocateInternal):
3475         (WTF::StringImpl::reallocate):
3476         (WTF::StringImpl::createInternal):
3477         (WTF::StringImpl::create):
3478         * wtf/text/StringImpl.h:
3479
3480 2013-07-03  Csaba Osztrogonác  <ossy@webkit.org>
3481
3482         Fix cast-align warnings in FastMalloc.cpp
3483         https://bugs.webkit.org/show_bug.cgi?id=117991
3484
3485         Reviewed by Mark Hahnenberg.
3486
3487         * wtf/FastMalloc.cpp:
3488
3489 2013-07-02  Geoffrey Garen  <ggaren@apple.com>
3490
3491         plainText() is O(N^2)
3492         https://bugs.webkit.org/show_bug.cgi?id=118282
3493         <rdar://problem/14284360>
3494
3495         Reviewed by Alexey Proskuryakov.
3496
3497         * wtf/text/StringBuilder.cpp:
3498         (WTF::expandCapacity): Factored out this helper function to simplify
3499         some code that was duplicated in four places.
3500
3501         (WTF::StringBuilder::appendUninitializedSlow):
3502         (WTF::StringBuilder::append): Use expandCapacity(). One of the cases
3503         was not doing anything special, and so was O(N^2).
3504
3505         Also, always call expandCapacity() it in a standard way, calling
3506         capacity() first, so it's easy to tell at a glance that you got it right.
3507
3508 2013-07-02  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3509
3510         Avoid code duplication inside String::append()
3511         https://bugs.webkit.org/show_bug.cgi?id=118290
3512
3513         Reviewed by Anders Carlsson.
3514
3515         The implementation of 'append(UChar)' had been repeated inside 'append(LChar)',
3516         this duplication is obviated now.
3517
3518         * wtf/text/WTFString.cpp:
3519         (WTF::String::appendInternal):
3520         (WTF::String::append):
3521         * wtf/text/WTFString.h:
3522
3523 2013-06-28  Anders Carlsson  <andersca@apple.com>
3524
3525         Remove String::deprecatedCharactersWithNullTermination() and related code
3526         https://bugs.webkit.org/show_bug.cgi?id=118211
3527
3528         Reviewed by Benjamin Poulain.
3529
3530         Remove String::deprecatedCharactersWithNullTermination, StringImpl::createWithTerminatingNullCharacter
3531         and the s_hashFlagHasTerminatingNullCharacter flag. We no longer care about whether strings have a
3532         terminating null character.
3533
3534         * wtf/text/StringImpl.cpp:
3535         (WTF::StringImpl::createFromLiteral):
3536         (WTF::StringImpl::createWithoutCopying):
3537         (WTF::StringImpl::getData16SlowCase):
3538         (WTF::StringImpl::sizeInBytes):
3539         * wtf/text/StringImpl.h:
3540         (WTF::StringImpl::StringImpl):
3541         (WTF::StringImpl::createFromLiteral):
3542         (WTF::StringImpl::isolatedCopy):
3543         * wtf/text/WTFString.cpp:
3544         * wtf/text/WTFString.h:
3545
3546 2013-06-27  Anders Carlsson  <andersca@apple.com>
3547
3548         Add a new String::charactersWithNullTermination() function that returns a vector
3549         https://bugs.webkit.org/show_bug.cgi?id=118155
3550
3551         Reviewed by Andreas Kling.
3552
3553         This new String::charactersWithNullTermination() function returns a new Vector<UChar>
3554         and does not modify the underlying string data.
3555
3556         * wtf/text/WTFString.cpp:
3557         (WTF::String::charactersWithNullTermination):
3558         * wtf/text/WTFString.h:
3559
3560 2013-06-26  Anders Carlsson  <andersca@apple.com>
3561
3562         Deprecate StringImpl::charactersWithNullTermination
3563         https://bugs.webkit.org/show_bug.cgi?id=118108
3564
3565         Reviewed by Beth Dakin.
3566
3567         The optimization in String and StringImpl to keep track of whether a string
3568         has a null terminator isn't worth it; in most cases we call charactersWithNullTermination() on
3569         temporary strings which ends up copying strings anyway.
3570         
3571         A better solution is to have a charactersWithNullTermination() function that returns a Vector<UChar>,
3572         which is similar to what we have for String::utf8() and String::ascii(). This will be done in a follow-up patch.
3573
3574         * wtf/text/WTFString.cpp:
3575         (WTF::String::deprecatedCharactersWithNullTermination):
3576         * wtf/text/WTFString.h:
3577
3578 2013-06-26  Anders Carlsson  <andersca@apple.com>
3579
3580         Add JSStringCreateWithCharactersNoCopy SPI
3581         https://bugs.webkit.org/show_bug.cgi?id=118074
3582         <rdar://problem/14279905>
3583
3584         Reviewed by Geoffrey Garen.
3585
3586         * wtf/text/StringImpl.cpp:
3587         (WTF::StringImpl::createFromLiteral):
3588         Use the new ConstructWithoutCopying constructor, passing DoesHaveTerminatingNullCharacter to it.
3589         Change the other createFromLiteral overload to just call the first.
3590
3591         (WTF::StringImpl::createWithoutCopying):
3592         Add helper functions for creating strings that shouldn't copy their underlying data.
3593
3594         * wtf/text/StringImpl.h:
3595         (WTF::StringImpl::StringImpl):
3596         Rename the ConstructFromLiteralTag constructor enum to ConstructWithoutCopyingTag. Change the constructor
3597         to take an enum that states whether the string has a terminating null character or not.
3598
3599         (WTF::StringImpl::createFromLiteral):
3600         Call createWithoutCopying.
3601
3602         (WTF::StringImpl::requiresCopy):
3603         Rename this from isASCIILiteral() and make it more generic so it can handle 16-bit strings as well.
3604
3605         (WTF::StringImpl::isolatedCopy):
3606         If this string doesn't have to be copied, just create a new StringImpl object that references the current data.
3607
3608 2013-06-26  Jer Noble  <jer.noble@apple.com>
3609
3610         Potential use-after-free after neutering AudioBuffer's underlying ArrayBuffer.
3611         https://bugs.webkit.org/show_bug.cgi?id=118040
3612
3613         Reviewed by Filip Pizlo.
3614
3615         Add support for 'unneuterable' ArrayBufferViews. Views marked as such will have their underlying
3616         ArrayBuffer objects copied rather than transferred to a new view.
3617
3618         * wtf/ArrayBuffer.cpp:
3619         (WTF::ArrayBuffer::transfer): Check whether the associated views are neuterable, and if not
3620                 clone the ArrayBuffer rather than transferring it.
3621         * wtf/ArrayBuffer.h:
3622         (WTF::ArrayBufferContents::copyTo): Added. Utility function.
3623         * wtf/ArrayBufferView.cpp:
3624         (WTF::ArrayBufferView::ArrayBufferView):
3625         (WTF::ArrayBufferView::neuter):
3626         * wtf/ArrayBufferView.h:
3627         (WTF::ArrayBufferView::setNeuterable):
3628         (WTF::ArrayBufferView::isNeuterable):
3629
3630 2013-06-26  Brent Fulgham  <bfulgham@apple.com>
3631
3632         [Windows] Enable CaptionUserPreferenceMediaAF on Windows.
3633         https://bugs.webkit.org/show_bug.cgi?id=118076
3634
3635         Reviewed by Eric Carlson.
3636
3637         * wtf/Platform.h: Enable Media Accessibility Framework in Windows build environments
3638           that support it.
3639
3640 2013-06-24  Roger Fong  <roger_fong@apple.com>
3641
3642         Unreviewed. AppleWin build fix, followup to r151915.
3643
3644         * WTF.vcxproj/WTFProduction.props:
3645
3646 2013-06-24  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3647
3648         HashMap: reverse the order of the template arguments at alternate 'find', 'contains' and 'add' methods
3649         https://bugs.webkit.org/show_bug.cgi?id=117911
3650
3651         Reviewed by Anders Carlsson.
3652
3653         The order of the template arguments at HashMap alternate 'find', 'contains' and
3654         'add' methods is reversed so that callers can just pass the translator
3655         and let the compiler deduce input argument type.
3656
3657         Another rational is consistency with HashSet class.
3658
3659         * wtf/HashMap.h:
3660
3661 2013-06-24  peavo@outlook.com  <peavo@outlook.com>
3662
3663         [WinCairo] WTF.dll is linking with CoreFoundation.lib in VS2010.
3664         https://bugs.webkit.org/show_bug.cgi?id=117294
3665
3666       &nbs