summaryrefslogtreecommitdiffstats
path: root/third_party/rust/wasm-encoder/src/core/globals.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-12 05:43:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-12 05:43:14 +0000
commit8dd16259287f58f9273002717ec4d27e97127719 (patch)
tree3863e62a53829a84037444beab3abd4ed9dfc7d0 /third_party/rust/wasm-encoder/src/core/globals.rs
parentReleasing progress-linux version 126.0.1-1~progress7.99u1. (diff)
downloadfirefox-8dd16259287f58f9273002717ec4d27e97127719.tar.xz
firefox-8dd16259287f58f9273002717ec4d27e97127719.zip
Merging upstream version 127.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/wasm-encoder/src/core/globals.rs')
-rw-r--r--third_party/rust/wasm-encoder/src/core/globals.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/third_party/rust/wasm-encoder/src/core/globals.rs b/third_party/rust/wasm-encoder/src/core/globals.rs
index 64fec982cd..291ca80472 100644
--- a/third_party/rust/wasm-encoder/src/core/globals.rs
+++ b/third_party/rust/wasm-encoder/src/core/globals.rs
@@ -14,6 +14,7 @@ use crate::{encode_section, ConstExpr, Encode, Section, SectionId, ValType};
/// GlobalType {
/// val_type: ValType::I32,
/// mutable: false,
+/// shared: false,
/// },
/// &ConstExpr::i32_const(42),
/// );
@@ -80,12 +81,21 @@ pub struct GlobalType {
pub val_type: ValType,
/// Whether this global is mutable or not.
pub mutable: bool,
+ /// Whether this global is shared or not.
+ pub shared: bool,
}
impl Encode for GlobalType {
fn encode(&self, sink: &mut Vec<u8>) {
self.val_type.encode(sink);
- sink.push(self.mutable as u8);
+ let mut flag = 0;
+ if self.mutable {
+ flag |= 0b01;
+ }
+ if self.shared {
+ flag |= 0b10;
+ }
+ sink.push(flag);
}
}
@@ -96,6 +106,7 @@ impl TryFrom<wasmparser::GlobalType> for GlobalType {
Ok(GlobalType {
val_type: global_ty.content_type.try_into()?,
mutable: global_ty.mutable,
+ shared: global_ty.shared,
})
}
}