There's a scanner in QQmlJS::Lexer::scanDirectives that can parse those, so
let's get rid of extra parser that operates on a string. Instead this way we
can do the scanning all in one shot, avoid detaching a copy of the source code
string and (most importantly) bring the parser closer to the copy in Qt
Creator, which uses the directives approach to extract imports and pragma.
Change-Id: Iff6eb8d91a45d8a70f383f953115692be48259de
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@theqtcompany.com>
qmlmin could compress identifiers in an invalid way if
it contained special chars that would get expanded to
unicode escape sequences
Change-Id: I35b3ba01f68b69b34c4cd19616afb8b4b4cd6fa3
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Although not valid according to ECMA 5.1, both JSC and V8 accept a
missing semicolon after a do-while loop. (Both JSC and V8 do not do this
through automatic semicolon insertion, but handle it as a special case.)
Change-Id: Iff2b07b894564740d2dcbf9b1d46bc279d30b9e3
Reviewed-by: Alan Alpert <aalpert@rim.com>
Change copyrights and license headers from Nokia to Digia
Change-Id: Ie7f5d49ed8235d7a7845ab68f99ad1c220e64d5c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reduce memory consumption by storing source location coordinates
as 16-bit variables (in run-time structures). Also modify qmlmin
to restrict line lengths so that the column bound is not normally
exceeded.
Change-Id: I08605626ffbdf081b6da2aea1116bdfe24998572
Reviewed-by: Yann Bodson <yann.bodson@nokia.com>
Symbols beginning with QDeclarative are already exported
by the quick1 module.
Users can apply the bin/rename-qtdeclarative-symbols.sh
script to modify client code using the previous names of the
renamed symbols.
Task-number: QTBUG-23737
Change-Id: Ifaa482663767634931e8711a8e9bf6e404859e66
Reviewed-by: Martin Jones <martin.jones@nokia.com>
As in the past, to avoid rewriting various autotests that contain
line-number information, an extra blank line has been inserted at the
end of the license text to ensure that this commit does not change the
total number of lines in the license header.
Change-Id: If39bd256b0fa85eba17ea30f8ab87ea27d758908
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
That is, in QML/JS you can escape characters in identifiers, e.g.
var c\u0061se = 25
declares a variable called `case' with value 25. In such cases
qmlmin needs to preserve the escape sequence in the declaration.
Also, fix possible errors when pasting keywords after regexp literals.
The minifier needs to preserve the whitespace character after the
regexp delimiter, e.g.
/x/instanceof blah
without the white space after the regexp, the `i' of `instanceof'
is parsed as a regexp flag.
Change-Id: I5f426ac62949e34d092d4fdb0a41243de8ff2236
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Needed to make it link in non-developer builds.
Change-Id: I45f413df5e4c01760aa245463c809c5b502a96c2
Reviewed-on: http://codereview.qt-project.org/6130
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
Use Lexer::canInsertAutomaticSemicolon() when recovering from errors
generated by missing T_SEMICOLON tokens.
Change-Id: Ie4011d8d3e02b02a7dccd0a09ffa28b1ec9e654d
Reviewed-on: http://codereview.qt-project.org/5017
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
qmlmin has three different stages. In the first stage
it generates the QML/JS minified code. In the second
stage we verify that minified code is equivalent
to the original code and in the final stage we
produce the output. With --verify-only you can tell
qmlmin to quit after the verification step.
Note that this option is pretty much equivalent to
the unix command qmlmin file.qml -o /dev/null.
Change-Id: I91373bc1c1db8c35af2e301ad13d7b34fc384529
Reviewed-on: http://codereview.qt-project.org/4670
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
qmlmin is a simple minifier for QML and Javascript files. It removes
comments and layout characters.
Change-Id: I387a683cd9b73e8fd225e10a75b3fcec50949938
Reviewed-on: http://codereview.qt-project.org/4442
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>