1#![allow(dead_code)]
8
9pub mod ast;
10pub mod bigint;
11pub mod builtins;
12pub mod dom_bridge;
13pub mod interp;
14pub mod lexer;
15pub mod parser;
16pub mod regex;
17pub mod uncaught;
18pub mod value;
19
20pub use dom_bridge::DomBridge;
21pub use interp::JsRuntime;
22pub use lexer::Lexer;
23pub use parser::Parser;
24pub use value::Value;
25
26pub fn parse_script(source: &str) -> ast::Program {
32 Parser::new(Lexer::new(source)).parse_program()
33}
34
35pub fn parse_script_reporting(source: &str) -> (ast::Program, alloc::vec::Vec<parser::ParseError>) {
40 Parser::new(Lexer::new(source)).parse_program_reporting()
41}
42
43pub fn eval(source: &str, runtime: &mut JsRuntime) -> Result<Value, alloc::string::String> {
45 runtime.eval(source)
46}
47
48
49mod selftest;
52pub use selftest::selftest;