diff options
Diffstat (limited to 'src/emscripten-optimizer/simple_ast.cpp')
-rw-r--r-- | src/emscripten-optimizer/simple_ast.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/emscripten-optimizer/simple_ast.cpp b/src/emscripten-optimizer/simple_ast.cpp index 618b0d9dd..75685f80e 100644 --- a/src/emscripten-optimizer/simple_ast.cpp +++ b/src/emscripten-optimizer/simple_ast.cpp @@ -64,11 +64,22 @@ Value& Value::setAssign(Ref target, Ref value) { return *this; } +Value& Value::setAssignName(IString target, Ref value) { + asAssignName()->target() = target; + asAssignName()->value() = value; + return *this; +} + Assign* Value::asAssign() { assert(isAssign()); return static_cast<Assign*>(this); } +AssignName* Value::asAssignName() { + assert(isAssignName()); + return static_cast<AssignName*>(this); +} + void Value::stringify(std::ostream &os, bool pretty) { static int indent = 0; #define indentify() { for (int i_ = 0; i_ < indent; i_++) os << " "; } @@ -153,6 +164,13 @@ void Value::stringify(std::ostream &os, bool pretty) { os << "]"; break; } + case AssignName_: { + os << "[\"" << asAssignName()->target().str << "\""; + os << ", "; + asAssignName()->value()->stringify(os, pretty); + os << "]"; + break; + } } } |