⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Jan 14, 2018:

3:02 PM Changeset in webkit [226943] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

[macOS] [WK2] Unskip some consistently-passing tests
https://bugs.webkit.org/show_bug.cgi?id=181226
<rdar://problem/23023848>

Reviewed by Simon Fraser.

According to the flakiness dashboard, these tests consistently pass now.

  • platform/mac-wk2/TestExpectations:
11:43 AM Changeset in webkit [226942] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. r226928 broke the CLOOP build. This patch fixes the CLOOP build.

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFromLLInt):
(JSC::CallLinkStatus::computeExitSiteData):

Jan 13, 2018:

11:16 PM Changeset in webkit [226941] by Chris Dumez
  • 3 edits in trunk/LayoutTests

Extend testing added in r226842
https://bugs.webkit.org/show_bug.cgi?id=181634

Reviewed by Darin Adler.

I have verified that the behavior is consistent with Chrome and Firefox.

  • fast/dom/Window/window-opener-shadowing-expected.txt:
  • fast/dom/Window/window-opener-shadowing.html:
10:11 PM Changeset in webkit [226940] by mark.lam@apple.com
  • 62 edits
    1 move
    2 deletes in trunk

Replace all use of ConstExprPoisoned with Poisoned.
https://bugs.webkit.org/show_bug.cgi?id=181542
<rdar://problem/36442138>

Reviewed by JF Bastien.

Source/JavaScriptCore:

  1. All JSC poisons are now defined in JSCPoison.h.
  1. Change all clients to use the new poison values via the POISON() macro.
  1. The LLInt code has been updated to handle CodeBlock poison. Some of this code uses the t5 temp register, which is not available on the Windows port. Fortunately, we don't currently do poisoning on the Windows port yet. So, it will just work for now.

When poisoning is enabled for the Windows port, this LLInt code will need a
Windows specific implementation to workaround its lack of a t5 register.

  • API/JSAPIWrapperObject.h:
  • API/JSCallbackFunction.h:
  • API/JSCallbackObject.h:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • assembler/MacroAssemblerCodeRef.h:

(JSC::MacroAssemblerCodePtr::emptyValue):
(JSC::MacroAssemblerCodePtr::deletedValue):

  • b3/B3LowerMacros.cpp:
  • b3/testb3.cpp:

(JSC::B3::testInterpreter):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::instructions):
(JSC::CodeBlock::instructions const):
(JSC::CodeBlock::makePoisonedUnique):

  • dfg/DFGOSRExitCompilerCommon.h:

(JSC::DFG::adjustFrameAndStackInOSRExitCompilerThunk):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCheckSubClass):
(JSC::DFG::SpeculativeJIT::emitSwitchIntJump):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):

  • jit/JIT.h:
  • jit/ThunkGenerators.cpp:

(JSC::virtualThunkFor):
(JSC::nativeForGenerator):
(JSC::boundThisNoArgsFunctionCallGenerator):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • parser/UnlinkedSourceCode.h:
  • runtime/ArrayPrototype.h:
  • runtime/CustomGetterSetter.h:
  • runtime/DateInstance.h:
  • runtime/InternalFunction.h:
  • runtime/JSArrayBuffer.h:
  • runtime/JSCPoison.cpp: Copied from Source/JavaScriptCore/runtime/JSCPoisonedPtr.cpp.

(JSC::initializePoison):

  • runtime/JSCPoison.h:

(): Deleted.

  • runtime/JSCPoisonedPtr.cpp: Removed.
  • runtime/JSCPoisonedPtr.h: Removed.
  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::makePoisonedUnique):

  • runtime/JSScriptFetchParameters.h:
  • runtime/JSScriptFetcher.h:
  • runtime/NativeExecutable.h:
  • runtime/StructureTransitionTable.h:

(JSC::StructureTransitionTable::map const):
(JSC::StructureTransitionTable::weakImpl const):

  • runtime/WriteBarrier.h:

(JSC::WriteBarrier::poison):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

  • wasm/js/JSWebAssemblyCodeBlock.cpp:

