IDB: openCursor() needs to prime the cursor with first position values
https://bugs.webkit.org/show_bug.cgi?id=128008

Reviewed by Alexey Proskuryakov.

Source/WebCore:

* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::OpenCursorOperation::perform): If the server connection returns initial keys/values
  for the cursor, store them.

* Modules/indexeddb/IDBServerConnection.h:

* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::openCursor):
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:

Source/WebKit2:

Change openCursor() messaging to pass back the initial keys/values
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
(WebKit::WebIDBServerConnection::didOpenCursor):
(WebKit::WebIDBServerConnection::openCursor):
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in:

* DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
(WebKit::DatabaseProcessIDBConnection::openCursor):

* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::openCursor):
(WebKit::UniqueIDBDatabase::cursorAdvance): Const and reference updates.
(WebKit::UniqueIDBDatabase::cursorIterate): Ditto.
(WebKit::UniqueIDBDatabase::openCursorInBackingStore):
(WebKit::UniqueIDBDatabase::didOpenCursorInBackingStore):
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:

* DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h:
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::openCursor):
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h:

* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:
(WebKit::SQLiteIDBCursor::maybeCreate): After creating the cursor, advance(1) it.

* Shared/AsyncTask.h:
(WebKit::createAsyncTask):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163187 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r163182.
http://trac.webkit.org/changeset/163182
https://bugs.webkit.org/show_bug.cgi?id=128012

Broke lots of tests (Requested by smfr on #webkit).

* page/FrameView.cpp:
(WebCore::FrameView::visibleContentsResized):
* page/FrameView.h:
* rendering/RenderView.cpp:
(WebCore::isFixedPositionInViewport):
(WebCore::RenderView::hasCustomFixedPosition):
* rendering/RenderView.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163188 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove FrameLoader's reloadWithOverrideURL and reloadWithRequest
https://bugs.webkit.org/show_bug.cgi?id=128005

Reviewed by Darin Adler.

The former was used by chromium-android to implement the "request
desktop version" feature, but is no longer used. After removing it,
the latter is only invoked by reload(), so we can merge the method
with it.

No new tests, just removing dead code.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::reload):
* loader/FrameLoader.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163189 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Extended background should only create margin tiles for pages with background 
images
https://bugs.webkit.org/show_bug.cgi?id=127876
-and corresponding-
<rdar://problem/15827632>

Reviewed by Simon Fraser.

Source/WebCore: 

Settings::backgroundShouldExtendBeyondPage() doesn't need to create margin tiles
for pages with simple background colors. Instead, those pages should achieve the 
same effect by setting a background color on RenderLayerCompositor's
m_layerForOverhangAreas. For now, we should only create tiles when there is a 
background image. We may want to extend this to other types of complicated 
backgrounds in the future.

This patch makes callers that only care about the value of the setting always call 
Settings::backgroundShouldExtendBeyondPage() rather than asking about margin 
tiles. And callers that want to know about margin tiles can either keep querying 
that directly or they can call FrameView::hasExtendedBackgroundRectForPainting(). 
An extended background does not necessarily require an extended background rect 
for painting, and this new FrameView function can make that distinction. 

When setBackgroundExtendsBeyondPage() is called, call RenderLayerCompositor:: 
setRootExtendedBackgroundColor() with either the document background color, or an 
invalid color, depending on whether you have or do not have an extended 
background. Also call needsExtendedBackgroundRectForPainting() to determine if we 
also need to extend the background rect, and then call 
setHasExtendedBackgroundRectForPainting() with its value.
* page/FrameView.cpp:
(WebCore::FrameView::setBackgroundExtendsBeyondPage):
(WebCore::FrameView::hasExtendedBackgroundRectForPainting):

 Right now we only need to extend the background rect for documents with 
background images on the root. This may be extended in the future.
(WebCore::FrameView::needsExtendedBackgroundRectForPainting):
(WebCore::FrameView::setHasExtendedBackgroundRectForPainting):
(WebCore::FrameView::extendedBackgroundRectForPainting):
* page/FrameView.h:

