[WebAssembly] Move type conversion code of JSToWasm return type to JS wasm wrapper
[WebKit-https.git] / Source / WTF / ChangeLog
1 2018-09-30  Caio Lima  <ticaiolima@gmail.com>
2
3         [BigInt] BigInt.proptotype.toString is broken when radix is power of 2
4         https://bugs.webkit.org/show_bug.cgi?id=190033
5
6         Reviewed by Yusuke Suzuki.
7
8         * wtf/MathExtras.h:
9         (WTF::ctz32):
10
11 2018-09-28  Jer Noble  <jer.noble@apple.com>
12
13         Refactoring: eliminate raw pointer usage in Fullscreen code
14         https://bugs.webkit.org/show_bug.cgi?id=188747
15         <rdar://problem/43541164>
16
17         Reviewed by Alex Christensen.
18
19         * WTF.xcodeproj/project.pbxproj:
20         * wtf/WeakPtrContainer.h: Added.
21
22 2018-09-28  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
23
24         [WTF] Make isMainThread more reliable
25         https://bugs.webkit.org/show_bug.cgi?id=189880
26
27         Reviewed by Mark Lam.
28
29         isMainThread() relied on Thread::current(). This API becomes broken in Windows
30         when the Thread is about to be destroyed since TLS is already cleared. This causes
31         a bug since `isMainThread()` is called in Thread::didExit in Windows.
32
33         This patch makes this `isMainThread` more reliable in all the platforms. In Windows,
34         we use `Thread::currentID()` instead of `Thread::current()` since `Thread::currentID`
35         uses Win32 GetCurrentThreadId directly. In the other system, we use `pthread_main_np`
36         or `pthread_self` instead.
37
38         We also move `holdLock` code inside `if (shouldRemoveThreadFromThreadGroup())`. If
39         the other thread takes a mutex and destroyed, this `holdLock` waits forever. This problem
40         only happens in Windows since Windows calls TLS destructor for the main thread.
41
42         * WTF.xcodeproj/project.pbxproj:
43         * wtf/MainThread.cpp:
44         (WTF::initializeMainThread):
45         (): Deleted.
46         (WTF::isMainThread): Deleted.
47         (WTF::isMainThreadIfInitialized): Deleted.
48         * wtf/Platform.h:
49         * wtf/PlatformMac.cmake:
50         * wtf/Threading.cpp:
51         (WTF::Thread::didExit):
52         * wtf/cocoa/MainThreadCocoa.mm: Renamed from Source/WTF/wtf/mac/MainThreadMac.mm.
53         * wtf/generic/MainThreadGeneric.cpp:
54         (WTF::initializeMainThreadPlatform):
55         (WTF::isMainThread):
56         (WTF::isMainThreadIfInitialized):
57         * wtf/win/MainThreadWin.cpp:
58         (WTF::initializeMainThreadPlatform):
59         (WTF::isMainThread):
60         (WTF::isMainThreadIfInitialized):
61
62 2018-09-28  Commit Queue  <commit-queue@webkit.org>
63
64         Unreviewed, rolling out r236605.
65         https://bugs.webkit.org/show_bug.cgi?id=190087
66
67         caused three API test timeouts (Requested by jernoble on
68         #webkit).
69
70         Reverted changeset:
71
72         "Refactoring: eliminate raw pointer usage in Fullscreen code"
73         https://bugs.webkit.org/show_bug.cgi?id=188747
74         https://trac.webkit.org/changeset/236605
75
76 2018-09-28  Brian Burg  <bburg@apple.com>
77
78         Replace recently added line comments in Compiler.h
79         https://bugs.webkit.org/show_bug.cgi?id=190062
80         <rdar://problem/44838618>
81
82         Reviewed by Joseph Pecoraro.
83
84         This breaks some Apple-internal tooling. For now, work around it by
85         changing the comment style. On the other side, the issue will be fixed
86         more permanently by adopting the approach from r230213.
87
88         * wtf/Compiler.h: Use multiline comments.
89
90 2018-09-28  Jer Noble  <jer.noble@apple.com>
91
92         Refactoring: eliminate raw pointer usage in Fullscreen code
93         https://bugs.webkit.org/show_bug.cgi?id=188747
94         <rdar://problem/43541164>
95
96         Reviewed by Alex Christensen.
97
98         * WTF.xcodeproj/project.pbxproj:
99         * wtf/WeakPtrContainer.h: Added.
100
101 2018-09-28  Koby Boyango  <koby.b@mce.systems>
102
103         [WTF] Add ExternalStringImpl, a StringImpl for user controlled buffers
104         https://bugs.webkit.org/show_bug.cgi?id=189991
105
106         Reviewed by Yusuke Suzuki.
107
108         * WTF.xcodeproj/project.pbxproj:
109         * wtf/CMakeLists.txt:
110         * wtf/text/ExternalStringImpl.cpp: Added.
111         * wtf/text/ExternalStringImpl.h: Added.
112         * wtf/text/StringImpl.cpp:
113         * wtf/text/StringImpl.h:
114
115 2018-09-27  Saam barati  <sbarati@apple.com>
116
117         Verify the contents of AssemblerBuffer on arm64e
118         https://bugs.webkit.org/show_bug.cgi?id=190057
119         <rdar://problem/38916630>
120
121         Reviewed by Mark Lam.
122
123         * wtf/PtrTag.h:
124         (WTF::tagInt):
125
126 2018-09-27  Jer Noble  <jer.noble@apple.com>
127
128         MediaPlayer should have mediaPlayerWaitingForKeyChanged() / bool waitingForKey() accessor
129         https://bugs.webkit.org/show_bug.cgi?id=189951
130
131         Reviewed by Eric Carlson.
132
133         Templated functions should take r-value references, as they have perfect type deduction for
134         all parameter types; references, l-value references, and r-value references in template function
135         parameters have special type deduction semantics.
136         See: <https://en.cppreference.com/w/cpp/language/reference#Forwarding_references>
137
138         Previously, const reference parameters would be copied when passed into anyOf(), and containers
139         of Ref<> would generate compile errors when passed into anyOf, as they cannot be copied. Now,
140         with r-value reference types in template parameters, a const reference is mapped to a const reference,
141         a non-const reference is mapped to a non-const reference, and a r-value reference is mapped to
142         an r-value reference.
143
144         * wtf/Algorithms.h:
145         (WTF::forEach):
146         (WTF::anyOf):
147         (WTF::allOf):
148
149 2018-09-25  John Wilander  <wilander@apple.com>
150
151         Change from HAVE(CFNETWORK_STORAGE_PARTITIONING) to ENABLE(RESOURCE_LOAD_STATISTICS)
152         https://bugs.webkit.org/show_bug.cgi?id=189959
153         <rdar://problem/44767642>
154
155         Reviewed by Chris Dumez.
156
157         * wtf/Platform.h:
158             Enables RESOURCE_LOAD_STATISTICS for Cocoa platforms.
159
160 2018-09-24  Fujii Hironori  <Hironori.Fujii@sony.com>
161
162         Rename WTF_COMPILER_GCC_OR_CLANG to WTF_COMPILER_GCC_COMPATIBLE
163         https://bugs.webkit.org/show_bug.cgi?id=189733
164
165         Reviewed by Michael Catanzaro.
166
167         Clang for Windows build enables WTF_COMPILER_CLANG and
168         WTF_COMPILER_MSVC, but disables WTF_COMPILER_GCC_OR_CLANG. It is
169         strange WTF_COMPILER_GCC_OR_CLANG is not enabled even though
170         WTF_COMPILER_CLANG is enabled. However, Clang for Windows imitates
171         MSVC, and codes for COMPILER(GCC_OR_CLANG) are for non MSVC. At
172         least at the moment, it is not feasible to define
173         WTF_COMPILER_GCC_OR_CLANG for Clang for Windows.
174
175         To solve the issue, this change renames WTF_COMPILER_GCC_OR_CLANG
176         to WTF_COMPILER_GCC_COMPATIBLE.
177
178         As an exception, I'd like to use IGNORE_WARNINGS_* macros even in
179         Clang for Windows builds.
180
181         * wtf/Assertions.cpp: Replaced COMPILER(GCC_OR_CLANG) with COMPILER(GCC_COMPATIBLE).
182         * wtf/Assertions.h: Ditto.
183         * wtf/Atomics.h: Ditto.
184         * wtf/CheckedArithmetic.h: Ditto.
185         * wtf/FastMalloc.h: Ditto.
186         * wtf/MathExtras.h: Ditto.
187         * wtf/Platform.h: Ditto.
188         * wtf/StdLibExtras.h: Ditto.
189         * wtf/Vector.h: Ditto.
190         * wtf/text/ASCIIFastPath.h: Ditto.
191         * wtf/Compiler.h:  Ditto. Replaced "COMPILER(GCC_OR_CLANG)" with "COMPILER(GCC) || COMPILER(CLANG)" of IGNORE_WARNINGS_* macros.
192
193 2018-09-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
194
195         [JSC] Enable LLInt ASM interpreter on X64 and ARM64 in non JIT configuration
196         https://bugs.webkit.org/show_bug.cgi?id=189778
197
198         Reviewed by Keith Miller.
199
200         This patch adds ENABLE(C_LOOP) which indicates we use CLoop as the interpreter.
201         Previously, we used !ENABLE(JIT) for this configuration. But now, we have
202         a build configuration that has LLInt ASM interpreter (not CLoop) and !ENABLE(JIT).
203
204         We enable LLInt ASM interpreter for non JIT environment in X86_64 and ARM64 architectures.
205         And we enable ENABLE(ASSEMBLER) for non JIT environment since it offers machine register
206         information which is used for LLInt and SamplingProfiler.
207
208         * wtf/Platform.h:
209
210 2018-09-21  Keith Miller  <keith_miller@apple.com>
211
212         Add Promise SPI
213         https://bugs.webkit.org/show_bug.cgi?id=189809
214
215         Reviewed by Saam Barati.
216
217         Fix issue where creating a JSContextRef off the main thread before
218         creating initializing the main thread would cause an assertion
219         failure.
220
221         * wtf/MainThread.cpp:
222         (WTF::isMainThreadIfInitialized):
223         * wtf/MainThread.h:
224         * wtf/mac/MainThreadMac.mm:
225         (WTF::isMainThreadIfInitialized):
226         * wtf/text/cf/StringImplCF.cpp:
227         (WTF::StringImpl::createCFString):
228
229 2018-09-21  Ryan Haddad  <ryanhaddad@apple.com>
230
231         Unreviewed, rolling out r236359.
232
233         Broke the Windows build.
234
235         Reverted changeset:
236
237         "Add Promise SPI"
238         https://bugs.webkit.org/show_bug.cgi?id=189809
239         https://trac.webkit.org/changeset/236359
240
241 2018-09-21  Keith Miller  <keith_miller@apple.com>
242
243         Add Promise SPI
244         https://bugs.webkit.org/show_bug.cgi?id=189809
245
246         Reviewed by Saam Barati.
247
248         Fix issue where creating a JSContextRef off the main thread before
249         creating initializing the main thread would cause an assertion
250         failure.
251
252         * wtf/MainThread.cpp:
253         (WTF::isMainThreadIfInitialized):
254         * wtf/MainThread.h:
255         * wtf/mac/MainThreadMac.mm:
256         (WTF::isMainThreadIfInitialized):
257         * wtf/text/cf/StringImplCF.cpp:
258         (WTF::StringImpl::createCFString):
259
260 2018-09-20  Fujii Hironori  <Hironori.Fujii@sony.com>
261
262         [Win][Clang] UNUSED_PARAM(this) causes compilation error of "cannot take the address of an rvalue of type"
263         https://bugs.webkit.org/show_bug.cgi?id=189732
264
265         Reviewed by Per Arne Vollan.
266
267         Clang for Windows can't compile the MSVC workaround of
268         UNUSED_PARAM which has been introduced for Windows CE and Visual
269         Studio 10. I think it's safe just to remove it.
270
271         * wtf/Compiler.h: Removed the code for COMPILER(MSVC).
272
273 2018-09-20  Alex Christensen  <achristensen@webkit.org>
274
275         Unreviewed, rolling out r235976.
276
277         Broke ARM
278
279         Reverted changeset:
280
281         "Use a Variant instead of a union in CSSSelector"
282         https://bugs.webkit.org/show_bug.cgi?id=188559
283         https://trac.webkit.org/changeset/235976
284
285 2018-09-17  Yusuke Suzuki  <utatane.tea@gmail.com>
286
287         [WTF] Use Semaphore and BinarySemaphore instead of dispatch_semaphore_t
288         https://bugs.webkit.org/show_bug.cgi?id=185339
289
290         Reviewed by Mark Lam.
291
292         This patch adds WTF::Semaphore, which is based on WTF::Lock and WTF::Condition.
293
294         * WTF.xcodeproj/project.pbxproj:
295         * wtf/CMakeLists.txt:
296         * wtf/Semaphore.h: Added.
297         (WTF::Semaphore::Semaphore):
298         (WTF::Semaphore::signal):
299         (WTF::Semaphore::waitUntil):
300         (WTF::Semaphore::waitFor):
301         (WTF::Semaphore::wait):
302         * wtf/generic/WorkQueueGeneric.cpp:
303         (WorkQueue::platformInitialize):
304         * wtf/threads/BinarySemaphore.cpp:
305         (WTF::BinarySemaphore::waitUntil):
306         (WTF::BinarySemaphore::wait): Deleted.
307         * wtf/threads/BinarySemaphore.h:
308         (WTF::BinarySemaphore::waitFor):
309         (WTF::BinarySemaphore::wait):
310         Align the names of the functions to WTF::Condition.
311         Add BinarySemaphore::wait(), which is the same to waitUntil(WallTime::infinity()).
312
313 2018-09-17  Jer Noble  <jer.noble@apple.com>
314
315         Add support for HEVC codec types in Media Capabilities
316         https://bugs.webkit.org/show_bug.cgi?id=189565
317
318         Reviewed by Eric Carlson.
319
320         Extract the toIntegralType template into its own header.
321
322         * wtf/CMakeLists.txt:
323         * wtf/text/StringConversion.h: Added.
324         (isCharacterAllowedInBase):
325         (toIntegralType):
326         * wtf/text/WTFString.cpp:
327
328 2018-09-17  Jer Noble  <jer.noble@apple.com>
329
330         Enable USE_MEDIAREMOTE on iOS
331         https://bugs.webkit.org/show_bug.cgi?id=189096
332
333         Reviewed by Eric Carlson.
334
335         * wtf/Platform.h:
336
337 2018-09-17  Frederic Wang  <fwang@igalia.com>
338
339         Build error in ImageBufferCG when compiled with IOSurfacePool
340         https://bugs.webkit.org/show_bug.cgi?id=189579
341
342         Reviewed by Tim Horton.
343
344         IOSurface.h might be included with different value of IOSURFACE_CANVAS_BACKING_STORE, causing
345         compilation errors when files in the same unified source do not agree on the definition.
346         This patch moves the definition of IOSURFACE_CANVAS_BACKING_STORE from ImageBufferDataCG.h
347         to Platform.h so that IOSURFACE_CANVAS_BACKING_STORE is set to the same value in all files.
348         Finally some minors changes to explicitly declare/define ImageBuffer are performed in order
349         to prevent future issues with Unified build rotating.
350
351         * wtf/Platform.h: Move definition from ImageBufferDataCG.h.
352
353 2018-09-14  Ryan Haddad  <ryanhaddad@apple.com>
354
355         Unreviewed, rolling out r235990.
356
357         Introduced TestWebKitAPI.NowPlayingTest timeouts on iOS
358
359         Reverted changeset:
360
361         "Enable USE_MEDIAREMOTE on iOS"
362         https://bugs.webkit.org/show_bug.cgi?id=189096
363         https://trac.webkit.org/changeset/235990
364
365 2018-09-13  Jer Noble  <jer.noble@apple.com>
366
367         Enable USE_MEDIAREMOTE on iOS
368         https://bugs.webkit.org/show_bug.cgi?id=189096
369
370         Reviewed by Eric Carlson.
371
372         * wtf/Platform.h:
373
374 2018-09-13  Alex Christensen  <achristensen@webkit.org>
375
376         Use a Variant instead of a union in CSSSelector
377         https://bugs.webkit.org/show_bug.cgi?id=188559
378
379         Reviewed by Antti Koivisto.
380
381         * wtf/Variant.h:
382         Add packing macros to make it so Variant-containing structures don't always have 7 bytes of padding per Variant.
383
384 2018-09-12  Guillaume Emont  <guijemont@igalia.com>
385
386         Add IGNORE_WARNING_.* macros
387         https://bugs.webkit.org/show_bug.cgi?id=188996
388
389         Reviewed by Michael Catanzaro.
390
391         * wtf/Assertions.cpp:
392         * wtf/Assertions.h:
393         * wtf/Compiler.h:
394         * wtf/MD5.cpp:
395         (WTF::MD5::MD5):
396         (WTF::MD5::addBytes):
397         (WTF::MD5::checksum):
398         * wtf/PrintStream.cpp:
399         (WTF::PrintStream::printfVariableFormat):
400         * wtf/SHA1.cpp:
401         (WTF::SHA1::SHA1):
402         (WTF::SHA1::addBytes):
403         (WTF::SHA1::computeHash):
404         * wtf/ThreadingPthreads.cpp:
405         * wtf/Vector.h:
406         (WTF::VectorBuffer::endOfBuffer):
407         * wtf/text/WTFString.cpp:
408         (WTF::createWithFormatAndArguments):
409
410 == Rolled over to ChangeLog-2018-09-11 ==