swc/crates/swc_webpack_ast/benches/webpack_ast.rs
Donny/강동윤 9b76783281
refactor(common): Cleanup & rustfmt (#3495)
swc_common:
 - Merge identical source codes.

swc_css_parser:
 - Deny `clippy::all`.
 - Fix lints.
2022-02-09 06:33:32 +00:00

50 lines
1.2 KiB
Rust

#![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| {
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()
.map_err(|e| e.into_diagnostic(handler).emit());
for e in p.take_errors() {
e.into_diagnostic(handler).emit()
}
res?
};
let s = swc_webpack_ast::webpack_ast(cm, fm, module).unwrap();
println!("{} bytes", s.len());
Ok(())
})
.unwrap();
});
}