Expose defaultTileWidth and defaultTileHeight from TiledBacking.h so that we can 
access the values from RenderLayerBacking.
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/mac/TileController.mm:

hasExtendedBackgroundForPainting() is now called 
hasExtendedBackgroundRectForPainting() to distinguish 
the case where an extended RECT is needed.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::repaintLayerRectsForImage):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):

Call setHasExtendedBackgroundRectForPainting() if relevant.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::styleWillChange):

Don't call setTiledBackingHasMargins() right in the constructor because we only
want margins if we have a background image, and we won't have that information
yet.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking):

Clean up the variable name here. We are only setting margins when we need to 
extend the background rect for painting. Also make us of newly-exposed 
defaultTileWidth and Height.
(WebCore::RenderLayerBacking::setTiledBackingHasMargins):

Remove RenderLayerBacking::tiledBackingHasMargin() since there aren't any more
callers.
* rendering/RenderLayerBacking.h:
(WebCore::RenderLayerBacking::usingTiledBacking):

setMasksToBounds(false) based on the Setting, and not based on whether there are 
tile margins.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateBacking):

Return false from RenderLayerCompositor::requiresContentShadowLayer() if there is 
an extended background.
(WebCore::RenderLayerCompositor::requiresContentShadowLayer):

Setting the background color on m_layerForOverhangAreas is all we need to do to 
create the extended background effect on pages that only have background colors. 
(WebCore::RenderLayerCompositor::setRootExtendedBackgroundColor):
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):

Remove mainFrameBackingIsTiledWithMargin() since there aren't any more callers,
and add setRootExtendedBackgroundColor() so that we can update the color from 
RenderView.
* rendering/RenderLayerCompositor.h:

Revert the code that was added to paint background color here, since this should 
all be covered by calling RenderLayerCompositor::setExtendedBackgroundColor(). 
More complicated backgrounds will run through the full background painting code.
* rendering/RenderView.cpp:
(WebCore::RenderView::paintBoxDecorations):
(WebCore::RenderView::backgroundRect):

LayoutTests: 

We can only test margin tiles if we also give the document a background image.
* platform/mac-wk2/tiled-drawing/resources/greenbox.png: Added.
* platform/mac-wk2/tiled-drawing/simple-document-with-margin-tiles.html:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163190 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Properly handle cases where a profile couldn't be recorded and null is returned.

<rdar://problem/15957993> Crash with Inspector open at WebCore::ScriptProfile::buildInspectorObject

Reviewed by Joseph Pecoraro.

* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::didCallFunction): Null check profile.
(WebCore::InspectorTimelineAgent::didEvaluateScript): Ditto.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163191 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebKit2 View Gestures (Swipe): Crashes swiping around a Google Docs spreadsheet
https://bugs.webkit.org/show_bug.cgi?id=128013
<rdar://problem/15959481>

Reviewed by Anders Carlsson.

* UIProcess/mac/ViewGestureController.mm:
(WebKit::ViewGestureController::wheelEventWasNotHandledByWebCore):
We should never (currently) start a swipe from a non-begin-phase wheel event.
We already check this in handleScrollWheelEvent, but can still get
non-begin-phase events in wheelEventWasNotHandled.

We only start "pending" swipes with Begin events, so we should never make them
non-pending with anything but a Begin event (we'll get it when it bubbles back up,
unhandled, from WebCore). In addition, AppKit throws an exception when we try
to start a swipe from end-phase events.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163192 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Allow more flexibility for copy-webkitlibraries-to-product-directory
https://bugs.webkit.org/show_bug.cgi?id=128010

Reviewed by Oliver Hunt.
        
It's now the case that copy-webkitlibraries-to-product-directory does nothing by
default, but you can tell it to either copy WebKitSystemInterface (--wksi) or LLVM
(--llvm). You can also tell it where to get LLVM from.

