Sha256: 7ea9c9432b9fba0d27b3bbfdc935b97386d6ee9abe6138e98906d76464c76cc2

Contents?: true

Size: 708 Bytes

Versions: 16

Compression:

Stored size: 708 Bytes

Contents

# frozen_string_literal: true

require 'opal/nodes/base'

module Opal
  module Nodes
    module Args
      # This node is responsible for extracting a single
      # required keyword argument from $kwargs
      #
      # $kwargs always exist (as argument when inlining is possible
      # and as a local variable when it's not)
      #
      class ExtractKwarg < Base
        handle :extract_kwarg
        children :lvar_name

        def compile
          key_name = @sexp.meta[:arg_name]
          scope.used_kwargs << key_name

          add_temp lvar_name

          helper :get_kwarg

          push "#{lvar_name} = $get_kwarg($kwargs, #{key_name.to_s.inspect})"
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
opal-1.8.3.rc1 lib/opal/nodes/args/extract_kwarg.rb
opal-1.8.2 lib/opal/nodes/args/extract_kwarg.rb
opal-1.8.1 lib/opal/nodes/args/extract_kwarg.rb
opal-1.8.0 lib/opal/nodes/args/extract_kwarg.rb
opal-1.8.0.beta1 lib/opal/nodes/args/extract_kwarg.rb
opal-1.7.4 lib/opal/nodes/args/extract_kwarg.rb
opal-1.8.0.alpha1 lib/opal/nodes/args/extract_kwarg.rb
opal-1.7.3 lib/opal/nodes/args/extract_kwarg.rb
opal-1.7.2 lib/opal/nodes/args/extract_kwarg.rb
opal-1.7.1 lib/opal/nodes/args/extract_kwarg.rb
opal-1.7.0 lib/opal/nodes/args/extract_kwarg.rb
opal-1.7.0.rc1 lib/opal/nodes/args/extract_kwarg.rb
opal-1.6.1 lib/opal/nodes/args/extract_kwarg.rb
opal-1.6.0 lib/opal/nodes/args/extract_kwarg.rb
opal-1.6.0.rc1 lib/opal/nodes/args/extract_kwarg.rb
opal-1.6.0.alpha1 lib/opal/nodes/args/extract_kwarg.rb