summaryrefslogtreecommitdiff
path: root/src/emscripten-optimizer/simple_ast.h
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2015-12-07 15:16:55 -0800
committerAlon Zakai <alonzakai@gmail.com>2015-12-07 15:16:55 -0800
commit4fe0ddde6db8d21bd30f7f5ee1fa5322aa49bd5b (patch)
tree923466a4fd40a286c8e4d0f7b5103724e2376756 /src/emscripten-optimizer/simple_ast.h
parenta3e8e7d7ee21808051fba70ee8990ad20beb0223 (diff)
downloadbinaryen-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.h17
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]);
}