diff --git a/src/package.lisp b/src/package.lisp
index d9e2222..84c1c53 100644
--- a/src/package.lisp
+++ b/src/package.lisp
@@ -210,6 +210,7 @@
 
    ;; lisp eval
    #:lisp
+   #:comment
 
    ;; v v v STUFF WE SHOULD PROBABLY MOVE TO OTHER LIBS v v v
 
@@ -392,4 +393,6 @@
    #:funcall
    #:escape
    #:regex
+
+   #:comment
    ))
diff --git a/src/printer.lisp b/src/printer.lisp
index 28c878d..070ee88 100644
--- a/src/printer.lisp
+++ b/src/printer.lisp
@@ -312,3 +312,6 @@ vice-versa.")
   ;; literal-js should be a form that evaluates to a string containing
   ;; valid JavaScript
   (psw literal-js))
+
+(defprinter js:comment (string)
+  "/* " (psw string) " */")
\ No newline at end of file
diff --git a/src/special-forms.lisp b/src/special-forms.lisp
index f39a563..eaea5bc 100644
--- a/src/special-forms.lisp
+++ b/src/special-forms.lisp
@@ -681,3 +681,6 @@ code in :execute."
   (if (member :execute situation-list)
       (ps-compile `(progn ,@body))
       (ps-compile `(progn))))
+
+(define-ps-special-form comment (string)
+  `(js:comment ,string))
\ No newline at end of file
