summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/passes/Print.cpp4
-rw-r--r--src/wasm-features.h15
2 files changed, 19 insertions, 0 deletions
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp
index 9b59de444..a10467018 100644
--- a/src/passes/Print.cpp
+++ b/src/passes/Print.cpp
@@ -3240,6 +3240,10 @@ struct PrintSExpression : public OverriddenVisitor<PrintSExpression> {
}
o << maybeNewLine;
}
+ if (curr->hasFeaturesSection) {
+ doIndent(o, indent);
+ o << ";; features section: " << curr->features.toString() << '\n';
+ }
decIndent();
o << maybeNewLine;
currModule = nullptr;
diff --git a/src/wasm-features.h b/src/wasm-features.h
index d2e3f343f..237dc7757 100644
--- a/src/wasm-features.h
+++ b/src/wasm-features.h
@@ -75,6 +75,21 @@ struct FeatureSet {
}
}
+ std::string toString() {
+ std::string ret;
+ uint32_t x = 1;
+ while (x & Feature::All) {
+ if (features & x) {
+ if (!ret.empty()) {
+ ret += ", ";
+ }
+ ret += toString(Feature(x));
+ }
+ x <<= 1;
+ }
+ return ret;
+ }
+
FeatureSet() : features(MVP) {}
FeatureSet(uint32_t features) : features(features) {}
operator uint32_t() const { return features; }