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