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