Timeline



Jul 28, 2014:

11:57 PM Changeset in webkit [171723] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

iOS build fix.

  • WebCore.exp.in:
9:22 PM Changeset in webkit [171722] by mitz@apple.com
  • 7 edits
    1 copy
    1 move in trunk/Source/WebCore

Introduced CredentialBase and made Credential derive from it
Work towards fixing https://bugs.webkit.org/show_bug.cgi?id=135327

Reviewed by Darin Adler.

No change in functionality.

  • CMakeLists.txt: Updated for source file rename.
  • WebCore.exp.in: Changed to export CredentialBase symbols.
  • WebCore.vcxproj/WebCore.vcxproj: Updated for source file rename and new header.
  • WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • platform/network/Credential.cpp: Renamed to CredentialBase.cpp.
  • platform/network/Credential.h: Defined Credential to derive from CredentialBase.
  • platform/network/CredentialBase.cpp: Renamed Credential.cpp to this. Updated for the new

name.

  • platform/network/CredentialBase.h: Copied from Credential.h, renamed the class to

CredentialBase, and made the constructors protected.

9:17 PM Changeset in webkit [171721] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Incorrectly sized TimelineDataGrid event bubble
https://bugs.webkit.org/show_bug.cgi?id=135371

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-28
Reviewed by Timothy Hatcher.

Previously the secondsPerPixel calculation was relying on an element
that may not be sized yet. This was resulting in a visibleWidth of 0
and resulted in secondsPerPixel being Infinity. Fortunately, the
graph data source already knows the secondsPerPixel so we can just
ask it. Getting the correct value and eliminating forced layouts.

  • UserInterface/Views/OverviewTimelineView.js:

(WebInspector.OverviewTimelineView.prototype.get secondsPerPixel):

  • UserInterface/Views/TimelineDataGridNode.js:
9:14 PM Changeset in webkit [171720] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Reduce work creating the initial WebInspector.TimelineRecordBar
https://bugs.webkit.org/show_bug.cgi?id=135373

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-28
Reviewed by Timothy Hatcher.

Eliminate a bit of extra work creating TimelineRecordBars. Previously
the constructor would setup an empty list of records, and then we would
immediately after replace them. Now just set them in the constructor.

  • UserInterface/Views/LayoutTimelineOverviewGraph.js:

(WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout.createBar):
(WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout):

  • UserInterface/Views/NetworkTimelineOverviewGraph.js:

(WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout.createBar):
(WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout):

  • UserInterface/Views/ScriptTimelineOverviewGraph.js:

(WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout.createBar):
(WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout):

  • UserInterface/Views/TimelineDataGridNode.js:

(WebInspector.TimelineDataGridNode.prototype.refreshGraph.createBar):

7:11 PM Changeset in webkit [171719] by tgergely.u-szeged@partner.samsung.com
  • 2 edits in trunk/Source/JavaScriptCore

BuildFix: JavaScriptCore/bytecode/StructureSet.h:262:77: warning.
https://bugs.webkit.org/show_bug.cgi?id=135287

Reviewed by Darin Adler.

The set() method tries to use a part of the old value (the reservedFlag bit) which
was not defined when the constructor is called. Initialize m_pointer to 0 explicitely.

  • bytecode/StructureSet.h:

(JSC::StructureSet::StructureSet):

6:45 PM Changeset in webkit [171718] by Alan Bujtas
  • 8 edits
    2 adds in trunk

REGRESSION(r164133): Selection disappears after scrolling on nytimes.com
https://bugs.webkit.org/show_bug.cgi?id=135361

Reviewed by Ryosuke Niwa.

Ensure that when a RenderElement, part of the current selection is removed,
we recalculate and update the selection soon after layout.

Source/WebCore:
Test: fast/dynamic/selection-gets-cleared-when-part-of-it-gets-removed.html

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setNeedsSelectionUpdate):
(WebCore::FrameSelection::didLayout): didLayout name reflects its functionality better.
(WebCore::FrameSelection::layoutDidChange): Deleted.

  • editing/FrameSelection.h: : move some functions to private.
  • page/FrameView.cpp:

(WebCore::FrameView::performPostLayoutTasks):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::willBeDestroyed):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::removeChildInternal):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::willBeDestroyed):

LayoutTests:

  • fast/dynamic/selection-gets-cleared-when-part-of-it-gets-removed-expected.html: Added.
  • fast/dynamic/selection-gets-cleared-when-part-of-it-gets-removed.html: Added.
6:03 PM Changeset in webkit [171717] by matthew_hanson@apple.com
  • 5 edits in branches/safari-600.1-branch/Source

Versioning.

5:58 PM Changeset in webkit [171716] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Unexpected dark border on selected but window inactive timeline
https://bugs.webkit.org/show_bug.cgi?id=135360

Update the border-top colors for the item adjacent to the selected item.

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TimelineSidebarPanel.css:

(.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item):
(.sidebar > .panel.navigation.timeline > .timelines-content :focus li.item.selected + li.item):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content :focus li.item.selected + li.item):

5:56 PM Changeset in webkit [171715] by mrowe@apple.com
  • 2 edits in trunk/Source/WebKit2

Web process crash causes UI process to die with an assertion failure in Connection::exceptionSourceEventHandler
https://bugs.webkit.org/show_bug.cgi?id=135366

Reviewed by Dan Bernstein.

  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::Connection::exceptionSourceEventHandler): Remove the assertion since it frequently fires during
normal development with debug builds.

5:51 PM Changeset in webkit [171714] by matthew_hanson@apple.com
  • 5 edits in tags/Safari-600.1.3.2/Source

Versioning.

5:11 PM Changeset in webkit [171713] by matthew_hanson@apple.com
  • 5 edits in tags/Safari-600.1.3.2/Source

Merge r171635. <rdar://problem/17782407>

5:02 PM Changeset in webkit [171712] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-600.1.3.2

New Tag.

4:57 PM Changeset in webkit [171711] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[Media iOS] Touching play button feels unresponsive
https://bugs.webkit.org/show_bug.cgi?id=135370
<rdar://problem/17756281>

Reviewed by Simon Fraser.

Add an :active rule that shows a slightly darker button when touched.

  • Modules/mediacontrols/mediaControlsiOS.css:

(audio::-webkit-media-controls-start-playback-button:active):

4:52 PM Changeset in webkit [171710] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Disable Copy Row in Timelines DataGrids, it does not currently provide value
https://bugs.webkit.org/show_bug.cgi?id=135364

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-28
Reviewed by Timothy Hatcher.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGridNode):
(WebInspector.DataGridNode.prototype.get copyable):
(WebInspector.DataGridNode.prototype.set copyable):

  • UserInterface/Views/TimelineDataGridNode.js:

(WebInspector.TimelineDataGridNode):

4:47 PM Changeset in webkit [171709] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebKit2

[iOS WK2] WKWebView sometime tries to change the size of a null DrawingAreaProxy
https://bugs.webkit.org/show_bug.cgi?id=135368
<rdar://problem/16988887>

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-28
Reviewed by Simon Fraser.

We should never assume DrawingAreaProxy exists in the API invoked by the clients
of WKWebView. There are at least two cases where the DrawingAreaProxy is null:
-In some path on initialization.
-After a crash.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
We can safely null check and skip setting the size. If the call was skipped,
the size is set on DrawingAreaProxy initialization by querying the current
size through the page client.

4:14 PM Changeset in webkit [171708] by beidson@apple.com
  • 5 edits in trunk/Source/WebCore

REGRESSION(168376): Standalone images pasted to Outlook 2011 don't display
<rdar://problem/17768371> and https://bugs.webkit.org/show_bug.cgi?id=135363

Reviewed by Tim Horton.

Outlook isn’t prepared to handle the resource load callbacks when sent synchronously.

r168376 was an optimization that we no longer need, so the simplest fix is to roll it out.

  • editing/mac/EditorMac.mm:

(WebCore::Editor::WebContentReader::readImage):

  • loader/archive/ArchiveResource.cpp:

(WebCore::ArchiveResource::ArchiveResource):

  • loader/archive/ArchiveResource.h:

(WebCore::ArchiveResource::setShouldLoadImmediately): Deleted.
(WebCore::ArchiveResource::shouldLoadImmediately): Deleted.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

3:47 PM Changeset in webkit [171707] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-600.1.4

New Tag.

3:32 PM Changeset in webkit [171706] by roger_fong@apple.com
  • 3 edits in trunk/Source/WebKit2

Disable tagged strings for the plugin process.
https://bugs.webkit.org/show_bug.cgi?id=135354
<rdar://problem/17295639>.

Patch by Alexey Proskuryakov and Roger Fong.

Reviewed by Anders Carlsson.

  • PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist:
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::connectToReExecService):

3:29 PM Changeset in webkit [171705] by benjamin@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] JIT::assertStackPointerOffset() crashes on ARM64
https://bugs.webkit.org/show_bug.cgi?id=135316

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-28
Reviewed by Geoffrey Garen.

JIT::assertStackPointerOffset() does a compare between an arbitrary register
and the stack pointer. This was not supported by the ARM64 assembler.

