It might be good to add a few sentences (and tests?) about numbers since you went to some effort to deal with the differences between Scheme numbers and JavaScript numbers, right?  Oh, but the code looks like you only check for infinity when writing numbers.  You might also want to check for complex and rational numbers as well as NANs.  I apologize for not noticing this earlier.