- (otherwise 0))
- 0))
-
-(eval-when (:compile-toplevel :load-toplevel :execute)
- (defparameter *op-precedence-hash* (make-hash-table :test 'eq))
-
- (let ((precedence 1))
- (dolist (ops '((new js-slot-value js-aref)
- (postfix++ postfix--)
- (delete void typeof ++ -- unary+ unary- ~ !)
- (* / %)
- (+ -)
- (<< >> >>>)
- (< > <= >= js-instance-of in)
- (== != === !== eql)
- (&)
- (^)
- (\|)
- (\&\& and)
- (\|\| or)
- (js:?)
- (= *= /= %= += -= <<= >>= >>>= \&\= ^= \|= js-assign)
- (comma)))
- (dolist (op ops)
- (setf (gethash op *op-precedence-hash*) precedence))
- (incf precedence)))
-
- (defun op-precedence (op)
- (gethash op *op-precedence-hash*)))
-
-(defprinter js-literal (str)