There are no variation that can take a stack pointer for Xd. There is one version of subs
that can take a stack pointer, but only for the Xn: the shift+extend one.
To solve the problem, I changed cmp to swap the registers if necessary, and I fixed
the implementation of sub.

  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::sub):
In the generic sub(reg, reg), I added assertions to catch the condition that cannot be generated
with either version of sub.

In sub(with shift), I remove the weird special case for SP. First, it was quite misleading because
the Rd case only works if "setflag == false". The other confusing part is going to addSubtractShiftedRegister()
gives you a reduce shift range, which could create subtle bug that only appear when SP is used.

Since I removed the weird case, I need to differentiate between the sub() that support SP, and the one that does
not elsewhere. That is why that branch has moved to the generic sub(reg, reg). Since at that point we know
the shift value must be zero, it is safe to call either variant.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::branch64):
With the changes described above, we can now use SP for the left register. What do we do if the rightmost
register is SP?

For the case of JIT::assertStackPointerOffset(), the comparison is Equal so the order really does not matter,
we just switch the registers before generating the instruction.

For the generic case, just move the value of SP to a GPR before doing the CMP.

3:26 PM Changeset in webkit [171704] by jpfau@apple.com
  • 5 edits in trunk/Source/WebKit2

IDB transactions never reset if the Web Process ends before cleaning up
https://bugs.webkit.org/show_bug.cgi?id=135218

Reviewed by Darin Adler.

  • DatabaseProcess/DatabaseToWebProcessConnection.cpp:

(WebKit::DatabaseToWebProcessConnection::didClose):

  • DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:

(WebKit::UniqueIDBDatabase::unregisterConnection):
(WebKit::UniqueIDBDatabase::didCompleteTransactionOperation):
(WebKit::UniqueIDBDatabase::openBackingStoreTransaction):
(WebKit::UniqueIDBDatabase::resetBackingStoreTransaction):
(WebKit::UniqueIDBDatabase::didEstablishTransaction):
(WebKit::UniqueIDBDatabase::didResetTransaction):
(WebKit::UniqueIDBDatabase::resetAllTransactions):
(WebKit::UniqueIDBDatabase::finalizeRollback):
(WebKit::UniqueIDBDatabase::absoluteDatabaseDirectory):

  • DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
  • DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:

(WebKit::UniqueIDBDatabaseBackingStoreSQLite::rollbackTransaction):

3:19 PM Changeset in webkit [171703] by mhahnenberg@apple.com
  • 2 edits in trunk/Source/WebCore

ASSERTION FAILED: m_heap->vm()->currentThreadIsHoldingAPILock()
https://bugs.webkit.org/show_bug.cgi?id=135352

Reviewed by Oliver Hunt.

  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::ensureReplacementScriptInjected): This should be taking a
JSLock like its sibling methods do (e.g. installReplacement).

3:18 PM Changeset in webkit [171702] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

<embed> videos flashes constantly while playing inline on iPad, making it unwatchable
https://bugs.webkit.org/show_bug.cgi?id=135356
<rdar://problem/16828238>

Reviewed by Simon Fraser.

The shadow tree for media controls is scheduling style recalc. The general silliness of
HTMLPlugInImageElement::willRecalcStyle/willDetachRenderers is turning those into render
tree reconstructions causing flicker.

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::willRecalcStyle):

Don't do the forced renderer reconstruction if there is no style change for the element
or its ancestors. This way recalcs scheduled by the shadow tree don't trigger the widget
update code path.

2:58 PM Changeset in webkit [171701] by Brent Fulgham
  • 1 edit in trunk/Source/WebCore/ChangeLog

[Mac, iOS] Paint-on closed captions get out-of-order in Safari
https://bugs.webkit.org/show_bug.cgi?id=135332
<rdar://problem/15317278>

Reviewed by Jer Noble.

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::updateDisplay): If the
number of active cues is greater than the current set of CSS boxes representing
the cues, throw away the CSS boxes and re-layout all the cues.

  • html/track/InbandGenericTextTrack.cpp:

(WebCore::InbandGenericTextTrack::addGenericCue): Add some logging.
(WebCore::InbandGenericTextTrack::removeGenericCue): Ditto.

  • html/track/TextTrackCueGeneric.cpp:

(WebCore::TextTrackCueGeneric::isOrderedBefore): Revise ordering rules so that we put
newer cues earlier in the layout order so they are drawn towards the bottom
of the screen. Only do this for Generic captions.

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::InbandTextTrackPrivateAVF::processAttributedStrings): Adjust logging
messages.
(WebCore::InbandTextTrackPrivateAVF::removeCompletedCues): Add logging.

2:58 PM Changeset in webkit [171700] by Brent Fulgham
  • 5 edits in trunk/Source/WebCore

[Mac, iOS] Paint-on closed captions get out-of-order in Safari
https://bugs.webkit.org/show_bug.cgi?id=135332
<rdar://problem/15317278>

Reviewed by Brent Fulgham.

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::updateDisplay): If the
number of active cues is greater than the current set of CSS boxes representing
the cues, throw away the CSS boxes and re-layout all the cues.

  • html/track/InbandGenericTextTrack.cpp:

(WebCore::InbandGenericTextTrack::addGenericCue): Add some logging.
(WebCore::InbandGenericTextTrack::removeGenericCue): Ditto.

  • html/track/TextTrackCueGeneric.cpp:

(WebCore::TextTrackCueGeneric::isOrderedBefore): Revise ordering rules so that we put
newer cues earlier in the layout order so they are drawn towards the bottom
of the screen. Only do this for Generic captions.

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::InbandTextTrackPrivateAVF::processAttributedStrings): Adjust logging
messages.
(WebCore::InbandTextTrackPrivateAVF::removeCompletedCues): Add logging.

2:55 PM Changeset in webkit [171699] by matthew_hanson@apple.com
  • 2 edits in tags/Safari-600.1.2.3/Source/JavaScriptCore

Merge r171680. <rdar://problem/17830040>

2:50 PM Changeset in webkit [171698] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-600.1.2.3

New tag.

2:48 PM Changeset in webkit [171697] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.1-branch/Source/JavaScriptCore

Merge r171680. <rdar://problem/17834136>

2:47 PM Changeset in webkit [171696] by Brian Burg
  • 2 edits in trunk/Source/WTF

Should not export symbols for base64Encode inline adapter methods
https://bugs.webkit.org/show_bug.cgi?id=135355

Unreviewed build fix.

Fixes the build break introduced by r171682, where a base64Encode
inline adapter method was used in another header, thus creating
multiple definitions of it (and problems with with weak symbols).

  • wtf/text/Base64.h: Remove WTF_EXPORT_PRIVATE for inlined methods.
2:47 PM Changeset in webkit [171695] by andersca@apple.com
  • 2 edits in branches/safari-600.1-branch/LayoutTests

Update test expectations.

  • platform/mac/TestExpectations:
2:07 PM Changeset in webkit [171694] by Brian Burg
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed build fix after r171682.

  • replay/EncodedValue.h: Don't mark the inlined Vector<char> specialization

as an exported symbol.

1:48 PM Changeset in webkit [171693] by dbates@webkit.org
  • 4 edits in trunk/Tools

Add support for running the Clang static analyzer when building WebKit and JSC
https://bugs.webkit.org/show_bug.cgi?id=134955

Reviewed by Brent Fulgham.

  • Scripts/build-jsc: Added command line options -[no]-analyze (disabled by default).
  • Scripts/build-webkit: Add --analyze command line option to build-webkit to enable

running the Clang static analyzer.

  • Scripts/webkitdirs.pm:

(XcodeStaticAnalyzerOption): Added.

1:44 PM Changeset in webkit [171692] by akling@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION (r160806): CSS zoom property doesn't work on anything inside anchors.
<https://webkit.org/b/135344>
<rdar://problem/17759577>

Source/WebCore:
When DeprecatedStyleBuilder applies the CSS zoom property (ApplyPropertyZoom)
it first resets the "effective zoom" by calling RenderStyle::setEffectiveZoom().

This mechanism was not resistent to being called multiple times, due to the
optimization in RenderStyle::setZoom() to avoid copy-on-writing the shared data
when setting some property to the already-set value.

The bug would happen in this sequence:

ApplyPropertyZoom:

  • setEffectiveZoom(1);
  • setZoom(2); this updates the effective zoom

ApplyPropertyZoom:

  • setEffectiveZoom(1);
  • setZoom(2); this doesn't update the effective zoom

When we run the second setZoom(2); call, the RenderStyle's zoom value is 2
already and we'll early return without updating the effective zoom.

This change moves the updating of the effective zoom in setZoom() to take place
before the early return due to overwriting with the same value.

Note: the fact that we're apply the zoom property twice is an inefficiency that
we should figure out a way to avoid in the future.

Reviewed by Simon Fraser.

Test: fast/css/zoom-inside-link.html

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::setZoom):

LayoutTests:
Reviewed by Simon Fraser.

  • fast/css/zoom-inside-link-expected.html: Added.
  • fast/css/zoom-inside-link.html: Added.
