Fix regression introduced in r113927.

Unreviewed, build fix.

I failed to rename skipped_tests() to skipped_layout_tests()
everywhere it needed to be renamed. The unit tests didn't catch
this because the TestPort was one of the places that didn't get
renamed :(.

* Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager.parse_expectations):
* Scripts/webkitpy/layout_tests/port/test.py:
(TestPort.skipped_layout_tests):
* Scripts/webkitpy/tool/commands/queries.py:
(PrintExpectations._model):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@113929 268f45cc-cd09-0410-ab3c-d52691b4dbfc
op_is_foo should be optimized
https://bugs.webkit.org/show_bug.cgi?id=83666

Reviewed by Gavin Barraclough.
        
This implements inlining of op_is_undefined, op_is_string, op_is_number,
and op_is_boolean in LLInt and the baseline JIT. op_is_object and
op_is_function are not inlined because they are quite a bit more complex.
        
This also implements all of the op_is_foo opcodes in the DFG, but it does
not do any type profiling based optimizations, yet.

* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::compare8):
(MacroAssemblerARMv7):
* assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::compare8):
(MacroAssemblerX86Common):
* assembler/MacroAssemblerX86_64.h:
(MacroAssemblerX86_64):
(JSC::MacroAssemblerX86_64::testPtr):
* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::execute):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCCallHelpers.h:
(JSC::DFG::CCallHelpers::setupArguments):
(CCallHelpers):
* dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::performNodeCSE):
* dfg/DFGCapabilities.h:
(JSC::DFG::canCompileOpcode):
* dfg/DFGNodeType.h:
(DFG):
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
(JSC::DFG::SpeculativeJIT::appendCallSetResult):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
* jit/JIT.h:
(JIT):
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_is_undefined):
(JSC):
(JSC::JIT::emit_op_is_boolean):
(JSC::JIT::emit_op_is_number):
(JSC::JIT::emit_op_is_string):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_is_undefined):
(JSC):
(JSC::JIT::emit_op_is_boolean):
(JSC::JIT::emit_op_is_number):
(JSC::JIT::emit_op_is_string):
* jit/JITStubs.cpp:
(JSC):
* llint/LLIntSlowPaths.cpp:
(LLInt):
* llint/LLIntSlowPaths.h:
(LLInt):
* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* offlineasm/armv7.rb:
* offlineasm/instructions.rb:
* offlineasm/x86.rb:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@113930 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add support for [ArrayClass] and use that on NodeList
https://bugs.webkit.org/show_bug.cgi?id=81573

Reviewed by Adam Barth.

With this patch NodeLists now have Array.prototype on their prototype chain which allows
methods such as forEach and map to work on NodeLists.

http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#interface-nodelist

For V8 we need to set a flag on the WrapperTypeInfo since V8 uses FunctionTemplates which
does not allow setting the prototype to a non FunctionTemplate so the prototype is therefore
set when the constructor is created.

For JSC we just pass the right prototype object when creating the NodeList prototype. JSC has
a bug (81588) that prevents toString to work as specced on Array.prototype.toString. This
causes test failures in the tests until that has been fixed.

Source/WebCore:

Test: fast/dom/NodeList/node-list-array-class.html

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader): Include ArrayPrototype.h if an ArrayClass.
(GenerateImplementation): If ArrayClass use arrayPrototype as prototype.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNamedConstructorCallback):
(GenerateImplementation): Adds a flag to the WrapperTypeInfo.
* bindings/scripts/IDLAttributes.txt: Adds new attribute: ArrayClass.
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObj::createPrototype):
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/TestObj.idl:
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore):
* bindings/v8/V8BindingPerContextData.cpp:
(WebCore::V8BindingPerContextData::init): Get the array prototype too.
(WebCore::V8BindingPerContextData::createWrapperFromCacheSlowCase):
(WebCore::V8BindingPerContextData::constructorForTypeSlowCase): If this is an ArrayClass we need to
set the [[Prototype]].
* bindings/v8/V8BindingPerContextData.h:
(V8BindingPerContextData):
* bindings/v8/V8HiddenPropertyName.h:
(WebCore):
* bindings/v8/WrapperTypeInfo.h:
(WrapperTypeInfo):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore):
* dom/NodeList.idl:

LayoutTests:

* fast/dom/HTMLSelectElement/named-options-expected.txt:
* fast/dom/HTMLSelectElement/script-tests/named-options.js:
* fast/dom/NodeList/node-list-array-class-expected.txt: Added.
* fast/dom/NodeList/node-list-array-class.html: Added.
* fast/dom/NodeList/nodelist-item-call-as-function-expected.txt:
* platform/chromium/fast/dom/HTMLSelectElement/named-options-expected.txt: Copied from LayoutTests/fast/dom/HTMLSelectElement/named-options-expected.txt.
* platform/chromium/inspector/console/command-line-api-expected.txt: Added.
* platform/chromium/inspector/console/console-dir-expected.txt:
* platform/chromium/inspector/console/console-format-collections-expected.txt:
* platform/mac/fast/dom/prototype-inheritance-2-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@113931 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Correct pixel snapping error in RenderBox::pixelSnappedClientWidth/Height
https://bugs.webkit.org/show_bug.cgi?id=83621

Reviewed by Eric Seidel.

Though the problem wouldn't yet manifest itself since we haven't flipped the switch on sub-pixel
layout, clientWidth and clientHeight, when pixel snapped, need to take the RenderBox's location
into account. Previously, ClientLeft/Top were used, but these are simply the width of the borders,
and don't include the box's sub-pixel location, which is needed to properly snap the width/height.

No new tests. Untestable until we switch to FractionalLayoutUnits. A test case that covers this
is in the subpixellayout branch and will land with the switch.

* rendering/RenderBox.cpp:
(WebCore::RenderBox::pixelSnappedClientWidth):
(WebCore::RenderBox::pixelSnappedClientHeight):
(WebCore::RenderBox::scrollWidth): Replacing a raw zero with ZERO_LAYOUT_UNIT.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@113932 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Layout Test webaudio/* is flaky
https://bugs.webkit.org/show_bug.cgi?id=83624

Reviewed by Chris Rogers.

Source/WebCore:

No new tests; fixes webaudio/ layout tests.

A merge error led to an Mutex overunlock situation, which caused all future mutex trylock
attempts to fail, but only on Windows. Remove the extraneous mutex unlock().

* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::process):

LayoutTests:

Re-enable webaudio/ layout tests on chromium-win.

* platform/chromium/test_expectations.txt:


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