Whitespace
Add some guards to skip stuff unsupported by opal
Avoid string mutation
Refactor config[:target]
Add opal as a target
Backport tiny changes that help supporting opal