1:43 PM Changeset in webkit [171691] by mhahnenberg@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

REGRESSION: JSObjectSetPrototype() does not work on result of JSGetGlobalObject()
https://bugs.webkit.org/show_bug.cgi?id=135322

Reviewed by Oliver Hunt.

The prototype chain of the JSProxy object should match that of the JSGlobalObject.

This is a separate but related issue with JSObjectSetPrototype which doesn't correctly
account for JSProxies. I also audited the rest of the C API to check that we correctly
handle JSProxies in all other situations where we expect a JSCallbackObject of some sort
and found some SPI calls (JSObject*PrivateProperty) that didn't behave correctly when
passed a JSProxy.

I also added some new tests for these cases.

  • API/JSObjectRef.cpp:

(JSObjectSetPrototype):
(JSObjectGetPrivateProperty):
(JSObjectSetPrivateProperty):
(JSObjectDeletePrivateProperty):

  • API/JSWeakObjectMapRefPrivate.cpp:
  • API/tests/CustomGlobalObjectClassTest.c:

(globalObjectSetPrototypeTest):
(globalObjectPrivatePropertyTest):

  • API/tests/CustomGlobalObjectClassTest.h:
  • API/tests/testapi.c:

(main):

1:41 PM Changeset in webkit [171690] by betravis@adobe.com
  • 3 edits in trunk/Source/WebCore

[CSS Font Loading] Update Font Loading Code
https://bugs.webkit.org/show_bug.cgi?id=135340

Reviewed by Antti Koivisto.

Update the Font Loading code to build again, as trunk has evolved
since the feature was originally written. Mostly, this requires
updating the code to work with the new Font representation.

The original tests were enabled only for the Chromium port.
They will need to be updated when the feature is enabled by default.

  • WebCore.xcodeproj/project.pbxproj: Add missing files.
  • css/FontLoader.cpp: Update to new Font representation.

(WebCore::LoadFontCallback::createFromParams):
(WebCore::LoadFontCallback::~LoadFontCallback):
(WebCore::FontLoader::loadFont):
(WebCore::FontLoader::checkFont):
(WebCore::applyPropertyToCurrentStyle):
(WebCore::FontLoader::resolveFontStyle):

1:41 PM Changeset in webkit [171689] by fpizlo@apple.com
  • 2 edits
    2 adds in trunk/Source/JavaScriptCore

Make sure that we don't use non-speculative BooleanToNumber for a speculative Branch
https://bugs.webkit.org/show_bug.cgi?id=135350
<rdar://problem/17509889>

Reviewed by Mark Hahnenberg and Oliver Hunt.

If we have an exiting node that uses a conversion node, then that exiting node
needs to have a Phantom after it for the the original node. But we can't do that
for Branch because https://bugs.webkit.org/show_bug.cgi?id=126778.

  • dfg/DFGFixupPhase.cpp:

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

  • tests/stress/branch-check-int32-on-boolean-to-number-untyped.js: Added.

(foo):
(test):

  • tests/stress/branch-check-number-on-boolean-to-number-untyped.js: Added.

(foo):
(test):

1:38 PM Changeset in webkit [171688] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

JSContext Inspector: crash when using step-into
https://bugs.webkit.org/show_bug.cgi?id=135345

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-28
Reviewed by Timothy Hatcher.

  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::stepInto):
Null check m_listener since it may not be set.

1:03 PM Changeset in webkit [171687] by dfarler@apple.com
  • 7 edits in trunk/Tools

Allow for multiple DumpRenderTree and WebKitTestRunner instances in the iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=135272

Reviewed by Simon Fraser.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(dumpRenderTree): Remove hard-coding of FIFO paths.
(-[DumpRenderTree applicationDidEnterBackground:]): Create background task.
(DumpRenderTreeMain): Set DumpRenderTree as UIApplication delegate.

  • DumpRenderTree/mac/DumpRenderTreeMac.h: bgTask ivar.
  • Scripts/old-run-webkit-tests: Update FIFO paths for ORWT.
  • WebKitTestRunner/TestController.cpp: Remove hard-coding of FIFO paths.
  • WebKitTestRunner/ios/TestControllerIOS.mm: Move dup2 calls to platformInitialize
  • WebKitTestRunner/ios/mainIOS.mm: bgTask ivar.

(-[WebKitTestRunnerApp applicationDidEnterBackground:]): Create background task.
(main): Set WebKitTestRunnerApp as UIApplication delegate.

12:59 PM Changeset in webkit [171686] by dfarler@apple.com
  • 1 edit
    1 add in trunk/Tools

ImageDiff builds for the simulator when running iOS layout tests
https://bugs.webkit.org/show_bug.cgi?id=135270

Reviewed by Simon Fraser.

  • Scripts/build-imagediff: Added.
12:35 PM Changeset in webkit [171685] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Let WheelEvent wrap a PlatformWheelEvent
https://bugs.webkit.org/show_bug.cgi?id=135244

WheelEvent now wraps a PlatformWheelEvent. m_directionInvertedFromDevice, as well as m_phase and m_momentumPhase
have been removed, since the information is redundant in PlatformWheelEvent. Note that deltaX and deltaY have
NOT been replaced, since we need double precision instead of float precision.

Patch by Wenson Hsieh <Wenson Hsieh> on 2014-07-28
Reviewed by Beth Dakin.

No new tests, since behavior should not have changed.

  • dom/WheelEvent.cpp:

(WebCore::WheelEvent::WheelEvent):
(WebCore::WheelEvent::initWheelEvent):

  • dom/WheelEvent.h:

(WebCore::WheelEvent::wheelEvent): Returns a non-null pointer to the PlatformWheelEvent iff WheelEvent was initialized by PlatformWheelEvent.
(WebCore::WheelEvent::webkitDirectionInvertedFromDevice): Updated to use PlatformWheelEvent.
(WebCore::WheelEvent::phase): Updated to use PlatformWheelEvent.
(WebCore::WheelEvent::momentumPhase): Updated to use PlatformWheelEvent.

12:31 PM Changeset in webkit [171684] by Brian Burg
  • 6 edits in trunk/Source/JavaScriptCore

Web Replay: auto-decoding of parameterized vector's elements is incorrect
https://bugs.webkit.org/show_bug.cgi?id=135343

Reviewed by Timothy Hatcher.

Fix an incorrect type argument in EncodingTraits<Vector<T>>::encodeValue
that was using the element's decoded type as the type parameter to
EncodedValue::append<T>. It should instead be the raw type T. This
causes problems when encoding Vector<RefPtr<T>>, as it later tries to
use encoding traits for RefPtr<T> rather than for T.

Fix incorrect generated encoding traits argument for vectors of
RefCounted objects. Updated test to cover this scenario.

  • replay/scripts/CodeGeneratorReplayInputs.py:

(Type.encoding_type_argument):
(VectorType.type_name):
(VectorType):
(VectorType.encoding_type_argument):
(Generator.generate_input_encode_implementation):
(Generator.generate_input_decode_implementation):

  • replay/scripts/tests/expected/generate-input-with-vector-members.json-TestReplayInputs.cpp:
  • replay/scripts/tests/expected/generate-input-with-vector-members.json-TestReplayInputs.h:
  • replay/scripts/tests/generate-input-with-vector-members.json: Updated.
12:22 PM Changeset in webkit [171683] by Brian Burg
  • 5 edits in trunk/Source/JavaScriptCore

Web Replay: incorrect serialization code generated for enum classes inside class scope
https://bugs.webkit.org/show_bug.cgi?id=135342

Reviewed by Timothy Hatcher.

If an enum class is defined inside of a class scope, then the enum class
cannot be forward-declared and the relevant header should be included.
Some generated code used incorrectly-scoped enum values in this situation.

  • replay/scripts/CodeGeneratorReplayInputs.py:

(Generator.generate_includes.declaration.is):
(Generator.generate_enum_trait_implementation.is):
(Generator.generate_enum_trait_implementation):

Tests:

  • replay/scripts/tests/expected/generate-enums-with-same-base-name.json-TestReplayInputs.cpp: Rebaselined.
  • replay/scripts/tests/expected/generate-enums-with-same-base-name.json-TestReplayInputs.h: Rebaselined.
  • replay/scripts/tests/generate-enums-with-same-base-name.json: Add enum

class types to this test case.

12:21 PM Changeset in webkit [171682] by Brian Burg
  • 3 edits in trunk/Source/JavaScriptCore

Web Replay: vectors of characters should be base64-encoded
https://bugs.webkit.org/show_bug.cgi?id=135341

Reviewed by Timothy Hatcher.

Without this specialization, encode/decode methods try to create an
array of single characters in JSON, rather than treating the
vector as a binary blob.

  • replay/EncodedValue.cpp:

(JSC::EncodingTraits<Vector<char>>::encodeValue): Added.
(JSC::EncodingTraits<Vector<char>>::decodeValue): Added.

  • replay/EncodedValue.h:
12:02 PM Changeset in webkit [171681] by zoltan@webkit.org
  • 3 edits in trunk/LayoutTests

[CSS3-Text] Update text-expectations after r171677

