summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--module/language/ecmascript/parse.scm11
1 files changed, 9 insertions, 2 deletions
diff --git a/module/language/ecmascript/parse.scm b/module/language/ecmascript/parse.scm
index 4c2311798..b8868a39d 100644
--- a/module/language/ecmascript/parse.scm
+++ b/module/language/ecmascript/parse.scm
@@ -23,8 +23,15 @@
#:use-module (language ecmascript tokenize)
#:export (read-ecmascript read-ecmascript/1 make-parser))
-(define (syntax-error message . args)
- (throw 'syntax-error 'tokenize #f message #f #f args))
+(define* (syntax-error message #:optional token)
+ (if (lexical-token? token)
+ (throw 'syntax-error #f message
+ (and=> (lexical-token-source token)
+ source-location->source-properties)
+ (or (lexical-token-value token)
+ (lexical-token-category token))
+ #f)
+ (throw 'syntax-error #f message #f token #f)))
(define (read-ecmascript port)
(let ((parse (make-parser)))