summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qmlrewrite.cpp
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2009-12-02 02:35:38 (GMT)
committerAaron Kennedy <aaron.kennedy@nokia.com>2009-12-02 02:35:38 (GMT)
commitcb70f2096cbc66e6e8b5324e0e9508c788144e7e (patch)
treedd4f6f98e2b27d09f2b7c275e705b5a28e89d541 /src/declarative/qml/qmlrewrite.cpp
parentec42d6843ca0937f338e5e2d7d3353134d143eb6 (diff)
downloadQt-cb70f2096cbc66e6e8b5324e0e9508c788144e7e.zip
Qt-cb70f2096cbc66e6e8b5324e0e9508c788144e7e.tar.gz
Qt-cb70f2096cbc66e6e8b5324e0e9508c788144e7e.tar.bz2
Cache binding closures
Diffstat (limited to 'src/declarative/qml/qmlrewrite.cpp')
-rw-r--r--src/declarative/qml/qmlrewrite.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/declarative/qml/qmlrewrite.cpp b/src/declarative/qml/qmlrewrite.cpp
index 32e2fef..2964a75 100644
--- a/src/declarative/qml/qmlrewrite.cpp
+++ b/src/declarative/qml/qmlrewrite.cpp
@@ -49,6 +49,22 @@ DEFINE_BOOL_CONFIG_OPTION(rewriteDump, QML_REWRITE_DUMP);
namespace QmlRewrite {
+bool SharedBindingTester::isSharable(const QString &code)
+{
+ Engine engine;
+ NodePool pool(QString(), &engine);
+ Lexer lexer(&engine);
+ Parser parser(&engine);
+ lexer.setCode(code, 0);
+ parser.parseStatement();
+ if (!parser.statement())
+ return false;
+
+ _sharable = true;
+ AST::Node::acceptChild(parser.statement(), this);
+ return _sharable;
+}
+
QString RewriteBinding::operator()(const QString &code, bool *ok)
{
Engine engine;