summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2013-08-07 03:13:11 -0400
committerMark H Weaver <mhw@netris.org>2013-08-07 03:13:11 -0400
commit5270bb5bdbc4a036b9d4f73aa378b291f90ae04a (patch)
tree4bb0a036cbb80d2f05624b0492506ace2b709301
parent6dce942c46494460369b8a93d3c657e1f6e57fed (diff)
downloadguile-5270bb5bdbc4a036b9d4f73aa378b291f90ae04a.tar.gz
Adapt ecmascript compiler to recent tree-il changes for prompts.
* module/language/ecmascript/compile-tree-il.scm (with-return-prompt): Adapt to the changes in 178a40928ab5221f6ce57c5af1067abe30a342b3. Prompt tree-il nodes now contain an explicit 'escape-only?' flag, and the body and handler are now both lambdas.
-rw-r--r--module/language/ecmascript/compile-tree-il.scm15
1 files changed, 10 insertions, 5 deletions
diff --git a/module/language/ecmascript/compile-tree-il.scm b/module/language/ecmascript/compile-tree-il.scm
index 2fe0d924e..5ad958d18 100644
--- a/module/language/ecmascript/compile-tree-il.scm
+++ b/module/language/ecmascript/compile-tree-il.scm
@@ -83,12 +83,17 @@
(-> (lexical 'return tag))))
(-> (let '(return) (list tag)
(list (-> (primcall 'make-prompt-tag)))
- (-> (prompt (current-return-tag)
- (body-thunk)
+ (-> (prompt #t
+ (current-return-tag)
+ (-> (lambda '()
+ (-> (lambda-case
+ `((() #f #f #f () ())
+ ,(body-thunk))))))
(let ((val (gensym "val")))
- (-> (lambda-case
- `(((k val) #f #f #f () (,(gensym) ,val))
- ,(-> (lexical 'val val)))))))))))))
+ (-> (lambda '()
+ (-> (lambda-case
+ `(((k val) #f #f #f () (,(gensym) ,val))
+ ,(-> (lexical 'val val)))))))))))))))
(define (comp x e)
(let ((l (location x)))