Timeline
Aug 30, 2020:
- 10:18 PM Changeset in webkit [266345] by
-
- 2 edits in trunk/Source/WebKitLegacy/mac
Remove an unused addition point
- WebCoreSupport/WebFrameLoaderClient.mm:
- 9:51 PM Changeset in webkit [266344] by
-
- 9 edits in trunk/Source/WebCore
Make StyleRareNonInheritedData::mask and StyleBackgroundData::background DataRefs
https://bugs.webkit.org/show_bug.cgi?id=215942
Reviewed by Darin Adler.
A significant amount of time in MotionMark's Multiply subtest is spent underneath the copy constructor
StyleRareNonInheritedData, and a significant amount of time underneath this copy constructor is spent copying
the rare non-inherited data's mask (aFillLayer).
This
FillLayeris currently inline data inStyleRareNonInheritedData; to reduce the cost of copying rare
non-inherited data, we can instead make this aDataRef<FillLayer>, such that copying rare data will only copy
the reference to theFillLayerrather than theFillLayeritself.
Upon mutating the
FillLayer, we now useDataRef::access()to ensure that theseFillLayers are copied
before writing. See below for more details.
- css/makeprop.pl:
(generateFillLayerPropertyInheritValueSetter):
(generateFillLayerPropertyValueSetter):
- rendering/style/FillLayer.cpp:
(WebCore::FillLayer::create):
(WebCore::FillLayer::FillLayer):
Deeply copy the
FillLayer's linked list ofFillLayers. This preserves existing behavior, which currently
usesstd::unique_ptrto store the pointer to the nextFillLayer(and therefore, requires a deep copy of the
linked list when copyingFillLayer).
In a future patch, we could probably further optimize this as well to behave in a copy-on-write way, by turning
theRefPtr<FillLayer> m_next;into anOptional<DataRef<FillLayer>>instead (and then useaccess()to copy
the nextFillLayerprior to writing).
(WebCore::FillLayer::~FillLayer):
(WebCore::FillLayer::operator=):
- rendering/style/FillLayer.h:
Make
FillLayerref-counted, and introduce newcreatemethods for constructingFillLayers. Use these
methods in several places where we currently call the constructors directly, viamakeUnique.
(WebCore::FillLayer::copy const):
(WebCore::FillLayer::setNext):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::hasBackgroundImage const):
(WebCore::RenderStyle::hasFixedBackgroundImage const):
(WebCore::RenderStyle::backgroundRepeatX const):
(WebCore::RenderStyle::backgroundRepeatY const):
(WebCore::RenderStyle::backgroundComposite const):
(WebCore::RenderStyle::backgroundAttachment const):
(WebCore::RenderStyle::backgroundClip const):
(WebCore::RenderStyle::backgroundOrigin const):
(WebCore::RenderStyle::backgroundXPosition const):
(WebCore::RenderStyle::backgroundYPosition const):
(WebCore::RenderStyle::backgroundSizeType const):
(WebCore::RenderStyle::backgroundSizeLength const):
(WebCore::RenderStyle::ensureBackgroundLayers):
(WebCore::RenderStyle::maskImage const):
(WebCore::RenderStyle::maskRepeatX const):
(WebCore::RenderStyle::maskRepeatY const):
(WebCore::RenderStyle::maskComposite const):
(WebCore::RenderStyle::maskClip const):
(WebCore::RenderStyle::maskOrigin const):
(WebCore::RenderStyle::maskXPosition const):
(WebCore::RenderStyle::maskYPosition const):
(WebCore::RenderStyle::maskSizeType const):
(WebCore::RenderStyle::maskSizeLength const):
(WebCore::RenderStyle::ensureMaskLayers):
(WebCore::RenderStyle::hasMask const):
(WebCore::RenderStyle::setBackgroundXPosition):
(WebCore::RenderStyle::setBackgroundYPosition):
(WebCore::RenderStyle::setBackgroundSize):
(WebCore::RenderStyle::setBackgroundSizeLength):
(WebCore::RenderStyle::clearBackgroundLayers):
(WebCore::RenderStyle::inheritBackgroundLayers):
(WebCore::RenderStyle::clearMaskLayers):
(WebCore::RenderStyle::inheritMaskLayers):
(WebCore::RenderStyle::setMaskImage):
(WebCore::RenderStyle::setMaskXPosition):
(WebCore::RenderStyle::setMaskYPosition):
(WebCore::RenderStyle::setMaskSize):
- rendering/style/StyleBackgroundData.cpp:
(WebCore::StyleBackgroundData::StyleBackgroundData):
(WebCore::StyleBackgroundData::dump const):
- rendering/style/StyleBackgroundData.h:
Since
FillLayeris now ref-counted,StyleBackgroundData::backgroundneeds to be aDataRefas well.
- rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
- rendering/style/StyleRareNonInheritedData.h:
- 9:37 PM Changeset in webkit [266343] by
-
- 2 edits in trunk/WebDriverTests
[WPE] Gardening some webdriver failures
Unreviewed test gardening.
- TestExpectations.json:
- 8:26 PM Changeset in webkit [266342] by
-
- 85 edits17 deletes in trunk
Remove unused editable image code
https://bugs.webkit.org/show_bug.cgi?id=215991
Reviewed by Simon Fraser.
Source/WebCore:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- editing/EditAction.cpp:
(WebCore::undoRedoLabel):
- editing/EditAction.h:
- editing/Editor.cpp:
(WebCore::Editor::insertEditableImage): Deleted.
- editing/Editor.h:
- editing/EditorCommand.cpp:
(WebCore::createCommandMap):
(WebCore::executeInsertEditableImage): Deleted.
(WebCore::enabledInRichlyEditableTextWithEditableImagesEnabled): Deleted.
- editing/InsertEditableImageCommand.cpp: Removed.
- editing/InsertEditableImageCommand.h: Removed.
- en.lproj/Localizable.strings:
- html/HTMLAttributeNames.in:
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::parseAttribute):
(WebCore::HTMLImageElement::insertedIntoAncestor):
(WebCore::HTMLImageElement::removedFromAncestor):
(WebCore::HTMLImageElement::copyNonAttributePropertiesFromElement):
(WebCore::HTMLImageElement::supportsFocus const): Deleted.
(WebCore::HTMLImageElement::isFocusable const): Deleted.
(WebCore::HTMLImageElement::didFinishInsertingNode): Deleted.
(WebCore::HTMLImageElement::hasEditableImageAttribute const): Deleted.
(WebCore::HTMLImageElement::editableImageViewID const): Deleted.
(WebCore::HTMLImageElement::updateEditableImage): Deleted.
(WebCore::HTMLImageElement::defaultEventHandler): Deleted.
- html/HTMLImageElement.h:
- page/ChromeClient.h:
(WebCore::ChromeClient::associateEditableImageWithAttachment): Deleted.
(WebCore::ChromeClient::didCreateEditableImage): Deleted.
(WebCore::ChromeClient::didDestroyEditableImage): Deleted.
- page/EditableImageReference.cpp: Removed.
- page/EditableImageReference.h: Removed.
- page/Settings.yaml:
- platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::nextEmbeddedViewID): Deleted.
- platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::setContentsToSolidColor):
(WebCore::GraphicsLayer::setContentsToEmbeddedView): Deleted.
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::createPlatformCALayerForEmbeddedView): Deleted.
(WebCore::GraphicsLayerCA::setContentsToEmbeddedView): Deleted.
- platform/graphics/ca/GraphicsLayerCA.h:
- platform/graphics/ca/PlatformCALayer.cpp:
(WebCore::operator<<):
- platform/graphics/ca/PlatformCALayer.h:
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(WebCore::PlatformCALayerCocoa::PlatformCALayerCocoa):
(WebCore::PlatformCALayerCocoa::embeddedViewID const): Deleted.
- rendering/RenderImage.cpp:
(WebCore::RenderImage::isEditableImage const): Deleted.
(WebCore::RenderImage::requiresLayer const): Deleted.
- rendering/RenderImage.h:
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::shouldBeNormalFlowOnly const):
(WebCore::RenderLayer::calculateClipRects const):
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateConfiguration):
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingLayer const):
(WebCore::RenderLayerCompositor::requiresOwnBackingStore const):
(WebCore::RenderLayerCompositor::reasonsForCompositing const):
(WebCore::RenderLayerCompositor::requiresCompositingForEditableImage const): Deleted.
- rendering/RenderLayerCompositor.h:
Source/WebKit:
- DerivedSources.make:
- Platform/spi/ios/PencilKitSPI.h: Removed.
- Shared/FocusedElementInformation.cpp:
(WebKit::FocusedElementInformation::encode const):
(WebKit::FocusedElementInformation::decode):
- Shared/FocusedElementInformation.h:
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::drawInContext):
- Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
- Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::LayerCreationProperties):
(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::encode const):
(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::decode):
- Shared/WebPreferences.yaml:
- SourcesCocoa.txt:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setupPageConfiguration:]):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _setEditableImagesEnabled:]): Deleted.
(-[WKWebViewConfiguration _editableImagesEnabled]): Deleted.
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- UIProcess/API/ios/WKWebViewIOS.h:
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _setupScrollAndContentViews]):
(-[WKWebView _stylusTapGestureShouldCreateEditableImage]): Deleted.
- UIProcess/PageClient.h:
(WebKit::PageClient::createDrawingView): Deleted.
- UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h:
- UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::layerWillBeRemoved):
(WebKit::RemoteLayerTreeHost::clearLayers):
(WebKit::RemoteLayerTreeHost::makeNode):
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:
(WebKit::RemoteLayerTreeHost::makeNode):
(WebKit::RemoteLayerTreeHost::createEmbeddedView): Deleted.
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.h:
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:
(-[WKEmbeddedView initWithEmbeddedViewID:]): Deleted.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didAttachToRunningProcess):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::willUpdateAttachmentAttributes):
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::editableImageController): Deleted.
- UIProcess/ios/EditableImageController.h: Removed.
- UIProcess/ios/EditableImageController.messages.in: Removed.
- UIProcess/ios/EditableImageController.mm: Removed.
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::createDrawingView): Deleted.
- UIProcess/ios/PencilKitSoftLink.h: Removed.
- UIProcess/ios/PencilKitSoftLink.mm: Removed.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setUpInteraction]):
(-[WKContentView cleanUpInteraction]):
(-[WKContentView _removeDefaultGestureRecognizers]):
(-[WKContentView _addDefaultGestureRecognizers]):
(-[WKContentView gestureRecognizerShouldBegin:]):
(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):
(-[WKContentView _elementDidBlur]):
(-[WKContentView _stylusSingleTapRecognized:]): Deleted.
(-[WKContentView _drawingCoordinator]): Deleted.
- UIProcess/ios/WKDrawingCoordinator.h: Removed.
- UIProcess/ios/WKDrawingCoordinator.mm: Removed.
- UIProcess/ios/WKDrawingView.h: Removed.
- UIProcess/ios/WKDrawingView.mm: Removed.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::handleStylusSingleTapAtPoint): Deleted.
- UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
(WebKit::WebChromeClient::associateEditableImageWithAttachment): Deleted.
(WebKit::WebChromeClient::didCreateEditableImage): Deleted.
(WebKit::WebChromeClient::didDestroyEditableImage): Deleted.
- WebProcess/WebPage/RemoteLayerTree/GraphicsLayerCARemote.cpp:
(WebKit::GraphicsLayerCARemote::createPlatformCALayerForEmbeddedView): Deleted.
- WebProcess/WebPage/RemoteLayerTree/GraphicsLayerCARemote.h:
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::createForEmbeddedView): Deleted.
(WebKit::PlatformCALayerRemote::embeddedViewID const): Deleted.
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm:
(WebKit::RemoteLayerTreeContext::layerDidEnterContext):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::isAssistableElement):
(WebKit::WebPage::getFocusedElementInformation):
(WebKit::WebPage::handleStylusSingleTapAtPoint): Deleted.
Tools:
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptController.h:
(WTR::UIScriptController::drawSquareInEditableImage): Deleted.
(WTR::UIScriptController::numberOfStrokesInEditableImage): Deleted.
- TestRunnerShared/spi/PencilKitTestSPI.h: Removed.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(webViewForTestingAttachments):
(TestWebKitAPI::forEachViewInHierarchy): Deleted.
(TestWebKitAPI::findEditableImageCanvas): Deleted.
(TestWebKitAPI::drawSquareInEditableImage): Deleted.
- TestWebKitAPI/ios/PencilKitTestSPI.h: Removed.
- WebKitTestRunner/TestController.cpp:
(WTR::updateTestOptionsFromTestHeader):
- WebKitTestRunner/TestOptions.h:
(WTR::TestOptions::hasSameInitializationOptions const):
- WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::platformCreateWebView):
- WebKitTestRunner/ios/UIScriptControllerIOS.h:
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::findEditableImageCanvas const): Deleted.
(WTR::UIScriptControllerIOS::drawSquareInEditableImage): Deleted.
(WTR::UIScriptControllerIOS::numberOfStrokesInEditableImage): Deleted.
LayoutTests:
- editing/images/basic-editable-image-expected.txt: Removed.
- editing/images/basic-editable-image-from-execCommand-expected.txt: Removed.
- editing/images/basic-editable-image-from-execCommand.html: Removed.
- editing/images/basic-editable-image-with-gesture-expected.txt: Removed.
- editing/images/basic-editable-image-with-gesture.html: Removed.
- editing/images/basic-editable-image.html: Removed.
- editing/images/editable-image-creates-attachment-expected.txt: Removed.
- editing/images/editable-image-creates-attachment.html: Removed.
- editing/images/paste-editable-image-expected.txt: Removed.
- editing/images/paste-editable-image.html: Removed.
- editing/images/redo-insert-editable-image-maintains-strokes-expected.txt: Removed.
- editing/images/redo-insert-editable-image-maintains-strokes.html: Removed.
- editing/images/reparent-editable-image-maintains-strokes-expected.txt: Removed.
- editing/images/reparent-editable-image-maintains-strokes.html: Removed.
- editing/images/undo-insert-editable-image-expected.txt: Removed.
- editing/images/undo-insert-editable-image.html: Removed.
- resources/ui-helper.js:
(window.UIHelper.drawSquareInEditableImage): Deleted.
(window.UIHelper.numberOfStrokesInEditableImage): Deleted.
- 6:29 PM Changeset in webkit [266341] by
-
- 4 edits in trunk
[JSC] Use -2 for grouping options in IntlRelativeTimeFormat
https://bugs.webkit.org/show_bug.cgi?id=215984
Reviewed by Ross Kirsling.
JSTests:
- stress/intl-relativetimeformat.js:
Source/JavaScriptCore:
Several test262 tests are failing after ICU 67. This is because Intl.RelativeTimeFormat is not using locale-sensitive grouping option.
There are hidden option -2 for UNumberFormat. It is supported so long, but it is not explicitly documented. After ICU 68, it is exposed as a constant,
we should pass -2 to UNumberFormat's grouping options to use locale-sensitive grouping option here.
- runtime/IntlRelativeTimeFormat.cpp:
(JSC::IntlRelativeTimeFormat::initializeRelativeTimeFormat):
- 6:26 PM Changeset in webkit [266340] by
-
- 5 edits1 add in trunk
[JSC] async function cannot appear in single-statement context
https://bugs.webkit.org/show_bug.cgi?id=215993
Reviewed by Darin Adler.
JSTests:
- stress/async-function-lookahead.js: Added.
(testSyntax):
(testSyntaxError):
(testSyntax.false.async t):
(testSyntaxError.false.async t):
- test262/expectations.yaml:
Source/JavaScriptCore:
The following code is syntax error[1] because ExpressionStatement has
async [no LineTerminator here] functionlookahead.
if (false)
async function t() { }
[1]: https://tc39.es/ecma262/#sec-expression-statement
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseStatement):
(JSC::Parser<LexerType>::maybeParseAsyncFunctionDeclarationStatement): Deleted.
- parser/Parser.h:
- 6:20 PM Changeset in webkit [266339] by
-
- 6 edits1 copy2 adds in trunk/Source/WebCore
EnabledBySetting extended attributes on a partial interface do not get merged with EnabledBySetting extended attributes on properties of that partial interface
https://bugs.webkit.org/show_bug.cgi?id=215992
Reviewed by Darin Adler.
Add support for merging extended attributes that support conjunctions (like EnabledBySetting) when
they are used in both a partial wide context and on a member. This allows a case like:
[
EnabledBySettings=FirstSetting
] partial interface Foo {
[EnabledBySettings=SecondSetting] attribute DOMString bar;
};
to be identical to:
partial interface Foo {
[EnabledBySettings=FirstSetting&SecondSetting] attribute DOMString bar;
};
- bindings/scripts/CodeGenerator.pm:
(MergeExtendedAttributesFromSupplemental):
Factor out and rework merging logic. Only allow adding extended attributes that are allowed for the context
they are being merge into to be merged, and only allow extended attributes declared in IDLAttributes.json as
supporting conjunctions to be merged.
(ProcessSupplementalDependencies):
Call MergeExtendedAttributesFromSupplemental for each type of member.
(ExtendedAttributeContains):
Fix variable name, since this is used for all extended attributes, not just callWith.
- bindings/scripts/IDLAttributes.json:
Add supportsConjunction keys for extended attributes that support the conjunction (&) syntax and semantics.
- bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
(WebCore::JSTestEnabledBySettingPrototype::finishCreation):
(WebCore::jsTestEnabledBySettingEnabledByTwoSettingsAttributeGetter):
(WebCore::jsTestEnabledBySettingEnabledByTwoSettingsAttribute):
(WebCore::setJSTestEnabledBySettingEnabledByTwoSettingsAttributeSetter):
(WebCore::setJSTestEnabledBySettingEnabledByTwoSettingsAttribute):
(WebCore::jsTestEnabledBySettingSupplementalAttributeGetter):
(WebCore::jsTestEnabledBySettingSupplementalAttribute):
(WebCore::setJSTestEnabledBySettingSupplementalAttributeSetter):
(WebCore::setJSTestEnabledBySettingSupplementalAttribute):
- bindings/scripts/test/JS/JSTestEnabledBySettingSupplemental.cpp: Added.
- bindings/scripts/test/JS/JSTestEnabledBySettingSupplemental.h: Added.
- bindings/scripts/test/SupplementalDependencies.dep:
- bindings/scripts/test/TestEnabledBySetting.idl:
- bindings/scripts/test/TestEnabledBySettingSupplemental.idl: Added.
Add/update tests.
- 4:16 PM Changeset in webkit [266338] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r266333): Mousewheel scrolling no longer works on WinCairo
https://bugs.webkit.org/show_bug.cgi?id=215990
Reviewed by Tim Horton.
Make sure we call processWheelEventForScrolling() when ENABLE(WHEEL_EVENT_LATCHING) is not
defined.
- page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):
- 3:25 PM Changeset in webkit [266337] by
-
- 3 edits2 adds in trunk
Rubberbanding in an overflow:scroll can trigger page jiggles
https://bugs.webkit.org/show_bug.cgi?id=215629
<rdar://problem/67295797>
Reviewed by Tim Horton.
Source/WebCore:
When a scroller starts to rubberband, and is receiving momentum scroll events, it gets
into a state where events are ignored (to stop endless stretching). When in that
state, ScrollController::handleWheelEvent() needs to report that it handled the event,
to avoid the event bouncing to the scrolling thread and triggering page scrolls.
Test: fast/scrolling/mac/rubberband-overflow-in-wheel-region-root-jiggle.html
- platform/cocoa/ScrollController.mm:
(WebCore::ScrollController::handleWheelEvent):
LayoutTests:
- fast/scrolling/mac/rubberband-overflow-in-wheel-region-root-jiggle-expected.txt: Added.
- fast/scrolling/mac/rubberband-overflow-in-wheel-region-root-jiggle.html: Added.
- 3:09 PM Changeset in webkit [266336] by
-
- 3 edits2 adds in trunk
REGRESSION (r266262): Scroll latching fails when scrolling into a preventDefault() region
https://bugs.webkit.org/show_bug.cgi?id=215988
<rdar://problem/68034716>
Reviewed by Tim Horton.
Source/WebCore:
In r266262 ScrollingTreeLatchingController started to consult the "last handled wheel event"
time when deciding whether to use the latched node, but we didn't update this timestamp when
handling an event on the latched node, on the scrolling thread. So fix that.
Test: fast/scrolling/latching/latched-scroll-into-nonfast-region.html
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::handleWheelEvent):
LayoutTests:
- fast/scrolling/latching/latched-scroll-into-nonfast-region-expected.txt: Added.
- fast/scrolling/latching/latched-scroll-into-nonfast-region.html: Added.
- 1:24 PM Changeset in webkit [266335] by
-
- 2 edits in trunk/LayoutTests
[WinCairo] Unreviewed test gardening
- platform/wincairo/TestExpectations:
- 12:45 PM Changeset in webkit [266334] by
-
- 1 edit1 add in trunk/LayoutTests
Add missing test result from r266333.
- fast/scrolling/latching/latched-scroll-remove-iframe-expected.txt: Added.
- 10:25 AM Changeset in webkit [266333] by
-
- 16 edits3 adds2 deletes in trunk
Rewrite main thread scroll latching logic
https://bugs.webkit.org/show_bug.cgi?id=215979
Reviewed by Tim Horton.
Source/WebCore:
The existing main thread wheel event handling and latching logic had a number of issues,
some of which were indicated via the FIXME comments added in r266016:
- It tracked scrollable containers as ContainerNodes rather than ScrollableAreas
- It fetched and used latched state from a different frame, causing an EventHandler to end up scrolling some unrelated frame.
- Overflow scrolling ignored latched state.
- The latching stack's purpose was unclear.
This patch fixes those issues. The design is as follow:
- Latching logic is moved into ScrollLatchingController, which is owned by Page.
- ScrollLatchingController owns a stack of FrameState.
- When receiving a wheel event, determineWheelEventTarget() identifies the target ScrollableArea, if any, for that frame only.
- As hit-testing descends into subframes, state is pushed onto ScrollLatchingController's state stack. Frames with potential scrollers have a non-null ScrollableArea in their state.
- The latched ScrollableArea is the top non-null ScrollableArea in this stack.
- EventHandler consults ScrollLatchingController for select, overflow and frame scrolling.
This change fixes an issue where scrolling over an overflow:scroll in the non-fast scrollable
region would rubber-band the overflow, rather than the main page (tested by the adjusted
fast/scrolling/mac/rubberband-overflow-in-wheel-region.html).
Tests: fast/scrolling/latching/latched-scroll-remove-iframe.html
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/Element.cpp:
(WebCore::Element::removedFromAncestor):
- page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::determineWheelEventTarget):
(WebCore::EventHandler::processWheelEventForScrolling):
(WebCore::EventHandler::platformCompletePlatformWidgetWheelEvent):
(WebCore::EventHandler::processWheelEventForScrollSnap):
(WebCore::EventHandler::completeWidgetWheelEvent):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::clearLatchedState):
(WebCore::EventHandler::defaultWheelEventHandler):
(WebCore::EventHandler::clearLatchedStateTimerFired): Deleted.
(WebCore::EventHandler::clearOrScheduleClearingLatchedStateIfNeeded): Deleted.
- page/EventHandler.h:
- page/Page.cpp:
(WebCore::Page::startMonitoringWheelEvents):
(WebCore::Page::scrollLatchingController):
(WebCore::Page::scrollLatchingControllerIfExists):
(WebCore::Page::latchingState): Deleted.
(WebCore::Page::pushNewLatchingState): Deleted.
(WebCore::Page::resetLatchingState): Deleted.
(WebCore::Page::popLatchingState): Deleted.
(WebCore::Page::removeLatchingStateForTarget): Deleted.
- page/Page.h:
(WebCore::Page::latchingStateStack const): Deleted.
- page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::determineWheelEventTarget):
(WebCore::EventHandler::processWheelEventForScrolling):
(WebCore::EventHandler::platformCompletePlatformWidgetWheelEvent):
(WebCore::EventHandler::processWheelEventForScrollSnap):
(WebCore::deltaIsPredominantlyVertical): Deleted.
(WebCore::scrolledToEdgeInDominantDirection): Deleted.
(WebCore::latchingIsLockedToPlatformFrame): Deleted.
(WebCore::latchingIsLockedToAncestorOfThisFrame): Deleted.
(WebCore::latchedToFrameOrBody): Deleted.
(WebCore::EventHandler::clearOrScheduleClearingLatchedStateIfNeeded): Deleted.
(WebCore::frameViewForLatchingState): Deleted.
- page/scrolling/ScrollLatchingController.cpp: Added.
(WebCore::ScrollLatchingController::ScrollLatchingController):
(WebCore::ScrollLatchingController::clear):
(WebCore::ScrollLatchingController::clearOrScheduleClearIfNeeded):
(WebCore::ScrollLatchingController::clearTimerFired):
(WebCore::ScrollLatchingController::receivedWheelEvent):
(WebCore::ScrollLatchingController::latchingAllowsScrollingInFrame const):
(WebCore::ScrollLatchingController::updateLatchingStateForFrame):
(WebCore::ScrollLatchingController::getLatchingStateForFrame const):
(WebCore::ScrollLatchingController::removeLatchingStateForTarget):
(WebCore::ScrollLatchingController::removeLatchingStateForFrame):
(WebCore::deltaIsPredominantlyVertical):
(WebCore::ScrollLatchingController::shouldLatchToScrollableArea const):
(WebCore::ScrollLatchingController::hasStateForFrame const):
(WebCore::ScrollLatchingController::stateForFrame):
(WebCore::ScrollLatchingController::stateForFrame const):
(WebCore::ScrollLatchingController::dump const):
(WebCore::operator<<):
- page/scrolling/ScrollLatchingController.h: Added.
(WebCore::ScrollLatchingController::cumulativeEventDelta const):
- page/scrolling/ScrollLatchingState.cpp: Removed.
- page/scrolling/ScrollLatchingState.h: Removed.
- page/scrolling/ScrollingTreeLatchingController.cpp:
(WebCore::ScrollingTreeLatchingController::receivedWheelEvent):
(WebCore::ScrollingTreeLatchingController::nodeDidHandleEvent):
- page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::handleWheelEventAfterMainThread):
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:
(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsHorizontalStretching const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsVerticalStretching const):
(WebCore::newGestureIsStarting): Deleted.
- platform/PlatformWheelEvent.h:
(WebCore::PlatformWheelEvent::isGestureStart const):
(WebCore::PlatformWheelEvent::isGestureContinuation const):
(WebCore::PlatformWheelEvent::shouldResetLatching const):
(WebCore::PlatformWheelEvent::isNonGestureEvent const):
(WebCore::PlatformWheelEvent::shouldConsiderLatching const): Deleted. Renamed to isGestureStart(). This class
should not prescribe latching behaviors.
LayoutTests:
Add a test for iframe unparenting in the middle of a latched scroll.
- fast/scrolling/latching/latched-scroll-remove-iframe.html: Added.
- fast/scrolling/latching/scroll-nested-iframe.html: 1000ms -> 0ms
- fast/scrolling/mac/rubberband-overflow-in-wheel-region.html: Test needs to latch the overflow by scrolling down then up.
- 2:53 AM Changeset in webkit [266332] by
-
- 26 edits5 adds in trunk
Add support for TextEncoderStream
https://bugs.webkit.org/show_bug.cgi?id=215916
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
- web-platform-tests/encoding/idlharness.any-expected.txt:
- web-platform-tests/encoding/idlharness.any.worker-expected.txt:
- web-platform-tests/encoding/streams/backpressure.any-expected.txt:
- web-platform-tests/encoding/streams/backpressure.any.worker-expected.txt:
- web-platform-tests/encoding/streams/encode-bad-chunks.any-expected.txt:
- web-platform-tests/encoding/streams/encode-bad-chunks.any.worker-expected.txt:
- web-platform-tests/encoding/streams/encode-utf8.any-expected.txt:
- web-platform-tests/encoding/streams/encode-utf8.any.worker-expected.txt:
- web-platform-tests/encoding/streams/readable-writable-properties.any-expected.txt:
- web-platform-tests/encoding/streams/readable-writable-properties.any.worker-expected.txt:
- web-platform-tests/encoding/streams/realms.window-expected.txt:
- web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt:
Source/WebCore:
Implement TextEncoderStream as a JS built-in.
It is controlled by transform stream runtime flag.
TextEncoderStream takes a TransformStream and TextEncoderStreamEncoder as private slots.
Add TextEncoderStreamEncoder to implement the actual UTF-8 encoding steps.
Covered by rebased tests.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Modules/streams/TransformStream.idl:
- Modules/streams/TransformStream.js:
(initializeTransformStream):
- Modules/streams/TransformStreamInternals.js:
(createTransformStream):
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/WebCoreBuiltinNames.h:
- dom/TextEncoderStream.idl: Added.
- dom/TextEncoderStream.js: Added.
(initializeTextEncoderStream):
(getter.encoding):
(getter.readable):
(getter.writable):
- dom/TextEncoderStreamEncoder.cpp: Added.
(WebCore::TextEncoderStreamEncoder::encode):
(WebCore::TextEncoderStreamEncoder::flush):
- dom/TextEncoderStreamEncoder.h: Added.
(WebCore::TextEncoderStreamEncoder::create):
- dom/TextEncoderStreamEncoder.idl: Added.
LayoutTests:
- 2:40 AM Changeset in webkit [266331] by
-
- 2 edits in trunk/Source/WTF
[GTK] REGRESSION(r150392) insufficient space allocation results in heap corruption
https://bugs.webkit.org/show_bug.cgi?id=215976
Patch by Jim Mason <jmason@ibinx.com> on 2020-08-30
Reviewed by Carlos Garcia Campos.
- wtf/glib/RunLoopGLib.cpp:
(WTF::RunLoop::TimerBase::TimerBase):
Aug 29, 2020:
- 6:47 PM Changeset in webkit [266330] by
-
- 64 edits2 adds in trunk
Remove NFC normalization when submitting forms and encoding URL queries and fix EUC-JP encoding
https://bugs.webkit.org/show_bug.cgi?id=215970
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc-expected.txt:
- web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-expected.txt:
- web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr-expected.txt:
- web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987-expected.txt:
- web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han-expected.txt:
- web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc-expected.txt:
- web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-expected.txt:
- web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149-expected.txt:
- web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean-expected.txt:
- web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987-expected.txt:
- web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989-expected.txt:
- web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601-expected.txt:
- web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601-expected.txt:
- web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949-expected.txt:
- web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han-expected.txt:
- web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc-expected.txt:
- web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-expected.txt:
- web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs-expected.txt:
- web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5-expected.txt:
- web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5-expected.txt:
- web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han-expected.txt:
- web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc-expected.txt:
- web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-expected.txt:
- web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5-expected.txt:
- web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han-expected.txt:
- web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc-expected.txt:
- web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-expected.txt:
Source/WebCore:
This fixes 3 things that were common between Chrome and Firefox but different in WebKit.
The first two are omitting NFC normalization when submitting forms and encoding URL queries
in documents with non-UTF-8 encodings. The third is a problem with our use of ICU's EUC-JP encoding,
which uses the euc-jp-2007 table. Chrome and Firefox use a slightly different table from
https://encoding.spec.whatwg.org/index-jis0208.txt which is not in ICU. To be compatible and pass many
web platform tests, I include the table here, which adds about 30kb to WebKit's binary size.
I intend to do the same with Big5, ISO-2022-JP, Shift_JIS, and EUC-KR.
I opened https://github.com/whatwg/encoding/issues/225 to resolve an ambiguity in the standard related to this.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/network/FormData.cpp:
(WebCore::normalizeStringData):
- platform/text/EncodingTables.cpp: Added.
- platform/text/EncodingTables.h: Added.
- platform/text/TextCodecICU.cpp:
(WebCore::eucJPEncode):
(WebCore::uncheckedAppendDecimal):
(WebCore::urlEncodedEntityUnencodableHandler):
(WebCore::entityUnencodableHandler):
(WebCore::questionMarkUnencodableHandler):
(WebCore::Function<void):
(WebCore::TextCodecICU::encode):
- platform/text/TextEncoding.cpp:
(WebCore::TextEncoding::encode const):
- platform/text/TextEncoding.h:
LayoutTests:
- fast/forms/form-data-encoding-2.html:
- fast/forms/form-data-encoding.html:
- 5:19 PM Changeset in webkit [266329] by
-
- 2 edits in trunk/Source/WebCore
[Cocoa] MediaSample JSON strings are created for logging to disabled channels
https://bugs.webkit.org/show_bug.cgi?id=215980
<rdar://problem/68004132>
Reviewed by Simon Fraser.
On platforms that USE(OS_LOG), DEBUG_LOG() evaluates its arguments even in production
builds. In SourceBufferPrivateAVFObjC::didProvideMediaDataForTrackID(), one DEBUG_LOG() call
involved creating a non-trivial JSON object describing a MediaSample then converting that to
a JSON string. This string was created even when debug logging was disabled at runtime.
Profiles showed this cost half a millisecond per second of video playback on netflix.com in
Safari on a MacBook Pro.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::didProvideMediaDataForTrackID): Rather than calling
MediaSample::toJSONString() directly, let the LogArgument<MediaSample> specialization call
toJSONString() iff the log channel is enabled.
- 5:05 PM Changeset in webkit [266328] by
-
- 5 edits in trunk/Source/WebCore
Move PerformanceMonitor related DeprecatedGlobalSettings to Settings
https://bugs.webkit.org/show_bug.cgi?id=215963
Reviewed by Anders Carlsson.
The PerformanceMonitor related uses of DeprecatedGlobalSettings can easily be moved to Settings, as PerformanceMonitor
has a Page reference.
- page/DeprecatedGlobalSettings.h:
(WebCore::DeprecatedGlobalSettings::isPostLoadCPUUsageMeasurementEnabled): Deleted.
(WebCore::DeprecatedGlobalSettings::isPostBackgroundingCPUUsageMeasurementEnabled): Deleted.
(WebCore::DeprecatedGlobalSettings::isPerActivityStateCPUUsageMeasurementEnabled): Deleted.
(WebCore::DeprecatedGlobalSettings::isPostLoadMemoryUsageMeasurementEnabled): Deleted.
(WebCore::DeprecatedGlobalSettings::isPostBackgroundingMemoryUsageMeasurementEnabled): Deleted.
- page/Settings.yaml:
- page/SettingsDefaultValues.h:
Moved settings from DeprecatedGlobalSettings.h to Settings.yaml. Default values encoded in SettingsDefaultValues.h
- page/PerformanceMonitor.cpp:
(WebCore::PerformanceMonitor::PerformanceMonitor):
(WebCore::PerformanceMonitor::didFinishLoad):
(WebCore::PerformanceMonitor::activityStateChanged):
Access the settings via m_page.settings(). Update constants to use constexpr.
- 1:44 PM Changeset in webkit [266327] by
-
- 4 edits1 add in trunk
[JSC]
let [sequence cannot appear in ExpressionStatement context
https://bugs.webkit.org/show_bug.cgi?id=215977
Reviewed by Ross Kirsling.
JSTests:
- stress/let-and-open-bracket.js: Added.
(testSyntax):
(testSyntaxError):
- test262/expectations.yaml:
Source/JavaScriptCore:
Because of ambiguity between destructuring assignment and member access (let IDENTIFIER), ECMA262 does not allow
let [sequence in ExpressionStatement context[1].
We should throw SyntaxError when we see something like this.
if (false)
let [ok] = [42];
[1]: https://tc39.es/ecma262/#sec-expression-statement
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseStatement):
- 12:06 PM Changeset in webkit [266326] by
-
- 4 edits in trunk
[JSC] for-of uses AssignmentExpression while for-in uses Expression
https://bugs.webkit.org/show_bug.cgi?id=215975
Reviewed by Ross Kirsling.
JSTests:
- test262/expectations.yaml:
Source/JavaScriptCore:
While for-in uses Expression, for-of and for-await-of use AssignmentExpression which does not accept comma-expression.
We should align our implementation to that.
for (LeftHandSideExpression in Expression) Statement
for (LeftHandSideExpression of AssignmentExpression) Statement
for await(LeftHandSideExpression of AssignmentExpression) Statement
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseForStatement):
- 10:19 AM Changeset in webkit [266325] by
-
- 4 edits in trunk/LayoutTests
[GLIB] Rebaseline webaudio tests after k-rate changes in r266319
Unreviewed test gardening.
- platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-connections-expected.txt:
- platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-expected.txt:
- platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic-expected.txt:
- 1:38 AM Changeset in webkit [266324] by
-
- 9 edits1 add in trunk
[JSC] for-of / for-in left-hand-side target should be simple-assignment-target
https://bugs.webkit.org/show_bug.cgi?id=215969
Reviewed by Ross Kirsling.
JSTests:
- stress/for-of-in-non-reference.js: Added.
(testSyntax):
(testSyntaxError):
(testSyntaxError.t):
(testSyntaxError.async t):
(testSyntax.async t):
- test262/expectations.yaml:
Source/JavaScriptCore:
Left-hand-side of
for-in,for-of, andfor-await-ofshould be simple assignment target[1]
if the target is not declaration and not destructuring pattern.
[1]: https://tc39.es/ecma262/#sec-for-in-and-for-of-statements-static-semantics-early-errors
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseForStatement):
- parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createCommaExpr): Should return CommaExpr to align it to ASTBuilder.
(JSC::SyntaxChecker::appendToCommaExpr):
(JSC::SyntaxChecker::appendStatement):
(JSC::SyntaxChecker::combineCommaNodes): Deleted since it is not used.
LayoutTests:
Fix for-in / for-of parser behavior.
- js/basic-strict-mode-expected.txt:
- js/parser-syntax-check-expected.txt:
- js/script-tests/parser-syntax-check.js:
- 1:32 AM Changeset in webkit [266323] by
-
- 10 edits1 add in trunk
[JSC] Implement Intl.DateTimeFormat dayPeriod
https://bugs.webkit.org/show_bug.cgi?id=215839
Reviewed by Ross Kirsling.
JSTests:
- stress/intl-datetimeformat-day-period.js: Added.
(shouldBe):
(throw.new.Error):
- test262/config.yaml:
Source/JavaScriptCore:
This patch implements Intl.DateTimeFormat dayPeriod option[1]. We can use "narrow", "short", or "long" for dayPeriod,
and it determines how "AM" etc. is represented.
[1]: https://github.com/tc39/ecma402/pull/346
- builtins/DatePrototype.js:
(toLocaleString.toDateTimeOptionsAnyAll):
(toLocaleString):
(toLocaleTimeString.toDateTimeOptionsTimeTime):
(toLocaleTimeString):
- bytecode/BytecodeIntrinsicRegistry.cpp:
(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):
- bytecode/BytecodeIntrinsicRegistry.h:
- runtime/CommonIdentifiers.h:
- runtime/IntlDateTimeFormat.cpp:
(JSC::toDateTimeOptionsAnyDate):
(JSC::IntlDateTimeFormat::setFormatsFromPattern):
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
(JSC::IntlDateTimeFormat::dayPeriodString):
(JSC::IntlDateTimeFormat::resolvedOptions const):
- runtime/IntlDateTimeFormat.h:
- runtime/OptionsList.h:
- 12:11 AM Changeset in webkit [266322] by
-
- 6 edits1 add in trunk
[JSC] super property with new should be accepted
https://bugs.webkit.org/show_bug.cgi?id=215966
Reviewed by Ross Kirsling.
JSTests:
- stress/super-and-new.js: Added.
(testSyntaxError):
(shouldBe):
(test.A):
(test.A.prototype.get hey):
(test.A.prototype.get hey2):
(test.A.prototype.super):
(test.B.get super):
Source/JavaScriptCore:
While we should reject
new super/new super(), we should acceptnew super.property.
https://tc39.es/ecma262/#prod-SuperProperty is a child production of https://tc39.es/ecma262/#prod-MemberExpression,
unlike https://tc39.es/ecma262/#prod-SuperCall. Sonewshould accept SuperProperty (e.g.super.xxx).
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseMemberExpression):
LayoutTests:
- js/class-syntax-super-expected.txt:
- js/script-tests/class-syntax-super.js: