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

Timeline



Dec 14, 2015:

11:03 PM Changeset in webkit [194098] by matthew_hanson@apple.com
  • 3 edits
    4 adds in branches/safari-601.1.46-branch

Merge r194001. rdar://problem/23814327

11:03 PM Changeset in webkit [194097] by matthew_hanson@apple.com
  • 3 edits
    3 adds in branches/safari-601.1.46-branch

Merge r193997. rdar://problem/23814333

11:03 PM Changeset in webkit [194096] by matthew_hanson@apple.com
  • 6 edits
    3 adds in branches/safari-601.1.46-branch

Merge r193885. rdar://problem/23860425

10:49 PM Changeset in webkit [194095] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[Coordinated Graphics] CSS transition effect is not shown when transformed with "%" unit.
https://bugs.webkit.org/show_bug.cgi?id=152278

Patch by YongGeol Jung <yg48.jung@samsung.com> on 2015-12-14
Reviewed by Darin Adler.

boxSize is encoded as FloatSize type but decoded as IntSize type.
So boxSize gets invalid value after decoding.
Due to this layer goes to out of screen during animation.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:

(IPC::ArgumentCoder<TextureMapperAnimation>::decode):

10:08 PM Changeset in webkit [194094] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

<rdar://problem/23886216> REGRESSION (r194022): Production builds of PluginProcess crash on launch when not installed in /System
https://bugs.webkit.org/show_bug.cgi?id=152291

Reviewed by Darin Adler.

  • Configurations/PluginProcess.xcconfig: Added a FIXME.
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::addDYLDEnvironmentAdditions): Set DYLD_LIBRARY_PATH to point to where the shims
are. This is needed because starting in El Capitan, the processes’ main executables link
directly against the shims, so the dynamic linker needs to be able to find them in the
non-/System location. Also added a FIXME about not having to set DYLD_INSERT_LIBRARIES when
the main executables link the them directly.

9:15 PM Changeset in webkit [194093] by rniwa@webkit.org
  • 4 edits in trunk/Websites/perf.webkit.org

Using fake timestamp in OS version make some results invisible
https://bugs.webkit.org/show_bug.cgi?id=152289

Reviewed by Stephanie Lewis.

Fix various bugs after r194088.

  • public/api/commits.php:

(format_commit): Include the commit order.

  • public/v2/data.js:

(CommitLogs._cacheConsecutiveCommits): Sort by commit order when commit time is missing.

  • tools/pull-os-versions.py:

(OSBuildFetcher._assign_order): Use integer instead of fake time for commit order.
(available_builds_from_command): Exit early when an exception is thrown.

8:52 PM Changeset in webkit [194092] by fpizlo@apple.com
  • 6 edits
    1 add in trunk/Source/JavaScriptCore

FTL B3 should account for localsOffset
https://bugs.webkit.org/show_bug.cgi?id=152288

Reviewed by Saam Barati.

The DFG will build up some data structures that expect to know about offsets from FP. Those data
structures may slide by some offset when the low-level compiler (either LLVM or B3) does stack
allocation. So, the LLVM FTL modifies those data structures based on the real offset that it gets
from LLVM's stackmaps. The B3 code needs to do the same.

I had previously vowed to never put more stuff into FTLB3Compile.cpp, because I didn't want it to
look like FTLCompile.cpp. Up until now, I was successful because I used lambdas installed by
FTLLower. But in this case, I actually think that having code that just does this explicitly in
FTLB3Compile.cpp is least confusing. There is no particular place in FTLLower that would want to
care about this, and we need to ensure that we do this fixup before we run any of the stackmap
generators. In other words, it needs to happen before we call B3::generate(). The ordering
constraints seem like a good reason to have this done explicitly rather than through lambdas.

I wrote a test. The test was failing in trunk because the B3 meaning of anchor().value() is
different from the LLVM meaning. This caused breakage when we used this idiom:

ValueFromBlock foo = m_out.anchor(things);
...(foo.value()) we were expecting that foo.value() == things

I never liked this idiom to begin with, so instead of trying to change B3's anchor(), I changed
the idiom to:

LValue fooValue = things;
ValueFromBlock foo = m_out.anchor(fooValue);
...(fooValue)

This is probably a good idea, since eventually we want B3's anchor() to just return the
UpsilonValue*. To get there, we want to eliminate any situations where code assumes that
ValueFromBlock is an actual object and not just a typedef for a pointer.

  • ftl/FTLB3Compile.cpp:

(JSC::FTL::compile):

  • ftl/FTLB3Output.cpp:

(JSC::FTL::Output::appendTo):
(JSC::FTL::Output::lockedStackSlot):

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::framePointer):
(JSC::FTL::Output::constBool):
(JSC::FTL::Output::constInt32):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::lower):
(JSC::FTL::DFG::LowerDFGToLLVM::compileGetIndexedPropertyStorage):
(JSC::FTL::DFG::LowerDFGToLLVM::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCreateDirectArguments):
(JSC::FTL::DFG::LowerDFGToLLVM::compileStringCharAt):
(JSC::FTL::DFG::LowerDFGToLLVM::compileForwardVarargs):
(JSC::FTL::DFG::LowerDFGToLLVM::compileHasIndexedProperty):
(JSC::FTL::DFG::LowerDFGToLLVM::allocateJSArray):
(JSC::FTL::DFG::LowerDFGToLLVM::sensibleDoubleToInt32):

  • ftl/FTLState.h:

(JSC::FTL::verboseCompilationEnabled):

  • tests/stress/ftl-function-dot-arguments-with-callee-saves.js: Added.
8:43 PM Changeset in webkit [194091] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Re-enabling passing test fast/viewport/ios/width-is-device-width.html, which was accidentally skipped with r194058.
https://bugs.webkit.org/show_bug.cgi?id=152135

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
8:32 PM Changeset in webkit [194090] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Fix a typo in the previous commit.

  • public/include/report-processor.php:
8:31 PM Changeset in webkit [194089] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Build fix after r192965. Suppress a warning about log being referred to as a closure variable.

  • public/include/report-processor.php:
8:06 PM Changeset in webkit [194088] by rniwa@webkit.org
  • 5 edits in trunk/Websites/perf.webkit.org

Using fake timestamp in OS version make some results invisible
https://bugs.webkit.org/show_bug.cgi?id=152289

Reviewed by Stephanie Lewis.

Added commit_order column to explicitly order OS versions. This fixes the bug whereby which
baseline results reported with only OS versions are shown with x coordinate set to 10 years ago.

To migrate the existing database, run:

ALTER TABLE commits ADD COLUMN commit_order integer;
CREATE INDEX commit_order_index ON commits(commit_order);

Then for each repository $1,

UPDATE commits SET (commit_time, commit_order) = (NULL, CAST(EXTRACT(epoch from commit_time) as integer))
WHERE commit_repository = $1;

  • init-database.sql: Added the column.
  • public/api/commits.php:

(fetch_commits_between): Use commit_order to order commits when commit_time is missing.

  • public/api/report-commits.php:

(main): Set commit_order.

  • tools/pull-os-versions.py:

(OSBuildFetcher.fetch_and_report_new_builds):
(OSBuildFetcher._assign_order): Renamed from _assign_fake_timestamps. Set the order instead of a fake timestmap.

7:51 PM Changeset in webkit [194087] by Yusuke Suzuki
  • 29 edits
    5 adds in trunk

Math.random should have an intrinsic thunk and it should be later handled as a DFG Node
https://bugs.webkit.org/show_bug.cgi?id=152133

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

In this patch, we implement new RandomIntrinsic. It emits a machine code to generate random numbers efficiently.
And later it will be recognized by DFG and converted to ArithRandom node.
It provides type information SpecDoubleReal since Math.random only generates a number within [0, 1.0).

Currently, only 64bit version is supported. On 32bit environment, ArithRandom will be converted to callOperation.
While it emits a function call, ArithRandom node on 32bit still represents SpecDoubleReal as a result type.

  • dfg/DFGAbstractHeap.h:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileArithRandom):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileArithRandom):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArithRandom):

  • jit/AssemblyHelpers.cpp:

(JSC::emitRandomThunkImpl):
(JSC::AssemblyHelpers::emitRandomThunk):

  • jit/AssemblyHelpers.h:
  • jit/JITOperations.h:
  • jit/ThunkGenerators.cpp:

(JSC::randomThunkGenerator):

  • jit/ThunkGenerators.h:
  • runtime/Intrinsic.h:
  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::weakRandomOffset):

  • runtime/MathObject.cpp:

(JSC::MathObject::finishCreation):

  • runtime/VM.cpp:

(JSC::thunkGeneratorForIntrinsic):

  • tests/stress/random-53bit.js: Added.

(test):

  • tests/stress/random-in-range.js: Added.

(test):

Source/WTF:

Change 64bit random to double logic to convert efficiently.

  • wtf/WeakRandom.h:

(WTF::WeakRandom::get):
(WTF::WeakRandom::lowOffset):
(WTF::WeakRandom::highOffset):

LayoutTests:

Add new regression test.

  • js/regress/math-random-expected.txt: Added.
  • js/regress/math-random.html: Added.
  • js/regress/script-tests/math-random.js: Added.

(test):

7:06 PM Changeset in webkit [194086] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Dump some more data in the RemoteLayerTreeTransaction
https://bugs.webkit.org/show_bug.cgi?id=152283

Reviewed by Dean Jackson.

Dump some scale factors, viewport meta tag width and render tree size.

  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::description):

6:59 PM Changeset in webkit [194085] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Perf dashboard can't merge when the destination platform is missing baseline/target
https://bugs.webkit.org/show_bug.cgi?id=152286

Reviewed by Stephanie Lewis.

The bug was caused by the query to migrate test configurations to new platform checking
configuration type and metric separately; that is, it assumes the configuration exists
only if either the same type or the same metric exists in the destination.

Fixed the bug by checking both conditions simultaneously for each configuration.

  • public/admin/platforms.php:
  • tests/admin-platforms.js: Added a test.
6:15 PM Changeset in webkit [194084] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.13.3

Merged r193935. rdar://problem/23839868

5:14 PM Changeset in webkit [194083] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

Web Inspector: Stack traces in console incorrectly show "(anonymous function)" for global code
https://bugs.webkit.org/show_bug.cgi?id=152280

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-12-14
Reviewed by Brian Burg.

Source/WebInspectorUI:

  • UserInterface/Images/Program.svg: Added.
  • UserInterface/Images/gtk/Program.svg: Added.

Copied from TimelineRecordScriptEvaluated.svg.

  • UserInterface/Models/CallFrame.js:

(WebInspector.CallFrame):
(WebInspector.CallFrame.prototype.get programCode):
Add a new property to check if this call frame is in program code.

(WebInspector.CallFrame.fromPayload):
Detect different sources of program code (global, eval, module).

  • UserInterface/Views/CallFrameIcons.css:

(.program-icon .icon):

  • UserInterface/Views/CallFrameView.js:

(WebInspector.CallFrameView.iconClassNameForCallFrame):
Give program code the [S] global script icon like in profiles.

LayoutTests:

  • inspector/debugger/js-stacktrace-expected.txt:
  • inspector/debugger/js-stacktrace.html:
5:11 PM Changeset in webkit [194082] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking storage/indexeddb/deleted-objects.html as a flaky crash on mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=152264

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
5:03 PM Changeset in webkit [194081] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking platform/ios-simulator/ios/scrolling tests as failing on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=152276

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
4:40 PM WebKitGTK/Gardening/Calendar edited by ChangSeok Oh
Add changseok to the schedule (diff)
4:35 PM Changeset in webkit [194080] by matthew_hanson@apple.com
  • 4 edits in branches/safari-601-branch/Source

Merge r193380. rdar://problem/23816165

4:35 PM Changeset in webkit [194079] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebKit2

Merge r193367. rdar://problem/23816165

4:35 PM Changeset in webkit [194078] by matthew_hanson@apple.com
  • 7 edits in branches/safari-601-branch

Merge r192911. rdar://problem/23816165

4:35 PM Changeset in webkit [194077] by matthew_hanson@apple.com
  • 18 edits
    25 adds in branches/safari-601-branch

Merge r192270. rdar://problem/23435543

4:35 PM Changeset in webkit [194076] by matthew_hanson@apple.com
  • 11 edits
    4 copies in branches/safari-601-branch/Source/WebKit2

Merge r188553. rdar://problem/23816165

4:35 PM Changeset in webkit [194075] by matthew_hanson@apple.com
  • 14 edits in branches/safari-601-branch/Source

Merge r188386. rdar://problem/23816165

4:35 PM Changeset in webkit [194074] by matthew_hanson@apple.com
  • 26 edits in branches/safari-601-branch/Source/WebKit2

Merge r188228. rdar://problem/23816165

4:34 PM Changeset in webkit [194073] by benjamin@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

Rename FTL::Output's ceil64() to doubleCeil()

Rubber-stamped by Filip Pizlo.

ceil64() was a bad name, that's the name convention we use for integers.

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::doubleCeil):
(JSC::FTL::Output::ceil64): Deleted.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileArithRound):

4:30 PM Changeset in webkit [194072] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

FTL B3 should be able to run n-body.js
https://bugs.webkit.org/show_bug.cgi?id=152281

Reviewed by Benjamin Poulain.

Fix a bug where m_captured was pointing to the start of the captured vars slot rather than the
end, like the rest of the FTL expected.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::lower):

4:11 PM Changeset in webkit [194071] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix bad copy-paste in r194062

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-12-14

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::ceil64):

3:48 PM Changeset in webkit [194070] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Updating ios-simulator expectation for crashing tests http/tests/misc/large-js-program.php and js/dom/line-column-numbers.html
https://bugs.webkit.org/show_bug.cgi?id=152279

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
3:42 PM Changeset in webkit [194069] by Ryan Haddad
  • 4 edits in trunk/LayoutTests

Removing ios-simulator TestExpectations for deleted tests: streams/reference-implementation/readable-stream-cancel.html (r192186)
and http/tests/inspector/console/access-inspected-object.html (r192186).
https://bugs.webkit.org/show_bug.cgi?id=152131

Unreviewed test gardening.

  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
3:27 PM Changeset in webkit [194068] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix cloop build.

  • jit/GPRInfo.cpp:
3:18 PM Changeset in webkit [194067] by fpizlo@apple.com
  • 7 edits
    1 add in trunk/Source/JavaScriptCore

FTL B3 should do PutById
https://bugs.webkit.org/show_bug.cgi?id=152268

Reviewed by Saam Barati.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::createGenericCompare): I realized that we were missing some useful matching rules.

  • b3/testb3.cpp: Added a bunch of tests.
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compilePutById): Do the things.

  • jit/GPRInfo.cpp: Added. I had to do this yucky thing because clang was having issues compiling references to this from deeply nested lambdas.
  • jit/GPRInfo.h: Added a comment about how patchpointScratchRegister is bizarre and should probably die.
3:10 PM Changeset in webkit [194066] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Copy message from console with a stack trace does not include source code locations
https://bugs.webkit.org/show_bug.cgi?id=152270

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-12-14
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype.toClipboardString):
When the the StackTrace was upgraded to a real collection of CallFrame
object's the CallFrame's got real SourceCodeLocation properties.

3:07 PM Changeset in webkit [194065] by matthew_hanson@apple.com
  • 3 edits
    4 adds in branches/safari-601-branch

Merge r194001. rdar://problem/23581577

3:07 PM Changeset in webkit [194064] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebCore

Merge r189942. rdar://problem/23886455

3:01 PM Changeset in webkit [194063] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Adding a second newline to the iOS simulator expected result for compositing/iframes/page-cache-layer-tree.html
https://bugs.webkit.org/show_bug.cgi?id=152132

Unreviewed test gardening.

  • platform/ios-simulator-wk2/compositing/iframes/page-cache-layer-tree-expected.txt:
2:44 PM Changeset in webkit [194062] by commit-queue@webkit.org
  • 25 edits in trunk/Source/JavaScriptCore

[JSC] Add ceil() support for x86 and expose it to B3
https://bugs.webkit.org/show_bug.cgi?id=152231

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-12-14
Reviewed by Geoffrey Garen.

Most x86 CPUs we care about support ceil() natively
with the round instruction.

This patch expose that behind a runtime flag, use it
in the Math.ceil() thunk and expose it to B3.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::supportsFloatingPointCeil):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::supportsFloatingPointCeil):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::supportsFloatingPointCeil):

  • assembler/MacroAssemblerSH4.h:

(JSC::MacroAssemblerSH4::supportsFloatingPointCeil):

  • assembler/MacroAssemblerX86Common.cpp:
  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::ceilDouble):
(JSC::MacroAssemblerX86Common::ceilFloat):
(JSC::MacroAssemblerX86Common::supportsFloatingPointCeil):
(JSC::MacroAssemblerX86Common::supportsLZCNT):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::roundss_rr):
(JSC::X86Assembler::roundss_mr):
(JSC::X86Assembler::roundsd_rr):
(JSC::X86Assembler::roundsd_mr):
(JSC::X86Assembler::mfence):
(JSC::X86Assembler::X86InstructionFormatter::threeByteOp):

  • b3/B3ConstDoubleValue.cpp:

(JSC::B3::ConstDoubleValue::ceilConstant):

  • b3/B3ConstDoubleValue.h:
  • b3/B3ConstFloatValue.cpp:

(JSC::B3::ConstFloatValue::ceilConstant):

  • b3/B3ConstFloatValue.h:
  • b3/B3LowerMacrosAfterOptimizations.cpp:
  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::lower):

  • b3/B3Opcode.cpp:

(WTF::printInternal):

  • b3/B3Opcode.h:
  • b3/B3ReduceDoubleToFloat.cpp:
  • b3/B3ReduceStrength.cpp:
  • b3/B3Validate.cpp:
  • b3/B3Value.cpp:

(JSC::B3::Value::ceilConstant):
(JSC::B3::Value::effects):
(JSC::B3::Value::key):
(JSC::B3::Value::typeFor):

  • b3/B3Value.h:
  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::testCeilArg):
(JSC::B3::testCeilImm):
(JSC::B3::testCeilMem):
(JSC::B3::testCeilCeilArg):
(JSC::B3::testCeilIToD64):
(JSC::B3::testCeilIToD32):
(JSC::B3::testCeilArgWithUselessDoubleConversion):
(JSC::B3::testCeilArgWithEffectfulDoubleConversion):
(JSC::B3::populateWithInterestingValues):
(JSC::B3::run):

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::ceil64):

  • jit/ThunkGenerators.cpp:

(JSC::ceilThunkGenerator):

2:26 PM Changeset in webkit [194061] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking js/regress/generator-with-several-types.html as a flaky timeout on mac-wk1 debug.
https://bugs.webkit.org/show_bug.cgi?id=152272

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:12 PM Changeset in webkit [194060] by timothy_horton@apple.com
  • 4 edits
    1 add in trunk

Frequent crash under -[WKPDFView web_setMinimumSize:]_block_invoke
https://bugs.webkit.org/show_bug.cgi?id=152266
<rdar://problem/22092676>

Reviewed by Simon Fraser.

Source/WebKit2:

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView web_setMinimumSize:]):
We weren't retaining the UIScrollView, but depending on it surviving
into this block's invocation.

We don't need to do this asynchronously anymore because the referenced
bug is fixed, so make it happen synchronously. This also fixes the crash
because there's no opportunity for the scroll view to be released.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/WKPDFViewResizeCrash.mm: Added.

Add a test that crashed before this change, and doesn't crash after.

2:10 PM Changeset in webkit [194059] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Take 2 of updating expectations for fast/events/ios tests by removing the directory's [ Pass ] expectation.
https://bugs.webkit.org/show_bug.cgi?id=152134

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
2:08 PM Changeset in webkit [194058] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Take 2 of updating expectations for fast/viewport/ios tests by removing the directory's [ Pass ] expectation.
https://bugs.webkit.org/show_bug.cgi?id=152135

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
1:36 PM Changeset in webkit [194057] by akling@apple.com
  • 6 edits in trunk/Source

ResourceUsageOverlay should show GC timers.
<https://webkit.org/b/152151>

Reviewed by Darin Adler.

Source/JavaScriptCore:

Expose the next fire time (in WTF timestamp style) of a GCActivityCallback.

  • heap/GCActivityCallback.cpp:

(JSC::GCActivityCallback::scheduleTimer):
(JSC::GCActivityCallback::cancelTimer):

  • heap/GCActivityCallback.h:

Source/WebCore:

Add countdowns until next Eden and Full GC to the overlay. It also shows if there
is no garbage collection scheduled. This will be helpful in understanding why GC
sometimes takes a very long time to happen.

  • page/ResourceUsageOverlay.h:
  • page/cocoa/ResourceUsageOverlayCocoa.mm:

(WebCore::formatByteNumber): Drive-by silly math fix. :|
(WebCore::gcTimerString):
(WebCore::ResourceUsageOverlay::platformDraw):
(WebCore::nextFireTimeForGCTimer):
(WebCore::runSamplerThread):

1:30 PM Changeset in webkit [194056] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline compositing/iframes/page-cache-layer-tree.html for iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=152267

Unreviewed test gardening.

  • platform/ios-simulator-wk2/compositing/iframes/page-cache-layer-tree-expected.txt:
1:30 PM Changeset in webkit [194055] by Ryan Haddad
  • 1 edit in trunk/LayoutTests/ChangeLog

Marking fast/viewport/ios/width-is-device-width-overflowing* tests as failing on iOS simulator
https://bugs.webkit.org/show_bug.cgi?id=152135

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
1:12 PM Changeset in webkit [194054] by Chris Fleizach
  • 11 edits
    2 adds in trunk

AX: iOS: Text field variations do not have the correct traits
https://bugs.webkit.org/show_bug.cgi?id=152237

Reviewed by Mario Sanchez Prada.

Source/WebCore:

Make search fields and text areas use the appropriate iOS traits to
distinguish them.

Test: accessibility/ios-simulator/textentry-traits.html

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]):
(-[WebAccessibilityObjectWrapper _accessibilityTextEntryTraits]):
(-[WebAccessibilityObjectWrapper accessibilityTraits]):

Tools:

Add iOS calls for determing if an object is a search field or a text area.

  • DumpRenderTree/AccessibilityUIElement.cpp:

(getIsSearchFieldCallback):
(getIsTextAreaCallback):
(stringForSelectionCallback):
(AccessibilityUIElement::getJSClass):

  • DumpRenderTree/AccessibilityUIElement.h:
  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::identifier):
(AccessibilityUIElement::isTextArea):
(AccessibilityUIElement::isSearchField):
(AccessibilityUIElement::traits):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::scrollPageRight):
(WTR::AccessibilityUIElement::hasContainedByFieldsetTrait):
(WTR::AccessibilityUIElement::fieldsetAncestorElement):
(WTR::AccessibilityUIElement::isSearchField):
(WTR::AccessibilityUIElement::isTextArea):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::fieldsetAncestorElement):
(WTR::AccessibilityUIElement::isTextArea):
(WTR::AccessibilityUIElement::isSearchField):
(WTR::AccessibilityUIElement::rowCount):

LayoutTests:

  • accessibility/ios-simulator/textentry-traits-expected.txt: Added.
  • accessibility/ios-simulator/textentry-traits.html: Added.
1:03 PM Changeset in webkit [194053] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/viewport/ios/width-is-device-width-overflowing* tests as failing on iOS simulator
https://bugs.webkit.org/show_bug.cgi?id=152135

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
1:00 PM Changeset in webkit [194052] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/picture/image-picture-* as failing on iOS simulator
https://bugs.webkit.org/show_bug.cgi?id=152141

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
12:43 PM Changeset in webkit [194051] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Removing failure expectation for css3/blending tests that are now passing on iOS simulator
https://bugs.webkit.org/show_bug.cgi?id=152131

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
12:28 PM Changeset in webkit [194050] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix merge issue in a test.

  • b3/testb3.cpp:

(JSC::B3::testCheckTwoMegaCombos):
(JSC::B3::testCheckTwoNonRedundantMegaCombos):

12:27 PM Changeset in webkit [194049] by bshafiei@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebCore

Merged r193999. rdar://problem/23886468

12:25 PM Changeset in webkit [194048] by fpizlo@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

B3 should not give ValueReps for the non-stackmap children of a CheckValue to the generator callback
https://bugs.webkit.org/show_bug.cgi?id=152224

Reviewed by Geoffrey Garen.

Previously, a stackmap generator for a Check had to know how many children the B3 value for the
Check had at the time of code generation. That meant that B3 could not change the kind of Check
that it was - for example it cannot turn a Check into a Patchpoint and it cannot turn a CheckAdd
into a Check. But just changing the contract so that the stackmap generation params only get the
stackmap children of the check means that B3 can transform Checks as it likes.

This is meant to aid sinking values into checks.

Also, I found that the effects of a Check did not include HeapRange::top(). I think it's best if
exitsSideways does not imply reading top, the way that it does in DFG. In the DFG, that makes
sense because the exit analysis is orthogonal, so the clobber analysis tells you about the reads
not counting OSR exit - if you need to you can conditionally merge that with World based on a
separate exit analysis. But in B3, the Effects object tells you about both exiting and reading,
and it's computed by one analysis. Prior to this change, Check was not setting reads to top() so
we were effectively saying that Effects::reads is meaningless when exitsSideways is true. It
seems more sensible to instead force the analysis to set reads to top() when setting
exitsSideways to true, not least because we only have one such analysis and many users. But it
also makes sense for another reason: it allows us to bound the set of things that the program
will read after it exits. That might not be useful to us now, but it's a nice feature to get for
free. I've seen language features that have behave like exitsSideways that don't also read top,
like an array bounds check that causes sudden termination without making any promises about how
pretty the crash dump will look.

  • b3/B3CheckSpecial.cpp:

(JSC::B3::CheckSpecial::generate):

  • b3/B3Opcode.h:
  • b3/B3Value.cpp:

(JSC::B3::Value::effects):

  • b3/testb3.cpp:

(JSC::B3::testSimpleCheck):
(JSC::B3::testCheckLessThan):
(JSC::B3::testCheckMegaCombo):
(JSC::B3::testCheckAddImm):
(JSC::B3::testCheckAddImmCommute):
(JSC::B3::testCheckAddImmSomeRegister):
(JSC::B3::testCheckAdd):
(JSC::B3::testCheckAdd64):
(JSC::B3::testCheckSubImm):
(JSC::B3::testCheckSubBadImm):
(JSC::B3::testCheckSub):
(JSC::B3::testCheckSub64):
(JSC::B3::testCheckNeg):
(JSC::B3::testCheckNeg64):
(JSC::B3::testCheckMul):
(JSC::B3::testCheckMulMemory):
(JSC::B3::testCheckMul2):
(JSC::B3::testCheckMul64):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::blessSpeculation):

11:58 AM Changeset in webkit [194047] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Remove some Mavericks guards in ServicesOverlayController
https://bugs.webkit.org/show_bug.cgi?id=152238

Reviewed by Darin Adler.

  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::selectionRectsDidChange): Deleted.
(WebCore::ServicesOverlayController::selectedTelephoneNumberRangesChanged): Deleted.
The whole file is already PLATFORM(MAC) guarded, and the 10.9 guards
are no longer necessary.

11:55 AM Changeset in webkit [194046] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

TiledCoreAnimationDrawingAreaProxy::createFenceForGeometryUpdate() sets fence port on context twice
https://bugs.webkit.org/show_bug.cgi?id=152239
<rdar://problem/22893289>

Reviewed by Darin Adler.

  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:

(WebKit::TiledCoreAnimationDrawingAreaProxy::createFenceForGeometryUpdate):
No need to setFencePort; createFencePort also installs it on the creating context.

11:54 AM Changeset in webkit [194045] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Air: Support Architecture-specific forms and Opcodes
https://bugs.webkit.org/show_bug.cgi?id=151736

Reviewed by Benjamin Poulain.

This adds really awesome architecture selection to the AirOpcode.opcodes file. If an opcode or
opcode form is unavailable on some architecture, you can still mention its name in C++ code (it'll
still be a member of the enum) but isValidForm() and all other reflective queries will tell you
that it doesn't exist. This will make the instruction selector steer clear of it, and it will
also ensure that the spiller doesn't try to use any unavailable architecture-specific address
forms.

The new capability is documented extensively in a comment in AirOpcode.opcodes.

  • b3/air/AirOpcode.opcodes:
  • b3/air/opcode_generator.rb:
11:53 AM Changeset in webkit [194044] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaselining fast/text/emoji.html for iOS simulator
https://bugs.webkit.org/show_bug.cgi?id=152261

Unreviewed test gardening.

  • platform/ios-simulator/fast/text/emoji-expected.txt:
11:45 AM Changeset in webkit [194043] by achristensen@apple.com
  • 4 edits in trunk/Source/WebKit2

Use existing code for redirects when using NETWORK_SESSION
https://bugs.webkit.org/show_bug.cgi?id=152207
rdar://problem/23860624

Reviewed by Darin Adler.

This fixes http/tests/cookies/set-cookie-on-redirect.html when using NETWORK_SESSION.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::continueWillSendRequest):
(WebKit::NetworkLoad::convertTaskToDownload):
(WebKit::NetworkLoad::willPerformHTTPRedirection):
(WebKit::NetworkLoad::didReceiveChallenge):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkSession.h:
11:44 AM Changeset in webkit [194042] by mark.lam@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Misc. small fixes in snippet related code.
https://bugs.webkit.org/show_bug.cgi?id=152259

Reviewed by Saam Barati.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithMul):

  • When loading a constant JSValue for a node, use the one that the node already provides instead of reconstructing it. This is not a bug, but the fix makes the code cleaner.
  • jit/JITBitAndGenerator.cpp:

(JSC::JITBitAndGenerator::generateFastPath):

  • No need to do a bitand with a constant int 0xffffffff operand.
  • jit/JITBitOrGenerator.cpp:

(JSC::JITBitOrGenerator::generateFastPath):

  • Fix comments: bitor is '|', not '&'.
  • No need to do a bitor with a constant int 0 operand.
  • jit/JITBitXorGenerator.cpp:

(JSC::JITBitXorGenerator::generateFastPath):

  • Fix comments: bitxor is '', not '&'.
  • jit/JITRightShiftGenerator.cpp:

(JSC::JITRightShiftGenerator::generateFastPath):

  • Renamed a jump target name to be clearer about its purpose.
11:41 AM Changeset in webkit [194041] by Sukolsak Sakshuwong
  • 3 edits in trunk/Source/WTF

Make UCharIterator createIterator(StringView) visible to other classes
https://bugs.webkit.org/show_bug.cgi?id=151917

Reviewed by Darin Adler.

Make UCharIterator createIterator(StringView) in CollatorICU.cpp visible
to other classes so that future patches that will ucol_strcollIter
(including Bug 147604) can use it.

  • wtf/unicode/Collator.h:
  • wtf/unicode/icu/CollatorICU.cpp:

(WTF::createIterator):

11:39 AM Changeset in webkit [194040] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

We should not employ the snippet code in the DFG if no OSR exit was previously encountered.
https://bugs.webkit.org/show_bug.cgi?id=152255

Reviewed by Saam Barati.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

11:13 AM Changeset in webkit [194039] by fpizlo@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

B3->Air compare-branch fusion should fuse even if the result of the comparison is used more than once
https://bugs.webkit.org/show_bug.cgi?id=152198

Reviewed by Benjamin Poulain.

If we have a comparison operation that is branched on from multiple places, then we were
previously executing the comparison to get a boolean result in a register and then we were
testing/branching on that register in multiple places. This is actually less efficient than
just fusing the compare/branch multiple times, even though this means that the comparison
executes multiple times. This would only be bad if the comparison fused loads multiple times,
since duplicating loads is both wrong and inefficient. So, this adds the notion of sharing to
compare/branch fusion. If a compare is shared by multiple branches, then we refuse to fuse
the load.

To write the test, I needed to zero-extend 8 to 32. In the process of thinking about how to
do this, I realized that we needed lowerings for SExt8/SExt16. And I realized that the
lowerings for the other extension operations were not fully fleshed out; for example they
were incapable of load fusion. This patch fixes this and also adds some smart strength
reductions for BitAnd(@x, 0xff/0xffff/0xffffffff) - all of which should be lowered to a zero
extension.

