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