RenderGeometryMap asserts when loading http://en.softonic.com/mac
https://bugs.webkit.org/show_bug.cgi?id=101284
<rdar://problem/11540560>

Reviewed by Tim Horton.

When FrameView::layout() calls document->updateStyleIfNeeded(), we
can be in a state where FrameView::needsLayout() is false. However,
this is a bad time to update compositing layers, because we're about
to do layout, which will require us to update them again soon anyway,
and some RenderLayers may not have been sized or positioned yet.

Fix by adding a m_doingPreLayoutStyleUpdate member to FrameView,
and toggling it around this call to updateStyleIfNeeded().
Read this state in updateCompositingLayersAfterStyleChange(), which is
now called unconditionally by recalcStyle(), but returns early
if this flag is set, or layout is pending.

* dom/Document.cpp:
(WebCore::Document::recalcStyle):
* page/FrameView.cpp:
(WebCore::FrameView::reset):
(WebCore::FrameView::updateCompositingLayersAfterStyleChange):
(WebCore::FrameView::layout):
* page/FrameView.h:
(FrameView):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@133544 268f45cc-cd09-0410-ab3c-d52691b4dbfc
TransformOperationInfo's constructor is really slow
https://bugs.webkit.org/show_bug.cgi?id=101143

Reviewed by Sam Weinig.

TransformOperationInfo() was slow for a few reasons:
-The function used a lot of branches. The basic assumption is that the input
 is incorrect, thus every character is an opportunity to fail.
-Every branch had to be tested in order. If the name was matching the last if()
 all the previous names had to be tested.
-Since equalIgnoringCase() was used in every branch, it was forcing the case folding
 every time.
-When the string is 16bits, the case folding was using ICU, which was incredibly inefficient.

This can be fixed by either
1) Compute the lowercase name, then match it to a HashMap.
2) Write a tree to quickly reduce the number of branch needed.

The first solution is not viable because 16bits strings case folding
remains an important bottleneck.

Instead, the code now splits the names on simple characteristics to
match any name in a limited number of branches.

The assumption is the input is correct, so & is used instead of && to
avoid branches in favor of conditional instructions.

* css/CSSParser.cpp:
(WebCore::TransformOperationInfo::TransformOperationInfo):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@133545 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Prototype chain caching should check that the path from the base object to the slot base involves prototype hops only
https://bugs.webkit.org/show_bug.cgi?id=101276

Reviewed by Gavin Barraclough.

Source/JavaScriptCore: 

Changed normalizePrototypeChain() to report an invalid prototype chain if any object is a proxy.
This catches cases where our prototype chain checks would have been insufficient to guard against
newly introduced properties, despecialized properties, or deleted properties in the chain of
objects involved in the access.

* dfg/DFGRepatch.cpp:
(JSC::DFG::tryCacheGetByID):
(JSC::DFG::tryBuildGetByIDProtoList):
(JSC::DFG::tryCachePutByID):
(JSC::DFG::tryBuildPutByIdList):
* jit/JITStubs.cpp:
(JSC::JITThunks::tryCachePutByID):
(JSC::JITThunks::tryCacheGetByID):
(JSC::DEFINE_STUB_FUNCTION):
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* runtime/Operations.h:
(JSC):
(JSC::normalizePrototypeChain):

LayoutTests: 

This test already covered this case, but only for method_check. Modified it to
also cover the get_by_id case.

* fast/js/toString-and-valueOf-override-expected.txt:
* fast/js/toString-and-valueOf-override.html:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@133546 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[l10n] updated id.po for WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=100264

Patch by Andika Triwidada <andika@gmail.com> on 2012-11-05
Rubber-stamped by Gustavo Noronha.

* id.po: updated.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@133547 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTest fast/dom/shadow/shadowroot-type.html is failing on Windows
https://bugs.webkit.org/show_bug.cgi?id=101201

Reviewed by Hajime Morita.

When we use a bit field for enum, Windows compiler seems returning some wrong value.
We would like to avoid using a bit field for enum value.

* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::create):
* dom/ShadowRoot.h:
(WebCore::ShadowRoot::type):
(WebCore::ShadowRoot::setType):
(ShadowRoot):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@133548 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[l10n] [mr] Updated WebKitGTK+ Translation(s) in Marathi [mr] language
https://bugs.webkit.org/show_bug.cgi?id=100817

Patch by Sandeep Shedmake <sshedmak@redhat.com> on 2012-11-05
Rubber-stamped by Gustavo Noronha.

* mr.po: updated.

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