Sha256: ada3f01026e6d81046c27e2bde63d826741ab57062f499a9dad3ab6f1f6593e7
Contents?: true
Size: 1.15 KB
Versions: 15
Compression:
Stored size: 1.15 KB
Contents
module Ruby2JS class Converter # (lvasgn :a # (int 1)) # (gvasgn :$a # (int 1)) handle :lvasgn, :gvasgn do |name, value=nil| state = @state begin if value and value.type == :lvasgn and @state == :statement undecls = [] undecls << name unless @vars.include? name child = value while child and child.type == :lvasgn undecls << child.children[0] unless @vars.include? child.children[0] child = child.children[1] end unless undecls.empty? return parse s(:begin, *undecls.map {|name| s(:lvasgn, name)}, @ast), @state end end if state == :statement and @scope and not @vars.include?(name) var = 'var ' end if value put "#{ var }#{ name } = "; parse value else put "#{ var }#{ name }" end ensure if @scope @vars[name] = true elsif state == :statement @vars[name] ||= :pending else @vars[name] ||= :implicit # console, document, ... end end end end end
Version data entries
15 entries across 15 versions & 1 rubygems