Timeline
Dec 31, 2020:
- 7:38 PM Changeset in webkit [271117] by
-
- 3 edits1 add in trunk
JSFunction::deleteProperty() fails to delete a non-existent "prototype" property
https://bugs.webkit.org/show_bug.cgi?id=220211
Reviewed by Yusuke Suzuki.
JSTests:
- stress/function-delete-prototype.js: Added.
Source/JavaScriptCore:
This patch replaces arrow function check with hasPrototypeProperty() since there
are more functions without a "prototype" (accessors, methods, async functions),
aligning JSC with the spec, V8, and SpiderMonkey.
hasPrototypeProperty() is already used by JSFunction::getOwnPropertySlot().
- runtime/JSFunction.cpp:
(JSC::JSFunction::deleteProperty):
- 8:29 AM Changeset in webkit [271116] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Horizontal padding/border makes the inline box non-empty
https://bugs.webkit.org/show_bug.cgi?id=220208
Reviewed by Antti Koivisto.
<span style="padding-left: 1px"></span> makes this inline box non-empty and it stretches the line box.
(note that horizontal margin does not make the inline box non-empty)
(fast/inline/inline-padding-disables-text-quirk.html)
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
Dec 30, 2020:
- 7:27 PM Changeset in webkit [271115] by
-
- 8 edits in trunk
[JSC] WebAssembly Table/Memory/Global should allow inheritance
https://bugs.webkit.org/show_bug.cgi?id=220207
Reviewed by Alexey Shvayka.
LayoutTests/imported/w3c:
- web-platform-tests/wasm/jsapi/proto-from-ctor-realm-expected.txt:
- web-platform-tests/wasm/jsapi/prototypes.any-expected.txt:
- web-platform-tests/wasm/jsapi/prototypes.any.worker-expected.txt:
Source/JavaScriptCore:
WebAssembly.{Table,Memory,Global} should accept inheritance by JS class syntax.
We need to create structure from new.target value.
- wasm/js/WebAssemblyGlobalConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyMemoryConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyTableConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- 7:20 PM Changeset in webkit [271114] by
-
- 3 edits1 add in trunk
Unreviewed, fix iteration count check
https://bugs.webkit.org/show_bug.cgi?id=220206
JSTests:
- wasm/stress/multivalue-iteration-count.js: Added.
(async let):
Source/JavaScriptCore:
We should have iterationCount variable to track iteration count since it can be larger than MarkedArgumentBuffer's size.
- wasm/WasmOperations.cpp:
(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
- 6:49 PM Changeset in webkit [271113] by
-
- 5 edits in trunk
[JSC] Wasm multivalue should iterate iterable result from JS function first before converting values
https://bugs.webkit.org/show_bug.cgi?id=220206
Reviewed by Alexey Shvayka.
LayoutTests/imported/w3c:
- web-platform-tests/wasm/jsapi/constructor/multi-value.any-expected.txt:
- web-platform-tests/wasm/jsapi/constructor/multi-value.any.worker-expected.txt:
Source/JavaScriptCore:
When converting JS results to Wasm multivalue (result from JS when executing Wasm->JS calls), we should first iterate all results from iterable.
And then, we should convert each element into Wasm value. Currently, we are converting while iterating, this is not aligned to the spec.
- wasm/WasmOperations.cpp:
(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
- 4:04 PM Changeset in webkit [271112] by
-
- 17 edits1 add in trunk
[JSC] Update WebAssembly instance's exports object
https://bugs.webkit.org/show_bug.cgi?id=220189
Reviewed by Alexey Shvayka.
JSTests:
- stress/sampling-profiler-wasm-name-section.js:
(platformSupportsSamplingProfiler.vm.isWasmSupported):
- stress/sampling-profiler-wasm.js:
(platformSupportsSamplingProfiler.vm.isWasmSupported):
- wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
- wasm/stress/exports-object.js: Added.
(async try):
(catch):
LayoutTests/imported/w3c:
- web-platform-tests/wasm/jsapi/constructor/instantiate.any-expected.txt:
- web-platform-tests/wasm/jsapi/constructor/instantiate.any.worker-expected.txt:
- web-platform-tests/wasm/jsapi/instance/constructor.any-expected.txt:
- web-platform-tests/wasm/jsapi/instance/constructor.any.worker-expected.txt:
- web-platform-tests/wasm/jsapi/table/grow-reftypes.tentative.any-expected.txt:
Source/JavaScriptCore:
This patch aligns the WebAssembly Instance's exports object to the updated spec.
- exports object is a plain object which Prototype is null[1]. We were using module namespace object. Also, the object should be frozen.
- exported functions' name should be index, according to the spec[2].
[1]: https://webassembly.github.io/spec/js-api/index.html#create-an-exports-object
[2]: https://webassembly.github.io/spec/js-api/index.html#exported-function-exotic-objects
- wasm/js/JSWebAssembly.cpp:
(JSC::resolve):
- wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::finishCreation):
(JSC::JSWebAssemblyInstance::visitChildren):
(JSC::JSWebAssemblyInstance::finalizeCreation):
(JSC::JSWebAssemblyInstance::tryCreate):
- wasm/js/JSWebAssemblyInstance.h:
- wasm/js/WebAssemblyInstancePrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::visitChildren):
(JSC::WebAssemblyModuleRecord::link):
- wasm/js/WebAssemblyModuleRecord.h:
- 3:01 PM Changeset in webkit [271111] by
-
- 4 edits2 adds in trunk/Source/WebCore
Introduce RenderLayerScrollableArea
https://bugs.webkit.org/show_bug.cgi?id=219808
Reviewed by Simon Fraser.
Overhaul RenderLayer:
The goal is to move all overflow/scroll/... handling
out of RenderLayer, to streamline its interface and
make it re-usable for layer types that do not need
nor support scrolling/overflow.
This patch introduces RenderLayerScrollableArea inheriting
from ScrollableArea, with a back-reference to RenderLayer --
that mimics the design of RenderLayerFilters.
Follow-up patches will land the actual implementation, this
only adds a stub and adds it to the build systems.
No functional change - no new tests needed.
- Headers.cmake: Add RenderLayerScrollableArea.* to build.
- Sources.txt: Ditto.
- WebCore.xcodeproj/project.pbxproj: Ditto.
- rendering/RenderLayerScrollableArea.cpp: Added.
(WebCore::RenderLayerScrollableArea::RenderLayerScrollableArea):
(WebCore::RenderLayerScrollableArea::~RenderLayerScrollableArea):
(WebCore::RenderLayerScrollableArea::shouldPlaceBlockDirectionScrollbarOnLeft const):
- rendering/RenderLayerScrollableArea.h: Added.
- 2:31 PM Changeset in webkit [271110] by
-
- 23 edits in trunk
[Legacy Line Layout] Remove unnecessary 'vertical-align: middle' integral rounding
https://bugs.webkit.org/show_bug.cgi?id=220198
Reviewed by Antti Koivisto.
Source/WebCore:
Let's not do "random" rounding for 'vertical-align: middle'. Fix it for all the alignment types by
adjusting the logical top position when the inline box stretches the line.
- rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::computeLogicalBoxHeights):
- rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::verticalPositionForBox):
LayoutTests:
Added additional 'vertical-align' values.
- fast/sub-pixel/vertical-align-middle-overflow.html:
- 1:30 PM Changeset in webkit [271109] by
-
- 4 edits3 adds in trunk
[LFC Display] Stacking item bounds were wrong in some cases
https://bugs.webkit.org/show_bug.cgi?id=220201
Reviewed by Zalan Bujtas.
Source/WebCore:
Display::StackingItem were computed incorrectly for some content configurations,
such as:
- inline non-container box
- inline container box with no children
- positioned inline non-container box
- positioned inline container box with no children
- positioned block non-container box
Fix by ensuring that when we create a StackingItem for a box with no children
to descend into, we run the same geometry logic that happens for
pushStateForBoxDescendants()/popState(). Also ensure that we call
accountForBoxPaintingExtent() for leaf boxes without a stacking item.
Test: fast/layoutformattingcontext/display/stacking-item-bounds.html
- display/DisplayTreeBuilder.cpp:
(WebCore::Display::TreeBuilder::popState):
(WebCore::Display::TreeBuilder::didAppendNonContainerStackingItem):
(WebCore::Display::TreeBuilder::insertIntoTree):
(WebCore::Display::TreeBuilder::buildInlineDisplayTree):
(WebCore::Display::TreeBuilder::recursiveBuildDisplayTree):
- display/DisplayTreeBuilder.h:
LayoutTests:
- fast/layoutformattingcontext/display/stacking-item-bounds-expected.html: Added.
- fast/layoutformattingcontext/display/stacking-item-bounds.html: Added.