Sha256: 94afce17526cfe8924307fbcf6f162acd36f812cd4a2f23b57035da0b32d4147

Contents?: true

Size: 599 Bytes

Versions: 1

Compression:

Stored size: 599 Bytes

Contents

# 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 :name, :default_value

      def compile
        initialize_kw_args_if_needed

        add_temp name

        line "if ((#{name} = $kwargs.$$smap['#{name}']) == null) {"
        line "  #{name} = ", expr(default_value)
        line "}"

        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/kwoptarg.rb