class Opal::Nodes::Args::ExtractKwoptarg

This node is responsible for extracting a single optional keyword argument from $kwargs

$kwargs always exist (as argument when inlining is possible and as a local variable when it’s not)

Public Instance Methods

compile() click to toggle source
# File lib/opal/nodes/args/extract_kwoptarg.rb, line 18
def compile
  helper :hash_get
  key_name = @sexp.meta[:arg_name]
  scope.used_kwargs << key_name

  add_temp lvar_name

  line "#{lvar_name} = $hash_get($kwargs, #{key_name.to_s.inspect});"

  return if default_value.children[1] == :undefined

  push "if (#{lvar_name} == null) #{lvar_name} = ", expr(default_value)
end