summaryrefslogtreecommitdiff
path: root/src/wasm/wasm-s-parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm/wasm-s-parser.cpp')
-rw-r--r--src/wasm/wasm-s-parser.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/wasm/wasm-s-parser.cpp b/src/wasm/wasm-s-parser.cpp
index 7efb2f2fb..3bb54f0c8 100644
--- a/src/wasm/wasm-s-parser.cpp
+++ b/src/wasm/wasm-s-parser.cpp
@@ -2380,6 +2380,10 @@ void SExpressionWasmBuilder::parseData(Element& s) {
bool isPassive = false;
Expression* offset = nullptr;
Index i = 1;
+ Name name;
+ if (s[i]->dollared()) {
+ name = s[i++]->str();
+ }
if (s[i]->isStr()) {
// data is passive or named
if (s[i]->str() == PASSIVE) {
@@ -2394,6 +2398,9 @@ void SExpressionWasmBuilder::parseData(Element& s) {
throw ParseException("Unexpected data items", s.line, s.col);
}
parseInnerData(s, s.size() - 1, offset, isPassive);
+ if (name.is()) {
+ wasm.memory.segments.back().name = name;
+ }
}
void SExpressionWasmBuilder::parseInnerData(Element& s,