(module eval mzscheme
(require (lib "contract.ss")
(lib "etc.ss")
"syntax/parse.ss"
"syntax/sexp.ss"
"runtime/eval.ss"
"runtime/namespace.ss")
(define eval-compiled-javascript*
(opt-lambda (stx [ns (make-javascript-namespace)])
(eval-compiled-javascript stx ns)))
(define eval-javascript-string*
(opt-lambda (src [ns (make-javascript-namespace)])
(eval-javascript-string src ns)))
(define eval-javascript*
(opt-lambda (src [ns (make-javascript-namespace)])
(eval-javascript src ns)))
(provide/contract (rename eval-compiled-javascript* eval-compiled-javascript ((syntax?) (namespace?) . opt-> . any))
(rename eval-javascript-string* eval-javascript-string ((input-source?) (namespace?) . opt-> . any))
(rename eval-javascript* eval-javascript ((sexp?) (namespace?) . opt-> . any))
[make-javascript-namespace (-> namespace?)]
[reset-javascript-namespace! (namespace? . -> . any)]))