1 (in-package #:avm2-compiler
)
3 ;;; CL sequences functions
5 (let ((*symbol-table
* *cl-symbol-table
*))
7 ;;; fixme: handle strings in sequence functions
8 ;; reverse string = (%flash:join (%flash:reverse (%flash:split str "")) "")?
9 (swf-defmemfun reverse
(sequence)
11 (cons-type (%reverse-list sequence
))
12 (%flash
:string
(%flash
:join
(%flash
:reverse
(%flash
:split sequence
"")) ""))
13 (%flash
:array
(%flash
:reverse
(%flash
:concat sequence
)))))
15 (swf-defmemfun nreverse
(sequence)
16 (if (%typep sequence %flash
:array
)
17 (%flash
:reverse sequence
)
18 (reverse sequence
))) ;; fixme: add in-place list reverse
21 (swf-defmemfun length
(sequence)
23 (list-length sequence
)
24 ;; fixme: should probably be %flash:length instead of :length
25 (%get-property sequence
:length
)))