diff --git a/src/libs/qmljs/qmljsdocument.cpp b/src/libs/qmljs/qmljsdocument.cpp
index 6768d0b23ef9aa816628dbeb3414bb0cde011671..513773d34fdfe28c7f7c63222a783a01e4c364f2 100644
--- a/src/libs/qmljs/qmljsdocument.cpp
+++ b/src/libs/qmljs/qmljsdocument.cpp
@@ -82,6 +82,14 @@ AST::Program *Document::jsProgram() const
     return _jsProgram;
 }
 
+AST::Node *Document::ast() const
+{
+    Q_ASSERT(!_uiProgram || !_jsProgram);
+    if (_uiProgram)
+        return _uiProgram;
+    return _jsProgram;
+}
+
 QList<DiagnosticMessage> Document::diagnosticMessages() const
 {
     return _diagnosticMessages;
diff --git a/src/libs/qmljs/qmljsdocument.h b/src/libs/qmljs/qmljsdocument.h
index 536558373213169d416c7d55f36e308b30cae55c..98bedda327d7c7fa52a1ad1692a4e7d850a5831e 100644
--- a/src/libs/qmljs/qmljsdocument.h
+++ b/src/libs/qmljs/qmljsdocument.h
@@ -58,6 +58,8 @@ public:
 
     QmlJS::AST::UiProgram *qmlProgram() const;
     QmlJS::AST::Program *jsProgram() const;
+    QmlJS::AST::Node *ast() const;
+
     QList<QmlJS::DiagnosticMessage> diagnosticMessages() const;
 
     QString source() const;