* Scripts/build-jsc:
* Scripts/build-webkit:
* Scripts/copy-webkitlibraries-to-product-directory:



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

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::setRootExtendedBackgroundColor):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163194 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make it possible to implement JS builtins in JS
https://bugs.webkit.org/show_bug.cgi?id=127887

Reviewed by Michael Saboff.

.:

CMake updates

* Source/cmake/gtest/CMakeLists.txt:

Source/JavaScriptCore:

This patch makes it possible to write builtin functions in JS.
The bindings, generators, and definitions are all created automatically
based on js files in the builtins/ directory.  This patch includes one
such case: Array.prototype.js with an implementation of every().

There's a lot of refactoring to make it possible for CommonIdentifiers
to include the output of the generated files (DerivedSources/JSCBuiltins.{h,cpp})
without breaking the offset extractor. The result of this refactoring
is that CommonIdentifiers, and a few other miscellaneous headers now
need to be included directly as they were formerly captured through other
paths.

In addition this adds a flag to the Lookup table's hashentry to indicate
that a static function is actually backed by JS. There is then a lot of
logic to thread the special nature of the functon to where it matters.
This allows toString(), .caller, etc to mimic the behaviour of a host
function.

Notes on writing builtins:
 - Each function is compiled independently of the others, and those
   implementations cannot currently capture all global properties (as
   that could be potentially unsafe). If a function does capture a
   global we will deliberately crash.
 - For those "global" properties that we do want access to, we use
   the @ prefix, e.g. Object(this) becomes @Object(this). The @ identifiers
   are private names, and behave just like regular properties, only
   without the risk of adulteration. Again, in the @Object case, we
   explicitly duplicate the ObjectConstructor reference on the GlobalObject
   so that we have guaranteed access to the original version of the
   constructor.
 - call, apply, eval, and Function are all rejected identifiers, again
   to prevent anything from accidentally using an adulterated object.
   Instead @call and @apply are available, and happily they completely
   drop the neq_ptr instruction as they're defined as always being the
   original call/apply functions.

These restrictions are just intended to make it harder to accidentally
make changes that are incorrect (for instance calling whatever has been
assigned to global.Object, instead of the original constructor function).
However, making a mistake like this should result in a purely semantic
error as fundamentally these functions are treated as though they were
regular JS code in the host global, and have no more privileges than
any other JS.

The initial proof of concept is Array.prototype.every, this shows a 65%
performance improvement, and that improvement is significantly hurt by
our poor optimisation of op_in.

As this is such a limited function, we have not yet exported all symbols
that we could possibly need, but as we implement more, the likelihood
of encountering missing features will reduce.

This did require breaking out a JSStringInlines header, and required
fixing a few objects that were trying to using PropertyName::publicName
rather than PropertyName::uid.

