Sha256: 5f93e26398732edf26197a0f70433edfbb26bc42ebfd6028bebb45001db38871

Contents?: true

Size: 720 Bytes

Versions: 7

Compression:

Stored size: 720 Bytes

Contents

# frozen_string_literal: true
require 'opal/nodes/base'

module Opal
  module Nodes
    # An abstract node responsible for validating
    # keyword arguments in the post-splat list of arguments.
    #
    # @see PostArgsNode
    #
    class InitializeKwargsNode < Base
      def initialize_kw_args_if_needed
        return if scope.kwargs_initialized

        helper :hash2

        line "if ($kwargs == null || !$kwargs.$$is_hash) {"
        line "  if ($kwargs == null) {"
        line "    $kwargs = $hash2([], {});"
        line "  } else {"
        line "    throw Opal.ArgumentError.$new('expected kwargs');"
        line "  }"
        line "}"

        scope.kwargs_initialized = true
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
opal-0.11.4 lib/opal/nodes/args/initialize_kwargs.rb
opal-0.11.3 lib/opal/nodes/args/initialize_kwargs.rb
opal-0.11.2 lib/opal/nodes/args/initialize_kwargs.rb
opal-0.11.1 lib/opal/nodes/args/initialize_kwargs.rb
opal-0.11.1.pre lib/opal/nodes/args/initialize_kwargs.rb
opal-0.11.0 lib/opal/nodes/args/initialize_kwargs.rb
opal-0.11.0.rc1 lib/opal/nodes/args/initialize_kwargs.rb