Unreviewed.

  • fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify-expected.txt:
  • fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify-inherited-expected.txt:
10:40 AM Changeset in webkit [171680] by Brent Fulgham
  • 2 edits in trunk/Source/JavaScriptCore

[Win] Unreviewed build fix.

  • JavaScriptCore.vcxproj/JavaScriptCore.proj: Switch from the 'Rebuild' target for MSBuild

builds to the 'Build' target to avoid a spurious 'clean' in between build steps.

9:09 AM Changeset in webkit [171679] by matthew_hanson@apple.com
  • 6 edits in branches/safari-600.1-branch/Source/WebInspectorUI

Merge r171645. <rdar://problem/17818693>

9:02 AM Changeset in webkit [171678] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Unreviewed 'merge' fix.

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

Correct line endings to allow EWS merges again.

8:05 AM Changeset in webkit [171677] by zoltan@webkit.org
  • 10 edits in trunk

[CSS3-Text] Adjust text-justify implementation to the latest spec
https://bugs.webkit.org/show_bug.cgi?id=135317

Reviewed by Darin Adler.

Source/WebCore:
Text-justify no longer accepts the following values: Inter-ideograph, inter-
cluster, and kashida. This patch removes them and updates the tests as well.

[1] http://dev.w3.org/csswg/css-text-3/#propdef-text-justify

Updated existing tests.

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator TextJustify):

  • css/CSSValueKeywords.in:
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresLayout):

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleRareInheritedData.h:

LayoutTests:

  • fast/css3-text/css3-text-justify/getComputedStyle/script-tests/getComputedStyle-text-justify-inherited.js:
  • fast/css3-text/css3-text-justify/getComputedStyle/script-tests/getComputedStyle-text-justify.js:
6:19 AM Changeset in webkit [171676] by abucur@adobe.com
  • 8 edits
    2 adds in trunk

REGRESSION (r169105): Crash in selection
https://bugs.webkit.org/show_bug.cgi?id=134303

Patch by Radu Stavila <stavila@adobe.com> on 2014-07-28
Reviewed by Mihnea Ovidenie.

Source/WebCore:

When splitting the selection between different subtrees, all subtrees must have their selection cleared before
starting to apply the new selection. Otherwise, when selecting objects in a named flow thread and going up
its containing block chain, we can end up in the view's selection root, which has not yet been updated and so
we get inconsistent data.

To achieve this goal, the selection update was split into a "clear" and an "apply" method. The updateSelectionForSubtrees
method first iterates through all subtrees and performs the "clear" method and then starts all over again
and performs the "apply" method.

Test: fast/regions/selection/crash-deselect.html

  • WebCore.xcodeproj/project.pbxproj:
  • rendering/RenderSelectionInfo.h:
  • rendering/RenderView.cpp:

(WebCore::RenderView::setSelection):
(WebCore::RenderView::splitSelectionBetweenSubtrees):
(WebCore::RenderView::updateSelectionForSubtrees): Added, clears and re-applies selection for all selection subtrees.
(WebCore::RenderView::clearSubtreeSelection): Added, clears selection and returns previously selected information.
(WebCore::RenderView::applySubtreeSelection): Added, updates the selection status of all objects inside the selection tree, compares old and new data and repaints accordingly.
(WebCore::RenderView::setSubtreeSelection): Deleted.

  • rendering/RenderView.h:
  • rendering/SelectionSubtreeRoot.cpp:

(WebCore::SelectionSubtreeRoot::SelectionSubtreeRoot):

  • rendering/SelectionSubtreeRoot.h:

(WebCore::SelectionSubtreeRoot::OldSelectionData::OldSelectionData):

LayoutTests:

Added test for the crash that occurred in some cases when selecting.

Reviewed by NOBODY (OOPS!).

  • fast/regions/selection/crash-deselect-expected.txt: Added.
  • fast/regions/selection/crash-deselect.html: Added.
2:48 AM Changeset in webkit [171675] by Yusuke Suzuki
  • 3 edits
    4 adds in trunk

CSS: Fix :visited behavior for SubSelectors
https://bugs.webkit.org/show_bug.cgi?id=135324

Reviewed by Benjamin Poulain.

Disable :visited match for the selectors that has SubSelectors.

Source/WebCore:

Tests: fast/history/nested-visited-test-complex.html

fast/history/sibling-visited-test-complex.html

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::matchRecursively):

LayoutTests:
This isSubSelector (context.firstSelectorOfTheFragment == context.selector) is intended to
check relation != CSSSelector::SubSelector.
But since this value belongs to the previous selector and it is tested inside the branch that checks
the next selector isn't SubSelector relation != CSSSelector::SubSelector,
this only matches when the previous selector doesn't has SubSelectors.

  • fast/history/nested-visited-test-complex-expected.txt: Added.
  • fast/history/nested-visited-test-complex.html: Added.
  • fast/history/sibling-visited-test-complex-expected.txt: Added.
  • fast/history/sibling-visited-test-complex.html: Added.
1:41 AM Changeset in webkit [171674] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

Followup fix after r171594
https://bugs.webkit.org/show_bug.cgi?id=135048

Patch by Renato Nagy <nagy.renato@stud.u-szeged.hu> on 2014-07-28
Reviewed by Csaba Osztrogonác.

  • Scripts/sort-export-file: Removed extra newlines from help.

Jul 27, 2014:

11:50 PM Changeset in webkit [171673] by psolanki@apple.com
  • 6 edits in trunk/Source/WebKit

Remove unused preference keys
https://bugs.webkit.org/show_bug.cgi?id=135280

Reviewed by Darin Adler.

Source/WebKit/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences _setPageCacheSize:]): Deleted.
(-[WebPreferences _pageCacheSize]): Deleted.
(-[WebPreferences _setObjectCacheSize:]): Deleted.
(-[WebPreferences _objectCacheSize]): Deleted.

  • WebView/WebPreferencesPrivate.h:

Source/WebKit/win:

  • WebPreferenceKeysPrivate.h:
11:47 PM Changeset in webkit [171672] by ryuan.choi@samsung.com
  • 1 edit
    1 delete in trunk/Source/WebCore

Remove GraphicsSurfaceGLX.cpp
https://bugs.webkit.org/show_bug.cgi?id=135279

Reviewed by Darin Adler.

GraphicsSurfaceGLX.cpp is not used since Qt dropped and Efl port changed at r146458

  • platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp: Removed.
7:28 PM Changeset in webkit [171671] by Bruno de Oliveira Abinader
  • 3 edits
    2 adds in trunk

Support for :enabled selector on Anchor & Area elements
https://bugs.webkit.org/show_bug.cgi?id=134826

Reviewed by Darin Adler.

Source/WebCore:
Updates the PseudoClassEnabled selector checker to check for Anchor & Area
elements with a 'href' attribute.

Spec: http://html.spec.whatwg.org/#selector-enabled

Test: fast/css/css-selector-enabled-links.html

  • css/SelectorCheckerTestFunctions.h:

(WebCore::isEnabled): Added check for anchor & area elements.

LayoutTests:
Added tests for :enabled CSS selector on Anchor & Area elements.

  • fast/css/css-selector-enabled-links-expected.txt: Added.
  • fast/css/css-selector-enabled-links.html: Added.
7:24 PM Changeset in webkit [171670] by matthew_hanson@apple.com
  • 5 edits in tags/Safari-600.1.3.1/Source/WebKit2

Merge r171663. <rdar://problem/17818308>

7:16 PM Changeset in webkit [171669] by matthew_hanson@apple.com
  • 5 edits in tags/Safari-600.1.3.1/Source

Versioning.

7:09 PM Changeset in webkit [171668] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-600.1.3.1

New Tag.

7:08 PM Changeset in webkit [171667] by ryuan.choi@samsung.com
  • 3 edits in trunk/Source/WebKit2

[GTK] Keep non-DATABASE_PROCESS build
https://bugs.webkit.org/show_bug.cgi?id=135321

Patch by Yusuke Suzuki <Yusuke Suzuki> on 2014-07-27
Reviewed by Gyuyoung Kim.

This is the patch for r171622 in non-DATABASE_PROCESS builds.
Change sendToDatabaseProcessRelaunchingIfNecessary to support non-DATABASE_PROCESS implementation.

  • CMakeLists.txt:
  • UIProcess/WebContext.h:

(WebKit::WebContext::sendToDatabaseProcessRelaunchingIfNecessary):

7:02 PM Changeset in webkit [171666] by ryuan.choi@samsung.com
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed build fix on the EFL port

Build break because of -Werror=return-type

  • bytecode/PutByIdVariant.cpp:

(JSC::PutByIdVariant::oldStructureForTransition):

  • dfg/DFGValueStrength.h:

(JSC::DFG::merge):

5:48 PM Changeset in webkit [171665] by matthew_hanson@apple.com
  • 5 edits
    9 copies in branches/safari-600.1-branch

Merge r171661. <rdar://problem/17315237>

5:45 PM Changeset in webkit [171664] by matthew_hanson@apple.com
  • 5 edits in branches/safari-600.1-branch/Source/WebKit2

Merge r171663. <rdar://problem/17818308>

