diff options
author | Alon Zakai (kripken) <alonzakai@gmail.com> | 2017-01-31 10:43:19 -0800 |
---|---|---|
committer | Alon Zakai (kripken) <alonzakai@gmail.com> | 2017-01-31 10:43:19 -0800 |
commit | abb48f7460b26e14076fd34ed1f7274ab3a949cc (patch) | |
tree | c7bc74948103411b80e8a20daf8125ee847e3429 /src/emscripten-optimizer/simple_ast.h | |
parent | 818fa1dc19b0edcaaf1a8aa78b94bf052420252d (diff) | |
download | binaryen-abb48f7460b26e14076fd34ed1f7274ab3a949cc.tar.gz binaryen-abb48f7460b26e14076fd34ed1f7274ab3a949cc.tar.bz2 binaryen-abb48f7460b26e14076fd34ed1f7274ab3a949cc.zip |
refactor asm.js ast to use a string node directly instead of [NAME, string]
Diffstat (limited to 'src/emscripten-optimizer/simple_ast.h')
-rw-r--r-- | src/emscripten-optimizer/simple_ast.h | 18 |
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) { |