This is a big win on asm.js code. It's not enough to bridge the gap to LLVM, but it's a huge
step in that direction.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::load8SignedExtendTo32):
(JSC::MacroAssemblerX86Common::zeroExtend8To32):
(JSC::MacroAssemblerX86Common::signExtend8To32):
(JSC::MacroAssemblerX86Common::load16):
(JSC::MacroAssemblerX86Common::load16SignedExtendTo32):
(JSC::MacroAssemblerX86Common::zeroExtend16To32):
(JSC::MacroAssemblerX86Common::signExtend16To32):
(JSC::MacroAssemblerX86Common::store32WithAddressOffsetPatch):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::movzbl_rr):
(JSC::X86Assembler::movsbl_rr):
(JSC::X86Assembler::movzwl_rr):
(JSC::X86Assembler::movswl_rr):
(JSC::X86Assembler::cmovl_rr):

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::createGenericCompare):
(JSC::B3::Air::LowerToAir::lower):

  • b3/B3ReduceStrength.cpp:
  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::testCheckMegaCombo):
(JSC::B3::testCheckTwoMegaCombos):
(JSC::B3::testCheckTwoNonRedundantMegaCombos):
(JSC::B3::testCheckAddImm):
(JSC::B3::testTruncSExt32):
(JSC::B3::testSExt8):
(JSC::B3::testSExt8Fold):
(JSC::B3::testSExt8SExt8):
(JSC::B3::testSExt8SExt16):
(JSC::B3::testSExt8BitAnd):
(JSC::B3::testBitAndSExt8):
(JSC::B3::testSExt16):
(JSC::B3::testSExt16Fold):
(JSC::B3::testSExt16SExt16):
(JSC::B3::testSExt16SExt8):
(JSC::B3::testSExt16BitAnd):
(JSC::B3::testBitAndSExt16):
(JSC::B3::testSExt32BitAnd):
(JSC::B3::testBitAndSExt32):
(JSC::B3::testBasicSelect):
(JSC::B3::run):

10:07 AM Changeset in webkit [194038] by commit-queue@webkit.org
  • 3 edits
    12 adds in trunk

[iOS] DOM click event may not be dispatched when page has :active style and <input type="search">
https://bugs.webkit.org/show_bug.cgi?id=144451
<rdar://problem/23099482>

Patch by Daniel Bates <dabates@apple.com> on 2015-12-14
Reviewed by Simon Fraser.

Source/WebCore:

Fixes an issue where a DOM click event is not dispatched to an element in a subframe on a page
that has a <input type="search"> and defines a CSS :active pseudo-class for the HTML body element.

On iOS we only dispatch a DOM click event if the content of the page does not change as part of
dispatching a DOM mousemove event at the tapped element as a means of providing a good user
experience on web pages that reveal or hide content based on mouse hover. Currently we consider
the content of the page to have changed if the visibility of any element on the page changes.
In particular we consider the content of the page to have changed if the visibility of a user
agent shadow DOM element changes (e.g. the search field cancel button). Instead we should only
consider visibility changes to the actual web page content and ignore visibility changes to
user agent shadow DOM elements.

Tests: fast/events/can-click-element-on-page-with-active-pseudo-class-and-search-field.html

fast/forms/search/search-cancel-button-visible-when-input-becomes-disabled.html
fast/forms/search/search-cancel-button-visible-when-input-becomes-readonly.html
fast/forms/search/search-cancel-in-formerly-invisible-element.html
fast/forms/search/search-cancel-toggle-visibility-initially-hidden.html
fast/forms/search/search-cancel-toggle-visibility-initially-visible.html

  • style/StyleResolveTree.cpp:

(WebCore::Style::CheckForVisibilityChangeOnRecalcStyle::~CheckForVisibilityChangeOnRecalcStyle):
Ignore visibility changes to user agent shadow DOM elements.

LayoutTests:

Add a test to ensure that a DOM click event is dispatched to an element in a subframe on a page
with a search field and that specifies a CSS :active pseudo-class that changes the tap highlight
color.

Additionally, add tests to ensure we update the cancel button visibility whenever the visibility
of the search field changes.

  • fast/events/can-click-element-on-page-with-active-pseudo-class-and-search-field-expected.txt: Added.
  • fast/events/can-click-element-on-page-with-active-pseudo-class-and-search-field.html: Added.
  • fast/forms/search/search-cancel-button-visible-when-input-becomes-disabled-expected.html: Added.
  • fast/forms/search/search-cancel-button-visible-when-input-becomes-disabled.html: Added.
  • fast/forms/search/search-cancel-button-visible-when-input-becomes-readonly-expected.html: Added.
  • fast/forms/search/search-cancel-button-visible-when-input-becomes-readonly.html: Added.
  • fast/forms/search/search-cancel-in-formerly-invisible-element-expected.html: Added.
  • fast/forms/search/search-cancel-in-formerly-invisible-element.html: Added.
  • fast/forms/search/search-cancel-toggle-visibility-initially-hidden-expected.html: Added.
  • fast/forms/search/search-cancel-toggle-visibility-initially-hidden.html: Added.
  • fast/forms/search/search-cancel-toggle-visibility-initially-visible-expected.html: Added.
  • fast/forms/search/search-cancel-toggle-visibility-initially-visible.html: Added.
9:44 AM Changeset in webkit [194037] by ddkilzer@apple.com
  • 4 edits in trunk/Source/WTF

REGRESSION (r162777): Remove Boost Software License from WTF
<http://webkit.org/b/152243>

Reviewed by Darin Adler.

The source code that the Boost Software License was referring to
was removed in r162777 by switching to std::atomic.

  • wtf/Atomics.cpp:
  • wtf/Atomics.h:
  • wtf/ThreadSafeRefCounted.h:
  • Remove Boost Software License.
  • Update Apple Inc. copyright as needed.
  • Refresh Apple Inc. license text.
9:37 AM Changeset in webkit [194036] by Chris Dumez
  • 66 edits
    5 deletes in trunk

Roll out r193974 and follow-up fixes as it caused JSC crashes
https://bugs.webkit.org/show_bug.cgi?id=152256

Source/JavaScriptCore:

Unreviewed, Roll out r193974 and follow-up fixes as it caused JSC crashes.

  • API/JSCallbackObject.h:
  • builtins/FunctionPrototype.js:
  • bytecode/BytecodeBasicBlock.cpp:

(JSC::isBranch):

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecode/ExitKind.cpp:

(JSC::exitKindToString): Deleted.

  • bytecode/ExitKind.h:
  • bytecode/PreciseJumpTargets.cpp:

(JSC::getJumpTargetsForBytecodeOffset):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitCheckHasInstance):
(JSC::BytecodeGenerator::emitGetById): Deleted.

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitTypeOf): Deleted.

  • bytecompiler/NodesCodegen.cpp:

(JSC::InstanceOfNode::emitBytecode):
(JSC::LogicalOpNode::emitBytecode): Deleted.
(JSC::LogicalOpNode::emitBytecodeInConditionContext): Deleted.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGHeapLocation.h:
  • dfg/DFGNode.h:

(JSC::DFG::Node::hasCellOperand): Deleted.
(JSC::DFG::Node::hasTransition): Deleted.

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileInstanceOf): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithAdd): Deleted.

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation): Deleted.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLIntrinsicRepository.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCheckHasInstance):
(JSC::FTL::DFG::LowerDFGToLLVM::compileInstanceOf): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::compileHasIndexedProperty): Deleted.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArguments): Deleted.
(JSC::CCallHelpers::setupArgumentsWithExecState): Deleted.

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::callOperationNoExceptionCheck): Deleted.
(JSC::JIT::callOperation): Deleted.

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_check_has_instance):
(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emitSlow_op_check_has_instance):
(JSC::JIT::emitSlow_op_instanceof):
(JSC::JIT::emit_op_is_undefined): Deleted.
(JSC::JIT::emitSlow_op_to_number): Deleted.
(JSC::JIT::emitSlow_op_to_string): Deleted.

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_check_has_instance):
(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emitSlow_op_check_has_instance):
(JSC::JIT::emitSlow_op_instanceof):
(JSC::JIT::emit_op_is_undefined): Deleted.

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions): Deleted.

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/CommonIdentifiers.h:
  • runtime/ExceptionHelpers.cpp:

(JSC::invalidParameterInstanceofSourceAppender):
(JSC::createInvalidInstanceofParameterError):
(JSC::createError): Deleted.
(JSC::createNotAFunctionError): Deleted.
(JSC::createNotAnObjectError): Deleted.

  • runtime/ExceptionHelpers.h:
  • runtime/FunctionPrototype.cpp:

