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