* API/JSCallbackObjectFunctions.h:
(JSC::JSCallbackObject<Parent>::getOwnPropertySlot):
(JSC::JSCallbackObject<Parent>::put):
(JSC::JSCallbackObject<Parent>::deleteProperty):
(JSC::JSCallbackObject<Parent>::getStaticValue):
(JSC::JSCallbackObject<Parent>::staticFunctionGetter):
(JSC::JSCallbackObject<Parent>::callbackGetter):
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* JavaScriptCore.xcodeproj/project.pbxproj:
* builtins/Array.prototype.js:
(every):
* builtins/BuiltinExecutables.cpp: Added.
(JSC::BuiltinExecutables::BuiltinExecutables):
(JSC::BuiltinExecutables::createBuiltinExecutable):
* builtins/BuiltinExecutables.h:
(JSC::BuiltinExecutables::create):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
* bytecode/CodeBlock.h:
* bytecode/ProfiledCodeBlockJettisoningWatchpoint.cpp:
* bytecode/UnlinkedCodeBlock.cpp:
(JSC::generateFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
(JSC::UnlinkedFunctionExecutable::codeBlockFor):
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
* bytecode/UnlinkedCodeBlock.h:
(JSC::ExecutableInfo::ExecutableInfo):
(JSC::UnlinkedFunctionExecutable::create):
(JSC::UnlinkedFunctionExecutable::toStrictness):
(JSC::UnlinkedFunctionExecutable::isBuiltinFunction):
(JSC::UnlinkedCodeBlock::isBuiltinFunction):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
* bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::isBuiltinFunction):
(JSC::BytecodeGenerator::makeFunction):
* bytecompiler/NodesCodegen.cpp:
(JSC::CallFunctionCallDotNode::emitBytecode):
(JSC::ApplyFunctionCallDotNode::emitBytecode):
* create_hash_table:
* dfg/DFGOperations.cpp:
* generate-js-builtins: Added.
(getCopyright):
(getFunctions):
(generateCode):
(mangleName):
(FunctionExecutable):
(Identifier):
(JSGlobalObject):
(SourceCode):
(UnlinkedFunctionExecutable):
(VM):
* interpreter/Interpreter.cpp:
* interpreter/ProtoCallFrame.cpp:
* jit/JITOpcodes.cpp:
* jit/JITOpcodes32_64.cpp:
* jit/JITOperations.cpp:
* jit/JITPropertyAccess.cpp:
* jit/JITPropertyAccess32_64.cpp:
* jsc.cpp:
* llint/LLIntSlowPaths.cpp:
* parser/ASTBuilder.h:
(JSC::ASTBuilder::makeFunctionCallNode):
* parser/Lexer.cpp:
(JSC::Lexer<T>::Lexer):
(JSC::isSafeIdentifier):
(JSC::Lexer<LChar>::parseIdentifier):
(JSC::Lexer<UChar>::parseIdentifier):
(JSC::Lexer<T>::lex):
* parser/Lexer.h:
(JSC::isSafeIdentifier):
(JSC::Lexer<T>::lexExpectIdentifier):
* parser/Nodes.cpp:
(JSC::ProgramNode::setClosedVariables):
* parser/Nodes.h:
(JSC::ScopeNode::capturedVariables):
(JSC::ScopeNode::setClosedVariables):
(JSC::ProgramNode::closedVariables):
* parser/Parser.cpp:
(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::didFinishParsing):
(JSC::Parser<LexerType>::printUnexpectedTokenText):
* parser/Parser.h:
(JSC::Scope::getUsedVariables):
(JSC::Parser::closedVariables):
(JSC::parse):
* parser/ParserModes.h:
* parser/ParserTokens.h:
* runtime/ArgList.cpp:
* runtime/Arguments.cpp:
* runtime/Arguments.h:
* runtime/ArgumentsIteratorConstructor.cpp:
* runtime/ArgumentsIteratorPrototype.cpp:
* runtime/ArrayPrototype.cpp:
* runtime/CodeCache.cpp:
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):
* runtime/CommonIdentifiers.cpp:
(JSC::CommonIdentifiers::CommonIdentifiers):
(JSC::CommonIdentifiers::getPrivateName):
(JSC::CommonIdentifiers::getPublicName):
* runtime/CommonIdentifiers.h:
* runtime/CommonSlowPaths.cpp:
* runtime/CommonSlowPathsExceptions.cpp:
* runtime/ExceptionHelpers.cpp:
(JSC::createUndefinedVariableError):
* runtime/Executable.h:
(JSC::EvalExecutable::executableInfo):
(JSC::ProgramExecutable::executableInfo):
(JSC::FunctionExecutable::isBuiltinFunction):
* runtime/FunctionPrototype.cpp:
(JSC::functionProtoFuncToString):
* runtime/JSActivation.cpp:
(JSC::JSActivation::symbolTableGet):
(JSC::JSActivation::symbolTablePut):
(JSC::JSActivation::symbolTablePutWithAttributes):
* runtime/JSArgumentsIterator.cpp:
* runtime/JSArray.cpp:
* runtime/JSArrayIterator.cpp:
* runtime/JSCJSValue.cpp:
* runtime/JSCellInlines.h:
* runtime/JSFunction.cpp:
(JSC::JSFunction::createBuiltinFunction):
(JSC::JSFunction::calculatedDisplayName):
(JSC::JSFunction::sourceCode):
(JSC::JSFunction::isHostOrBuiltinFunction):
(JSC::JSFunction::isBuiltinFunction):
(JSC::JSFunction::callerGetter):
(JSC::JSFunction::getOwnPropertySlot):
(JSC::JSFunction::getOwnNonIndexPropertyNames):
(JSC::JSFunction::put):
(JSC::JSFunction::defineOwnProperty):
* runtime/JSFunction.h:
* runtime/JSGenericTypedArrayViewConstructorInlines.h:
* runtime/JSGenericTypedArrayViewInlines.h:
* runtime/JSGenericTypedArrayViewPrototypeInlines.h:
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::reset):
(JSC::JSGlobalObject::visitChildren):
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::objectConstructor):
(JSC::JSGlobalObject::symbolTableHasProperty):
* runtime/JSObject.cpp:
(JSC::getClassPropertyNames):
(JSC::JSObject::reifyStaticFunctionsForDelete):
(JSC::JSObject::putDirectBuiltinFunction):
* runtime/JSObject.h:
* runtime/JSPropertyNameIterator.cpp:
* runtime/JSPropertyNameIterator.h:
* runtime/JSString.h:
* runtime/JSStringInlines.h: Added.
(JSC::JSString::getStringPropertySlot):
(JSC::inlineJSValueNotStringtoString):
(JSC::JSValue::toWTFStringInline):
* runtime/JSSymbolTableObject.cpp:
(JSC::JSSymbolTableObject::getOwnNonIndexPropertyNames):
   Don't report private names.