4:36 PM Changeset in webkit [171663] by barraclough@apple.com
  • 5 edits in trunk/Source/WebKit2

Don't rely on reading applicationState from within DidEnterBackground/WillEnterForeground
https://bugs.webkit.org/show_bug.cgi?id=135329
rdar://problem/17818308

Reviewed by Sam Weinig.

API may not be stable.

  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::isViewVisible):

  • changed to use -[WKContentView isBackground]
  • UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKProcessAssertionBackgroundTaskManager init]):

  • split notification handlers

(-[WKProcessAssertionBackgroundTaskManager _applicationWillEnterForeground:]):
(-[WKProcessAssertionBackgroundTaskManager _applicationDidEnterBackground:]):
(-[WKProcessAssertionBackgroundTaskManager _applicationDidEnterBackgroundOrWillEnterForeground:]): Deleted.

  • Assume application is background is after DidEnterBackground, and not after WillEnterForeground
  • UIProcess/ios/WKContentView.h:
    • added isBackground.
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView initWithFrame:context:configuration:webView:]):

  • check applicationState at init.

(-[WKContentView isBackground]):

  • accessor

(-[WKContentView _applicationDidEnterBackground:]):
(-[WKContentView _applicationWillEnterForeground:]):

  • update isBackground
4:35 PM Changeset in webkit [171662] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[REGRESSION][ftlopt merge][32-bit] stress/prune-multi-put-by-offset-replace-or-transition-variant.js.dfg-eager hits an assertion in SpeculativeJIT::silentSavePlanForGPR
https://bugs.webkit.org/show_bug.cgi?id=135323

Reviewed by Oliver Hunt.

SpeculativeJIT::silentSavePlanForGPR likes to believe that if a node is a constant,
then it's a constant that can be represented using that node's current DataFormat.
This doesn't work if the constant had been filled as a JSValue, and then one of the
fillSpeculateBlah() methods had speculated that it's of some type that the constant
isn't. Unless fillSpeculateBlah() specifically defends against this case, we'll have
a constant that claims to have a contradictory data format.

This patch fixes such a bug in the 32-bit fillSpeculateCell(). The 64-bit
fillSpeculateCell() appears to not have this bug, but I added a similar defense
mechanism anyway just in case, since this is one of those mistakes that keeps
reappearing.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::silentSavePlanForGPR):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::fillSpeculateCell):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::fillSpeculateCell):

4:33 PM Changeset in webkit [171661] by dbates@webkit.org
  • 5 edits
    9 adds in trunk

[WK2] Crash when accessing window.localStorage after calling window.close()
https://bugs.webkit.org/show_bug.cgi?id=135328
<rdar://problem/17315237>

Reviewed by Sam Weinig.

Source/WebCore:
Fixes an issue where accessing local storage for the first time after calling window.close()
causes a crash.

For now, we should disallow accessing local storage after calling window.close() regardless of
whether it's the first access to local storage as this seems like a bad idiom to support. Note,
this represents a change in behavior from WebKit1. If such usage of window.localStorage turns
out to be reasonable then we can visit this decision again in <https://bugs.webkit.org/show_bug.cgi?id=135330>.

Tests: storage/domstorage/localstorage/access-storage-after-window-close.html

storage/domstorage/localstorage/access-storage-then-set-value-in-storage-after-window-close.html
storage/domstorage/localstorage/set-value-in-storage-after-window-close.html

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::localStorage): Modified to only return the cached local storage or
create a new local storage so long as the page isn't being closed. Also, substitute nullptr
for 0.
(WebCore::DOMWindow::close): Call Page::setIsClosing() to mark that the page is closing.

  • page/Page.cpp:

(WebCore::Page::Page): Initialize m_isClosing to false.

  • page/Page.h:

(WebCore::Page::setIsClosing): Added.
(WebCore::Page::isClosing): Added.

LayoutTests:
Added test by Andy Estes, LayoutTests/storage/domstorage/localstorage/access-storage-after-window-close.html,
to ensure that we don't crash when accessing local storage for the first time after calling window.close().

Additionally added tests that ensure that updates to local storage are ignored after calling
window.close() regardless of whether local storage was accessed before the call to window.close().

  • storage/domstorage/localstorage/access-storage-after-window-close-expected.txt: Added.
  • storage/domstorage/localstorage/access-storage-after-window-close.html: Added.
  • storage/domstorage/localstorage/access-storage-then-set-value-in-storage-after-window-close-expected.txt: Added.
  • storage/domstorage/localstorage/access-storage-then-set-value-in-storage-after-window-close.html: Added.
  • storage/domstorage/localstorage/resources/access-storage-close-window-and-set-value-in-storage.html: Added.
  • storage/domstorage/localstorage/resources/close-window-and-access-storage.html: Added.
  • storage/domstorage/localstorage/resources/close-window-and-set-value-in-storage.html: Added.
  • storage/domstorage/localstorage/set-value-in-storage-after-window-close-expected.txt: Added.
  • storage/domstorage/localstorage/set-value-in-storage-after-window-close.html: Added.
4:14 PM Changeset in webkit [171660] by fpizlo@apple.com
  • 93 edits
    54 adds
    3 deletes in trunk

Merge r170090, r170092, r170129, r170141, r170161, r170215, r170275, r170375, r170376, r170382, r170383, r170399, r170436, r170489, r170490, r170556 from ftlopt.

Source/JavaScriptCore:

This fixes the previous mismerge and adds test coverage for the thing that went wrong.

Additional changes listed here:

  • jsc.cpp:

(functionHasCustomProperties): Expose a way of checking hasCustomProperties(), which the DOM relies on. The regression I previously introduced was because this didn't work right. Now we can test it!

  • runtime/Structure.cpp:

(JSC::Structure::Structure): This was supposed to be setDidTransition(true); the last merge had it set to false.

  • tests/stress/has-custom-properties.js: Added. This test failed with the mismerge.

2014-06-27 Michael Saboff <msaboff@apple.com>


Unreviewed build fix after r169795.


Fixed ASSERT for 32 bit build.


  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::silentSavePlanForGPR):


2014-06-24 Saam Barati <sbarati@apple.com>


Web Inspector: debugger should be able to show variable types
https://bugs.webkit.org/show_bug.cgi?id=133395


Reviewed by Filip Pizlo.


Increase the amount of type information the VM gathers when directed
to do so. This initial commit is working towards the goal of
capturing, and then showing (via the Web Inspector) type information for all
assignment and load operations. This patch doesn't have the feature fully
implemented, but it ensures the VM has no performance regressions
unless the feature is specifically turned on.


  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h: (JSC::computeUsesForBytecodeOffset): (JSC::computeDefsForBytecodeOffset):
  • bytecode/CodeBlock.cpp: (JSC::CodeBlock::dumpBytecode): (JSC::CodeBlock::CodeBlock): (JSC::CodeBlock::finalizeUnconditionally):
  • bytecode/CodeBlock.h:
  • bytecode/Instruction.h:
  • bytecode/TypeLocation.h: Added. (JSC::TypeLocation::TypeLocation):
  • bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::emitMove): (JSC::BytecodeGenerator::emitProfileTypesWithHighFidelity): (JSC::BytecodeGenerator::emitPutToScope): (JSC::BytecodeGenerator::emitPutById): (JSC::BytecodeGenerator::emitPutByVal):
  • bytecompiler/BytecodeGenerator.h: (JSC::BytecodeGenerator::isProfilingTypesWithHighFidelity):
  • bytecompiler/NodesCodegen.cpp: (JSC::PostfixNode::emitResolve): (JSC::PrefixNode::emitResolve): (JSC::ReadModifyResolveNode::emitBytecode): (JSC::AssignResolveNode::emitBytecode): (JSC::ConstDeclNode::emitCodeSingle): (JSC::ForInNode::emitBytecode):
  • heap/Heap.cpp: (JSC::Heap::collect):
  • inspector/agents/InspectorRuntimeAgent.cpp: (Inspector::InspectorRuntimeAgent::getRuntimeTypeForVariableInTextRange):
  • inspector/agents/InspectorRuntimeAgent.h:
  • inspector/protocol/Runtime.json:
  • jsc.cpp: (GlobalObject::finishCreation): (functionDumpTypesForAllVariables):
  • llint/LLIntSlowPaths.cpp: (JSC::LLInt::LLINT_SLOW_PATH_DECL): (JSC::LLInt::putToScopeCommon):
  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • runtime/HighFidelityLog.cpp: Added. (JSC::HighFidelityLog::initializeHighFidelityLog): (JSC::HighFidelityLog::~HighFidelityLog): (JSC::HighFidelityLog::recordTypeInformationForLocation): (JSC::HighFidelityLog::processHighFidelityLog): (JSC::HighFidelityLog::actuallyProcessLogThreadFunction):
  • runtime/HighFidelityLog.h: Added. (JSC::HighFidelityLog::HighFidelityLog):
  • runtime/HighFidelityTypeProfiler.cpp: Added. (JSC::HighFidelityTypeProfiler::getTypesForVariableInRange): (JSC::HighFidelityTypeProfiler::getGlobalTypesForVariableInRange): (JSC::HighFidelityTypeProfiler::getLocalTypesForVariableInRange): (JSC::HighFidelityTypeProfiler::insertNewLocation): (JSC::HighFidelityTypeProfiler::getLocationBasedHash):
  • runtime/HighFidelityTypeProfiler.h: Added.
  • runtime/Options.h:
  • runtime/Structure.cpp: (JSC::Structure::toStructureShape):
  • runtime/Structure.h:
  • runtime/SymbolTable.cpp: (JSC::SymbolTable::SymbolTable): (JSC::SymbolTable::cloneCapturedNames): (JSC::SymbolTable::uniqueIDForVariable): (JSC::SymbolTable::uniqueIDForRegister): (JSC::SymbolTable::globalTypeSetForRegister): (JSC::SymbolTable::globalTypeSetForVariable):
  • runtime/SymbolTable.h: (JSC::SymbolTable::add): (JSC::SymbolTable::set):
  • runtime/TypeSet.cpp: Added. (JSC::TypeSet::TypeSet): (JSC::TypeSet::getRuntimeTypeForValue): (JSC::TypeSet::addTypeForValue): (JSC::TypeSet::removeDuplicatesInStructureHistory): (JSC::TypeSet::seenTypes): (JSC::TypeSet::dumpSeenTypes): (JSC::StructureShape::StructureShape): (JSC::StructureShape::markAsFinal): (JSC::StructureShape::addProperty): (JSC::StructureShape::propertyHash): (JSC::StructureShape::leastUpperBound): (JSC::StructureShape::stringRepresentation):
  • runtime/TypeSet.h: Added. (JSC::StructureShape::create): (JSC::TypeSet::create):
  • runtime/VM.cpp: (JSC::VM::VM): (JSC::VM::getTypesForVariableInRange): (JSC::VM::updateHighFidelityTypeProfileState): (JSC::VM::dumpHighFidelityProfilingTypes):
  • runtime/VM.h: (JSC::VM::isProfilingTypesWithHighFidelity): (JSC::VM::highFidelityLog): (JSC::VM::highFidelityTypeProfiler): (JSC::VM::nextLocation): (JSC::VM::getNextUniqueVariableID):


