Coverage Report

Created: 2024-10-16 07:58

/rust/registry/src/index.crates.io-6f17d22bba15001f/wasmparser-0.121.2/src/binary_reader.rs
Line
Count
Source (jump to first uncovered line)
1
/* Copyright 2018 Mozilla Foundation
2
 *
3
 * Licensed under the Apache License, Version 2.0 (the "License");
4
 * you may not use this file except in compliance with the License.
5
 * You may obtain a copy of the License at
6
 *
7
 *     http://www.apache.org/licenses/LICENSE-2.0
8
 *
9
 * Unless required by applicable law or agreed to in writing, software
10
 * distributed under the License is distributed on an "AS IS" BASIS,
11
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
 * See the License for the specific language governing permissions and
13
 * limitations under the License.
14
 */
15
16
use crate::{limits::*, *};
17
use std::convert::TryInto;
18
use std::error::Error;
19
use std::fmt;
20
use std::marker;
21
use std::ops::Range;
22
use std::str;
23
24
pub(crate) const WASM_MAGIC_NUMBER: &[u8; 4] = b"\0asm";
25
26
/// A binary reader for WebAssembly modules.
27
#[derive(Debug, Clone)]
28
pub struct BinaryReaderError {
29
    // Wrap the actual error data in a `Box` so that the error is just one
30
    // word. This means that we can continue returning small `Result`s in
31
    // registers.
32
    pub(crate) inner: Box<BinaryReaderErrorInner>,
33
}
34
35
#[derive(Debug, Clone)]
36
pub(crate) struct BinaryReaderErrorInner {
37
    pub(crate) message: String,
38
    pub(crate) offset: usize,
39
    pub(crate) needed_hint: Option<usize>,
40
}
41
42
/// The result for `BinaryReader` operations.
43
pub type Result<T, E = BinaryReaderError> = std::result::Result<T, E>;
44
45
impl Error for BinaryReaderError {}
46
47
impl fmt::Display for BinaryReaderError {
48
462
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
49
462
        write!(
50
462
            f,
51
462
            "{} (at offset 0x{:x})",
52
462
            self.inner.message, self.inner.offset
53
462
        )
54
462
    }
