summaryrefslogtreecommitdiffstats
path: root/third_party/rust/jsparagus-emitter/src/compilation_info.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /third_party/rust/jsparagus-emitter/src/compilation_info.rs
parentInitial commit. (diff)
downloadthunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz
thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/jsparagus-emitter/src/compilation_info.rs')
-rw-r--r--third_party/rust/jsparagus-emitter/src/compilation_info.rs45
1 files changed, 45 insertions, 0 deletions
diff --git a/third_party/rust/jsparagus-emitter/src/compilation_info.rs b/third_party/rust/jsparagus-emitter/src/compilation_info.rs
new file mode 100644
index 0000000000..1feeb70862
--- /dev/null
+++ b/third_party/rust/jsparagus-emitter/src/compilation_info.rs
@@ -0,0 +1,45 @@
+use ast::associated_data::AssociatedData;
+use ast::source_atom_set::SourceAtomSet;
+use ast::source_slice_list::SourceSliceList;
+use ast::types::Function;
+use scope::data::FunctionDeclarationPropertyMap;
+use std::collections::HashMap;
+use stencil::regexp::RegExpList;
+use stencil::scope::ScopeDataMap;
+use stencil::script::{ImmutableScriptDataList, ScriptStencilIndex, ScriptStencilList};
+
+pub struct CompilationInfo<'alloc> {
+ pub atoms: SourceAtomSet<'alloc>,
+ pub slices: SourceSliceList<'alloc>,
+ pub regexps: RegExpList,
+ pub scope_data_map: ScopeDataMap,
+ pub function_declarations: HashMap<ScriptStencilIndex, &'alloc Function<'alloc>>,
+ pub function_stencil_indices: AssociatedData<ScriptStencilIndex>,
+ pub function_declaration_properties: FunctionDeclarationPropertyMap,
+ pub scripts: ScriptStencilList,
+ pub script_data_list: ImmutableScriptDataList,
+}
+
+impl<'alloc> CompilationInfo<'alloc> {
+ pub fn new(
+ atoms: SourceAtomSet<'alloc>,
+ slices: SourceSliceList<'alloc>,
+ scope_data_map: ScopeDataMap,
+ function_declarations: HashMap<ScriptStencilIndex, &'alloc Function<'alloc>>,
+ function_stencil_indices: AssociatedData<ScriptStencilIndex>,
+ function_declaration_properties: FunctionDeclarationPropertyMap,
+ scripts: ScriptStencilList,
+ ) -> Self {
+ Self {
+ atoms,
+ slices,
+ regexps: RegExpList::new(),
+ scope_data_map,
+ function_declarations,
+ function_stencil_indices,
+ function_declaration_properties,
+ scripts,
+ script_data_list: ImmutableScriptDataList::new(),
+ }
+ }
+}