Figured it out myself. Prototype's 1.7 evalJSON function must have gotten stricter.
You have to enclose keys & values in double quotes. Like below:
{
"options": {
"pager": {
"currentPage": "<?php echo $page; ?>",
"total": "<?php echo $count; ?>",
"from": "<?php echo $from; ?>",
"to": "<?php echo $to; ?>",
"pages": "<?php echo $numPages; ?>"
}
},
"rows": <?php echo json_encode($result); ?>
}