swc/crates/swc_webpack_ast/benches/webpack_ast.rs
Donny/강동윤 4cf58528df
fix(webpack/ast): Fix webpackAST (#2979)
swc_estree_ast:
 - Fix more serialization.

swc_estree_compat:
 - Consider multi-byte characters.

swc_webpack_ast:
 - Preserve LHS of assignments if required.
2021-12-08 19:53:43 +09:00

49 lines
1.3 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.clone(), fm.clone(), module.into()).unwrap();
println!("{} bytes", s.len());
Ok(())
})
.unwrap();
});
}