* runtime/JSSymbolTableObject.h:
(JSC::symbolTableGet):
(JSC::symbolTablePut):
(JSC::symbolTablePutWithAttributes):
* runtime/Lookup.cpp:
(JSC::setUpStaticFunctionSlot):
* runtime/Lookup.h:
(JSC::HashEntry::builtinGenerator):
(JSC::HashEntry::propertyGetter):
(JSC::HashEntry::propertyPutter):
(JSC::HashTable::entry):
(JSC::getStaticPropertySlot):
(JSC::getStaticValueSlot):
(JSC::putEntry):
* runtime/NativeErrorConstructor.cpp:
(JSC::NativeErrorConstructor::finishCreation):
* runtime/NativeErrorConstructor.h:
* runtime/PropertySlot.h:
* runtime/RegExpPrototype.cpp:
* runtime/SetConstructor.cpp:
* runtime/StringObject.cpp:
* runtime/Structure.cpp:
* runtime/VM.cpp:
(JSC::VM::VM):
* runtime/VM.h:
(JSC::VM::builtinExecutables):

Source/WebCore:

Updating for the newly required headers.

Test: js/regress/array-prototype-every.html

* ForwardingHeaders/runtime/JSStringInlines.h: Added.
* Modules/plugins/QuickTimePluginReplacement.cpp:
* bindings/js/JSIDBAnyCustom.cpp:
* bindings/js/JSIDBDatabaseCustom.cpp:
* bindings/js/JSIDBObjectStoreCustom.cpp:

Source/WebKit:

CMake updates

* CMakeLists.txt:

Source/WebKit2:

CMake updates

* CMakeLists.txt:

Tools:

CMake updates

* DumpRenderTree/CMakeLists.txt:
* WebKitTestRunner/CMakeLists.txt:
* WinCELauncher/CMakeLists.txt:

LayoutTests:

Updated the test results for new error messages (now that they're
actually helpful), and added a js-regress test to track performance.

* js/array-every-expected.txt:
* js/dom/array-prototype-properties-expected.txt:
* js/regress/array-prototype-every-expected.txt: Added.
* js/regress/array-prototype-every.html: Added.
* js/regress/script-tests/array-prototype-every.js: Added.
(test1):
(test2):
(test3):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163195 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebKit Bot Watcher's Dashboard: Teach JSON.load() to take optional failure callback function
https://bugs.webkit.org/show_bug.cgi?id=127924

