diff --git a/assemble.rkt b/assemble.rkt index 685b87d..ecb6987 100644 --- a/assemble.rkt +++ b/assemble.rkt @@ -290,7 +290,8 @@ EOF ", "))] [(PopEnvironment? stmt) (if (= (PopEnvironment-skip stmt) 0) - (format "MACHINE.env.length = MACHINE.env.length - ~a;" (PopEnvironment-n stmt)) + (format "MACHINE.env.length = MACHINE.env.length - ~a;" + (PopEnvironment-n stmt)) (format "MACHINE.env.splice(MACHINE.env.length-(~a),~a);" (+ (PopEnvironment-skip stmt) (PopEnvironment-n stmt)) diff --git a/test-browser-evaluate.rkt b/test-browser-evaluate.rkt index ee87f98..0c9c161 100644 --- a/test-browser-evaluate.rkt +++ b/test-browser-evaluate.rkt @@ -69,6 +69,17 @@ EOF +(test '(begin (define program (lambda () + (let ((y (call/cc (lambda (c) c)))) + (display 1) + (call/cc (lambda (c) (y c))) + (display 2) + (call/cc (lambda (c) (y c))) + (display 3)))) + (program)) + "11213") + + (test '(display 42) "42")