(JSC::JSWebAssemblyCodeBlock::JSWebAssemblyCodeBlock):

  • wasm/js/JSWebAssemblyCodeBlock.h:
  • wasm/js/JSWebAssemblyInstance.h:
  • wasm/js/JSWebAssemblyMemory.h:
  • wasm/js/JSWebAssemblyModule.h:
  • wasm/js/JSWebAssemblyTable.h:
  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::handleBadI64Use):
(JSC::Wasm::wasmToJS):

  • wasm/js/WebAssemblyFunctionBase.h:
  • wasm/js/WebAssemblyModuleRecord.h:
  • wasm/js/WebAssemblyToJSCallee.h:
  • wasm/js/WebAssemblyWrapperFunction.h:

Source/WTF:

  1. Removed ConstExprPoisoned and its artifacts.
  1. Consolidated Poisoned into PoisonedImpl. PoisonedImpl is not more.
  1. Changed all clients of ConstExprPoisoned to use Poisoned instead.
  1. Worked around the GCC and Clang compiler bug that confuses an intptr_t& template arg with intptr_t. See use of std::enable_if_t<Other::isPoisoned> in Poisoned.h.
  1. Removed ENABLE(MIXED_POISON) since we now have a workaround (3) that makes it possible to use the mixed poison code.
  1. Also fixed broken implementation of comparison operators in Poisoned.
  • wtf/Bag.h:
  • wtf/DumbPtrTraits.h:

(WTF::DumbPtrTraits::poison):

  • wtf/DumbValueTraits.h:

(WTF::DumbValueTraits::poison):

  • wtf/Poisoned.h:

(WTF::Poisoned::Poisoned):
(WTF::Poisoned::operator== const):
(WTF::Poisoned::operator!= const):
(WTF::Poisoned::operator< const):
(WTF::Poisoned::operator<= const):
(WTF::Poisoned::operator> const):
(WTF::Poisoned::operator>= const):
(WTF::Poisoned::operator=):
(WTF::Poisoned::swap):
(WTF::swap):
(WTF::PoisonedPtrTraits::poison):
(WTF::PoisonedPtrTraits::swap):
(WTF::PoisonedValueTraits::poison):
(WTF::PoisonedValueTraits::swap):
(WTF::PoisonedImpl::PoisonedImpl): Deleted.
(WTF::PoisonedImpl::assertIsPoisoned const): Deleted.
(WTF::PoisonedImpl::assertIsNotPoisoned const): Deleted.
(WTF::PoisonedImpl::unpoisoned const): Deleted.
(WTF::PoisonedImpl::clear): Deleted.
(WTF::PoisonedImpl::operator* const): Deleted.
(WTF::PoisonedImpl::operator-> const): Deleted.
(WTF::PoisonedImpl::bits const): Deleted.
(WTF::PoisonedImpl::operator! const): Deleted.
(WTF::PoisonedImpl::operator bool const): Deleted.
(WTF::PoisonedImpl::operator== const): Deleted.
(WTF::PoisonedImpl::operator!= const): Deleted.
(WTF::PoisonedImpl::operator< const): Deleted.
(WTF::PoisonedImpl::operator<= const): Deleted.
(WTF::PoisonedImpl::operator> const): Deleted.
(WTF::PoisonedImpl::operator>= const): Deleted.
(WTF::PoisonedImpl::operator=): Deleted.
(WTF::PoisonedImpl::swap): Deleted.
(WTF::PoisonedImpl::exchange): Deleted.
(WTF::PoisonedImpl::poison): Deleted.
(WTF::PoisonedImpl::unpoison): Deleted.
(WTF::constExprPoisonRandom): Deleted.
(WTF::makeConstExprPoison): Deleted.
(WTF::ConstExprPoisonedPtrTraits::exchange): Deleted.
(WTF::ConstExprPoisonedPtrTraits::swap): Deleted.
(WTF::ConstExprPoisonedPtrTraits::unwrap): Deleted.
(WTF::ConstExprPoisonedValueTraits::exchange): Deleted.
(WTF::ConstExprPoisonedValueTraits::swap): Deleted.
(WTF::ConstExprPoisonedValueTraits::unwrap): Deleted.

  • wtf/PoisonedUniquePtr.h:

