extract abstract class SourceCodeGen
Merge remote-tracking branch 'upstream/master' into LeafJS
Merge pull request #2 from tetsurom/LeafJS

LeafJS update