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