1 2017-10-03 Saam Barati <sbarati@apple.com>
3 Implement polymorphic prototypes
4 https://bugs.webkit.org/show_bug.cgi?id=176391
6 Reviewed by Filip Pizlo.
8 * Scripts/run-jsc-stress-tests:
10 2017-10-03 Myles C. Maxfield <mmaxfield@apple.com>
12 Create a SPIR-V assembler
13 https://bugs.webkit.org/show_bug.cgi?id=177726
15 Reviewed by Filip Pizlo.
17 Khronos has released a json file containing every SPIR-V opcode and operand at
18 https://github.com/KhronosGroup/SPIRV-Headers/blob/master/include/spirv/1.2/spirv.core.grammar.json
19 This patch creates a function which loads this file (via the fetch API), parses it, and creates
20 an object which holds two things:
21 - For each opcode, a class which accepts the appropriate operands
22 - For each enum type, an object which holds each enum value
23 The constructor for each opcode is smart enough to do some basic type-checking of the argument,
24 according to the types listed in Khronos's json file.
26 This patch also includes an example .html file which outputs a dummy SPIR-V program,
27 which happens to be compatible with the SPIR-V demo at
28 https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/blob/master/demos/cube.cpp
29 If you modify this demo to use the generated SPIR-V program, you can see the result in
32 This patch also commits a copy of Khronos's json file mentioned above. This isn't the first
33 Khronos file we've committed into our repository with this license, so there shouldn't be any
36 * WebGPUShadingLanguageRI/SPIR-V.js: Added.
39 (SPIRVAssembler.prototype.append):
40 (SPIRVAssembler.prototype.get size):
41 (SPIRVAssembler.prototype.get storage):
42 (SPIRVAssembler.prototype.get result):
43 * WebGPUShadingLanguageRI/SPIRV.html: Added.
44 * WebGPUShadingLanguageRI/spirv.core.grammar.json: Added.
46 2017-10-03 Chris Dumez <cdumez@apple.com>
48 SharedStringHashStore should support removing hashes
49 https://bugs.webkit.org/show_bug.cgi?id=177770
51 Reviewed by Alex Christensen.
53 Add API test coverage.
55 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
56 * TestWebKitAPI/Tests/WebKitCocoa/VisitedLinkStore.mm: Added.
57 (TestWebKitAPI::TEST):
59 2017-10-03 Dewei Zhu <dewei_zhu@apple.com>
61 Fix missing import for BenchmarkRunner.
62 https://bugs.webkit.org/show_bug.cgi?id=177842
64 Reviewed by Ryosuke Niwa.
66 'show_results' requires BenchmarkRunner.
68 * Scripts/webkitpy/benchmark_runner/run_benchmark.py:
70 2017-10-03 Olivier Blin <olivier.blin@softathome.com>
72 [WPE] Bump deps to add support for xdg-shell-unstable-v6 protocol
73 https://bugs.webkit.org/show_bug.cgi?id=177820
75 Reviewed by Žan Doberšek.
77 gnome-shell does not advertize the xdg-shell protocol anymore, but xdg-shell-unstable-v6 instead.
78 Support has been added in WPEBackend-mesa, we need to update the requirements.
79 wayland-1.10 is needed for wl_proxy_get_version(), used in the generated headers.
81 * wpe/jhbuild.modules:
83 2017-10-03 Alex Christensen <achristensen@webkit.org>
85 Add ObjC SPI equivalent to WKPageLoaderClient.willGoToBackForwardListItem
86 https://bugs.webkit.org/show_bug.cgi?id=177825
87 <rdar://problem/22387505>
89 Reviewed by Tim Horton.
91 * TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:
92 (-[BackForwardDelegate _webView:willGoToBackForwardListItem:inPageCache:]):
93 (-[BackForwardDelegate webView:didFinishNavigation:]):
96 2017-10-03 Antti Koivisto <antti@apple.com>
98 Allow assigning WeakPtr<Derived> to WeakPtr<Base>
99 https://bugs.webkit.org/show_bug.cgi?id=177817
101 Reviewed by Geoff Garen.
103 * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
104 (TestWebKitAPI::Base::weakPtrFactory):
105 (TestWebKitAPI::TEST):
107 2017-10-03 Youenn Fablet <youenn@apple.com>
109 Remove no longer needed WebRTC build infrastructure
110 https://bugs.webkit.org/show_bug.cgi?id=177756
112 Reviewed by Alejandro G. Castro.
114 * Scripts/generate-libwebrtc-cmake: Removed.
115 * Scripts/webkitpy/libwebrtc/__init__.py: Removed.
116 * Scripts/webkitpy/libwebrtc/generate_cmake.py: Removed.
118 2017-10-03 Joanmarie Diggs <jdiggs@igalia.com>
120 AX: [ATK] ARIA drag-and-drop attribute values should be exposed via AtkObject attributes
121 https://bugs.webkit.org/show_bug.cgi?id=177763
123 Reviewed by Chris Fleizach.
125 Implement ariaIsGrabbed() and ariaDropEffects() for ATK.
127 * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
128 (WTR::AccessibilityUIElement::ariaIsGrabbed const):
129 (WTR::AccessibilityUIElement::ariaDropEffects const):
131 2017-10-02 Myles C. Maxfield <mmaxfield@apple.com>
133 Make WSL demo compatible with Microsoft Edge
134 https://bugs.webkit.org/show_bug.cgi?id=177643
136 Reviewed by Saam Barati.
138 This patch does two things. The first is it migrates a loop over ParentNode.children to a legacy style loop
139 because Microsoft Edge throws an exception when trying to use a for...of loop with it. This patch also hides
140 the compilation behind a setTimeout(0) so there is some indication that something is happening during a
144 * Tools/WebGPUShadingLanguageRI/index.html:
146 2017-10-02 Joanmarie Diggs <jdiggs@igalia.com>
148 AX: [ATK] The value of aria-level is not exposed on non-heading roles
149 https://bugs.webkit.org/show_bug.cgi?id=177775
151 Reviewed by Chris Fleizach.
153 * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
154 (WTR::AccessibilityUIElement::hierarchicalLevel const):
156 2017-10-02 Geoffrey Garen <ggaren@apple.com>
158 WeakPtr should have a move constructor
159 https://bugs.webkit.org/show_bug.cgi?id=177789
161 Reviewed by Chris Dumez.
163 Chris made me write an API test. It wasn't that painful.
165 * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
166 (TestWebKitAPI::TEST):
168 2017-10-02 Filip Pizlo <fpizlo@apple.com>
171 https://bugs.webkit.org/show_bug.cgi?id=177705
173 Rubber stamped by Keith Miller.
175 When I first wrote the prototype, I thought it would be cool to use ^ for pointers. Nobody agrees. I've
176 gotten so much feedback to use *. This changes pointers to use *.
178 * WebGPUShadingLanguageRI/DereferenceExpression.js:
179 (DereferenceExpression.prototype.toString):
180 (DereferenceExpression):
181 * WebGPUShadingLanguageRI/Intrinsics.js:
183 * WebGPUShadingLanguageRI/Parse.js:
185 (parsePossiblePrefix):
186 * WebGPUShadingLanguageRI/PtrType.js:
187 (PtrType.prototype.toString):
189 * WebGPUShadingLanguageRI/StandardLibrary.js:
190 * WebGPUShadingLanguageRI/Test.js:
191 (tests.simpleDereference):
192 (tests.dereferenceStore):
193 (tests.simpleMakePtr):
197 (tests.dereferenceDefaultNull):
198 (tests.defaultInitializedNull):
199 (tests.passNullToPtrMonomorphic):
200 (tests.passNullToPtrPolymorphic):
201 (tests.passNullAndNotNull):
202 (tests.passNullAndNotNullFullPoly):
203 (tests.passNullAndNotNullFullPolyReverse):
204 (tests.chainGeneric):
206 (tests.chainStructNewlyValid):
207 (tests.chainStructDevice):
208 (tests.paramChainStructDevice):
209 (tests.simpleProtocolExtends):
210 (tests.protocolExtendsTwo):
211 (tests.overrideSubscriptStruct):
212 (tests.overrideSubscriptStructAndDoStores):
213 (tests.overrideSubscriptStructAndUsePointers):
214 (tests.overrideSubscriptStructAndUsePointersIncorrectly):
215 (tests.makeArrayRefFromPointer):
216 (tests.nonArrayRefArrayLengthFail):
217 (tests.constexprIsNotLValuePtr):
218 (tests.genericAccessors):
219 (tests.nestedSubscriptLValueEmulationSimple):
220 (tests.nestedSubscriptLValueEmulationGeneric):
223 (tests.mutuallyRecursiveStructWithPointersBroken):
224 (tests.mutuallyRecursiveStructWithPointers):
226 (tests.pointerToPointer):
227 (tests.pointerGetter):
228 (tests.operatorCastWithTypeVariableInferredFromReturnType):
229 (tests.loneSetterPointer):
230 (tests.anderWithNothingWrong):
231 (tests.anderWithWrongNumberOfArguments):
232 (tests.anderDoesntReturnPointer):
233 (tests.anderDoesntTakeReference):
234 (tests.anderWithArrayRef):
235 (tests.pointerIndexGetter):
236 (tests.loneIndexSetterPointer):
237 (tests.indexAnderWithNothingWrong):
238 (tests.indexAnderWithWrongNumberOfArguments):
239 (tests.indexAnderDoesntReturnPointer):
240 (tests.indexAnderDoesntTakeReference):
241 (tests.indexAnderWithArrayRef):
242 (tests.devicePtrPtr):
243 (tests.threadgroupPtrPtr):
244 (tests.constantPtrPtr):
245 (tests.pointerIndexGetterInProtocol):
246 (tests.loneIndexSetterPointerInProtocol):
247 (tests.indexAnderWithNothingWrongInProtocol):
248 (tests.indexAnderWithWrongNumberOfArgumentsInProtocol):
249 (tests.indexAnderDoesntReturnPointerInProtocol):
250 (tests.indexAnderDoesntTakeReferenceInProtocol):
251 (tests.indexAnderWithArrayRefInProtocol):
252 (tests.andReturnedArrayRef):
254 2017-10-02 Filip Pizlo <fpizlo@apple.com>
256 WSL should be fine with &foo()[i] if foo() returns a []
257 https://bugs.webkit.org/show_bug.cgi?id=177704
259 Reviewed by Saam Barati.
261 Previously, we'd determine if a property access expression (base.field or base[index]) was an lvalue by
262 asking if its base was an lvalue. This is right in all cases except if the base is of type []. Then, the
263 property access expression is an lvalue so long as there is a setter or ander.
265 This fixes the issue and adds a test.
267 Also, this makes error messages in the case that something is not an lvalue a lot better. If something
268 is not an lvalue because we could not find anders or setters, then we will tell you why we could not
271 * WebGPUShadingLanguageRI/Checker.js:
272 (Checker.prototype.visitAssignment):
273 (Checker.prototype.visitReadModifyWriteExpression):
274 (Checker.prototype.visitMakePtrExpression):
275 (Checker.prototype._finishVisitingPropertyAccess):
276 * WebGPUShadingLanguageRI/DotExpression.js:
277 (DotExpression.prototype.get fieldName):
278 (DotExpression.prototype.get isLValue): Deleted.
279 (DotExpression.prototype.get addressSpace): Deleted.
280 * WebGPUShadingLanguageRI/IndexExpression.js:
281 (IndexExpression.prototype.get index):
282 (IndexExpression.prototype.get isLValue): Deleted.
283 (IndexExpression.prototype.get addressSpace): Deleted.
284 * WebGPUShadingLanguageRI/PropertyAccessExpression.js:
285 (PropertyAccessExpression):
286 (PropertyAccessExpression.prototype.get isLValue):
287 (PropertyAccessExpression.prototype.set isLValue):
288 * WebGPUShadingLanguageRI/PropertyResolver.js:
289 (PropertyResolver.prototype._visitRValuesWithinLValue.RValueFinder.prototype.visitMakeArrayRefExpression):
290 (PropertyResolver.prototype._visitRValuesWithinLValue.RValueFinder):
291 (PropertyResolver.prototype._visitRValuesWithinLValue):
292 * WebGPUShadingLanguageRI/Test.js:
293 (tests.storeNullArrayRef):
294 (tests.andReturnedArrayRef):
296 2017-10-02 Wenson Hsieh <wenson_hsieh@apple.com>
298 Guard iOS webkitGetAsEntry API tests on older iOS versions
300 Unreviewed test gardening. After r222688, these tests require custom pasteboard data to be enabled by default,
301 so don't run them against shipping iOS.
303 * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
305 2017-10-02 Carlos Garcia Campos <cgarcia@igalia.com>
307 [WPE][GTK] Crash in webkit_web_resource_get_data_finish()
308 https://bugs.webkit.org/show_bug.cgi?id=177107
310 Reviewed by Michael Catanzaro.
312 Add a test case to check we handle errors when webkit_web_resource_get_data() fails.
314 * TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp:
315 (webViewloadChanged):
316 (testWebResourceGetDataError):
319 2017-10-02 Alex Christensen <achristensen@webkit.org>
321 Fix build after r222715
322 https://bugs.webkit.org/show_bug.cgi?id=177697
324 * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
326 Use the public API instead of the removed SPI.
328 2017-10-02 Alex Christensen <achristensen@webkit.org>
330 REGRESSION(r214201): WebProcess hangs during policy decisions
331 https://bugs.webkit.org/show_bug.cgi?id=177590
332 <rdar://problem/33362929>
334 Reviewed by Andy Estes.
336 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
337 * TestWebKitAPI/Tests/WebKitCocoa/JavaScriptDuringNavigation.mm: Added.
338 (-[JSNavigationDelegate webView:didFinishNavigation:]):
339 (-[JSNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
340 (-[JSNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
341 (-[JSNavigationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
344 2017-10-02 Jonathan Bedard <jbedard@apple.com>
346 Log stack-trace for run-webkit-tests when interrupted
347 https://bugs.webkit.org/show_bug.cgi?id=176393
348 <rdar://problem/34262310>
350 Reviewed by Darin Adler.
352 When run-webkit-tests is stuck, it is difficult to immediately tell
353 why. Saving a stack-trace when run-webkit-tests is terminated
354 or stopped with CNTRL-C will make such issues easier to debug.
356 * Scripts/webkitpy/common/interupt_debugging.py: Added.
357 (log_stack_trace): Given a Python frame object, log a stack trace to
359 (log_stack_trace_on_term): Attach a listener to SIGTERM so that a
360 stack-trace can be logged when a program is terminated.
361 (log_stack_trace_on_cntrl_c): Attach a listener to SIGINT so that a
362 stack-trace can be logged when a program is CNTRL-Ced.
363 * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
364 (main): Set handlers to log stack trace on interruption.
366 2017-10-02 Michael Catanzaro <mcatanzaro@igalia.com>
368 Remove ENABLE_CSS_REGIONS
369 https://bugs.webkit.org/show_bug.cgi?id=177689
371 Reviewed by Darin Adler.
373 * Scripts/webkitperl/FeatureList.pm:
375 2017-09-30 Carlos Garcia Campos <cgarcia@igalia.com>
377 Unreviewed. Upgrade webkitgtk-test-fonts to version 0.0.7.
379 This version upgrades liberation fonts to version 2, that has a wider glyph coverage.
381 * gtk/jhbuild.modules:
383 2017-09-29 Alex Christensen <achristensen@webkit.org>
385 Expose WebPreferences::webGLEnabled through WKPreferences
386 https://bugs.webkit.org/show_bug.cgi?id=177692
387 <rdar://problem/24110556>
389 Reviewed by Andy Estes.
391 * TestWebKitAPI/Tests/WebKitCocoa/Preferences.mm:
392 (-[AlertSaver alert]):
393 (-[AlertSaver webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
396 2017-09-29 Alex Christensen <achristensen@webkit.org>
398 Fix WKWebViewConfigurationPrivate after r222663
399 https://bugs.webkit.org/show_bug.cgi?id=177644
401 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
402 * TestWebKitAPI/Tests/WebKitCocoa/Configuration.mm: Added.
405 2017-09-28 Ryosuke Niwa <rniwa@webkit.org>
407 Image pasting is not working on tineye.com / gmail.com / GitHub.com due to lack of support for DataTransfer.items
408 https://bugs.webkit.org/show_bug.cgi?id=170449
409 <rdar://problem/31432525>
411 Reviewed by Wenson Hsieh.
413 Added an API test to paste an image from pasteboard. The test is shared between iOS and macOS.
415 The tests to paste image files are only enabled on macOS since putting files into pasteboard isn't a thing on iOS.
417 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
418 * TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm: Added.
419 (writeImageDataToPasteboard):
420 (writeBundleFileToPasteboard):
421 * TestWebKitAPI/Tests/WebKitCocoa/paste-image.html: Added.
422 * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-100px.tiff: Added.
423 * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-200px.png: Added.
424 * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-400px.gif: Added.
425 * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-600px.jpg: Added.
426 * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: Rebaselined the test now that types contain "Files".
428 2017-09-29 Wenson Hsieh <wenson_hsieh@apple.com>
430 [iOS WK2] Implement -[WKContentView hasText] for compatibility with the UITextInput protocol
431 https://bugs.webkit.org/show_bug.cgi?id=177662
432 <rdar://problem/33410373>
434 Reviewed by Tim Horton.
436 Add EditorState API tests to check that the value of -[WKContentView hasText] is correct when editing both plain
439 * TestWebKitAPI/EditingTestHarness.h:
440 * TestWebKitAPI/EditingTestHarness.mm:
441 (-[EditingTestHarness insertParagraph]):
442 (-[EditingTestHarness insertText:]):
443 (-[EditingTestHarness insertHTML:]):
444 (-[EditingTestHarness selectAll]):
445 (-[EditingTestHarness deleteBackwards]):
446 * TestWebKitAPI/Tests/WebKitCocoa/EditorStateTests.mm:
448 Add versions of EditingTestHarness helpers that don't require us to expect any editor state after executing the
451 (TestWebKitAPI::checkContentViewHasTextWithFailureDescription):
452 (TestWebKitAPI::TEST):
453 * TestWebKitAPI/cocoa/TestWKWebView.h:
454 * TestWebKitAPI/cocoa/TestWKWebView.mm:
455 (-[TestWKWebView textInputContentView]):
457 2017-09-29 Charles Turner <cturner@igalia.com>
463 * Scripts/webkitpy/common/config/contributors.json:
465 2017-09-28 Commit Queue <commit-queue@webkit.org>
467 Unreviewed, rolling out r222639.
468 https://bugs.webkit.org/show_bug.cgi?id=177630
470 Breaks AppleWin build (Requested by dolmstead on #webkit).
474 "[WinCairo][MiniBrowser] Add ca-bundle to display secure
476 https://bugs.webkit.org/show_bug.cgi?id=168486
477 http://trac.webkit.org/changeset/222639
479 2017-09-28 Joanmarie Diggs <jdiggs@igalia.com>
481 AX: [ATK] object:state-changed notifications missing for multiple ARIA attributes
482 https://bugs.webkit.org/show_bug.cgi?id=177542
484 Add platform support for the notifications. Also add support for getting the
485 boolean argument indicating whether the state has been set or unset.
487 Reviewed by Chris Fleizach.
489 * WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp:
491 2017-09-28 Basuke Suzuki <Basuke.Suzuki@sony.com>
493 [WinCairo][MiniBrowser] Add ca-bundle to display secure pages.
494 Copy cacert.pem file into bundle directory.
495 https://bugs.webkit.org/show_bug.cgi?id=168486
497 Reviewed by Brent Fulgham.
499 * MiniBrowser/win/CMakeLists.txt:
501 2017-09-28 Lucas Forschler <lforschler@apple.com>
503 check in AWS Lambda code used for WebKitArchiveSupport
504 https://bugs.webkit.org/show_bug.cgi?id=177614
506 Rubber-stamped by Alexey Proskuryakov.
508 * WebKitArchiveSupport/lambda: Added.
509 * WebKitArchiveSupport/lambda/delete-minified-s3-archive-from-dynamodb.py: Added.
511 * WebKitArchiveSupport/lambda/delete-s3-archive-from-dynamodb.py: Added.
513 * WebKitArchiveSupport/lambda/register-archive-in-dynamodb.py: Added.
515 * WebKitArchiveSupport/lambda/register-minified-s3-archive-in-dynamodb.py: Added.
518 2017-09-28 Jiewen Tan <jiewen_tan@apple.com>
520 WeakPtrFactory should allow downcasting
521 https://bugs.webkit.org/show_bug.cgi?id=177389
522 <rdar://problem/34604174>
524 Reviewed by Geoffrey Garen.
526 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
527 * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
528 (TestWebKitAPI::Base::foo):
529 (TestWebKitAPI::Base::createWeakPtr):
530 (TestWebKitAPI::Derived::foo):
531 (TestWebKitAPI::TEST):
533 2017-09-28 Megan Gardner <megan_gardner@apple.com>
535 Add debug flag to WebKitTestRunner to show where touches are being generated
536 https://bugs.webkit.org/show_bug.cgi?id=177583
538 Reviewed by Tim Horton and Wenson Hsieh.
540 Add a flag, and the ability to paint a dot where the HIDEventGenerator is creating fake touches to
541 send through UIKit. This will help in debugging touch tests, because it will be easier to see if
542 one is actually sending the touches at the locations that they expect. This will help differentiate between
543 problems in the locations of the touches, and other problems that can come up when writing tests.
545 * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
547 * Scripts/webkitpy/port/driver.py:
549 * WebKitTestRunner/Options.cpp:
550 (WTR::Options::Options):
551 (WTR::handleOptionShowTouches):
552 (WTR::OptionsHandler::OptionsHandler):
553 * WebKitTestRunner/Options.h:
554 * WebKitTestRunner/TestController.cpp:
555 (WTR::TestController::initialize):
556 * WebKitTestRunner/TestController.h:
557 (WTR::TestController::shouldShowTouches const):
558 * WebKitTestRunner/TestOptions.h:
559 * WebKitTestRunner/ios/HIDEventGenerator.h:
560 * WebKitTestRunner/ios/HIDEventGenerator.mm:
561 (-[DebugTouchView pointInside:withEvent:]):
562 (-[HIDEventGenerator setShouldShowTouches:]):
563 (-[HIDEventGenerator initDebugViews]):
564 (-[HIDEventGenerator updateDebugUI:withPoint:isTouching:]):
565 (-[HIDEventGenerator _createIOHIDEventWithInfo:]):
566 (-[HIDEventGenerator _createIOHIDEventType:]):
567 (-[HIDEventGenerator _updateTouchPoints:count:]):
568 (-[HIDEventGenerator touchDownAtPoints:touchCount:]):
569 (-[HIDEventGenerator liftUpAtPoints:touchCount:]):
570 (-[HIDEventGenerator moveToPoints:touchCount:duration:]):
571 (-[HIDEventGenerator markerEventReceived:]):
572 * WebKitTestRunner/ios/TestControllerIOS.mm:
573 (WTR::TestController::updatePlatformSpecificTestOptionsForTest const):
574 * WebKitTestRunner/ios/mainIOS.mm:
575 (-[WebKitTestRunnerApp _runTestController]):
577 2017-09-28 Mark Lam <mark.lam@apple.com>
579 [Re-landing] Turn on exception scope verification for JSC tests.
580 https://bugs.webkit.org/show_bug.cgi?id=162351
581 <rdar://problem/29563911>
583 Reviewed by Saam Barati.
585 Update: I'm re-landing this patch now that test262 exception check validation
586 failures have been fixed in r222617. testapi still has some validation failures,
587 but this patch does not affect testapi.
589 Added the option to --validateExceptionChecks=true option to BASE_OPTIONS in
590 run-jsc-stress-tests. This turns on exception scope verification on JSC test
591 runs (which currently does not include testapi).
593 Some stats on time to run JSC stress and mozilla tests:
594 1. Release build w/o --validateExceptionChecks=true: real 16m22.544s, user 156m24.080s, sys 123m3.649s
595 2. Debug build w/o --validateExceptionChecks=true: real 78m34.206s, user 1661m57.008s, sys 73m21.177s
596 3. Debug build w/ --validateExceptionChecks=true: real 77m41.106s, user 1656m13.924s, sys 73m42.309s
597 4. Debug build w/ --validateExceptionChecks=true --dumpSimulatedThrows=true: real 92m56.918s, user 2012m56.441s, sys 75m14.174s
599 The stats shows that (2) and (3) has effectively no time difference. Hence, the
600 cost of enabling --validateExceptionChecks=true is not significant.
602 It would be nice to enable --dumpSimulatedThrows=true as well, but (4) is about
603 21% slower than (3). To avoid making debug test runs a lot slower, we'll leave
604 --dumpSimulatedThrows=true off. We can manually add that when we see a regression
605 and need to debug the issue. Otherwise, we wont pay the price for it.
607 * Scripts/run-jsc-stress-tests:
609 2017-09-27 Alex Christensen <achristensen@webkit.org>
611 Add WKContentRuleList notify action type
612 https://bugs.webkit.org/show_bug.cgi?id=177013
613 <rdar://problem/31073936>
615 Reviewed by Darin Adler.
617 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
618 * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
619 (WebCore::ContentExtensions::operator<<):
620 (TestWebKitAPI::InMemoryCompiledContentExtension::create):
621 (TestWebKitAPI::InMemoryCompiledContentExtension::data):
622 (TestWebKitAPI::InMemoryCompiledContentExtension::InMemoryCompiledContentExtension):
623 (TestWebKitAPI::makeBackend):
624 (TestWebKitAPI::TEST_F):
625 (TestWebKitAPI::actionsEqual):
626 (TestWebKitAPI::sequenceInstances):
627 (TestWebKitAPI::InMemoryCompiledContentExtension::createFromFilter): Deleted.
628 (TestWebKitAPI::InMemoryCompiledContentExtension::~InMemoryCompiledContentExtension): Deleted.
629 * TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm: Added.
630 (-[ContentRuleListNotificationDelegate _webView:URL:contentRuleListIdentifiers:notifications:]):
631 (-[ContentRuleListNotificationDelegate webView:startURLSchemeTask:]):
632 (-[ContentRuleListNotificationDelegate webView:stopURLSchemeTask:]):
633 (-[ContentRuleListNotificationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
634 (makeWarnContentRuleList):
637 2017-09-27 Wenson Hsieh <wenson_hsieh@apple.com>
639 Drag event DataTransfer has unexpected types "dyn.ah62d4..."
640 https://bugs.webkit.org/show_bug.cgi?id=172526
641 <rdar://problem/32396081>
643 Reviewed by Ryosuke Niwa.
645 Adds new API tests on iOS to cover various cases of using DataTransfer.setData, DataTransfer.getData, and
646 DataTransfer.types, as well as their interaction with platform objects (source NSItemProviders in the case of
647 drag and drop, and the general UIPasteboard for copy and paste).
649 * TestWebKitAPI/PlatformUtilities.h:
650 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
651 * TestWebKitAPI/Tests/WebKitCocoa/dump-datatransfer-types.html: Added.
653 Introduce a new API test harness that both drag-and-drop and copy-and-paste tests use to dump DataTransfer's
654 web-exposed types and values.
656 * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
657 (checkFirstTypeIsPresentAndSecondTypeIsMissing):
658 (checkJSONWithLogging):
659 (TestWebKitAPI::TEST):
660 (checkTypeIdentifierAndIsNotOtherTypeIdentifier): Deleted.
661 * TestWebKitAPI/Tests/ios/UIPasteboardTests.mm:
662 (TestWebKitAPI::checkJSONWithLogging):
663 (TestWebKitAPI::setUpWebViewForPasteboardTests):
664 (TestWebKitAPI::TEST):
665 * TestWebKitAPI/cocoa/PlatformUtilitiesCocoa.mm:
666 (TestWebKitAPI::Util::jsonMatchesExpectedValues):
668 2017-09-27 Lucas Forschler <lforschler@apple.com>
670 Add macOS High Sierra and iOS Simulator 11 support to bisect-builds.
671 https://bugs.webkit.org/show_bug.cgi?id=177578
673 Reviewed by Alexey Proskuryakov.
675 * Scripts/bisect-builds:
676 (minified_platforms):
677 (unminified_platforms):
679 2017-09-27 Ryan Haddad <ryanhaddad@apple.com>
681 Update TestResultsServer for High Sierra queues.
682 https://bugs.webkit.org/show_bug.cgi?id=177500
684 Reviewed by Alexey Proskuryakov.
686 * TestResultServer/static-dashboards/builders.jsonp:
688 2017-09-27 Lucas Forschler <lforschler@apple.com>
690 bisect-builds:add a README to the archive.
691 https://bugs.webkit.org/show_bug.cgi?id=177376
693 Reviewed by Alexey Proskuryakov & Jon Davis.
695 * BuildSlaveSupport/built-product-archive:
696 (addFilesToArchive): refactor function (was previously addLauncherToArchive)
697 (createZip): Teach function to add the README
698 (addLauncherToArchive): Deleted. (refactored to addFilesToArchive)
699 * BuildSlaveSupport/run-webkit-archive: Deleted. (Moved to WebKitArchiveSupport)
700 * WebKitArchiveSupport: Added.
701 * WebKitArchiveSupport/README: Added. README which will be packaged up with the archive.
702 * WebKitArchiveSupport/run-webkit-archive: Added. (Moved from BuildSlaveSupport)
704 2017-09-26 Tim Horton <timothy_horton@apple.com>
706 Mac CMake bot should provide verbose build output
707 https://bugs.webkit.org/show_bug.cgi?id=177512
709 Reviewed by Alexey Proskuryakov.
711 * BuildSlaveSupport/build.webkit.org-config/config.json:
712 It's hard to diagnose weird bot-only build problems without the
713 full verbose build output, so turn that on. The Xcode builders
714 do it too, so why not CMake!
716 2017-09-26 Tim Horton <timothy_horton@apple.com>
718 Make it possible to easily get verbose ninja output from build-webkit
719 https://bugs.webkit.org/show_bug.cgi?id=177511
721 Reviewed by Sam Weinig.
723 * Scripts/build-webkit:
724 Add a -v/--verbose argument to build-webkit, which sets the environment
725 variable VERBOSE=1, which buildCMakeGeneratedProject already checks.
727 * Scripts/webkitdirs.pm:
728 (buildCMakeGeneratedProject):
729 Add ninja verbosity arguments to @makeArgs, which are appended
730 after the -- and thus handed to ninja; the previous implementation
731 (appending to @args) would only work if @makeArgs was non-empty and thus
734 2017-09-26 Said Abou-Hallawa <sabouhallawa@apple.com>
736 Followup (r222427): SynchronizedFixedQueue should not have a public constructor
737 https://bugs.webkit.org/show_bug.cgi?id=177458
739 Reviewed by Tim Horton.
741 Fix the definition and the creation of SynchronizedFixedQueue.
743 * TestWebKitAPI/Tests/WTF/SynchronizedFixedQueue.cpp:
744 (TestWebKitAPI::ToUpperConverter::ToUpperConverter):
745 (TestWebKitAPI::ToUpperConverter::startProducing):
746 (TestWebKitAPI::ToUpperConverter::startConsuming):
747 (TestWebKitAPI::ToUpperConverter::stopProducing):
748 (TestWebKitAPI::ToUpperConverter::stopConsuming):
749 (TestWebKitAPI::ToUpperConverter::enqueueLower):
751 2017-09-26 Wenson Hsieh <wenson_hsieh@apple.com>
753 [ios-simulator] API test DataInteractionTests.ExternalSourceDataTransferItemGetFolderAsEntry is failing
754 https://bugs.webkit.org/show_bug.cgi?id=177271
756 Reviewed by Tim Horton and Megan Gardner.
758 Rebaseline a failing API test.
760 * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
761 (TestWebKitAPI::TEST):
763 2017-09-26 Per Arne Vollan <pvollan@apple.com>
765 Set LF eol-style on Windows shell script, because the script failed on one of the EWS
766 bots, when it had the 'native' style.
768 Unreviewed Windows EWS fix.
770 * EWSTools/start-queue-win.sh: Modified property svn:eol-style.
772 2017-09-26 Jonathan Bedard <jbedard@apple.com>
774 webkitpy: Notify parent process when a worker is spawned
775 https://bugs.webkit.org/show_bug.cgi?id=177467
776 <rdar://problem/34660194>
778 Reviewed by Daniel Bates.
780 When we fork the parent process, there may be resources in that process
781 which workers will take ownership of. Notify ports when a new worker is created
782 so that these resources can be correctly managed.
784 * Scripts/webkitpy/common/message_pool.py:
785 (_MessagePool._start_workers): After all workers are started, notify the caller
786 that a worker has been created, unless we are running inline, in which case the
787 parent process is still the worker.
788 * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
789 (LayoutTestRunner._handle_did_spawn_worker): Notify the port that a worker process
791 * Scripts/webkitpy/port/base.py:
792 (Port.did_spawn_worker): Add function so that ports may manage any
793 resources created on the parent process but managed by the provided worker.
794 * Scripts/webkitpy/port/device.py:
795 (Device.release_worker_resources): Call release_worker_resources on the
796 platform_device if such a function is defined.
797 * Scripts/webkitpy/port/ios.py:
798 (IOSPort.did_spawn_worker): Release any worker resources on the iOS
799 device object associated with the spawned worker.
800 * Scripts/webkitpy/test/runner.py:
801 (Runner.handle): Ignore the did_spawn_worker message during testing.
803 2017-09-26 Jer Noble <jer.noble@apple.com>
805 Thrown ObjC exception when right clicking on <img> containing mp4 link
806 https://bugs.webkit.org/show_bug.cgi?id=177370
808 Reviewed by Darin Adler.
810 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
811 * TestWebKitAPI/Tests/WebKit/mac/ContextMenuImgWithVideo.html: Added.
812 * TestWebKitAPI/Tests/WebKit/mac/ContextMenuImgWithVideo.mm: Added.
813 (-[ContextMenuImgWithVideoDelegate _webView:contextMenu:forElement:]):
814 (TestWebKitAPI::TEST):
816 2017-09-26 Per Arne Vollan <pvollan@apple.com>
818 [Win] 'webkit-patch clean' is failing on bot.
819 https://bugs.webkit.org/show_bug.cgi?id=177488
821 Reviewed by Brent Fulgham.
823 If 'os.remove' throws an exception, catch it.
825 * Scripts/webkitpy/common/checkout/scm/svn.py:
826 (SVN.discard_working_directory_changes):
828 2017-09-25 Frederik Riedel <riedel@apple.com>
830 Expose way to set values of classified form controls as {Legacy WebKit, WebKit} SPI
831 https://bugs.webkit.org/show_bug.cgi?id=174394
832 <rdar://problem/33183504>
834 Reviewed by Ryosuke Niwa.
836 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
837 * TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm: Added.
838 (-[WKWebView _privateTextInput]): Testing helpers.
839 (TestWebKitAPI::TEST): Added test cases to test AutoFill for web views.
840 * TestWebKitAPI/ios/UIKitSPI.h:
842 2017-09-25 Frederic Wang <fwang@igalia.com>
844 Change my status to reviewer and reformat with validate-committer-lists
848 * Scripts/webkitpy/common/config/contributors.json:
850 2017-09-25 Ryan Haddad <ryanhaddad@apple.com>
852 Add High Sierra bots to buildbot and dashboard.
853 https://bugs.webkit.org/show_bug.cgi?id=177437
855 Reviewed by Alexey Proskuryakov.
857 * BuildSlaveSupport/build.webkit.org-config/config.json: Add High Sierra queues, move Leaks and JSC queues over from Sierra.
858 * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: Update expected results.
859 * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js: Add High Sierra.
862 2017-09-25 Chris Dumez <cdumez@apple.com>
864 [WK2] Add API to query if a download was user-initiated
865 https://bugs.webkit.org/show_bug.cgi?id=177435
866 <rdar://problem/34498422>
868 Reviewed by Alex Christensen.
870 Add API test coverage.
872 * TestWebKitAPI/Tests/WebKit/mac/ContextMenuDownload.mm:
873 (TestWebKitAPI::decideDestinationWithSuggestedFilename):
874 * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
875 (-[DownloadDelegate _downloadDidStart:]):
876 (-[DownloadDelegate _downloadDidFinish:]):
879 (-[BlobDownloadDelegate _downloadDidStart:]):
880 (-[BlobDownloadDelegate _downloadDidFinish:]):
881 (-[RedirectedDownloadDelegate _downloadDidStart:]):
882 (-[RedirectedDownloadDelegate _downloadDidFinish:]):
884 2017-09-25 Commit Queue <commit-queue@webkit.org>
886 Unreviewed, rolling out r222455.
887 https://bugs.webkit.org/show_bug.cgi?id=177460
889 broke iOS build (Requested by alexchristensen on #webkit).
893 "Add WKContentRuleList notify action type"
894 https://bugs.webkit.org/show_bug.cgi?id=177013
895 http://trac.webkit.org/changeset/222455
897 2017-09-25 Per Arne Vollan <pvollan@apple.com>
899 [Win] run-api-tests is failing.
900 https://bugs.webkit.org/show_bug.cgi?id=177454
902 Reviewed by Brent Fulgham.
904 TestWebKit.exe has changed name to TestWebKitLegacy.exe.
906 * Scripts/run-api-tests:
909 2017-09-25 Per Arne Vollan <pvollan@apple.com>
911 [Win] Cygwin 64-bit EWS process cannot find Visual Studio installation.
912 https://bugs.webkit.org/show_bug.cgi?id=177244
914 Reviewed by Alex Christensen.
916 The 64-bit EWS shell process should try to find Visual Studio in the 32-bit program files folder.
918 * EWSTools/start-queue-win.sh:
920 2017-09-25 Alex Christensen <achristensen@webkit.org>
922 Add WKContentRuleList notify action type
923 https://bugs.webkit.org/show_bug.cgi?id=177013
924 <rdar://problem/31073936>
926 Reviewed by Darin Adler.
928 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
929 * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
930 (WebCore::ContentExtensions::operator<<):
931 (TestWebKitAPI::InMemoryCompiledContentExtension::create):
932 (TestWebKitAPI::InMemoryCompiledContentExtension::data):
933 (TestWebKitAPI::InMemoryCompiledContentExtension::InMemoryCompiledContentExtension):
934 (TestWebKitAPI::makeBackend):
935 (TestWebKitAPI::TEST_F):
936 (TestWebKitAPI::actionsEqual):
937 (TestWebKitAPI::sequenceInstances):
938 (TestWebKitAPI::InMemoryCompiledContentExtension::createFromFilter): Deleted.
939 (TestWebKitAPI::InMemoryCompiledContentExtension::~InMemoryCompiledContentExtension): Deleted.
940 * TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm: Added.
941 (-[ContentRuleListNotificationDelegate _webView:URL:contentRuleListIdentifiers:notifications:]):
942 (-[ContentRuleListNotificationDelegate webView:startURLSchemeTask:]):
943 (-[ContentRuleListNotificationDelegate webView:stopURLSchemeTask:]):
944 (-[ContentRuleListNotificationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
945 (makeWarnContentRuleList):
948 2017-09-25 Carlos Alberto Lopez Perez <clopez@igalia.com>
950 REGRESSION(r222160) [GTK] [Debug] Internal compiler error on the buildbot (huge memory usage by GCC)
951 https://bugs.webkit.org/show_bug.cgi?id=177223
953 Reviewed by Carlos Garcia Campos.
955 When the user environment sets the variable NUMBER_OF_PROCESSORS
956 this should be passed down to the build system (ninja or make) always.
958 Playing with the number of this variable is needed when using icecc
959 (as you usually want to launch more parallel build process than your
960 number of cores), or when you want to limit the number of parallel
961 build process for hardware capacity reasons.
963 * Scripts/build-webkit:
965 2017-09-24 Fujii Hironori <Hironori.Fujii@sony.com>
967 [GTK] Incremental builds fail every time Web Inspector icons are removed
968 https://bugs.webkit.org/show_bug.cgi?id=177349
970 Reviewed by Carlos Garcia Campos.
972 Removing GTK WebInspector image files always breaks the GTK and
973 WPE ports incremental builds.
975 * Scripts/webkitdirs.pm:
976 (shouldRemoveCMakeCache): Check the timestamp of
977 Source/WebInspectorUI/UserInterface/Images/gtk directory if
980 2017-09-24 Joanmarie Diggs <jdiggs@igalia.com>
982 [ATK] Object attributes are missing for ARIA live region roles
983 https://bugs.webkit.org/show_bug.cgi?id=171174
985 Reviewed by Chris Fleizach.
987 Add support for testing property values for AXARIALive, AXARIAAtomic, and
988 AXARIARelevant. Also add handling for testing whether AXElementBusy is
989 "supported" (in ATK, busy is a state and is supported on all elements
990 regardless of whether the state is present or absent from the state set).
992 * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
993 (WTR::AccessibilityUIElement::boolAttributeValue):
994 (WTR::AccessibilityUIElement::isAttributeSupported):
996 2017-09-23 Michael Catanzaro <mcatanzaro@igalia.com>
998 Unreviewed Mac CMake build fixup after r222194
1000 * DumpRenderTree/PlatformMac.cmake:
1002 2017-09-22 Zalan Bujtas <zalan@apple.com>
1004 WeakPtrFactory should populate m_ref lazily.
1005 https://bugs.webkit.org/show_bug.cgi?id=177375
1007 Reviewed by Geoffrey Garen.
1009 * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
1010 (TestWebKitAPI::TEST):
1012 2017-09-22 Filip Pizlo <fpizlo@apple.com>
1014 WSL should report an error if you try to create an operator overload that will never be called
1015 https://bugs.webkit.org/show_bug.cgi?id=177092
1017 Reviewed by JF Bastien.
1019 This adds all kinds of checks to ensure that your operator overloads make sense. This adds all
1020 kinds of tests for those checks.
1022 In the process of writing those tests, I hit an awesome bug: function instantiation was
1023 instantiating all types, which meant that if that instantiated function needed to resolve calls
1024 to protocol functions, we'd fail because we would have cloned top-level struct types. We need
1025 to preserve the uninstantiated argument types, type arguments, and return type (for casts) in
1026 order to be able to resolve protocol calls. But we also need the instantiated version of the
1027 type arguments for execution. So, this adds some more stuff to the CallExpression class.
1029 * WebGPUShadingLanguageRI/All.js:
1030 * WebGPUShadingLanguageRI/ArrayRefType.js:
1031 (ArrayRefType.prototype.unifyImpl):
1032 * WebGPUShadingLanguageRI/ArrayType.js:
1033 (ArrayType.prototype.get isArray):
1034 * WebGPUShadingLanguageRI/CallExpression.js:
1035 (CallExpression.resolve):
1036 (CallExpression.prototype.resolve):
1037 (CallExpression.prototype.resolveToOverload):
1038 * WebGPUShadingLanguageRI/Checker.js:
1039 (Checker.prototype._checkOperatorOverload):
1040 (Checker.prototype.visitFuncDef):
1041 (Checker.prototype.visitProtocolDecl):
1042 (Checker.prototype.visitMakeArrayRefExpression):
1043 * WebGPUShadingLanguageRI/EBufferBuilder.js:
1044 (EBufferBuilder.prototype._createEPtr):
1045 * WebGPUShadingLanguageRI/EPtr.js:
1047 * WebGPUShadingLanguageRI/Evaluator.js:
1048 (Evaluator.prototype._snapshot):
1049 (Evaluator.prototype._runBody):
1050 (Evaluator.prototype.visitFunctionLikeBlock):
1051 (Evaluator.prototype.visitCallExpression):
1053 (Evaluator.prototype.runFunc): Deleted.
1054 * WebGPUShadingLanguageRI/ExternalOrigin.js: Added.
1055 * WebGPUShadingLanguageRI/Func.js:
1056 (Func.prototype.toDeclString):
1057 * WebGPUShadingLanguageRI/FuncInstantiator.js:
1058 (FuncInstantiator.prototype.getUnique.InstantiationSubstitution.prototype.visitCallExpression):
1059 (FuncInstantiator.prototype.getUnique.InstantiationSubstitution):
1060 (FuncInstantiator.prototype.getUnique.InstantiationInstantiateImmediates.prototype.visitCallExpression):
1061 (FuncInstantiator.prototype.getUnique.InstantiationInstantiateImmediates):
1062 (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitFuncDef):
1063 * WebGPUShadingLanguageRI/Intrinsics.js:
1065 * WebGPUShadingLanguageRI/LateChecker.js:
1066 (LateChecker.prototype.visitReferenceType):
1067 (LateChecker.prototype._checkShaderType):
1068 * WebGPUShadingLanguageRI/Lexer.js:
1069 (Lexer._textIsIdentifierImpl):
1070 (Lexer.textIsIdentifier):
1071 (Lexer.prototype.next):
1073 * WebGPUShadingLanguageRI/NameResolver.js:
1074 (NameResolver.prototype.visitProtocolDecl):
1075 * WebGPUShadingLanguageRI/Parse.js:
1076 (parseType.getAddressSpace):
1078 * WebGPUShadingLanguageRI/Prepare.js:
1080 * WebGPUShadingLanguageRI/PtrType.js:
1081 (PtrType.prototype.unifyImpl):
1082 * WebGPUShadingLanguageRI/ReferenceType.js:
1084 * WebGPUShadingLanguageRI/Rewriter.js:
1085 (Rewriter.prototype.visitReferenceType):
1086 (Rewriter.prototype.processDerivedCallData):
1087 * WebGPUShadingLanguageRI/StandardLibrary.js:
1089 * WebGPUShadingLanguageRI/StatementCloner.js:
1090 (StatementCloner.prototype.visitFuncDef):
1091 * WebGPUShadingLanguageRI/StructLayoutBuilder.js:
1092 (StructLayoutBuilder.prototype.visitCallExpression):
1093 (StructLayoutBuilder):
1094 * WebGPUShadingLanguageRI/Substitution.js:
1095 (Substitution.prototype.visitTypeRef):
1096 * WebGPUShadingLanguageRI/Test.html:
1097 * WebGPUShadingLanguageRI/Test.js:
1100 (tests.literalBool):
1101 (tests.identityBool):
1102 (tests.intSimpleMath):
1103 (tests.uintSimpleMath):
1104 (tests.uint8SimpleMath):
1106 (tests.logicalNegation):
1107 (tests.notEquality):
1108 (tests.equalityTypeFailure):
1109 (tests.generalNegation):
1111 (tests.simpleGeneric):
1112 (tests.nameResolutionFailure):
1113 (tests.simpleVariable):
1114 (tests.simpleAssignment):
1115 (tests.simpleDefault):
1116 (tests.simpleDereference):
1117 (tests.dereferenceStore):
1118 (tests.simpleMakePtr):
1119 (tests.threadArrayLoad):
1120 (tests.threadArrayLoadIntLiteral):
1121 (tests.deviceArrayLoad):
1122 (tests.threadArrayStore):
1123 (tests.deviceArrayStore):
1124 (tests.deviceArrayStoreIntLiteral):
1125 (tests.simpleProtocol):
1126 (tests.typeMismatchReturn):
1127 (tests.typeMismatchVariableDecl):
1128 (tests.typeMismatchAssignment):
1129 (tests.typeMismatchReturnParam):
1131 (tests.lexerKeyword):
1132 (tests.simpleNoReturn):
1133 (tests.simpleUnreachableCode):
1134 (tests.simpleStruct):
1135 (tests.genericStructInstance):
1136 (tests.doubleGenericCallsDoubleGeneric):
1137 (tests.doubleGenericCallsSingleGeneric):
1141 (tests.dereferenceDefaultNull):
1142 (tests.defaultInitializedNull):
1143 (tests.passNullToPtrMonomorphic):
1144 (tests.passNullToPtrPolymorphic):
1145 (tests.passNullToPolymorphic):
1146 (tests.loadNullArrayRef):
1147 (tests.storeNullArrayRef):
1148 (tests.returnNullArrayRef):
1149 (tests.dereferenceDefaultNullArrayRef):
1150 (tests.defaultInitializedNullArrayRef):
1151 (tests.defaultInitializedNullArrayRefIntLiteral):
1152 (tests.passNullToPtrMonomorphicArrayRef):
1153 (tests.passNullToPtrPolymorphicArrayRef):
1154 (tests.returnIntLiteralUint):
1155 (tests.returnIntLiteralDouble):
1156 (tests.badIntLiteralForInt):
1157 (tests.badIntLiteralForUint):
1158 (tests.badIntLiteralForDouble):
1159 (tests.passNullAndNotNull):
1160 (tests.passNullAndNotNullFullPoly):
1161 (tests.passNullAndNotNullFullPolyReverse):
1162 (tests.nullTypeVariableUnify):
1164 (tests.simpleRecursion):
1165 (tests.protocolMonoSigPolyDef):
1166 (tests.protocolPolySigPolyDef):
1167 (tests.protocolDoublePolySigDoublePolyDef):
1168 (tests.protocolDoublePolySigDoublePolyDefExplicit):
1169 (tests.variableShadowing):
1170 (tests.ifStatement):
1171 (tests.ifElseStatement):
1172 (tests.ifElseIfStatement):
1173 (tests.ifElseIfElseStatement):
1175 (tests.simpleWhile):
1176 (tests.protocolMonoPolySigDoublePolyDefExplicit):
1177 (tests.ambiguousOverloadSimple):
1178 (tests.ambiguousOverloadOverlapping):
1179 (tests.ambiguousOverloadTieBreak):
1180 (tests.intOverloadResolution):
1181 (tests.intOverloadResolutionReverseOrder):
1182 (tests.intOverloadResolutionGeneric):
1183 (tests.intLiteralGeneric):
1184 (tests.intLiteralGenericWithProtocols):
1185 (tests.uintLiteralGeneric):
1186 (tests.uintLiteralGenericWithProtocols):
1187 (tests.intLiteralGenericSpecific):
1188 (tests.simpleConstexpr):
1193 (tests.chainConstexpr):
1194 (tests.chainGeneric):
1195 (tests.chainStruct):
1196 (tests.chainStructNewlyValid):
1197 (tests.chainStructDevice):
1198 (tests.paramChainStructDevice):
1199 (tests.simpleProtocolExtends):
1200 (tests.protocolExtendsTwo):
1201 (tests.prefixPlusPlus):
1202 (tests.prefixPlusPlusResult):
1203 (tests.postfixPlusPlus):
1204 (tests.postfixPlusPlusResult):
1205 (tests.prefixMinusMinus):
1206 (tests.prefixMinusMinusResult):
1207 (tests.postfixMinusMinus):
1208 (tests.postfixMinusMinusResult):
1210 (tests.plusEqualsResult):
1211 (tests.minusEquals):
1212 (tests.minusEqualsResult):
1213 (tests.timesEquals):
1214 (tests.timesEqualsResult):
1215 (tests.divideEquals):
1216 (tests.divideEqualsResult):
1217 (tests.twoIntLiterals):
1218 (tests.unifyDifferentLiterals):
1219 (tests.unifyDifferentLiteralsBackwards):
1220 (tests.unifyVeryDifferentLiterals):
1221 (tests.unifyVeryDifferentLiteralsBackwards):
1222 (tests.assignUintToInt):
1223 (tests.buildArrayThenSumIt):
1224 (tests.buildArrayThenSumItUsingArrayReference):
1225 (tests.overrideSubscriptStruct):
1226 (tests.overrideSubscriptStructAndDoStores):
1227 (tests.overrideSubscriptStructAndUsePointers):
1228 (tests.overrideSubscriptStructAndUsePointersIncorrectly):
1229 (tests.makeArrayRefFromLocal):
1230 (tests.makeArrayRefFromPointer):
1231 (tests.makeArrayRefFromArrayRef):
1232 (tests.simpleLength):
1233 (tests.nonArrayRefArrayLengthSucceed):
1234 (tests.nonArrayRefArrayLengthFail):
1235 (tests.constexprIsNotLValuePtr):
1236 (tests.constexprIsNotLValueAssign):
1237 (tests.constexprIsNotLValueRMW):
1238 (tests.assignLength):
1239 (tests.assignLengthHelper):
1240 (tests.simpleGetter):
1241 (tests.simpleSetter):
1242 (tests.genericAccessors):
1243 (tests.bitSubscriptAccessor):
1244 (tests.nestedSubscriptLValueEmulationSimple):
1245 (tests.nestedSubscriptLValueEmulationGeneric):
1262 (tests.uint8BitAnd):
1264 (tests.uint8BitXor):
1265 (tests.uint8BitNot):
1266 (tests.uint8LShift):
1267 (tests.uint8RShift):
1269 (tests.genericCastInfer):
1270 (tests.booleanMath):
1271 (tests.typedefArray):
1272 (tests.shaderTypes):
1273 (tests.builtinVectors):
1274 (tests.instantiateStructInStruct):
1275 (tests.instantiateStructInStructWithInt2):
1277 (tests.enumWithManualValues):
1278 (tests.enumWithoutZero):
1279 (tests.enumDuplicates):
1280 (tests.enumWithSomeManualValues):
1281 (tests.enumConstexprGenericFunction):
1282 (tests.enumConstexprGenericStruct):
1285 (tests.enumWithExplicitIntBase):
1286 (tests.enumWithUintBase):
1287 (tests.enumFloatBase):
1288 (tests.enumPtrBase):
1289 (tests.enumArrayRefBase):
1290 (tests.emptyStruct):
1291 (tests.enumStructBase):
1292 (tests.enumNoMembers):
1293 (tests.simpleSwitch):
1294 (tests.exhaustiveUint8Switch):
1295 (tests.notQuiteExhaustiveUint8Switch):
1296 (tests.notQuiteExhaustiveUint8SwitchWithDefault):
1297 (tests.switchFallThrough):
1298 (tests.switchBreak):
1299 (tests.enumSwitchBreakExhaustive):
1300 (tests.enumSwitchBreakNotQuiteExhaustive):
1301 (tests.enumSwitchBreakNotQuiteExhaustiveWithDefault):
1302 (tests.simpleRecursiveStruct):
1303 (tests.mutuallyRecursiveStruct):
1304 (tests.mutuallyRecursiveStructWithPointersBroken):
1305 (tests.mutuallyRecursiveStructWithPointers):
1307 (tests.pointerToPointer):
1308 (tests.arrayRefToArrayRef):
1309 (tests.pointerGetter):
1311 (tests.setterWithMismatchedType):
1312 (tests.setterWithMatchedType):
1313 (tests.operatorWithUninferrableTypeVariable):
1314 (tests.operatorWithoutUninferrableTypeVariable):
1315 (tests.operatorCastWithUninferrableTypeVariable):
1316 (tests.operatorCastWithTypeVariableInferredFromReturnType):
1317 (tests.incWrongArgumentLength):
1318 (tests.decWrongArgumentLength):
1319 (tests.incWrongTypes):
1320 (tests.decWrongTypes):
1321 (tests.plusWrongArgumentLength):
1322 (tests.minusWrongArgumentLength):
1323 (tests.timesWrongArgumentLength):
1324 (tests.divideWrongArgumentLength):
1325 (tests.moduloWrongArgumentLength):
1326 (tests.bitAndWrongArgumentLength):
1327 (tests.bitOrWrongArgumentLength):
1328 (tests.bitXorWrongArgumentLength):
1329 (tests.lShiftWrongArgumentLength):
1330 (tests.rShiftWrongArgumentLength):
1331 (tests.bitNotWrongArgumentLength):
1332 (tests.equalsWrongArgumentLength):
1333 (tests.lessThanWrongArgumentLength):
1334 (tests.lessEqualWrongArgumentLength):
1335 (tests.greaterWrongArgumentLength):
1336 (tests.greaterEqualWrongArgumentLength):
1337 (tests.equalsWrongReturnType):
1338 (tests.notEqualsOverload):
1339 (tests.lessThanWrongReturnType):
1340 (tests.lessEqualWrongReturnType):
1341 (tests.greaterThanWrongReturnType):
1342 (tests.greaterEqualWrongReturnType):
1343 (tests.dotOperatorWrongArgumentLength):
1344 (tests.dotOperatorSetterWrongArgumentLength):
1345 (tests.loneSetterPointer):
1346 (tests.setterWithNoGetterOverload):
1347 (tests.setterWithNoGetterOverloadFixed):
1348 (tests.anderWithNothingWrong):
1349 (tests.anderWithWrongNumberOfArguments):
1350 (tests.anderDoesntReturnPointer):
1351 (tests.anderDoesntTakeReference):
1352 (tests.anderWithArrayRef):
1353 (tests.pointerIndexGetter):
1354 (tests.loneIndexSetter):
1355 (tests.notLoneIndexSetter):
1356 (tests.indexSetterWithMismatchedType):
1357 (tests.indexOperatorWrongArgumentLength):
1358 (tests.indexOperatorSetterWrongArgumentLength):
1359 (tests.loneIndexSetterPointer):
1360 (tests.indexSetterWithNoGetterOverload):
1361 (tests.indexSetterWithNoGetterOverloadFixed):
1362 (tests.indexAnderWithNothingWrong):
1363 (tests.indexAnderWithWrongNumberOfArguments):
1364 (tests.indexAnderDoesntReturnPointer):
1365 (tests.indexAnderDoesntTakeReference):
1366 (tests.indexAnderWithArrayRef):
1367 (tests.devicePtrPtr):
1368 (tests.threadgroupPtrPtr):
1369 (tests.constantPtrPtr):
1370 (tests.pointerIndexGetterInProtocol):
1371 (tests.loneIndexSetterInProtocol):
1372 (tests.notLoneIndexSetterInProtocol):
1373 (tests.indexSetterWithMismatchedTypeInProtocol):
1374 (tests.indexOperatorWrongArgumentLengthInProtocol):
1375 (tests.indexOperatorSetterWrongArgumentLengthInProtocol):
1376 (tests.loneIndexSetterPointerInProtocol):
1377 (tests.indexSetterWithNoGetterOverloadInProtocol):
1378 (tests.indexSetterWithNoGetterOverloadFixedInProtocol):
1379 (tests.indexAnderWithNothingWrongInProtocol):
1380 (tests.indexAnderWithWrongNumberOfArgumentsInProtocol):
1381 (tests.indexAnderDoesntReturnPointerInProtocol):
1382 (tests.indexAnderDoesntTakeReferenceInProtocol):
1383 (tests.indexAnderWithArrayRefInProtocol):
1385 (this.window.let._.of.doTest):
1386 (TEST_literalBool): Deleted.
1387 (TEST_identityBool): Deleted.
1388 (TEST_intSimpleMath): Deleted.
1389 (TEST_uintSimpleMath): Deleted.
1390 (TEST_uint8SimpleMath): Deleted.
1391 (TEST_equality): Deleted.
1392 (TEST_logicalNegation): Deleted.
1393 (TEST_notEquality): Deleted.
1394 (TEST_equalityTypeFailure): Deleted.
1396 (TEST_add1): Deleted.
1397 (TEST_simpleGeneric): Deleted.
1398 (TEST_nameResolutionFailure): Deleted.
1399 (TEST_simpleAssignment): Deleted.
1400 (TEST_simpleDefault): Deleted.
1401 (TEST_simpleDereference): Deleted.
1402 (TEST_dereferenceStore): Deleted.
1403 (TEST_simpleMakePtr): Deleted.
1404 (TEST_threadArrayLoad): Deleted.
1405 (TEST_threadArrayLoadIntLiteral): Deleted.
1406 (TEST_deviceArrayLoad): Deleted.
1407 (TEST_threadArrayStore): Deleted.
1408 (TEST_deviceArrayStore): Deleted.
1409 (TEST_deviceArrayStoreIntLiteral): Deleted.
1410 (TEST_simpleProtocol): Deleted.
1411 (TEST_typeMismatchReturn): Deleted.
1412 (TEST_simpleNoReturn): Deleted.
1413 (TEST_genericStructInstance): Deleted.
1414 (TEST_doubleGenericCallsDoubleGeneric): Deleted.
1415 (TEST_doubleGenericCallsSingleGeneric): Deleted.
1416 (TEST_dereferenceDefaultNull): Deleted.
1417 (TEST_dereferenceDefaultNullArrayRef): Deleted.
1418 (TEST_returnIntLiteralDouble): Deleted.
1419 (TEST_badIntLiteralForInt): Deleted.
1420 (TEST_passNullAndNotNullFullPoly): Deleted.
1421 (TEST_passNullAndNotNullFullPolyReverse): Deleted.
1422 (TEST_nullTypeVariableUnify.recurse): Deleted.
1423 (TEST_nullTypeVariableUnify.everyOrder): Deleted.
1424 (TEST_nullTypeVariableUnify.everyPair): Deleted.
1425 (TEST_nullTypeVariableUnify): Deleted.
1426 (TEST_simpleRecursion): Deleted.
1427 (TEST_protocolPolySigPolyDef): Deleted.
1428 (TEST_protocolDoublePolySigDoublePolyDef): Deleted.
1429 (TEST_protocolDoublePolySigDoublePolyDefExplicit): Deleted.
1430 (TEST_variableShadowing): Deleted.
1431 (TEST_ifStatement): Deleted.
1432 (TEST_ifElseStatement): Deleted.
1433 (TEST_ifElseIfStatement): Deleted.
1434 (TEST_ifElseIfElseStatement): Deleted.
1435 (TEST_returnIf): Deleted.
1436 (TEST_simpleWhile): Deleted.
1437 (TEST_protocolMonoPolySigDoublePolyDefExplicit): Deleted.
1438 (TEST_intOverloadResolution): Deleted.
1439 (TEST_intOverloadResolutionReverseOrder): Deleted.
1440 (TEST_intOverloadResolutionGeneric): Deleted.
1441 (TEST_intLiteralGeneric): Deleted.
1442 (TEST_intLiteralGenericWithProtocols): Deleted.
1443 (TEST_uintLiteralGeneric): Deleted.
1444 (TEST_uintLiteralGenericWithProtocols): Deleted.
1445 (TEST_intLiteralGenericSpecific): Deleted.
1446 (TEST_simpleConstexpr): Deleted.
1447 (TEST_break): Deleted.
1448 (TEST_forLoop): Deleted.
1449 (TEST_chainConstexpr): Deleted.
1450 (TEST_chainGeneric): Deleted.
1451 (TEST_chainStruct): Deleted.
1452 (TEST_chainStructNewlyValid): Deleted.
1453 (TEST_chainStructDevice): Deleted.
1454 (TEST_paramChainStructDevice): Deleted.
1455 (TEST_simpleProtocolExtends): Deleted.
1456 (TEST_protocolExtendsTwo): Deleted.
1457 (TEST_prefixPlusPlus): Deleted.
1458 (TEST_prefixPlusPlusResult): Deleted.
1459 (TEST_postfixPlusPlus): Deleted.
1460 (TEST_postfixPlusPlusResult): Deleted.
1461 (TEST_prefixMinusMinus): Deleted.
1462 (TEST_prefixMinusMinusResult): Deleted.
1463 (TEST_postfixMinusMinus): Deleted.
1464 (TEST_postfixMinusMinusResult): Deleted.
1465 (TEST_plusEquals): Deleted.
1466 (TEST_plusEqualsResult): Deleted.
1467 (TEST_minusEquals): Deleted.
1468 (TEST_minusEqualsResult): Deleted.
1469 (TEST_timesEquals): Deleted.
1470 (TEST_timesEqualsResult): Deleted.
1471 (TEST_divideEquals): Deleted.
1472 (TEST_divideEqualsResult): Deleted.
1473 (TEST_twoIntLiterals): Deleted.
1474 (TEST_unifyDifferentLiterals): Deleted.
1475 (TEST_buildArrayThenSumItUsingArrayReference): Deleted.
1476 (TEST_overrideSubscriptStruct): Deleted.
1477 (TEST_overrideSubscriptStructAndDoStores): Deleted.
1478 (TEST_overrideSubscriptStructAndUsePointers): Deleted.
1479 (TEST_overrideSubscriptStructAndUsePointersIncorrectly): Deleted.
1480 (TEST_makeArrayRefFromPointer): Deleted.
1481 (TEST_makeArrayRefFromArrayRef): Deleted.
1482 (TEST_nonArrayRefArrayLengthSucceed): Deleted.
1483 (TEST_nonArrayRefArrayLengthFail): Deleted.
1484 (TEST_simpleSetter): Deleted.
1485 (TEST_genericAccessors): Deleted.
1486 (TEST_bitSubscriptAccessor): Deleted.
1487 (TEST_nestedSubscriptLValueEmulationSimple): Deleted.
1488 (TEST_nestedSubscriptLValueEmulationGeneric): Deleted.
1489 (TEST_boolBitAnd): Deleted.
1490 (TEST_boolBitOr): Deleted.
1491 (TEST_boolBitXor): Deleted.
1492 (TEST_boolBitNot): Deleted.
1493 (TEST_intBitAnd): Deleted.
1494 (TEST_intBitOr): Deleted.
1495 (TEST_intBitXor): Deleted.
1496 (TEST_intBitNot): Deleted.
1497 (TEST_intLShift): Deleted.
1498 (TEST_intRShift): Deleted.
1499 (TEST_uintBitAnd): Deleted.
1500 (TEST_uintBitOr): Deleted.
1501 (TEST_uintBitXor): Deleted.
1502 (TEST_uintBitNot): Deleted.
1503 (TEST_uintLShift): Deleted.
1504 (TEST_uintRShift): Deleted.
1505 (TEST_uint8BitAnd): Deleted.
1506 (TEST_uint8BitOr): Deleted.
1507 (TEST_uint8BitXor): Deleted.
1508 (TEST_uint8BitNot): Deleted.
1509 (TEST_uint8LShift): Deleted.
1510 (TEST_uint8RShift): Deleted.
1511 (TEST_floatMath): Deleted.
1512 (TEST_booleanMath): Deleted.
1513 (TEST_typedefArray): Deleted.
1514 (TEST_shaderTypes): Deleted.
1515 (TEST_instantiateStructInStruct): Deleted.
1516 (TEST_instantiateStructInStructWithInt2): Deleted.
1517 (TEST_simpleEnum): Deleted.
1518 (TEST_enumWithManualValues): Deleted.
1519 (TEST_enumWithoutZero): Deleted.
1520 (TEST_enumConstexprGenericFunction): Deleted.
1521 (TEST_enumConstexprGenericStruct): Deleted.
1522 (TEST_trap): Deleted.
1523 (TEST_enumWithExplicitIntBase): Deleted.
1524 (TEST_enumWithUintBase): Deleted.
1525 (TEST_enumFloatBase): Deleted.
1526 (TEST_enumStructBase): Deleted.
1527 (TEST_simpleSwitch): Deleted.
1528 (TEST_exhaustiveUint8Switch): Deleted.
1529 (TEST_notQuiteExhaustiveUint8Switch): Deleted.
1530 (TEST_switchFallThrough): Deleted.
1531 (TEST_switchBreak): Deleted.
1532 (TEST_enumSwitchBreakExhaustive): Deleted.
1533 (TEST_enumSwitchBreakNotQuiteExhaustive): Deleted.
1534 (TEST_simpleRecursiveStruct): Deleted.
1535 (TEST_linkedList): Deleted.
1536 * WebGPUShadingLanguageRI/Type.js:
1537 (Type.prototype.get isArray):
1538 * WebGPUShadingLanguageRI/TypeRef.js:
1540 * WebGPUShadingLanguageRI/TypeVariableTracker.js:
1541 (TypeVariableTracker.prototype.set get return):
1542 (TypeVariableTracker.prototype.visitVariableRef):
1543 (TypeVariableTracker):
1544 * WebGPUShadingLanguageRI/Visitor.js:
1545 (Visitor.prototype.visitProtocolDecl):
1546 * WebGPUShadingLanguageRI/index.html:
1548 2017-09-22 Matt Lewis <jlewis3@apple.com>
1550 Unreviewed, rolling out r222394.
1552 This broke the Windows Debug Build.
1556 "Remove build-webkit's notion of feature flags having a
1558 https://bugs.webkit.org/show_bug.cgi?id=177338
1559 http://trac.webkit.org/changeset/222394
1561 2017-09-22 Tim Horton <timothy_horton@apple.com> and Michael Catanzaro <mcatanzaro@igalia.com>
1563 Remove build-webkit's notion of feature flags having a default value
1564 https://bugs.webkit.org/show_bug.cgi?id=177338
1566 Reviewed by Alex Christensen.
1568 Delegate feature flag default values to the build system.
1569 (FeatureDefines.xcconfig for Xcode, WebKitFeatures.cmake and Options*.cmake for CMake, and FeatureDefines.h for everyone)
1571 * BuildSlaveSupport/build.webkit.org-config/config.json:
1572 * BuildSlaveSupport/build.webkit.org-config/master.cfg:
1574 Update GTK and WPE buildbot configuration to use --no-experimental-features on old stable
1575 bots instead of --default-cmake-features.
1577 * Scripts/build-webkit:
1578 (cMakeArgsFromFeatures):
1579 Default feature values to 'undef'.
1580 Remove the --default-cmake-features argument; it is now the default.
1581 Add --no-experimental-features to replace it.
1582 Stop printing the default feature flag value in the help.
1583 Avoid propagating undefined values to the build system;
1584 only mention flags that are overridden on the command line.
1586 This has the nice side effect of using the default CMake features
1587 for CMake builds, but still allowing toggling of them using the
1588 prettier --FEATURE and --no-FEATURE arguments.
1590 * Scripts/webkitdirs.pm:
1591 (generateBuildSystemFromCMakeProject):
1592 No longer need to suppress CMake warnings about unused arguments.
1594 * Scripts/webkitperl/FeatureList.pm:
1595 Remove the default values from the feature list.
1597 2017-09-21 Joseph Pecoraro <pecoraro@apple.com>
1599 Unreviewed, add the ability to skip a test262 test.
1601 * Scripts/run-jsc-stress-tests:
1602 Other handlers have :skip but a few didn't.
1604 2017-09-21 Ryan Haddad <ryanhaddad@apple.com>
1606 Change architecture for ios-ews queue to arm64.
1607 https://bugs.webkit.org/show_bug.cgi?id=177332
1609 Reviewed by Alexey Proskuryakov.
1611 * Scripts/webkitpy/common/config/ews.json:
1613 2017-09-21 Tim Horton <timothy_horton@apple.com>
1615 Use 'ninja' from the SDK if it exists
1616 https://bugs.webkit.org/show_bug.cgi?id=177330
1618 Reviewed by Alex Christensen.
1620 * Scripts/webkitdirs.pm:
1622 Check for ninja with xcrun in addition to commandExists() for Cocoa platforms.
1624 (generateBuildSystemFromCMakeProject):
1625 (canUseNinjaGenerator): Deleted.
1626 Remove canUseNinjaGenerator; as noted in bug 177057, the Ninja generator
1627 is available in all versions of CMake supported by WebKit.
1629 2017-09-21 Chris Dumez <cdumez@apple.com>
1631 Regression(r222308): new API tests are failing for !NETWORK_SESSION
1632 https://bugs.webkit.org/show_bug.cgi?id=177321
1634 Reviewed by Alex Christensen.
1636 Unskip API tests now that they pass everywhere.
1638 * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
1641 2017-09-21 Filip Pizlo <fpizlo@apple.com>
1643 Unreviewed, fix ability to run tests in browser.
1645 * WebGPUShadingLanguageRI/Test.html:
1646 * WebGPUShadingLanguageRI/index.html:
1648 2017-09-21 Jonathan Bedard <jbedard@apple.com>
1650 webkitpy: Ignore failure to get updated selenium version
1651 https://bugs.webkit.org/show_bug.cgi?id=177205
1652 <rdar://problem/34531669>
1654 Reviewed by Lucas Forschler.
1656 Sometime asking PyPI for the latest version of Selenium fails. We should try and
1657 fallback to, at a minimum, version 3.5.0 or a newer installed version.
1659 * Scripts/webkitpy/thirdparty/__init__.py:
1660 (AutoinstallImportHook.greater_than_equal_to_version): Return true if the second
1661 version string is greater than or equal to the first version string.
1662 (AutoinstallImportHook._install_selenium): If we can't get the latest PyPI url,
1663 fallback to version 3.5.0 or a newer installed version.
1665 2017-09-21 Filip Pizlo <fpizlo@apple.com>
1667 WSL should have some post-instantiation type checking
1668 https://bugs.webkit.org/show_bug.cgi?id=177303
1670 Reviewed by Keith Miller.
1672 This patch removes the Primitive protocol! Yay!
1674 The Primitive protocol was an attempt to handle the fact that Metal wouldn't allow us to point a
1675 non-thread pointer at data structures that have pointers. This type checking rule interacts badly with
1676 generics. I was able to get it to mostly work by making Primitive into a dynamic protocol - a type
1677 belongs to it if it happens to be isPrimitive.
1679 But that was a mistake, since it makes it hard to create pointers that are generic over address space.
1680 Also, it's not an appropriate rule for targeting SPIR-V logical mode. That rule will be different, and
1681 possibly more complicated.
1683 All of these kinds of rules are easier to implement of we run them after instantiation, since then they
1684 don't get in the way of generics. That's what this patch does.
1686 This means that we get all of the same type checking power as before, and we still can catch the errors
1687 that Metal requires us to check for. It's easier to do those checks now.
1689 Finally, this removes the shader type checker's incomplete reimplementation of isPrimitive (which was
1690 called NonNumericSearcher). The shader type checker calls isPrimitive now.
1692 * WebGPUShadingLanguageRI/AddressSpace.js:
1693 (needsPrimitiveProtocol): Deleted.
1694 (protocolSuffix): Deleted.
1695 * WebGPUShadingLanguageRI/All.js:
1696 * WebGPUShadingLanguageRI/Checker.js:
1697 (Checker.prototype._checkShaderType):
1698 (Checker.prototype._checkShaderType.NonNumericSearcher): Deleted.
1699 (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType): Deleted.
1700 (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType): Deleted.
1701 (Checker.prototype.visitReferenceType): Deleted.
1702 * WebGPUShadingLanguageRI/FuncInstantiator.js:
1703 (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitFuncDef):
1704 * WebGPUShadingLanguageRI/Inline.js:
1706 * WebGPUShadingLanguageRI/Intrinsics.js:
1708 * WebGPUShadingLanguageRI/LateChecker.js: Added.
1710 (LateChecker.prototype.visitReferenceType):
1711 (LateChecker.prototype._checkShaderType):
1712 (LateChecker.prototype.visitFuncDef):
1713 * WebGPUShadingLanguageRI/LexerToken.js:
1714 (LexerToken.prototype.get isInternal): Deleted.
1715 * WebGPUShadingLanguageRI/NativeType.js:
1717 (NativeType.prototype.get name):
1718 (NativeType.prototype.get isPrimitive):
1719 (NativeType.prototype.set isPrimitive):
1720 (NativeType.prototype.toString):
1721 * WebGPUShadingLanguageRI/Parse.js:
1723 * WebGPUShadingLanguageRI/ProgramWithUnnecessaryThingsRemoved.js:
1724 (programWithUnnecessaryThingsRemoved):
1725 * WebGPUShadingLanguageRI/ProtocolDecl.js:
1726 * WebGPUShadingLanguageRI/ReferenceType.js:
1727 (ReferenceType.prototype.get elementType):
1728 (ReferenceType.prototype.get isPrimitive): Deleted.
1729 * WebGPUShadingLanguageRI/StandardLibrary.js:
1730 * WebGPUShadingLanguageRI/StatementCloner.js:
1731 (StatementCloner.prototype.visitNativeType):
1732 * WebGPUShadingLanguageRI/SynthesizeStructAccessors.js:
1733 (synthesizeStructAccessors):
1734 * WebGPUShadingLanguageRI/Test.js:
1735 (TEST_passNullAndNotNullFullPoly):
1736 (TEST_passNullAndNotNullFullPolyReverse):
1737 (TEST_nullTypeVariableUnify):
1738 (TEST_chainStructNewlyValid):
1739 (TEST_chainStructDevice):
1740 (TEST_chainStructInvalid): Deleted.
1741 * WebGPUShadingLanguageRI/Type.js:
1742 (Type.prototype.get isPrimitive):
1744 2017-09-21 Chris Dumez <cdumez@apple.com>
1746 Unreviewed, temporarily disable new API tests introduced in r222308 until they pass on El Capitan
1748 * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
1751 2017-09-21 Commit Queue <commit-queue@webkit.org>
1753 Unreviewed, rolling out r222272.
1754 https://bugs.webkit.org/show_bug.cgi?id=177316
1756 This patch broke builds on some Win EWS bots. (Requested by
1757 perarne on #webkit).
1761 "[Win] Cygwin 64-bit EWS process cannot find Visual Studio
1763 https://bugs.webkit.org/show_bug.cgi?id=177244
1764 http://trac.webkit.org/changeset/222272
1766 2017-09-21 Filip Pizlo <fpizlo@apple.com>
1768 Unreviewed, fix a bug in the interactive app that was introduced by bad merging.
1770 * WebGPUShadingLanguageRI/FlattenedStructOffsetGatherer.js:
1771 (FlattenedStructOffsetGatherer.prototype.visitTypeRef):
1772 (FlattenedStructOffsetGatherer):
1773 * WebGPUShadingLanguageRI/index.html:
1775 2017-09-20 Filip Pizlo <fpizlo@apple.com>
1777 WSL should support switch
1778 https://bugs.webkit.org/show_bug.cgi?id=176978
1780 Reviewed by Keith Miller.
1782 This adds fairly complete support for switch statements. This includes things like verifying
1783 whether or not a default statement is needed. This even works when the programmer lists all of
1784 the values of an integer type.
1786 To test that last part, this patch adds uint8 support. It's easy add it, but of course it
1787 meant adding a lot of tests.
1789 This also fixes enum bugs, since switch does things to enums that we previously didn't test.
1791 * WebGPUShadingLanguageRI/All.js:
1792 * WebGPUShadingLanguageRI/Checker.js:
1793 (Checker.prototype.visitSwitchStatement):
1794 * WebGPUShadingLanguageRI/EnumLiteral.js:
1795 (EnumLiteral.prototype.get valueForSelectedType):
1796 * WebGPUShadingLanguageRI/EnumType.js:
1797 (EnumType.prototype.allValues):
1798 (EnumType.prototype.valuesEqual):
1799 * WebGPUShadingLanguageRI/Evaluator.js:
1800 (Evaluator.prototype.visitSwitchStatement):
1801 * WebGPUShadingLanguageRI/Inliner.js:
1802 (Inliner.prototype.visitCallExpression):
1804 (Inliner.prototype.visitCastExpression): Deleted.
1805 * WebGPUShadingLanguageRI/Intrinsics.js:
1808 * WebGPUShadingLanguageRI/LoopChecker.js:
1810 (LoopChecker.prototype.visitFuncDef):
1811 (LoopChecker.prototype.visitWhileLoop):
1812 (LoopChecker.prototype.visitDoWhileLoop):
1813 (LoopChecker.prototype.visitForLoop):
1814 (LoopChecker.prototype.visitSwitchStatement):
1815 (LoopChecker.prototype.visitBreak):
1816 (LoopChecker.prototype.visitContinue):
1817 * WebGPUShadingLanguageRI/Node.js:
1818 (Node.prototype.commit):
1819 * WebGPUShadingLanguageRI/Parse.js:
1821 (parseSwitchStatement):
1825 * WebGPUShadingLanguageRI/Prepare.js:
1827 * WebGPUShadingLanguageRI/ReturnChecker.js:
1828 (ReturnChecker.prototype._mergeReturnStyle):
1829 (ReturnChecker.prototype.visitIfStatement):
1830 (ReturnChecker.prototype.visitWhileLoop):
1831 (ReturnChecker.prototype.visitDoWhileLoop):
1832 (ReturnChecker.prototype.visitForLoop):
1833 (ReturnChecker.prototype.visitSwitchStatement):
1834 (ReturnChecker.prototype.visitContinue):
1836 * WebGPUShadingLanguageRI/Rewriter.js:
1837 (Rewriter.prototype.visitSwitchStatement):
1838 (Rewriter.prototype.visitSwitchCase):
1839 * WebGPUShadingLanguageRI/StandardLibrary.js:
1843 * WebGPUShadingLanguageRI/SwitchCase.js: Added.
1845 (SwitchCase.prototype.get origin):
1846 (SwitchCase.prototype.get isDefault):
1847 (SwitchCase.prototype.get value):
1848 (SwitchCase.prototype.get body):
1849 (SwitchCase.prototype.toString):
1850 * WebGPUShadingLanguageRI/SwitchStatement.js: Added.
1852 (SwitchStatement.prototype.get origin):
1853 (SwitchStatement.prototype.get value):
1854 (SwitchStatement.prototype.add):
1855 (SwitchStatement.prototype.get switchCases):
1856 (SwitchStatement.prototype.toString):
1857 * WebGPUShadingLanguageRI/Test.html:
1858 * WebGPUShadingLanguageRI/Test.js:
1862 (TEST_uint8SimpleMath):
1871 (TEST_enumWithExplicitIntBase):
1872 (TEST_enumWithUintBase):
1873 (TEST_enumFloatBase):
1874 (TEST_enumStructBase):
1875 (TEST_simpleSwitch):
1876 (TEST_exhaustiveUint8Switch):
1877 (TEST_notQuiteExhaustiveUint8Switch):
1878 (TEST_switchFallThrough):
1880 (TEST_enumSwitchBreakExhaustive):
1881 (TEST_enumSwitchBreakNotQuiteExhaustive):
1883 * WebGPUShadingLanguageRI/UnificationContext.js:
1884 (UnificationContext):
1885 (UnificationContext.prototype.addExtraNode):
1886 (UnificationContext.prototype.get nodes):
1887 * WebGPUShadingLanguageRI/Visitor.js:
1888 (Visitor.prototype.visitProtocolDecl):
1889 * WebGPUShadingLanguageRI/index.html:
1891 2017-09-20 Filip Pizlo <fpizlo@apple.com>
1893 WSL needs a way to verify that structs are not cyclic
1894 https://bugs.webkit.org/show_bug.cgi?id=177044
1896 Reviewed by Myles Maxfield.
1898 This adds a recursive type checking phase. Even before adding this phase, the compiler would
1899 successfully detect recursive types - but at the cost of also rejecting programs that had
1900 recursive types indirectly through pointers. To make both things work, I had to change Visitor
1901 to no longer visit TypeRef.type by default. This resulted in some other changes in a few other
1902 parts of the code that previously relied on that behavior.
1904 * WebGPUShadingLanguageRI/All.js:
1905 * WebGPUShadingLanguageRI/CheckRecursiveTypes.js: Added.
1906 (checkRecursiveTypes):
1907 * WebGPUShadingLanguageRI/Checker.js:
1908 (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType):
1909 (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType):
1910 (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitTypeRef):
1911 (Checker.prototype._checkShaderType.NonNumericSearcher):
1912 (Checker.prototype._checkShaderType):
1913 (Checker.prototype.visitTypeRef):
1914 * WebGPUShadingLanguageRI/NameResolver.js:
1915 (NameResolver.prototype.visitProtocolDecl):
1916 * WebGPUShadingLanguageRI/Prepare.js:
1918 * WebGPUShadingLanguageRI/RecursiveTypeChecker.js: Added.
1919 (RecursiveTypeChecker):
1920 (RecursiveTypeChecker.prototype.visitFuncDef):
1921 (RecursiveTypeChecker.prototype.visitNativeFunc):
1922 (RecursiveTypeChecker.prototype.visitStructType):
1923 (RecursiveTypeChecker.prototype.visitReferenceType):
1924 (RecursiveTypeChecker.prototype.visitTypeRef):
1925 * WebGPUShadingLanguageRI/StructLayoutBuilder.js:
1926 (StructLayoutBuilder.prototype.visitTypeRef):
1927 (StructLayoutBuilder):
1928 * WebGPUShadingLanguageRI/Test.html:
1929 * WebGPUShadingLanguageRI/Test.js:
1930 (TEST_simpleRecursiveStruct):
1931 * WebGPUShadingLanguageRI/TypeDefResolver.js:
1932 (TypeDefResolver.prototype.visitTypeRef):
1934 * WebGPUShadingLanguageRI/Visitor.js:
1935 (Visitor.prototype.visitProtocolDecl):
1936 * WebGPUShadingLanguageRI/index.html:
1938 2017-09-21 Ryan Haddad <ryanhaddad@apple.com>
1940 Update TestResultsServer for iOS 11 queues.
1941 https://bugs.webkit.org/show_bug.cgi?id=177285
1943 Reviewed by Alexey Proskuryakov.
1945 * TestResultServer/static-dashboards/builders.jsonp:
1947 2017-09-21 Alex Christensen <achristensen@webkit.org>
1949 REGRESSION(r221465) WKWebViews without WebGL delegate callbacks crash when WebGL contexts are created
1950 https://bugs.webkit.org/show_bug.cgi?id=177306
1951 <rdar://problem/34351988>
1953 Reviewed by Chris Dumez.
1955 * TestWebKitAPI/Tests/WebKitCocoa/WebGLPolicy.mm:
1956 (-[WebGLTestDelegate webView:startURLSchemeTask:]):
1957 (-[DelegateWithoutWebGL webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
1960 2017-09-20 Joseph Pecoraro <pecoraro@apple.com>
1962 Update test262 tests
1963 https://bugs.webkit.org/show_bug.cgi?id=177220
1965 Reviewed by Saam Barati and Yusuke Suzuki.
1967 * Scripts/import-test262-tests:
1968 - better detect upstream git repository url from import location
1969 - update JSTest test262 resources when importing from repository
1970 - take seconds instead of 20+ minutes to write yaml with --failures
1971 - update "negative" command to only include just the exception type
1973 2017-09-20 Chris Dumez <cdumez@apple.com>
1975 [WK2] Add API to get the redirect chain of a WKDownload
1976 https://bugs.webkit.org/show_bug.cgi?id=176628
1977 <rdar://problem/34338279>
1979 Reviewed by Alex Christensen.
1981 Add API test coverage for the 2 cases:
1982 1. Download started as a download and is redirected while
1984 2. Download started as a load and was redirected during the
1987 * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
1988 (-[RedirectedDownloadDelegate _download:didReceiveServerRedirectToURL:]):
1989 (-[RedirectedDownloadDelegate _downloadDidFinish:]):
1992 2017-09-20 Alex Christensen <achristensen@webkit.org>
1994 Add infrastructure for adding custom headers to requests per website
1995 https://bugs.webkit.org/show_bug.cgi?id=177255
1997 Reviewed by Geoffrey Garen.
1999 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2000 * TestWebKitAPI/Tests/WebCore/HTTPHeaderField.cpp: Added.
2001 (shouldRemainUnchanged):
2005 * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
2008 2017-09-20 Daniel Bates <dabates@apple.com>
2010 Spelling and grammar dots should not overlap
2011 https://bugs.webkit.org/show_bug.cgi?id=177265
2012 <rdar://problem/34556424>
2014 Reviewed by David Hyatt.
2016 Add unit tests for the subdivision algorithm.
2018 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2019 * TestWebKitAPI/Tests/WebCore/MarkerSubrange.cpp: Added.
2020 (WebCore::operator<<):
2021 (WebCore::operator==):
2022 (TestWebKitAPI::TEST):
2024 2017-09-20 Filip Pizlo <fpizlo@apple.com>
2026 WSL should not type-check functions in the standard library that it does not use
2027 https://bugs.webkit.org/show_bug.cgi?id=177269
2029 Reviewed by JS Bastien.
2031 Once we added all of the swizzling operators, the size of the standard library ballooned to the point
2032 where it's just not practical to compile anything anymore. If you want to compile
2033 "int foo(int x) { return x}" then it will take some ridiculous amount of time (many seconds) because WSL
2034 will have to type check all of those swizzling operators.
2036 This change makes it so that after parsing the whole program, we remove the things that we aren't using.
2037 We can make a really good estimate of what we need even before doing any name resolution. In practice,
2038 this change removes almost all of the things from Program before we get to the hard work of type
2039 checking. That's true because the standard library contains _many_ things and you'd have to try very
2040 hard to use all of them.
2042 This is a 13x speed-up for Test.js. It went from 155 seconds to 12 seconds on my machine.
2044 * WebGPUShadingLanguageRI/All.js:
2045 * WebGPUShadingLanguageRI/ConstexprTypeParameter.js:
2046 (ConstexprTypeParameter.prototype.get origin):
2047 * WebGPUShadingLanguageRI/Intrinsics.js:
2048 * WebGPUShadingLanguageRI/Lexer.js:
2050 (Lexer.prototype.get originKind):
2051 * WebGPUShadingLanguageRI/LexerToken.js:
2052 (LexerToken.prototype.get lexer):
2053 (LexerToken.prototype.get origin):
2054 (LexerToken.prototype.get originKind):
2055 (LexerToken.prototype.get isInternal):
2056 * WebGPUShadingLanguageRI/NameContext.js:
2058 (NameContext.prototype.add):
2059 (NameContext.prototype.get let):
2060 (NameContext.prototype.mapFor): Deleted.
2061 * WebGPUShadingLanguageRI/NameFinder.js: Added.
2063 (NameFinder.get worklist):
2064 * WebGPUShadingLanguageRI/NameResolver.js:
2065 (NameResolver.prototype.visitProtocolDecl):
2066 * WebGPUShadingLanguageRI/OriginKind.js: Added.
2068 * WebGPUShadingLanguageRI/Prepare.js:
2070 * WebGPUShadingLanguageRI/ProgramWithUnnecessaryThingsRemoved.js: Added.
2071 (programWithUnnecessaryThingsRemoved):
2072 * WebGPUShadingLanguageRI/Test.html:
2073 * WebGPUShadingLanguageRI/Test.js:
2075 * WebGPUShadingLanguageRI/index.html:
2077 2017-09-20 Alex Christensen <achristensen@webkit.org>
2079 Remove ActionType::CSSDisplayNoneStyleSheet
2080 https://bugs.webkit.org/show_bug.cgi?id=177275
2082 Reviewed by Andy Estes.
2084 * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
2085 (WebCore::ContentExtensions::operator<<):
2086 (TestWebKitAPI::testRequest):
2087 (TestWebKitAPI::TEST_F):
2089 2017-09-20 Jonathan Bedard <jbedard@apple.com>
2091 Device iOS 11 builds fail with FileProvider linker errors
2092 https://bugs.webkit.org/show_bug.cgi?id=177272
2093 <rdar://problem/34557680>
2095 Reviewed by David Kilzer.
2097 For iOS device and simulator, the SYSTEM_LIBRARY_DIR should never
2098 be on the framework search path as neither platform should ever link
2099 with Mac frameworks.
2101 * DumpRenderTree/mac/Configurations/Base.xcconfig:
2102 * WebKitTestRunner/Configurations/Base.xcconfig:
2104 2017-09-20 Alex Christensen <achristensen@webkit.org>
2106 Remove ActionType::InvalidAction
2107 https://bugs.webkit.org/show_bug.cgi?id=177262
2109 Reviewed by Tim Horton.
2111 * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
2112 (WebCore::ContentExtensions::operator<<):
2114 2017-09-20 Myles C. Maxfield <mmaxfield@apple.com>
2116 Make a playground where people can try WSL
2117 https://bugs.webkit.org/show_bug.cgi?id=177125
2119 Reviewed by Filip Pizlo.
2121 This patch creates a webpage, index.html, which lets users type in a WSL program and
2122 run it, and see the results.
2124 * WebGPUShadingLanguageRI/All.js:
2125 * WebGPUShadingLanguageRI/CallFunction.js:
2127 * WebGPUShadingLanguageRI/Checker.js:
2129 (Checker.prototype._checkShaderType.NonNumericSearcher):
2130 (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType):
2131 (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType):
2132 (Checker.prototype._checkShaderType):
2133 (Checker.prototype.visitFuncDef):
2134 (Checker.prototype._requireBool):
2135 * WebGPUShadingLanguageRI/FlattenedStructOffsetGatherer.js: Copied from Tools/WebGPUShadingLanguageRI/CallFunction.js.
2136 (FlattenedStructOffsetGatherer):
2137 (FlattenedStructOffsetGatherer.prototype.get result):
2138 (FlattenedStructOffsetGatherer.prototype.visitReferenceType):
2139 (FlattenedStructOffsetGatherer.prototype.visitField):
2140 (FlattenedStructOffsetGatherer.prototype.visitNativeType):
2141 * WebGPUShadingLanguageRI/Func.js:
2142 (Func.prototype.toDeclString):
2143 * WebGPUShadingLanguageRI/Inline.js:
2144 (resolveInlinedFunction):
2145 * WebGPUShadingLanguageRI/NameContext.js:
2146 (NameContext.prototype.get let):
2147 * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
2148 (resolveOverloadImpl):
2149 * WebGPUShadingLanguageRI/StandardLibrary.js:
2150 * WebGPUShadingLanguageRI/Test.html:
2151 * WebGPUShadingLanguageRI/Test.js:
2153 * WebGPUShadingLanguageRI/index.html: Added.
2155 2017-09-20 Myles C. Maxfield <mmaxfield@apple.com>
2157 [WSL] Restrict vertex and fragment entry points according to WSL.md
2158 https://bugs.webkit.org/show_bug.cgi?id=177253
2160 Reviewed by Filip Pizlo.
2162 Entry points can't have template arguments, and their argument/return types need to be restricted.
2164 * WebGPUShadingLanguageRI/Checker.js:
2166 (Checker.prototype._checkShaderType.NonNumericSearcher):
2167 (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType):
2168 (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType):
2169 (Checker.prototype._checkShaderType):
2170 (Checker.prototype.visitFuncDef):
2171 (Checker.prototype._requireBool):
2172 * WebGPUShadingLanguageRI/Func.js:
2173 (Func.prototype.toDeclString):
2174 * WebGPUShadingLanguageRI/Test.js:
2177 2017-09-20 Per Arne Vollan <pvollan@apple.com>
2179 [Win] Cygwin 64-bit EWS process cannot find Visual Studio installation.
2180 https://bugs.webkit.org/show_bug.cgi?id=177244
2182 Reviewed by Alex Christensen.
2184 The 64-bit EWS shell process should try to find Visual Studio in the 32-bit program files folder.
2186 * EWSTools/start-queue-win.sh:
2188 2017-09-20 Myles C. Maxfield <mmaxfield@apple.com>
2190 Create vector swizzle operators in WSL's standard library
2191 https://bugs.webkit.org/show_bug.cgi?id=177116
2193 Reviewed by Filip Pizlo.
2195 Because there are 481 possible swizzling operators, StandardLibrary.js generates them
2196 instead of including them by hand.
2198 Adding so many functions slows down the compiler quite a bit.
2200 * WebGPUShadingLanguageRI/Prepare.js:
2202 * WebGPUShadingLanguageRI/StandardLibrary.js:
2206 2017-09-20 Ms2ger <Ms2ger@igalia.com>
2208 [WPE] Update fontconfig to 2.12.4.
2209 https://bugs.webkit.org/show_bug.cgi?id=177228
2211 Reviewed by Carlos Garcia Campos.
2213 * wpe/jhbuild.modules:
2214 * wpe/patches/fontconfig-avoid-conflicts-with-integer-width-macros-from-TS-18.patch: Removed.
2216 2017-09-19 Myles C. Maxfield <mmaxfield@apple.com>
2218 WSL should be able to trap when something fatal happens
2219 https://bugs.webkit.org/show_bug.cgi?id=177110
2221 Reviewed by Filip Pizlo.
2223 WSL programs can include a statement "trap;" which causes the entry
2224 point to immediately return the default value of its return type.
2225 This is implemented by throw/catch and populateDefaultValue().
2227 * WebGPUShadingLanguageRI/All.js:
2228 * WebGPUShadingLanguageRI/EvaluationCommon.js:
2229 * WebGPUShadingLanguageRI/Evaluator.js:
2230 (Evaluator.prototype.visitTrapStatement):
2231 * WebGPUShadingLanguageRI/Parse.js:
2233 * WebGPUShadingLanguageRI/ReturnChecker.js:
2234 (ReturnChecker.prototype.visitTrapStatement):
2235 * WebGPUShadingLanguageRI/Rewriter.js:
2236 (Rewriter.prototype.visitTrapStatement):
2237 * WebGPUShadingLanguageRI/StandardLibrary.js:
2238 * WebGPUShadingLanguageRI/Test.html:
2239 * WebGPUShadingLanguageRI/Test.js:
2240 * WebGPUShadingLanguageRI/TrapStatement.js: Copied from Tools/WebGPUShadingLanguageRI/EvaluationCommon.js.
2242 (TrapStatement.prototype.get origin):
2243 (TrapStatement.prototype.toString):
2244 * WebGPUShadingLanguageRI/Visitor.js:
2245 (Visitor.prototype.visitProtocolDecl):
2247 2017-09-19 Ryan Haddad <ryanhaddad@apple.com>
2249 Unreviewed follow-up to r222229, remove invalid triggers.
2251 * BuildSlaveSupport/build.webkit.org-config/config.json:
2253 2017-09-19 Simon Fraser <simon.fraser@apple.com>
2255 tiled-drawing/tiled-backing-in-window.html fails on Retina displays
2256 https://bugs.webkit.org/show_bug.cgi?id=177113
2258 Reviewed by Tim Horton.
2260 This test removes the view from the window, and then dumps the layer tree, at which point
2261 some layers would report a contentsScale of 2 on Retina displays.
2263 This occurs because WebKitTestRunner overrides the default device scale factor on NSWindow,
2264 but windowless views fall back to [NSScreen mainScreen].backingScaleFactor (in WebViewImpl::intrinsicDeviceScaleFactor()).
2266 Fix by having PlatformWebView::changeWindowScaleIfNeeded() call -_setOverrideDeviceScaleFactor: on the view.
2268 * WebKitTestRunner/mac/PlatformWebViewMac.mm:
2269 (WTR::PlatformWebView::changeWindowScaleIfNeeded):
2271 2017-09-19 Wenson Hsieh <wenson_hsieh@apple.com>
2273 REGRESSION (r215613): Incorrect corners clipping with border-radius
2274 https://bugs.webkit.org/show_bug.cgi?id=176498
2275 <rdar://problem/34112607>
2277 Reviewed by Tim Horton.
2279 Add WebCore API tests for RoundedRect::contains().
2281 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2282 * TestWebKitAPI/Tests/WebCore/RoundedRectTests.cpp: Added.
2283 (TestWebKitAPI::layoutRect):
2284 (TestWebKitAPI::TEST):
2286 2017-09-19 Youenn Fablet <youenn@apple.com>
2288 Allow WTF::map to use any class that is iterable and has a size getter
2289 https://bugs.webkit.org/show_bug.cgi?id=177026
2291 Reviewed by Darin Adler.
2293 * TestWebKitAPI/Tests/WTF/Vector.cpp:
2294 (TestWebKitAPI::TEST):
2296 2017-09-19 Ryan Haddad <ryanhaddad@apple.com>
2298 Update bot configuration for iOS 11.
2299 https://bugs.webkit.org/show_bug.cgi?id=177165
2301 Reviewed by Alexey Proskuryakov.
2303 * BuildSlaveSupport/build.webkit.org-config/config.json:
2304 * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:
2305 * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:
2306 (BubbleQueueServer):
2307 * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
2308 * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
2310 * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
2311 (table.queue-grid tr.platform.ios-simulator-10 img.logo): Deleted.
2312 (table.queue-grid tr.platform.ios-10 img.logo): Deleted.
2313 * BuildSlaveSupport/build.webkit.org-config/wkbuild.py:
2314 (_should_file_trigger_build):
2315 * BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py:
2317 (ShouldBuildTest.test_should_build):
2319 2017-09-19 Filip Pizlo <fpizlo@apple.com>
2321 Primitive protocol should have capital name
2322 https://bugs.webkit.org/show_bug.cgi?id=177097
2324 Reviewed by JF Bastien.
2326 As soon as I started programming in WSL, I found that I preferred to capitalize protocol names. So, my
2327 early decision to call the primitive protocol "primitive" instead of "Primitive" seems absurd now. This
2328 change reverses that decision.
2330 Aesthetically, this is a slight improvement. For example:
2332 struct Bar<T:Primitive> {
2336 This makes more sense since all of the non-keyword type identifiers are capital.
2338 The one place where this is an aesthetic regression is native primitive typedefs, which now look like:
2340 native Primitive typedef bool;
2342 I'm happy with that tradeoff, since native typedefs are only in the standard library. Users don't see
2345 * WebGPUShadingLanguageRI/AddressSpace.js:
2347 * WebGPUShadingLanguageRI/Intrinsics.js:
2349 * WebGPUShadingLanguageRI/NativeType.js:
2350 (NativeType.prototype.toString):
2352 * WebGPUShadingLanguageRI/Parse.js:
2354 * WebGPUShadingLanguageRI/StandardLibrary.js:
2355 * WebGPUShadingLanguageRI/Test.js:
2356 (TEST_passNullAndNotNullFullPoly):
2357 (TEST_passNullAndNotNullFullPolyReverse):
2359 2017-09-18 Filip Pizlo <fpizlo@apple.com>
2361 Cannot put typedefs of templated structs inside structs
2362 https://bugs.webkit.org/show_bug.cgi?id=177123
2364 Reviewed by Michael Saboff.
2366 Ever since I wrote the generic type instantiation code in WSL, it had a bizarre stink to it. I
2367 did not know what it was, until I met this test case:
2369 struct Foo { int2 x; }
2371 The problem was that Type has a getter called instantiatedType, which invoked
2372 InstantiateImmediates. That's great. Where we went wrong was that TypeRef overrode
2373 instantiatedType, and then InstantiateImmediates called TypeRef.instantiatedType from its
2374 visitTypeRef. What a mess. None of that was necessary for anything, and it was just wrong. This
2375 patch fixes it so that:
2377 - Type has an instantiatedType getter, which does InstantiateImmediates. I didn't change this.
2378 This was the only part of the status quo that really made sense.
2380 - TypeRef no longer overrides instantiatedType.
2382 - InstantianteImmediates.prototype.visitTypeRef now does what TypeRef's instantiatedType would
2385 And voila! This test case passes and so do all of the other test cases.
2387 The reason why that specific test case did not work was that the use of a TypeDef (int2) for
2388 a generic type instantiation (vec2<int>) caused there to be two TypeRef's in a row, sorta like
2389 this, if we could use wrap() to denote a TypeRef that just wrapped another type:
2393 We would call instantiatedType on this monstrosity. Since TypeRef overrode instantiatedType,
2394 we would stop there because that TypeRef has no type arguments - it's just a wrapper. Well,
2395 actually, we'd do something a bit stranger than stopping there - there's more to the story -
2396 but the effect was the same. Now we do InstantiateImmediates, which recursively builds a new
2397 type. This chews through the wrapper and then instantiates the wrapped type, as we want it to.
2398 Also, this approach no longer has the stink. instantiatedType isn't overriden by anyone
2401 * WebGPUShadingLanguageRI/Checker.js:
2402 * WebGPUShadingLanguageRI/InstantiateImmediates.js:
2403 (InstantiateImmediates.prototype.visitTypeRef):
2404 (InstantiateImmediates.prototype.visitReferenceType): Deleted.
2405 * WebGPUShadingLanguageRI/Test.js:
2406 (TEST_instantiateStructInStructWithInt2):
2407 * WebGPUShadingLanguageRI/TypeRef.js:
2409 (TypeRef.prototype.setTypeAndArguments):
2410 (TypeRef.prototype.toString):
2412 (TypeRef.prototype.get instantiatedType): Deleted.
2414 2017-09-19 Per Arne Vollan <pvollan@apple.com>
2416 [Win] WebKit fails to build with 64-bit Perl.
2417 https://bugs.webkit.org/show_bug.cgi?id=177106
2419 Reviewed by Brent Fulgham.
2421 Visual Studio is installed in the 32-bit program files folder.
2423 * Scripts/webkitdirs.pm:
2424 (programFilesPathX86):
2425 (visualStudioInstallDir):
2426 (msBuildInstallDir):
2428 2017-09-18 Filip Pizlo <fpizlo@apple.com>
2430 [WSL] Cannot put templated structs inside structs
2431 https://bugs.webkit.org/show_bug.cgi?id=177120
2433 Reviewed by Myles Maxfield.
2435 It turns out that we still need to instantiate structs even if not passing type arguments,
2436 since its fields may need to be instantiated.
2438 This makes Myles's test case pass. When writing the test case, I encountered parser bugs, and
2441 * WebGPUShadingLanguageRI/CallFunction.js:
2443 * WebGPUShadingLanguageRI/Checker.js:
2444 (Checker.prototype.visitReferenceType):
2445 * WebGPUShadingLanguageRI/FuncInstantiator.js:
2446 (FuncInstantiator.prototype.getUnique):
2448 * WebGPUShadingLanguageRI/Parse.js:
2449 (parseSuffixOperator):
2450 (parsePossibleSuffix):
2451 (parsePostIncrement):
2452 * WebGPUShadingLanguageRI/StructType.js:
2453 (StructType.prototype.instantiate):
2454 * WebGPUShadingLanguageRI/Test.js:
2457 (TEST_instantiateStructInStruct):
2458 * WebGPUShadingLanguageRI/TypeRef.js:
2459 (TypeRef.prototype.get instantiatedType):
2460 (TypeRef.prototype.get isPrimitive):
2462 2017-09-18 Filip Pizlo <fpizlo@apple.com>
2464 WSL should support enum
2465 https://bugs.webkit.org/show_bug.cgi?id=176977
2467 Reviewed by Myles Maxfield.
2469 This implements enum. Enums members are referenced Java-style. For example, if we have an enum like:
2476 Then you refer to the members by saying Bank.GP and Bank.FP.
2478 Also adds a hack that makes operator- on a literal fold the literal. This fixes two issues:
2480 - Lets you use negative literals in constexprs.
2481 - Means that negative literals also get literal type unification.
2483 WSL's constexpr support is really thin, but I think it's all we really need for now.
2485 * WebGPUShadingLanguageRI/All.js:
2486 * WebGPUShadingLanguageRI/Checker.js:
2487 (Checker.prototype.visitEnumType):
2488 (Checker.prototype.visitEnumLiteral):
2489 * WebGPUShadingLanguageRI/ConstexprFolder.js: Added.
2490 (ConstexprFolder.prototype.visitCallExpression):
2491 (ConstexprFolder.prototype.visitTypeOrVariableRef):
2493 * WebGPUShadingLanguageRI/CreateLiteral.js:
2494 (createLiteral.GenericLiteral.prototype.get valueForSelectedType):
2495 (createLiteral.GenericLiteral.prototype.get negConstexpr):
2496 * WebGPUShadingLanguageRI/DoubleLiteral.js:
2497 (let.DoubleLiteral.createLiteral.negConstexpr):
2498 * WebGPUShadingLanguageRI/EBufferBuilder.js:
2499 (EBufferBuilder.prototype.visitEnumLiteral):
2500 * WebGPUShadingLanguageRI/EnumLiteral.js: Added.
2502 (EnumLiteral.prototype.get member):
2503 (EnumLiteral.prototype.get type):
2504 (EnumLiteral.prototype.get isConstexpr):
2505 (EnumLiteral.prototype.unifyImpl):
2506 (EnumLiteral.prototype.toString):
2507 * WebGPUShadingLanguageRI/EnumMember.js: Added.
2509 (EnumMember.prototype.get origin):
2510 (EnumMember.prototype.get name):
2511 (EnumMember.prototype.toString):
2512 * WebGPUShadingLanguageRI/EnumType.js: Added.
2514 (EnumType.prototype.add):
2515 (EnumType.prototype.get origin):
2516 (EnumType.prototype.get name):
2517 (EnumType.prototype.get baseType):
2518 (EnumType.prototype.get memberNames):
2519 (EnumType.prototype.memberByName):
2520 (EnumType.prototype.get members):
2521 (EnumType.prototype.get memberMap):
2522 (EnumType.prototype.get isPrimitive):
2523 (EnumType.prototype.populateDefaultValue):
2524 (EnumType.prototype.get size):
2525 (EnumType.prototype.toString):
2526 * WebGPUShadingLanguageRI/Evaluator.js:
2527 (Evaluator.prototype.visitGenericLiteral):
2528 (Evaluator.prototype.visitEnumLiteral):
2529 * WebGPUShadingLanguageRI/FloatLiteral.js:
2530 (let.FloatLiteral.createLiteral.negConstexpr):
2531 * WebGPUShadingLanguageRI/FoldConstexprs.js: Added.
2533 * WebGPUShadingLanguageRI/IntLiteral.js:
2534 (let.IntLiteral.createLiteral.negConstexpr):
2535 * WebGPUShadingLanguageRI/Intrinsics.js:
2537 * WebGPUShadingLanguageRI/NameResolver.js:
2538 (NameResolver.prototype.visitProtocolDecl):
2539 * WebGPUShadingLanguageRI/Parse.js:
2541 (parsePossibleSuffix):
2545 * WebGPUShadingLanguageRI/Prepare.js:
2547 * WebGPUShadingLanguageRI/Rewriter.js:
2548 (Rewriter.prototype.visitEnumType):
2549 (Rewriter.prototype.visitEnumMember):
2550 (Rewriter.prototype.visitEnumLiteral):
2551 * WebGPUShadingLanguageRI/StructType.js:
2552 (StructType.prototype.get origin):
2553 (StructType.prototype.instantiate):
2554 * WebGPUShadingLanguageRI/SynthesizeEnumFunctions.js: Added.
2555 (synthesizeEnumFunctions):
2556 * WebGPUShadingLanguageRI/Test.html:
2557 * WebGPUShadingLanguageRI/Test.js:
2560 (TEST_enumWithManualValues):
2561 (TEST_enumWithoutZero):
2562 (TEST_enumConstexprGenericFunction):
2563 (TEST_enumConstexprGenericStruct):
2564 * WebGPUShadingLanguageRI/UintLiteral.js:
2565 (let.UintLiteral.createLiteral.negConstexpr):
2566 * WebGPUShadingLanguageRI/Visitor.js:
2567 (Visitor.prototype.visitProtocolDecl):
2569 2017-09-18 Filip Pizlo <fpizlo@apple.com>
2571 WSL prepare() should cache the parsed standard library
2572 https://bugs.webkit.org/show_bug.cgi?id=177118
2574 Reviewed by Myles Maxfield.
2576 The execution time of Test.js is too damn high!
2578 So I made it 2x faster by caching the parsed standard library.
2580 * WebGPUShadingLanguageRI/All.js:
2581 * WebGPUShadingLanguageRI/CloneProgram.js: Added.
2583 * WebGPUShadingLanguageRI/Prepare.js:
2586 * WebGPUShadingLanguageRI/StatementCloner.js: Added.
2587 (StatementCloner.prototype.visitFuncDef):
2588 (StatementCloner.prototype.visitNativeFunc):
2589 (StatementCloner.prototype.visitNativeType):
2590 (StatementCloner.prototype.visitTypeDef):
2591 (StatementCloner.prototype.visitStructType):
2592 (StatementCloner.prototype.visitConstexprTypeParameter):
2593 (StatementCloner.prototype.visitProtocolDecl):
2594 * WebGPUShadingLanguageRI/Test.html:
2595 * WebGPUShadingLanguageRI/Test.js:
2598 2017-09-18 Michael Catanzaro <mcatanzaro@igalia.com>
2600 [CMake] Rename WebKit target to WebKitLegacy and rename WebKit2 target to WebKit
2601 https://bugs.webkit.org/show_bug.cgi?id=174558
2603 Reviewed by Alex Christensen.
2605 With help from Stephan Szabo, thanks!
2607 * DumpRenderTree/PlatformMac.cmake:
2608 * DumpRenderTree/PlatformWin.cmake:
2609 * DumpRenderTree/win/AccessibilityControllerWin.cpp:
2610 * DumpRenderTree/win/DRTDesktopNotificationPresenter.h:
2611 * DumpRenderTree/win/DumpRenderTree.cpp:
2612 * DumpRenderTree/win/EditingDelegate.h:
2613 * DumpRenderTree/win/EventSender.cpp:
2614 * DumpRenderTree/win/FrameLoadDelegate.cpp:
2615 * DumpRenderTree/win/FrameLoadDelegate.h:
2616 * DumpRenderTree/win/GCControllerWin.cpp:
2617 * DumpRenderTree/win/HistoryDelegate.cpp:
2618 * DumpRenderTree/win/HistoryDelegate.h:
2619 * DumpRenderTree/win/PolicyDelegate.h:
2620 * DumpRenderTree/win/ResourceLoadDelegate.cpp:
2621 * DumpRenderTree/win/ResourceLoadDelegate.h:
2622 * DumpRenderTree/win/TestRunnerWin.cpp:
2623 * DumpRenderTree/win/TextInputControllerWin.cpp:
2624 * DumpRenderTree/win/UIDelegate.cpp:
2625 * DumpRenderTree/win/UIDelegate.h:
2626 * DumpRenderTree/win/WorkQueueItemWin.cpp:
2627 * MiniBrowser/gtk/CMakeLists.txt:
2628 * MiniBrowser/mac/CMakeLists.txt:
2629 * MiniBrowser/win/AccessibilityDelegate.cpp:
2630 * MiniBrowser/win/AccessibilityDelegate.h:
2631 * MiniBrowser/win/CMakeLists.txt:
2632 * MiniBrowser/win/Common.cpp:
2633 * MiniBrowser/win/DOMDefaultImpl.h:
2634 * MiniBrowser/win/MiniBrowser.cpp:
2635 * MiniBrowser/win/MiniBrowser.h:
2636 * MiniBrowser/win/MiniBrowserWebHost.cpp:
2637 * MiniBrowser/win/MiniBrowserWebHost.h:
2638 * MiniBrowser/win/PageLoadTestClient.h:
2639 * MiniBrowser/win/PrintWebUIDelegate.cpp:
2640 * MiniBrowser/win/PrintWebUIDelegate.h:
2641 * MiniBrowser/win/ResourceLoadDelegate.cpp:
2642 * MiniBrowser/win/ResourceLoadDelegate.h:
2643 * MiniBrowser/win/WebDownloadDelegate.h:
2644 * TestWebKitAPI/CMakeLists.txt:
2645 * TestWebKitAPI/PlatformGTK.cmake:
2646 * TestWebKitAPI/PlatformWPE.cmake:
2647 * TestWebKitAPI/PlatformWin.cmake:
2648 * TestWebKitAPI/Tests/WebKitLegacy/win/ScaleWebView.cpp:
2649 * TestWebKitAPI/Tests/WebKitLegacy/win/WebViewDestruction.cpp:
2650 * TestWebKitAPI/glib/CMakeLists.txt:
2651 * WebKitTestRunner/CMakeLists.txt:
2652 * WebKitTestRunner/PlatformGTK.cmake:
2653 * WebKitTestRunner/PlatformWPE.cmake:
2655 2017-09-18 Myles C. Maxfield <mmaxfield@apple.com>
2657 Fill out vector types in WSL's standard library
2658 https://bugs.webkit.org/show_bug.cgi?id=177063
2660 Reviewed by Filip Pizlo.
2662 Now that we have struct types, operator&[], and operator==, fill out a few of the builtin vector types in the
2663 standard library. This patch creates three new types: vec2, vec3, and vec4, each of which takes a type
2664 argument, so you can say vec4<float>. This patch also adds typedefs of int4, uint4, float4, and double4 (along
2665 with their 2- and 3- length siblings).
2667 This patch does not include the swizzling operators, so you can't say float4.yzw.
2669 * WebGPUShadingLanguageRI/StandardLibrary.js:
2670 (operator.T.vec2.T):
2671 (bool.operator.T.Equatable):
2672 (thread.T.operator.T):
2673 (operator.T.vec3.T):
2674 (operator.T.vec4.T):
2675 * WebGPUShadingLanguageRI/Test.js:
2676 (TEST_builtinVectors):
2678 2017-09-18 Myles C. Maxfield <mmaxfield@apple.com>
2680 WSL needs to annotate vertex shaders and fragment shaders
2681 https://bugs.webkit.org/show_bug.cgi?id=177066
2683 Reviewed by Filip Pizlo.
2685 Metal Shading Language requires annotating vertex and fragment shaders, so this information needs to be in
2686 the source WSL file.
2688 * WebGPUShadingLanguageRI/Func.js:
2690 (Func.prototype.get shaderType):
2691 * WebGPUShadingLanguageRI/FuncDef.js:
2693 * WebGPUShadingLanguageRI/NativeFunc.js:
2695 * WebGPUShadingLanguageRI/Parse.js:
2697 (parseProtocolFuncDecl):
2700 * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
2701 (resolveOverloadImpl):
2702 * WebGPUShadingLanguageRI/Test.js:
2704 2017-09-18 Filip Pizlo <fpizlo@apple.com>
2706 WSL should know that constexpr parameters are not lvalues
2707 https://bugs.webkit.org/show_bug.cgi?id=177104
2709 Reviewed by Saam Barati.
2711 This should be an error:
2718 Previously, it wasn't, because VariableRef always thought that it was an LValue. This patch
2719 teaches the type checker that not all VariableRefs are LValues.
2721 * WebGPUShadingLanguageRI/ConstexprTypeParameter.js:
2722 (ConstexprTypeParameter.prototype.get varIsLValue):
2723 * WebGPUShadingLanguageRI/FuncParameter.js:
2724 (FuncParameter.prototype.get varIsLValue):
2725 * WebGPUShadingLanguageRI/Test.js:
2726 (TEST_nonArrayRefArrayLengthSucceed):
2727 (TEST_nonArrayRefArrayLengthFail):
2728 (TEST_nonArrayRefArrayLength): Deleted.
2729 (TEST_assignLength): Deleted.
2730 * WebGPUShadingLanguageRI/VariableDecl.js:
2731 (VariableDecl.prototype.get varIsLValue):
2732 * WebGPUShadingLanguageRI/VariableRef.js:
2733 (VariableRef.prototype.get isLValue):
2735 2017-09-18 Ryan Haddad <ryanhaddad@apple.com>
2737 Unreviewed, rolling out r222170.
2739 The API test added with this change is failing.
2743 "Allow WTF::map to use any class that is iterable and has a
2745 https://bugs.webkit.org/show_bug.cgi?id=177026
2746 http://trac.webkit.org/changeset/222170
2748 2017-09-18 Myles C. Maxfield <mmaxfield@apple.com>
2750 Add a section in WSL's documentation about how API objects and WSL interact
2751 https://bugs.webkit.org/show_bug.cgi?id=177089
2753 Reviewed by Filip Pizlo.
2755 No global variables; entry points accept arguments. Buffers are array references ([]),
2756 and texture and sampler opaque types exist. Data is passed between stages in return
2759 * WebGPUShadingLanguageRI/WSL.md:
2761 2017-09-18 Filip Pizlo <fpizlo@apple.com>
2763 Unreviewed, fix typo.
2765 * WebGPUShadingLanguageRI/WSL.md:
2767 2017-09-18 Filip Pizlo <fpizlo@apple.com>
2769 WSL cannot use typedefs of arrays
2770 https://bugs.webkit.org/show_bug.cgi?id=177061
2772 Reviewed by Saam Barati.
2774 This test case didn't work before because of a missing visit call in Checker.
2776 * WebGPUShadingLanguageRI/Checker.js:
2777 (Checker.prototype.visitTypeRef):
2778 * WebGPUShadingLanguageRI/Test.js:
2779 (TEST_typedefArray):
2781 2017-09-18 Youenn Fablet <youenn@apple.com>
2783 Allow WTF::map to use any class that is iterable and has a size getter
2784 https://bugs.webkit.org/show_bug.cgi?id=177026
2786 Reviewed by Darin Adler.
2788 * TestWebKitAPI/Tests/WTF/Vector.cpp:
2789 (TestWebKitAPI::TEST):
2791 2017-09-16 Filip Pizlo <fpizlo@apple.com>
2793 Figure out how WSL will support field overloads like float4.xz and friends
2794 https://bugs.webkit.org/show_bug.cgi?id=177031
2796 Reviewed by JF Bastien.
2798 WSL needs to support getters and setters, so that we can do things like:
2801 vec.zx = float2(1, 2);
2804 There's no way to express this float4.zx returning a pointer to something, since it's doing swizzling.
2805 It could return a crazy smart pointer, but that sounds like a lot of work. So, I decided to go for
2806 lvalue emulation instead.
2808 The idea of lvalue emulation is that when we try to make an lvalue work for an assignment or RMW
2809 operation (like += and friends), we consider the possibility that we have to first load the value using
2810 a getter and then store it with a setter. This patch makes this work recursively, so that this will
2817 This works because we decompose it automatically:
2820 float3 tmp = vec.zwx;
2824 This'll work to any depth.
2826 To check if this works, this patch adds two substantial new tests called TEST_genericAccessors() and
2827 TEST_bitSubscriptAccessor(). This tests that this stuff works with a lot of generic types, and that it's
2828 possible to turn integers into bitvectors using subscript overloading. This patch also adds smaller unit
2831 Oh, and it's now possible to get an array's length.
2833 * WebGPUShadingLanguageRI/AddressSpace.js:
2834 (needsPrimitiveProtocol):
2836 * WebGPUShadingLanguageRI/All.js:
2837 * WebGPUShadingLanguageRI/AnonymousVariable.js: Added.
2838 (AnonymousVariable):
2839 (AnonymousVariable.prototype.get origin):
2840 (AnonymousVariable.prototype.get name):
2841 (AnonymousVariable.prototype.toString):
2842 * WebGPUShadingLanguageRI/ArrayRefType.js:
2843 (ArrayRefType.prototype.argumentForAndOverload):
2844 (ArrayRefType.prototype.argumentTypeForAndOverload):
2845 * WebGPUShadingLanguageRI/ArrayType.js:
2846 (ArrayType.prototype.argumentForAndOverload):
2847 (ArrayType.prototype.argumentTypeForAndOverload):
2849 * WebGPUShadingLanguageRI/Assignment.js:
2851 * WebGPUShadingLanguageRI/CallAssignment.js: Removed.
2852 * WebGPUShadingLanguageRI/CallExpression.js:
2853 (CallExpression.resolve):
2854 (CallExpression.prototype.resolve):
2855 (CallExpression.prototype.resolveToOverload):
2856 * WebGPUShadingLanguageRI/Checker.js:
2857 (Checker.prototype.visitProgram):
2858 (Checker.prototype.visitFuncDef):
2859 (Checker.prototype.visitNativeFunc):
2860 (Checker.prototype.visitProtocolDecl):
2861 (Checker.prototype.visitIdentityExpression):
2862 (Checker.prototype.visitReadModifyWriteExpression):
2863 (Checker.prototype.visitAnonymousVariable):
2864 (Checker.prototype.visitMakeArrayRefExpression):
2865 (Checker.prototype._finishVisitingPropertyAccess):
2866 (Checker.prototype.visitDotExpression):
2867 (Checker.prototype.visitIndexExpression):
2868 (Checker.prototype.visitCallExpression):
2870 (Checker.prototype.visitProtocolDecl.NoticeTypeVariable.prototype.visitTypeRef): Deleted.
2871 (Checker.prototype.visitProtocolDecl.NoticeTypeVariable.prototype.visitVariableRef): Deleted.
2872 (Checker.prototype.visitProtocolDecl.NoticeTypeVariable): Deleted.
2873 (Checker.prototype.visitProtocolDecl.set throw): Deleted.
2874 * WebGPUShadingLanguageRI/CommaExpression.js:
2875 * WebGPUShadingLanguageRI/DotExpression.js:
2877 (DotExpression.prototype.get struct):
2878 (DotExpression.prototype.get getFuncName):
2879 (DotExpression.prototype.get andFuncName):
2880 (DotExpression.prototype.get setFuncName):
2881 * WebGPUShadingLanguageRI/EBuffer.js:
2882 * WebGPUShadingLanguageRI/EBufferBuilder.js:
2883 (EBufferBuilder.prototype.visitAnonymousVariable):
2884 (EBufferBuilder.prototype.visitLetExpression): Deleted.
2885 * WebGPUShadingLanguageRI/Evaluator.js:
2886 (Evaluator.prototype.visitIdentityExpression):
2887 (Evaluator.prototype.visitMakePtrExpression):
2888 (Evaluator.prototype.visitAnonymousVariable):
2889 (Evaluator.prototype.visitDotExpression): Deleted.
2890 (Evaluator.prototype.visitLetExpression): Deleted.
2891 * WebGPUShadingLanguageRI/ExpressionFinder.js:
2892 (ExpressionFinder.prototype.visitReadModifyWriteExpression):
2893 (ExpressionFinder.prototype.visitIdentityExpression):
2894 * WebGPUShadingLanguageRI/ForLoop.js:
2895 (ForLoop.prototype.toString):
2897 * WebGPUShadingLanguageRI/Func.js:
2899 * WebGPUShadingLanguageRI/FuncInstantiator.js:
2900 (FuncInstantiator.prototype.getUnique.InstantiationSubstitution.prototype.visitCallExpression):
2901 (FuncInstantiator.prototype.getUnique.InstantiationSubstitution):
2902 (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitFuncDef):
2903 (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitNativeFunc):
2904 (FuncInstantiator.prototype.getUnique.Instantiate):
2905 (FuncInstantiator.prototype.getUnique):
2907 * WebGPUShadingLanguageRI/IdentityExpression.js: Added.
2908 (IdentityExpression):
2909 (IdentityExpression.prototype.get target):
2910 (IdentityExpression.prototype.get unifyNode):
2911 (IdentityExpression.prototype.get isConstexpr):
2912 (IdentityExpression.prototype.get isLValue):
2913 (IdentityExpression.prototype.get addressSpace):
2914 (IdentityExpression.prototype.toString):
2915 * WebGPUShadingLanguageRI/IndexExpression.js: Added.
2917 (IndexExpression.prototype.get array):
2918 (IndexExpression.prototype.get index):
2919 (IndexExpression.prototype.get isLValue):
2920 (IndexExpression.prototype.get addressSpace):
2921 (IndexExpression.prototype.get getFuncName):
2922 (IndexExpression.prototype.get andFuncName):
2923 (IndexExpression.prototype.get setFuncName):
2924 (IndexExpression.prototype.toString):
2925 * WebGPUShadingLanguageRI/InferTypesForCall.js:
2926 (inferTypesForCall):
2927 * WebGPUShadingLanguageRI/Inline.js:
2929 * WebGPUShadingLanguageRI/Inliner.js:
2930 (Inliner.prototype.visitCallExpression):
2931 (Inliner.prototype.visitDotExpression): Deleted.
2932 * WebGPUShadingLanguageRI/Intrinsics.js:
2934 * WebGPUShadingLanguageRI/LetExpression.js: Removed.
2935 * WebGPUShadingLanguageRI/MakeArrayRefExpression.js:
2936 (MakeArrayRefExpression.prototype.becomeConvertPtrToArrayRefExpression): Deleted.
2937 * WebGPUShadingLanguageRI/NameContext.js:
2939 (NameContext.prototype.add):
2940 (NameContext.prototype.doStatement):
2941 (NameContext.prototype.handleDefining): Deleted.
2942 (NameContext.prototype.isDefined): Deleted.
2943 (NameContext.prototype.define): Deleted.
2944 (NameContext.prototype.defineAll): Deleted.
2945 * WebGPUShadingLanguageRI/NameResolver.js:
2946 (NameResolver.prototype.doStatement):
2947 (NameResolver.prototype.visitProtocolDecl):
2948 (NameResolver.prototype.visitProgram): Deleted.
2949 * WebGPUShadingLanguageRI/NativeFunc.js:
2951 * WebGPUShadingLanguageRI/NativeFuncInstance.js:
2952 (NativeFuncInstance):
2953 (NativeFuncInstance.prototype.get implementationData):
2954 * WebGPUShadingLanguageRI/Node.js:
2955 (Node.prototype.visit):
2957 (Node.unify): Deleted.
2958 * WebGPUShadingLanguageRI/NormalUsePropertyResolver.js: Added.
2959 (NormalUsePropertyResolver.prototype.visitDotExpression):
2960 (NormalUsePropertyResolver.prototype.visitIndexExpression):
2961 (NormalUsePropertyResolver):
2962 * WebGPUShadingLanguageRI/Parse.js:
2963 (finishParsingPostIncrement):
2964 (parsePossibleSuffix):
2965 (finishParsingPreIncrement):
2966 (genericParseCommaExpression):
2968 * WebGPUShadingLanguageRI/Prepare.js:
2970 * WebGPUShadingLanguageRI/Program.js:
2972 (Program.prototype.get globalNameContext):
2973 (Program.prototype.add):
2974 * WebGPUShadingLanguageRI/PropertyAccessExpression.js: Added.
2975 (PropertyAccessExpression):
2976 (PropertyAccessExpression.prototype.get resultType):
2977 (PropertyAccessExpression.prototype.rewriteAfterCloning):
2978 (PropertyAccessExpression.prototype.updateCallsAfterChangingBase):
2979 (PropertyAccessExpression.prototype.emitGet):
2980 (PropertyAccessExpression.prototype.emitSet):
2981 * WebGPUShadingLanguageRI/PropertyResolver.js: Added.
2982 (PropertyResolver.prototype._visitPropertyAccess):
2983 (PropertyResolver.prototype.visitDotExpression):
2984 (PropertyResolver.prototype.visitIndexExpression):
2985 (PropertyResolver.prototype._handleReadModifyWrite):
2986 (PropertyResolver.prototype.visitReadModifyWriteExpression):
2987 (PropertyResolver.prototype.visitAssignment):
2988 (PropertyResolver.visitMakePtrExpression):
2989 (PropertyResolver.prototype.visitMakeArrayRefExpression):
2991 * WebGPUShadingLanguageRI/PtrType.js:
2992 (PtrType.prototype.argumentForAndOverload):
2993 (PtrType.prototype.argumentTypeForAndOverload):
2994 (PtrType.prototype.returnTypeFromAndOverload):
2995 * WebGPUShadingLanguageRI/ReadModifyWriteExpression.js: Added.
2996 (ReadModifyWriteExpression):
2997 (ReadModifyWriteExpression.prototype.get lValue):
2998 (ReadModifyWriteExpression.prototype.oldValueRef):
2999 (ReadModifyWriteExpression.prototype.newValueRef):
3000 (ReadModifyWriteExpression.prototype.toString):
3001 * WebGPUShadingLanguageRI/ResolveNames.js:
3002 (createNameResolver):
3003 (resolveNamesInTypes):
3004 (resolveNamesInProtocols):
3005 (resolveNamesInFunctions):
3006 (resolveNames): Deleted.
3007 * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
3008 (resolveOverloadImpl):
3009 * WebGPUShadingLanguageRI/ResolveProperties.js: Added.
3010 (resolveProperties):
3011 * WebGPUShadingLanguageRI/ResolveTypeDefs.js:
3012 (resolveTypeDefsInTypes):
3013 (resolveTypeDefsInProtocols):
3014 (resolveTypeDefsInFunctions):
3015 (resolveTypeDefs): Deleted.
3016 * WebGPUShadingLanguageRI/ReturnChecker.js:
3017 (ReturnChecker.prototype._isBoolCastFromLiteralTrue):
3018 * WebGPUShadingLanguageRI/Rewriter.js:
3020 (Rewriter.prototype.visitVariableDecl):
3021 (Rewriter.prototype.visitTypeRef):
3022 (Rewriter.prototype.visitAssignment):
3023 (Rewriter.prototype.visitReadModifyWriteExpression):
3024 (Rewriter.prototype.visitDereferenceExpression):
3025 (Rewriter.prototype._handlePropertyAccessExpression):
3026 (Rewriter.prototype.visitDotExpression):
3027 (Rewriter.prototype.visitIndexExpression):
3028 (Rewriter.prototype.visitReturn):
3029 (Rewriter.prototype.visitGenericLiteralType):
3030 (Rewriter.prototype.visitNullType):
3031 (Rewriter.prototype.processDerivedCallData):
3032 (Rewriter.prototype.visitCallExpression):
3033 (Rewriter.prototype.visitFunctionLikeBlock):
3034 (Rewriter.prototype.visitIfStatement):
3035 (Rewriter.prototype.visitForLoop):
3036 (Rewriter.prototype.visitAnonymousVariable):
3037 (Rewriter.prototype.visitIdentityExpression):
3038 (Rewriter.prototype.visitLetExpression): Deleted.
3039 * WebGPUShadingLanguageRI/StandardLibrary.js:
3040 * WebGPUShadingLanguageRI/StructLayoutBuilder.js:
3041 (StructLayoutBuilder.prototype.visitNativeFuncInstance):
3042 (StructLayoutBuilder):
3043 * WebGPUShadingLanguageRI/StructType.js:
3044 (StructType.prototype.instantiate):
3045 * WebGPUShadingLanguageRI/Substitution.js:
3046 (Substitution.prototype.get map):
3047 * WebGPUShadingLanguageRI/SuffixCallAssignment.js: Removed.
3048 * WebGPUShadingLanguageRI/SynthesizeStructAccessors.js: Added.
3049 (synthesizeStructAccessors.createTypeParameters):
3050 (synthesizeStructAccessors.):
3051 (synthesizeStructAccessors.createFieldType):
3052 (synthesizeStructAccessors.createTypeRef):
3053 (synthesizeStructAccessors.setupAnder):
3054 (synthesizeStructAccessors):
3055 * WebGPUShadingLanguageRI/Test.html:
3056 * WebGPUShadingLanguageRI/Test.js:
3058 (TEST_simpleProtocol):
3059 (TEST_assignLength):
3060 (TEST_simpleSetter):
3061 (TEST_genericAccessors):
3062 * WebGPUShadingLanguageRI/Type.js:
3063 (Type.prototype.get isRef):
3064 (Type.prototype.argumentForAndOverload):
3065 (Type.prototype.argumentTypeForAndOverload):
3066 (Type.prototype.returnTypeFromAndOverload):
3068 * WebGPUShadingLanguageRI/TypeParameterRewriter.js: Added.
3069 (TypeParameterRewriter.prototype.visitConstexprTypeParameter):
3070 (TypeParameterRewriter.prototype.visitTypeVariable):
3071 (TypeParameterRewriter):
3072 * WebGPUShadingLanguageRI/TypeVariableTracker.js: Added.
3073 (TypeVariableTracker):
3074 * WebGPUShadingLanguageRI/Value.js:
3075 (Value.prototype.become):
3077 * WebGPUShadingLanguageRI/VariableRef.js:
3078 (VariableRef.prototype.get unifyNode):
3079 (VariableRef.prototype.get addressSpace):
3080 * WebGPUShadingLanguageRI/Visitor.js:
3081 (Visitor.prototype.visitNativeFuncInstance):
3082 (Visitor.prototype.visitProtocolDecl):
3084 * WebGPUShadingLanguageRI/VisitorBase.js: Removed.
3086 2017-09-18 Andy Estes <aestes@apple.com>
3088 [Cocoa] Upstream WKSetCrashReportApplicationSpecificInformation() from WebKitSystemInterface
3089 https://bugs.webkit.org/show_bug.cgi?id=177048
3091 Reviewed by Alex Christensen.
3093 * DumpRenderTree/mac/DumpRenderTree.mm:
3095 * WebKitTestRunner/cocoa/CrashReporterInfo.mm:
3096 (WTR::setCrashReportApplicationSpecificInformationToURL):
3098 2017-09-18 Tim Horton <timothy_horton@apple.com>
3100 build-webkit spawns fewer subprocesses than ninja uses by default
3101 https://bugs.webkit.org/show_bug.cgi?id=177057
3103 Reviewed by Alex Christensen.
3105 * Scripts/build-webkit:
3106 By default, ninja will parallelize over (cores + 2) jobs. build-webkit
3107 specifies -j(cores), which overrides this. Remove our override if building
3108 with ninja; just let it do its own thing. In my testing, this minor
3109 change is the difference between ~10% idle CPU time and 0.
3111 2017-09-18 Lucas Forschler <lforschler@apple.com>
3113 Land a patch to verify svn->git update is working.
3115 2017-09-18 Ms2ger <Ms2ger@igalia.com>
3121 * Scripts/webkitpy/common/config/contributors.json:
3123 2017-09-17 Filip Pizlo <fpizlo@apple.com>
3125 Start working on WSL documentation
3126 https://bugs.webkit.org/show_bug.cgi?id=177064
3128 Reviewed by Mylex Maxfield.
3130 This is a work in progress. I'd like to check it in and then keep adding to it.
3132 * WebGPUShadingLanguageRI/WSL.md: Added.
3134 2017-09-17 Myles C. Maxfield <mmaxfield@apple.com>
3136 WSL needs to understand && and ||
3137 https://bugs.webkit.org/show_bug.cgi?id=177062
3139 Reviewed by Filip Pizlo.
3141 Very similar to LogicalNot.
3143 * WebGPUShadingLanguageRI/All.js:
3144 * WebGPUShadingLanguageRI/Checker.js:
3145 * WebGPUShadingLanguageRI/EBufferBuilder.js:
3146 (EBufferBuilder.prototype.visitLogicalExpression):
3147 * WebGPUShadingLanguageRI/Evaluator.js:
3148 (Evaluator.prototype.visitLogicalExpression):
3149 * WebGPUShadingLanguageRI/Lexer.js:
3150 (Lexer.prototype.next):
3152 * WebGPUShadingLanguageRI/LogicalExpression.js: Added.
3153 (LogicalExpression):
3154 (LogicalExpression.prototype.get text):
3155 (LogicalExpression.prototype.get left):
3156 (LogicalExpression.prototype.get right):
3157 (LogicalExpression.prototype.toString):
3158 * WebGPUShadingLanguageRI/Parse.js:
3159 (parseLeftLogicalExpression):
3160 * WebGPUShadingLanguageRI/Rewriter.js:
3161 (Rewriter.prototype.visitLogicalExpression):
3162 * WebGPUShadingLanguageRI/Test.html:
3163 * WebGPUShadingLanguageRI/Test.js:
3164 * WebGPUShadingLanguageRI/Visitor.js:
3165 (Visitor.prototype.visitProtocolDecl):
3167 2017-09-18 Ms2ger <Ms2ger@igalia.com>
3173 * Scripts/webkitpy/common/config/contributors.json:
3175 2017-09-17 Filip Pizlo <fpizlo@apple.com>
3177 Start working on WSL documentation
3178 https://bugs.webkit.org/show_bug.cgi?id=177064
3180 Reviewed by Mylex Maxfield.
3182 This is a work in progress. I'd like to check it in and then keep adding to it.
3184 * WebGPUShadingLanguageRI/WSL.md: Added.
3186 2017-09-17 Myles C. Maxfield <mmaxfield@apple.com>
3188 WSL needs to understand && and ||
3189 https://bugs.webkit.org/show_bug.cgi?id=177062
3191 Reviewed by Filip Pizlo.
3193 Very similar to LogicalNot.
3195 * WebGPUShadingLanguageRI/All.js:
3196 * WebGPUShadingLanguageRI/Checker.js:
3197 * WebGPUShadingLanguageRI/EBufferBuilder.js:
3198 (EBufferBuilder.prototype.visitLogicalExpression):
3199 * WebGPUShadingLanguageRI/Evaluator.js:
3200 (Evaluator.prototype.visitLogicalExpression):
3201 * WebGPUShadingLanguageRI/Lexer.js:
3202 (Lexer.prototype.next):
3204 * WebGPUShadingLanguageRI/LogicalExpression.js: Added.
3205 (LogicalExpression):
3206 (LogicalExpression.prototype.get text):
3207 (LogicalExpression.prototype.get left):
3208 (LogicalExpression.prototype.get right):
3209 (LogicalExpression.prototype.toString):
3210 * WebGPUShadingLanguageRI/Parse.js:
3211 (parseLeftLogicalExpression):
3212 * WebGPUShadingLanguageRI/Rewriter.js:
3213 (Rewriter.prototype.visitLogicalExpression):
3214 * WebGPUShadingLanguageRI/Test.html:
3215 * WebGPUShadingLanguageRI/Test.js:
3216 * WebGPUShadingLanguageRI/Visitor.js:
3217 (Visitor.prototype.visitProtocolDecl):
3219 2017-09-17 Myles C. Maxfield <mmaxfield@apple.com>
3221 WSL needs float and double support
3222 https://bugs.webkit.org/show_bug.cgi?id=177058
3224 Reviewed by Filip Pizlo.
3226 Use the existing int and uint types as a model. The types themselves are straighforward. Just like int and uint,
3227 you can't pass a float as a double argument and vice-versa. This patch adds operator+, -, *, and / for floats
3230 Float literals are more complicated. If your number has a "." character in it, it is treated as a float literal.
3231 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
3232 able to masquerade as either floats or doubles (unlike an explicit type). However, these literals are not able
3233 to masquerade as ints or uints. There's also a nice check that your float literal can actually fit in a float.
3235 * WebGPUShadingLanguageRI/All.js:
3236 * WebGPUShadingLanguageRI/DoubleLiteral.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js.
3237 (let.DoubleLiteral.createLiteral.createType):
3238 * WebGPUShadingLanguageRI/DoubleLiteralType.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js.
3239 (let.DoubleLiteralType.createLiteralType.verifyAsArgument):
3240 * WebGPUShadingLanguageRI/FloatLiteral.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js.
3241 (let.FloatLiteral.createLiteral.createType):
3242 * WebGPUShadingLanguageRI/FloatLiteralType.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js.
3243 (let.FloatLiteralType.createLiteralType.verifyAsArgument):
3244 * WebGPUShadingLanguageRI/Intrinsics.js:
3246 * WebGPUShadingLanguageRI/Lexer.js:
3247 (Lexer.prototype.next):
3249 * WebGPUShadingLanguageRI/NativeType.js:
3251 (NativeType.prototype.get isFloating):
3252 (NativeType.prototype.set isFloating):
3253 (NativeType.prototype.get isFloat): Deleted.
3254 (NativeType.prototype.set isFloat): Deleted.
3255 * WebGPUShadingLanguageRI/Parse.js:
3257 * WebGPUShadingLanguageRI/Rewriter.js:
3258 (Rewriter.prototype.visitGenericLiteral):
3259 * WebGPUShadingLanguageRI/StandardLibrary.js:
3262 * WebGPUShadingLanguageRI/Test.html:
3263 * WebGPUShadingLanguageRI/Test.js:
3269 * WebGPUShadingLanguageRI/Type.js:
3270 (Type.prototype.get isFloating):
3271 (Type.prototype.get isFloat): Deleted.
3273 2017-09-17 Michael Saboff <msaboff@apple.com>
3275 https://bugs.webkit.org/show_bug.cgi?id=177038
3276 Add an option to run-jsc-stress-tests to limit tests variations to a basic set
3278 Reviewed by JF Bastien.
3280 Added the --basic option that runs defaults tests with the following modes, default, no-llint,
3281 no-cjit-validate-phases, no-cjit-collect-continuously, dfg-eager and for FTL platforms: no-ftl,
3282 ftl-eager-no-cjit and ftl-no-cjit-small-pool. This takes about half the time as running all
3283 16 modes of a full run.
3285 * Scripts/run-jsc-stress-tests:
3287 2017-09-16 Tim Horton <timothy_horton@apple.com>
3289 Fix the Tools build with CMake on macOS
3290 https://bugs.webkit.org/show_bug.cgi?id=177030
3292 Reviewed by Geoffrey Garen.
3294 * TestWebKitAPI/CMakeLists.txt:
3295 Add a workaround identical to what the gtest CMakeLists has.
3297 2017-09-16 Carlos Garcia Campos <cgarcia@igalia.com>
3299 [GTK] Bump fontconfig version to 2.12.4
3300 https://bugs.webkit.org/show_bug.cgi?id=176997
3302 Reviewed by Michael Catanzaro.
3304 It's the latest stable version and we can get rid of the patches we have.
3306 * WebKitTestRunner/gtk/fonts/fonts.conf: Remove hinting config we no longer need with newer FreeType and
3307 deprecated <blank> that current fontconfig just ignores.
3308 * gtk/jhbuild.modules:
3309 * gtk/patches/fontconfig-2.11.1-add-autogen.patch: Removed.
3310 * gtk/patches/fontconfig-Avoid-conflicts-with-integer-width-macros-from-TS-18661-1-2014.patch: Removed.
3311 * gtk/patches/fontconfig-Fix-the-build-issue-with-gperf-3.1.patch: Removed.
3312 * gtk/patches/fontconfig-fix-osx-cache.diff: Removed.
3314 2017-09-15 Lucas Forschler <lforschler@apple.com>
3316 Move run-webkit-archive from Tools/Scripts to Tools/BuildSlaveSupport
3318 Reviewed by Alexey Proskuryakov.
3320 * Scripts/run-webkit-archive: Removed.
3322 2017-09-15 Lucas Forschler <lforschler@apple.com>
3324 teach build.webkit.org to include run-webkit-archive in the root folder of uploaded macOS archives.
3325 https://bugs.webkit.org/show_bug.cgi?id=176965
3327 Reviewed by Alexey Proskuryakov.
3329 * BuildSlaveSupport/built-product-archive:
3330 (addLauncherToArchive): Helper function to add the launcher script
3331 (createZip): teach function about addLauncherToArchive
3332 * BuildSlaveSupport/run-webkit-archive: Added.
3333 (check_for_valid_platform): Add logic to ensure platform is Darwin
3334 (find_dyld_framework_path): Find the dyld framework path
3335 (run_safari_for_webkit_development): launch SafariForWebKitDevelopment
3336 (set_dyld_framework_path): export the environment for dydl framework path
3338 2017-09-15 Myles C. Maxfield <mmaxfield@apple.com>
3340 [WSL] Small cleanup in Evaluator
3341 https://bugs.webkit.org/show_bug.cgi?id=176971
3343 Reviewed by Filip Pizlo.
3345 Use the symbols for break and continue instead of the objects themselves.
3347 No tests because there is no behavior change.
3349 * WebGPUShadingLanguageRI/Evaluator.js:
3350 (Evaluator.prototype.visitWhileLoop):
3351 (Evaluator.prototype.visitDoWhileLoop):
3352 (Evaluator.prototype.visitForLoop):
3353 (Evaluator.prototype.visitBreak):
3354 (Evaluator.prototype.visitContinue):
3356 2017-09-15 Filip Pizlo <fpizlo@apple.com>
3358 WSL Evaluator should only allocate EBuffers when dealing with intrinsics
3359 https://bugs.webkit.org/show_bug.cgi?id=176973
3361 Reviewed by Myles Maxfield.
3363 Whether or not two temporary values share the same EBuffer is ultimately observable in WSL,
3364 because you can do this:
3366 thread int^ operator&[](thread int^ ptr, uint index)
3372 And then this is a thing:
3375 // g_ptr now points to 42's location
3377 Normally this would have a lot of bad implications. But in WSL, if you did choose to do this,
3378 you'd get a pointer to something well-defined: the EBuffer of 42's GenericLiteral. Each static
3379 occurrence of a literal gets its own location, and the semantics of the language call for
3380 42 to be stored into this location when `42` "executes". So, while the programmer could do all
3381 kinds of strange things, at least the strangeness they would see is something we can spec.
3383 But to do this, the interpreter needs to allocate EBuffers in the same way a compiler would.
3384 It cannot allocate them during execution, except when interacting with intrinsics, which won't
3385 know the difference.
3387 In the process, I found places that needed to use AutoWrapper instead of TypeRef.wrap.
3389 * WebGPUShadingLanguageRI/AutoWrapper.js:
3390 (AutoWrapper.prototype.visitGenericLiteralType):
3391 (AutoWrapper.prototype.visitNullType):
3393 * WebGPUShadingLanguageRI/CallExpression.js:
3394 (CallExpression.prototype.resolve):
3395 * WebGPUShadingLanguageRI/CallFunction.js:
3397 * WebGPUShadingLanguageRI/Checker.js:
3398 * WebGPUShadingLanguageRI/CreateLiteralType.js:
3399 (createLiteralType.GenericLiteralType.prototype.commitUnification):
3400 * WebGPUShadingLanguageRI/EBuffer.js:
3402 (EBuffer.setCanAllocateEBuffers):
3403 (EBuffer.disallowAllocation):
3404 (EBuffer.allowAllocation):
3405 * WebGPUShadingLanguageRI/EBufferBuilder.js:
3406 (EBufferBuilder.prototype.visitVariableDecl):
3407 (EBufferBuilder.prototype.visitFuncDef):
3408 (EBufferBuilder.prototype.visitFunctionLikeBlock):
3409 (EBufferBuilder.prototype.visitCallExpression):
3410 (EBufferBuilder.prototype.visitMakePtrExpression):
3411 (EBufferBuilder.prototype.visitGenericLiteral):
3412 (EBufferBuilder.prototype.visitNullLiteral):
3413 (EBufferBuilder.prototype.visitBoolLiteral):
3414 (EBufferBuilder.prototype.visitLogicalNot):
3416 * WebGPUShadingLanguageRI/EPtr.js:
3418 (EPtr.prototype.box):
3419 * WebGPUShadingLanguageRI/Evaluator.js:
3420 (Evaluator.prototype._snapshot):
3421 (Evaluator.prototype.runFunc):
3422 (Evaluator.prototype._runBody):
3423 (Evaluator.prototype.visitFunctionLikeBlock):
3424 (Evaluator.prototype.visitMakePtrExpression):
3425 (Evaluator.prototype.visitGenericLiteral):
3426 (Evaluator.prototype.visitNullLiteral):
3427 (Evaluator.prototype.visitBoolLiteral):
3428 (Evaluator.prototype.visitLogicalNot):
3429 (Evaluator.prototype.visitCallExpression):
3431 (Evaluator.prototype.runBody): Deleted.
3432 * WebGPUShadingLanguageRI/Inliner.js:
3433 (Inliner.prototype.visitCallExpression):
3434 * WebGPUShadingLanguageRI/InstantiateImmediates.js:
3435 (InstantiateImmediates.prototype.visitTypeRef):
3436 * WebGPUShadingLanguageRI/Rewriter.js:
3437 (Rewriter.prototype.visitMakePtrExpression):
3438 (Rewriter.prototype.visitGenericLiteral):
3439 (Rewriter.prototype.visitNullLiteral):
3440 (Rewriter.prototype.processDerivedCallData):
3441 (Rewriter.prototype.visitFunctionLikeBlock):
3442 (Rewriter.prototype.visitLogicalNot):
3443 * WebGPUShadingLanguageRI/TypeRef.js:
3444 (TypeRef.prototype.toString):
3446 * WebGPUShadingLanguageRI/Visitor.js:
3447 (Visitor.prototype.visitProtocolDecl):
3449 2017-09-14 Filip Pizlo <fpizlo@apple.com>
3451 Rationalize how WSL's operator&[] works
3452 https://bugs.webkit.org/show_bug.cgi?id=176958
3454 Reviewed by Myles Maxfield.
3456 This makes operator&[] work with non-array-ref types. The way this works is that if you do base[index]
3457 then we pattern match base's type and proceed accordingly:
3459 If base's type is T^:
3462 If base's type is T[]:
3465 If base's type is T[c]:
3466 => Wrap it with a MakeArrayRefExpression and accept.
3469 => Wrap it with a MakePtrExpression and accept.
3471 This makes it possible for operator&[] to work with lvalues. It also means that operator&[] gets to
3472 "see" the temporary values we create via snapshot() in the interpreter. We'll have to fix that, and I've
3473 filed bug 176973 for that. Once that's fixed, this will have well-defined behavior, though with the very
3474 peculiar caveat that an expression like this:
3476 totallyNotAnLValue()[42]
3478 Could be used to get a pointer to a non-lvalue. But we can be extremely precise about what that means
3479 and prohibit dangling pointers, which is kinda crazy.
3481 In order to do this, I had to make MakeArrayRefExpression work, so I did that and added tests for it.
3483 * WebGPUShadingLanguageRI/All.js:
3484 * WebGPUShadingLanguageRI/ArrayRefType.js:
3485 (ArrayRefType.prototype.unifyImpl):
3486 (ArrayRefType.prototype.toString):
3488 * WebGPUShadingLanguageRI/ArrayType.js:
3490 (ArrayType.prototype.get numElementsValue):
3491 (ArrayType.prototype.get size):
3492 (ArrayType.prototype.populateDefaultValue):
3493 (ArrayType.prototype.unifyImpl):
3494 * WebGPUShadingLanguageRI/Checker.js:
3495 * WebGPUShadingLanguageRI/ConvertPtrToArrayRefExpression.js: Added.
3496 (ConvertPtrToArrayRefExpression):
3497 (ConvertPtrToArrayRefExpression.prototype.get lValue):
3498 (ConvertPtrToArrayRefExpression.prototype.toString):
3499 * WebGPUShadingLanguageRI/CreateLiteral.js:
3500 (createLiteral.GenericLiteral.withType):
3501 (createLiteral.GenericLiteral.prototype.get isLiteral):
3502 (createLiteral.GenericLiteral.prototype.unifyImpl):
3503 * WebGPUShadingLanguageRI/DotExpression.js:
3504 (DotExpression.prototype.get addressSpace):
3505 * WebGPUShadingLanguageRI/Evaluator.js:
3506 (Evaluator.prototype.visitMakeArrayRefExpression):
3507 (Evaluator.prototype.visitConvertPtrToArrayRefExpression):
3508 * WebGPUShadingLanguageRI/Intrinsics.js:
3510 * WebGPUShadingLanguageRI/MakeArrayRefExpression.js: Added.
3511 (MakeArrayRefExpression):
3512 (MakeArrayRefExpression.prototype.get lValue):
3513 (MakeArrayRefExpression.prototype.becomeConvertPtrToArrayRefExpression):
3514 (MakeArrayRefExpression.prototype.toString):
3515 * WebGPUShadingLanguageRI/MakePtrExpression.js:
3516 (MakePtrExpression.prototype.toString):
3517 (MakePtrExpression):
3518 * WebGPUShadingLanguageRI/PtrType.js:
3519 (PtrType.prototype.toString):
3521 * WebGPUShadingLanguageRI/ReferenceType.js:
3523 * WebGPUShadingLanguageRI/Rewriter.js:
3524 (Rewriter.prototype.visitArrayType):
3525 (Rewriter.prototype.visitMakeArrayRefExpression):
3526 (Rewriter.prototype.visitConvertPtrToArrayRefExpression):
3527 * WebGPUShadingLanguageRI/StandardLibrary.js:
3528 * WebGPUShadingLanguageRI/Test.html:
3529 * WebGPUShadingLanguageRI/Test.js:
3530 (TEST_buildArrayThenSumItUsingArrayReference):
3531 (TEST_overrideSubscriptStruct):
3532 (TEST_overrideSubscriptStructAndUsePointers):
3533 (TEST_overrideSubscriptStructAndUsePointersIncorrectly):
3534 (TEST_makeArrayRefFromPointer):
3535 (TEST_makeArrayRefFromArrayRef):
3536 * WebGPUShadingLanguageRI/Visitor.js:
3537 (Visitor.prototype.visitProtocolDecl):
3539 2017-09-14 Filip Pizlo <fpizlo@apple.com>
3541 WSL should support ++, --, +=, and all of those things
3542 https://bugs.webkit.org/show_bug.cgi?id=176975
3544 Reviewed by Myles Maxfield.
3546 This adds an internal AST construct called LetExpression, that allows us to anonymously capture
3547 a value. This change uses LetExpression to implement prefix and suffix ++/-- and all of the
3550 * WebGPUShadingLanguageRI/All.js:
3551 * WebGPUShadingLanguageRI/Checker.js:
3552 * WebGPUShadingLanguageRI/EBufferBuilder.js:
3553 (EBufferBuilder.prototype.visitVariableDecl):
3554 (EBufferBuilder.prototype.visitLetExpression):
3556 * WebGPUShadingLanguageRI/Evaluator.js:
3557 (Evaluator.prototype.visitLetExpression):
3558 * WebGPUShadingLanguageRI/LetExpression.js: Added.
3560 (LetExpression.prototype.get origin):
3561 (LetExpression.prototype.get name):
3562 (LetExpression.prototype.toString):
3563 * WebGPUShadingLanguageRI/Lexer.js:
3564 (Lexer.prototype.next):
3566 * WebGPUShadingLanguageRI/NameResolver.js:
3567 (NameResolver.prototype.visitProtocolDecl):
3568 * WebGPUShadingLanguageRI/Parse.js:
3570 (finishParsingPostIncrement):
3571 (parsePossibleSuffix):
3572 (finishParsingPreIncrement):
3573 (parsePreIncrement):
3574 (parsePossiblePrefix):
3575 (parsePossibleAssignment):
3576 (parsePostIncrement):
3577 (parseEffectfulExpression):
3578 * WebGPUShadingLanguageRI/Rewriter.js:
3579 (Rewriter.prototype.visitFunctionLikeBlock):
3580 (Rewriter.prototype.visitLetExpression):
3582 * WebGPUShadingLanguageRI/StandardLibrary.js:
3585 * WebGPUShadingLanguageRI/Test.html:
3586 * WebGPUShadingLanguageRI/Test.js:
3587 (TEST_prefixPlusPlus):
3588 (TEST_prefixPlusPlusResult):
3589 (TEST_postfixPlusPlus):
3590 (TEST_postfixPlusPlusResult):
3591 (TEST_prefixMinusMinus):
3592 (TEST_prefixMinusMinusResult):
3593 (TEST_postfixMinusMinus):
3594 (TEST_postfixMinusMinusResult):
3596 (TEST_plusEqualsResult):
3598 (TEST_minusEqualsResult):
3600 (TEST_timesEqualsResult):
3601 (TEST_divideEquals):
3602 (TEST_divideEqualsResult):
3603 * WebGPUShadingLanguageRI/Visitor.js:
3604 (Visitor.prototype.visitProtocolDecl):
3606 2017-09-15 Brent Fulgham <bfulgham@apple.com>
3608 Provide mechanism to immediately end tests
3609 https://bugs.webkit.org/show_bug.cgi?id=176364
3610 <rdar://problem/34254780>
3612 Reviewed by Alex Christensen.
3614 WebKitTestRunner does not output state if the top loading frame has not been removed. This prevents some
3615 tests that attempt to exercise failed load state from working properly.
3617 This change adds a new 'forceImmediateCompletion' handler for DumpRenderTree and WebKitTestRunner so
3618 that we can properly test these conditions.
3620 * DumpRenderTree/TestRunner.h:
3621 * DumpRenderTree/mac/TestRunnerMac.mm:
3622 (TestRunner::forceImmediateCompletion): Added.
3623 * DumpRenderTree/win/TestRunnerWin.cpp:
3624 (TestRunner::forceImmediateCompletion): Ditto.
3625 * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
3626 * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
3627 (WTR::TestRunner::forceImmediateCompletion): Ditto.
3628 * WebKitTestRunner/InjectedBundle/TestRunner.h:
3630 2017-09-15 Youenn Fablet <youenn@apple.com>
3632 Add an URL method to remove both query string and fragment identifier
3633 https://bugs.webkit.org/show_bug.cgi?id=176911
3635 Reviewed by Alex Christensen.
3637 Adding unit test for new URL method as well as modified setQuery and setFragmentIdentifier.
3639 * TestWebKitAPI/Tests/WebCore/URL.cpp:
3640 (TestWebKitAPI::createURL):
3641 (TestWebKitAPI::TEST_F):
3643 2017-09-14 Yousuke Kimoto <yousuke.kimoto@sony.com>
3645 [WinCairo] Add an option to build WebKitLegacy and WebKit
3646 https://bugs.webkit.org/show_bug.cgi?id=176891
3648 Since TestWebKitAPI and MiniBrowser/win are used for WebKitLegacy,
3649 those subdirectories are ignored for WebKit build.
3651 Reviewed by Alex Christensen.
3655 2017-09-14 Lucas Forschler <lforschler@apple.com>
3657 Create a launcher for webkit-archives
3658 https://bugs.webkit.org/show_bug.cgi?id=176964
3660 Reviewed by Aakash Jain.
3662 * Scripts/run-webkit-archive: Added.
3663 (find_dyld_framework_path):
3664 (run_safari_for_webkit_development):
3665 (set_dyld_framework_path):
3668 2017-09-14 Alex Christensen <achristensen@webkit.org>
3670 Add WKUIDelegatePrivate equivalent of WKPageUIClient's drawHeader, drawFooter, headerHeight, and footerHeight
3671 https://bugs.webkit.org/show_bug.cgi?id=176889
3672 <rdar://problem/29270035>
3674 Reviewed by Andy Estes.
3676 * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
3677 (-[PrintDelegate _webView:printFrame:]):
3678 (-[PrintDelegate _webViewHeaderHeight:]):
3679 (-[PrintDelegate _webViewFooterHeight:]):
3680 (-[PrintDelegate _webView:drawHeaderInRect:forPageWithTitle:URL:]):
3681 (-[PrintDelegate _webView:drawFooterInRect:forPageWithTitle:URL:]):
3684 * TestWebKitAPI/cocoa/TestWKWebView.h:
3685 * TestWebKitAPI/cocoa/TestWKWebView.mm:
3686 (-[TestWKWebView hostWindow]):
3688 2017-09-14 Ryan Haddad <ryanhaddad@apple.com>
3690 Unreviewed, rolling out r222033.
3692 This change caused API test WebKit.PrintFrame to time out.
3696 "Add WKUIDelegatePrivate equivalent of WKPageUIClient's
3697 drawHeader, drawFooter, headerHeight, and footerHeight"
3698 https://bugs.webkit.org/show_bug.cgi?id=176889
3699 http://trac.webkit.org/changeset/222033
3701 2017-09-14 Youenn Fablet <youenn@apple.com>
3703 Allow WTF::map to take function as parameter
3704 https://bugs.webkit.org/show_bug.cgi?id=176909
3706 Reviewed by Jer Noble.
3708 * TestWebKitAPI/Tests/WTF/Vector.cpp:
3709 (TestWebKitAPI::multiplyByTwo):
3710 (TestWebKitAPI::TEST):
3711 (TestWebKitAPI::multiplyByTwoMoveOnly):
3713 2017-09-14 Filip Pizlo <fpizlo@apple.com>
3715 WSL IntLiteralType should become int32 if unified with a type variable
3716 https://bugs.webkit.org/show_bug.cgi?id=176707
3718 Reviewed by Myles Maxfield.
3720 This makes it so that this works:
3722 T foo<T>(T x) { return x; }
3723 foo(42); // T becomes int32
3725 Previously, it did not work because IntLiteralType did not recognize TypeVariable as a number. Also,
3726 TypeVariable would try to evaluate protocol inheritance of IntLiteralType, which would not go well. One
3727 of the tests that this patch adds didn't just fail; it gave such an absurd 7-line type error that I felt
3728 like I was using SML.
3730 This fixes the problem by introducing what I think is a super deterministic way of handling literals and
3733 Before verifying a unification context, we now give all literals a chance to perform an extra
3734 unification step. This is a two-phase process. This ensures that the unification performed by one
3735 literal does not throw off the logic of some other literal. For example, if we do:
3737 void foo<T>(T, T) { }
3740 Then we want to always fail to compile, rather than sometimes succeeding. So, we first ask each literal
3741 if it thinks that it needs to do extra unification. Both of the literals will report that they want to
3742 in this case, because they will notice that they got unified with either at type variable or a literal,
3743 which isn't specific enough. Then after they all register to do extra unification, they will both try to
3744 unify with their preferred types (int32 for 42, uint32 for 42u). The first one will succeed, and the
3745 second will give an error.
3747 Without the special two-phase arrangement, it was possible to either get a type error or not depending
3748 on the order - for example foo(42, 42u) might fail while foo(42u, 42) succeeds. It was definitely not
3749 decidable, at least not unless you mandate the unification order as part of the type system spec. I
3750 think that would have been nuts.
3752 Both IntLiteral and UintLiteral are now "flexible"; the uint one will reject non-int or signed int
3753 types and will prefer uint, but otherwise it's the same logic. This means that this will be valid:
3757 But this is still wrong:
3761 To make this easy, I turned IntLiteral and UintLiteral (and IntLiteralType and UintLiteralType) into
3762 factory-built generic types (see createLiteral() and createLiteralType()). Because visitors use the
3763 constructor's declared name (GenericLiteral and GenericLiteralType in this case), it means that we can
3764 share a ton of code between the different literals. I love that ES6 lets you do that.
3766 * WebGPUShadingLanguageRI/All.js:
3767 * WebGPUShadingLanguageRI/Checker.js:
3768 * WebGPUShadingLanguageRI/CreateLiteral.js: Added.
3769 (createLiteral.GenericLiteral):
3770 (createLiteral.GenericLiteral.prototype.get value):
3771 (createLiteral.GenericLiteral.prototype.get isConstexpr):
3772 (createLiteral.GenericLiteral.prototype.toString):
3774 * WebGPUShadingLanguageRI/CreateLiteralType.js: Added.
3775 (createLiteralType.GenericLiteralType):
3776 (createLiteralType.GenericLiteralType.prototype.get origin):
3777 (createLiteralType.GenericLiteralType.prototype.get value):
3778 (createLiteralType.GenericLiteralType.prototype.get isPrimitive):
3779 (createLiteralType.GenericLiteralType.prototype.get isUnifiable):
3780 (createLiteralType.GenericLiteralType.prototype.get isLiteral):
3781 (createLiteralType.GenericLiteralType.prototype.typeVariableUnify):
3782 (createLiteralType.GenericLiteralType.prototype.unifyImpl):
3783 (createLiteralType.GenericLiteralType.prototype.prepareToVerify):
3784 (createLiteralType.GenericLiteralType.prototype.verifyAsArgument):
3785 (createLiteralType.GenericLiteralType.prototype.verifyAsParameter):
3786 (createLiteralType.GenericLiteralType.prototype.conversionCost):
3787 (createLiteralType.GenericLiteralType.prototype.commitUnification):
3788 (createLiteralType.GenericLiteralType.prototype.toString):
3789 (createLiteralType):
3790 * WebGPUShadingLanguageRI/Evaluator.js:
3791 (Evaluator.prototype.visitIntLiteral): Deleted.
3792 (Evaluator.prototype.visitUintLiteral): Deleted.
3793 * WebGPUShadingLanguageRI/IntLiteral.js:
3794 (let.IntLiteral.createLiteral.createType):
3795 (IntLiteral): Deleted.
3796 (IntLiteral.prototype.get value): Deleted.
3797 (IntLiteral.prototype.get isConstexpr): Deleted.
3798 (IntLiteral.prototype.toString): Deleted.
3799 * WebGPUShadingLanguageRI/IntLiteralType.js:
3800 (IntLiteralType): Deleted.
3801 (IntLiteralType.prototype.get origin): Deleted.
3802 (IntLiteralType.prototype.get value): Deleted.
3803 (IntLiteralType.prototype.get isPrimitive): Deleted.
3804 (IntLiteralType.prototype.get isUnifiable): Deleted.
3805 (IntLiteralType.prototype.typeVariableUnify): Deleted.
3806 (IntLiteralType.prototype.unifyImpl): Deleted.
3807 (IntLiteralType.prototype.verifyAsArgument): Deleted.
3808 (IntLiteralType.prototype.verifyAsParameter): Deleted.
3809 (IntLiteralType.prototype.conversionCost): Deleted.
3810 (IntLiteralType.prototype.commitUnification): Deleted.
3811 (IntLiteralType.prototype.toString): Deleted.
3812 * WebGPUShadingLanguageRI/Intrinsics.js:
3814 * WebGPUShadingLanguageRI/LiteralTypeChecker.js:
3815 (LiteralTypeChecker.prototype.visitIntLiteralType): Deleted.
3816 * WebGPUShadingLanguageRI/Node.js:
3817 (Node.prototype.prepareToVerify):
3818 (Node.prototype.commitUnification):
3819 (Node.prototype.get isLiteral):
3820 * WebGPUShadingLanguageRI/NullType.js:
3821 (NullType.prototype.get isLiteral):
3822 (NullType.prototype.toString):
3824 * WebGPUShadingLanguageRI/Parse.js:
3826 * WebGPUShadingLanguageRI/Rewriter.js:
3827 (Rewriter.prototype.visitGenericLiteralType):
3828 (Rewriter.prototype.visitIntLiteral): Deleted.
3829 (Rewriter.prototype.visitIntLiteralType): Deleted.
3830 (Rewriter.prototype.visitUintLiteral): Deleted.
3831 (Rewriter.prototype.visitBoolLiteral): Deleted.
3832 * WebGPUShadingLanguageRI/Test.html:
3833 * WebGPUShadingLanguageRI/Test.js:
3836 (TEST_uintSimpleMath):
3839 (TEST_intLiteralGeneric):
3840 (TEST_intLiteralGenericWithProtocols):
3841 (TEST_uintLiteralGeneric):
3842 (TEST_uintLiteralGenericWithProtocols):
3843 (TEST_intLiteralGenericSpecific):
3844 (TEST_twoIntLiterals):
3845 (TEST_unifyDifferentLiterals):
3846 (makeUInt): Deleted.
3847 (checkUInt): Deleted.
3848 * WebGPUShadingLanguageRI/Type.js:
3849 * WebGPUShadingLanguageRI/UintLiteral.js:
3850 (let.UintLiteral.createLiteral.createType):
3851 (UintLiteral): Deleted.
3852 (UintLiteral.prototype.get value): Deleted.
3853 (UintLiteral.prototype.get isConstexpr): Deleted.
3854 (UintLiteral.prototype.toString): Deleted.
3855 * WebGPUShadingLanguageRI/UintLiteralType.js: Added.
3856 (let.UintLiteralType.createLiteralType.verifyAsArgument):
3857 * WebGPUShadingLanguageRI/UnificationContext.js:
3858 (UnificationContext.prototype.verify):
3859 * WebGPUShadingLanguageRI/Visitor.js:
3860 (Visitor.prototype.visitProtocolDecl):
3862 2017-09-14 Ryan Haddad <ryanhaddad@apple.com>
3864 Unreviewed, rolling out r221868.
3866 Rolling out this change while we investigate test262 failures.
3870 "Turn on exception scope verification for JSC tests."
3871 https://bugs.webkit.org/show_bug.cgi?id=162351
3872 http://trac.webkit.org/changeset/221868
3874 2017-09-14 Alex Christensen <achristensen@webkit.org>
3876 Add WKUIDelegatePrivate equivalent of WKPageUIClient's drawHeader, drawFooter, headerHeight, and footerHeight
3877 https://bugs.webkit.org/show_bug.cgi?id=176889
3878 <rdar://problem/29270035>
3880 Reviewed by Andy Estes.
3882 * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
3883 (-[PrintDelegate _webView:printFrame:]):
3884 (-[PrintDelegate _webViewHeaderHeight:]):
3885 (-[PrintDelegate _webViewFooterHeight:]):
3886 (-[PrintDelegate _webView:drawHeaderInRect:forPageWithTitle:URL:]):
3887 (-[PrintDelegate _webView:drawFooterInRect:forPageWithTitle:URL:]):
3890 * TestWebKitAPI/cocoa/TestWKWebView.h:
3891 * TestWebKitAPI/cocoa/TestWKWebView.mm:
3892 (-[TestWKWebView hostWindow]):
3894 2017-09-14 Carlos Alberto Lopez Perez <clopez@igalia.com>
3896 [GTK] Add a switch to start the mini-browser in full-screen mode
3897 https://bugs.webkit.org/show_bug.cgi?id=176904
3899 Reviewed by Carlos Garcia Campos.
3901 * MiniBrowser/gtk/main.c:
3904 2017-09-14 Filip Pizlo <fpizlo@apple.com>
3906 Unreviewed, fix a typo that was preventing a test from running.
3908 * WebGPUShadingLanguageRI/Test.js:
3910 2017-09-14 Carlos Garcia Campos <cgarcia@igalia.com>
3912 [GTK] Fail to build using internal jhbuild if libgtk3-dev is not installed in the system
3913 https://bugs.webkit.org/show_bug.cgi?id=176778
3915 Reviewed by Carlos Alberto Lopez Perez.
3917 We are building gtk+ in the jhbuild with introspection disabled, but Gtk-3.gir is required to build the
3918 WebKitGTK+ introspection. Also, if wayland-protocols is not installed, gtk+ is built without the wayland backend
3919 and it's no possible to enable the wayland target in WebKitGTK+ either.
3921 * gtk/jhbuild.modules: Do not disable introspection when building gtk+ and add wayland-protocols as a dependency.
3923 2017-09-14 Maureen Daum <mdaum@apple.com>
3925 Introduce the option to mark an HTML element as having AutoFill available.
3926 https://bugs.webkit.org/show_bug.cgi?id=176710
3928 Reviewed by Alex Christensen.
3930 Add an API test that verifies after we mark a field as having AutoFill available,
3931 Accessibility also considers it to have AutoFill available.
3933 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add AutoFillAvailable.mm
3934 * TestWebKitAPI/Tests/WebKitCocoa/AutoFillAvailable.mm: Added.
3935 Create an input element, mark it as having AutoFill available, then focus it so that
3936 we can get the accessibility information for it. Ask accessibility whether it considers
3937 the field to have AutoFill available, and pick the alert message based on that.
3938 (-[AutoFillAvailable webProcessPlugIn:didCreateBrowserContextController:]):
3939 * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
3941 (-[AutoFillAvailableDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
3942 Verify that we get the alert message indicating that accessibility indeed considers
3943 the input element as having AutoFill available after we explicitly marked it as so.
3945 2017-09-13 John Wilander <wilander@apple.com>
3947 Introduce Storage Access API (document parts) as an experimental feature
3948 https://bugs.webkit.org/show_bug.cgi?id=175759
3949 <rdar://problem/34414107>
3951 Reviewed by Alex Christensen.
3953 * WebKitTestRunner/TestController.cpp:
3954 (WTR::TestController::resetPreferencesToConsistentValues):
3955 Turns the feature on for tests.
3957 2017-09-13 Matt Lewis <jlewis3@apple.com>
3959 Unreviewed, rolling out r221976.
3961 The test introduced was flaky from point of addition.
3965 "Introduce Storage Access API (document parts) as an
3966 experimental feature"
3967 https://bugs.webkit.org/show_bug.cgi?id=175759
3968 http://trac.webkit.org/changeset/221976
3970 2017-09-13 Lucas Forschler <lforschler@apple.com>
3972 Compress spindumps on client side before packaging into layout test results zip (mac & ios)
3973 https://bugs.webkit.org/show_bug.cgi?id=176853
3975 Reviewed by Aakash Jain.
3977 * BuildSlaveSupport/test-result-archive:
3979 (gzip_file): use gzip to compress a file, removing original
3980 (compress_spindumps): find and compress spindumps matching a filter
3981 (archive_test_results): refactor to snake_case
3982 (archiveTestResults): Deleted.
3984 2017-09-13 Alex Christensen <achristensen@webkit.org>
3986 Add WKUIDelegatePrivate equivalent of WKPageUIClient's setIsResizable, getWindowFrame, and setWindowFrame
3987 https://bugs.webkit.org/show_bug.cgi?id=176857
3988 <rdar://problem/29270035>
3990 Reviewed by Tim Horton.
3992 * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
3993 (-[ModalDelegate _webViewRunModal:]):
3994 (-[ModalDelegate _webView:setResizable:]):
3995 (-[WindowFrameDelegate _webView:setWindowFrame:]):
3996 (-[WindowFrameDelegate _webView:getWindowFrameWithCompletionHandler:]):
3997 (-[WindowFrameDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
3999 (-[ResizableDelegate _webView:setResizable:]):
4000 (-[ResizableDelegate _webView:getIsResizableWithCompletionHandler:]):
4001 (-[ResizableDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
4003 2017-09-13 Youenn Fablet <youenn@apple.com>
4005 Add a lambda-based map for Vectors
4006 https://bugs.webkit.org/show_bug.cgi?id=176487
4008 Reviewed by Darin Adler.
4010 * TestWebKitAPI/Tests/WTF/Vector.cpp:
4011 (TestWebKitAPI::TEST):
4013 2017-09-13 John Wilander <wilander@apple.com>
4015 Introduce Storage Access API (document parts) as an experimental feature
4016 https://bugs.webkit.org/show_bug.cgi?id=175759
4017 <rdar://problem/33666847>
4019 Reviewed by Alex Christensen.
4021 * WebKitTestRunner/TestController.cpp:
4022 (WTR::TestController::resetPreferencesToConsistentValues):
4023 Turns the feature on for tests.
4025 2017-09-13 Per Arne Vollan <pvollan@apple.com>
4027 [Win] DRT option --gc-between-tests is not implemented.
4028 https://bugs.webkit.org/show_bug.cgi?id=176849
4030 Reviewed by Brent Fulgham.
4032 Perform GC after the test if this option is enabled. This patch also set the initial value of the flag
4033 to true, in order to catch GC related issues in the test in which they occur.
4035 * DumpRenderTree/win/DumpRenderTree.cpp:
4038 2017-09-12 Wenson Hsieh <wenson_hsieh@apple.com>
4040 [iOS DnD] Support DataTransfer.getData and DataTransfer.setData when dragging or dropping
4041 https://bugs.webkit.org/show_bug.cgi?id=176672
4042 <rdar://problem/34353723>
4044 Reviewed by Ryosuke Niwa.
4046 Adds new tests and tweaks existing DataInteractionTests to cover the tweaks made in this patch.
4047 SinglePlainTextURLTypeIdentifiers: Verify that inline presentation style is requested when dragging plaintext.
4048 SinglePlainTextWordTypeIdentifiers: Verify that inline presentation style is requested when dragging a link.
4049 ExternalSourceInlineTextToFileInput:
4050 Verify that an item provider marked as preferring inline presentation does not trigger file uploads by
4051 dragging a piece of inline text into a file input.
4052 CanStartDragOnDivWithDraggableAttribute:
4053 Verify that DataTransfer.setData and DataTransfer.getData work as expected by moving a draggable div.
4054 The test harness writes the id of the draggable div via the DataTransfer, and upon drop, reads the id
4055 back to figure out which element to append to the drop destination.
4057 * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
4058 (TestWebKitAPI::TEST):
4060 2017-09-12 Ryosuke Niwa <rniwa@webkit.org>
4062 Dragging & dropping a file creates an attachment element even when it's disabled
4063 https://bugs.webkit.org/show_bug.cgi?id=176769
4065 Reviewed by Tim Horton.
4067 Added a webkit-test-runner flag to enable attachment element via runtime flag since this feature is now hidden
4068 behind a runtime-enabled flag which needs to be set at the time of global object initialization.
4070 * DumpRenderTree/TestOptions.h:
4071 (TestOptions): Added.
4072 * DumpRenderTree/TestOptions.mm:
4073 (TestOptions::TestOptions):
4074 * DumpRenderTree/mac/DumpRenderTree.mm:
4075 (setWebPreferencesForTestOptions):
4076 * WebKitTestRunner/TestController.cpp:
4077 (WTR::TestController::resetPreferencesToConsistentValues):
4078 (WTR::updateTestOptionsFromTestHeader):
4079 * WebKitTestRunner/TestOptions.h:
4080 (WTR::TestOptions::hasSameInitializationOptions const):
4081 * WebKitTestRunner/cocoa/TestControllerCocoa.mm:
4082 (WTR::TestController::platformCreateWebView):
4084 2017-09-11 Filip Pizlo <fpizlo@apple.com>
4086 WSL should allow you to say "protocol Foo : Bar { ... }"
4087 https://bugs.webkit.org/show_bug.cgi?id=176238
4089 Reviewed by Mylex Maxfield.
4091 This makes protocol "subtyping" work. It's not really subtyping. Protocol A inherits protocol B
4092 if every signature in B can be resolved against some signature in A. Also, you can explicitly
4093 subtype protocols using extends syntax ("protocol Foo : Bar, Baz { ... }").
4095 Also makes the diagnostics when type variable constraints fail a _lot_ better. This will even
4096 tell you diagnostics about why a function didn't match when protocols are not inheriting, and
4097 then it will tell you why the inheritance failed.
4099 * WebGPUShadingLanguageRI/All.js:
4100 * WebGPUShadingLanguageRI/AutoWrapper.js:
4101 (AutoWrapper.prototype.visitTypeVariable):
4103 * WebGPUShadingLanguageRI/Checker.js:
4104 (Checker.prototype.visitProtocolDecl.set throw):
4105 * WebGPUShadingLanguageRI/ConstexprTypeParameter.js:
4106 (ConstexprTypeParameter.prototype.verifyAsArgument):
4107 (ConstexprTypeParameter.prototype.verifyAsParameter):
4108 * WebGPUShadingLanguageRI/FlattenProtocolExtends.js: Added.
4109 * WebGPUShadingLanguageRI/Func.js:
4110 (Func.prototype.get typeParametersForCallResolution):
4111 * WebGPUShadingLanguageRI/InferTypesForCall.js:
4112 (inferTypesForCall):
4113 * WebGPUShadingLanguageRI/IntLiteralType.js:
4114 (IntLiteralType.prototype.verifyAsArgument):
4115 * WebGPUShadingLanguageRI/NameResolver.js:
4116 (NameResolver.prototype.visitProtocolDecl):
4117 (NameResolver.prototype.visitProtocolRef): Deleted.
4118 (NameResolver.prototype.visitProtocolFuncDecl): Deleted.
4119 (NameResolver.prototype.visitTypeDef): Deleted.
4120 (NameResolver.prototype.visitStructType): Deleted.
4121 (NameResolver.prototype._resolveTypeArguments): Deleted.
4122 (NameResolver.prototype.visitTypeRef): Deleted.
4123 (NameResolver.prototype.visitReferenceType): Deleted.
4124 (NameResolver.prototype.visitVariableDecl): Deleted.
4125 (NameResolver.prototype.visitVariableRef): Deleted.
4126 (NameResolver.prototype.visitReturn): Deleted.
4127 (NameResolver.prototype.visitCallExpression): Deleted.
4128 * WebGPUShadingLanguageRI/Node.js:
4129 (Node.prototype.equals):
4130 * WebGPUShadingLanguageRI/NullType.js:
4131 (NullType.prototype.verifyAsArgument):
4132 * WebGPUShadingLanguageRI/Parse.js:
4133 (parseProtocolDecl):
4134 * WebGPUShadingLanguageRI/Prepare.js:
4136 * WebGPUShadingLanguageRI/ProtocolDecl.js:
4137 (ProtocolDecl): Deleted.
4138 (ProtocolDecl.prototype.add): Deleted.
4139 (ProtocolDecl.prototype.get signatures): Deleted.
4140 (ProtocolDecl.prototype.signaturesByName): Deleted.
4141 (ProtocolDecl.prototype.get typeVariable): Deleted.
4142 (ProtocolDecl.prototype.signaturesByNameWithTypeVariable): Deleted.
4143 (ProtocolDecl.prototype.inherits): Deleted.
4144 (ProtocolDecl.prototype.hasHeir): Deleted.
4145 (ProtocolDecl.prototype.toString): Deleted.
4146 * WebGPUShadingLanguageRI/ProtocolFuncDecl.js:
4147 (ProtocolFuncDecl.prototype.get typeParametersForCallResolution):
4149 * WebGPUShadingLanguageRI/Rewriter.js:
4150 (Rewriter.prototype.visitProtocolDecl):
4151 * WebGPUShadingLanguageRI/Test.html:
4152 * WebGPUShadingLanguageRI/Test.js:
4153 (TEST_nullTypeVariableUnify):
4154 (TEST_simpleProtocolExtends):
4155 (TEST_protocolExtendsTwo):
4156 * WebGPUShadingLanguageRI/Type.js:
4157 (Type.prototype.inherits):
4158 * WebGPUShadingLanguageRI/TypeDefResolver.js:
4159 (TypeDefResolver.prototype.visitTypeRef):
4161 * WebGPUShadingLanguageRI/TypeVariable.js:
4162 (TypeVariable.prototype.inherits):
4163 (TypeVariable.prototype.verifyAsArgument):
4164 (TypeVariable.prototype.verifyAsParameter):
4165 * WebGPUShadingLanguageRI/UnificationContext.js:
4166 (UnificationContext.prototype.verify):
4167 * WebGPUShadingLanguageRI/Visitor.js:
4168 (Visitor.prototype.visitProtocolDecl):
4169 (Visitor.prototype.visitTypeRef): Deleted.
4170 (Visitor.prototype.visitNativeType): Deleted.
4171 (Visitor.prototype.visitNativeTypeInstance): Deleted.
4172 (Visitor.prototype.visitTypeDef): Deleted.
4173 (Visitor.prototype.visitStructType): Deleted.
4174 (Visitor.prototype.visitTypeVariable): Deleted.
4175 (Visitor.prototype.visitConstexprTypeParameter): Deleted.
4176 (Visitor.prototype.visitField): Deleted.
4177 (Visitor.prototype.visitElementalType): Deleted.
4178 (Visitor.prototype.visitReferenceType): Deleted.
4179 (Visitor.prototype.visitPtrType): Deleted.
4180 (Visitor.prototype.visitArrayRefType): Deleted.
4181 (Visitor.prototype.visitArrayType): Deleted.
4182 (Visitor.prototype.visitVariableDecl): Deleted.
4183 (Visitor.prototype.visitAssignment): Deleted.
4184 (Visitor.prototype.visitDereferenceExpression): Deleted.
4185 (Visitor.prototype.visitDotExpression): Deleted.
4186 (Visitor.prototype.visitMakePtrExpression): Deleted.
4187 (Visitor.prototype.visitVariableRef): Deleted.
4188 (Visitor.prototype.visitIfStatement): Deleted.
4189 (Visitor.prototype.visitWhileLoop): Deleted.
4190 (Visitor.prototype.visitDoWhileLoop): Deleted.
4191 (Visitor.prototype.visitForLoop): Deleted.
4192 (Visitor.prototype.visitReturn): Deleted.
4193 (Visitor.prototype.visitContinue): Deleted.
4194 (Visitor.prototype.visitBreak): Deleted.
4195 (Visitor.prototype.visitIntLiteral): Deleted.
4196 (Visitor.prototype.visitIntLiteralType): Deleted.
4197 (Visitor.prototype.visitUintLiteral): Deleted.
4198 (Visitor.prototype.visitNullLiteral): Deleted.
4199 (Visitor.prototype.visitBoolLiteral): Deleted.
4200 (Visitor.prototype.visitNullType): Deleted.
4201 (Visitor.prototype.visitCallExpression): Deleted.
4202 (Visitor.prototype.visitLogicalNot): Deleted.
4203 (Visitor.prototype.visitFunctionLikeBlock): Deleted.
4204 * WebGPUShadingLanguageRI/WrapChecker.js:
4205 (WrapChecker.prototype.visitTypeVariable):
4208 2017-09-12 Carlos Garcia Campos <cgarcia@igalia.com>
4210 Remove duplicated test results from LayoutTest platform directories
4211 https://bugs.webkit.org/show_bug.cgi?id=176686
4213 Reviewed by Michael Catanzaro.
4215 After several rebaselines we might end up with the same result in the platform directory than the common result
4216 without noticing it. This patch adds a script to detect those cases and remove all duplicated results from the
4219 * Scripts/check-for-duplicated-platform-test-results: Added.
4221 (check_duplicate.sha1):
4224 2017-09-12 Carlos Alberto Lopez Perez <clopez@igalia.com>