db8d757cdbda9de39a7fd85a28a90f29a85f62fd
[WebKit-https.git] / Tools / ChangeLog
1 2017-10-06  Alex Christensen  <achristensen@webkit.org>
2
3         Add more infrastructure to apply custom header fields to same-origin requests
4         https://bugs.webkit.org/show_bug.cgi?id=177629
5
6         Reviewed by Ryosuke Niwa.
7
8         * TestWebKitAPI/Tests/WebCore/HTTPHeaderField.cpp:
9         (canonicalizeHTTPHeader):
10         (shouldRemainUnchanged):
11         (shouldBeInvalid):
12         (shouldBecome):
13         * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
14         (TEST):
15         (expectHeaders):
16         (-[CustomHeaderFieldsDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]):
17         (-[CustomHeaderFieldsDelegate webView:startURLSchemeTask:]):
18         (-[CustomHeaderFieldsDelegate webView:stopURLSchemeTask:]):
19
20         Test main resource requests, subresource requests, and cross-origin requests.
21
22 2017-10-06  Wenson Hsieh  <wenson_hsieh@apple.com>
23
24         [iOS] Tweak support for classifying form controls (followup to r222487)
25         https://bugs.webkit.org/show_bug.cgi?id=177917
26         <rdar://problem/34820122>
27
28         Reviewed by Dean Jackson.
29
30         Minor cleanup around autofill API tests added in r222487. Additionally, augments some of these API tests to
31         verify that after blurring the focused element, the content view no longer accepts autofill credentials (see
32         WebKit ChangeLog for more details). Also augments tests to verify that the URL in the autofill context matches
33         the document URL.
34
35         * TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:
36
37         Remove the USE(APPLE_INTERNAL_SDK) guard for these API tests.
38
39         (newUIKeyboardLoginCredentialsSuggestion):
40
41         Add a stub implementation of UIKeyboardLoginCredentialsSuggestion. This allows
42         [UIKeyboardLoginCredentialsSuggestion new] to return a nonnull object, which allows these API tests to verify
43         that the credential filling codepath works as intended without any additional UIKit changes. Currently, tests
44         for the value of username and password fields are passing even though the fields are not being populated because
45         the expected string values are null, and the observed value is an empty string. We instead check the literal
46         string values here instead of credentialSuggestion's properties, so that tests verifying the behavior of
47         -insertTextSuggestion: will require username and password inputs to be populated.
48
49         (-[TestInputDelegate _webView:focusShouldStartInputSession:]):
50         (-[AutofillTestView initWithFrame:]):
51         (-[AutofillTestView _autofillInputView]):
52         (-[AutofillTestView textInputHasAutofillContext]):
53         (TestWebKitAPI::TEST):
54
55         Add an additional API test to verify that programmatic focus without user interaction (and also without testing
56         overrides) does not activate autofill.
57
58         (createUIKeyboardLoginCredentialsSuggestion): Deleted.
59         (-[WKWebView _privateTextInput]): Deleted.
60         * TestWebKitAPI/ios/UIKitSPI.h:
61
62         Minor gardening to remove iOS version >= 11 guards that are now unnecessary. Additionally, add some more private
63         header imports (with corresponding interface definitions for building and running with the public SDK).
64
65 2017-10-06  Antti Koivisto  <antti@apple.com>
66
67         Minor WeakPtr improvements
68         https://bugs.webkit.org/show_bug.cgi?id=177958
69
70         Reviewed by Sam Weinig.
71
72         * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
73         (TestWebKitAPI::TEST):
74         (TestWebKitAPI::Base::createWeakPtr): Deleted.
75
76 2017-10-06  Carlos Garcia Campos  <cgarcia@igalia.com>
77
78         Unreviewed. Fix parsing of GTK unit tests output in bot configuration.
79
80         * BuildSlaveSupport/build.webkit.org-config/master.cfg:
81         (RunGtkAPITests.commandComplete): Remove trailing ':' from the regular expression.
82
83 2017-10-06  Charles Turner  <cturner@igalia.com>
84
85         Disable bmalloc when running Valgrind
86         https://bugs.webkit.org/show_bug.cgi?id=177923
87
88         Reviewed by Carlos Alberto Lopez Perez.
89
90         * Scripts/webkitpy/port/gtk.py:
91         (GtkPort.setup_environ_for_server):
92
93 2017-10-06  Zan Dobersek  <zdobersek@igalia.com>
94
95         Implement TestController::platformContext() for WPE, returning the
96         m_context pointer as the GTK+ port does. This fixes the crashes on
97         the WPE testers.
98
99         Rubber-stamped by Carlos Garcia Campos.
100
101         * WebKitTestRunner/wpe/TestControllerWPE.cpp:
102         (WTR::TestController::platformContext):
103
104 2017-10-05  Carlos Garcia Campos  <cgarcia@igalia.com>
105
106         [GTK][WPE] Add API to configure and enable resource load statistics
107         https://bugs.webkit.org/show_bug.cgi?id=177943
108
109         Reviewed by Michael Catanzaro.
110
111         Add a command line option to enable intelligent tracking prevention to MiniBrowser and tests cases to check the
112         new API.
113
114         * MiniBrowser/gtk/main.c:
115         (main):
116         * TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:
117         (serverCallback):
118         (testWebsiteDataConfiguration):
119         (testWebsiteDataEphemeral):
120         (testWebsiteDataResourceLoadStats):
121         (beforeAll):
122         * TestWebKitAPI/glib/WebKitGLib/TestMain.h:
123         (Test::Test):
124         * TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:
125         (directoryChangedCallback):
126         (WebViewTest::waitUntilFileExists):
127         * TestWebKitAPI/glib/WebKitGLib/WebViewTest.h:
128
129 2017-10-05  Carlos Garcia Campos  <cgarcia@igalia.com>
130
131         [GTK][WPE] All resource load statistics tests added in r212183 crash in GTK bots, timeout in GTK and WPE bots since r219049
132         https://bugs.webkit.org/show_bug.cgi?id=168171
133
134         Reviewed by Chris Dumez.
135
136         Implement all resource load statistics functions in TestController using the C API. Also enable the FileMonitor
137         unit test. This test requires a platform implementation of Util::run(), so I've added UtilitiesGLib.cpp with an
138         iplementation common to glib based ports using WTF RunLoop abstraction.
139
140         * TestWebKitAPI/PlatformGTK.cmake:
141         * TestWebKitAPI/PlatformWPE.cmake:
142         * TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:
143         * TestWebKitAPI/glib/UtilitiesGLib.cpp: Copied from Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h.
144         (TestWebKitAPI::Util::run):
145         (TestWebKitAPI::Util::spinRunLoop):
146         (TestWebKitAPI::Util::sleep):
147         * TestWebKitAPI/gtk/PlatformUtilitiesGtk.cpp:
148         * TestWebKitAPI/wpe/PlatformUtilitiesWPE.cpp:
149         * WebKitTestRunner/TestController.cpp:
150         (WTR::TestController::platformAdjustContext):
151         (WTR::TestController::setStatisticsLastSeen):
152         (WTR::TestController::setStatisticsPrevalentResource):
153         (WTR::ResourceStatisticsCallbackContext::ResourceStatisticsCallbackContext):
154         (WTR::resourceStatisticsCallback):
155         (WTR::TestController::isStatisticsPrevalentResource):
156         (WTR::TestController::setStatisticsHasHadUserInteraction):
157         (WTR::TestController::isStatisticsHasHadUserInteraction):
158         (WTR::TestController::setStatisticsGrandfathered):
159         (WTR::TestController::isStatisticsGrandfathered):
160         (WTR::TestController::setStatisticsSubframeUnderTopFrameOrigin):
161         (WTR::TestController::setStatisticsSubresourceUnderTopFrameOrigin):
162         (WTR::TestController::setStatisticsSubresourceUniqueRedirectTo):
163         (WTR::TestController::setStatisticsTimeToLiveUserInteraction):
164         (WTR::TestController::setStatisticsTimeToLiveCookiePartitionFree):
165         (WTR::TestController::statisticsProcessStatisticsAndDataRecords):
166         (WTR::TestController::statisticsUpdateCookiePartitioning):
167         (WTR::TestController::statisticsSetShouldPartitionCookiesForHost):
168         (WTR::TestController::statisticsSubmitTelemetry):
169         (WTR::TestController::setStatisticsNotifyPagesWhenDataRecordsWereScanned):
170         (WTR::TestController::setStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval):
171         (WTR::TestController::setStatisticsNotifyPagesWhenTelemetryWasCaptured):
172         (WTR::TestController::setStatisticsMinimumTimeBetweenDataRecordsRemoval):
173         (WTR::TestController::setStatisticsGrandfatheringTime):
174         (WTR::TestController::setStatisticsMaxStatisticsEntries):
175         (WTR::TestController::setStatisticsPruneEntriesDownTo):
176         (WTR::TestController::statisticsClearInMemoryAndPersistentStore):
177         (WTR::TestController::statisticsClearInMemoryAndPersistentStoreModifiedSinceHours):
178         (WTR::TestController::statisticsClearThroughWebsiteDataRemovalCallback):
179         (WTR::TestController::statisticsClearThroughWebsiteDataRemoval):
180         (WTR::TestController::statisticsResetToConsistentState):
181         * WebKitTestRunner/TestController.h:
182
183 2017-10-05  Jer Noble  <jer.noble@apple.com>
184
185         [Cocoa] Enable ENABLE_ENCRYPTED_MEDIA build-time setting
186         https://bugs.webkit.org/show_bug.cgi?id=177261
187
188         Reviewed by Eric Carlson.
189
190         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
191
192 2017-10-05  Alex Christensen  <achristensen@webkit.org>
193
194         Add ObjC equivalent of WKPageNavigationClient.didChangeBackForwardList
195         https://bugs.webkit.org/show_bug.cgi?id=177966
196         <rdar://problem/22387135>
197
198         Reviewed by Tim Horton.
199
200         * TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:
201         (-[ListItemDelegate _webView:backForwardListItemAdded:removed:]):
202         (-[ListItemDelegate webView:didFinishNavigation:]):
203         (TEST):
204
205 2017-10-04  Megan Gardner  <megan_gardner@apple.com>
206
207         check-webkit-style erroneously requires a space between the carrot and brace in obj-c blocks.
208         https://bugs.webkit.org/show_bug.cgi?id=177897
209
210         Reviewed by Dan Bernstein and Jonathan Bedard.
211
212         Remove the check for a space between ^ and {, 
213         as this is valid and expected Obj-C. Now check to make sure there is
214         no space at all between ^ and {, and also that there is a space between
215         the end of an argument list and the {.
216
217         * Scripts/webkitpy/style/checkers/cpp.py:
218         (regex_for_lambdas_and_blocks):
219
220 2017-10-05  Carlos Garcia Campos  <cgarcia@igalia.com>
221
222         Unreviewed. Run WebKit2 C API tests in GTK+ bots again after the last WebKit2 -> WebKit rename.
223
224         * Scripts/run-gtk-tests:
225         (TestRunner):
226         (TestRunner._run_test):
227
228 2017-10-05  Darin Adler  <darin@apple.com>
229
230         Remove additional WebKitSystemInterface remnants
231         https://bugs.webkit.org/show_bug.cgi?id=177948
232
233         Reviewed by Andy Estes.
234
235         * DumpRenderTree/PlatformMac.cmake: Removed code to link the
236         WebKitSystemInterface library. Left in code that points to
237         the WebKitLibraries directory, but maybe that can be removed by
238         someone who is more certain it's no longer needed.
239
240         * Scripts/copy-webkitlibraries-to-product-directory: Removed code
241         to copy and delete WebKitSystemInterface libraries and headers.
242
243         * WebKitTestRunner/PlatformMac.cmake: Removed code to link the
244         WebKitSystemInterface library. Left in code that points to
245         the WebKitLibraries directory, but maybe that can be removed by
246         someone who is more certain it's no longer needed.
247
248 2017-10-05  Saam Barati  <sbarati@apple.com>
249
250         Unreviewed. Try to make debug type profiler tests stop timing out.
251
252         * Scripts/run-jsc-stress-tests:
253
254 2017-10-03  Frederic Wang  <fwang@igalia.com>
255
256         Remove Brotli from Source/ThirdParty
257         https://bugs.webkit.org/show_bug.cgi?id=177804
258
259         Reviewed by Michael Catanzaro.
260
261         * gtk/jhbuild.modules: Build brotli 1.0.1 from the official github repository.
262         * Scripts/webkitpy/style/checker.py: Remove brotli.
263
264 2017-10-04  Alex Christensen  <achristensen@webkit.org>
265
266         Stop linking with WebKitSystemInterface
267         https://bugs.webkit.org/show_bug.cgi?id=177915
268
269         Reviewed by Antti Koivisto.
270
271         * DumpRenderTree/mac/Configurations/Base.xcconfig:
272         * DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
273         * DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig:
274         * DumpRenderTree/mac/Configurations/DumpRenderTreeApp.xcconfig:
275         * WebKitTestRunner/Configurations/Base.xcconfig:
276         * WebKitTestRunner/Configurations/DebugRelease.xcconfig:
277         * WebKitTestRunner/Configurations/InjectedBundle.xcconfig:
278         * WebKitTestRunner/Configurations/WebKitTestRunner.xcconfig:
279         * WebKitTestRunner/Configurations/WebKitTestRunnerApp.xcconfig:
280
281 2017-10-04  Alex Christensen  <achristensen@webkit.org>
282
283         Remove unnecessary includes of WebKitSystemInterface on Cocoa platforms
284         https://bugs.webkit.org/show_bug.cgi?id=177912
285
286         Reviewed by Saam Barati.
287
288         * DumpRenderTree/mac/DumpRenderTree.mm:
289
290 2017-10-04  Megan Gardner  <megan_gardner@apple.com>
291
292         Break out new touch debugging code into seperate file
293         https://bugs.webkit.org/show_bug.cgi?id=177796
294
295         Reviewed by Simon Fraser.
296
297         Encapsulate the new debug touch code into it's own file.
298         This allows for cleaner code and a better way to show the touches
299         in a completely separate window, which should also be in screen
300         coordinates, and not subject to any transforms that get put on the
301         WebViews.
302
303         * TestRunnerShared/spi/UIKitTestSPI.h:
304         * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
305         * WebKitTestRunner/ios/HIDDebugTouchWindow.h: Added.
306         * WebKitTestRunner/ios/HIDDebugTouchWindow.mm: Added.
307         (+[HIDDebugTouchWindow sharedHIDDebugTouchWindow]):
308         (-[HIDDebugTouchWindow init]):
309         (-[HIDDebugTouchWindow dealloc]):
310         (-[HIDDebugTouchWindow updateDebugIndicatorForTouch:withPointInWindowCoordinates:isTouching:]):
311         (-[HIDDebugTouchWindow initDebugViewsIfNeeded]):
312         * WebKitTestRunner/ios/HIDEventGenerator.h:
313         * WebKitTestRunner/ios/HIDEventGenerator.mm:
314         (-[HIDEventGenerator init]):
315         (-[HIDEventGenerator _createIOHIDEventWithInfo:]):
316         (-[HIDEventGenerator _createIOHIDEventType:]):
317         (-[HIDEventGenerator _updateTouchPoints:count:]):
318         (-[HIDEventGenerator touchDownAtPoints:touchCount:]):
319         (-[HIDEventGenerator touchDown:touchCount:]):
320         (-[HIDEventGenerator liftUpAtPoints:touchCount:]):
321         (-[HIDEventGenerator liftUp:touchCount:]):
322         (-[HIDEventGenerator moveToPoints:touchCount:duration:]):
323         (-[HIDEventGenerator initDebugViewsIfNeeded]): Deleted.
324         (-[HIDEventGenerator updateDebugIndicatorForTouch:withPoint:isTouching:]): Deleted.
325         * WebKitTestRunner/ios/TestControllerIOS.mm:
326         (WTR::TestController::updatePlatformSpecificTestOptionsForTest const):
327
328 2017-10-04  JF Bastien  <jfbastien@apple.com>
329
330         WTF: Update std::expected to match current proposal
331         https://bugs.webkit.org/show_bug.cgi?id=177881
332
333         Reviewed by Mark Lam.
334
335         The proposal is likely to be in C++20 and I've been asked to help co-champion
336         it. I'm therefore updating our implementation to more closely match the current
337         proposal, and to make sure it'll work for us if standardized.
338
339          - Rename UnexpectedType to Unexpected to match the proposal.
340          - Remove relational operators, only equality / inequality remains.
341          - Fix minor type signatures.
342          - Add UnexpectedType typedef.
343          - Uncomment rebind implementation.
344          - Add in-place construction tag, as well as explicit error construction tag.
345          - Add template unexpected constructor.
346          - Note that make_unexpected isn't in the proposal anymore, but we keep it because we don't have C++17 deduction guides.
347          - Remove hashing, which isn't in the proposal anymore.
348
349         * TestWebKitAPI/Tests/WTF/Expected.cpp:
350         (WTF::operator<<):
351         (TestWebKitAPI::TEST):
352
353 2017-10-04  Lucas Forschler  <lforschler@apple.com>
354
355         https://bugs.webkit.org/show_bug.cgi?id=177888
356         WebKitArchiveSupport - add API Gateway to source control
357         This is a swagger configuration export via AWS API Gateway console.
358
359         Rubber-stamped by Alexey Proskuryakov.
360
361         * WebKitArchiveSupport/AWS-APIGateway: Added.
362         * WebKitArchiveSupport/AWS-APIGateway/stage-v2.json: Added.
363
364 2017-10-04  Mark Lam  <mark.lam@apple.com>
365
366         Add support for using Probe DFG OSR Exit behind a runtime flag.
367         https://bugs.webkit.org/show_bug.cgi?id=177844
368         <rdar://problem/34801425>
369
370         Reviewed by Saam Barati.
371
372         Enable --useProbeOSrExit=true for dfg-eager and ftl-no-cjit-validate-sampling-profiler
373         test configurations.
374
375         * Scripts/run-jsc-stress-tests:
376
377 2017-10-04  Jonathan Bedard  <jbedard@apple.com>
378
379         webkitpy.tool.steps.steps_unittest.StepsTest.test_runtests_api is flakey
380         https://bugs.webkit.org/show_bug.cgi?id=177751
381         <rdar://problem/34769470>
382
383         Reviewed by Daniel Bates.
384
385         Port._build_path() calls Tools/Scripts/webkit-build-directory and caches this
386         result. When capturing output from the MockExecutive, the first invocation of
387         Port._build_path() will log the running of Tools/Scripts/webkit-build-directory
388         but subsequent invocations will not.
389
390         * Scripts/webkitpy/tool/steps/steps_unittest.py:
391         (StepsTest):
392         (StepsTest.setUp): Cache the build path before running tests.
393
394 2017-10-04  Carlos Alberto Lopez Perez  <clopez@igalia.com>
395
396         [JHBuild][GTK][WKE] Circular dependency between harfbuzz and freetype6
397         https://bugs.webkit.org/show_bug.cgi?id=177865
398
399         Reviewed by Michael Catanzaro.
400
401         Build freetype6 without harfbuzz support.
402         This seems to be what distros like Fedora, Debian or OpenEmbedded do.
403         Also explicitly enable support for freetype and fontconfig on harfbuzz.
404
405         * gtk/jhbuild.modules: Enable also support for icu.
406         * wpe/jhbuild.modules:
407
408 2017-10-04  Yusuke Suzuki  <utatane.tea@gmail.com>
409
410         [Test262] Update Test262 to Oct 4 version
411         https://bugs.webkit.org/show_bug.cgi?id=177859
412
413         Reviewed by Sam Weinig.
414
415         * Scripts/import-test262-tests:
416
417 2017-10-04  Ryosuke Niwa  <rniwa@webkit.org>
418
419         Use blob URL when pasting RTFD instead of overriding DocumentLoader
420         https://bugs.webkit.org/show_bug.cgi?id=177801
421         <rdar://problem/34542270>
422
423         Reviewed by Wenson Hsieh.
424
425         Added a regression test for an assertion failure when pasting an empty RTFD as well as a test for pasting
426         RTFD with an image, which should result in an image element with a blob URL.
427
428         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
429         * TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm:
430         * TestWebKitAPI/Tests/WebKitCocoa/PasteRTFD.mm:
431         * TestWebKitAPI/Tests/WebKitCocoa/paste-rtfd.html:
432
433 2017-10-03  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
434
435         [GLib] Let WebCore know of low power situations
436         https://bugs.webkit.org/show_bug.cgi?id=177810
437
438         Reviewed by Carlos Garcia Campos.
439
440         * gtk/install-dependencies: add upower-glib dev packages for Debian, Arch and Fedora.
441
442 2017-10-03  Saam Barati  <sbarati@apple.com>
443
444         Implement polymorphic prototypes
445         https://bugs.webkit.org/show_bug.cgi?id=176391
446
447         Reviewed by Filip Pizlo.
448
449         * Scripts/run-jsc-stress-tests:
450
451 2017-10-03  Myles C. Maxfield  <mmaxfield@apple.com> 
452
453         Create a SPIR-V assembler 
454         https://bugs.webkit.org/show_bug.cgi?id=177726 
455
456         Reviewed by Filip Pizlo. 
457
458         Khronos has released a json file containing every SPIR-V opcode and operand at 
459         https://github.com/KhronosGroup/SPIRV-Headers/blob/master/include/spirv/1.2/spirv.core.grammar.json 
460         This patch creates a function which loads this file (via the fetch API), parses it, and creates
461         an object which holds two things: 
462         - For each opcode, a class which accepts the appropriate operands 
463         - For each enum type, an object which holds each enum value 
464         The constructor for each opcode is smart enough to do some basic type-checking of the argument, 
465         according to the types listed in Khronos's json file. 
466
467         This patch also includes an example .html file which outputs a dummy SPIR-V program, 
468         which happens to be compatible with the SPIR-V demo at 
469         https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/blob/master/demos/cube.cpp 
470         If you modify this demo to use the generated SPIR-V program, you can see the result in 
471         action.
472
473         This patch also commits a copy of Khronos's json file mentioned above. This isn't the first 
474         Khronos file we've committed into our repository with this license, so there shouldn't be any 
475         problems there. 
476
477         * WebGPUShadingLanguageRI/SPIR-V.js: Added. 
478         (SPIRV.): 
479         (SPIRVAssembler): 
480         (SPIRVAssembler.prototype.append): 
481         (SPIRVAssembler.prototype.get size): 
482         (SPIRVAssembler.prototype.get storage): 
483         (SPIRVAssembler.prototype.get result): 
484         * WebGPUShadingLanguageRI/SPIRV.html: Added. 
485         * WebGPUShadingLanguageRI/spirv.core.grammar.json: Added. 
486
487 2017-10-03  Chris Dumez  <cdumez@apple.com>
488
489         SharedStringHashStore should support removing hashes
490         https://bugs.webkit.org/show_bug.cgi?id=177770
491
492         Reviewed by Alex Christensen.
493
494         Add API test coverage.
495
496         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
497         * TestWebKitAPI/Tests/WebKitCocoa/VisitedLinkStore.mm: Added.
498         (TestWebKitAPI::TEST):
499
500 2017-10-03  Dewei Zhu  <dewei_zhu@apple.com>
501
502         Fix missing import for BenchmarkRunner.
503         https://bugs.webkit.org/show_bug.cgi?id=177842
504
505         Reviewed by Ryosuke Niwa.
506
507         'show_results' requires BenchmarkRunner.
508
509         * Scripts/webkitpy/benchmark_runner/run_benchmark.py:
510
511 2017-10-03  Olivier Blin  <olivier.blin@softathome.com>
512
513         [WPE] Bump deps to add support for xdg-shell-unstable-v6 protocol
514         https://bugs.webkit.org/show_bug.cgi?id=177820
515
516         Reviewed by Žan Doberšek.
517
518         gnome-shell does not advertize the xdg-shell protocol anymore, but xdg-shell-unstable-v6 instead.
519         Support has been added in WPEBackend-mesa, we need to update the requirements.
520         wayland-1.10 is needed for wl_proxy_get_version(), used in the generated headers.
521
522         * wpe/jhbuild.modules:
523
524 2017-10-03  Alex Christensen  <achristensen@webkit.org>
525
526         Add ObjC SPI equivalent to WKPageLoaderClient.willGoToBackForwardListItem
527         https://bugs.webkit.org/show_bug.cgi?id=177825
528         <rdar://problem/22387505>
529
530         Reviewed by Tim Horton.
531
532         * TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:
533         (-[BackForwardDelegate _webView:willGoToBackForwardListItem:inPageCache:]):
534         (-[BackForwardDelegate webView:didFinishNavigation:]):
535         (TEST):
536
537 2017-10-03  Antti Koivisto  <antti@apple.com>
538
539         Allow assigning WeakPtr<Derived> to WeakPtr<Base>
540         https://bugs.webkit.org/show_bug.cgi?id=177817
541
542         Reviewed by Geoff Garen.
543
544         * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
545         (TestWebKitAPI::Base::weakPtrFactory):
546         (TestWebKitAPI::TEST):
547
548 2017-10-03  Youenn Fablet  <youenn@apple.com>
549
550         Remove no longer needed WebRTC build infrastructure
551         https://bugs.webkit.org/show_bug.cgi?id=177756
552
553         Reviewed by Alejandro G. Castro.
554
555         * Scripts/generate-libwebrtc-cmake: Removed.
556         * Scripts/webkitpy/libwebrtc/__init__.py: Removed.
557         * Scripts/webkitpy/libwebrtc/generate_cmake.py: Removed.
558
559 2017-10-03  Joanmarie Diggs  <jdiggs@igalia.com>
560
561         AX: [ATK] ARIA drag-and-drop attribute values should be exposed via AtkObject attributes
562         https://bugs.webkit.org/show_bug.cgi?id=177763
563
564         Reviewed by Chris Fleizach.
565
566         Implement ariaIsGrabbed() and ariaDropEffects() for ATK.
567
568         * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
569         (WTR::AccessibilityUIElement::ariaIsGrabbed const):
570         (WTR::AccessibilityUIElement::ariaDropEffects const):
571
572 2017-10-02  Myles C. Maxfield  <mmaxfield@apple.com>
573
574         Make WSL demo compatible with Microsoft Edge
575         https://bugs.webkit.org/show_bug.cgi?id=177643
576
577         Reviewed by Saam Barati.
578
579         This patch does two things. The first is it migrates a loop over ParentNode.children to a legacy style loop
580         because Microsoft Edge throws an exception when trying to use a for...of loop with it. This patch also hides
581         the compilation behind a setTimeout(0) so there is some indication that something is happening during a
582         compile.
583
584
585         * Tools/WebGPUShadingLanguageRI/index.html:
586
587 2017-10-02  Joanmarie Diggs  <jdiggs@igalia.com>
588
589         AX: [ATK] The value of aria-level is not exposed on non-heading roles
590         https://bugs.webkit.org/show_bug.cgi?id=177775
591
592         Reviewed by Chris Fleizach.
593
594         * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
595         (WTR::AccessibilityUIElement::hierarchicalLevel const):
596
597 2017-10-02  Geoffrey Garen  <ggaren@apple.com>
598
599         WeakPtr should have a move constructor
600         https://bugs.webkit.org/show_bug.cgi?id=177789
601
602         Reviewed by Chris Dumez.
603
604         Chris made me write an API test. It wasn't that painful.
605
606         * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
607         (TestWebKitAPI::TEST):
608
609 2017-10-02  Filip Pizlo  <fpizlo@apple.com>
610
611         WSL ^ should be *
612         https://bugs.webkit.org/show_bug.cgi?id=177705
613
614         Rubber stamped by Keith Miller.
615         
616         When I first wrote the prototype, I thought it would be cool to use ^ for pointers. Nobody agrees. I've
617         gotten so much feedback to use *. This changes pointers to use *.
618
619         * WebGPUShadingLanguageRI/DereferenceExpression.js:
620         (DereferenceExpression.prototype.toString):
621         (DereferenceExpression):
622         * WebGPUShadingLanguageRI/Intrinsics.js:
623         (Intrinsics):
624         * WebGPUShadingLanguageRI/Parse.js:
625         (parseType):
626         (parsePossiblePrefix):
627         * WebGPUShadingLanguageRI/PtrType.js:
628         (PtrType.prototype.toString):
629         (PtrType):
630         * WebGPUShadingLanguageRI/StandardLibrary.js:
631         * WebGPUShadingLanguageRI/Test.js:
632         (tests.simpleDereference):
633         (tests.dereferenceStore):
634         (tests.simpleMakePtr):
635         (tests.loadNull):
636         (tests.storeNull):
637         (tests.returnNull):
638         (tests.dereferenceDefaultNull):
639         (tests.defaultInitializedNull):
640         (tests.passNullToPtrMonomorphic):
641         (tests.passNullToPtrPolymorphic):
642         (tests.passNullAndNotNull):
643         (tests.passNullAndNotNullFullPoly):
644         (tests.passNullAndNotNullFullPolyReverse):
645         (tests.chainGeneric):
646         (tests.chainStruct):
647         (tests.chainStructNewlyValid):
648         (tests.chainStructDevice):
649         (tests.paramChainStructDevice):
650         (tests.simpleProtocolExtends):
651         (tests.protocolExtendsTwo):
652         (tests.overrideSubscriptStruct):
653         (tests.overrideSubscriptStructAndDoStores):
654         (tests.overrideSubscriptStructAndUsePointers):
655         (tests.overrideSubscriptStructAndUsePointersIncorrectly):
656         (tests.makeArrayRefFromPointer):
657         (tests.nonArrayRefArrayLengthFail):
658         (tests.constexprIsNotLValuePtr):
659         (tests.genericAccessors):
660         (tests.nestedSubscriptLValueEmulationSimple):
661         (tests.nestedSubscriptLValueEmulationGeneric):
662         (tests.shaderTypes):
663         (tests.enumPtrBase):
664         (tests.mutuallyRecursiveStructWithPointersBroken):
665         (tests.mutuallyRecursiveStructWithPointers):
666         (tests.linkedList):
667         (tests.pointerToPointer):
668         (tests.pointerGetter):
669         (tests.operatorCastWithTypeVariableInferredFromReturnType):
670         (tests.loneSetterPointer):
671         (tests.anderWithNothingWrong):
672         (tests.anderWithWrongNumberOfArguments):
673         (tests.anderDoesntReturnPointer):
674         (tests.anderDoesntTakeReference):
675         (tests.anderWithArrayRef):
676         (tests.pointerIndexGetter):
677         (tests.loneIndexSetterPointer):
678         (tests.indexAnderWithNothingWrong):
679         (tests.indexAnderWithWrongNumberOfArguments):
680         (tests.indexAnderDoesntReturnPointer):
681         (tests.indexAnderDoesntTakeReference):
682         (tests.indexAnderWithArrayRef):
683         (tests.devicePtrPtr):
684         (tests.threadgroupPtrPtr):
685         (tests.constantPtrPtr):
686         (tests.pointerIndexGetterInProtocol):
687         (tests.loneIndexSetterPointerInProtocol):
688         (tests.indexAnderWithNothingWrongInProtocol):
689         (tests.indexAnderWithWrongNumberOfArgumentsInProtocol):
690         (tests.indexAnderDoesntReturnPointerInProtocol):
691         (tests.indexAnderDoesntTakeReferenceInProtocol):
692         (tests.indexAnderWithArrayRefInProtocol):
693         (tests.andReturnedArrayRef):
694
695 2017-10-02  Filip Pizlo  <fpizlo@apple.com>
696
697         WSL should be fine with &foo()[i] if foo() returns a []
698         https://bugs.webkit.org/show_bug.cgi?id=177704
699
700         Reviewed by Saam Barati.
701         
702         Previously, we'd determine if a property access expression (base.field or base[index]) was an lvalue by
703         asking if its base was an lvalue. This is right in all cases except if the base is of type []. Then, the
704         property access expression is an lvalue so long as there is a setter or ander.
705         
706         This fixes the issue and adds a test.
707         
708         Also, this makes error messages in the case that something is not an lvalue a lot better. If something
709         is not an lvalue because we could not find anders or setters, then we will tell you why we could not
710         find them.
711
712         * WebGPUShadingLanguageRI/Checker.js:
713         (Checker.prototype.visitAssignment):
714         (Checker.prototype.visitReadModifyWriteExpression):
715         (Checker.prototype.visitMakePtrExpression):
716         (Checker.prototype._finishVisitingPropertyAccess):
717         * WebGPUShadingLanguageRI/DotExpression.js:
718         (DotExpression.prototype.get fieldName):
719         (DotExpression.prototype.get isLValue): Deleted.
720         (DotExpression.prototype.get addressSpace): Deleted.
721         * WebGPUShadingLanguageRI/IndexExpression.js:
722         (IndexExpression.prototype.get index):
723         (IndexExpression.prototype.get isLValue): Deleted.
724         (IndexExpression.prototype.get addressSpace): Deleted.
725         * WebGPUShadingLanguageRI/PropertyAccessExpression.js:
726         (PropertyAccessExpression):
727         (PropertyAccessExpression.prototype.get isLValue):
728         (PropertyAccessExpression.prototype.set isLValue):
729         * WebGPUShadingLanguageRI/PropertyResolver.js:
730         (PropertyResolver.prototype._visitRValuesWithinLValue.RValueFinder.prototype.visitMakeArrayRefExpression):
731         (PropertyResolver.prototype._visitRValuesWithinLValue.RValueFinder):
732         (PropertyResolver.prototype._visitRValuesWithinLValue):
733         * WebGPUShadingLanguageRI/Test.js:
734         (tests.storeNullArrayRef):
735         (tests.andReturnedArrayRef):
736
737 2017-10-02  Wenson Hsieh  <wenson_hsieh@apple.com>
738
739         Guard iOS webkitGetAsEntry API tests on older iOS versions
740
741         Unreviewed test gardening. After r222688, these tests require custom pasteboard data to be enabled by default,
742         so don't run them against shipping iOS.
743
744         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
745
746 2017-10-02  Carlos Garcia Campos  <cgarcia@igalia.com>
747
748         [WPE][GTK] Crash in webkit_web_resource_get_data_finish()
749         https://bugs.webkit.org/show_bug.cgi?id=177107
750
751         Reviewed by Michael Catanzaro.
752
753         Add a test case to check we handle errors when webkit_web_resource_get_data() fails.
754
755         * TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp:
756         (webViewloadChanged):
757         (testWebResourceGetDataError):
758         (beforeAll):
759
760 2017-10-02  Alex Christensen  <achristensen@webkit.org>
761
762         Fix build after r222715
763         https://bugs.webkit.org/show_bug.cgi?id=177697
764
765         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
766         (TEST):
767         Use the public API instead of the removed SPI.
768
769 2017-10-02  Alex Christensen  <achristensen@webkit.org>
770
771         REGRESSION(r214201): WebProcess hangs during policy decisions
772         https://bugs.webkit.org/show_bug.cgi?id=177590
773         <rdar://problem/33362929>
774
775         Reviewed by Andy Estes.
776
777         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
778         * TestWebKitAPI/Tests/WebKitCocoa/JavaScriptDuringNavigation.mm: Added.
779         (-[JSNavigationDelegate webView:didFinishNavigation:]):
780         (-[JSNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
781         (-[JSNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
782         (-[JSNavigationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
783         (TEST):
784
785 2017-10-02  Jonathan Bedard  <jbedard@apple.com>
786
787         Log stack-trace for run-webkit-tests when interrupted
788         https://bugs.webkit.org/show_bug.cgi?id=176393
789         <rdar://problem/34262310>
790
791         Reviewed by Darin Adler.
792
793         When run-webkit-tests is stuck, it is difficult to immediately tell
794         why. Saving a stack-trace when run-webkit-tests is terminated
795         or stopped with CNTRL-C will make such issues easier to debug.
796
797         * Scripts/webkitpy/common/interupt_debugging.py: Added.
798         (log_stack_trace): Given a Python frame object, log a stack trace to
799         the provided file.
800         (log_stack_trace_on_term): Attach a listener to SIGTERM so that a
801         stack-trace can be logged when a program is terminated.
802         (log_stack_trace_on_cntrl_c): Attach a listener to SIGINT so that a
803         stack-trace can be logged when a program is CNTRL-Ced. 
804         * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
805         (main): Set handlers to log stack trace on interruption.
806
807 2017-10-02  Michael Catanzaro  <mcatanzaro@igalia.com>
808
809         Remove ENABLE_CSS_REGIONS
810         https://bugs.webkit.org/show_bug.cgi?id=177689
811
812         Reviewed by Darin Adler.
813
814         * Scripts/webkitperl/FeatureList.pm:
815
816 2017-09-30  Carlos Garcia Campos  <cgarcia@igalia.com>
817
818         Unreviewed. Upgrade webkitgtk-test-fonts to version 0.0.7.
819
820         This version upgrades liberation fonts to version 2, that has a wider glyph coverage.
821
822         * gtk/jhbuild.modules:
823
824 2017-09-29  Alex Christensen  <achristensen@webkit.org>
825
826         Expose WebPreferences::webGLEnabled through WKPreferences
827         https://bugs.webkit.org/show_bug.cgi?id=177692
828         <rdar://problem/24110556>
829
830         Reviewed by Andy Estes.
831
832         * TestWebKitAPI/Tests/WebKitCocoa/Preferences.mm:
833         (-[AlertSaver alert]):
834         (-[AlertSaver webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
835         (TEST):
836
837 2017-09-29  Alex Christensen  <achristensen@webkit.org>
838
839         Fix WKWebViewConfigurationPrivate after r222663
840         https://bugs.webkit.org/show_bug.cgi?id=177644
841
842         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
843         * TestWebKitAPI/Tests/WebKitCocoa/Configuration.mm: Added.
844         (TEST):
845
846 2017-09-28  Ryosuke Niwa  <rniwa@webkit.org>
847
848         Image pasting is not working on tineye.com / gmail.com / GitHub.com due to lack of support for DataTransfer.items
849         https://bugs.webkit.org/show_bug.cgi?id=170449
850         <rdar://problem/31432525>
851
852         Reviewed by Wenson Hsieh.
853
854         Added an API test to paste an image from pasteboard. The test is shared between iOS and macOS.
855
856         The tests to paste image files are only enabled on macOS since putting files into pasteboard isn't a thing on iOS.
857
858         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
859         * TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm: Added.
860         (writeImageDataToPasteboard):
861         (writeBundleFileToPasteboard):
862         * TestWebKitAPI/Tests/WebKitCocoa/paste-image.html: Added.
863         * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-100px.tiff: Added.
864         * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-200px.png: Added.
865         * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-400px.gif: Added.
866         * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-600px.jpg: Added.
867         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: Rebaselined the test now that types contain "Files".
868
869 2017-09-29  Wenson Hsieh  <wenson_hsieh@apple.com>
870
871         [iOS WK2] Implement -[WKContentView hasText] for compatibility with the UITextInput protocol
872         https://bugs.webkit.org/show_bug.cgi?id=177662
873         <rdar://problem/33410373>
874
875         Reviewed by Tim Horton.
876
877         Add EditorState API tests to check that the value of -[WKContentView hasText] is correct when editing both plain
878         and rich text areas.
879
880         * TestWebKitAPI/EditingTestHarness.h:
881         * TestWebKitAPI/EditingTestHarness.mm:
882         (-[EditingTestHarness insertParagraph]):
883         (-[EditingTestHarness insertText:]):
884         (-[EditingTestHarness insertHTML:]):
885         (-[EditingTestHarness selectAll]):
886         (-[EditingTestHarness deleteBackwards]):
887         * TestWebKitAPI/Tests/WebKitCocoa/EditorStateTests.mm:
888
889         Add versions of EditingTestHarness helpers that don't require us to expect any editor state after executing the
890         edit command.
891
892         (TestWebKitAPI::checkContentViewHasTextWithFailureDescription):
893         (TestWebKitAPI::TEST):
894         * TestWebKitAPI/cocoa/TestWKWebView.h:
895         * TestWebKitAPI/cocoa/TestWKWebView.mm:
896         (-[TestWKWebView textInputContentView]):
897
898 2017-09-29  Charles Turner  <cturner@igalia.com>
899
900         Update my status.
901
902         Unreviewed.
903
904         * Scripts/webkitpy/common/config/contributors.json:
905
906 2017-09-28  Commit Queue  <commit-queue@webkit.org>
907
908         Unreviewed, rolling out r222639.
909         https://bugs.webkit.org/show_bug.cgi?id=177630
910
911         Breaks AppleWin build (Requested by dolmstead on #webkit).
912
913         Reverted changeset:
914
915         "[WinCairo][MiniBrowser] Add ca-bundle to display secure
916         pages."
917         https://bugs.webkit.org/show_bug.cgi?id=168486
918         http://trac.webkit.org/changeset/222639
919
920 2017-09-28  Joanmarie Diggs  <jdiggs@igalia.com>
921
922         AX: [ATK] object:state-changed notifications missing for multiple ARIA attributes
923         https://bugs.webkit.org/show_bug.cgi?id=177542
924
925         Add platform support for the notifications. Also add support for getting the
926         boolean argument indicating whether the state has been set or unset.
927
928         Reviewed by Chris Fleizach.
929
930         * WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp:
931
932 2017-09-28  Basuke Suzuki  <Basuke.Suzuki@sony.com>
933
934         [WinCairo][MiniBrowser] Add ca-bundle to display secure pages.
935         Copy cacert.pem file into bundle directory.
936         https://bugs.webkit.org/show_bug.cgi?id=168486
937
938         Reviewed by Brent Fulgham.
939
940         * MiniBrowser/win/CMakeLists.txt:
941
942 2017-09-28  Lucas Forschler  <lforschler@apple.com>
943
944         check in AWS Lambda code used for WebKitArchiveSupport
945         https://bugs.webkit.org/show_bug.cgi?id=177614
946         
947         Rubber-stamped by Alexey Proskuryakov.
948
949         * WebKitArchiveSupport/lambda: Added.
950         * WebKitArchiveSupport/lambda/delete-minified-s3-archive-from-dynamodb.py: Added.
951         (lambda_handler):
952         * WebKitArchiveSupport/lambda/delete-s3-archive-from-dynamodb.py: Added.
953         (lambda_handler):
954         * WebKitArchiveSupport/lambda/register-archive-in-dynamodb.py: Added.
955         (lambda_handler):
956         * WebKitArchiveSupport/lambda/register-minified-s3-archive-in-dynamodb.py: Added.
957         (lambda_handler):
958
959 2017-09-28  Jiewen Tan  <jiewen_tan@apple.com>
960
961         WeakPtrFactory should allow downcasting
962         https://bugs.webkit.org/show_bug.cgi?id=177389
963         <rdar://problem/34604174>
964
965         Reviewed by Geoffrey Garen.
966
967         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
968         * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
969         (TestWebKitAPI::Base::foo):
970         (TestWebKitAPI::Base::createWeakPtr):
971         (TestWebKitAPI::Derived::foo):
972         (TestWebKitAPI::TEST):
973
974 2017-09-28  Megan Gardner  <megan_gardner@apple.com>
975
976         Add debug flag to WebKitTestRunner to show where touches are being generated
977         https://bugs.webkit.org/show_bug.cgi?id=177583
978
979         Reviewed by Tim Horton and Wenson Hsieh.
980
981         Add a flag, and the ability to paint a dot where the HIDEventGenerator is creating fake touches to
982         send through UIKit. This will help in debugging touch tests, because it will be easier to see if
983         one is actually sending the touches at the locations that they expect. This will help differentiate between
984         problems in the locations of the touches, and other problems that can come up when writing tests.
985
986         * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
987         (parse_args):
988         * Scripts/webkitpy/port/driver.py:
989         (Driver.cmd_line):
990         * WebKitTestRunner/Options.cpp:
991         (WTR::Options::Options):
992         (WTR::handleOptionShowTouches):
993         (WTR::OptionsHandler::OptionsHandler):
994         * WebKitTestRunner/Options.h:
995         * WebKitTestRunner/TestController.cpp:
996         (WTR::TestController::initialize):
997         * WebKitTestRunner/TestController.h:
998         (WTR::TestController::shouldShowTouches const):
999         * WebKitTestRunner/TestOptions.h:
1000         * WebKitTestRunner/ios/HIDEventGenerator.h:
1001         * WebKitTestRunner/ios/HIDEventGenerator.mm:
1002         (-[DebugTouchView pointInside:withEvent:]):
1003         (-[HIDEventGenerator setShouldShowTouches:]):
1004         (-[HIDEventGenerator initDebugViews]):
1005         (-[HIDEventGenerator updateDebugUI:withPoint:isTouching:]):
1006         (-[HIDEventGenerator _createIOHIDEventWithInfo:]):
1007         (-[HIDEventGenerator _createIOHIDEventType:]):
1008         (-[HIDEventGenerator _updateTouchPoints:count:]):
1009         (-[HIDEventGenerator touchDownAtPoints:touchCount:]):
1010         (-[HIDEventGenerator liftUpAtPoints:touchCount:]):
1011         (-[HIDEventGenerator moveToPoints:touchCount:duration:]):
1012         (-[HIDEventGenerator markerEventReceived:]):
1013         * WebKitTestRunner/ios/TestControllerIOS.mm:
1014         (WTR::TestController::updatePlatformSpecificTestOptionsForTest const):
1015         * WebKitTestRunner/ios/mainIOS.mm:
1016         (-[WebKitTestRunnerApp _runTestController]):
1017
1018 2017-09-28  Mark Lam  <mark.lam@apple.com>
1019
1020         [Re-landing] Turn on exception scope verification for JSC tests.
1021         https://bugs.webkit.org/show_bug.cgi?id=162351
1022         <rdar://problem/29563911>
1023
1024         Reviewed by Saam Barati.
1025
1026         Update: I'm re-landing this patch now that test262 exception check validation
1027         failures have been fixed in r222617.  testapi still has some validation failures,
1028         but this patch does not affect testapi.
1029
1030         Added the option to --validateExceptionChecks=true option to BASE_OPTIONS in
1031         run-jsc-stress-tests.  This turns on exception scope verification on JSC test
1032         runs (which currently does not include testapi).
1033
1034         Some stats on time to run JSC stress and mozilla tests:
1035         1. Release build w/o --validateExceptionChecks=true: real 16m22.544s, user 156m24.080s, sys 123m3.649s
1036         2. Debug build w/o --validateExceptionChecks=true: real 78m34.206s, user 1661m57.008s, sys 73m21.177s
1037         3. Debug build w/ --validateExceptionChecks=true: real 77m41.106s, user 1656m13.924s, sys 73m42.309s
1038         4. Debug build w/ --validateExceptionChecks=true --dumpSimulatedThrows=true: real 92m56.918s, user 2012m56.441s, sys 75m14.174s
1039
1040         The stats shows that (2) and (3) has effectively no time difference.  Hence, the
1041         cost of enabling --validateExceptionChecks=true is not significant.
1042
1043         It would be nice to enable --dumpSimulatedThrows=true as well, but (4) is about
1044         21% slower than (3).  To avoid making debug test runs a lot slower, we'll leave
1045         --dumpSimulatedThrows=true off.  We can manually add that when we see a regression
1046         and need to debug the issue.  Otherwise, we wont pay the price for it.
1047
1048         * Scripts/run-jsc-stress-tests:
1049
1050 2017-09-27  Alex Christensen  <achristensen@webkit.org>
1051
1052         Add WKContentRuleList notify action type
1053         https://bugs.webkit.org/show_bug.cgi?id=177013
1054         <rdar://problem/31073936>
1055
1056         Reviewed by Darin Adler.
1057
1058         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1059         * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
1060         (WebCore::ContentExtensions::operator<<):
1061         (TestWebKitAPI::InMemoryCompiledContentExtension::create):
1062         (TestWebKitAPI::InMemoryCompiledContentExtension::data):
1063         (TestWebKitAPI::InMemoryCompiledContentExtension::InMemoryCompiledContentExtension):
1064         (TestWebKitAPI::makeBackend):
1065         (TestWebKitAPI::TEST_F):
1066         (TestWebKitAPI::actionsEqual):
1067         (TestWebKitAPI::sequenceInstances):
1068         (TestWebKitAPI::InMemoryCompiledContentExtension::createFromFilter): Deleted.
1069         (TestWebKitAPI::InMemoryCompiledContentExtension::~InMemoryCompiledContentExtension): Deleted.
1070         * TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm: Added.
1071         (-[ContentRuleListNotificationDelegate _webView:URL:contentRuleListIdentifiers:notifications:]):
1072         (-[ContentRuleListNotificationDelegate webView:startURLSchemeTask:]):
1073         (-[ContentRuleListNotificationDelegate webView:stopURLSchemeTask:]):
1074         (-[ContentRuleListNotificationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
1075         (makeWarnContentRuleList):
1076         (TEST):
1077
1078 2017-09-27  Wenson Hsieh  <wenson_hsieh@apple.com>
1079
1080         Drag event DataTransfer has unexpected types "dyn.ah62d4..."
1081         https://bugs.webkit.org/show_bug.cgi?id=172526
1082         <rdar://problem/32396081>
1083
1084         Reviewed by Ryosuke Niwa.
1085
1086         Adds new API tests on iOS to cover various cases of using DataTransfer.setData, DataTransfer.getData, and
1087         DataTransfer.types, as well as their interaction with platform objects (source NSItemProviders in the case of
1088         drag and drop, and the general UIPasteboard for copy and paste).
1089
1090         * TestWebKitAPI/PlatformUtilities.h:
1091         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1092         * TestWebKitAPI/Tests/WebKitCocoa/dump-datatransfer-types.html: Added.
1093
1094         Introduce a new API test harness that both drag-and-drop and copy-and-paste tests use to dump DataTransfer's
1095         web-exposed types and values.
1096
1097         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
1098         (checkFirstTypeIsPresentAndSecondTypeIsMissing):
1099         (checkJSONWithLogging):
1100         (TestWebKitAPI::TEST):
1101         (checkTypeIdentifierAndIsNotOtherTypeIdentifier): Deleted.
1102         * TestWebKitAPI/Tests/ios/UIPasteboardTests.mm:
1103         (TestWebKitAPI::checkJSONWithLogging):
1104         (TestWebKitAPI::setUpWebViewForPasteboardTests):
1105         (TestWebKitAPI::TEST):
1106         * TestWebKitAPI/cocoa/PlatformUtilitiesCocoa.mm:
1107         (TestWebKitAPI::Util::jsonMatchesExpectedValues):
1108
1109 2017-09-27  Lucas Forschler  <lforschler@apple.com>
1110
1111         Add macOS High Sierra and iOS Simulator 11 support to bisect-builds.
1112         https://bugs.webkit.org/show_bug.cgi?id=177578
1113
1114         Reviewed by Alexey Proskuryakov.
1115
1116         * Scripts/bisect-builds:
1117         (minified_platforms):
1118         (unminified_platforms):
1119
1120 2017-09-27  Ryan Haddad  <ryanhaddad@apple.com>
1121
1122         Update TestResultsServer for High Sierra queues.
1123         https://bugs.webkit.org/show_bug.cgi?id=177500
1124
1125         Reviewed by Alexey Proskuryakov.
1126
1127         * TestResultServer/static-dashboards/builders.jsonp:
1128
1129 2017-09-27  Lucas Forschler  <lforschler@apple.com>
1130
1131         bisect-builds:add a README to the archive.
1132         https://bugs.webkit.org/show_bug.cgi?id=177376
1133
1134         Reviewed by Alexey Proskuryakov & Jon Davis.
1135
1136         * BuildSlaveSupport/built-product-archive:
1137         (addFilesToArchive): refactor function (was previously addLauncherToArchive)
1138         (createZip): Teach function to add the README
1139         (addLauncherToArchive): Deleted. (refactored to addFilesToArchive)
1140         * BuildSlaveSupport/run-webkit-archive: Deleted. (Moved to WebKitArchiveSupport)
1141         * WebKitArchiveSupport: Added.
1142         * WebKitArchiveSupport/README: Added. README which will be packaged up with the archive.
1143         * WebKitArchiveSupport/run-webkit-archive: Added. (Moved from BuildSlaveSupport)
1144
1145 2017-09-26  Tim Horton  <timothy_horton@apple.com>
1146
1147         Mac CMake bot should provide verbose build output
1148         https://bugs.webkit.org/show_bug.cgi?id=177512
1149
1150         Reviewed by Alexey Proskuryakov.
1151
1152         * BuildSlaveSupport/build.webkit.org-config/config.json:
1153         It's hard to diagnose weird bot-only build problems without the
1154         full verbose build output, so turn that on. The Xcode builders
1155         do it too, so why not CMake!
1156
1157 2017-09-26  Tim Horton  <timothy_horton@apple.com>
1158
1159         Make it possible to easily get verbose ninja output from build-webkit
1160         https://bugs.webkit.org/show_bug.cgi?id=177511
1161
1162         Reviewed by Sam Weinig.
1163
1164         * Scripts/build-webkit:
1165         Add a -v/--verbose argument to build-webkit, which sets the environment
1166         variable VERBOSE=1, which buildCMakeGeneratedProject already checks.
1167
1168         * Scripts/webkitdirs.pm:
1169         (buildCMakeGeneratedProject):
1170         Add ninja verbosity arguments to @makeArgs, which are appended
1171         after the -- and thus handed to ninja; the previous implementation
1172         (appending to @args) would only work if @makeArgs was non-empty and thus
1173         the -- was included.
1174
1175 2017-09-26  Said Abou-Hallawa  <sabouhallawa@apple.com>
1176
1177         Followup (r222427): SynchronizedFixedQueue should not have a public constructor
1178         https://bugs.webkit.org/show_bug.cgi?id=177458
1179
1180         Reviewed by Tim Horton.
1181
1182         Fix the definition and the creation of SynchronizedFixedQueue.
1183
1184         * TestWebKitAPI/Tests/WTF/SynchronizedFixedQueue.cpp:
1185         (TestWebKitAPI::ToUpperConverter::ToUpperConverter):
1186         (TestWebKitAPI::ToUpperConverter::startProducing):
1187         (TestWebKitAPI::ToUpperConverter::startConsuming):
1188         (TestWebKitAPI::ToUpperConverter::stopProducing):
1189         (TestWebKitAPI::ToUpperConverter::stopConsuming):
1190         (TestWebKitAPI::ToUpperConverter::enqueueLower):
1191
1192 2017-09-26  Wenson Hsieh  <wenson_hsieh@apple.com>
1193
1194         [ios-simulator] API test DataInteractionTests.ExternalSourceDataTransferItemGetFolderAsEntry is failing
1195         https://bugs.webkit.org/show_bug.cgi?id=177271
1196
1197         Reviewed by Tim Horton and Megan Gardner.
1198
1199         Rebaseline a failing API test.
1200
1201         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
1202         (TestWebKitAPI::TEST):
1203
1204 2017-09-26  Per Arne Vollan  <pvollan@apple.com>
1205
1206         Set LF eol-style on Windows shell script, because the script failed on one of the EWS
1207         bots, when it had the 'native' style.
1208
1209         Unreviewed Windows EWS fix. 
1210
1211         * EWSTools/start-queue-win.sh: Modified property svn:eol-style.
1212
1213 2017-09-26  Jonathan Bedard  <jbedard@apple.com>
1214
1215         webkitpy: Notify parent process when a worker is spawned
1216         https://bugs.webkit.org/show_bug.cgi?id=177467
1217         <rdar://problem/34660194>
1218
1219         Reviewed by Daniel Bates.
1220
1221         When we fork the parent process, there may be resources in that process
1222         which workers will take ownership of. Notify ports when a new worker is created
1223         so that these resources can be correctly managed.
1224
1225         * Scripts/webkitpy/common/message_pool.py:
1226         (_MessagePool._start_workers): After all workers are started, notify the caller
1227         that a worker has been created, unless we are running inline, in which case the
1228         parent process is still the worker.
1229         * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
1230         (LayoutTestRunner._handle_did_spawn_worker): Notify the port that a worker process
1231         has been created.
1232         * Scripts/webkitpy/port/base.py:
1233         (Port.did_spawn_worker): Add function so that ports may manage any
1234         resources created on the parent process but managed by the provided worker.
1235         * Scripts/webkitpy/port/device.py:
1236         (Device.release_worker_resources): Call release_worker_resources on the
1237         platform_device if such a function is defined.
1238         * Scripts/webkitpy/port/ios.py:
1239         (IOSPort.did_spawn_worker): Release any worker resources on the iOS
1240         device object associated with the spawned worker.
1241         * Scripts/webkitpy/test/runner.py:
1242         (Runner.handle): Ignore the did_spawn_worker message during testing.
1243
1244 2017-09-26  Jer Noble  <jer.noble@apple.com>
1245
1246         Thrown ObjC exception when right clicking on <img> containing mp4 link
1247         https://bugs.webkit.org/show_bug.cgi?id=177370
1248
1249         Reviewed by Darin Adler.
1250
1251         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1252         * TestWebKitAPI/Tests/WebKit/mac/ContextMenuImgWithVideo.html: Added.
1253         * TestWebKitAPI/Tests/WebKit/mac/ContextMenuImgWithVideo.mm: Added.
1254         (-[ContextMenuImgWithVideoDelegate _webView:contextMenu:forElement:]):
1255         (TestWebKitAPI::TEST):
1256
1257 2017-09-26  Per Arne Vollan  <pvollan@apple.com>
1258
1259         [Win] 'webkit-patch clean' is failing on bot.
1260         https://bugs.webkit.org/show_bug.cgi?id=177488
1261
1262         Reviewed by Brent Fulgham.
1263
1264         If 'os.remove' throws an exception, catch it.
1265
1266         * Scripts/webkitpy/common/checkout/scm/svn.py:
1267         (SVN.discard_working_directory_changes):
1268
1269 2017-09-25  Frederik Riedel  <riedel@apple.com>
1270
1271         Expose way to set values of classified form controls as {Legacy WebKit, WebKit} SPI
1272         https://bugs.webkit.org/show_bug.cgi?id=174394
1273         <rdar://problem/33183504>
1274
1275         Reviewed by Ryosuke Niwa.
1276
1277         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1278         * TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm: Added.
1279         (-[WKWebView _privateTextInput]): Testing helpers.
1280         (TestWebKitAPI::TEST): Added test cases to test AutoFill for web views.
1281         * TestWebKitAPI/ios/UIKitSPI.h:
1282
1283 2017-09-25  Frederic Wang  <fwang@igalia.com>
1284
1285         Change my status to reviewer and reformat with validate-committer-lists
1286
1287         Unreviewed.
1288
1289         * Scripts/webkitpy/common/config/contributors.json:
1290
1291 2017-09-25  Ryan Haddad  <ryanhaddad@apple.com>
1292
1293         Add High Sierra bots to buildbot and dashboard.
1294         https://bugs.webkit.org/show_bug.cgi?id=177437
1295
1296         Reviewed by Alexey Proskuryakov.
1297
1298         * BuildSlaveSupport/build.webkit.org-config/config.json: Add High Sierra queues, move Leaks and JSC queues over from Sierra.
1299         * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: Update expected results.
1300         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js: Add High Sierra.
1301         (WebKitBuildbot):
1302
1303 2017-09-25  Chris Dumez  <cdumez@apple.com>
1304
1305         [WK2] Add API to query if a download was user-initiated
1306         https://bugs.webkit.org/show_bug.cgi?id=177435
1307         <rdar://problem/34498422>
1308
1309         Reviewed by Alex Christensen.
1310
1311         Add API test coverage.
1312
1313         * TestWebKitAPI/Tests/WebKit/mac/ContextMenuDownload.mm:
1314         (TestWebKitAPI::decideDestinationWithSuggestedFilename):
1315         * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
1316         (-[DownloadDelegate _downloadDidStart:]):
1317         (-[DownloadDelegate _downloadDidFinish:]):
1318         (runTest):
1319         (TEST):
1320         (-[BlobDownloadDelegate _downloadDidStart:]):
1321         (-[BlobDownloadDelegate _downloadDidFinish:]):
1322         (-[RedirectedDownloadDelegate _downloadDidStart:]):
1323         (-[RedirectedDownloadDelegate _downloadDidFinish:]):
1324
1325 2017-09-25  Commit Queue  <commit-queue@webkit.org>
1326
1327         Unreviewed, rolling out r222455.
1328         https://bugs.webkit.org/show_bug.cgi?id=177460
1329
1330         broke iOS build (Requested by alexchristensen on #webkit).
1331
1332         Reverted changeset:
1333
1334         "Add WKContentRuleList notify action type"
1335         https://bugs.webkit.org/show_bug.cgi?id=177013
1336         http://trac.webkit.org/changeset/222455
1337
1338 2017-09-25  Per Arne Vollan  <pvollan@apple.com>
1339
1340         [Win] run-api-tests is failing.
1341         https://bugs.webkit.org/show_bug.cgi?id=177454
1342
1343         Reviewed by Brent Fulgham.
1344
1345         TestWebKit.exe has changed name to TestWebKitLegacy.exe.
1346
1347         * Scripts/run-api-tests:
1348         (testToolPaths):
1349
1350 2017-09-25  Per Arne Vollan  <pvollan@apple.com>
1351
1352         [Win] Cygwin 64-bit EWS process cannot find Visual Studio installation.
1353         https://bugs.webkit.org/show_bug.cgi?id=177244
1354
1355         Reviewed by Alex Christensen.
1356
1357         The 64-bit EWS shell process should try to find Visual Studio in the 32-bit program files folder.
1358
1359         * EWSTools/start-queue-win.sh:
1360
1361 2017-09-25  Alex Christensen  <achristensen@webkit.org>
1362
1363         Add WKContentRuleList notify action type
1364         https://bugs.webkit.org/show_bug.cgi?id=177013
1365         <rdar://problem/31073936>
1366
1367         Reviewed by Darin Adler.
1368
1369         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1370         * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
1371         (WebCore::ContentExtensions::operator<<):
1372         (TestWebKitAPI::InMemoryCompiledContentExtension::create):
1373         (TestWebKitAPI::InMemoryCompiledContentExtension::data):
1374         (TestWebKitAPI::InMemoryCompiledContentExtension::InMemoryCompiledContentExtension):
1375         (TestWebKitAPI::makeBackend):
1376         (TestWebKitAPI::TEST_F):
1377         (TestWebKitAPI::actionsEqual):
1378         (TestWebKitAPI::sequenceInstances):
1379         (TestWebKitAPI::InMemoryCompiledContentExtension::createFromFilter): Deleted.
1380         (TestWebKitAPI::InMemoryCompiledContentExtension::~InMemoryCompiledContentExtension): Deleted.
1381         * TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm: Added.
1382         (-[ContentRuleListNotificationDelegate _webView:URL:contentRuleListIdentifiers:notifications:]):
1383         (-[ContentRuleListNotificationDelegate webView:startURLSchemeTask:]):
1384         (-[ContentRuleListNotificationDelegate webView:stopURLSchemeTask:]):
1385         (-[ContentRuleListNotificationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
1386         (makeWarnContentRuleList):
1387         (TEST):
1388
1389 2017-09-25  Carlos Alberto Lopez Perez  <clopez@igalia.com>
1390
1391         REGRESSION(r222160) [GTK] [Debug] Internal compiler error on the buildbot (huge memory usage by GCC)
1392         https://bugs.webkit.org/show_bug.cgi?id=177223
1393
1394         Reviewed by Carlos Garcia Campos.
1395
1396         When the user environment sets the variable NUMBER_OF_PROCESSORS
1397         this should be passed down to the build system (ninja or make) always.
1398
1399         Playing with the number of this variable is needed when using icecc
1400         (as you usually want to launch more parallel build process than your
1401         number of cores), or when you want to limit the number of parallel
1402         build process for hardware capacity reasons.
1403
1404         * Scripts/build-webkit:
1405
1406 2017-09-24  Fujii Hironori  <Hironori.Fujii@sony.com>
1407
1408         [GTK] Incremental builds fail every time Web Inspector icons are removed
1409         https://bugs.webkit.org/show_bug.cgi?id=177349
1410
1411         Reviewed by Carlos Garcia Campos.
1412
1413         Removing GTK WebInspector image files always breaks the GTK and
1414         WPE ports incremental builds.
1415
1416         * Scripts/webkitdirs.pm:
1417         (shouldRemoveCMakeCache): Check the timestamp of
1418         Source/WebInspectorUI/UserInterface/Images/gtk directory if
1419         isGtk() or isWPE().
1420
1421 2017-09-24  Joanmarie Diggs  <jdiggs@igalia.com>
1422
1423         [ATK] Object attributes are missing for ARIA live region roles
1424         https://bugs.webkit.org/show_bug.cgi?id=171174
1425
1426         Reviewed by Chris Fleizach.
1427
1428         Add support for testing property values for AXARIALive, AXARIAAtomic, and
1429         AXARIARelevant. Also add handling for testing whether AXElementBusy is
1430         "supported" (in ATK, busy is a state and is supported on all elements
1431         regardless of whether the state is present or absent from the state set).
1432
1433         * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
1434         (WTR::AccessibilityUIElement::boolAttributeValue):
1435         (WTR::AccessibilityUIElement::isAttributeSupported):
1436
1437 2017-09-23  Michael Catanzaro  <mcatanzaro@igalia.com>
1438
1439         Unreviewed Mac CMake build fixup after r222194
1440
1441         * DumpRenderTree/PlatformMac.cmake:
1442
1443 2017-09-22  Zalan Bujtas  <zalan@apple.com>
1444
1445         WeakPtrFactory should populate m_ref lazily.
1446         https://bugs.webkit.org/show_bug.cgi?id=177375
1447
1448         Reviewed by Geoffrey Garen.
1449
1450         * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
1451         (TestWebKitAPI::TEST):
1452
1453 2017-09-22  Filip Pizlo  <fpizlo@apple.com>
1454
1455         WSL should report an error if you try to create an operator overload that will never be called
1456         https://bugs.webkit.org/show_bug.cgi?id=177092
1457
1458         Reviewed by JF Bastien.
1459         
1460         This adds all kinds of checks to ensure that your operator overloads make sense. This adds all
1461         kinds of tests for those checks.
1462         
1463         In the process of writing those tests, I hit an awesome bug: function instantiation was
1464         instantiating all types, which meant that if that instantiated function needed to resolve calls
1465         to protocol functions, we'd fail because we would have cloned top-level struct types. We need
1466         to preserve the uninstantiated argument types, type arguments, and return type (for casts) in
1467         order to be able to resolve protocol calls. But we also need the instantiated version of the
1468         type arguments for execution. So, this adds some more stuff to the CallExpression class.
1469         
1470         * WebGPUShadingLanguageRI/All.js:
1471         * WebGPUShadingLanguageRI/ArrayRefType.js:
1472         (ArrayRefType.prototype.unifyImpl):
1473         * WebGPUShadingLanguageRI/ArrayType.js:
1474         (ArrayType.prototype.get isArray):
1475         * WebGPUShadingLanguageRI/CallExpression.js:
1476         (CallExpression.resolve):
1477         (CallExpression.prototype.resolve):
1478         (CallExpression.prototype.resolveToOverload):
1479         * WebGPUShadingLanguageRI/Checker.js:
1480         (Checker.prototype._checkOperatorOverload):
1481         (Checker.prototype.visitFuncDef):
1482         (Checker.prototype.visitProtocolDecl):
1483         (Checker.prototype.visitMakeArrayRefExpression):
1484         * WebGPUShadingLanguageRI/EBufferBuilder.js:
1485         (EBufferBuilder.prototype._createEPtr):
1486         * WebGPUShadingLanguageRI/EPtr.js:
1487         (EPtr):
1488         * WebGPUShadingLanguageRI/Evaluator.js:
1489         (Evaluator.prototype._snapshot):
1490         (Evaluator.prototype._runBody):
1491         (Evaluator.prototype.visitFunctionLikeBlock):
1492         (Evaluator.prototype.visitCallExpression):
1493         (Evaluator):
1494         (Evaluator.prototype.runFunc): Deleted.
1495         * WebGPUShadingLanguageRI/ExternalOrigin.js: Added.
1496         * WebGPUShadingLanguageRI/Func.js:
1497         (Func.prototype.toDeclString):
1498         * WebGPUShadingLanguageRI/FuncInstantiator.js:
1499         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution.prototype.visitCallExpression):
1500         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution):
1501         (FuncInstantiator.prototype.getUnique.InstantiationInstantiateImmediates.prototype.visitCallExpression):
1502         (FuncInstantiator.prototype.getUnique.InstantiationInstantiateImmediates):
1503         (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitFuncDef):
1504         * WebGPUShadingLanguageRI/Intrinsics.js:
1505         (Intrinsics):
1506         * WebGPUShadingLanguageRI/LateChecker.js:
1507         (LateChecker.prototype.visitReferenceType):
1508         (LateChecker.prototype._checkShaderType):
1509         * WebGPUShadingLanguageRI/Lexer.js:
1510         (Lexer._textIsIdentifierImpl):
1511         (Lexer.textIsIdentifier):
1512         (Lexer.prototype.next):
1513         (Lexer):
1514         * WebGPUShadingLanguageRI/NameResolver.js:
1515         (NameResolver.prototype.visitProtocolDecl):
1516         * WebGPUShadingLanguageRI/Parse.js:
1517         (parseType.getAddressSpace):
1518         (parseType):
1519         * WebGPUShadingLanguageRI/Prepare.js:
1520         (let.prepare):
1521         * WebGPUShadingLanguageRI/PtrType.js:
1522         (PtrType.prototype.unifyImpl):
1523         * WebGPUShadingLanguageRI/ReferenceType.js:
1524         (ReferenceType):
1525         * WebGPUShadingLanguageRI/Rewriter.js:
1526         (Rewriter.prototype.visitReferenceType):
1527         (Rewriter.prototype.processDerivedCallData):
1528         * WebGPUShadingLanguageRI/StandardLibrary.js:
1529         (intToString):
1530         * WebGPUShadingLanguageRI/StatementCloner.js:
1531         (StatementCloner.prototype.visitFuncDef):
1532         * WebGPUShadingLanguageRI/StructLayoutBuilder.js:
1533         (StructLayoutBuilder.prototype.visitCallExpression):
1534         (StructLayoutBuilder):
1535         * WebGPUShadingLanguageRI/Substitution.js:
1536         (Substitution.prototype.visitTypeRef):
1537         * WebGPUShadingLanguageRI/Test.html:
1538         * WebGPUShadingLanguageRI/Test.js:
1539         (checkNumber):
1540         (set target):
1541         (tests.literalBool):
1542         (tests.identityBool):
1543         (tests.intSimpleMath):
1544         (tests.uintSimpleMath):
1545         (tests.uint8SimpleMath):
1546         (tests.equality):
1547         (tests.logicalNegation):
1548         (tests.notEquality):
1549         (tests.equalityTypeFailure):
1550         (tests.generalNegation):
1551         (tests.add1):
1552         (tests.simpleGeneric):
1553         (tests.nameResolutionFailure):
1554         (tests.simpleVariable):
1555         (tests.simpleAssignment):
1556         (tests.simpleDefault):
1557         (tests.simpleDereference):
1558         (tests.dereferenceStore):
1559         (tests.simpleMakePtr):
1560         (tests.threadArrayLoad):
1561         (tests.threadArrayLoadIntLiteral):
1562         (tests.deviceArrayLoad):
1563         (tests.threadArrayStore):
1564         (tests.deviceArrayStore):
1565         (tests.deviceArrayStoreIntLiteral):
1566         (tests.simpleProtocol):
1567         (tests.typeMismatchReturn):
1568         (tests.typeMismatchVariableDecl):
1569         (tests.typeMismatchAssignment):
1570         (tests.typeMismatchReturnParam):
1571         (tests.badAdd):
1572         (tests.lexerKeyword):
1573         (tests.simpleNoReturn):
1574         (tests.simpleUnreachableCode):
1575         (tests.simpleStruct):
1576         (tests.genericStructInstance):
1577         (tests.doubleGenericCallsDoubleGeneric):
1578         (tests.doubleGenericCallsSingleGeneric):
1579         (tests.loadNull):
1580         (tests.storeNull):
1581         (tests.returnNull):
1582         (tests.dereferenceDefaultNull):
1583         (tests.defaultInitializedNull):
1584         (tests.passNullToPtrMonomorphic):
1585         (tests.passNullToPtrPolymorphic):
1586         (tests.passNullToPolymorphic):
1587         (tests.loadNullArrayRef):
1588         (tests.storeNullArrayRef):
1589         (tests.returnNullArrayRef):
1590         (tests.dereferenceDefaultNullArrayRef):
1591         (tests.defaultInitializedNullArrayRef):
1592         (tests.defaultInitializedNullArrayRefIntLiteral):
1593         (tests.passNullToPtrMonomorphicArrayRef):
1594         (tests.passNullToPtrPolymorphicArrayRef):
1595         (tests.returnIntLiteralUint):
1596         (tests.returnIntLiteralDouble):
1597         (tests.badIntLiteralForInt):
1598         (tests.badIntLiteralForUint):
1599         (tests.badIntLiteralForDouble):
1600         (tests.passNullAndNotNull):
1601         (tests.passNullAndNotNullFullPoly):
1602         (tests.passNullAndNotNullFullPolyReverse):
1603         (tests.nullTypeVariableUnify):
1604         (tests.doubleNot):
1605         (tests.simpleRecursion):
1606         (tests.protocolMonoSigPolyDef):
1607         (tests.protocolPolySigPolyDef):
1608         (tests.protocolDoublePolySigDoublePolyDef):
1609         (tests.protocolDoublePolySigDoublePolyDefExplicit):
1610         (tests.variableShadowing):
1611         (tests.ifStatement):
1612         (tests.ifElseStatement):
1613         (tests.ifElseIfStatement):
1614         (tests.ifElseIfElseStatement):
1615         (tests.returnIf):
1616         (tests.simpleWhile):
1617         (tests.protocolMonoPolySigDoublePolyDefExplicit):
1618         (tests.ambiguousOverloadSimple):
1619         (tests.ambiguousOverloadOverlapping):
1620         (tests.ambiguousOverloadTieBreak):
1621         (tests.intOverloadResolution):
1622         (tests.intOverloadResolutionReverseOrder):
1623         (tests.intOverloadResolutionGeneric):
1624         (tests.intLiteralGeneric):
1625         (tests.intLiteralGenericWithProtocols):
1626         (tests.uintLiteralGeneric):
1627         (tests.uintLiteralGenericWithProtocols):
1628         (tests.intLiteralGenericSpecific):
1629         (tests.simpleConstexpr):
1630         (tests.break):
1631         (tests.continue):
1632         (tests.doWhile):
1633         (tests.forLoop):
1634         (tests.chainConstexpr):
1635         (tests.chainGeneric):
1636         (tests.chainStruct):
1637         (tests.chainStructNewlyValid):
1638         (tests.chainStructDevice):
1639         (tests.paramChainStructDevice):
1640         (tests.simpleProtocolExtends):
1641         (tests.protocolExtendsTwo):
1642         (tests.prefixPlusPlus):
1643         (tests.prefixPlusPlusResult):
1644         (tests.postfixPlusPlus):
1645         (tests.postfixPlusPlusResult):
1646         (tests.prefixMinusMinus):
1647         (tests.prefixMinusMinusResult):
1648         (tests.postfixMinusMinus):
1649         (tests.postfixMinusMinusResult):
1650         (tests.plusEquals):
1651         (tests.plusEqualsResult):
1652         (tests.minusEquals):
1653         (tests.minusEqualsResult):
1654         (tests.timesEquals):
1655         (tests.timesEqualsResult):
1656         (tests.divideEquals):
1657         (tests.divideEqualsResult):
1658         (tests.twoIntLiterals):
1659         (tests.unifyDifferentLiterals):
1660         (tests.unifyDifferentLiteralsBackwards):
1661         (tests.unifyVeryDifferentLiterals):
1662         (tests.unifyVeryDifferentLiteralsBackwards):
1663         (tests.assignUintToInt):
1664         (tests.buildArrayThenSumIt):
1665         (tests.buildArrayThenSumItUsingArrayReference):
1666         (tests.overrideSubscriptStruct):
1667         (tests.overrideSubscriptStructAndDoStores):
1668         (tests.overrideSubscriptStructAndUsePointers):
1669         (tests.overrideSubscriptStructAndUsePointersIncorrectly):
1670         (tests.makeArrayRefFromLocal):
1671         (tests.makeArrayRefFromPointer):
1672         (tests.makeArrayRefFromArrayRef):
1673         (tests.simpleLength):
1674         (tests.nonArrayRefArrayLengthSucceed):
1675         (tests.nonArrayRefArrayLengthFail):
1676         (tests.constexprIsNotLValuePtr):
1677         (tests.constexprIsNotLValueAssign):
1678         (tests.constexprIsNotLValueRMW):
1679         (tests.assignLength):
1680         (tests.assignLengthHelper):
1681         (tests.simpleGetter):
1682         (tests.simpleSetter):
1683         (tests.genericAccessors):
1684         (tests.bitSubscriptAccessor):
1685         (tests.nestedSubscriptLValueEmulationSimple):
1686         (tests.nestedSubscriptLValueEmulationGeneric):
1687         (tests.boolBitAnd):
1688         (tests.boolBitOr):
1689         (tests.boolBitXor):
1690         (tests.boolBitNot):
1691         (tests.intBitAnd):
1692         (tests.intBitOr):
1693         (tests.intBitXor):
1694         (tests.intBitNot):
1695         (tests.intLShift):
1696         (tests.intRShift):
1697         (tests.uintBitAnd):
1698         (tests.uintBitOr):
1699         (tests.uintBitXor):
1700         (tests.uintBitNot):
1701         (tests.uintLShift):
1702         (tests.uintRShift):
1703         (tests.uint8BitAnd):
1704         (tests.uint8BitOr):
1705         (tests.uint8BitXor):
1706         (tests.uint8BitNot):
1707         (tests.uint8LShift):
1708         (tests.uint8RShift):
1709         (tests.floatMath):
1710         (tests.genericCastInfer):
1711         (tests.booleanMath):
1712         (tests.typedefArray):
1713         (tests.shaderTypes):
1714         (tests.builtinVectors):
1715         (tests.instantiateStructInStruct):
1716         (tests.instantiateStructInStructWithInt2):
1717         (tests.simpleEnum):
1718         (tests.enumWithManualValues):
1719         (tests.enumWithoutZero):
1720         (tests.enumDuplicates):
1721         (tests.enumWithSomeManualValues):
1722         (tests.enumConstexprGenericFunction):
1723         (tests.enumConstexprGenericStruct):
1724         (tests.trap):
1725         (tests.swizzle):
1726         (tests.enumWithExplicitIntBase):
1727         (tests.enumWithUintBase):
1728         (tests.enumFloatBase):
1729         (tests.enumPtrBase):
1730         (tests.enumArrayRefBase):
1731         (tests.emptyStruct):
1732         (tests.enumStructBase):
1733         (tests.enumNoMembers):
1734         (tests.simpleSwitch):
1735         (tests.exhaustiveUint8Switch):
1736         (tests.notQuiteExhaustiveUint8Switch):
1737         (tests.notQuiteExhaustiveUint8SwitchWithDefault):
1738         (tests.switchFallThrough):
1739         (tests.switchBreak):
1740         (tests.enumSwitchBreakExhaustive):
1741         (tests.enumSwitchBreakNotQuiteExhaustive):
1742         (tests.enumSwitchBreakNotQuiteExhaustiveWithDefault):
1743         (tests.simpleRecursiveStruct):
1744         (tests.mutuallyRecursiveStruct):
1745         (tests.mutuallyRecursiveStructWithPointersBroken):
1746         (tests.mutuallyRecursiveStructWithPointers):
1747         (tests.linkedList):
1748         (tests.pointerToPointer):
1749         (tests.arrayRefToArrayRef):
1750         (tests.pointerGetter):
1751         (tests.loneSetter):
1752         (tests.setterWithMismatchedType):
1753         (tests.setterWithMatchedType):
1754         (tests.operatorWithUninferrableTypeVariable):
1755         (tests.operatorWithoutUninferrableTypeVariable):
1756         (tests.operatorCastWithUninferrableTypeVariable):
1757         (tests.operatorCastWithTypeVariableInferredFromReturnType):
1758         (tests.incWrongArgumentLength):
1759         (tests.decWrongArgumentLength):
1760         (tests.incWrongTypes):
1761         (tests.decWrongTypes):
1762         (tests.plusWrongArgumentLength):
1763         (tests.minusWrongArgumentLength):
1764         (tests.timesWrongArgumentLength):
1765         (tests.divideWrongArgumentLength):
1766         (tests.moduloWrongArgumentLength):
1767         (tests.bitAndWrongArgumentLength):
1768         (tests.bitOrWrongArgumentLength):
1769         (tests.bitXorWrongArgumentLength):
1770         (tests.lShiftWrongArgumentLength):
1771         (tests.rShiftWrongArgumentLength):
1772         (tests.bitNotWrongArgumentLength):
1773         (tests.equalsWrongArgumentLength):
1774         (tests.lessThanWrongArgumentLength):
1775         (tests.lessEqualWrongArgumentLength):
1776         (tests.greaterWrongArgumentLength):
1777         (tests.greaterEqualWrongArgumentLength):
1778         (tests.equalsWrongReturnType):
1779         (tests.notEqualsOverload):
1780         (tests.lessThanWrongReturnType):
1781         (tests.lessEqualWrongReturnType):
1782         (tests.greaterThanWrongReturnType):
1783         (tests.greaterEqualWrongReturnType):
1784         (tests.dotOperatorWrongArgumentLength):
1785         (tests.dotOperatorSetterWrongArgumentLength):
1786         (tests.loneSetterPointer):
1787         (tests.setterWithNoGetterOverload):
1788         (tests.setterWithNoGetterOverloadFixed):
1789         (tests.anderWithNothingWrong):
1790         (tests.anderWithWrongNumberOfArguments):
1791         (tests.anderDoesntReturnPointer):
1792         (tests.anderDoesntTakeReference):
1793         (tests.anderWithArrayRef):
1794         (tests.pointerIndexGetter):
1795         (tests.loneIndexSetter):
1796         (tests.notLoneIndexSetter):
1797         (tests.indexSetterWithMismatchedType):
1798         (tests.indexOperatorWrongArgumentLength):
1799         (tests.indexOperatorSetterWrongArgumentLength):
1800         (tests.loneIndexSetterPointer):
1801         (tests.indexSetterWithNoGetterOverload):
1802         (tests.indexSetterWithNoGetterOverloadFixed):
1803         (tests.indexAnderWithNothingWrong):
1804         (tests.indexAnderWithWrongNumberOfArguments):
1805         (tests.indexAnderDoesntReturnPointer):
1806         (tests.indexAnderDoesntTakeReference):
1807         (tests.indexAnderWithArrayRef):
1808         (tests.devicePtrPtr):
1809         (tests.threadgroupPtrPtr):
1810         (tests.constantPtrPtr):
1811         (tests.pointerIndexGetterInProtocol):
1812         (tests.loneIndexSetterInProtocol):
1813         (tests.notLoneIndexSetterInProtocol):
1814         (tests.indexSetterWithMismatchedTypeInProtocol):
1815         (tests.indexOperatorWrongArgumentLengthInProtocol):
1816         (tests.indexOperatorSetterWrongArgumentLengthInProtocol):
1817         (tests.loneIndexSetterPointerInProtocol):
1818         (tests.indexSetterWithNoGetterOverloadInProtocol):
1819         (tests.indexSetterWithNoGetterOverloadFixedInProtocol):
1820         (tests.indexAnderWithNothingWrongInProtocol):
1821         (tests.indexAnderWithWrongNumberOfArgumentsInProtocol):
1822         (tests.indexAnderDoesntReturnPointerInProtocol):
1823         (tests.indexAnderDoesntTakeReferenceInProtocol):
1824         (tests.indexAnderWithArrayRefInProtocol):
1825         (doTest):
1826         (this.window.let._.of.doTest):
1827         (TEST_literalBool): Deleted.
1828         (TEST_identityBool): Deleted.
1829         (TEST_intSimpleMath): Deleted.
1830         (TEST_uintSimpleMath): Deleted.
1831         (TEST_uint8SimpleMath): Deleted.
1832         (TEST_equality): Deleted.
1833         (TEST_logicalNegation): Deleted.
1834         (TEST_notEquality): Deleted.
1835         (TEST_equalityTypeFailure): Deleted.
1836         (): Deleted.
1837         (TEST_add1): Deleted.
1838         (TEST_simpleGeneric): Deleted.
1839         (TEST_nameResolutionFailure): Deleted.
1840         (TEST_simpleAssignment): Deleted.
1841         (TEST_simpleDefault): Deleted.
1842         (TEST_simpleDereference): Deleted.
1843         (TEST_dereferenceStore): Deleted.
1844         (TEST_simpleMakePtr): Deleted.
1845         (TEST_threadArrayLoad): Deleted.
1846         (TEST_threadArrayLoadIntLiteral): Deleted.
1847         (TEST_deviceArrayLoad): Deleted.
1848         (TEST_threadArrayStore): Deleted.
1849         (TEST_deviceArrayStore): Deleted.
1850         (TEST_deviceArrayStoreIntLiteral): Deleted.
1851         (TEST_simpleProtocol): Deleted.
1852         (TEST_typeMismatchReturn): Deleted.
1853         (TEST_simpleNoReturn): Deleted.
1854         (TEST_genericStructInstance): Deleted.
1855         (TEST_doubleGenericCallsDoubleGeneric): Deleted.
1856         (TEST_doubleGenericCallsSingleGeneric): Deleted.
1857         (TEST_dereferenceDefaultNull): Deleted.
1858         (TEST_dereferenceDefaultNullArrayRef): Deleted.
1859         (TEST_returnIntLiteralDouble): Deleted.
1860         (TEST_badIntLiteralForInt): Deleted.
1861         (TEST_passNullAndNotNullFullPoly): Deleted.
1862         (TEST_passNullAndNotNullFullPolyReverse): Deleted.
1863         (TEST_nullTypeVariableUnify.recurse): Deleted.
1864         (TEST_nullTypeVariableUnify.everyOrder): Deleted.
1865         (TEST_nullTypeVariableUnify.everyPair): Deleted.
1866         (TEST_nullTypeVariableUnify): Deleted.
1867         (TEST_simpleRecursion): Deleted.
1868         (TEST_protocolPolySigPolyDef): Deleted.
1869         (TEST_protocolDoublePolySigDoublePolyDef): Deleted.
1870         (TEST_protocolDoublePolySigDoublePolyDefExplicit): Deleted.
1871         (TEST_variableShadowing): Deleted.
1872         (TEST_ifStatement): Deleted.
1873         (TEST_ifElseStatement): Deleted.
1874         (TEST_ifElseIfStatement): Deleted.
1875         (TEST_ifElseIfElseStatement): Deleted.
1876         (TEST_returnIf): Deleted.
1877         (TEST_simpleWhile): Deleted.
1878         (TEST_protocolMonoPolySigDoublePolyDefExplicit): Deleted.
1879         (TEST_intOverloadResolution): Deleted.
1880         (TEST_intOverloadResolutionReverseOrder): Deleted.
1881         (TEST_intOverloadResolutionGeneric): Deleted.
1882         (TEST_intLiteralGeneric): Deleted.
1883         (TEST_intLiteralGenericWithProtocols): Deleted.
1884         (TEST_uintLiteralGeneric): Deleted.
1885         (TEST_uintLiteralGenericWithProtocols): Deleted.
1886         (TEST_intLiteralGenericSpecific): Deleted.
1887         (TEST_simpleConstexpr): Deleted.
1888         (TEST_break): Deleted.
1889         (TEST_forLoop): Deleted.
1890         (TEST_chainConstexpr): Deleted.
1891         (TEST_chainGeneric): Deleted.
1892         (TEST_chainStruct): Deleted.
1893         (TEST_chainStructNewlyValid): Deleted.
1894         (TEST_chainStructDevice): Deleted.
1895         (TEST_paramChainStructDevice): Deleted.
1896         (TEST_simpleProtocolExtends): Deleted.
1897         (TEST_protocolExtendsTwo): Deleted.
1898         (TEST_prefixPlusPlus): Deleted.
1899         (TEST_prefixPlusPlusResult): Deleted.
1900         (TEST_postfixPlusPlus): Deleted.
1901         (TEST_postfixPlusPlusResult): Deleted.
1902         (TEST_prefixMinusMinus): Deleted.
1903         (TEST_prefixMinusMinusResult): Deleted.
1904         (TEST_postfixMinusMinus): Deleted.
1905         (TEST_postfixMinusMinusResult): Deleted.
1906         (TEST_plusEquals): Deleted.
1907         (TEST_plusEqualsResult): Deleted.
1908         (TEST_minusEquals): Deleted.
1909         (TEST_minusEqualsResult): Deleted.
1910         (TEST_timesEquals): Deleted.
1911         (TEST_timesEqualsResult): Deleted.
1912         (TEST_divideEquals): Deleted.
1913         (TEST_divideEqualsResult): Deleted.
1914         (TEST_twoIntLiterals): Deleted.
1915         (TEST_unifyDifferentLiterals): Deleted.
1916         (TEST_buildArrayThenSumItUsingArrayReference): Deleted.
1917         (TEST_overrideSubscriptStruct): Deleted.
1918         (TEST_overrideSubscriptStructAndDoStores): Deleted.
1919         (TEST_overrideSubscriptStructAndUsePointers): Deleted.
1920         (TEST_overrideSubscriptStructAndUsePointersIncorrectly): Deleted.
1921         (TEST_makeArrayRefFromPointer): Deleted.
1922         (TEST_makeArrayRefFromArrayRef): Deleted.
1923         (TEST_nonArrayRefArrayLengthSucceed): Deleted.
1924         (TEST_nonArrayRefArrayLengthFail): Deleted.
1925         (TEST_simpleSetter): Deleted.
1926         (TEST_genericAccessors): Deleted.
1927         (TEST_bitSubscriptAccessor): Deleted.
1928         (TEST_nestedSubscriptLValueEmulationSimple): Deleted.
1929         (TEST_nestedSubscriptLValueEmulationGeneric): Deleted.
1930         (TEST_boolBitAnd): Deleted.
1931         (TEST_boolBitOr): Deleted.
1932         (TEST_boolBitXor): Deleted.
1933         (TEST_boolBitNot): Deleted.
1934         (TEST_intBitAnd): Deleted.
1935         (TEST_intBitOr): Deleted.
1936         (TEST_intBitXor): Deleted.
1937         (TEST_intBitNot): Deleted.
1938         (TEST_intLShift): Deleted.
1939         (TEST_intRShift): Deleted.
1940         (TEST_uintBitAnd): Deleted.
1941         (TEST_uintBitOr): Deleted.
1942         (TEST_uintBitXor): Deleted.
1943         (TEST_uintBitNot): Deleted.
1944         (TEST_uintLShift): Deleted.
1945         (TEST_uintRShift): Deleted.
1946         (TEST_uint8BitAnd): Deleted.
1947         (TEST_uint8BitOr): Deleted.
1948         (TEST_uint8BitXor): Deleted.
1949         (TEST_uint8BitNot): Deleted.
1950         (TEST_uint8LShift): Deleted.
1951         (TEST_uint8RShift): Deleted.
1952         (TEST_floatMath): Deleted.
1953         (TEST_booleanMath): Deleted.
1954         (TEST_typedefArray): Deleted.
1955         (TEST_shaderTypes): Deleted.
1956         (TEST_instantiateStructInStruct): Deleted.
1957         (TEST_instantiateStructInStructWithInt2): Deleted.
1958         (TEST_simpleEnum): Deleted.
1959         (TEST_enumWithManualValues): Deleted.
1960         (TEST_enumWithoutZero): Deleted.
1961         (TEST_enumConstexprGenericFunction): Deleted.
1962         (TEST_enumConstexprGenericStruct): Deleted.
1963         (TEST_trap): Deleted.
1964         (TEST_enumWithExplicitIntBase): Deleted.
1965         (TEST_enumWithUintBase): Deleted.
1966         (TEST_enumFloatBase): Deleted.
1967         (TEST_enumStructBase): Deleted.
1968         (TEST_simpleSwitch): Deleted.
1969         (TEST_exhaustiveUint8Switch): Deleted.
1970         (TEST_notQuiteExhaustiveUint8Switch): Deleted.
1971         (TEST_switchFallThrough): Deleted.
1972         (TEST_switchBreak): Deleted.
1973         (TEST_enumSwitchBreakExhaustive): Deleted.
1974         (TEST_enumSwitchBreakNotQuiteExhaustive): Deleted.
1975         (TEST_simpleRecursiveStruct): Deleted.
1976         (TEST_linkedList): Deleted.
1977         * WebGPUShadingLanguageRI/Type.js:
1978         (Type.prototype.get isArray):
1979         * WebGPUShadingLanguageRI/TypeRef.js:
1980         (TypeRef.wrap):
1981         * WebGPUShadingLanguageRI/TypeVariableTracker.js:
1982         (TypeVariableTracker.prototype.set get return):
1983         (TypeVariableTracker.prototype.visitVariableRef):
1984         (TypeVariableTracker):
1985         * WebGPUShadingLanguageRI/Visitor.js:
1986         (Visitor.prototype.visitProtocolDecl):
1987         * WebGPUShadingLanguageRI/index.html:
1988
1989 2017-09-22  Matt Lewis  <jlewis3@apple.com>
1990
1991         Unreviewed, rolling out r222394.
1992
1993         This broke the Windows Debug Build.
1994
1995         Reverted changeset:
1996
1997         "Remove build-webkit's notion of feature flags having a
1998         default value"
1999         https://bugs.webkit.org/show_bug.cgi?id=177338
2000         http://trac.webkit.org/changeset/222394
2001
2002 2017-09-22  Tim Horton <timothy_horton@apple.com> and Michael Catanzaro <mcatanzaro@igalia.com>
2003
2004         Remove build-webkit's notion of feature flags having a default value
2005         https://bugs.webkit.org/show_bug.cgi?id=177338
2006
2007         Reviewed by Alex Christensen.
2008
2009         Delegate feature flag default values to the build system.
2010         (FeatureDefines.xcconfig for Xcode, WebKitFeatures.cmake and Options*.cmake for CMake, and FeatureDefines.h for everyone)
2011
2012         * BuildSlaveSupport/build.webkit.org-config/config.json:
2013         * BuildSlaveSupport/build.webkit.org-config/master.cfg:
2014         (Factory.__init__):
2015         Update GTK and WPE buildbot configuration to use --no-experimental-features on old stable
2016         bots instead of --default-cmake-features.
2017
2018         * Scripts/build-webkit:
2019         (cMakeArgsFromFeatures):
2020         Default feature values to 'undef'.
2021         Remove the --default-cmake-features argument; it is now the default.
2022         Add --no-experimental-features to replace it.
2023         Stop printing the default feature flag value in the help.
2024         Avoid propagating undefined values to the build system;
2025         only mention flags that are overridden on the command line.
2026
2027         This has the nice side effect of using the default CMake features
2028         for CMake builds, but still allowing toggling of them using the
2029         prettier --FEATURE and --no-FEATURE arguments.
2030
2031         * Scripts/webkitdirs.pm:
2032         (generateBuildSystemFromCMakeProject):
2033         No longer need to suppress CMake warnings about unused arguments.
2034
2035         * Scripts/webkitperl/FeatureList.pm:
2036         Remove the default values from the feature list.
2037
2038 2017-09-21  Joseph Pecoraro  <pecoraro@apple.com>
2039
2040         Unreviewed, add the ability to skip a test262 test.
2041
2042         * Scripts/run-jsc-stress-tests:
2043         Other handlers have :skip but a few didn't.
2044
2045 2017-09-21  Ryan Haddad  <ryanhaddad@apple.com>
2046
2047         Change architecture for ios-ews queue to arm64.
2048         https://bugs.webkit.org/show_bug.cgi?id=177332
2049
2050         Reviewed by Alexey Proskuryakov.
2051
2052         * Scripts/webkitpy/common/config/ews.json:
2053
2054 2017-09-21  Tim Horton  <timothy_horton@apple.com>
2055
2056         Use 'ninja' from the SDK if it exists
2057         https://bugs.webkit.org/show_bug.cgi?id=177330
2058
2059         Reviewed by Alex Christensen.
2060
2061         * Scripts/webkitdirs.pm:
2062         (canUseNinja):
2063         Check for ninja with xcrun in addition to commandExists() for Cocoa platforms.
2064
2065         (generateBuildSystemFromCMakeProject):
2066         (canUseNinjaGenerator): Deleted.
2067         Remove canUseNinjaGenerator; as noted in bug 177057, the Ninja generator
2068         is available in all versions of CMake supported by WebKit.
2069
2070 2017-09-21  Chris Dumez  <cdumez@apple.com>
2071
2072         Regression(r222308): new API tests are failing for !NETWORK_SESSION
2073         https://bugs.webkit.org/show_bug.cgi?id=177321
2074
2075         Reviewed by Alex Christensen.
2076
2077         Unskip API tests now that they pass everywhere.
2078
2079         * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
2080         (TEST):
2081
2082 2017-09-21  Filip Pizlo  <fpizlo@apple.com>
2083
2084         Unreviewed, fix ability to run tests in browser.
2085
2086         * WebGPUShadingLanguageRI/Test.html:
2087         * WebGPUShadingLanguageRI/index.html:
2088
2089 2017-09-21  Jonathan Bedard  <jbedard@apple.com>
2090
2091         webkitpy: Ignore failure to get updated selenium version
2092         https://bugs.webkit.org/show_bug.cgi?id=177205
2093         <rdar://problem/34531669>
2094
2095         Reviewed by Lucas Forschler.
2096
2097         Sometime asking PyPI for the latest version of Selenium fails. We should try and
2098         fallback to, at a minimum, version 3.5.0 or a newer installed version.
2099
2100         * Scripts/webkitpy/thirdparty/__init__.py:
2101         (AutoinstallImportHook.greater_than_equal_to_version): Return true if the second
2102         version string is greater than or equal to the first version string.
2103         (AutoinstallImportHook._install_selenium): If we can't get the latest PyPI url,
2104         fallback to version 3.5.0 or a newer installed version.
2105
2106 2017-09-21  Filip Pizlo  <fpizlo@apple.com>
2107
2108         WSL should have some post-instantiation type checking
2109         https://bugs.webkit.org/show_bug.cgi?id=177303
2110
2111         Reviewed by Keith Miller.
2112         
2113         This patch removes the Primitive protocol! Yay!
2114         
2115         The Primitive protocol was an attempt to handle the fact that Metal wouldn't allow us to point a
2116         non-thread pointer at data structures that have pointers. This type checking rule interacts badly with
2117         generics. I was able to get it to mostly work by making Primitive into a dynamic protocol - a type
2118         belongs to it if it happens to be isPrimitive.
2119         
2120         But that was a mistake, since it makes it hard to create pointers that are generic over address space.
2121         Also, it's not an appropriate rule for targeting SPIR-V logical mode. That rule will be different, and
2122         possibly more complicated.
2123         
2124         All of these kinds of rules are easier to implement of we run them after instantiation, since then they
2125         don't get in the way of generics. That's what this patch does.
2126         
2127         This means that we get all of the same type checking power as before, and we still can catch the errors
2128         that Metal requires us to check for. It's easier to do those checks now.
2129         
2130         Finally, this removes the shader type checker's incomplete reimplementation of isPrimitive (which was
2131         called NonNumericSearcher). The shader type checker calls isPrimitive now.
2132
2133         * WebGPUShadingLanguageRI/AddressSpace.js:
2134         (needsPrimitiveProtocol): Deleted.
2135         (protocolSuffix): Deleted.
2136         * WebGPUShadingLanguageRI/All.js:
2137         * WebGPUShadingLanguageRI/Checker.js:
2138         (Checker.prototype._checkShaderType):
2139         (Checker.prototype._checkShaderType.NonNumericSearcher): Deleted.
2140         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType): Deleted.
2141         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType): Deleted.
2142         (Checker.prototype.visitReferenceType): Deleted.
2143         * WebGPUShadingLanguageRI/FuncInstantiator.js:
2144         (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitFuncDef):
2145         * WebGPUShadingLanguageRI/Inline.js:
2146         (_inlineFunction):
2147         * WebGPUShadingLanguageRI/Intrinsics.js:
2148         (Intrinsics):
2149         * WebGPUShadingLanguageRI/LateChecker.js: Added.
2150         (LateChecker):
2151         (LateChecker.prototype.visitReferenceType):
2152         (LateChecker.prototype._checkShaderType):
2153         (LateChecker.prototype.visitFuncDef):
2154         * WebGPUShadingLanguageRI/LexerToken.js:
2155         (LexerToken.prototype.get isInternal): Deleted.
2156         * WebGPUShadingLanguageRI/NativeType.js:
2157         (NativeType):
2158         (NativeType.prototype.get name):
2159         (NativeType.prototype.get isPrimitive):
2160         (NativeType.prototype.set isPrimitive):
2161         (NativeType.prototype.toString):
2162         * WebGPUShadingLanguageRI/Parse.js:
2163         (parseNative):
2164         * WebGPUShadingLanguageRI/ProgramWithUnnecessaryThingsRemoved.js:
2165         (programWithUnnecessaryThingsRemoved):
2166         * WebGPUShadingLanguageRI/ProtocolDecl.js:
2167         * WebGPUShadingLanguageRI/ReferenceType.js:
2168         (ReferenceType.prototype.get elementType):
2169         (ReferenceType.prototype.get isPrimitive): Deleted.
2170         * WebGPUShadingLanguageRI/StandardLibrary.js:
2171         * WebGPUShadingLanguageRI/StatementCloner.js:
2172         (StatementCloner.prototype.visitNativeType):
2173         * WebGPUShadingLanguageRI/SynthesizeStructAccessors.js:
2174         (synthesizeStructAccessors):
2175         * WebGPUShadingLanguageRI/Test.js:
2176         (TEST_passNullAndNotNullFullPoly):
2177         (TEST_passNullAndNotNullFullPolyReverse):
2178         (TEST_nullTypeVariableUnify):
2179         (TEST_chainStructNewlyValid):
2180         (TEST_chainStructDevice):
2181         (TEST_chainStructInvalid): Deleted.
2182         * WebGPUShadingLanguageRI/Type.js:
2183         (Type.prototype.get isPrimitive):
2184
2185 2017-09-21  Chris Dumez  <cdumez@apple.com>
2186
2187         Unreviewed, temporarily disable new API tests introduced in r222308 until they pass on El Capitan
2188
2189         * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
2190         (TEST):
2191
2192 2017-09-21  Commit Queue  <commit-queue@webkit.org>
2193
2194         Unreviewed, rolling out r222272.
2195         https://bugs.webkit.org/show_bug.cgi?id=177316
2196
2197         This patch broke builds on some Win EWS bots. (Requested by
2198         perarne on #webkit).
2199
2200         Reverted changeset:
2201
2202         "[Win] Cygwin 64-bit EWS process cannot find Visual Studio
2203         installation."
2204         https://bugs.webkit.org/show_bug.cgi?id=177244
2205         http://trac.webkit.org/changeset/222272
2206
2207 2017-09-21  Filip Pizlo  <fpizlo@apple.com>
2208
2209         Unreviewed, fix a bug in the interactive app that was introduced by bad merging.
2210
2211         * WebGPUShadingLanguageRI/FlattenedStructOffsetGatherer.js:
2212         (FlattenedStructOffsetGatherer.prototype.visitTypeRef):
2213         (FlattenedStructOffsetGatherer):
2214         * WebGPUShadingLanguageRI/index.html:
2215
2216 2017-09-20  Filip Pizlo  <fpizlo@apple.com>
2217
2218         WSL should support switch
2219         https://bugs.webkit.org/show_bug.cgi?id=176978
2220
2221         Reviewed by Keith Miller.
2222         
2223         This adds fairly complete support for switch statements. This includes things like verifying
2224         whether or not a default statement is needed. This even works when the programmer lists all of
2225         the values of an integer type.
2226         
2227         To test that last part, this patch adds uint8 support. It's easy add it, but of course it
2228         meant adding a lot of tests.
2229         
2230         This also fixes enum bugs, since switch does things to enums that we previously didn't test.
2231
2232         * WebGPUShadingLanguageRI/All.js:
2233         * WebGPUShadingLanguageRI/Checker.js:
2234         (Checker.prototype.visitSwitchStatement):
2235         * WebGPUShadingLanguageRI/EnumLiteral.js:
2236         (EnumLiteral.prototype.get valueForSelectedType):
2237         * WebGPUShadingLanguageRI/EnumType.js:
2238         (EnumType.prototype.allValues):
2239         (EnumType.prototype.valuesEqual):
2240         * WebGPUShadingLanguageRI/Evaluator.js:
2241         (Evaluator.prototype.visitSwitchStatement):
2242         * WebGPUShadingLanguageRI/Inliner.js:
2243         (Inliner.prototype.visitCallExpression):
2244         (Inliner):
2245         (Inliner.prototype.visitCastExpression): Deleted.
2246         * WebGPUShadingLanguageRI/Intrinsics.js:
2247         (Intrinsics.):
2248         (Intrinsics):
2249         * WebGPUShadingLanguageRI/LoopChecker.js:
2250         (LoopChecker):
2251         (LoopChecker.prototype.visitFuncDef):
2252         (LoopChecker.prototype.visitWhileLoop):
2253         (LoopChecker.prototype.visitDoWhileLoop):
2254         (LoopChecker.prototype.visitForLoop):
2255         (LoopChecker.prototype.visitSwitchStatement):
2256         (LoopChecker.prototype.visitBreak):
2257         (LoopChecker.prototype.visitContinue):
2258         * WebGPUShadingLanguageRI/Node.js:
2259         (Node.prototype.commit):
2260         * WebGPUShadingLanguageRI/Parse.js:
2261         (parseSwitchCase):
2262         (parseSwitchStatement):
2263         (parseStatement):
2264         (parseBlockBody):
2265         (parseBlock):
2266         * WebGPUShadingLanguageRI/Prepare.js:
2267         (let.prepare):
2268         * WebGPUShadingLanguageRI/ReturnChecker.js:
2269         (ReturnChecker.prototype._mergeReturnStyle):
2270         (ReturnChecker.prototype.visitIfStatement):
2271         (ReturnChecker.prototype.visitWhileLoop):
2272         (ReturnChecker.prototype.visitDoWhileLoop):
2273         (ReturnChecker.prototype.visitForLoop):
2274         (ReturnChecker.prototype.visitSwitchStatement):
2275         (ReturnChecker.prototype.visitContinue):
2276         (ReturnChecker):
2277         * WebGPUShadingLanguageRI/Rewriter.js:
2278         (Rewriter.prototype.visitSwitchStatement):
2279         (Rewriter.prototype.visitSwitchCase):
2280         * WebGPUShadingLanguageRI/StandardLibrary.js:
2281         (uint8.operator):
2282         (bool.operator):
2283         (_generateSwizzle):
2284         * WebGPUShadingLanguageRI/SwitchCase.js: Added.
2285         (SwitchCase):
2286         (SwitchCase.prototype.get origin):
2287         (SwitchCase.prototype.get isDefault):
2288         (SwitchCase.prototype.get value):
2289         (SwitchCase.prototype.get body):
2290         (SwitchCase.prototype.toString):
2291         * WebGPUShadingLanguageRI/SwitchStatement.js: Added.
2292         (SwitchStatement):
2293         (SwitchStatement.prototype.get origin):
2294         (SwitchStatement.prototype.get value):
2295         (SwitchStatement.prototype.add):
2296         (SwitchStatement.prototype.get switchCases):
2297         (SwitchStatement.prototype.toString):
2298         * WebGPUShadingLanguageRI/Test.html:
2299         * WebGPUShadingLanguageRI/Test.js:
2300         (makeUint8):
2301         (makeEnum):
2302         (checkUint8):
2303         (TEST_uint8SimpleMath):
2304         (TEST_equality):
2305         (TEST_notEquality):
2306         (TEST_uint8BitAnd):
2307         (TEST_uint8BitOr):
2308         (TEST_uint8BitXor):
2309         (TEST_uint8BitNot):
2310         (TEST_uint8LShift):
2311         (TEST_uint8RShift):
2312         (TEST_enumWithExplicitIntBase):
2313         (TEST_enumWithUintBase):
2314         (TEST_enumFloatBase):
2315         (TEST_enumStructBase):
2316         (TEST_simpleSwitch):
2317         (TEST_exhaustiveUint8Switch):
2318         (TEST_notQuiteExhaustiveUint8Switch):
2319         (TEST_switchFallThrough):
2320         (TEST_switchBreak):
2321         (TEST_enumSwitchBreakExhaustive):
2322         (TEST_enumSwitchBreakNotQuiteExhaustive):
2323         (doTest):
2324         * WebGPUShadingLanguageRI/UnificationContext.js:
2325         (UnificationContext):
2326         (UnificationContext.prototype.addExtraNode):
2327         (UnificationContext.prototype.get nodes):
2328         * WebGPUShadingLanguageRI/Visitor.js:
2329         (Visitor.prototype.visitProtocolDecl):
2330         * WebGPUShadingLanguageRI/index.html:
2331
2332 2017-09-20  Filip Pizlo  <fpizlo@apple.com>
2333
2334         WSL needs a way to verify that structs are not cyclic
2335         https://bugs.webkit.org/show_bug.cgi?id=177044
2336
2337         Reviewed by Myles Maxfield.
2338         
2339         This adds a recursive type checking phase. Even before adding this phase, the compiler would
2340         successfully detect recursive types - but at the cost of also rejecting programs that had
2341         recursive types indirectly through pointers. To make both things work, I had to change Visitor
2342         to no longer visit TypeRef.type by default. This resulted in some other changes in a few other
2343         parts of the code that previously relied on that behavior.
2344
2345         * WebGPUShadingLanguageRI/All.js:
2346         * WebGPUShadingLanguageRI/CheckRecursiveTypes.js: Added.
2347         (checkRecursiveTypes):
2348         * WebGPUShadingLanguageRI/Checker.js:
2349         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType):
2350         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType):
2351         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitTypeRef):
2352         (Checker.prototype._checkShaderType.NonNumericSearcher):
2353         (Checker.prototype._checkShaderType):
2354         (Checker.prototype.visitTypeRef):
2355         * WebGPUShadingLanguageRI/NameResolver.js:
2356         (NameResolver.prototype.visitProtocolDecl):
2357         * WebGPUShadingLanguageRI/Prepare.js:
2358         (let.prepare):
2359         * WebGPUShadingLanguageRI/RecursiveTypeChecker.js: Added.
2360         (RecursiveTypeChecker):
2361         (RecursiveTypeChecker.prototype.visitFuncDef):
2362         (RecursiveTypeChecker.prototype.visitNativeFunc):
2363         (RecursiveTypeChecker.prototype.visitStructType):
2364         (RecursiveTypeChecker.prototype.visitReferenceType):
2365         (RecursiveTypeChecker.prototype.visitTypeRef):
2366         * WebGPUShadingLanguageRI/StructLayoutBuilder.js:
2367         (StructLayoutBuilder.prototype.visitTypeRef):
2368         (StructLayoutBuilder):
2369         * WebGPUShadingLanguageRI/Test.html:
2370         * WebGPUShadingLanguageRI/Test.js:
2371         (TEST_simpleRecursiveStruct):
2372         * WebGPUShadingLanguageRI/TypeDefResolver.js:
2373         (TypeDefResolver.prototype.visitTypeRef):
2374         (TypeDefResolver):
2375         * WebGPUShadingLanguageRI/Visitor.js:
2376         (Visitor.prototype.visitProtocolDecl):
2377         * WebGPUShadingLanguageRI/index.html:
2378
2379 2017-09-21  Ryan Haddad  <ryanhaddad@apple.com>
2380
2381         Update TestResultsServer for iOS 11 queues.
2382         https://bugs.webkit.org/show_bug.cgi?id=177285
2383
2384         Reviewed by Alexey Proskuryakov.
2385
2386         * TestResultServer/static-dashboards/builders.jsonp:
2387
2388 2017-09-21  Alex Christensen  <achristensen@webkit.org>
2389
2390         REGRESSION(r221465) WKWebViews without WebGL delegate callbacks crash when WebGL contexts are created
2391         https://bugs.webkit.org/show_bug.cgi?id=177306
2392         <rdar://problem/34351988>
2393
2394         Reviewed by Chris Dumez.
2395
2396         * TestWebKitAPI/Tests/WebKitCocoa/WebGLPolicy.mm:
2397         (-[WebGLTestDelegate webView:startURLSchemeTask:]):
2398         (-[DelegateWithoutWebGL webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
2399         (TEST):
2400
2401 2017-09-20  Joseph Pecoraro  <pecoraro@apple.com>
2402
2403         Update test262 tests
2404         https://bugs.webkit.org/show_bug.cgi?id=177220
2405
2406         Reviewed by Saam Barati and Yusuke Suzuki.
2407
2408         * Scripts/import-test262-tests:
2409         - better detect upstream git repository url from import location
2410         - update JSTest test262 resources when importing from repository
2411         - take seconds instead of 20+ minutes to write yaml with --failures
2412         - update "negative" command to only include just the exception type
2413
2414 2017-09-20  Chris Dumez  <cdumez@apple.com>
2415
2416         [WK2] Add API to get the redirect chain of a WKDownload
2417         https://bugs.webkit.org/show_bug.cgi?id=176628
2418         <rdar://problem/34338279>
2419
2420         Reviewed by Alex Christensen.
2421
2422         Add API test coverage for the 2 cases:
2423         1. Download started as a download and is redirected while
2424            downloading.
2425         2. Download started as a load and was redirected during the
2426            initial load.
2427
2428         * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
2429         (-[RedirectedDownloadDelegate _download:didReceiveServerRedirectToURL:]):
2430         (-[RedirectedDownloadDelegate _downloadDidFinish:]):
2431         (TEST):
2432
2433 2017-09-20  Alex Christensen  <achristensen@webkit.org>
2434
2435         Add infrastructure for adding custom headers to requests per website
2436         https://bugs.webkit.org/show_bug.cgi?id=177255
2437
2438         Reviewed by Geoffrey Garen.
2439
2440         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2441         * TestWebKitAPI/Tests/WebCore/HTTPHeaderField.cpp: Added.
2442         (shouldRemainUnchanged):
2443         (shouldBeInvalid):
2444         (shouldBecome):
2445         (TEST):
2446         * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
2447         (TEST):
2448
2449 2017-09-20  Daniel Bates  <dabates@apple.com>
2450
2451         Spelling and grammar dots should not overlap
2452         https://bugs.webkit.org/show_bug.cgi?id=177265
2453         <rdar://problem/34556424>
2454
2455         Reviewed by David Hyatt.
2456
2457         Add unit tests for the subdivision algorithm.
2458
2459         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2460         * TestWebKitAPI/Tests/WebCore/MarkerSubrange.cpp: Added.
2461         (WebCore::operator<<):
2462         (WebCore::operator==):
2463         (TestWebKitAPI::TEST):
2464
2465 2017-09-20  Filip Pizlo  <fpizlo@apple.com>
2466
2467         WSL should not type-check functions in the standard library that it does not use
2468         https://bugs.webkit.org/show_bug.cgi?id=177269
2469
2470         Reviewed by JS Bastien.
2471         
2472         Once we added all of the swizzling operators, the size of the standard library ballooned to the point
2473         where it's just not practical to compile anything anymore. If you want to compile
2474         "int foo(int x) { return x}" then it will take some ridiculous amount of time (many seconds) because WSL
2475         will have to type check all of those swizzling operators.
2476         
2477         This change makes it so that after parsing the whole program, we remove the things that we aren't using.
2478         We can make a really good estimate of what we need even before doing any name resolution. In practice,
2479         this change removes almost all of the things from Program before we get to the hard work of type
2480         checking. That's true because the standard library contains _many_ things and you'd have to try very
2481         hard to use all of them.
2482         
2483         This is a 13x speed-up for Test.js. It went from 155 seconds to 12 seconds on my machine.
2484
2485         * WebGPUShadingLanguageRI/All.js:
2486         * WebGPUShadingLanguageRI/ConstexprTypeParameter.js:
2487         (ConstexprTypeParameter.prototype.get origin):
2488         * WebGPUShadingLanguageRI/Intrinsics.js:
2489         * WebGPUShadingLanguageRI/Lexer.js:
2490         (Lexer):
2491         (Lexer.prototype.get originKind):
2492         * WebGPUShadingLanguageRI/LexerToken.js:
2493         (LexerToken.prototype.get lexer):
2494         (LexerToken.prototype.get origin):
2495         (LexerToken.prototype.get originKind):
2496         (LexerToken.prototype.get isInternal):
2497         * WebGPUShadingLanguageRI/NameContext.js:
2498         (isWildcardKind):
2499         (NameContext.prototype.add):
2500         (NameContext.prototype.get let):
2501         (NameContext.prototype.mapFor): Deleted.
2502         * WebGPUShadingLanguageRI/NameFinder.js: Added.
2503         (NameFinder):
2504         (NameFinder.get worklist):
2505         * WebGPUShadingLanguageRI/NameResolver.js:
2506         (NameResolver.prototype.visitProtocolDecl):
2507         * WebGPUShadingLanguageRI/OriginKind.js: Added.
2508         (isOriginKind):
2509         * WebGPUShadingLanguageRI/Prepare.js:
2510         (let.prepare):
2511         * WebGPUShadingLanguageRI/ProgramWithUnnecessaryThingsRemoved.js: Added.
2512         (programWithUnnecessaryThingsRemoved):
2513         * WebGPUShadingLanguageRI/Test.html:
2514         * WebGPUShadingLanguageRI/Test.js:
2515         (doTest):
2516         * WebGPUShadingLanguageRI/index.html:
2517
2518 2017-09-20  Alex Christensen  <achristensen@webkit.org>
2519
2520         Remove ActionType::CSSDisplayNoneStyleSheet
2521         https://bugs.webkit.org/show_bug.cgi?id=177275
2522
2523         Reviewed by Andy Estes.
2524
2525         * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
2526         (WebCore::ContentExtensions::operator<<):
2527         (TestWebKitAPI::testRequest):
2528         (TestWebKitAPI::TEST_F):
2529
2530 2017-09-20  Jonathan Bedard  <jbedard@apple.com>
2531
2532         Device iOS 11 builds fail with FileProvider linker errors
2533         https://bugs.webkit.org/show_bug.cgi?id=177272
2534         <rdar://problem/34557680>
2535
2536         Reviewed by David Kilzer.
2537
2538         For iOS device and simulator, the SYSTEM_LIBRARY_DIR should never
2539         be on the framework search path as neither platform should ever link
2540         with Mac frameworks.
2541
2542         * DumpRenderTree/mac/Configurations/Base.xcconfig:
2543         * WebKitTestRunner/Configurations/Base.xcconfig:
2544
2545 2017-09-20  Alex Christensen  <achristensen@webkit.org>
2546
2547         Remove ActionType::InvalidAction
2548         https://bugs.webkit.org/show_bug.cgi?id=177262
2549
2550         Reviewed by Tim Horton.
2551
2552         * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
2553         (WebCore::ContentExtensions::operator<<):
2554
2555 2017-09-20  Myles C. Maxfield  <mmaxfield@apple.com>
2556
2557         Make a playground where people can try WSL
2558         https://bugs.webkit.org/show_bug.cgi?id=177125
2559
2560         Reviewed by Filip Pizlo.
2561
2562         This patch creates a webpage, index.html, which lets users type in a WSL program and
2563         run it, and see the results.
2564
2565         * WebGPUShadingLanguageRI/All.js:
2566         * WebGPUShadingLanguageRI/CallFunction.js:
2567         (callFunction):
2568         * WebGPUShadingLanguageRI/Checker.js:
2569         (Checker):
2570         (Checker.prototype._checkShaderType.NonNumericSearcher):
2571         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType):
2572         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType):
2573         (Checker.prototype._checkShaderType):
2574         (Checker.prototype.visitFuncDef):
2575         (Checker.prototype._requireBool):
2576         * WebGPUShadingLanguageRI/FlattenedStructOffsetGatherer.js: Copied from Tools/WebGPUShadingLanguageRI/CallFunction.js.
2577         (FlattenedStructOffsetGatherer):
2578         (FlattenedStructOffsetGatherer.prototype.get result):
2579         (FlattenedStructOffsetGatherer.prototype.visitReferenceType):
2580         (FlattenedStructOffsetGatherer.prototype.visitField):
2581         (FlattenedStructOffsetGatherer.prototype.visitNativeType):
2582         * WebGPUShadingLanguageRI/Func.js:
2583         (Func.prototype.toDeclString):
2584         * WebGPUShadingLanguageRI/Inline.js:
2585         (resolveInlinedFunction):
2586         * WebGPUShadingLanguageRI/NameContext.js:
2587         (NameContext.prototype.get let):
2588         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
2589         (resolveOverloadImpl):
2590         * WebGPUShadingLanguageRI/StandardLibrary.js:
2591         * WebGPUShadingLanguageRI/Test.html:
2592         * WebGPUShadingLanguageRI/Test.js:
2593         (TEST_shaderTypes):
2594         * WebGPUShadingLanguageRI/index.html: Added.
2595
2596 2017-09-20  Myles C. Maxfield  <mmaxfield@apple.com>
2597
2598         [WSL] Restrict vertex and fragment entry points according to WSL.md
2599         https://bugs.webkit.org/show_bug.cgi?id=177253
2600
2601         Reviewed by Filip Pizlo.
2602
2603         Entry points can't have template arguments, and their argument/return types need to be restricted.
2604
2605         * WebGPUShadingLanguageRI/Checker.js:
2606         (Checker):
2607         (Checker.prototype._checkShaderType.NonNumericSearcher):
2608         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType):
2609         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType):
2610         (Checker.prototype._checkShaderType):
2611         (Checker.prototype.visitFuncDef):
2612         (Checker.prototype._requireBool):
2613         * WebGPUShadingLanguageRI/Func.js:
2614         (Func.prototype.toDeclString):
2615         * WebGPUShadingLanguageRI/Test.js:
2616         (TEST_shaderTypes):
2617
2618 2017-09-20  Per Arne Vollan  <pvollan@apple.com>
2619
2620         [Win] Cygwin 64-bit EWS process cannot find Visual Studio installation.
2621         https://bugs.webkit.org/show_bug.cgi?id=177244
2622
2623         Reviewed by Alex Christensen.
2624
2625         The 64-bit EWS shell process should try to find Visual Studio in the 32-bit program files folder.
2626
2627         * EWSTools/start-queue-win.sh:
2628
2629 2017-09-20  Myles C. Maxfield  <mmaxfield@apple.com>
2630
2631         Create vector swizzle operators in WSL's standard library
2632         https://bugs.webkit.org/show_bug.cgi?id=177116
2633
2634         Reviewed by Filip Pizlo.
2635
2636         Because there are 481 possible swizzling operators, StandardLibrary.js generates them
2637         instead of including them by hand.
2638
2639         Adding so many functions slows down the compiler quite a bit.
2640
2641         * WebGPUShadingLanguageRI/Prepare.js:
2642         (prepare):
2643         * WebGPUShadingLanguageRI/StandardLibrary.js:
2644         (intToString):
2645         (_generateSwizzle):
2646
2647 2017-09-20  Ms2ger  <Ms2ger@igalia.com>
2648
2649         [WPE] Update fontconfig to 2.12.4.
2650         https://bugs.webkit.org/show_bug.cgi?id=177228
2651
2652         Reviewed by Carlos Garcia Campos.
2653
2654         * wpe/jhbuild.modules:
2655         * wpe/patches/fontconfig-avoid-conflicts-with-integer-width-macros-from-TS-18.patch: Removed.
2656
2657 2017-09-19  Myles C. Maxfield  <mmaxfield@apple.com>
2658
2659         WSL should be able to trap when something fatal happens
2660         https://bugs.webkit.org/show_bug.cgi?id=177110
2661
2662         Reviewed by Filip Pizlo.
2663
2664         WSL programs can include a statement "trap;" which causes the entry
2665         point to immediately return the default value of its return type.
2666         This is implemented by throw/catch and populateDefaultValue().
2667
2668         * WebGPUShadingLanguageRI/All.js:
2669         * WebGPUShadingLanguageRI/EvaluationCommon.js:
2670         * WebGPUShadingLanguageRI/Evaluator.js:
2671         (Evaluator.prototype.visitTrapStatement):
2672         * WebGPUShadingLanguageRI/Parse.js:
2673         (parseStatement):
2674         * WebGPUShadingLanguageRI/ReturnChecker.js:
2675         (ReturnChecker.prototype.visitTrapStatement):
2676         * WebGPUShadingLanguageRI/Rewriter.js:
2677         (Rewriter.prototype.visitTrapStatement):
2678         * WebGPUShadingLanguageRI/StandardLibrary.js:
2679         * WebGPUShadingLanguageRI/Test.html:
2680         * WebGPUShadingLanguageRI/Test.js:
2681         * WebGPUShadingLanguageRI/TrapStatement.js: Copied from Tools/WebGPUShadingLanguageRI/EvaluationCommon.js.
2682         (TrapStatement):
2683         (TrapStatement.prototype.get origin):
2684         (TrapStatement.prototype.toString):
2685         * WebGPUShadingLanguageRI/Visitor.js:
2686         (Visitor.prototype.visitProtocolDecl):
2687
2688 2017-09-19  Ryan Haddad  <ryanhaddad@apple.com>
2689
2690         Unreviewed follow-up to r222229, remove invalid triggers.
2691
2692         * BuildSlaveSupport/build.webkit.org-config/config.json:
2693
2694 2017-09-19  Simon Fraser  <simon.fraser@apple.com>
2695
2696         tiled-drawing/tiled-backing-in-window.html fails on Retina displays
2697         https://bugs.webkit.org/show_bug.cgi?id=177113
2698
2699         Reviewed by Tim Horton.
2700
2701         This test removes the view from the window, and then dumps the layer tree, at which point
2702         some layers would report a contentsScale of 2 on Retina displays.
2703
2704         This occurs because WebKitTestRunner overrides the default device scale factor on NSWindow,
2705         but windowless views fall back to [NSScreen mainScreen].backingScaleFactor (in WebViewImpl::intrinsicDeviceScaleFactor()).
2706
2707         Fix by having PlatformWebView::changeWindowScaleIfNeeded() call -_setOverrideDeviceScaleFactor: on the view.
2708
2709         * WebKitTestRunner/mac/PlatformWebViewMac.mm:
2710         (WTR::PlatformWebView::changeWindowScaleIfNeeded):
2711
2712 2017-09-19  Wenson Hsieh  <wenson_hsieh@apple.com>
2713
2714         REGRESSION (r215613): Incorrect corners clipping with border-radius
2715         https://bugs.webkit.org/show_bug.cgi?id=176498
2716         <rdar://problem/34112607>
2717
2718         Reviewed by Tim Horton.
2719
2720         Add WebCore API tests for RoundedRect::contains().
2721
2722         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2723         * TestWebKitAPI/Tests/WebCore/RoundedRectTests.cpp: Added.
2724         (TestWebKitAPI::layoutRect):
2725         (TestWebKitAPI::TEST):
2726
2727 2017-09-19  Youenn Fablet  <youenn@apple.com>
2728
2729         Allow WTF::map to use any class that is iterable and has a size getter
2730         https://bugs.webkit.org/show_bug.cgi?id=177026
2731
2732         Reviewed by Darin Adler.
2733
2734         * TestWebKitAPI/Tests/WTF/Vector.cpp:
2735         (TestWebKitAPI::TEST):
2736
2737 2017-09-19  Ryan Haddad  <ryanhaddad@apple.com>
2738
2739         Update bot configuration for iOS 11.
2740         https://bugs.webkit.org/show_bug.cgi?id=177165
2741
2742         Reviewed by Alexey Proskuryakov.
2743
2744         * BuildSlaveSupport/build.webkit.org-config/config.json:
2745         * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:
2746         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:
2747         (BubbleQueueServer):
2748         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
2749         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
2750         (WebKitBuildbot):
2751         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
2752         (table.queue-grid tr.platform.ios-simulator-10 img.logo): Deleted.
2753         (table.queue-grid tr.platform.ios-10 img.logo): Deleted.
2754         * BuildSlaveSupport/build.webkit.org-config/wkbuild.py:
2755         (_should_file_trigger_build):
2756         * BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py:
2757         (ShouldBuildTest):
2758         (ShouldBuildTest.test_should_build):
2759
2760 2017-09-19  Filip Pizlo  <fpizlo@apple.com>
2761
2762         Primitive protocol should have capital name
2763         https://bugs.webkit.org/show_bug.cgi?id=177097
2764
2765         Reviewed by JF Bastien.
2766         
2767         As soon as I started programming in WSL, I found that I preferred to capitalize protocol names. So, my
2768         early decision to call the primitive protocol "primitive" instead of "Primitive" seems absurd now. This
2769         change reverses that decision.
2770         
2771         Aesthetically, this is a slight improvement. For example:
2772         
2773             struct Bar<T:Primitive> {
2774                 Foo<device T^> f;
2775             }
2776
2777         This makes more sense since all of the non-keyword type identifiers are capital.
2778         
2779         The one place where this is an aesthetic regression is native primitive typedefs, which now look like:
2780         
2781             native Primitive typedef bool;
2782         
2783         I'm happy with that tradeoff, since native typedefs are only in the standard library. Users don't see
2784         this.
2785
2786         * WebGPUShadingLanguageRI/AddressSpace.js:
2787         (protocolSuffix):
2788         * WebGPUShadingLanguageRI/Intrinsics.js:
2789         (Intrinsics):
2790         * WebGPUShadingLanguageRI/NativeType.js:
2791         (NativeType.prototype.toString):
2792         (NativeType):
2793         * WebGPUShadingLanguageRI/Parse.js:
2794         (parseNative):
2795         * WebGPUShadingLanguageRI/StandardLibrary.js:
2796         * WebGPUShadingLanguageRI/Test.js:
2797         (TEST_passNullAndNotNullFullPoly):
2798         (TEST_passNullAndNotNullFullPolyReverse):
2799
2800 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
2801
2802         Cannot put typedefs of templated structs inside structs
2803         https://bugs.webkit.org/show_bug.cgi?id=177123
2804
2805         Reviewed by Michael Saboff.
2806         
2807         Ever since I wrote the generic type instantiation code in WSL, it had a bizarre stink to it. I
2808         did not know what it was, until I met this test case:
2809         
2810             struct Foo { int2 x; }
2811         
2812         The problem was that Type has a getter called instantiatedType, which invoked
2813         InstantiateImmediates. That's great. Where we went wrong was that TypeRef overrode
2814         instantiatedType, and then InstantiateImmediates called TypeRef.instantiatedType from its
2815         visitTypeRef. What a mess. None of that was necessary for anything, and it was just wrong. This
2816         patch fixes it so that:
2817         
2818         - Type has an instantiatedType getter, which does InstantiateImmediates. I didn't change this.
2819           This was the only part of the status quo that really made sense.
2820         
2821         - TypeRef no longer overrides instantiatedType.
2822         
2823         - InstantianteImmediates.prototype.visitTypeRef now does what TypeRef's instantiatedType would
2824           have done.
2825         
2826         And voila! This test case passes and so do all of the other test cases.
2827         
2828         The reason why that specific test case did not work was that the use of a TypeDef (int2) for
2829         a generic type instantiation (vec2<int>) caused there to be two TypeRef's in a row, sorta like
2830         this, if we could use wrap() to denote a TypeRef that just wrapped another type:
2831         
2832             wrap(vec2<int>)
2833         
2834         We would call instantiatedType on this monstrosity. Since TypeRef overrode instantiatedType,
2835         we would stop there because that TypeRef has no type arguments - it's just a wrapper. Well,
2836         actually, we'd do something a bit stranger than stopping there - there's more to the story -
2837         but the effect was the same. Now we do InstantiateImmediates, which recursively builds a new
2838         type. This chews through the wrapper and then instantiates the wrapped type, as we want it to.
2839         Also, this approach no longer has the stink. instantiatedType isn't overriden by anyone
2840         anymore!
2841
2842         * WebGPUShadingLanguageRI/Checker.js:
2843         * WebGPUShadingLanguageRI/InstantiateImmediates.js:
2844         (InstantiateImmediates.prototype.visitTypeRef):
2845         (InstantiateImmediates.prototype.visitReferenceType): Deleted.
2846         * WebGPUShadingLanguageRI/Test.js:
2847         (TEST_instantiateStructInStructWithInt2):
2848         * WebGPUShadingLanguageRI/TypeRef.js:
2849         (TypeRef.wrap):
2850         (TypeRef.prototype.setTypeAndArguments):
2851         (TypeRef.prototype.toString):
2852         (TypeRef):
2853         (TypeRef.prototype.get instantiatedType): Deleted.
2854
2855 2017-09-19  Per Arne Vollan  <pvollan@apple.com>
2856
2857         [Win] WebKit fails to build with 64-bit Perl.
2858         https://bugs.webkit.org/show_bug.cgi?id=177106
2859
2860         Reviewed by Brent Fulgham.
2861
2862         Visual Studio is installed in the 32-bit program files folder.
2863  
2864         * Scripts/webkitdirs.pm:
2865         (programFilesPathX86):
2866         (visualStudioInstallDir):
2867         (msBuildInstallDir):
2868
2869 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
2870
2871         [WSL] Cannot put templated structs inside structs
2872         https://bugs.webkit.org/show_bug.cgi?id=177120
2873
2874         Reviewed by Myles Maxfield.
2875         
2876         It turns out that we still need to instantiate structs even if not passing type arguments,
2877         since its fields may need to be instantiated.
2878         
2879         This makes Myles's test case pass. When writing the test case, I encountered parser bugs, and
2880         I fixed them.
2881
2882         * WebGPUShadingLanguageRI/CallFunction.js:
2883         (callFunction):
2884         * WebGPUShadingLanguageRI/Checker.js:
2885         (Checker.prototype.visitReferenceType):
2886         * WebGPUShadingLanguageRI/FuncInstantiator.js:
2887         (FuncInstantiator.prototype.getUnique):
2888         (FuncInstantiator):
2889         * WebGPUShadingLanguageRI/Parse.js:
2890         (parseSuffixOperator):
2891         (parsePossibleSuffix):
2892         (parsePostIncrement):
2893         * WebGPUShadingLanguageRI/StructType.js:
2894         (StructType.prototype.instantiate):
2895         * WebGPUShadingLanguageRI/Test.js:
2896         (checkNumber):
2897         (checkEnum):
2898         (TEST_instantiateStructInStruct):
2899         * WebGPUShadingLanguageRI/TypeRef.js:
2900         (TypeRef.prototype.get instantiatedType):
2901         (TypeRef.prototype.get isPrimitive):
2902
2903 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
2904
2905         WSL should support enum
2906         https://bugs.webkit.org/show_bug.cgi?id=176977
2907
2908         Reviewed by Myles Maxfield.
2909         
2910         This implements enum. Enums members are referenced Java-style. For example, if we have an enum like:
2911         
2912             enum Bank {
2913                 GP,
2914                 FP
2915             }
2916         
2917         Then you refer to the members by saying Bank.GP and Bank.FP.
2918         
2919         Also adds a hack that makes operator- on a literal fold the literal. This fixes two issues:
2920         
2921         - Lets you use negative literals in constexprs.
2922         - Means that negative literals also get literal type unification.
2923         
2924         WSL's constexpr support is really thin, but I think it's all we really need for now.
2925         
2926         * WebGPUShadingLanguageRI/All.js:
2927         * WebGPUShadingLanguageRI/Checker.js:
2928         (Checker.prototype.visitEnumType):
2929         (Checker.prototype.visitEnumLiteral):
2930         * WebGPUShadingLanguageRI/ConstexprFolder.js: Added.
2931         (ConstexprFolder.prototype.visitCallExpression):
2932         (ConstexprFolder.prototype.visitTypeOrVariableRef):
2933         (ConstexprFolder):
2934         * WebGPUShadingLanguageRI/CreateLiteral.js:
2935         (createLiteral.GenericLiteral.prototype.get valueForSelectedType):
2936         (createLiteral.GenericLiteral.prototype.get negConstexpr):
2937         * WebGPUShadingLanguageRI/DoubleLiteral.js:
2938         (let.DoubleLiteral.createLiteral.negConstexpr):
2939         * WebGPUShadingLanguageRI/EBufferBuilder.js:
2940         (EBufferBuilder.prototype.visitEnumLiteral):
2941         * WebGPUShadingLanguageRI/EnumLiteral.js: Added.
2942         (EnumLiteral):
2943         (EnumLiteral.prototype.get member):
2944         (EnumLiteral.prototype.get type):
2945         (EnumLiteral.prototype.get isConstexpr):
2946         (EnumLiteral.prototype.unifyImpl):
2947         (EnumLiteral.prototype.toString):
2948         * WebGPUShadingLanguageRI/EnumMember.js: Added.
2949         (EnumMember):
2950         (EnumMember.prototype.get origin):
2951         (EnumMember.prototype.get name):
2952         (EnumMember.prototype.toString):
2953         * WebGPUShadingLanguageRI/EnumType.js: Added.
2954         (EnumType):
2955         (EnumType.prototype.add):
2956         (EnumType.prototype.get origin):
2957         (EnumType.prototype.get name):
2958         (EnumType.prototype.get baseType):
2959         (EnumType.prototype.get memberNames):
2960         (EnumType.prototype.memberByName):
2961         (EnumType.prototype.get members):
2962         (EnumType.prototype.get memberMap):
2963         (EnumType.prototype.get isPrimitive):
2964         (EnumType.prototype.populateDefaultValue):
2965         (EnumType.prototype.get size):
2966         (EnumType.prototype.toString):
2967         * WebGPUShadingLanguageRI/Evaluator.js:
2968         (Evaluator.prototype.visitGenericLiteral):
2969         (Evaluator.prototype.visitEnumLiteral):
2970         * WebGPUShadingLanguageRI/FloatLiteral.js:
2971         (let.FloatLiteral.createLiteral.negConstexpr):
2972         * WebGPUShadingLanguageRI/FoldConstexprs.js: Added.
2973         (foldConstexprs):
2974         * WebGPUShadingLanguageRI/IntLiteral.js:
2975         (let.IntLiteral.createLiteral.negConstexpr):
2976         * WebGPUShadingLanguageRI/Intrinsics.js:
2977         (Intrinsics):
2978         * WebGPUShadingLanguageRI/NameResolver.js:
2979         (NameResolver.prototype.visitProtocolDecl):
2980         * WebGPUShadingLanguageRI/Parse.js:
2981         (parseConstexpr):
2982         (parsePossibleSuffix):
2983         (parseEnumMember):
2984         (parseEnumType):
2985         (parse):
2986         * WebGPUShadingLanguageRI/Prepare.js:
2987         (prepare):
2988         * WebGPUShadingLanguageRI/Rewriter.js:
2989         (Rewriter.prototype.visitEnumType):
2990         (Rewriter.prototype.visitEnumMember):
2991         (Rewriter.prototype.visitEnumLiteral):
2992         * WebGPUShadingLanguageRI/StructType.js:
2993         (StructType.prototype.get origin):
2994         (StructType.prototype.instantiate):
2995         * WebGPUShadingLanguageRI/SynthesizeEnumFunctions.js: Added.
2996         (synthesizeEnumFunctions):
2997         * WebGPUShadingLanguageRI/Test.html:
2998         * WebGPUShadingLanguageRI/Test.js:
2999         (checkEnum):
3000         (TEST_simpleEnum):
3001         (TEST_enumWithManualValues):
3002         (TEST_enumWithoutZero):
3003         (TEST_enumConstexprGenericFunction):
3004         (TEST_enumConstexprGenericStruct):
3005         * WebGPUShadingLanguageRI/UintLiteral.js:
3006         (let.UintLiteral.createLiteral.negConstexpr):
3007         * WebGPUShadingLanguageRI/Visitor.js:
3008         (Visitor.prototype.visitProtocolDecl):
3009
3010 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
3011
3012         WSL prepare() should cache the parsed standard library
3013         https://bugs.webkit.org/show_bug.cgi?id=177118
3014
3015         Reviewed by Myles Maxfield.
3016         
3017         The execution time of Test.js is too damn high!
3018         
3019         So I made it 2x faster by caching the parsed standard library.
3020
3021         * WebGPUShadingLanguageRI/All.js:
3022         * WebGPUShadingLanguageRI/CloneProgram.js: Added.
3023         (cloneProgram):
3024         * WebGPUShadingLanguageRI/Prepare.js:
3025         (let.prepare):
3026         (prepare): Deleted.
3027         * WebGPUShadingLanguageRI/StatementCloner.js: Added.
3028         (StatementCloner.prototype.visitFuncDef):
3029         (StatementCloner.prototype.visitNativeFunc):
3030         (StatementCloner.prototype.visitNativeType):
3031         (StatementCloner.prototype.visitTypeDef):
3032         (StatementCloner.prototype.visitStructType):
3033         (StatementCloner.prototype.visitConstexprTypeParameter):
3034         (StatementCloner.prototype.visitProtocolDecl):
3035         * WebGPUShadingLanguageRI/Test.html:
3036         * WebGPUShadingLanguageRI/Test.js:
3037         (doTest):
3038
3039 2017-09-18  Michael Catanzaro  <mcatanzaro@igalia.com>
3040
3041         [CMake] Rename WebKit target to WebKitLegacy and rename WebKit2 target to WebKit
3042         https://bugs.webkit.org/show_bug.cgi?id=174558
3043
3044         Reviewed by Alex Christensen.
3045
3046         With help from Stephan Szabo, thanks!
3047
3048         * DumpRenderTree/PlatformMac.cmake:
3049         * DumpRenderTree/PlatformWin.cmake:
3050         * DumpRenderTree/win/AccessibilityControllerWin.cpp:
3051         * DumpRenderTree/win/DRTDesktopNotificationPresenter.h:
3052         * DumpRenderTree/win/DumpRenderTree.cpp:
3053         * DumpRenderTree/win/EditingDelegate.h:
3054         * DumpRenderTree/win/EventSender.cpp:
3055         * DumpRenderTree/win/FrameLoadDelegate.cpp:
3056         * DumpRenderTree/win/FrameLoadDelegate.h:
3057         * DumpRenderTree/win/GCControllerWin.cpp:
3058         * DumpRenderTree/win/HistoryDelegate.cpp:
3059         * DumpRenderTree/win/HistoryDelegate.h:
3060         * DumpRenderTree/win/PolicyDelegate.h:
3061         * DumpRenderTree/win/ResourceLoadDelegate.cpp:
3062         * DumpRenderTree/win/ResourceLoadDelegate.h:
3063         * DumpRenderTree/win/TestRunnerWin.cpp:
3064         * DumpRenderTree/win/TextInputControllerWin.cpp:
3065         * DumpRenderTree/win/UIDelegate.cpp:
3066         * DumpRenderTree/win/UIDelegate.h:
3067         * DumpRenderTree/win/WorkQueueItemWin.cpp:
3068         * MiniBrowser/gtk/CMakeLists.txt:
3069         * MiniBrowser/mac/CMakeLists.txt:
3070         * MiniBrowser/win/AccessibilityDelegate.cpp:
3071         * MiniBrowser/win/AccessibilityDelegate.h:
3072         * MiniBrowser/win/CMakeLists.txt:
3073         * MiniBrowser/win/Common.cpp:
3074         * MiniBrowser/win/DOMDefaultImpl.h:
3075         * MiniBrowser/win/MiniBrowser.cpp:
3076         * MiniBrowser/win/MiniBrowser.h:
3077         * MiniBrowser/win/MiniBrowserWebHost.cpp:
3078         * MiniBrowser/win/MiniBrowserWebHost.h:
3079         * MiniBrowser/win/PageLoadTestClient.h:
3080         * MiniBrowser/win/PrintWebUIDelegate.cpp:
3081         * MiniBrowser/win/PrintWebUIDelegate.h:
3082         * MiniBrowser/win/ResourceLoadDelegate.cpp:
3083         * MiniBrowser/win/ResourceLoadDelegate.h:
3084         * MiniBrowser/win/WebDownloadDelegate.h:
3085         * TestWebKitAPI/CMakeLists.txt:
3086         * TestWebKitAPI/PlatformGTK.cmake:
3087         * TestWebKitAPI/PlatformWPE.cmake:
3088         * TestWebKitAPI/PlatformWin.cmake:
3089         * TestWebKitAPI/Tests/WebKitLegacy/win/ScaleWebView.cpp:
3090         * TestWebKitAPI/Tests/WebKitLegacy/win/WebViewDestruction.cpp:
3091         * TestWebKitAPI/glib/CMakeLists.txt:
3092         * WebKitTestRunner/CMakeLists.txt:
3093         * WebKitTestRunner/PlatformGTK.cmake:
3094         * WebKitTestRunner/PlatformWPE.cmake:
3095
3096 2017-09-18  Myles C. Maxfield  <mmaxfield@apple.com>
3097
3098         Fill out vector types in WSL's standard library
3099         https://bugs.webkit.org/show_bug.cgi?id=177063
3100
3101         Reviewed by Filip Pizlo.
3102
3103         Now that we have struct types, operator&[], and operator==, fill out a few of the builtin vector types in the
3104         standard library. This patch creates three new types: vec2, vec3, and vec4, each of which takes a type
3105         argument, so you can say vec4<float>. This patch also adds typedefs of int4, uint4, float4, and double4 (along
3106         with their 2- and 3- length siblings).
3107
3108         This patch does not include the swizzling operators, so you can't say float4.yzw.
3109
3110         * WebGPUShadingLanguageRI/StandardLibrary.js:
3111         (operator.T.vec2.T):
3112         (bool.operator.T.Equatable):
3113         (thread.T.operator.T):
3114         (operator.T.vec3.T):
3115         (operator.T.vec4.T):
3116         * WebGPUShadingLanguageRI/Test.js:
3117         (TEST_builtinVectors):
3118
3119 2017-09-18  Myles C. Maxfield  <mmaxfield@apple.com>
3120
3121         WSL needs to annotate vertex shaders and fragment shaders
3122         https://bugs.webkit.org/show_bug.cgi?id=177066
3123
3124         Reviewed by Filip Pizlo.
3125
3126         Metal Shading Language requires annotating vertex and fragment shaders, so this information needs to be in
3127         the source WSL file.
3128
3129         * WebGPUShadingLanguageRI/Func.js:
3130         (Func):
3131         (Func.prototype.get shaderType):
3132         * WebGPUShadingLanguageRI/FuncDef.js:
3133         (FuncDef):
3134         * WebGPUShadingLanguageRI/NativeFunc.js:
3135         (NativeFunc):
3136         * WebGPUShadingLanguageRI/Parse.js:
3137         (parseFuncDecl):
3138         (parseProtocolFuncDecl):
3139         (parseFuncDef):
3140         (parseNativeFunc):
3141         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
3142         (resolveOverloadImpl):
3143         * WebGPUShadingLanguageRI/Test.js:
3144
3145 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
3146
3147         WSL should know that constexpr parameters are not lvalues
3148         https://bugs.webkit.org/show_bug.cgi?id=177104
3149
3150         Reviewed by Saam Barati.
3151         
3152         This should be an error:
3153         
3154             void foo<int x>()
3155             {
3156                 x = 42;
3157             }
3158         
3159         Previously, it wasn't, because VariableRef always thought that it was an LValue. This patch
3160         teaches the type checker that not all VariableRefs are LValues.
3161
3162         * WebGPUShadingLanguageRI/ConstexprTypeParameter.js:
3163         (ConstexprTypeParameter.prototype.get varIsLValue):
3164         * WebGPUShadingLanguageRI/FuncParameter.js:
3165         (FuncParameter.prototype.get varIsLValue):
3166         * WebGPUShadingLanguageRI/Test.js:
3167         (TEST_nonArrayRefArrayLengthSucceed):
3168         (TEST_nonArrayRefArrayLengthFail):
3169         (TEST_nonArrayRefArrayLength): Deleted.
3170         (TEST_assignLength): Deleted.
3171         * WebGPUShadingLanguageRI/VariableDecl.js:
3172         (VariableDecl.prototype.get varIsLValue):
3173         * WebGPUShadingLanguageRI/VariableRef.js:
3174         (VariableRef.prototype.get isLValue):
3175
3176 2017-09-18  Ryan Haddad  <ryanhaddad@apple.com>
3177
3178         Unreviewed, rolling out r222170.
3179
3180         The API test added with this change is failing.
3181
3182         Reverted changeset:
3183
3184         "Allow WTF::map to use any class that is iterable and has a
3185         size getter"
3186         https://bugs.webkit.org/show_bug.cgi?id=177026
3187         http://trac.webkit.org/changeset/222170
3188
3189 2017-09-18  Myles C. Maxfield  <mmaxfield@apple.com>
3190
3191         Add a section in WSL's documentation about how API objects and WSL interact
3192         https://bugs.webkit.org/show_bug.cgi?id=177089
3193
3194         Reviewed by Filip Pizlo.
3195
3196         No global variables; entry points accept arguments. Buffers are array references ([]),
3197         and texture and sampler opaque types exist. Data is passed between stages in return
3198         values.
3199
3200         * WebGPUShadingLanguageRI/WSL.md:
3201
3202 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
3203
3204         Unreviewed, fix typo.
3205
3206         * WebGPUShadingLanguageRI/WSL.md:
3207
3208 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
3209
3210         WSL cannot use typedefs of arrays
3211         https://bugs.webkit.org/show_bug.cgi?id=177061
3212
3213         Reviewed by Saam Barati.
3214         
3215         This test case didn't work before because of a missing visit call in Checker.
3216
3217         * WebGPUShadingLanguageRI/Checker.js:
3218         (Checker.prototype.visitTypeRef):
3219         * WebGPUShadingLanguageRI/Test.js:
3220         (TEST_typedefArray):
3221
3222 2017-09-18  Youenn Fablet  <youenn@apple.com>
3223
3224         Allow WTF::map to use any class that is iterable and has a size getter
3225         https://bugs.webkit.org/show_bug.cgi?id=177026
3226
3227         Reviewed by Darin Adler.
3228
3229         * TestWebKitAPI/Tests/WTF/Vector.cpp:
3230         (TestWebKitAPI::TEST):
3231
3232 2017-09-16  Filip Pizlo  <fpizlo@apple.com>
3233
3234         Figure out how WSL will support field overloads like float4.xz and friends
3235         https://bugs.webkit.org/show_bug.cgi?id=177031
3236
3237         Reviewed by JF Bastien.
3238         
3239         WSL needs to support getters and setters, so that we can do things like:
3240         
3241             float4 vec;
3242             vec.zx = float2(1, 2);
3243             // z = 1, x = 2
3244         
3245         There's no way to express this float4.zx returning a pointer to something, since it's doing swizzling.
3246         It could return a crazy smart pointer, but that sounds like a lot of work. So, I decided to go for
3247         lvalue emulation instead.
3248         
3249         The idea of lvalue emulation is that when we try to make an lvalue work for an assignment or RMW
3250         operation (like += and friends), we consider the possibility that we have to first load the value using
3251         a getter and then store it with a setter. This patch makes this work recursively, so that this will
3252         work:
3253         
3254             float4 vec;
3255             vec.zwx.y = 42;
3256             // now w is 42
3257         
3258         This works because we decompose it automatically:
3259         
3260             float4 vec;
3261             float3 tmp = vec.zwx;
3262             tmp.y = 42;
3263             vec.zwx = tmp;
3264         
3265         This'll work to any depth.
3266         
3267         To check if this works, this patch adds two substantial new tests called TEST_genericAccessors() and
3268         TEST_bitSubscriptAccessor(). This tests that this stuff works with a lot of generic types, and that it's
3269         possible to turn integers into bitvectors using subscript overloading. This patch also adds smaller unit
3270         tests also.
3271         
3272         Oh, and it's now possible to get an array's length.
3273
3274         * WebGPUShadingLanguageRI/AddressSpace.js:
3275         (needsPrimitiveProtocol):
3276         (protocolSuffix):
3277         * WebGPUShadingLanguageRI/All.js:
3278         * WebGPUShadingLanguageRI/AnonymousVariable.js: Added.
3279         (AnonymousVariable):
3280         (AnonymousVariable.prototype.get origin):
3281         (AnonymousVariable.prototype.get name):
3282         (AnonymousVariable.prototype.toString):
3283         * WebGPUShadingLanguageRI/ArrayRefType.js:
3284         (ArrayRefType.prototype.argumentForAndOverload):
3285         (ArrayRefType.prototype.argumentTypeForAndOverload):
3286         * WebGPUShadingLanguageRI/ArrayType.js:
3287         (ArrayType.prototype.argumentForAndOverload):
3288         (ArrayType.prototype.argumentTypeForAndOverload):
3289         (ArrayType):
3290         * WebGPUShadingLanguageRI/Assignment.js:
3291         (Assignment):
3292         * WebGPUShadingLanguageRI/CallAssignment.js: Removed.
3293         * WebGPUShadingLanguageRI/CallExpression.js:
3294         (CallExpression.resolve):
3295         (CallExpression.prototype.resolve):
3296         (CallExpression.prototype.resolveToOverload):
3297         * WebGPUShadingLanguageRI/Checker.js:
3298         (Checker.prototype.visitProgram):
3299         (Checker.prototype.visitFuncDef):
3300         (Checker.prototype.visitNativeFunc):
3301         (Checker.prototype.visitProtocolDecl):
3302         (Checker.prototype.visitIdentityExpression):
3303         (Checker.prototype.visitReadModifyWriteExpression):
3304         (Checker.prototype.visitAnonymousVariable):
3305         (Checker.prototype.visitMakeArrayRefExpression):
3306         (Checker.prototype._finishVisitingPropertyAccess):
3307         (Checker.prototype.visitDotExpression):
3308         (Checker.prototype.visitIndexExpression):
3309         (Checker.prototype.visitCallExpression):
3310         (Checker):
3311         (Checker.prototype.visitProtocolDecl.NoticeTypeVariable.prototype.visitTypeRef): Deleted.
3312         (Checker.prototype.visitProtocolDecl.NoticeTypeVariable.prototype.visitVariableRef): Deleted.
3313         (Checker.prototype.visitProtocolDecl.NoticeTypeVariable): Deleted.
3314         (Checker.prototype.visitProtocolDecl.set throw): Deleted.
3315         * WebGPUShadingLanguageRI/CommaExpression.js:
3316         * WebGPUShadingLanguageRI/DotExpression.js:
3317         (DotExpression):
3318         (DotExpression.prototype.get struct):
3319         (DotExpression.prototype.get getFuncName):
3320         (DotExpression.prototype.get andFuncName):
3321         (DotExpression.prototype.get setFuncName):
3322         * WebGPUShadingLanguageRI/EBuffer.js:
3323         * WebGPUShadingLanguageRI/EBufferBuilder.js:
3324         (EBufferBuilder.prototype.visitAnonymousVariable):
3325         (EBufferBuilder.prototype.visitLetExpression): Deleted.
3326         * WebGPUShadingLanguageRI/Evaluator.js:
3327         (Evaluator.prototype.visitIdentityExpression):
3328         (Evaluator.prototype.visitMakePtrExpression):
3329         (Evaluator.prototype.visitAnonymousVariable):
3330         (Evaluator.prototype.visitDotExpression): Deleted.
3331         (Evaluator.prototype.visitLetExpression): Deleted.
3332         * WebGPUShadingLanguageRI/ExpressionFinder.js:
3333         (ExpressionFinder.prototype.visitReadModifyWriteExpression):
3334         (ExpressionFinder.prototype.visitIdentityExpression):
3335         * WebGPUShadingLanguageRI/ForLoop.js:
3336         (ForLoop.prototype.toString):
3337         (ForLoop):
3338         * WebGPUShadingLanguageRI/Func.js:
3339         (Func):
3340         * WebGPUShadingLanguageRI/FuncInstantiator.js:
3341         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution.prototype.visitCallExpression):
3342         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution):
3343         (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitFuncDef):
3344         (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitNativeFunc):
3345         (FuncInstantiator.prototype.getUnique.Instantiate):
3346         (FuncInstantiator.prototype.getUnique):
3347         (FuncInstantiator):
3348         * WebGPUShadingLanguageRI/IdentityExpression.js: Added.
3349         (IdentityExpression):
3350         (IdentityExpression.prototype.get target):
3351         (IdentityExpression.prototype.get unifyNode):
3352         (IdentityExpression.prototype.get isConstexpr):
3353         (IdentityExpression.prototype.get isLValue):
3354         (IdentityExpression.prototype.get addressSpace):
3355         (IdentityExpression.prototype.toString):
3356         * WebGPUShadingLanguageRI/IndexExpression.js: Added.
3357         (IndexExpression):
3358         (IndexExpression.prototype.get array):
3359         (IndexExpression.prototype.get index):
3360         (IndexExpression.prototype.get isLValue):
3361         (IndexExpression.prototype.get addressSpace):
3362         (IndexExpression.prototype.get getFuncName):
3363         (IndexExpression.prototype.get andFuncName):
3364         (IndexExpression.prototype.get setFuncName):
3365         (IndexExpression.prototype.toString):
3366         * WebGPUShadingLanguageRI/InferTypesForCall.js:
3367         (inferTypesForCall):
3368         * WebGPUShadingLanguageRI/Inline.js:
3369         (_inlineFunction):
3370         * WebGPUShadingLanguageRI/Inliner.js:
3371         (Inliner.prototype.visitCallExpression):
3372         (Inliner.prototype.visitDotExpression): Deleted.
3373         * WebGPUShadingLanguageRI/Intrinsics.js:
3374         (Intrinsics):
3375         * WebGPUShadingLanguageRI/LetExpression.js: Removed.
3376         * WebGPUShadingLanguageRI/MakeArrayRefExpression.js:
3377         (MakeArrayRefExpression.prototype.becomeConvertPtrToArrayRefExpression): Deleted.
3378         * WebGPUShadingLanguageRI/NameContext.js:
3379         (NameContext):
3380         (NameContext.prototype.add):
3381         (NameContext.prototype.doStatement):
3382         (NameContext.prototype.handleDefining): Deleted.
3383         (NameContext.prototype.isDefined): Deleted.
3384         (NameContext.prototype.define): Deleted.
3385         (NameContext.prototype.defineAll): Deleted.
3386         * WebGPUShadingLanguageRI/NameResolver.js:
3387         (NameResolver.prototype.doStatement):
3388         (NameResolver.prototype.visitProtocolDecl):
3389         (NameResolver.prototype.visitProgram): Deleted.
3390         * WebGPUShadingLanguageRI/NativeFunc.js:
3391         (NativeFunc):
3392         * WebGPUShadingLanguageRI/NativeFuncInstance.js:
3393         (NativeFuncInstance):
3394         (NativeFuncInstance.prototype.get implementationData):
3395         * WebGPUShadingLanguageRI/Node.js:
3396         (Node.prototype.visit):
3397         (Node.visit):
3398         (Node.unify): Deleted.
3399         * WebGPUShadingLanguageRI/NormalUsePropertyResolver.js: Added.
3400         (NormalUsePropertyResolver.prototype.visitDotExpression):
3401         (NormalUsePropertyResolver.prototype.visitIndexExpression):
3402         (NormalUsePropertyResolver):
3403         * WebGPUShadingLanguageRI/Parse.js:
3404         (finishParsingPostIncrement):
3405         (parsePossibleSuffix):
3406         (finishParsingPreIncrement):
3407         (genericParseCommaExpression):
3408         (parseFuncName):
3409         * WebGPUShadingLanguageRI/Prepare.js:
3410         (prepare):
3411         * WebGPUShadingLanguageRI/Program.js:
3412         (Program):
3413         (Program.prototype.get globalNameContext):
3414         (Program.prototype.add):
3415         * WebGPUShadingLanguageRI/PropertyAccessExpression.js: Added.
3416         (PropertyAccessExpression):
3417         (PropertyAccessExpression.prototype.get resultType):
3418         (PropertyAccessExpression.prototype.rewriteAfterCloning):
3419         (PropertyAccessExpression.prototype.updateCallsAfterChangingBase):
3420         (PropertyAccessExpression.prototype.emitGet):
3421         (PropertyAccessExpression.prototype.emitSet):
3422         * WebGPUShadingLanguageRI/PropertyResolver.js: Added.
3423         (PropertyResolver.prototype._visitPropertyAccess):
3424         (PropertyResolver.prototype.visitDotExpression):
3425         (PropertyResolver.prototype.visitIndexExpression):
3426         (PropertyResolver.prototype._handleReadModifyWrite):
3427         (PropertyResolver.prototype.visitReadModifyWriteExpression):
3428         (PropertyResolver.prototype.visitAssignment):
3429         (PropertyResolver.visitMakePtrExpression):
3430         (PropertyResolver.prototype.visitMakeArrayRefExpression):
3431         (PropertyResolver):
3432         * WebGPUShadingLanguageRI/PtrType.js:
3433         (PtrType.prototype.argumentForAndOverload):
3434         (PtrType.prototype.argumentTypeForAndOverload):
3435         (PtrType.prototype.returnTypeFromAndOverload):
3436         * WebGPUShadingLanguageRI/ReadModifyWriteExpression.js: Added.
3437         (ReadModifyWriteExpression):
3438         (ReadModifyWriteExpression.prototype.get lValue):
3439         (ReadModifyWriteExpression.prototype.oldValueRef):
3440         (ReadModifyWriteExpression.prototype.newValueRef):
3441         (ReadModifyWriteExpression.prototype.toString):
3442         * WebGPUShadingLanguageRI/ResolveNames.js:
3443         (createNameResolver):
3444         (resolveNamesInTypes):
3445         (resolveNamesInProtocols):
3446         (resolveNamesInFunctions):
3447         (resolveNames): Deleted.
3448         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
3449         (resolveOverloadImpl):
3450         * WebGPUShadingLanguageRI/ResolveProperties.js: Added.
3451         (resolveProperties):
3452         * WebGPUShadingLanguageRI/ResolveTypeDefs.js:
3453         (resolveTypeDefsInTypes):
3454         (resolveTypeDefsInProtocols):
3455         (resolveTypeDefsInFunctions):
3456         (resolveTypeDefs): Deleted.
3457         * WebGPUShadingLanguageRI/ReturnChecker.js:
3458         (ReturnChecker.prototype._isBoolCastFromLiteralTrue):
3459         * WebGPUShadingLanguageRI/Rewriter.js:
3460         (Rewriter):
3461         (Rewriter.prototype.visitVariableDecl):
3462         (Rewriter.prototype.visitTypeRef):
3463         (Rewriter.prototype.visitAssignment):
3464         (Rewriter.prototype.visitReadModifyWriteExpression):
3465         (Rewriter.prototype.visitDereferenceExpression):
3466         (Rewriter.prototype._handlePropertyAccessExpression):
3467         (Rewriter.prototype.visitDotExpression):
3468         (Rewriter.prototype.visitIndexExpression):
3469         (Rewriter.prototype.visitReturn):
3470         (Rewriter.prototype.visitGenericLiteralType):
3471         (Rewriter.prototype.visitNullType):
3472         (Rewriter.prototype.processDerivedCallData):
3473         (Rewriter.prototype.visitCallExpression):
3474         (Rewriter.prototype.visitFunctionLikeBlock):
3475         (Rewriter.prototype.visitIfStatement):
3476         (Rewriter.prototype.visitForLoop):
3477         (Rewriter.prototype.visitAnonymousVariable):
3478         (Rewriter.prototype.visitIdentityExpression):
3479         (Rewriter.prototype.visitLetExpression): Deleted.
3480         * WebGPUShadingLanguageRI/StandardLibrary.js:
3481         * WebGPUShadingLanguageRI/StructLayoutBuilder.js:
3482         (StructLayoutBuilder.prototype.visitNativeFuncInstance):
3483         (StructLayoutBuilder):
3484         * WebGPUShadingLanguageRI/StructType.js:
3485         (StructType.prototype.instantiate):
3486         * WebGPUShadingLanguageRI/Substitution.js:
3487         (Substitution.prototype.get map):
3488         * WebGPUShadingLanguageRI/SuffixCallAssignment.js: Removed.
3489         * WebGPUShadingLanguageRI/SynthesizeStructAccessors.js: Added.
3490         (synthesizeStructAccessors.createTypeParameters):
3491         (synthesizeStructAccessors.):
3492         (synthesizeStructAccessors.createFieldType):
3493         (synthesizeStructAccessors.createTypeRef):
3494         (synthesizeStructAccessors.setupAnder):
3495         (synthesizeStructAccessors):
3496         * WebGPUShadingLanguageRI/Test.html:
3497         * WebGPUShadingLanguageRI/Test.js:
3498         (checkNumber):
3499         (TEST_simpleProtocol):
3500         (TEST_assignLength):
3501         (TEST_simpleSetter):
3502         (TEST_genericAccessors):
3503         * WebGPUShadingLanguageRI/Type.js:
3504         (Type.prototype.get isRef):
3505         (Type.prototype.argumentForAndOverload):
3506         (Type.prototype.argumentTypeForAndOverload):
3507         (Type.prototype.returnTypeFromAndOverload):
3508         (Type):
3509         * WebGPUShadingLanguageRI/TypeParameterRewriter.js: Added.
3510         (TypeParameterRewriter.prototype.visitConstexprTypeParameter):
3511         (TypeParameterRewriter.prototype.visitTypeVariable):
3512         (TypeParameterRewriter):
3513         * WebGPUShadingLanguageRI/TypeVariableTracker.js: Added.
3514         (TypeVariableTracker):
3515         * WebGPUShadingLanguageRI/Value.js:
3516         (Value.prototype.become):
3517         (Value):
3518         * WebGPUShadingLanguageRI/VariableRef.js:
3519         (VariableRef.prototype.get unifyNode):
3520         (VariableRef.prototype.get addressSpace):
3521         * WebGPUShadingLanguageRI/Visitor.js:
3522         (Visitor.prototype.visitNativeFuncInstance):
3523         (Visitor.prototype.visitProtocolDecl):
3524         (Visitor): Deleted.
3525         * WebGPUShadingLanguageRI/VisitorBase.js: Removed.
3526
3527 2017-09-18  Andy Estes  <aestes@apple.com>
3528
3529         [Cocoa] Upstream WKSetCrashReportApplicationSpecificInformation() from WebKitSystemInterface
3530         https://bugs.webkit.org/show_bug.cgi?id=177048
3531
3532         Reviewed by Alex Christensen.
3533
3534         * DumpRenderTree/mac/DumpRenderTree.mm:
3535         (runTest):
3536         * WebKitTestRunner/cocoa/CrashReporterInfo.mm:
3537         (WTR::setCrashReportApplicationSpecificInformationToURL):
3538
3539 2017-09-18  Tim Horton  <timothy_horton@apple.com>
3540
3541         build-webkit spawns fewer subprocesses than ninja uses by default
3542         https://bugs.webkit.org/show_bug.cgi?id=177057
3543
3544         Reviewed by Alex Christensen.
3545
3546         * Scripts/build-webkit:
3547         By default, ninja will parallelize over (cores + 2) jobs. build-webkit
3548         specifies -j(cores), which overrides this. Remove our override if building
3549         with ninja; just let it do its own thing. In my testing, this minor
3550         change is the difference between ~10% idle CPU time and 0.
3551
3552 2017-09-18  Lucas Forschler  <lforschler@apple.com>
3553
3554         Land a patch to verify svn->git update is working.
3555
3556 2017-09-18  Ms2ger  <Ms2ger@igalia.com>
3557
3558         Update my status.
3559
3560         Unreviewed.
3561
3562         * Scripts/webkitpy/common/config/contributors.json:
3563
3564 2017-09-17  Filip Pizlo  <fpizlo@apple.com>
3565
3566         Start working on WSL documentation
3567         https://bugs.webkit.org/show_bug.cgi?id=177064
3568
3569         Reviewed by Mylex Maxfield.
3570         
3571         This is a work in progress. I'd like to check it in and then keep adding to it.
3572
3573         * WebGPUShadingLanguageRI/WSL.md: Added.
3574
3575 2017-09-17  Myles C. Maxfield  <mmaxfield@apple.com>
3576
3577         WSL needs to understand && and ||
3578         https://bugs.webkit.org/show_bug.cgi?id=177062
3579
3580         Reviewed by Filip Pizlo.
3581
3582         Very similar to LogicalNot.
3583
3584         * WebGPUShadingLanguageRI/All.js:
3585         * WebGPUShadingLanguageRI/Checker.js:
3586         * WebGPUShadingLanguageRI/EBufferBuilder.js:
3587         (EBufferBuilder.prototype.visitLogicalExpression):
3588         * WebGPUShadingLanguageRI/Evaluator.js:
3589         (Evaluator.prototype.visitLogicalExpression):
3590         * WebGPUShadingLanguageRI/Lexer.js:
3591         (Lexer.prototype.next):
3592         (Lexer):
3593         * WebGPUShadingLanguageRI/LogicalExpression.js: Added.
3594         (LogicalExpression):
3595         (LogicalExpression.prototype.get text):
3596         (LogicalExpression.prototype.get left):
3597         (LogicalExpression.prototype.get right):
3598         (LogicalExpression.prototype.toString):
3599         * WebGPUShadingLanguageRI/Parse.js:
3600         (parseLeftLogicalExpression):
3601         * WebGPUShadingLanguageRI/Rewriter.js:
3602         (Rewriter.prototype.visitLogicalExpression):
3603         * WebGPUShadingLanguageRI/Test.html:
3604         * WebGPUShadingLanguageRI/Test.js:
3605         * WebGPUShadingLanguageRI/Visitor.js:
3606         (Visitor.prototype.visitProtocolDecl):
3607
3608 2017-09-18  Ms2ger  <Ms2ger@igalia.com>
3609
3610         Update my status.
3611
3612         Unreviewed.
3613
3614         * Scripts/webkitpy/common/config/contributors.json:
3615
3616 2017-09-17  Filip Pizlo  <fpizlo@apple.com>
3617
3618         Start working on WSL documentation
3619         https://bugs.webkit.org/show_bug.cgi?id=177064
3620
3621         Reviewed by Mylex Maxfield.
3622         
3623         This is a work in progress. I'd like to check it in and then keep adding to it.
3624
3625         * WebGPUShadingLanguageRI/WSL.md: Added.
3626
3627 2017-09-17  Myles C. Maxfield  <mmaxfield@apple.com>
3628
3629         WSL needs to understand && and ||
3630         https://bugs.webkit.org/show_bug.cgi?id=177062
3631
3632         Reviewed by Filip Pizlo.
3633
3634         Very similar to LogicalNot.
3635
3636         * WebGPUShadingLanguageRI/All.js:
3637         * WebGPUShadingLanguageRI/Checker.js:
3638         * WebGPUShadingLanguageRI/EBufferBuilder.js:
3639         (EBufferBuilder.prototype.visitLogicalExpression):
3640         * WebGPUShadingLanguageRI/Evaluator.js:
3641         (Evaluator.prototype.visitLogicalExpression):
3642         * WebGPUShadingLanguageRI/Lexer.js:
3643         (Lexer.prototype.next):
3644         (Lexer):
3645         * WebGPUShadingLanguageRI/LogicalExpression.js: Added.
3646         (LogicalExpression):
3647         (LogicalExpression.prototype.get text):
3648         (LogicalExpression.prototype.get left):
3649         (LogicalExpression.prototype.get right):
3650         (LogicalExpression.prototype.toString):
3651         * WebGPUShadingLanguageRI/Parse.js:
3652         (parseLeftLogicalExpression):
3653         * WebGPUShadingLanguageRI/Rewriter.js:
3654         (Rewriter.prototype.visitLogicalExpression):
3655         * WebGPUShadingLanguageRI/Test.html:
3656         * WebGPUShadingLanguageRI/Test.js:
3657         * WebGPUShadingLanguageRI/Visitor.js:
3658         (Visitor.prototype.visitProtocolDecl):
3659
3660 2017-09-17  Myles C. Maxfield  <mmaxfield@apple.com>
3661
3662         WSL needs float and double support
3663         https://bugs.webkit.org/show_bug.cgi?id=177058
3664
3665         Reviewed by Filip Pizlo.
3666
3667         Use the existing int and uint types as a model. The types themselves are straighforward. Just like int and uint,
3668         you can't pass a float as a double argument and vice-versa. This patch adds operator+, -, *, and / for floats
3669         and doubles.
3670
3671         Float literals are more complicated. If your number has a "." character in it, it is treated as a float literal.
3672         You can add a suffix of "f" or "d" to force the literal to pretend to be a float or a double. These literals are
3673         able to masquerade as either floats or doubles (unlike an explicit type). However, these literals are not able
3674         to masquerade as ints or uints. There's also a nice check that your float literal can actually fit in a float.
3675
3676         * WebGPUShadingLanguageRI/All.js:
3677         * WebGPUShadingLanguageRI/DoubleLiteral.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js.
3678         (let.DoubleLiteral.createLiteral.createType):
3679         * WebGPUShadingLanguageRI/DoubleLiteralType.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js.
3680         (let.DoubleLiteralType.createLiteralType.verifyAsArgument):
3681         * WebGPUShadingLanguageRI/FloatLiteral.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js.
3682         (let.FloatLiteral.createLiteral.createType):
3683         * WebGPUShadingLanguageRI/FloatLiteralType.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js.
3684         (let.FloatLiteralType.createLiteralType.verifyAsArgument):
3685         * WebGPUShadingLanguageRI/Intrinsics.js:
3686         (Intrinsics):
3687         * WebGPUShadingLanguageRI/Lexer.js:
3688         (Lexer.prototype.next):
3689         (Lexer):
3690         * WebGPUShadingLanguageRI/NativeType.js:
3691         (NativeType):
3692         (NativeType.prototype.get isFloating):
3693         (NativeType.prototype.set isFloating):
3694         (NativeType.prototype.get isFloat): Deleted.
3695         (NativeType.prototype.set isFloat): Deleted.
3696         * WebGPUShadingLanguageRI/Parse.js:
3697         (parseTerm):
3698         * WebGPUShadingLanguageRI/Rewriter.js:
3699         (Rewriter.prototype.visitGenericLiteral):
3700         * WebGPUShadingLanguageRI/StandardLibrary.js:
3701         (uint.operator):
3702         (int.operator):
3703         * WebGPUShadingLanguageRI/Test.html:
3704         * WebGPUShadingLanguageRI/Test.js:
3705         (makeFloat):
3706         (makeDouble):
3707         (checkNumber):
3708         (checkFloat):
3709         (checkDouble):
3710         * WebGPUShadingLanguageRI/Type.js:
3711         (Type.prototype.get isFloating):
3712         (Type.prototype.get isFloat): Deleted.
3713
3714 2017-09-17  Michael Saboff  <msaboff@apple.com>
3715
3716         https://bugs.webkit.org/show_bug.cgi?id=177038
3717         Add an option to run-jsc-stress-tests to limit tests variations to a basic set
3718
3719         Reviewed by JF Bastien.
3720
3721         Added the --basic option that runs defaults tests with the following modes, default, no-llint,
3722         no-cjit-validate-phases, no-cjit-collect-continuously, dfg-eager and for FTL platforms: no-ftl,
3723         ftl-eager-no-cjit and ftl-no-cjit-small-pool.  This takes about half the time as running all
3724         16 modes of a full run.
3725
3726         * Scripts/run-jsc-stress-tests:
3727
3728 2017-09-16  Tim Horton  <timothy_horton@apple.com>
3729
3730         Fix the Tools build with CMake on macOS
3731         https://bugs.webkit.org/show_bug.cgi?id=177030
3732
3733         Reviewed by Geoffrey Garen.
3734
3735         * TestWebKitAPI/CMakeLists.txt:
3736         Add a workaround identical to what the gtest CMakeLists has.
3737
3738 2017-09-16  Carlos Garcia Campos  <cgarcia@igalia.com>
3739
3740         [GTK] Bump fontconfig version to 2.12.4
3741         https://bugs.webkit.org/show_bug.cgi?id=176997
3742
3743         Reviewed by Michael Catanzaro.
3744
3745         It's the latest stable version and we can get rid of the patches we have.
3746
3747         * WebKitTestRunner/gtk/fonts/fonts.conf: Remove hinting config we no longer need with newer FreeType and
3748         deprecated <blank> that current fontconfig just ignores.
3749         * gtk/jhbuild.modules:
3750         * gtk/patches/fontconfig-2.11.1-add-autogen.patch: Removed.
3751         * gtk/patches/fontconfig-Avoid-conflicts-with-integer-width-macros-from-TS-18661-1-2014.patch: Removed.
3752         * gtk/patches/fontconfig-Fix-the-build-issue-with-gperf-3.1.patch: Removed.
3753         * gtk/patches/fontconfig-fix-osx-cache.diff: Removed.
3754
3755 2017-09-15  Lucas Forschler  <lforschler@apple.com>
3756
3757         Move run-webkit-archive from Tools/Scripts to Tools/BuildSlaveSupport
3758         
3759         Reviewed by Alexey Proskuryakov.
3760
3761         * Scripts/run-webkit-archive: Removed.
3762
3763 2017-09-15  Lucas Forschler  <lforschler@apple.com>
3764
3765         teach build.webkit.org to include run-webkit-archive in the root folder of uploaded macOS archives.
3766         https://bugs.webkit.org/show_bug.cgi?id=176965
3767
3768         Reviewed by Alexey Proskuryakov.
3769
3770         * BuildSlaveSupport/built-product-archive:
3771         (addLauncherToArchive): Helper function to add the launcher script
3772         (createZip): teach function about addLauncherToArchive
3773         * BuildSlaveSupport/run-webkit-archive: Added.
3774         (check_for_valid_platform): Add logic to ensure platform is Darwin
3775         (find_dyld_framework_path): Find the dyld framework path
3776         (run_safari_for_webkit_development): launch SafariForWebKitDevelopment
3777         (set_dyld_framework_path): export the environment for dydl framework path
3778
3779 2017-09-15  Myles C. Maxfield  <mmaxfield@apple.com>
3780
3781         [WSL] Small cleanup in Evaluator
3782         https://bugs.webkit.org/show_bug.cgi?id=176971
3783
3784         Reviewed by Filip Pizlo.
3785
3786         Use the symbols for break and continue instead of the objects themselves.
3787
3788         No tests because there is no behavior change.
3789
3790         * WebGPUShadingLanguageRI/Evaluator.js:
3791         (Evaluator.prototype.visitWhileLoop):
3792         (Evaluator.prototype.visitDoWhileLoop):
3793         (Evaluator.prototype.visitForLoop):
3794         (Evaluator.prototype.visitBreak):
3795         (Evaluator.prototype.visitContinue):
3796
3797 2017-09-15  Filip Pizlo  <fpizlo@apple.com>
3798
3799         WSL Evaluator should only allocate EBuffers when dealing with intrinsics
3800         https://bugs.webkit.org/show_bug.cgi?id=176973
3801
3802         Reviewed by Myles Maxfield.
3803         
3804         Whether or not two temporary values share the same EBuffer is ultimately observable in WSL,
3805         because you can do this:
3806         
3807             thread int^ operator&[](thread int^ ptr, uint index)
3808             {
3809                 g_ptr = ptr;
3810                 return ptr;
3811             }
3812         
3813         And then this is a thing:
3814         
3815             42[0];
3816             // g_ptr now points to 42's location
3817         
3818         Normally this would have a lot of bad implications. But in WSL, if you did choose to do this,
3819         you'd get a pointer to something well-defined: the EBuffer of 42's GenericLiteral. Each static
3820         occurrence of a literal gets its own location, and the semantics of the language call for
3821         42 to be stored into this location when `42` "executes". So, while the programmer could do all
3822         kinds of strange things, at least the strangeness they would see is something we can spec.
3823         
3824         But to do this, the interpreter needs to allocate EBuffers in the same way a compiler would.
3825         It cannot allocate them during execution, except when interacting with intrinsics, which won't
3826         know the difference.
3827         
3828         In the process, I found places that needed to use AutoWrapper instead of TypeRef.wrap.
3829
3830         * WebGPUShadingLanguageRI/AutoWrapper.js:
3831         (AutoWrapper.prototype.visitGenericLiteralType):
3832         (AutoWrapper.prototype.visitNullType):
3833         (AutoWrapper):
3834         * WebGPUShadingLanguageRI/CallExpression.js:
3835         (CallExpression.prototype.resolve):
3836         * WebGPUShadingLanguageRI/CallFunction.js:
3837         (callFunction):
3838         * WebGPUShadingLanguageRI/Checker.js:
3839         * WebGPUShadingLanguageRI/CreateLiteralType.js:
3840         (createLiteralType.GenericLiteralType.prototype.commitUnification):
3841         * WebGPUShadingLanguageRI/EBuffer.js:
3842         (EBuffer):
3843         (EBuffer.setCanAllocateEBuffers):
3844         (EBuffer.disallowAllocation):
3845         (EBuffer.allowAllocation):
3846         * WebGPUShadingLanguageRI/EBufferBuilder.js:
3847         (EBufferBuilder.prototype.visitVariableDecl):
3848         (EBufferBuilder.prototype.visitFuncDef):
3849         (EBufferBuilder.prototype.visitFunctionLikeBlock):
3850         (EBufferBuilder.prototype.visitCallExpression):
3851         (EBufferBuilder.prototype.visitMakePtrExpression):
3852         (EBufferBuilder.prototype.visitGenericLiteral):
3853         (EBufferBuilder.prototype.visitNullLiteral):
3854         (EBufferBuilder.prototype.visitBoolLiteral):
3855         (EBufferBuilder.prototype.visitLogicalNot):
3856         (EBufferBuilder):
3857         * WebGPUShadingLanguageRI/EPtr.js:
3858         (EPtr.box):
3859         (EPtr.prototype.box):
3860         * WebGPUShadingLanguageRI/Evaluator.js:
3861         (Evaluator.prototype._snapshot):
3862         (Evaluator.prototype.runFunc):
3863         (Evaluator.prototype._runBody):
3864         (Evaluator.prototype.visitFunctionLikeBlock):
3865         (Evaluator.prototype.visitMakePtrExpression):
3866         (Evaluator.prototype.visitGenericLiteral):
3867         (Evaluator.prototype.visitNullLiteral):
3868         (Evaluator.prototype.visitBoolLiteral):
3869         (Evaluator.prototype.visitLogicalNot):
3870         (Evaluator.prototype.visitCallExpression):
3871         (Evaluator):
3872         (Evaluator.prototype.runBody): Deleted.
3873         * WebGPUShadingLanguageRI/Inliner.js:
3874         (Inliner.prototype.visitCallExpression):
3875         * WebGPUShadingLanguageRI/InstantiateImmediates.js:
3876         (InstantiateImmediates.prototype.visitTypeRef):
3877         * WebGPUShadingLanguageRI/Rewriter.js:
3878         (Rewriter.prototype.visitMakePtrExpression):
3879         (Rewriter.prototype.visitGenericLiteral):
3880         (Rewriter.prototype.visitNullLiteral):
3881         (Rewriter.prototype.processDerivedCallData):
3882         (Rewriter.prototype.visitFunctionLikeBlock):
3883         (Rewriter.prototype.visitLogicalNot):
3884         * WebGPUShadingLanguageRI/TypeRef.js:
3885         (TypeRef.prototype.toString):
3886         (TypeRef):
3887         * WebGPUShadingLanguageRI/Visitor.js:
3888         (Visitor.prototype.visitProtocolDecl):
3889
3890 2017-09-14  Filip Pizlo  <fpizlo@apple.com>
3891
3892         Rationalize how WSL's operator&[] works
3893         https://bugs.webkit.org/show_bug.cgi?id=176958
3894
3895         Reviewed by Myles Maxfield.
3896         
3897         This makes operator&[] work with non-array-ref types. The way this works is that if you do base[index]
3898         then we pattern match base's type and proceed accordingly:
3899         
3900             If base's type is T^:
3901                 => Reject
3902             
3903             If base's type is T[]:
3904                 => Accept
3905             
3906             If base's type is T[c]:
3907                 => Wrap it with a MakeArrayRefExpression and accept.
3908             
3909             All other cases:
3910                 => Wrap it with a MakePtrExpression and accept.
3911         
3912         This makes it possible for operator&[] to work with lvalues. It also means that operator&[] gets to
3913         "see" the temporary values we create via snapshot() in the interpreter. We'll have to fix that, and I've
3914         filed bug 176973 for that. Once that's fixed, this will have well-defined behavior, though with the very
3915         peculiar caveat that an expression like this:
3916         
3917              totallyNotAnLValue()[42]
3918         
3919         Could be used to get a pointer to a non-lvalue. But we can be extremely precise about what that means
3920         and prohibit dangling pointers, which is kinda crazy.
3921         
3922         In order to do this, I had to make MakeArrayRefExpression work, so I did that and added tests for it.
3923
3924         * WebGPUShadingLanguageRI/All.js:
3925         * WebGPUShadingLanguageRI/ArrayRefType.js:
3926         (ArrayRefType.prototype.unifyImpl):
3927         (ArrayRefType.prototype.toString):
3928         (ArrayRefType):
3929         * WebGPUShadingLanguageRI/ArrayType.js:
3930         (ArrayType):
3931         (ArrayType.prototype.get numElementsValue):
3932         (ArrayType.prototype.get size):
3933         (ArrayType.prototype.populateDefaultValue):
3934         (ArrayType.prototype.unifyImpl):
3935         * WebGPUShadingLanguageRI/Checker.js:
3936         * WebGPUShadingLanguageRI/ConvertPtrToArrayRefExpression.js: Added.
3937         (ConvertPtrToArrayRefExpression):
3938         (ConvertPtrToArrayRefExpression.prototype.get lValue):
3939         (ConvertPtrToArrayRefExpression.prototype.toString):
3940         * WebGPUShadingLanguageRI/CreateLiteral.js:
3941         (createLiteral.GenericLiteral.withType):
3942         (createLiteral.GenericLiteral.prototype.get isLiteral):
3943         (createLiteral.GenericLiteral.prototype.unifyImpl):
3944         * WebGPUShadingLanguageRI/DotExpression.js:
3945         (DotExpression.prototype.get addressSpace):
3946         * WebGPUShadingLanguageRI/Evaluator.js:
3947         (Evaluator.prototype.visitMakeArrayRefExpression):
3948         (Evaluator.prototype.visitConvertPtrToArrayRefExpression):
3949         * WebGPUShadingLanguageRI/Intrinsics.js:
3950         (Intrinsics):
3951         * WebGPUShadingLanguageRI/MakeArrayRefExpression.js: Added.
3952         (MakeArrayRefExpression):
3953         (MakeArrayRefExpression.prototype.get lValue):
3954         (MakeArrayRefExpression.prototype.becomeConvertPtrToArrayRefExpression):
3955         (MakeArrayRefExpression.prototype.toString):
3956         * WebGPUShadingLanguageRI/MakePtrExpression.js:
3957         (MakePtrExpression.prototype.toString):
3958         (MakePtrExpression):
3959         * WebGPUShadingLanguageRI/PtrType.js:
3960         (PtrType.prototype.toString):
3961         (PtrType):
3962         * WebGPUShadingLanguageRI/ReferenceType.js:
3963         (ReferenceType):
3964         * WebGPUShadingLanguageRI/Rewriter.js:
3965         (Rewriter.prototype.visitArrayType):
3966         (Rewriter.prototype.visitMakeArrayRefExpression):
3967         (Rewriter.prototype.visitConvertPtrToArrayRefExpression):
3968         * WebGPUShadingLanguageRI/StandardLibrary.js:
3969         * WebGPUShadingLanguageRI/Test.html:
3970         * WebGPUShadingLanguageRI/Test.js:
3971         (TEST_buildArrayThenSumItUsingArrayReference):
3972         (TEST_overrideSubscriptStruct):
3973         (TEST_overrideSubscriptStructAndUsePointers):
3974         (TEST_overrideSubscriptStructAndUsePointersIncorrectly):
3975         (TEST_makeArrayRefFromPointer):
3976         (TEST_makeArrayRefFromArrayRef):
3977         * WebGPUShadingLanguageRI/Visitor.js:
3978         (Visitor.prototype.visitProtocolDecl):
3979
3980 2017-09-14  Filip Pizlo  <fpizlo@apple.com>
3981
3982         WSL should support ++, --, +=, and all of those things
3983         https://bugs.webkit.org/show_bug.cgi?id=176975
3984
3985         Reviewed by Myles Maxfield.
3986         
3987         This adds an internal AST construct called LetExpression, that allows us to anonymously capture
3988         a value. This change uses LetExpression to implement prefix and suffix ++/-- and all of the
3989         +=/-=/etc.
3990
3991         * WebGPUShadingLanguageRI/All.js:
3992         * WebGPUShadingLanguageRI/Checker.js:
3993         * WebGPUShadingLanguageRI/EBufferBuilder.js:
3994         (EBufferBuilder.prototype.visitVariableDecl):
3995         (EBufferBuilder.prototype.visitLetExpression):
3996         (EBufferBuilder):
3997         * WebGPUShadingLanguageRI/Evaluator.js:
3998         (Evaluator.prototype.visitLetExpression):
3999         * WebGPUShadingLanguageRI/LetExpression.js: Added.
4000         (LetExpression):
4001         (LetExpression.prototype.get origin):
4002         (LetExpression.prototype.get name):
4003         (LetExpression.prototype.toString):
4004         * WebGPUShadingLanguageRI/Lexer.js:
4005         (Lexer.prototype.next):
4006         (Lexer):
4007         * WebGPUShadingLanguageRI/NameResolver.js:
4008         (NameResolver.prototype.visitProtocolDecl):
4009         * WebGPUShadingLanguageRI/Parse.js:
4010         (isCallExpression):
4011         (finishParsingPostIncrement):
4012         (parsePossibleSuffix):
4013         (finishParsingPreIncrement):
4014         (parsePreIncrement):
4015         (parsePossiblePrefix):
4016         (parsePossibleAssignment):
4017         (parsePostIncrement):
4018         (parseEffectfulExpression):
4019         * WebGPUShadingLanguageRI/Rewriter.js:
4020         (Rewriter.prototype.visitFunctionLikeBlock):
4021         (Rewriter.prototype.visitLetExpression):
4022         (Rewriter):
4023         * WebGPUShadingLanguageRI/StandardLibrary.js:
4024         (int.operator):
4025         (uint.operator):
4026         * WebGPUShadingLanguageRI/Test.html:
4027         * WebGPUShadingLanguageRI/Test.js:
4028         (TEST_prefixPlusPlus):
4029         (TEST_prefixPlusPlusResult):
4030         (TEST_postfixPlusPlus):
4031         (TEST_postfixPlusPlusResult):
4032         (TEST_prefixMinusMinus):
4033         (TEST_prefixMinusMinusResult):
4034         (TEST_postfixMinusMinus):
4035         (TEST_postfixMinusMinusResult):
4036         (TEST_plusEquals):
4037         (TEST_plusEqualsResult):
4038         (TEST_minusEquals):
4039         (TEST_minusEqualsResult):
4040         (TEST_timesEquals):
4041         (TEST_timesEqualsResult):
4042         (TEST_divideEquals):
4043         (TEST_divideEqualsResult):
4044         * WebGPUShadingLanguageRI/Visitor.js:
4045         (Visitor.prototype.visitProtocolDecl):
4046
4047 2017-09-15  Brent Fulgham  <bfulgham@apple.com>
4048
4049         Provide mechanism to immediately end tests
4050         https://bugs.webkit.org/show_bug.cgi?id=176364
4051         <rdar://problem/34254780>
4052
4053         Reviewed by Alex Christensen.
4054
4055         WebKitTestRunner does not output state if the top loading frame has not been removed. This prevents some
4056         tests that attempt to exercise failed load state from working properly.
4057         
4058         This change adds a new 'forceImmediateCompletion' handler for DumpRenderTree and WebKitTestRunner so
4059         that we can properly test these conditions.
4060
4061         * DumpRenderTree/TestRunner.h:
4062         * DumpRenderTree/mac/TestRunnerMac.mm:
4063         (TestRunner::forceImmediateCompletion): Added.
4064         * DumpRenderTree/win/TestRunnerWin.cpp:
4065         (TestRunner::forceImmediateCompletion): Ditto.
4066         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
4067         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
4068         (WTR::TestRunner::forceImmediateCompletion): Ditto.
4069         * WebKitTestRunner/InjectedBundle/TestRunner.h:
4070
4071 2017-09-15  Youenn Fablet  <youenn@apple.com>
4072
4073         Add an URL method to remove both query string and fragment identifier
4074         https://bugs.webkit.org/show_bug.cgi?id=176911
4075
4076         Reviewed by Alex Christensen.
4077
4078         Adding unit test for new URL method as well as modified setQuery and setFragmentIdentifier.
4079
4080         * TestWebKitAPI/Tests/WebCore/URL.cpp:
4081         (TestWebKitAPI::createURL):
4082         (TestWebKitAPI::TEST_F):
4083
4084 2017-09-14  Yousuke Kimoto  <yousuke.kimoto@sony.com>
4085
4086         [WinCairo] Add an option to build WebKitLegacy and WebKit
4087         https://bugs.webkit.org/show_bug.cgi?id=176891
4088
4089         Since TestWebKitAPI and MiniBrowser/win are used for WebKitLegacy,
4090         those subdirectories are ignored for WebKit build.
4091
4092         Reviewed by Alex Christensen.
4093
4094         * CMakeLists.txt:
4095
4096 2017-09-14  Lucas Forschler  <lforschler@apple.com>
4097
4098         Create a launcher for webkit-archives
4099         https://bugs.webkit.org/show_bug.cgi?id=176964
4100
4101         Reviewed by Aakash Jain.
4102
4103         * Scripts/run-webkit-archive: Added.
4104         (find_dyld_framework_path):
4105         (run_safari_for_webkit_development):
4106         (set_dyld_framework_path):
4107         (main):
4108
4109 2017-09-14  Alex Christensen  <achristensen@webkit.org>
4110
4111         Add WKUIDelegatePrivate equivalent of WKPageUIClient's drawHeader, drawFooter, headerHeight, and footerHeight
4112         https://bugs.webkit.org/show_bug.cgi?id=176889
4113         <rdar://problem/29270035>
4114
4115         Reviewed by Andy Estes.
4116
4117         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
4118         (-[PrintDelegate _webView:printFrame:]):
4119         (-[PrintDelegate _webViewHeaderHeight:]):
4120         (-[PrintDelegate _webViewFooterHeight:]):
4121         (-[PrintDelegate _webView:drawHeaderInRect:forPageWithTitle:URL:]):
4122         (-[PrintDelegate _webView:drawFooterInRect:forPageWithTitle:URL:]):
4123         (callbacksEqual):
4124         (TEST):
4125         * TestWebKitAPI/cocoa/TestWKWebView.h:
4126         * TestWebKitAPI/cocoa/TestWKWebView.mm:
4127         (-[TestWKWebView hostWindow]):
4128
4129 2017-09-14  Ryan Haddad  <ryanhaddad@apple.com>
4130
4131         Unreviewed, rolling out r222033.
4132
4133         This change caused API test WebKit.PrintFrame to time out.
4134
4135         Reverted changeset:
4136
4137         "Add WKUIDelegatePrivate equivalent of WKPageUIClient's
4138         drawHeader, drawFooter, headerHeight, and footerHeight"
4139         https://bugs.webkit.org/show_bug.cgi?id=176889
4140         http://trac.webkit.org/changeset/222033
4141
4142 2017-09-14  Youenn Fablet  <youenn@apple.com>
4143
4144         Allow WTF::map to take function as parameter
4145         https://bugs.webkit.org/show_bug.cgi?id=176909
4146
4147         Reviewed by Jer Noble.
4148
4149         * TestWebKitAPI/Tests/WTF/Vector.cpp:
4150         (TestWebKitAPI::multiplyByTwo):
4151         (TestWebKitAPI::TEST):
4152         (TestWebKitAPI::multiplyByTwoMoveOnly):
4153
4154 2017-09-14  Filip Pizlo  <fpizlo@apple.com>
4155
4156         WSL IntLiteralType should become int32 if unified with a type variable
4157         https://bugs.webkit.org/show_bug.cgi?id=176707
4158
4159         Reviewed by Myles Maxfield.
4160         
4161         This makes it so that this works:
4162         
4163             T foo<T>(T x) { return x; }
4164             foo(42); // T becomes int32
4165         
4166         Previously, it did not work because IntLiteralType did not recognize TypeVariable as a number. Also,
4167         TypeVariable would try to evaluate protocol inheritance of IntLiteralType, which would not go well. One
4168         of the tests that this patch adds didn't just fail; it gave such an absurd 7-line type error that I felt
4169         like I was using SML.
4170         
4171         This fixes the problem by introducing what I think is a super deterministic way of handling literals and
4172         type variables:
4173         
4174         Before verifying a unification context, we now give all literals a chance to perform an extra 
4175         unification step. This is a two-phase process. This ensures that the unification performed by one 
4176         literal does not throw off the logic of some other literal. For example, if we do:
4177         
4178             void foo<T>(T, T) { }
4179             foo(42, 42u);
4180         
4181         Then we want to always fail to compile, rather than sometimes succeeding. So, we first ask each literal
4182         if it thinks that it needs to do extra unification. Both of the literals will report that they want to
4183         in this case, because they will notice that they got unified with either at type variable or a literal,
4184         which isn't specific enough. Then after they all register to do extra unification, they will both try to
4185         unify with their preferred types (int32 for 42, uint32 for 42u). The first one will succeed, and the
4186         second will give an error.
4187         
4188         Without the special two-phase arrangement, it was possible to either get a type error or not depending 
4189         on the order - for example foo(42, 42u) might fail while foo(42u, 42) succeeds. It was definitely not
4190         decidable, at least not unless you mandate the unification order as part of the type system spec. I 
4191         think that would have been nuts.
4192         
4193         Both IntLiteral and UintLiteral are now "flexible"; the uint one will reject non-int or signed int
4194         types and will prefer uint, but otherwise it's the same logic. This means that this will be valid:
4195         
4196             uint8 x = 5u;
4197         
4198         But this is still wrong:
4199         
4200             int x = 5u;
4201         
4202         To make this easy, I turned IntLiteral and UintLiteral (and IntLiteralType and UintLiteralType) into
4203         factory-built generic types (see createLiteral() and createLiteralType()). Because visitors use the
4204         constructor's declared name (GenericLiteral and GenericLiteralType in this case), it means that we can
4205         share a ton of code between the different literals. I love that ES6 lets you do that.
4206
4207         * WebGPUShadingLanguageRI/All.js:
4208         * WebGPUShadingLanguageRI/Checker.js:
4209         * WebGPUShadingLanguageRI/CreateLiteral.js: Added.
4210         (createLiteral.GenericLiteral):
4211         (createLiteral.GenericLiteral.prototype.get value):
4212         (createLiteral.GenericLiteral.prototype.get isConstexpr):
4213         (createLiteral.GenericLiteral.prototype.toString):
4214         (createLiteral):
4215         * WebGPUShadingLanguageRI/CreateLiteralType.js: Added.
4216         (createLiteralType.GenericLiteralType):
4217         (createLiteralType.GenericLiteralType.prototype.get origin):
4218         (createLiteralType.GenericLiteralType.prototype.get value):
4219         (createLiteralType.GenericLiteralType.prototype.get isPrimitive):
4220         (createLiteralType.GenericLiteralType.prototype.get isUnifiable):
4221         (createLiteralType.GenericLiteralType.prototype.get isLiteral):
4222         (createLiteralType.GenericLiteralType.prototype.typeVariableUnify):
4223         (createLiteralType.GenericLiteralType.prototype.unifyImpl):
4224         (createLiteralType.GenericLiteralType.prototype.prepareToVerify):
4225         (createLiteralType.GenericLiteralType.prototype.verifyAsArgument):
4226         (createLiteralType.GenericLiteralType.prototype.verifyAsParameter):
4227         (createLiteralType.GenericLiteralType.prototype.conversionCost):
4228         (createLiteralType.GenericLiteralType.prototype.commitUnification):
4229         (createLiteralType.GenericLiteralType.prototype.toString):
4230         (createLiteralType):
4231         * WebGPUShadingLanguageRI/Evaluator.js:
4232         (Evaluator.prototype.visitIntLiteral): Deleted.
4233         (Evaluator.prototype.