swc/crates/swc_webpack_ast/benches/webpack_ast.rs

50 lines
1.2 KiB
Rust
Raw Normal View History

#![feature(test)]
use std::path::Path;
use swc_ecma_parser::{EsConfig, Parser, StringInput, Syntax};
use test::Bencher;
extern crate swc_node_base;
extern crate test;
/// this benchmark requires real input, which cannot be committed into git
/// repository
#[bench]
#[cfg(not(all))]
fn total(b: &mut Bencher) {
let input = Path::new("tests/fixture/real/input.js");
b.iter(|| {
testing::run_test(false, |cm, handler| {
2022-01-13 17:06:11 +03:00
let fm = cm.load_file(input).unwrap();
let module = {
let mut p = Parser::new(
Syntax::Es(EsConfig {
jsx: true,
..Default::default()
}),
StringInput::from(&*fm),
None,
);
let res = p
.parse_module()
2022-01-13 17:06:11 +03:00
.map_err(|e| e.into_diagnostic(handler).emit());
for e in p.take_errors() {
2022-01-13 17:06:11 +03:00
e.into_diagnostic(handler).emit()
}
res?
};
2022-01-13 17:06:11 +03:00
let s = swc_webpack_ast::webpack_ast(cm, fm, module).unwrap();
println!("{} bytes", s.len());
Ok(())
})
.unwrap();
});
}