diff options
Diffstat (limited to 'src/emscripten-optimizer/simple_ast.h')
-rw-r--r-- | src/emscripten-optimizer/simple_ast.h | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/emscripten-optimizer/simple_ast.h b/src/emscripten-optimizer/simple_ast.h index ded8af5f4..e5e8c4e80 100644 --- a/src/emscripten-optimizer/simple_ast.h +++ b/src/emscripten-optimizer/simple_ast.h @@ -1318,9 +1318,18 @@ struct JSPrinter { pretty ? emit(", ") : emit(','); newline(); } - const char *str = args[i][0]->getCString(); - const char *check = str; bool needQuote = false; + const char *str; + if (args[i][0]->isArray()) { + assert(args[i][0][0] == STRING); + // A quoted string. + needQuote = true; + str = args[i][0][1]->getCString(); + } else { + // Just a raw string, no quotes. + str = args[i][0]->getCString(); + } + const char *check = str; while (*check) { if (!isalnum(*check) && *check != '_' && *check != '$') { needQuote = true; @@ -1644,6 +1653,12 @@ public: .push_back(value)); } + static void appendToObjectWithQuotes(Ref array, IString key, Ref value) { + assert(array[0] == OBJECT); + array[1]->push_back(&makeRawArray(2)->push_back(makeString(key)) + .push_back(value)); + } + static Ref makeSub(Ref obj, Ref index) { return &makeRawArray(2)->push_back(makeRawString(SUB)) .push_back(obj) |