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