1 ;; Copying and distribution of this file, with or without
2 ;; modification, are permitted in any medium without royalty. This
3 ;; file is offered as-is, without any warranty.
5 (in-package #:ps-eval-tests
)
6 (named-readtables:in-readtable
:parenscript
)
8 (in-suite ps-test
::eval-tests
)
15 (< 123.12 123.123 123.124)
22 (test-js-eval statements-and-expressions-2
23 ((lambda () (if 1 2 3)))
26 (test-js-eval statements-and-expressions-1
27 ((lambda () (+ 2 (if 1 2 3))))
30 (test-js-eval empty-array
34 (test-js-eval funargs-let1
41 (test-js-eval times-rem
45 (test-js-eval divide-rem
49 (test-js-eval rem-divide
53 (test-js-eval rem-multiply
57 (test-js-eval case-return-break-null
58 ((lambda (x) (case x
(1) (2 3))) 1)
61 (test-js-eval defun-return1
62 (progn (defun bar (x) (1+ x
))
66 (test-js-eval defun-return2
67 (progn (defun bar (fn)
71 (bar (lambda () (return-from foo
123))))
81 (test-js-eval block-dynamic-lambda
82 ((lambda () (block nil
(return 4) (+ 1 2))))
85 (test-js-eval block-dynamic-lambda1
86 ((lambda () (block nil
(return 4) (+ 1 2)) 5))
89 (test-js-eval loop-sum
90 (+ 1 (loop for i from
0 to
10 sum i
))
93 (test-js-eval loop-funcall-sum
94 ((lambda (x) (1+ x
)) (loop for i from
0 to
10 sum i
))
97 (test-js-eval loop-funcall-if-sum
98 (progn (defun one-plus (x)
101 (one-plus (if false
1 (loop for i from
0 to
10 sum i
))))
104 (test-js-eval case-return-break1-broken-return
105 (progn (defun foo (x y
)
107 ("bar" (if y
(return-from foo
1)))
109 (list (foo "bar" t
) (foo "bar" nil
) (foo "baz" nil
)))
110 (jsarray '(1 :undefined
2)))
112 (test-js-eval funcall-loop-doing
114 (loop for i from
0 to
10 do
(1+ i
)))
117 (test-js-eval block-dynamic-lambda2
118 ((lambda () (1+ (block nil
(return 4) (+ 1 2)))))
121 (test-js-eval block-dynamic-setf
122 (progn (defvar foo
(block nil
(return 4) (+ 1 2)))
126 (test-js-eval block-dynamic-return1
127 (progn (defvar foo
((lambda ()
129 ((lambda () (return 6)))
134 (test-js-eval block-lambda-dynamic-setf
135 (progn (defvar foo
(block nil
((lambda () (return 4))) (+ 1 2)))
139 (test-js-eval block-lambda-dynamic-lambda
140 ((lambda () (block nil
((lambda () (return 4))) (+ 1 2))))
143 (test-js-eval return-from-flet
145 (flet ((bar () (return-from foo
42)))
150 (test-js-eval plus-block
151 (1+ (block nil
(return 4) (+ 1 2)))
156 (test-js-eval block-dynamic-return
157 (block nil
(return 4) (+ 1 2))
160 (test-js-eval block-lambda-dynamic-return
161 (block nil
((lambda () (return 4))) (+ 1 2))
164 (test-js-eval dolist-return