From 57a9e77add02dc1d874fdbfee2c61cae8c0eefa1 Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Wed, 9 Dec 2020 20:54:18 -0800 Subject: Read and write data segments names in names section (#3435) --- src/wasm/wasm-s-parser.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/wasm/wasm-s-parser.cpp') 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, -- cgit v1.2.3