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