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