ASSERT !heap.vm()->isInitializingObject() when finishing DFG compilation at beginning of GC
https://bugs.webkit.org/show_bug.cgi?id=125472

Reviewed by Geoff Garen.

This patch makes it look like it's okay to allocate so that the DFG plan finalization stuff 
can do what it needs to do. We already expected that we might do allocation during plan 
finalization and we increased the deferral depth to handle this, but we need to fix this other 
ASSERT stuff too.

* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* JavaScriptCore.xcodeproj/project.pbxproj:
* heap/Heap.cpp:
(JSC::Heap::collect):
* heap/Heap.h:
* heap/RecursiveAllocationScope.h: Added.
(JSC::RecursiveAllocationScope::RecursiveAllocationScope):
(JSC::RecursiveAllocationScope::~RecursiveAllocationScope):
* runtime/VM.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160377 268f45cc-cd09-0410-ab3c-d52691b4dbfc
More UserData work
https://bugs.webkit.org/show_bug.cgi?id=125524

Reviewed by Dan Bernstein.

* Shared/APIObject.h:
* Shared/UserData.cpp:
(WebKit::UserData::transform):
New helper function that takes an API::Object and returns a new API::Object with all "sub-objects" (arrays etc)
transformed by calling the transformer.

* Shared/UserData.h:
(WebKit::UserData::object):
New getter.

* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::apiObjectByConvertingToHandles):
Helper function that creates a new API::Object graph by converting WebFrameProxy objects to FrameHandles.

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::apiObjectByConvertingFromHandles):
Helper function that creates a new API::Object graph by converting FrameHandles to WebFrame objects.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160378 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[ATK] Elements with role 'alertdialog' should be ATK_ROLE_ALERT
https://bugs.webkit.org/show_bug.cgi?id=125521

Reviewed by Chris Fleizach.

Source/WebCore:

Stop exposing alert dialogs as ATK_ROLE_DIALOG and do it as
ATK_ROLE_ALERT instead.

* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):

LayoutTests:

Update expected result in layout test.

* accessibility/aria-mappings-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160379 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[ATK] Expose splitter elements with ATK_ROLE_SEPARATOR
https://bugs.webkit.org/show_bug.cgi?id=125522

Reviewed by Chris Fleizach.

Source/WebCore:

Expose objects with SplitterRole role as ATK_ROLE_SEPARATOR.

* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):

Tools:

Update strings representing ATK_ROLE_SEPARATOR for layout tests.

* DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:
* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

LayoutTests:

Update expected results in layout test for EFL and GTK.

* platform/efl-wk1/accessibility/lists-expected.txt:
* platform/efl-wk2/accessibility/lists-expected.txt:
* platform/gtk/accessibility/lists-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160380 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add more API object types to UserData
https://bugs.webkit.org/show_bug.cgi?id=125532

Reviewed by Beth Dakin.

* Shared/UserData.cpp:
(WebKit::UserData::transform):
Handle dictionaries.

(WebKit::UserData::encode):
(WebKit::UserData::decode):
Handle more API::Objects.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160381 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Fix WK2 build after r160341
https://bugs.webkit.org/show_bug.cgi?id=125529

Patch by Nick Diego Yamane <nick.yamane@openbossa.org> on 2013-12-10
Reviewed by Anders Carlsson.

* CMakeLists.txt: Added new files UserData.cpp, APIFrameHandle.cpp and APIPageHandle.cpp.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160382 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reduce the mass templatizing of the JS parser
https://bugs.webkit.org/show_bug.cgi?id=125535

Reviewed by Michael Saboff.

The various caches we have now have removed the need for many of
the template vs. regular parameters.  This patch converts those
template parameters to regular parameters and updates the call
sites.  This reduces the code size of the parser by around 15%.

* parser/ASTBuilder.h:
(JSC::ASTBuilder::createGetterOrSetterProperty):
(JSC::ASTBuilder::createProperty):
* parser/Parser.cpp:
(JSC::::parseInner):
(JSC::::parseSourceElements):
(JSC::::parseVarDeclarationList):
(JSC::::createBindingPattern):
(JSC::::tryParseDeconstructionPatternExpression):
(JSC::::parseDeconstructionPattern):
(JSC::::parseSwitchClauses):
(JSC::::parseSwitchDefaultClause):
(JSC::::parseBlockStatement):
(JSC::::parseFormalParameters):
(JSC::::parseFunctionInfo):
(JSC::::parseFunctionDeclaration):
(JSC::::parseProperty):
(JSC::::parseObjectLiteral):
(JSC::::parseStrictObjectLiteral):
(JSC::::parseMemberExpression):
* parser/Parser.h:
* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createProperty):
(JSC::SyntaxChecker::createGetterOrSetterProperty):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160383 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Rename API::TypedObject to API::ObjectImpl
https://bugs.webkit.org/show_bug.cgi?id=125539

