Added the loose plugin to acorn-qml which is error-tolerant in its
parsing approach. Switched the main parser to automatically use strict
mode and to complain if the ECMA Script version is set to anything
higher than 5. This simplifies the parsing a little bit and keeps us in
sync with Qt which currently uses ECMA Script 5 in its JavaScript
runtime environment.
Updated the test framework to accommodate the loose parser and be less
'magic' in how it runs the tests. Added new tests to make sure the
loose parser is, in fact, error tolerant.
Change-Id: I670fc01853198d2261fbf9d8b017d225c4612182
Signed-off-by: Matthew Bastien <mbastien@blackberry.com>
Tern can now perform static analysis on the following QML constructs:
- QML Property Declarations
- QML Property Bindings
- QML Signals
- QML Signal Handlers
Added basic support for the 'id' property that can be assigned to any
QML Object. Fixed acorn-qml's member function parsing and added tests.
The 'demo' folder contains an html demo of the qml tern implementation
using codemirror as the editor.
Change-Id: I9e4d3837b194ff92a36a8d62bef288f61743e4ce
Signed-off-by: Matthew Bastien <mbastien@blackberry.com>
Fixed the AST elements so that they more closely match the format used
by acorn (i.e. using 'id' instead of 'identifier' and 'name' instead of
'raw' for the identifier name). Resolved one of the ambiguities dealing
with using 'signal', 'property', and 'readonly' as identifiers for
properties and QML Objects. Added a bunch of new tests and fixed the
old ones to match the new AST.
Change-Id: I5a8bbd14b3e6f8531268740dd9e57cb48a0e22b3
Signed-off-by: Matthew Bastien <mbastien@blackberry.com>
Moved the Tern.js work and acorn-qml into the Qt Core plugin rather than
in a separate plugin. Added walk.js in order to facilitate walking the
QML AST by acorn-qml. Changed a few things in index.js and inject.js
for acorn-qml in order to get it working in a browser environment.
Added a tern-qml webpage demo which doesn't do much for now.
Change-Id: I3c8a3d57c98a4936d0e038774b410bb2a68afb6c
Signed-off-by: Matthew Bastien <mbastien@blackberry.com>