(JSC::FunctionPrototype::addFunctionProperties):

  • runtime/FunctionPrototype.h:
  • runtime/JSBoundFunction.cpp:

(JSC::JSBoundFunction::create): Deleted.
(JSC::JSBoundFunction::customHasInstance): Deleted.

  • runtime/JSBoundFunction.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren): Deleted.

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::throwTypeErrorGetterSetter): Deleted.

  • runtime/JSObject.cpp:

(JSC::JSObject::hasInstance):
(JSC::JSObject::defaultHasInstance): Deleted.
(JSC::JSObject::getPropertyNames): Deleted.
(JSC::JSObject::getOwnPropertyNames): Deleted.

  • runtime/JSObject.h:

(JSC::JSFinalObject::create): Deleted.

  • runtime/JSTypeInfo.h:

(JSC::TypeInfo::TypeInfo):
(JSC::TypeInfo::overridesHasInstance):

  • runtime/WriteBarrier.h:

(JSC::WriteBarrierBase<Unknown>::slot):

  • tests/es6.yaml:
  • tests/stress/instanceof-custom-hasinstancesymbol.js: Removed.
  • tests/stress/symbol-hasInstance.js: Removed.

LayoutTests:

Unreviewed, roll out r193974 and follow-up fixes as it caused JSC crashes.

  • inspector/model/remote-object-get-properties-expected.txt:
  • js/Object-getOwnPropertyNames-expected.txt:
  • js/exception-for-nonobject-expected.txt:
  • js/exception-instanceof-expected.txt:
  • js/instance-of-immediates-expected.txt:
  • js/regress/instanceof-bound-expected.txt: Removed.
  • js/regress/instanceof-bound.html: Removed.
  • js/regress/script-tests/instanceof-bound.js: Removed.
  • js/script-tests/Object-getOwnPropertyNames.js:
9:27 AM Changeset in webkit [194035] by youenn.fablet@crf.canon.fr
  • 6 edits in trunk/Source/WebCore

[Streams API] Directly use @then as much as possible
https://bugs.webkit.org/show_bug.cgi?id=151631

Reviewed by Darin Adler.

Moved from @Promise.prototype.@then.@call(promise,...) to promise.@then.(...)
for promise objects that are not exposed to user scripts.

Updated promiseInvokeXX stream utility functions to ensure that returned promise always has a @then.
This allows improving the readability of code calling promiseInvokeXX functions.
Changed invokeOrNoop to promiseInvokeOrNoopNoCatch as invokeOrNoop
result is always wrapped as a promise using Promise.resolve.

No change in behavior.

  • Modules/streams/ReadableStream.js:

(initializeReadableStream):

  • Modules/streams/ReadableStreamInternals.js:

(teeReadableStream):
(teeReadableStreamBranch2CancelFunction):
(cancelReadableStream):

  • Modules/streams/StreamInternals.js:

(shieldingPromiseResolve): introduced this routine to ensure the returned promise has a @then property.
(promiseInvokeOrNoopNoCatch):
(promiseInvokeOrNoop):
(promiseInvokeOrFallbackOrNoop):

  • Modules/streams/WritableStream.js:

(initializeWritableStream):
(abort):

  • Modules/streams/WritableStreamInternals.js:

(callOrScheduleWritableStreamAdvanceQueue):

8:27 AM Changeset in webkit [194034] by clopez@igalia.com
  • 2 edits in trunk/Tools

[GTK] [JHBuild] package libtool-bin is now required on Debian systems.
https://bugs.webkit.org/show_bug.cgi?id=152252

Reviewed by Sergio Villar Senin.

  • gtk/install-dependencies: Add libtool-bin to the list of packages required

for building the JHBuild on Debian systems.

7:57 AM Changeset in webkit [194033] by youenn.fablet@crf.canon.fr
  • 32 edits
    1 add in trunk

[Streams API] Expose ReadableStream and relatives to Worker
https://bugs.webkit.org/show_bug.cgi?id=152066

LayoutTests/imported/w3c:

Reviewed by Darin Adler.

Rebasing all worker tests from FAIL to PASS.

  • web-platform-tests/streams-api/byte-length-queuing-strategy-expected.txt:
  • web-platform-tests/streams-api/count-queuing-strategy-expected.txt:
  • web-platform-tests/streams-api/readable-streams/bad-strategies-expected.txt:
  • web-platform-tests/streams-api/readable-streams/bad-underlying-sources-expected.txt:
  • web-platform-tests/streams-api/readable-streams/brand-checks-expected.txt:
  • web-platform-tests/streams-api/readable-streams/cancel-expected.txt:
  • web-platform-tests/streams-api/readable-streams/count-queuing-strategy-integration-expected.txt:
  • web-platform-tests/streams-api/readable-streams/garbage-collection-expected.txt:
  • web-platform-tests/streams-api/readable-streams/general-expected.txt:
  • web-platform-tests/streams-api/readable-streams/pipe-through-expected.txt:
  • web-platform-tests/streams-api/readable-streams/readable-stream-reader-expected.txt:
  • web-platform-tests/streams-api/readable-streams/tee-expected.txt:
  • web-platform-tests/streams-api/readable-streams/templated-expected.txt:

Source/WebCore:

Reviewed by Darin Adler.

Moving the code that links internal functions to the GlobalObject in WebCoreJSBuiltinInternals.cpp.
This file should be generated by the builtin generator once refactoring is done.
This code is located in JSBuiltinFunctions::initialize.

Moving ReadableStream private constructors and constants code from JSDOMWindowBase to JSDOMGlobalObject.
Calling JSBuiltinInternalFunctions::initialize in JSDOMGlobalObject so that internals are also available in Worker.

Made ReadableStream and relatives exposed in Worker.

Rebased and fixed style by Xabier Rodriguez Calvar.

Covered by rebased tests.

  • CMakeLists.txt:
  • Modules/streams/ByteLengthQueuingStrategy.idl:
  • Modules/streams/CountQueuingStrategy.idl:
  • Modules/streams/ReadableStream.idl:
  • Modules/streams/ReadableStreamController.idl:
  • Modules/streams/ReadableStreamReader.idl:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
(WebCore::JSDOMGlobalObject::addBuiltinGlobals):
(WebCore::JSDOMGlobalObject::finishCreation):
(WebCore::JSDOMGlobalObject::visitChildren):

  • bindings/js/JSDOMGlobalObject.h:
  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::finishCreation): Deleted.
(WebCore::JSDOMWindowBase::visitChildren): Deleted.

  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/WebCoreJSBuiltinInternals.cpp: Added.

(WebCore::JSBuiltinInternalFunctions::JSBuiltinInternalFunctions):
(WebCore::JSBuiltinInternalFunctions::visit):
(WebCore::JSBuiltinInternalFunctions::initialize):

  • bindings/js/WebCoreJSBuiltinInternals.h:
  • bindings/js/WebCoreJSBuiltins.h:

LayoutTests:

Reviewed by Darin Adler.

Adding ByteLengthQueuingStrategy, CountQueuingStrategy and ReadableStream as worker constructors.

  • js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
  • platform/efl/js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
5:06 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
5:00 AM Changeset in webkit [194032] by clopez@igalia.com
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed gardening.

  • platform/gtk/TestExpectations: Update TestExpectations with the following changes:
    • Remove expectations for tests removed after r193411 r193426 and r19366.
    • Merge repeated expectations from some tests.
    • Mark tests failing after r188159.
    • Update list of imported/blink tests failing.
3:48 AM Changeset in webkit [194031] by fred.wang@free.fr
  • 7 edits
    1 copy
    1 add in trunk/Source/WebCore

Move MathMLOperatorDictionary features into a separate module.
https://bugs.webkit.org/show_bug.cgi?id=152242

Reviewed by Martin Robinson.

The definitions, properties and search of the MathML operator dictionary are really independent of the renderer object for math operators.
This patch moves them in a separate module/file to make them more manageable and readable.
No new tests. We already have sufficient test coverage.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/mathml/MathMLOperatorDictionary.cpp:

(WebCore::ExtractKey):
(WebCore::ExtractChar):
(WebCore::ExtractKeyHorizontal):
(WebCore::MathMLOperatorDictionary::getEntry):
(WebCore::MathMLOperatorDictionary::isVertical):

  • rendering/mathml/MathMLOperatorDictionary.h: Added.
  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::setOperatorProperties):