Reviewed by Tim Horton.

All API::Objects are by definition typed, so ObjectImpl makes more sense as a name.

* Shared/APIArray.h:
* Shared/APIFrameHandle.h:
* Shared/APIObject.h:
(API::ObjectImpl::~ObjectImpl):
(API::ObjectImpl::ObjectImpl):
* Shared/APIPageHandle.h:
* Shared/ImmutableDictionary.h:
* Shared/WebArchive.h:
* Shared/WebArchiveResource.h:
* Shared/WebBackForwardListItem.h:
* Shared/WebCertificateInfo.h:
* Shared/WebConnection.h:
* Shared/WebContextMenuItem.h:
* Shared/WebData.h:
* Shared/WebError.h:
* Shared/WebGeolocationPosition.h:
* Shared/WebGeometry.h:
* Shared/WebHitTestResult.h:
* Shared/WebImage.h:
* Shared/WebNumber.h:
* Shared/WebOpenPanelParameters.h:
* Shared/WebRenderLayer.h:
* Shared/WebRenderObject.h:
* Shared/WebSecurityOrigin.h:
* Shared/WebSerializedScriptValue.h:
* Shared/WebString.h:
* Shared/WebURL.h:
* Shared/WebURLRequest.h:
* Shared/WebURLResponse.h:
* Shared/WebUserContentURLPattern.h:
* Shared/mac/ObjCObjectGraph.h:
* UIProcess/APINavigationData.h:
* UIProcess/Authentication/AuthenticationChallengeProxy.h:
* UIProcess/Authentication/AuthenticationDecisionListener.h:
* UIProcess/Authentication/WebCredential.h:
* UIProcess/Authentication/WebProtectionSpace.h:
* UIProcess/Downloads/DownloadProxy.h:
* UIProcess/GeolocationPermissionRequestProxy.h:
* UIProcess/Notifications/NotificationPermissionRequest.h:
* UIProcess/Notifications/WebNotification.h:
* UIProcess/Notifications/WebNotificationManagerProxy.h:
* UIProcess/Plugins/WebPluginSiteDataManager.h:
* UIProcess/WebApplicationCacheManagerProxy.h:
* UIProcess/WebBackForwardList.h:
* UIProcess/WebColorPickerResultListenerProxy.h:
* UIProcess/WebContext.h:
* UIProcess/WebCookieManagerProxy.h:
* UIProcess/WebDatabaseManagerProxy.h:
* UIProcess/WebEditCommandProxy.h:
* UIProcess/WebFrameProxy.h:
* UIProcess/WebGeolocationManagerProxy.h:
* UIProcess/WebGrammarDetail.h:
* UIProcess/WebIconDatabase.h:
* UIProcess/WebInspectorProxy.h:
* UIProcess/WebKeyValueStorageManager.h:
* UIProcess/WebMediaCacheManagerProxy.h:
* UIProcess/WebOpenPanelResultListenerProxy.h:
* UIProcess/WebOriginDataManagerProxy.h:
* UIProcess/WebPageGroup.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPreferences.h:
* UIProcess/WebResourceCacheManagerProxy.h:
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
* WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.h:
* WebProcess/InjectedBundle/InjectedBundle.h:
* WebProcess/InjectedBundle/InjectedBundleBackForwardList.h:
* WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.h:
* WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.h:
* WebProcess/InjectedBundle/InjectedBundleHitTestResult.h:
* WebProcess/InjectedBundle/InjectedBundleNavigationAction.h:
* WebProcess/InjectedBundle/InjectedBundleScriptWorld.h:
* WebProcess/WebPage/PageBanner.h:
* WebProcess/WebPage/PageOverlay.h:
* WebProcess/WebPage/WebFrame.h:
* WebProcess/WebPage/WebInspector.h:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPageGroupProxy.h:

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