12 #ifndef hifi_JSBaker_h
13 #define hifi_JSBaker_h
18 #include "JSBakingLoggingCategory.h"
20 static const QString BAKED_JS_EXTENSION =
".baked.js";
22 class JSBaker :
public Baker {
25 JSBaker(
const QUrl& jsURL,
const QString& bakedOutputDir);
26 static bool bakeJS(
const QByteArray& inputFile, QByteArray& outputFile);
28 QString getJSPath()
const {
return _jsURL.toDisplayString(); }
29 QString getBakedJSFilePath()
const {
return _bakedJSFilePath; }
32 virtual void bake()
override;
35 void originalScriptLoaded();
42 void handleScriptNetworkReply();
45 QByteArray _originalScript;
46 QString _bakedOutputDir;
47 QString _bakedJSFilePath;
49 static void handleSingleLineComments(QTextStream& in);
50 static bool handleMultiLineComments(QTextStream& in);
52 static bool canOmitSpace(QChar previousCharacter, QChar nextCharacter);
53 static bool canOmitNewLine(QChar previousCharacter, QChar nextCharacter);
55 static bool isAlphanum(QChar c);
56 static bool isNonAscii(QChar c);
57 static bool isSpecialCharacter(QChar c);
58 static bool isSpecialCharacterPrevious(QChar c);
59 static bool isSpecialCharacterNext(QChar c);
60 static bool isSpaceOrTab(QChar c);
61 static bool isQuote(QChar c);