(WTF::PoisonedUniquePtr::PoisonedUniquePtr):
(WTF::PoisonedUniquePtr::operator=):

  • wtf/Ref.h:
  • wtf/RefCountedArray.h:

(WTF::RefCountedArray::RefCountedArray):

  • wtf/RefPtr.h:
  • wtf/WTFAssertions.cpp:

Tools:

  1. Converted tests to using new uintptr_t& poison type.
  2. Added tests for Poisoned comparison operators.
  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/ConstExprPoisoned.cpp: Removed.
  • TestWebKitAPI/Tests/WTF/Poisoned.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::initializeTestPoison): Deleted.

  • TestWebKitAPI/Tests/WTF/PoisonedRef.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::passWithRef):

  • TestWebKitAPI/Tests/WTF/PoisonedRefPtr.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::f1):

  • TestWebKitAPI/Tests/WTF/PoisonedUniquePtr.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::poisonedPtrFoo):

  • TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForNonTriviallyDestructibleArrays.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForTriviallyDestructibleArrays.cpp:

(TestWebKitAPI::TEST):

8:06 PM Changeset in webkit [226939] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles Redesign: properties should never be semitransparent or crossed out while editing
https://bugs.webkit.org/show_bug.cgi?id=180793
<rdar://problem/36038813>

Reviewed by Devin Rousso.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.spreadsheet-style-declaration-editor .value.editing):
(.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) .content > *):
(.spreadsheet-style-declaration-editor .property.invalid-name:not(.disabled) .content > *):
(.spreadsheet-style-declaration-editor .property.invalid-value:not(.disabled) .content .value):
(.spreadsheet-style-declaration-editor .property.not-inherited .content > *):

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._update):

12:38 PM Changeset in webkit [226938] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

check-webkit-style: false positive for [whitespace/braces] with os_log format string
<https://webkit.org/b/181606>

Reviewed by Darin Adler.

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_spacing): Modify regular expression to ignore
os_log format strings like '%{public}'.

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(CppStyleTest.test_spacing_before_braces): Add os_log
format string test.

7:16 AM Changeset in webkit [226937] by Caio Lima
  • 7 edits
    6 adds in trunk

[JSC] NumberPrototype::extractRadixFromArgs incorrectly cast double to int32_t
https://bugs.webkit.org/show_bug.cgi?id=181182

Reviewed by Darin Adler.

JSTests:

  • bigIntTests.yaml:
  • stress/big-int-constructor.js:
  • stress/big-int-prototype-to-string-cast-overflow.js: Added.

(assert):
(assertThrowRangeError):

  • stress/number-prototype-to-string-cast-overflow.js: Added.

(assert):
(assertThrowRangeError):

Source/JavaScriptCore:

Casting double to integer is undefined behavior when the truncation
results into a value that doesn't fit into integer size, according C++
spec[1]. Thus, we are changing bigIntProtoFuncToString and
numberProtoFuncToString to remove these source of undefined behavior.

[1] - http://en.cppreference.com/w/cpp/language/implicit_conversion

  • runtime/BigIntPrototype.cpp:

(JSC::bigIntProtoFuncToString):

  • runtime/NumberPrototype.cpp:

(JSC::numberProtoFuncToString):
(JSC::extractRadixFromArgs): Deleted.
(JSC::extractToStringRadixArgument): Added.

4:07 AM Changeset in webkit [226936] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

MathML Lengths should take zoom level into account
https://bugs.webkit.org/show_bug.cgi?id=180029

Patch by Minsheng Liu <lambda@liu.ms> on 2018-01-13
Reviewed by Frédéric Wang.

Source/WebCore:

The patch applies the effective zoom factor to physical units in toUserUnits().

Test: mathml/presentation/mspace-units-with-zoom.html

  • rendering/mathml/RenderMathMLBlock.cpp:

(WebCore::toUserUnits):

LayoutTests:

Add a testcase for MathML lengths where zoom factor is set.

  • mathml/presentation/mspace-units-with-zoom-expected.html: Added.
  • mathml/presentation/mspace-units-with-zoom.html: Added.
Note: See TracTimeline for information about the timeline view.