Sha256: 7817ee27887b84cdb4efabdadc1e1e82370a2c85809d024adb1e8cf79de55432

Contents?: true

Size: 662 Bytes

Versions: 1

Compression:

Stored size: 662 Bytes

Contents

# frozen_string_literal: true
require 'opal/nodes/args/initialize_kwargs'

module Opal
  module Nodes
    # A node responsible for extracting a
    # single *required* keyword argument
    #
    # def m(kw: )
    #
    class KwargNode < InitializeKwargsNode
      handle :kwarg
      children :name

      def compile
        initialize_kw_args_if_needed

        add_temp name

        line "if (!Opal.hasOwnProperty.call($kwargs.$$smap, '#{name}')) {"
        line "  throw Opal.ArgumentError.$new('missing keyword: #{name}');"
        line "}"
        line "#{name} = $kwargs.$$smap['#{name}'];"

        scope.used_kwargs << name
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
opal-0.11.0.rc1 lib/opal/nodes/args/kwarg.rb