class ExecJS::ExternalRuntime
def initialize(options)
def initialize(options) @name = options[:name] @command = options[:command] @runner_path = options[:runner_path] @encoding = options[:encoding] @deprecated = !!options[:deprecated] @binary = nil @popen_options = {} @popen_options[:external_encoding] = @encoding if @encoding @popen_options[:internal_encoding] = ::Encoding.default_internal || 'UTF-8' if @runner_path instance_eval <<~RUBY, __FILE__, __LINE__ def compile_source(source) <<-RUNNER #{IO.read(@runner_path)} RUNNER end RUBY end end