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