(WebCore::MathMLOperatorDictionary::ExtractKey): Deleted.
(WebCore::MathMLOperatorDictionary::ExtractChar): Deleted.
(WebCore::MathMLOperatorDictionary::ExtractKeyHorizontal): Deleted.

  • rendering/mathml/RenderMathMLOperator.h:
2:06 AM Changeset in webkit [194030] by svillar@igalia.com
  • 3 edits
    2 adds in trunk

[css-grid] Fix height computation of grid items with borders
https://bugs.webkit.org/show_bug.cgi?id=151800

Reviewed by Darin Adler.

Source/WebCore:

When computing the logical height of grid items for the
default "min-height: auto;" case we were constraning the
min-content size using constrainLogicalHeightByMinMax()
instead of constrainContentLogicalHeightByMinMax(). The
problem of using the former is that we were adding the borders
twice.

Test: fast/css-grid-layout/grid-item-with-border-in-intrinsic.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeLogicalHeight):

LayoutTests:

  • fast/css-grid-layout/grid-item-with-border-in-intrinsic-expected.txt: Added.
  • fast/css-grid-layout/grid-item-with-border-in-intrinsic.html: Added.

Dec 13, 2015:

11:24 PM Changeset in webkit [194029] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Make TimelineOverview's graph container a subview
https://bugs.webkit.org/show_bug.cgi?id=152235

Reviewed by Brian Burg.

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview):
Create graph container subview.
(WebInspector.TimelineOverview.prototype._instrumentAdded):
Add overview to the graph container view.
(WebInspector.TimelineOverview.prototype._instrumentRemoved):
Remove overview from the graph container view.
(WebInspector.TimelineOverview.prototype.layout):
No longer necessary to manually lay out overview graphs.
(WebInspector.TimelineOverview.prototype._needsLayout): Deleted.
Removed dead code.

10:37 PM Changeset in webkit [194028] by bshafiei@apple.com
  • 3 edits in tags/Safari-602.1.13.3/Source/WebKit2

Merged r194023. rdar://problem/23863828

10:37 PM Changeset in webkit [194027] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.13.3/Source/WebKit2

Merged r194019. rdar://problem/23863828

10:36 PM Changeset in webkit [194026] by bshafiei@apple.com
  • 8 edits in tags/Safari-602.1.13.3/Source/WebKit2

Merged r194018. rdar://problem/23863828

9:27 PM Changeset in webkit [194025] by timothy_horton@apple.com
  • 22 edits in trunk/Source

Adopt CGIOSurfaceContextCreateImageReference to avoid unnecessary readback
https://bugs.webkit.org/show_bug.cgi?id=150988
<rdar://problem/18993594>

Reviewed by Darin Adler.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawConsumingImageBuffer):

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/ImageBuffer.h:
  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::createBitmapImageAfterScalingIfNeeded):
(WebCore::ImageBuffer::copyImage):
(WebCore::ImageBuffer::sinkIntoImage):
(WebCore::ImageBuffer::sinkIntoNativeImage):
(WebCore::ImageBuffer::drawConsuming):

  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(IOSurface::createFromImageBuffer):
(IOSurface::sinkIntoImage):
Add sinkIntoImage, sinkIntoNativeImage, and drawConsuming to ImageBuffer,
which all consume the ImageBuffer and allow us to tell the system to
make a CGImage that references the IOSurface, which is in many cases
more efficient than making an image with a "copy" of the IOSurface.
(The copy is done lazily, but we often hit a corner case that causes
it to happen unnecessarily.)

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):

  • page/TextIndicator.cpp:

(WebCore::takeSnapshot):

  • platform/DragImage.cpp:

(WebCore::createDragImageFromSnapshot):

  • platform/graphics/filters/FETile.cpp:

(WebCore::FETile::platformApplySoftware):

  • platform/mac/ThemeMac.mm:

(WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::currentFrameImage):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintProgressBar):

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::buildPattern):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::drawPatternForContainer):
Adopt sinkIntoImage and drawConsumingImageBuffer in a few places.

  • WebCoreSupport/WebContextMenuClient.mm:

(WebContextMenuClient::imageForCurrentSharingServicePickerItem):
Adopt sinkIntoImage and drawConsumingImageBuffer in a few places.

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::createSelectionSnapshot):
Adopt sinkIntoImage and drawConsumingImageBuffer in a few places.

8:30 PM Changeset in webkit [194024] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Remove FTL::Output's doubleEqualOrUnordered()
https://bugs.webkit.org/show_bug.cgi?id=152234

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-12-13
Reviewed by Sam Weinig.

It is unused, one less thing to worry about.

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::doubleEqualOrUnordered): Deleted.

  • ftl/FTLOutput.h:

(JSC::FTL::Output::doubleEqualOrUnordered): Deleted.

7:31 PM Changeset in webkit [194023] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

Another fix after r194018.

  • Configurations/BaseTarget.xcconfig:
  • Configurations/BaseXPCService.xcconfig:
7:19 PM Changeset in webkit [194022] by mitz@apple.com
  • 15 edits in trunk/Source/WebKit2

[Mac] Shims used by XPC services are installed inside legacy process bundles
https://bugs.webkit.org/show_bug.cgi?id=152233

Reviewed by Sam Weinig.

Have the shim dylibs installed in the framework’s Frameworks directory instead.

  • Configurations/BaseLegacyProcess.xcconfig: Simplified now that EXCLUDED_SHIM_FILE_NAME is no longer defined, because shims aren’t copied into legacy processes.
  • Configurations/NetworkProcess.xcconfig: Removed definition of EXCLUDED_SHIM_FILE_NAME.
  • Configurations/PluginProcess.xcconfig: Ditto.
  • Configurations/WebContentProcess.xcconfig: Ditto.
  • Configurations/Shim.xcconfig: Install the shims when building for OS X. Added definitions of INSTALL_PATH and DYLIB_INSTALL_NAME_BASE which are now common to all shims.
  • Configurations/PluginProcessShim.xcconfig: Removed definitions of INSTALL_PATH and DYLIB_INSTALL_NAME_BASE from here, now that they are defined for all shims in Shim.xcconfig.
  • Configurations/SecItemShim.xcconfig: Ditto.
  • Configurations/WebProcessShim.xcconfig:
  • Configurations/WebKit.xcconfig: Added the shims to EXCLUDED_SOURCE_FILE_NAMES for iOS.
  • NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX-10.9-10.10.plist: Changed the value of DYLD_INSERT_LIBRARIES to point to the shim’s new location.
  • PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64-10.9-10.10.Info.plist: Ditto.
  • WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX-10.9-10.10.plist: Ditto.
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::computeProcessShimPath): Changed to return the new paths, which are all inside the

framework’s Frameworks directory.

  • WebKit2.xcodeproj/project.pbxproj:
  • Removed references to WRAPPER_NAME from the “Copy XPC services for engineering builds” build phase in the All target, becase WRAPPER_NAME is empty in an aggregate target.
  • Removed the PlugInProcess target’s dependency on the PluginProcessShim target and its Copy Plug-in Process Shim build phase.
  • Removed the NetworkProcess target’s dependency on the SecItemShim target and its Copy Sec Item Shim build phase.
  • Removed the WebProcess target’s dependency on the WebProcessShim target and its Copy WebProcessShim build phase.
  • Made the WebKit target depend on the shim targets, and added to it a Copy Shims build phase that copies the shims into the framework’s Frameworks directory.
6:52 PM Changeset in webkit [194021] by Yusuke Suzuki
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] Should not emit get_by_id for indexed property access
https://bugs.webkit.org/show_bug.cgi?id=151354

Reviewed by Darin Adler.

Before this patch, a["1"] is converted to a.1 get_by_id operation in the bytecode compiler.
get_by_id emits IC. IC rely on the fact that Structure transition occur when adding / removing object's properties.
However, it's not true for indexed element properties. They are stored in the element storage and Structure transition does not occur.

For example, in the following case,

function getOne(a) { return a1; }

for (var i = 0; i < 36; ++i)

getOne({2: true});

if (!getOne({1: true}))

throw new Error("OUT");

In this case, a['1'] creates get_by_id. getOne({2: true}) calls makes getOne's get_by_id to create IC says that,
"when comming this structure chain, there is no property in "1", so we should return undefined".

