From 6b8bcdaf767efe2294a7dd8d9a5580c5a64c20ff Mon Sep 17 00:00:00 2001 From: Danny Yoo Date: Wed, 18 Jan 2012 18:12:25 -0500 Subject: [PATCH] found a workaround by using an artificial set-bang --- lang/js/js.rkt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lang/js/js.rkt b/lang/js/js.rkt index 9944ba7..9285d10 100644 --- a/lang/js/js.rkt +++ b/lang/js/js.rkt @@ -28,7 +28,8 @@ [impl (map (compose resolve-implementation-path syntax-e) (syntax->list #'(javascript-module-name ...)))] - [(internal-name ...) (generate-temporaries #'(provided-name ...))]) + [(internal-name ...) (generate-temporaries #'(provided-name ...))] + [(set-internal-name! ...) (generate-temporaries #'(provided-name ...))]) (syntax/loc stx (begin @@ -47,7 +48,13 @@ )) (require racket-module-name) - (define internal-name provided-name) ... + (begin + (define internal-name provided-name) + ;; Discouraging constant folding via set! to address issue 74 + ;; https://github.com/dyoo/whalesong/issues/74 + (define (set-internal-name! x) + (set! internal-name x))) + ... (provide (rename-out [internal-name provided-name] ...)))))]))