summaryrefslogtreecommitdiff
path: root/src/emscripten-optimizer/simple_ast.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emscripten-optimizer/simple_ast.h')
-rw-r--r--src/emscripten-optimizer/simple_ast.h18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/emscripten-optimizer/simple_ast.h b/src/emscripten-optimizer/simple_ast.h
index bb757e260..e89ddb666 100644
--- a/src/emscripten-optimizer/simple_ast.h
+++ b/src/emscripten-optimizer/simple_ast.h
@@ -663,6 +663,10 @@ struct JSPrinter {
void print(Ref node) {
ensure();
+ if (node->isString()) {
+ printName(node);
+ return;
+ }
if (node->isNumber()) {
printNum(node);
return;
@@ -708,8 +712,7 @@ struct JSPrinter {
break;
}
case 'n': {
- if (type == NAME) printName(node);
- else if (type == NEW) printNew(node);
+ if (type == NEW) printNew(node);
else abort();
break;
}
@@ -842,7 +845,7 @@ struct JSPrinter {
}
void printName(Ref node) {
- emit(node[1]->getCString());
+ emit(node->getCString());
}
static char* numToString(double d, bool finalize=true) {
@@ -1357,8 +1360,7 @@ public:
}
static Ref makeName(IString name) {
- return &makeRawArray(2)->push_back(makeRawString(NAME))
- .push_back(makeRawString(name));
+ return makeRawString(name);
}
static void setBlockContent(Ref target, Ref block) {
@@ -1460,7 +1462,7 @@ public:
}
static Ref makeStatement(Ref contents) {
- if (contents->isNumber() || statable.has(contents[0]->getIString())) {
+ if (contents->isNumber() || contents->isString() || statable.has(contents[0]->getIString())) {
return &makeRawArray(2)->push_back(makeRawString(STAT))
.push_back(contents);
} else {
@@ -1636,8 +1638,8 @@ public:
}
static Ref makeDot(Ref obj, Ref key) {
- assert(key[0] == NAME);
- return makeDot(obj, key[1]->getIString());
+ assert(key->isString());
+ return makeDot(obj, key->getIString());
}
static Ref makeNew(Ref call) {