After that, we call getOne({1: true}). But in this case, {2: true} and {1: true} have the same structure chain,
because indexed property addition does not occur structure transition.
So previous IC fast path is used and return undefined. But the correct answer is returning true.

This patch fixes the above issue. When there is string bracket access, we only emits get_by_id if the given string is not an index.
There are bugs in get_by_id, put_by_id, put_by_id (direct). But only get_by_id poses user observable issue.
Because in the put_by_id case, the generic path just says "this put is uncacheable".

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitGetById):
(JSC::BytecodeGenerator::emitPutById):
(JSC::BytecodeGenerator::emitDirectPutById):

  • bytecompiler/NodesCodegen.cpp:

(JSC::isNonIndexStringElement):
(JSC::BracketAccessorNode::emitBytecode):
(JSC::FunctionCallBracketNode::emitBytecode):
(JSC::AssignBracketNode::emitBytecode):
(JSC::ObjectPatternNode::bindValue):

  • tests/stress/element-property-get-should-not-handled-with-get-by-id.js: Added.

(getOne):

5:30 PM Changeset in webkit [194020] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.5.6

New tag.

4:05 PM Changeset in webkit [194019] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Build fix.

  • Configurations/PluginProcess.xcconfig:
3:21 PM Changeset in webkit [194018] by mitz@apple.com
  • 8 edits in trunk/Source/WebKit2

[Mac] Shims aren’t inserted properly on Yosemite when building with the El Capitan SDK
https://bugs.webkit.org/show_bug.cgi?id=152229

Reviewed by Darin Adler.

  • Configurations/BaseTarget.xcconfig: Defined WK_LINK_SHIM on OS X to YES or NO based on the target version.
  • Configurations/BaseXPCService.xcconfig: Define WK_XPC_SERVICE_INFOPLIST_SUFFIX to "-10.9-10.10" when targeting those OS X versions.
  • Configurations/NetworkService.xcconfig: Use WK_XPC_SERVICE_INFOPLIST_SUFFIX in the definition of INFOPLIST_FILE. Use WK_LINK_SHIM in the definition of OTHER_LDFLAGS.
  • Configurations/PluginProcess.xcconfig: Use WK_LINK_SHIM in the definition of LDFLAGS_SHIM_Production for OS X.
  • Configurations/PluginService.32.xcconfig: Use WK_XPC_SERVICE_INFOPLIST_SUFFIX in the definition of INFOPLIST_FILE. Use WK_LINK_SHIM in the definition of OTHER_LDFLAGS.
  • Configurations/PluginService.64.xcconfig: Ditto.
  • Configurations/WebContentService.xcconfig: Ditto.
12:03 PM Changeset in webkit [194017] by akling@apple.com
  • 31 edits in trunk/Source

CachedScript could have a copy-free path for all-ASCII scripts.
<https://webkit.org/b/152203>

Source/JavaScriptCore:

Reviewed by Antti Koivisto.

Make SourceProvider vend a StringView instead of a String.
This relaxes the promises that providers have to make about string lifetimes.

This means that on the WebCore side, CachedScript is free to cache a String
internally, while only ever exposing it as a temporary StringView.

A few extra copies (CPU, not memory) are introduced, none of them on hot paths.

  • API/JSScriptRef.cpp:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::sourceCodeForTools):
(JSC::CodeBlock::dumpSource):

  • inspector/ScriptDebugServer.cpp:

(Inspector::ScriptDebugServer::dispatchDidParseSource):
(Inspector::ScriptDebugServer::dispatchFailedToParseSource):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):

  • jsc.cpp:

(functionFindTypeForExpression):
(functionHasBasicBlockExecuted):
(functionBasicBlockExecutionCount):

  • parser/Lexer.cpp:

(JSC::Lexer<T>::setCode):

  • parser/Lexer.h:

(JSC::Lexer<LChar>::setCodeStart):
(JSC::Lexer<UChar>::setCodeStart):

  • parser/Parser.h:

(JSC::Parser::getToken):

  • parser/SourceCode.cpp:

(JSC::SourceCode::toUTF8):

  • parser/SourceCode.h:

(JSC::SourceCode::hash):
(JSC::SourceCode::view):
(JSC::SourceCode::toString): Deleted.

  • parser/SourceCodeKey.h:

(JSC::SourceCodeKey::SourceCodeKey):
(JSC::SourceCodeKey::string):

  • parser/SourceProvider.h:

(JSC::SourceProvider::getRange):

  • runtime/Completion.cpp:

(JSC::loadAndEvaluateModule):
(JSC::loadModule):

  • runtime/ErrorInstance.cpp:

(JSC::appendSourceToError):

  • runtime/FunctionPrototype.cpp:

(JSC::functionProtoFuncToString):

  • tools/FunctionOverrides.cpp:

(JSC::initializeOverrideInfo):
(JSC::FunctionOverrides::initializeOverrideFor):

Source/WebCore:

Reviewed by ANtti Koivisto.

Many (if not most) of script resources on the web contain nothing but ASCII characters.
Such resources, when streamed through a text decoder, will yield the exact same byte
sequence, except in anonymous heap memory instead of delicious file-backed pages.

Care is taken to ensure that the wrapper StringImpl is updated to target newly cached
resource data if an asynchronous caching notification comes in.

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::tryReplaceEncodedData):

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::didReplaceSharedBufferContents):

  • loader/cache/CachedScript.cpp:

(WebCore::encodingMayBeAllASCII):
(WebCore::CachedScript::script):
(WebCore::CachedScript::didReplaceSharedBufferContents):

  • loader/cache/CachedScript.h:
  • platform/SharedBuffer.h:
  • platform/cf/SharedBufferCF.cpp:

(WebCore::SharedBuffer::tryReplaceContentsWithPlatformBuffer):

8:18 AM Changeset in webkit [194016] by Alan Bujtas
  • 4 edits
    2 adds in trunk

Clean up absolute positioned map properly.
https://bugs.webkit.org/show_bug.cgi?id=152219
rdar://problem/23861165

Reviewed by Simon Fraser.

We insert positioned renderers into a static map (RenderBlock::gPositionedDescendantsMap) to keep track of them.
Since this static map is at block level, (positioned)inline renderers use their containing block to store
their positioned descendants.
This patch ensures that when an inline element can no longer hold positioned children, we remove them from
the inline's containing block's map. -unless the container itself can hold positioned renderers(see RenderElement::canContainAbsolutelyPositionedObjects).

Source/WebCore:

Test: fast/block/positioning/crash-when-positioned-inline-has-positioned-child.html

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::styleWillChange):

  • rendering/RenderInline.h:

LayoutTests:

  • fast/block/positioning/crash-when-positioned-inline-has-positioned-child-expected.txt: Added.
  • fast/block/positioning/crash-when-positioned-inline-has-positioned-child.html: Added.
6:07 AM Changeset in webkit [194015] by jdiggs@igalia.com
  • 7 edits
    1 add in trunk

AX: [EFL] Anonymous render block flow elements should be exposed as ATK_ROLE_SECTION; not ATK_ROLE_PANEL
https://bugs.webkit.org/show_bug.cgi?id=152079

Reviewed by Chris Fleizach.

Source/WebCore:

Map the element to WebCore AccessibilityRole DivRole for EFL. As with GTK, this
is being done in the shared layer rather than in the platform layer because we
want all subsequent logic to treat anonymous render block flow elements as divs.

No new tests. We already have sufficient test coverage. The expectations
been updated accordingly.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

LayoutTests:

  • platform/efl/accessibility/deleting-iframe-destroys-axcache-expected.txt: Added.
  • platform/efl/accessibility/image-link-expected.txt: Updated.
  • platform/efl/accessibility/image-with-alt-and-map-expected.txt: Updated.
  • platform/efl/accessibility/lists-expected.txt: Updated.
  • platform/efl/accessibility/media-element-expected.txt: Updated
12:25 AM Changeset in webkit [194014] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

Modern IDB: TextExpectations gardening to run more tests.
https://bugs.webkit.org/show_bug.cgi?id=152217

Reviewed by Alex Christensen.

  • platform/mac-wk1/TestExpectations: 5 crash/timeout tests now either pass or merely have text failures.
Note: See TracTimeline for information about the timeline view.