Reviewed by Alexey Proskuryakov.

Towards providing better error handling when a JSON load fails with a non-200 HTTP status
code, we should teach JSON.load() to take an optional failure callback function and invoke
it when either a load error or a JSON parsing error occurs.

As a side benefit of having a failure callback function a caller can separate the error handling
logic for a JSON load or parse error from the logic of handling a successful parsing of JSON content.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
(BuildbotIteration.prototype.loadLayoutTestResults): Move JSON parser error logic into failure
callback function.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Utilities.js:
(JSON.load): Modified to take optional failure callback function called failureCallback.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163196 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add options to force debugger / profiler bytecode generation.
<https://webkit.org/b/128014>

Reviewed by Oliver Hunt.

Add Options::forceDebuggerBytecodeGeneration() and
Options::forceProfilerBytecodeGeneration(). These options make it more
convenient to do correctness testing when debugger / profiler bytecodes
are generated.

These options are disabled by default.

* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
* runtime/Options.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163197 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Having a custom LLVM checkout should always override all other ways of getting LLVM
https://bugs.webkit.org/show_bug.cgi?id=128015

Reviewed by Oliver Hunt.

* Scripts/copy-webkitlibraries-to-product-directory:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163198 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix 32bit.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163199 268f45cc-cd09-0410-ab3c-d52691b4dbfc
IDB: Index cursor preliminary support
https://bugs.webkit.org/show_bug.cgi?id=127869

Reviewed by Sam Weinig.

This gets index cursors running and - for some situations - returning results.

Bug 127870 will make them fully functional.

* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:
(WebKit::getIndexStatement): Using the key and sorting parameters, find the appropriate SQL
  statement to run an index cursor.
(WebKit::getObjectStoreStatement): Same, but for object store cursors.
(WebKit::SQLiteIDBCursor::establishStatement): Depending on the type of cursor, choose the
  correct SQL query and id to use.
(WebKit::SQLiteIDBCursor::createSQLiteStatement): With the passed in SQL and id, handle both
  index and object store cursors.
* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163200 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add webView:didReceiveServerRedirectForProvisionalNavigation:
https://bugs.webkit.org/show_bug.cgi?id=128016

Reviewed by Dan Bernstein.

* UIProcess/API/APILoaderClient.h:
(API::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageLoaderClient):
* UIProcess/API/Cocoa/WKNavigationDelegate.h:
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163201 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, fix the script for older Rubies.

* Scripts/export-llvm-build:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163202 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, really add the --copy-libraries option.

* Scripts/build-jsc:



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

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163204 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Create clipping path from <box> value
https://bugs.webkit.org/show_bug.cgi?id=126205

Reviewed by Dirk Schulze.

Source/WebCore:

This implements <box> values for border, content, and padding boxes.
Since margin box is not implemented as a reference box, this does not
implement margin box value.

Tests: css3/masking/clip-path-border-box.html
       css3/masking/clip-path-content-box.html
       css3/masking/clip-path-padding-box.html

* rendering/ClipPathOperation.h:
(WebCore::BoxClipPathOperation::pathForReferenceRect): Implement.
* rendering/RenderLayer.cpp:
(WebCore::computeReferenceBox): Pull out reference box calculation.
(WebCore::RenderLayer::setupClipPath): Add support for <box> values.
* rendering/shapes/ShapeInfo.cpp:
(WebCore::ShapeInfo<RenderType>::computedShape): Add FIXME comment.

LayoutTests:

Tests for border, padding and content box values. Margin is
unimplemented as of yet.

* css3/masking/clip-path-border-box-expected.html: Added.
* css3/masking/clip-path-border-box.html: Added.
* css3/masking/clip-path-content-box-expected.html: Added.
* css3/masking/clip-path-content-box.html: Added.
* css3/masking/clip-path-padding-box-expected.html: Added.
* css3/masking/clip-path-padding-box.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163205 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, really make --copy-libraries a no-able option.
        
* Scripts/build-jsc:



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