Sha256: 1fb3f7119fa8fcf230e98e5599afd9a7cdf9bf559704892d74cbd4cde3d07feb
Contents?: true
Size: 870 Bytes
Versions: 6
Compression:
Stored size: 870 Bytes
Contents
# frozen_string_literal: true require 'opal/nodes/base' module Opal module Nodes module Args # 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) # class ExtractKwoptarg < Base handle :extract_kwoptarg children :lvar_name, :default_value 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 end end end end
Version data entries
6 entries across 6 versions & 1 rubygems