DFG::DCEPhase inserts into an insertion set in reverse, causing hilarious basic block...
[WebKit-https.git] / Source / WTF / ChangeLog
1 2014-05-28  Filip Pizlo  <fpizlo@apple.com>
2
3         DFG::DCEPhase inserts into an insertion set in reverse, causing hilarious basic block corruption if you kill a lot of NewArrays
4         https://bugs.webkit.org/show_bug.cgi?id=133368
5
6         Reviewed by Mark Lam.
7
8         * wtf/Insertion.h:
9         (WTF::executeInsertions): This algorithm is only correct if insertions are added in the right order. Assert that the order is right.
10
11 2014-05-27  Jon Lee  <jonlee@apple.com>
12
13         Update ENABLE(MEDIA_SOURCE) on Mac
14         https://bugs.webkit.org/show_bug.cgi?id=133141
15
16         Reviewed by Darin Adler.
17
18         * wtf/FeatureDefines.h: #ifdef unneeded for Mac since it's covered in the .xcconfigs.
19
20 2014-05-27  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>
21
22         Remove BLOB guards
23         https://bugs.webkit.org/show_bug.cgi?id=132863
24
25         Reviewed by Csaba Osztrogonác.
26
27         * wtf/FeatureDefines.h:
28
29 2014-05-27  Gwang Yoon Hwang  <yoon@igalia.com>
30
31         [GLIB] RunLoop::dispatch always executes the function on the main thread instead of the target thread.
32         https://bugs.webkit.org/show_bug.cgi?id=133291
33
34         Reviewed by Carlos Garcia Campos.
35
36         GMainLoopSource::schedule[AfterDelay] must be used with the appropriate
37         GMainContext. Because current implementations in RunLoopGtk passes nullptr
38         instead of its runLoopContext when using GMainLoopSource, all of dispatched
39         functions are executed on the main thread regardless of which runloops is used.
40
41         This patch fixes the issue by passing the m_runLoopContext instead the default
42         parameter to the GMainLoopSource::schedule[AfterDelay].
43
44         * wtf/gtk/RunLoopGtk.cpp:
45         (WTF::RunLoop::wakeUp):
46         (WTF::RunLoop::TimerBase::start):
47
48 2014-05-26  Darin Adler  <darin@apple.com>
49
50         Class name matching should use ASCII case-insensitive matching, not Unicode case folding
51         https://bugs.webkit.org/show_bug.cgi?id=133292
52
53         Reviewed by Anders Carlsson.
54
55         * wtf/text/AtomicString.cpp:
56         (WTF::AtomicString::addSlowCase): Change to take references instead of pointers since these
57         arguments can never be null.
58         (WTF::AtomicString::lower): Rearranged slightly to use PassRef in a more efficient but
59         slightly uglier way.
60         (WTF::AtomicString::convertToASCIILowercase): Added.
61         * wtf/text/AtomicString.h: Updated for above changes.
62
63         * wtf/text/StringImpl.cpp:
64         (WTF::StringImpl::convertToASCIILowercase): Added.
65         * wtf/text/StringImpl.h: Updated for above.
66
67         * wtf/text/WTFString.cpp:
68         (WTF::String::convertToASCIILowercase): Added.
69         * wtf/text/WTFString.h: Updated for above.
70
71 2014-05-22  Zan Dobersek  <zdobersek@igalia.com>
72
73         Add the partial specialization for VectorTraits<std::unique_ptr<P>>
74         https://bugs.webkit.org/show_bug.cgi?id=133083
75
76         Reviewed by Andreas Kling.
77
78         * wtf/VectorTraits.h: Like for RefPtr<P>, OwnPtr<P> and Ref<P>, the partial
79         specialization for VectorTraits<std::unique_ptr<P>> should exist and should
80         inherit from SimpleClassVector.
81
82 2014-05-20  Geoffrey Garen  <ggaren@apple.com>
83
84         Rolled out <http://trac.webkit.org/changeset/166184>
85         https://bugs.webkit.org/show_bug.cgi?id=133144
86
87         Reviewed by Gavin Barraclough.
88
89         It caused a performance regression.
90
91         * wtf/FastMalloc.cpp:
92         (WTF::TCMalloc_PageHeap::runScavengerThread):
93         * wtf/Threading.h:
94         * wtf/ThreadingPthreads.cpp:
95         (WTF::createThreadInternal):
96         (WTF::setCurrentThreadQOSUtility): Deleted.
97         * wtf/ThreadingWin.cpp:
98         (WTF::setCurrentThreadQOSUtility): Deleted.
99
100 2014-05-20  Jer Noble  <jer.noble@apple.com>
101
102         [Mac] AVAssets are never destroyed; lack of an autorelease pool when calling callOnMainThread.
103         https://bugs.webkit.org/show_bug.cgi?id=133130
104
105         Reviewed by Geoff Garen.
106
107         Wrap the function to be called in an autorelease pool, so that autoreleased objects are cleaned
108         up immediately after the end of the function.
109
110         * wtf/mac/MainThreadMac.mm:
111         (WTF::timerFired):
112
113 2014-05-18  Rik Cabanier  <cabanier@adobe.com>
114
115         support for navigator.hardwareConcurrency
116         https://bugs.webkit.org/show_bug.cgi?id=132588
117
118         Reviewed by Filip Pizlo.
119
120         * wtf/FeatureDefines.h:
121
122 2014-05-14  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>
123
124         Remove CSS_STICKY_POSITION guards
125         https://bugs.webkit.org/show_bug.cgi?id=132676
126
127         Reviewed by Simon Fraser.
128
129         * wtf/FeatureDefines.h:
130
131 2014-05-13  Simon Fraser  <simon.fraser@apple.com>
132
133         [iOS WK2] background-attachment:fixed behaves very poorly
134         https://bugs.webkit.org/show_bug.cgi?id=132881
135         <rdar://problem/16789526>
136
137         Reviewed by Beth Dakin.
138         
139         Remove ENABLE_FAST_MOBILE_SCROLLING. Ports can use the fixedBackgroundsPaintRelativeToDocument
140         setting now.
141
142         * wtf/FeatureDefines.h:
143
144 2014-05-08  Alexey Proskuryakov  <ap@apple.com>
145
146         Automatically zip document bundles used via File API
147         https://bugs.webkit.org/show_bug.cgi?id=132713
148         <rdar://problem/13397892>
149
150         Reviewed by Anders Carlsson.
151
152         * wtf/FeatureDefines.h: Added ENABLE_FILE_REPLACEMENT for Mac.
153
154 2014-05-07  Filip Pizlo  <fpizlo@apple.com>
155
156         UNREACHABLE_FOR_PLATFORM() is meant to be a release crash.
157
158         Rubber stamped by Mark Hahnenberg..
159
160         * wtf/Assertions.h:
161         (UNREACHABLE_FOR_PLATFORM):
162
163 2014-05-06  Alberto Garcia  <berto@igalia.com>
164
165         There is no HW_AVAILCPU on FreeBSD, NetBSD, and OpenBSD
166         https://bugs.webkit.org/show_bug.cgi?id=132542
167
168         Reviewed by Michael Saboff.
169
170         Use sysconf() to get the number of processor cores.
171
172         * wtf/NumberOfCores.cpp:
173         (WTF::numberOfProcessorCores):
174
175 2014-05-04  Darin Adler  <darin@apple.com>
176
177         RetainPtr: Use adoptCF function instead of AdoptCF constructor argument
178         https://bugs.webkit.org/show_bug.cgi?id=80222
179
180         Reviewed by Alexey Proskuryakov.
181
182         All the clients are gone, so we can now remove AdoptCF and AdoptNS.
183
184         * wtf/RetainPtr.h: Removed the public constructors that let you specify AdoptCF
185         and AdoptNS. Instead, made the adoptCF and adoptNS functions be friends and use
186         a private constructor that takes an Adopt argument.
187         (WTF::adoptCF): Moved the Objective-C class check in here.
188         (WTF::adoptNS): Moved the code to deal with the CFRetain for garbage collection
189         in here; it used to be spread across the constructor and adoptNSReference.
190
191 2014-05-04  Andreas Kling  <akling@apple.com>
192
193         Optimize JSRopeString for resolving directly to AtomicString.
194         <https://webkit.org/b/132548>
195
196         Add AtomicString::find([LU]Char*, unsigned length) helpers for finding
197         an existing AtomicString without a StringImpl on hand.
198
199         Reviewed by Filip Pizlo.
200
201         * wtf/text/AtomicString.h:
202         * wtf/text/AtomicString.cpp:
203         (WTF::AtomicString::find):
204
205 2014-05-01  Brent Fulgham  <bfulgham@apple.com>
206
207         Fix handling of attributes prior to compiling shader
208         https://bugs.webkit.org/show_bug.cgi?id=132430
209
210         Reviewed by Dean Jackson.
211
212         WebGL programs that called bindAttribLocations prior to compiling shader sources
213         would perform the bind using the non-hashed symbol name, but would later create
214         the attributes as hashed names. Consequently, the program would refer to
215         attributes that were never actually part of any shader, resulting in some amazing
216         display artifacts.
217
218         This patch adds a dictionary of hashed symbol names so that we can tell the WebGL
219         program the proper name that will be used when the shader is eventually compiled,
220         allowing the WebGL program to link against the proper symbol after compiling and
221         linking completes.
222
223         * wtf/HexNumber.h:
224         (WTF::appendUnsigned64AsHex): Add uint64_t-compatible hex->string converter.
225
226 2014-04-30  Geoffrey Garen  <ggaren@apple.com>
227
228         Link against bmalloc in production builds
229         https://bugs.webkit.org/show_bug.cgi?id=132413
230
231         Reviewed by Sam Weinig.
232
233         Production builders have been configured to handle this, so let's build
234         it.
235
236         * Configurations/WTF.xcconfig:
237
238 2014-05-01  Ryuan Choi  <ryuan.choi@samsung.com>
239
240         [EFL] There are many warnings with software backend
241         https://bugs.webkit.org/show_bug.cgi?id=132422
242
243         Reviewed by Gyuyoung Kim.
244
245         * wtf/efl/EflTypedefs.h: Added Ecore_X_Window typedef
246
247 2014-04-30  Simon Fraser  <simon.fraser@apple.com>
248
249         Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO
250         https://bugs.webkit.org/show_bug.cgi?id=132396
251
252         Reviewed by Eric Carlson.
253
254         Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO and related code.
255
256         * wtf/FeatureDefines.h:
257
258 2014-04-30  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
259
260         [GTK][GStreamer] Remove unnecessary GLIB_CHECK_VERSION #ifdefs
261         https://bugs.webkit.org/show_bug.cgi?id=132390
262
263         Reviewed by Philippe Normand.
264
265         Since EFL port use GLib 2.38 and GTK+, 2.33.2, I assume it is OK
266         remove, in GTK+ and GST, the existing glib version guards.
267
268         This code was rollback from r149879 because Qt MIPS used it. But since
269         Qt is gone, it is safe to remove now.
270
271         * wtf/gobject/GRefPtr.cpp:
272         (WTF::refGPtr): Deleted.
273         (WTF::derefGPtr): Deleted.
274
275 2014-04-29  Alex Christensen  <achristensen@webkit.org>
276
277         [WinCairo] Switch video from GStreamer to Media Foundation.
278         https://bugs.webkit.org/show_bug.cgi?id=132358
279
280         Reviewed by Brent Fulgham.
281
282         * WTF.vcxproj/WTF.vcxproj:
283         Removed dependencies on GStreamer.
284         * wtf/Platform.h:
285         Use Media Foundation instead of GStreamer and GLib.
286
287 2014-04-29  Filip Pizlo  <fpizlo@apple.com>
288
289         Unreviewed, fix cloop build.
290
291         * wtf/Platform.h:
292
293 2014-04-29  Michael Saboff  <msaboff@apple.com>
294
295         For DARWIN platforms, use system temporary directory for DataLog output
296         https://bugs.webkit.org/show_bug.cgi?id=132346
297
298         Reviewed by Geoffrey Garen.
299
300         Added code to call confstr() to access the process's temporary directory to use that
301         location instead of /tmp/.  Put the code behind #ifdef DATA_LOG_TO_DARWIN_TEMP_DIR.
302
303         * wtf/DataLog.cpp:
304         (WTF::initializeLogFileOnce):
305
306 2014-04-25  Filip Pizlo  <fpizlo@apple.com>
307
308         Figure out how many cores are available for realsies.
309
310         Rubber stamped by Andreas Kling.
311         
312         HW_AVAILCPU is more canonical than HW_NCPU. For example if you use hacks to tell Darwin
313         to make it seem like there are fewer CPUs, HW_AVAILCPU will change but HW_NCPU won't.
314         HW_NCPU doesn't reflect how much actual paralellism you'll get; it's merely reporting
315         facts about the machine you're running on. HW_AVAILCPU is almost always what WebKit
316         wants since it uses this information to decide how many threads to launch for various
317         things.
318
319         * wtf/NumberOfCores.cpp:
320         (WTF::numberOfProcessorCores):
321
322 2014-04-22  Brent Fulgham  <bfulgham@apple.com>
323
324         [Win] Support Python 2.7 in Cygwin
325         https://bugs.webkit.org/show_bug.cgi?id=132023
326
327         Reviewed by Michael Saboff.
328
329         * WTF.vcxproj/WTFGenerated.make: Use proper path to Python.
330
331 2014-04-21  Eric Carlson  <eric.carlson@apple.com>
332
333         [Mac] implement WebKitDataCue
334         https://bugs.webkit.org/show_bug.cgi?id=131799
335
336         Reviewed by Dean Jackson.
337
338         * wtf/FeatureDefines.h: Define ENABLE_DATACUE_VALUE.
339
340 2014-04-21  Darin Adler  <darin@apple.com>
341
342         Add HashSet::takeAny
343         https://bugs.webkit.org/show_bug.cgi?id=131928
344
345         Reviewed by Benjamin Poulain.
346
347         * wtf/HashSet.h: Added an overload of take that takes an iterator,
348         and used it to implement both the existing take and new takeAny functions.
349
350 2014-04-20  Andreas Kling  <akling@apple.com>
351
352         Speed up jsStringWithCache() through WeakGCMap inlining.
353         <https://webkit.org/b/131923>
354
355         Add HashMap::fastAdd(), which is the same as add() except we'll tell
356         the compiler to aggressively inline it.
357
358         Reviewed by Darin Adler.
359
360         * wtf/HashMap.h:
361         * wtf/HashTable.h:
362
363 2014-04-19  Filip Pizlo  <fpizlo@apple.com>
364
365         Make it easier to check if an integer sum would overflow
366         https://bugs.webkit.org/show_bug.cgi?id=131900
367
368         Reviewed by Darin Adler.
369
370         * wtf/CheckedArithmetic.h:
371         (WTF::checkedSum):
372         (WTF::sumOverflows):
373
374 2014-04-18  Commit Queue  <commit-queue@webkit.org>
375
376         Unreviewed, rolling out r167527.
377         https://bugs.webkit.org/show_bug.cgi?id=131883
378
379         Broke 32-bit build (Requested by ap on #webkit).
380
381         Reverted changeset:
382
383         "[Mac] implement WebKitDataCue"
384         https://bugs.webkit.org/show_bug.cgi?id=131799
385         http://trac.webkit.org/changeset/167527
386
387 2014-04-18  Eric Carlson  <eric.carlson@apple.com>
388
389         [Mac] implement WebKitDataCue
390         https://bugs.webkit.org/show_bug.cgi?id=131799
391
392         Reviewed by Dean Jackson.
393
394         * wtf/FeatureDefines.h: Define ENABLE_DATACUE_VALUE.
395
396 2014-04-18  Martin Robinson  <mrobinson@igalia.com>
397
398         Remove DynamicAnnotations.h?
399         https://bugs.webkit.org/show_bug.cgi?id=131754
400
401         Reviewed by Simon Fraser.
402
403         This file, which helped support tools like Valgrind was unused.
404
405         * WTF.vcxproj/WTF.vcxproj: Remove references to the files.
406         * WTF.vcxproj/WTF.vcxproj.filters: Remove references to the files.
407         * WTF.xcodeproj/project.pbxproj: Remove references to the files.
408         * wtf/CMakeLists.txt: Remove references to the files.
409         * wtf/DynamicAnnotations.cpp: Removed.
410         * wtf/DynamicAnnotations.h: Removed.
411         * wtf/ThreadSafeRefCounted.h: Remove references to the files.
412         * wtf/text/StringStatics.cpp: Remove references to the files.
413
414 2014-04-18  Philippe Normand  <pnormand@igalia.com>
415
416         Remove NETWORK_INFO support
417         https://bugs.webkit.org/show_bug.cgi?id=131841
418
419         Reviewed by Gyuyoung Kim.
420
421         * wtf/FeatureDefines.h:
422
423 2014-04-17  Filip Pizlo  <fpizlo@apple.com>
424
425         Don't include CompilationThread.h from StringImpl.h
426         https://bugs.webkit.org/show_bug.cgi?id=131817
427
428         Reviewed by Simon Fraser.
429
430         * wtf/CompilationThread.h:
431         * wtf/StdLibExtras.h:
432         * wtf/text/StringImpl.h:
433
434 2014-04-17  Darin Adler  <darin@apple.com>
435
436         Use HashMap<unique_ptr> and Vector<unique_ptr> instead of deprecatedDeleteAllValues
437         https://bugs.webkit.org/show_bug.cgi?id=73757
438
439         Reviewed by Brent Fulgham.
440
441         * wtf/Vector.h:
442         (WTF::deprecatedDeleteAllValues): Deleted.
443
444 2014-04-17  Darin Adler  <darin@apple.com>
445
446         Add separate flag for IndexedDatabase in workers since the current implementation is not threadsafe
447         https://bugs.webkit.org/show_bug.cgi?id=131785
448         rdar://problem/16003108
449
450         Reviewed by Brady Eidson.
451
452         * wtf/FeatureDefines.h: Added INDEXED_DATABASE_IN_WORKERS.
453
454 2014-04-16  Simon Fraser  <simon.fraser@apple.com>
455
456         Don't include CryptographicallyRandomNumber.h in StringImpl.h
457         https://bugs.webkit.org/show_bug.cgi?id=131772
458
459         Reviewed by Sam Weinig.
460
461         * wtf/text/StringImpl.h:
462
463 2014-04-16  Gavin Barraclough  <barraclough@apple.com>
464
465         Update to pthread QoS SPI
466         https://bugs.webkit.org/show_bug.cgi?id=131753
467
468         Rubber stamped by Benjamin Poulain
469
470         * wtf/ThreadingPthreads.cpp:
471         (WTF::setCurrentThreadQOSUtility):
472
473 2014-04-14  Geoffrey Garen  <ggaren@apple.com>
474
475         WTF should have an optional mbmalloc target so we can benchmark FastMalloc
476         https://bugs.webkit.org/show_bug.cgi?id=131662
477
478         Reviewed by Darin Adler.
479
480         * WTF.xcodeproj/project.pbxproj: Added the target.
481         * wtf/mbmalloc.cpp: Added. Implements the libmbmalloc.dylib API required
482         by MallocBench.
483
484 2014-04-16  Darin Adler  <darin@apple.com>
485
486         Make Vector::takeLast work with move-only types (and optimize for types where move is faster)
487         https://bugs.webkit.org/show_bug.cgi?id=131735
488
489         Reviewed by Alexey Proskuryakov.
490
491         * wtf/Vector.h:
492         (WTF::Vector::takeLast): Added a missing std::move. All the other take functions have it.
493
494 2014-04-14  Mark Lam  <mark.lam@apple.com>
495
496         monotonicallyIncreasingTime() should only initialize its static timebaseInfo once.
497         <https://webkit.org/b/131630>
498
499         Reviewed by Filip Pizlo.
500
501         The current initialization of the static field is not thread safe.
502
503         * wtf/CurrentTime.cpp:
504         (WTF::monotonicallyIncreasingTime):
505
506 2014-04-14  Benjamin Poulain  <benjamin@webkit.org>
507
508         [JSC] Improve the call site of string comparison in some hot path
509         https://bugs.webkit.org/show_bug.cgi?id=131605
510
511         Reviewed by Darin Adler.
512
513         * wtf/text/StringImpl.cpp:
514         (WTF::stringImplContentEqual):
515         Inline that function to reduce the call overhead for JSC.
516         This is only inlined twice, it is not catastrophic for our binary.
517
518 2014-04-13  Andy Estes  <aestes@apple.com>
519
520         Relax adoption requirements of RefCounted objects that are NeverDestroyed
521         https://bugs.webkit.org/show_bug.cgi?id=131593
522
523         Reviewed by Dan Bernstein.
524
525         RefCounted objects that are created by NeverDestroyed<> won't have a
526         RefPtr adopting them, so call relaxAdoptionRequirements().
527
528         * wtf/NeverDestroyed.h:
529         (WTF::NeverDestroyed::NeverDestroyed):
530         (WTF::NeverDestroyed::MaybeRelax::MaybeRelax):
531
532 2014-04-10  Brent Fulgham  <bfulgham@apple.com>
533
534         [Win] Clean up some 64-bit warnings from Visual Studio analyzer
535         https://bugs.webkit.org/show_bug.cgi?id=131514
536
537         Reviewed by Tim Horton.
538
539         * WTF.vcxproj/WTF.vcxproj: Use correct platform settings for
540         64-bit build.
541         * config.h: Ditto.
542         * wtf/CurrentTime.cpp:
543         (WTF::highResUpTime): Resolve warning about deprecated API.
544         * wtf/StackBounds.cpp:
545         (WTF::StackBounds::initialize): Silence warning about
546         an uninitialized variable.
547
548 2014-04-09  Geoffrey Garen  <ggaren@apple.com>
549
550         Rolled back in r166972.
551
552         This time, we conditionally exclude linking against bmalloc in Production
553         builds. Production builds will not be able to link against bmalloc
554         until the Production build system has been updated to build bmalloc.
555
556             WTF should link against bmalloc
557             https://bugs.webkit.org/show_bug.cgi?id=131403
558
559             Reviewed by Mark Rowe.
560
561             * Configurations/WTF.xcconfig:
562             * WTF.xcodeproj/project.pbxproj:
563
564 2014-04-09  Geoffrey Garen  <ggaren@apple.com>
565
566         Put bmalloc headers in the right place
567         https://bugs.webkit.org/show_bug.cgi?id=131464
568
569         Reviewed by Mark Rowe.
570
571         * wtf/FastMalloc.cpp: Use "<bmalloc/...>" syntax so we can find our
572         headers in <header-root>/usr/local/include/bmalloc/.
573
574 2014-04-09  Geoffrey Garen  <ggaren@apple.com>
575
576         Rolled back out r166972.
577
578         The production buildbots are still broken because the build-root script
579         doesn't build bmalloc.
580
581         * WTF.xcodeproj/project.pbxproj:
582
583 2014-04-09  Geoffrey Garen  <ggaren@apple.com>
584
585         Rolled back in r166972.
586
587         The iOS buildbot's scripts have been updated to build bmalloc, so the
588         build should now succeed on the bot.
589
590         Also renamed "Frameworks" to "Libraries" as suggested in a review comment.
591
592             WTF should link against bmalloc
593             https://bugs.webkit.org/show_bug.cgi?id=131403
594
595             Reviewed by Michael Saboff.
596
597             This is required to build successfullly with bmalloc enabled.
598
599             * WTF.xcodeproj/project.pbxproj:
600
601 2014-04-08  Geoffrey Garen  <ggaren@apple.com>
602
603         Stop linking WTF against bmalloc.
604
605         Reviewed by Enrica Casucci.
606
607         This seems to have broken an iOS buildbot script. Disable it for now
608         until we can fix the script.
609
610         * WTF.xcodeproj/project.pbxproj:
611
612 2014-04-08  Geoffrey Garen  <ggaren@apple.com>
613
614         WTF should link against bmalloc
615         https://bugs.webkit.org/show_bug.cgi?id=131403
616
617         Reviewed by Michael Saboff.
618
619         This is required to build successfullly with bmalloc enabled.
620
621         * WTF.xcodeproj/project.pbxproj:
622
623 2014-04-08  Geoffrey Garen  <ggaren@apple.com>
624
625         Added a bmalloc back-end for FastMalloc
626         https://bugs.webkit.org/show_bug.cgi?id=131387
627
628         Reviewed by Andreas Kling.
629
630         We'll need to rethink some things if we adopt this back-end. For example,
631         fastMallocSize() and fastMallocGoodSize() are no longer real things. But,
632         this is enough to test for now.
633
634         * wtf/FastMalloc.cpp:
635         (WTF::fastMalloc):
636         (WTF::fastCalloc):
637         (WTF::fastRealloc):
638         (WTF::fastFree):
639         (WTF::fastMallocSize):
640         (WTF::fastMallocGoodSize):
641         (WTF::tryFastMalloc):
642         (WTF::tryFastRealloc):
643         (WTF::tryFastCalloc):
644         (WTF::releaseFastMallocFreeMemory):
645         (WTF::fastMallocStatistics):
646
647 2014-04-08  Andres Gomez  <agomez@igalia.com>
648
649         [GTK] [EFL] Build fails with GCC < 4.8.x
650         https://bugs.webkit.org/show_bug.cgi?id=130585
651
652         Reviewed by Martin Robinson.
653
654         The behavior in lower versions of GCC seem to be related to
655         http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#2132.
656
657         Provided explicit casts for the failing ambiguous overloads.
658
659         * wtf/gtk/MainThreadGtk.cpp:
660         (WTF::scheduleDispatchFunctionsOnMainThread):
661         * wtf/gtk/RunLoopGtk.cpp:
662         (WTF::RunLoop::wakeUp): Provided lambda with a RefPtr instead of
663         ref and de-referring.
664
665 2014-04-04  Mark Lam  <mark.lam@apple.com>
666
667         Date object needs to check for ES5 15.9.1.14 TimeClip limit.
668         <https://webkit.org/b/131248>
669
670         Reviewed by Mark Hahnenberg.
671
672         * wtf/DateMath.cpp:
673         - Moved the definition of maxECMAScriptTime to the .h file so that we
674           can use it in other files as well.
675         (WTF::msToYear):
676         - Removed a stale comment for parseDateFromNullTerminatedCharacters().
677         * wtf/DateMath.h:
678
679 2014-04-04  Mark Hahnenberg  <mhahnenberg@apple.com>
680
681         Enhanced GC logging
682         https://bugs.webkit.org/show_bug.cgi?id=131246
683
684         Reviewed by Geoff Garen.
685
686         Remove OBJECT_MARK_LOGGING
687
688         * wtf/FeatureDefines.h:
689         * wtf/Platform.h:
690
691 2014-04-03  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
692
693         [EFL] Enable CSS JIT again, it works fine after r166666.
694
695         Reviewed by Csaba Osztrogonác.
696
697         * wtf/Platform.h:
698
699 2014-04-03  Javier Fernandez  <jfernandez@igalia.com>
700
701         [GTK][Cmake] Enable CSS JIT
702         https://bugs.webkit.org/show_bug.cgi?id=131022
703
704         Reviewed by Martin Robinson.
705
706         * wtf/Platform.h: Enable CSS JIT for GTK port.
707
708 2014-04-02  Frédéric Wang  <fred.wang@free.fr>
709
710         Operator stretching: read the Open Type MATH table
711         https://bugs.webkit.org/show_bug.cgi?id=130324
712
713         Reviewed by Chris Fleizach.
714
715         * wtf/Platform.h: enable OPENTYPE_MATH on platforms that can read OpenType tables.
716
717 2014-04-02  Alex Christensen  <achristensen@webkit.org>
718
719         [WinCairo] Build fix with GMainLoopSource.
720         https://bugs.webkit.org/show_bug.cgi?id=131089
721
722         Reviewed by Carlos Garcia Campos.
723
724         * wtf/gobject/GMainLoopSource.cpp:
725         Only compile if glib is used, which fixes compile errors with video disabled in WinCairo.
726         * wtf/gobject/GMainLoopSource.h:
727         Export the GMainLoopSource functions to WTF.dll to link with where they are called in the GStreamer code.
728         Also removed spaces to appease style bot.
729
730 2014-04-01  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
731
732         [EFL] REGRESSION(166569): It made DoYouEvenBench/Full.html, CSS/QuerySelector.html and Dromaeo performance tests crash
733         https://bugs.webkit.org/show_bug.cgi?id=131039
734
735         Reviewed by Csaba Osztrogonác.
736
737         * wtf/Platform.h: Disable CSS JIT on EFL until proper fix.
738
739 2014-04-01  Commit Queue  <commit-queue@webkit.org>
740
741         Unreviewed, rolling out r166583.
742         https://bugs.webkit.org/show_bug.cgi?id=131040
743
744         It's causing frequent crashes when running Layout Tests
745         (Requested by svillar on #webkit).
746
747         Reverted changeset:
748
749         "[GTK][Cmake] Enable CSS JIT"
750         https://bugs.webkit.org/show_bug.cgi?id=131022
751         http://trac.webkit.org/changeset/166583
752
753 2014-04-01  Javier Fernandez  <jfernandez@igalia.com>
754
755         [GTK][Cmake] Enable CSS JIT
756         https://bugs.webkit.org/show_bug.cgi?id=131022
757
758         Reviewed by Martin Robinson.
759
760         * wtf/Platform.h: Enable CSS JIT for GTK port.
761
762 2014-04-01  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
763
764         [CMake][EFL] Enable CSS JIT
765         https://bugs.webkit.org/show_bug.cgi?id=131010
766
767         Reviewed by Benjamin Poulain.
768
769         * wtf/Platform.h: Enable CSS JIT for EFL port.
770
771 2014-03-31  Dean Jackson  <dino@apple.com>
772
773         Remove WEB_ANIMATIONS
774         https://bugs.webkit.org/show_bug.cgi?id=130989
775
776         Reviewed by Simon Fraser.
777
778         Remove this feature flag until we plan to implement.
779
780         * wtf/FeatureDefines.h:
781
782 2014-03-31  Alex Christensen  <achristensen@webkit.org>
783
784         Preparation for using Soup on Windows.
785         https://bugs.webkit.org/show_bug.cgi?id=130615
786
787         Reviewed by Carlos Garcia Campos.
788
789         * WTF.vcxproj/WTF.vcxproj:
790         * WTF.vcxproj/WTF.vcxproj.filters:
791         Add all gobject source files in WinCairo build.
792         * wtf/gobject/GRefPtr.h:
793         Export refGPtr and derefGPtr overloads in WTF.dll to fix linker errors with WebKit.dll when using soup.
794
795 2014-03-31  Zan Dobersek  <zdobersek@igalia.com>
796
797         Use std::unique_ptr in WTF::CompressedVector, WTF::GenericCompressedData
798         https://bugs.webkit.org/show_bug.cgi?id=130737
799
800         Switch to using std::unique_ptr instead of OwnPtr and PassOwnPtr
801         for the CompressedVector and GenericCompressedData classes.
802
803         * wtf/Compression.cpp:
804         (WTF::GenericCompressedData::create):
805         * wtf/Compression.h:
806         (WTF::CompressedVector::create):
807         (WTF::CompressibleVector::decompressIfNecessary):
808
809 2014-03-28  Alexey Proskuryakov  <ap@apple.com>
810
811         [Mac] Enable async text input implementation
812         https://bugs.webkit.org/show_bug.cgi?id=130856
813
814         Reviewed by Sam Weinig.
815
816         * wtf/Platform.h: Added a USE macro definition.
817
818 2014-03-28  peavo@outlook.com  <peavo@outlook.com>
819
820         Null pointer crash in String::append(UChar).
821         https://bugs.webkit.org/show_bug.cgi?id=130900
822
823         Reviewed by Michael Saboff.
824
825         * wtf/text/WTFString.cpp:
826         (WTF::String::append): Check and initialize m_impl member first, to avoid null pointer crash.
827
828 2014-03-27  Commit Queue  <commit-queue@webkit.org>
829
830         Unreviewed, rolling out r166360.
831         https://bugs.webkit.org/show_bug.cgi?id=130869
832
833         Seems to have broken PLT (Requested by ap on #webkit).
834
835         Reverted changeset:
836
837         "Connection::dispatchOneMessage() can be re-entered while
838         handling Cmd-key menu"
839         https://bugs.webkit.org/show_bug.cgi?id=130767
840         http://trac.webkit.org/changeset/166360
841
842 2014-03-27  Alexey Proskuryakov  <ap@apple.com>
843
844         Connection::dispatchOneMessage() can be re-entered while handling Cmd-key menu
845         equivalents, ASSERT(!_data->_keyDownEventBeingResent)
846         https://bugs.webkit.org/show_bug.cgi?id=130767
847         <rdar://problem/16307487>
848
849         Reviewed by Darin Adler.
850
851         Changed RunLoop to wake up and fire timers only in default run loop mode by default,
852         and added an ability to add more modes (can't use AppKit symbols in WTF).
853
854         In addition to this bug, the change also blocks modal alerts from appearing under
855         menus during menu tracking.
856
857         * wtf/RunLoop.h:
858         * wtf/cf/RunLoopCF.cpp:
859         (WTF::RunLoop::RunLoop):
860         (WTF::RunLoop::addModeForWakeUpAndTimers):
861         (WTF::RunLoop::TimerBase::start):
862
863 2014-03-26  Zan Dobersek  <zdobersek@igalia.com>
864
865         Unreviewed. Removing the remaining Automake cruft.
866
867         * GNUmakefile.list.am: Removed.
868
869 2014-03-25  Martin Robinson  <mrobinson@igalia.com>
870
871         [GTK] Remove the autotools build
872         https://bugs.webkit.org/show_bug.cgi?id=130717
873
874         Reviewed by Anders Carlsson.
875
876         * GNUmakefile.am: Removed.
877         * config.h: Removed references to the autotools configure file.
878
879 2014-03-25  Gabor Rapcsanyi  <rgabor@webkit.org>
880
881         [ARM64] GCC generates wrong code with -O2 flag in WTF::weakCompareAndSwap
882         https://bugs.webkit.org/show_bug.cgi?id=130500
883
884         Reviewed by Filip Pizlo.
885
886         Set the first operand to the exact register in the inline assembly with GCC.
887
888         * wtf/Atomics.h:
889         (WTF::weakCompareAndSwap):
890
891 2014-03-25  Gabor Rapcsanyi  <rgabor@webkit.org>
892
893         [EFL] Add ARM64 build support
894         https://bugs.webkit.org/show_bug.cgi?id=130506
895
896         Rubber stamped by Gyuyoung Kim.
897
898         * wtf/Platform.h: Set WTF_CPU_ARM64 when __aarch64__ is defined.
899
900 2014-03-24  Andy Estes  <aestes@apple.com>
901
902         Fix the iOS build.
903
904         * wtf/ThreadingPthreads.cpp:
905         (WTF::createThreadInternal):
906         (WTF::setCurrentThreadQOSUtility):
907
908 2014-03-24  Gavin Barraclough  <barraclough@apple.com>
909
910         Add support for thread QoS
911         https://bugs.webkit.org/show_bug.cgi?id=130688
912
913         Speculative EFL build fix.
914
915         * wtf/ThreadingPthreads.cpp:
916         (WTF::setCurrentThreadQOSUtility):
917
918 2014-03-24  Gavin Barraclough  <barraclough@apple.com>
919
920         Add support for thread QoS
921         https://bugs.webkit.org/show_bug.cgi?id=130688
922
923         Reviewed by Andreas Kling.
924
925         * wtf/FastMalloc.cpp:
926         (WTF::TCMalloc_PageHeap::runScavengerThread):
927             - block freeing is a utility activity.
928         * wtf/Threading.h:
929             - declaration.
930         * wtf/ThreadingPthreads.cpp:
931         (WTF::createThreadInternal):
932             - default to interactive.
933         (WTF::setCurrentThreadQOSUtility):
934             - implementation.
935         * wtf/ThreadingWin.cpp:
936         (WTF::setCurrentThreadQOSUtility):
937             - no-op implementation.
938
939 2014-03-23  Hyowon Kim  <hw1008.kim@samsung.com>
940
941         Move all EFL typedefs into EflTypedefs.h.
942         https://bugs.webkit.org/show_bug.cgi?id=130511
943
944         Reviewed by Gyuyoung Kim.
945
946         * wtf/Platform.h: include EflTypedefs.h.
947         * wtf/efl/EflTypedefs.h: Added.
948         * wtf/efl/RefPtrEfl.h: Remove EFL typedefs.
949
950 2014-03-22  Darin Adler  <darin@apple.com>
951
952         Remove String::deprecatedCharacters
953         https://bugs.webkit.org/show_bug.cgi?id=126854
954
955         Reviewed by Sam Weinig.
956
957         * wtf/text/StringBuilder.cpp:
958         (WTF::StringBuilder::reifyString): Removed code to update 16-bit shadow.
959
960         * wtf/text/StringBuilder.h: Removed deprecatedCharacters.
961         (WTF::StringBuilder::StringBuilder): Removed m_valid16BitShadowLength.
962         (WTF::StringBuilder::clear): Removed code to clear m_valid16BitShadowLength.
963         (WTF::StringBuilder::swap): Removed code to swap m_valid16BitShadowLength.
964
965         * wtf/text/StringImpl.cpp:
966         (WTF::StringImpl::~StringImpl): Removed code to free m_copyData16.
967         (WTF::StringImpl::upper): Use StringView::upconvertedCharacters for slow case.
968         (WTF::StringImpl::lower): Ditto.
969         (WTF::StringImpl::find): Use characters8/16 rather than deprecatedCharacters.
970         Added an 8-bit code path to one of the overloads. Might want to revisit later
971         to decide whether to use templates instead of copy/paste, or even use StringView
972         to cut down on duplicate code paths.
973         (WTF::StringImpl::findIgnoringCase): Ditto.
974         (WTF::StringImpl::sizeInBytes): Remove code to handle has16BitShadow case.
975         (WTF::equalIgnoringNullity): Added. To be called by the Vector template in the header.
976
977         * wtf/text/StringImpl.h: Removed deprecatedCharacters, has16BitShadow,
978         upconvertCharacters, getData16SlowCase, s_hashFlagHas16BitShadow, and m_copyData16.
979         (WTF::equalIgnoringNullity): Changed the template function into an inline that calls
980         a non-inline helper function. The non-inline function handles both 8-bit and 16-bit
981         strings.
982
983         * wtf/text/StringView.h:
984         (WTF::StringView::StringView): Added an overload so we can make one of these directly
985         from a StringImpl without first wrapping it in a string. Added an adapter so we can
986         use StringView as part of string concatenation. Added an append function so we can
987         append to a Vector<UChar>.
988
989         * wtf/text/WTFString.cpp:
990         (WTF::String::append): Use StringView::getCharactersWithUpconvert. Also changed
991         single-character append so it won't always turn an 8-bit string into a 16-bit one.
992         (WTF::String::insert): Removed one insert overload and changed the other to use
993         StringView::getCharactersWithUpconvert.
994         (WTF::String::truncate): Changed to use StringImpl::substring.
995         (WTF::String::percentage): Added characters8/16 paths instead of using
996         deprecatedCharacters.
997
998         * wtf/text/WTFString.h: Removed deprecatedCharacters, getCharactersWithUpconvert,
999         insert(UChar*, unsigned, unsigned), and the append overload for Vector<UChar>.
1000
1001 2014-03-20  Darin Adler  <darin@apple.com>
1002
1003         Fix a header guard mistake (harmless but clearly wrong)
1004         https://bugs.webkit.org/show_bug.cgi?id=130559
1005
1006         Reviewed by Andreas Kling.
1007
1008         * wtf/text/StringConcatenate.h: Correct the macro name in the header guard.
1009
1010 2014-03-20  Hyowon Kim  <hw1008.kim@samsung.com>
1011
1012         Move to using std::unique_ptr for EFL objects.
1013         https://bugs.webkit.org/show_bug.cgi?id=129853
1014
1015         Reviewed by Gyuyoung Kim.
1016
1017         EflUniquePtr is a template alias of std::unique_ptr
1018         with a custom deleter for each Efl Objects, which is motivated by GUniquePtr.
1019         This patch replaces uses of OwnPtr and PassOwnPtr for Efl objects with EflUniquePtr.
1020
1021         * wtf/OwnPtrCommon.h:
1022         * wtf/PlatformEfl.cmake:
1023         * wtf/RunLoop.h:
1024         * wtf/efl/MainThreadEfl.cpp:
1025         (WTF::pipeObject):
1026         (WTF::initializeMainThreadPlatform):
1027         * wtf/efl/OwnPtrEfl.cpp: Removed.
1028         * wtf/efl/RunLoopEfl.cpp:
1029         (WTF::RunLoop::RunLoop):
1030         * wtf/efl/UniquePtrEfl.h: Added.
1031         (WTF::EflPtrDeleter::operator()):
1032
1033 2014-03-20  Gavin Barraclough  <barraclough@apple.com>
1034
1035         Remove IdentifierTable typedef, isIdentifier()
1036         https://bugs.webkit.org/show_bug.cgi?id=130533
1037
1038         Rubber stamped by Geoff Garen.
1039
1040         Code should use AtomicStringTable, isAtomic() directly.
1041
1042         * wtf/WTFThreadData.h:
1043         (WTF::WTFThreadData::setCurrentAtomicStringTable):
1044         (WTF::WTFThreadData::resetCurrentAtomicStringTable):
1045             - removed IdentifierTypedef.
1046         * wtf/text/StringImpl.h:
1047         (WTF::StringImpl::flagIsAtomic):
1048             - renamed flagIsIdentfier -> flagIsAtomic.
1049
1050 2014-03-20  Gavin Barraclough  <barraclough@apple.com>
1051
1052         Merge AtomicString, Identifier
1053         https://bugs.webkit.org/show_bug.cgi?id=128624
1054
1055         Reviewed by Geoff Garen.
1056
1057         WTF::StringImpl currently supports two uniquing mechanism - AtomicString and
1058         Identifer - that is one too many.
1059
1060         Remove Identifier in favour of AtomicString. Identifier had two interesting
1061         mechanisms that we preserve.
1062
1063         (1) JSC API VMs each get their own string table, switch the string table on
1064             API entry/exit.
1065         (2) JSC caches a pointer to the string table on the VM to avoid a thread
1066             specific access. Adds a new AtomicString::add method to support this.
1067
1068         * wtf/WTFThreadData.cpp:
1069         (WTF::WTFThreadData::WTFThreadData):
1070             - remove allocation of IdentifierTable.
1071         (WTF::WTFThreadData::~WTFThreadData):
1072             - remove deletion of IdentifierTable.
1073         * wtf/WTFThreadData.h:
1074         (WTF::WTFThreadData::atomicStringTable):
1075             - table is now switched by JSC API, return the current table.
1076         (WTF::WTFThreadData::currentIdentifierTable):
1077             - now returns the current AtomicStringTable.
1078         (WTF::WTFThreadData::setCurrentIdentifierTable):
1079             - now sets the current AtomicStringTable.
1080         (WTF::WTFThreadData::resetCurrentIdentifierTable):
1081             - now resets the AtomicStringTable.
1082         * wtf/text/AtomicString.cpp:
1083         (WTF::AtomicString::addSlowCase):
1084             - add without thread-specific access to access string table.
1085         * wtf/text/AtomicString.h:
1086         (WTF::AtomicString::addWithStringTableProvider):
1087             - add without thread-specific access (used by JSC, string table provided by VM or ExecState).
1088         * wtf/text/AtomicStringTable.cpp:
1089         (WTF::AtomicStringTable::create):
1090             - renamed m_atomicStringTable -> m_defaultAtomicStringTable.
1091         (WTF::AtomicStringTable::~AtomicStringTable):
1092         (WTF::AtomicStringTable::destroy):
1093             - clearing of table moved from AtomicStringTable::destroy to destructor.
1094         * wtf/text/AtomicStringTable.h:
1095             - added destructor.
1096         * wtf/text/StringImpl.cpp:
1097         (WTF::StringImpl::~StringImpl):
1098             - Identifers no longer exist; no need to remove them from IdentifierTable.
1099         * wtf/text/StringImpl.h:
1100         (WTF::StringImpl::StringImpl):
1101             - removed s_hashFlagIsIdentifier.
1102         (WTF::StringImpl::flagIsIdentifier):
1103             - s_hashFlagIsIdentifier -> s_hashFlagIsAtomic.
1104         (WTF::StringImpl::isIdentifier):
1105             - now synonymous to isAtomic().
1106         * wtf/text/StringStatics.cpp:
1107         (WTF::StringImpl::hashAndFlagsForEmptyUnique):
1108             - removed s_hashFlagIsIdentifier.
1109
1110 2014-03-20  Zan Dobersek  <zdobersek@igalia.com>
1111
1112         Unreviewed Clang build fix for the GTK port after r165952.
1113
1114         * wtf/gobject/GMainLoopSource.h: Include the <functional> header for the std::function<> objects.
1115
1116 2014-03-18  Carlos Garcia Campos  <cgarcia@igalia.com>
1117
1118         [GLIB] Add GMainLoopSource class to wrap idle and timeout sources
1119         https://bugs.webkit.org/show_bug.cgi?id=130027
1120
1121         Reviewed by Martin Robinson.
1122
1123         GLib main loop sources like idle and timeouts are sometimes
1124         unconvenient to use and it's very common to forget canceling the
1125         source when the object is destroyed or reset the source ID in the
1126         callback when called. GMainLoopSource is a wrapper class to make it
1127         easier to handle sources and also to avoid those typical mistakes.
1128         It forces to create sources with a name and the user doesn't have
1129         to deal with the source ID anymore. The source is cancelled when
1130         the object is deleted or when a new source is scheduled. It uses
1131         std::function for callbacks so that we no longer need to use the
1132         "proxy" static callbacks either. We can use std::bind to use a
1133         function pointer or a member or even lambda functions. It also handles
1134         repeating sources automatically depending on whether the given
1135         function returns a bool or not.
1136
1137         * GNUmakefile.list.am:
1138         * wtf/PlatformEfl.cmake:
1139         * wtf/PlatformGTK.cmake:
1140         * wtf/RunLoop.h:
1141         * wtf/gobject/GMainLoopSource.cpp: Added.
1142         (WTF::GMainLoopSource::createAndDeleteOnDestroy):
1143         (WTF::GMainLoopSource::GMainLoopSource):
1144         (WTF::GMainLoopSource::~GMainLoopSource):
1145         (WTF::GMainLoopSource::cancel):
1146         (WTF::GMainLoopSource::reset):
1147         (WTF::GMainLoopSource::scheduleIdleSource):
1148         (WTF::GMainLoopSource::schedule):
1149         (WTF::GMainLoopSource::scheduleTimeoutSource):
1150         (WTF::GMainLoopSource::scheduleAfterDelay):
1151         (WTF::GMainLoopSource::voidCallback):
1152         (WTF::GMainLoopSource::boolCallback):
1153         (WTF::GMainLoopSource::socketCallback):
1154         (WTF::GMainLoopSource::destroy):
1155         (WTF::GMainLoopSource::voidSourceCallback):
1156         (WTF::GMainLoopSource::boolSourceCallback):
1157         (WTF::GMainLoopSource::socketSourceCallback):
1158         * wtf/gobject/GMainLoopSource.h: Added.
1159         (WTF::GMainLoopSource::isScheduled):
1160         * wtf/gtk/MainThreadGtk.cpp:
1161         (WTF::scheduleDispatchFunctionsOnMainThread):
1162         * wtf/gtk/RunLoopGtk.cpp:
1163         (WTF::RunLoop::wakeUp):
1164         (WTF::RunLoop::TimerBase::TimerBase):
1165         (WTF::RunLoop::TimerBase::start):
1166         (WTF::RunLoop::TimerBase::stop):
1167         (WTF::RunLoop::TimerBase::isActive):
1168
1169 2014-03-19  Gavin Barraclough  <barraclough@apple.com>
1170
1171         https://bugs.webkit.org/show_bug.cgi?id=130494
1172         EmptyUnique strings are Identifiers/Atomic
1173
1174         Reviewed by Geoff Garen.
1175
1176         EmptyUnique strings should set the Identifier/Atomic flag.
1177
1178         * wtf/text/AtomicString.h:
1179         (WTF::AtomicString::add):
1180             - Previously we assumed the only StringImpl that was validly allowed to claim to be
1181               Atomic but not be in a table was the canonical empty string. Now that EmptyUniques
1182               are also marked Atomic, all empty strings may pass this condition.
1183         * wtf/text/StringImpl.cpp:
1184         (WTF::StringImpl::~StringImpl):
1185             - EmptyUnique strings are not in the Atomic/Identfiier tabels, so don't need removing.
1186         * wtf/text/StringImpl.h:
1187         (WTF::StringImpl::StringImpl):
1188             - Change EmptyUnique constructor to call hashAndFlagsForEmptyUnique.
1189         * wtf/text/StringStatics.cpp:
1190         (WTF::StringImpl::hashAndFlagsForEmptyUnique):
1191             - Allocate a sequential hash code (this should be just as good for distribution & better
1192               for debugging than the random value) and set flags, now including Atomic & Identifier.
1193
1194 2014-03-19  Gavin Barraclough  <barraclough@apple.com>
1195
1196         Small cleanup of empty string
1197         https://bugs.webkit.org/show_bug.cgi?id=130438
1198
1199         Reviewed by Anders Carlson.
1200
1201         The empty string is weird becuase it is used as the impl for an AtomicString, but isAtomic()
1202         returns false.
1203         Also, we set a valid pointer for the characters pointer due to an old PCRE bug; remove this.
1204         Also, we currently only create one 'static' string, the empty string. Adding more might break
1205         assumtions, inhibit the constructor from being used to create other static strings for now.
1206
1207         * wtf/text/AtomicString.h:
1208         (WTF::AtomicString::add):
1209             - update assert.
1210         * wtf/text/StringImpl.h:
1211         (WTF::StringImpl::StringImpl):
1212             - Merge ConstructStaticString constructors, only allow the empty static string to be constructed.
1213         * wtf/text/StringStatics.cpp:
1214         (WTF::StringImpl::empty):
1215             - ConstructStaticString -> ConstructEmptyString, remove arguments, DEPRECATED_DEFINE_STATIC_LOCAL -> NeverDestroyed.
1216
1217 2014-03-18  Darin Adler  <darin@apple.com>
1218
1219         Reduce use of deprecatedCharacters in WebCore
1220         https://bugs.webkit.org/show_bug.cgi?id=130318
1221
1222         Reviewed by Andreas Kling.
1223
1224         * wtf/text/WTFString.h: Export another overload of charactersToFloat since it's used
1225         in WebCore now.
1226
1227         * wtf/text/cf/StringViewCF.cpp: Change so this can build on Windows.
1228
1229         * WTF.vcxproj/WTF.vcxproj: Added StringViewCF.cpp.
1230         * WTF.vcxproj/WTF.vcxproj.filters: Added StringViewCF.cpp.
1231
1232 2014-03-18  Filip Pizlo  <fpizlo@apple.com>
1233
1234         More FTL enabling.
1235
1236         Rubber stamped by Dan Bernstein and Mark Hahnenberg.
1237
1238         * wtf/Platform.h:
1239
1240 2014-03-17  Darin Adler  <darin@apple.com>
1241
1242         Remove most uses of deprecatedCharacter in WTF
1243         https://bugs.webkit.org/show_bug.cgi?id=130317
1244
1245         Reviewed by Andreas Kling.
1246
1247         Re-landing after fixing the "80 instead of 0x80" typo in equalLatin1WithUTF8.
1248
1249         * wtf/text/AtomicString.cpp:
1250         (WTF::HashAndUTF8CharactersTranslator::equal): Add an 8-bit code path to the
1251         non-ASCII path.
1252         (WTF::SubstringTranslator8::hash): Added.
1253         (WTF::SubstringTranslator8::equal): Added.
1254         (WTF::SubstringTranslator16::hash): Renamed class.
1255         (WTF::SubstringTranslator16::equal): Ditto.
1256         (WTF::AtomicString::add): Added an 8-bit code path to the substring case.
1257
1258         * wtf/text/Base64.cpp:
1259         (WTF::base64Decode): Added an 8 bit code path.
1260         (WTF::base64URLDecode): Ditto.
1261
1262         * wtf/text/StringImpl.cpp:
1263         (WTF::StringImpl::find): Fixed a case that was incorrectly using characters16
1264         without first using is8Bit. Need to return later to remove use of deprecatedCharacters.
1265
1266         * wtf/unicode/UTF8.cpp:
1267         (WTF::Unicode::equalUTF16WithUTF8): Added a case for when the UTF-16 characters
1268         are ASCII. Also removed the aEnd argument, since the caller only calls this when the
1269         lengths are equal.
1270         (WTF::Unicode::equalLatin1WithUTF8): Added.
1271         * wtf/unicode/UTF8.h: Updated as described above.
1272
1273 2014-03-17  Commit Queue  <commit-queue@webkit.org>
1274
1275         Unreviewed, rolling out r165721.
1276         https://bugs.webkit.org/show_bug.cgi?id=130367
1277
1278         It makes the debug bots flaky (Requested by benjaminp on
1279         #webkit).
1280
1281         Reverted changeset:
1282
1283         "Remove most uses of deprecatedCharacter in WTF"
1284         https://bugs.webkit.org/show_bug.cgi?id=130317
1285         http://trac.webkit.org/changeset/165721
1286
1287 2014-03-17  Zan Dobersek  <zdobersek@igalia.com>
1288
1289         Use RunLoop objects through references instead of pointers
1290         https://bugs.webkit.org/show_bug.cgi?id=130313
1291
1292         Reviewed by Andreas Kling.
1293
1294         Make RunLoop::current() and RunLoop::main() return a RunLoop reference instead
1295         of a pointer. RunLoop::Holder now uses a Ref<RunLoop> member. Timer and TimerBase
1296         constructors take in a RunLoop reference, with TimerBase now storing a RunLoop
1297         reference member instead of a pointer. Platform-specific bits of the RunLoop
1298         class are updated accordingly.
1299
1300         * wtf/RunLoop.cpp:
1301         (WTF::RunLoop::Holder::Holder):
1302         (WTF::RunLoop::Holder::runLoop):
1303         (WTF::RunLoop::initializeMainRunLoop):
1304         (WTF::RunLoop::current):
1305         (WTF::RunLoop::main):
1306         (WTF::RunLoop::isMain):
1307         * wtf/RunLoop.h:
1308         (WTF::RunLoop::Timer::Timer):
1309         * wtf/cf/RunLoopCF.cpp:
1310         (WTF::RunLoop::run):
1311         (WTF::RunLoop::TimerBase::TimerBase):
1312         (WTF::RunLoop::TimerBase::start):
1313         * wtf/efl/RunLoopEfl.cpp:
1314         (WTF::RunLoop::TimerBase::TimerBase):
1315         * wtf/gtk/RunLoopGtk.cpp:
1316         (WTF::RunLoop::run):
1317         (WTF::RunLoop::TimerBase::TimerBase):
1318         (WTF::RunLoop::TimerBase::start):
1319         * wtf/win/RunLoopWin.cpp:
1320         (WTF::RunLoop::TimerBase::TimerBase):
1321         (WTF::RunLoop::TimerBase::start):
1322         (WTF::RunLoop::TimerBase::stop):
1323         (WTF::RunLoop::TimerBase::isActive):
1324
1325 2014-03-17  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>
1326
1327         One more fix after r165725.
1328
1329         Reviewed by Csaba Osztrogonác.
1330
1331         * wtf/WTFThreadData.h:
1332
1333 2014-03-17  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>
1334
1335         Buildfix after r165725 for non Mac platforms.
1336
1337         Reviewed by Csaba Osztrogonác.
1338
1339         * wtf/WTFThreadData.h:
1340
1341 2014-03-17  Andreas Kling  <akling@apple.com>
1342
1343         [Mac] WTFThreadData should use _pthread_getspecific_direct().
1344         <https://webkit.org/b/130320>
1345
1346         Hack WTFThreadData to use a direct key for TLS access when available.
1347         This mechanism uses a dedicated segment register and is the same way
1348         we implement the fast path in FastMalloc.
1349
1350         Reviewed by Darin Adler.
1351
1352         * wtf/FastMalloc.cpp:
1353         * wtf/WTFThreadData.cpp:
1354         (WTF::WTFThreadData::createAndRegisterForGetspecificDirect):
1355         * wtf/WTFThreadData.h:
1356         (WTF::wtfThreadData):
1357
1358 2014-03-16  Darin Adler  <darin@apple.com>
1359
1360         Remove most uses of deprecatedCharacter in WTF
1361         https://bugs.webkit.org/show_bug.cgi?id=130317
1362
1363         Reviewed by Andreas Kling.
1364
1365         * wtf/text/AtomicString.cpp:
1366         (WTF::HashAndUTF8CharactersTranslator::equal): Add an 8-bit code path to the
1367         non-ASCII path.
1368         (WTF::SubstringTranslator8::hash): Added.
1369         (WTF::SubstringTranslator8::equal): Added.
1370         (WTF::SubstringTranslator16::hash): Renamed class.
1371         (WTF::SubstringTranslator16::equal): Ditto.
1372         (WTF::AtomicString::add): Added an 8-bit code path to the substring case.
1373
1374         * wtf/text/Base64.cpp:
1375         (WTF::base64Decode): Added an 8 bit code path.
1376         (WTF::base64URLDecode): Ditto.
1377
1378         * wtf/text/StringImpl.cpp:
1379         (WTF::StringImpl::find): Fixed a case that was incorrectly using characters16
1380         without first using is8Bit. Need to return later to remove use of deprecatedCharacters.
1381
1382         * wtf/unicode/UTF8.cpp:
1383         (WTF::Unicode::equalUTF16WithUTF8): Added a case for when the UTF-16 characters
1384         are ASCII. Also removed the aEnd argument, since the caller only calls this when the
1385         lengths are equal.
1386         (WTF::Unicode::equalLatin1WithUTF8): Added.
1387         * wtf/unicode/UTF8.h: Updated as described above.
1388
1389 2014-03-16  David Kilzer  <ddkilzer@apple.com>
1390
1391         Follow-up: Fix undefined behavior in WTF::equal() in StringImpl.h for i386/x86_64
1392         <http://webkit.org/b/130283>
1393         <rdar://problem/16281477>
1394
1395         Reviewed by Darin Adler.
1396
1397         * wtf/text/StringImpl.h:
1398         (WTF::loadUnaligned): Restore behavior prior to r165681 for
1399         compilers other than clang.
1400
1401 2014-03-16  Darin Adler  <darin@apple.com>
1402
1403         Remove all uses of deprecatedCharacters from JavaScriptCore
1404         https://bugs.webkit.org/show_bug.cgi?id=130304
1405
1406         Reviewed by Anders Carlsson.
1407
1408         * wtf/dtoa.h:
1409         (WTF::parseDouble): Added an overload that takes a StringView.
1410
1411 2014-03-15  Darin Adler  <darin@apple.com>
1412
1413         Remove all uses of deprecatedCharacters from WebKit2
1414         https://bugs.webkit.org/show_bug.cgi?id=130197
1415
1416         Reviewed by Andreas Kling.
1417
1418         * wtf/text/StringView.h: Added new getCharactersWithUpconvert and upconvertedCharacters
1419         functions. These are useful for callers that need UTF-16.
1420
1421 2014-03-15  Darin Adler  <darin@apple.com>
1422
1423         Try to fix EFL build.
1424
1425         * wtf/ThreadingPthreads.cpp: (WTF::changeThreadPriority): Code in this function
1426         was setting the priority of the current thread instead of the passed-in thread.
1427         That was triggering an unused variable warning in the compiler used to build for
1428         EFL. Fixed by using the thread handle instead of pthread_self.
1429
1430 2014-03-15  Michael Saboff  <msaboff@apple.com>
1431
1432         It should be possible to adjust DFG and FTL compiler thread priorities
1433         https://bugs.webkit.org/show_bug.cgi?id=130288
1434
1435         Reviewed by Filip Pizlo.
1436
1437         Added ability to change thread priorities relative to its current priority.
1438         Created options to adjust the priority of the DFG and FTL compilation work thread
1439         pools.  For two core systems, there might be three runnable threads, the main thread,
1440         the DFG compilation thread and the FTL compilation thread.  With the same priority,
1441         the scheduler is free to schedule whatever thread it wants.  By lowering the
1442         compilation threads, the main thread can run.  Further tests may suggest better values
1443         for the new options, priorityDeltaOfDFGCompilerThreads and priorityDeltaOfFTLCompilerThreads.
1444
1445         For a two-core device, this change has a net positive improvement of 1-3% across
1446         SunSpider, Octane, Kraken and AsmBench.
1447
1448         * wtf/Threading.h:
1449         * wtf/ThreadingPthreads.cpp:
1450         (WTF::changeThreadPriority):
1451         * wtf/ThreadingWin.cpp:
1452         (WTF::changeThreadPriority):
1453
1454 2014-03-15  David Kilzer  <ddkilzer@apple.com>
1455
1456         Fix undefined behavior in WTF::equal() in StringImpl.h for i386/x86_64
1457         <http://webkit.org/b/130283>
1458         <rdar://problem/16281477>
1459
1460         Reviewed by Geoff Garen.
1461
1462         * wtf/text/StringImpl.h:
1463         (WTF::loadUnaligned): Add template method.
1464         (WTF::equal): Switch to using loadUnaligned<>().
1465
1466 2014-03-14  Mark Rowe  <mrowe@apple.com>
1467
1468         Fix the production build.
1469
1470         Don't rely on USE_INTERNAL_SDK being set for the Production configuration since UseInternalSDK.xcconfig won't
1471         be at the expected relative path when working from installed source.
1472
1473         * Configurations/Base.xcconfig:
1474
1475 2014-03-14  Maciej Stachowiak  <mjs@apple.com>
1476
1477         Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers
1478         https://bugs.webkit.org/show_bug.cgi?id=130276
1479         <rdar://problem/16266927>
1480         
1481         Reviewed by Simon Fraser.
1482
1483         * wtf/ASCIICType.h:
1484         * wtf/AVLTree.h:
1485         * wtf/Assertions.cpp:
1486         * wtf/Assertions.h:
1487         * wtf/Atomics.cpp:
1488         * wtf/Atomics.h:
1489         * wtf/AutodrainedPool.h:
1490         * wtf/AutodrainedPoolMac.mm:
1491         * wtf/BoundsCheckedPointer.h:
1492         * wtf/CryptographicUtilities.cpp:
1493         * wtf/CryptographicallyRandomNumber.h:
1494         * wtf/CurrentTime.h:
1495         * wtf/Deque.h:
1496         * wtf/DisallowCType.h:
1497         * wtf/ExportMacros.h:
1498         * wtf/FeatureDefines.h:
1499         * wtf/GetPtr.h:
1500         * wtf/HashIterators.h:
1501         * wtf/Locker.h:
1502         * wtf/MainThread.cpp:
1503         * wtf/MainThread.h:
1504         * wtf/MathExtras.h:
1505         * wtf/MediaTime.cpp:
1506         * wtf/MediaTime.h:
1507         * wtf/MessageQueue.h:
1508         * wtf/MetaAllocator.cpp:
1509         * wtf/MetaAllocator.h:
1510         * wtf/MetaAllocatorHandle.h:
1511         * wtf/OSRandomSource.cpp:
1512         * wtf/OSRandomSource.h:
1513         * wtf/Platform.h:
1514         * wtf/RandomNumber.cpp:
1515         * wtf/RandomNumber.h:
1516         * wtf/RandomNumberSeed.h:
1517         * wtf/RedBlackTree.h:
1518         * wtf/RunLoopTimer.h:
1519         * wtf/RunLoopTimerCF.cpp:
1520         * wtf/SchedulePair.h:
1521         * wtf/SchedulePairCF.cpp:
1522         * wtf/SchedulePairMac.mm:
1523         * wtf/SegmentedVector.h:
1524         * wtf/StackBounds.h:
1525         * wtf/StaticConstructors.h:
1526         * wtf/StringExtras.h:
1527         * wtf/ThreadFunctionInvocation.h:
1528         * wtf/ThreadSafeRefCounted.h:
1529         * wtf/ThreadSpecific.h:
1530         * wtf/Threading.h:
1531         * wtf/ThreadingPrimitives.h:
1532         * wtf/ThreadingPthreads.cpp:
1533         * wtf/ThreadingWin.cpp:
1534         * wtf/WTFThreadData.cpp:
1535         * wtf/WTFThreadData.h:
1536         * wtf/efl/OwnPtrEfl.cpp:
1537         * wtf/mac/MainThreadMac.mm:
1538         * wtf/text/AtomicStringHash.h:
1539         * wtf/text/AtomicStringImpl.h:
1540         * wtf/text/Base64.h:
1541         * wtf/text/CString.cpp:
1542         * wtf/text/CString.h:
1543         * wtf/text/LChar.h:
1544         * wtf/text/cf/StringCF.cpp:
1545         * wtf/text/mac/StringMac.mm:
1546         * wtf/unicode/CharacterNames.h:
1547         * wtf/unicode/Collator.h:
1548         * wtf/unicode/CollatorDefault.cpp:
1549         * wtf/unicode/UTF8.cpp:
1550         * wtf/unicode/UTF8.h:
1551         * wtf/unicode/icu/CollatorICU.cpp:
1552         * wtf/win/MainThreadWin.cpp:
1553
1554 2014-03-14  Byungseon Shin  <sun.shin@lge.com>
1555
1556         Incorrect Date returned between March 1, 2034 and February 28, 2100.
1557         https://bugs.webkit.org/show_bug.cgi?id=130123
1558
1559         Reviewed by Mark Lam.
1560
1561         Fix logic by using predefined Date APIs.
1562
1563         * wtf/DateMath.cpp:
1564         (WTF::ymdhmsToSeconds):
1565
1566 2014-03-12  Sergio Villar Senin  <svillar@igalia.com>
1567
1568         Rename DEFINE_STATIC_LOCAL to DEPRECATED_DEFINE_STATIC_LOCAL
1569         https://bugs.webkit.org/show_bug.cgi?id=129612
1570
1571         Reviewed by Darin Adler.
1572
1573         For new code use static NeverDestroyed<T> instead.
1574
1575         * wtf/RunLoop.cpp:
1576         (WTF::RunLoop::current):
1577         * wtf/StdLibExtras.h:
1578         * wtf/ThreadingPthreads.cpp:
1579         (WTF::threadMapMutex):
1580         (WTF::threadMap):
1581         * wtf/efl/MainThreadEfl.cpp:
1582         (WTF::pipeObject):
1583         * wtf/text/StringStatics.cpp:
1584         (WTF::StringImpl::empty):
1585
1586 2014-03-13  Radu Stavila  <stavila@adobe.com>
1587
1588         Webkit not building on XCode 5.1 due to garbage collection no longer being supported
1589         https://bugs.webkit.org/show_bug.cgi?id=130087
1590
1591         Reviewed by Mark Rowe.
1592
1593         Disable garbage collection on macosx when not using internal SDK.
1594
1595         * Configurations/Base.xcconfig:
1596
1597 2014-03-12  Ryuan Choi  <ryuan.choi@samsung.com>
1598
1599         [EFL] Enable Parallel GC
1600         https://bugs.webkit.org/show_bug.cgi?id=130177
1601
1602         Reviewed by Geoffrey Garen.
1603
1604         * wtf/Platform.h: Turn on ENABLE_PARALLEL_GC for the EFL build.
1605
1606 2014-03-12  Joseph Pecoraro  <pecoraro@apple.com>
1607
1608         Web Inspector: Disable REMOTE_INSPECTOR in earlier OS X releases
1609         https://bugs.webkit.org/show_bug.cgi?id=130118
1610
1611         Reviewed by Timothy Hatcher.
1612
1613         * wtf/FeatureDefines.h:
1614
1615 2014-03-11  Brent Fulgham  <bfulgham@apple.com>
1616
1617         [Win] Unreviewed gardening.
1618
1619         * wtf/MathExtras.h: VS2013 provides an lrint implementation. No need to implement
1620         our own.
1621
1622 2014-03-10  Jer Noble  <jer.noble@apple.com>
1623
1624         Improve WeakPtr operators.
1625         https://bugs.webkit.org/show_bug.cgi?id=130053
1626
1627         Reviewed by Andreas Kling.
1628
1629         Replace the "operator!()" with an explicit bool operator.  Add an "operator->()".
1630
1631         * wtf/WeakPtr.h:
1632         (WTF::WeakPtr::operator bool):
1633         (WTF::WeakPtr::operator->):
1634
1635 2014-03-10  Brent Fulgham  <bfulgham@apple.com>
1636
1637         [Win] Pass environment to Pre-Build, Pre-Link, and Post-Build Stages.
1638         https://bugs.webkit.org/show_bug.cgi?id=130023.
1639
1640         Reviewed by Dean Jackson.
1641
1642         * WTF.vcxproj/WTF.proj: Avoid putting trailing slashes in system paths to avoid
1643         escaping during later string substitution.
1644         * WTF.vcxproj/build-generated-files.sh: Accept environment values passed by VS.
1645
1646 2014-03-10  Mark Hahnenberg  <mhahnenberg@apple.com>
1647
1648         Turn on GenGC on other 64-bit platforms
1649         https://bugs.webkit.org/show_bug.cgi?id=129258
1650
1651         Reviewed by Oliver Hunt.
1652
1653         * wtf/Platform.h: 
1654
1655 2014-03-07  peavo@outlook.com  <peavo@outlook.com>
1656
1657         [Win64] Compile error after r165128.
1658         https://bugs.webkit.org/show_bug.cgi?id=129807
1659
1660         Reviewed by Mark Lam.
1661
1662         * wtf/Platform.h: MSVC does not support computed goto.
1663         Also enabled COMPUTED_GOTO_OPCODES when !ENABLE(LLINT_C_LOOP). This is needed because the ASM LLINT operates like COMPUTED_GOTO_OPCODES,
1664         and relies on the related data structures being defined to support this. On Win32, the platform does not HAVE_COMPUTED_GOTO support,
1665         but does want ENABLE_COMPUTED_GOTO_OPCODES because it uses the ASM LLINT.
1666
1667 2014-03-06  Michael Saboff  <msaboff@apple.com>
1668
1669         JSC should disable the JIT when building for ARMv7k
1670         https://bugs.webkit.org/show_bug.cgi?id=129829
1671
1672         Reviewed by Oliver Hunt.
1673
1674         Added WTF_CPU_APPLE_ARMV7K CPU define.  Disabled the JITs when
1675         that feature define is set.
1676
1677         * wtf/Platform.h:
1678
1679 2014-03-06  Filip Pizlo  <fpizlo@apple.com>
1680
1681         Use the LLVM disassembler on ARM64 if we are enabling the FTL
1682         https://bugs.webkit.org/show_bug.cgi?id=129785
1683
1684         Reviewed by Geoffrey Garen.
1685
1686         * wtf/Platform.h:
1687
1688 2014-03-05  peavo@outlook.com  <peavo@outlook.com>
1689
1690         [Win32][LLINT] Crash when running JSC stress tests.
1691         https://bugs.webkit.org/show_bug.cgi?id=129429
1692
1693         Reviewed by Geoffrey Garen.
1694
1695         * wtf/Platform.h: Enable LLINT on Win32.
1696
1697 2014-03-04  Zan Dobersek  <zdobersek@igalia.com>
1698
1699         [GTK] Build the Udis86 disassembler
1700         https://bugs.webkit.org/show_bug.cgi?id=129679
1701
1702         Reviewed by Michael Saboff.
1703
1704         * wtf/Platform.h: Also enable the Udis86 disassembler for the GTK port on Linux.
1705
1706 2014-03-02  Jaehun Lim  <ljaehun.lim@samsung.com>
1707
1708         [EFL] Remove m_initEfl from RunLoop.
1709         https://bugs.webkit.org/show_bug.cgi?id=129568
1710
1711         Reviewed by Gyuyoung Kim.
1712
1713         We don't use m_initEfl except RunLoop constructor.
1714
1715         * wtf/RunLoop.h:
1716         * wtf/efl/RunLoopEfl.cpp:
1717         (WTF::RunLoop::RunLoop):
1718
1719 2014-03-02  Darin Adler  <darin@apple.com>
1720
1721         Cut down use of OwnPtr within WTF itself
1722         https://bugs.webkit.org/show_bug.cgi?id=129567
1723
1724         Reviewed by Sam Weinig.
1725
1726         * wtf/RefCounted.h: Removed OwnPtr includes.
1727
1728         * wtf/StreamBuffer.h: Removed OwnPtr includes and switched to use
1729         std::make_unique and std::unique_ptr instead.
1730
1731         * wtf/Threading.cpp: Removed OwnPtr includes.
1732         * wtf/ThreadingPthreads.cpp: Ditto.
1733         * wtf/Vector.h: Ditto.
1734
1735 2014-02-26  Gavin Barraclough  <barraclough@apple.com>
1736
1737         FastMalloc should use vm_page_shift intead of PAGE_SHIFT.
1738         https://bugs.webkit.org/show_bug.cgi?id=129370
1739
1740         Reviewed by Mark Rowe.
1741
1742         "Doesn't this lead to the page map using fewer bits than it was before?
1743         It seems like this will cause some page addresses to no longer be
1744         representable in the map when using 4K pages. Am I missing something?"
1745
1746         * wtf/FastMalloc.cpp:
1747             - bdash raises a valid point. This should make the TCMalloc_PageMap
1748               larger than absolutely necessary, rather than potentially too small.
1749
1750 2014-02-25  Gavin Barraclough  <barraclough@apple.com>
1751
1752         FastMalloc should use vm_page_shift intead of PAGE_SHIFT.
1753         https://bugs.webkit.org/show_bug.cgi?id=129370
1754
1755         Reviewed by Geoff Garen.
1756
1757         Previously we used PAGE_SHIFT to initialize kPageShift.
1758         Since this was a constant, it could be used to calculate other
1759         contants used in the code. Some of these values are used in the
1760         definition of certain data structures (specifiying the length of
1761         some array members).
1762
1763         Make kPageShift & dependent properties variables setup during
1764         initialization. Add upper bound values (K_PAGE_SHIFT_MAX,
1765         K_NUM_CLASSES_MAX) for use in cases where we need a constant.
1766
1767         * wtf/FastMalloc.cpp:
1768         (WTF::InitSizeClasses):
1769             - initialize kPageShift, kNumClasses, kPageSize, kMaxValidPages.
1770         (WTF::pages):
1771             - added ASSERT.
1772         (WTF::AllocationSize):
1773             - added ASSERT.
1774         (WTF::TCMalloc_PageHeap::FreeBytes):
1775             - added ASSERT.
1776         (WTF::TCMalloc_PageHeap::init):
1777             - COMPILE_ASSERT -> ASSERT
1778         (WTF::TCMalloc_PageHeap::scavenge):
1779             - added ASSERT.
1780         (WTF::TCMalloc_PageHeap::Carve):
1781             - added ASSERT.
1782         (WTF::mergeDecommittedStates):
1783             - added ASSERT.
1784         (WTF::TCMalloc_PageHeap::IncrementalScavenge):
1785             - added ASSERT.
1786         (WTF::TCMalloc_PageHeap::ReturnedBytes):
1787             - added ASSERT.
1788         (WTF::PagesToMB):
1789             - added ASSERT.
1790         (WTF::TCMalloc_PageHeap::GrowHeap):
1791             - added ASSERT.
1792         (WTF::TCMalloc_PageHeap::ReleaseFreeList):
1793             - kNumClasses -> K_NUM_CLASSES_MAX
1794         (WTF::TCMalloc_ThreadCache::enumerateFreeObjects):
1795             - added ASSERT.
1796         (WTF::TCMalloc_Central_FreeList::Init):
1797             - added ASSERT.
1798         (WTF::TCMalloc_Central_FreeList::ReleaseToSpans):
1799             - added ASSERT.
1800         (WTF::TCMalloc_Central_FreeList::EvictRandomSizeClass):
1801             - added ASSERT.
1802         (WTF::TCMalloc_Central_FreeList::MakeCacheSpace):
1803             - added ASSERT.
1804         (WTF::TCMalloc_Central_FreeList::InsertRange):
1805             - added ASSERT.
1806         (WTF::TCMalloc_Central_FreeList::Populate):
1807             - added ASSERT.
1808         (WTF::TCMalloc_ThreadCache::Init):
1809             - added ASSERT.
1810         (WTF::TCMalloc_ThreadCache::Cleanup):
1811             - added ASSERT.
1812         (WTF::TCMalloc_ThreadCache::Scavenge):
1813             - added ASSERT.
1814         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
1815             - added ASSERT.
1816
1817 2014-02-24  Alex Christensen  <achristensen@webkit.org>
1818
1819         Disabled WebGL on WinCairo.
1820
1821         Unreviewed.
1822
1823         * wtf/FeatureDefines.h:
1824         Removed ENABLE_WEBGL definition for WinCairo port.
1825         WebGL has not worked on WinCairo since r163079
1826         and it was not compiling with a recent ANGLE update.
1827
1828 2014-02-24  Mark Hahnenberg  <mhahnenberg@apple.com>
1829
1830         Turn GenGC on for 32-bit systems
1831         https://bugs.webkit.org/show_bug.cgi?id=128824
1832
1833         Reviewed by Geoffrey Garen.
1834
1835         * wtf/Platform.h:
1836
1837 2014-02-21  Benjamin Poulain  <benjamin@webkit.org>
1838
1839         jsDocumentPrototypeFunctionGetElementById should not create an AtomicString for the function argument
1840         https://bugs.webkit.org/show_bug.cgi?id=128893
1841
1842         Reviewed by Darin Adler.
1843
1844         AtomicString::find() is a special case optimized for the JavaScript bindings. The method can only
1845         be called under specific conditions.
1846         The method is renamed to findStringWithHash().
1847
1848         The new AtomicString::find is generic and does not require any propery on the input.
1849
1850         * wtf/text/AtomicString.cpp:
1851         (WTF::AtomicString::findStringWithHash):
1852         (WTF::AtomicString::findSlowCase):
1853         * wtf/text/AtomicString.h:
1854         (WTF::AtomicString::find):
1855
1856 2014-02-20  Csaba Osztrogonác  <ossy@webkit.org>
1857
1858         Add StackStats sources to cmake and autotools build files
1859         https://bugs.webkit.org/show_bug.cgi?id=129103
1860
1861         Reviewed by Anders Carlsson.
1862
1863         * GNUmakefile.list.am:
1864         * wtf/CMakeLists.txt:
1865
1866 2014-02-20  Csaba Osztrogonác  <ossy@webkit.org>
1867
1868         Get rid of redundant Platform.h includes
1869         https://bugs.webkit.org/show_bug.cgi?id=128817
1870
1871         Reviewed by Brent Fulgham.
1872
1873         * wtf/Assertions.h:
1874         * wtf/Atomics.h:
1875         * wtf/ByteOrder.h:
1876         * wtf/DataLog.h:
1877         * wtf/DisallowCType.h:
1878         * wtf/DynamicAnnotations.h:
1879         * wtf/ExportMacros.h:
1880         * wtf/FastMalloc.h:
1881         * wtf/FlipBytes.h:
1882         * wtf/InlineASM.h:
1883         * wtf/PrintStream.h:
1884         * wtf/ProcessID.h:
1885         * wtf/Threading.h:
1886         * wtf/ThreadingPrimitives.h:
1887
1888 2014-02-19  Jon Honeycutt  <jhoneycutt@apple.com>
1889
1890         Crash in WTF::StringBuilder::append()
1891
1892         https://bugs.webkit.org/show_bug.cgi?id=125817
1893         <rdar://problem/15671883>
1894
1895         Reviewed by Oliver Hunt.
1896
1897         * wtf/text/StringBuilder.cpp:
1898         (WTF::expandedCapacity):
1899         Ensure that we return a new capacity of at least 'requiredLength' in
1900         the case where requiredLength is large. Also, use unsigned rather than
1901         size_t for the parameters and the return value, as callers pass
1902         unsigned arguments and treat the result as an unsigned int.
1903
1904 2014-02-19  Anders Carlsson  <andersca@apple.com>
1905
1906         Add WTF_MAKE_FAST_ALLOCATED to more classes
1907         https://bugs.webkit.org/show_bug.cgi?id=129064
1908
1909         Reviewed by Andreas Kling.
1910
1911         * wtf/Bitmap.h:
1912
1913 2014-02-19  Zan Dobersek  <zdobersek@igalia.com>
1914
1915         Make PrintStream::print() a variadic template
1916         https://bugs.webkit.org/show_bug.cgi?id=126388
1917
1918         Reviewed by Brent Fulgham.
1919
1920         PrintStream::print() can be converted into a variadic template, printing the value
1921         of the first parameter and recursively calling itself until the single parameter version
1922         is used for printing the last value.
1923
1924         * wtf/DataLog.h:
1925         (WTF::dataLog): Convert the function to a variadic template as well.
1926         * wtf/PrintStream.h:
1927         (WTF::PrintStream::print):
1928         * wtf/StringPrintStream.h:
1929         (WTF::toCString): Ditto.
1930         (WTF::toString): Ditto.
1931
1932 2014-02-19  Zan Dobersek  <zdobersek@igalia.com>
1933
1934         Use std::swap() in HashTable::swap()
1935         https://bugs.webkit.org/show_bug.cgi?id=128995
1936
1937         Reviewed by Brent Fulgham.
1938
1939         Use std::swap() to swap the member variable values of two HashTable objects in HashTable::swap().
1940
1941         * wtf/HashTable.h:
1942         (WTF::KeyTraits>::swap):
1943
1944 2014-02-19  Zan Dobersek  <zdobersek@igalia.com>
1945
1946         SegmentedVector::append() should take in rvalue reference, forward it to Vector::uncheckedAppend()
1947         https://bugs.webkit.org/show_bug.cgi?id=128996
1948
1949         Reviewed by Brent Fulgham.
1950
1951         * wtf/SegmentedVector.h:
1952         (WTF::SegmentedVector::append): Take in an rvalue reference of the object that's to be appended and
1953         then forward it to Vector::uncheckedAppend(). This avoids unnecessary copies in the current situation
1954         where a const lvalue is accepted and passed on.
1955
1956 2014-02-19  Dan Bernstein  <mitz@apple.com>
1957
1958         Simplify PLATFORM(MAC) && !PLATFORM(IOS) and similar expressions
1959         https://bugs.webkit.org/show_bug.cgi?id=129029
1960
1961         Reviewed by Mark Rowe.
1962
1963         * wtf/FeatureDefines.h:
1964         * wtf/Platform.h:
1965         * wtf/Threading.cpp:
1966         * wtf/text/cf/StringImplCF.cpp:
1967         (garbageCollectionEnabled):
1968
1969 2014-02-18  Dan Bernstein  <mitz@apple.com>
1970
1971         PLATFORM(MAC) is true when building for iOS
1972         https://bugs.webkit.org/show_bug.cgi?id=129025
1973
1974         Reviewed by Mark Rowe.
1975
1976         * wtf/Platform.h: Changed to define WTF_PLATFORM_MAC only on when building for OS X (but
1977         still not when WTF_PLATFORM_GTK or WTF_PLATFORM_EFL are defined).
1978
1979 2014-02-18  Joseph Pecoraro  <pecoraro@apple.com>
1980
1981         [iOS] Web Inspector: JSContext inspection crashes in isMainThread, uninitialized WebCoreWebThreadIsLockedOrDisabled
1982         https://bugs.webkit.org/show_bug.cgi?id=128959
1983
1984         Reviewed by David Kilzer.
1985
1986         When JavaScriptCore is used without WebCore on iOS (e.g. JSContext)
1987         the WebCoreWebThread* functions will not be initialized. Avoid
1988         calling the function pointer if it is uninitialized. This was
1989         happening with remote inspection via StringImpl::createCFString
1990         for implicit NSString / WTFString conversion which uses isMainThread.
1991
1992         * wtf/mac/MainThreadMac.mm:
1993         (WTF::webThreadIsUninitializedOrLockedOrDisabled):
1994         (WTF::isMainThread):
1995         (WTF::canAccessThreadLocalDataForThread):
1996
1997 2014-02-17  Filip Pizlo  <fpizlo@apple.com>
1998
1999         More ARM FTL glue
2000         https://bugs.webkit.org/show_bug.cgi?id=128948
2001
2002         Reviewed by Sam Weinig.
2003
2004         * wtf/Platform.h:
2005
2006 2014-02-17  Anders Carlsson  <andersca@apple.com>
2007
2008         Remove ENABLE_GLOBAL_FASTMALLOC_NEW
2009         https://bugs.webkit.org/show_bug.cgi?id=127067
2010
2011         Reviewed by Geoffrey Garen.
2012
2013         Remove the global operator new/operator delete overrides. Having ALWAYS_INLINE operators
2014         like we do is really undefined behavior according to the C++ standard and we've been lucky enough
2015         to get away with it so far, but any code that calls operator new/operator delete inside from the C++ standard
2016         library (not from headers that are included) will be mismatched and potentially crash. libc++ calls
2017         delete in it's std::thread implementation for example.
2018         
2019         The only supported way to override operator new and operator delete globally is to not use inline
2020         functions, but that would mean that any application using WebKit would not be able to provide custom
2021         operator new/operator delete functions so we'll just reuse the already existing infrastructure consisting
2022         of the WTF_MAKE_FAST_ALLOCATED macro.
2023
2024         * wtf/FastMalloc.cpp:
2025         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2026         * wtf/FastMalloc.h:
2027         * wtf/Platform.h:
2028
2029 2014-02-17  Ryan Lortie  <desrt@desrt.ca>
2030
2031         Enable DFG_JIT on FreeBSD
2032         https://bugs.webkit.org/show_bug.cgi?id=128898
2033
2034         Reviewed by Csaba Osztrogonác.
2035
2036         * wtf/Platform.h:
2037
2038 2014-02-15  Filip Pizlo  <fpizlo@apple.com>
2039
2040         FTL should inline polymorphic heap accesses
2041         https://bugs.webkit.org/show_bug.cgi?id=128795
2042
2043         Reviewed by Oliver Hunt.
2044
2045         * wtf/PrintStream.h:
2046         (WTF::PointerDumpInContext::PointerDumpInContext):
2047         (WTF::PointerDumpInContext::dump):
2048         (WTF::pointerDumpInContext):
2049
2050 2014-02-16  Zan Dobersek  <zdobersek@igalia.com>
2051
2052         Reintroduce const qualifiers for return types of (Filter|Transform)Iterator::operator*()
2053         https://bugs.webkit.org/show_bug.cgi?id=126875
2054
2055         The const qualifiers for the return types of FilterIterator::operator*() and TransformIterator::operator*()
2056         were removed in r161797 and r161802 because of compilation failures when using GCC and having an Iterator
2057         type that already had the const qualifier. std::remove_const is now used to appease GCC and enforce the const
2058         qualifier on the return type, regardless of the Iterator type and its qualifiers.
2059
2060         * wtf/IteratorAdaptors.h:
2061         (WTF::FilterIterator::operator*):
2062         (WTF::TransformIterator::operator*):
2063
2064 2014-02-15  Filip Pizlo  <fpizlo@apple.com>
2065
2066         Vector with inline capacity should work with non-PODs
2067         https://bugs.webkit.org/show_bug.cgi?id=128864
2068
2069         Reviewed by Michael Saboff.
2070         
2071         Previously, we would copy the inline storage of a vector as if it was a bag of bits.
2072         This presumed that the element type was relocatable. In general this is only true for
2073         PODs.
2074         
2075         This patch changes this by introducing a swap operation over inline storage. This swap
2076         operation requires being told about the size that is in use.
2077         
2078         Deques would have required some cleverness to make this work, because the swap
2079         operation needs to know which subset of elements are in-use and assumes that a size is
2080         sufficient for this. That's not true for deques. Instead of trying to do very clever
2081         things, I just removed the inline capacity option from Deque. I believe that this is
2082         fine since there are only two users of Deque with inline capacity, and both of them
2083         appear to be allocated rarely enough that inline capacity probably doesn't help much.
2084
2085         * wtf/Deque.h:
2086         (WTF::DequeIterator::DequeIterator):
2087         (WTF::DequeConstIterator::DequeConstIterator):
2088         (WTF::Deque<T>::checkValidity):
2089         (WTF::Deque<T>::checkIndexValidity):
2090         (WTF::Deque<T>::invalidateIterators):
2091         (WTF::Deque<T>::Deque):
2092         (WTF::=):
2093         (WTF::Deque<T>::destroyAll):
2094         (WTF::Deque<T>::~Deque):
2095         (WTF::Deque<T>::swap):
2096         (WTF::Deque<T>::clear):
2097         (WTF::Deque<T>::expandCapacityIfNeeded):
2098         (WTF::Deque<T>::expandCapacity):
2099         (WTF::Deque<T>::append):
2100         (WTF::Deque<T>::prepend):
2101         (WTF::Deque<T>::removeFirst):
2102         (WTF::Deque<T>::removeLast):
2103         (WTF::Deque<T>::remove):
2104         (WTF::DequeIteratorBase<T>::checkValidity):
2105         (WTF::DequeIteratorBase<T>::addToIteratorsList):
2106         (WTF::DequeIteratorBase<T>::removeFromIteratorsList):
2107         (WTF::DequeIteratorBase<T>::DequeIteratorBase):
2108         (WTF::DequeIteratorBase<T>::~DequeIteratorBase):
2109         (WTF::DequeIteratorBase<T>::isEqual):
2110         (WTF::DequeIteratorBase<T>::increment):
2111         (WTF::DequeIteratorBase<T>::decrement):
2112         (WTF::DequeIteratorBase<T>::after):
2113         (WTF::DequeIteratorBase<T>::before):
2114         * wtf/Vector.h:
2115         (WTF::VectorBuffer::swap):
2116         (WTF::VectorBuffer::swapInlineBuffer):
2117         (WTF::VectorBuffer::swapInlineBuffers):
2118         (WTF::Vector::swap):
2119
2120 2014-02-15  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2121
2122         Remove 'static' specifier from free inline functions in StringImpl.h
2123         https://bugs.webkit.org/show_bug.cgi?id=118554
2124
2125         Reviewed by Darin Adler.
2126
2127         At first 'static' does not bring any use here, secondly static free
2128         inline functions in headers is a bad practice in general as each instance
2129         of function defined as inline is treated as a separate function and each
2130         instance has its own copy of static locals and string literals.
2131
2132         * wtf/text/StringImpl.h:
2133         (WTF::codePointCompare):
2134         (WTF::codePointCompare8):
2135         (WTF::codePointCompare16):
2136         (WTF::codePointCompare8To16):
2137         (WTF::isSpaceOrNewline):
2138
2139 2014-02-14  Benjamin Poulain  <bpoulain@apple.com>
2140
2141         Improve the performance on mobile of FTPDirectoryDocument
2142         https://bugs.webkit.org/show_bug.cgi?id=128778
2143
2144         Reviewed by Antti Koivisto.
2145
2146         * wtf/text/WTFString.h:
2147         (WTF::String::endsWith): add a missing overload.
2148
2149 2014-02-14  Wojciech Bielawski  <w.bielawski@samsung.com>
2150
2151         (try)append and insert operations don't need new operator for PODs
2152         https://bugs.webkit.org/show_bug.cgi?id=128185
2153
2154         Reviewed by Darin Adler.
2155
2156         Vector's methods use VectorCopier to copy data.
2157         VectorCopier for PODs exteded to be used with different types. For different types placement new copy approach is applied. For the same types memcpy is applied.
2158
2159         * wtf/Vector.h:
2160         (WTF::OverflowHandler>::append): use VectorCopier to copy data.
2161         (WTF::OverflowHandler>::tryAppend): use VectorCopier to copy data.
2162         (WTF::OverflowHandler>::insert): use VectorCopier to copy data.
2163
2164 2014-02-13  Daniel Bates  <dabates@apple.com>
2165
2166         Fix the iOS build after <http://trac.webkit.org/changeset/164064
2167
2168         * wtf/Platform.h:
2169
2170 2014-02-13  Daniel Bates  <dabates@apple.com>
2171
2172         [iOS] Disable HAVE_ARM_NEON_INTRINSICS
2173
2174         For now, disable HAVE_ARM_NEON_INTRINSICS when building for iOS. We want
2175         to audit the applicable code before we enable this define.
2176
2177         * wtf/Platform.h:
2178
2179 2014-02-11  Filip Pizlo  <fpizlo@apple.com>
2180
2181         Hoist and combine array bounds checks
2182         https://bugs.webkit.org/show_bug.cgi?id=125433
2183
2184         Reviewed by Mark Hahnenberg.
2185
2186         * GNUmakefile.list.am:
2187         * WTF.vcxproj/WTF.vcxproj:
2188         * WTF.xcodeproj/project.pbxproj:
2189         * wtf/CMakeLists.txt:
2190         * wtf/HashMethod.h: Added.
2191         (WTF::HashMethod::operator()):
2192
2193 2014-02-13  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>
2194
2195         Code cleanup: remove gcc<4.7 guards.
2196         https://bugs.webkit.org/show_bug.cgi?id=128729
2197
2198         Reviewed by Anders Carlsson.
2199
2200         Remove GCC_VERSION_AT_LEAST guards when it checks for pre-4.7 versions,
2201         as WK does not compile with earlier gcc versions.
2202
2203         * wtf/Assertions.cpp:
2204         * wtf/Platform.h:
2205
2206 2014-02-12  Mark Lam  <mark.lam@apple.com>
2207
2208         No need to save reservedZoneSize when dropping the JSLock.
2209         <https://webkit.org/b/128719>
2210
2211         Reviewed by Geoffrey Garen.
2212
2213         * wtf/WTFThreadData.cpp:
2214         (WTF::WTFThreadData::WTFThreadData):
2215         * wtf/WTFThreadData.h:
2216         - removed unnneeded m_savedReservedZoneSize.
2217
2218 2014-02-11  Mark Hahnenberg  <mhahnenberg@apple.com>
2219
2220         32-bit LLInt writeBarrierOnGlobalObject is wrong
2221         https://bugs.webkit.org/show_bug.cgi?id=128556
2222
2223         Reviewed by Geoffrey Garen.
2224
2225         * wtf/Platform.h: Removed OBJECT_MARK_LOGGING from Platform.h since it already exists in FeatureDefines.h
2226
2227 2014-02-11  peavo@outlook.com  <peavo@outlook.com>
2228
2229         [WinCairo] Compile error, deleted file in WTF.
2230         https://bugs.webkit.org/show_bug.cgi?id=128601
2231
2232         Reviewed by Csaba Osztrogonác.
2233
2234         * WTF.vcxproj/WTF.vcxproj: Removed reference to deleted file.
2235         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
2236
2237 2014-02-10  Michael Saboff  <msaboff@apple.com>
2238
2239         Re-enable ARM Thumb2 disassembler
2240         https://bugs.webkit.org/show_bug.cgi?id=128577
2241
2242         Reviewed by Filip Pizlo.
2243
2244         Added definition of WTF_USE_ARMV7_DISASSEMBLER back to Platform.h
2245
2246         * wtf/Platform.h:
2247
2248 2014-02-10  Benjamin Poulain  <benjamin@webkit.org>
2249
2250         Add the basic infrastructure to compile attributes matching in selectors
2251         https://bugs.webkit.org/show_bug.cgi?id=128484
2252
2253         Reviewed by Gavin Barraclough.
2254
2255         * wtf/Vector.h:
2256         (WTF::VectorBufferBase::bufferMemoryOffset):
2257         (WTF::Vector::sizeMemoryOffset):
2258         (WTF::Vector::dataMemoryOffset):
2259         Expose the memory offsets of Vector::size() and the memory buffer pointer for the JIT.
2260
2261 2014-02-10  Enrica Casucci  <enrica@apple.com>
2262
2263         copyShortASCIIString crashes on iOS after r163793.
2264         https://bugs.webkit.org/show_bug.cgi?id=128548.
2265
2266         Reviewed by Alexey Proskuryakov.
2267
2268         Adding null check.
2269
2270         * wtf/unicode/icu/CollatorICU.cpp:
2271         (WTF::copyShortASCIIString):
2272
2273 2014-02-10  Carlos Garcia Campos  <cgarcia@igalia.com>
2274
2275         [GLIB] Add GUniqueOutPtr and use it instead of GOwnPtr
2276         https://bugs.webkit.org/show_bug.cgi?id=127554
2277
2278         Reviewed by Gustavo Noronha Silva.
2279
2280         GUniqueOutPtr is a simplified version of GOwnPtr for the cases
2281         where we need the address of the contained pointer. GUniqueOutPtr
2282         uses GUniquePtr to free the contained object and to release the
2283         container pointer. The API is very simple to make sure this is
2284         only used when outPtr() is needed. It can't be constructed with a
2285         pointer, and there's not method to set a new pointer. Another
2286         difference with the old GOwnPtr is that outPtr() can be used
2287         multiple times, because it frees any pointer previously set.
2288
2289         * GNUmakefile.list.am:
2290         * wtf/PlatformEfl.cmake:
2291         * wtf/PlatformGTK.cmake:
2292         * wtf/gobject/GOwnPtr.cpp: Removed.
2293         * wtf/gobject/GOwnPtr.h: Removed.
2294         * wtf/gobject/GUniquePtr.h:
2295         (WTF::GUniqueOutPtr::GUniqueOutPtr):
2296         (WTF::GUniqueOutPtr::~GUniqueOutPtr):
2297         (WTF::GUniqueOutPtr::outPtr):
2298         (WTF::GUniqueOutPtr::reset):
2299         (WTF::GUniqueOutPtr::release):
2300         (WTF::GUniqueOutPtr::operator*):
2301         (WTF::GUniqueOutPtr::operator->):
2302         (WTF::GUniqueOutPtr::get):
2303         (WTF::GUniqueOutPtr::operator!):
2304         (WTF::GUniqueOutPtr::operator UnspecifiedBoolType):
2305
2306 2014-02-10  Darin Adler  <darin@apple.com>
2307
2308         Stop using String::deprecatedCharacters to call WTF::Collator
2309         https://bugs.webkit.org/show_bug.cgi?id=128517
2310
2311         WTF passes ICU’s deprecated ULOC_REQUESTED_LOCALE to ucol_getLocaleByType()
2312         rdar://problem/15183390
2313
2314         Reviewed by Alexey Proskuryakov.
2315
2316         This patch fixes both bugs above by reworking WTF::Collator.
2317
2318         * wtf/unicode/Collator.h: Fixed formatting. Got rid of the Collator::Result type,
2319         since the collator uses the same return value scheme as strcmp and as ICU; an int
2320         will do for the return type. Simplified the support for UCONFIG_NO_COLLATION by
2321         using a separate copy of the class definition. (We should check if anyone needs
2322         UCONFIG_NO_COLLATION support, and remove it if not.) Changed the lower-first flag
2323         from a separate function to a constructor argument. Changed the arguments to
2324         the collate function to StringView. Added a collate UTF8 function. Changed the
2325         m_collate data member to no longer be mutable since we no longer allocate it lazily.
2326
2327         * wtf/unicode/CollatorDefault.cpp:
2328         (WTF::Collator::collate): Rewrote to be simpler.
2329         (WTF::Collator::collateUTF8): Added. Converts from UTF-8 to a String and then calls
2330         the collate function above.
2331
2332         * wtf/unicode/icu/CollatorICU.cpp: Added a FIXME about the fact that this file
2333         has the wrong name and location. Since we always use ICU, there's no need to mention
2334         it in the file name.
2335         (WTF::copyASCIIString): Added.
2336         (WTF::copyDefaultLocale): Added.
2337         (WTF::resolveDefaultLocale): Added. Maps null locale to a default on Mac and iOS,
2338         since on those platforms ICU does not use the correct default locale when passed null.
2339         (WTF::localesMatch): Added.
2340         (WTF::Collator::Collator): Moved most of the code from createCollator here.
2341         Simplified it by storing the collator configuration along with the collator in globals.
2342         (WTF::Collator::~Collator): Moved most of the code from releaseCollator here.
2343         (WTF::getIndexLatin1): Added.
2344         (WTF::moveLatin1): Added.
2345         (WTF::hasNextLatin1): Added.
2346         (WTF::hasPreviousLatin1): Added.
2347         (WTF::currentLatin1): Added.
2348         (WTF::nextLatin1): Added.
2349         (WTF::previousLatin1): Added.
2350         (WTF::getStateLatin1): Added.
2351         (WTF::setStateLatin1): Added.
2352         (WTF::createLatin1Iterator): Added. Uses the functions above to make a UCharIterator
2353         that works for a WTF::StringView-style Latin-1 string.
2354         (WTF::createIterator): Added. Uses either createLatin1Iterator or uiter_setString to
2355         make a UCharIterator that works for a WTF::StringView.
2356         (WTF::Collator::collate): Changed to use ucol_strcollIter.
2357         (WTF::createIteratorUTF8): Added. Uses uiter_setUTF8.
2358         (WTF::Collator::collateUTF8): Added. Like collate, but for null-terminated UTF-8 strings.
2359
2360 2014-02-10  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>
2361
2362         Code cleanup: Remove BUILDING_ON / TARGETING definitions.
2363         https://bugs.webkit.org/show_bug.cgi?id=128242
2364
2365         Reviewed by Brent Fulgham.
2366
2367         The BUILDING_ON_* and TARGETING_* macros have not been used for a while.
2368         According to the FIXME: they are removed.
2369
2370         * wtf/Platform.h:
2371
2372 2014-02-09  Anders Carlsson  <andersca@apple.com>
2373
2374         Add WTF_MAKE_FAST_ALLOCATED to more classes
2375         https://bugs.webkit.org/show_bug.cgi?id=128506
2376
2377         Reviewed by Andreas Kling.
2378
2379         * wtf/Bag.h:
2380         * wtf/ListHashSet.h:
2381
2382 2014-02-08  Anders Carlsson  <andersca@apple.com>
2383
2384         Stop using getCharactersWithUpconvert in JavaScriptCore
2385         https://bugs.webkit.org/show_bug.cgi?id=128457
2386
2387         Reviewed by Andreas Kling.
2388
2389         * wtf/text/StringBuilder.h:
2390         (WTF::StringBuilder::append):
2391         Add a new overload that takes a StringView.
2392
2393         * wtf/text/StringView.h:
2394         (WTF::StringView::find):
2395         Add new find member function.
2396
2397 2014-02-08  Darin Adler  <darin@apple.com>
2398
2399         Change TextIterator to use StringView, preparing to wean it from deprecatedCharacters
2400         https://bugs.webkit.org/show_bug.cgi?id=128233
2401
2402         Reviewed by Anders Carlsson.
2403
2404         * WTF.xcodeproj/project.pbxproj: Added new source files.
2405
2406         * wtf/text/StringView.h: Added operator[], createCFStringWithoutCopying, and
2407         createNSStringWithoutCopying.
2408         * wtf/text/cf/StringViewCF.cpp:
2409         (WTF::StringView::createCFStringWithoutCopying): Added.
2410         * wtf/text/mac/StringViewObjC.mm:
2411         (WTF::StringView::createNSString): Added.
2412         (WTF::StringView::createNSStringWithoutCopying): Added.
2413
2414 2014-02-06  Andreas Kling  <akling@apple.com>
2415
2416         Remove unused ENABLE(REPAINT_THROTTLING) flag.
2417         <https://webkit.org/b/128329>
2418
2419         Reviewed by Antti Koivisto.
2420
2421         * wtf/FeatureDefines.h:
2422
2423 2014-02-06  Filip Pizlo  <fpizlo@apple.com>
2424
2425         More FTL build scaffolding
2426         https://bugs.webkit.org/show_bug.cgi?id=128330
2427
2428         Reviewed by Geoffrey Garen.
2429
2430         * wtf/Platform.h:
2431
2432 2014-02-06  Anders Carlsson  <andersca@apple.com>
2433
2434         Use std::chrono functions in dispatchFunctionsFromMainThread()
2435         https://bugs.webkit.org/show_bug.cgi?id=128308
2436
2437         Reviewed by Antti Koivisto.
2438
2439         * wtf/MainThread.cpp:
2440         (WTF::dispatchFunctionsFromMainThread):
2441
2442 2014-02-05  Zan Dobersek  <zdobersek@igalia.com>
2443
2444         Remove the WTF_COMPILER_SUPPORTS_CXX_GENERALIZED_INITIALIZERS macro
2445         https://bugs.webkit.org/show_bug.cgi?id=128267
2446
2447         Reviewed by Andreas Kling.
2448
2449         Remove the WTF_COMPILER_SUPPORTS_CXX_GENERALIZED_INITIALIZERS macro that was manually defined for compilers
2450         that support the C++11 initializer lists. The feature is well supported in Clang, MSVC and also GCC. It
2451         was actually already used unguarded in HashSet.
2452
2453         * wtf/Compiler.h:
2454         * wtf/HashMap.h:
2455         (WTF::HashMap::HashMap):
2456         * wtf/Vector.h:
2457         (WTF::Vector::Vector):
2458
2459 2014-02-05  Andreas Kling  <akling@apple.com>
2460
2461         Remove ENABLE(DIRECTORY_UPLOAD).
2462         <https://webkit.org/b/128275>
2463
2464         Rubber-stamped by Ryosuke Niwa.
2465
2466         * wtf/FeatureDefines.h:
2467
2468 2014-02-05  Carlos Garcia Campos  <cgarcia@igalia.com>
2469
2470         HashMap can't be used with std::unique_ptr as value when it has a custom deleter
2471         https://bugs.webkit.org/show_bug.cgi?id=128250
2472
2473         Reviewed by Darin Adler.
2474
2475         The problem is that the HashMap is using a unique_ptr with the
2476         default deleter, so that when trying to move the unique_ptr the
2477         deleters don't match.
2478
2479         * wtf/HashTraits.h: Add the deleter also in the template
2480         definitation of the parent class for the HashTraits<std::unique_ptr<T, Deleter>>
2481
2482 2014-02-05  Csaba Osztrogonác  <ossy@webkit.org>
2483
2484         Remove ENABLE(SVG) guards
2485         https://bugs.webkit.org/show_bug.cgi?id=127991
2486
2487         Reviewed by Sam Weinig.
2488
2489         * wtf/FeatureDefines.h:
2490
2491 2014-02-04  Mark Lam  <mark.lam@apple.com>
2492
2493         The stack limit computation does not work for Windows.
2494         <https://webkit.org/b/128226>
2495
2496         Reviewed by Geoffrey Garen.
2497
2498         The current stack limit computation assumes that the stack is allocated
2499         in high memory. On Windows, the stack seems to be allocated very near
2500         address 0, and is smaller in size than our Options::maxPerThreadStackUsage().
2501         This combination triggers a bug where StackBounds::recursionLimit()
2502         underflows and computes a limit address that is ridiculously high in memory.
2503         The net effect is that the Windows port thinks its out of stack space all
2504         the time.
2505
2506         We now check for potential underflows in StackBounds and return an
2507         appropriate limit address.
2508
2509         * wtf/StackBounds.h:
2510         (WTF::StackBounds::recursionLimit):
2511
2512 2014-02-04  Andreas Kling  <akling@apple.com>
2513
2514         Remove <iframe seamless> support.
2515         <https://webkit.org/b/128213>
2516
2517         Rubber-stamped by Antti Koivisto.
2518
2519         * wtf/FeatureDefines.h:
2520
2521 2014-02-04  Anders Carlsson  <andersca@apple.com>
2522
2523         Store StringImpl substring backpointers as tail data
2524         https://bugs.webkit.org/show_bug.cgi?id=128220
2525
2526         Reviewed by Geoffrey Garen.
2527
2528         This lets us get rid of m_substringBuffer from the union.
2529
2530         * wtf/text/StringImpl.cpp:
2531         (WTF::StringImpl::~StringImpl):
2532         (WTF::StringImpl::getData16SlowCase):
2533         * wtf/text/StringImpl.h:
2534         (WTF::StringImpl::StringImpl):
2535         (WTF::StringImpl::createSubstringSharingImpl8):
2536         (WTF::StringImpl::createSubstringSharingImpl):
2537         (WTF::StringImpl::cost):
2538         (WTF::StringImpl::costDuringGC):
2539         (WTF::StringImpl::substringBuffer):
2540
2541 2014-02-04  Anders Carlsson  <andersca@apple.com>
2542
2543         Rename the substring sharing StringImpl::create variants to better indicate what they do
2544         https://bugs.webkit.org/show_bug.cgi?id=128214
2545
2546         Reviewed by Geoffrey Garen.
2547
2548         * wtf/text/AtomicString.cpp:
2549         (WTF::SubstringTranslator::translate):
2550         * wtf/text/StringBuilder.cpp:
2551         (WTF::StringBuilder::reifyString):
2552         (WTF::StringBuilder::resize):
2553         * wtf/text/StringImpl.h:
2554         (WTF::StringImpl::createSubstringSharingImpl8):
2555         (WTF::StringImpl::createSubstringSharingImpl):
2556         * wtf/text/WTFString.cpp:
2557         (WTF::String::substringSharingImpl):
2558
2559 2014-02-04  Alexey Proskuryakov  <ap@apple.com>
2560
2561         WebCrypto HMAC verification uses a non-constant-time memcmp
2562         https://bugs.webkit.org/show_bug.cgi?id=128198
2563         <rdar://problem/15976961>
2564
2565         Reviewed by Oliver Hunt.
2566
2567         Added a "constant time" memcmp that doesn't depend on data. The name is somewhat
2568         strange, as the function is of course O(length) and not constant time at all,
2569         but apparently this is how everyone calls such functions.
2570
2571         * GNUmakefile.list.am:
2572         * WTF.vcxproj/WTF.vcxproj:
2573         * WTF.vcxproj/WTF.vcxproj.filters:
2574         * WTF.xcodeproj/project.pbxproj:
2575         * wtf/CMakeLists.txt:
2576         * wtf/CryptographicUtilities.cpp: Added. (WTF::constantTimeMemcmp):
2577         * wtf/CryptographicUtilities.h: Added.
2578
2579 2014-02-04  Anders Carlsson  <andersca@apple.com>
2580
2581         Rename StringImpl::getCharacters to StringImpl::characters
2582         https://bugs.webkit.org/show_bug.cgi?id=128205
2583
2584         Reviewed by Antti Koivisto.
2585
2586         This lets us use StringImpl::getCharacters for the upconverting version.
2587         Also, change StringImpl::characters<UChar>() to call characters16() instead of deprecatedCharacters()
2588         and audit all call sites to make sure we weren't relying on upconversion anywhere.
2589
2590         * wtf/text/AtomicString.cpp:
2591         (WTF::findString):
2592         * wtf/text/StringImpl.cpp:
2593         (WTF::StringImpl::simplifyMatchedCharactersToSpace):
2594         * wtf/text/StringImpl.h:
2595         (WTF::StringImpl::characters<LChar>):
2596         (WTF::StringImpl::characters<UChar>):
2597
2598 2014-02-04  Anders Carlsson  <andersca@apple.com>
2599
2600         Rename equalNonNull to equal and make it take const StringImpl& instead
2601         https://bugs.webkit.org/show_bug.cgi?id=128206
2602
2603         Reviewed by Andreas Kling.
2604
2605         * wtf/text/StringHash.h:
2606         (WTF::StringHash::equal):
2607         * wtf/text/StringImpl.cpp:
2608         (WTF::stringImplContentEqual):
2609         (WTF::equal):
2610         * wtf/text/StringImpl.h:
2611
2612 2014-02-04  Anders Carlsson  <andersca@apple.com>
2613
2614         Get rid of StringImpl::m_buffer
2615         https://bugs.webkit.org/show_bug.cgi?id=128200
2616
2617         Reviewed by Michael Saboff.
2618
2619         Trade one lousy hack for another by changing the CreateEmptyUnique StringImpl
2620         constructor to initialize its character buffer to point to m_length instead
2621         since it will always be null.
2622
2623         Also change it to be an 8-bit string because why not.
2624
2625         * wtf/text/StringImpl.h:
2626         (WTF::StringImpl::StringImpl):
2627
2628 2014-02-04  Anders Carlsson  <andersca@apple.com>
2629
2630         Rename String::getCharacters to String::characters
2631         https://bugs.webkit.org/show_bug.cgi?id=128196
2632
2633         Reviewed by Andreas Kling.
2634
2635         This means String::characters() will end up calling either characters8() or characters16() which
2636         makes more logical sense. It also frees up the getCharacters name so we can use it for a new function
2637         that will do upconversion.
2638         
2639         * wtf/text/StringBuilder.cpp:
2640         (WTF::StringBuilder::appendUninitializedSlow):
2641         * wtf/text/WTFString.h:
2642         (WTF::String::characters<LChar>):
2643         (WTF::String::characters<UChar>):
2644
2645 2014-02-03  Anders Carlsson  <andersca@apple.com>
2646
2647         Fix Windows build.
2648
2649         * wtf/text/StringImpl.h:
2650         (WTF::StringImpl::tailOffset):
2651
2652 2014-02-03  Anders Carlsson  <andersca@apple.com>
2653
2654         StringImpl::tailOffset() should return the offset right after m_hashAndFlags
2655         https://bugs.webkit.org/show_bug.cgi?id=128141
2656
2657         Reviewed by Andreas Kling.
2658
2659         * wtf/text/StringImpl.h:
2660         (WTF::StringImpl::tailOffset):
2661
2662 2014-02-03  Anders Carlsson  <andersca@apple.com>
2663
2664         More tail pointer consolidation
2665         https://bugs.webkit.org/show_bug.cgi?id=128139
2666
2667         Reviewed by Andreas Kling.
2668
2669         Add a new tailOffset() function and reimplement allocationSize() and tailPointer()
2670         in terms of it. Use tailPointer() instead of reinterpret_cast-ing this + 1.
2671
2672         * wtf/text/StringImpl.cpp:
2673         (WTF::StringImpl::createUninitializedInternalNonEmpty):
2674         * wtf/text/StringImpl.h:
2675         (WTF::StringImpl::StringImpl):
2676         (WTF::StringImpl::requiresCopy):
2677         (WTF::StringImpl::allocationSize):
2678         (WTF::StringImpl::tailOffset):
2679         (WTF::StringImpl::tailPointer):
2680
2681 2014-02-03  Gustavo Noronha Silva  <gns@gnome.org>
2682
2683         [GTK][CMake] Enable SUBPIXEL_LAYOUT in FeatureDefines.h like EFL does
2684         https://bugs.webkit.org/show_bug.cgi?id=128136
2685
2686         Reviewed by Martin Robinson.
2687
2688         * wtf/FeatureDefines.h: enable SUBPIXEL_LAYOUT if it's not set, for GTK+.
2689
2690 2014-02-03  Mark Hahnenberg  <mhahnenberg@apple.com>
2691
2692         Turn GenGC on
2693         https://bugs.webkit.org/show_bug.cgi?id=128109
2694
2695         Reviewed by Oliver Hunt.
2696
2697         * wtf/Platform.h: Initially it will only be enabled for X86-64.
2698
2699 2014-02-03  Anders Carlsson  <andersca@apple.com>
2700
2701         Consolidate StringImpl tail handling into two functions
2702         https://bugs.webkit.org/show_bug.cgi?id=128122
2703
2704         Reviewed by Andreas Kling.
2705
2706         * wtf/text/StringImpl.cpp:
2707         (WTF::StringImpl::createUninitializedInternalNonEmpty):
2708         (WTF::StringImpl::reallocateInternal):
2709         * wtf/text/StringImpl.h:
2710         (WTF::StringImpl::tryCreateUninitialized):
2711         (WTF::StringImpl::allocationSize):
2712         (WTF::StringImpl::tailPointer):
2713
2714 2014-02-03  Darin Adler  <darin@apple.com>
2715
2716         Remove Unicode.h
2717         https://bugs.webkit.org/show_bug.cgi?id=128106
2718
2719         Reviewed by Anders Carlsson.
2720
2721         * GNUmakefile.list.am: Removed files.
2722         * WTF.vcxproj/WTF.vcxproj: Ditto.
2723         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
2724         * WTF.xcodeproj/project.pbxproj: Ditto.
2725         * wtf/CMakeLists.txt: Ditto.
2726
2727         * wtf/unicode/ScriptCodesFromICU.h: Removed.
2728         * wtf/unicode/Unicode.h: Removed.
2729         * wtf/unicode/UnicodeMacrosFromICU.h: Removed.
2730         * wtf/unicode/icu/UnicodeIcu.h: Removed.
2731         * wtf/unicode/wchar/UnicodeWchar.cpp: Removed.
2732         * wtf/unicode/wchar/UnicodeWchar.h: Removed.
2733
2734 2014-01-25  Darin Adler  <darin@apple.com>
2735
2736         Stop using Unicode.h
2737         https://bugs.webkit.org/show_bug.cgi?id=127633
2738
2739         Reviewed by Anders Carlsson.
2740
2741         * wtf/StringHasher.h:
2742         * wtf/dtoa.h:
2743         * wtf/text/ASCIIFastPath.h:
2744         * wtf/text/LChar.h:
2745         * wtf/text/StringBuffer.h:
2746         * wtf/text/StringImpl.h:
2747         * wtf/text/WTFString.cpp:
2748         * wtf/unicode/CharacterNames.h:
2749         * wtf/unicode/Collator.h:
2750         * wtf/unicode/UTF8.h:
2751         Removed includes of <wtf/unicode/Unicode.h>, adding includes of
2752         ICU headers and <wtf/text/LChar.h> as needed to replace it.
2753
2754 2014-02-02  Darin Adler  <darin@apple.com>
2755
2756         Obey "delete this" comments, including deleting String::characters and friends
2757         https://bugs.webkit.org/show_bug.cgi?id=126865
2758
2759         Reviewed by Andreas Kling.
2760
2761         * wtf/text/AtomicString.h: Deleted the characters function.
2762         * wtf/text/StringBuilder.h: Deleted the characters function, leaving behind the
2763         deprecatedCharacters function.
2764         * wtf/text/StringImpl.h: Ditto.
2765         * wtf/text/WTFString.h: Ditto. Also added a constructor that takes a StringImpl&,
2766         helpful for later string refactoring.
2767
2768 2014-02-02  Dan Bernstein  <mitz@apple.com>
2769
2770         Stop using PLATFORM(MAC) in WTF except where it means “OS X but not iOS”
2771         https://bugs.webkit.org/show_bug.cgi?id=128089
2772
2773         Reviewed by Darin Adler.
2774
2775         Replaced all uses of PLATFORM(MAC) that weren’t accompanied by !PLATFORM(IOS) with
2776         equivalent(*) tests that are more idiomatic and will not change once PLATFORM(MAC) changes to
2777         be false when building for iOS.
2778
2779         * - One exception noted below.
2780
2781         * wtf/AutodrainedPool.h: Changed PLATFORM(MAC) to USE(FOUNDATION), because NSAutoreleasePool
2782         is a Foundation class.
2783
2784         * wtf/CurrentTime.cpp:
2785         (WTF::monotonicallyIncreasingTime): Changed PLATFORM(MAC) to OS(DARWIN), because Mach is
2786         part of the Darwin kernel, but reordered such that the EFL and GLIB implementations continue
2787         to take precedence regardless of the OS.
2788
2789         * wtf/MainThread.cpp: Changed PLATFORM(MAC) to OS(DARWIN) && !PLATFORM(EFL) && !PLATFORM(GTK).
2790         * wtf/MainThread.h: Ditto.
2791
2792         * wtf/Platform.h: Changed USE(CG) and USE(CA) to depend on COCOA, rather than MAC or IOS.
2793         Ditto for USE(CFURLCACHE), HAVE(ACCESSIBILITY), USE(PROTECTION_SPACE_AUTH_CALLBACK),
2794         USE(ACCESSIBILITY_CONTEXT_MENUS), USE(EXPORT_MACROS), USE(AVFOUNDATION),
2795         USE(REQUEST_ANIMATION_FRAME_TIMER), USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR),
2796         USE(CONTENT_FILTERING), USE(UNIFIED_TEXT_CHECKING), USE(MARKER_REMOVAL_UPON_EDITING),
2797         USE(AUDIO_SESSION), USE(IOSURFACE), and ENABLE(CSS3_TEXT_DECORATION_SKIP_INK). Changed
2798         PLATFORM(MAC) to OS(DARWIN) && !PLATFORM(EFL) && !PLATFORM(GTK) in controlling various
2799         JavaScriptCore or JavaScriptCore-dependent behaviors.
2800
2801         * wtf/RunLoop.h: Changed PLATFORM(MAC) to PLATFORM(COCOA).
2802         * wtf/RunLoopTimerCF.cpp: Ditto.
2803
2804         * wtf/SchedulePair.h: Changed PLATFORM(MAC) to USE(FOUNDATION), since it was used to guard
2805         usage of Foundation API.
2806
2807         * wtf/Threading.cpp: Added an explicit !PLATFORM(IOS) in a guard around something needed
2808         only on OS X and Windows.
2809
2810 2014-01-31  Benjamin Poulain  <bpoulain@apple.com>
2811
2812         Remove LEGACY_VIEWPORT_ADAPTION
2813         https://bugs.webkit.org/show_bug.cgi?id=128028
2814
2815         Reviewed by Anders Carlsson.
2816
2817         * wtf/FeatureDefines.h:
2818
2819 2014-01-31  Tim Horton  <timothy_horton@apple.com>
2820
2821         [wk2] PlatformCALayerRemoteCustom doesn't work on iOS
2822         https://bugs.webkit.org/show_bug.cgi?id=128025
2823         <rdar://problem/15950271>
2824
2825         Reviewed by Simon Fraser.
2826
2827         * wtf/Platform.h:
2828         Rename HAVE_LAYER_HOSTING_IN_WINDOW_SERVER to HAVE_OUT_OF_PROCESS_LAYER_HOSTING
2829         and make it true on iOS.
2830
2831 2014-01-31  Michael Saboff  <msaboff@apple.com>
2832
2833         REGRESSION: Crash in sanitizeStackForVMImpl when scrolling @ lifehacker.com.au
2834         https://bugs.webkit.org/show_bug.cgi?id=128017
2835
2836         Reviewed by Filip Pizlo.
2837
2838         Moved the setting and saving of VM::stackPointerAtVMEntry and the corresponding stack limit
2839         to JSLock and JSLock::DropAllLocks.  The saved data is now stored in per-thread in
2840         WTFThreadData.
2841
2842         * wtf/WTFThreadData.cpp:
2843         (WTF::WTFThreadData::WTFThreadData):
2844         * wtf/WTFThreadData.h:
2845         (WTF::WTFThreadData::savedStackPointerAtVMEntry):
2846         (WTF::WTFThreadData::setSavedStackPointerAtVMEntry):
2847         (WTF::WTFThreadData::savedLastStackTop):
2848         (WTF::WTFThreadData::setSavedLastStackTop):
2849         (WTF::WTFThreadData::savedReservedZoneSize):
2850         (WTF::WTFThreadData::setSavedReservedZoneSize):
2851
2852 2014-01-30  Andrei Bucur  <abucur@adobe.com>
2853
2854         Remove the ACCELERATED_COMPOSITING flag
2855         https://bugs.webkit.org/show_bug.cgi?id=127833
2856
2857         Reviewed by Antti Koivisto.
2858
2859         Remove the USE(ACCELERATED_COMPOSITING) conditionals from the code base and make AC
2860         mandatory.
2861
2862         * wtf/OwnPtrCommon.h:
2863         * wtf/Platform.h:
2864         * wtf/efl/OwnPtrEfl.cpp:
2865         (WTF::deleteOwnedPtr):
2866
2867 2014-01-28  Michael Saboff  <msaboff@apple.com>
2868
2869         Merge the jsCStack branch
2870         https://bugs.webkit.org/show_bug.cgi?id=127763
2871
2872         Reviewed by Mark Hahnenberg.
2873
2874         Changes from http://svn.webkit.org/repository/webkit/branches/jsCStack
2875         up to changeset 162958.
2876
2877 2014-01-29  Csaba Osztrogonác  <ossy@webkit.org>
2878
2879         Remove ENABLE(JAVASCRIPT_DEBUGGER) guards
2880         https://bugs.webkit.org/show_bug.cgi?id=127840
2881
2882         Reviewed by Mark Lam.
2883
2884         * wtf/FeatureDefines.h:
2885
2886 2014-01-28  Anders Carlsson  <andersca@apple.com>
2887
2888         Actually turn stack stats back off.
2889
2890         * wtf/StackStats.cpp:
2891         * wtf/StackStats.h:
2892
2893 2014-01-28  Anders Carlsson  <andersca@apple.com>
2894
2895         Turn stack stats back off.
2896
2897         * wtf/StackStats.cpp:
2898
2899 2014-01-28  Anders Carlsson  <andersca@apple.com>
2900
2901         Use std::mutex instead of WTF::Mutex in WTF
2902         https://bugs.webkit.org/show_bug.cgi?id=127783
2903
2904         Reviewed by Antti Koivisto.
2905
2906         * wtf/CryptographicallyRandomNumber.cpp:
2907         * wtf/MainThread.cpp:
2908         (WTF::mainThreadFunctionQueueMutex):
2909         (WTF::functionQueue):
2910         (WTF::dispatchFunctionsFromMainThread):
2911         (WTF::callOnMainThread):
2912         (WTF::cancelCallOnMainThread):
2913         * wtf/StackStats.cpp:
2914         (WTF::StackStats::initialize):
2915         (WTF::StackStats::CheckPoint::CheckPoint):
2916         (WTF::StackStats::CheckPoint::~CheckPoint):
2917         (WTF::StackStats::probe):
2918         (WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint):
2919         (WTF::StackStats::LayoutCheckPoint::~LayoutCheckPoint):
2920         * wtf/StackStats.h:
2921
2922 2014-01-27  Joseph Pecoraro  <pecoraro@apple.com>
2923
2924         WebCore: Enable -Wimplicit-fallthrough and add FALLTHROUGH annotation where needed
2925         https://bugs.webkit.org/show_bug.cgi?id=127671
2926
2927         Reviewed by Ryosuke Niwa.
2928
2929         * wtf/text/WTFString.h:
2930         (WTF::appendNumber):
2931
2932 2014-01-27  Jer Noble  <jer.noble@apple.com>
2933
2934         [WK2] callOnMainThread() from main thread sometimes results in ASSERTs.
2935         https://bugs.webkit.org/show_bug.cgi?id=127370
2936
2937         Reviewed by Alexey Proskuryakov.
2938
2939         When WEB_THREAD is enabled, and callOnMainThread() is called from the main
2940         thread, if the web thread is locked, a timer is set and the passed-in function
2941         is called on the next run-loop. However, by that time the web thread may have
2942         been unlocked, and isMainThread() will no longer return true, resulting in
2943         an assert.
2944
2945         Instead, scheduleDispatchFunctionsOnMainThread() should check isWebThread(),
2946         which is equivalent to isMainThread() when the WEB_THREAD is disabled, but
2947         will do the correct thing when WEB_THREAD is enabled.
2948
2949         * wtf/mac/MainThreadMac.mm:
2950         (WTF::scheduleDispatchFunctionsOnMainThread):
2951
2952 2014-01-27  Dan Bernstein  <mitz@apple.com>
2953
2954         Build fix.
2955
2956         * wtf/ThreadSafeRefCounted.h: Added a necessary #include.
2957
2958 2014-01-25  Sam Weinig  <sam@webkit.org>
2959
2960         Remove unused support for DRAGGABLE_REGION
2961         https://bugs.webkit.org/show_bug.cgi?id=127642
2962
2963         Reviewed by Simon Fraser.
2964
2965         * wtf/FeatureDefines.h:
2966
2967 2014-01-25  Joseph Pecoraro  <pecoraro@apple.com>
2968
2969         Add FALLTHROUGH and -Wimplicit-fallthrough to warn about unannotated implicit fallthroughs in switches
2970         https://bugs.webkit.org/show_bug.cgi?id=127637
2971
2972         Reviewed by Darin Adler.
2973
2974         For information about [[clang::fallthrough]], see:
2975         <http://clang.llvm.org/docs/LanguageExtensions.html#the-clang-fallthrough-attribute>
2976
2977         * Configurations/Base.xcconfig:
2978         Enable -Wimplicit-fallthrough warnings.
2979
2980         * wtf/Compiler.h:
2981         Define FALLTHROUGH on clang and fallback to outputing nothing when unsupported.
2982
2983         * wtf/dtoa/fast-dtoa.cc:
2984         * wtf/unicode/UTF8.cpp:
2985         (WTF::Unicode::convertLatin1ToUTF8):
2986         (WTF::Unicode::convertUTF16ToUTF8):
2987         (WTF::Unicode::isLegalUTF8):
2988         (WTF::Unicode::readUTF8Sequence):
2989         Explicitly annotate implicit fallthroughs with FALLTHROUGH.
2990
2991 2014-01-25  Darin Adler  <darin@apple.com>
2992
2993         Call deprecatedCharacters instead of characters at more call sites
2994         https://bugs.webkit.org/show_bug.cgi?id=127631
2995
2996         Reviewed by Sam Weinig.
2997
2998         * wtf/text/StringImpl.cpp:
2999         (WTF::StringImpl::replace):
3000         * wtf/text/WTFString.h:
3001         (WTF::String::isAllSpecialCharacters):
3002         Use the new name.
3003
3004 2014-01-25  Darin Adler  <darin@apple.com>
3005
3006         Add a new separate LChar.h header file, to be used after we remove Unicode.h
3007         https://bugs.webkit.org/show_bug.cgi?id=127630
3008
3009         Reviewed by Sam Weinig.
3010
3011         * GNUmakefile.list.am: Added the new file
3012         * WTF.vcxproj/WTF.vcxproj: Ditto.
3013         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
3014         * WTF.xcodeproj/project.pbxproj: Ditto.
3015         * wtf/CMakeLists.txt: Ditto.
3016         * wtf/text/LChar.h: Added.
3017
3018 2014-01-25  Darin Adler  <darin@apple.com>
3019
3020         Get rid of ICU_UNICODE and WCHAR_UNICODE remnants
3021         https://bugs.webkit.org/show_bug.cgi?id=127623
3022
3023         Reviewed by Anders Carlsson.
3024
3025         * wtf/CMakeLists.txt: Removed WTF_USE_ICU_UNICODE and
3026         WTF_USE_WCHAR_UNICODE since they are true and false respectively.
3027
3028         * wtf/Platform.h: Removed code to set WTF_USE_ICU_UNICODE.
3029
3030         * wtf/unicode/Collator.h: Removed ifdefs.
3031         * wtf/unicode/CollatorDefault.cpp: Ditto.
3032         * wtf/unicode/Unicode.h: Ditto.
3033         * wtf/unicode/icu/CollatorICU.cpp: Ditto.
3034
3035 2014-01-25  Anders Carlsson  <andersca@apple.com>
3036
3037         Remove atomicIncrement/atomicDecrement
3038         https://bugs.webkit.org/show_bug.cgi?id=127625
3039
3040         Reviewed by Andreas Kling.
3041
3042         Replace atomicIncrement/atomicDecrement with std::atomic.
3043
3044         * wtf/Atomics.h:
3045         * wtf/RefCountedLeakCounter.cpp:
3046         (WTF::RefCountedLeakCounter::~RefCountedLeakCounter):
3047         (WTF::RefCountedLeakCounter::increment):
3048         (WTF::RefCountedLeakCounter::decrement):
3049         * wtf/RefCountedLeakCounter.h:
3050         * wtf/ThreadSafeRefCounted.h:
3051         (WTF::ThreadSafeRefCountedBase::ref):
3052         (WTF::ThreadSafeRefCountedBase::refCount):
3053         (WTF::ThreadSafeRefCountedBase::derefBase):
3054
3055 2014-01-25  Anders Carlsson  <andersca@apple.com>
3056
3057         Modernize HashTable threading code
3058         https://bugs.webkit.org/show_bug.cgi?id=127621
3059
3060         Reviewed by Darin Adler.
3061
3062         Use std::mutex and std::atomic instead of WTF threading primitives.
3063
3064         * wtf/DynamicAnnotations.h:
3065         Include Platform.h here since this file relies on USE macros.
3066
3067         * wtf/HashTable.cpp:
3068         (WTF::HashTableStats::recordCollisionAtCount):
3069         Change this to take an unsigned.
3070
3071         (WTF::HashTableStats::dumpStats):
3072         * wtf/HashTable.h:
3073         (WTF::KeyTraits>::HashTable):
3074         (WTF::KeyTraits>::remove):
3075         (WTF::KeyTraits>::invalidateIterators):
3076         Use a single probe counter.
3077
3078         (WTF::addIterator):
3079         (WTF::removeIterator):
3080
3081 2014-01-25  Darin Adler  <darin@apple.com>
3082
3083         Restore alphabetical order in Compiler.h
3084         https://bugs.webkit.org/show_bug.cgi?id=127620
3085
3086         Reviewed by Sam Weinig.
3087
3088         * wtf/Compiler.h: Resorted some things into alphabetical order
3089
3090 2014-01-24  Brent Fulgham  <bfulgham@apple.com>
3091
3092         [Win] Convert some NMake files to MSBuild project files
3093         https://bugs.webkit.org/show_bug.cgi?id=127579
3094
3095         Reviewed by Tim Horton.
3096
3097         * WTF.vcxproj/WTF.make: Removed.
3098         * WTF.vcxproj/WTF.proj: Added.
3099
3100 2014-01-24  Anders Carlsson  <andersca@apple.com>
3101
3102         Get rid of monotonicallyIncreasingTimeMS and start using std::chrono instead
3103         https://bugs.webkit.org/show_bug.cgi?id=127571
3104
3105         Reviewed by Antti Koivisto.
3106
3107         * wtf/Compiler.h:
3108         Add a CONSTEXPR define so we can still use constexpr on compilers that don't support them (MSVC).
3109
3110         * wtf/CurrentTime.h:
3111         Remove monotonicallyIncreasingTimeMS().
3112
3113         * wtf/StdLibExtras.h:
3114         (std::literals::chrono_literals::operator _s):
3115         (std::literals::chrono_literals::operator _ms):
3116         Add _s and _ms literals. Once we switch over to C++14, we can drop them and just use the built-in ones.
3117
3118 2014-01-24  Anders Carlsson  <andersca@apple.com>
3119
3120         The CXX_EXPLICIT_CONVERSIONS COMPILER_SUPPORTS macro has been removed, and all
3121         compilers support explicit conversions now so simply remove the #ifdef.
3122
3123         * wtf/RetainPtr.h:
3124
3125 2014-01-24  Darin Adler  <darin@apple.com>
3126
3127         Simplify Compiler.h
3128         https://bugs.webkit.org/show_bug.cgi?id=127491
3129
3130         Reviewed by Anders Carlsson.
3131
3132         * wtf/Assertions.h: Remove COMPILER_SUPPORTS(CXX_STATIC_ASSERT), since
3133         we now have that for all compilers that can build WebKit.
3134
3135         * wtf/Compiler.h: Removed always true feature flags, including:
3136         COMPILER_SUPPORTS(CXX_VARIADIC_TEMPLATES), COMPILER_SUPPORTS(CXX_RVALUE_REFERENCES),
3137         COMPILER_SUPPORTS(CXX_DELETED_FUNCTIONS), COMPILER_SUPPORTS(CXX_NULLPTR),
3138         COMPILER_SUPPORTS(CXX_EXPLICIT_CONVERSIONS), COMPILER_SUPPORTS(CXX_STATIC_ASSERT),
3139         COMPILER_SUPPORTS(CXX_OVERRIDE_CONTROL), COMPILER_SUPPORTS(CXX_STRONG_ENUMS), and
3140         COMPILER_SUPPORTS(CXX_AUTO_TYPE). Sorted sections alphabetically. Separated out
3141         nested #if and #else into separate checks for greater readability. Removed obsolete
3142         check for COMPILER(RVCT). Removed unused COMPILER(GCCE) detection.
3143
3144         * wtf/RefPtr.h: Remove COMPILER_SUPPORTS(CXX_NULLPTR), since we now have
3145         that for all compilers that can build WebKit.
3146         * wtf/RetainPtr.h: Ditto.
3147
3148 2014-01-23  Max Vujovic  <mvujovic@adobe.com>
3149
3150         Remove CSS Custom Filters code and tests
3151         https://bugs.webkit.org/show_bug.cgi?id=127382
3152
3153         Reviewed by Simon Fraser.
3154
3155         * wtf/FeatureDefines.h:
3156
3157 2014-01-22  Brent Fulgham  <bfulgham@apple.com>
3158
3159         [Win] Update project and solution files for 64-bit builds.
3160         https://bugs.webkit.org/show_bug.cgi?id=127457
3161
3162         Reviewed by Eric Carlson.
3163
3164         * WTF.vcxproj/WTF.submit.sln: Add x64 targets.
3165         * WTF.vcxproj/WTF.vcxproj: Update for VS2013
3166
3167 2014-01-22  Myles C. Maxfield  <mmaxfield@apple.com>
3168
3169         Remove CSS3_TEXT_DECORATION define
3170         https://bugs.webkit.org/show_bug.cgi?id=127333
3171
3172         Reviewed by Simon Fraser.
3173
3174         This is required for unprefixing the text-decoration-* CSS properties.
3175
3176         * wtf/Platform.h:
3177
3178 2014-01-22  Jae Hyun Park  <jae.park@company100.net>
3179
3180         Remove unnecessary include in Noncopyable.h
3181         https://bugs.webkit.org/show_bug.cgi?id=127406
3182
3183         Reviewed by Anders Carlsson.
3184
3185         * wtf/Noncopyable.h: We don't need Compiler.h as of r162198.
3186
3187 2014-01-22  Carlos Garcia Campos  <cgarcia@igalia.com>
3188
3189         [GTK] Add GUniquePtr
3190         https://bugs.webkit.org/show_bug.cgi?id=127170
3191
3192         Reviewed by Gustavo Noronha Silva.
3193
3194         The idea is to replace GOwnPtr with a template alias of
3195         std:unique_ptr. Not everything can be replaced, though, because
3196         GOwnPtr::outPtr() doesn't seem to be possible to implement with
3197         unique_ptr. This smart pointer is more flexible than GOwnPtr and
3198         allows to transfer the ownership of the pointer using
3199         std::move().
3200
3201         * GNUmakefile.list.am: Add new file to compilation.
3202         * wtf/gobject/GUniquePtr.h: Added.
3203         (WTF::GPtrDeleter::operator()):
3204
3205 2014-01-20  Anders Carlsson  <andersca@apple.com>
3206
3207         Remove an unused member variable
3208         https://bugs.webkit.org/show_bug.cgi?id=127295
3209
3210         Reviewed by Antti Koivisto.
3211
3212         * wtf/MainThread.cpp:
3213         (WTF::FunctionWithContext::FunctionWithContext):
3214         (WTF::FunctionWithContext::operator == ):
3215         (WTF::dispatchFunctionsFromMainThread):
3216
3217 2014-01-20  Anders Carlsson  <andersca@apple.com>
3218
3219         Remove MutexTryLocker
3220         https://bugs.webkit.org/show_bug.cgi?id=127294
3221
3222         Reviewed by Antti Koivisto.
3223
3224         MutexTryLocker has been replaced with std::unique_lock with std::try_to_lock everywhere now.
3225
3226         * wtf/ThreadingPrimitives.h:
3227
3228 2014-01-19  Carlos Garcia Campos  <cgarcia@igalia.com>
3229
3230         [GLIB] GVariant floating references are not correctly handled by GRefPtr
3231         https://bugs.webkit.org/show_bug.cgi?id=127246
3232
3233         Reviewed by Martin Robinson.
3234
3235         GRefPtr should always use g_variant_ref_sink to deal with GVariant
3236         floating references. In case of full references,
3237         g_variant_ref_sink calls g_variant_ref, so it's safe to use it always.
3238
3239         * wtf/gobject/GRefPtr.cpp:
3240         (WTF::refGPtr): Use g_variant_ref_sink().
3241
3242 2014-01-18  Anders Carlsson  <andersca@apple.com>
3243
3244         Remove support for the viewsource attribute
3245         https://bugs.webkit.org/show_bug.cgi?id=127232
3246
3247         Reviewed by Andreas Kling.
3248
3249         * wtf/FeatureDefines.h:
3250
3251 2014-01-18  Anders Carlsson  <andersca@apple.com>
3252
3253         Remove ENABLE_THREADED_HTML_PARSER defines everywhere
3254         https://bugs.webkit.org/show_bug.cgi?id=127225
3255
3256         Reviewed by Andreas Kling.
3257
3258         This concludes the removal of over 8.8 million lines of threaded parser code.
3259
3260         * wtf/FeatureDefines.h:
3261
3262 2014-01-17  Anders Carlsson  <andersca@apple.com>
3263
3264         Add a callOnMainThreadAndWait variant in SocketStreamHandle
3265         https://bugs.webkit.org/show_bug.cgi?id=127180
3266
3267         Reviewed by Geoffrey Garen.
3268
3269         Remove callOnMainThreadAndWait from WTF.
3270
3271         * wtf/MainThread.cpp:
3272         * wtf/MainThread.h:
3273
3274 2014-01-17  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
3275
3276         Remove workaround for compilers not supporting deleted functions
3277         https://bugs.webkit.org/show_bug.cgi?id=127166
3278
3279         Reviewed by Andreas Kling.
3280
3281         * wtf/Compiler.h:
3282         * wtf/Noncopyable.h:
3283         * wtf/PassRefPtr.h:
3284
3285 2014-01-16  Benjamin Poulain  <bpoulain@apple.com>
3286
3287         Remove Nix from WTF
3288         https://bugs.webkit.org/show_bug.cgi?id=127150
3289
3290         Reviewed by Alexey Proskuryakov.
3291
3292         * wtf/DisallowCType.h:
3293         * wtf/FeatureDefines.h:
3294         * wtf/Platform.h:
3295         * wtf/PlatformNix.cmake: Removed.
3296         * wtf/nix: Removed.
3297
3298 2014-01-16  Anders Carlsson  <andersca@apple.com>
3299
3300         Remove FINAL macro
3301         https://bugs.webkit.org/show_bug.cgi?id=127149
3302
3303         Reviewed by Tim Horton.
3304
3305         * wtf/Compiler.h:
3306
3307 2014-01-16  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
3308
3309         Remove workaround for compilers not supporting explicit override control
3310         https://bugs.webkit.org/show_bug.cgi?id=127111
3311
3312         Reviewed by Anders Carlsson.
3313
3314         Now all compilers support explicit override control, this workaround can be removed.
3315
3316         * wtf/Compiler.h:
3317         * wtf/FilePrintStream.h:
3318         * wtf/RunLoop.h:
3319         * wtf/StringPrintStream.h:
3320
3321 2014-01-16  Alberto Garcia  <berto@igalia.com>
3322
3323         Source/WTF/wtf/Atomics.h:300: Error: bad register name `%bpl'
3324         https://bugs.webkit.org/show_bug.cgi?id=126985
3325
3326         Reviewed by Csaba Osztrogonác.
3327
3328         Use the 'q' constraint to force using a register that allows
3329         access to its lower byte.
3330
3331         * wtf/Atomics.h:
3332         (WTF::weakCompareAndSwap):
3333
3334 2014-01-16  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
3335
3336         Fix unnecessary checks for Clang compiler if the compiler is MSVC.
3337         https://bugs.webkit.org/show_bug.cgi?id=127037
3338
3339         Reviewed by Csaba Osztrogonác.
3340
3341         Inside the #if defined(_MSC_VER) there's no need for checking whether the compiler is not Clang.
3342
3343         * wtf/Compiler.h:
3344
3345 2014-01-16  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
3346
3347         Require at least GCC version 4.7
3348         https://bugs.webkit.org/show_bug.cgi?id=127049
3349
3350         Reviewed by Csaba Osztrogonác.
3351
3352         r161770 added a template alias, so the minimum GCC version is 4.7 now.
3353
3354         Also fixed a typo in the error message about old MSVC version.
3355
3356         * wtf/Compiler.h:
3357
3358 2014-01-15  Alberto Garcia  <berto@igalia.com>
3359
3360         [GTK] v2.3.3 fails to build in Debian / FreeBSD
3361         https://bugs.webkit.org/show_bug.cgi?id=126502
3362
3363         Reviewed by Mark Lam.
3364
3365         * wtf/Platform.h: Add LLINT support to FreeBSD.
3366
3367 2014-01-15  Anders Carlsson  <andersca@apple.com>
3368
3369         Get rid of RefCountedCustomAllocated
3370         https://bugs.webkit.org/show_bug.cgi?id=127051
3371
3372         Reviewed by Antti Koivisto.
3373
3374         It's not used anywhere anymore, get rid of it.
3375
3376         * wtf/RefCounted.h:
3377         * wtf/SizeLimits.cpp:
3378
3379 2014-01-14  Anders Carlsson  <andersca@apple.com>
3380
3381         And yet another build fix.
3382
3383         * wtf/SizeLimits.cpp:
3384
3385 2014-01-14  Anders Carlsson  <andersca@apple.com>
3386
3387         Another build fix.
3388
3389         * wtf/SizeLimits.cpp:
3390
3391 2014-01-14  Daniel Bates  <dabates@apple.com>
3392
3393         [iOS] Enable WTF_USE_UIKIT_EDITING
3394
3395         * wtf/Platform.h:
3396
3397 2014-01-14  Daniel Bates  <dabates@apple.com>
3398
3399         [iOS] Enable QuickLook
3400         https://bugs.webkit.org/show_bug.cgi?id=126954
3401
3402         Reviewed by David Kilzer.
3403
3404         * wtf/Platform.h:
3405
3406 2014-01-14  Anders Carlsson  <andersca@apple.com>
3407
3408         Get rid of ThreadRestrictionVerifier
3409         https://bugs.webkit.org/show_bug.cgi?id=127004
3410
3411         Reviewed by Sam Weinig.
3412
3413         The ThreadRestrictionVerifier mechanism has been turned off for a while
3414         since it doesn't really have a good solution for objects that are passed between threads.
3415         Instead of having dead code in the tree, just get rid of it.
3416         
3417         * GNUmakefile.list.am:
3418         * WTF.vcxproj/WTF.vcxproj:
3419         * WTF.vcxproj/WTF.vcxproj.filters:
3420         * WTF.xcodeproj/project.pbxproj:
3421         * wtf/CMakeLists.txt:
3422         * wtf/RefCounted.h:
3423         (WTF::RefCountedBase::ref):
3424         (WTF::RefCountedBase::hasOneRef):
3425         (WTF::RefCountedBase::refCount):
3426         (WTF::RefCountedBase::derefBase):
3427         * wtf/ThreadRestrictionVerifier.h: Removed.
3428
3429 2014-01-14  Benjamin Poulain  <benjamin@webkit.org>
3430
3431         Enable the experimental selector code generator by default
3432         https://bugs.webkit.org/show_bug.cgi?id=126953
3433
3434         Reviewed by Gavin Barraclough.
3435
3436         * wtf/Platform.h:
3437         Enable CSS_SELECTOR_JIT on OS X x86_64 by default.
3438         The feature is not ready to ship but it is stable enough to enable
3439         for the bots and nightly.
3440
3441 2014-01-14  Brian J. Burg  <burg@cs.washington.edu>
3442
3443         Add ENABLE(WEB_REPLAY) feature flag to the build system
3444         https://bugs.webkit.org/show_bug.cgi?id=126949
3445
3446         Reviewed by Joseph Pecoraro.
3447
3448         * wtf/FeatureDefines.h: for now, disable the flag by default.
3449
3450 2014-01-14  peavo@outlook.com  <peavo@outlook.com>
3451
3452         [Win] Application name in user agent string is truncated.
3453         https://bugs.webkit.org/show_bug.cgi?id=126810
3454
3455         Reviewed by Anders Carlsson.
3456
3457         * wtf/text/StringConcatenate.h:
3458         (WTF::tryMakeString): Add missing 8 bit check for last argument. 
3459
3460 2014-01-13  Anders Carlsson  <andersca@apple.com>
3461
3462         Move another deprecated symbol to DeprecatedSymbolsUsedBySafari.mm
3463         https://bugs.webkit.org/show_bug.cgi?id=126909
3464
3465         Reviewed by Ryosuke Niwa.
3466
3467         * wtf/MainThread.cpp:
3468         * wtf/MainThread.h:
3469         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
3470         (WTF::callOnMainThread):
3471
3472 2014-01-13  Anders Carlsson  <andersca@apple.com>
3473
3474         Fix Windows build.
3475
3476         * wtf/ThreadingWin.cpp:
3477         (WTF::initializeThreading):
3478
3479 2014-01-13  Anders Carlsson  <andersca@apple.com>
3480
3481         Remove AtomicallyInitializedStatic
3482         https://bugs.webkit.org/show_bug.cgi?id=126864
3483
3484         Reviewed by Andreas Kling.
3485
3486         Remove the lockAtomicallyInitializedStaticMutex and unlockAtomicallyInitializedStaticMutex functions
3487         everywhere except on Mac (where they unfortunately were used by Safari).
3488         
3489         On Mac, add them to a separate file which will hold functions and symbols that we would like
3490         to remove but that are used by Safari. Reimplement them in terms of std::call_once and std::mutex.
3491
3492         * WTF.xcodeproj/project.pbxproj:
3493         * wtf/Threading.h:
3494         * wtf/ThreadingPthreads.cpp:
3495         (WTF::initializeThreading):
3496         * wtf/ThreadingWin.cpp:
3497         (WTF::initializeThreading):
3498         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm: Added.
3499         (WTF::atomicallyInitializedStaticMutex):
3500         (WTF::lockAtomicallyInitializedStaticMutex):
3501         (WTF::unlockAtomicallyInitializedStaticMutex):
3502
3503 2014-01-13  Commit Queue  <commit-queue@webkit.org>
3504
3505         Unreviewed, rolling out r161855.
3506         http://trac.webkit.org/changeset/161855
3507         https://bugs.webkit.org/show_bug.cgi?id=126880
3508
3509         Sister commit of r161852 (Requested by kling on #webkit).
3510
3511         * wtf/ThreadingPthreads.cpp:
3512         (WTF::initializeThreading):
3513
3514 2014-01-13  Commit Queue  <commit-queue@webkit.org>
3515
3516         Unreviewed, rolling out r161852.
3517         http://trac.webkit.org/changeset/161852
3518         https://bugs.webkit.org/show_bug.cgi?id=126877
3519
3520         Broke ToT with system Safari (Requested by kling on #webkit).
3521
3522         * wtf/Threading.h:
3523         * wtf/ThreadingPthreads.cpp:
3524         (WTF::initializeThreading):
3525         (WTF::lockAtomicallyInitializedStaticMutex):
3526         (WTF::unlockAtomicallyInitializedStaticMutex):
3527         * wtf/ThreadingWin.cpp:
3528         (WTF::lockAtomicallyInitializedStaticMutex):
3529         (WTF::unlockAtomicallyInitializedStaticMutex):
3530         (WTF::initializeThreading):
3531
3532 2014-01-12  Commit Queue  <commit-queue@webkit.org>
3533
3534         Unreviewed, rolling out r161840.
3535         http://trac.webkit.org/changeset/161840
3536         https://bugs.webkit.org/show_bug.cgi?id=126870
3537
3538         Caused jsscore and layout test failures (Requested by smfr on
3539         #webkit).
3540
3541         * wtf/text/StringImpl.cpp:
3542         (WTF::StringImpl::replace):
3543         * wtf/text/WTFString.h:
3544         (WTF::String::isAllSpecialCharacters):
3545
3546 2014-01-12  Dan Bernstein  <mitz@apple.com>
3547
3548         Fix an assertion failure in initializeDates() when launching Safari, which was introduced in r161852.
3549
3550         Reviewed by Andy Estes.
3551
3552         * wtf/ThreadingPthreads.cpp:
3553         (WTF::initializeThreading): Set isInitialized to true.
3554
3555 2014-01-12  Darin Adler  <darin@apple.com>
3556
3557         Add PLATFORM(COCOA) and USE(FOUNDATION)
3558         https://bugs.webkit.org/show_bug.cgi?id=126859
3559
3560         Reviewed by Anders Carlsson.
3561
3562         * wtf/Platform.h: Added PLATFORM(COCOA), which for now is set at exactly the same
3563         times that PLATFORM(MAC) is. Added USE(FOUNDATION), which is set at the same times
3564         that PLATFORM(COCOA) is. Re-organize the PLATFORM(MAC) and PLATFORM(IOS) settings
3565         in the header so they are a bit easier to read. Put HAVE_LANGINFO_H in with the
3566         rest of the OS(UNIX) settings and put HAVE_READLINE in with the rest of the
3567         OS(DARWIN) settings. Tweak formatting a bit.
3568
3569 2014-01-12  Anders Carlsson  <andersca@apple.com>
3570
3571         Remove AtomicallyInitializedStatic
3572         https://bugs.webkit.org/show_bug.cgi?id=126864
3573
3574         Reviewed by Darin Adler.
3575
3576         * wtf/Threading.h:
3577         * wtf/ThreadingPthreads.cpp:
3578         (WTF::initializeThreading):
3579         * wtf/ThreadingWin.cpp:
3580         (WTF::initializeThreading):
3581
3582 2014-01-12  Darin Adler  <darin@apple.com>
3583
3584         Add deprecatedCharacters as a synonym for characters and convert most call sites
3585         https://bugs.webkit.org/show_bug.cgi?id=126858
3586
3587         Reviewed by Anders Carlsson.
3588
3589         * wtf/text/AtomicString.cpp:
3590         (WTF::HashAndUTF8CharactersTranslator::equal):
3591         (WTF::SubstringTranslator::hash):
3592         (WTF::SubstringTranslator::equal):
3593         * wtf/text/AtomicString.h:
3594         (WTF::AtomicString::characters):
3595         * wtf/text/Base64.cpp:
3596         (WTF::base64Decode):
3597         (WTF::base64URLDecode):
3598         * wtf/text/StringBuilder.h:
3599         (WTF::StringBuilder::characters):
3600         (WTF::StringBuilder::deprecatedCharacters):
3601         * wtf/text/StringImpl.cpp:
3602         (WTF::StringImpl::getData16SlowCase):
3603         (WTF::StringImpl::upper):
3604         (WTF::StringImpl::lower):
3605         (WTF::StringImpl::find):
3606         (WTF::StringImpl::findIgnoringCase):
3607         * wtf/text/StringImpl.h:
3608         (WTF::StringImpl::characters):
3609         (WTF::StringImpl::deprecatedCharacters):
3610         (WTF::StringImpl::getCharacters<UChar>):
3611         (WTF::equalIgnoringNullity):
3612         * wtf/text/WTFString.cpp:
3613         (WTF::String::append):
3614         (WTF::String::appendInternal):
3615         (WTF::String::insert):
3616         (WTF::String::truncate):
3617         (WTF::String::percentage):
3618         * wtf/text/WTFString.h:
3619         (WTF::String::characters):
3620         (WTF::String::deprecatedCharacters):
3621         (WTF::String::getCharactersWithUpconvert<UChar>):
3622         (WTF::append):
3623         Use deprecatedCharacters instead of characters.
3624
3625 2014-01-12  Anders Carlsson  <andersca@apple.com>
3626
3627         Remove the last remaining uses of AtomicallyInitializedStatic
3628         https://bugs.webkit.org/show_bug.cgi?id=126863
3629
3630         Reviewed by Darin Adler.
3631
3632         * wtf/HashTable.cpp:
3633         (WTF::hashTableStatsMutex):
3634         (WTF::HashTableStats::recordCollisionAtCount):
3635         (WTF::HashTableStats::dumpStats):
3636         * wtf/unicode/icu/CollatorICU.cpp:
3637         (WTF::cachedCollatorMutex):
3638         (WTF::Collator::createCollator):
3639         (WTF::Collator::releaseCollator):
3640
3641 2014-01-12  Darin Adler  <darin@apple.com>
3642
3643         Reduce use of String::characters
3644         https://bugs.webkit.org/show_bug.cgi?id=126854
3645
3646         Reviewed by Sam Weinig.
3647
3648         * wtf/text/StringImpl.cpp:
3649         (WTF::StringImpl::replace): Use characters16 here since is8Bit was already checked.
3650         * wtf/text/WTFString.h:
3651         (WTF::String::isAllSpecialCharacters): Use characters16 here since is8Bit was
3652         already checked. Also renamed "len" to "length".
3653
3654 2014-01-12  Anders Carlsson  <andersca@apple.com>
3655
3656         Replace more uses of AtomicallyInitializedStatic with std::call_once
3657         https://bugs.webkit.org/show_bug.cgi?id=126847
3658
3659         Reviewed by Sam Weinig.
3660
3661         * wtf/Forward.h:
3662         Forward declare NeverDestroyed.
3663
3664 2014-01-11  Zan Dobersek  <zdobersek@igalia.com>
3665
3666         Unreviewed build fix for ports using GCC after r161770.
3667
3668         * wtf/IteratorAdaptors.h:
3669         (WTF::FilterIterator::operator*): Replicating r161797, the const qualifier for
3670         FilterIterator::operator*() is removed since it clashes with some iterator types
3671         that are also const, causing compilation failures with GCC.
3672
3673 2014-01-11  Anders Carlsson  <andersca@apple.com>
3674
3675         Use std::call_once instead of AtomicallyInitializedStatic when creating a HTTP header set
3676         https://bugs.webkit.org/show_bug.cgi?id=126837
3677
3678         Reviewed by Sam Weinig.
3679
3680         * wtf/HashSet.h:
3681         (WTF::HashSet::HashSet):
3682         Add a HashSet constructor that takes an initializer list.
3683
3684 2014-01-11  Sam Weinig  <sam@webkit.org>
3685
3686         Fix the EFL build.
3687
3688         * wtf/IteratorAdaptors.h:
3689         (WTF::TransformIterator::operator*):
3690
3691 2014-01-11  Sam Weinig  <sam@webkit.org>
3692
3693         Add support for null StringViews
3694         https://bugs.webkit.org/show_bug.cgi?id=126827
3695
3696         Reviewed by Anders Carlsson.
3697
3698         - Do some style cleanup while in the neighborhood.
3699
3700         * wtf/text/StringView.h:
3701         (WTF::StringView::StringView):
3702         Add default constructor to create a null StringView.
3703
3704         (WTF::StringView::isNull):
3705         Add isNull(), matching the semantics of String.
3706
3707         (WTF::StringView::operator bool):
3708         Add an explicit operator bool() to allow use in if-statements. 
3709
3710 2014-01-11  Sam Weinig  <sam@webkit.org>
3711
3712         Clean up iterator filter / iterator range code
3713         https://bugs.webkit.org/show_bug.cgi?id=126817
3714
3715         Reviewed by Anders Carlsson.
3716
3717         - Renames IteratorPair to IteratorRange.
3718         - Splits FilterIterator into FilterIterator (which now only filters) and
3719           TransformIterator (which does the transform part of the old FilterIterator).
3720           Move both of these to IteratorAdaptors.h
3721
3722         * GNUmakefile.list.am:
3723         * WTF.vcxproj/WTF.vcxproj:
3724         * WTF.vcxproj/WTF.vcxproj.filters:
3725         * WTF.xcodeproj/project.pbxproj:
3726         * wtf/CMakeLists.txt:
3727         * wtf/FilterIterator.h: Removed.
3728         Add/remove files.
3729
3730         * wtf/HashMap.h:
3731         (WTF::HashMap::keys):
3732         (WTF::HashMap::values):
3733         * wtf/RefPtrHashMap.h:
3734         Update for rename to IteratorRange. Simplify by using makeIteratorRange().
3735
3736         * wtf/IteratorAdaptors.h: Copied from wtf/FilterIterator.h.
3737         (WTF::FilterIterator::FilterIterator):
3738         (WTF::FilterIterator::operator*):
3739         (WTF::makeFilterIterator):
3740         (WTF::TransformIterator::TransformIterator):
3741         (WTF::TransformIterator::operator++):
3742         (WTF::TransformIterator::operator*):
3743         (WTF::TransformIterator::operator==):
3744         (WTF::TransformIterator::operator!=):
3745         (WTF::makeTransformIterator):
3746         Split up filtering and transforming. Add makeFilterIterator() and makeTransformIterator()
3747         helpers.
3748
3749         * wtf/IteratorPair.h: Removed.
3750         * wtf/IteratorRange.h: Copied from wtf/IteratorPair.h.
3751         (WTF::IteratorRange::IteratorRange):
3752         (WTF::makeIteratorRange):
3753         Renamed to IteratorRange and adds makeIteratorRange() helper.
3754
3755 2014-01-10  David Kilzer  <ddkilzer@apple.com>
3756
3757         Clean up architectures in xcconfig files
3758         <http://webkit.org/b/126794>
3759
3760         Reviewed by Andy Estes.
3761
3762         * Configurations/Base.xcconfig:
3763         - Add new arch.
3764
3765 2014-01-10  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>
3766
3767         [EFL][JSC] Enable udis86 disassembler on efl.
3768         https://bugs.webkit.org/show_bug.cgi?id=125502
3769
3770         Reviewed by Michael Saboff.
3771
3772         Enable udis86 disassembler on efl and fix build warnings.
3773
3774         * wtf/Platform.h:
3775           Enable udis86 disassembler on EFL.
3776
3777 2014-01-10  Hunseop Jeong  <hs85.jeong@samsung.com>
3778
3779         [EFL] Enable the DFG_JIT on ARMv7
3780         https://bugs.webkit.org/show_bug.cgi?id=126742
3781
3782         Reviewed by Gyuyoung Kim.
3783
3784         Turn on ENABLE_DFG_JIT on ARMv7 for EFL.
3785
3786         * wtf/Platform.h:
3787
3788 2014-01-07  Mark Hahnenberg  <mhahnenberg@apple.com>
3789
3790         Marking should be generational
3791         https://bugs.webkit.org/show_bug.cgi?id=126552
3792
3793         Reviewed by Geoffrey Garen.
3794
3795         * wtf/Bitmap.h:
3796         (WTF::WordType>::count): Added a cast that became necessary when Bitmap
3797         is used with smaller types than int32_t.
3798
3799 2014-01-09  Simon Fraser  <simon.fraser@apple.com>
3800
3801         Enable async scrolling for iOS
3802         https://bugs.webkit.org/show_bug.cgi?id=126730
3803
3804         Reviewed by Tim Horton.
3805         
3806         Turn on ENABLE_ASYNC_SCROLLING for iOS.
3807
3808         * wtf/FeatureDefines.h:
3809
3810 2014-01-09  Anders Carlsson  <andersca@apple.com>
3811
3812         Remove Blackberry and QNX bits from WTF
3813         https://bugs.webkit.org/show_bug.cgi?id=126726
3814
3815         Reviewed by Benjamin Poulain.
3816
3817         * wtf/Assertions.cpp:
3818         * wtf/Atomics.h:
3819         * wtf/CurrentTime.cpp:
3820         (WTF::currentCPUTime):
3821         * wtf/DateMath.cpp:
3822         * wtf/DisallowCType.h:
3823         * wtf/FeatureDefines.h:
3824         * wtf/InlineASM.h:
3825         * wtf/MathExtras.h:
3826         * wtf/NumberOfCores.cpp:
3827         (WTF::numberOfProcessorCores):
3828         * wtf/OSAllocatorPosix.cpp:
3829         (WTF::OSAllocator::reserveUncommitted):
3830         (WTF::OSAllocator::commit):
3831         (WTF::OSAllocator::decommit):
3832         * wtf/Platform.h:
3833         * wtf/PlatformBlackBerry.cmake: Removed.
3834         * wtf/RAMSize.cpp:
3835         (WTF::computeRAMSize):
3836         * wtf/StackBounds.cpp:
3837         * wtf/ThreadingPthreads.cpp:
3838         (WTF::initializeThreading):
3839         (WTF::initializeCurrentThreadInternal):
3840         * wtf/blackberry/MainThreadBlackBerry.cpp: Removed.
3841         * wtf/blackberry/RunLoopBlackBerry.cpp: Removed.
3842         * wtf/text/AtomicString.h:
3843         * wtf/text/StringImpl.h:
3844         * wtf/text/WTFString.h:
3845
3846 2014-01-09  Daniel Bates  <dabates@apple.com>
3847
3848         [iOS] Upstream WebCore/platform changes
3849         https://bugs.webkit.org/show_bug.cgi?id=126654
3850
3851         Rubber-stamped by David Kilzer.
3852
3853         * wtf/MainThread.cpp:
3854         (WTF::canAccessThreadLocalDataForThread):
3855         * wtf/MainThread.h:
3856
3857 2014-01-09  Commit Queue  <commit-queue@webkit.org>
3858
3859         Unreviewed, rolling out r161540.
3860         http://trac.webkit.org/changeset/161540
3861         https://bugs.webkit.org/show_bug.cgi?id=126704
3862
3863         Caused assertion failures on multiple tests (Requested by ap
3864         on #webkit).
3865
3866         * wtf/Bitmap.h:
3867         (WTF::WordType>::count):
3868
3869 2014-01-07  Mark Hahnenberg  <mhahnenberg@apple.com>
3870
3871         Marking should be generational
3872         https://bugs.webkit.org/show_bug.cgi?id=126552
3873
3874         Reviewed by Geoffrey Garen.
3875
3876         * wtf/Bitmap.h:
3877         (WTF::WordType>::count): Added a cast that became necessary when Bitmap
3878         is used with smaller types than int32_t.
3879
3880 2014-01-08  Anders Carlsson  <andersca@apple.com>
3881
3882         Add WTF::StringView and use it for grammar checking
3883         https://bugs.webkit.org/show_bug.cgi?id=126644
3884
3885         Reviewed by Antti Koivisto.
3886
3887         Add a new StringView class which is an immutable reference to either an 8-bit or a 16-bit string.
3888
3889         This makes it easier to pass substrings around without having to either copy string data
3890         or upconvert and use UChar pointers.
3891
3892         The StringView class is very loosely based on the std::string_view class which is proposed for a future version of C++,
3893         see http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3609.html for more details.
3894
3895         * GNUmakefile.list.am:
3896         * WTF.vcxproj/WTF.vcxproj:
3897         * WTF.vcxproj/WTF.vcxproj.filters:
3898         * WTF.xcodeproj/project.pbxproj:
3899         * wtf/CMakeLists.txt:
3900         * wtf/Forward.h:
3901         * wtf/text/StringView.h: Added.
3902         (WTF::StringView::StringView):
3903         (WTF::StringView::empty):
3904         (WTF::StringView::characters8):
3905         (WTF::StringView::characters16):
3906         (WTF::StringView::isEmpty):
3907         (WTF::StringView::length):
3908         (WTF::StringView::is8Bit):
3909         (WTF::StringView::substring):
3910         (WTF::StringView::toString):
3911         (WTF::StringView::toStringWithoutCopying):
3912         (WTF::StringView::encodedCharacters):
3913
3914 2014-01-07  David Farler  <dfarler@apple.com>
3915
3916         [ASAN] Building with trunk clang corrupts sandbox profile with comment from Compiler.h
3917         https://bugs.webkit.org/show_bug.cgi?id=124532
3918
3919         Reviewed by David Kilzer.
3920
3921         * wtf/Compiler.h:
3922         Remove this quirk - it does nothing.
3923
3924 2014-01-06  Filip Pizlo  <fpizlo@apple.com>
3925
3926         Get rid of ENABLE(VALUE_PROFILER). It's on all the time now.
3927
3928         Rubber stamped by Mark Hahnenberg.
3929
3930         * wtf/Platform.h:
3931
3932 2014-01-06  Zan Dobersek  <zdobersek@igalia.com>
3933
3934         Remove using directives for the std namespace from WTF
3935         https://bugs.webkit.org/show_bug.cgi?id=126524
3936
3937         Reviewed by Alexey Proskuryakov.
3938
3939         Remove the using directives for the std namespace throughout the WTF code.
3940         The more explicit std:: nested name specifier should be used instead.
3941
3942         * wtf/MediaTime.cpp:
3943         (WTF::MediaTime::createWithFloat):
3944         (WTF::MediaTime::createWithDouble):
3945         * wtf/text/StringImpl.cpp:
3946         (WTF::StringImpl::create):
3947         (WTF::StringImpl::lower):
3948         (WTF::StringImpl::upper):
3949         (WTF::StringImpl::foldCase):
3950         (WTF::StringImpl::find):
3951         (WTF::StringImpl::findIgnoringCase):
3952         (WTF::reverseFindInner):
3953         (WTF::StringImpl::reverseFind):
3954         (WTF::reverseFindIgnoringCaseInner):
3955         (WTF::StringImpl::reverseFindIgnoringCase):
3956         (WTF::StringImpl::replace):
3957         (WTF::StringImpl::utf8ForCharacters):
3958         (WTF::StringImpl::utf8ForRange):
3959         * wtf/text/WTFString.cpp:
3960         (WTF::String::append):
3961         (WTF::String::appendInternal):
3962         (WTF::String::insert):
3963         (WTF::String::substringSharingImpl):
3964         (WTF::String::fromUTF8):
3965         (WTF::toIntegralType):
3966         * wtf/win/RunLoopWin.cpp:
3967
3968 2014-01-03  Mark Hahnenberg  <mhahnenberg@apple.com>
3969
3970         DoublyLinkedLists can't be concatenated
3971         https://bugs.webkit.org/show_bug.cgi?id=125976
3972
3973         Reviewed by Filip Pizlo.
3974
3975         * wtf/DoublyLinkedList.h:
3976         (WTF::DoublyLinkedList<T>::append):
3977
3978 2014-01-04  Zan Dobersek  <zdobersek@igalia.com>
3979
3980         Explicitly use the std:: nested name specifier when using std::pair, std::make_pair
3981         https://bugs.webkit.org/show_bug.cgi?id=126439
3982
3983         Reviewed by Andreas Kling.
3984
3985         * wtf/VectorTraits.h: Stop bringing std::pair into the current scope.
3986
3987 2014-01-02  Gavin Barraclough  <barraclough@apple.com>
3988
3989         Refactor NSActivity handling code from ChildProcess to UserActivity
3990         https://bugs.webkit.org/show_bug.cgi?id=126330
3991
3992         Reviewed by Sam Weinig.
3993
3994         UserActivity is a mechanism to express to the operating system (where appropriate)
3995         that a user initiated activity is taking place, and as such that resources should be
3996         made available to the process accordingly.
3997
3998         Currently we hold a single NSActivity, at the WebKit layer. This refactoring allows us
3999         to hold different activity tokens for different user actions (which simplifies the
4000         handling, and aides debugging since the token can more accurately express the activity
4001         taking place), and also will allow us to avoid the layering difficulty of calling back
4002         up the stack to WebKit to register that an activity is taking place.
4003
4004         * wtf/Platform.h:
4005             - added HAVE_NS_ACTIVITY.
4006
4007 2013-12-30  Commit Queue  <commit-queue@webkit.org>
4008
4009         Unreviewed, rolling out r161157, r161158, r161160, r161161,
4010         r161163, and r161165.
4011         http://trac.webkit.org/changeset/161157
4012         http://trac.webkit.org/changeset/161158
4013         http://trac.webkit.org/changeset/161160
4014         http://trac.webkit.org/changeset/161161
4015         http://trac.webkit.org/changeset/161163
4016         http://trac.webkit.org/changeset/161165
4017         https://bugs.webkit.org/show_bug.cgi?id=126332
4018
4019         Broke WebKit2 on Mountain Lion (Requested by ap on #webkit).
4020
4021         * GNUmakefile.list.am:
4022         * WTF.vcxproj/WTF.vcxproj:
4023         * WTF.vcxproj/WTF.vcxproj.filters:
4024         * WTF.xcodeproj/project.pbxproj:
4025         * wtf/CMakeLists.txt:
4026         * wtf/Forward.h:
4027         * wtf/PlatformWin.cmake:
4028         * wtf/threads/BinarySemaphore.cpp: Added.
4029         (WTF::BinarySemaphore::BinarySemaphore):
4030         (WTF::BinarySemaphore::~BinarySemaphore):
4031         (WTF::BinarySemaphore::signal):
4032         (WTF::BinarySemaphore::wait):
4033         * wtf/threads/BinarySemaphore.h: Added.
4034         (WTF::BinarySemaphore::event):
4035         * wtf/threads/win/BinarySemaphoreWin.cpp: Added.
4036         (WTF::BinarySemaphore::BinarySemaphore):
4037         (WTF::BinarySemaphore::~BinarySemaphore):
4038         (WTF::BinarySemaphore::signal):
4039         (WTF::BinarySemaphore::wait):
4040
4041 2013-12-30  Anders Carlsson  <andersca@apple.com>
4042
4043         Replace yield() and pauseBriefly() with std::this_thread::yield()
4044         https://bugs.webkit.org/show_bug.cgi?id=126105
4045
4046         Reviewed by Sam Weinig.
4047
4048         * wtf/ByteSpinLock.h:
4049         (WTF::ByteSpinLock::lock):
4050         * wtf/Threading.h:
4051         * wtf/ThreadingPrimitives.h:
4052         * wtf/ThreadingPthreads.cpp:
4053         * wtf/ThreadingWin.cpp:
4054
4055 2013-12-30  Sam Weinig  <sam@webkit.org>
4056
4057         Remove unnecessary non-const overload in IteratorPair
4058         https://bugs.webkit.org/show_bug.cgi?id=126314
4059
4060         Reviewed by Anders Carlsson.
4061
4062         * wtf/IteratorPair.h:
4063
4064 2013-12-30  Sam Weinig  <sam@webkit.org>
4065
4066         Remove WTF's BinarySemaphore
4067         https://bugs.webkit.org/show_bug.cgi?id=126310
4068
4069         Reviewed by Anders Carlsson.
4070
4071         It's unused. Also remove the now empty wtf/threads directory.
4072
4073         * GNUmakefile.list.am:
4074         * WTF.vcxproj/WTF.vcxproj:
4075         * WTF.vcxproj/WTF.vcxproj.filters:
4076         * WTF.xcodeproj/project.pbxproj:
4077         * wtf/CMakeLists.txt:
4078         * wtf/Forward.h:
4079         * wtf/PlatformWin.cmake:
4080         * wtf/threads: Removed.
4081         * wtf/threads/BinarySemaphore.cpp: Removed.
4082         * wtf/threads/BinarySemaphore.h: Removed.
4083         * wtf/threads/win: Removed.
4084         * wtf/threads/win/BinarySemaphoreWin.cpp: Removed.
4085
4086 2013-12-30  Roger Fong  <roger_fong@apple.com>
4087
4088         [Windows] Unreviewed build fix following r160959.
4089
4090         * wtf/Platform.h:
4091
4092 2013-12-30  Anders Carlsson  <andersca@apple.com>
4093
4094         Replace WTF::ThreadingOnce with std::call_once
4095         https://bugs.webkit.org/show_bug.cgi?id=126215
4096
4097         Reviewed by Sam Weinig.
4098
4099         * GNUmakefile.list.am:
4100         * wtf/CompilationThread.cpp:
4101         (WTF::initializeCompilationThreads):
4102         * wtf/ThreadingOnce.h: Removed.
4103
4104 2013-12-26  Sam Weinig  <sam@webkit.org>
4105
4106         Move FilterIterator and IteratorPair to WTF and reimplement HashMap::keys() and HashMap::values() using IteratorPair
4107         https://bugs.webkit.org/show_bug.cgi?id=126253
4108
4109         Reviewed by Anders Carlsson.
4110
4111         * GNUmakefile.list.am:
4112         * WTF.vcxproj/WTF.vcxproj:
4113         * WTF.vcxproj/WTF.vcxproj.filters:
4114         * WTF.xcodeproj/project.pbxproj:
4115         * wtf/CMakeLists.txt:
4116         Add new files.
4117
4118         * wtf/HashMap.h:
4119         * wtf/RefPtrHashMap.h:
4120         Remove the old implementation of keys() and values() and replace it with one
4121         that uses IteratorPair.
4122         
4123         * wtf/FilterIterator.h: Copied from Source/WebKit2/Shared/FilterIterator.h.
4124         * wtf/IteratorPair.h: Copied from Source/WebKit2/Shared/IteratorPair.h.
4125
4126 2013-12-27  Daniel Bates  <dabates@apple.com>
4127
4128         [iOS] Upstream WebCore/page changes
4129         https://bugs.webkit.org/show_bug.cgi?id=126180
4130
4131         Reviewed by Darin Adler.
4132
4133         * wtf/FeatureDefines.h: Define ENABLE_IOS_TOUCH_EVENTS to be enabled by default
4134         when building iOS with ENABLE(TOUCH_EVENTS).
4135
4136 2013-12-25  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
4137
4138         [Nix] Building with DRAG_SUPPORT enabled
4139         https://bugs.webkit.org/show_bug.cgi?id=126233
4140
4141         Reviewed by Daniel Bates.
4142
4143         * wtf/nix/FeatureDefinesNix.h:
4144
4145 2013-12-24  Commit Queue  <commit-queue@webkit.org>
4146
4147         Unreviewed, rolling out r160959.
4148         http://trac.webkit.org/changeset/160959
4149         https://bugs.webkit.org/show_bug.cgi?id=126222
4150
4151         Caused Windows build to fail (Requested by rfong on #webkit).
4152
4153         * wtf/ByteSpinLock.h:
4154         (WTF::ByteSpinLock::lock):
4155         * wtf/Threading.h:
4156         * wtf/ThreadingPrimitives.h:
4157         (WTF::pauseBriefly):
4158         * wtf/ThreadingPthreads.cpp:
4159         (WTF::yield):
4160         * wtf/ThreadingWin.cpp:
4161         (WTF::yield):
4162
4163 2013-12-23  Benjamin Poulain  <bpoulain@apple.com>
4164
4165         Fix the build after r161031
4166
4167         I enabled ENABLE_CSS_SELECTOR_JIT by accident.
4168
4169         * wtf/Platform.h:
4170
4171 2013-12-23  Zan Dobersek  <zdobersek@igalia.com>
4172
4173         [GTK] Clean up compiler optimizations flags for libWTF, libJSC
4174         https://bugs.webkit.org/show_bug.cgi?id=126157
4175
4176         Reviewed by Gustavo Noronha Silva.
4177
4178         * GNUmakefile.am: Remove the -fstrict-aliasing and -O3 compiler flags for libWTF.la. -O3 gets
4179         overridden by -O2 that's listed in CXXFLAGS (or -O0 in case of debug builds) and -fstrict-aliasing
4180         is enabled when -O2 is used (and shouldn't be enabled in debug builds anyway).
4181
4182 2013-12-20  Anders Carlsson  <andersca@apple.com>
4183
4184         Replace yield() and pauseBriefly() with std::this_thread::yield()
4185         https://bugs.webkit.org/show_bug.cgi?id=126105
4186
4187         Reviewed by Sam Weinig.
4188
4189         * wtf/ByteSpinLock.h:
4190         (WTF::ByteSpinLock::lock):
4191         * wtf/Threading.h:
4192         * wtf/ThreadingPrimitives.h:
4193         * wtf/ThreadingPthreads.cpp:
4194         * wtf/ThreadingWin.cpp:
4195
4196 2013-12-20  Anders Carlsson  <andersca@apple.com>
4197
4198         Speed up case folding for 8-bit strings
4199         https://bugs.webkit.org/show_bug.cgi?id=126098
4200
4201         Reviewed by Geoffrey Garen.
4202
4203         Add a case folding lookup table for 8-bit strings and use it instead of calling down to u_foldCase.
4204         On a simple microbenchmark using a lookup table is about 15x faster.
4205
4206         * wtf/text/StringHash.h:
4207         (WTF::CaseFoldingHash::foldCase):
4208         * wtf/text/StringImpl.cpp:
4209         (WTF::equalIgnoringCase):
4210         * wtf/text/StringImpl.h:
4211
4212 2013-12-20  Myles C. Maxfield  <mmaxfield@apple.com>
4213
4214         Faster implementation of text-decoration-skip: ink
4215         https://bugs.webkit.org/show_bug.cgi?id=125718
4216
4217         Reviewed by Simon Fraser.
4218
4219         This creates a new preprocessor define, CSS3_TEXT_DECORATION_SKIP_INK,
4220         which enables the use of the text-decoration-skip: ink CSS value.
4221         Creating this new value simplifies the logic about when to enable the
4222         codepath for this CSS value.
4223
4224         * wtf/Platform.h:
4225
4226 2013-12-20  Simon Fraser  <simon.fraser@apple.com>
4227
4228         Change "threaded scrolling" terminology to "asynchronous scrolling"
4229         https://bugs.webkit.org/show_bug.cgi?id=126094
4230
4231         Reviewed by Tim Horton.
4232
4233         Rename ENABLE_THREADED_SCROLLING to ENABLE_ASYNC_SCROLLING.
4234
4235         * wtf/FeatureDefines.h:
4236
4237 2013-12-20  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>
4238
4239         Build fails in debug mode after r160834.
4240         https://bugs.webkit.org/show_bug.cgi?id=126059
4241
4242         Reviewed by Csaba Osztrogonác.
4243
4244         Debug mode build failed due to comparing signed and unsigned in
4245         ASSERT(). Now both values are unsigned.
4246
4247         * wtf/dtoa/double-conversion.cc:
4248
4249 2013-12-19  Alex Christensen  <achristensen@webkit.org>
4250
4251         Final preparations for GStreamer on Windows.
4252         https://bugs.webkit.org/show_bug.cgi?id=125958
4253
4254         Reviewed by Benjamin Poulain.
4255
4256         * WTF.vcxproj/WTFDebugWinCairo.props:
4257         * WTF.vcxproj/WTFReleaseWinCairo.props:
4258         Include WinCairo.props.
4259         * wtf/Platform.h:
4260         Use GLib and GStreamer on WinCairo with video.
4261
4262 2013-12-18  Daniel Bates  <dabates@apple.com>
4263
4264         WTF, JavaScriptCore fails to build with trunk clang: operators new, new[],
4265         delete, delete[] cannot be declared inline
4266         https://bugs.webkit.org/show_bug.cgi?id=124186
4267         <rdar://problem/15644039>
4268
4269         Reviewed by Geoffrey Garen and Anders Carlsson.
4270
4271         Following <http://llvm.org/viewvc/llvm-project?view=revision&revision=193044>
4272         (http://llvm.org/bugs/show_bug.cgi?id=17591>), Clang emits warnings when
4273         operator new, delete are inlined. Such definitions cannot be inline per
4274         replacement.functions (17.6.4.6/3) of the C++ standard. For now,
4275         disable these warnings instead of exporting these functions.
4276
4277         * wtf/FastMalloc.h:
4278
4279 2013-12-19  Hugo Parente Lima  <hugo.lima@openbossa.org>
4280
4281         WTF fails to compile with gcc 4.8.2 and -Werror=array-bounds
4282         https://bugs.webkit.org/show_bug.cgi?id=125936
4283
4284         Reviewed by Anders Carlsson.
4285
4286         * wtf/dtoa/double-conversion.cc: Use a unsigned instead of int on buffer_pos type.
4287
4288 2013-12-19  Peter Szanka  <h868064@stud.u-szeged.hu>
4289
4290         Delete RVCT related code parts.
4291         https://bugs.webkit.org/show_bug.cgi?id=125626
4292
4293         Reviewed by Csaba Osztrogonác.
4294
4295         * wtf/Compiler.h: follow-up fix for r160648, remove an unnecessary comment.
4296
4297 2013-12-18  Alex Christensen  <achristensen@webkit.org>
4298
4299         [WinCairo] Preparation for GStreamer on Windows.
4300         https://bugs.webkit.org/show_bug.cgi?id=125946
4301
4302         Reviewed by Brent Fulgham.
4303
4304         * WTF.vcxproj/WTF.vcxproj:
4305         Use new GStreamer property sheets for WinCairo.
4306
4307 2013-12-18  Mark Hahnenberg  <mhahnenberg@apple.com>
4308
4309         DFG should have a separate StoreBarrier node
4310         https://bugs.webkit.org/show_bug.cgi?id=125530
4311
4312         Reviewed by Filip Pizlo.
4313
4314         * wtf/Platform.h: Added an #define for ENABLE(GGC) which will be used for landing things related to GenGC.
4315
4316 2013-12-16  Daniel Bates  <dabates@apple.com>
4317
4318         [iOS] Upstream WebCore/html changes
4319         https://bugs.webkit.org/show_bug.cgi?id=125765
4320
4321         Reviewed by Darin Adler.
4322
4323         Defined ENABLE_IOS_AUTOCORRECT_AND_AUTOCAPITALIZE, enabled by default on iOS.
4324
4325         * wtf/FeatureDefines.h:
4326
4327 2013-12-17  Alex Christensen  <achristensen@webkit.org>
4328