SVG Animations are flaky
https://bugs.webkit.org/show_bug.cgi?id=107018

* platform/mac-wk2/TestExpectations: Marked some frequently failing tests



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156367 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix Mac build now.
        
* UIProcess/WebContext.messages.in:



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

* UIProcess/WebNetworkInfoManagerProxy.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156369 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Flaky Test: compositing/reflections/load-video-in-reflection.html
https://bugs.webkit.org/show_bug.cgi?id=117427

* platform/mac/TestExpectations: Marking the test accordingly.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156370 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Crashing under JSC::DFG::SpeculativeJIT::spill visiting citicards.com
https://bugs.webkit.org/show_bug.cgi?id=121844

Source/JavaScriptCore: 

Reviewed by Mark Hahnenberg.
        
Fix some int52 bugs that caused this.

* bytecode/ValueRecovery.h:
(JSC::ValueRecovery::dumpInContext): There's no such thing as int53.
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::spill): Actually spill int52's, instead of hitting an assert and crashing.
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal): Use the right format (from before when we clobber it).

Tools: 

Reviewed by Mark Hahnenberg.

* Scripts/run-javascriptcore-tests: Be more clear about what test suite failed.

LayoutTests: 

Reviewed by Mark Hahnenberg.

* js/dfg-int52-spill-expected.txt: Added.
* js/dfg-int52-spill-trickier-expected.txt: Added.
* js/dfg-int52-spill-trickier.html: Added.
* js/dfg-int52-spill.html: Added.
* js/script-tests/dfg-int52-spill-trickier.js: Added.
(foo):
* js/script-tests/dfg-int52-spill.js: Added.
(foo):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156371 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move keyboard event dispatch from Node to Element.
<https://webkit.org/b/121873>

Reviewed by Antti Koivisto.

We only dispatch keyboard events on Elements so that logic shouldn't be in Node.

* dom/Document.cpp:
(WebCore::eventTargetElementForDocument):

    Reworked to return Element instead of Node.

* dom/Document.h:
* dom/Element.h:
* dom/Element.cpp:
(WebCore::Element::dispatchKeyEvent):

    Moved from Node to Element.

* editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::insertDictatedText):
* page/EventHandler.cpp:
(WebCore::EventHandler::keyEvent):
(WebCore::EventHandler::handleTextInputEvent):

    Adjusted for above changes.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156372 268f45cc-cd09-0410-ab3c-d52691b4dbfc
webgl/conformance/extensions/oes-element-index-uint.html failing after r156351 or 156352
https://bugs.webkit.org/show_bug.cgi?id=121863
<rdar://problem/15069481>

Reviewed by Beth Dakin.

This test was not querying the vertex attribute locations
before binding data to them. When we enabled symbol mangling
we started seeing attributes appear in a different order
than the order defined in the shader source. Update this test
to ask getAttribLocation first.

Note that there are two important issues.

Firstly, this is updating our local copy of the Khronos test.
I've opened pull request #377 to get it addressed in the source.
https://github.com/KhronosGroup/WebGL/pull/377

Secondly, this indicates that we might have a lot of problems
with existing content that does not expect the order of
attributes to change.

* webgl/resources/webgl_test_files/conformance/extensions/oes-element-index-uint.html:
* TestExpectations: Unskip test.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156373 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Change JSC debug hooks to pass a CallFrame* instead of a DebuggerCallFrame.
https://bugs.webkit.org/show_bug.cgi?id=121867.

Reviewed by Geoffrey Garen.

Source/JavaScriptCore: 

1. Removed the need for passing the line and column info to the debug hook
   callbacks. We now get the line and column info from the CallFrame.

2. Simplify BytecodeGenerator::emitDebugHook() to only take 1 line number
   argument. The caller can determine whether to pass in the first or last
   line number of the block of source code as appropriate.
   Note: we still need to pass in the line and column info to emitDebugHook()
   because it uses this info to emit expression info which is later used by
   the StackVisitor to determine the line and column info for its "pc".

3. Pass the exceptionValue explicitly to the exception() debug hook
   callback. It should not be embedded in the CallFrame / DebuggerCallFrame.

4. Change the op_debug opcode size to 2 (from 5) since we've removing 3 arg
   values. Update the LLINT and JIT code to handle this.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::CodeBlock):
