lib/opal/nodes/args/kwoptarg.rb
# frozen_string_literal: true require 'opal/nodes/args/initialize_kwargs' module Opal module Nodes # A node responsible for extracting a # single *optional* keyword argument # # def m(kw: 1) # class KwoptArgNode < InitializeKwargsNode handle :kwoptarg children :lvar_name, :default_value def compile key_name = @sexp.meta[:arg_name] initialize_kw_args_if_needed add_temp lvar_name line "#{lvar_name} = $kwargs.$$smap[#{key_name.to_s.inspect}];" scope.used_kwargs << key_name return if default_value.children[1] == :undefined line "if (#{lvar_name} == null) {" line " #{lvar_name} = ", expr(default_value) line "}" end end end end