Method: Opal::Nodes::HashNode#compile_hash2

Defined in:
lib/opal/nodes/hash.rb

#compile_hash2Object

Compiles a hash without kwsplats and containing only string/symbols as keys.



94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/opal/nodes/hash.rb', line 94

def compile_hash2
  hash_obj, hash_keys = {}, []
  helper :hash2

  keys.size.times do |idx|
    key = keys[idx].children[0].to_s.inspect
    hash_keys << key unless hash_obj.include? key
    hash_obj[key] = expr(values[idx])
  end

  hash_keys.each_with_index do |key, idx|
    push ', ' unless idx == 0
    push "#{key}: "
    push hash_obj[key]
  end

  wrap "$hash2([#{hash_keys.join ', '}], {", '})'
end