Untested code. Javascript is now dynamically generated, and new shortcode classes have very little code to write (hopefully).