One more URTBF after r159108, I hope the last one.

* GNUmakefile.am:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159126 268f45cc-cd09-0410-ab3c-d52691b4dbfc
The last URTBF after r159108 to make GTK happy.

* GNUmakefile.am:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159127 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix accessibility/aria-help after r159067.

It's failing everywhere because the path to its script is wrong.

* accessibility/aria-help.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159128 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Simplify ImmutableArray creation
https://bugs.webkit.org/show_bug.cgi?id=124213

Reviewed by Andreas Kling.

Get rid of the various ImmutableArray::adopt functions and have a single create function instead.
Use std::move to avoid unnecessarily copying vector data.

* Shared/API/c/WKArray.cpp:
(WKArrayCreate):
(WKArrayCreateAdoptingValues):
* Shared/Cocoa/WKNSArray.mm:
(-[WKNSArray copyWithZone:]):
* Shared/ImmutableArray.cpp:
(WebKit::ImmutableArray::create):
(WebKit::ImmutableArray::createStringArray):
(WebKit::ImmutableArray::ImmutableArray):
* Shared/ImmutableArray.h:
(WebKit::ImmutableArray::at):
(WebKit::ImmutableArray::size):
(WebKit::ImmutableArray::entries):
* Shared/ImmutableDictionary.cpp:
(WebKit::ImmutableDictionary::keys):
* Shared/MutableArray.cpp:
(WebKit::MutableArray::MutableArray):
(WebKit::MutableArray::append):
(WebKit::MutableArray::reserveCapacity):
(WebKit::MutableArray::removeItemAtIndex):
* Shared/SecurityOriginData.cpp:
(WebKit::performAPICallbackWithSecurityOriginDataVector):
* Shared/UserMessageCoders.h:
(WebKit::UserMessageDecoder::baseDecode):
* Shared/WebArchive.cpp:
(WebKit::WebArchive::subresources):
(WebKit::WebArchive::subframeArchives):
* Shared/WebContextMenuItem.cpp:
(WebKit::WebContextMenuItem::submenuItemsAsImmutableArray):
* UIProcess/API/C/mac/WKContextPrivateMac.mm:
(WKContextGetInfoForInstalledPlugIns):
* UIProcess/StatisticsRequest.cpp:
(WebKit::StatisticsRequest::completedRequest):
* UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit):
(WebKit::WebBackForwardList::forwardListAsImmutableArrayWithLimit):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::pluginInfoStoreDidLoadPlugins):
* UIProcess/WebDatabaseManagerProxy.cpp:
(WebKit::WebDatabaseManagerProxy::didGetDatabasesByOrigin):
(WebKit::WebDatabaseManagerProxy::didGetDatabaseOrigins):
* UIProcess/WebKeyValueStorageManager.cpp:
(WebKit::didGetKeyValueStorageOrigins):
* UIProcess/WebLoaderClient.cpp:
(WebKit::WebLoaderClient::didChangeBackForwardList):
* UIProcess/WebPageContextMenuClient.cpp:
(WebKit::WebPageContextMenuClient::showContextMenu):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::relatedPages):
(WebKit::WebPageProxy::didFindStringMatches):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::originsWithApplicationCache):
* WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.cpp:
(WebKit::InjectedBundleBackForwardListItem::children):
* WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
(WebKit::InjectedBundlePageFormClient::didAssociateFormControls):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::childFrames):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::trackedRepaintRects):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159129 268f45cc-cd09-0410-ab3c-d52691b4dbfc
After http://trac.webkit.org/changeset/159109, update
rebaseline_unittest to use the new GTK bot names.

* Scripts/webkitpy/tool/commands/rebaseline_unittest.py:
(TestRebaselineTest.test_baseline_directory):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159130 268f45cc-cd09-0410-ab3c-d52691b4dbfc
URTBF after r159129, use create() instead of adopt() everywhere.

