diff options
author | Alon Zakai <alonzakai@gmail.com> | 2015-12-07 15:16:55 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2015-12-07 15:16:55 -0800 |
commit | 4fe0ddde6db8d21bd30f7f5ee1fa5322aa49bd5b (patch) | |
tree | 923466a4fd40a286c8e4d0f7b5103724e2376756 /src/emscripten-optimizer/simple_ast.h | |
parent | a3e8e7d7ee21808051fba70ee8990ad20beb0223 (diff) | |
download | binaryen-4fe0ddde6db8d21bd30f7f5ee1fa5322aa49bd5b.tar.gz binaryen-4fe0ddde6db8d21bd30f7f5ee1fa5322aa49bd5b.tar.bz2 binaryen-4fe0ddde6db8d21bd30f7f5ee1fa5322aa49bd5b.zip |
don't quote keys in object printing when not necessary
Diffstat (limited to 'src/emscripten-optimizer/simple_ast.h')
-rw-r--r-- | src/emscripten-optimizer/simple_ast.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/emscripten-optimizer/simple_ast.h b/src/emscripten-optimizer/simple_ast.h index d83eb4cdd..5952eee72 100644 --- a/src/emscripten-optimizer/simple_ast.h +++ b/src/emscripten-optimizer/simple_ast.h @@ -1268,9 +1268,20 @@ struct JSPrinter { pretty ? emit(", ") : emit(','); newline(); } - emit('"'); - emit(args[i][0]->getCString()); - emit("\":"); + const char *str = args[i][0]->getCString(); + const char *check = str; + bool needQuote = false; + while (*check) { + if (!isalnum(*check) && *check != '_' && *check != '$') { + needQuote = true; + break; + } + check++; + } + if (needQuote) emit('"'); + emit(str); + if (needQuote) emit('"'); + emit(":"); space(); print(args[i][1]); } |