summaryrefslogtreecommitdiff
path: root/src/emscripten-optimizer/simple_ast.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/emscripten-optimizer/simple_ast.cpp')
-rw-r--r--src/emscripten-optimizer/simple_ast.cpp18
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;
+ }
}
}