* bytecode/Opcode.h:
(JSC::padOpcodeName):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitDebugHook):
* bytecompiler/BytecodeGenerator.h:
* bytecompiler/NodesCodegen.cpp:
(JSC::ConstStatementNode::emitBytecode):
(JSC::EmptyStatementNode::emitBytecode):
(JSC::DebuggerStatementNode::emitBytecode):
(JSC::ExprStatementNode::emitBytecode):
(JSC::VarStatementNode::emitBytecode):
(JSC::IfElseNode::emitBytecode):
(JSC::DoWhileNode::emitBytecode):
(JSC::WhileNode::emitBytecode):
(JSC::ForNode::emitBytecode):
(JSC::ForInNode::emitBytecode):
(JSC::ContinueNode::emitBytecode):
(JSC::BreakNode::emitBytecode):
(JSC::ReturnNode::emitBytecode):
(JSC::WithNode::emitBytecode):
(JSC::SwitchNode::emitBytecode):
(JSC::LabelNode::emitBytecode):
(JSC::ThrowNode::emitBytecode):
(JSC::TryNode::emitBytecode):
(JSC::ProgramNode::emitBytecode):
(JSC::EvalNode::emitBytecode):
(JSC::FunctionBodyNode::emitBytecode):
* debugger/Debugger.h:
* debugger/DebuggerCallFrame.cpp:
(JSC::LineAndColumnFunctor::operator()):
(JSC::LineAndColumnFunctor::line):
(JSC::LineAndColumnFunctor::column):
(JSC::DebuggerCallFrame::DebuggerCallFrame):
(JSC::DebuggerCallFrame::clear):
* debugger/DebuggerCallFrame.h:
(JSC::DebuggerCallFrame::line):
(JSC::DebuggerCallFrame::column):
* interpreter/Interpreter.cpp:
(JSC::unwindCallFrame):
(JSC::UnwindFunctor::UnwindFunctor):
(JSC::UnwindFunctor::operator()):
(JSC::Interpreter::unwind):
(JSC::Interpreter::debug):
* interpreter/Interpreter.h:
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_debug):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_debug):
* jit/JITStubs.cpp:
(JSC::DEFINE_STUB_FUNCTION):
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* llint/LowLevelInterpreter.asm:

Source/WebCore: 

No new tests.

* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::createCallFrame):
(WebCore::ScriptDebugServer::updateCallFrameAndPauseIfNeeded):
(WebCore::ScriptDebugServer::callEvent):
(WebCore::ScriptDebugServer::atStatement):
(WebCore::ScriptDebugServer::returnEvent):
(WebCore::ScriptDebugServer::exception):
(WebCore::ScriptDebugServer::willExecuteProgram):
(WebCore::ScriptDebugServer::didExecuteProgram):
(WebCore::ScriptDebugServer::didReachBreakpoint):
* bindings/js/ScriptDebugServer.h:
* bindings/js/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::willExecuteProgram):
* bindings/js/WorkerScriptDebugServer.h:

Source/WebKit/mac: 

* WebView/WebScriptDebugDelegate.mm:
(-[WebScriptCallFrame _initWithGlobalObject:debuggerCallFrame:exceptionValue:JSC::]):
(-[WebScriptCallFrame exception]):
* WebView/WebScriptDebugger.h:
* WebView/WebScriptDebugger.mm:
(WebScriptDebugger::exception):



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

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156375 268f45cc-cd09-0410-ab3c-d52691b4dbfc
op_get_callee shouldn't use value profiling
https://bugs.webkit.org/show_bug.cgi?id=121821

Reviewed by Filip Pizlo.

Source/JavaScriptCore: 

Currently it's one of the two opcodes that uses m_singletonValue, which is unnecessary. 
Our current plan is to remove m_singletonValue so that GenGC can have a simpler story 
for handling CodeBlocks/FunctionExecutables during nursery collections.

Instead of using a ValueProfile op_get_callee now has a simple inline cache of the most 
recent JSFunction that we saw.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::finalizeUnconditionally):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitCreateThis):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* jit/JIT.cpp:
(JSC::JIT::privateCompileSlowCases):
* jit/JIT.h:
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_get_callee):
(JSC::JIT::emitSlow_op_get_callee):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_get_callee):
(JSC::JIT::emitSlow_op_get_callee):
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
* runtime/CommonSlowPaths.h:

LayoutTests: 

Added two tests to make sure we didn't regress the performance of op_get_callee.

* js/regress/get_callee_monomorphic-expected.txt: Added.
* js/regress/get_callee_monomorphic.html: Added.
* js/regress/get_callee_polymorphic-expected.txt: Added.
* js/regress/get_callee_polymorphic.html: Added.
* js/regress/script-tests/get_callee_monomorphic.js: Added.
* js/regress/script-tests/get_callee_polymorphic.js: Added.


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