* UIProcess/WebGrammarDetail.cpp:
(WebKit::WebGrammarDetail::guesses):
* UIProcess/efl/WebUIPopupMenuClient.cpp:
(WebUIPopupMenuClient::showPopupMenu):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159131 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Created test for testing repaint rects for elements inside relative-positioned regions.

[CSS Regions] clip rectangles are incorrectly computed in some positioned elements
https://bugs.webkit.org/show_bug.cgi?id=114722

Reviewed by Mihnea Ovidenie.

* fast/repaint/increasing-region-content-height-expected.txt: Added.
* fast/repaint/increasing-region-content-height.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159132 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Stop using WKArrayCreate internally
https://bugs.webkit.org/show_bug.cgi?id=124217

Reviewed by Andreas Kling.

* UIProcess/API/mac/WKBrowsingContextGroup.mm:
(createWKArray):
(-[WKBrowsingContextGroup addUserStyleSheet:baseURL:whitelistedURLPatterns:blacklistedURLPatterns:mainFrameOnly:]):
(-[WKBrowsingContextGroup addUserScript:baseURL:whitelistedURLPatterns:blacklistedURLPatterns:injectionTime:mainFrameOnly:]):
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageCopyContextMenuItems):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159133 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed GTK build fix after r159129.

* UIProcess/API/gtk/WebKitFileChooserRequest.cpp:
(webkit_file_chooser_request_select_files): Use ImmutableArray::create() instead.
* UIProcess/API/gtk/WebKitWebViewGroup.cpp:
(toImmutableArray): Ditto.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159134 268f45cc-cd09-0410-ab3c-d52691b4dbfc
"AVF info: hasOfflineRenderer, board-id check : true" in media/track/track-forced-subtitles-in-band.html
https://bugs.webkit.org/show_bug.cgi?id=124219

Logging that happens unpredictably underneath us; marking the test as flaky on Mavericks for now.

* platform/mac/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159135 268f45cc-cd09-0410-ab3c-d52691b4dbfc
CodeBlocks should be able to determine bytecode liveness
https://bugs.webkit.org/show_bug.cgi?id=118546

Reviewed by Filip Pizlo.

This will simplify some things in the DFG related to OSR exits and determining 
which bytecode variables are live at which points during execution. It will
also be useful for making our conservative GC scan more precise. Currently it 
doesn't properly account for liveness while the DFG is running, so it will be 
off by default behing a runtime Options flag.

* JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/BytecodeBasicBlock.cpp: Added.
(JSC::isBranch): Used to determine the end of basic blocks.
(JSC::isUnconditionalBranch): Used to determine when a branch at the end of a 
basic block can't possibly fall through to the next basic block in program order.
(JSC::isTerminal): Also used to detect the end of a block.
(JSC::isThrow):
(JSC::isJumpTarget): Used to correctly separate basic blocks. Any jump destination 
must be the head of its own basic block.
(JSC::linkBlocks): Links two blocks together in a bi-direcitonal fashion.
(JSC::computeBytecodeBasicBlocks): Creates a set of basic blocks given a particular 
CodeBlock and links them together.
* bytecode/BytecodeBasicBlock.h: Added.
(JSC::BytecodeBasicBlock::isEntryBlock): Entry blocks are a special basic blocks 
that indicate the beginning of the function.
(JSC::BytecodeBasicBlock::isExitBlock): Exit blocks are a special basic block that 
all blocks that exit the function have as a successor. Entry and exit blocks allows 
the various code paths to be more regular.
(JSC::BytecodeBasicBlock::leaderBytecodeOffset): The leader bytecode offset is the 
bytecode offset of the first instruction in the block.
(JSC::BytecodeBasicBlock::totalBytecodeLength): The total length of all the bytecodes 
in this block.
(JSC::BytecodeBasicBlock::bytecodeOffsets): The bytecode offsets in this particular 
basic block. This Vector allows us to iterate over the bytecodes in reverse order 
which wouldn't be possible normally since they are of variable size.
(JSC::BytecodeBasicBlock::addPredecessor): Links a block to a specified predecessor. 
Only creates one direction of the link.
(JSC::BytecodeBasicBlock::addSuccessor): Same as addPredecessor, but for successors.
(JSC::BytecodeBasicBlock::predecessors): Getter for predecessors.
(JSC::BytecodeBasicBlock::successors): Getter for successors.
(JSC::BytecodeBasicBlock::in): Getter for the liveness info at the head of the block.
(JSC::BytecodeBasicBlock::out): Getter for the liveness info at  the tail of the block.
(JSC::BytecodeBasicBlock::BytecodeBasicBlock):
(JSC::BytecodeBasicBlock::addBytecodeLength): When creating basic blocks we call 
this function when we want to add the next bytecode in program order to this block.
* bytecode/BytecodeLivenessAnalysis.cpp: Added.
(JSC::BytecodeLivenessAnalysis::BytecodeLivenessAnalysis):
(JSC::numberOfCapturedVariables): Convenience wrapper. Returns the
number of captured variables for a particular CodeBlock, or 0 if 
the CodeBlock has no SymbolTable.
(JSC::captureStart): Ditto, but for captureStart().
(JSC::captureEnd): Ditto, but for captureEnd().
(JSC::isValidRegisterForLiveness): Returns true if the liveness analysis should 
track the liveness of a particular operand. We ignore constants, arguments, and 
captured variables. We ignore arguments because they're live for the duration of 
a function call. We ignore captured variables because we also treat them as live 
for the duration of the function. This could probably be improved to be more precise, 
but it didn't seem worth it for now.
(JSC::setForOperand): Convenience wrapper that sets the bit in the provided bit 
vector for the provided operand. It handles skipping over captured variables.
(JSC::computeUsesForBytecodeOffset): Computes which operands are used by a particular bytecode.
(JSC::computeDefsForBytecodeOffset): Computes which operands are defined by a particular 
bytecode. Typically this is just the left-most operand.
(JSC::findBasicBlockWithLeaderOffset): 
(JSC::findBasicBlockForBytecodeOffset): Scans over basic blocks to find the block 
which contains a particular bytecode offset.
(JSC::computeLocalLivenessForBytecodeOffset): Computes block-local liveness from the 
bottom of the block until a specified bytecode offset is reached. 
(JSC::computeLocalLivenessForBlock): Computes liveness for the entire block and 
stores the resulting liveness at the head.
(JSC::BytecodeLivenessAnalysis::runLivenessFixpoint): Runs backward flow liveness 
analysis to fixpoint.
(JSC::BytecodeLivenessAnalysis::getLivenessInfoForNonCapturedVarsAtBytecodeOffset): 
Slow path to get liveness info for non-captured, non-argument variable.
(JSC::BytecodeLivenessAnalysis::operandIsLiveAtBytecodeOffset): 
(JSC::BytecodeLivenessAnalysis::getLivenessInfoAtBytecodeOffset): Returns the liveness 
info for both captured and non-captured vars at a particular bytecode offset.
(JSC::BytecodeLivenessAnalysis::dumpResults): Dumps the output of the liveness analysis. 
Controlled by new flag in Options.h/.cpp.
(JSC::BytecodeLivenessAnalysis::compute): Creates bytecode basic blocks and runs 
full liveness analysis.
* bytecode/BytecodeLivenessAnalysis.h: Added.
(JSC::BytecodeLivenessAnalysis::hasBeenComputed):
(JSC::BytecodeLivenessAnalysis::computeIfNecessary):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::livenessAnalysis):
* bytecode/PreciseJumpTargets.cpp: Refactored to be able to get the jump targets for 
a particular bytecode offset for use during bytecode basic block construction.
(JSC::getJumpTargetsForBytecodeOffset):
(JSC::computePreciseJumpTargets):
(JSC::findJumpTargetsForBytecodeOffset):
* bytecode/PreciseJumpTargets.h:
* runtime/Options.cpp:
(JSC::Options::initialize):
* runtime/Options.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159136 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Windows] Unreviewed gardening of some media tests.

