Sha256: 5cc6bfac539eb067375d8c5a66f977ce76431afdcf0647da43d95d8aeea83af4
Contents?: true
Size: 1.2 KB
Versions: 40
Compression:
Stored size: 1.2 KB
Contents
# frozen_string_literal: true require 'opal/nodes/base' module Opal module Nodes # FIXME: needs rewrite class ArglistNode < Base handle :arglist def compile code, work = [], [] children.each do |current| splat = current.type == :splat arg = expr(current) if splat if work.empty? if code.empty? code << arg else code << fragment('.concat(') << arg << fragment(')') end else if code.empty? code << fragment('[') << work << fragment(']') else code << fragment('.concat([') << work << fragment('])') end code << fragment('.concat(') << arg << fragment(')') end work = [] else work << fragment(', ') unless work.empty? work << arg end end unless work.empty? join = work if code.empty? code = join else code << fragment('.concat([') << join << fragment('])') end end push(*code) end end end end
Version data entries
40 entries across 40 versions & 1 rubygems