Code generator that preserve original source lines

In order to keep meaningful stack traces, the transformed code should keep the line numbers from the original source file. That way, errors are thrown from the same line for a given source statement. This avoids the need to source maps