* platform/win/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159137 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Run JavaScriptCore Objective-C API tests on all supported platforms
https://bugs.webkit.org/show_bug.cgi?id=124214

Reviewed by Mark Hahnenberg.

Now that we support the API on iOS and on OS X 10.8, there's no reason
to limit the tests to OS X 10.9 (or greater).

* API/tests/CurrentThisInsideBlockGetterTest.h:
* API/tests/CurrentThisInsideBlockGetterTest.mm:
* API/tests/testapi.mm:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159138 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Support unprefixed deconstructing assignment
https://bugs.webkit.org/show_bug.cgi?id=124172

Reviewed by Mark Lam.

Source/JavaScriptCore:

Add support for unprefixed descontructive assignment.

Happily non-reference types on the left hand side of an assignment
are a runtime error, so we're able to defer validation of the binding
pattern to codegen time when we're already doing a lot more work.

We're also able to predicate our attempt to parse on the existence of
'[' or '{' as they are not as common as other constructs.

* bytecompiler/NodesCodegen.cpp:
(JSC::ArrayPatternNode::emitDirectBinding):
* parser/ASTBuilder.h:
* parser/Parser.cpp:
(JSC::::createBindingPattern):
(JSC::::tryParseDeconstructionPatternExpression):
(JSC::::parseDeconstructionPattern):
(JSC::::parseForStatement):
(JSC::::parseAssignmentExpression):
* parser/Parser.h:
(JSC::Parser::createSavePoint):
(JSC::Parser::restoreSavePoint):
* parser/SyntaxChecker.h:

LayoutTests:

Add and expand testing of destructuring assignment

* js/basic-for-of-expected.txt:
* js/destructuring-assignment-expected.txt:
* js/parser-syntax-check-expected.txt:
* js/script-tests/basic-for-of.js:
* js/script-tests/destructuring-assignment.js:
(testDestructuring):
* js/script-tests/parser-syntax-check.js:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159139 268f45cc-cd09-0410-ab3c-d52691b4dbfc
fast/canvas/webgl/draw-arrays-out-of-bounds.html is flaky on Mavericks WK2 testers, fails about 20% of the time
https://bugs.webkit.org/show_bug.cgi?id=124223

Mark as flaky on Mac-Mavericks-WebKit2.

* platform/mac-wk2/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159140 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Liveness analysis should take less memory in CodeBlock when it is unused
https://bugs.webkit.org/show_bug.cgi?id=124225

Reviewed by Mark Hahnenberg.
        
Basically, I turned CodeBlock::m_livenessAnalysis into a pointer that is null by
default.

* bytecode/BytecodeLivenessAnalysis.cpp:
(JSC::BytecodeLivenessAnalysis::BytecodeLivenessAnalysis):
(JSC::BytecodeLivenessAnalysis::runLivenessFixpoint):
(JSC::BytecodeLivenessAnalysis::operandIsLiveAtBytecodeOffset):
(JSC::BytecodeLivenessAnalysis::dumpResults):
(JSC::BytecodeLivenessAnalysis::compute):
* bytecode/BytecodeLivenessAnalysis.h:
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::livenessAnalysis):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159141 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Use Vector + ImmutableArray instead of MutableArray
https://bugs.webkit.org/show_bug.cgi?id=124221

Reviewed by Andreas Kling.

* Shared/WebRenderLayer.cpp:
(WebKit::WebRenderLayer::createArrayFromLayerList):
* Shared/WebRenderLayer.h:
* UIProcess/Notifications/WebNotificationProvider.cpp:
(WebKit::WebNotificationProvider::clearNotifications):
* UIProcess/WebPageContextMenuClient.cpp:
(WebKit::WebPageContextMenuClient::getContextMenuFromProposedMenu):
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(contextMenuItems):
(WKBundlePageCopyContextMenuItems):
(WKBundlePageCopyContextMenuAtPointInWindow):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159142 268f45cc-cd09-0410-ab3c-d52691b4dbfc