WSL should be able to trap when something fatal happens
[WebKit-https.git] / Tools / ChangeLog
1 2017-09-19  Myles C. Maxfield  <mmaxfield@apple.com>
2
3         WSL should be able to trap when something fatal happens
4         https://bugs.webkit.org/show_bug.cgi?id=177110
5
6         Reviewed by Filip Pizlo.
7
8         WSL programs can include a statement "trap;" which causes the entry
9         point to immediately return the default value of its return type.
10         This is implemented by throw/catch and populateDefaultValue().
11
12         * WebGPUShadingLanguageRI/All.js:
13         * WebGPUShadingLanguageRI/EvaluationCommon.js:
14         * WebGPUShadingLanguageRI/Evaluator.js:
15         (Evaluator.prototype.visitTrapStatement):
16         * WebGPUShadingLanguageRI/Parse.js:
17         (parseStatement):
18         * WebGPUShadingLanguageRI/ReturnChecker.js:
19         (ReturnChecker.prototype.visitTrapStatement):
20         * WebGPUShadingLanguageRI/Rewriter.js:
21         (Rewriter.prototype.visitTrapStatement):
22         * WebGPUShadingLanguageRI/StandardLibrary.js:
23         * WebGPUShadingLanguageRI/Test.html:
24         * WebGPUShadingLanguageRI/Test.js:
25         * WebGPUShadingLanguageRI/TrapStatement.js: Copied from Tools/WebGPUShadingLanguageRI/EvaluationCommon.js.
26         (TrapStatement):
27         (TrapStatement.prototype.get origin):
28         (TrapStatement.prototype.toString):
29         * WebGPUShadingLanguageRI/Visitor.js:
30         (Visitor.prototype.visitProtocolDecl):
31
32 2017-09-19  Ryan Haddad  <ryanhaddad@apple.com>
33
34         Unreviewed follow-up to r222229, remove invalid triggers.
35
36         * BuildSlaveSupport/build.webkit.org-config/config.json:
37
38 2017-09-19  Simon Fraser  <simon.fraser@apple.com>
39
40         tiled-drawing/tiled-backing-in-window.html fails on Retina displays
41         https://bugs.webkit.org/show_bug.cgi?id=177113
42
43         Reviewed by Tim Horton.
44
45         This test removes the view from the window, and then dumps the layer tree, at which point
46         some layers would report a contentsScale of 2 on Retina displays.
47
48         This occurs because WebKitTestRunner overrides the default device scale factor on NSWindow,
49         but windowless views fall back to [NSScreen mainScreen].backingScaleFactor (in WebViewImpl::intrinsicDeviceScaleFactor()).
50
51         Fix by having PlatformWebView::changeWindowScaleIfNeeded() call -_setOverrideDeviceScaleFactor: on the view.
52
53         * WebKitTestRunner/mac/PlatformWebViewMac.mm:
54         (WTR::PlatformWebView::changeWindowScaleIfNeeded):
55
56 2017-09-19  Wenson Hsieh  <wenson_hsieh@apple.com>
57
58         REGRESSION (r215613): Incorrect corners clipping with border-radius
59         https://bugs.webkit.org/show_bug.cgi?id=176498
60         <rdar://problem/34112607>
61
62         Reviewed by Tim Horton.
63
64         Add WebCore API tests for RoundedRect::contains().
65
66         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
67         * TestWebKitAPI/Tests/WebCore/RoundedRectTests.cpp: Added.
68         (TestWebKitAPI::layoutRect):
69         (TestWebKitAPI::TEST):
70
71 2017-09-19  Youenn Fablet  <youenn@apple.com>
72
73         Allow WTF::map to use any class that is iterable and has a size getter
74         https://bugs.webkit.org/show_bug.cgi?id=177026
75
76         Reviewed by Darin Adler.
77
78         * TestWebKitAPI/Tests/WTF/Vector.cpp:
79         (TestWebKitAPI::TEST):
80
81 2017-09-19  Ryan Haddad  <ryanhaddad@apple.com>
82
83         Update bot configuration for iOS 11.
84         https://bugs.webkit.org/show_bug.cgi?id=177165
85
86         Reviewed by Alexey Proskuryakov.
87
88         * BuildSlaveSupport/build.webkit.org-config/config.json:
89         * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:
90         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:
91         (BubbleQueueServer):
92         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
93         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
94         (WebKitBuildbot):
95         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
96         (table.queue-grid tr.platform.ios-simulator-10 img.logo): Deleted.
97         (table.queue-grid tr.platform.ios-10 img.logo): Deleted.
98         * BuildSlaveSupport/build.webkit.org-config/wkbuild.py:
99         (_should_file_trigger_build):
100         * BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py:
101         (ShouldBuildTest):
102         (ShouldBuildTest.test_should_build):
103
104 2017-09-19  Filip Pizlo  <fpizlo@apple.com>
105
106         Primitive protocol should have capital name
107         https://bugs.webkit.org/show_bug.cgi?id=177097
108
109         Reviewed by JF Bastien.
110         
111         As soon as I started programming in WSL, I found that I preferred to capitalize protocol names. So, my
112         early decision to call the primitive protocol "primitive" instead of "Primitive" seems absurd now. This
113         change reverses that decision.
114         
115         Aesthetically, this is a slight improvement. For example:
116         
117             struct Bar<T:Primitive> {
118                 Foo<device T^> f;
119             }
120
121         This makes more sense since all of the non-keyword type identifiers are capital.
122         
123         The one place where this is an aesthetic regression is native primitive typedefs, which now look like:
124         
125             native Primitive typedef bool;
126         
127         I'm happy with that tradeoff, since native typedefs are only in the standard library. Users don't see
128         this.
129
130         * WebGPUShadingLanguageRI/AddressSpace.js:
131         (protocolSuffix):
132         * WebGPUShadingLanguageRI/Intrinsics.js:
133         (Intrinsics):
134         * WebGPUShadingLanguageRI/NativeType.js:
135         (NativeType.prototype.toString):
136         (NativeType):
137         * WebGPUShadingLanguageRI/Parse.js:
138         (parseNative):
139         * WebGPUShadingLanguageRI/StandardLibrary.js:
140         * WebGPUShadingLanguageRI/Test.js:
141         (TEST_passNullAndNotNullFullPoly):
142         (TEST_passNullAndNotNullFullPolyReverse):
143
144 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
145
146         Cannot put typedefs of templated structs inside structs
147         https://bugs.webkit.org/show_bug.cgi?id=177123
148
149         Reviewed by Michael Saboff.
150         
151         Ever since I wrote the generic type instantiation code in WSL, it had a bizarre stink to it. I
152         did not know what it was, until I met this test case:
153         
154             struct Foo { int2 x; }
155         
156         The problem was that Type has a getter called instantiatedType, which invoked
157         InstantiateImmediates. That's great. Where we went wrong was that TypeRef overrode
158         instantiatedType, and then InstantiateImmediates called TypeRef.instantiatedType from its
159         visitTypeRef. What a mess. None of that was necessary for anything, and it was just wrong. This
160         patch fixes it so that:
161         
162         - Type has an instantiatedType getter, which does InstantiateImmediates. I didn't change this.
163           This was the only part of the status quo that really made sense.
164         
165         - TypeRef no longer overrides instantiatedType.
166         
167         - InstantianteImmediates.prototype.visitTypeRef now does what TypeRef's instantiatedType would
168           have done.
169         
170         And voila! This test case passes and so do all of the other test cases.
171         
172         The reason why that specific test case did not work was that the use of a TypeDef (int2) for
173         a generic type instantiation (vec2<int>) caused there to be two TypeRef's in a row, sorta like
174         this, if we could use wrap() to denote a TypeRef that just wrapped another type:
175         
176             wrap(vec2<int>)
177         
178         We would call instantiatedType on this monstrosity. Since TypeRef overrode instantiatedType,
179         we would stop there because that TypeRef has no type arguments - it's just a wrapper. Well,
180         actually, we'd do something a bit stranger than stopping there - there's more to the story -
181         but the effect was the same. Now we do InstantiateImmediates, which recursively builds a new
182         type. This chews through the wrapper and then instantiates the wrapped type, as we want it to.
183         Also, this approach no longer has the stink. instantiatedType isn't overriden by anyone
184         anymore!
185
186         * WebGPUShadingLanguageRI/Checker.js:
187         * WebGPUShadingLanguageRI/InstantiateImmediates.js:
188         (InstantiateImmediates.prototype.visitTypeRef):
189         (InstantiateImmediates.prototype.visitReferenceType): Deleted.
190         * WebGPUShadingLanguageRI/Test.js:
191         (TEST_instantiateStructInStructWithInt2):
192         * WebGPUShadingLanguageRI/TypeRef.js:
193         (TypeRef.wrap):
194         (TypeRef.prototype.setTypeAndArguments):
195         (TypeRef.prototype.toString):
196         (TypeRef):
197         (TypeRef.prototype.get instantiatedType): Deleted.
198
199 2017-09-19  Per Arne Vollan  <pvollan@apple.com>
200
201         [Win] WebKit fails to build with 64-bit Perl.
202         https://bugs.webkit.org/show_bug.cgi?id=177106
203
204         Reviewed by Brent Fulgham.
205
206         Visual Studio is installed in the 32-bit program files folder.
207  
208         * Scripts/webkitdirs.pm:
209         (programFilesPathX86):
210         (visualStudioInstallDir):
211         (msBuildInstallDir):
212
213 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
214
215         [WSL] Cannot put templated structs inside structs
216         https://bugs.webkit.org/show_bug.cgi?id=177120
217
218         Reviewed by Myles Maxfield.
219         
220         It turns out that we still need to instantiate structs even if not passing type arguments,
221         since its fields may need to be instantiated.
222         
223         This makes Myles's test case pass. When writing the test case, I encountered parser bugs, and
224         I fixed them.
225
226         * WebGPUShadingLanguageRI/CallFunction.js:
227         (callFunction):
228         * WebGPUShadingLanguageRI/Checker.js:
229         (Checker.prototype.visitReferenceType):
230         * WebGPUShadingLanguageRI/FuncInstantiator.js:
231         (FuncInstantiator.prototype.getUnique):
232         (FuncInstantiator):
233         * WebGPUShadingLanguageRI/Parse.js:
234         (parseSuffixOperator):
235         (parsePossibleSuffix):
236         (parsePostIncrement):
237         * WebGPUShadingLanguageRI/StructType.js:
238         (StructType.prototype.instantiate):
239         * WebGPUShadingLanguageRI/Test.js:
240         (checkNumber):
241         (checkEnum):
242         (TEST_instantiateStructInStruct):
243         * WebGPUShadingLanguageRI/TypeRef.js:
244         (TypeRef.prototype.get instantiatedType):
245         (TypeRef.prototype.get isPrimitive):
246
247 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
248
249         WSL should support enum
250         https://bugs.webkit.org/show_bug.cgi?id=176977
251
252         Reviewed by Myles Maxfield.
253         
254         This implements enum. Enums members are referenced Java-style. For example, if we have an enum like:
255         
256             enum Bank {
257                 GP,
258                 FP
259             }
260         
261         Then you refer to the members by saying Bank.GP and Bank.FP.
262         
263         Also adds a hack that makes operator- on a literal fold the literal. This fixes two issues:
264         
265         - Lets you use negative literals in constexprs.
266         - Means that negative literals also get literal type unification.
267         
268         WSL's constexpr support is really thin, but I think it's all we really need for now.
269         
270         * WebGPUShadingLanguageRI/All.js:
271         * WebGPUShadingLanguageRI/Checker.js:
272         (Checker.prototype.visitEnumType):
273         (Checker.prototype.visitEnumLiteral):
274         * WebGPUShadingLanguageRI/ConstexprFolder.js: Added.
275         (ConstexprFolder.prototype.visitCallExpression):
276         (ConstexprFolder.prototype.visitTypeOrVariableRef):
277         (ConstexprFolder):
278         * WebGPUShadingLanguageRI/CreateLiteral.js:
279         (createLiteral.GenericLiteral.prototype.get valueForSelectedType):
280         (createLiteral.GenericLiteral.prototype.get negConstexpr):
281         * WebGPUShadingLanguageRI/DoubleLiteral.js:
282         (let.DoubleLiteral.createLiteral.negConstexpr):
283         * WebGPUShadingLanguageRI/EBufferBuilder.js:
284         (EBufferBuilder.prototype.visitEnumLiteral):
285         * WebGPUShadingLanguageRI/EnumLiteral.js: Added.
286         (EnumLiteral):
287         (EnumLiteral.prototype.get member):
288         (EnumLiteral.prototype.get type):
289         (EnumLiteral.prototype.get isConstexpr):
290         (EnumLiteral.prototype.unifyImpl):
291         (EnumLiteral.prototype.toString):
292         * WebGPUShadingLanguageRI/EnumMember.js: Added.
293         (EnumMember):
294         (EnumMember.prototype.get origin):
295         (EnumMember.prototype.get name):
296         (EnumMember.prototype.toString):
297         * WebGPUShadingLanguageRI/EnumType.js: Added.
298         (EnumType):
299         (EnumType.prototype.add):
300         (EnumType.prototype.get origin):
301         (EnumType.prototype.get name):
302         (EnumType.prototype.get baseType):
303         (EnumType.prototype.get memberNames):
304         (EnumType.prototype.memberByName):
305         (EnumType.prototype.get members):
306         (EnumType.prototype.get memberMap):
307         (EnumType.prototype.get isPrimitive):
308         (EnumType.prototype.populateDefaultValue):
309         (EnumType.prototype.get size):
310         (EnumType.prototype.toString):
311         * WebGPUShadingLanguageRI/Evaluator.js:
312         (Evaluator.prototype.visitGenericLiteral):
313         (Evaluator.prototype.visitEnumLiteral):
314         * WebGPUShadingLanguageRI/FloatLiteral.js:
315         (let.FloatLiteral.createLiteral.negConstexpr):
316         * WebGPUShadingLanguageRI/FoldConstexprs.js: Added.
317         (foldConstexprs):
318         * WebGPUShadingLanguageRI/IntLiteral.js:
319         (let.IntLiteral.createLiteral.negConstexpr):
320         * WebGPUShadingLanguageRI/Intrinsics.js:
321         (Intrinsics):
322         * WebGPUShadingLanguageRI/NameResolver.js:
323         (NameResolver.prototype.visitProtocolDecl):
324         * WebGPUShadingLanguageRI/Parse.js:
325         (parseConstexpr):
326         (parsePossibleSuffix):
327         (parseEnumMember):
328         (parseEnumType):
329         (parse):
330         * WebGPUShadingLanguageRI/Prepare.js:
331         (prepare):
332         * WebGPUShadingLanguageRI/Rewriter.js:
333         (Rewriter.prototype.visitEnumType):
334         (Rewriter.prototype.visitEnumMember):
335         (Rewriter.prototype.visitEnumLiteral):
336         * WebGPUShadingLanguageRI/StructType.js:
337         (StructType.prototype.get origin):
338         (StructType.prototype.instantiate):
339         * WebGPUShadingLanguageRI/SynthesizeEnumFunctions.js: Added.
340         (synthesizeEnumFunctions):
341         * WebGPUShadingLanguageRI/Test.html:
342         * WebGPUShadingLanguageRI/Test.js:
343         (checkEnum):
344         (TEST_simpleEnum):
345         (TEST_enumWithManualValues):
346         (TEST_enumWithoutZero):
347         (TEST_enumConstexprGenericFunction):
348         (TEST_enumConstexprGenericStruct):
349         * WebGPUShadingLanguageRI/UintLiteral.js:
350         (let.UintLiteral.createLiteral.negConstexpr):
351         * WebGPUShadingLanguageRI/Visitor.js:
352         (Visitor.prototype.visitProtocolDecl):
353
354 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
355
356         WSL prepare() should cache the parsed standard library
357         https://bugs.webkit.org/show_bug.cgi?id=177118
358
359         Reviewed by Myles Maxfield.
360         
361         The execution time of Test.js is too damn high!
362         
363         So I made it 2x faster by caching the parsed standard library.
364
365         * WebGPUShadingLanguageRI/All.js:
366         * WebGPUShadingLanguageRI/CloneProgram.js: Added.
367         (cloneProgram):
368         * WebGPUShadingLanguageRI/Prepare.js:
369         (let.prepare):
370         (prepare): Deleted.
371         * WebGPUShadingLanguageRI/StatementCloner.js: Added.
372         (StatementCloner.prototype.visitFuncDef):
373         (StatementCloner.prototype.visitNativeFunc):
374         (StatementCloner.prototype.visitNativeType):
375         (StatementCloner.prototype.visitTypeDef):
376         (StatementCloner.prototype.visitStructType):
377         (StatementCloner.prototype.visitConstexprTypeParameter):
378         (StatementCloner.prototype.visitProtocolDecl):
379         * WebGPUShadingLanguageRI/Test.html:
380         * WebGPUShadingLanguageRI/Test.js:
381         (doTest):
382
383 2017-09-18  Michael Catanzaro  <mcatanzaro@igalia.com>
384
385         [CMake] Rename WebKit target to WebKitLegacy and rename WebKit2 target to WebKit
386         https://bugs.webkit.org/show_bug.cgi?id=174558
387
388         Reviewed by Alex Christensen.
389
390         With help from Stephan Szabo, thanks!
391
392         * DumpRenderTree/PlatformMac.cmake:
393         * DumpRenderTree/PlatformWin.cmake:
394         * DumpRenderTree/win/AccessibilityControllerWin.cpp:
395         * DumpRenderTree/win/DRTDesktopNotificationPresenter.h:
396         * DumpRenderTree/win/DumpRenderTree.cpp:
397         * DumpRenderTree/win/EditingDelegate.h:
398         * DumpRenderTree/win/EventSender.cpp:
399         * DumpRenderTree/win/FrameLoadDelegate.cpp:
400         * DumpRenderTree/win/FrameLoadDelegate.h:
401         * DumpRenderTree/win/GCControllerWin.cpp:
402         * DumpRenderTree/win/HistoryDelegate.cpp:
403         * DumpRenderTree/win/HistoryDelegate.h:
404         * DumpRenderTree/win/PolicyDelegate.h:
405         * DumpRenderTree/win/ResourceLoadDelegate.cpp:
406         * DumpRenderTree/win/ResourceLoadDelegate.h:
407         * DumpRenderTree/win/TestRunnerWin.cpp:
408         * DumpRenderTree/win/TextInputControllerWin.cpp:
409         * DumpRenderTree/win/UIDelegate.cpp:
410         * DumpRenderTree/win/UIDelegate.h:
411         * DumpRenderTree/win/WorkQueueItemWin.cpp:
412         * MiniBrowser/gtk/CMakeLists.txt:
413         * MiniBrowser/mac/CMakeLists.txt:
414         * MiniBrowser/win/AccessibilityDelegate.cpp:
415         * MiniBrowser/win/AccessibilityDelegate.h:
416         * MiniBrowser/win/CMakeLists.txt:
417         * MiniBrowser/win/Common.cpp:
418         * MiniBrowser/win/DOMDefaultImpl.h:
419         * MiniBrowser/win/MiniBrowser.cpp:
420         * MiniBrowser/win/MiniBrowser.h:
421         * MiniBrowser/win/MiniBrowserWebHost.cpp:
422         * MiniBrowser/win/MiniBrowserWebHost.h:
423         * MiniBrowser/win/PageLoadTestClient.h:
424         * MiniBrowser/win/PrintWebUIDelegate.cpp:
425         * MiniBrowser/win/PrintWebUIDelegate.h:
426         * MiniBrowser/win/ResourceLoadDelegate.cpp:
427         * MiniBrowser/win/ResourceLoadDelegate.h:
428         * MiniBrowser/win/WebDownloadDelegate.h:
429         * TestWebKitAPI/CMakeLists.txt:
430         * TestWebKitAPI/PlatformGTK.cmake:
431         * TestWebKitAPI/PlatformWPE.cmake:
432         * TestWebKitAPI/PlatformWin.cmake:
433         * TestWebKitAPI/Tests/WebKitLegacy/win/ScaleWebView.cpp:
434         * TestWebKitAPI/Tests/WebKitLegacy/win/WebViewDestruction.cpp:
435         * TestWebKitAPI/glib/CMakeLists.txt:
436         * WebKitTestRunner/CMakeLists.txt:
437         * WebKitTestRunner/PlatformGTK.cmake:
438         * WebKitTestRunner/PlatformWPE.cmake:
439
440 2017-09-18  Myles C. Maxfield  <mmaxfield@apple.com>
441
442         Fill out vector types in WSL's standard library
443         https://bugs.webkit.org/show_bug.cgi?id=177063
444
445         Reviewed by Filip Pizlo.
446
447         Now that we have struct types, operator&[], and operator==, fill out a few of the builtin vector types in the
448         standard library. This patch creates three new types: vec2, vec3, and vec4, each of which takes a type
449         argument, so you can say vec4<float>. This patch also adds typedefs of int4, uint4, float4, and double4 (along
450         with their 2- and 3- length siblings).
451
452         This patch does not include the swizzling operators, so you can't say float4.yzw.
453
454         * WebGPUShadingLanguageRI/StandardLibrary.js:
455         (operator.T.vec2.T):
456         (bool.operator.T.Equatable):
457         (thread.T.operator.T):
458         (operator.T.vec3.T):
459         (operator.T.vec4.T):
460         * WebGPUShadingLanguageRI/Test.js:
461         (TEST_builtinVectors):
462
463 2017-09-18  Myles C. Maxfield  <mmaxfield@apple.com>
464
465         WSL needs to annotate vertex shaders and fragment shaders
466         https://bugs.webkit.org/show_bug.cgi?id=177066
467
468         Reviewed by Filip Pizlo.
469
470         Metal Shading Language requires annotating vertex and fragment shaders, so this information needs to be in
471         the source WSL file.
472
473         * WebGPUShadingLanguageRI/Func.js:
474         (Func):
475         (Func.prototype.get shaderType):
476         * WebGPUShadingLanguageRI/FuncDef.js:
477         (FuncDef):
478         * WebGPUShadingLanguageRI/NativeFunc.js:
479         (NativeFunc):
480         * WebGPUShadingLanguageRI/Parse.js:
481         (parseFuncDecl):
482         (parseProtocolFuncDecl):
483         (parseFuncDef):
484         (parseNativeFunc):
485         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
486         (resolveOverloadImpl):
487         * WebGPUShadingLanguageRI/Test.js:
488
489 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
490
491         WSL should know that constexpr parameters are not lvalues
492         https://bugs.webkit.org/show_bug.cgi?id=177104
493
494         Reviewed by Saam Barati.
495         
496         This should be an error:
497         
498             void foo<int x>()
499             {
500                 x = 42;
501             }
502         
503         Previously, it wasn't, because VariableRef always thought that it was an LValue. This patch
504         teaches the type checker that not all VariableRefs are LValues.
505
506         * WebGPUShadingLanguageRI/ConstexprTypeParameter.js:
507         (ConstexprTypeParameter.prototype.get varIsLValue):
508         * WebGPUShadingLanguageRI/FuncParameter.js:
509         (FuncParameter.prototype.get varIsLValue):
510         * WebGPUShadingLanguageRI/Test.js:
511         (TEST_nonArrayRefArrayLengthSucceed):
512         (TEST_nonArrayRefArrayLengthFail):
513         (TEST_nonArrayRefArrayLength): Deleted.
514         (TEST_assignLength): Deleted.
515         * WebGPUShadingLanguageRI/VariableDecl.js:
516         (VariableDecl.prototype.get varIsLValue):
517         * WebGPUShadingLanguageRI/VariableRef.js:
518         (VariableRef.prototype.get isLValue):
519
520 2017-09-18  Ryan Haddad  <ryanhaddad@apple.com>
521
522         Unreviewed, rolling out r222170.
523
524         The API test added with this change is failing.
525
526         Reverted changeset:
527
528         "Allow WTF::map to use any class that is iterable and has a
529         size getter"
530         https://bugs.webkit.org/show_bug.cgi?id=177026
531         http://trac.webkit.org/changeset/222170
532
533 2017-09-18  Myles C. Maxfield  <mmaxfield@apple.com>
534
535         Add a section in WSL's documentation about how API objects and WSL interact
536         https://bugs.webkit.org/show_bug.cgi?id=177089
537
538         Reviewed by Filip Pizlo.
539
540         No global variables; entry points accept arguments. Buffers are array references ([]),
541         and texture and sampler opaque types exist. Data is passed between stages in return
542         values.
543
544         * WebGPUShadingLanguageRI/WSL.md:
545
546 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
547
548         Unreviewed, fix typo.
549
550         * WebGPUShadingLanguageRI/WSL.md:
551
552 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
553
554         WSL cannot use typedefs of arrays
555         https://bugs.webkit.org/show_bug.cgi?id=177061
556
557         Reviewed by Saam Barati.
558         
559         This test case didn't work before because of a missing visit call in Checker.
560
561         * WebGPUShadingLanguageRI/Checker.js:
562         (Checker.prototype.visitTypeRef):
563         * WebGPUShadingLanguageRI/Test.js:
564         (TEST_typedefArray):
565
566 2017-09-18  Youenn Fablet  <youenn@apple.com>
567
568         Allow WTF::map to use any class that is iterable and has a size getter
569         https://bugs.webkit.org/show_bug.cgi?id=177026
570
571         Reviewed by Darin Adler.
572
573         * TestWebKitAPI/Tests/WTF/Vector.cpp:
574         (TestWebKitAPI::TEST):
575
576 2017-09-16  Filip Pizlo  <fpizlo@apple.com>
577
578         Figure out how WSL will support field overloads like float4.xz and friends
579         https://bugs.webkit.org/show_bug.cgi?id=177031
580
581         Reviewed by JF Bastien.
582         
583         WSL needs to support getters and setters, so that we can do things like:
584         
585             float4 vec;
586             vec.zx = float2(1, 2);
587             // z = 1, x = 2
588         
589         There's no way to express this float4.zx returning a pointer to something, since it's doing swizzling.
590         It could return a crazy smart pointer, but that sounds like a lot of work. So, I decided to go for
591         lvalue emulation instead.
592         
593         The idea of lvalue emulation is that when we try to make an lvalue work for an assignment or RMW
594         operation (like += and friends), we consider the possibility that we have to first load the value using
595         a getter and then store it with a setter. This patch makes this work recursively, so that this will
596         work:
597         
598             float4 vec;
599             vec.zwx.y = 42;
600             // now w is 42
601         
602         This works because we decompose it automatically:
603         
604             float4 vec;
605             float3 tmp = vec.zwx;
606             tmp.y = 42;
607             vec.zwx = tmp;
608         
609         This'll work to any depth.
610         
611         To check if this works, this patch adds two substantial new tests called TEST_genericAccessors() and
612         TEST_bitSubscriptAccessor(). This tests that this stuff works with a lot of generic types, and that it's
613         possible to turn integers into bitvectors using subscript overloading. This patch also adds smaller unit
614         tests also.
615         
616         Oh, and it's now possible to get an array's length.
617
618         * WebGPUShadingLanguageRI/AddressSpace.js:
619         (needsPrimitiveProtocol):
620         (protocolSuffix):
621         * WebGPUShadingLanguageRI/All.js:
622         * WebGPUShadingLanguageRI/AnonymousVariable.js: Added.
623         (AnonymousVariable):
624         (AnonymousVariable.prototype.get origin):
625         (AnonymousVariable.prototype.get name):
626         (AnonymousVariable.prototype.toString):
627         * WebGPUShadingLanguageRI/ArrayRefType.js:
628         (ArrayRefType.prototype.argumentForAndOverload):
629         (ArrayRefType.prototype.argumentTypeForAndOverload):
630         * WebGPUShadingLanguageRI/ArrayType.js:
631         (ArrayType.prototype.argumentForAndOverload):
632         (ArrayType.prototype.argumentTypeForAndOverload):
633         (ArrayType):
634         * WebGPUShadingLanguageRI/Assignment.js:
635         (Assignment):
636         * WebGPUShadingLanguageRI/CallAssignment.js: Removed.
637         * WebGPUShadingLanguageRI/CallExpression.js:
638         (CallExpression.resolve):
639         (CallExpression.prototype.resolve):
640         (CallExpression.prototype.resolveToOverload):
641         * WebGPUShadingLanguageRI/Checker.js:
642         (Checker.prototype.visitProgram):
643         (Checker.prototype.visitFuncDef):
644         (Checker.prototype.visitNativeFunc):
645         (Checker.prototype.visitProtocolDecl):
646         (Checker.prototype.visitIdentityExpression):
647         (Checker.prototype.visitReadModifyWriteExpression):
648         (Checker.prototype.visitAnonymousVariable):
649         (Checker.prototype.visitMakeArrayRefExpression):
650         (Checker.prototype._finishVisitingPropertyAccess):
651         (Checker.prototype.visitDotExpression):
652         (Checker.prototype.visitIndexExpression):
653         (Checker.prototype.visitCallExpression):
654         (Checker):
655         (Checker.prototype.visitProtocolDecl.NoticeTypeVariable.prototype.visitTypeRef): Deleted.
656         (Checker.prototype.visitProtocolDecl.NoticeTypeVariable.prototype.visitVariableRef): Deleted.
657         (Checker.prototype.visitProtocolDecl.NoticeTypeVariable): Deleted.
658         (Checker.prototype.visitProtocolDecl.set throw): Deleted.
659         * WebGPUShadingLanguageRI/CommaExpression.js:
660         * WebGPUShadingLanguageRI/DotExpression.js:
661         (DotExpression):
662         (DotExpression.prototype.get struct):
663         (DotExpression.prototype.get getFuncName):
664         (DotExpression.prototype.get andFuncName):
665         (DotExpression.prototype.get setFuncName):
666         * WebGPUShadingLanguageRI/EBuffer.js:
667         * WebGPUShadingLanguageRI/EBufferBuilder.js:
668         (EBufferBuilder.prototype.visitAnonymousVariable):
669         (EBufferBuilder.prototype.visitLetExpression): Deleted.
670         * WebGPUShadingLanguageRI/Evaluator.js:
671         (Evaluator.prototype.visitIdentityExpression):
672         (Evaluator.prototype.visitMakePtrExpression):
673         (Evaluator.prototype.visitAnonymousVariable):
674         (Evaluator.prototype.visitDotExpression): Deleted.
675         (Evaluator.prototype.visitLetExpression): Deleted.
676         * WebGPUShadingLanguageRI/ExpressionFinder.js:
677         (ExpressionFinder.prototype.visitReadModifyWriteExpression):
678         (ExpressionFinder.prototype.visitIdentityExpression):
679         * WebGPUShadingLanguageRI/ForLoop.js:
680         (ForLoop.prototype.toString):
681         (ForLoop):
682         * WebGPUShadingLanguageRI/Func.js:
683         (Func):
684         * WebGPUShadingLanguageRI/FuncInstantiator.js:
685         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution.prototype.visitCallExpression):
686         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution):
687         (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitFuncDef):
688         (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitNativeFunc):
689         (FuncInstantiator.prototype.getUnique.Instantiate):
690         (FuncInstantiator.prototype.getUnique):
691         (FuncInstantiator):
692         * WebGPUShadingLanguageRI/IdentityExpression.js: Added.
693         (IdentityExpression):
694         (IdentityExpression.prototype.get target):
695         (IdentityExpression.prototype.get unifyNode):
696         (IdentityExpression.prototype.get isConstexpr):
697         (IdentityExpression.prototype.get isLValue):
698         (IdentityExpression.prototype.get addressSpace):
699         (IdentityExpression.prototype.toString):
700         * WebGPUShadingLanguageRI/IndexExpression.js: Added.
701         (IndexExpression):
702         (IndexExpression.prototype.get array):
703         (IndexExpression.prototype.get index):
704         (IndexExpression.prototype.get isLValue):
705         (IndexExpression.prototype.get addressSpace):
706         (IndexExpression.prototype.get getFuncName):
707         (IndexExpression.prototype.get andFuncName):
708         (IndexExpression.prototype.get setFuncName):
709         (IndexExpression.prototype.toString):
710         * WebGPUShadingLanguageRI/InferTypesForCall.js:
711         (inferTypesForCall):
712         * WebGPUShadingLanguageRI/Inline.js:
713         (_inlineFunction):
714         * WebGPUShadingLanguageRI/Inliner.js:
715         (Inliner.prototype.visitCallExpression):
716         (Inliner.prototype.visitDotExpression): Deleted.
717         * WebGPUShadingLanguageRI/Intrinsics.js:
718         (Intrinsics):
719         * WebGPUShadingLanguageRI/LetExpression.js: Removed.
720         * WebGPUShadingLanguageRI/MakeArrayRefExpression.js:
721         (MakeArrayRefExpression.prototype.becomeConvertPtrToArrayRefExpression): Deleted.
722         * WebGPUShadingLanguageRI/NameContext.js:
723         (NameContext):
724         (NameContext.prototype.add):
725         (NameContext.prototype.doStatement):
726         (NameContext.prototype.handleDefining): Deleted.
727         (NameContext.prototype.isDefined): Deleted.
728         (NameContext.prototype.define): Deleted.
729         (NameContext.prototype.defineAll): Deleted.
730         * WebGPUShadingLanguageRI/NameResolver.js:
731         (NameResolver.prototype.doStatement):
732         (NameResolver.prototype.visitProtocolDecl):
733         (NameResolver.prototype.visitProgram): Deleted.
734         * WebGPUShadingLanguageRI/NativeFunc.js:
735         (NativeFunc):
736         * WebGPUShadingLanguageRI/NativeFuncInstance.js:
737         (NativeFuncInstance):
738         (NativeFuncInstance.prototype.get implementationData):
739         * WebGPUShadingLanguageRI/Node.js:
740         (Node.prototype.visit):
741         (Node.visit):
742         (Node.unify): Deleted.
743         * WebGPUShadingLanguageRI/NormalUsePropertyResolver.js: Added.
744         (NormalUsePropertyResolver.prototype.visitDotExpression):
745         (NormalUsePropertyResolver.prototype.visitIndexExpression):
746         (NormalUsePropertyResolver):
747         * WebGPUShadingLanguageRI/Parse.js:
748         (finishParsingPostIncrement):
749         (parsePossibleSuffix):
750         (finishParsingPreIncrement):
751         (genericParseCommaExpression):
752         (parseFuncName):
753         * WebGPUShadingLanguageRI/Prepare.js:
754         (prepare):
755         * WebGPUShadingLanguageRI/Program.js:
756         (Program):
757         (Program.prototype.get globalNameContext):
758         (Program.prototype.add):
759         * WebGPUShadingLanguageRI/PropertyAccessExpression.js: Added.
760         (PropertyAccessExpression):
761         (PropertyAccessExpression.prototype.get resultType):
762         (PropertyAccessExpression.prototype.rewriteAfterCloning):
763         (PropertyAccessExpression.prototype.updateCallsAfterChangingBase):
764         (PropertyAccessExpression.prototype.emitGet):
765         (PropertyAccessExpression.prototype.emitSet):
766         * WebGPUShadingLanguageRI/PropertyResolver.js: Added.
767         (PropertyResolver.prototype._visitPropertyAccess):
768         (PropertyResolver.prototype.visitDotExpression):
769         (PropertyResolver.prototype.visitIndexExpression):
770         (PropertyResolver.prototype._handleReadModifyWrite):
771         (PropertyResolver.prototype.visitReadModifyWriteExpression):
772         (PropertyResolver.prototype.visitAssignment):
773         (PropertyResolver.visitMakePtrExpression):
774         (PropertyResolver.prototype.visitMakeArrayRefExpression):
775         (PropertyResolver):
776         * WebGPUShadingLanguageRI/PtrType.js:
777         (PtrType.prototype.argumentForAndOverload):
778         (PtrType.prototype.argumentTypeForAndOverload):
779         (PtrType.prototype.returnTypeFromAndOverload):
780         * WebGPUShadingLanguageRI/ReadModifyWriteExpression.js: Added.
781         (ReadModifyWriteExpression):
782         (ReadModifyWriteExpression.prototype.get lValue):
783         (ReadModifyWriteExpression.prototype.oldValueRef):
784         (ReadModifyWriteExpression.prototype.newValueRef):
785         (ReadModifyWriteExpression.prototype.toString):
786         * WebGPUShadingLanguageRI/ResolveNames.js:
787         (createNameResolver):
788         (resolveNamesInTypes):
789         (resolveNamesInProtocols):
790         (resolveNamesInFunctions):
791         (resolveNames): Deleted.
792         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
793         (resolveOverloadImpl):
794         * WebGPUShadingLanguageRI/ResolveProperties.js: Added.
795         (resolveProperties):
796         * WebGPUShadingLanguageRI/ResolveTypeDefs.js:
797         (resolveTypeDefsInTypes):
798         (resolveTypeDefsInProtocols):
799         (resolveTypeDefsInFunctions):
800         (resolveTypeDefs): Deleted.
801         * WebGPUShadingLanguageRI/ReturnChecker.js:
802         (ReturnChecker.prototype._isBoolCastFromLiteralTrue):
803         * WebGPUShadingLanguageRI/Rewriter.js:
804         (Rewriter):
805         (Rewriter.prototype.visitVariableDecl):
806         (Rewriter.prototype.visitTypeRef):
807         (Rewriter.prototype.visitAssignment):
808         (Rewriter.prototype.visitReadModifyWriteExpression):
809         (Rewriter.prototype.visitDereferenceExpression):
810         (Rewriter.prototype._handlePropertyAccessExpression):
811         (Rewriter.prototype.visitDotExpression):
812         (Rewriter.prototype.visitIndexExpression):
813         (Rewriter.prototype.visitReturn):
814         (Rewriter.prototype.visitGenericLiteralType):
815         (Rewriter.prototype.visitNullType):
816         (Rewriter.prototype.processDerivedCallData):
817         (Rewriter.prototype.visitCallExpression):
818         (Rewriter.prototype.visitFunctionLikeBlock):
819         (Rewriter.prototype.visitIfStatement):
820         (Rewriter.prototype.visitForLoop):
821         (Rewriter.prototype.visitAnonymousVariable):
822         (Rewriter.prototype.visitIdentityExpression):
823         (Rewriter.prototype.visitLetExpression): Deleted.
824         * WebGPUShadingLanguageRI/StandardLibrary.js:
825         * WebGPUShadingLanguageRI/StructLayoutBuilder.js:
826         (StructLayoutBuilder.prototype.visitNativeFuncInstance):
827         (StructLayoutBuilder):
828         * WebGPUShadingLanguageRI/StructType.js:
829         (StructType.prototype.instantiate):
830         * WebGPUShadingLanguageRI/Substitution.js:
831         (Substitution.prototype.get map):
832         * WebGPUShadingLanguageRI/SuffixCallAssignment.js: Removed.
833         * WebGPUShadingLanguageRI/SynthesizeStructAccessors.js: Added.
834         (synthesizeStructAccessors.createTypeParameters):
835         (synthesizeStructAccessors.):
836         (synthesizeStructAccessors.createFieldType):
837         (synthesizeStructAccessors.createTypeRef):
838         (synthesizeStructAccessors.setupAnder):
839         (synthesizeStructAccessors):
840         * WebGPUShadingLanguageRI/Test.html:
841         * WebGPUShadingLanguageRI/Test.js:
842         (checkNumber):
843         (TEST_simpleProtocol):
844         (TEST_assignLength):
845         (TEST_simpleSetter):
846         (TEST_genericAccessors):
847         * WebGPUShadingLanguageRI/Type.js:
848         (Type.prototype.get isRef):
849         (Type.prototype.argumentForAndOverload):
850         (Type.prototype.argumentTypeForAndOverload):
851         (Type.prototype.returnTypeFromAndOverload):
852         (Type):
853         * WebGPUShadingLanguageRI/TypeParameterRewriter.js: Added.
854         (TypeParameterRewriter.prototype.visitConstexprTypeParameter):
855         (TypeParameterRewriter.prototype.visitTypeVariable):
856         (TypeParameterRewriter):
857         * WebGPUShadingLanguageRI/TypeVariableTracker.js: Added.
858         (TypeVariableTracker):
859         * WebGPUShadingLanguageRI/Value.js:
860         (Value.prototype.become):
861         (Value):
862         * WebGPUShadingLanguageRI/VariableRef.js:
863         (VariableRef.prototype.get unifyNode):
864         (VariableRef.prototype.get addressSpace):
865         * WebGPUShadingLanguageRI/Visitor.js:
866         (Visitor.prototype.visitNativeFuncInstance):
867         (Visitor.prototype.visitProtocolDecl):
868         (Visitor): Deleted.
869         * WebGPUShadingLanguageRI/VisitorBase.js: Removed.
870
871 2017-09-18  Andy Estes  <aestes@apple.com>
872
873         [Cocoa] Upstream WKSetCrashReportApplicationSpecificInformation() from WebKitSystemInterface
874         https://bugs.webkit.org/show_bug.cgi?id=177048
875
876         Reviewed by Alex Christensen.
877
878         * DumpRenderTree/mac/DumpRenderTree.mm:
879         (runTest):
880         * WebKitTestRunner/cocoa/CrashReporterInfo.mm:
881         (WTR::setCrashReportApplicationSpecificInformationToURL):
882
883 2017-09-18  Tim Horton  <timothy_horton@apple.com>
884
885         build-webkit spawns fewer subprocesses than ninja uses by default
886         https://bugs.webkit.org/show_bug.cgi?id=177057
887
888         Reviewed by Alex Christensen.
889
890         * Scripts/build-webkit:
891         By default, ninja will parallelize over (cores + 2) jobs. build-webkit
892         specifies -j(cores), which overrides this. Remove our override if building
893         with ninja; just let it do its own thing. In my testing, this minor
894         change is the difference between ~10% idle CPU time and 0.
895
896 2017-09-18  Lucas Forschler  <lforschler@apple.com>
897
898         Land a patch to verify svn->git update is working.
899
900 2017-09-18  Ms2ger  <Ms2ger@igalia.com>
901
902         Update my status.
903
904         Unreviewed.
905
906         * Scripts/webkitpy/common/config/contributors.json:
907
908 2017-09-17  Filip Pizlo  <fpizlo@apple.com>
909
910         Start working on WSL documentation
911         https://bugs.webkit.org/show_bug.cgi?id=177064
912
913         Reviewed by Mylex Maxfield.
914         
915         This is a work in progress. I'd like to check it in and then keep adding to it.
916
917         * WebGPUShadingLanguageRI/WSL.md: Added.
918
919 2017-09-17  Myles C. Maxfield  <mmaxfield@apple.com>
920
921         WSL needs to understand && and ||
922         https://bugs.webkit.org/show_bug.cgi?id=177062
923
924         Reviewed by Filip Pizlo.
925
926         Very similar to LogicalNot.
927
928         * WebGPUShadingLanguageRI/All.js:
929         * WebGPUShadingLanguageRI/Checker.js:
930         * WebGPUShadingLanguageRI/EBufferBuilder.js:
931         (EBufferBuilder.prototype.visitLogicalExpression):
932         * WebGPUShadingLanguageRI/Evaluator.js:
933         (Evaluator.prototype.visitLogicalExpression):
934         * WebGPUShadingLanguageRI/Lexer.js:
935         (Lexer.prototype.next):
936         (Lexer):
937         * WebGPUShadingLanguageRI/LogicalExpression.js: Added.
938         (LogicalExpression):
939         (LogicalExpression.prototype.get text):
940         (LogicalExpression.prototype.get left):
941         (LogicalExpression.prototype.get right):
942         (LogicalExpression.prototype.toString):
943         * WebGPUShadingLanguageRI/Parse.js:
944         (parseLeftLogicalExpression):
945         * WebGPUShadingLanguageRI/Rewriter.js:
946         (Rewriter.prototype.visitLogicalExpression):
947         * WebGPUShadingLanguageRI/Test.html:
948         * WebGPUShadingLanguageRI/Test.js:
949         * WebGPUShadingLanguageRI/Visitor.js:
950         (Visitor.prototype.visitProtocolDecl):
951
952 2017-09-18  Ms2ger  <Ms2ger@igalia.com>
953
954         Update my status.
955
956         Unreviewed.
957
958         * Scripts/webkitpy/common/config/contributors.json:
959
960 2017-09-17  Filip Pizlo  <fpizlo@apple.com>
961
962         Start working on WSL documentation
963         https://bugs.webkit.org/show_bug.cgi?id=177064
964
965         Reviewed by Mylex Maxfield.
966         
967         This is a work in progress. I'd like to check it in and then keep adding to it.
968
969         * WebGPUShadingLanguageRI/WSL.md: Added.
970
971 2017-09-17  Myles C. Maxfield  <mmaxfield@apple.com>
972
973         WSL needs to understand && and ||
974         https://bugs.webkit.org/show_bug.cgi?id=177062
975
976         Reviewed by Filip Pizlo.
977
978         Very similar to LogicalNot.
979
980         * WebGPUShadingLanguageRI/All.js:
981         * WebGPUShadingLanguageRI/Checker.js:
982         * WebGPUShadingLanguageRI/EBufferBuilder.js:
983         (EBufferBuilder.prototype.visitLogicalExpression):
984         * WebGPUShadingLanguageRI/Evaluator.js:
985         (Evaluator.prototype.visitLogicalExpression):
986         * WebGPUShadingLanguageRI/Lexer.js:
987         (Lexer.prototype.next):
988         (Lexer):
989         * WebGPUShadingLanguageRI/LogicalExpression.js: Added.
990         (LogicalExpression):
991         (LogicalExpression.prototype.get text):
992         (LogicalExpression.prototype.get left):
993         (LogicalExpression.prototype.get right):
994         (LogicalExpression.prototype.toString):
995         * WebGPUShadingLanguageRI/Parse.js:
996         (parseLeftLogicalExpression):
997         * WebGPUShadingLanguageRI/Rewriter.js:
998         (Rewriter.prototype.visitLogicalExpression):
999         * WebGPUShadingLanguageRI/Test.html:
1000         * WebGPUShadingLanguageRI/Test.js:
1001         * WebGPUShadingLanguageRI/Visitor.js:
1002         (Visitor.prototype.visitProtocolDecl):
1003
1004 2017-09-17  Myles C. Maxfield  <mmaxfield@apple.com>
1005
1006         WSL needs float and double support
1007         https://bugs.webkit.org/show_bug.cgi?id=177058
1008
1009         Reviewed by Filip Pizlo.
1010
1011         Use the existing int and uint types as a model. The types themselves are straighforward. Just like int and uint,
1012         you can't pass a float as a double argument and vice-versa. This patch adds operator+, -, *, and / for floats
1013         and doubles.
1014
1015         Float literals are more complicated. If your number has a "." character in it, it is treated as a float literal.
1016         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
1017         able to masquerade as either floats or doubles (unlike an explicit type). However, these literals are not able
1018         to masquerade as ints or uints. There's also a nice check that your float literal can actually fit in a float.
1019
1020         * WebGPUShadingLanguageRI/All.js:
1021         * WebGPUShadingLanguageRI/DoubleLiteral.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js.
1022         (let.DoubleLiteral.createLiteral.createType):
1023         * WebGPUShadingLanguageRI/DoubleLiteralType.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js.
1024         (let.DoubleLiteralType.createLiteralType.verifyAsArgument):
1025         * WebGPUShadingLanguageRI/FloatLiteral.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js.
1026         (let.FloatLiteral.createLiteral.createType):
1027         * WebGPUShadingLanguageRI/FloatLiteralType.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js.
1028         (let.FloatLiteralType.createLiteralType.verifyAsArgument):
1029         * WebGPUShadingLanguageRI/Intrinsics.js:
1030         (Intrinsics):
1031         * WebGPUShadingLanguageRI/Lexer.js:
1032         (Lexer.prototype.next):
1033         (Lexer):
1034         * WebGPUShadingLanguageRI/NativeType.js:
1035         (NativeType):
1036         (NativeType.prototype.get isFloating):
1037         (NativeType.prototype.set isFloating):
1038         (NativeType.prototype.get isFloat): Deleted.
1039         (NativeType.prototype.set isFloat): Deleted.
1040         * WebGPUShadingLanguageRI/Parse.js:
1041         (parseTerm):
1042         * WebGPUShadingLanguageRI/Rewriter.js:
1043         (Rewriter.prototype.visitGenericLiteral):
1044         * WebGPUShadingLanguageRI/StandardLibrary.js:
1045         (uint.operator):
1046         (int.operator):
1047         * WebGPUShadingLanguageRI/Test.html:
1048         * WebGPUShadingLanguageRI/Test.js:
1049         (makeFloat):
1050         (makeDouble):
1051         (checkNumber):
1052         (checkFloat):
1053         (checkDouble):
1054         * WebGPUShadingLanguageRI/Type.js:
1055         (Type.prototype.get isFloating):
1056         (Type.prototype.get isFloat): Deleted.
1057
1058 2017-09-17  Michael Saboff  <msaboff@apple.com>
1059
1060         https://bugs.webkit.org/show_bug.cgi?id=177038
1061         Add an option to run-jsc-stress-tests to limit tests variations to a basic set
1062
1063         Reviewed by JF Bastien.
1064
1065         Added the --basic option that runs defaults tests with the following modes, default, no-llint,
1066         no-cjit-validate-phases, no-cjit-collect-continuously, dfg-eager and for FTL platforms: no-ftl,
1067         ftl-eager-no-cjit and ftl-no-cjit-small-pool.  This takes about half the time as running all
1068         16 modes of a full run.
1069
1070         * Scripts/run-jsc-stress-tests:
1071
1072 2017-09-16  Tim Horton  <timothy_horton@apple.com>
1073
1074         Fix the Tools build with CMake on macOS
1075         https://bugs.webkit.org/show_bug.cgi?id=177030
1076
1077         Reviewed by Geoffrey Garen.
1078
1079         * TestWebKitAPI/CMakeLists.txt:
1080         Add a workaround identical to what the gtest CMakeLists has.
1081
1082 2017-09-16  Carlos Garcia Campos  <cgarcia@igalia.com>
1083
1084         [GTK] Bump fontconfig version to 2.12.4
1085         https://bugs.webkit.org/show_bug.cgi?id=176997
1086
1087         Reviewed by Michael Catanzaro.
1088
1089         It's the latest stable version and we can get rid of the patches we have.
1090
1091         * WebKitTestRunner/gtk/fonts/fonts.conf: Remove hinting config we no longer need with newer FreeType and
1092         deprecated <blank> that current fontconfig just ignores.
1093         * gtk/jhbuild.modules:
1094         * gtk/patches/fontconfig-2.11.1-add-autogen.patch: Removed.
1095         * gtk/patches/fontconfig-Avoid-conflicts-with-integer-width-macros-from-TS-18661-1-2014.patch: Removed.
1096         * gtk/patches/fontconfig-Fix-the-build-issue-with-gperf-3.1.patch: Removed.
1097         * gtk/patches/fontconfig-fix-osx-cache.diff: Removed.
1098
1099 2017-09-15  Lucas Forschler  <lforschler@apple.com>
1100
1101         Move run-webkit-archive from Tools/Scripts to Tools/BuildSlaveSupport
1102         
1103         Reviewed by Alexey Proskuryakov.
1104
1105         * Scripts/run-webkit-archive: Removed.
1106
1107 2017-09-15  Lucas Forschler  <lforschler@apple.com>
1108
1109         teach build.webkit.org to include run-webkit-archive in the root folder of uploaded macOS archives.
1110         https://bugs.webkit.org/show_bug.cgi?id=176965
1111
1112         Reviewed by Alexey Proskuryakov.
1113
1114         * BuildSlaveSupport/built-product-archive:
1115         (addLauncherToArchive): Helper function to add the launcher script
1116         (createZip): teach function about addLauncherToArchive
1117         * BuildSlaveSupport/run-webkit-archive: Added.
1118         (check_for_valid_platform): Add logic to ensure platform is Darwin
1119         (find_dyld_framework_path): Find the dyld framework path
1120         (run_safari_for_webkit_development): launch SafariForWebKitDevelopment
1121         (set_dyld_framework_path): export the environment for dydl framework path
1122
1123 2017-09-15  Myles C. Maxfield  <mmaxfield@apple.com>
1124
1125         [WSL] Small cleanup in Evaluator
1126         https://bugs.webkit.org/show_bug.cgi?id=176971
1127
1128         Reviewed by Filip Pizlo.
1129
1130         Use the symbols for break and continue instead of the objects themselves.
1131
1132         No tests because there is no behavior change.
1133
1134         * WebGPUShadingLanguageRI/Evaluator.js:
1135         (Evaluator.prototype.visitWhileLoop):
1136         (Evaluator.prototype.visitDoWhileLoop):
1137         (Evaluator.prototype.visitForLoop):
1138         (Evaluator.prototype.visitBreak):
1139         (Evaluator.prototype.visitContinue):
1140
1141 2017-09-15  Filip Pizlo  <fpizlo@apple.com>
1142
1143         WSL Evaluator should only allocate EBuffers when dealing with intrinsics
1144         https://bugs.webkit.org/show_bug.cgi?id=176973
1145
1146         Reviewed by Myles Maxfield.
1147         
1148         Whether or not two temporary values share the same EBuffer is ultimately observable in WSL,
1149         because you can do this:
1150         
1151             thread int^ operator&[](thread int^ ptr, uint index)
1152             {
1153                 g_ptr = ptr;
1154                 return ptr;
1155             }
1156         
1157         And then this is a thing:
1158         
1159             42[0];
1160             // g_ptr now points to 42's location
1161         
1162         Normally this would have a lot of bad implications. But in WSL, if you did choose to do this,
1163         you'd get a pointer to something well-defined: the EBuffer of 42's GenericLiteral. Each static
1164         occurrence of a literal gets its own location, and the semantics of the language call for
1165         42 to be stored into this location when `42` "executes". So, while the programmer could do all
1166         kinds of strange things, at least the strangeness they would see is something we can spec.
1167         
1168         But to do this, the interpreter needs to allocate EBuffers in the same way a compiler would.
1169         It cannot allocate them during execution, except when interacting with intrinsics, which won't
1170         know the difference.
1171         
1172         In the process, I found places that needed to use AutoWrapper instead of TypeRef.wrap.
1173
1174         * WebGPUShadingLanguageRI/AutoWrapper.js:
1175         (AutoWrapper.prototype.visitGenericLiteralType):
1176         (AutoWrapper.prototype.visitNullType):
1177         (AutoWrapper):
1178         * WebGPUShadingLanguageRI/CallExpression.js:
1179         (CallExpression.prototype.resolve):
1180         * WebGPUShadingLanguageRI/CallFunction.js:
1181         (callFunction):
1182         * WebGPUShadingLanguageRI/Checker.js:
1183         * WebGPUShadingLanguageRI/CreateLiteralType.js:
1184         (createLiteralType.GenericLiteralType.prototype.commitUnification):
1185         * WebGPUShadingLanguageRI/EBuffer.js:
1186         (EBuffer):
1187         (EBuffer.setCanAllocateEBuffers):
1188         (EBuffer.disallowAllocation):
1189         (EBuffer.allowAllocation):
1190         * WebGPUShadingLanguageRI/EBufferBuilder.js:
1191         (EBufferBuilder.prototype.visitVariableDecl):
1192         (EBufferBuilder.prototype.visitFuncDef):
1193         (EBufferBuilder.prototype.visitFunctionLikeBlock):
1194         (EBufferBuilder.prototype.visitCallExpression):
1195         (EBufferBuilder.prototype.visitMakePtrExpression):
1196         (EBufferBuilder.prototype.visitGenericLiteral):
1197         (EBufferBuilder.prototype.visitNullLiteral):
1198         (EBufferBuilder.prototype.visitBoolLiteral):
1199         (EBufferBuilder.prototype.visitLogicalNot):
1200         (EBufferBuilder):
1201         * WebGPUShadingLanguageRI/EPtr.js:
1202         (EPtr.box):
1203         (EPtr.prototype.box):
1204         * WebGPUShadingLanguageRI/Evaluator.js:
1205         (Evaluator.prototype._snapshot):
1206         (Evaluator.prototype.runFunc):
1207         (Evaluator.prototype._runBody):
1208         (Evaluator.prototype.visitFunctionLikeBlock):
1209         (Evaluator.prototype.visitMakePtrExpression):
1210         (Evaluator.prototype.visitGenericLiteral):
1211         (Evaluator.prototype.visitNullLiteral):
1212         (Evaluator.prototype.visitBoolLiteral):
1213         (Evaluator.prototype.visitLogicalNot):
1214         (Evaluator.prototype.visitCallExpression):
1215         (Evaluator):
1216         (Evaluator.prototype.runBody): Deleted.
1217         * WebGPUShadingLanguageRI/Inliner.js:
1218         (Inliner.prototype.visitCallExpression):
1219         * WebGPUShadingLanguageRI/InstantiateImmediates.js:
1220         (InstantiateImmediates.prototype.visitTypeRef):
1221         * WebGPUShadingLanguageRI/Rewriter.js:
1222         (Rewriter.prototype.visitMakePtrExpression):
1223         (Rewriter.prototype.visitGenericLiteral):
1224         (Rewriter.prototype.visitNullLiteral):
1225         (Rewriter.prototype.processDerivedCallData):
1226         (Rewriter.prototype.visitFunctionLikeBlock):
1227         (Rewriter.prototype.visitLogicalNot):
1228         * WebGPUShadingLanguageRI/TypeRef.js:
1229         (TypeRef.prototype.toString):
1230         (TypeRef):
1231         * WebGPUShadingLanguageRI/Visitor.js:
1232         (Visitor.prototype.visitProtocolDecl):
1233
1234 2017-09-14  Filip Pizlo  <fpizlo@apple.com>
1235
1236         Rationalize how WSL's operator&[] works
1237         https://bugs.webkit.org/show_bug.cgi?id=176958
1238
1239         Reviewed by Myles Maxfield.
1240         
1241         This makes operator&[] work with non-array-ref types. The way this works is that if you do base[index]
1242         then we pattern match base's type and proceed accordingly:
1243         
1244             If base's type is T^:
1245                 => Reject
1246             
1247             If base's type is T[]:
1248                 => Accept
1249             
1250             If base's type is T[c]:
1251                 => Wrap it with a MakeArrayRefExpression and accept.
1252             
1253             All other cases:
1254                 => Wrap it with a MakePtrExpression and accept.
1255         
1256         This makes it possible for operator&[] to work with lvalues. It also means that operator&[] gets to
1257         "see" the temporary values we create via snapshot() in the interpreter. We'll have to fix that, and I've
1258         filed bug 176973 for that. Once that's fixed, this will have well-defined behavior, though with the very
1259         peculiar caveat that an expression like this:
1260         
1261              totallyNotAnLValue()[42]
1262         
1263         Could be used to get a pointer to a non-lvalue. But we can be extremely precise about what that means
1264         and prohibit dangling pointers, which is kinda crazy.
1265         
1266         In order to do this, I had to make MakeArrayRefExpression work, so I did that and added tests for it.
1267
1268         * WebGPUShadingLanguageRI/All.js:
1269         * WebGPUShadingLanguageRI/ArrayRefType.js:
1270         (ArrayRefType.prototype.unifyImpl):
1271         (ArrayRefType.prototype.toString):
1272         (ArrayRefType):
1273         * WebGPUShadingLanguageRI/ArrayType.js:
1274         (ArrayType):
1275         (ArrayType.prototype.get numElementsValue):
1276         (ArrayType.prototype.get size):
1277         (ArrayType.prototype.populateDefaultValue):
1278         (ArrayType.prototype.unifyImpl):
1279         * WebGPUShadingLanguageRI/Checker.js:
1280         * WebGPUShadingLanguageRI/ConvertPtrToArrayRefExpression.js: Added.
1281         (ConvertPtrToArrayRefExpression):
1282         (ConvertPtrToArrayRefExpression.prototype.get lValue):
1283         (ConvertPtrToArrayRefExpression.prototype.toString):
1284         * WebGPUShadingLanguageRI/CreateLiteral.js:
1285         (createLiteral.GenericLiteral.withType):
1286         (createLiteral.GenericLiteral.prototype.get isLiteral):
1287         (createLiteral.GenericLiteral.prototype.unifyImpl):
1288         * WebGPUShadingLanguageRI/DotExpression.js:
1289         (DotExpression.prototype.get addressSpace):
1290         * WebGPUShadingLanguageRI/Evaluator.js:
1291         (Evaluator.prototype.visitMakeArrayRefExpression):
1292         (Evaluator.prototype.visitConvertPtrToArrayRefExpression):
1293         * WebGPUShadingLanguageRI/Intrinsics.js:
1294         (Intrinsics):
1295         * WebGPUShadingLanguageRI/MakeArrayRefExpression.js: Added.
1296         (MakeArrayRefExpression):
1297         (MakeArrayRefExpression.prototype.get lValue):
1298         (MakeArrayRefExpression.prototype.becomeConvertPtrToArrayRefExpression):
1299         (MakeArrayRefExpression.prototype.toString):
1300         * WebGPUShadingLanguageRI/MakePtrExpression.js:
1301         (MakePtrExpression.prototype.toString):
1302         (MakePtrExpression):
1303         * WebGPUShadingLanguageRI/PtrType.js:
1304         (PtrType.prototype.toString):
1305         (PtrType):
1306         * WebGPUShadingLanguageRI/ReferenceType.js:
1307         (ReferenceType):
1308         * WebGPUShadingLanguageRI/Rewriter.js:
1309         (Rewriter.prototype.visitArrayType):
1310         (Rewriter.prototype.visitMakeArrayRefExpression):
1311         (Rewriter.prototype.visitConvertPtrToArrayRefExpression):
1312         * WebGPUShadingLanguageRI/StandardLibrary.js:
1313         * WebGPUShadingLanguageRI/Test.html:
1314         * WebGPUShadingLanguageRI/Test.js:
1315         (TEST_buildArrayThenSumItUsingArrayReference):
1316         (TEST_overrideSubscriptStruct):
1317         (TEST_overrideSubscriptStructAndUsePointers):
1318         (TEST_overrideSubscriptStructAndUsePointersIncorrectly):
1319         (TEST_makeArrayRefFromPointer):
1320         (TEST_makeArrayRefFromArrayRef):
1321         * WebGPUShadingLanguageRI/Visitor.js:
1322         (Visitor.prototype.visitProtocolDecl):
1323
1324 2017-09-14  Filip Pizlo  <fpizlo@apple.com>
1325
1326         WSL should support ++, --, +=, and all of those things
1327         https://bugs.webkit.org/show_bug.cgi?id=176975
1328
1329         Reviewed by Myles Maxfield.
1330         
1331         This adds an internal AST construct called LetExpression, that allows us to anonymously capture
1332         a value. This change uses LetExpression to implement prefix and suffix ++/-- and all of the
1333         +=/-=/etc.
1334
1335         * WebGPUShadingLanguageRI/All.js:
1336         * WebGPUShadingLanguageRI/Checker.js:
1337         * WebGPUShadingLanguageRI/EBufferBuilder.js:
1338         (EBufferBuilder.prototype.visitVariableDecl):
1339         (EBufferBuilder.prototype.visitLetExpression):
1340         (EBufferBuilder):
1341         * WebGPUShadingLanguageRI/Evaluator.js:
1342         (Evaluator.prototype.visitLetExpression):
1343         * WebGPUShadingLanguageRI/LetExpression.js: Added.
1344         (LetExpression):
1345         (LetExpression.prototype.get origin):
1346         (LetExpression.prototype.get name):
1347         (LetExpression.prototype.toString):
1348         * WebGPUShadingLanguageRI/Lexer.js:
1349         (Lexer.prototype.next):
1350         (Lexer):
1351         * WebGPUShadingLanguageRI/NameResolver.js:
1352         (NameResolver.prototype.visitProtocolDecl):
1353         * WebGPUShadingLanguageRI/Parse.js:
1354         (isCallExpression):
1355         (finishParsingPostIncrement):
1356         (parsePossibleSuffix):
1357         (finishParsingPreIncrement):
1358         (parsePreIncrement):
1359         (parsePossiblePrefix):
1360         (parsePossibleAssignment):
1361         (parsePostIncrement):
1362         (parseEffectfulExpression):
1363         * WebGPUShadingLanguageRI/Rewriter.js:
1364         (Rewriter.prototype.visitFunctionLikeBlock):
1365         (Rewriter.prototype.visitLetExpression):
1366         (Rewriter):
1367         * WebGPUShadingLanguageRI/StandardLibrary.js:
1368         (int.operator):
1369         (uint.operator):
1370         * WebGPUShadingLanguageRI/Test.html:
1371         * WebGPUShadingLanguageRI/Test.js:
1372         (TEST_prefixPlusPlus):
1373         (TEST_prefixPlusPlusResult):
1374         (TEST_postfixPlusPlus):
1375         (TEST_postfixPlusPlusResult):
1376         (TEST_prefixMinusMinus):
1377         (TEST_prefixMinusMinusResult):
1378         (TEST_postfixMinusMinus):
1379         (TEST_postfixMinusMinusResult):
1380         (TEST_plusEquals):
1381         (TEST_plusEqualsResult):
1382         (TEST_minusEquals):
1383         (TEST_minusEqualsResult):
1384         (TEST_timesEquals):
1385         (TEST_timesEqualsResult):
1386         (TEST_divideEquals):
1387         (TEST_divideEqualsResult):
1388         * WebGPUShadingLanguageRI/Visitor.js:
1389         (Visitor.prototype.visitProtocolDecl):
1390
1391 2017-09-15  Brent Fulgham  <bfulgham@apple.com>
1392
1393         Provide mechanism to immediately end tests
1394         https://bugs.webkit.org/show_bug.cgi?id=176364
1395         <rdar://problem/34254780>
1396
1397         Reviewed by Alex Christensen.
1398
1399         WebKitTestRunner does not output state if the top loading frame has not been removed. This prevents some
1400         tests that attempt to exercise failed load state from working properly.
1401         
1402         This change adds a new 'forceImmediateCompletion' handler for DumpRenderTree and WebKitTestRunner so
1403         that we can properly test these conditions.
1404
1405         * DumpRenderTree/TestRunner.h:
1406         * DumpRenderTree/mac/TestRunnerMac.mm:
1407         (TestRunner::forceImmediateCompletion): Added.
1408         * DumpRenderTree/win/TestRunnerWin.cpp:
1409         (TestRunner::forceImmediateCompletion): Ditto.
1410         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
1411         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
1412         (WTR::TestRunner::forceImmediateCompletion): Ditto.
1413         * WebKitTestRunner/InjectedBundle/TestRunner.h:
1414
1415 2017-09-15  Youenn Fablet  <youenn@apple.com>
1416
1417         Add an URL method to remove both query string and fragment identifier
1418         https://bugs.webkit.org/show_bug.cgi?id=176911
1419
1420         Reviewed by Alex Christensen.
1421
1422         Adding unit test for new URL method as well as modified setQuery and setFragmentIdentifier.
1423
1424         * TestWebKitAPI/Tests/WebCore/URL.cpp:
1425         (TestWebKitAPI::createURL):
1426         (TestWebKitAPI::TEST_F):
1427
1428 2017-09-14  Yousuke Kimoto  <yousuke.kimoto@sony.com>
1429
1430         [WinCairo] Add an option to build WebKitLegacy and WebKit
1431         https://bugs.webkit.org/show_bug.cgi?id=176891
1432
1433         Since TestWebKitAPI and MiniBrowser/win are used for WebKitLegacy,
1434         those subdirectories are ignored for WebKit build.
1435
1436         Reviewed by Alex Christensen.
1437
1438         * CMakeLists.txt:
1439
1440 2017-09-14  Lucas Forschler  <lforschler@apple.com>
1441
1442         Create a launcher for webkit-archives
1443         https://bugs.webkit.org/show_bug.cgi?id=176964
1444
1445         Reviewed by Aakash Jain.
1446
1447         * Scripts/run-webkit-archive: Added.
1448         (find_dyld_framework_path):
1449         (run_safari_for_webkit_development):
1450         (set_dyld_framework_path):
1451         (main):
1452
1453 2017-09-14  Alex Christensen  <achristensen@webkit.org>
1454
1455         Add WKUIDelegatePrivate equivalent of WKPageUIClient's drawHeader, drawFooter, headerHeight, and footerHeight
1456         https://bugs.webkit.org/show_bug.cgi?id=176889
1457         <rdar://problem/29270035>
1458
1459         Reviewed by Andy Estes.
1460
1461         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
1462         (-[PrintDelegate _webView:printFrame:]):
1463         (-[PrintDelegate _webViewHeaderHeight:]):
1464         (-[PrintDelegate _webViewFooterHeight:]):
1465         (-[PrintDelegate _webView:drawHeaderInRect:forPageWithTitle:URL:]):
1466         (-[PrintDelegate _webView:drawFooterInRect:forPageWithTitle:URL:]):
1467         (callbacksEqual):
1468         (TEST):
1469         * TestWebKitAPI/cocoa/TestWKWebView.h:
1470         * TestWebKitAPI/cocoa/TestWKWebView.mm:
1471         (-[TestWKWebView hostWindow]):
1472
1473 2017-09-14  Ryan Haddad  <ryanhaddad@apple.com>
1474
1475         Unreviewed, rolling out r222033.
1476
1477         This change caused API test WebKit.PrintFrame to time out.
1478
1479         Reverted changeset:
1480
1481         "Add WKUIDelegatePrivate equivalent of WKPageUIClient's
1482         drawHeader, drawFooter, headerHeight, and footerHeight"
1483         https://bugs.webkit.org/show_bug.cgi?id=176889
1484         http://trac.webkit.org/changeset/222033
1485
1486 2017-09-14  Youenn Fablet  <youenn@apple.com>
1487
1488         Allow WTF::map to take function as parameter
1489         https://bugs.webkit.org/show_bug.cgi?id=176909
1490
1491         Reviewed by Jer Noble.
1492
1493         * TestWebKitAPI/Tests/WTF/Vector.cpp:
1494         (TestWebKitAPI::multiplyByTwo):
1495         (TestWebKitAPI::TEST):
1496         (TestWebKitAPI::multiplyByTwoMoveOnly):
1497
1498 2017-09-14  Filip Pizlo  <fpizlo@apple.com>
1499
1500         WSL IntLiteralType should become int32 if unified with a type variable
1501         https://bugs.webkit.org/show_bug.cgi?id=176707
1502
1503         Reviewed by Myles Maxfield.
1504         
1505         This makes it so that this works:
1506         
1507             T foo<T>(T x) { return x; }
1508             foo(42); // T becomes int32
1509         
1510         Previously, it did not work because IntLiteralType did not recognize TypeVariable as a number. Also,
1511         TypeVariable would try to evaluate protocol inheritance of IntLiteralType, which would not go well. One
1512         of the tests that this patch adds didn't just fail; it gave such an absurd 7-line type error that I felt
1513         like I was using SML.
1514         
1515         This fixes the problem by introducing what I think is a super deterministic way of handling literals and
1516         type variables:
1517         
1518         Before verifying a unification context, we now give all literals a chance to perform an extra 
1519         unification step. This is a two-phase process. This ensures that the unification performed by one 
1520         literal does not throw off the logic of some other literal. For example, if we do:
1521         
1522             void foo<T>(T, T) { }
1523             foo(42, 42u);
1524         
1525         Then we want to always fail to compile, rather than sometimes succeeding. So, we first ask each literal
1526         if it thinks that it needs to do extra unification. Both of the literals will report that they want to
1527         in this case, because they will notice that they got unified with either at type variable or a literal,
1528         which isn't specific enough. Then after they all register to do extra unification, they will both try to
1529         unify with their preferred types (int32 for 42, uint32 for 42u). The first one will succeed, and the
1530         second will give an error.
1531         
1532         Without the special two-phase arrangement, it was possible to either get a type error or not depending 
1533         on the order - for example foo(42, 42u) might fail while foo(42u, 42) succeeds. It was definitely not
1534         decidable, at least not unless you mandate the unification order as part of the type system spec. I 
1535         think that would have been nuts.
1536         
1537         Both IntLiteral and UintLiteral are now "flexible"; the uint one will reject non-int or signed int
1538         types and will prefer uint, but otherwise it's the same logic. This means that this will be valid:
1539         
1540             uint8 x = 5u;
1541         
1542         But this is still wrong:
1543         
1544             int x = 5u;
1545         
1546         To make this easy, I turned IntLiteral and UintLiteral (and IntLiteralType and UintLiteralType) into
1547         factory-built generic types (see createLiteral() and createLiteralType()). Because visitors use the
1548         constructor's declared name (GenericLiteral and GenericLiteralType in this case), it means that we can
1549         share a ton of code between the different literals. I love that ES6 lets you do that.
1550
1551         * WebGPUShadingLanguageRI/All.js:
1552         * WebGPUShadingLanguageRI/Checker.js:
1553         * WebGPUShadingLanguageRI/CreateLiteral.js: Added.
1554         (createLiteral.GenericLiteral):
1555         (createLiteral.GenericLiteral.prototype.get value):
1556         (createLiteral.GenericLiteral.prototype.get isConstexpr):
1557         (createLiteral.GenericLiteral.prototype.toString):
1558         (createLiteral):
1559         * WebGPUShadingLanguageRI/CreateLiteralType.js: Added.
1560         (createLiteralType.GenericLiteralType):
1561         (createLiteralType.GenericLiteralType.prototype.get origin):
1562         (createLiteralType.GenericLiteralType.prototype.get value):
1563         (createLiteralType.GenericLiteralType.prototype.get isPrimitive):
1564         (createLiteralType.GenericLiteralType.prototype.get isUnifiable):
1565         (createLiteralType.GenericLiteralType.prototype.get isLiteral):
1566         (createLiteralType.GenericLiteralType.prototype.typeVariableUnify):
1567         (createLiteralType.GenericLiteralType.prototype.unifyImpl):
1568         (createLiteralType.GenericLiteralType.prototype.prepareToVerify):
1569         (createLiteralType.GenericLiteralType.prototype.verifyAsArgument):
1570         (createLiteralType.GenericLiteralType.prototype.verifyAsParameter):
1571         (createLiteralType.GenericLiteralType.prototype.conversionCost):
1572         (createLiteralType.GenericLiteralType.prototype.commitUnification):
1573         (createLiteralType.GenericLiteralType.prototype.toString):
1574         (createLiteralType):
1575         * WebGPUShadingLanguageRI/Evaluator.js:
1576         (Evaluator.prototype.visitIntLiteral): Deleted.
1577         (Evaluator.prototype.visitUintLiteral): Deleted.
1578         * WebGPUShadingLanguageRI/IntLiteral.js:
1579         (let.IntLiteral.createLiteral.createType):
1580         (IntLiteral): Deleted.
1581         (IntLiteral.prototype.get value): Deleted.
1582         (IntLiteral.prototype.get isConstexpr): Deleted.
1583         (IntLiteral.prototype.toString): Deleted.
1584         * WebGPUShadingLanguageRI/IntLiteralType.js:
1585         (IntLiteralType): Deleted.
1586         (IntLiteralType.prototype.get origin): Deleted.
1587         (IntLiteralType.prototype.get value): Deleted.
1588         (IntLiteralType.prototype.get isPrimitive): Deleted.
1589         (IntLiteralType.prototype.get isUnifiable): Deleted.
1590         (IntLiteralType.prototype.typeVariableUnify): Deleted.
1591         (IntLiteralType.prototype.unifyImpl): Deleted.
1592         (IntLiteralType.prototype.verifyAsArgument): Deleted.
1593         (IntLiteralType.prototype.verifyAsParameter): Deleted.
1594         (IntLiteralType.prototype.conversionCost): Deleted.
1595         (IntLiteralType.prototype.commitUnification): Deleted.
1596         (IntLiteralType.prototype.toString): Deleted.
1597         * WebGPUShadingLanguageRI/Intrinsics.js:
1598         (Intrinsics):
1599         * WebGPUShadingLanguageRI/LiteralTypeChecker.js:
1600         (LiteralTypeChecker.prototype.visitIntLiteralType): Deleted.
1601         * WebGPUShadingLanguageRI/Node.js:
1602         (Node.prototype.prepareToVerify):
1603         (Node.prototype.commitUnification):
1604         (Node.prototype.get isLiteral):
1605         * WebGPUShadingLanguageRI/NullType.js:
1606         (NullType.prototype.get isLiteral):
1607         (NullType.prototype.toString):
1608         (NullType):
1609         * WebGPUShadingLanguageRI/Parse.js:
1610         (parseTerm):
1611         * WebGPUShadingLanguageRI/Rewriter.js:
1612         (Rewriter.prototype.visitGenericLiteralType):
1613         (Rewriter.prototype.visitIntLiteral): Deleted.
1614         (Rewriter.prototype.visitIntLiteralType): Deleted.
1615         (Rewriter.prototype.visitUintLiteral): Deleted.
1616         (Rewriter.prototype.visitBoolLiteral): Deleted.
1617         * WebGPUShadingLanguageRI/Test.html:
1618         * WebGPUShadingLanguageRI/Test.js:
1619         (makeUint):
1620         (checkUint):
1621         (TEST_uintSimpleMath):
1622         (TEST_equality):
1623         (TEST_notEquality):
1624         (TEST_intLiteralGeneric):
1625         (TEST_intLiteralGenericWithProtocols):
1626         (TEST_uintLiteralGeneric):
1627         (TEST_uintLiteralGenericWithProtocols):
1628         (TEST_intLiteralGenericSpecific):
1629         (TEST_twoIntLiterals):
1630         (TEST_unifyDifferentLiterals):
1631         (makeUInt): Deleted.
1632         (checkUInt): Deleted.
1633         * WebGPUShadingLanguageRI/Type.js:
1634         * WebGPUShadingLanguageRI/UintLiteral.js:
1635         (let.UintLiteral.createLiteral.createType):
1636         (UintLiteral): Deleted.
1637         (UintLiteral.prototype.get value): Deleted.
1638         (UintLiteral.prototype.get isConstexpr): Deleted.
1639         (UintLiteral.prototype.toString): Deleted.
1640         * WebGPUShadingLanguageRI/UintLiteralType.js: Added.
1641         (let.UintLiteralType.createLiteralType.verifyAsArgument):
1642         * WebGPUShadingLanguageRI/UnificationContext.js:
1643         (UnificationContext.prototype.verify):
1644         * WebGPUShadingLanguageRI/Visitor.js:
1645         (Visitor.prototype.visitProtocolDecl):
1646
1647 2017-09-14  Ryan Haddad  <ryanhaddad@apple.com>
1648
1649         Unreviewed, rolling out r221868.
1650
1651         Rolling out this change while we investigate test262 failures.
1652
1653         Reverted changeset:
1654
1655         "Turn on exception scope verification for JSC tests."
1656         https://bugs.webkit.org/show_bug.cgi?id=162351
1657         http://trac.webkit.org/changeset/221868
1658
1659 2017-09-14  Alex Christensen  <achristensen@webkit.org>
1660
1661         Add WKUIDelegatePrivate equivalent of WKPageUIClient's drawHeader, drawFooter, headerHeight, and footerHeight
1662         https://bugs.webkit.org/show_bug.cgi?id=176889
1663         <rdar://problem/29270035>
1664
1665         Reviewed by Andy Estes.
1666
1667         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
1668         (-[PrintDelegate _webView:printFrame:]):
1669         (-[PrintDelegate _webViewHeaderHeight:]):
1670         (-[PrintDelegate _webViewFooterHeight:]):
1671         (-[PrintDelegate _webView:drawHeaderInRect:forPageWithTitle:URL:]):
1672         (-[PrintDelegate _webView:drawFooterInRect:forPageWithTitle:URL:]):
1673         (callbacksEqual):
1674         (TEST):
1675         * TestWebKitAPI/cocoa/TestWKWebView.h:
1676         * TestWebKitAPI/cocoa/TestWKWebView.mm:
1677         (-[TestWKWebView hostWindow]):
1678
1679 2017-09-14  Carlos Alberto Lopez Perez  <clopez@igalia.com>
1680
1681         [GTK] Add a switch to start the mini-browser in full-screen mode
1682         https://bugs.webkit.org/show_bug.cgi?id=176904
1683
1684         Reviewed by Carlos Garcia Campos.
1685
1686         * MiniBrowser/gtk/main.c:
1687         (main):
1688
1689 2017-09-14  Filip Pizlo  <fpizlo@apple.com>
1690
1691         Unreviewed, fix a typo that was preventing a test from running.
1692
1693         * WebGPUShadingLanguageRI/Test.js:
1694
1695 2017-09-14  Carlos Garcia Campos  <cgarcia@igalia.com>
1696
1697         [GTK] Fail to build using internal jhbuild if libgtk3-dev is not installed in the system
1698         https://bugs.webkit.org/show_bug.cgi?id=176778
1699
1700         Reviewed by Carlos Alberto Lopez Perez.
1701
1702         We are building gtk+ in the jhbuild with introspection disabled, but Gtk-3.gir is required to build the
1703         WebKitGTK+ introspection. Also, if wayland-protocols is not installed, gtk+ is built without the wayland backend
1704         and it's no possible to enable the wayland target in WebKitGTK+ either.
1705
1706         * gtk/jhbuild.modules: Do not disable introspection when building gtk+ and add wayland-protocols as a dependency.
1707
1708 2017-09-14  Maureen Daum  <mdaum@apple.com>
1709
1710         Introduce the option to mark an HTML element as having AutoFill available.
1711         https://bugs.webkit.org/show_bug.cgi?id=176710
1712
1713         Reviewed by Alex Christensen.
1714
1715         Add an API test that verifies after we mark a field as having AutoFill available,
1716         Accessibility also considers it to have AutoFill available.
1717
1718         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add AutoFillAvailable.mm
1719         * TestWebKitAPI/Tests/WebKitCocoa/AutoFillAvailable.mm: Added.
1720         Create an input element, mark it as having AutoFill available, then focus it so that
1721         we can get the accessibility information for it. Ask accessibility whether it considers
1722         the field to have AutoFill available, and pick the alert message based on that.
1723         (-[AutoFillAvailable webProcessPlugIn:didCreateBrowserContextController:]):
1724         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
1725         (TEST):
1726         (-[AutoFillAvailableDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
1727         Verify that we get the alert message indicating that accessibility indeed considers
1728         the input element as having AutoFill available after we explicitly marked it as so.
1729
1730 2017-09-13  John Wilander  <wilander@apple.com>
1731
1732         Introduce Storage Access API (document parts) as an experimental feature
1733         https://bugs.webkit.org/show_bug.cgi?id=175759
1734         <rdar://problem/34414107>
1735
1736         Reviewed by Alex Christensen.
1737
1738         * WebKitTestRunner/TestController.cpp:
1739         (WTR::TestController::resetPreferencesToConsistentValues):
1740             Turns the feature on for tests.
1741
1742 2017-09-13  Matt Lewis  <jlewis3@apple.com>
1743
1744         Unreviewed, rolling out r221976.
1745
1746         The test introduced was flaky from point of addition.
1747
1748         Reverted changeset:
1749
1750         "Introduce Storage Access API (document parts) as an
1751         experimental feature"
1752         https://bugs.webkit.org/show_bug.cgi?id=175759
1753         http://trac.webkit.org/changeset/221976
1754
1755 2017-09-13  Lucas Forschler  <lforschler@apple.com>
1756
1757         Compress spindumps on client side before packaging into layout test results zip (mac & ios)
1758         https://bugs.webkit.org/show_bug.cgi?id=176853
1759
1760         Reviewed by Aakash Jain.
1761
1762         * BuildSlaveSupport/test-result-archive:
1763         (main):
1764         (gzip_file): use gzip to compress a file, removing original
1765         (compress_spindumps): find and compress spindumps matching a filter
1766         (archive_test_results): refactor to snake_case
1767         (archiveTestResults): Deleted.
1768
1769 2017-09-13  Alex Christensen  <achristensen@webkit.org>
1770
1771         Add WKUIDelegatePrivate equivalent of WKPageUIClient's setIsResizable, getWindowFrame, and setWindowFrame
1772         https://bugs.webkit.org/show_bug.cgi?id=176857
1773         <rdar://problem/29270035>
1774
1775         Reviewed by Tim Horton.
1776
1777         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
1778         (-[ModalDelegate _webViewRunModal:]):
1779         (-[ModalDelegate _webView:setResizable:]):
1780         (-[WindowFrameDelegate _webView:setWindowFrame:]):
1781         (-[WindowFrameDelegate _webView:getWindowFrameWithCompletionHandler:]):
1782         (-[WindowFrameDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
1783         (TEST):
1784         (-[ResizableDelegate _webView:setResizable:]):
1785         (-[ResizableDelegate _webView:getIsResizableWithCompletionHandler:]):
1786         (-[ResizableDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
1787
1788 2017-09-13  Youenn Fablet  <youenn@apple.com>
1789
1790         Add a lambda-based map for Vectors
1791         https://bugs.webkit.org/show_bug.cgi?id=176487
1792
1793         Reviewed by Darin Adler.
1794
1795         * TestWebKitAPI/Tests/WTF/Vector.cpp:
1796         (TestWebKitAPI::TEST):
1797
1798 2017-09-13  John Wilander  <wilander@apple.com>
1799
1800         Introduce Storage Access API (document parts) as an experimental feature
1801         https://bugs.webkit.org/show_bug.cgi?id=175759
1802         <rdar://problem/33666847>
1803
1804         Reviewed by Alex Christensen.
1805
1806         * WebKitTestRunner/TestController.cpp:
1807         (WTR::TestController::resetPreferencesToConsistentValues):
1808             Turns the feature on for tests.
1809
1810 2017-09-13  Per Arne Vollan  <pvollan@apple.com>
1811
1812         [Win] DRT option --gc-between-tests is not implemented.
1813         https://bugs.webkit.org/show_bug.cgi?id=176849
1814
1815         Reviewed by Brent Fulgham.
1816
1817         Perform GC after the test if this option is enabled. This patch also set the initial value of the flag
1818         to true, in order to catch GC related issues in the test in which they occur.
1819  
1820         * DumpRenderTree/win/DumpRenderTree.cpp:
1821         (runTest):
1822
1823 2017-09-12  Wenson Hsieh  <wenson_hsieh@apple.com>
1824
1825         [iOS DnD] Support DataTransfer.getData and DataTransfer.setData when dragging or dropping
1826         https://bugs.webkit.org/show_bug.cgi?id=176672
1827         <rdar://problem/34353723>
1828
1829         Reviewed by Ryosuke Niwa.
1830
1831         Adds new tests and tweaks existing DataInteractionTests to cover the tweaks made in this patch.
1832         SinglePlainTextURLTypeIdentifiers: Verify that inline presentation style is requested when dragging plaintext.
1833         SinglePlainTextWordTypeIdentifiers: Verify that inline presentation style is requested when dragging a link.
1834         ExternalSourceInlineTextToFileInput:
1835                 Verify that an item provider marked as preferring inline presentation does not trigger file uploads by
1836                 dragging a piece of inline text into a file input.
1837         CanStartDragOnDivWithDraggableAttribute:
1838                 Verify that DataTransfer.setData and DataTransfer.getData work as expected by moving a draggable div.
1839                 The test harness writes the id of the draggable div via the DataTransfer, and upon drop, reads the id
1840                 back to figure out which element to append to the drop destination.
1841
1842         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
1843         (TestWebKitAPI::TEST):
1844
1845 2017-09-12  Ryosuke Niwa  <rniwa@webkit.org>
1846
1847         Dragging & dropping a file creates an attachment element even when it's disabled
1848         https://bugs.webkit.org/show_bug.cgi?id=176769
1849
1850         Reviewed by Tim Horton.
1851
1852         Added a webkit-test-runner flag to enable attachment element via runtime flag since this feature is now hidden
1853         behind a runtime-enabled flag which needs to be set at the time of global object initialization.
1854
1855         * DumpRenderTree/TestOptions.h:
1856         (TestOptions): Added.
1857         * DumpRenderTree/TestOptions.mm:
1858         (TestOptions::TestOptions):
1859         * DumpRenderTree/mac/DumpRenderTree.mm:
1860         (setWebPreferencesForTestOptions):
1861         * WebKitTestRunner/TestController.cpp:
1862         (WTR::TestController::resetPreferencesToConsistentValues):
1863         (WTR::updateTestOptionsFromTestHeader):
1864         * WebKitTestRunner/TestOptions.h:
1865         (WTR::TestOptions::hasSameInitializationOptions const):
1866         * WebKitTestRunner/cocoa/TestControllerCocoa.mm:
1867         (WTR::TestController::platformCreateWebView):
1868
1869 2017-09-11  Filip Pizlo  <fpizlo@apple.com>
1870
1871         WSL should allow you to say "protocol Foo : Bar { ... }"
1872         https://bugs.webkit.org/show_bug.cgi?id=176238
1873
1874         Reviewed by Mylex Maxfield.
1875         
1876         This makes protocol "subtyping" work. It's not really subtyping. Protocol A inherits protocol B
1877         if every signature in B can be resolved against some signature in A. Also, you can explicitly
1878         subtype protocols using extends syntax ("protocol Foo : Bar, Baz { ... }").
1879         
1880         Also makes the diagnostics when type variable constraints fail a _lot_ better. This will even
1881         tell you diagnostics about why a function didn't match when protocols are not inheriting, and
1882         then it will tell you why the inheritance failed.
1883
1884         * WebGPUShadingLanguageRI/All.js:
1885         * WebGPUShadingLanguageRI/AutoWrapper.js:
1886         (AutoWrapper.prototype.visitTypeVariable):
1887         (AutoWrapper):
1888         * WebGPUShadingLanguageRI/Checker.js:
1889         (Checker.prototype.visitProtocolDecl.set throw):
1890         * WebGPUShadingLanguageRI/ConstexprTypeParameter.js:
1891         (ConstexprTypeParameter.prototype.verifyAsArgument):
1892         (ConstexprTypeParameter.prototype.verifyAsParameter):
1893         * WebGPUShadingLanguageRI/FlattenProtocolExtends.js: Added.
1894         * WebGPUShadingLanguageRI/Func.js:
1895         (Func.prototype.get typeParametersForCallResolution):
1896         * WebGPUShadingLanguageRI/InferTypesForCall.js:
1897         (inferTypesForCall):
1898         * WebGPUShadingLanguageRI/IntLiteralType.js:
1899         (IntLiteralType.prototype.verifyAsArgument):
1900         * WebGPUShadingLanguageRI/NameResolver.js:
1901         (NameResolver.prototype.visitProtocolDecl):
1902         (NameResolver.prototype.visitProtocolRef): Deleted.
1903         (NameResolver.prototype.visitProtocolFuncDecl): Deleted.
1904         (NameResolver.prototype.visitTypeDef): Deleted.
1905         (NameResolver.prototype.visitStructType): Deleted.
1906         (NameResolver.prototype._resolveTypeArguments): Deleted.
1907         (NameResolver.prototype.visitTypeRef): Deleted.
1908         (NameResolver.prototype.visitReferenceType): Deleted.
1909         (NameResolver.prototype.visitVariableDecl): Deleted.
1910         (NameResolver.prototype.visitVariableRef): Deleted.
1911         (NameResolver.prototype.visitReturn): Deleted.
1912         (NameResolver.prototype.visitCallExpression): Deleted.
1913         * WebGPUShadingLanguageRI/Node.js:
1914         (Node.prototype.equals):
1915         * WebGPUShadingLanguageRI/NullType.js:
1916         (NullType.prototype.verifyAsArgument):
1917         * WebGPUShadingLanguageRI/Parse.js:
1918         (parseProtocolDecl):
1919         * WebGPUShadingLanguageRI/Prepare.js:
1920         (prepare):
1921         * WebGPUShadingLanguageRI/ProtocolDecl.js:
1922         (ProtocolDecl): Deleted.
1923         (ProtocolDecl.prototype.add): Deleted.
1924         (ProtocolDecl.prototype.get signatures): Deleted.
1925         (ProtocolDecl.prototype.signaturesByName): Deleted.
1926         (ProtocolDecl.prototype.get typeVariable): Deleted.
1927         (ProtocolDecl.prototype.signaturesByNameWithTypeVariable): Deleted.
1928         (ProtocolDecl.prototype.inherits): Deleted.
1929         (ProtocolDecl.prototype.hasHeir): Deleted.
1930         (ProtocolDecl.prototype.toString): Deleted.
1931         * WebGPUShadingLanguageRI/ProtocolFuncDecl.js:
1932         (ProtocolFuncDecl.prototype.get typeParametersForCallResolution):
1933         (ProtocolFuncDecl):
1934         * WebGPUShadingLanguageRI/Rewriter.js:
1935         (Rewriter.prototype.visitProtocolDecl):
1936         * WebGPUShadingLanguageRI/Test.html:
1937         * WebGPUShadingLanguageRI/Test.js:
1938         (TEST_nullTypeVariableUnify):
1939         (TEST_simpleProtocolExtends):
1940         (TEST_protocolExtendsTwo):
1941         * WebGPUShadingLanguageRI/Type.js:
1942         (Type.prototype.inherits):
1943         * WebGPUShadingLanguageRI/TypeDefResolver.js:
1944         (TypeDefResolver.prototype.visitTypeRef):
1945         (TypeDefResolver):
1946         * WebGPUShadingLanguageRI/TypeVariable.js:
1947         (TypeVariable.prototype.inherits):
1948         (TypeVariable.prototype.verifyAsArgument):
1949         (TypeVariable.prototype.verifyAsParameter):
1950         * WebGPUShadingLanguageRI/UnificationContext.js:
1951         (UnificationContext.prototype.verify):
1952         * WebGPUShadingLanguageRI/Visitor.js:
1953         (Visitor.prototype.visitProtocolDecl):
1954         (Visitor.prototype.visitTypeRef): Deleted.
1955         (Visitor.prototype.visitNativeType): Deleted.
1956         (Visitor.prototype.visitNativeTypeInstance): Deleted.
1957         (Visitor.prototype.visitTypeDef): Deleted.
1958         (Visitor.prototype.visitStructType): Deleted.
1959         (Visitor.prototype.visitTypeVariable): Deleted.
1960         (Visitor.prototype.visitConstexprTypeParameter): Deleted.
1961         (Visitor.prototype.visitField): Deleted.
1962         (Visitor.prototype.visitElementalType): Deleted.
1963         (Visitor.prototype.visitReferenceType): Deleted.
1964         (Visitor.prototype.visitPtrType): Deleted.
1965         (Visitor.prototype.visitArrayRefType): Deleted.
1966         (Visitor.prototype.visitArrayType): Deleted.
1967         (Visitor.prototype.visitVariableDecl): Deleted.
1968         (Visitor.prototype.visitAssignment): Deleted.
1969         (Visitor.prototype.visitDereferenceExpression): Deleted.
1970         (Visitor.prototype.visitDotExpression): Deleted.
1971         (Visitor.prototype.visitMakePtrExpression): Deleted.
1972         (Visitor.prototype.visitVariableRef): Deleted.
1973         (Visitor.prototype.visitIfStatement): Deleted.
1974         (Visitor.prototype.visitWhileLoop): Deleted.
1975         (Visitor.prototype.visitDoWhileLoop): Deleted.
1976         (Visitor.prototype.visitForLoop): Deleted.
1977         (Visitor.prototype.visitReturn): Deleted.
1978         (Visitor.prototype.visitContinue): Deleted.
1979         (Visitor.prototype.visitBreak): Deleted.
1980         (Visitor.prototype.visitIntLiteral): Deleted.
1981         (Visitor.prototype.visitIntLiteralType): Deleted.
1982         (Visitor.prototype.visitUintLiteral): Deleted.
1983         (Visitor.prototype.visitNullLiteral): Deleted.
1984         (Visitor.prototype.visitBoolLiteral): Deleted.
1985         (Visitor.prototype.visitNullType): Deleted.
1986         (Visitor.prototype.visitCallExpression): Deleted.
1987         (Visitor.prototype.visitLogicalNot): Deleted.
1988         (Visitor.prototype.visitFunctionLikeBlock): Deleted.
1989         * WebGPUShadingLanguageRI/WrapChecker.js:
1990         (WrapChecker.prototype.visitTypeVariable):
1991         (WrapChecker):
1992
1993 2017-09-12  Carlos Garcia Campos  <cgarcia@igalia.com>
1994
1995         Remove duplicated test results from LayoutTest platform directories
1996         https://bugs.webkit.org/show_bug.cgi?id=176686
1997
1998         Reviewed by Michael Catanzaro.
1999
2000         After several rebaselines we might end up with the same result in the platform directory than the common result
2001         without noticing it. This patch adds a script to detect those cases and remove all duplicated results from the
2002         repository.
2003
2004         * Scripts/check-for-duplicated-platform-test-results: Added.
2005         (check_duplicate):
2006         (check_duplicate.sha1):
2007         (platform_list):
2008
2009 2017-09-12  Carlos Alberto Lopez Perez  <clopez@igalia.com>
2010
2011         The EWS build system is forcing a non UTF-8 locale and breaks meson.
2012         https://bugs.webkit.org/show_bug.cgi?id=176761
2013
2014         Reviewed by Michael Catanzaro.
2015
2016         On 2011 in order to disable GCC smartquotes (UTF-8 pretty quotes)
2017         that were causing trouble with the commit-queue server, the tooling
2018         for the EWS bots started to force an LC_ALL=C locale.
2019
2020         This was needed back then apparently because the commit-queue server
2021         was unable to handle properly UTF-8 text.
2022
2023         6 years forward and none of the ports that commit-queue tests before
2024         landing a patch use GCC, but Clang. So this should not be an issue anymore.
2025
2026         Forcing a non UTF-8 locale breaks the Meson build system (that the
2027         GTK/WPE ports use for some dependencies of its JHBuild dependencies
2028         local build system).
2029         It has also the potential to break things in subtle ways that are
2030         hard to debug and detect. So better stop doing this.
2031
2032         This patch also changes TERM=none to TERM=dumb that is the proper
2033         way to disable VT100 codes (see bug 127922).
2034
2035         * Scripts/webkitpy/common/system/environment.py:
2036         (Environment.to_dictionary):
2037         (Environment.disable_jhbuild_VT100_output):
2038         * Scripts/webkitpy/common/system/environment_unittest.py:
2039         (EnvironmentTest.test_disable_jhbuild_VT100_output):
2040         * Scripts/webkitpy/port/base.py:
2041         (Port._build_driver):
2042         (Port._build_image_diff):
2043         * Scripts/webkitpy/port/port_testcase.py:
2044         (PortTestCase.test_build_driver):
2045         * Scripts/webkitpy/tool/commands/download_unittest.py:
2046         * Scripts/webkitpy/tool/steps/build.py:
2047         (Build.build):
2048         * Scripts/webkitpy/tool/steps/steps_unittest.py:
2049
2050 2017-09-12  Michael Catanzaro  <mcatanzaro@igalia.com>
2051
2052         [WPE][GTK] Run tests with G_DEBUG=fatal-criticals
2053         https://bugs.webkit.org/show_bug.cgi?id=176755
2054
2055         Reviewed by Carlos Garcia Campos.
2056
2057         * Scripts/webkitpy/port/gtk.py:
2058         (GtkPort.setup_environ_for_server):
2059         * Scripts/webkitpy/port/wpe.py:
2060         (WPEPort.setup_environ_for_server):
2061
2062 2017-09-12  Alex Christensen  <achristensen@webkit.org>
2063
2064         Fix build after r221922.
2065         https://bugs.webkit.org/show_bug.cgi?id=176728
2066
2067         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
2068         (-[ModalDelegate _webViewRunModal:]):
2069         (-[ModalDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
2070         (TEST):
2071         svn-apply inserted the test too early in the file :(
2072         Shift it down to where all the used static variables are declared.
2073
2074 2017-09-12  Alex Christensen  <achristensen@webkit.org>
2075
2076         Add WKUIDelegatePrivate equivalent of WKPageUIClient's runModal
2077         https://bugs.webkit.org/show_bug.cgi?id=176728
2078         <rdar://problem/29270035>
2079
2080         Reviewed by Tim Horton.
2081
2082         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
2083         (-[ModalDelegate _webViewRunModal:]):
2084         (-[ModalDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
2085         (TEST):
2086
2087 2017-09-12  Daniel Bates  <dabates@apple.com>
2088
2089         REGRESSION (r215784): The title of right-to-left pages are empty
2090         https://bugs.webkit.org/show_bug.cgi?id=176746
2091         <rdar://problem/34211419>
2092
2093         Reviewed by Brent Fulgham.
2094
2095         Add unit test to ensure we do not regress StringWithDirection.truncateFromEnd().
2096
2097         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2098         * TestWebKitAPI/Tests/WebCore/StringWithDirection.cpp: Added.
2099         (TestWebKitAPI::TEST):
2100
2101 2017-09-12  Alex Christensen  <achristensen@webkit.org>
2102
2103         Add WKUIDelegatePrivate equivalent of WKPageUIClient's decidePolicyForNotificationPermissionRequest
2104         https://bugs.webkit.org/show_bug.cgi?id=176768
2105         <rdar://problem/29270035>
2106
2107         Reviewed by Tim Horton.
2108
2109         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
2110         (-[NotificationDelegate initWithAllowNotifications:]):
2111         (-[NotificationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
2112         (-[NotificationDelegate _webView:requestNotificationPermissionForSecurityOrigin:decisionHandler:]):
2113         (TEST):
2114
2115 2017-09-12 Brent Fulgham  <bfulgham@apple.com>
2116
2117         Show punycode to user if a URL mixes Armenian Seh or Vo with other scripts
2118         https://bugs.webkit.org/show_bug.cgi?id=176578
2119         <rdar://problem/33906231>
2120
2121         Reviewed by Alex Christensen.
2122
2123         * TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm:
2124         (TestWebKitAPI::TEST):
2125
2126 2017-09-12  Carlos Garcia Campos  <cgarcia@igalia.com>
2127
2128         [Freetype] Doesn't support coloured fonts
2129         https://bugs.webkit.org/show_bug.cgi?id=156579
2130
2131         Reviewed by Michael Catanzaro.
2132
2133         Bump webkitgtk-test-fonts to 0.0.6 version that includes the EmijoOne font.
2134
2135         * gtk/jhbuild.modules:
2136         * wpe/jhbuild.modules:
2137
2138 2017-09-11  Wenson Hsieh  <wenson_hsieh@apple.com>
2139
2140         [iOS DnD] Support DataTransfer.setDragImage when starting a drag on iOS
2141         https://bugs.webkit.org/show_bug.cgi?id=176721
2142         <rdar://problem/34373660>
2143
2144         Reviewed by Tim Horton.
2145
2146         In DataInteractionSimulator, ask the UIDragInteractionDelegate (WKContentView) for targeted drag previews after
2147         retrieving UIDragItems during a lift. Remember these previews after the drag and drop simulation is complete, so
2148         API tests (currently, just DragLiftPreviewDataTransferSetDragImage) can verify that the generated drag previews
2149         are as expected.
2150
2151         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2152         * TestWebKitAPI/Tests/WebKitCocoa/DataTransfer-setDragImage.html: Added.
2153
2154         Adds a new test harness containing 5 draggable elements, each generating a drag image using different codepaths.
2155         DragLiftPreviewDataTransferSetDragImage uses this page to check that the frame of the targeted drag preview in
2156         each scenario is as expected.
2157
2158         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
2159         (checkCGRectIsEqualToCGRectWithLogging):
2160         (TestWebKitAPI::TEST):
2161         * TestWebKitAPI/ios/DataInteractionSimulator.h:
2162         * TestWebKitAPI/ios/DataInteractionSimulator.mm:
2163         (-[DataInteractionSimulator _resetSimulatedState]):
2164         (-[DataInteractionSimulator _advanceProgress]):
2165         (-[DataInteractionSimulator liftPreviews]):
2166
2167 2017-09-11  Tim Horton  <timothy_horton@apple.com>
2168
2169         REGRESSION (r221272): WKWebView gets stuck zoomed in if the web process crashes
2170         https://bugs.webkit.org/show_bug.cgi?id=176767
2171         <rdar://problem/34196874>
2172
2173         Reviewed by Dan Bernstein.
2174
2175         * TestWebKitAPI/Tests/WebKitCocoa/AnimatedResize.mm:
2176         (TEST):
2177         Add a test ensuring that override layout size persists through Web
2178         Content process crash.
2179
2180 2017-09-11  Wenson Hsieh  <wenson_hsieh@apple.com>
2181
2182         [iOS WK2] Support tapping to add items to the current drag session in web content
2183         https://bugs.webkit.org/show_bug.cgi?id=176421
2184         <rdar://problem/31144674>
2185
2186         Reviewed by Tim Horton.
2187
2188         Adds a new drag and drop test that begins a drag on a text selection, adds an image and a link, and then drops
2189         into a contenteditable area. This verifies that the text, link and image are inserted into the editable area
2190         upon drop.
2191
2192         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
2193         (TestWebKitAPI::TEST):
2194
2195 2017-09-11  Lucas Forschler  <lforschler@apple.com>
2196
2197         bisect-builds: add --list option
2198         https://bugs.webkit.org/show_bug.cgi?id=174836
2199
2200         Reviewed by Aakash Jain & Stephanie Lewis.
2201
2202         * Scripts/bisect-builds:
2203         (parse_args): add --list option
2204         (minified_platforms): update supported platform list (add ios simulator)
2205         (print_list_and_exit): helper function to print list and exit
2206
2207 2017-09-11  Wenson Hsieh  <wenson_hsieh@apple.com>
2208
2209         [iOS WK2] ExternalSourceDataTransferItemGetAsEntry tests produce inconsistent results on test automation bots
2210         https://bugs.webkit.org/show_bug.cgi?id=176736
2211
2212         Reviewed by Andy Estes and Megan Gardner.
2213
2214         The test output dumped when dropping a file in DataTransferItem-getAsEntry.html should adhere to some deterministic order.
2215         Currently, this is not enforced, so on some systems, these tests fail due to expected test output being out of order. To
2216         fix this, simply have the test harness alphabetically sort the output before writing to the textarea.
2217
2218         * TestWebKitAPI/Tests/WebKitCocoa/DataTransferItem-getAsEntry.html:
2219         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
2220         (TestWebKitAPI::TEST):
2221
2222 2017-09-11  Ryosuke Niwa  <rniwa@webkit.org>
2223
2224         webkitbot should recognize commands even when colon is omitted
2225         https://bugs.webkit.org/show_bug.cgi?id=176680
2226         <rdar://problem/29933898>
2227
2228         Reviewed by Daniel Bates.
2229
2230         Recognize the IRC command even when : and , were not present.
2231         Unfortunately, there is no unit test for this code at the moment.
2232
2233         * Scripts/webkitpy/common/net/irc/ircbot.py:
2234         (IRCBot.on_pubmsg):
2235
2236 2017-09-11  Lucas Forschler  <lforschler@apple.com>
2237
2238         bisect-builds doesn't work due to missing requests module
2239         https://bugs.webkit.org/show_bug.cgi?id=175709
2240         
2241         Reviewed by Ryosuke Niwa.
2242
2243         * Scripts/bisect-builds: use urllib2 instead of the requests module.
2244         (get_s3_location_for_revision):
2245         (main):
2246
2247 2017-09-11  Filip Pizlo  <fpizlo@apple.com>
2248
2249         WSL Substitution should probably wrap type variables of substituted types rather than just wrapping the whole type
2250         https://bugs.webkit.org/show_bug.cgi?id=176677
2251
2252         Reviewed by Mylex Maxfield.
2253         
2254         This adds a checker that verifies that all type references and variable references are wrapped.
2255         
2256         Then this fixes errors found by that checker by making Substitution auto-wrap replacements rather than
2257         manually wrapping the outer type (for types) and cloning (for values).
2258
2259         * WebGPUShadingLanguageRI/All.js:
2260         * WebGPUShadingLanguageRI/AutoWrapper.js: Added.
2261         (AutoWrapper.prototype.visitVariableRef):
2262         (AutoWrapper.prototype.visitTypeRef):
2263         (AutoWrapper.prototype.visitConstexprTypeParameter):
2264         (AutoWrapper.prototype.visitFuncParameter):
2265         (AutoWrapper.prototype.visitVariableDecl):
2266         (AutoWrapper.prototype.visitStructType):
2267         (AutoWrapper.prototype.visitNativeType):
2268         (AutoWrapper):
2269         * WebGPUShadingLanguageRI/CheckWrapped.js:
2270         (checkExpressionWrapped):
2271         (checkProgramWrapped):
2272         (checkWrapped): Deleted.
2273         * WebGPUShadingLanguageRI/Checker.js:
2274         * WebGPUShadingLanguageRI/ExpressionFinder.js: Added.
2275         (ExpressionFinder):
2276         (ExpressionFinder.prototype.visitFunc):
2277         (ExpressionFinder.prototype.visitFuncParameter):
2278         (ExpressionFinder.prototype.visitConstexprTypeParameter):
2279         (ExpressionFinder.prototype.visitAssignment):
2280         (ExpressionFinder.prototype.visitCallExpression):
2281         (ExpressionFinder.prototype.visitReturn):
2282         (ExpressionFinder.prototype.visitWhileLoop):
2283         (ExpressionFinder.prototype.visitDoWhileLoop):
2284         (ExpressionFinder.prototype.visitIfStatement):
2285         (ExpressionFinder.prototype.visitForLoop):
2286         (ExpressionFinder.prototype.visitVariableDecl):
2287         * WebGPUShadingLanguageRI/NativeFuncInstance.js:
2288         (NativeFuncInstance):
2289         * WebGPUShadingLanguageRI/Node.js:
2290         (Node.prototype.substituteToUnification):
2291         (Node):
2292         (Node.prototype.clone): Deleted.
2293         * WebGPUShadingLanguageRI/Prepare.js:
2294         (prepare):
2295         * WebGPUShadingLanguageRI/StructLayoutBuilder.js:
2296         (StructLayoutBuilder.prototype.visitReferenceType):
2297         (StructLayoutBuilder.prototype.visitField):
2298         (StructLayoutBuilder):
2299         * WebGPUShadingLanguageRI/Substitution.js:
2300         (Substitution):
2301         (Substitution.prototype.visitTypeRef):
2302         (Substitution.prototype.visitVariableRef):
2303         * WebGPUShadingLanguageRI/Test.html:
2304         * WebGPUShadingLanguageRI/Test.js:
2305         (TEST_chainConstexpr):
2306         (TEST_chainGeneric):
2307         (TEST_chainStruct):
2308         (TEST_chainStructInvalid):
2309         * WebGPUShadingLanguageRI/Visitor.js:
2310         (Visitor.prototype.visitNativeTypeInstance):
2311         * WebGPUShadingLanguageRI/WrapChecker.js:
2312         (WrapChecker.prototype._foundUnwrapped.originString):
2313         (WrapChecker.prototype._foundUnwrapped):
2314         (WrapChecker):
2315
2316 2017-09-11  Ryan Haddad  <ryanhaddad@apple.com>
2317
2318         Fix multiple master.cfg unit test failures.
2319         https://bugs.webkit.org/show_bug.cgi?id=176745
2320
2321         Reviewed by Alexey Proskuryakov.
2322
2323         * BuildSlaveSupport/build.webkit.org-config/master.cfg:
2324         (TestFactory.__init__): Add missing ':'.
2325         * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: Update expected results for Windows and iOS build steps.
2326
2327 2017-09-11  Jonathan Bedard  <jbedard@apple.com>
2328
2329         Older versions should adopt newer version's expectations on mac
2330         https://bugs.webkit.org/show_bug.cgi?id=176699
2331         <rdar://problem/34367907>
2332
2333         Reviewed by Alexey Proskuryakov.
2334
2335         Before:
2336                 mac-elcapitan-wk2
2337                 mac-elcapitan
2338                 mac-wk2
2339                 mac
2340                 wk2
2341         After:
2342                 mac-elcapitan-wk2
2343                 mac-elcapitan
2344                 mac-sierra-wk2
2345                 mac-sierra
2346                 mac-wk2
2347                 mac
2348                 wk2
2349
2350         * Scripts/webkitpy/port/mac.py:
2351         (MacPort.default_baseline_search_path): Use VERSION_FALLBACK_ORDER to have old
2352         versions inherit expectations from newer versions.
2353         * Scripts/webkitpy/port/mac_unittest.py:
2354         (MacTest.test_layout_test_searchpath_with_apple_additions): Check new behavior
2355         with older versions inheriting expectations from newer versions.
2356
2357 2017-09-11  Ryan Haddad  <ryanhaddad@apple.com>
2358
2359         Skip JSC test wsl-tests.yaml/Test.js
2360         https://bugs.webkit.org/show_bug.cgi?id=176727
2361
2362         Unreviewed test gardening.
2363
2364         * WebGPUShadingLanguageRI/wsl-tests.yaml:
2365
2366 2017-09-11  Alex Christensen  <achristensen@webkit.org>
2367
2368         Add WKUIDelegatePrivate equivalent of WKPageUIClient's decidePolicyForGeolocationPermissionRequest
2369         https://bugs.webkit.org/show_bug.cgi?id=176642
2370         <rdar://problem/29270035>
2371
2372         Reviewed by Darin Adler.
2373
2374         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
2375         (-[GeolocationDelegate initWithAllowGeolocation:]):
2376         (-[GeolocationDelegate _webView:requestGeolocationPermissionForFrame:decisionHandler:]):
2377         (-[GeolocationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
2378         (TEST):
2379
2380 2017-09-11  Wenson Hsieh  <wenson_hsieh@apple.com>
2381
2382         [iOS DnD] Elements in the DOM with the `draggable` attribute should be draggable
2383         https://bugs.webkit.org/show_bug.cgi?id=176664
2384         <rdar://problem/32596156>
2385
2386         Reviewed by Tim Horton.
2387
2388         Adds a new API test checking that elements marked as drag sources via the `draggable` attribute can be dragged
2389         with a non-null drag preview. Additionally, refactor the drag and drop simulator to not plumb drag/drop
2390         interaction delegate calls through to the WKContentView via -_simulate*-prefixed testing SPI, but rather
2391         by grabbing the WKWebView's drag and drop interaction delegates (i.e. the WKContentView) and calling delegate
2392         methods directly. This avoids requiring boilerplate plumbing on WKWebView and WKContentView for each of the drag
2393         and drop delegate methods, so these have been removed from WKWebView and WKContentView.
2394
2395         Additionally, renames MockDataOperationSession and MockDataInteractionSession to MockDragSession and
2396         MockDropSession, respectively, and adjusts their ivars on DataInteractionSimulator to match.
2397
2398         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2399         * TestWebKitAPI/Tests/WebKitCocoa/custom-draggable-div.html: Added.
2400
2401         Add a new test harness covering dragging and dropping elements with the draggable attribute, using DataTransfer
2402         API (setData and getData) as well.
2403
2404         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
2405         (TestWebKitAPI::TEST):
2406         * TestWebKitAPI/ios/DataInteractionSimulator.h:
2407         * TestWebKitAPI/ios/DataInteractionSimulator.mm:
2408         (-[WKWebView dropInteractionDelegate]):
2409         (-[WKWebView dragInteractionDelegate]):
2410         (-[WKWebView dropInteraction]):
2411         (-[WKWebView dragInteraction]):
2412
2413         Add testing utilities to ask a WKWebView for information about its drag/drop interactions and delegates. In this
2414         case, this will return the WKWebView's WKContentView.
2415
2416         (-[DataInteractionSimulator _resetSimulatedState]):
2417         (-[DataInteractionSimulator simulateAllTouchesCanceled:]):
2418         (-[DataInteractionSimulator runFrom:to:additionalItemRequestLocations:]):
2419         (-[DataInteractionSimulator _concludeDataInteractionAndPerformOperationIfNecessary]):
2420         (-[DataInteractionSimulator _sendQueuedAdditionalItemRequest]):
2421         (-[DataInteractionSimulator _advanceProgress]):
2422
2423         When beginning a drag session, ask the delegate for targeted lift previews and verify that these are non-null.
2424         This check would fail prior to the tweak in DragDropInteractionState in this patch.
2425
2426         (-[DataInteractionSimulator _webView:showCustomSheetForElement:]):
2427         (-[MockDataOperationSession initWithProviders:location:window:allowMove:]): Deleted.
2428         (-[MockDataOperationSession session]): Deleted.
2429         (-[MockDataOperationSession isLocal]): Deleted.
2430         (-[MockDataOperationSession progress]): Deleted.
2431         (-[MockDataOperationSession setProgressIndicatorStyle:]): Deleted.
2432         (-[MockDataOperationSession progressIndicatorStyle]): Deleted.
2433         (-[MockDataOperationSession operationMask]): Deleted.
2434         (-[MockDataOperationSession localDragSession]): Deleted.
2435         (-[MockDataOperationSession hasItemsConformingToTypeIdentifier:]): Deleted.
2436         (-[MockDataOperationSession canCreateItemsOfClass:]): Deleted.
2437         (-[MockDataOperationSession loadObjectsOfClass:completion:]): Deleted.
2438         (-[MockDataInteractionSession initWithWindow:allowMove:]): Deleted.
2439         (-[MockDataInteractionSession localOperationMask]): Deleted.
2440         (-[MockDataInteractionSession externalOperationMask]): Deleted.
2441
2442         Replace various places where we called -_simulate* methods on WKWebView with calls to the
2443         UIDragInteractionDelegate or UIDropInteractionDelegate (the WKContentView) instead. Also, adjust for some
2444         mechanical renaming of drag and drop sessions.
2445
2446         (-[MockDataInteractionSession session]): Deleted.
2447         * TestWebKitAPI/ios/UIKitSPI.h:
2448
2449 2017-09-11  Joseph Pecoraro  <pecoraro@apple.com>
2450
2451         Make the WPT entry point for LayoutTests/http/wpt more discoverable
2452         https://bugs.webkit.org/show_bug.cgi?id=176494
2453
2454         Reviewed by Youenn Fablet.
2455
2456         * Scripts/webkitpy/layout_tests/servers/run_webkit_httpd.py:
2457         (run_server):
2458         Output a tip for how to access the http/wpt tests.
2459
2460 2017-09-11  Mark Lam  <mark.lam@apple.com>
2461
2462         Turn on exception scope verification for JSC tests.
2463         https://bugs.webkit.org/show_bug.cgi?id=162351
2464         <rdar://problem/29563911>
2465
2466         Reviewed by Saam Barati.
2467
2468         Added the option to --validateExceptionChecks=true option to BASE_OPTIONS in
2469         run-jsc-stress-tests.  This turns on exception scope verification on JSC test
2470         runs (which currently does not include testapi).
2471
2472         Some stats on time to run JSC stress and mozilla tests:
2473         1. Release build w/o --validateExceptionChecks=true: real 16m22.544s, user 156m24.080s, sys 123m3.649s
2474         2. Debug build w/o --validateExceptionChecks=true: real 78m34.206s, user 1661m57.008s, sys 73m21.177s
2475         3. Debug build w/ --validateExceptionChecks=true: real 77m41.106s, user 1656m13.924s, sys 73m42.309s
2476         4. Debug build w/ --validateExceptionChecks=true --dumpSimulatedThrows=true: real 92m56.918s, user 2012m56.441s, sys 75m14.174s
2477
2478         The stats shows that (2) and (3) has effectively no time difference.  Hence, the
2479         cost of enabling --validateExceptionChecks=true is not significant.
2480
2481         It would be nice to enable --dumpSimulatedThrows=true as well, but (4) is about
2482         21% slower than (3).  To avoid making debug test runs a lot slower, we'll leave
2483         --dumpSimulatedThrows=true off.  We can manually add that when we see a regression
2484         and need to debug the issue.  Otherwise, we wont pay the price for it.
2485
2486         * Scripts/run-jsc-stress-tests:
2487
2488 2017-09-11  Myles C. Maxfield  <mmaxfield@apple.com>
2489
2490         WSL should support for loops
2491         https://bugs.webkit.org/show_bug.cgi?id=176682
2492
2493         Reviewed by Filip Pizlo.
2494
2495         Follows the pattern of the existing infrastructure of while loops.
2496
2497         * WebGPUShadingLanguageRI/All.js:
2498         * WebGPUShadingLanguageRI/Checker.js:
2499         * WebGPUShadingLanguageRI/Evaluator.js:
2500         (Evaluator.prototype.visitForLoop):
2501         * WebGPUShadingLanguageRI/ForLoop.js: Copied from Tools/WebGPUShadingLanguageRI/LoopChecker.js.
2502         (ForLoop):
2503         (ForLoop.prototype.get origin):
2504         (ForLoop.prototype.get initialization):
2505         (ForLoop.prototype.get condition):
2506         (ForLoop.prototype.get increment):
2507         (ForLoop.prototype.get body):
2508         (ForLoop.prototype.toString):
2509         * WebGPUShadingLanguageRI/LoopChecker.js:
2510         (LoopChecker.prototype.visitForLoop):
2511         * WebGPUShadingLanguageRI/NameResolver.js:
2512         (NameResolver.prototype.visitForLoop):
2513         * WebGPUShadingLanguageRI/Parse.js:
2514         (parseFor):
2515         * WebGPUShadingLanguageRI/ReturnChecker.js:
2516         (ReturnChecker.prototype._isBoolCastFromLiteralTrue):
2517         (ReturnChecker.prototype.visitWhileLoop):
2518         (ReturnChecker.prototype.visitDoWhileLoop):
2519         (ReturnChecker.prototype.visitForLoop):
2520         * WebGPUShadingLanguageRI/Rewriter.js:
2521         (Rewriter.prototype.visitForLoop):
2522         (Rewriter):
2523         * WebGPUShadingLanguageRI/Test.html:
2524         * WebGPUShadingLanguageRI/Test.js:
2525         (TEST_forLoop):
2526         * WebGPUShadingLanguageRI/Visitor.js:
2527         (Visitor.prototype.visitForLoop):
2528
2529 2017-09-11  Robin Morisset  <rmorisset@apple.com>
2530
2531         Just added myself to the contributors.json file as a committer
2532
2533         Unreviewed
2534
2535 2017-09-10  Filip Pizlo  <fpizlo@apple.com>
2536
2537         IntLiteral should prefer int32 during overload resolution
2538         https://bugs.webkit.org/show_bug.cgi?id=176675
2539
2540         Reviewed by Myles Maxfield.
2541         
2542         This makes intLiteralType prefer to resolve to int over other types.
2543         
2544         This also adds tests that if you pass intLiteral to T, then you can make it work by saying
2545         int(intLiteral).
2546
2547         * WebGPUShadingLanguageRI/IntLiteralType.js:
2548         (IntLiteralType):
2549         (IntLiteralType.prototype.conversionCost):
2550         * WebGPUShadingLanguageRI/Node.js:
2551         (Node.prototype.conversionCost):
2552         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
2553         (resolveOverloadImpl):
2554         * WebGPUShadingLanguageRI/Rewriter.js:
2555         (Rewriter.prototype.visitIntLiteralType):
2556         * WebGPUShadingLanguageRI/Test.js:
2557         (TEST_intOverloadResolution):
2558         (TEST_intOverloadResolutionReverseOrder):
2559         (TEST_intOverloadResolutionGeneric):
2560         (TEST_intLiteralGeneric):
2561         * WebGPUShadingLanguageRI/UnificationContext.js:
2562         (UnificationContext.prototype.get conversionCost):
2563         * WebGPUShadingLanguageRI/Visitor.js:
2564         (Visitor.prototype.visitIntLiteralType):
2565
2566 2017-09-10  Filip Pizlo  <fpizlo@apple.com>
2567
2568         WSL should be able to handle a simple constexpr type parameter
2569         https://bugs.webkit.org/show_bug.cgi?id=176676
2570
2571         Reviewed by Myles Maxfield.
2572         
2573         This adds a test that uses a constexpr type parameter, and then fixed enough bugs to get this to work.
2574
2575         * WebGPUShadingLanguageRI/All.js:
2576         * WebGPUShadingLanguageRI/CallExpression.js:
2577         (CallExpression.prototype.resolve):
2578         * WebGPUShadingLanguageRI/CheckWrapped.js: Added.
2579         (checkWrapped):
2580         * WebGPUShadingLanguageRI/Checker.js:
2581         * WebGPUShadingLanguageRI/Evaluator.js:
2582         (Evaluator.prototype.visitCallExpression):
2583         (Evaluator):
2584         * WebGPUShadingLanguageRI/Node.js:
2585         (Node.prototype.substituteToUnification):
2586         (Node.prototype.clone):
2587         (Node):
2588         * WebGPUShadingLanguageRI/Substitution.js:
2589         (Substitution):
2590         (Substitution.prototype.visitVariableRef):
2591         * WebGPUShadingLanguageRI/Test.html:
2592         * WebGPUShadingLanguageRI/Test.js:
2593         (TEST_simpleConstexpr):
2594         * WebGPUShadingLanguageRI/WrapChecker.js: Added.
2595         (WrapChecker):
2596         (WrapChecker.prototype.visitVariableRef):
2597         (WrapChecker.prototype.visitTypeRef):
2598         (WrapChecker.prototype.visitIntLiteral):
2599         (WrapChecker.prototype._foundUnwrapped):
2600         (WrapChecker.visitConstexprTypeParameter):
2601         (WrapChecker.prototype.visitFuncParameter):
2602         (WrapChecker.prototype.visitVariableDecl):
2603         (WrapChecker.prototype.visitStructType):
2604         (WrapChecker.prototype.visitNativeType):
2605
2606 2017-09-11  Carlos Alberto Lopez Perez  <clopez@igalia.com>
2607
2608         [WPE] Bump freetype version to 2.8.0
2609         https://bugs.webkit.org/show_bug.cgi?id=176501
2610
2611         Reviewed by Michael Catanzaro.
2612
2613         Bump freetype on WPE like r221670 did on GTK.
2614
2615         * wpe/jhbuild.modules:
2616         * wpe/patches/freetype6-2.4.11-truetype-font-height-fix.patch: Removed.
2617
2618 2017-09-10  Carlos Garcia Campos  <cgarcia@igalia.com>
2619
2620         REGRESSION: [GTK] Generated HTML API documentation is missing descriptions
2621         https://bugs.webkit.org/show_bug.cgi?id=176667
2622
2623         Reviewed by Michael Catanzaro.
2624
2625         This is happening since we moved the implementation files to glib dirs. The generate-gtkdoc script assumes that
2626         header and implementation files are always in the same directory. To reduce the input we pass to gtk-doc we
2627         ignore cpp files for which there isn't a public header. The code to do this check doesn't consider cpp files in
2628         a different directory than the header file. It also assumes that header and cpp files have the same filename
2629         except for the extension, which is true in all cases but WebKitWebView that we have two files WebKitWebView.cpp
2630         and WebKitWebViewGtk.cpp.
2631
2632         * gtk/generate-gtkdoc:
2633         (files_to_ignore): Check also cpp files with the Gtk suffix.
2634         (files_to_ignore.add_file_if_exists): Check if a file with the given name exists in any of the source dirs.
2635
2636 2017-09-10  Myles C. Maxfield  <mmaxfield@apple.com>
2637
2638         WSL should support while loops
2639         https://bugs.webkit.org/show_bug.cgi?id=176581
2640
2641         Reviewed by Filip Pizlo.
2642
2643         There are a few interesting pieces to this patch:
2644         1. Because the evaluator is just a node-based descent through the tree, the implementation of break
2645         and continue are just "throw".
2646         2. The ReturnChecker now has to return a three-state enum because of nested blocks. The outer block
2647         cares about if the inner block has "break" as opposed to it having no returns nor breaks/continues.
2648         3. ReturnChecker will treat "while (true)" the same as { }, but will not descend deeper for things
2649         like "while (3 == 3)".
2650         4. This patch also adds a few more boolean conditional functions like operator<().
2651         5. I added another pass which makes sure there are no bare break/return keywords outside of loops.
2652
2653         * WebGPUShadingLanguageRI/All.js:
2654         * WebGPUShadingLanguageRI/Break.js: Copied from Tools/WebGPUShadingLanguageRI/CheckUnreachableCode.js.
2655         (Break):
2656         (Break.prototype.get origin):
2657         (Break.prototype.toString):
2658         * WebGPUShadingLanguageRI/CheckLoops.js: Copied from Tools/WebGPUShadingLanguageRI/CheckReturns.js.
2659         (checkLoops):
2660         * WebGPUShadingLanguageRI/CheckReturns.js:
2661         (checkReturns):
2662         * WebGPUShadingLanguageRI/CheckUnreachableCode.js:
2663         (checkUnreachableCode):
2664         * WebGPUShadingLanguageRI/Checker.js:
2665         * WebGPUShadingLanguageRI/Continue.js: Copied from Tools/WebGPUShadingLanguageRI/CheckReturns.js.
2666         (Continue):
2667         (Continue.prototype.get origin):
2668         (Continue.prototype.toString):
2669         * WebGPUShadingLanguageRI/Evaluator.js:
2670         (Evaluator.prototype.visitWhileLoop):
2671         (Evaluator.prototype.visitBreak):
2672         (Evaluator.prototype.visitContinue):
2673         * WebGPUShadingLanguageRI/Intrinsics.js:
2674         (Intrinsics):
2675         * WebGPUShadingLanguageRI/Lexer.js:
2676         (Lexer.prototype.next):
2677         (Lexer):
2678         * WebGPUShadingLanguageRI/LoopChecker.js: Copied from Tools/WebGPUShadingLanguageRI/ReturnChecker.js.
2679         (LoopChecker):
2680         (LoopChecker.prototype.visitFuncDef):
2681         (LoopChecker.prototype.visitWhileLoop):
2682         (LoopChecker.prototype.visitBreak):
2683         (LoopChecker.prototype.visitContinue):
2684         * WebGPUShadingLanguageRI/NameResolver.js:
2685         (NameResolver.prototype.visitWhileLoop):
2686         * WebGPUShadingLanguageRI/Node.js:
2687         (Node.prototype.visit):
2688         * WebGPUShadingLanguageRI/Parse.js:
2689         (parsePossibleRelationalInequality):
2690         (parseBreak):
2691         (parseContinue):
2692         (parseWhile):
2693         * WebGPUShadingLanguageRI/Prepare.js:
2694         (prepare):
2695         * WebGPUShadingLanguageRI/ReturnChecker.js:
2696         (ReturnChecker):
2697         (ReturnChecker.prototype.visitFuncDef):
2698         (ReturnChecker.prototype.visitBlock):
2699         (ReturnChecker.prototype.visitIfStatement):
2700         (ReturnChecker.prototype.visitWhileLoop):
2701         (ReturnChecker.prototype.visitReturn):
2702         (ReturnChecker.prototype.visitBreak):
2703         (ReturnChecker.prototype.visitContinue):
2704         * WebGPUShadingLanguageRI/Rewriter.js:
2705         (Rewriter.prototype.visitContinue):
2706         (Rewriter.prototype.visitBreak):
2707         (Rewriter.prototype.visitWhileLoop):
2708         (Rewriter):
2709         * WebGPUShadingLanguageRI/StandardLibraryPrologue.js:
2710         * WebGPUShadingLanguageRI/Test.html:
2711         * WebGPUShadingLanguageRI/Test.js:
2712         (TEST_returnIf):
2713         (TEST_simpleWhile):
2714         * WebGPUShadingLanguageRI/UnreachableCodeChecker.js:
2715         (UnreachableCodeChecker):
2716         (UnreachableCodeChecker.prototype.visitBlock):
2717         * WebGPUShadingLanguageRI/Visitor.js:
2718         (Visitor.prototype.visitWhileLoop):
2719         (Visitor.prototype.visitContinue):
2720         (Visitor.prototype.visitBreak):
2721         * WebGPUShadingLanguageRI/WhileLoop.js: Copied from Tools/WebGPUShadingLanguageRI/CheckReturns.js.
2722         (WhileLoop):
2723         (WhileLoop.prototype.get origin):
2724         (WhileLoop.prototype.get conditional):
2725         (WhileLoop.prototype.get body):
2726         (WhileLoop.prototype.toString):
2727
2728 2017-09-07  Filip Pizlo  <fpizlo@apple.com>
2729
2730         WSL overload resolution should not be cascading
2731         https://bugs.webkit.org/show_bug.cgi?id=176333
2732
2733         Reviewed by Myles Maxfield.
2734         
2735         This removes the cascading nature of overload resolution that WSL used to have, and replaces it with
2736         something C++-like. If there are multiple overload candidates that match the callsite, then we resolve
2737         them against each other. Anytime a function cannot be resolved onto another function, it is removed,
2738         since this means that this function is in some way more general than the other one, and we are just
2739         looking for the most specific function.
2740         
2741         If this process ends with only one function being selected, then we succeed, else we fail.
2742         
2743         Also changed the syntax for defining generic casts to:
2744         
2745         operator<T> Thingy<T>(things)
2746         
2747         Also fixed parsing of cast expressions. It's now possible to say a cast expression in WSL.
2748         
2749         The removal of cascading causes some problems. For example, the following two operators in our standard
2750         library are ambiguous for bool(bool):
2751         
2752         operator<T> T(T)
2753         operator<T:Equatable> bool(T)
2754         
2755         I think that what we really want is to say that the following operators are restricted to the standard
2756         library:
2757         
2758         operator<T> T()
2759         operator<T> T(T)
2760         
2761         It should not be possible to ever overload these.
2762         
2763         These changes are mostly tested by existing tests and the changes in the standard library, which has to
2764         be parsed for every test.
2765
2766         * WebGPUShadingLanguageRI/All.js:
2767         * WebGPUShadingLanguageRI/ArrayRefType.js:
2768         (ArrayRefType.prototype.unifyImpl):
2769         * WebGPUShadingLanguageRI/CallExpression.js:
2770         (CallExpression):
2771         (CallExpression.prototype.get isCast):
2772         (CallExpression.prototype.get returnType):
2773         (CallExpression.prototype.resolve):
2774         (CallExpression.prototype.becomeCast):
2775         (CallExpression.prototype.setCastData):
2776         (CallExpression.prototype.toString):
2777         * WebGPUShadingLanguageRI/Checker.js:
2778         * WebGPUShadingLanguageRI/Evaluator.js:
2779         (Evaluator.prototype.visitLogicalNot):
2780         * WebGPUShadingLanguageRI/Func.js:
2781         (Func.prototype.get returnTypeForOverloadResolution):
2782         * WebGPUShadingLanguageRI/FuncDef.js:
2783         (FuncDef):
2784         * WebGPUShadingLanguageRI/FuncInstantiator.js:
2785         (FuncInstantiator.prototype.getUnique.FindTypeVariable.prototype.visitTypeVariable):
2786         (FuncInstantiator.prototype.getUnique.FindTypeVariable):
2787         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution.prototype.visitCallExpression):
2788         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution):
2789         * WebGPUShadingLanguageRI/FunctionLikeBlock.js:
2790         (FunctionLikeBlock.prototype.toString):
2791         (FunctionLikeBlock):
2792         * WebGPUShadingLanguageRI/InferTypesForCall.js: Added.
2793         (inferTypesForCall):
2794         * WebGPUShadingLanguageRI/Inline.js:
2795         (resolveInlinedFunction):
2796         * WebGPUShadingLanguageRI/Lexer.js:
2797         (Lexer):
2798         (Lexer.prototype.next):
2799         * WebGPUShadingLanguageRI/NameContext.js:
2800         (NameContext):
2801         (NameContext.prototype.mapFor):
2802         (NameContext.prototype.add):
2803         (NameContext.prototype.get let):
2804         (NameContext.prototype.Symbol.iterator):
2805         (NameContext.get currentStatement): Deleted.
2806         * WebGPUShadingLanguageRI/NameResolver.js:
2807         (NameResolver.prototype.visitProgram):
2808         (NameResolver.prototype.determinePossibleOverloads):
2809         (NameResolver.prototype.visitProtocolFuncDecl):
2810         (NameResolver.prototype.visitCallExpression):
2811         (NameResolver):
2812         * WebGPUShadingLanguageRI/NativeFunc.js:
2813         (NativeFunc):
2814         * WebGPUShadingLanguageRI/Node.js:
2815         (Node.prototype.visit):
2816         * WebGPUShadingLanguageRI/Parse.js:
2817         (parsePossiblePrefix):
2818         (parseFuncDecl):
2819         (parseNativeFunc):
2820         (parseNative):
2821         (parsePreferredFuncDef):
2822         (parse):
2823         * WebGPUShadingLanguageRI/Prepare.js:
2824         (prepare):
2825         * WebGPUShadingLanguageRI/Program.js:
2826         (Program.prototype.resolveFuncOverload): Deleted.
2827         (Program.prototype.get nameContext): Deleted.
2828         * WebGPUShadingLanguageRI/ProtocolDecl.js:
2829         (ProtocolDecl.prototype.inherits):
2830         (ProtocolDecl.prototype.hasHeir):
2831         * WebGPUShadingLanguageRI/PtrType.js:
2832         (PtrType.prototype.unifyImpl):
2833         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
2834         (resolveOverloadImpl):
2835         * WebGPUShadingLanguageRI/Rewriter.js:
2836         (Rewriter.prototype.visitProtocolFuncDecl):
2837         (Rewriter.prototype.processDerivedCallData):
2838         (Rewriter.prototype.visitCastExpression): Deleted.
2839         * WebGPUShadingLanguageRI/StandardLibrary.js: Added.
2840         (preferred.operator.T.T):
2841         (operator.T.Equatable.bool):
2842         * WebGPUShadingLanguageRI/StandardLibraryEpilogue.js: Removed.
2843         * WebGPUShadingLanguageRI/StandardLibraryPrologue.js: Removed.
2844         * WebGPUShadingLanguageRI/Test.html:
2845         * WebGPUShadingLanguageRI/Test.js:
2846         (doLex):
2847         (checkUInt):
2848         (checkBool):
2849         * WebGPUShadingLanguageRI/TypeRef.js:
2850         (TypeRef.prototype.toString):
2851         (TypeRef):
2852         * WebGPUShadingLanguageRI/Visitor.js:
2853         (Visitor.prototype.visitCallExpression):
2854         (Visitor.prototype.visitCastExpression): Deleted.
2855
2856 2017-09-10  Brady Eidson  <beidson@apple.com>
2857
2858         Try to avoid creating the default WKWebsiteDataStore until its actually needed.
2859         <rdar://problem/33164453> and https://bugs.webkit.org/show_bug.cgi?id=176551
2860
2861         Reviewed by Tim Horton.
2862
2863         * TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
2864         (TEST):
2865
2866 2017-09-10  Michael Catanzaro  <mcatanzaro@igalia.com>
2867
2868         [GTK] Improve Ctrl+W and Ctrl+Q shortcuts in MiniBrowser
2869         https://bugs.webkit.org/show_bug.cgi?id=176619
2870
2871         Reviewed by Carlos Garcia Campos.
2872
2873         There are two different problems here. First, Ctrl+W is closing the entire window. That made
2874         sense when I implemented the shortcut a couple years ago, but now MiniBrowser supports tabs
2875         and it should really close only one single tab. Fix that.
2876
2877         Next, the keyboard shortcuts are not using webkit_web_view_try_close() and so are bypassing
2878         onbeforeunload handlers, which are respected when closing with the mouse. Fix that too.
2879
2880         * MiniBrowser/gtk/BrowserWindow.c:
2881         (browserWindowTryCloseCurrentWebView):
2882         (browserWindowTryClose):
2883         (browser_window_init):
2884
2885 2017-09-07  Myles C. Maxfield  <mmaxfield@apple.com>
2886
2887         Add "if" statements to WSL
2888         https://bugs.webkit.org/show_bug.cgi?id=176294
2889
2890         Reviewed by Filip Pizlo.
2891         
2892         Rolling back in after skipping Test.js on debug.
2893
2894         Fairly straightforward implementation. ReturnChecker only returns true iff there is an else block,
2895         and both the if body and the else body recursively return true.
2896
2897         In order to accept both syntaxes:
2898         if (foo)
2899             bar;
2900         ... and ...
2901         if (foo) {
2902             bar;
2903         }
2904         This patch lets parseStatement() call parseBlock(). This means that the following is valid:
2905         int x = 7;
2906         if (foo) {
2907             int x = 8;
2908             // x is 8 here!
2909         }
2910         // x is 7 here!
2911
2912         This production means that these blocks don't require "if" statements, so you can just have:
2913         int foo() {
2914            int x = 7;
2915            {
2916                int x = 8;
2917                // x is 8 here!
2918            }
2919            // x is 7 here!
2920         }
2921
2922         However, this patch doesn't touch the following use-case:
2923         if (int x = bar()) {
2924             // use x here
2925         }
2926
2927         * WebGPUShadingLanguageRI/All.js:
2928         * WebGPUShadingLanguageRI/Checker.js:
2929         * WebGPUShadingLanguageRI/Evaluator.js:
2930         (Evaluator.prototype.visitIfStatement):
2931         * WebGPUShadingLanguageRI/IfStatement.js: Copied from Tools/WebGPUShadingLanguageRI/TypeDef.js.
2932         (IfStatement):
2933         (IfStatement.prototype.get origin):
2934         (IfStatement.prototype.get conditional):
2935         (IfStatement.prototype.get body):
2936         (IfStatement.prototype.get elseBody):
2937         (IfStatement.prototype.toString):
2938         * WebGPUShadingLanguageRI/NameResolver.js:
2939         (NameResolver.prototype.visitIfStatement):
2940         * WebGPUShadingLanguageRI/Parse.js:
2941         (parseTypeParameters):
2942         (parseIfStatement):
2943         (parseStatement):
2944         * WebGPUShadingLanguageRI/ReturnChecker.js:
2945         (ReturnChecker.prototype.visitIfStatement):
2946         * WebGPUShadingLanguageRI/Rewriter.js:
2947         (Rewriter.prototype.visitIfStatement):
2948         (Rewriter):
2949         * WebGPUShadingLanguageRI/Test.html:
2950         * WebGPUShadingLanguageRI/Test.js:
2951         (TEST_variableShadowing):
2952         (TEST_ifStatement):
2953         (TEST_ifElseStatement):
2954         (TEST_ifElseIfStatement):
2955         (TEST_ifElseIfElseStatement):
2956         (TEST_returnIf):
2957         (TEST_protocolMonoPolySigDoublePolyDefExplicit): Deleted.
2958         * WebGPUShadingLanguageRI/TypeDef.js:
2959         (TypeDef.prototype.toString):
2960         (TypeDef):
2961         * WebGPUShadingLanguageRI/Visitor.js:
2962         (Visitor.prototype.visitIfStatement):
2963
2964 2017-09-09  Michael Catanzaro  <mcatanzaro@igalia.com>
2965
2966         [GTK] Unreviewed, fix typo forwad -> forward
2967
2968         * MiniBrowser/gtk/BrowserWindow.c:
2969         (browserWindowUpdateNavigationActions):
2970         (backForwardlistChanged):
2971         (browserWindowSwitchTab):
2972         (backForwadlistChanged): Deleted.
2973
2974 2017-09-09  Ryan Haddad  <ryanhaddad@apple.com>
2975
2976         Unreviewed, rolling out r221801.
2977
2978         This change introduced a webkitpy test failure.
2979
2980         Reverted changeset:
2981
2982         "bisect-builds doesn't work due to missing requests module"
2983         https://bugs.webkit.org/show_bug.cgi?id=175709
2984         http://trac.webkit.org/changeset/221801
2985
2986 2017-09-09  Ryan Haddad  <ryanhaddad@apple.com>
2987
2988         Unreviewed, rolling out r221776.
2989
2990         This change caused wsl-tests.yaml/Test.js to time out on Debug
2991         JSC bots.
2992
2993         Reverted changeset:
2994
2995         "Add "if" statements to WSL"
2996         https://bugs.webkit.org/show_bug.cgi?id=176294
2997         http://trac.webkit.org/changeset/221776
2998
2999 2017-09-09  Michael Catanzaro  <mcatanzaro@igalia.com>
3000
3001         MiniBrowser closes tab instead of window on close signal
3002         https://bugs.webkit.org/show_bug.cgi?id=176587
3003
3004         Reviewed by Carlos Garcia Campos.
3005
3006         This has been broken since we added support for multiple tabs. We need to run try_close for
3007         every open tab, not just the current one. If there are no onbeforeonload handlers then all
3008         tabs will close; if there are some, then they'll be respected, but the remaining tabs will
3009         be closed.
3010
3011         Note that we cannot simply iterate through the tabs of the GtkNotebook, as we'd be deleting
3012         tabs as we go, so save all the tabs into a separate list and then try to close each in turn.
3013
3014         * MiniBrowser/gtk/BrowserWindow.c:
3015         (browserWindowTryClose):
3016         (browserWindowDeleteEvent):
3017
3018 2017-09-09  Zan Dobersek  <zdobersek@igalia.com>
3019
3020         Unreviewed WPE build fix.
3021
3022         * TestWebKitAPI/PlatformWPE.cmake:
3023         Link WebCore archives into the TestWebCore binary as a group.
3024
3025 2017-09-08  Lucas Forschler  <lforschler@apple.com>
3026
3027         bisect-builds doesn't work due to missing requests module
3028         https://bugs.webkit.org/show_bug.cgi?id=175709
3029         
3030         Reviewed by Ryosuke Niwa.
3031
3032         * Scripts/bisect-builds: update import to webkitpy.thirdparty.autoinstalled
3033         * Scripts/webkitpy/thirdparty/__init__.py: add logic to install requests module.
3034         (AutoinstallImportHook.find_module):
3035         (AutoinstallImportHook):
3036         (AutoinstallImportHook._install_requests):
3037         * Scripts/webkitpy/thirdparty/__init___unittest.py:
3038         (ThirdpartyTest.test_imports):
3039
3040 2017-09-08  Lucas Forschler  <lforschler@apple.com>
3041
3042         Test commit to verify trac sync is working.
3043
3044 2017-09-08  Lucas Forschler  <lforschler@apple.com>
3045
3046         Test commit to verify git sync is working.
3047
3048 2017-09-08  Lucas Forschler  <lforschler@apple.com>
3049
3050         bisect-builds should not print out extracting command
3051         https://bugs.webkit.org/show_bug.cgi?id=175632
3052         
3053         Reviewed by Alexey Proskuryakov.
3054
3055         * Scripts/bisect-builds:
3056         (extract_archive):
3057
3058 2017-09-07  Joseph Pecoraro  <pecoraro@apple.com>
3059
3060         WebKit should claim that it can show responses for a broader range of JSON MIMETypes
3061         https://bugs.webkit.org/show_bug.cgi?id=176252
3062         <rdar://problem/34212885>
3063
3064         Reviewed by Ryosuke Niwa.
3065
3066         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3067         * TestWebKitAPI/Tests/WebKitCocoa/WKNavigationResponse.mm: Added.
3068         (-[WKNavigationResponseTestNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
3069         (-[WKNavigationResponseTestNavigationDelegate webView:didCommitNavigation:]):
3070         (-[WKNavigationResponseTestSchemeHandler webView:startURLSchemeTask:]):
3071         (-[WKNavigationResponseTestSchemeHandler webView:stopURLSchemeTask:]):
3072         (TEST):
3073         Test for canShowMIMEType with multiple JSON mime types and a garbage mime type.
3074         Previously canShowMIMEType would have been YES for "application/json" but
3075         NO for "application/vnd.api+json". Now it shows YES for both.
3076
3077         * TestWebKitAPI/PlatformGTK.cmake:
3078         * TestWebKitAPI/PlatformWPE.cmake:
3079         * TestWebKitAPI/PlatformWin.cmake:
3080         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3081         * TestWebKitAPI/Tests/WebCore/MIMETypeRegistry.cpp: Added.
3082         (TestWebKitAPI::TEST):
3083         Tests for MIMETypeRegistry's dynamic JSON mime type detection.
3084
3085 2017-09-07  Matthew Stewart  <matthew_r_stewart@apple.com>
3086
3087         Add Live PLT implemented with WebDriver
3088         https://bugs.webkit.org/show_bug.cgi?id=176436
3089
3090         Reviewed by Stephanie Lewis.
3091
3092         Adds a new PLT that runs on live websites.
3093
3094         * Scripts/run-webdriver-plt.py: Added.
3095         (parse_args):
3096         (start):
3097         (make_suites):
3098         (main):
3099         * Scripts/webkitpy/webdriver_plt/__init__.py: Added.
3100         * Scripts/webkitpy/webdriver_plt/liveplt.py: Added.
3101         (PageLoadTest):
3102         (PageLoadTest.__init__):
3103         (PageLoadTest.start):
3104         (PageLoadTest.run_suite):
3105         (PageLoadTest._get_driver_for_browser):
3106         (PageLoadTest._setup_browser_window):
3107         (PageLoadTest.run_one_test):
3108         (PageLoadTest.get_results):
3109         * Scripts/webkitpy/webdriver_plt/pltresults.py: Added.
3110         (PLTResults):
3111         (PLTResults.__init__):
3112         (PLTResults.__add__):
3113         (PLTResults.add_timing_result):
3114         (PLTResults.mean):
3115         (PLTResults.geometric_mean):
3116         (PLTResults.mean_coef_variance):
3117         (PLTResults.print_results):
3118         (PLTResults.print_url_results):
3119         (PLTResults._format_time):
3120         * Scripts/webkitpy/webdriver_plt/suites/__init__.py: Added.
3121         * Scripts/webkitpy/webdriver_plt/suites/arabic.suite: Added.
3122         * Scripts/webkitpy/webdriver_plt/suites/cjk.suite: Added.
3123         * Scripts/webkitpy/webdriver_plt/suites/news.suite: Added.
3124         * Scripts/webkitpy/webdriver_plt/suites/search.suite: Added.
3125         * Scripts/webkitpy/webdriver_plt/suites/shopping.suite: Added.
3126         * Scripts/webkitpy/webdriver_plt/suites/social.suite: Added.
3127         * Scripts/webkitpy/webdriver_plt/suites/suite.py: Added.
3128         (Suite):
3129         (Suite.__init__):
3130         (Suite.get_available_suites):
3131         * Scripts/webkitpy/webdriver_plt/urlresults.py: Added.
3132         (URLResults):
3133         (URLResults.__init__):
3134         (URLResults.__add__):
3135         (URLResults.mean):
3136         (URLResults.coef_variance):
3137         (URLResults.print_results):
3138         (URLResults._format_time):
3139
3140 2017-09-07  Myles C. Maxfield  <mmaxfield@apple.com>
3141
3142         Add "if" statements to WSL
3143         https://bugs.webkit.org/show_bug.cgi?id=176294
3144
3145         Reviewed by Filip Pizlo.
3146
3147         Fairly straightforward implementation. ReturnChecker only returns true iff there is an else block,
3148         and both the if body and the else body recursively return true.
3149
3150         In order to accept both syntaxes:
3151         if (foo)
3152             bar;
3153         ... and ...
3154         if (foo) {
3155             bar;
3156         }
3157         This patch lets parseStatement() call parseBlock(). This means that the following is valid:
3158         int x = 7;
3159         if (foo) {
3160             int x = 8;
3161             // x is 8 here!
3162         }
3163         // x is 7 here!
3164
3165         This production means that these blocks don't require "if" statements, so you can just have:
3166         int foo() {
3167            int x = 7;
3168            {
3169                int x = 8;
3170                // x is 8 here!
3171            }
3172            // x is 7 here!
3173         }
3174
3175         However, this patch doesn't touch the following use-case:
3176         if (int x = bar()) {
3177             // use x here
3178         }
3179
3180         * WebGPUShadingLanguageRI/All.js:
3181         * WebGPUShadingLanguageRI/Checker.js:
3182         * WebGPUShadingLanguageRI/Evaluator.js:
3183         (Evaluator.prototype.visitIfStatement):
3184         * WebGPUShadingLanguageRI/IfStatement.js: Copied from Tools/WebGPUShadingLanguageRI/TypeDef.js.
3185         (IfStatement):
3186         (IfStatement.prototype.get origin):
3187         (IfStatement.prototype.get conditional):
3188         (IfStatement.prototype.get body):
3189         (IfStatement.prototype.get elseBody):
3190         (IfStatement.prototype.toString):
3191         * WebGPUShadingLanguageRI/NameResolver.js:
3192         (NameResolver.prototype.visitIfStatement):
3193         * WebGPUShadingLanguageRI/Parse.js:
3194         (parseTypeParameters):
3195         (parseIfStatement):
3196         (parseStatement):
3197         * WebGPUShadingLanguageRI/ReturnChecker.js:
3198         (ReturnChecker.prototype.visitIfStatement):
3199         * WebGPUShadingLanguageRI/Rewriter.js:
3200         (Rewriter.prototype.visitIfStatement):
3201         (Rewriter):
3202         * WebGPUShadingLanguageRI/Test.html:
3203         * WebGPUShadingLanguageRI/Test.js:
3204         (TEST_variableShadowing):
3205         (TEST_ifStatement):
3206         (TEST_ifElseStatement):
3207         (TEST_ifElseIfStatement):
3208         (TEST_ifElseIfElseStatement):
3209         (TEST_returnIf):
3210         (TEST_protocolMonoPolySigDoublePolyDefExplicit): Deleted.
3211         * WebGPUShadingLanguageRI/TypeDef.js:
3212         (TypeDef.prototype.toString):
3213         (TypeDef):
3214         * WebGPUShadingLanguageRI/Visitor.js:
3215         (Visitor.prototype.visitIfStatement):
3216
3217 2017-09-07  Lucas Forschler  <lforschler@apple.com>
3218
3219         Test commit after server upgrade from subversion 1.9.5 to 1.9.7
3220
3221 2017-09-07  Chris Dumez  <cdumez@apple.com>
3222
3223         [WK2] Add C API to retrieve the originating page of a WKDownload
3224         https://bugs.webkit.org/show_bug.cgi?id=176557
3225         <rdar://problem/34314776>
3226
3227         Reviewed by Alex Christensen.
3228
3229         Add layout test coverage for both the ObjC and C API.
3230
3231         * TestWebKitAPI/Tests/WebKit/mac/ContextMenuDownload.mm:
3232         (TestWebKitAPI::decideDestinationWithSuggestedFilename):
3233         (TestWebKitAPI::TEST):
3234         * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
3235         (-[RedirectedDownloadDelegate _downloadDidStart:]):
3236         (TEST):
3237
3238 2017-09-07  Filip Pizlo  <fpizlo@apple.com>
3239
3240         WSL Node.prototype.visit should probably do memoization
3241         https://bugs.webkit.org/show_bug.cgi?id=176286
3242
3243         Reviewed by Mark Lam.
3244         
3245         Visitors can sometimes revisit the same thing. For example, we may visit a FuncDef because it belongs
3246         to Program and we may visit it again because a CallExpression resolved to it. That's just plain silly.
3247         
3248         Our tests don't currently do this, so it's not a performance problem, yet. Also, we usually avoid that
3249         kind of repetitive visiting inside the visitor implementations. But as far as I can tell, this is an
3250         emergent property rather than a deliberate design.
3251         
3252         This change just makes the policy super explicit. If you visit something more than once with the same
3253         visitor, you get the same answer back. This is achieved by means of a memo table inside each visitor.
3254         
3255         * WebGPUShadingLanguageRI/All.js:
3256         * WebGPUShadingLanguageRI/FuncInstantiator.js:
3257         * WebGPUShadingLanguageRI/Node.js:
3258         (Node.prototype.visit):
3259         * WebGPUShadingLanguageRI/Rewriter.js:
3260         (Rewriter):
3261         * WebGPUShadingLanguageRI/Test.html:
3262         * WebGPUShadingLanguageRI/Visitor.js:
3263         (Visitor):
3264         * WebGPUShadingLanguageRI/VisitorBase.js: Added.
3265         (VisitorBase):
3266
3267 2017-09-07  Wenson Hsieh  <wenson_hsieh@apple.com>
3268
3269         [Directory Upload] Extend drag and drop support to iOS
3270         https://bugs.webkit.org/show_bug.cgi?id=176492
3271         <rdar://problem/34291584>
3272
3273         Reviewed by Tim Horton.
3274
3275         Adds two new iOS drag and drop unit tests, which both exercise the DataTransferItem.webKitGetAsEntry codepath
3276         upon drop. (...)GetFolderAsEntry creates a new folder in the temporary directory and uses it to generate an item
3277         provider. This item provider is then dropped over a custom drop handling element, which writes information about
3278         the exposed FileSystemEntries into a textarea. (...)ExternalSourceDataTransferItemGetPlainTextFileAsEntry does
3279         something similar, except that it only drops a plain text file instead.
3280
3281         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3282         * TestWebKitAPI/Tests/WebKitCocoa/DataTransferItem-getAsEntry.html: Added.
3283
3284         Introduce a new test page that dumps information about DataTransferItems' file system entries upon drop.
3285
3286         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
3287         (runTestWithTemporaryTextFile):
3288         (runTestWithTemporaryFolder):
3289
3290         Introduce helpers to set up and tear down temporary files and folders over the duration of a test.
3291
3292         (TestWebKitAPI::setUpTestWebViewForDataTransferItems):
3293         (TestWebKitAPI::TEST):
3294
3295 2017-09-07  Filip Pizlo  <fpizlo@apple.com>
3296
3297         WSL should check recursion
3298         https://bugs.webkit.org/show_bug.cgi?id=176553
3299
3300         Reviewed by Michael Saboff and Mark Lam.
3301         
3302         This adds a recursion checker. Previously, we would only check for recursion during inlining, but that
3303         generally only happens when we call the function.
3304
3305         * WebGPUShadingLanguageRI/All.js:
3306         * WebGPUShadingLanguageRI/CheckRecursion.js: Added.
3307         (checkRecursion):
3308         * WebGPUShadingLanguageRI/Prepare.js:
3309         (prepare):
3310         * WebGPUShadingLanguageRI/RecursionChecker.js: Added.
3311         (RecursionChecker):
3312         (RecursionChecker.prototype.visitFuncDef):
3313         (RecursionChecker.prototype.visitCallExpression):
3314         * WebGPUShadingLanguageRI/Test.html:
3315         * WebGPUShadingLanguageRI/Test.js:
3316         (TEST_simpleRecursion):
3317
3318 2017-09-07  Chris Dumez  <cdumez@apple.com>
3319
3320         [WK2] Notify client when downloads are redirected
3321         https://bugs.webkit.org/show_bug.cgi?id=176481
3322         <rdar://problem/34309065>
3323
3324         Reviewed by Geoffrey Garen.
3325
3326         * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
3327         (-[UIDownloadAsFileTestDelegate _webView:contextMenu:forElement:]):
3328         (-[RedirectedDownloadDelegate _download:decideDestinationWithSuggestedFilename:allowOverwrite:]):
3329         (-[RedirectedDownloadDelegate _download:didReceiveServerRedirectToURL:]):
3330         (-[RedirectedDownloadDelegate _downloadDidFinish:]):
3331         (TEST):
3332         Add API test coverage.
3333
3334         * WebKitTestRunner/TestController.cpp:
3335         (WTR::TestController::createWebViewWithOptions):
3336         (WTR::TestController::downloadDidReceiveServerRedirectToURL):
3337         * WebKitTestRunner/TestController.h:
3338         Add layout test infrastructure.
3339
3340 2017-09-07  Per Arne Vollan  <pvollan@apple.com>
3341
3342         [Win] fast/canvas/2d.getPath.modification.html is failing.
3343         https://bugs.webkit.org/show_bug.cgi?id=176534
3344
3345         Reviewed by Alex Christensen.
3346
3347         We need to enable Inspector additions at runtime in order to expose the getPath function.
3348
3349         * DumpRenderTree/win/DumpRenderTree.cpp:
3350         (resetWebPreferencesToConsistentValues):
3351
3352 2017-09-07  Filip Pizlo  <fpizlo@apple.com>
3353
3354         WSL tests should run in run-javascriptcore-tests
3355         https://bugs.webkit.org/show_bug.cgi?id=176550
3356
3357         Reviewed by Keith Miller.
3358
3359         * Scripts/run-javascriptcore-tests:
3360         (runJSCStressTests):
3361         * WebGPUShadingLanguageRI/wsl-tests.yaml: Added.
3362
3363 2017-09-07  Lucas Forschler  <lforschler@apple.com>
3364
3365         bisect-builds started failing with invalid json
3366         https://bugs.webkit.org/show_bug.cgi?id=176478
3367         
3368         Once we hit 1000 items in our dynamoDB, we ran into an upper limit on the AWS API Gateway looping mechanism. 
3369         This prevented us from doing a body mapping template to reformat the json. This fix is to simply return the raw json, 
3370         and adjust the json parsing in our code. The AWS rest API has been fixed, and updated to v2. 
3371         
3372         This change is for the script which operates against the endpoint.
3373         
3374         Reviewed by Aakash Jain.
3375
3376         * Scripts/bisect-builds:
3377         (get_sorted_revisions):
3378
3379 2017-09-07  Filip Pizlo  <fpizlo@apple.com>
3380
3381         [WSL] Rationalize how protocol inheritance deals with type parameters
3382         https://bugs.webkit.org/show_bug.cgi?id=176334
3383
3384         Reviewed by Mark Lam.
3385         
3386         This adds a bunch of tests for structs, protocols, and functions interacting in interesting
3387         ways. The most complex of these tests triggers the case where the protocol contains a function
3388         with one type parameter and the real function has more than one. This should give a WTypeError,
3389         and now it does.
3390         
3391         * WebGPUShadingLanguageRI/ProtocolDecl.js:
3392         (ProtocolDecl.prototype.hasHeir): Fix the handling of a mismatch of number of type parameters by actually passing the type parameters and then correctly handling the error.
3393         * WebGPUShadingLanguageRI/Test.js: Add a bunch of tests for this case and a lot of other protocol cases.
3394         (TEST_protocolMonoSigPolyDef):
3395         (TEST_protocolPolySigPolyDef):
3396         (TEST_protocolDoublePolySigDoublePolyDef):
3397         (TEST_protocolDoublePolySigDoublePolyDefExplicit):
3398         (TEST_protocolMonoPolySigDoublePolyDefExplicit):
3399         * WebGPUShadingLanguageRI/TypeVariable.js:
3400         (TypeVariable.prototype.get origin): This wasn't implemented before, which made error reporting harder.
3401
3402 2017-09-07  Per Arne Vollan  <pvollan@apple.com>
3403
3404         [Win] Dashboard test is failing.
3405         https://bugs.webkit.org/show_bug.cgi?id=176527
3406
3407         Reviewed by Brent Fulgham.
3408
3409         Skip test on Windows since WebKitTestRunner is required, but not built on Windows.
3410
3411         * BuildSlaveSupport/build.webkit.org-config/master.cfg:
3412         (TestFactory.__init__):
3413
3414 2017-09-07  Adrian Perez de Castro  <aperez@igalia.com>
3415
3416         [WPE][CMake] Add "dist" and "distcheck" targets
3417         https://bugs.webkit.org/show_bug.cgi?id=176448
3418
3419         Reviewed by Carlos Garcia Campos.
3420
3421         Add "dist" and "distcheck" CMake targets, which create release tarballs.
3422         These are available only when configuring with -DDEVELOPER_MODE=TRUE.
3423
3424         * wpe/manifest.txt.in: Added.
3425
3426 2017-09-07  Per Arne Vollan  <pvollan@apple.com>
3427
3428         [Win] Enable DatatransferItems in DRT.
3429         https://bugs.webkit.org/show_bug.cgi?id=176424
3430
3431         Reviewed by Brent Fulgham.
3432
3433         * DumpRenderTree/win/DumpRenderTree.cpp:
3434         (resetWebPreferencesToConsistentValues):
3435
3436 2017-09-07  Carlos Garcia Campos  <cgarcia@igalia.com>
3437
3438         [GTK] Bump libxml2 version to 1.9.5
3439         https://bugs.webkit.org/show_bug.cgi?id=176502
3440
3441         Reviewed by Carlos Alberto Lopez Perez.
3442
3443         It has been released very recently, but it fixes the issues that prevented us from upgrading to 1.9.4.
3444
3445         * gtk/jhbuild.modules:
3446
3447 2017-09-06  Joseph Pecoraro  <pecoraro@apple.com>
3448
3449         Remove new-run-webkit-httpd as it appears to be old
3450         https://bugs.webkit.org/show_bug.cgi?id=176493
3451
3452         Reviewed by Alexey Proskuryakov.
3453
3454         * Scripts/new-run-webkit-httpd: Removed.
3455
3456 2017-09-06  Alex Christensen  <achristensen@webkit.org>
3457
3458         Add WKUIDelegatePrivate equivalent of WKPageUIClient's pageDidScroll
3459         https://bugs.webkit.org/show_bug.cgi?id=176482
3460         <rdar://problem/29270035>
3461
3462         Reviewed by Tim Horton.
3463
3464         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
3465         (-[DidScrollDelegate _webViewDidScroll:]):
3466         (TEST):
3467
3468 2017-09-06  Eric Carlson  <eric.carlson@apple.com>
3469
3470         Require LoggingHelper overrides to provide identifier
3471         https://bugs.webkit.org/show_bug.cgi?id=176477
3472
3473         Reviewed by Jer Noble.
3474
3475         * TestWebKitAPI/Tests/WebCore/Logging.cpp:
3476         (TestWebKitAPI::TEST_F):
3477
3478 2017-09-06  Alex Christensen  <achristensen@webkit.org>
3479
3480         Add WKUIDelegatePrivate equivalent of WKPageUIClient's pinnedStateDidChange
3481         https://bugs.webkit.org/show_bug.cgi?id=176474
3482         <rdar://problem/29270035>
3483
3484         Reviewed by Tim Horton.
3485
3486         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
3487         (-[PinnedStateObserver observeValueForKeyPath:ofObject:change:context:]):
3488         (TEST):
3489
3490 2017-09-06  Alex Christensen  <achristensen@webkit.org>
3491
3492         Unreviewed, rolling out r221694.
3493
3494         broke build
3495
3496         Reverted changeset:
3497
3498         "Add WKUIDelegatePrivate equivalent of WKPageUIClient's
3499         pinnedStateDidChange"
3500         https://bugs.webkit.org/show_bug.cgi?id=176474
3501         http://trac.webkit.org/changeset/221694
3502
3503 2017-09-06  Per Arne Vollan  <pvollan@apple.com>
3504
3505         [Win] test-webkitpy test timeout_context_unittest is failing.
3506         https://bugs.webkit.org/show_bug.cgi?id=176471
3507
3508         Reviewed by Brent Fulgham.
3509
3510         This assert failure is possibly caused by different time resolution on
3511         various platforms.
3512  
3513         * Scripts/webkitpy/common/timeout_context_unittest.py:
3514         (TimeoutContextTests.test_timeout_data):
3515
3516 2017-09-06  Aakash Jain  <aakash_jain@apple.com>
3517
3518         status-bubbles turn orange after checking relevance of patch
3519         https://bugs.webkit.org/show_bug.cgi?id=176457
3520
3521         Reviewed by Alexey Proskuryakov.
3522
3523         * QueueStatusServer/handlers/statusbubble.py: Added "Checked relevance of patch" as a progress_statuses.
3524
3525 2017-09-06  Alex Christensen  <achristensen@webkit.org>
3526
3527         Add WKUIDelegatePrivate equivalent of WKPageUIClient's pinnedStateDidChange
3528         https://bugs.webkit.org/show_bug.cgi?id=176474
3529         <rdar://problem/29270035>
3530
3531         Reviewed by Tim Horton.
3532
3533         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
3534         (-[PinnedStateObserver observeValueForKeyPath:ofObject:change:context:]):
3535         (TEST):
3536
3537 2017-09-06  Filip Pizlo  <fpizlo@apple.com>
3538
3539         WSL: Inliner doesn't allow double-negation
3540         https://bugs.webkit.org/show_bug.cgi?id=176440
3541
3542         Reviewed by Mylex Maxfield.
3543         
3544         The problem was that we were visiting the operands to calls while inside doVisit. This is too strict
3545         since it rejects nested calls like foo(foo(x)). The solution is to visit the operands to calls before
3546         entering doVisit.
3547         
3548         This also fixes some other issues in the parser that made the Inliner's error really strange.
3549
3550         * WebGPUShadingLanguageRI/Func.js:
3551         (Func):
3552         * WebGPUShadingLanguageRI/Inliner.js:
3553         (Inliner.prototype.visitCallExpression):
3554         (Inliner):
3555         * WebGPUShadingLanguageRI/Parse.js:
3556         (parseOperatorFuncDefValues):
3557         (parseNonOperatorFuncDefValues):
3558         (parseGenericFuncDefValues):
3559         (parseFuncDecl):
3560         * WebGPUShadingLanguageRI/Test.js:
3561         * WebGPUShadingLanguageRI/VisitingSet.js:
3562         (VisitingSet.prototype.doVisit):
3563         (VisitingSet):
3564
3565 2017-09-06  Myles C. Maxfield  <mmaxfield@apple.com>
3566
3567         WSL should support the bool type
3568         https://bugs.webkit.org/show_bug.cgi?id=176285
3569
3570         Reviewed by Filip Pizlo.
3571
3572