mirror of https://github.com/boa-dev/boa.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
695 B
29 lines
695 B
#![no_main] |
|
|
|
mod common; |
|
|
|
use crate::common::FuzzSource; |
|
use boa_engine::{Context, Script}; |
|
use boa_parser::Source; |
|
use libfuzzer_sys::{fuzz_target, Corpus}; |
|
use std::io::Cursor; |
|
|
|
fn do_fuzz(original: FuzzSource) -> Corpus { |
|
let mut ctx = Context::builder() |
|
.interner(original.interner) |
|
.instructions_remaining(0) |
|
.build() |
|
.unwrap(); |
|
if let Ok(parsed) = Script::parse( |
|
Source::from_reader(Cursor::new(&original.source), None), |
|
None, |
|
&mut ctx, |
|
) { |
|
let _ = parsed.codeblock(&mut ctx); |
|
Corpus::Keep |
|
} else { |
|
Corpus::Reject |
|
} |
|
} |
|
|
|
fuzz_target!(|original: FuzzSource| -> Corpus { do_fuzz(original) });
|
|
|