diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-12-02 02:35:38 (GMT) |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-12-02 02:35:38 (GMT) |
commit | cb70f2096cbc66e6e8b5324e0e9508c788144e7e (patch) | |
tree | dd4f6f98e2b27d09f2b7c275e705b5a28e89d541 /src/declarative/qml/qmlrewrite.cpp | |
parent | ec42d6843ca0937f338e5e2d7d3353134d143eb6 (diff) | |
download | Qt-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.cpp | 16 |
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; |