diff --git a/js-assembler/assemble-open-coded.rkt b/js-assembler/assemble-open-coded.rkt index 93a204e..f7aeae1 100644 --- a/js-assembler/assemble-open-coded.rkt +++ b/js-assembler/assemble-open-coded.rkt @@ -151,7 +151,7 @@ (let: ([test-string : String (case domain [(number) - (format "(typeof(~a) === 'number')" + (format "(jsnums.isSchemeNumber(~a))" operand-string)] [(string) (format "(typeof(~a) === 'string')" diff --git a/js-assembler/get-runtime.rkt b/js-assembler/get-runtime.rkt index d3562a1..6bf2ab7 100644 --- a/js-assembler/get-runtime.rkt +++ b/js-assembler/get-runtime.rkt @@ -21,8 +21,8 @@ (require racket/contract racket/runtime-path - racket/port - (planet dyoo/closure-compile:1:1)) + racket/port) + (provide/contract [get-runtime (-> string?)]) @@ -57,9 +57,8 @@ (port->string ip)))) -(define text (closure-compile - (apply string-append - (map path->string files)))) +(define text (apply string-append + (map path->string files))) (define (get-runtime) diff --git a/js-assembler/package.rkt b/js-assembler/package.rkt index 5b2d1ef..98ee9b3 100644 --- a/js-assembler/package.rkt +++ b/js-assembler/package.rkt @@ -4,6 +4,7 @@ "quote-cdata.rkt" "../make.rkt" "../make-structs.rkt" + (planet dyoo/closure-compile:1:1) (prefix-in runtime: "get-runtime.rkt") (prefix-in racket: racket/base)) @@ -87,13 +88,6 @@ -;; get-runtime: -> string -(define (get-runtime) - (let ([buffer (open-output-string)]) - (write-runtime buffer) - (get-output-string buffer))) - - ;; write-runtime: output-port -> void (define (write-runtime op) (let ([packaging-configuration @@ -121,6 +115,19 @@ +(define *the-runtime* + (let ([buffer (open-output-string)]) + (write-runtime buffer) + (closure-compile + (get-output-string buffer)))) + + +;; get-runtime: -> string +(define (get-runtime) + *the-runtime*) + + + ;; *header* : string @@ -144,7 +151,8 @@ EOF (package source-code #:should-follow? (lambda (src p) #t) #:output-port buffer) - (get-output-string buffer))) + (closure-compile + (get-output-string buffer)))) @@ -152,7 +160,8 @@ EOF (define (get-standalone-code source-code) (let ([buffer (open-output-string)]) (write-standalone-code source-code buffer) - (get-output-string buffer))) + (closure-compile + (get-output-string buffer)))) ;; write-standalone-code: source output-port -> void