2014-06-26 Mark Lam <mark.lam@apple.com>


Remove unused instantiation of the WithScope structure.
<https://webkit.org/b/134331>


Reviewed by Oliver Hunt.


The WithScope structure instance is the VM is unused, and is now removed.


  • runtime/VM.cpp: (JSC::VM::VM):
  • runtime/VM.h:


2014-06-25 Mark Hahnenberg <mhahnenberg@apple.com>


Structure bit fields should have a consistent format
https://bugs.webkit.org/show_bug.cgi?id=134307


Reviewed by Filip Pizlo.


Currently we use C-style bit fields for a number of member variables in Structure to save space.
This makes it difficult to load these fields in the JIT. We should instead use our own bitfield
format to make it easy to load and test these variables in JIT code.


  • runtime/JSObject.cpp: (JSC::JSObject::putDirectNonIndexAccessor): (JSC::JSObject::reifyStaticFunctionsForDelete):
  • runtime/Structure.cpp: (JSC::StructureTransitionTable::contains): (JSC::StructureTransitionTable::get): (JSC::StructureTransitionTable::add): (JSC::Structure::Structure): (JSC::Structure::materializePropertyMap): (JSC::Structure::addPropertyTransition): (JSC::Structure::despecifyFunctionTransition): (JSC::Structure::toDictionaryTransition): (JSC::Structure::freezeTransition): (JSC::Structure::preventExtensionsTransition): (JSC::Structure::takePropertyTableOrCloneIfPinned): (JSC::Structure::nonPropertyTransition): (JSC::Structure::flattenDictionaryStructure): (JSC::Structure::addPropertyWithoutTransition): (JSC::Structure::pin): (JSC::Structure::allocateRareData): (JSC::Structure::cloneRareDataFrom): (JSC::Structure::getConcurrently): (JSC::Structure::putSpecificValue): (JSC::Structure::getPropertyNamesFromStructure): (JSC::Structure::visitChildren): (JSC::Structure::checkConsistency):
  • runtime/Structure.h: (JSC::Structure::isExtensible): (JSC::Structure::isDictionary): (JSC::Structure::isUncacheableDictionary): (JSC::Structure::propertyAccessesAreCacheable): (JSC::Structure::previousID): (JSC::Structure::setHasGetterSetterPropertiesWithProtoCheck): (JSC::Structure::setContainsReadOnlyProperties): (JSC::Structure::disableSpecificFunctionTracking): (JSC::Structure::objectToStringValue): (JSC::Structure::setObjectToStringValue): (JSC::Structure::setPreviousID): (JSC::Structure::clearPreviousID): (JSC::Structure::previous): (JSC::Structure::rareData): (JSC::Structure::didTransition): Deleted. (JSC::Structure::hasGetterSetterProperties): Deleted. (JSC::Structure::hasReadOnlyOrGetterSetterPropertiesExcludingProto): Deleted. (JSC::Structure::setHasGetterSetterProperties): Deleted. (JSC::Structure::hasNonEnumerableProperties): Deleted. (JSC::Structure::staticFunctionsReified): Deleted. (JSC::Structure::setStaticFunctionsReified): Deleted.
  • runtime/StructureInlines.h: (JSC::Structure::setEnumerationCache): (JSC::Structure::enumerationCache): (JSC::Structure::checkOffsetConsistency):


2014-06-24 Mark Lam <mark.lam@apple.com>


[ftlopt] Renamed DebuggerActivation to DebuggerScope.
<https://webkit.org/b/134273>


Reviewed by Michael Saboff.


  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • debugger/DebuggerActivation.cpp: Removed.
  • debugger/DebuggerActivation.h: Removed.
  • debugger/DebuggerScope.cpp: Copied from ../../trunk/Source/JavaScriptCore/debugger/DebuggerActivation.cpp. (JSC::DebuggerScope::DebuggerScope): (JSC::DebuggerScope::finishCreation): (JSC::DebuggerScope::visitChildren): (JSC::DebuggerScope::className): (JSC::DebuggerScope::getOwnPropertySlot): (JSC::DebuggerScope::put): (JSC::DebuggerScope::deleteProperty): (JSC::DebuggerScope::getOwnPropertyNames): (JSC::DebuggerScope::defineOwnProperty): (JSC::DebuggerActivation::DebuggerActivation): Deleted. (JSC::DebuggerActivation::finishCreation): Deleted. (JSC::DebuggerActivation::visitChildren): Deleted. (JSC::DebuggerActivation::className): Deleted. (JSC::DebuggerActivation::getOwnPropertySlot): Deleted. (JSC::DebuggerActivation::put): Deleted. (JSC::DebuggerActivation::deleteProperty): Deleted. (JSC::DebuggerActivation::getOwnPropertyNames): Deleted. (JSC::DebuggerActivation::defineOwnProperty): Deleted.
  • debugger/DebuggerScope.h: Copied from ../../trunk/Source/JavaScriptCore/debugger/DebuggerActivation.h. (JSC::DebuggerScope::create): (JSC::DebuggerActivation::create): Deleted.
  • runtime/VM.cpp: (JSC::VM::VM):
  • runtime/VM.h:


2014-06-24 Filip Pizlo <fpizlo@apple.com>


[ftlopt] PutByIdFlush can also be converted to a PutByOffset so don't assert otherwise
https://bugs.webkit.org/show_bug.cgi?id=134265


Reviewed by Geoffrey Garen.


More assertion fallout from the PutById folding work.


  • dfg/DFGNode.h: (JSC::DFG::Node::convertToPutByOffset):


2014-06-24 Filip Pizlo <fpizlo@apple.com>


[ftlopt] GC should notify us if it resets to_this
https://bugs.webkit.org/show_bug.cgi?id=128231


Reviewed by Geoffrey Garen.


  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/BytecodeList.json:
  • bytecode/CodeBlock.cpp: (JSC::CodeBlock::dumpBytecode): (JSC::CodeBlock::finalizeUnconditionally):
  • bytecode/Instruction.h:
  • bytecode/ToThisStatus.cpp: Added. (JSC::merge): (WTF::printInternal):
  • bytecode/ToThisStatus.h: Added.
  • bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::BytecodeGenerator):
  • dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::parseBlock):
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/CommonSlowPaths.cpp: (JSC::SLOW_PATH_DECL):


2014-06-24 Filip Pizlo <fpizlo@apple.com>


[ftlopt] StructureAbstractValue::onlyStructure() should return nullptr if isClobbered()
https://bugs.webkit.org/show_bug.cgi?id=134256


Reviewed by Michael Saboff.


This isn't testable right now (i.e. it's benign) but we should get it right anyway. The
point is to be able to precisely model what goes on in the snippets of code between a
side-effect and an InvalidationPoint.


This patch also cleans up onlyStructure() by delegating more work to
StructureSet::onlyStructure().


  • dfg/DFGStructureAbstractValue.h: (JSC::DFG::StructureAbstractValue::onlyStructure):


