Documentation:
Note that a LOT of these keywords are VERY flexible. If you know your RegExes, read orly.js to learn more.
HAI - Start program
KTHXBYE - End program
; - separate commands
CAN HAS [VARIABLE] - assert that [VARIABLE] exists, throw error if not
MAFS ... - Use one of the JavaScript Math functions
WIF - concatenation operator, eg: I SEZ 'U GOTZ ' WIF BASE WIF ' DOODZ'
LULZ(numLulz=3,lulCharz='OL',grouped=false) - Generate a randomized string of variable length (2 to numLulz) containing lulCharz
YEEAH - true
NAW - false
LOL(OL...) [VARIABLE]=/R/Z [VALUE] - assignment operator, eg: LOLOL UR 'DUMB'
AND - boolean AND
XOR - boolean XOR
OR - boolean OR
NOT - boolean NOT
TIEMZ [x]!!..[y] - multply x by y, store in x, return x
TIEM [x] BY [y] - multiply x by y, return result
MODZ [x]!!..[y] - modulo x by y, store in x, return x
MOD [x] BY/OF/OV [y] - multiply x by y, return result
OVARZ [x]!!..[y] - divide x by y, store in x, return x
OVAR [x] by [y] - divide x by y, return result
UPZ [x]!!..[y] - add and store
UP [x] BY [y] - add
NERFZ [x]!!..[y] - subtract and store
NERF [x] BY [y] - subtract
I HAS [VARIABLE] (ITZ ...) - define variable, optionally set as the remainder of the line
IZ [CONDITION] - equivalent to if ()
YEHRLY - true fork (optional)
NOWAI - false fork (optional)
KTHX - end of a loop or conditional
IM IN UR [CONDITION] - continue while condition is true
IM IN UR [x] KILLIN/PIMPIN UR [y] - loop, set y's initial value to x and increment/decrement per iteration
IM IN UR [y] CHEKIN UR [y] - loop, iterating through the members of [x] with y
GTFO - break out of a loop
WATZ [EXPRESSION]???
ITZ [EXPRESSION]
...
GTFO
IZNT
...
KTHX - switch equivalent
WEN I SEZ [function name] (parameter list) U
...
KTHX - function definition
VISIBLE/U SEEZ/I SEZ [EXPRESSION] - print to STDIO
BIGR THAN - >
SMALR THN - <
LIEK - ==
KTHX - End a block
BTW - Comment