55
}
56
57
impl BinaryReaderError {
58
    #[cold]
59
462
    pub(crate) fn new(message: impl Into<String>, offset: usize) -> Self {
60
462
        let message = message.into();
61
462
        BinaryReaderError {
62
462
            inner: Box::new(BinaryReaderErrorInner {
63
462
                message,
64
462
                offset,
65
462
                needed_hint: None,
66
462
            }),
67
462
        }
68
462
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderError>::new::<&str>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderError>::new::<&str>
<wasmparser::binary_reader::BinaryReaderError>::new::<alloc::string::String>
Line
Count
Source
59
462
    pub(crate) fn new(message: impl Into<String>, offset: usize) -> Self {
60
462
        let message = message.into();
61
462
        BinaryReaderError {
62
462
            inner: Box::new(BinaryReaderErrorInner {
63
462
                message,
64
462
                offset,
65
462
                needed_hint: None,
66
462
            }),
67
462
        }
68
462
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderError>::new::<&str>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderError>::new::<&str>
69
70
    #[cold]
71
462
    pub(crate) fn fmt(args: fmt::Arguments<'_>, offset: usize) -> Self {
72
462
        BinaryReaderError::new(args.to_string(), offset)
73
462
    }
74
75
    #[cold]
76
0
    pub(crate) fn eof(offset: usize, needed_hint: usize) -> Self {
77
0
        BinaryReaderError {
78
0
            inner: Box::new(BinaryReaderErrorInner {
79
0
                message: "unexpected end-of-file".to_string(),
80
0
                offset,
81
0
                needed_hint: Some(needed_hint),
82
0
            }),
83
0
        }
84
0
    }
85
86
    /// Get this error's message.
87
0
    pub fn message(&self) -> &str {
88
0
        &self.inner.message
89
0
    }
90
91
    /// Get the offset within the Wasm binary where the error occurred.
92
0
    pub fn offset(&self) -> usize {
93
0
        self.inner.offset
94
0
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderError>::offset
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderError>::offset
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderError>::offset
95
96
0
    pub(crate) fn add_context(&mut self, mut context: String) {
97
0
        context.push_str("\n");
98
0
        self.inner.message.insert_str(0, &context);
99
0
    }
100
}
101
102
/// A binary reader of the WebAssembly structures and types.
103
#[derive(Clone, Debug, Hash)]
104
pub struct BinaryReader<'a> {
105
    pub(crate) buffer: &'a [u8],
106
    pub(crate) position: usize,
107
    original_offset: usize,
108
    allow_memarg64: bool,
109
}
110
111
impl<'a> BinaryReader<'a> {
112
    /// Constructs `BinaryReader` type.
113
    ///
114
    /// # Examples
115
    /// ```
116
    /// let fn_body = &vec![0x41, 0x00, 0x10, 0x00, 0x0B];
117
    /// let mut reader = wasmparser::BinaryReader::new(fn_body);
118
    /// while !reader.eof() {
119
    ///     let op = reader.read_operator();
120
    ///     println!("{:?}", op)
121
    /// }
122
    /// ```
123
0
    pub fn new(data: &[u8]) -> BinaryReader {
124
0
        BinaryReader {
125
0
            buffer: data,
126
0
            position: 0,
127
0
            original_offset: 0,
128
0
            allow_memarg64: false,
129
0
        }
130
0
    }
131
132
    /// Constructs a `BinaryReader` with an explicit starting offset.
133
7.57M
    pub fn new_with_offset(data: &[u8], original_offset: usize) -> BinaryReader {
134
7.57M
        BinaryReader {
135
7.57M
            buffer: data,
136
7.57M
            position: 0,
137
7.57M
            original_offset,
138
7.57M
            allow_memarg64: false,
139
7.57M
        }
140
7.57M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::new_with_offset
<wasmparser::binary_reader::BinaryReader>::new_with_offset
Line
Count
Source
133
101k
    pub fn new_with_offset(data: &[u8], original_offset: usize) -> BinaryReader {
134
101k
        BinaryReader {
135
101k
            buffer: data,
136
101k
            position: 0,
137
101k
            original_offset,
138
101k
            allow_memarg64: false,
139
101k
        }
140
101k
    }
<wasmparser::binary_reader::BinaryReader>::new_with_offset
Line
Count
Source
133
87.8k
    pub fn new_with_offset(data: &[u8], original_offset: usize) -> BinaryReader {
134
87.8k
        BinaryReader {
135
87.8k
            buffer: data,
136
87.8k
            position: 0,
137
87.8k
            original_offset,
138
87.8k
            allow_memarg64: false,
139
87.8k
        }
140
87.8k
    }
<wasmparser::binary_reader::BinaryReader>::new_with_offset
Line
Count
Source
133
549k
    pub fn new_with_offset(data: &[u8], original_offset: usize) -> BinaryReader {
134
549k
        BinaryReader {
135
549k
            buffer: data,
136
549k
            position: 0,
137
549k
            original_offset,
138
549k
            allow_memarg64: false,
139
549k
        }
140
549k
    }
<wasmparser::binary_reader::BinaryReader>::new_with_offset
Line
Count
Source
133
6.47M
    pub fn new_with_offset(data: &[u8], original_offset: usize) -> BinaryReader {
134
6.47M
        BinaryReader {
135
6.47M
            buffer: data,
136
6.47M
            position: 0,
137
6.47M
            original_offset,
138
6.47M
            allow_memarg64: false,
139
6.47M
        }
140
6.47M
    }
<wasmparser::binary_reader::BinaryReader>::new_with_offset
Line
Count
Source
133
193k
    pub fn new_with_offset(data: &[u8], original_offset: usize) -> BinaryReader {
134
193k
        BinaryReader {
135
193k
            buffer: data,
136
193k
            position: 0,
137
193k
            original_offset,
138
193k
            allow_memarg64: false,
139
193k
        }
140
193k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::new_with_offset
<wasmparser::binary_reader::BinaryReader>::new_with_offset
Line
Count
Source
133
71.3k
    pub fn new_with_offset(data: &[u8], original_offset: usize) -> BinaryReader {
134
71.3k
        BinaryReader {
135
71.3k
            buffer: data,
136
71.3k
            position: 0,
137
71.3k
            original_offset,
138
71.3k
            allow_memarg64: false,
139
71.3k
        }
140
71.3k
    }
<wasmparser::binary_reader::BinaryReader>::new_with_offset
Line
Count
Source
133
87.8k
    pub fn new_with_offset(data: &[u8], original_offset: usize) -> BinaryReader {
134
87.8k
        BinaryReader {
135
87.8k
            buffer: data,
136
87.8k
            position: 0,
137
87.8k
            original_offset,
138
87.8k
            allow_memarg64: false,
139
87.8k
        }
140
87.8k
    }
141
142
    /// Gets the original position of the binary reader.
143
    #[inline]
144
80.3M
    pub fn original_position(&self) -> usize {
145
80.3M
        self.original_offset + self.position
146
80.3M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::original_position
<wasmparser::binary_reader::BinaryReader>::original_position
Line
Count
Source
144
3.31M
    pub fn original_position(&self) -> usize {
145
3.31M
        self.original_offset + self.position
146
3.31M
    }
<wasmparser::binary_reader::BinaryReader>::original_position
Line
Count
Source
144
934k
    pub fn original_position(&self) -> usize {
145
934k
        self.original_offset + self.position
146
934k
    }
<wasmparser::binary_reader::BinaryReader>::original_position
Line
Count
Source
144
66.2M
    pub fn original_position(&self) -> usize {
145
66.2M
        self.original_offset + self.position
146
66.2M
    }
<wasmparser::binary_reader::BinaryReader>::original_position
Line
Count
Source
144
6.93M
    pub fn original_position(&self) -> usize {
145
6.93M
        self.original_offset + self.position
146
6.93M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::original_position
<wasmparser::binary_reader::BinaryReader>::original_position
Line
Count
Source
144
449k
    pub fn original_position(&self) -> usize {
145
449k
        self.original_offset + self.position
146
449k
    }
<wasmparser::binary_reader::BinaryReader>::original_position
Line
Count
Source
144
2.46M
    pub fn original_position(&self) -> usize {
145
2.46M
        self.original_offset + self.position
146
2.46M
    }
147
148
    /// Whether or not to allow 64-bit memory arguments in functions.
149
    ///
150
    /// This is intended to be `true` when support for the memory64
151
    /// WebAssembly proposal is also enabled.
152
472k
    pub fn allow_memarg64(&mut self, allow: bool) {
153
472k
        self.allow_memarg64 = allow;
154
472k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::allow_memarg64
<wasmparser::binary_reader::BinaryReader>::allow_memarg64
Line
Count
Source
152
472k
    pub fn allow_memarg64(&mut self, allow: bool) {
153
472k
        self.allow_memarg64 = allow;
154
472k
    }
155
156
    /// Returns a range from the starting offset to the end of the buffer.
157
943k
    pub fn range(&self) -> Range<usize> {
158
943k
        self.original_offset..self.original_offset + self.buffer.len()
159
943k
    }
<wasmparser::binary_reader::BinaryReader>::range
Line
Count
Source
157
87.8k
    pub fn range(&self) -> Range<usize> {
158
87.8k
        self.original_offset..self.original_offset + self.buffer.len()
159
87.8k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::range
<wasmparser::binary_reader::BinaryReader>::range
Line
Count
Source
157
855k
    pub fn range(&self) -> Range<usize> {
158
855k
        self.original_offset..self.original_offset + self.buffer.len()
159
855k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::range
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::range
160
161
1.41M
    pub(crate) fn remaining_buffer(&self) -> &'a [u8] {
162
1.41M
        &self.buffer[self.position..]
163
1.41M
    }
164
165
11.4M
    fn ensure_has_byte(&self) -> Result<()> {
166
11.4M
        if self.position < self.buffer.len() {
167
11.4M
            Ok(())
168
        } else {
169
0
            Err(BinaryReaderError::eof(self.original_position(), 1))
170
        }
171
11.4M
    }
172
173
5.74M
    pub(crate) fn ensure_has_bytes(&self, len: usize) -> Result<()> {
174
5.74M
        if self.position + len <= self.buffer.len() {
175
5.74M
            Ok(())
176
        } else {
177
0
            let hint = self.position + len - self.buffer.len();
178
0
            Err(BinaryReaderError::eof(self.original_position(), hint))
179
        }
180
5.74M
    }
181
182
    /// Reads a value of type `T` from this binary reader, advancing the
183
    /// internal position in this reader forward as data is read.
184
    #[inline]
185
24.3M
    pub fn read<T>(&mut self) -> Result<T>
186
24.3M
    where
187
24.3M
        T: FromReader<'a>,
188
24.3M
    {
189
24.3M
        T::from_reader(self)
190
24.3M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<u32>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::ValType>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::operators::TryTable>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::HeapType>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::branch_hinting::BranchHint>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::branch_hinting::BranchHintFunction>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::data::Data>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::init::ConstExpr>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::names::IndirectNaming>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::names::Naming>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::MemoryType>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::TagType>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::RecGroup>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::tables::Table>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::exports::Export>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::globals::Global>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::imports::Import>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::elements::Element>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::producers::ProducersField>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::producers::ProducersFieldValue>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::canonicals::CanonicalFunction>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::types::ComponentType>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::types::CoreType>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::aliases::ComponentAlias>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::exports::ComponentExport>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::imports::ComponentImport>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::instances::ComponentInstance>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::instances::Instance>
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::data::Data>
Line
Count
Source
185
117k
    pub fn read<T>(&mut self) -> Result<T>
186
117k
    where
187
117k
        T: FromReader<'a>,
188
117k
    {
189
117k
        T::from_reader(self)
190
117k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::init::ConstExpr>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::names::Naming>
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::MemoryType>
Line
Count
Source
185
30.4k
    pub fn read<T>(&mut self) -> Result<T>
186
30.4k
    where
187
30.4k
        T: FromReader<'a>,
188
30.4k
    {
189
30.4k
        T::from_reader(self)
190
30.4k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::RecGroup>
Line
Count
Source
185
320k
    pub fn read<T>(&mut self) -> Result<T>
186
320k
    where
187
320k
        T: FromReader<'a>,
188
320k
    {
189
320k
        T::from_reader(self)
190
320k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::tables::Table>
Line
Count
Source
185
26.9k
    pub fn read<T>(&mut self) -> Result<T>
186
26.9k
    where
187
26.9k
        T: FromReader<'a>,
188
26.9k
    {
189
26.9k
        T::from_reader(self)
190
26.9k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::exports::Export>
Line
Count
Source
185
390k
    pub fn read<T>(&mut self) -> Result<T>
186
390k
    where
187
390k
        T: FromReader<'a>,
188
390k
    {
189
390k
        T::from_reader(self)
190
390k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::globals::Global>
Line
Count
Source
185
259k
    pub fn read<T>(&mut self) -> Result<T>
186
259k
    where
187
259k
        T: FromReader<'a>,
188
259k
    {
189
259k
        T::from_reader(self)
190
259k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::imports::Import>
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::elements::Element>
Line
Count
Source
185
173k
    pub fn read<T>(&mut self) -> Result<T>
186
173k
    where
187
173k
        T: FromReader<'a>,
188
173k
    {
189
173k
        T::from_reader(self)
190
173k
    }
<wasmparser::binary_reader::BinaryReader>::read::<u32>
Line
Count
Source
185
3.95M
    pub fn read<T>(&mut self) -> Result<T>
186
3.95M
    where
187
3.95M
        T: FromReader<'a>,
188
3.95M
    {
189
3.95M
        T::from_reader(self)
190
3.95M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::ValType>
Line
Count
Source
185
2.36M
    pub fn read<T>(&mut self) -> Result<T>
186
2.36M
    where
187
2.36M
        T: FromReader<'a>,
188
2.36M
    {
189
2.36M
        T::from_reader(self)
190
2.36M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::ValType>
Line
Count
Source
185
6.12M
    pub fn read<T>(&mut self) -> Result<T>
186
6.12M
    where
187
6.12M
        T: FromReader<'a>,
188
6.12M
    {
189
6.12M
        T::from_reader(self)
190
6.12M
    }
<wasmparser::binary_reader::BinaryReader>::read::<u32>
Line
Count
Source
185
5.33M
    pub fn read<T>(&mut self) -> Result<T>
186
5.33M
    where
187
5.33M
        T: FromReader<'a>,
188
5.33M
    {
189
5.33M
        T::from_reader(self)
190
5.33M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::operators::TryTable>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::HeapType>
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::SubType>
Line
Count
Source
185
540k
    pub fn read<T>(&mut self) -> Result<T>
186
540k
    where
187
540k
        T: FromReader<'a>,
188
540k
    {
189
540k
        T::from_reader(self)
190
540k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::FieldType>
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::exports::Export>
Line
Count
Source
185
226k
    pub fn read<T>(&mut self) -> Result<T>
186
226k
    where
187
226k
        T: FromReader<'a>,
188
226k
    {
189
226k
        T::from_reader(self)
190
226k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::operators::Catch>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::canonicals::CanonicalOption>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::types::VariantCase>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::types::ComponentValType>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::types::ModuleTypeDeclaration>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::types::InstanceTypeDeclaration>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::types::ComponentTypeDeclaration>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::instances::InstantiationArg>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::instances::ComponentInstantiationArg>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<&str>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<(&str, wasmparser::readers::component::types::ComponentValType)>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::start::ComponentStartFunction>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::exports::ComponentExportName>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::exports::ComponentExternalKind>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::imports::ComponentTypeRef>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::imports::TypeBounds>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::imports::ComponentImportName>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::instances::InstantiationArgKind>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::imports::Import>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::imports::TypeRef>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::types::ComponentFuncResult>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::imports::ComponentImport>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::types::CoreType>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::types::ComponentType>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::aliases::ComponentAlias>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<core::option::Option<wasmparser::readers::component::types::ComponentValType>>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::branch_hinting::BranchHint>
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::init::ConstExpr>
Line
Count
Source
185
932k
    pub fn read<T>(&mut self) -> Result<T>
186
932k
    where
187
932k
        T: FromReader<'a>,
188
932k
    {
189
932k
        T::from_reader(self)
190
932k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::linking::SymbolFlags>
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::exports::ExternalKind>
Line
Count
Source
185
677k
    pub fn read<T>(&mut self) -> Result<T>
186
677k
    where
187
677k
        T: FromReader<'a>,
188
677k
    {
189
677k
        T::from_reader(self)
190
677k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::RefType>
Line
Count
Source
185
50.5k
    pub fn read<T>(&mut self) -> Result<T>
186
50.5k
    where
187
50.5k
        T: FromReader<'a>,
188
50.5k
    {
189
50.5k
        T::from_reader(self)
190
50.5k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::GlobalType>
Line
Count
Source
185
447k
    pub fn read<T>(&mut self) -> Result<T>
186
447k
    where
187
447k
        T: FromReader<'a>,
188
447k
    {
189
447k
        T::from_reader(self)
190
447k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::TableType>
Line
Count
Source
185
50.5k
    pub fn read<T>(&mut self) -> Result<T>
186
50.5k
    where
187
50.5k
        T: FromReader<'a>,
188
50.5k
    {
189
50.5k
        T::from_reader(self)
190
50.5k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::MemoryType>
Line
Count
Source
185
19.6k
    pub fn read<T>(&mut self) -> Result<T>
186
19.6k
    where
187
19.6k
        T: FromReader<'a>,
188
19.6k
    {
189
19.6k
        T::from_reader(self)
190
19.6k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::TagType>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::linking::SegmentFlags>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::linking::ComdatSymbolKind>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::linking::DefinedDataSymbol>
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::FuncType>
Line
Count
Source
185
540k
    pub fn read<T>(&mut self) -> Result<T>
186
540k
    where
187
540k
        T: FromReader<'a>,
188
540k
    {
189
540k
        T::from_reader(self)
190
540k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::ArrayType>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::StructType>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::StorageType>
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::data::Data>
Line
Count
Source
185
66.1k
    pub fn read<T>(&mut self) -> Result<T>
186
66.1k
    where
187
66.1k
        T: FromReader<'a>,
188
66.1k
    {
189
66.1k
        T::from_reader(self)
190
66.1k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::RecGroup>
Line
Count
Source
185
181k
    pub fn read<T>(&mut self) -> Result<T>
186
181k
    where
187
181k
        T: FromReader<'a>,
188
181k
    {
189
181k
        T::from_reader(self)
190
181k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::tables::Table>
Line
Count
Source
185
16.9k
    pub fn read<T>(&mut self) -> Result<T>
186
16.9k
    where
187
16.9k
        T: FromReader<'a>,
188
16.9k
    {
189
16.9k
        T::from_reader(self)
190
16.9k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::globals::Global>
Line
Count
Source
185
149k
    pub fn read<T>(&mut self) -> Result<T>
186
149k
    where
187
149k
        T: FromReader<'a>,
188
149k
    {
189
149k
        T::from_reader(self)
190
149k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::elements::Element>
Line
Count
Source
185
95.8k
    pub fn read<T>(&mut self) -> Result<T>
186
95.8k
    where
187
95.8k
        T: FromReader<'a>,
188
95.8k
    {
189
95.8k
        T::from_reader(self)
190
95.8k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::canonicals::CanonicalFunction>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::exports::ComponentExport>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::instances::ComponentInstance>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::instances::Instance>
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::data::Data>
Line
Count
Source
185
14.9k
    pub fn read<T>(&mut self) -> Result<T>
186
14.9k
    where
187
14.9k
        T: FromReader<'a>,
188
14.9k
    {
189
14.9k
        T::from_reader(self)
190
14.9k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::init::ConstExpr>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::names::Naming>
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::MemoryType>
Line
Count
Source
185
8.54k
    pub fn read<T>(&mut self) -> Result<T>
186
8.54k
    where
187
8.54k
        T: FromReader<'a>,
188
8.54k
    {
189
8.54k
        T::from_reader(self)
190
8.54k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::RecGroup>
Line
Count
Source
185
37.7k
    pub fn read<T>(&mut self) -> Result<T>
186
37.7k
    where
187
37.7k
        T: FromReader<'a>,
188
37.7k
    {
189
37.7k
        T::from_reader(self)
190
37.7k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::tables::Table>
Line
Count
Source
185
6.69k
    pub fn read<T>(&mut self) -> Result<T>
186
6.69k
    where
187
6.69k
        T: FromReader<'a>,
188
6.69k
    {
189
6.69k
        T::from_reader(self)
190
6.69k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::exports::Export>
Line
Count
Source
185
60.5k
    pub fn read<T>(&mut self) -> Result<T>
186
60.5k
    where
187
60.5k
        T: FromReader<'a>,
188
60.5k
    {
189
60.5k
        T::from_reader(self)
190
60.5k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::globals::Global>
Line
Count
Source
185
38.9k
    pub fn read<T>(&mut self) -> Result<T>
186
38.9k
    where
187
38.9k
        T: FromReader<'a>,
188
38.9k
    {
189
38.9k
        T::from_reader(self)
190
38.9k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::imports::Import>
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::elements::Element>
Line
Count
Source
185
17.4k
    pub fn read<T>(&mut self) -> Result<T>
186
17.4k
    where
187
17.4k
        T: FromReader<'a>,
188
17.4k
    {
189
17.4k
        T::from_reader(self)
190
17.4k
    }
<wasmparser::binary_reader::BinaryReader>::read::<u32>
Line
Count
Source
185
540k
    pub fn read<T>(&mut self) -> Result<T>
186
540k
    where
187
540k
        T: FromReader<'a>,
188
540k
    {
189
540k
        T::from_reader(self)
190
540k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::ValType>
Line
Count
Source
185
562k
    pub fn read<T>(&mut self) -> Result<T>
186
562k
    where
187
562k
        T: FromReader<'a>,
188
562k
    {
189
562k
        T::from_reader(self)
190
562k
    }
191
192
0
    pub(crate) fn read_u7(&mut self) -> Result<u8> {
193
0
        let b = self.read_u8()?;
194
0
        if (b & 0x80) != 0 {
195
0
            return Err(BinaryReaderError::new(
196
0
                "invalid u7",
197
0
                self.original_position() - 1,
198
0
            ));
199
0
        }
200
0
        Ok(b)
201
0
    }
202
203
677k
    pub(crate) fn external_kind_from_byte(byte: u8, offset: usize) -> Result<ExternalKind> {
204
677k
        match byte {
205
120k
            0x00 => Ok(ExternalKind::Func),
206
185k
            0x01 => Ok(ExternalKind::Table),
207
141k
            0x02 => Ok(ExternalKind::Memory),
208
230k
            0x03 => Ok(ExternalKind::Global),
209
0
            0x04 => Ok(ExternalKind::Tag),
210
0
            x => Err(Self::invalid_leading_byte_error(x, "external kind", offset)),
211
        }
212
677k
    }
213
214
    /// Reads a variable-length 32-bit size from the byte stream while checking
215
    /// against a limit.
216
1.25M
    pub fn read_size(&mut self, limit: usize, desc: &str) -> Result<usize> {
217
1.25M
        let pos = self.original_position();
218
1.25M
        let size = self.read_var_u32()? as usize;
219
1.25M
        if size > limit {
220
0
            bail!(pos, "{desc} size is out of bounds");
221
1.25M
        }
222
1.25M
        Ok(size)
223
1.25M
    }
224
225
    /// Reads a variable-length 32-bit size from the byte stream while checking
226
    /// against a limit.
227
    ///
228
    /// Then reads that many values of type `T` and returns them as an iterator.
229
    ///
230
    /// Note that regardless of how many items are read from the returned
231
    /// iterator the items will still be parsed from this reader.
232
1.08M
    pub fn read_iter<'me, T>(
233
1.08M
        &'me mut self,
234
1.08M
        limit: usize,
235
1.08M
        desc: &str,
236
1.08M
    ) -> Result<BinaryReaderIter<'a, 'me, T>>
237
1.08M
    where
238
1.08M
        T: FromReader<'a>,
239
1.08M
    {
240
1.08M
        let size = self.read_size(limit, desc)?;
241
1.08M
        Ok(BinaryReaderIter {
242
1.08M
            remaining: size,
243
1.08M
            reader: self,
244
1.08M
            _marker: marker::PhantomData,
245
1.08M
        })
246
1.08M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::core::types::SubType>
<wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::core::types::ValType>
Line
Count
Source
232
1.08M
    pub fn read_iter<'me, T>(
233
1.08M
        &'me mut self,
234
1.08M
        limit: usize,
235
1.08M
        desc: &str,
236
1.08M
    ) -> Result<BinaryReaderIter<'a, 'me, T>>
237
1.08M
    where
238
1.08M
        T: FromReader<'a>,
239
1.08M
    {
240
1.08M
        let size = self.read_size(limit, desc)?;
241
1.08M
        Ok(BinaryReaderIter {
242
1.08M
            remaining: size,
243
1.08M
            reader: self,
244
1.08M
            _marker: marker::PhantomData,
245
1.08M
        })
246
1.08M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::core::types::FieldType>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::core::exports::Export>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::core::operators::Catch>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::component::canonicals::CanonicalOption>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::component::types::VariantCase>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::component::types::ComponentValType>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::component::types::ModuleTypeDeclaration>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::component::types::InstanceTypeDeclaration>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::component::types::ComponentTypeDeclaration>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::component::instances::InstantiationArg>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::component::instances::ComponentInstantiationArg>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read_iter::<&str>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read_iter::<(&str, wasmparser::readers::component::types::ComponentValType)>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read_iter::<u32>
247
248
713k
    fn read_first_byte_and_var_u32(&mut self) -> Result<(u8, u32)> {
249
713k
        let pos = self.position;
250
713k
        let val = self.read_var_u32()?;
251
713k
        Ok((self.buffer[pos], val))
252
713k
    }
253
254
1.07M
    fn read_memarg(&mut self, max_align: u8) -> Result<MemArg> {
255
1.07M
        let flags_pos = self.original_position();
256
1.07M
        let mut flags = self.read_var_u32()?;
257
1.07M
        let memory = if flags & (1 << 6) != 0 {
258
0
            flags ^= 1 << 6;
259
0
            self.read_var_u32()?
260
        } else {
261
1.07M
            0
262
        };
263
1.07M
        let align = if flags >= (1 << 6) {
264
0
            return Err(BinaryReaderError::new("alignment too large", flags_pos));
265
        } else {
266
1.07M
            flags as u8
267
        };
268
1.07M
        let offset = if self.allow_memarg64 {
269
0
            self.read_var_u64()?
270
        } else {
271
1.07M
            u64::from(self.read_var_u32()?)
272
        };
273
1.07M
        Ok(MemArg {
274
1.07M
            align,
275
1.07M
            max_align,
276
1.07M
            offset,
277
1.07M
            memory,
278
1.07M
        })
279
1.07M
    }
280
281
170k
    fn read_br_table(&mut self) -> Result<BrTable<'a>> {
282
170k
        let cnt = self.read_size(MAX_WASM_BR_TABLE_SIZE, "br_table")?;
283
170k
        let start = self.position;
284
170k
        for _ in 0..cnt {
285
434k
            self.read_var_u32()?;
286
        }
287
170k
        let end = self.position;
288
170k
        let default = self.read_var_u32()?;
289
170k
        Ok(BrTable {
290
170k
            reader: BinaryReader::new_with_offset(&self.buffer[start..end], start),
291
170k
            cnt: cnt as u32,
292
170k
            default,
293
170k
        })
294
170k
    }
295
296
    /// Returns whether the `BinaryReader` has reached the end of the file.
297
    #[inline]
298
17.7M
    pub fn eof(&self) -> bool {
299
17.7M
        self.position >= self.buffer.len()
300
17.7M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::eof
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::eof
<wasmparser::binary_reader::BinaryReader>::eof
Line
Count
Source
298
445k
    pub fn eof(&self) -> bool {
299
445k
        self.position >= self.buffer.len()
300
445k
    }
<wasmparser::binary_reader::BinaryReader>::eof
Line
Count
Source
298
17.1M
    pub fn eof(&self) -> bool {
299
17.1M
        self.position >= self.buffer.len()
300
17.1M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::eof
<wasmparser::binary_reader::BinaryReader>::eof
Line
Count
Source
298
107k
    pub fn eof(&self) -> bool {
299
107k
        self.position >= self.buffer.len()
300
107k
    }
301
302
    /// Returns the `BinaryReader`'s current position.
303
    #[inline]
304
3.48M
    pub fn current_position(&self) -> usize {
305
3.48M
        self.position
306
3.48M
    }
<wasmparser::binary_reader::BinaryReader>::current_position
Line
Count
Source
304
3.48M
    pub fn current_position(&self) -> usize {
305
3.48M
        self.position
306
3.48M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::current_position
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::current_position
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::current_position
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::current_position
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::current_position
307
308
    /// Returns the number of bytes remaining in the `BinaryReader`.
309
    #[inline]
310
1.72M
    pub fn bytes_remaining(&self) -> usize {
311
1.72M
        self.buffer.len() - self.position
312
1.72M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::bytes_remaining
<wasmparser::binary_reader::BinaryReader>::bytes_remaining
Line
Count
Source
310
555k
    pub fn bytes_remaining(&self) -> usize {
311
555k
        self.buffer.len() - self.position
312
555k
    }
<wasmparser::binary_reader::BinaryReader>::bytes_remaining
Line
Count
Source
310
784k
    pub fn bytes_remaining(&self) -> usize {
311
784k
        self.buffer.len() - self.position
312
784k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::bytes_remaining
<wasmparser::binary_reader::BinaryReader>::bytes_remaining
Line
Count
Source
310
387k
    pub fn bytes_remaining(&self) -> usize {
311
387k
        self.buffer.len() - self.position
312
387k
    }
313
314
    /// Advances the `BinaryReader` `size` bytes, and returns a slice from the
315
    /// current position of `size` length.
316
    ///
317
    /// # Errors
318
    /// If `size` exceeds the remaining length in `BinaryReader`.
319
3.71M
    pub fn read_bytes(&mut self, size: usize) -> Result<&'a [u8]> {
320
3.71M
        self.ensure_has_bytes(size)?;
321
3.71M
        let start = self.position;
322
3.71M
        self.position += size;
323
3.71M
        Ok(&self.buffer[start..self.position])
324
3.71M
    }
325
326
    /// Reads a length-prefixed list of bytes from this reader and returns a
327
    /// new `BinaryReader` to read that list of bytes.
328
    ///
329
    /// Advances the position of this reader by the number of bytes read.
330
198k
    pub fn read_reader(&mut self, err: &str) -> Result<BinaryReader<'a>> {
331
198k
        let size = self.read_var_u32()? as usize;
332
198k
        let body_start = self.position;
333
198k
        let buffer = match self.buffer.get(self.position..).and_then(|s| s.get(..size)) {
334
198k
            Some(buf) => buf,
335
            None => {
336
0
                return Err(BinaryReaderError::new(
337
0
                    err,
338
0
                    self.original_offset + self.buffer.len(),
339
0
                ))
340
            }
341
        };
342
198k
        self.position += size;
343
198k
        Ok(BinaryReader::new_with_offset(
344
198k
            buffer,
345
198k
            self.original_offset + body_start,
346
198k
        ))
347
198k
    }
348
349
    /// Advances the `BinaryReader` four bytes and returns a `u32`.
350
    /// # Errors
351
    /// If `BinaryReader` has less than four bytes remaining.
352
1.09M
    pub fn read_u32(&mut self) -> Result<u32> {
353
1.09M
        self.ensure_has_bytes(4)?;
354
1.09M
        let word = u32::from_le_bytes(
355
1.09M
            self.buffer[self.position..self.position + 4]
356
1.09M
                .try_into()
357
1.09M
                .unwrap(),
358
1.09M
        );
359
1.09M
        self.position += 4;
360
1.09M
        Ok(word)
361
1.09M
    }
362
363
    /// Advances the `BinaryReader` eight bytes and returns a `u64`.
364
    /// # Errors
365
    /// If `BinaryReader` has less than eight bytes remaining.
366
935k
    pub fn read_u64(&mut self) -> Result<u64> {
367
935k
        self.ensure_has_bytes(8)?;
368
935k
        let word = u64::from_le_bytes(
369
935k
            self.buffer[self.position..self.position + 8]
370
935k
                .try_into()
371
935k
                .unwrap(),
372
935k
        );
373
935k
        self.position += 8;
374
935k
        Ok(word)
375
935k
    }
376
377
    /// Advances the `BinaryReader` a single byte.
378
    ///
379
    /// # Errors
380
    ///
381
    /// If `BinaryReader` has no bytes remaining.
382
    #[inline]
383
96.2M
    pub fn read_u8(&mut self) -> Result<u8> {
384
96.2M
        let b = match self.buffer.get(self.position) {
385
96.2M
            Some(b) => *b,
386
0
            None => return Err(self.eof_err()),
387
        };
388
96.2M
        self.position += 1;
389
96.2M
        Ok(b)
390
96.2M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read_u8
<wasmparser::binary_reader::BinaryReader>::read_u8
Line
Count
Source
383
2.64M
    pub fn read_u8(&mut self) -> Result<u8> {
384
2.64M
        let b = match self.buffer.get(self.position) {
385
2.64M
            Some(b) => *b,
386
0
            None => return Err(self.eof_err()),
387
        };
388
2.64M
        self.position += 1;
389
2.64M
        Ok(b)
390
2.64M
    }
<wasmparser::binary_reader::BinaryReader>::read_u8
Line
Count
Source
383
92.8M
    pub fn read_u8(&mut self) -> Result<u8> {
384
92.8M
        let b = match self.buffer.get(self.position) {
385
92.8M
            Some(b) => *b,
386
0
            None => return Err(self.eof_err()),
387
        };
388
92.8M
        self.position += 1;
389
92.8M
        Ok(b)
390
92.8M
    }
<wasmparser::binary_reader::BinaryReader>::read_u8
Line
Count
Source
383
756k
    pub fn read_u8(&mut self) -> Result<u8> {
384
756k
        let b = match self.buffer.get(self.position) {
385
756k
            Some(b) => *b,
386
0
            None => return Err(self.eof_err()),
387
        };
388
756k
        self.position += 1;
389
756k
        Ok(b)
390
756k
    }
391
392
    #[cold]
393
0
    fn eof_err(&self) -> BinaryReaderError {
394
0
        BinaryReaderError::eof(self.original_position(), 1)
395
0
    }
396
397
    /// Advances the `BinaryReader` up to four bytes to parse a variable
398
    /// length integer as a `u32`.
399
    ///
400
    /// # Errors
401
    ///
402
    /// If `BinaryReader` has less than one or up to four bytes remaining, or
403
    /// the integer is larger than 32 bits.
404
    #[inline]
405
36.0M
    pub fn read_var_u32(&mut self) -> Result<u32> {
406
        // Optimization for single byte i32.
407
36.0M
        let byte = self.read_u8()?;
408
36.0M
        if (byte & 0x80) == 0 {
409
34.2M
            Ok(u32::from(byte))
410
        } else {
411
1.79M
            self.read_var_u32_big(byte)
412
        }
413
36.0M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read_var_u32
<wasmparser::binary_reader::BinaryReader>::read_var_u32
Line
Count
Source
405
2.64M
    pub fn read_var_u32(&mut self) -> Result<u32> {
406
        // Optimization for single byte i32.
407
2.64M
        let byte = self.read_u8()?;
408
2.64M
        if (byte & 0x80) == 0 {
409
2.64M
            Ok(u32::from(byte))
410
        } else {
411
0
            self.read_var_u32_big(byte)
412
        }
413
2.64M
    }
<wasmparser::binary_reader::BinaryReader>::read_var_u32
Line
Count
Source
405
32.6M
    pub fn read_var_u32(&mut self) -> Result<u32> {
406
        // Optimization for single byte i32.
407
32.6M
        let byte = self.read_u8()?;
408
32.6M
        if (byte & 0x80) == 0 {
409
30.8M
            Ok(u32::from(byte))
410
        } else {
411
1.79M
            self.read_var_u32_big(byte)
412
        }
413
32.6M
    }
<wasmparser::binary_reader::BinaryReader>::read_var_u32
Line
Count
Source
405
756k
    pub fn read_var_u32(&mut self) -> Result<u32> {
406
        // Optimization for single byte i32.
407
756k
        let byte = self.read_u8()?;
408
756k
        if (byte & 0x80) == 0 {
409
756k
            Ok(u32::from(byte))
410
        } else {
411
0
            self.read_var_u32_big(byte)
412
        }
413
756k
    }
414
415
1.79M
    fn read_var_u32_big(&mut self, byte: u8) -> Result<u32> {
416
1.79M
        let mut result = (byte & 0x7F) as u32;
417
1.79M
        let mut shift = 7;
418
        loop {
419
4.47M
            let byte = self.read_u8()?;
420
4.47M
            result |= ((byte & 0x7F) as u32) << shift;
421
4.47M
            if shift >= 25 && (byte >> (32 - shift)) != 0 {
422
0
                let msg = if byte & 0x80 != 0 {
423
0
                    "invalid var_u32: integer representation too long"
424
                } else {
425
0
                    "invalid var_u32: integer too large"
426
                };
427
                // The continuation bit or unused bits are set.
428
0
                return Err(BinaryReaderError::new(msg, self.original_position() - 1));
429
4.47M
            }
430
4.47M
            shift += 7;
431
4.47M
            if (byte & 0x80) == 0 {
432
1.79M
                break;
433
2.67M
            }
434
        }
435
1.79M
        Ok(result)
436
1.79M
    }
437
438
    /// Advances the `BinaryReader` up to four bytes to parse a variable
439
    /// length integer as a `u64`.
440
    ///
441
    /// # Errors
442
    ///
443
    /// If `BinaryReader` has less than one or up to eight bytes remaining, or
444
    /// the integer is larger than 64 bits.
445
    #[inline]
446
0
    pub fn read_var_u64(&mut self) -> Result<u64> {
447
        // Optimization for single byte u64.
448
0
        let byte = u64::from(self.read_u8()?);
449
0
        if (byte & 0x80) == 0 {
450
0
            Ok(byte)
451
        } else {
452
0
            self.read_var_u64_big(byte)
453
        }
454
0
    }
455
456
0
    fn read_var_u64_big(&mut self, byte: u64) -> Result<u64> {
457
0
        let mut result = byte & 0x7F;
458
0
        let mut shift = 7;
459
        loop {
460
0
            let byte = u64::from(self.read_u8()?);
461
0
            result |= (byte & 0x7F) << shift;
462
0
            if shift >= 57 && (byte >> (64 - shift)) != 0 {
463
0
                let msg = if byte & 0x80 != 0 {
464
0
                    "invalid var_u64: integer representation too long"
465
                } else {
466
0
                    "invalid var_u64: integer too large"
467
                };
468
                // The continuation bit or unused bits are set.
469
0
                return Err(BinaryReaderError::new(msg, self.original_position() - 1));
470
0
            }
471
0
            shift += 7;
472
0
            if (byte & 0x80) == 0 {
473
0
                break;
474
0
            }
475
        }
476
0
        Ok(result)
477
0
    }
478
479
    /// Executes `f` to skip some data in this binary reader and then returns a
480
    /// reader which will read the skipped data.
481
1.21M
    pub fn skip(&mut self, f: impl FnOnce(&mut Self) -> Result<()>) -> Result<Self> {
482
1.21M
        let start = self.position;
483
1.21M
        f(self)?;
484
1.21M
        Ok(BinaryReader::new_with_offset(
485
1.21M
            &self.buffer[start..self.position],
486
1.21M
            self.original_offset + start,
487
1.21M
        ))
488
1.21M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::skip::<<wasmparser::readers::core::branch_hinting::BranchHintFunction as wasmparser::readers::FromReader>::from_reader::{closure#0}>
<wasmparser::binary_reader::BinaryReader>::skip::<<wasmparser::readers::core::elements::Element as wasmparser::readers::FromReader>::from_reader::{closure#0}>
Line
Count
Source
481
286k
    pub fn skip(&mut self, f: impl FnOnce(&mut Self) -> Result<()>) -> Result<Self> {
482
286k
        let start = self.position;
483
286k
        f(self)?;
484
286k
        Ok(BinaryReader::new_with_offset(
485
286k
            &self.buffer[start..self.position],
486
286k
            self.original_offset + start,
487
286k
        ))
488
286k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::skip::<<wasmparser::readers::core::producers::ProducersField as wasmparser::readers::FromReader>::from_reader::{closure#0}>
<wasmparser::binary_reader::BinaryReader>::skip::<<wasmparser::readers::core::init::ConstExpr as wasmparser::readers::FromReader>::from_reader::{closure#0}>
Line
Count
Source
481
932k
    pub fn skip(&mut self, f: impl FnOnce(&mut Self) -> Result<()>) -> Result<Self> {
482
932k
        let start = self.position;
483
932k
        f(self)?;
484
932k
        Ok(BinaryReader::new_with_offset(
485
932k
            &self.buffer[start..self.position],
486
932k
            self.original_offset + start,
487
932k
        ))
488
932k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::skip::<<wasmparser::readers::core::names::IndirectNaming as wasmparser::readers::FromReader>::from_reader::{closure#0}>
489
490
    /// Advances the `BinaryReader` past a WebAssembly string. This method does
491
    /// not perform any utf-8 validation.
492
    /// # Errors
493
    /// If `BinaryReader` has less than four bytes, the string's length exceeds
494
    /// the remaining bytes, or the string length
495
    /// exceeds `limits::MAX_WASM_STRING_SIZE`.
496
0
    pub fn skip_string(&mut self) -> Result<()> {
497
0
        let len = self.read_var_u32()? as usize;
498
0
        if len > MAX_WASM_STRING_SIZE {
499
0
            return Err(BinaryReaderError::new(
500
0
                "string size out of bounds",
501
0
                self.original_position() - 1,
502
0
            ));
503
0
        }
504
0
        self.ensure_has_bytes(len)?;
505
0
        self.position += len;
506
0
        Ok(())
507
0
    }
508
509
    /// Advances the `BinaryReader` up to four bytes to parse a variable
510
    /// length integer as a `i32`.
511
    /// # Errors
512
    /// If `BinaryReader` has less than one or up to four bytes remaining, or
513
    /// the integer is larger than 32 bits.
514
    #[inline]
515
2.10M
    pub fn read_var_i32(&mut self) -> Result<i32> {
516
        // Optimization for single byte i32.
517
2.10M
        let byte = self.read_u8()?;
518
2.10M
        if (byte & 0x80) == 0 {
519
84.0k
            Ok(((byte as i32) << 25) >> 25)
520
        } else {
521
2.02M
            self.read_var_i32_big(byte)
522
        }
523
2.10M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read_var_i32
<wasmparser::binary_reader::BinaryReader>::read_var_i32
Line
Count
Source
515
2.10M
    pub fn read_var_i32(&mut self) -> Result<i32> {
516
        // Optimization for single byte i32.
517
2.10M
        let byte = self.read_u8()?;
518
2.10M
        if (byte & 0x80) == 0 {
519
84.0k
            Ok(((byte as i32) << 25) >> 25)
520
        } else {
521
2.02M
            self.read_var_i32_big(byte)
522
        }
523
2.10M
    }
524
525
2.02M
    fn read_var_i32_big(&mut self, byte: u8) -> Result<i32> {
526
2.02M
        let mut result = (byte & 0x7F) as i32;
527
2.02M
        let mut shift = 7;
528
        loop {
529
7.78M
            let byte = self.read_u8()?;
530
7.78M
            result |= ((byte & 0x7F) as i32) << shift;
531
7.78M
            if shift >= 25 {
532
1.78M
                let continuation_bit = (byte & 0x80) != 0;
533
1.78M
                let sign_and_unused_bit = (byte << 1) as i8 >> (32 - shift);
534
1.78M
                if continuation_bit || (sign_and_unused_bit != 0 && sign_and_unused_bit != -1) {
535
0
                    let msg = if continuation_bit {
536
0
                        "invalid var_i32: integer representation too long"
537
                    } else {
538
0
                        "invalid var_i32: integer too large"
539
                    };
540
0
                    return Err(BinaryReaderError::new(msg, self.original_position() - 1));
541
1.78M
                }
542
1.78M
                return Ok(result);
543
5.99M
            }
544
5.99M
            shift += 7;
545
5.99M
            if (byte & 0x80) == 0 {
546
236k
                break;
547
5.76M
            }
548
        }
549
236k
        let ashift = 32 - shift;
550
236k
        Ok((result << ashift) >> ashift)
551
2.02M
    }
552
553
    /// Advances the `BinaryReader` up to four bytes to parse a variable
554
    /// length integer as a signed 33 bit integer, returned as a `i64`.
555
    /// # Errors
556
    /// If `BinaryReader` has less than one or up to five bytes remaining, or
557
    /// the integer is larger than 33 bits.
558
38.5k
    pub fn read_var_s33(&mut self) -> Result<i64> {
559
        // Optimization for single byte.
560
38.5k
        let byte = self.read_u8()?;
561
38.5k
        if (byte & 0x80) == 0 {
562
37.9k
            return Ok(((byte as i8) << 1) as i64 >> 1);
563
582
        }
564
582
565
582
        let mut result = (byte & 0x7F) as i64;
566
582
        let mut shift = 7;
567
        loop {
568
582
            let byte = self.read_u8()?;
569
582
            result |= ((byte & 0x7F) as i64) << shift;
570
582
            if shift >= 25 {
571
0
                let continuation_bit = (byte & 0x80) != 0;
572
0
                let sign_and_unused_bit = (byte << 1) as i8 >> (33 - shift);
573
0
                if continuation_bit || (sign_and_unused_bit != 0 && sign_and_unused_bit != -1) {
574
0
                    return Err(BinaryReaderError::new(
575
0
                        "invalid var_s33: integer representation too long",
576
0
                        self.original_position() - 1,
577
0
                    ));
578
0
                }
579
0
                return Ok(result);
580
582
            }
581
582
            shift += 7;
582
582
            if (byte & 0x80) == 0 {
583
582
                break;
584
0
            }
585
        }
586
582
        let ashift = 64 - shift;
587
582
        Ok((result << ashift) >> ashift)
588
38.5k
    }
589
590
    /// Advances the `BinaryReader` up to eight bytes to parse a variable
591
    /// length integer as a 64 bit integer, returned as a `i64`.
592
    /// # Errors
593
    /// If `BinaryReader` has less than one or up to eight bytes remaining, or
594
    /// the integer is larger than 64 bits.
595
1.02M
    pub fn read_var_i64(&mut self) -> Result<i64> {
596
1.02M
        let mut result: i64 = 0;
597
1.02M
        let mut shift = 0;
598
        loop {
599
9.57M
            let byte = self.read_u8()?;
600
9.57M
            result |= i64::from(byte & 0x7F) << shift;
601
9.57M
            if shift >= 57 {
602
542k
                let continuation_bit = (byte & 0x80) != 0;
603
542k
                let sign_and_unused_bit = ((byte << 1) as i8) >> (64 - shift);
604
542k
                if continuation_bit || (sign_and_unused_bit != 0 && sign_and_unused_bit != -1) {
605
0
                    let msg = if continuation_bit {
606
0
                        "invalid var_i64: integer representation too long"
607
                    } else {
608
0
                        "invalid var_i64: integer too large"
609
                    };
610
0
                    return Err(BinaryReaderError::new(msg, self.original_position() - 1));
611
542k
                }
612
542k
                return Ok(result);
613
9.03M
            }
614
9.03M
            shift += 7;
615
9.03M
            if (byte & 0x80) == 0 {
616
479k
                break;
617
8.55M
            }
618
        }
619
479k
        let ashift = 64 - shift;
620
479k
        Ok((result << ashift) >> ashift)
621
1.02M
    }
622
623
    /// Advances the `BinaryReader` up to four bytes to parse a variable
624
    /// length integer as a 32 bit floating point integer, returned as `Ieee32`.
625
    /// # Errors
626
    /// If `BinaryReader` has less than one or up to four bytes remaining, or
627
    /// the integer is larger than 32 bits.
628
966k
    pub fn read_f32(&mut self) -> Result<Ieee32> {
629
966k
        let value = self.read_u32()?;
630
966k
        Ok(Ieee32(value))
631
966k
    }
632
633
    /// Advances the `BinaryReader` up to four bytes to parse a variable
634
    /// length integer as a 32 bit floating point integer, returned as `Ieee32`.
635
    /// # Errors
636
    /// If `BinaryReader` has less than one or up to four bytes remaining, or
637
    /// the integer is larger than 32 bits.
638
935k
    pub fn read_f64(&mut self) -> Result<Ieee64> {
639
935k
        let value = self.read_u64()?;
640
935k
        Ok(Ieee64(value))
641
935k
    }
642
643
    /// Reads a WebAssembly string from the module.
644
    /// # Errors
645
    /// If `BinaryReader` has less than up to four bytes remaining, the string's
646
    /// length exceeds the remaining bytes, the string's length exceeds
647
    /// `limits::MAX_WASM_STRING_SIZE`, or the string contains invalid utf-8.
648
677k
    pub fn read_string(&mut self) -> Result<&'a str> {
649
677k
        let len = self.read_var_u32()? as usize;
650
677k
        if len > MAX_WASM_STRING_SIZE {
651
0
            return Err(BinaryReaderError::new(
652
0
                "string size out of bounds",
653
0
                self.original_position() - 1,
654
0
            ));
655
677k
        }
656
677k
        let bytes = self.read_bytes(len)?;
657
677k
        str::from_utf8(bytes).map_err(|_| {
658
0
            BinaryReaderError::new("invalid UTF-8 encoding", self.original_position() - 1)
659
677k
        })
660
677k
    }
661
662
    #[cold]
663
0
    pub(crate) fn invalid_leading_byte<T>(&self, byte: u8, desc: &str) -> Result<T> {
664
0
        Err(Self::invalid_leading_byte_error(
665
0
            byte,
666
0
            desc,
667
0
            self.original_position() - 1,
668
0
        ))
669
0
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<core::option::Option<wasmparser::readers::component::types::ComponentValType>>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::core::types::CompositeType>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::core::operators::Catch>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::canonicals::CanonicalOption>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::canonicals::CanonicalFunction>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::types::VariantCase>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::types::ComponentType>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::types::ComponentFuncResult>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::types::ComponentDefinedType>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::types::ModuleTypeDeclaration>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::types::InstanceTypeDeclaration>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::types::CoreType>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::aliases::ComponentAlias>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::exports::ComponentExportName>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::imports::TypeBounds>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::imports::ComponentImportName>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::instances::ComponentInstance>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::instances::InstantiationArgKind>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::instances::Instance>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<bool>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<()>
670
671
0
    pub(crate) fn invalid_leading_byte_error(
672
0
        byte: u8,
673
0
        desc: &str,
674
0
        offset: usize,
675
0
    ) -> BinaryReaderError {
676
0
        format_err!(offset, "invalid leading byte (0x{byte:x}) for {desc}")
677
0
    }
678
679
11.4M
    pub(crate) fn peek(&self) -> Result<u8> {
680
11.4M
        self.ensure_has_byte()?;
681
11.4M
        Ok(self.buffer[self.position])
682
11.4M
    }
683
684
1.78M
    pub(crate) fn read_block_type(&mut self) -> Result<BlockType> {
685
1.78M
        let b = self.peek()?;
686
687
        // Check for empty block
688
1.78M
        if b == 0x40 {
689
590k
            self.position += 1;
690
590k
            return Ok(BlockType::Empty);
691
1.19M
        }
692
1.19M
693
1.19M
        // Check for a block type of form [] -> [t].
694
1.19M
        if ValType::is_valtype_byte(b) {
695
1.15M
            return Ok(BlockType::Type(self.read()?));
696
38.5k
        }
697
698
        // Not empty or a singular type, so read the function type index
699
38.5k
        let idx = self.read_var_s33()?;
700
38.5k
        match u32::try_from(idx) {
701
38.5k
            Ok(idx) => Ok(BlockType::FuncType(idx)),
702
            Err(_) => {
703
0
                return Err(BinaryReaderError::new(
704
0
                    "invalid function type",
705
0
                    self.original_position(),
706
0
                ));
707
            }
708
        }
709
1.78M
    }
710
711
    /// Visit the next available operator with the specified [`VisitOperator`] instance.
712
    ///
713
    /// Note that this does not implicitly propagate any additional information such as instruction
714
    /// offsets. In order to do so, consider storing such data within the visitor before visiting.
715
    ///
716
    /// # Errors
717
    ///
718
    /// If `BinaryReader` has less bytes remaining than required to parse the `Operator`.
719
    ///
720
    /// # Examples
721
    ///
722
    /// Store an offset for use in diagnostics or any other purposes:
723
    ///
724
    /// ```
725
    /// # use wasmparser::{BinaryReader, VisitOperator, Result, for_each_operator};
726
    ///
727
    /// pub fn dump(mut reader: BinaryReader) -> Result<()> {
728
    ///     let mut visitor = Dumper { offset: 0 };
729
    ///     while !reader.eof() {
730
    ///         visitor.offset = reader.original_position();
731
    ///         reader.visit_operator(&mut visitor)?;
732
    ///     }
733
    ///     Ok(())
734
    /// }
735
    ///
736
    /// struct Dumper {
737
    ///     offset: usize
738
    /// }
739
    ///
740
    /// macro_rules! define_visit_operator {
741
    ///     ($(@$proposal:ident $op:ident $({ $($arg:ident: $argty:ty),* })? => $visit:ident)*) => {
742
    ///         $(
743
    ///             fn $visit(&mut self $($(,$arg: $argty)*)?) -> Self::Output {
744
    ///                 println!("{}: {}", self.offset, stringify!($visit));
745
    ///             }
746
    ///         )*
747
    ///     }
748
    /// }
749
    ///
750
    /// impl<'a> VisitOperator<'a> for Dumper {
751
    ///     type Output = ();
752
    ///     for_each_operator!(define_visit_operator);
753
    /// }
754
    ///
755
    /// ```
756
33.8M
    pub fn visit_operator<T>(&mut self, visitor: &mut T) -> Result<<T as VisitOperator<'a>>::Output>
757
33.8M
    where
758
33.8M
        T: VisitOperator<'a>,
759
33.8M
    {
760
33.8M
        let pos = self.original_position();
761
33.8M
        let code = self.read_u8()? as u8;
762
33.8M
        Ok(match code {
763
2.13M
            0x00 => visitor.visit_unreachable(),
764
1.02M
            0x01 => visitor.visit_nop(),
765
810k
            0x02 => visitor.visit_block(self.read_block_type()?),
766
881k
            0x03 => visitor.visit_loop(self.read_block_type()?),
767
90.2k
            0x04 => visitor.visit_if(self.read_block_type()?),
768
73.9k
            0x05 => visitor.visit_else(),
769
0
            0x06 => visitor.visit_try(self.read_block_type()?),
770
0
            0x07 => visitor.visit_catch(self.read_var_u32()?),
771
0
            0x08 => visitor.visit_throw(self.read_var_u32()?),
772
0
            0x09 => visitor.visit_rethrow(self.read_var_u32()?),
773
0
            0x0a => visitor.visit_throw_ref(),
774
3.96M
            0x0b => visitor.visit_end(),
775
1.03M
            0x0c => visitor.visit_br(self.read_var_u32()?),
776
108k
            0x0d => visitor.visit_br_if(self.read_var_u32()?),
777
170k
            0x0e => visitor.visit_br_table(self.read_br_table()?),
778
1.05M
            0x0f => visitor.visit_return(),
779
506k
            0x10 => visitor.visit_call(self.read_var_u32()?),
780
            0x11 => {
781
182k
                let index = self.read_var_u32()?;
782
182k
                let (table_byte, table_index) = self.read_first_byte_and_var_u32()?;
783
182k
                visitor.visit_call_indirect(index, table_index, table_byte)
784
            }
785
0
            0x12 => visitor.visit_return_call(self.read_var_u32()?),
786
0
            0x13 => visitor.visit_return_call_indirect(self.read_var_u32()?, self.read_var_u32()?),
787
0
            0x14 => visitor.visit_call_ref(self.read()?),
788
0
            0x15 => visitor.visit_return_call_ref(self.read()?),
789
0
            0x18 => visitor.visit_delegate(self.read_var_u32()?),
790
0
            0x19 => visitor.visit_catch_all(),
791
452k
            0x1a => visitor.visit_drop(),
792
40.6k
            0x1b => visitor.visit_select(),
793
            0x1c => {
794
0
                let results = self.read_var_u32()?;
795
0
                if results != 1 {
796
0
                    return Err(BinaryReaderError::new(
797
0
                        "invalid result arity",
798
0
                        self.position,
799
0
                    ));
800
0
                }
801
0
                visitor.visit_typed_select(self.read()?)
802
            }
803
0
            0x1f => visitor.visit_try_table(self.read()?),
804
805
2.69M
            0x20 => visitor.visit_local_get(self.read_var_u32()?),
806
178k
            0x21 => visitor.visit_local_set(self.read_var_u32()?),
807
425k
            0x22 => visitor.visit_local_tee(self.read_var_u32()?),
808
784k
            0x23 => visitor.visit_global_get(self.read_var_u32()?),
809
71.5k
            0x24 => visitor.visit_global_set(self.read_var_u32()?),
810
0
            0x25 => visitor.visit_table_get(self.read_var_u32()?),
811
0
            0x26 => visitor.visit_table_set(self.read_var_u32()?),
812
813
164k
            0x28 => visitor.visit_i32_load(self.read_memarg(2)?),
814
63.9k
            0x29 => visitor.visit_i64_load(self.read_memarg(3)?),
815
29.9k
            0x2a => visitor.visit_f32_load(self.read_memarg(2)?),
816
37.9k
            0x2b => visitor.visit_f64_load(self.read_memarg(3)?),
817
83.8k
            0x2c => visitor.visit_i32_load8_s(self.read_memarg(0)?),
818
61.2k
            0x2d => visitor.visit_i32_load8_u(self.read_memarg(0)?),
819
139k
            0x2e => visitor.visit_i32_load16_s(self.read_memarg(1)?),
820
161k
            0x2f => visitor.visit_i32_load16_u(self.read_memarg(1)?),
821
24.8k
            0x30 => visitor.visit_i64_load8_s(self.read_memarg(0)?),
822
23.1k
            0x31 => visitor.visit_i64_load8_u(self.read_memarg(0)?),
823
54.8k
            0x32 => visitor.visit_i64_load16_s(self.read_memarg(1)?),
824
73.5k
            0x33 => visitor.visit_i64_load16_u(self.read_memarg(1)?),
825
62.6k
            0x34 => visitor.visit_i64_load32_s(self.read_memarg(2)?),
826
29.4k
            0x35 => visitor.visit_i64_load32_u(self.read_memarg(2)?),
827
1.93k
            0x36 => visitor.visit_i32_store(self.read_memarg(2)?),
828
19.5k
            0x37 => visitor.visit_i64_store(self.read_memarg(3)?),
829
5.13k
            0x38 => visitor.visit_f32_store(self.read_memarg(2)?),
830
4.06k
            0x39 => visitor.visit_f64_store(self.read_memarg(3)?),
831
3.46k
            0x3a => visitor.visit_i32_store8(self.read_memarg(0)?),
832
5.98k
            0x3b => visitor.visit_i32_store16(self.read_memarg(1)?),
833
6.83k
            0x3c => visitor.visit_i64_store8(self.read_memarg(0)?),
834
4.45k
            0x3d => visitor.visit_i64_store16(self.read_memarg(1)?),
835
12.9k
            0x3e => visitor.visit_i64_store32(self.read_memarg(2)?),
836
            0x3f => {
837
433k
                let (mem_byte, mem) = self.read_first_byte_and_var_u32()?;
838
433k
                visitor.visit_memory_size(mem, mem_byte)
839
            }
840
            0x40 => {
841
96.9k
                let (mem_byte, mem) = self.read_first_byte_and_var_u32()?;
842
96.9k
                visitor.visit_memory_grow(mem, mem_byte)
843
            }
844
845
2.10M
            0x41 => visitor.visit_i32_const(self.read_var_i32()?),
846
1.02M
            0x42 => visitor.visit_i64_const(self.read_var_i64()?),
847
966k
            0x43 => visitor.visit_f32_const(self.read_f32()?),
848
935k
            0x44 => visitor.visit_f64_const(self.read_f64()?),
849
850
144k
            0x45 => visitor.visit_i32_eqz(),
851
23.0k
            0x46 => visitor.visit_i32_eq(),
852
15.4k
            0x47 => visitor.visit_i32_ne(),
853
5.07k
            0x48 => visitor.visit_i32_lt_s(),
854
7.89k
            0x49 => visitor.visit_i32_lt_u(),
855
46.5k
            0x4a => visitor.visit_i32_gt_s(),
856
9.45k
            0x4b => visitor.visit_i32_gt_u(),
857
7.92k
            0x4c => visitor.visit_i32_le_s(),
858
5.70k
            0x4d => visitor.visit_i32_le_u(),
859
13.6k
            0x4e => visitor.visit_i32_ge_s(),
860
9.10k
            0x4f => visitor.visit_i32_ge_u(),
861
145k
            0x50 => visitor.visit_i64_eqz(),
862
14.1k
            0x51 => visitor.visit_i64_eq(),
863
7.42k
            0x52 => visitor.visit_i64_ne(),
864
10.5k
            0x53 => visitor.visit_i64_lt_s(),
865
9.83k
            0x54 => visitor.visit_i64_lt_u(),
866
10.5k
            0x55 => visitor.visit_i64_gt_s(),
867
14.1k
            0x56 => visitor.visit_i64_gt_u(),
868
7.64k
            0x57 => visitor.visit_i64_le_s(),
869
3.46k
            0x58 => visitor.visit_i64_le_u(),
870
8.41k
            0x59 => visitor.visit_i64_ge_s(),
871
6.20k
            0x5a => visitor.visit_i64_ge_u(),
872
4.62k
            0x5b => visitor.visit_f32_eq(),
873
26.7k
            0x5c => visitor.visit_f32_ne(),
874
32.1k
            0x5d => visitor.visit_f32_lt(),
875
13.5k
            0x5e => visitor.visit_f32_gt(),
876
20.0k
            0x5f => visitor.visit_f32_le(),
877
10.2k
            0x60 => visitor.visit_f32_ge(),
878
12.3k
            0x61 => visitor.visit_f64_eq(),
879
8.01k
            0x62 => visitor.visit_f64_ne(),
880
10.1k
            0x63 => visitor.visit_f64_lt(),
881
45.4k
            0x64 => visitor.visit_f64_gt(),
882
77.8k
            0x65 => visitor.visit_f64_le(),
883
13.9k
            0x66 => visitor.visit_f64_ge(),
884
161k
            0x67 => visitor.visit_i32_clz(),
885
119k
            0x68 => visitor.visit_i32_ctz(),
886
156k
            0x69 => visitor.visit_i32_popcnt(),
887
13.1k
            0x6a => visitor.visit_i32_add(),
888
11.8k
            0x6b => visitor.visit_i32_sub(),
889
13.7k
            0x6c => visitor.visit_i32_mul(),
890
19.5k
            0x6d => visitor.visit_i32_div_s(),
891
87.3k
            0x6e => visitor.visit_i32_div_u(),
892
43.1k
            0x6f => visitor.visit_i32_rem_s(),
893
64.5k
            0x70 => visitor.visit_i32_rem_u(),
894
50.0k
            0x71 => visitor.visit_i32_and(),
895
221k
            0x72 => visitor.visit_i32_or(),
896
73.1k
            0x73 => visitor.visit_i32_xor(),
897
23.0k
            0x74 => visitor.visit_i32_shl(),
898
21.5k
            0x75 => visitor.visit_i32_shr_s(),
899
19.2k
            0x76 => visitor.visit_i32_shr_u(),
900
9.65k
            0x77 => visitor.visit_i32_rotl(),
901
28.0k
            0x78 => visitor.visit_i32_rotr(),
902
247k
            0x79 => visitor.visit_i64_clz(),
903
251k
            0x7a => visitor.visit_i64_ctz(),
904
185k
            0x7b => visitor.visit_i64_popcnt(),
905
12.8k
            0x7c => visitor.visit_i64_add(),
906
35.0k
            0x7d => visitor.visit_i64_sub(),
907
12.2k
            0x7e => visitor.visit_i64_mul(),
908
5.14k
            0x7f => visitor.visit_i64_div_s(),
909
65.9k
            0x80 => visitor.visit_i64_div_u(),
910
33.5k
            0x81 => visitor.visit_i64_rem_s(),
911
42.0k
            0x82 => visitor.visit_i64_rem_u(),
912
8.49k
            0x83 => visitor.visit_i64_and(),
913
21.5k
            0x84 => visitor.visit_i64_or(),
914
68.0k
            0x85 => visitor.visit_i64_xor(),
915
103k
            0x86 => visitor.visit_i64_shl(),
916
322k
            0x87 => visitor.visit_i64_shr_s(),
917
16.0k
            0x88 => visitor.visit_i64_shr_u(),
918
16.2k
            0x89 => visitor.visit_i64_rotl(),
919
17.1k
            0x8a => visitor.visit_i64_rotr(),
920
145k
            0x8b => visitor.visit_f32_abs(),
921
102k
            0x8c => visitor.visit_f32_neg(),
922
332k
            0x8d => visitor.visit_f32_ceil(),
923
334k
            0x8e => visitor.visit_f32_floor(),
924
279k
            0x8f => visitor.visit_f32_trunc(),
925
112k
            0x90 => visitor.visit_f32_nearest(),
926
129k
            0x91 => visitor.visit_f32_sqrt(),
927
5.29k
            0x92 => visitor.visit_f32_add(),
928
11.8k
            0x93 => visitor.visit_f32_sub(),
929
22.1k
            0x94 => visitor.visit_f32_mul(),
930
15.2k
            0x95 => visitor.visit_f32_div(),
931
14.5k
            0x96 => visitor.visit_f32_min(),
932
112k
            0x97 => visitor.visit_f32_max(),
933
4.05k
            0x98 => visitor.visit_f32_copysign(),
934
367k
            0x99 => visitor.visit_f64_abs(),
935
230k
            0x9a => visitor.visit_f64_neg(),
936
158k
            0x9b => visitor.visit_f64_ceil(),
937
378k
            0x9c => visitor.visit_f64_floor(),
938
283k
            0x9d => visitor.visit_f64_trunc(),
939
225k
            0x9e => visitor.visit_f64_nearest(),
940
268k
            0x9f => visitor.visit_f64_sqrt(),
941
7.94k
            0xa0 => visitor.visit_f64_add(),
942
18.4k
            0xa1 => visitor.visit_f64_sub(),
943
25.7k
            0xa2 => visitor.visit_f64_mul(),
944
12.5k
            0xa3 => visitor.visit_f64_div(),
945
37.7k
            0xa4 => visitor.visit_f64_min(),
946
27.5k
            0xa5 => visitor.visit_f64_max(),
947
11.4k
            0xa6 => visitor.visit_f64_copysign(),
948
126k
            0xa7 => visitor.visit_i32_wrap_i64(),
949
69.6k
            0xa8 => visitor.visit_i32_trunc_f32_s(),
950
80.8k
            0xa9 => visitor.visit_i32_trunc_f32_u(),
951
91.6k
            0xaa => visitor.visit_i32_trunc_f64_s(),
952
83.7k
            0xab => visitor.visit_i32_trunc_f64_u(),
953
141k
            0xac => visitor.visit_i64_extend_i32_s(),
954
126k
            0xad => visitor.visit_i64_extend_i32_u(),
955
44.1k
            0xae => visitor.visit_i64_trunc_f32_s(),
956
35.7k
            0xaf => visitor.visit_i64_trunc_f32_u(),
957
72.8k
            0xb0 => visitor.visit_i64_trunc_f64_s(),
958
49.2k
            0xb1 => visitor.visit_i64_trunc_f64_u(),
959
55.7k
            0xb2 => visitor.visit_f32_convert_i32_s(),
960
71.7k
            0xb3 => visitor.visit_f32_convert_i32_u(),
961
69.5k
            0xb4 => visitor.visit_f32_convert_i64_s(),
962
120k
            0xb5 => visitor.visit_f32_convert_i64_u(),
963
87.8k
            0xb6 => visitor.visit_f32_demote_f64(),
964
69.5k
            0xb7 => visitor.visit_f64_convert_i32_s(),
965
70.2k
            0xb8 => visitor.visit_f64_convert_i32_u(),
966
103k
            0xb9 => visitor.visit_f64_convert_i64_s(),
967
159k
            0xba => visitor.visit_f64_convert_i64_u(),
968
84.5k
            0xbb => visitor.visit_f64_promote_f32(),
969
31.7k
            0xbc => visitor.visit_i32_reinterpret_f32(),
970
64.3k
            0xbd => visitor.visit_i64_reinterpret_f64(),
971
91.1k
            0xbe => visitor.visit_f32_reinterpret_i32(),
972
78.0k
            0xbf => visitor.visit_f64_reinterpret_i64(),
973
974
94.7k
            0xc0 => visitor.visit_i32_extend8_s(),
975
133k
            0xc1 => visitor.visit_i32_extend16_s(),
976
156k
            0xc2 => visitor.visit_i64_extend8_s(),
977
261k
            0xc3 => visitor.visit_i64_extend16_s(),
978
187k
            0xc4 => visitor.visit_i64_extend32_s(),
979
980
0
            0xd0 => visitor.visit_ref_null(self.read()?),
981
0
            0xd1 => visitor.visit_ref_is_null(),
982
0
            0xd2 => visitor.visit_ref_func(self.read_var_u32()?),
983
0
            0xd3 => visitor.visit_ref_eq(),
984
0
            0xd4 => visitor.visit_ref_as_non_null(),
985
0
            0xd5 => visitor.visit_br_on_null(self.read_var_u32()?),
986
0
            0xd6 => visitor.visit_br_on_non_null(self.read_var_u32()?),
987
988
0
            0xfb => self.visit_0xfb_operator(pos, visitor)?,
989
562k
            0xfc => self.visit_0xfc_operator(pos, visitor)?,
990
0
            0xfd => self.visit_0xfd_operator(pos, visitor)?,
991
0
            0xfe => self.visit_0xfe_operator(pos, visitor)?,
992
993
0
            _ => bail!(pos, "illegal opcode: 0x{code:x}"),
994
        })
995
33.8M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_operator::<wasmprinter::operator::PrintOperator>
<wasmparser::binary_reader::BinaryReader>::visit_operator::<wasmparser::validator::operators::WasmProposalValidator<wasmparser::validator::core::ValidatorResources>>
Line
Count
Source
756
15.4M
    pub fn visit_operator<T>(&mut self, visitor: &mut T) -> Result<<T as VisitOperator<'a>>::Output>
757
15.4M
    where
758
15.4M
        T: VisitOperator<'a>,
759
15.4M
    {
760
15.4M
        let pos = self.original_position();
761
15.4M
        let code = self.read_u8()? as u8;
762
15.4M
        Ok(match code {
763
1.06M
            0x00 => visitor.visit_unreachable(),
764
514k
            0x01 => visitor.visit_nop(),
765
405k
            0x02 => visitor.visit_block(self.read_block_type()?),
766
441k
            0x03 => visitor.visit_loop(self.read_block_type()?),
767
45.2k
            0x04 => visitor.visit_if(self.read_block_type()?),
768
36.9k
            0x05 => visitor.visit_else(),
769
0
            0x06 => visitor.visit_try(self.read_block_type()?),
770
0
            0x07 => visitor.visit_catch(self.read_var_u32()?),
771
0
            0x08 => visitor.visit_throw(self.read_var_u32()?),
772
0
            0x09 => visitor.visit_rethrow(self.read_var_u32()?),
773
0
            0x0a => visitor.visit_throw_ref(),
774
1.36M
            0x0b => visitor.visit_end(),
775
516k
            0x0c => visitor.visit_br(self.read_var_u32()?),
776
54.1k
            0x0d => visitor.visit_br_if(self.read_var_u32()?),
777
85.3k
            0x0e => visitor.visit_br_table(self.read_br_table()?),
778
526k
            0x0f => visitor.visit_return(),
779
253k
            0x10 => visitor.visit_call(self.read_var_u32()?),
780
            0x11 => {
781
91.8k
                let index = self.read_var_u32()?;
782
91.8k
                let (table_byte, table_index) = self.read_first_byte_and_var_u32()?;
783
91.8k
                visitor.visit_call_indirect(index, table_index, table_byte)
784
            }
785
0
            0x12 => visitor.visit_return_call(self.read_var_u32()?),
786
0
            0x13 => visitor.visit_return_call_indirect(self.read_var_u32()?, self.read_var_u32()?),
787
0
            0x14 => visitor.visit_call_ref(self.read()?),
788
0
            0x15 => visitor.visit_return_call_ref(self.read()?),
789
0
            0x18 => visitor.visit_delegate(self.read_var_u32()?),
790
0
            0x19 => visitor.visit_catch_all(),
791
226k
            0x1a => visitor.visit_drop(),
792
20.3k
            0x1b => visitor.visit_select(),
793
            0x1c => {
794
0
                let results = self.read_var_u32()?;
795
0
                if results != 1 {
796
0
                    return Err(BinaryReaderError::new(
797
0
                        "invalid result arity",
798
0
                        self.position,
799
0
                    ));
800
0
                }
801
0
                visitor.visit_typed_select(self.read()?)
802
            }
803
0
            0x1f => visitor.visit_try_table(self.read()?),
804
805
1.34M
            0x20 => visitor.visit_local_get(self.read_var_u32()?),
806
89.5k
            0x21 => visitor.visit_local_set(self.read_var_u32()?),
807
213k
            0x22 => visitor.visit_local_tee(self.read_var_u32()?),
808
392k
            0x23 => visitor.visit_global_get(self.read_var_u32()?),
809
35.8k
            0x24 => visitor.visit_global_set(self.read_var_u32()?),
810
0
            0x25 => visitor.visit_table_get(self.read_var_u32()?),
811
0
            0x26 => visitor.visit_table_set(self.read_var_u32()?),
812
813
82.1k
            0x28 => visitor.visit_i32_load(self.read_memarg(2)?),
814
32.0k
            0x29 => visitor.visit_i64_load(self.read_memarg(3)?),
815
14.9k
            0x2a => visitor.visit_f32_load(self.read_memarg(2)?),
816
19.0k
            0x2b => visitor.visit_f64_load(self.read_memarg(3)?),
817
41.9k
            0x2c => visitor.visit_i32_load8_s(self.read_memarg(0)?),
818
30.6k
            0x2d => visitor.visit_i32_load8_u(self.read_memarg(0)?),
819
69.6k
            0x2e => visitor.visit_i32_load16_s(self.read_memarg(1)?),
820
80.7k
            0x2f => visitor.visit_i32_load16_u(self.read_memarg(1)?),
821
12.4k
            0x30 => visitor.visit_i64_load8_s(self.read_memarg(0)?),
822
11.5k
            0x31 => visitor.visit_i64_load8_u(self.read_memarg(0)?),
823
27.4k
            0x32 => visitor.visit_i64_load16_s(self.read_memarg(1)?),
824
36.8k
            0x33 => visitor.visit_i64_load16_u(self.read_memarg(1)?),
825
31.4k
            0x34 => visitor.visit_i64_load32_s(self.read_memarg(2)?),
826
14.7k
            0x35 => visitor.visit_i64_load32_u(self.read_memarg(2)?),
827
966
            0x36 => visitor.visit_i32_store(self.read_memarg(2)?),
828
9.79k
            0x37 => visitor.visit_i64_store(self.read_memarg(3)?),
829
2.62k
            0x38 => visitor.visit_f32_store(self.read_memarg(2)?),
830
2.03k
            0x39 => visitor.visit_f64_store(self.read_memarg(3)?),
831
1.73k
            0x3a => visitor.visit_i32_store8(self.read_memarg(0)?),
832
2.99k
            0x3b => visitor.visit_i32_store16(self.read_memarg(1)?),
833
3.42k
            0x3c => visitor.visit_i64_store8(self.read_memarg(0)?),
834
2.22k
            0x3d => visitor.visit_i64_store16(self.read_memarg(1)?),
835
6.46k
            0x3e => visitor.visit_i64_store32(self.read_memarg(2)?),
836
            0x3f => {
837
217k
                let (mem_byte, mem) = self.read_first_byte_and_var_u32()?;
838
217k
                visitor.visit_memory_size(mem, mem_byte)
839
            }
840
            0x40 => {
841
48.5k
                let (mem_byte, mem) = self.read_first_byte_and_var_u32()?;
842
48.5k
                visitor.visit_memory_grow(mem, mem_byte)
843
            }
844
845
541k
            0x41 => visitor.visit_i32_const(self.read_var_i32()?),
846
317k
            0x42 => visitor.visit_i64_const(self.read_var_i64()?),
847
463k
            0x43 => visitor.visit_f32_const(self.read_f32()?),
848
263k
            0x44 => visitor.visit_f64_const(self.read_f64()?),
849
850
72.3k
            0x45 => visitor.visit_i32_eqz(),
851
11.5k
            0x46 => visitor.visit_i32_eq(),
852
7.73k
            0x47 => visitor.visit_i32_ne(),
853
2.54k
            0x48 => visitor.visit_i32_lt_s(),
854
3.95k
            0x49 => visitor.visit_i32_lt_u(),
855
23.2k
            0x4a => visitor.visit_i32_gt_s(),
856
4.73k
            0x4b => visitor.visit_i32_gt_u(),
857
3.96k
            0x4c => visitor.visit_i32_le_s(),
858
2.85k
            0x4d => visitor.visit_i32_le_u(),
859
6.84k
            0x4e => visitor.visit_i32_ge_s(),
860
4.56k
            0x4f => visitor.visit_i32_ge_u(),
861
72.9k
            0x50 => visitor.visit_i64_eqz(),
862
7.06k
            0x51 => visitor.visit_i64_eq(),
863
3.71k
            0x52 => visitor.visit_i64_ne(),
864
5.27k
            0x53 => visitor.visit_i64_lt_s(),
865
4.91k
            0x54 => visitor.visit_i64_lt_u(),
866
5.29k
            0x55 => visitor.visit_i64_gt_s(),
867
7.06k
            0x56 => visitor.visit_i64_gt_u(),
868
3.82k
            0x57 => visitor.visit_i64_le_s(),
869
1.73k
            0x58 => visitor.visit_i64_le_u(),
870
4.20k
            0x59 => visitor.visit_i64_ge_s(),
871
3.10k
            0x5a => visitor.visit_i64_ge_u(),
872
2.31k
            0x5b => visitor.visit_f32_eq(),
873
13.4k
            0x5c => visitor.visit_f32_ne(),
874
16.0k
            0x5d => visitor.visit_f32_lt(),
875
6.79k
            0x5e => visitor.visit_f32_gt(),
876
10.0k
            0x5f => visitor.visit_f32_le(),
877
5.10k
            0x60 => visitor.visit_f32_ge(),
878
6.15k
            0x61 => visitor.visit_f64_eq(),
879
4.02k
            0x62 => visitor.visit_f64_ne(),
880
5.10k
            0x63 => visitor.visit_f64_lt(),
881
22.7k
            0x64 => visitor.visit_f64_gt(),
882
38.9k
            0x65 => visitor.visit_f64_le(),
883
6.95k
            0x66 => visitor.visit_f64_ge(),
884
80.8k
            0x67 => visitor.visit_i32_clz(),
885
59.8k
            0x68 => visitor.visit_i32_ctz(),
886
78.0k
            0x69 => visitor.visit_i32_popcnt(),
887
6.64k
            0x6a => visitor.visit_i32_add(),
888
5.92k
            0x6b => visitor.visit_i32_sub(),
889
6.88k
            0x6c => visitor.visit_i32_mul(),
890
9.76k
            0x6d => visitor.visit_i32_div_s(),
891
43.7k
            0x6e => visitor.visit_i32_div_u(),
892
21.7k
            0x6f => visitor.visit_i32_rem_s(),
893
32.2k
            0x70 => visitor.visit_i32_rem_u(),
894
25.0k
            0x71 => visitor.visit_i32_and(),
895
110k
            0x72 => visitor.visit_i32_or(),
896
36.5k
            0x73 => visitor.visit_i32_xor(),
897
11.5k
            0x74 => visitor.visit_i32_shl(),
898
10.7k
            0x75 => visitor.visit_i32_shr_s(),
899
9.66k
            0x76 => visitor.visit_i32_shr_u(),
900
4.82k
            0x77 => visitor.visit_i32_rotl(),
901
14.0k
            0x78 => visitor.visit_i32_rotr(),
902
124k
            0x79 => visitor.visit_i64_clz(),
903
125k
            0x7a => visitor.visit_i64_ctz(),
904
92.6k
            0x7b => visitor.visit_i64_popcnt(),
905
6.40k
            0x7c => visitor.visit_i64_add(),
906
17.5k
            0x7d => visitor.visit_i64_sub(),
907
6.14k
            0x7e => visitor.visit_i64_mul(),
908
2.57k
            0x7f => visitor.visit_i64_div_s(),
909
33.0k
            0x80 => visitor.visit_i64_div_u(),
910
16.7k
            0x81 => visitor.visit_i64_rem_s(),
911
21.0k
            0x82 => visitor.visit_i64_rem_u(),
912
4.24k
            0x83 => visitor.visit_i64_and(),
913
10.7k
            0x84 => visitor.visit_i64_or(),
914
34.0k
            0x85 => visitor.visit_i64_xor(),
915
51.6k
            0x86 => visitor.visit_i64_shl(),
916
161k
            0x87 => visitor.visit_i64_shr_s(),
917
8.08k
            0x88 => visitor.visit_i64_shr_u(),
918
8.13k
            0x89 => visitor.visit_i64_rotl(),
919
8.59k
            0x8a => visitor.visit_i64_rotr(),
920
72.9k
            0x8b => visitor.visit_f32_abs(),
921
51.1k
            0x8c => visitor.visit_f32_neg(),
922
166k
            0x8d => visitor.visit_f32_ceil(),
923
167k
            0x8e => visitor.visit_f32_floor(),
924
139k
            0x8f => visitor.visit_f32_trunc(),
925
56.3k
            0x90 => visitor.visit_f32_nearest(),
926
64.8k
            0x91 => visitor.visit_f32_sqrt(),
927
2.64k
            0x92 => visitor.visit_f32_add(),
928
5.92k
            0x93 => visitor.visit_f32_sub(),
929
11.0k
            0x94 => visitor.visit_f32_mul(),
930
7.67k
            0x95 => visitor.visit_f32_div(),
931
7.29k
            0x96 => visitor.visit_f32_min(),
932
56.2k
            0x97 => visitor.visit_f32_max(),
933
2.03k
            0x98 => visitor.visit_f32_copysign(),
934
183k
            0x99 => visitor.visit_f64_abs(),
935
116k
            0x9a => visitor.visit_f64_neg(),
936
79.1k
            0x9b => visitor.visit_f64_ceil(),
937
189k
            0x9c => visitor.visit_f64_floor(),
938
142k
            0x9d => visitor.visit_f64_trunc(),
939
112k
            0x9e => visitor.visit_f64_nearest(),
940
134k
            0x9f => visitor.visit_f64_sqrt(),
941
3.97k
            0xa0 => visitor.visit_f64_add(),
942
9.21k
            0xa1 => visitor.visit_f64_sub(),
943
12.8k
            0xa2 => visitor.visit_f64_mul(),
944
6.25k
            0xa3 => visitor.visit_f64_div(),
945
18.8k
            0xa4 => visitor.visit_f64_min(),
946
13.7k
            0xa5 => visitor.visit_f64_max(),
947
5.72k
            0xa6 => visitor.visit_f64_copysign(),
948
63.4k
            0xa7 => visitor.visit_i32_wrap_i64(),
949
34.8k
            0xa8 => visitor.visit_i32_trunc_f32_s(),
950
40.5k
            0xa9 => visitor.visit_i32_trunc_f32_u(),
951
45.8k
            0xaa => visitor.visit_i32_trunc_f64_s(),
952
41.9k
            0xab => visitor.visit_i32_trunc_f64_u(),
953
70.8k
            0xac => visitor.visit_i64_extend_i32_s(),
954
63.1k
            0xad => visitor.visit_i64_extend_i32_u(),
955
22.1k
            0xae => visitor.visit_i64_trunc_f32_s(),
956
17.8k
            0xaf => visitor.visit_i64_trunc_f32_u(),
957
36.4k
            0xb0 => visitor.visit_i64_trunc_f64_s(),
958
24.6k
            0xb1 => visitor.visit_i64_trunc_f64_u(),
959
27.8k
            0xb2 => visitor.visit_f32_convert_i32_s(),
960
35.9k
            0xb3 => visitor.visit_f32_convert_i32_u(),
961
34.8k
            0xb4 => visitor.visit_f32_convert_i64_s(),
962
60.3k
            0xb5 => visitor.visit_f32_convert_i64_u(),
963
43.9k
            0xb6 => visitor.visit_f32_demote_f64(),
964
34.8k
            0xb7 => visitor.visit_f64_convert_i32_s(),
965
35.1k
            0xb8 => visitor.visit_f64_convert_i32_u(),
966
51.8k
            0xb9 => visitor.visit_f64_convert_i64_s(),
967
79.8k
            0xba => visitor.visit_f64_convert_i64_u(),
968
42.2k
            0xbb => visitor.visit_f64_promote_f32(),
969
15.9k
            0xbc => visitor.visit_i32_reinterpret_f32(),
970
32.2k
            0xbd => visitor.visit_i64_reinterpret_f64(),
971
45.8k
            0xbe => visitor.visit_f32_reinterpret_i32(),
972
39.0k
            0xbf => visitor.visit_f64_reinterpret_i64(),
973
974
47.4k
            0xc0 => visitor.visit_i32_extend8_s(),
975
66.7k
            0xc1 => visitor.visit_i32_extend16_s(),
976
78.2k
            0xc2 => visitor.visit_i64_extend8_s(),
977
130k
            0xc3 => visitor.visit_i64_extend16_s(),
978
93.7k
            0xc4 => visitor.visit_i64_extend32_s(),
979
980
0
            0xd0 => visitor.visit_ref_null(self.read()?),
981
0
            0xd1 => visitor.visit_ref_is_null(),
982
0
            0xd2 => visitor.visit_ref_func(self.read_var_u32()?),
983
0
            0xd3 => visitor.visit_ref_eq(),
984
0
            0xd4 => visitor.visit_ref_as_non_null(),
985
0
            0xd5 => visitor.visit_br_on_null(self.read_var_u32()?),
986
0
            0xd6 => visitor.visit_br_on_non_null(self.read_var_u32()?),
987
988
0
            0xfb => self.visit_0xfb_operator(pos, visitor)?,
989
281k
            0xfc => self.visit_0xfc_operator(pos, visitor)?,
990
0
            0xfd => self.visit_0xfd_operator(pos, visitor)?,
991
0
            0xfe => self.visit_0xfe_operator(pos, visitor)?,
992
993
0
            _ => bail!(pos, "illegal opcode: 0x{code:x}"),
994
        })
995
15.4M
    }
<wasmparser::binary_reader::BinaryReader>::visit_operator::<wasmparser::binary_reader::OperatorFactory>
Line
Count
Source
756
17.8M
    pub fn visit_operator<T>(&mut self, visitor: &mut T) -> Result<<T as VisitOperator<'a>>::Output>
757
17.8M
    where
758
17.8M
        T: VisitOperator<'a>,
759
17.8M
    {
760
17.8M
        let pos = self.original_position();
761
17.8M
        let code = self.read_u8()? as u8;
762
17.8M
        Ok(match code {
763
1.06M
            0x00 => visitor.visit_unreachable(),
764
511k
            0x01 => visitor.visit_nop(),
765
404k
            0x02 => visitor.visit_block(self.read_block_type()?),
766
440k
            0x03 => visitor.visit_loop(self.read_block_type()?),
767
45.0k
            0x04 => visitor.visit_if(self.read_block_type()?),
768
36.9k
            0x05 => visitor.visit_else(),
769
0
            0x06 => visitor.visit_try(self.read_block_type()?),
770
0
            0x07 => visitor.visit_catch(self.read_var_u32()?),
771
0
            0x08 => visitor.visit_throw(self.read_var_u32()?),
772
0
            0x09 => visitor.visit_rethrow(self.read_var_u32()?),
773
0
            0x0a => visitor.visit_throw_ref(),
774
2.29M
            0x0b => visitor.visit_end(),
775
516k
            0x0c => visitor.visit_br(self.read_var_u32()?),
776
53.9k
            0x0d => visitor.visit_br_if(self.read_var_u32()?),
777
84.7k
            0x0e => visitor.visit_br_table(self.read_br_table()?),
778
526k
            0x0f => visitor.visit_return(),
779
252k
            0x10 => visitor.visit_call(self.read_var_u32()?),
780
            0x11 => {
781
91.0k
                let index = self.read_var_u32()?;
782
91.0k
                let (table_byte, table_index) = self.read_first_byte_and_var_u32()?;
783
91.0k
                visitor.visit_call_indirect(index, table_index, table_byte)
784
            }
785
0
            0x12 => visitor.visit_return_call(self.read_var_u32()?),
786
0
            0x13 => visitor.visit_return_call_indirect(self.read_var_u32()?, self.read_var_u32()?),
787
0
            0x14 => visitor.visit_call_ref(self.read()?),
788
0
            0x15 => visitor.visit_return_call_ref(self.read()?),
789
0
            0x18 => visitor.visit_delegate(self.read_var_u32()?),
790
0
            0x19 => visitor.visit_catch_all(),
791
225k
            0x1a => visitor.visit_drop(),
792
20.3k
            0x1b => visitor.visit_select(),
793
            0x1c => {
794
0
                let results = self.read_var_u32()?;
795
0
                if results != 1 {
796
0
                    return Err(BinaryReaderError::new(
797
0
                        "invalid result arity",
798
0
                        self.position,
799
0
                    ));
800
0
                }
801
0
                visitor.visit_typed_select(self.read()?)
802
            }
803
0
            0x1f => visitor.visit_try_table(self.read()?),
804
805
1.34M
            0x20 => visitor.visit_local_get(self.read_var_u32()?),
806
89.3k
            0x21 => visitor.visit_local_set(self.read_var_u32()?),
807
212k
            0x22 => visitor.visit_local_tee(self.read_var_u32()?),
808
391k
            0x23 => visitor.visit_global_get(self.read_var_u32()?),
809
35.6k
            0x24 => visitor.visit_global_set(self.read_var_u32()?),
810
0
            0x25 => visitor.visit_table_get(self.read_var_u32()?),
811
0
            0x26 => visitor.visit_table_set(self.read_var_u32()?),
812
813
82.0k
            0x28 => visitor.visit_i32_load(self.read_memarg(2)?),
814
31.9k
            0x29 => visitor.visit_i64_load(self.read_memarg(3)?),
815
14.9k
            0x2a => visitor.visit_f32_load(self.read_memarg(2)?),
816
18.9k
            0x2b => visitor.visit_f64_load(self.read_memarg(3)?),
817
41.9k
            0x2c => visitor.visit_i32_load8_s(self.read_memarg(0)?),
818
30.6k
            0x2d => visitor.visit_i32_load8_u(self.read_memarg(0)?),
819
69.3k
            0x2e => visitor.visit_i32_load16_s(self.read_memarg(1)?),
820
80.7k
            0x2f => visitor.visit_i32_load16_u(self.read_memarg(1)?),
821
12.4k
            0x30 => visitor.visit_i64_load8_s(self.read_memarg(0)?),
822
11.5k
            0x31 => visitor.visit_i64_load8_u(self.read_memarg(0)?),
823
27.4k
            0x32 => visitor.visit_i64_load16_s(self.read_memarg(1)?),
824
36.7k
            0x33 => visitor.visit_i64_load16_u(self.read_memarg(1)?),
825
31.1k
            0x34 => visitor.visit_i64_load32_s(self.read_memarg(2)?),
826
14.7k
            0x35 => visitor.visit_i64_load32_u(self.read_memarg(2)?),
827
964
            0x36 => visitor.visit_i32_store(self.read_memarg(2)?),
828
9.79k
            0x37 => visitor.visit_i64_store(self.read_memarg(3)?),
829
2.51k
            0x38 => visitor.visit_f32_store(self.read_memarg(2)?),
830
2.03k
            0x39 => visitor.visit_f64_store(self.read_memarg(3)?),
831
1.73k
            0x3a => visitor.visit_i32_store8(self.read_memarg(0)?),
832
2.99k
            0x3b => visitor.visit_i32_store16(self.read_memarg(1)?),
833
3.41k
            0x3c => visitor.visit_i64_store8(self.read_memarg(0)?),
834
2.22k
            0x3d => visitor.visit_i64_store16(self.read_memarg(1)?),
835
6.44k
            0x3e => visitor.visit_i64_store32(self.read_memarg(2)?),
836
            0x3f => {
837
216k
                let (mem_byte, mem) = self.read_first_byte_and_var_u32()?;
838
216k
                visitor.visit_memory_size(mem, mem_byte)
839
            }
840
            0x40 => {
841
48.3k
                let (mem_byte, mem) = self.read_first_byte_and_var_u32()?;
842
48.3k
                visitor.visit_memory_grow(mem, mem_byte)
843
            }
844
845
1.39M
            0x41 => visitor.visit_i32_const(self.read_var_i32()?),
846
639k
            0x42 => visitor.visit_i64_const(self.read_var_i64()?),
847
496k
            0x43 => visitor.visit_f32_const(self.read_f32()?),
848
603k
            0x44 => visitor.visit_f64_const(self.read_f64()?),
849
850
72.2k
            0x45 => visitor.visit_i32_eqz(),
851
11.5k
            0x46 => visitor.visit_i32_eq(),
852
7.73k
            0x47 => visitor.visit_i32_ne(),
853
2.53k
            0x48 => visitor.visit_i32_lt_s(),
854
3.94k
            0x49 => visitor.visit_i32_lt_u(),
855
23.2k
            0x4a => visitor.visit_i32_gt_s(),
856
4.72k
            0x4b => visitor.visit_i32_gt_u(),
857
3.96k
            0x4c => visitor.visit_i32_le_s(),
858
2.85k
            0x4d => visitor.visit_i32_le_u(),
859
6.84k
            0x4e => visitor.visit_i32_ge_s(),
860
4.54k
            0x4f => visitor.visit_i32_ge_u(),
861
72.9k
            0x50 => visitor.visit_i64_eqz(),
862
7.06k
            0x51 => visitor.visit_i64_eq(),
863
3.71k
            0x52 => visitor.visit_i64_ne(),
864
5.24k
            0x53 => visitor.visit_i64_lt_s(),
865
4.91k
            0x54 => visitor.visit_i64_lt_u(),
866
5.27k
            0x55 => visitor.visit_i64_gt_s(),
867
7.06k
            0x56 => visitor.visit_i64_gt_u(),
868
3.82k
            0x57 => visitor.visit_i64_le_s(),
869
1.73k
            0x58 => visitor.visit_i64_le_u(),
870
4.20k
            0x59 => visitor.visit_i64_ge_s(),
871
3.09k
            0x5a => visitor.visit_i64_ge_u(),
872
2.31k
            0x5b => visitor.visit_f32_eq(),
873
13.3k
            0x5c => visitor.visit_f32_ne(),
874
16.0k
            0x5d => visitor.visit_f32_lt(),
875
6.72k
            0x5e => visitor.visit_f32_gt(),
876
10.0k
            0x5f => visitor.visit_f32_le(),
877
5.10k
            0x60 => visitor.visit_f32_ge(),
878
6.15k
            0x61 => visitor.visit_f64_eq(),
879
3.99k
            0x62 => visitor.visit_f64_ne(),
880
5.05k
            0x63 => visitor.visit_f64_lt(),
881
22.6k
            0x64 => visitor.visit_f64_gt(),
882
38.9k
            0x65 => visitor.visit_f64_le(),
883
6.95k
            0x66 => visitor.visit_f64_ge(),
884
80.8k
            0x67 => visitor.visit_i32_clz(),
885
59.4k
            0x68 => visitor.visit_i32_ctz(),
886
77.9k
            0x69 => visitor.visit_i32_popcnt(),
887
6.55k
            0x6a => visitor.visit_i32_add(),
888
5.92k
            0x6b => visitor.visit_i32_sub(),
889
6.88k
            0x6c => visitor.visit_i32_mul(),
890
9.76k
            0x6d => visitor.visit_i32_div_s(),
891
43.5k
            0x6e => visitor.visit_i32_div_u(),
892
21.3k
            0x6f => visitor.visit_i32_rem_s(),
893
32.2k
            0x70 => visitor.visit_i32_rem_u(),
894
25.0k
            0x71 => visitor.visit_i32_and(),
895
110k
            0x72 => visitor.visit_i32_or(),
896
36.5k
            0x73 => visitor.visit_i32_xor(),
897
11.5k
            0x74 => visitor.visit_i32_shl(),
898
10.7k
            0x75 => visitor.visit_i32_shr_s(),
899
9.59k
            0x76 => visitor.visit_i32_shr_u(),
900
4.82k
            0x77 => visitor.visit_i32_rotl(),
901
14.0k
            0x78 => visitor.visit_i32_rotr(),
902
122k
            0x79 => visitor.visit_i64_clz(),
903
125k
            0x7a => visitor.visit_i64_ctz(),
904
92.6k
            0x7b => visitor.visit_i64_popcnt(),
905
6.39k
            0x7c => visitor.visit_i64_add(),
906
17.5k
            0x7d => visitor.visit_i64_sub(),
907
6.14k
            0x7e => visitor.visit_i64_mul(),
908
2.57k
            0x7f => visitor.visit_i64_div_s(),
909
32.9k
            0x80 => visitor.visit_i64_div_u(),
910
16.7k
            0x81 => visitor.visit_i64_rem_s(),
911
21.0k
            0x82 => visitor.visit_i64_rem_u(),
912
4.24k
            0x83 => visitor.visit_i64_and(),
913
10.7k
            0x84 => visitor.visit_i64_or(),
914
33.9k
            0x85 => visitor.visit_i64_xor(),
915
51.6k
            0x86 => visitor.visit_i64_shl(),
916
161k
            0x87 => visitor.visit_i64_shr_s(),
917
7.97k
            0x88 => visitor.visit_i64_shr_u(),
918
8.08k
            0x89 => visitor.visit_i64_rotl(),
919
8.59k
            0x8a => visitor.visit_i64_rotr(),
920
72.9k
            0x8b => visitor.visit_f32_abs(),
921
50.9k
            0x8c => visitor.visit_f32_neg(),
922
165k
            0x8d => visitor.visit_f32_ceil(),
923
167k
            0x8e => visitor.visit_f32_floor(),
924
139k
            0x8f => visitor.visit_f32_trunc(),
925
56.1k
            0x90 => visitor.visit_f32_nearest(),
926
64.7k
            0x91 => visitor.visit_f32_sqrt(),
927
2.64k
            0x92 => visitor.visit_f32_add(),
928
5.92k
            0x93 => visitor.visit_f32_sub(),
929
11.0k
            0x94 => visitor.visit_f32_mul(),
930
7.62k
            0x95 => visitor.visit_f32_div(),
931
7.28k
            0x96 => visitor.visit_f32_min(),
932
56.2k
            0x97 => visitor.visit_f32_max(),
933
2.02k
            0x98 => visitor.visit_f32_copysign(),
934
183k
            0x99 => visitor.visit_f64_abs(),
935
113k
            0x9a => visitor.visit_f64_neg(),
936
79.0k
            0x9b => visitor.visit_f64_ceil(),
937
189k
            0x9c => visitor.visit_f64_floor(),
938
141k
            0x9d => visitor.visit_f64_trunc(),
939
112k
            0x9e => visitor.visit_f64_nearest(),
940
134k
            0x9f => visitor.visit_f64_sqrt(),
941
3.97k
            0xa0 => visitor.visit_f64_add(),
942
9.21k
            0xa1 => visitor.visit_f64_sub(),
943
12.8k
            0xa2 => visitor.visit_f64_mul(),
944
6.25k
            0xa3 => visitor.visit_f64_div(),
945
18.8k
            0xa4 => visitor.visit_f64_min(),
946
13.7k
            0xa5 => visitor.visit_f64_max(),
947
5.72k
            0xa6 => visitor.visit_f64_copysign(),
948
62.7k
            0xa7 => visitor.visit_i32_wrap_i64(),
949
34.7k
            0xa8 => visitor.visit_i32_trunc_f32_s(),
950
40.3k
            0xa9 => visitor.visit_i32_trunc_f32_u(),
951
45.7k
            0xaa => visitor.visit_i32_trunc_f64_s(),
952
41.8k
            0xab => visitor.visit_i32_trunc_f64_u(),
953
70.7k
            0xac => visitor.visit_i64_extend_i32_s(),
954
62.9k
            0xad => visitor.visit_i64_extend_i32_u(),
955
22.0k
            0xae => visitor.visit_i64_trunc_f32_s(),
956
17.8k
            0xaf => visitor.visit_i64_trunc_f32_u(),
957
36.4k
            0xb0 => visitor.visit_i64_trunc_f64_s(),
958
24.5k
            0xb1 => visitor.visit_i64_trunc_f64_u(),
959
27.8k
            0xb2 => visitor.visit_f32_convert_i32_s(),
960
35.8k
            0xb3 => visitor.visit_f32_convert_i32_u(),
961
34.7k
            0xb4 => visitor.visit_f32_convert_i64_s(),
962
60.2k
            0xb5 => visitor.visit_f32_convert_i64_u(),
963
43.9k
            0xb6 => visitor.visit_f32_demote_f64(),
964
34.7k
            0xb7 => visitor.visit_f64_convert_i32_s(),
965
35.1k
            0xb8 => visitor.visit_f64_convert_i32_u(),
966
51.7k
            0xb9 => visitor.visit_f64_convert_i64_s(),
967
79.5k
            0xba => visitor.visit_f64_convert_i64_u(),
968
42.2k
            0xbb => visitor.visit_f64_promote_f32(),
969
15.8k
            0xbc => visitor.visit_i32_reinterpret_f32(),
970
32.1k
            0xbd => visitor.visit_i64_reinterpret_f64(),
971
45.3k
            0xbe => visitor.visit_f32_reinterpret_i32(),
972
38.9k
            0xbf => visitor.visit_f64_reinterpret_i64(),
973
974
47.3k
            0xc0 => visitor.visit_i32_extend8_s(),
975
66.5k
            0xc1 => visitor.visit_i32_extend16_s(),
976
78.2k
            0xc2 => visitor.visit_i64_extend8_s(),
977
130k
            0xc3 => visitor.visit_i64_extend16_s(),
978
93.7k
            0xc4 => visitor.visit_i64_extend32_s(),
979
980
0
            0xd0 => visitor.visit_ref_null(self.read()?),
981
0
            0xd1 => visitor.visit_ref_is_null(),
982
0
            0xd2 => visitor.visit_ref_func(self.read_var_u32()?),
983
0
            0xd3 => visitor.visit_ref_eq(),
984
0
            0xd4 => visitor.visit_ref_as_non_null(),
985
0
            0xd5 => visitor.visit_br_on_null(self.read_var_u32()?),
986
0
            0xd6 => visitor.visit_br_on_non_null(self.read_var_u32()?),
987
988
0
            0xfb => self.visit_0xfb_operator(pos, visitor)?,
989
280k
            0xfc => self.visit_0xfc_operator(pos, visitor)?,
990
0
            0xfd => self.visit_0xfd_operator(pos, visitor)?,
991
0
            0xfe => self.visit_0xfe_operator(pos, visitor)?,
992
993
0
            _ => bail!(pos, "illegal opcode: 0x{code:x}"),
994
        })
995
17.8M
    }
<wasmparser::binary_reader::BinaryReader>::visit_operator::<<wasmparser::validator::core::ModuleState>::check_const_expr::VisitConstOperator>
Line
Count
Source
756
622k
    pub fn visit_operator<T>(&mut self, visitor: &mut T) -> Result<<T as VisitOperator<'a>>::Output>
757
622k
    where
758
622k
        T: VisitOperator<'a>,
759
622k
    {
760
622k
        let pos = self.original_position();
761
622k
        let code = self.read_u8()? as u8;
762
622k
        Ok(match code {
763
0
            0x00 => visitor.visit_unreachable(),
764
0
            0x01 => visitor.visit_nop(),
765
0
            0x02 => visitor.visit_block(self.read_block_type()?),
766
0
            0x03 => visitor.visit_loop(self.read_block_type()?),
767
0
            0x04 => visitor.visit_if(self.read_block_type()?),
768
0
            0x05 => visitor.visit_else(),
769
0
            0x06 => visitor.visit_try(self.read_block_type()?),
770
0
            0x07 => visitor.visit_catch(self.read_var_u32()?),
771
0
            0x08 => visitor.visit_throw(self.read_var_u32()?),
772
0
            0x09 => visitor.visit_rethrow(self.read_var_u32()?),
773
0
            0x0a => visitor.visit_throw_ref(),
774
311k
            0x0b => visitor.visit_end(),
775
0
            0x0c => visitor.visit_br(self.read_var_u32()?),
776
0
            0x0d => visitor.visit_br_if(self.read_var_u32()?),
777
0
            0x0e => visitor.visit_br_table(self.read_br_table()?),
778
0
            0x0f => visitor.visit_return(),
779
0
            0x10 => visitor.visit_call(self.read_var_u32()?),
780
            0x11 => {
781
0
                let index = self.read_var_u32()?;
782
0
                let (table_byte, table_index) = self.read_first_byte_and_var_u32()?;
783
0
                visitor.visit_call_indirect(index, table_index, table_byte)
784
            }
785
0
            0x12 => visitor.visit_return_call(self.read_var_u32()?),
786
0
            0x13 => visitor.visit_return_call_indirect(self.read_var_u32()?, self.read_var_u32()?),
787
0
            0x14 => visitor.visit_call_ref(self.read()?),
788
0
            0x15 => visitor.visit_return_call_ref(self.read()?),
789
0
            0x18 => visitor.visit_delegate(self.read_var_u32()?),
790
0
            0x19 => visitor.visit_catch_all(),
791
0
            0x1a => visitor.visit_drop(),
792
0
            0x1b => visitor.visit_select(),
793
            0x1c => {
794
0
                let results = self.read_var_u32()?;
795
0
                if results != 1 {
796
0
                    return Err(BinaryReaderError::new(
797
0
                        "invalid result arity",
798
0
                        self.position,
799
0
                    ));
800
0
                }
801
0
                visitor.visit_typed_select(self.read()?)
802
            }
803
0
            0x1f => visitor.visit_try_table(self.read()?),
804
805
0
            0x20 => visitor.visit_local_get(self.read_var_u32()?),
806
0
            0x21 => visitor.visit_local_set(self.read_var_u32()?),
807
0
            0x22 => visitor.visit_local_tee(self.read_var_u32()?),
808
0
            0x23 => visitor.visit_global_get(self.read_var_u32()?),
809
0
            0x24 => visitor.visit_global_set(self.read_var_u32()?),
810
0
            0x25 => visitor.visit_table_get(self.read_var_u32()?),
811
0
            0x26 => visitor.visit_table_set(self.read_var_u32()?),
812
813
0
            0x28 => visitor.visit_i32_load(self.read_memarg(2)?),
814
0
            0x29 => visitor.visit_i64_load(self.read_memarg(3)?),
815
0
            0x2a => visitor.visit_f32_load(self.read_memarg(2)?),
816
0
            0x2b => visitor.visit_f64_load(self.read_memarg(3)?),
817
0
            0x2c => visitor.visit_i32_load8_s(self.read_memarg(0)?),
818
0
            0x2d => visitor.visit_i32_load8_u(self.read_memarg(0)?),
819
0
            0x2e => visitor.visit_i32_load16_s(self.read_memarg(1)?),
820
0
            0x2f => visitor.visit_i32_load16_u(self.read_memarg(1)?),
821
0
            0x30 => visitor.visit_i64_load8_s(self.read_memarg(0)?),
822
0
            0x31 => visitor.visit_i64_load8_u(self.read_memarg(0)?),
823
0
            0x32 => visitor.visit_i64_load16_s(self.read_memarg(1)?),
824
0
            0x33 => visitor.visit_i64_load16_u(self.read_memarg(1)?),
825
0
            0x34 => visitor.visit_i64_load32_s(self.read_memarg(2)?),
826
0
            0x35 => visitor.visit_i64_load32_u(self.read_memarg(2)?),
827
0
            0x36 => visitor.visit_i32_store(self.read_memarg(2)?),
828
0
            0x37 => visitor.visit_i64_store(self.read_memarg(3)?),
829
0
            0x38 => visitor.visit_f32_store(self.read_memarg(2)?),
830
0
            0x39 => visitor.visit_f64_store(self.read_memarg(3)?),
831
0
            0x3a => visitor.visit_i32_store8(self.read_memarg(0)?),
832
0
            0x3b => visitor.visit_i32_store16(self.read_memarg(1)?),
833
0
            0x3c => visitor.visit_i64_store8(self.read_memarg(0)?),
834
0
            0x3d => visitor.visit_i64_store16(self.read_memarg(1)?),
835
0
            0x3e => visitor.visit_i64_store32(self.read_memarg(2)?),
836
            0x3f => {
837
0
                let (mem_byte, mem) = self.read_first_byte_and_var_u32()?;
838
0
                visitor.visit_memory_size(mem, mem_byte)
839
            }
840
            0x40 => {
841
0
                let (mem_byte, mem) = self.read_first_byte_and_var_u32()?;
842
0
                visitor.visit_memory_grow(mem, mem_byte)
843
            }
844
845
171k
            0x41 => visitor.visit_i32_const(self.read_var_i32()?),
846
64.9k
            0x42 => visitor.visit_i64_const(self.read_var_i64()?),
847
6.78k
            0x43 => visitor.visit_f32_const(self.read_f32()?),
848
68.1k
            0x44 => visitor.visit_f64_const(self.read_f64()?),
849
850
0
            0x45 => visitor.visit_i32_eqz(),
851
0
            0x46 => visitor.visit_i32_eq(),
852
0
            0x47 => visitor.visit_i32_ne(),
853
0
            0x48 => visitor.visit_i32_lt_s(),
854
0
            0x49 => visitor.visit_i32_lt_u(),
855
0
            0x4a => visitor.visit_i32_gt_s(),
856
0
            0x4b => visitor.visit_i32_gt_u(),
857
0
            0x4c => visitor.visit_i32_le_s(),
858
0
            0x4d => visitor.visit_i32_le_u(),
859
0
            0x4e => visitor.visit_i32_ge_s(),
860
0
            0x4f => visitor.visit_i32_ge_u(),
861
0
            0x50 => visitor.visit_i64_eqz(),
862
0
            0x51 => visitor.visit_i64_eq(),
863
0
            0x52 => visitor.visit_i64_ne(),
864
0
            0x53 => visitor.visit_i64_lt_s(),
865
0
            0x54 => visitor.visit_i64_lt_u(),
866
0
            0x55 => visitor.visit_i64_gt_s(),
867
0
            0x56 => visitor.visit_i64_gt_u(),
868
0
            0x57 => visitor.visit_i64_le_s(),
869
0
            0x58 => visitor.visit_i64_le_u(),
870
0
            0x59 => visitor.visit_i64_ge_s(),
871
0
            0x5a => visitor.visit_i64_ge_u(),
872
0
            0x5b => visitor.visit_f32_eq(),
873
0
            0x5c => visitor.visit_f32_ne(),
874
0
            0x5d => visitor.visit_f32_lt(),
875
0
            0x5e => visitor.visit_f32_gt(),
876
0
            0x5f => visitor.visit_f32_le(),
877
0
            0x60 => visitor.visit_f32_ge(),
878
0
            0x61 => visitor.visit_f64_eq(),
879
0
            0x62 => visitor.visit_f64_ne(),
880
0
            0x63 => visitor.visit_f64_lt(),
881
0
            0x64 => visitor.visit_f64_gt(),
882
0
            0x65 => visitor.visit_f64_le(),
883
0
            0x66 => visitor.visit_f64_ge(),
884
0
            0x67 => visitor.visit_i32_clz(),
885
0
            0x68 => visitor.visit_i32_ctz(),
886
0
            0x69 => visitor.visit_i32_popcnt(),
887
0
            0x6a => visitor.visit_i32_add(),
888
0
            0x6b => visitor.visit_i32_sub(),
889
0
            0x6c => visitor.visit_i32_mul(),
890
0
            0x6d => visitor.visit_i32_div_s(),
891
0
            0x6e => visitor.visit_i32_div_u(),
892
0
            0x6f => visitor.visit_i32_rem_s(),
893
0
            0x70 => visitor.visit_i32_rem_u(),
894
0
            0x71 => visitor.visit_i32_and(),
895
0
            0x72 => visitor.visit_i32_or(),
896
0
            0x73 => visitor.visit_i32_xor(),
897
0
            0x74 => visitor.visit_i32_shl(),
898
0
            0x75 => visitor.visit_i32_shr_s(),
899
0
            0x76 => visitor.visit_i32_shr_u(),
900
0
            0x77 => visitor.visit_i32_rotl(),
901
0
            0x78 => visitor.visit_i32_rotr(),
902
0
            0x79 => visitor.visit_i64_clz(),
903
0
            0x7a => visitor.visit_i64_ctz(),
904
0
            0x7b => visitor.visit_i64_popcnt(),
905
0
            0x7c => visitor.visit_i64_add(),
906
0
            0x7d => visitor.visit_i64_sub(),
907
0
            0x7e => visitor.visit_i64_mul(),
908
0
            0x7f => visitor.visit_i64_div_s(),
909
0
            0x80 => visitor.visit_i64_div_u(),
910
0
            0x81 => visitor.visit_i64_rem_s(),
911
0
            0x82 => visitor.visit_i64_rem_u(),
912
0
            0x83 => visitor.visit_i64_and(),
913
0
            0x84 => visitor.visit_i64_or(),
914
0
            0x85 => visitor.visit_i64_xor(),
915
0
            0x86 => visitor.visit_i64_shl(),
916
0
            0x87 => visitor.visit_i64_shr_s(),
917
0
            0x88 => visitor.visit_i64_shr_u(),
918
0
            0x89 => visitor.visit_i64_rotl(),
919
0
            0x8a => visitor.visit_i64_rotr(),
920
0
            0x8b => visitor.visit_f32_abs(),
921
0
            0x8c => visitor.visit_f32_neg(),
922
0
            0x8d => visitor.visit_f32_ceil(),
923
0
            0x8e => visitor.visit_f32_floor(),
924
0
            0x8f => visitor.visit_f32_trunc(),
925
0
            0x90 => visitor.visit_f32_nearest(),
926
0
            0x91 => visitor.visit_f32_sqrt(),
927
0
            0x92 => visitor.visit_f32_add(),
928
0
            0x93 => visitor.visit_f32_sub(),
929
0
            0x94 => visitor.visit_f32_mul(),
930
0
            0x95 => visitor.visit_f32_div(),
931
0
            0x96 => visitor.visit_f32_min(),
932
0
            0x97 => visitor.visit_f32_max(),
933
0
            0x98 => visitor.visit_f32_copysign(),
934
0
            0x99 => visitor.visit_f64_abs(),
935
0
            0x9a => visitor.visit_f64_neg(),
936
0
            0x9b => visitor.visit_f64_ceil(),
937
0
            0x9c => visitor.visit_f64_floor(),
938
0
            0x9d => visitor.visit_f64_trunc(),
939
0
            0x9e => visitor.visit_f64_nearest(),
940
0
            0x9f => visitor.visit_f64_sqrt(),
941
0
            0xa0 => visitor.visit_f64_add(),
942
0
            0xa1 => visitor.visit_f64_sub(),
943
0
            0xa2 => visitor.visit_f64_mul(),
944
0
            0xa3 => visitor.visit_f64_div(),
945
0
            0xa4 => visitor.visit_f64_min(),
946
0
            0xa5 => visitor.visit_f64_max(),
947
0
            0xa6 => visitor.visit_f64_copysign(),
948
0
            0xa7 => visitor.visit_i32_wrap_i64(),
949
0
            0xa8 => visitor.visit_i32_trunc_f32_s(),
950
0
            0xa9 => visitor.visit_i32_trunc_f32_u(),
951
0
            0xaa => visitor.visit_i32_trunc_f64_s(),
952
0
            0xab => visitor.visit_i32_trunc_f64_u(),
953
0
            0xac => visitor.visit_i64_extend_i32_s(),
954
0
            0xad => visitor.visit_i64_extend_i32_u(),
955
0
            0xae => visitor.visit_i64_trunc_f32_s(),
956
0
            0xaf => visitor.visit_i64_trunc_f32_u(),
957
0
            0xb0 => visitor.visit_i64_trunc_f64_s(),
958
0
            0xb1 => visitor.visit_i64_trunc_f64_u(),
959
0
            0xb2 => visitor.visit_f32_convert_i32_s(),
960
0
            0xb3 => visitor.visit_f32_convert_i32_u(),
961
0
            0xb4 => visitor.visit_f32_convert_i64_s(),
962
0
            0xb5 => visitor.visit_f32_convert_i64_u(),
963
0
            0xb6 => visitor.visit_f32_demote_f64(),
964
0
            0xb7 => visitor.visit_f64_convert_i32_s(),
965
0
            0xb8 => visitor.visit_f64_convert_i32_u(),
966
0
            0xb9 => visitor.visit_f64_convert_i64_s(),
967
0
            0xba => visitor.visit_f64_convert_i64_u(),
968
0
            0xbb => visitor.visit_f64_promote_f32(),
969
0
            0xbc => visitor.visit_i32_reinterpret_f32(),
970
0
            0xbd => visitor.visit_i64_reinterpret_f64(),
971
0
            0xbe => visitor.visit_f32_reinterpret_i32(),
972
0
            0xbf => visitor.visit_f64_reinterpret_i64(),
973
974
0
            0xc0 => visitor.visit_i32_extend8_s(),
975
0
            0xc1 => visitor.visit_i32_extend16_s(),
976
0
            0xc2 => visitor.visit_i64_extend8_s(),
977
0
            0xc3 => visitor.visit_i64_extend16_s(),
978
0
            0xc4 => visitor.visit_i64_extend32_s(),
979
980
0
            0xd0 => visitor.visit_ref_null(self.read()?),
981
0
            0xd1 => visitor.visit_ref_is_null(),
982
0
            0xd2 => visitor.visit_ref_func(self.read_var_u32()?),
983
0
            0xd3 => visitor.visit_ref_eq(),
984
0
            0xd4 => visitor.visit_ref_as_non_null(),
985
0
            0xd5 => visitor.visit_br_on_null(self.read_var_u32()?),
986
0
            0xd6 => visitor.visit_br_on_non_null(self.read_var_u32()?),
987
988
0
            0xfb => self.visit_0xfb_operator(pos, visitor)?,
989
0
            0xfc => self.visit_0xfc_operator(pos, visitor)?,
990
0
            0xfd => self.visit_0xfd_operator(pos, visitor)?,
991
0
            0xfe => self.visit_0xfe_operator(pos, visitor)?,
992
993
0
            _ => bail!(pos, "illegal opcode: 0x{code:x}"),
994
        })
995
622k
    }
996
997
0
    fn visit_0xfb_operator<T>(
998
0
        &mut self,
999
0
        pos: usize,
1000
0
        visitor: &mut T,
1001
0
    ) -> Result<<T as VisitOperator<'a>>::Output>
1002
0
    where
1003
0
        T: VisitOperator<'a>,
1004
0
    {
1005
0
        let code = self.read_var_u32()?;
1006
0
        Ok(match code {
1007
            0x0 => {
1008
0
                let type_index = self.read_var_u32()?;
1009
0
                visitor.visit_struct_new(type_index)
1010
            }
1011
            0x01 => {
1012
0
                let type_index = self.read_var_u32()?;
1013
0
                visitor.visit_struct_new_default(type_index)
1014
            }
1015
            0x02 => {
1016
0
                let type_index = self.read_var_u32()?;
1017
0
                let field_index = self.read_var_u32()?;
1018
0
                visitor.visit_struct_get(type_index, field_index)
1019
            }
1020
            0x03 => {
1021
0
                let type_index = self.read_var_u32()?;
1022
0
                let field_index = self.read_var_u32()?;
1023
0
                visitor.visit_struct_get_s(type_index, field_index)
1024
            }
1025
            0x04 => {
1026
0
                let type_index = self.read_var_u32()?;
1027
0
                let field_index = self.read_var_u32()?;
1028
0
                visitor.visit_struct_get_u(type_index, field_index)
1029
            }
1030
            0x05 => {
1031
0
                let type_index = self.read_var_u32()?;
1032
0
                let field_index = self.read_var_u32()?;
1033
0
                visitor.visit_struct_set(type_index, field_index)
1034
            }
1035
            0x06 => {
1036
0
                let type_index = self.read_var_u32()?;
1037
0
                visitor.visit_array_new(type_index)
1038
            }
1039
            0x07 => {
1040
0
                let type_index = self.read_var_u32()?;
1041
0
                visitor.visit_array_new_default(type_index)
1042
            }
1043
            0x08 => {
1044
0
                let type_index = self.read_var_u32()?;
1045
0
                let n = self.read_var_u32()?;
1046
0
                visitor.visit_array_new_fixed(type_index, n)
1047
            }
1048
            0x09 => {
1049
0
                let type_index = self.read_var_u32()?;
1050
0
                let data_index = self.read_var_u32()?;
1051
0
                visitor.visit_array_new_data(type_index, data_index)
1052
            }
1053
            0x0a => {
1054
0
                let type_index = self.read_var_u32()?;
1055
0
                let elem_index = self.read_var_u32()?;
1056
0
                visitor.visit_array_new_elem(type_index, elem_index)
1057
            }
1058
            0x0b => {
1059
0
                let type_index = self.read_var_u32()?;
1060
0
                visitor.visit_array_get(type_index)
1061
            }
1062
            0x0c => {
1063
0
                let type_index = self.read_var_u32()?;
1064
0
                visitor.visit_array_get_s(type_index)
1065
            }
1066
            0x0d => {
1067
0
                let type_index = self.read_var_u32()?;
1068
0
                visitor.visit_array_get_u(type_index)
1069
            }
1070
            0x0e => {
1071
0
                let type_index = self.read_var_u32()?;
1072
0
                visitor.visit_array_set(type_index)
1073
            }
1074
0
            0x0f => visitor.visit_array_len(),
1075
            0x10 => {
1076
0
                let type_index = self.read_var_u32()?;
1077
0
                visitor.visit_array_fill(type_index)
1078
            }
1079
            0x11 => {
1080
0
                let type_index_dst = self.read_var_u32()?;
1081
0
                let type_index_src = self.read_var_u32()?;
1082
0
                visitor.visit_array_copy(type_index_dst, type_index_src)
1083
            }
1084
            0x12 => {
1085
0
                let type_index = self.read_var_u32()?;
1086
0
                let data_index = self.read_var_u32()?;
1087
0
                visitor.visit_array_init_data(type_index, data_index)
1088
            }
1089
            0x13 => {
1090
0
                let type_index = self.read_var_u32()?;
1091
0
                let elem_index = self.read_var_u32()?;
1092
0
                visitor.visit_array_init_elem(type_index, elem_index)
1093
            }
1094
0
            0x14 => visitor.visit_ref_test_non_null(self.read()?),
1095
0
            0x15 => visitor.visit_ref_test_nullable(self.read()?),
1096
0
            0x16 => visitor.visit_ref_cast_non_null(self.read()?),
1097
0
            0x17 => visitor.visit_ref_cast_nullable(self.read()?),
1098
            0x18 => {
1099
0
                let pos = self.original_position();
1100
0
                let cast_flags = self.read_u8()?;
1101
0
                let relative_depth = self.read_var_u32()?;
1102
0
                let (from_type_nullable, to_type_nullable) = match cast_flags {
1103
0
                    0b00 => (false, false),
1104
0
                    0b01 => (true, false),
1105
0
                    0b10 => (false, true),
1106
0
                    0b11 => (true, true),
1107
0
                    _ => bail!(pos, "invalid cast flags: {cast_flags:08b}"),
1108
                };
1109
0
                let from_heap_type = self.read()?;
1110
0
                let from_ref_type =
1111
0
                    RefType::new(from_type_nullable, from_heap_type).ok_or_else(|| {
1112
0
                        format_err!(pos, "implementation error: type index too large")
1113
0
                    })?;
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfb_operator::<wasmprinter::operator::PrintOperator>::{closure#0}
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfb_operator::<wasmparser::validator::operators::WasmProposalValidator<wasmparser::validator::core::ValidatorResources>>::{closure#0}
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfb_operator::<wasmparser::binary_reader::OperatorFactory>::{closure#0}
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfb_operator::<<wasmparser::validator::core::ModuleState>::check_const_expr::VisitConstOperator>::{closure#0}
1114
0
                let to_heap_type = self.read()?;
1115
0
                let to_ref_type =
1116
0
                    RefType::new(to_type_nullable, to_heap_type).ok_or_else(|| {
1117
0
                        format_err!(pos, "implementation error: type index too large")
1118
0
                    })?;
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfb_operator::<wasmprinter::operator::PrintOperator>::{closure#1}
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfb_operator::<wasmparser::validator::operators::WasmProposalValidator<wasmparser::validator::core::ValidatorResources>>::{closure#1}
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfb_operator::<wasmparser::binary_reader::OperatorFactory>::{closure#1}
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfb_operator::<<wasmparser::validator::core::ModuleState>::check_const_expr::VisitConstOperator>::{closure#1}
1119
0
                visitor.visit_br_on_cast(relative_depth, from_ref_type, to_ref_type)
1120
            }
1121
            0x19 => {
1122
0
                let pos = self.original_position();
1123
0
                let cast_flags = self.read_u8()?;
1124
0
                let relative_depth = self.read_var_u32()?;
1125
0
                let (from_type_nullable, to_type_nullable) = match cast_flags {
1126
0
                    0 => (false, false),
1127
0
                    1 => (true, false),
1128
0
                    2 => (false, true),
1129
0
                    3 => (true, true),
1130
0
                    _ => bail!(pos, "invalid cast flags: {cast_flags:08b}"),
1131
                };
1132
0
                let from_heap_type = self.read()?;
1133
0
                let from_ref_type =
1134
0
                    RefType::new(from_type_nullable, from_heap_type).ok_or_else(|| {
1135
0
                        format_err!(pos, "implementation error: type index too large")
1136
0
                    })?;
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfb_operator::<wasmprinter::operator::PrintOperator>::{closure#2}
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfb_operator::<wasmparser::validator::operators::WasmProposalValidator<wasmparser::validator::core::ValidatorResources>>::{closure#2}
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfb_operator::<wasmparser::binary_reader::OperatorFactory>::{closure#2}
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfb_operator::<<wasmparser::validator::core::ModuleState>::check_const_expr::VisitConstOperator>::{closure#2}
1137
0
                let to_heap_type = self.read()?;
1138
0
                let to_ref_type =
1139
0
                    RefType::new(to_type_nullable, to_heap_type).ok_or_else(|| {
1140
0
                        format_err!(pos, "implementation error: type index too large")
1141
0
                    })?;
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfb_operator::<wasmprinter::operator::PrintOperator>::{closure#3}
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfb_operator::<wasmparser::validator::operators::WasmProposalValidator<wasmparser::validator::core::ValidatorResources>>::{closure#3}
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfb_operator::<wasmparser::binary_reader::OperatorFactory>::{closure#3}
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfb_operator::<<wasmparser::validator::core::ModuleState>::check_const_expr::VisitConstOperator>::{closure#3}
1142
0
                visitor.visit_br_on_cast_fail(relative_depth, from_ref_type, to_ref_type)
1143
            }
1144
1145
0
            0x1a => visitor.visit_any_convert_extern(),
1146
0
            0x1b => visitor.visit_extern_convert_any(),
1147
1148
0
            0x1c => visitor.visit_ref_i31(),
1149
0
            0x1d => visitor.visit_i31_get_s(),
1150
0
            0x1e => visitor.visit_i31_get_u(),
1151
1152
0
            _ => bail!(pos, "unknown 0xfb subopcode: 0x{code:x}"),
1153
        })
1154
0
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfb_operator::<wasmprinter::operator::PrintOperator>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfb_operator::<wasmparser::validator::operators::WasmProposalValidator<wasmparser::validator::core::ValidatorResources>>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfb_operator::<wasmparser::binary_reader::OperatorFactory>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfb_operator::<<wasmparser::validator::core::ModuleState>::check_const_expr::VisitConstOperator>
1155
1156
562k
    fn visit_0xfc_operator<T>(
1157
562k
        &mut self,
1158
562k
        pos: usize,
1159
562k
        visitor: &mut T,
1160
562k
    ) -> Result<<T as VisitOperator<'a>>::Output>
1161
562k
    where
1162
562k
        T: VisitOperator<'a>,
1163
562k
    {
1164
562k
        let code = self.read_var_u32()?;
1165
562k
        Ok(match code {
1166
36.0k
            0x00 => visitor.visit_i32_trunc_sat_f32_s(),
1167
60.7k
            0x01 => visitor.visit_i32_trunc_sat_f32_u(),
1168
66.4k
            0x02 => visitor.visit_i32_trunc_sat_f64_s(),
1169
76.7k
            0x03 => visitor.visit_i32_trunc_sat_f64_u(),
1170
81.4k
            0x04 => visitor.visit_i64_trunc_sat_f32_s(),
1171
78.4k
            0x05 => visitor.visit_i64_trunc_sat_f32_u(),
1172
57.3k
            0x06 => visitor.visit_i64_trunc_sat_f64_s(),
1173
105k
            0x07 => visitor.visit_i64_trunc_sat_f64_u(),
1174
1175
            0x08 => {
1176
0
                let segment = self.read_var_u32()?;
1177
0
                let mem = self.read_var_u32()?;
1178
0
                visitor.visit_memory_init(segment, mem)
1179
            }
1180
            0x09 => {
1181
0
                let segment = self.read_var_u32()?;
1182
0
                visitor.visit_data_drop(segment)
1183
            }
1184
            0x0a => {
1185
0
                let dst = self.read_var_u32()?;
1186
0
                let src = self.read_var_u32()?;
1187
0
                visitor.visit_memory_copy(dst, src)
1188
            }
1189
            0x0b => {
1190
0
                let mem = self.read_var_u32()?;
1191
0
                visitor.visit_memory_fill(mem)
1192
            }
1193
            0x0c => {
1194
0
                let segment = self.read_var_u32()?;
1195
0
                let table = self.read_var_u32()?;
1196
0
                visitor.visit_table_init(segment, table)
1197
            }
1198
            0x0d => {
1199
0
                let segment = self.read_var_u32()?;
1200
0
                visitor.visit_elem_drop(segment)
1201
            }
1202
            0x0e => {
1203
0
                let dst_table = self.read_var_u32()?;
1204
0
                let src_table = self.read_var_u32()?;
1205
0
                visitor.visit_table_copy(dst_table, src_table)
1206
            }
1207
1208
            0x0f => {
1209
0
                let table = self.read_var_u32()?;
1210
0
                visitor.visit_table_grow(table)
1211
            }
1212
            0x10 => {
1213
0
                let table = self.read_var_u32()?;
1214
0
                visitor.visit_table_size(table)
1215
            }
1216
1217
            0x11 => {
1218
0
                let table = self.read_var_u32()?;
1219
0
                visitor.visit_table_fill(table)
1220
            }
1221
1222
            0x12 => {
1223
0
                let mem = self.read_var_u32()?;
1224
0
                visitor.visit_memory_discard(mem)
1225
            }
1226
1227
0
            _ => bail!(pos, "unknown 0xfc subopcode: 0x{code:x}"),
1228
        })
1229
562k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfc_operator::<wasmprinter::operator::PrintOperator>
<wasmparser::binary_reader::BinaryReader>::visit_0xfc_operator::<wasmparser::validator::operators::WasmProposalValidator<wasmparser::validator::core::ValidatorResources>>
Line
Count
Source
1156
281k
    fn visit_0xfc_operator<T>(
1157
281k
        &mut self,
1158
281k
        pos: usize,
1159
281k
        visitor: &mut T,
1160
281k
    ) -> Result<<T as VisitOperator<'a>>::Output>
1161
281k
    where
1162
281k
        T: VisitOperator<'a>,
1163
281k
    {
1164
281k
        let code = self.read_var_u32()?;
1165
281k
        Ok(match code {
1166
18.0k
            0x00 => visitor.visit_i32_trunc_sat_f32_s(),
1167
30.4k
            0x01 => visitor.visit_i32_trunc_sat_f32_u(),
1168
33.2k
            0x02 => visitor.visit_i32_trunc_sat_f64_s(),
1169
38.3k
            0x03 => visitor.visit_i32_trunc_sat_f64_u(),
1170
40.7k
            0x04 => visitor.visit_i64_trunc_sat_f32_s(),
1171
39.2k
            0x05 => visitor.visit_i64_trunc_sat_f32_u(),
1172
28.6k
            0x06 => visitor.visit_i64_trunc_sat_f64_s(),
1173
52.8k
            0x07 => visitor.visit_i64_trunc_sat_f64_u(),
1174
1175
            0x08 => {
1176
0
                let segment = self.read_var_u32()?;
1177
0
                let mem = self.read_var_u32()?;
1178
0
                visitor.visit_memory_init(segment, mem)
1179
            }
1180
            0x09 => {
1181
0
                let segment = self.read_var_u32()?;
1182
0
                visitor.visit_data_drop(segment)
1183
            }
1184
            0x0a => {
1185
0
                let dst = self.read_var_u32()?;
1186
0
                let src = self.read_var_u32()?;
1187
0
                visitor.visit_memory_copy(dst, src)
1188
            }
1189
            0x0b => {
1190
0
                let mem = self.read_var_u32()?;
1191
0
                visitor.visit_memory_fill(mem)
1192
            }
1193
            0x0c => {
1194
0
                let segment = self.read_var_u32()?;
1195
0
                let table = self.read_var_u32()?;
1196
0
                visitor.visit_table_init(segment, table)
1197
            }
1198
            0x0d => {
1199
0
                let segment = self.read_var_u32()?;
1200
0
                visitor.visit_elem_drop(segment)
1201
            }
1202
            0x0e => {
1203
0
                let dst_table = self.read_var_u32()?;
1204
0
                let src_table = self.read_var_u32()?;
1205
0
                visitor.visit_table_copy(dst_table, src_table)
1206
            }
1207
1208
            0x0f => {
1209
0
                let table = self.read_var_u32()?;
1210
0
                visitor.visit_table_grow(table)
1211
            }
1212
            0x10 => {
1213
0
                let table = self.read_var_u32()?;
1214
0
                visitor.visit_table_size(table)
1215
            }
1216
1217
            0x11 => {
1218
0
                let table = self.read_var_u32()?;
1219
0
                visitor.visit_table_fill(table)
1220
            }
1221
1222
            0x12 => {
1223
0
                let mem = self.read_var_u32()?;
1224
0
                visitor.visit_memory_discard(mem)
1225
            }
1226
1227
0
            _ => bail!(pos, "unknown 0xfc subopcode: 0x{code:x}"),
1228
        })
1229
281k
    }
<wasmparser::binary_reader::BinaryReader>::visit_0xfc_operator::<wasmparser::binary_reader::OperatorFactory>
Line
Count
Source
1156
280k
    fn visit_0xfc_operator<T>(
1157
280k
        &mut self,
1158
280k
        pos: usize,
1159
280k
        visitor: &mut T,
1160
280k
    ) -> Result<<T as VisitOperator<'a>>::Output>
1161
280k
    where
1162
280k
        T: VisitOperator<'a>,
1163
280k
    {
1164
280k
        let code = self.read_var_u32()?;
1165
280k
        Ok(match code {
1166
17.9k
            0x00 => visitor.visit_i32_trunc_sat_f32_s(),
1167
30.3k
            0x01 => visitor.visit_i32_trunc_sat_f32_u(),
1168
33.2k
            0x02 => visitor.visit_i32_trunc_sat_f64_s(),
1169
38.3k
            0x03 => visitor.visit_i32_trunc_sat_f64_u(),
1170
40.6k
            0x04 => visitor.visit_i64_trunc_sat_f32_s(),
1171
39.2k
            0x05 => visitor.visit_i64_trunc_sat_f32_u(),
1172
28.6k
            0x06 => visitor.visit_i64_trunc_sat_f64_s(),
1173
52.5k
            0x07 => visitor.visit_i64_trunc_sat_f64_u(),
1174
1175
            0x08 => {
1176
0
                let segment = self.read_var_u32()?;
1177
0
                let mem = self.read_var_u32()?;
1178
0
                visitor.visit_memory_init(segment, mem)
1179
            }
1180
            0x09 => {
1181
0
                let segment = self.read_var_u32()?;
1182
0
                visitor.visit_data_drop(segment)
1183
            }
1184
            0x0a => {
1185
0
                let dst = self.read_var_u32()?;
1186
0
                let src = self.read_var_u32()?;
1187
0
                visitor.visit_memory_copy(dst, src)
1188
            }
1189
            0x0b => {
1190
0
                let mem = self.read_var_u32()?;
1191
0
                visitor.visit_memory_fill(mem)
1192
            }
1193
            0x0c => {
1194
0
                let segment = self.read_var_u32()?;
1195
0
                let table = self.read_var_u32()?;
1196
0
                visitor.visit_table_init(segment, table)
1197
            }
1198
            0x0d => {
1199
0
                let segment = self.read_var_u32()?;
1200
0
                visitor.visit_elem_drop(segment)
1201
            }
1202
            0x0e => {
1203
0
                let dst_table = self.read_var_u32()?;
1204
0
                let src_table = self.read_var_u32()?;
1205
0
                visitor.visit_table_copy(dst_table, src_table)
1206
            }
1207
1208
            0x0f => {
1209
0
                let table = self.read_var_u32()?;
1210
0
                visitor.visit_table_grow(table)
1211
            }
1212
            0x10 => {
1213
0
                let table = self.read_var_u32()?;
1214
0
                visitor.visit_table_size(table)
1215
            }
1216
1217
            0x11 => {
1218
0
                let table = self.read_var_u32()?;
1219
0
                visitor.visit_table_fill(table)
1220
            }
1221
1222
            0x12 => {
1223
0
                let mem = self.read_var_u32()?;
1224
0
                visitor.visit_memory_discard(mem)
1225
            }
1226
1227
0
            _ => bail!(pos, "unknown 0xfc subopcode: 0x{code:x}"),
1228
        })
1229
280k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfc_operator::<<wasmparser::validator::core::ModuleState>::check_const_expr::VisitConstOperator>
1230
1231
0
    fn visit_0xfd_operator<T>(
1232
0
        &mut self,
1233
0
        pos: usize,
1234
0
        visitor: &mut T,
1235
0
    ) -> Result<<T as VisitOperator<'a>>::Output>
1236
0
    where
1237
0
        T: VisitOperator<'a>,
1238
0
    {
1239
0
        let code = self.read_var_u32()?;
1240
0
        Ok(match code {
1241
0
            0x00 => visitor.visit_v128_load(self.read_memarg(4)?),
1242
0
            0x01 => visitor.visit_v128_load8x8_s(self.read_memarg(3)?),
1243
0
            0x02 => visitor.visit_v128_load8x8_u(self.read_memarg(3)?),
1244
0
            0x03 => visitor.visit_v128_load16x4_s(self.read_memarg(3)?),
1245
0
            0x04 => visitor.visit_v128_load16x4_u(self.read_memarg(3)?),
1246
0
            0x05 => visitor.visit_v128_load32x2_s(self.read_memarg(3)?),
1247
0
            0x06 => visitor.visit_v128_load32x2_u(self.read_memarg(3)?),
1248
0
            0x07 => visitor.visit_v128_load8_splat(self.read_memarg(0)?),
1249
0
            0x08 => visitor.visit_v128_load16_splat(self.read_memarg(1)?),
1250
0
            0x09 => visitor.visit_v128_load32_splat(self.read_memarg(2)?),
1251
0
            0x0a => visitor.visit_v128_load64_splat(self.read_memarg(3)?),
1252
1253
0
            0x0b => visitor.visit_v128_store(self.read_memarg(4)?),
1254
0
            0x0c => visitor.visit_v128_const(self.read_v128()?),
1255
            0x0d => {
1256
0
                let mut lanes: [u8; 16] = [0; 16];
1257
0
                for lane in &mut lanes {
1258
0
                    *lane = self.read_lane_index(32)?
1259
                }
1260
0
                visitor.visit_i8x16_shuffle(lanes)
1261
            }
1262
1263
0
            0x0e => visitor.visit_i8x16_swizzle(),
1264
0
            0x0f => visitor.visit_i8x16_splat(),
1265
0
            0x10 => visitor.visit_i16x8_splat(),
1266
0
            0x11 => visitor.visit_i32x4_splat(),
1267
0
            0x12 => visitor.visit_i64x2_splat(),
1268
0
            0x13 => visitor.visit_f32x4_splat(),
1269
0
            0x14 => visitor.visit_f64x2_splat(),
1270
1271
0
            0x15 => visitor.visit_i8x16_extract_lane_s(self.read_lane_index(16)?),
1272
0
            0x16 => visitor.visit_i8x16_extract_lane_u(self.read_lane_index(16)?),
1273
0
            0x17 => visitor.visit_i8x16_replace_lane(self.read_lane_index(16)?),
1274
0
            0x18 => visitor.visit_i16x8_extract_lane_s(self.read_lane_index(8)?),
1275
0
            0x19 => visitor.visit_i16x8_extract_lane_u(self.read_lane_index(8)?),
1276
0
            0x1a => visitor.visit_i16x8_replace_lane(self.read_lane_index(8)?),
1277
0
            0x1b => visitor.visit_i32x4_extract_lane(self.read_lane_index(4)?),
1278
1279
0
            0x1c => visitor.visit_i32x4_replace_lane(self.read_lane_index(4)?),
1280
0
            0x1d => visitor.visit_i64x2_extract_lane(self.read_lane_index(2)?),
1281
0
            0x1e => visitor.visit_i64x2_replace_lane(self.read_lane_index(2)?),
1282
0
            0x1f => visitor.visit_f32x4_extract_lane(self.read_lane_index(4)?),
1283
0
            0x20 => visitor.visit_f32x4_replace_lane(self.read_lane_index(4)?),
1284
0
            0x21 => visitor.visit_f64x2_extract_lane(self.read_lane_index(2)?),
1285
0
            0x22 => visitor.visit_f64x2_replace_lane(self.read_lane_index(2)?),
1286
1287
0
            0x23 => visitor.visit_i8x16_eq(),
1288
0
            0x24 => visitor.visit_i8x16_ne(),
1289
0
            0x25 => visitor.visit_i8x16_lt_s(),
1290
0
            0x26 => visitor.visit_i8x16_lt_u(),
1291
0
            0x27 => visitor.visit_i8x16_gt_s(),
1292
0
            0x28 => visitor.visit_i8x16_gt_u(),
1293
0
            0x29 => visitor.visit_i8x16_le_s(),
1294
0
            0x2a => visitor.visit_i8x16_le_u(),
1295
0
            0x2b => visitor.visit_i8x16_ge_s(),
1296
0
            0x2c => visitor.visit_i8x16_ge_u(),
1297
0
            0x2d => visitor.visit_i16x8_eq(),
1298
0
            0x2e => visitor.visit_i16x8_ne(),
1299
0
            0x2f => visitor.visit_i16x8_lt_s(),
1300
0
            0x30 => visitor.visit_i16x8_lt_u(),
1301
0
            0x31 => visitor.visit_i16x8_gt_s(),
1302
0
            0x32 => visitor.visit_i16x8_gt_u(),
1303
0
            0x33 => visitor.visit_i16x8_le_s(),
1304
0
            0x34 => visitor.visit_i16x8_le_u(),
1305
0
            0x35 => visitor.visit_i16x8_ge_s(),
1306
0
            0x36 => visitor.visit_i16x8_ge_u(),
1307
0
            0x37 => visitor.visit_i32x4_eq(),
1308
0
            0x38 => visitor.visit_i32x4_ne(),
1309
0
            0x39 => visitor.visit_i32x4_lt_s(),
1310
0
            0x3a => visitor.visit_i32x4_lt_u(),
1311
0
            0x3b => visitor.visit_i32x4_gt_s(),
1312
0
            0x3c => visitor.visit_i32x4_gt_u(),
1313
0
            0x3d => visitor.visit_i32x4_le_s(),
1314
0
            0x3e => visitor.visit_i32x4_le_u(),
1315
0
            0x3f => visitor.visit_i32x4_ge_s(),
1316
0
            0x40 => visitor.visit_i32x4_ge_u(),
1317
0
            0x41 => visitor.visit_f32x4_eq(),
1318
0
            0x42 => visitor.visit_f32x4_ne(),
1319
0
            0x43 => visitor.visit_f32x4_lt(),
1320
0
            0x44 => visitor.visit_f32x4_gt(),
1321
0
            0x45 => visitor.visit_f32x4_le(),
1322
0
            0x46 => visitor.visit_f32x4_ge(),
1323
0
            0x47 => visitor.visit_f64x2_eq(),
1324
0
            0x48 => visitor.visit_f64x2_ne(),
1325
0
            0x49 => visitor.visit_f64x2_lt(),
1326
0
            0x4a => visitor.visit_f64x2_gt(),
1327
0
            0x4b => visitor.visit_f64x2_le(),
1328
0
            0x4c => visitor.visit_f64x2_ge(),
1329
0
            0x4d => visitor.visit_v128_not(),
1330
0
            0x4e => visitor.visit_v128_and(),
1331
0
            0x4f => visitor.visit_v128_andnot(),
1332
0
            0x50 => visitor.visit_v128_or(),
1333
0
            0x51 => visitor.visit_v128_xor(),
1334
0
            0x52 => visitor.visit_v128_bitselect(),
1335
0
            0x53 => visitor.visit_v128_any_true(),
1336
1337
            0x54 => {
1338
0
                let memarg = self.read_memarg(0)?;
1339
0
                let lane = self.read_lane_index(16)?;
1340
0
                visitor.visit_v128_load8_lane(memarg, lane)
1341
            }
1342
            0x55 => {
1343
0
                let memarg = self.read_memarg(1)?;
1344
0
                let lane = self.read_lane_index(8)?;
1345
0
                visitor.visit_v128_load16_lane(memarg, lane)
1346
            }
1347
            0x56 => {
1348
0
                let memarg = self.read_memarg(2)?;
1349
0
                let lane = self.read_lane_index(4)?;
1350
0
                visitor.visit_v128_load32_lane(memarg, lane)
1351
            }
1352
            0x57 => {
1353
0
                let memarg = self.read_memarg(3)?;
1354
0
                let lane = self.read_lane_index(2)?;
1355
0
                visitor.visit_v128_load64_lane(memarg, lane)
1356
            }
1357
            0x58 => {
1358
0
                let memarg = self.read_memarg(0)?;
1359
0
                let lane = self.read_lane_index(16)?;
1360
0
                visitor.visit_v128_store8_lane(memarg, lane)
1361
            }
1362
            0x59 => {
1363
0
                let memarg = self.read_memarg(1)?;
1364
0
                let lane = self.read_lane_index(8)?;
1365
0
                visitor.visit_v128_store16_lane(memarg, lane)
1366
            }
1367
            0x5a => {
1368
0
                let memarg = self.read_memarg(2)?;
1369
0
                let lane = self.read_lane_index(4)?;
1370
0
                visitor.visit_v128_store32_lane(memarg, lane)
1371
            }
1372
            0x5b => {
1373
0
                let memarg = self.read_memarg(3)?;
1374
0
                let lane = self.read_lane_index(2)?;
1375
0
                visitor.visit_v128_store64_lane(memarg, lane)
1376
            }
1377
1378
0
            0x5c => visitor.visit_v128_load32_zero(self.read_memarg(2)?),
1379
0
            0x5d => visitor.visit_v128_load64_zero(self.read_memarg(3)?),
1380
0
            0x5e => visitor.visit_f32x4_demote_f64x2_zero(),
1381
0
            0x5f => visitor.visit_f64x2_promote_low_f32x4(),
1382
0
            0x60 => visitor.visit_i8x16_abs(),
1383
0
            0x61 => visitor.visit_i8x16_neg(),
1384
0
            0x62 => visitor.visit_i8x16_popcnt(),
1385
0
            0x63 => visitor.visit_i8x16_all_true(),
1386
0
            0x64 => visitor.visit_i8x16_bitmask(),
1387
0
            0x65 => visitor.visit_i8x16_narrow_i16x8_s(),
1388
0
            0x66 => visitor.visit_i8x16_narrow_i16x8_u(),
1389
0
            0x67 => visitor.visit_f32x4_ceil(),
1390
0
            0x68 => visitor.visit_f32x4_floor(),
1391
0
            0x69 => visitor.visit_f32x4_trunc(),
1392
0
            0x6a => visitor.visit_f32x4_nearest(),
1393
0
            0x6b => visitor.visit_i8x16_shl(),
1394
0
            0x6c => visitor.visit_i8x16_shr_s(),
1395
0
            0x6d => visitor.visit_i8x16_shr_u(),
1396
0
            0x6e => visitor.visit_i8x16_add(),
1397
0
            0x6f => visitor.visit_i8x16_add_sat_s(),
1398
0
            0x70 => visitor.visit_i8x16_add_sat_u(),
1399
0
            0x71 => visitor.visit_i8x16_sub(),
1400
0
            0x72 => visitor.visit_i8x16_sub_sat_s(),
1401
0
            0x73 => visitor.visit_i8x16_sub_sat_u(),
1402
0
            0x74 => visitor.visit_f64x2_ceil(),
1403
0
            0x75 => visitor.visit_f64x2_floor(),
1404
0
            0x76 => visitor.visit_i8x16_min_s(),
1405
0
            0x77 => visitor.visit_i8x16_min_u(),
1406
0
            0x78 => visitor.visit_i8x16_max_s(),
1407
0
            0x79 => visitor.visit_i8x16_max_u(),
1408
0
            0x7a => visitor.visit_f64x2_trunc(),
1409
0
            0x7b => visitor.visit_i8x16_avgr_u(),
1410
0
            0x7c => visitor.visit_i16x8_extadd_pairwise_i8x16_s(),
1411
0
            0x7d => visitor.visit_i16x8_extadd_pairwise_i8x16_u(),
1412
0
            0x7e => visitor.visit_i32x4_extadd_pairwise_i16x8_s(),
1413
0
            0x7f => visitor.visit_i32x4_extadd_pairwise_i16x8_u(),
1414
0
            0x80 => visitor.visit_i16x8_abs(),
1415
0
            0x81 => visitor.visit_i16x8_neg(),
1416
0
            0x82 => visitor.visit_i16x8_q15mulr_sat_s(),
1417
0
            0x83 => visitor.visit_i16x8_all_true(),
1418
0
            0x84 => visitor.visit_i16x8_bitmask(),
1419
0
            0x85 => visitor.visit_i16x8_narrow_i32x4_s(),
1420
0
            0x86 => visitor.visit_i16x8_narrow_i32x4_u(),
1421
0
            0x87 => visitor.visit_i16x8_extend_low_i8x16_s(),
1422
0
            0x88 => visitor.visit_i16x8_extend_high_i8x16_s(),
1423
0
            0x89 => visitor.visit_i16x8_extend_low_i8x16_u(),
1424
0
            0x8a => visitor.visit_i16x8_extend_high_i8x16_u(),
1425
0
            0x8b => visitor.visit_i16x8_shl(),
1426
0
            0x8c => visitor.visit_i16x8_shr_s(),
1427
0
            0x8d => visitor.visit_i16x8_shr_u(),
1428
0
            0x8e => visitor.visit_i16x8_add(),
1429
0
            0x8f => visitor.visit_i16x8_add_sat_s(),
1430
0
            0x90 => visitor.visit_i16x8_add_sat_u(),
1431
0
            0x91 => visitor.visit_i16x8_sub(),
1432
0
            0x92 => visitor.visit_i16x8_sub_sat_s(),
1433
0
            0x93 => visitor.visit_i16x8_sub_sat_u(),
1434
0
            0x94 => visitor.visit_f64x2_nearest(),
1435
0
            0x95 => visitor.visit_i16x8_mul(),
1436
0
            0x96 => visitor.visit_i16x8_min_s(),
1437
0
            0x97 => visitor.visit_i16x8_min_u(),
1438
0
            0x98 => visitor.visit_i16x8_max_s(),
1439
0
            0x99 => visitor.visit_i16x8_max_u(),
1440
0
            0x9b => visitor.visit_i16x8_avgr_u(),
1441
0
            0x9c => visitor.visit_i16x8_extmul_low_i8x16_s(),
1442
0
            0x9d => visitor.visit_i16x8_extmul_high_i8x16_s(),
1443
0
            0x9e => visitor.visit_i16x8_extmul_low_i8x16_u(),
1444
0
            0x9f => visitor.visit_i16x8_extmul_high_i8x16_u(),
1445
0
            0xa0 => visitor.visit_i32x4_abs(),
1446
0
            0xa1 => visitor.visit_i32x4_neg(),
1447
0
            0xa3 => visitor.visit_i32x4_all_true(),
1448
0
            0xa4 => visitor.visit_i32x4_bitmask(),
1449
0
            0xa7 => visitor.visit_i32x4_extend_low_i16x8_s(),
1450
0
            0xa8 => visitor.visit_i32x4_extend_high_i16x8_s(),
1451
0
            0xa9 => visitor.visit_i32x4_extend_low_i16x8_u(),
1452
0
            0xaa => visitor.visit_i32x4_extend_high_i16x8_u(),
1453
0
            0xab => visitor.visit_i32x4_shl(),
1454
0
            0xac => visitor.visit_i32x4_shr_s(),
1455
0
            0xad => visitor.visit_i32x4_shr_u(),
1456
0
            0xae => visitor.visit_i32x4_add(),
1457
0
            0xb1 => visitor.visit_i32x4_sub(),
1458
0
            0xb5 => visitor.visit_i32x4_mul(),
1459
0
            0xb6 => visitor.visit_i32x4_min_s(),
1460
0
            0xb7 => visitor.visit_i32x4_min_u(),
1461
0
            0xb8 => visitor.visit_i32x4_max_s(),
1462
0
            0xb9 => visitor.visit_i32x4_max_u(),
1463
0
            0xba => visitor.visit_i32x4_dot_i16x8_s(),
1464
0
            0xbc => visitor.visit_i32x4_extmul_low_i16x8_s(),
1465
0
            0xbd => visitor.visit_i32x4_extmul_high_i16x8_s(),
1466
0
            0xbe => visitor.visit_i32x4_extmul_low_i16x8_u(),
1467
0
            0xbf => visitor.visit_i32x4_extmul_high_i16x8_u(),
1468
0
            0xc0 => visitor.visit_i64x2_abs(),
1469
0
            0xc1 => visitor.visit_i64x2_neg(),
1470
0
            0xc3 => visitor.visit_i64x2_all_true(),
1471
0
            0xc4 => visitor.visit_i64x2_bitmask(),
1472
0
            0xc7 => visitor.visit_i64x2_extend_low_i32x4_s(),
1473
0
            0xc8 => visitor.visit_i64x2_extend_high_i32x4_s(),
1474
0
            0xc9 => visitor.visit_i64x2_extend_low_i32x4_u(),
1475
0
            0xca => visitor.visit_i64x2_extend_high_i32x4_u(),
1476
0
            0xcb => visitor.visit_i64x2_shl(),
1477
0
            0xcc => visitor.visit_i64x2_shr_s(),
1478
0
            0xcd => visitor.visit_i64x2_shr_u(),
1479
0
            0xce => visitor.visit_i64x2_add(),
1480
0
            0xd1 => visitor.visit_i64x2_sub(),
1481
0
            0xd5 => visitor.visit_i64x2_mul(),
1482
0
            0xd6 => visitor.visit_i64x2_eq(),
1483
0
            0xd7 => visitor.visit_i64x2_ne(),
1484
0
            0xd8 => visitor.visit_i64x2_lt_s(),
1485
0
            0xd9 => visitor.visit_i64x2_gt_s(),
1486
0
            0xda => visitor.visit_i64x2_le_s(),
1487
0
            0xdb => visitor.visit_i64x2_ge_s(),
1488
0
            0xdc => visitor.visit_i64x2_extmul_low_i32x4_s(),
1489
0
            0xdd => visitor.visit_i64x2_extmul_high_i32x4_s(),
1490
0
            0xde => visitor.visit_i64x2_extmul_low_i32x4_u(),
1491
0
            0xdf => visitor.visit_i64x2_extmul_high_i32x4_u(),
1492
0
            0xe0 => visitor.visit_f32x4_abs(),
1493
0
            0xe1 => visitor.visit_f32x4_neg(),
1494
0
            0xe3 => visitor.visit_f32x4_sqrt(),
1495
0
            0xe4 => visitor.visit_f32x4_add(),
1496
0
            0xe5 => visitor.visit_f32x4_sub(),
1497
0
            0xe6 => visitor.visit_f32x4_mul(),
1498
0
            0xe7 => visitor.visit_f32x4_div(),
1499
0
            0xe8 => visitor.visit_f32x4_min(),
1500
0
            0xe9 => visitor.visit_f32x4_max(),
1501
0
            0xea => visitor.visit_f32x4_pmin(),
1502
0
            0xeb => visitor.visit_f32x4_pmax(),
1503
0
            0xec => visitor.visit_f64x2_abs(),
1504
0
            0xed => visitor.visit_f64x2_neg(),
1505
0
            0xef => visitor.visit_f64x2_sqrt(),
1506
0
            0xf0 => visitor.visit_f64x2_add(),
1507
0
            0xf1 => visitor.visit_f64x2_sub(),
1508
0
            0xf2 => visitor.visit_f64x2_mul(),
1509
0
            0xf3 => visitor.visit_f64x2_div(),
1510
0
            0xf4 => visitor.visit_f64x2_min(),
1511
0
            0xf5 => visitor.visit_f64x2_max(),
1512
0
            0xf6 => visitor.visit_f64x2_pmin(),
1513
0
            0xf7 => visitor.visit_f64x2_pmax(),
1514
0
            0xf8 => visitor.visit_i32x4_trunc_sat_f32x4_s(),
1515
0
            0xf9 => visitor.visit_i32x4_trunc_sat_f32x4_u(),
1516
0
            0xfa => visitor.visit_f32x4_convert_i32x4_s(),
1517
0
            0xfb => visitor.visit_f32x4_convert_i32x4_u(),
1518
0
            0xfc => visitor.visit_i32x4_trunc_sat_f64x2_s_zero(),
1519
0
            0xfd => visitor.visit_i32x4_trunc_sat_f64x2_u_zero(),
1520
0
            0xfe => visitor.visit_f64x2_convert_low_i32x4_s(),
1521
0
            0xff => visitor.visit_f64x2_convert_low_i32x4_u(),
1522
0
            0x100 => visitor.visit_i8x16_relaxed_swizzle(),
1523
0
            0x101 => visitor.visit_i32x4_relaxed_trunc_f32x4_s(),
1524
0
            0x102 => visitor.visit_i32x4_relaxed_trunc_f32x4_u(),
1525
0
            0x103 => visitor.visit_i32x4_relaxed_trunc_f64x2_s_zero(),
1526
0
            0x104 => visitor.visit_i32x4_relaxed_trunc_f64x2_u_zero(),
1527
0
            0x105 => visitor.visit_f32x4_relaxed_madd(),
1528
0
            0x106 => visitor.visit_f32x4_relaxed_nmadd(),
1529
0
            0x107 => visitor.visit_f64x2_relaxed_madd(),
1530
0
            0x108 => visitor.visit_f64x2_relaxed_nmadd(),
1531
0
            0x109 => visitor.visit_i8x16_relaxed_laneselect(),
1532
0
            0x10a => visitor.visit_i16x8_relaxed_laneselect(),
1533
0
            0x10b => visitor.visit_i32x4_relaxed_laneselect(),
1534
0
            0x10c => visitor.visit_i64x2_relaxed_laneselect(),
1535
0
            0x10d => visitor.visit_f32x4_relaxed_min(),
1536
0
            0x10e => visitor.visit_f32x4_relaxed_max(),
1537
0
            0x10f => visitor.visit_f64x2_relaxed_min(),
1538
0
            0x110 => visitor.visit_f64x2_relaxed_max(),
1539
0
            0x111 => visitor.visit_i16x8_relaxed_q15mulr_s(),
1540
0
            0x112 => visitor.visit_i16x8_relaxed_dot_i8x16_i7x16_s(),
1541
0
            0x113 => visitor.visit_i32x4_relaxed_dot_i8x16_i7x16_add_s(),
1542
1543
0
            _ => bail!(pos, "unknown 0xfd subopcode: 0x{code:x}"),
1544
        })
1545
0
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfd_operator::<wasmprinter::operator::PrintOperator>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfd_operator::<wasmparser::validator::operators::WasmProposalValidator<wasmparser::validator::core::ValidatorResources>>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfd_operator::<wasmparser::binary_reader::OperatorFactory>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfd_operator::<<wasmparser::validator::core::ModuleState>::check_const_expr::VisitConstOperator>
1546
1547
0
    fn visit_0xfe_operator<T>(
1548
0
        &mut self,
1549
0
        pos: usize,
1550
0
        visitor: &mut T,
1551
0
    ) -> Result<<T as VisitOperator<'a>>::Output>
1552
0
    where
1553
0
        T: VisitOperator<'a>,
1554
0
    {
1555
0
        let code = self.read_var_u32()?;
1556
0
        Ok(match code {
1557
0
            0x00 => visitor.visit_memory_atomic_notify(self.read_memarg(2)?),
1558
0
            0x01 => visitor.visit_memory_atomic_wait32(self.read_memarg(2)?),
1559
0
            0x02 => visitor.visit_memory_atomic_wait64(self.read_memarg(3)?),
1560
            0x03 => {
1561
0
                if self.read_u8()? != 0 {
1562
0
                    bail!(pos, "nonzero byte after `atomic.fence`");
1563
0
                }
1564
0
                visitor.visit_atomic_fence()
1565
            }
1566
0
            0x10 => visitor.visit_i32_atomic_load(self.read_memarg(2)?),
1567
0
            0x11 => visitor.visit_i64_atomic_load(self.read_memarg(3)?),
1568
0
            0x12 => visitor.visit_i32_atomic_load8_u(self.read_memarg(0)?),
1569
0
            0x13 => visitor.visit_i32_atomic_load16_u(self.read_memarg(1)?),
1570
0
            0x14 => visitor.visit_i64_atomic_load8_u(self.read_memarg(0)?),
1571
0
            0x15 => visitor.visit_i64_atomic_load16_u(self.read_memarg(1)?),
1572
0
            0x16 => visitor.visit_i64_atomic_load32_u(self.read_memarg(2)?),
1573
0
            0x17 => visitor.visit_i32_atomic_store(self.read_memarg(2)?),
1574
0
            0x18 => visitor.visit_i64_atomic_store(self.read_memarg(3)?),
1575
0
            0x19 => visitor.visit_i32_atomic_store8(self.read_memarg(0)?),
1576
0
            0x1a => visitor.visit_i32_atomic_store16(self.read_memarg(1)?),
1577
0
            0x1b => visitor.visit_i64_atomic_store8(self.read_memarg(0)?),
1578
0
            0x1c => visitor.visit_i64_atomic_store16(self.read_memarg(1)?),
1579
0
            0x1d => visitor.visit_i64_atomic_store32(self.read_memarg(2)?),
1580
0
            0x1e => visitor.visit_i32_atomic_rmw_add(self.read_memarg(2)?),
1581
0
            0x1f => visitor.visit_i64_atomic_rmw_add(self.read_memarg(3)?),
1582
0
            0x20 => visitor.visit_i32_atomic_rmw8_add_u(self.read_memarg(0)?),
1583
0
            0x21 => visitor.visit_i32_atomic_rmw16_add_u(self.read_memarg(1)?),
1584
0
            0x22 => visitor.visit_i64_atomic_rmw8_add_u(self.read_memarg(0)?),
1585
0
            0x23 => visitor.visit_i64_atomic_rmw16_add_u(self.read_memarg(1)?),
1586
0
            0x24 => visitor.visit_i64_atomic_rmw32_add_u(self.read_memarg(2)?),
1587
0
            0x25 => visitor.visit_i32_atomic_rmw_sub(self.read_memarg(2)?),
1588
0
            0x26 => visitor.visit_i64_atomic_rmw_sub(self.read_memarg(3)?),
1589
0
            0x27 => visitor.visit_i32_atomic_rmw8_sub_u(self.read_memarg(0)?),
1590
0
            0x28 => visitor.visit_i32_atomic_rmw16_sub_u(self.read_memarg(1)?),
1591
0
            0x29 => visitor.visit_i64_atomic_rmw8_sub_u(self.read_memarg(0)?),
1592
0
            0x2a => visitor.visit_i64_atomic_rmw16_sub_u(self.read_memarg(1)?),
1593
0
            0x2b => visitor.visit_i64_atomic_rmw32_sub_u(self.read_memarg(2)?),
1594
0
            0x2c => visitor.visit_i32_atomic_rmw_and(self.read_memarg(2)?),
1595
0
            0x2d => visitor.visit_i64_atomic_rmw_and(self.read_memarg(3)?),
1596
0
            0x2e => visitor.visit_i32_atomic_rmw8_and_u(self.read_memarg(0)?),
1597
0
            0x2f => visitor.visit_i32_atomic_rmw16_and_u(self.read_memarg(1)?),
1598
0
            0x30 => visitor.visit_i64_atomic_rmw8_and_u(self.read_memarg(0)?),
1599
0
            0x31 => visitor.visit_i64_atomic_rmw16_and_u(self.read_memarg(1)?),
1600
0
            0x32 => visitor.visit_i64_atomic_rmw32_and_u(self.read_memarg(2)?),
1601
0
            0x33 => visitor.visit_i32_atomic_rmw_or(self.read_memarg(2)?),
1602
0
            0x34 => visitor.visit_i64_atomic_rmw_or(self.read_memarg(3)?),
1603
0
            0x35 => visitor.visit_i32_atomic_rmw8_or_u(self.read_memarg(0)?),
1604
0
            0x36 => visitor.visit_i32_atomic_rmw16_or_u(self.read_memarg(1)?),
1605
0
            0x37 => visitor.visit_i64_atomic_rmw8_or_u(self.read_memarg(0)?),
1606
0
            0x38 => visitor.visit_i64_atomic_rmw16_or_u(self.read_memarg(1)?),
1607
0
            0x39 => visitor.visit_i64_atomic_rmw32_or_u(self.read_memarg(2)?),
1608
0
            0x3a => visitor.visit_i32_atomic_rmw_xor(self.read_memarg(2)?),
1609
0
            0x3b => visitor.visit_i64_atomic_rmw_xor(self.read_memarg(3)?),
1610
0
            0x3c => visitor.visit_i32_atomic_rmw8_xor_u(self.read_memarg(0)?),
1611
0
            0x3d => visitor.visit_i32_atomic_rmw16_xor_u(self.read_memarg(1)?),
1612
0
            0x3e => visitor.visit_i64_atomic_rmw8_xor_u(self.read_memarg(0)?),
1613
0
            0x3f => visitor.visit_i64_atomic_rmw16_xor_u(self.read_memarg(1)?),
1614
0
            0x40 => visitor.visit_i64_atomic_rmw32_xor_u(self.read_memarg(2)?),
1615
0
            0x41 => visitor.visit_i32_atomic_rmw_xchg(self.read_memarg(2)?),
1616
0
            0x42 => visitor.visit_i64_atomic_rmw_xchg(self.read_memarg(3)?),
1617
0
            0x43 => visitor.visit_i32_atomic_rmw8_xchg_u(self.read_memarg(0)?),
1618
0
            0x44 => visitor.visit_i32_atomic_rmw16_xchg_u(self.read_memarg(1)?),
1619
0
            0x45 => visitor.visit_i64_atomic_rmw8_xchg_u(self.read_memarg(0)?),
1620
0
            0x46 => visitor.visit_i64_atomic_rmw16_xchg_u(self.read_memarg(1)?),
1621
0
            0x47 => visitor.visit_i64_atomic_rmw32_xchg_u(self.read_memarg(2)?),
1622
0
            0x48 => visitor.visit_i32_atomic_rmw_cmpxchg(self.read_memarg(2)?),
1623
0
            0x49 => visitor.visit_i64_atomic_rmw_cmpxchg(self.read_memarg(3)?),
1624
0
            0x4a => visitor.visit_i32_atomic_rmw8_cmpxchg_u(self.read_memarg(0)?),
1625
0
            0x4b => visitor.visit_i32_atomic_rmw16_cmpxchg_u(self.read_memarg(1)?),
1626
0
            0x4c => visitor.visit_i64_atomic_rmw8_cmpxchg_u(self.read_memarg(0)?),
1627
0
            0x4d => visitor.visit_i64_atomic_rmw16_cmpxchg_u(self.read_memarg(1)?),
1628
0
            0x4e => visitor.visit_i64_atomic_rmw32_cmpxchg_u(self.read_memarg(2)?),
1629
1630
0
            _ => bail!(pos, "unknown 0xfe subopcode: 0x{code:x}"),
1631
        })
1632
0
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfe_operator::<wasmprinter::operator::PrintOperator>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfe_operator::<wasmparser::validator::operators::WasmProposalValidator<wasmparser::validator::core::ValidatorResources>>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfe_operator::<wasmparser::binary_reader::OperatorFactory>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfe_operator::<<wasmparser::validator::core::ModuleState>::check_const_expr::VisitConstOperator>
1633
1634
    /// Reads the next available `Operator`.
1635
    ///
1636
    /// # Errors
1637
    ///
1638
    /// If `BinaryReader` has less bytes remaining than required to parse
1639
    /// the `Operator`.
1640
17.8M
    pub fn read_operator(&mut self) -> Result<Operator<'a>> {
1641
17.8M
        self.visit_operator(&mut OperatorFactory::new())
1642
17.8M
    }
1643
1644
0
    fn read_lane_index(&mut self, max: u8) -> Result<u8> {
1645
0
        let index = self.read_u8()?;
1646
0
        if index >= max {
1647
0
            return Err(BinaryReaderError::new(
1648
0
                "invalid lane index",
1649
0
                self.original_position() - 1,
1650
0
            ));
1651
0
        }
1652
0
        Ok(index)
1653
0
    }
1654
1655
0
    fn read_v128(&mut self) -> Result<V128> {
1656
0
        let mut bytes = [0; 16];
1657
0
        bytes.clone_from_slice(self.read_bytes(16)?);
1658
0
        Ok(V128(bytes))
1659
0
    }
1660
1661
127k
    pub(crate) fn read_header_version(&mut self) -> Result<u32> {
1662
127k
        let magic_number = self.read_bytes(4)?;
1663
127k
        if magic_number != WASM_MAGIC_NUMBER {
1664
0
            return Err(BinaryReaderError::new(
1665
0
                format!("magic header not detected: bad magic number - expected={WASM_MAGIC_NUMBER:#x?} actual={magic_number:#x?}"),
1666
0
                self.original_position() - 4,
1667
0
            ));
1668
127k
        }
1669
127k
        self.read_u32()
1670
127k
    }
1671
1672
932k
    pub(crate) fn skip_const_expr(&mut self) -> Result<()> {
1673
        // TODO add skip_operator() method and/or validate ConstExpr operators.
1674
        loop {
1675
1.86M
            if let Operator::End = self.read_operator()? {
1676
932k
                return Ok(());
1677
932k
            }
1678
        }
1679
932k
    }
1680
}
1681
1682
impl<'a> BrTable<'a> {
1683
    /// Returns the number of `br_table` entries, not including the default
1684
    /// label
1685
702
    pub fn len(&self) -> u32 {
1686
702
        self.cnt
1687
702
    }
<wasmparser::readers::core::operators::BrTable>::len
Line
Count
Source
1685
702
    pub fn len(&self) -> u32 {
1686
702
        self.cnt
1687
702
    }
Unexecuted instantiation: <wasmparser::readers::core::operators::BrTable>::len
Unexecuted instantiation: <wasmparser::readers::core::operators::BrTable>::len
1688
1689
    /// Returns whether `BrTable` doesn't have any labels apart from the default one.
1690
0
    pub fn is_empty(&self) -> bool {
1691
0
        self.len() == 0
1692
0
    }
1693
1694
    /// Returns the default target of this `br_table` instruction.
1695
96.3k
    pub fn default(&self) -> u32 {
1696
96.3k
        self.default
1697
96.3k
    }
Unexecuted instantiation: <wasmparser::readers::core::operators::BrTable>::default
<wasmparser::readers::core::operators::BrTable>::default
Line
Count
Source
1695
1.34k
    pub fn default(&self) -> u32 {
1696
1.34k
        self.default
1697
1.34k
    }
<wasmparser::readers::core::operators::BrTable>::default
Line
Count
Source
1695
702
    pub fn default(&self) -> u32 {
1696
702
        self.default
1697
702
    }
<wasmparser::readers::core::operators::BrTable>::default
Line
Count
Source
1695
85.3k
    pub fn default(&self) -> u32 {
1696
85.3k
        self.default
1697
85.3k
    }
<wasmparser::readers::core::operators::BrTable>::default
Line
Count
Source
1695
8.23k
    pub fn default(&self) -> u32 {
1696
8.23k
        self.default
1697
8.23k
    }
Unexecuted instantiation: <wasmparser::readers::core::operators::BrTable>::default
<wasmparser::readers::core::operators::BrTable>::default
Line
Count
Source
1695
706
    pub fn default(&self) -> u32 {
1696
706
        self.default
1697
706
    }
1698
1699
    /// Returns the list of targets that this `br_table` instruction will be
1700
    /// jumping to.
1701
    ///
1702
    /// This method will return an iterator which parses each target of this
1703
    /// `br_table` except the default target. The returned iterator will
1704
    /// yield `self.len()` elements.
1705
    ///
1706
    /// # Examples
1707
    ///
1708
    /// ```rust
1709
    /// let buf = [0x0e, 0x02, 0x01, 0x02, 0x00];
1710
    /// let mut reader = wasmparser::BinaryReader::new(&buf);
1711
    /// let op = reader.read_operator().unwrap();
1712
    /// if let wasmparser::Operator::BrTable { targets } = op {
1713
    ///     let targets = targets.targets().collect::<Result<Vec<_>, _>>().unwrap();
1714
    ///     assert_eq!(targets, [1, 2]);
1715
    /// }
1716
    /// ```
1717
97.0k
    pub fn targets(&self) -> BrTableTargets {
1718
97.0k
        BrTableTargets {
1719
97.0k
            reader: self.reader.clone(),
1720
97.0k
            remaining: self.cnt,
1721
97.0k
        }
1722
97.0k
    }
Unexecuted instantiation: <wasmparser::readers::core::operators::BrTable>::targets
<wasmparser::readers::core::operators::BrTable>::targets
Line
Count
Source
1717
1.34k
    pub fn targets(&self) -> BrTableTargets {
1718
1.34k
        BrTableTargets {
1719
1.34k
            reader: self.reader.clone(),
1720
1.34k
            remaining: self.cnt,
1721
1.34k
        }
1722
1.34k
    }
<wasmparser::readers::core::operators::BrTable>::targets
Line
Count
Source
1717
1.40k
    pub fn targets(&self) -> BrTableTargets {
1718
1.40k
        BrTableTargets {
1719
1.40k
            reader: self.reader.clone(),
1720
1.40k
            remaining: self.cnt,
1721
1.40k
        }
1722
1.40k
    }
<wasmparser::readers::core::operators::BrTable>::targets
Line
Count
Source
1717
85.3k
    pub fn targets(&self) -> BrTableTargets {
1718
85.3k
        BrTableTargets {
1719
85.3k
            reader: self.reader.clone(),
1720
85.3k
            remaining: self.cnt,
1721
85.3k
        }
1722
85.3k
    }
<wasmparser::readers::core::operators::BrTable>::targets
Line
Count
Source
1717
8.23k
    pub fn targets(&self) -> BrTableTargets {
1718
8.23k
        BrTableTargets {
1719
8.23k
            reader: self.reader.clone(),
1720
8.23k
            remaining: self.cnt,
1721
8.23k
        }
1722
8.23k
    }
Unexecuted instantiation: <wasmparser::readers::core::operators::BrTable>::targets
<wasmparser::readers::core::operators::BrTable>::targets
Line
Count
Source
1717
706
    pub fn targets(&self) -> BrTableTargets {
1718
706
        BrTableTargets {
1719
706
            reader: self.reader.clone(),
1720
706
            remaining: self.cnt,
1721
706
        }
1722
706
    }
1723
}
1724
1725
/// An iterator over the targets of a [`BrTable`].
1726
///
1727
/// # Note
1728
///
1729
/// This iterator parses each target of the underlying `br_table`
1730
/// except for the default target.
1731
/// The iterator will yield exactly as many targets as the `br_table` has.
1732
pub struct BrTableTargets<'a> {
1733
    reader: crate::BinaryReader<'a>,
1734
    remaining: u32,
1735
}
1736
1737
impl<'a> Iterator for BrTableTargets<'a> {
1738
    type Item = Result<u32>;
1739
1740
11.6k
    fn size_hint(&self) -> (usize, Option<usize>) {
1741
11.6k
        let remaining = usize::try_from(self.remaining).unwrap_or_else(|error| {
1742
0
            panic!("could not convert remaining `u32` into `usize`: {}", error)
1743
11.6k
        });
1744
11.6k
        (remaining, Some(remaining))
1745
11.6k
    }
<wasmparser::binary_reader::BrTableTargets as core::iter::traits::iterator::Iterator>::size_hint
Line
Count
Source
1740
1.75k
    fn size_hint(&self) -> (usize, Option<usize>) {
1741
1.75k
        let remaining = usize::try_from(self.remaining).unwrap_or_else(|error| {
1742
            panic!("could not convert remaining `u32` into `usize`: {}", error)
1743
1.75k
        });
1744
1.75k
        (remaining, Some(remaining))
1745
1.75k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BrTableTargets as core::iter::traits::iterator::Iterator>::size_hint
<wasmparser::binary_reader::BrTableTargets as core::iter::traits::iterator::Iterator>::size_hint
Line
Count
Source
1740
8.98k
    fn size_hint(&self) -> (usize, Option<usize>) {
1741
8.98k
        let remaining = usize::try_from(self.remaining).unwrap_or_else(|error| {
1742
            panic!("could not convert remaining `u32` into `usize`: {}", error)
1743
8.98k
        });
1744
8.98k
        (remaining, Some(remaining))
1745
8.98k
    }
<wasmparser::binary_reader::BrTableTargets as core::iter::traits::iterator::Iterator>::size_hint
Line
Count
Source
1740
950
    fn size_hint(&self) -> (usize, Option<usize>) {
1741
950
        let remaining = usize::try_from(self.remaining).unwrap_or_else(|error| {
1742
            panic!("could not convert remaining `u32` into `usize`: {}", error)
1743
950
        });
1744
950
        (remaining, Some(remaining))
1745
950
    }
1746
1747
341k
    fn next(&mut self) -> Option<Self::Item> {
1748
341k
        if self.remaining == 0 {
1749
97.0k
            if !self.reader.eof() {
1750
0
                return Some(Err(BinaryReaderError::new(
1751
0
                    "trailing data in br_table",
1752
0
                    self.reader.original_position(),
1753
0
                )));
1754
97.0k
            }
1755
97.0k
            return None;
1756
244k
        }
1757
244k
        self.remaining -= 1;
1758
244k
        Some(self.reader.read_var_u32())
1759
341k
    }
1760
}
1761
1762
impl fmt::Debug for BrTable<'_> {
1763
0
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1764
0
        let mut f = f.debug_struct("BrTable");
1765
0
        f.field("count", &self.cnt);
1766
0
        f.field("default", &self.default);
1767
0
        match self.targets().collect::<Result<Vec<_>>>() {
1768
0
            Ok(targets) => {
1769
0
                f.field("targets", &targets);
1770
0
            }
1771
0
            Err(_) => {
1772
0
                f.field("reader", &self.reader);
1773
0
            }
1774
        }
1775
0
        f.finish()
1776
0
    }
1777
}
1778
1779
/// A factory to construct [`Operator`] instances via the [`VisitOperator`] trait.
1780
struct OperatorFactory<'a> {
1781
    marker: core::marker::PhantomData<fn() -> &'a ()>,
1782
}
1783
1784
impl<'a> OperatorFactory<'a> {
1785
    /// Creates a new [`OperatorFactory`].
1786
17.8M
    fn new() -> Self {
1787
17.8M
        Self {
1788
17.8M
            marker: core::marker::PhantomData,
1789
17.8M
        }
1790
17.8M
    }
1791
}
1792
1793
macro_rules! define_visit_operator {
1794
    ($(@$proposal:ident $op:ident $({ $($arg:ident: $argty:ty),* })? => $visit:ident)*) => {
1795
        $(
1796
17.8M
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
17.8M
                Operator::$op $({ $($arg),* })?
1798
17.8M
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_unreachable
Line
Count
Source
1796
1.06M
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
1.06M
                Operator::$op $({ $($arg),* })?
1798
1.06M
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_nop
Line
Count
Source
1796
511k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
511k
                Operator::$op $({ $($arg),* })?
1798
511k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_block
Line
Count
Source
1796
404k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
404k
                Operator::$op $({ $($arg),* })?
1798
404k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_loop
Line
Count
Source
1796
440k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
440k
                Operator::$op $({ $($arg),* })?
1798
440k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_if
Line
Count
Source
1796
45.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
45.0k
                Operator::$op $({ $($arg),* })?
1798
45.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_else
Line
Count
Source
1796
36.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
36.9k
                Operator::$op $({ $($arg),* })?
1798
36.9k
            }
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_try_table
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_throw
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_throw_ref
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_try
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_catch
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_rethrow
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_delegate
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_catch_all
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_end
Line
Count
Source
1796
2.29M
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
2.29M
                Operator::$op $({ $($arg),* })?
1798
2.29M
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_br
Line
Count
Source
1796
516k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
516k
                Operator::$op $({ $($arg),* })?
1798
516k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_br_if
Line
Count
Source
1796
53.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
53.9k
                Operator::$op $({ $($arg),* })?
1798
53.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_br_table
Line
Count
Source
1796
84.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
84.7k
                Operator::$op $({ $($arg),* })?
1798
84.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_return
Line
Count
Source
1796
526k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
526k
                Operator::$op $({ $($arg),* })?
1798
526k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_call
Line
Count
Source
1796
252k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
252k
                Operator::$op $({ $($arg),* })?
1798
252k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_call_indirect
Line
Count
Source
1796
91.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
91.0k
                Operator::$op $({ $($arg),* })?
1798
91.0k
            }
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_return_call
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_return_call_indirect
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_drop
Line
Count
Source
1796
225k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
225k
                Operator::$op $({ $($arg),* })?
1798
225k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_select
Line
Count
Source
1796
20.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
20.3k
                Operator::$op $({ $($arg),* })?
1798
20.3k
            }
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_typed_select
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_local_get
Line
Count
Source
1796
1.34M
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
1.34M
                Operator::$op $({ $($arg),* })?
1798
1.34M
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_local_set
Line
Count
Source
1796
89.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
89.3k
                Operator::$op $({ $($arg),* })?
1798
89.3k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_local_tee
Line
Count
Source
1796
212k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
212k
                Operator::$op $({ $($arg),* })?
1798
212k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_global_get
Line
Count
Source
1796
391k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
391k
                Operator::$op $({ $($arg),* })?
1798
391k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_global_set
Line
Count
Source
1796
35.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
35.6k
                Operator::$op $({ $($arg),* })?
1798
35.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_load
Line
Count
Source
1796
82.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
82.0k
                Operator::$op $({ $($arg),* })?
1798
82.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load
Line
Count
Source
1796
31.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
31.9k
                Operator::$op $({ $($arg),* })?
1798
31.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_load
Line
Count
Source
1796
14.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
14.9k
                Operator::$op $({ $($arg),* })?
1798
14.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_load
Line
Count
Source
1796
18.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
18.9k
                Operator::$op $({ $($arg),* })?
1798
18.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_load8_s
Line
Count
Source
1796
41.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
41.9k
                Operator::$op $({ $($arg),* })?
1798
41.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_load8_u
Line
Count
Source
1796
30.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
30.6k
                Operator::$op $({ $($arg),* })?
1798
30.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_load16_s
Line
Count
Source
1796
69.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
69.3k
                Operator::$op $({ $($arg),* })?
1798
69.3k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_load16_u
Line
Count
Source
1796
80.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
80.7k
                Operator::$op $({ $($arg),* })?
1798
80.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load8_s
Line
Count
Source
1796
12.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
12.4k
                Operator::$op $({ $($arg),* })?
1798
12.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load8_u
Line
Count
Source
1796
11.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
11.5k
                Operator::$op $({ $($arg),* })?
1798
11.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load16_s
Line
Count
Source
1796
27.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
27.4k
                Operator::$op $({ $($arg),* })?
1798
27.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load16_u
Line
Count
Source
1796
36.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
36.7k
                Operator::$op $({ $($arg),* })?
1798
36.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load32_s
Line
Count
Source
1796
31.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
31.1k
                Operator::$op $({ $($arg),* })?
1798
31.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load32_u
Line
Count
Source
1796
14.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
14.7k
                Operator::$op $({ $($arg),* })?
1798
14.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_store
Line
Count
Source
1796
964
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
964
                Operator::$op $({ $($arg),* })?
1798
964
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_store
Line
Count
Source
1796
9.79k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
9.79k
                Operator::$op $({ $($arg),* })?
1798
9.79k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_store
Line
Count
Source
1796
2.51k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
2.51k
                Operator::$op $({ $($arg),* })?
1798
2.51k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_store
Line
Count
Source
1796
2.03k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
2.03k
                Operator::$op $({ $($arg),* })?
1798
2.03k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_store8
Line
Count
Source
1796
1.73k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
1.73k
                Operator::$op $({ $($arg),* })?
1798
1.73k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_store16
Line
Count
Source
1796
2.99k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
2.99k
                Operator::$op $({ $($arg),* })?
1798
2.99k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_store8
Line
Count
Source
1796
3.41k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
3.41k
                Operator::$op $({ $($arg),* })?
1798
3.41k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_store16
Line
Count
Source
1796
2.22k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
2.22k
                Operator::$op $({ $($arg),* })?
1798
2.22k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_store32
Line
Count
Source
1796
6.44k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
6.44k
                Operator::$op $({ $($arg),* })?
1798
6.44k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_memory_size
Line
Count
Source
1796
216k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
216k
                Operator::$op $({ $($arg),* })?
1798
216k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_memory_grow
Line
Count
Source
1796
48.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
48.3k
                Operator::$op $({ $($arg),* })?
1798
48.3k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_const
Line
Count
Source
1796
1.39M
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
1.39M
                Operator::$op $({ $($arg),* })?
1798
1.39M
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_const
Line
Count
Source
1796
639k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
639k
                Operator::$op $({ $($arg),* })?
1798
639k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_const
Line
Count
Source
1796
496k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
496k
                Operator::$op $({ $($arg),* })?
1798
496k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_const
Line
Count
Source
1796
603k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
603k
                Operator::$op $({ $($arg),* })?
1798
603k
            }
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_ref_null
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_ref_is_null
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_ref_func
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_ref_eq
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_eqz
Line
Count
Source
1796
72.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
72.2k
                Operator::$op $({ $($arg),* })?
1798
72.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_eq
Line
Count
Source
1796
11.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
11.5k
                Operator::$op $({ $($arg),* })?
1798
11.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_ne
Line
Count
Source
1796
7.73k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
7.73k
                Operator::$op $({ $($arg),* })?
1798
7.73k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_lt_s
Line
Count
Source
1796
2.53k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
2.53k
                Operator::$op $({ $($arg),* })?
1798
2.53k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_lt_u
Line
Count
Source
1796
3.94k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
3.94k
                Operator::$op $({ $($arg),* })?
1798
3.94k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_gt_s
Line
Count
Source
1796
23.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
23.2k
                Operator::$op $({ $($arg),* })?
1798
23.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_gt_u
Line
Count
Source
1796
4.72k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
4.72k
                Operator::$op $({ $($arg),* })?
1798
4.72k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_le_s
Line
Count
Source
1796
3.96k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
3.96k
                Operator::$op $({ $($arg),* })?
1798
3.96k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_le_u
Line
Count
Source
1796
2.85k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
2.85k
                Operator::$op $({ $($arg),* })?
1798
2.85k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_ge_s
Line
Count
Source
1796
6.84k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
6.84k
                Operator::$op $({ $($arg),* })?
1798
6.84k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_ge_u
Line
Count
Source
1796
4.54k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
4.54k
                Operator::$op $({ $($arg),* })?
1798
4.54k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_eqz
Line
Count
Source
1796
72.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
72.9k
                Operator::$op $({ $($arg),* })?
1798
72.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_eq
Line
Count
Source
1796
7.06k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
7.06k
                Operator::$op $({ $($arg),* })?
1798
7.06k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_ne
Line
Count
Source
1796
3.71k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
3.71k
                Operator::$op $({ $($arg),* })?
1798
3.71k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_lt_s
Line
Count
Source
1796
5.24k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
5.24k
                Operator::$op $({ $($arg),* })?
1798
5.24k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_lt_u
Line
Count
Source
1796
4.91k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
4.91k
                Operator::$op $({ $($arg),* })?
1798
4.91k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_gt_s
Line
Count
Source
1796
5.27k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
5.27k
                Operator::$op $({ $($arg),* })?
1798
5.27k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_gt_u
Line
Count
Source
1796
7.06k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
7.06k
                Operator::$op $({ $($arg),* })?
1798
7.06k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_le_s
Line
Count
Source
1796
3.82k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
3.82k
                Operator::$op $({ $($arg),* })?
1798
3.82k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_le_u
Line
Count
Source
1796
1.73k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
1.73k
                Operator::$op $({ $($arg),* })?
1798
1.73k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_ge_s
Line
Count
Source
1796
4.20k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
4.20k
                Operator::$op $({ $($arg),* })?
1798
4.20k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_ge_u
Line
Count
Source
1796
3.09k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
3.09k
                Operator::$op $({ $($arg),* })?
1798
3.09k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_eq
Line
Count
Source
1796
2.31k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
2.31k
                Operator::$op $({ $($arg),* })?
1798
2.31k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_ne
Line
Count
Source
1796
13.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
13.3k
                Operator::$op $({ $($arg),* })?
1798
13.3k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_lt
Line
Count
Source
1796
16.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
16.0k
                Operator::$op $({ $($arg),* })?
1798
16.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_gt
Line
Count
Source
1796
6.72k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
6.72k
                Operator::$op $({ $($arg),* })?
1798
6.72k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_le
Line
Count
Source
1796
10.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
10.0k
                Operator::$op $({ $($arg),* })?
1798
10.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_ge
Line
Count
Source
1796
5.10k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
5.10k
                Operator::$op $({ $($arg),* })?
1798
5.10k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_eq
Line
Count
Source
1796
6.15k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
6.15k
                Operator::$op $({ $($arg),* })?
1798
6.15k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_ne
Line
Count
Source
1796
3.99k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
3.99k
                Operator::$op $({ $($arg),* })?
1798
3.99k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_lt
Line
Count
Source
1796
5.05k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
5.05k
                Operator::$op $({ $($arg),* })?
1798
5.05k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_gt
Line
Count
Source
1796
22.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
22.6k
                Operator::$op $({ $($arg),* })?
1798
22.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_le
Line
Count
Source
1796
38.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
38.9k
                Operator::$op $({ $($arg),* })?
1798
38.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_ge
Line
Count
Source
1796
6.95k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
6.95k
                Operator::$op $({ $($arg),* })?
1798
6.95k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_clz
Line
Count
Source
1796
80.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
80.8k
                Operator::$op $({ $($arg),* })?
1798
80.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_ctz
Line
Count
Source
1796
59.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
59.4k
                Operator::$op $({ $($arg),* })?
1798
59.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_popcnt
Line
Count
Source
1796
77.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
77.9k
                Operator::$op $({ $($arg),* })?
1798
77.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_add
Line
Count
Source
1796
6.55k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
6.55k
                Operator::$op $({ $($arg),* })?
1798
6.55k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_sub
Line
Count
Source
1796
5.92k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
5.92k
                Operator::$op $({ $($arg),* })?
1798
5.92k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_mul
Line
Count
Source
1796
6.88k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
6.88k
                Operator::$op $({ $($arg),* })?
1798
6.88k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_div_s
Line
Count
Source
1796
9.76k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
9.76k
                Operator::$op $({ $($arg),* })?
1798
9.76k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_div_u
Line
Count
Source
1796
43.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
43.5k
                Operator::$op $({ $($arg),* })?
1798
43.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_rem_s
Line
Count
Source
1796
21.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
21.3k
                Operator::$op $({ $($arg),* })?
1798
21.3k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_rem_u
Line
Count
Source
1796
32.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
32.2k
                Operator::$op $({ $($arg),* })?
1798
32.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_and
Line
Count
Source
1796
25.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
25.0k
                Operator::$op $({ $($arg),* })?
1798
25.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_or
Line
Count
Source
1796
110k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
110k
                Operator::$op $({ $($arg),* })?
1798
110k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_xor
Line
Count
Source
1796
36.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
36.5k
                Operator::$op $({ $($arg),* })?
1798
36.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_shl
Line
Count
Source
1796
11.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
11.5k
                Operator::$op $({ $($arg),* })?
1798
11.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_shr_s
Line
Count
Source
1796
10.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
10.7k
                Operator::$op $({ $($arg),* })?
1798
10.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_shr_u
Line
Count
Source
1796
9.59k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
9.59k
                Operator::$op $({ $($arg),* })?
1798
9.59k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_rotl
Line
Count
Source
1796
4.82k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
4.82k
                Operator::$op $({ $($arg),* })?
1798
4.82k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_rotr
Line
Count
Source
1796
14.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
14.0k
                Operator::$op $({ $($arg),* })?
1798
14.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_clz
Line
Count
Source
1796
122k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
122k
                Operator::$op $({ $($arg),* })?
1798
122k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_ctz
Line
Count
Source
1796
125k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
125k
                Operator::$op $({ $($arg),* })?
1798
125k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_popcnt
Line
Count
Source
1796
92.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
92.6k
                Operator::$op $({ $($arg),* })?
1798
92.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_add
Line
Count
Source
1796
6.39k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
6.39k
                Operator::$op $({ $($arg),* })?
1798
6.39k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_sub
Line
Count
Source
1796
17.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
17.5k
                Operator::$op $({ $($arg),* })?
1798
17.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_mul
Line
Count
Source
1796
6.14k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
6.14k
                Operator::$op $({ $($arg),* })?
1798
6.14k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_div_s
Line
Count
Source
1796
2.57k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
2.57k
                Operator::$op $({ $($arg),* })?
1798
2.57k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_div_u
Line
Count
Source
1796
32.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
32.9k
                Operator::$op $({ $($arg),* })?
1798
32.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_rem_s
Line
Count
Source
1796
16.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
16.7k
                Operator::$op $({ $($arg),* })?
1798
16.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_rem_u
Line
Count
Source
1796
21.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
21.0k
                Operator::$op $({ $($arg),* })?
1798
21.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_and
Line
Count
Source
1796
4.24k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
4.24k
                Operator::$op $({ $($arg),* })?
1798
4.24k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_or
Line
Count
Source
1796
10.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
10.7k
                Operator::$op $({ $($arg),* })?
1798
10.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_xor
Line
Count
Source
1796
33.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
33.9k
                Operator::$op $({ $($arg),* })?
1798
33.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_shl
Line
Count
Source
1796
51.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
51.6k
                Operator::$op $({ $($arg),* })?
1798
51.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_shr_s
Line
Count
Source
1796
161k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
161k
                Operator::$op $({ $($arg),* })?
1798
161k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_shr_u
Line
Count
Source
1796
7.97k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
7.97k
                Operator::$op $({ $($arg),* })?
1798
7.97k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_rotl
Line
Count
Source
1796
8.08k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
8.08k
                Operator::$op $({ $($arg),* })?
1798
8.08k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_rotr
Line
Count
Source
1796
8.59k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
8.59k
                Operator::$op $({ $($arg),* })?
1798
8.59k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_abs
Line
Count
Source
1796
72.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
72.9k
                Operator::$op $({ $($arg),* })?
1798
72.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_neg
Line
Count
Source
1796
50.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
50.9k
                Operator::$op $({ $($arg),* })?
1798
50.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_ceil
Line
Count
Source
1796
165k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
165k
                Operator::$op $({ $($arg),* })?
1798
165k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_floor
Line
Count
Source
1796
167k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
167k
                Operator::$op $({ $($arg),* })?
1798
167k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_trunc
Line
Count
Source
1796
139k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
139k
                Operator::$op $({ $($arg),* })?
1798
139k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_nearest
Line
Count
Source
1796
56.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
56.1k
                Operator::$op $({ $($arg),* })?
1798
56.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_sqrt
Line
Count
Source
1796
64.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
64.7k
                Operator::$op $({ $($arg),* })?
1798
64.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_add
Line
Count
Source
1796
2.64k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
2.64k
                Operator::$op $({ $($arg),* })?
1798
2.64k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_sub
Line
Count
Source
1796
5.92k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
5.92k
                Operator::$op $({ $($arg),* })?
1798
5.92k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_mul
Line
Count
Source
1796
11.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
11.0k
                Operator::$op $({ $($arg),* })?
1798
11.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_div
Line
Count
Source
1796
7.62k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
7.62k
                Operator::$op $({ $($arg),* })?
1798
7.62k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_min
Line
Count
Source
1796
7.28k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
7.28k
                Operator::$op $({ $($arg),* })?
1798
7.28k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_max
Line
Count
Source
1796
56.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
56.2k
                Operator::$op $({ $($arg),* })?
1798
56.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_copysign
Line
Count
Source
1796
2.02k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
2.02k
                Operator::$op $({ $($arg),* })?
1798
2.02k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_abs
Line
Count
Source
1796
183k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
183k
                Operator::$op $({ $($arg),* })?
1798
183k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_neg
Line
Count
Source
1796
113k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
113k
                Operator::$op $({ $($arg),* })?
1798
113k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_ceil
Line
Count
Source
1796
79.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
79.0k
                Operator::$op $({ $($arg),* })?
1798
79.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_floor
Line
Count
Source
1796
189k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
189k
                Operator::$op $({ $($arg),* })?
1798
189k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_trunc
Line
Count
Source
1796
141k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
141k
                Operator::$op $({ $($arg),* })?
1798
141k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_nearest
Line
Count
Source
1796
112k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
112k
                Operator::$op $({ $($arg),* })?
1798
112k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_sqrt
Line
Count
Source
1796
134k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
134k
                Operator::$op $({ $($arg),* })?
1798
134k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_add
Line
Count
Source
1796
3.97k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
3.97k
                Operator::$op $({ $($arg),* })?
1798
3.97k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_sub
Line
Count
Source
1796
9.21k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
9.21k
                Operator::$op $({ $($arg),* })?
1798
9.21k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_mul
Line
Count
Source
1796
12.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
12.8k
                Operator::$op $({ $($arg),* })?
1798
12.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_div
Line
Count
Source
1796
6.25k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
6.25k
                Operator::$op $({ $($arg),* })?
1798
6.25k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_min
Line
Count
Source
1796
18.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
18.8k
                Operator::$op $({ $($arg),* })?
1798
18.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_max
Line
Count
Source
1796
13.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
13.7k
                Operator::$op $({ $($arg),* })?
1798
13.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_copysign
Line
Count
Source
1796
5.72k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
5.72k
                Operator::$op $({ $($arg),* })?
1798
5.72k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_wrap_i64
Line
Count
Source
1796
62.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
62.7k
                Operator::$op $({ $($arg),* })?
1798
62.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_f32_s
Line
Count
Source
1796
34.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
34.7k
                Operator::$op $({ $($arg),* })?
1798
34.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_f32_u
Line
Count
Source
1796
40.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
40.3k
                Operator::$op $({ $($arg),* })?
1798
40.3k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_f64_s
Line
Count
Source
1796
45.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
45.7k
                Operator::$op $({ $($arg),* })?
1798
45.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_f64_u
Line
Count
Source
1796
41.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
41.8k
                Operator::$op $({ $($arg),* })?
1798
41.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_extend_i32_s
Line
Count
Source
1796
70.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
70.7k
                Operator::$op $({ $($arg),* })?
1798
70.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_extend_i32_u
Line
Count
Source
1796
62.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
62.9k
                Operator::$op $({ $($arg),* })?
1798
62.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_f32_s
Line
Count
Source
1796
22.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
22.0k
                Operator::$op $({ $($arg),* })?
1798
22.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_f32_u
Line
Count
Source
1796
17.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
17.8k
                Operator::$op $({ $($arg),* })?
1798
17.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_f64_s
Line
Count
Source
1796
36.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
36.4k
                Operator::$op $({ $($arg),* })?
1798
36.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_f64_u
Line
Count
Source
1796
24.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
24.5k
                Operator::$op $({ $($arg),* })?
1798
24.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_convert_i32_s
Line
Count
Source
1796
27.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
27.8k
                Operator::$op $({ $($arg),* })?
1798
27.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_convert_i32_u
Line
Count
Source
1796
35.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
35.8k
                Operator::$op $({ $($arg),* })?
1798
35.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_convert_i64_s
Line
Count
Source
1796
34.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
34.7k
                Operator::$op $({ $($arg),* })?
1798
34.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_convert_i64_u
Line
Count
Source
1796
60.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
60.2k
                Operator::$op $({ $($arg),* })?
1798
60.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_demote_f64
Line
Count
Source
1796
43.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
43.9k
                Operator::$op $({ $($arg),* })?
1798
43.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_convert_i32_s
Line
Count
Source
1796
34.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
34.7k
                Operator::$op $({ $($arg),* })?
1798
34.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_convert_i32_u
Line
Count
Source
1796
35.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
35.1k
                Operator::$op $({ $($arg),* })?
1798
35.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_convert_i64_s
Line
Count
Source
1796
51.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
51.7k
                Operator::$op $({ $($arg),* })?
1798
51.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_convert_i64_u
Line
Count
Source
1796
79.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
79.5k
                Operator::$op $({ $($arg),* })?
1798
79.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_promote_f32
Line
Count
Source
1796
42.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
42.2k
                Operator::$op $({ $($arg),* })?
1798
42.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_reinterpret_f32
Line
Count
Source
1796
15.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
15.8k
                Operator::$op $({ $($arg),* })?
1798
15.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_reinterpret_f64
Line
Count
Source
1796
32.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
32.1k
                Operator::$op $({ $($arg),* })?
1798
32.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_reinterpret_i32
Line
Count
Source
1796
45.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
45.3k
                Operator::$op $({ $($arg),* })?
1798
45.3k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_reinterpret_i64
Line
Count
Source
1796
38.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
38.9k
                Operator::$op $({ $($arg),* })?
1798
38.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_extend8_s
Line
Count
Source
1796
47.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
47.3k
                Operator::$op $({ $($arg),* })?
1798
47.3k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_extend16_s
Line
Count
Source
1796
66.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
66.5k
                Operator::$op $({ $($arg),* })?
1798
66.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_extend8_s
Line
Count
Source
1796
78.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
78.2k
                Operator::$op $({ $($arg),* })?
1798
78.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_extend16_s
Line
Count
Source
1796
130k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
130k
                Operator::$op $({ $($arg),* })?
1798
130k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_extend32_s
Line
Count
Source
1796
93.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
93.7k
                Operator::$op $({ $($arg),* })?
1798
93.7k
            }
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_struct_new
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_struct_new_default
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_struct_get
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_struct_get_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_struct_get_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_struct_set
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_array_new
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_array_new_default
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_array_new_fixed
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_array_new_data
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_array_new_elem
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_array_get
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_array_get_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_array_get_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_array_set
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_array_len
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_array_fill
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_array_copy
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_array_init_data
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_array_init_elem
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_ref_test_non_null
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_ref_test_nullable
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_ref_cast_non_null
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_ref_cast_nullable
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_br_on_cast
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_br_on_cast_fail
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_any_convert_extern
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_extern_convert_any
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_ref_i31
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i31_get_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i31_get_u
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_sat_f32_s
Line
Count
Source
1796
17.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
17.9k
                Operator::$op $({ $($arg),* })?
1798
17.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_sat_f32_u
Line
Count
Source
1796
30.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
30.3k
                Operator::$op $({ $($arg),* })?
1798
30.3k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_sat_f64_s
Line
Count
Source
1796
33.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
33.2k
                Operator::$op $({ $($arg),* })?
1798
33.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_sat_f64_u
Line
Count
Source
1796
38.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
38.3k
                Operator::$op $({ $($arg),* })?
1798
38.3k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_sat_f32_s
Line
Count
Source
1796
40.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
40.6k
                Operator::$op $({ $($arg),* })?
1798
40.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_sat_f32_u
Line
Count
Source
1796
39.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
39.2k
                Operator::$op $({ $($arg),* })?
1798
39.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_sat_f64_s
Line
Count
Source
1796
28.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
28.6k
                Operator::$op $({ $($arg),* })?
1798
28.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_sat_f64_u
Line
Count
Source
1796
52.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1797
52.5k
                Operator::$op $({ $($arg),* })?
1798
52.5k
            }
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_memory_init
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_data_drop
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_memory_copy
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_memory_fill
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_table_init
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_elem_drop
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_table_copy
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_table_fill
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_table_get
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_table_set
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_table_grow
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_table_size
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_memory_discard
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_memory_atomic_notify
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_memory_atomic_wait32
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_memory_atomic_wait64
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_atomic_fence
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_load
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_load
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_load8_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_load16_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_load8_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_load16_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_load32_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_store
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_store
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_store8
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_store16
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_store8
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_store16
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_store32
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_add
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_add
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_add_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_add_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_add_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_add_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_add_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_sub
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_sub
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_sub_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_sub_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_sub_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_sub_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_sub_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_and
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_and
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_and_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_and_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_and_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_and_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_and_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_or
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_or
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_or_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_or_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_or_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_or_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_or_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_xor
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_xor
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_xor_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_xor_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_xor_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_xor_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_xor_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_xchg
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_xchg
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_xchg_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_xchg_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_xchg_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_xchg_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_xchg_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_cmpxchg
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_cmpxchg
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_cmpxchg_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_cmpxchg_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_cmpxchg_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_cmpxchg_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_cmpxchg_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load8x8_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load8x8_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load16x4_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load16x4_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load32x2_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load32x2_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load8_splat
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load16_splat
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load32_splat
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load64_splat
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load32_zero
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load64_zero
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_store
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load8_lane
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load16_lane
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load32_lane
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load64_lane
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_store8_lane
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_store16_lane
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_store32_lane
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_store64_lane
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_const
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_shuffle
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_extract_lane_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_extract_lane_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_replace_lane
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extract_lane_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extract_lane_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_replace_lane
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extract_lane
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_replace_lane
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extract_lane
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_replace_lane
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_extract_lane
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_replace_lane
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_extract_lane
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_replace_lane
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_swizzle
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_splat
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_splat
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_splat
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_splat
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_splat
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_splat
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_eq
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_ne
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_lt_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_lt_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_gt_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_gt_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_le_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_le_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_ge_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_ge_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_eq
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_ne
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_lt_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_lt_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_gt_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_gt_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_le_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_le_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_ge_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_ge_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_eq
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_ne
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_lt_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_lt_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_gt_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_gt_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_le_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_le_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_ge_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_ge_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_eq
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_ne
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_lt_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_gt_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_le_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_ge_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_eq
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_ne
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_lt
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_gt
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_le
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_ge
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_eq
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_ne
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_lt
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_gt
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_le
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_ge
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_not
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_and
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_andnot
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_or
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_xor
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_bitselect
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_any_true
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_abs
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_neg
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_popcnt
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_all_true
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_bitmask
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_narrow_i16x8_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_narrow_i16x8_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_shl
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_shr_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_shr_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_add
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_add_sat_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_add_sat_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_sub
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_sub_sat_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_sub_sat_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_min_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_min_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_max_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_max_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_avgr_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extadd_pairwise_i8x16_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extadd_pairwise_i8x16_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_abs
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_neg
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_q15mulr_sat_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_all_true
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_bitmask
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_narrow_i32x4_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_narrow_i32x4_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extend_low_i8x16_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extend_high_i8x16_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extend_low_i8x16_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extend_high_i8x16_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_shl
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_shr_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_shr_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_add
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_add_sat_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_add_sat_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_sub
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_sub_sat_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_sub_sat_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_mul
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_min_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_min_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_max_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_max_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_avgr_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extmul_low_i8x16_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extmul_high_i8x16_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extmul_low_i8x16_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extmul_high_i8x16_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extadd_pairwise_i16x8_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extadd_pairwise_i16x8_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_abs
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_neg
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_all_true
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_bitmask
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extend_low_i16x8_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extend_high_i16x8_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extend_low_i16x8_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extend_high_i16x8_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_shl
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_shr_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_shr_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_add
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_sub
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_mul
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_min_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_min_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_max_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_max_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_dot_i16x8_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extmul_low_i16x8_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extmul_high_i16x8_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extmul_low_i16x8_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extmul_high_i16x8_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_abs
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_neg
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_all_true
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_bitmask
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extend_low_i32x4_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extend_high_i32x4_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extend_low_i32x4_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extend_high_i32x4_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_shl
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_shr_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_shr_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_add
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_sub
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_mul
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extmul_low_i32x4_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extmul_high_i32x4_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extmul_low_i32x4_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extmul_high_i32x4_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_ceil
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_floor
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_trunc
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_nearest
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_abs
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_neg
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_sqrt
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_add
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_sub
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_mul
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_div
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_min
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_max
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_pmin
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_pmax
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_ceil
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_floor
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_trunc
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_nearest
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_abs
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_neg
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_sqrt
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_add
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_sub
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_mul
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_div
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_min
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_max
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_pmin
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_pmax
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_trunc_sat_f32x4_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_trunc_sat_f32x4_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_convert_i32x4_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_convert_i32x4_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_trunc_sat_f64x2_s_zero
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_trunc_sat_f64x2_u_zero
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_convert_low_i32x4_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_convert_low_i32x4_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_demote_f64x2_zero
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_promote_low_f32x4
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_relaxed_swizzle
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_trunc_f32x4_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_trunc_f32x4_u
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_trunc_f64x2_s_zero
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_trunc_f64x2_u_zero
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_relaxed_madd
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_relaxed_nmadd
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_relaxed_madd
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_relaxed_nmadd
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_relaxed_laneselect
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_relaxed_laneselect
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_laneselect
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_relaxed_laneselect
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_relaxed_min
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_relaxed_max
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_relaxed_min
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_relaxed_max
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_relaxed_q15mulr_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_relaxed_dot_i8x16_i7x16_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_dot_i8x16_i7x16_add_s
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_call_ref
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_return_call_ref
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_ref_as_non_null
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_br_on_null
Unexecuted instantiation: <wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_br_on_non_null
1799
        )*
1800
    }
1801
}
1802
1803
impl<'a> VisitOperator<'a> for OperatorFactory<'a> {
1804
    type Output = Operator<'a>;
1805
1806
    for_each_operator!(define_visit_operator);
1807
}
1808
1809
/// Iterator returned from [`BinaryReader::read_iter`].
1810
pub struct BinaryReaderIter<'a, 'me, T: FromReader<'a>> {
1811
    remaining: usize,
1812
    pub(crate) reader: &'me mut BinaryReader<'a>,
1813
    _marker: marker::PhantomData<T>,
1814
}
1815
1816
impl<'a, T> Iterator for BinaryReaderIter<'a, '_, T>
1817
where
1818
    T: FromReader<'a>,
1819
{
1820
    type Item = Result<T>;
1821
1822
3.75M
    fn next(&mut self) -> Option<Result<T>> {
1823
3.75M
        if self.remaining == 0 {
1824
2.16M
            None
1825
        } else {
1826
1.59M
            let ret = self.reader.read::<T>();
1827
1.59M
            if ret.is_err() {
1828
0
                self.remaining = 0;
1829
1.59M
            } else {
1830
1.59M
                self.remaining -= 1;
1831
1.59M
            }
1832
1.59M
            Some(ret)
1833
        }
1834
3.75M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::core::types::SubType> as core::iter::traits::iterator::Iterator>::next
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::core::types::ValType> as core::iter::traits::iterator::Iterator>::next
Line
Count
Source
1822
3.75M
    fn next(&mut self) -> Option<Result<T>> {
1823
3.75M
        if self.remaining == 0 {
1824
2.16M
            None
1825
        } else {
1826
1.59M
            let ret = self.reader.read::<T>();
1827
1.59M
            if ret.is_err() {
1828
0
                self.remaining = 0;
1829
1.59M
            } else {
1830
1.59M
                self.remaining -= 1;
1831
1.59M
            }
1832
1.59M
            Some(ret)
1833
        }
1834
3.75M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::core::types::FieldType> as core::iter::traits::iterator::Iterator>::next
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::core::exports::Export> as core::iter::traits::iterator::Iterator>::next
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::core::operators::Catch> as core::iter::traits::iterator::Iterator>::next
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::canonicals::CanonicalOption> as core::iter::traits::iterator::Iterator>::next
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::VariantCase> as core::iter::traits::iterator::Iterator>::next
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::ComponentValType> as core::iter::traits::iterator::Iterator>::next
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::ModuleTypeDeclaration> as core::iter::traits::iterator::Iterator>::next
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::InstanceTypeDeclaration> as core::iter::traits::iterator::Iterator>::next
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::ComponentTypeDeclaration> as core::iter::traits::iterator::Iterator>::next
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::instances::InstantiationArg> as core::iter::traits::iterator::Iterator>::next
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::instances::ComponentInstantiationArg> as core::iter::traits::iterator::Iterator>::next
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<&str> as core::iter::traits::iterator::Iterator>::next
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<(&str, wasmparser::readers::component::types::ComponentValType)> as core::iter::traits::iterator::Iterator>::next
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<u32> as core::iter::traits::iterator::Iterator>::next
1835
1836
952k
    fn size_hint(&self) -> (usize, Option<usize>) {
1837
952k
        (self.remaining, Some(self.remaining))
1838
952k
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::core::types::ValType> as core::iter::traits::iterator::Iterator>::size_hint
Line
Count
Source
1836
952k
    fn size_hint(&self) -> (usize, Option<usize>) {
1837
952k
        (self.remaining, Some(self.remaining))
1838
952k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::core::types::FieldType> as core::iter::traits::iterator::Iterator>::size_hint
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::core::exports::Export> as core::iter::traits::iterator::Iterator>::size_hint
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::core::operators::Catch> as core::iter::traits::iterator::Iterator>::size_hint
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::canonicals::CanonicalOption> as core::iter::traits::iterator::Iterator>::size_hint
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::VariantCase> as core::iter::traits::iterator::Iterator>::size_hint
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::ComponentValType> as core::iter::traits::iterator::Iterator>::size_hint
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::ModuleTypeDeclaration> as core::iter::traits::iterator::Iterator>::size_hint
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::InstanceTypeDeclaration> as core::iter::traits::iterator::Iterator>::size_hint
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::ComponentTypeDeclaration> as core::iter::traits::iterator::Iterator>::size_hint
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::instances::InstantiationArg> as core::iter::traits::iterator::Iterator>::size_hint
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::instances::ComponentInstantiationArg> as core::iter::traits::iterator::Iterator>::size_hint
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<&str> as core::iter::traits::iterator::Iterator>::size_hint
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<(&str, wasmparser::readers::component::types::ComponentValType)> as core::iter::traits::iterator::Iterator>::size_hint
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<u32> as core::iter::traits::iterator::Iterator>::size_hint
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::core::types::SubType> as core::iter::traits::iterator::Iterator>::size_hint
1839
}
1840
1841
impl<'a, T> Drop for BinaryReaderIter<'a, '_, T>
1842
where
1843
    T: FromReader<'a>,
1844
{
1845
1.08M
    fn drop(&mut self) {
1846
1.08M
        while self.next().is_some() {
1847
0
            // ...
1848
0
        }
1849
1.08M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::core::types::SubType> as core::ops::drop::Drop>::drop
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::core::types::ValType> as core::ops::drop::Drop>::drop
Line
Count
Source
1845
1.08M
    fn drop(&mut self) {
1846
1.08M
        while self.next().is_some() {
1847
0
            // ...
1848
0
        }
1849
1.08M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::core::types::FieldType> as core::ops::drop::Drop>::drop
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::core::exports::Export> as core::ops::drop::Drop>::drop
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::core::operators::Catch> as core::ops::drop::Drop>::drop
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::canonicals::CanonicalOption> as core::ops::drop::Drop>::drop
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::VariantCase> as core::ops::drop::Drop>::drop
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::ComponentValType> as core::ops::drop::Drop>::drop
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::ModuleTypeDeclaration> as core::ops::drop::Drop>::drop
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::InstanceTypeDeclaration> as core::ops::drop::Drop>::drop
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::ComponentTypeDeclaration> as core::ops::drop::Drop>::drop
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::instances::InstantiationArg> as core::ops::drop::Drop>::drop
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::instances::ComponentInstantiationArg> as core::ops::drop::Drop>::drop
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<&str> as core::ops::drop::Drop>::drop
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<(&str, wasmparser::readers::component::types::ComponentValType)> as core::ops::drop::Drop>::drop
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReaderIter<u32> as core::ops::drop::Drop>::drop
1850
}