2014-06-24 Filip Pizlo <fpizlo@apple.com>


[ftlopt][REGRESSION] PutById AI is introducing watchable structures without watching them
https://bugs.webkit.org/show_bug.cgi?id=134260


Reviewed by Geoffrey Garen.


This was causing loads of assertion failures in debug builds.


  • dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):


2014-06-21 Filip Pizlo <fpizlo@apple.com>


[ftlopt] Fold GetById/PutById to MultiGetByOffset/GetByOffset or MultiPutByOffset/PutByOffset, which implies handling non-singleton sets
https://bugs.webkit.org/show_bug.cgi?id=134090


Reviewed by Oliver Hunt.


This pretty much finishes off the work to eliminate the special-casing of singleton
structure sets by making it possible to fold GetById and PutById to various polymorphic
forms of the ByOffset nodes.


  • bytecode/GetByIdStatus.cpp: (JSC::GetByIdStatus::computeForStubInfo): (JSC::GetByIdStatus::computeFor):
  • bytecode/GetByIdStatus.h:
  • bytecode/PutByIdStatus.cpp: (JSC::PutByIdStatus::computeFor):
  • bytecode/PutByIdStatus.h:
  • bytecode/PutByIdVariant.h: (JSC::PutByIdVariant::constantChecks):
  • dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
  • dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::parseBlock):
  • dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants): (JSC::DFG::ConstantFoldingPhase::emitPutByOffset): (JSC::DFG::ConstantFoldingPhase::addChecks):
  • dfg/DFGNode.h: (JSC::DFG::Node::convertToMultiGetByOffset): (JSC::DFG::Node::convertToMultiPutByOffset):
  • dfg/DFGSpeculativeJIT64.cpp: Also convert all release assertions to DFG assertions in this file, because I was hitting some of them while debugging. (JSC::DFG::SpeculativeJIT::fillJSValue): (JSC::DFG::SpeculativeJIT::nonSpeculativeCompareNull): (JSC::DFG::SpeculativeJIT::emitCall): (JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal): (JSC::DFG::SpeculativeJIT::fillSpeculateInt32Strict): (JSC::DFG::SpeculativeJIT::fillSpeculateInt52): (JSC::DFG::SpeculativeJIT::fillSpeculateDouble): (JSC::DFG::SpeculativeJIT::fillSpeculateCell): (JSC::DFG::SpeculativeJIT::fillSpeculateBoolean): (JSC::DFG::SpeculativeJIT::compileLogicalNot): (JSC::DFG::SpeculativeJIT::emitBranch): (JSC::DFG::SpeculativeJIT::compile):
  • dfg/DFGStructureAbstractValue.h: (JSC::DFG::StructureAbstractValue::set):


2014-06-19 Filip Pizlo <fpizlo@apple.com>


[ftlopt] StructureSet::onlyStructure() should return nullptr if it's not a singleton (instead of asserting)
https://bugs.webkit.org/show_bug.cgi?id=134077


Reviewed by Sam Weinig.


This makes StructureSet and StructureAbstractValue more consistent and fixes a debug assert
in the abstract interpreter.


  • bytecode/StructureSet.h: (JSC::StructureSet::onlyStructure):


2014-06-18 Filip Pizlo <fpizlo@apple.com>


DFG AI and constant folder should be able to precisely prune MultiGetByOffset/MultiPutByOffset even if the base structure abstract value is not a singleton
https://bugs.webkit.org/show_bug.cgi?id=133918


Reviewed by Mark Hahnenberg.


This also adds pruning of PutStructure, since I basically had no choice but
to implement such logic within MultiPutByOffset.


Also adds a bunch of PutById cache status dumping to bytecode dumping.


  • bytecode/GetByIdVariant.cpp: (JSC::GetByIdVariant::dumpInContext):
  • bytecode/GetByIdVariant.h: (JSC::GetByIdVariant::structureSet):
  • bytecode/PutByIdVariant.h: (JSC::PutByIdVariant::oldStructure):
  • bytecode/StructureSet.cpp: (JSC::StructureSet::filter): (JSC::StructureSet::filterArrayModes):
  • bytecode/StructureSet.h:
  • dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
  • dfg/DFGAbstractValue.cpp: (JSC::DFG::AbstractValue::changeStructure): (JSC::DFG::AbstractValue::contains):
  • dfg/DFGAbstractValue.h: (JSC::DFG::AbstractValue::couldBeType): (JSC::DFG::AbstractValue::isType):
  • dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants): (JSC::DFG::ConstantFoldingPhase::emitGetByOffset): (JSC::DFG::ConstantFoldingPhase::emitPutByOffset): (JSC::DFG::ConstantFoldingPhase::addBaseCheck):
  • dfg/DFGGraph.cpp: (JSC::DFG::Graph::freezeStrong):
  • dfg/DFGGraph.h:
  • dfg/DFGStructureAbstractValue.h: (JSC::DFG::StructureAbstractValue::operator=):
  • ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::compileMultiGetByOffset):
  • tests/stress/fold-multi-get-by-offset-to-get-by-offset-without-folding-the-structure-check.js: Added. (foo): (fu): (bar): (baz): (.bar): (.baz):
  • tests/stress/fold-multi-put-by-offset-to-put-by-offset-without-folding-the-structure-check.js: Added. (foo): (fu): (bar): (baz): (.bar): (.baz):
  • tests/stress/prune-multi-put-by-offset-replace-or-transition-variant.js: Added. (foo): (fu): (bar): (baz): (.bar): (.baz):


2014-06-18 Mark Hahnenberg <mhahnenberg@apple.com>


Remove CompoundType and LeafType
https://bugs.webkit.org/show_bug.cgi?id=134037


Reviewed by Filip Pizlo.


We don't use them for anything. We'll replace them with a generic CellType type for all
the objects that are JSCells, aren't JSObjects, and for which we generally don't care about
their JSType at runtime.


  • llint/LLIntData.cpp: (JSC::LLInt::Data::performAssertions):
  • runtime/ArrayBufferNeuteringWatchpoint.cpp: (JSC::ArrayBufferNeuteringWatchpoint::createStructure):
  • runtime/Executable.h: (JSC::ExecutableBase::createStructure): (JSC::NativeExecutable::createStructure):
  • runtime/JSPromiseDeferred.h: (JSC::JSPromiseDeferred::createStructure):
  • runtime/JSPromiseReaction.h: (JSC::JSPromiseReaction::createStructure):
  • runtime/JSPropertyNameIterator.h: (JSC::JSPropertyNameIterator::createStructure):
  • runtime/JSType.h:
  • runtime/JSTypeInfo.h: (JSC::TypeInfo::TypeInfo):
  • runtime/MapData.h: (JSC::MapData::createStructure):
  • runtime/PropertyMapHashTable.h: (JSC::PropertyTable::createStructure):
  • runtime/RegExp.h: (JSC::RegExp::createStructure):
  • runtime/SparseArrayValueMap.cpp: (JSC::SparseArrayValueMap::createStructure):
  • runtime/Structure.cpp: (JSC::Structure::Structure):
  • runtime/StructureChain.h: (JSC::StructureChain::createStructure):
  • runtime/StructureRareData.cpp: (JSC::StructureRareData::createStructure):
  • runtime/SymbolTable.h: (JSC::SymbolTable::createStructure):
  • runtime/WeakMapData.h: (JSC::WeakMapData::createStructure):


2014-06-17 Filip Pizlo <fpizlo@apple.com>


[ftlopt] PutStructure and PhantomPutStructure shouldn't leave the world in a clobbered state
https://bugs.webkit.org/show_bug.cgi?id=134002


Reviewed by Mark Hahnenberg.


The effect of this bug was that if we had a PutStructure or PhantomPutStructure then any
JSConstants would be in a Clobbered state, so we wouldn't take advantage of our knowledge
of the structure if that structure was watchable.


Also kill PhantomPutStructure.


  • dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects): (JSC::DFG::AbstractInterpreter<AbstractStateType>::observeTransition): (JSC::DFG::AbstractInterpreter<AbstractStateType>::observeTransitions):
  • dfg/DFGClobberize.h: (JSC::DFG::clobberize):
  • dfg/DFGDoesGC.cpp: (JSC::DFG::doesGC):
  • dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode):
  • dfg/DFGGraph.cpp: (JSC::DFG::Graph::visitChildren):
  • dfg/DFGNode.h: (JSC::DFG::Node::hasTransition):
  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp: (JSC::DFG::PredictionPropagationPhase::propagate):
  • dfg/DFGSafeToExecute.h: (JSC::DFG::safeToExecute):
  • dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile):
  • dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile):
  • dfg/DFGStructureAbstractValue.cpp: (JSC::DFG::StructureAbstractValue::observeTransition): (JSC::DFG::StructureAbstractValue::observeTransitions):
  • dfg/DFGValidate.cpp: (JSC::DFG::Validate::validate):
  • dfg/DFGWatchableStructureWatchingPhase.cpp: (JSC::DFG::WatchableStructureWatchingPhase::run):
  • ftl/FTLCapabilities.cpp: (JSC::FTL::canCompile):
  • ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::compileNode): (JSC::FTL::LowerDFGToLLVM::compilePhantomPutStructure): Deleted.


