Remove eval, allow closure compiler to work

-- Google's closure compiler fails to deal with eval statements
   properly. In this function, it optimizes out the second parameter
   because its only use is inside an eval string. At runtime, is_match
   is undefined. By reworking the code a bit, we can now compress
   this through the closure compiler.