2014-06-17 Filip Pizlo <fpizlo@apple.com>


[ftlopt] DFG put_by_id should inline accesses with a slightly polymorphic base
https://bugs.webkit.org/show_bug.cgi?id=133964


Reviewed by Mark Hahnenberg.


  • bytecode/PutByIdStatus.cpp: (JSC::PutByIdStatus::appendVariant): (JSC::PutByIdStatus::computeForStubInfo):
  • bytecode/PutByIdVariant.cpp: (JSC::PutByIdVariant::oldStructureForTransition): (JSC::PutByIdVariant::writesStructures): (JSC::PutByIdVariant::reallocatesStorage): (JSC::PutByIdVariant::attemptToMerge): (JSC::PutByIdVariant::attemptToMergeTransitionWithReplace): (JSC::PutByIdVariant::dumpInContext):
  • bytecode/PutByIdVariant.h: (JSC::PutByIdVariant::PutByIdVariant): (JSC::PutByIdVariant::replace): (JSC::PutByIdVariant::transition): (JSC::PutByIdVariant::structure): (JSC::PutByIdVariant::oldStructure):
  • dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
  • dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::handlePutById): (JSC::DFG::ByteCodeParser::parseBlock):
  • dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants): (JSC::DFG::ConstantFoldingPhase::emitPutByOffset):
  • dfg/DFGGraph.cpp: (JSC::DFG::Graph::visitChildren):
  • dfg/DFGNode.cpp: (JSC::DFG::MultiPutByOffsetData::writesStructures): (JSC::DFG::MultiPutByOffsetData::reallocatesStorage):
  • ftl/FTLAbbreviations.h: (JSC::FTL::getLinkage):
  • ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::compileMultiPutByOffset): (JSC::FTL::LowerDFGToLLVM::getModuleByPathForSymbol):

Source/WebCore:

This fixes the previous mismerge and adds test coverage for the thing that went wrong.
Also, this adds some helpers for making it easier to inspect JavaScript values.

  • testing/Internals.cpp:

(WebCore::Internals::description):

  • testing/Internals.h:
  • testing/Internals.idl:

2014-07-25 Mark Lam <mark.lam@apple.com>


[ftlopt] Renamed DebuggerActivation to DebuggerScope.
<https://webkit.org/b/134273>


Reviewed by Michael Saboff.


No new tests.


  • ForwardingHeaders/debugger/DebuggerActivation.h: Removed.
  • Removed because this is not used.

Source/WebKit/mac:

2014-07-25 Mark Lam <mark.lam@apple.com>


[ftlopt] Renamed DebuggerActivation to DebuggerScope.
<https://webkit.org/b/134273>


Reviewed by Michael Saboff.


  • WebView/WebScriptDebugDelegate.mm:
  • Removed unneeded #include.

Source/WTF:

  • wtf/text/WTFString.h:

LayoutTests:

  • js/regress/fold-get-by-id-to-multi-get-by-offset-expected.txt: Added.
  • js/regress/fold-get-by-id-to-multi-get-by-offset-rare-int-expected.txt: Added.
  • js/regress/fold-get-by-id-to-multi-get-by-offset-rare-int.html: Added.
  • js/regress/fold-get-by-id-to-multi-get-by-offset.html: Added.
  • js/regress/fold-multi-get-by-offset-to-get-by-offset-expected.txt: Added.
  • js/regress/fold-multi-get-by-offset-to-get-by-offset.html: Added.
  • js/regress/fold-multi-get-by-offset-to-poly-get-by-offset-expected.txt: Added.
  • js/regress/fold-multi-get-by-offset-to-poly-get-by-offset.html: Added.
  • js/regress/fold-multi-put-by-offset-to-poly-put-by-offset-expected.txt: Added.
  • js/regress/fold-multi-put-by-offset-to-poly-put-by-offset.html: Added.
  • js/regress/fold-multi-put-by-offset-to-put-by-offset-expected.txt: Added.
  • js/regress/fold-multi-put-by-offset-to-put-by-offset.html: Added.
  • js/regress/fold-multi-put-by-offset-to-replace-or-transition-put-by-offset-expected.txt: Added.
  • js/regress/fold-multi-put-by-offset-to-replace-or-transition-put-by-offset.html: Added.
  • js/regress/fold-put-by-id-to-multi-put-by-offset-expected.txt: Added.
  • js/regress/fold-put-by-id-to-multi-put-by-offset.html: Added.
  • js/regress/fold-put-structure-expected.txt: Added.
  • js/regress/fold-put-structure.html: Added.
  • js/regress/hoist-poly-check-structure-effectful-loop-expected.txt: Added.
  • js/regress/hoist-poly-check-structure-effectful-loop.html: Added.
  • js/regress/hoist-poly-check-structure-expected.txt: Added.
  • js/regress/hoist-poly-check-structure.html: Added.
  • js/regress/put-by-id-replace-and-transition-expected.txt: Added.
  • js/regress/put-by-id-replace-and-transition.html: Added.
  • js/regress/put-by-id-slightly-polymorphic-expected.txt: Added.
  • js/regress/put-by-id-slightly-polymorphic.html: Added.
  • js/regress/script-tests/fold-get-by-id-to-multi-get-by-offset-rare-int.js: Added.

(foo):
(fu):
(bar):
(.bar):
(Number):

  • js/regress/script-tests/fold-get-by-id-to-multi-get-by-offset.js: Added.

(foo):
(fu):
(bar):
(.bar):
(Number):

  • js/regress/script-tests/fold-multi-get-by-offset-to-get-by-offset.js: Added.

(foo):
(fu):
(bar):
(.bar):

  • js/regress/script-tests/fold-multi-get-by-offset-to-poly-get-by-offset.js: Added.

(foo):
(fu):
(bar):
(.bar):

  • js/regress/script-tests/fold-multi-put-by-offset-to-poly-put-by-offset.js: Added.

(foo):
(fu):
(bar):
(.bar):

  • js/regress/script-tests/fold-multi-put-by-offset-to-put-by-offset.js: Added.

(foo):
(fu):
(bar):
(.bar):

  • js/regress/script-tests/fold-multi-put-by-offset-to-replace-or-transition-put-by-offset.js: Added.

(foo):
(fu):
(bar):
(.bar):

  • js/regress/script-tests/fold-put-by-id-to-multi-put-by-offset.js: Added.

(foo):
(fu):
(bar):
(.bar):

  • js/regress/script-tests/fold-put-structure.js: Added.

(foo):
(fu):
(bar):
(.bar):

  • js/regress/script-tests/hoist-poly-check-structure-effectful-loop.js: Added.

(foo):
(test):

  • js/regress/script-tests/hoist-poly-check-structure.js: Added.

(foo):
(test):

  • js/regress/script-tests/put-by-id-replace-and-transition.js: Added.
  • js/regress/script-tests/put-by-id-slightly-polymorphic.js: Added.
2:07 PM Changeset in webkit [171659] by matthew_hanson@apple.com
  • 7 edits in branches/safari-600.1-branch/Source/WebKit2

Merge r171651. <rdar://problem/17682120>

11:45 AM Changeset in webkit [171658] by matthew_hanson@apple.com
  • 7 edits in branches/safari-600.1-branch/Source

Merge r171647. <rdar://problem/17315168>

11:42 AM Changeset in webkit [171657] by matthew_hanson@apple.com
  • 3 edits
    2 copies in branches/safari-600.1-branch

Merge r171640. <rdar://problem/17812921>

11:37 AM Changeset in webkit [171656] by matthew_hanson@apple.com
  • 5 edits in branches/safari-600.1-branch/Source

Merge r171635. <rdar://problem/17782407>

11:33 AM Changeset in webkit [171655] by matthew_hanson@apple.com
  • 9 edits
    1 copy in branches/safari-600.1-branch

Merge r171626. <rdar://problem/17730536>

11:30 AM Changeset in webkit [171654] by matthew_hanson@apple.com
  • 8 edits
    2 copies in branches/safari-600.1-branch

Merge r171624. <rdar://problem/17715503>

11:19 AM Changeset in webkit [171653] by matthew_hanson@apple.com
  • 4 edits in branches/safari-600.1-branch/Source/WebCore

Merge r171616. <rdar://problem/17736875>

10:58 AM Changeset in webkit [171652] by matthew_hanson@apple.com
  • 3 edits
    3 copies in branches/safari-600.1-branch

Merge r171609. <rdar://problem/17043792>

10:25 AM Changeset in webkit [171651] by enrica@apple.com
  • 7 edits in trunk/Source/WebKit2

[WebKit2 iOS]Add support for caret movement for the 3rd party keyboard protocol.
https://bugs.webkit.org/show_bug.cgi?id=135325
<rdar://problem/17682120>

Reviewed by Sam Weinig.

WKContentView now implements moveByOffset to support the
protocol for 3rd party keyboards.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView moveByOffset:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::moveSelectionByOffset):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::moveSelectionByOffset):

Note: See TracTimeline for information about the timeline view.